网络协议之五(UDP)

来源:互联网 发布:玻璃胶 白色透明知乎 编辑:程序博客网 时间:2024/04/30 23:23

1.        UDP特性

1.1.       字节流

1.2.       不可靠

1.3.       限定到端口,TCP端口和UDP端口是不同的端口系列,因此可以有相同的端口号。因此如果提供相同的协议,UDP和TCP一般用相同的端口号。

1.4.       UDP校验和是可选的,TCP校验和则是必须的。

2.        IP分片

2.1.       分片的原因是MTU,IP包通过链路层发送,因此最大包不能超过MTU。

2.2.       分片可以在发送主机上,也可以在中间路由器上。

2.3.       分片标识:是否还有分片字段,只有最后一个分片为0;片偏移字段;是否可以分片标志(可以用于发现路径MTU值,traceroute即用这个参数来发现路径MTU)。

2.4.       分片只要有一片丢失,则TCP就需要重传整个TCP包,因为如果分片发生在中间路由器,则主机将不知道分片是如何划分的。因此尽量不要分片。

2.5.       如果内核接收到的UDP数据长度比应用程序提供的缓冲区大,则一般会丢弃多余的数据。

3.        UDP队列

UDP接收的数据会放入队列。由内核维护。

如果接收速度大于处理速度,则会发送ICMP源站抑制差错报文。

4.        端口有多个接收者

多个程序使用一个端口,如果是广播,则会给每个程序拷贝一份;如果是单播地址,则只给其中一个发送,具体给谁由实现决定。