无数据发送的 60 字节的 Tcp 数据包

标签 tcp wireshark

我的应用程序使用 TCP 连接到服务器并且系统工作正常。使用 Wireshark 我注意到一些 60 字节的 TCP 数据包发送时没有数据。这是正常的吗?

作为 TCP 传输和握手的一部分,是否发送了一些没有数据的数据包?

谢谢 库马尔

最佳答案

ACK 数据包不携带任何数据,只确认接收到的数据。使用 Wireshark 时,它应该在空数据包上显示这些“标志”。

为了更准确,您应该显示 wireshark 捕获的屏幕截图,以便我们知道您的意思是什么大小。 同时,我在这里剖析了一个 IPv4 TCP 流量的 ACK 数据包,这些是我的结果:

    Protocol           Size        Description
Ethernet protocol    14 byte    2 MAC adresses (6 byte), Protocoll type (2 byte)
Internet protocol    20 byte    The default header size
      TC protocol    32 byte    The default header size (20 byte) + options (12 byte)
_____________________________________________________________________________________
            Total    66 byte
       without EP    52 byte    (Probably the size the OP is talking about)
 without EP, Opts    40 byte    (The size talked about in the comments)

在我的例子中,选项是 2 个 NOP(每个 1 字节)和两个时间戳(每个 5 字节??)。协议(protocol)的顺序与 Wireshark 中的相同。

Wireshark 将信息拆分到每个字段,因此您可以看到哪些占用了多少空间。

关于无数据发送的 60 字节的 Tcp 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11670779/

相关文章:

Linux TCP 在重负载下奇怪地没有响应

python - 将所有 pcap 文件转换为包含所需列的 csv python

linux - 如何自动测量两台主机之间的带宽使用情况

tcp - 将 BufferedReader.readLine() 与套接字一起使用并陷入无限循环

linux - 重播/返工 TCP 数据包(中间人)

google-chrome - 当握手中没有发送 "Client Request"时,Chrome 如何知道提供客户端证书?

ssl - Wireshark 中的 TCP 协议(protocol)而不是 SSL/TLS

http - 当我的浏览器进行搜索时会发生什么? (ARP、DNS、TCP 细节)

linux - Linux内核如何处理乱序tcp段?

java - 如何使用 TCP/IP 将消息发送到 java 中的多播地址?