IT序号网

UDP:用户数据报协议知识解答

leader 2021年06月13日 程序员 197 0
UDP不提供可靠性:它把应用程序传给 IP层的数据发送出去,但是并不保证它们能到达目的地。
应用程序必须关心 IP数据报的长度。如果它超过网络的 MTU,那么就要对 IP数据报进行分片。
如果需要,源端到目的端之间的每个网络都要进行分片,并不只是发送端主机连接第一个网络才这样做。
 
UDP首部
 
UDP校验和( 二进制反码计算和)
  • UDP检验和覆盖UDP首部和UDP数据。
    • IP首部的检验和,它只覆盖 IP的首部—并不覆盖IP数据报中的任何数据
  • UDP和TCP在首部中都有覆盖它们首部和数据的检验和。
  • UDP的检验和是可选的,而TCP的检验和是必需的。
 
 
IP分片

 
  • IP把MTU与数据报长度进行比较,如果需要则进行分片。
  • 分片可以发生在原始发送端主机上,也可以发生在中间路由器上
  • 把一份 IP数据报分片以后,只有到达目的地才进行重新组装
  • 重新组装由目的端的IP层来完成,其目的是使分片和重新组装过程对运输层(TCP和UDP)是透明的。
 
IP标志位中有,"不分片"位,如果将该位置1,IP将不对数据报进行分片。
相反把数据报丢弃并发送一个ICMP差错报文(需要分片但设置了不分片位)
 
  • 当IP数据报被分片后,每一片都成为一个分组,具有自己的 IP首部,并在选择路由时与其他分组独立
  • 这样,当数据报的这些片到达目的端时有可能会失序
  • 但是在IP首部中足够的信息让接收端能正确组装这些数据报片。
 
 
问题:
  • 一片分页丢失时,重转整个数据报
    • IP层本身没有重传机制
    • 超时重传时,上层并不知道丢失的哪个一片分页
      • 因为分页是在IP做的,并且是在中继路由器中做分页,
      • 因此IP层 也不知道要重传那些片。
    • 因此上层会将整个数据包重传过来。
 
注:
任何传输层首部只出现在第1片数据中
 
 
    • ICMP不可达差错(需要分片)
      • 当路由器收到一份需要分片的数据报,而在 IP首部又设置了不分片( DF)的标志比特。
      • 如果某个程序需要判断到达目的端的路途中最小MTU
        是多少—称作路径MTU发现机制,那么这个差错就可以被该程序使用。
    • UDP和ARP之间的接口,大多数的ARP实现在等待ARP应答时只保留最近传送给目的端的数据报
    • ICMP源站抑制差错报文
      • 当系统接收IP数据报的速率超过这些数据报被处理的速率时

发布评论
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

ICMP--ping--Traceroute知识解答
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。