UDP:用户数据报协议

一. 简介

1. UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份代发送的IP数据报。

 

2. UDP不提供可靠性

3. 应用程序必须关系IP数据报的长度。如果它超过网络的MTU,那么就要对IP数据报进行分片。

发送ICMP不可达差错的一种情况是:当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片(DF)的标志比特。

二. UDP首部

1. 端口号表示发送和接收进程。注意,由于IP层会区分TCP和UDP,所以TCP端口号和UDP端口号是独立的。(尽管如此,如果TCP和UDP同时提供某种知名服务,两个协议通常选择相同的端口号。这纯粹是为了使用方便,而不是协议要求。)

 

2. IP首部的检验和只覆盖IP的首部,而UDP和TCP在首部中都有覆盖它们首部和数据的检验和。UDP的检验和是可选的,TCP的检验和是必须的。检验方法是16bit字的二进制反码和。因为UDP的数据报长度可以使奇数字节,所以必须要加上填充字节,以方便计算检验和。

如果发送端没有计算检验和而接收端检验和有差错,那么UDP数据报就要被悄悄地丢掉。不会产生任何差错报文(当IP层检测到IP首部检验和有差错的时候也是直接丢掉,没有差错报文)

 

三. ARP和UDP

大多数ARP实现在等待ARP应答时只保留最近传送给目的端的数据报。

四. 当系统接收IP数据报的速率超过这些数据报被处理的速率时,系统可能发送ICMP源站抑制差错报文。使用UDP时很容易产生这样的ICMP差错。

猜你喜欢

转载自codepeak.iteye.com/blog/778995