TCP/IP详解 第十章用户数据报协议 UDP

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 discard
tcpdump -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+65507
Ipv6  65535=8+65527   非超长数据报
实现限制:

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

。数据报截断:

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

12、Udp服务器设计

1,限制本地ip地址

2,使用多地址

3,限制远端IP地址

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

 

13、流量和拥塞控制缺失

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

 

 

感谢zhangj

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值