• TCP segment of a reassembled PDU【转】


    ILIJ]]NH(5YAPRZ@]L8XQ8P

    TCP segment of a reassembled PDU

    抓包发现一个TCP segment of a reassembled PDU,搜了一下blog,找到一些博友的文章,很好地解决了我的问题,遂分享

    “TCP segment of a reassembled PDU”指的不是IP层的分片,IP分片在wireshark里用“Fragmented IP protocol”来标识。详细查了一下,发现“TCP segment of a reassembled PDU”指TCP层收到上层大块报文后分解成段后发出去。于是有个疑问,TCP层完全可以把大段报文丢给IP层,让IP层完成分段,为什么要在TCP层分呢? 其实这个是由TCP的MSS(Maximum Segment Size,最大报文段长度)决定的,TCP在发起连接的第一个报文的TCP头里通过MSS这个可选项告知对方本端能够接收的最大报文(当然,这个大小是 TCP净荷的大小),以太网上这个值一般设置成1460,因为1460Byte净荷+20Byte TCP头+20Byte IP头 = 1500字节,正好符合链路层最大报文的要求。

        至于收到一个报文后如何确定它是一个"TCP segment"?如果有几个报文的ACK序号都一样,并且这些报文的Sequence Number都不一样,并且后一个Sequence Number为前一个Sequence Number加上前一个报文大小再加上1的话,肯定是TCP segment了,对于没有ACK标志时,则无法判断。

         今天利用windows查找功能对网络上的一个共享文件夹里的内容进行查找,发现查找网络文件时流量巨大。好奇用wireshark抓包发现 wireshark Info栏里有很多“TCP segment of a reassembled PDU”提示信息。不解百度了一下发现大家都在询问这个问题网上并没有很好的解答。想到“TCP segment of a reassembled PDU”只是wireshark的提示信息,那么在sniffer pro里会给出什么样的提示呢,用sniffer打开同样的trace 发现里面提示“Continuation of missing frame”和"Continuation of frame xx"现在大概知道“TCP segment of a reassembled PDU”是什么意思,其实主机响应一个查询或者命令时如果要回应很多数据(信息)而这些数据超出了TCP的最大MSS时,主机会通过发送多个数据包来传送这些数据(注意:这些包并未被分片)。对wireshark来说这些对相应同一个查询命令的数据包被标记了“TCP segment of a reassembled PDU”
    问题,wireshark如何识别多个数据包是对同一个查询数据包的响应? wireshark是根据sequence number来识别,这些数据包ACK number是相同的,当然number的数值与查询数据包中的next sequence number也是一样的。

    关于TCP/UDP与IP最大报文长度的区别

    原文链接

  • 相关阅读:
    PAT-乙级-1008 数组元素循环右移问题
    PAT-乙级-1007 素数对猜想
    PAT-乙级-1006 换个格式输出整数
    PAT-乙级-1005 继续(3n+1)猜想
    PAT-乙级-1003 我要通过!
    PAT-乙级-1004 成绩排名
    PAT-乙级-1002 写出这个数
    PAT-乙级-1001 害死人不偿命的(3n+1)猜想
    PAT-甲级-1002-A+B for Polynomials
    【windows】共享文件夹设置
  • 原文地址:https://www.cnblogs.com/xiaok-redback/p/4972457.html
Copyright © 2020-2023  润新知