TCP UDP 数据包长度(MSS)总结

MTU: Maxitum Transmission Unit 最大传输单元
MSS: Maxitum Segment Size 最大分段大小

以太网(Ethernet)数据帧的长度必须在 64Bytes-1518Bytes 字节之间,这是由于以太网传输电气方面限制的,EthernetII 协议报头结构如下:

| 目的地址(DMAC) | 源地址(SMAC) |  类型(TYPE) | 数据(DATA) | 校验(CRC) |
     6Bytes         6Bytes        4Bytes    46-1500Bytes   2Bytes

由于以太网最大的数据帧是 1518Bytes,刨去以太网帧的帧头(目标MAC地址,源MAC地址和类型)14Bytes 以及帧尾 CRC(大家有时候叫它: FCS) 校验部分4Bytes 那么剩下承载上层协议的地方也就是 Data 域最大就只能有1500Bytes 这个值我们就把它称之为 MTU。

  • UDP 包的大小(MSS)是 1500 - IP头(20) - UDP头(8) = 1472(BYTES)
  • TCP 包的大小(MSS)是 1500 - IP头(20) - TCP头(20) = 1460 (BYTES)

注:PPPoE导致MTU变小了,以太网的 MTU 是 1500,再减去PPP的包头包尾的开销(8Bytes),MTU 就变成1492。

MTU 对我们的 UDP 编程很重要,那如何查看路由的MTU值呢?

# windows OS: ping -f -l
$ ping -f -l 1472 www.bing.com
#如果提示:需要拆分数据包但是设置 DF。
#则表明 MTU 小于1500
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值