TCPDUMP:服务器客户端通信



我正在使用tcpdump -X捕获服务器和客户端之间的通信。我注意到一个模式,但我不确定我是否完全理解它。在下文中,我用 X 替换了所有标头数据(IP 和 TCP,均为 20 个字节,因此有效负载从每个数据包中的第三行和第五个十六进制开始(,因此所有 ascii 都用点替换。但是您可以阅读我的问题将引用的有效载荷。

下面你可以看到服务器和客户端之间每~15秒发生的确切模式。如果将"0500 0000 0000"(第一个数据包的有效负载(从十六进制转换为二进制到十进制,并在 ascii 表中查找,您会注意到客户端发送到服务器的第一条消息是"ENQ"。然后服务器以"06"响应。同样,如果您转换该 06(十六进制>二进制> ascii 表(,您会注意到服务器实际上说"ACK"。在第三个数据包中,客户端发送零(为什么???(。之后是沉默,15秒后,这种确切的模式重复出现。

所以这是我的问题: 这是一个已知的模式吗,它有什么好处?一定是某种"嘿,你还在那里,伙计?"的沟通(请确认是否属实?我对探索网络通信很陌生。但是为什么ENQ带有尾随零(第一个数据包(?我的意思是ACK(第二个数据包(只有1个字节,这已经足够了并且有意义。我希望 ENQ 也是如此?为什么客户端在模式重复之前在第三个数据包中发送零?这样做的目的是什么?

10:22:10.579188 IP CLIENT > SERVER
0x0000:  XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX  ................
0x0010:  XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX  ................
0x0020:  XXXX XXXX XXXX XXXX 0500 0000 0000       ..............
10:22:10.579360 SERVER > CLIENT
0x0000:  XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX  ................
0x0010:  XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX  ................
0x0020:  XXXX XXXX XXXX XXXX 06                   .........
10:22:10.779322 CLIENT > SERVER
0x0000:  XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX  ................
0x0010:  XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX  ................
0x0020:  XXXX XXXX XXXX XXXX 0000 0000 0000       ..............

已编辑: 看起来像保持活动状态的消息 (https://www.rfc-editor.org/rfc/rfc1122#page-101(,但通常是没有数据的 ACK 数据包或一个八位字节垃圾数据。您的数据包充满了 XX,所以我不确定它是否是 ACK 数据包,但只有一个数据包包含一个八位字节(可能(垃圾数据。你能在数据包中显示你的标志字节(字节号 34(吗?

顺便说一句,恕我直言,没有名为 ENQ 的数据包 - 写 ENQ 你的意思是标志还是别的什么?

以前的答案: IP 和 TCP 标头确实有 20 个字节(通常(,但不要忘记前 14 个字节 - 它是以太网标头。因此,通常有效的 TCP/IP 标头为 14 + 20 + 20 = 54 字节 - 您的数据包有 46 或 41 个字节。它不是 TCP 数据包。也许这篇文章会有所帮助:
https://www.pacificsimplicity.ca/blog/reading-packet-hex-dumps-manually-no-wireshark

检查以太网标头以确保使用的协议类型(字节 13-14 并与 http://standards-oui.ieee.org/ethertype/eth.txt 进行比较(。

最新更新