1 简介
UPD协议是无连接的传输层协议。无连接是指再传输数据时,数据的发送端和接收端不建立逻辑连接。接收和发送数据都没有反馈。
可以看到MAC帧中的数据段是IP数据报,IP报文中的数据段为UDP报文,UDP报文中的内容是用户数据。
2 IP协议
IP协议是TCP/IP协议簇中的核心协议,也是TCP/IP协议的载体,IP协议规定了数据传输时的基本单元和格式。IP数据包格式如图,其中前20个字节是固定的,后面可选是可有可无的。
名称 | 位置 | 作用 |
---|---|---|
版本 | 0~3 | IP版本号: 4‘b0100:IPv4 4’b0110:IPv6 |
首部长度 | 4~7 | 表示IP首部一共有多少个32bit数,在没有可选字段时,IP首部长度为20个字节,因此首部长度为5 |
服务类型 | 8~15 | 3位优先级和4位TOS字段,最后一字节固定为0,服务类型为0时表示一般服务 |
总长度 | 16~31 | IP数据报总长度,包括IP首部和IP数据部分,以字节为单位 |
标识字段 | 0~15 | 每发送一份报文数据就会加1 |
标识字段 | 16~18 | 第一字节为保留位,第二字节表示是否允许分片,第三字节代表标识更多分片 |
片偏移 | 19~31 | 在接收方进行数据报重组时用来识别分片顺序 |
生存时间 | 0~7 | TTL域防止丢失的数据包无限制传播,一般设置为64或者128 |
协议 | 8~15 | 表示次数据报所携带的上层数据所使用的协议类型,ICMP为1,TCP为6,UDP为17 |
首部校验和 | 16~31 | 该字段只校验首部,不包含数据部分 |
源IP地址 | ||
目的IP地址 | ||
可选字段 |
首部校验和计算方法:
1.将首部按照16bit分开,然后采用加法运算并将溢出的高位加到最低位上,再将和的高16位和低16位相加,最终的和取反填入校验字段。
3 UDP协议
UDP协议帧
名称 | 位置 | 作用 |
---|---|---|
源端口号 | 0~15 | 16位发送端口端口号,用于区分不同的服务端口 |
目的端口号 | 16~31 | 16位接收端口号 |
UDP长度 | 0~15 | UDP首部长度加数据长度,单位是字节 |
总长度 | 16~31 | IP数据报总长度,包括IP首部和IP数据部分,以字节为单位 |
UDP校验和 | 16~31 | 包括UDP伪首部、首部和数据部分,伪首部是从IP数据报头和UDP数据报头获取的,包括源IP地址、目的IP地址、协议类型和UDP长度。目的是让UDP两次检查数据是否已经正确到达目的地。大多数场合并不检测校验和 |
标识字段 | 16~18 | 第一字节为保留位,第二字节表示是否允许分片,第三字节代表标识更多分片 |