TCPIP详解第十章用户数据报协议 UDP

    技术2022-07-10  138

    1、简介

    简单的面向数据报的传输层的协议,不提供差错纠正,队列管理,重复消除,流量控制,拥塞控制功能。提供差错检测。使用它的应用程序需要做许多数据报如何发送和处理的控制工作。

    2、UDP头部

    端口号 16 位,当不需要返回时,源端口号可以为 0端口号在不同的传输协议之间是独立的,即不同的服务器

         可以使用相同的ip地址与端口号,但传输协议不同

     

    长度字段是 udp 头部和数据的总和,最小值 8 ,排除 ipv6 超长数据报情况校验和,端到端的传输层校验和,覆盖 udp 头部,数据,一个伪头部,发送端计算的来,目的端验证,途中不变,除非遇到 nat ipv4 可选不强制使用,推荐使用。 Ipv6 强制 .

          数据部分需要是偶数,奇数需补0

     

    3、ipv4伪头部

    4、Ipv6 伪头部

    5、udp测试

    sock -v -u - i   192.168.21.26 discardtcpdump -n -p -s 1500 - vvv host 192.168.21.26 and \( udp or icmp \)

    6、Teredo 隧道技术

    7、Udp Lite

    8、Ip 分片

    Ipv4 在源主机或者路由器上分片

    Ipv6 只能在源主机分片

    到达最终目的地完成重组。

    为什么不在路途中间重组?

    1,路由器负担问题

    2,分片路由路径问题

     

    标识字段唯一确定一个 ip 数据报偏移字段以 8 字节为单位,并且相对于原始数据报计值MF 字段指示是否还有下一个分片任何一个分片丢了,整个数据报就丢了标识字段唯一确定一个 ip 数据报偏移字段以 8 字节为单位,并且相对于原始数据报计值MF 字段指示是否还有下一个分片任何一个分片丢了,整个数据报就丢了  

    9、重组超时

    当数据报的任何一个分片到达时, ip 层启动一个定时器,时长 30s 60s再收到数据分片时,定时器不会重置。  

    10、采用udp的路径mtu发现

    路径 mtu 发现机制 (PMTUD) ,可以用它来确定 mtu 的大小,避免分片IP 层会基于每个目的地址缓存一个 PMTUD 信息,当没有更新时就超时

    11、最大udp数据报长度

    Ipv4  65535=20 (不带 ip 选项) +8+65507Ipv6  65535=8+65527   非超长数据报实现限制:

        协议实现提供api可设置缓存大小,一般默认8192或者65535 ,但也有些协议实现不支持大数据量的传送与接收。如dnsdhcp都对发送的数据报大小做了限制。

    。数据报截断:

         发送方发送一定大小的数据报,接收方不一定能完全接收,所以可能会出现截断,截断后或者丢弃或者后移,看不同的实现了

    12、Udp服务器设计

    1,限制本地ip地址

    2,使用多地址

    3,限制远端IP地址

    4,每端口多服务器的使用

     

    13、流量和拥塞控制缺失

    服务端 Udp 端口接收数据,存入缓存队列Udp 无连接缓存队列可能满,服务端无法控制客户端,数据出现丢失

     

     

    感谢zhangj

     

     

     

     

     

     

     

     

     

     

     

     

     

    Processed: 0.009, SQL: 9