服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

MSS为什么和三次握手时协商的不一致?

日期: 来源:车小胖谈网络收集编辑:车小胖谈网络
后续传输使用的MSS为什么和三次握手时协商的不一致?


三次握手时协商的MSS是1460和1424,但是发送数据时,最大的TCP数据包只要超过1412就会被拆分,不知道是什么问题, 求大神指导。




这个问题非常棒,燃起回答的热情。这个问题曾经也困扰过我,让我茶饭不思,苦思冥想。其实很简单,因为双方协商的MSS取双方的最小值Min(1460,1424)= 1424


但是想过没有,这个MSS= 1424包含哪些内容?


仅仅包含来自上层的用户数据(Data)吗?


很显然不是,还包括TCP报文头的Option选项扩展。换句话说,如果你的TCP报文Option需要12字节运输,TCP集装箱的大小一共1424字节,那么留给用户数据的空间= 1424-12=1412字节,不是吗?


是的。


接下来检查一下是不是这样呢?让我们看抓包图片中第四行,清清楚楚地包含TCP Timestamp Option,这个选项一共10个字节。如下图加亮部分所示:


读者可能会说,Timestamp Option一共才10个字节,并没有12个字节啊,多出来的2个字节又是怎么回事?


也很简单,由于10个字节不是4字节(32bit位)的整数倍,加亮图片中TCP又添加两个NOP Option,分别=1字节。NOP = No Operation,仅仅起到字节长度填充Padding的意图。



至于为何要填充为4字节的整数倍,可以参考这篇权威的RFC文档:


还是那副加亮的图片,Window Scale Option 长度为3字节,也不满足4字节的整数倍,所以也为其添加一个字节的NOP。

相关阅读

  • 终于,抖音要出手“干”微信了

  • 作者 |雷科技互联网组编辑 |冬日果酱本文经授权转载自雷科技(ID:leitech)2023 年的关口,对很多人、很多公司来说都是一个新的开始,对字节跳动而言也是如此。抖音最近在官网上线了
  • 张一鸣不舍地产梦

  • 作者 |陈畅编辑 |田晏林本文经授权转载自市界(ID:ishijie2018)字节跳动的员工过了一个不太平静的元旦。2022 年的最后一个工作日,界面新闻报道,字节跳动已开启裁员,今日头条、抖音、
  • 飞哥最后选择了加入字节!

  • 大家好,我是飞哥!前段时间在公众号里写了一篇文章《飞哥离职了》,和大家聊一下我从离职腾讯的事情。让我没想到的是这篇文章竟然创造了我的公众号文章的阅读数记录,当天就达到了
  • 「码上掘金迎新年」编程比赛,倒计时 6 天!

  • 2023 已悄悄来临在这辞旧迎新之际码上掘金正在举办迎新年编程比赛诸多萌趣奖品等你抱回家❤️ 参与比赛还能做公益 ❤️让我们一起为 2023 谱写爱的开篇扫描下方报名二维码,前端
  • 在字节跳动工作是怎样一种体验?

  • 你好,我是yes。昨天刷到一篇文章,虽然我没在字节待过,但是看着还是挺有感触了,很多方都是围城。今天来分享下这篇文章:来源:https://www.zhihu.com/question/28881353/answer/255
  • 字节高管为何多数都在新加坡?

  • 新加坡是一个关键的中转站。出品 | 市界 作者 | 何畅飞书常驻地:新加坡打开飞书,越来越多的字节跳动高管更新了常驻办公地点,那是一个绕不开的名字——新加坡。最近一位是抖音
  • 从「恶意降薪」开始,继续聊聊互联网的落幕

  • 1 魔幻现实的「恶意降薪」巨婴今天偶然在群里看到有名校生在某匿名平台吐槽字节开了底薪,怒发冲冠的样子,颇像是前阵子拉横幅的特斯拉车主,觉得降价了就是自己吃了亏,甚至捎上了
  • Weblogic安全漫谈(一)

  • 前言@frohoff在2015年初发现commons-collections的反序列化利用链并发布了ysoserial工具[1]。9个月后,@breenmachine对众多知名Java中间件的利用文章[2]使Java反序列化漏洞变

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • MSS为什么和三次握手时协商的不一致?

  • 后续传输使用的MSS为什么和三次握手时协商的不一致?三次握手时协商的MSS是1460和1424,但是发送数据时,最大的TCP数据包只要超过1412就会被拆分,不知道是什么问题, 求大神指导。这
  • 如何能够看懂TCP/IP 协议细节?

  • 01高门槛,勿入在Cisco平台上有一个很有用的Traceback log功能,实时记录当前Code运行到特定模块、特定函数,这样一旦系统崩溃、死机的时候,可以有效记录机器是在哪个模块、哪个函