您的位置:首页 > 其它

UDP:用户数据报协议

2017-08-04 11:57 429 查看
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数据报的速率超过这些数据报被处理的速率时
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: