TCP/IP协议簇学习笔记(6)UDP

UDP,用户数据报协议

封包格式

TCP/IP协议簇学习笔记(6)UDP

UDP首部

TCP/IP协议簇学习笔记(6)UDP

  • 端口号用来区别不同应用层程序的数据,tcp和udp的端口号可以相同,因为可以通过IP首部的协议字段来判断是tcp的端口号还是udp的端口号
  • UDP长度包括UDP首部和数据,最小值8
  • UDP校验和是UDP首部和数据部分的校验和,这里和IP首部校验和不同(IP首部校验和只校验IP首部)
IP分片

当上层要传输的数据大于主机接口MTU时,就要进行IP分片,当然,当传输过程中数据大于路径MTU时会再次进行IP分片,只有到达最终目的地时才根据IP首部提供信息会进行重组。

  • 16位标识:分片后的每片IP首部的16位标识一致
  • 3位标志:
    • 保留位
    • 不分片位DF,Do not fragment,0(允许数据分片)1(不允许数据分片)
    • 更多片片MF,More fragment ,0(这是分片的最后一包)1(后面还有更多的片)
  • 13位片偏移:标识某个分片在整个分组中的位置

下面是UDP传输1473个字节分片示意图
TCP/IP协议簇学习笔记(6)UDP

路径MTU发现

如果把IP首部不分片位(DF)设置为1,即不分片,但是发送需要路由分片的数据时,就会产生ICMP需要分片的不可达差错报文,可以据此来推断路径MTU近似值