第11章 UDP协议
UDP首部
UDP的检验和是可选的,而TCP的检验和是必须的;
UDP的检验和是端到端的检验和。由发送端计算,由接收端验证;
尽管UDP的检验和是可选的,但总是推荐被使用
IP分片
解释几个术语:
IP数据报:指IP层端到端的传输单元(在分片之前和重新组装之后)
IP分组: 指在IP层和链路层之间传送的数据单元(也即IP分片后的每一个片)。一个分组可以是一个完整的IP数据报,也可以是IP数据报的一个分片
IP把MTU与数据报长度进行对比,若需要则进行分片。分片可以发生在原始发送端主机上,也可以发生在中间路由器上;
IP数据报分片以后,只有到达目的地才进行重新组装。重新组装的任务由目的端的IP层来完成。分片和重新组装过程对运输层是透明的;
当IP数据报被分片后,每一片都成为一个分组,具有自己的IP首部,并在选择路由时与其他分组独立;
IP分片后,传输过程中即使只丢失一片数据也要重传整个数据报
ICMP不可达差错(需要分片)
发生ICMP不可达差错的另一个情况是:当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片(DF)的标志比特!
UDP和ARP之间的交互作用
在大多数的ARP实现中,在等待一个ARP应答时,只将最后一个报文发送给特定目的主机
最大UDP数据报长度
理论上IP数据报的最大长度是65535字节,这是由IP首部16比特总长度字段决定的。去除20字节IP首部和8字节UDP首部,UDP数据报中用户数据的最大长度为65507字节。但大多实际实现所提供的长度比这个最大值小。
ICMP源站抑制差错
当系统接受IP数据报的速率超过这些数据报被处理的速率时,系统可能发送ICMP源站抑制差错报文。使用UDP时很容易产生这样的ICMP差错。