转自:dog250. 这篇应该是网上解释wireshark info栏中"TCP segment of a reassembled PDU"比较合理的一篇,以下是正文。

为什么大家看到这个以后总是会往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根据它能识别的应用层协议,告诉你哪些数据是属于一个应用层消息的。就这么简单。

关于wireshark中“TCP segment of a reassembled PDU”相关推荐

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

    网上胡说八道,众说风云,感觉这篇还算靠谱点. 原文链接:http://blog.csdn.net/dog250/article/details/51809566 为什么大家看到这个以后总是会往MSS, ...

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

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

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

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

  4. Wireshark中常见的TCP Info

    Wireshark中常见的TCP Info 1. TCP out-of-order segment TCP存在问题. Wireshark判断TCP out-of-order是基于TCP包中SEQ nu ...

  5. 使用wireshark分析tcp/ip报文之报文头

    以太网报文的结构如下: 其中,以太网的帧头: 14 Bytes:MAC目的地址48bit(6B),MAC源地址48bit(6B),Type域2B,一共14B. IP头部: TCP头部: http:// ...

  6. 如何利用wireshark对TCP消息进行分析

    原文:https://www.cnblogs.com/studyofadeerlet/p/7485298.html 如何利用wireshark对TCP消息进行分析 (1) 几个概念介绍 1 seq:数 ...

  7. TCP头部格式详解,附Wireshark对TCP头部抓包分析

    TCP之所以能为数据通讯提供可靠的传输,主要在于TCP数据包头部功能非常多. 那么,我们先来看看TCP头部格式(RFC 793.1323定义了TCP头部): TCP头部格式中的内容解析如下:(文末还有 ...

  8. Wireshark图解TCP三次握手与四次挥手

    Wireshark图解TCP三次握手与四次挥手 1. TCP 包头结构 2 三次握手 2.1 图解 2.2 使用 tcpdump 和 wireshark 解读三次握手过程 3 四次挥手 3.1 客户端 ...

  9. linux数据包注释,关于 linux中TCP数据包(SKB)序列号的小笔记

    关于  SKB序列号的小笔记 为了修改TCP协议,现在遇到了要改动tcp分组的序列号,但是只是在tcp_sendmsg函数中找到了SKB的end_seq  一直没有找到seq 不清楚在那里初始化了,就 ...

  10. 从Wireshark看TCP连接的建立与关闭

    TCP是一种面向连接.可靠的协议.TCP连接的建立与断开,都是需要经过通信双方的协商.用一句话概括就是:三次握手say hello(建立连接):四次握手say goodbye(断开连接).要了解TCP ...

最新文章

  1. Consul与外部服务
  2. 计算机的好处英语,跪求一篇英语作文 题目:论计算机的优缺点
  3. 逻辑回归、线性回归直观感受
  4. 800变频器故障代码_变频器通用故障码意义汇总讲解
  5. 未知宽高div水平垂直居中的3种方法
  6. ThinkPHP中使用聚合查询去重求和
  7. mina mysql_Mina源码阅读笔记(四)—Mina的连接IoConnector2
  8. Vmprotect 驱动加壳踩坑
  9. Swift 圆形进度条
  10. js 文件下载请求两种方式
  11. 2021-08-29 网安实验-网络协议栈渗透测试之DDOS攻击之CC攻击
  12. 响铃:含着金钥匙的HomeKit如何才能大器晚成?
  13. 【java-JDK的下载-安装-配置】
  14. 虚幻4里的地图动态加载
  15. c++开源爬虫-Larbin简介
  16. 平方在c语言程序中怎么表示什么意思,c语言中的平方是怎么表示的?
  17. 李彦宏: 《硅谷商战》 节选
  18. html中自动换行的代码,css之自动换行实现代码
  19. 阿里 P8 总结:SpringCloud+Nginx 并发核心笔记
  20. 第二章 机器人系统与控制需求简介

热门文章

  1. 华为手机自带的双系统模式,你知道吗?一部手机当两部使用
  2. 智能名片小程序功能点实现
  3. 获取局域网电脑的硬件配置
  4. 联想笔记本小新V2000怎么进BIOS设置
  5. 联想笔记本进BIOS
  6. WiFi-802.11 2.4G频段 5G频段 信道频率分配表
  7. PDCA循环和GTD时间管理
  8. 2019个人年度总结:平凡的我,仍然在平淡的生活里打拼,寻找未来的曙光。
  9. [VS code - SSH Remote] ln: failed to create hard link ... File exists
  10. python3操作win32com报错:AttributeError: Open.SaveAs 或者<COMObject Open>“, line 8, in SaveAs pywintypes.c