• wireshark-006-TCP异常数据包记录


    1. [TCP Dup ACK XXXX#N]

    其中XXXX表示丢包的序列号,N表示第几次丢失。丢包之后会自动重传。

    2. [Packet size limited during capture]

    说明被标记的数据包没有抓全,比如总长度400个字节,只抓取到30个字节,一般和软件配置有关。

    3. [TCP Previous segment not captured]

    在TCP传输过程中,同一台主机发出的数据段应该是连续的,即后一个包的Seq号等于前一个包的Seq Len(三次握手和四次挥手是例外)。如果Wireshark发现后一个包的Seq号大于前一个包的Seq Len,就知道中间缺失了一段数据。假如缺失的那段数据在整个网络包中都找不到(即排除了乱序),就会提示[TCP Previous segment not captured]。

    4. [TCP ACKed unseen segment]

    当Wireshark发现被Ack的那个包没被抓到,就会提示 [TCP ACKed unseen segment].

    5. [TCP Out-of-Order]

    在TCP传输过程中(不包括三次握手和四次挥手),同一台主机发出的数据包应该是连续的,即后一个包的Seq号等于前一个包的Seq Len。也可以说,后一个包的Seq会大于或等于前一个包的Seq。当Wireshark发现后一个包的Seq号小于前一个包的Seq Len时,就会认为是乱序了,因此提示 [TCP Out-of-Order] 。

    6. [TCP Fast Retransmission]

    当发送方收到3个或以上[TCP Dup ACK],就意识到之前发的包可能丢了,于是快速重传它(这是RFC的规定)。

    7. [TCP Retransmission]

    如果一个包真的丢了,又没有后续包可以在接收方触发[Dup Ack],就不会快速重传。这种情况下发送方等到超时之后再重传,此类重传包就会被Wireshark标上[TCP Retransmission]

    8. [TCP zerowindow]

    TCP包中的“win=”代表接收窗口的大小,即表示这个包的发送方当前还有多少缓存区可以接收数据。当Wireshark在一个包中发现“win=0”时,就会给它打上“TCP zerowindow”的标志,表示缓存区已满,不能再接受数据了。

    9. [TCP window Full]

    当Wireshark在一个包中打上[TCP window Full]标志时,就表示这个包的发送方已经把对方所声明的接收窗口耗尽了。

    • [TCP window Full]很容易跟[TCP zerowindow]混淆,实际上它们也有相似之处。前者表示这个包的发送方暂时没办法再发送数据了,后者表示这个包的发送方暂时没办法再接收数据了,也就是说两者都意味着传输暂停,都必须引起重视。

    10. tcp spurious retransmission

    tcp虚假重传
    指实际上并没有超时,但看起来超时了,导致虚假超时重传的原因有很多种:
    (1)对于部分移动网络,当网络发生切换时会导致网络延时突增
    (2)当网络的可用带宽突然变小时,网络rtt会出现突增的情况,这会导致虚假超时重传
    (3)网络丢包(原始和重传的包都有可能丢包)会导致虚假重传超时。

    未完待续...

  • 相关阅读:
    C语言清空输入缓冲区的N种方法对比(转)
    UNIX网络编程——socket的keep-alive(转)
    UNIX网络编程——套接字选项(心跳检测、绑定地址复用)(转)
    UNIX网络编程——客户/服务器心搏函数 (转)
    TCP心跳 | TCP keepAlive(转)
    linux下使用adb查看android手机的logcat
    linux 常用查看设备命令(转)
    Spring AOP 详解
    HDU 2222 AC自动机 裸题
    大声说出我爱你—英语发音学习总结
  • 原文地址:https://www.cnblogs.com/TianYunWuYan/p/13070585.html
Copyright © 2020-2023  润新知