网上胡说八道,众说风云,感觉这篇还算靠谱点。

原文链接:http://blog.csdn.net/dog250/article/details/51809566

为什么大家看到这个以后总是会往MSS,TSO上联系呢?也许第一个解释这个的人是个高手,而且以MSS/MTU/TSO的观点解释了这个问题,还有一种可能就是TSO等技术让人觉得太牛逼,毕竟是底层硬件机制吧,抓包机制又是作用于网卡层面的,所以很自然会觉得TSO会有关联。
        事实上,这个跟TSO没有关系!跟MSS有一定的关系但不是全部因果关系,在阐述“TCP segment of a reassembled PDU”之前,先把TSO理清再说。当有人问题“这个包会不会被TSO分段”这类问题时,只要看该TCP数据包的长度,拿它跟MTU比较,如果数据长度更长,则就是TSO。

那么,“TCP segment of a reassembled PDU”究竟是什么呢?答案是,这要向上看,这个跟应用层有关,而与底层关系不大!我用Wireshark的抓包例子来解释这个问题。首先看一个抓包,我们以网络测试工具baidu为例,抓取一个访问其服务器https://14.215.177.38/的一个HTTPS连接的包:

网上很多人在解释这个“TCP segment of a reassembled PDU”的时候(基本都是转载),都说什么“ACK了同一笔数据就会是reassembled PDU”,“同一个GET请求的response”云云...但是很显然,上述我抓包的截图中,402到405号包都有ACK了同一个序列号,但是为什么只有一个“TCP segment of a reassembled PDU”呢??在没有标识reassembled PDU的数据包中,另外标识了TLSv1.2的协议原语。此时,我来做一个动作,按下“Ctrl-Shift-E”组合键,事实上就是点击“分析”菜单,进入“已启用的协议”界面:

反选SSL协议,不再识别SSL协议之后,我们再看402到405号数据包:

没有了“TCP segment of a reassembled PDU”这些,除了没有这些“修饰语”之外,其它的协议层面的数据完全和之前识别SSL协议的时候相符合。我们的结论是,关掉了对SSL协议的识别,就没有了reassembled PDU的修饰,这恰恰是因为SSL协议让Wireshark知道403号包是一个reassembled PDU!如果你不知道这是个SSL协议,你就无法判断出这是不是一个reassembled PDU!

是的,这就是原因。接下来,为什么SSL协议就能识别这是一个reassembled PDU呢?这就要看你对SSL协议是否理解了,起码我是懂的,在握手阶段,Server Hello和Server的Certificate是背靠背发送的,也就是说它们是连着发给Client的,一个Server Hello,外加一个证书,一起发给Client,接下来就是不那么根本但很显然的事情了,如果这些包的总和足够小或者链路的MTU足够大,能够一次性发送过去的话,那当然好,如果不能,很显然要拆成几个分段发送了,如果中间的那个分段不能被SSL协议的原语识别,那么就会被标识成reassembled PDU,这就是为什么404,405号数据包都是连续发送的,但是却未被识别为reassembled PDU,因为SSL协议知道它们是Certificate消息和Server Key Exchange消息。

现在明白了吗?我特意没有用HTTP协议去解释这个而是选择了用SSL协议,目的就是想让大家明白,并不是针对同一个GET请求的同一笔回应会被标识为reassembled PDU!而是完全靠着应用层协议原语来识别协议消息。如果你的Wireshark被配置成不识别任何协议,比如不识别HTTP协议,SSL协议,那也就不会出现reassembled PDU了,因为Wireshark不知道到底是不是!实际上Wireshark支持你去自定义你自己的协议插件,你可以试一下,自己开发一个简单的协议,就算你的TCP数据段总和没有超过一个MSS,比如你的socket每发100字节就sleep 10秒,并且TCP socket没有设置Nagle算法,那么虽然每个段只有100字节,远没有到一个MSS,也会有reassembled PDU的标识!

本质上来讲,reassembled PDU要向上看,而不是去考虑什么底层的MTU,TSO什么的。Wireshark根据它能识别的应用层协议,告诉你哪些数据是属于一个应用层消息的。就这么简单。

顺便提一下


如果你也喜欢Python 这里有一群Python爱好者汇集在此。

关注微信公众号:【软件测试技术】,回复 888,获取QQ群号。

网络知识===wireshark抓包出现“TCP segment of a reassembled PDU”的解释(载)相关推荐

  1. wireshark 抓包显示 TCP segment of a reassembled PDU的问题

    测试tacacs客户端和服务器(TCP)通信发现客户端认证报文发出去了,服务器没收到,抓包显示发送的报文携带了TCP segment of a reassembled PDU这个标识,正常的报文应该解 ...

  2. 网络知识===wireshark抓包,三次握手分析

    TCP需要三次握手建立连接: 网上的三次握手讲解的太复杂抽象,尝试着使用wireshark抓包分析,得到如下数据: 整个过程分析如下: step1 client给server发送:[SYN] Seq ...

  3. Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析

    Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析 一.介绍计算机网络体系结构 1.计算机的网络体系结构 在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计 ...

  4. 用wireshark抓包分析TCP协议的三次握手连接、四次握手断开

    用wireshark抓包分析TCP协议的三次握手连接.四次握手断开 一.TCP三次握手图解 二.TCP得四次挥手过程 三.用Fiddler抓包,分析验证一个HTTPS网站的TCP连接过程 一.TCP三 ...

  5. 关于“TCP segment of a reassembled PDU”

    为什么大家看到这个以后总是会往MSS,TSO上联系呢?也许第一个解释这个的人是个高手,而且以MSS/MTU/TSO的观点解释了这个问题,还有一种可能就是TSO等技术让人觉得太牛逼,毕竟是底层硬件机制吧 ...

  6. wireshark抓包理解TCP的三次握手

    一.实验目的 通过wireshark抓包工具,抓取客户机访问FTP服务器的连接过程进一步理解TCP的三次握手 二.实验拓扑 三.实验步骤 1.根据拓扑图搭建实验环境. 2.在客户机上安装安装Wires ...

  7. Wireshark抓包分析TCP连接、发送数据与断开过程

    准备工具: 1. 两台连接到同个局域网的电脑,或者虚拟机; 2. 在其中一台电脑安装Wireshark; 3. 在两台电脑上面都有TCP&UDP测试工具软件 TCP连接建立过程(三次握手): ...

  8. wireshark抓包分析TCP数据包

    1.直接从TCP的三次握手开始说起 三次握手就是客户与服务器建立连接的过程 客户向服务器发送SYN(SEQ=x)报文,然后就会进入SYN_SEND状态 服务器收到SYN报文之后,回应一个SYN(SEQ ...

  9. 【极客思考】计算机网络:Wireshark抓包分析TCP中的三次握手与四次挥手

    [前提说明] 前段时间突然看到了一篇关于TCP/IP模型的文章,心想这段时间在家里也用wireshark抓了点包,那么想着想着就觉得需要复习一下网络知识,于是就有这篇博文的诞生.当然网上关于TCP相关 ...

最新文章

  1. 将 Docker 踢出群聊后,Kubernetes 还能否欢快地蹦跶吗?
  2. jQuery dataTable 操作个人使用总结
  3. [蓝桥杯][算法提高VIP]扫雷-枚举
  4. AT2376-[AGC014D]Black and White Tree【结论,博弈论】
  5. CSS浮动(二)---Float
  6. 【NOIP】提高组2013 积木大赛
  7. Linux—vim/vi 翻页跳转命令快捷键
  8. 【Kafka】Kafka认证与授权
  9. Javascript心得(一) Javascript数据类型
  10. (转)深入剖析ASP.NET的编译原理
  11. ubuntu批量文件查找替换
  12. Tik Tok与抖音的不同有哪些
  13. win10和win7两个计算机相连,详解win10两台电脑网线直连的操作方法
  14. 微博机型Android怎么去掉,如何设置微博来源中显示出的手机型号 怎么去掉微博来源中的android字样...
  15. 存储桶上传策略和签名 URL的绕过及利用
  16. idea创建工程java不是蓝色source
  17. Java 对象的构造和初始化
  18. 【NISP一级】4.1 Windows终端安全
  19. 国产车规级MCU芯片又添一重量级成员,这次竟是国家队?稳了
  20. 大数据平台资源治理经验总结

热门文章

  1. Python常见字符编码及其之间的转换
  2. 怎么将在线pdfword转换器使用
  3. Q2表现喜忧参半,“在线音频第一股”荔枝还甜吗?
  4. 智能化时代:前端开发者进阶史
  5. GCDAsyncSocket two way authentication SSL 双向认证
  6. 斗鱼html5插件音画不同步,音画不同步在直播中怎么解决?看这篇文章就够了!...
  7. Springboot毕设项目安易网上商品交易系统6aygw(java+VUE+Mybatis+Maven+Mysql)
  8. matlab科学计数法输入_matlab提取科学计数法指数
  9. 弄懂这八个神经网络架构,深度学习才算入门!
  10. 全国组织机构统一社会信用代码校验 - Java 版