•简单的面向数据报的传输层的协议,不提供差错纠正,队列管理,重复消除,流量控制,拥塞控制功能。提供差错检测。使用它的应用程序需要做许多数据报如何发送和处理的控制工作。
可以使用相同的ip地址与端口号,但传输协议不同
• 长度字段是 udp 头部和数据的总和,最小值 8 ,排除 ipv6 超长数据报情况 • 校验和,端到端的传输层校验和,覆盖 udp 头部,数据,一个伪头部,发送端计算的来,目的端验证,途中不变,除非遇到 nat 。 ipv4 可选不强制使用,推荐使用。 Ipv6 强制 .
数据部分需要是偶数,奇数需补0
Ipv4 在源主机或者路由器上分片
Ipv6 只能在源主机分片
到达最终目的地完成重组。
为什么不在路途中间重组?
1,路由器负担问题
2,分片路由路径问题
• 标识字段唯一确定一个 ip 数据报 • 偏移字段以 8 字节为单位,并且相对于原始数据报计值 • MF 字段指示是否还有下一个分片 • 任何一个分片丢了,整个数据报就丢了 • 标识字段唯一确定一个 ip 数据报 • 偏移字段以 8 字节为单位,并且相对于原始数据报计值 • MF 字段指示是否还有下一个分片 • 任何一个分片丢了,整个数据报就丢了
协议实现提供api可设置缓存大小,一般默认8192或者65535 ,但也有些协议实现不支持大数据量的传送与接收。如dns和dhcp都对发送的数据报大小做了限制。
。数据报截断:
发送方发送一定大小的数据报,接收方不一定能完全接收,所以可能会出现截断,截断后或者丢弃或者后移,看不同的实现了
1,限制本地ip地址
2,使用多地址
3,限制远端IP地址
4,每端口多服务器的使用
感谢zhangj