关于UDP发包长度及分包问题限制问题(笔记)

关于UDP发包长度及分包问题限制问题(笔记)

  • UDP报文长度限制,在IPv4下是65507字节(65535-8字节UDP header-20字节 IPheader) 长度限制内的包都可以发
  • fragmentation发生在IP层,一个长UDP报文,会被分为若干个fragment,封成IP包发送接收端收到所有的fragment之后,会在IP层组装成一个完整的UDP datagram交给你的UDP recv函数
  • 只要有一个fragment丢了,整个UDP报文就丢了
  • 所以作为没有ACK的UDP协议,一般我们不希望出现分包发送的情形,以避免累积丢包率,导致实际报文的丢包率很高
  • 根据IEEE的要求,IPv4的网络,至少要保证MTU不低于576,于是扣除一些IP、UDP header的长度,548长度的UDP包可以认为是不会发生fragmentation的
  • 但是人们喜欢冗余,喜欢留余地,所以很多人实践中,把这个限制写成了512
参考文档

https://en.wikipedia.org/wiki/User_Datagram_Protocol

http://stackoverflow.com/a/20317315/1231127

http://stackoverflow.com/a/900725/1231127

http://stackoverflow.com/questions/1098897/what-is-the-largest-safe-udp-packet-size-on-the-internet

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值