目录
一、传输层的协议
传输层的两个主要协议有两个:
用户数据报协议(User Datagram Protocol) --- UDP
传输控制协议(Transmission Control Protocol) --- TCP
一、UDP协议
1.UDP协议端格式
16位UDP长度,表示整个数据报(UDP首部+UDP数据)的最大长度; 如果校验和出错,就会直接丢弃;
1.1源端口
源端口号;在需要对方回信时选用,不需要时可用全0
1.2目的端口
目的端口号;在交付报文时必须使用
1.3长度
UDP用户数据报的长度,最小值是8(此时只有首部)
1.4检验和
- 检测UDP用户数据报在传输中是否有错;一旦有错,就丢弃数据
- 在计算校验和时,要在数据报前增加12个字节的“伪首部”,伪首部不会被传递
在发送方,首先是把全零放入校验和字段并且添加伪首部,然后把UDP数据报看成是由许多16位的子串连接起来,若UDP数据报的数据部分不是偶数个字节,则要在数据部分末尾增加一个全零字节(此字节不发送),接下来就按照二进制反码计算出这些16位字的和。将此和的二进制反码写入校验和字段。在接收方,把收到得UDP数据报加上伪首部(如果不为偶数个字节,还需要补上全零字节)后,按二进制反码计算出这些16位字的和。当无差错时其结果全为1。否则就表明有差错出现,接收方应该丢弃这个UDP数据报。
2.UDP协议的特点
2.1无连接
知道对端的IP和端口号就直接进行传输,不需要建立连接,减少了开销和发送数据的时延
2.2 不可靠
UDP尽最大努力交付,是不保证可靠交付的,因此主机不需要维持复制的连接状态表
2.3 面向数据报
应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并;
如果发送端一次发送100个字节,那么接收端也必须一次接收100个字节;而不能循环接收10次, 每次接收10个字节。
2.4没有缓冲区
UDP只有接收缓冲区,没有发送缓冲区
2.5UDP的首部开销小
UDP首部只有8个字节,比TCP的20多个字节的首部短
一个UDP能传输的数据最大长度是64K(包含UDP首部)
3.基于UDP的应用层协议
NFS:网络文件系统
TFTP:简单文件传输协议
DHCP:动态主机配置协议
BOOTP:启动协议(用于无盘设备启动)
DNS:域名解析协议