【网络】 应用&传输层笔记
应用层
应用层常用的协议和各自对应的TCP/UDP端口:
DNS TCP/UDP 53
HTTP TCP 80
SMTP TCP 25
POP UDP 110
Telnet TCP 23
DHCP UDP 67
FTP TCP 20和21
关于端口号的分配可以提一下:
公认端口:0-1023
已注册端口:1024-49151
动态&私有端口:49152-65535
下面是一些常用的应用层协议略解
1. DNS(Domain Name System)
主要功能:将对用户友好的域名转化为后台服务器的IP地址
DNS客户端本身也是一个服务,在配置网络连接的时候,系统会要求用户提供DNS服务器。对于家庭个人电脑而言,大多数时候ISP都会提供。在DOS命令行键入nslookup可以查看到当前网络状况下DNS服务器的配置信息。DNS的解析过程是这样的。DNS服务器上有一个named守护进程监听请求,当收到某个客户端发来的请求时,服务器先检查自身记录,查找看本次请求的域名可不可以凭自身的力量解析。如果不行那就要连接到其他的DNS Server,当得到结果之后DNSServer会向客户端返回结果,同时将本次得到的域名和IP地址之间的对应关系存储下来,如果下次还有类似的请求那么就可以凭自身记录快速处理了。
关于DNS Server的层级构造:DNS服务器采用树状结构来实现检索目标。一台根服务器记录了顶级服务器的信息(比如它们的IP地址)。顶级服务器中,每一个服务器各自管理一个顶级域名(比如.com)。服务器中记录的信息是二级服务器的信息。二级服务器中维护的是顶级域名+二级域名的组合,其记录信息是三级服务器的信息……以此类推,只有最下层的服务器才会记录一个完整域名和IP地址之间的映射关系。图示:
对于这个实例中的mail.cisco.com这个域名来说,保存过其相关所有信息的DNS服务器,包括跟服务器,.com的一级服务器,cisco.com的二级服务器,mail.cisco.com的三级服务器都叫做这个域名的主域名服务器。
2. HTTP 和 WEB服务
通常情况下通过浏览器访问某个文件的过程:
用户在浏览器地址栏中输入一个URL,浏览器解析URL得到三部分分别是协议或方案(http://)、域名、请求文件的路径。浏览器向DNS请求将域名转化为IP地址,然后根据HTTP协议的要求向这个地址发送一个GET请求,要求访问相关文件。服务器收到相关请求之后将相关文件的内容传送给请求发起方,然后浏览器解释得到的文件内容并显示页面。
HTTP框架内的会话发起种类有很多种,其中最常用的就是GET和POST。区别就不多啰嗦了,懂点web的人都懂的。除了这两个还有像PUT,DELETE这类的。
3. POP,SMTP协议以及MTA,MDA,MUA进程
对用户而言,POP协议用来规定接收邮件的规则,SMTP用来规定发送邮件的规则,所以一般邮件服务器和客户机都肯定要同时支持两种协议。MUA进程就是运行在客户机上,用来实现这两个协议的程序。相对的邮件服务器上则是靠MTA和MDA两个进程来实现收发邮件协议的。一个邮件服务器首先用MTA从客户端的MUA或者另一台服务器的MTA那里获得邮件,查看邮件的宛先,如果这个地址维护在本地服务器上,那么就把邮件转送给MDA,由服务器的MDA进程负责分发;如果没有在本地服务器上找到相关目的地址,那么就用MTA把这个邮件转发给另一台服务器的MTA。
4. DHCP协议
DHCP服务器的功能是提供自动分配的IP,子网掩码,缺省网关等网络层的参数。现在一般家庭里都有无线路由器了,无线路由器中就自带了一个DHCP服务器的。如果没有接入无线的话那么DHCP服务由ISP提供。
采用DHCP虽然能够快速自动地分配网络参数,让管理接入接出频繁的网络方便很多,但是也有一些缺点,比如我们需要网关,交换机这类网络设备的IP得是固定IP比较好,另外DHCP不对接入的设备有安全性检查导致安全性也会降低一些。
传输层
传输层的作用主要有:
跟踪各个会话(通过在PDU中写入端口号实现)
将数据分段(适应传输方式,提高效率和容错性)
在接收端重组数据段
标识应用程序
流量控制
错误回复(通过重传)
开始会话
根据应用层的不同要求而选择不同的协议(TCP/UDP)
客户端发送请求的时候传输层程序会为这个数据段随机选择动态分配的端口,比如在DOS中键入netstat -an可以看到状态为ESTABLISHED的会话,本地的地址后面的端口都是一个很大的数,就是随机分配来的。而一般服务端的话为了让客户端能够方便地找到服务,其肯定是一个静态的固定端口号。ip:port这样的形式表示的一个通信地址也被称为套接字。
TCP和UDP两种协议的不同:
TCP是可靠传输,UDP是尽力传输。TCP在其PDU的报头中有序列号等信息,占20个字节。UDP则没有这部分信息,其报头只占8个字节。对于TCP而言,它会在发送数据之后跟踪数据的到达情况,确认是否需要重发。同时TCP还在接收到数据之后按照序列号的顺序重组数据,而这两项功能UDP是没有的。相对而言TCP消耗的网络成本更大一些因为它传递更多的数据且需要在会话之前先握手连接(作为检测到达情况的准备工作),而UDP的成本小一些。基于TCP和UDP的代表的应用有:
TCP web浏览器,电子邮件,文件传输
UDP 视频音频流,IP电话(中途丢几个包也不影响整体数据表现的)
哎…那啥。。当时实在是过于青涩,有很多东西觉得没必要记录的记了下来,还错了很多。。我都不太想继续整理下去了【捂脸】
【网络】 应用&传输层笔记的更多相关文章
- UNIX网络编程---传输层:TCP、UDP、SCTP(二)
UNIX网络编程----传输层:TCP.UDP.SCTP 一.概述 本章的焦点是传输层:包括TCP.UDP.和SCTP(流控制传输协议).SCTP是一个较新的协议,最初设计用于跨因特网传输电话信令. ...
- Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platform)
catalog . 引言 . Windows 2000网络结构和OSI模型 . NDIS驱动 . NDIS微端口驱动编程实例 . NDIS中间层驱动编程实例 . NDIS协议层驱动编程实例 . TDI ...
- 网络协议学习笔记(四)传输层的UDP和TCP
概述 传输层里比较重要的两个协议,一个是 TCP,一个是 UDP.对于不从事底层开发的人员来讲,或者对于开发应用的人来讲,最常用的就是这两个协议.由于面试的时候,这两个协议经常会被放在一起问,因而我在 ...
- 图解 TCP/IP 第六章 TCP与UDP 笔记6.1 传输层的作用
图解 TCP/IP 第六章 TCP与UDP 笔记6.1 传输层的作用 传输层必须指出这个具体的程序,为了实现这一功能,使用端口号这样一种识别码.根据端口号,就可以识别在传输层上一层的应用程 ...
- [计网笔记] 传输层---TCP 传输层思维导图
传输层思维导图 TCP笔记 为什么是三次握手和四次挥手 https://blog.csdn.net/baixiaoshi/article/details/67712853 [问题1]为什么连接的时候是 ...
- ASP.NET知识总结(1.网络传输层)
1.网络传输层 1应用层(HTTP.FTP.SMTP)报文Message 2传输层(TCP.UDP)报文段Segment,为运行在不同主机上的应用程序进程间提供数据 传输服务.通过套接字(Socket ...
- 网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结
引: http://coach.iteye.com/blog/2024511 什么是TCP和UDP,以及二者区别是什么? TCP的全称为传输控制协议.这种协议可以提供面向连接的.可靠的.点到点的通信. ...
- 计算机网络 学习笔记-传输层:TCP协议简介
概述: TCP传输前先要建立连接 TCP在传输层 点对点,一条TCP只能连接两个端点 可靠传输.无差错.不丢失.不重复.按顺序 全双工 字节流 TCP报文段 TCP报文段的报头前20字节是固定的,后面 ...
- Android网络编程系列 一 TCP/IP协议族之传输层
这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 传输层中有TCP协议与UDP协议. 1.UDP介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,U ...
随机推荐
- ubuntu自动登录tty1(shell,text)配置
1.写脚本autologin 代码: #!/bin/bash/bin/login -f #你的用户名 移动到/usr/bin/下,并且用chmod +x autologin设置可执行权限 2.修改/e ...
- 嵌入式Linux引导过程之1.1——Xloader的xloader.lds
本文中的所有代码版本都是基于ST的SpearPlus开发板的. xloader是在系统上电之后,执行完ROM中的frimware后最先开始执行的用户程序,它的体积很小,执行的功能也很简单,主要是对系统 ...
- python3写入csv多一个空行
今天用python3 写入csv 总是多一个空行,查阅python3文档,发现有一个参数可以设置.特此记录一下. with open('file.csv','a',newline='') as csv ...
- HighCharts之2D颜色阶梯饼图
HighCharts之2D颜色阶梯饼图 1.实例源码 PieGradient.html: <!DOCTYPE html> <html> <head> <met ...
- INS-20802
1.错误描述 2.错误原因 安装的是64位数据库,由于在设置数据库配置密码时用的是数字开头,取消时出现这个错误 3.解决办法 重新安装Oracle
- 使用Gulp进行代码压缩的步骤以及配置
一.安装步骤 1.首先确定是否安装了node.js,如果未安装,请先安装node.js: 2.确定是否安装了包管理工具npm,如未安装请安装:npm install npm -g: 3.安装gulp: ...
- CentOS添加磁盘分区
(这里的磁盘在vmware workstation VM中添加) 1.关闭虚拟机,在虚拟机设置中添加一个硬盘,然后开启虚拟机. 2.使用fdisk -l命令查看,这时会发现一个为被使用的设备,有2G的 ...
- iOS - UIImageView 动画
1.UIImageView 动画 1.1 播放图片集 播放图片集 @property (nonatomic, strong) UIImageView *playImageView; self.play ...
- val(),text(),html()的区别
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> ...
- ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
1.Action.RenderAction加载办法的视图,履行Controller → Model → View的次序,然后把产生的页面带回到本来的View中再回传.而Partial.RenderPa ...