我写了一个C代码,它是在一个嵌入式系统中。客户端可以连接到我,但我不能连接服务器,因为它们不回复syn ack back。事实上,他们什么也不做。这是帧(第一个5是我个人电脑的mac,所以我把它们换成了00):
00 00 00 00 00 00 12 48 07 06 20 03 08 00 45 00 00 34 E2 44 40
00 80 06 00 00 A9 FE 19 FC A9 FE 19 FE 00 50 1F 90 00 BC 61 4E
00 00 00 00 80 02 FA F0 8A 16 00 00 02 04 FF D7 01 03 03 08 01
01 04 02 //old hex bytes new below大家好。又是我回来了。我已经检查了评论和答案,因此我更改了我的代码。现在,我正在尝试通过路由器连接到我的pc(服务器套接字HERCULES 8080端口正在被监听)我的嵌入式系统(客户端)。我还发现我的校验和计算是错误的。我根据RFC1071修复了它。在尝试SYN之后,我仍然无法获得SYN ACK消息。我在下面分享新的以太网帧(新的答案是在09.09.2021之后):
80 fa 5b 90 bf 5c 12 48 07 06 20 03 08 00 45 00 00 34 b4 00 40 00 80 06 00 00 c0 a8 01 6d c0 a8 01 64 00 50 1f 90 87 65 43 21 00 00 00 80 ff 06 64 00 02 ff 06 64 00 02 ff d7 01 03 08 01 01 04 02
你可以解码@:https://hpd.gasmi.net/得到与wireshark相同的结果
发布于 2021-09-02 00:46:38
您的IP地址为169.254.25.252,在自动专用Internet协议寻址范围内。此范围不是在internet上路由的,您永远不会得到回复
萨利姆
发布于 2021-09-20 13:47:10
我找到了解决方案。复制hercules SYN帧对我来说是一个错误。我以为IPv4报头校验和一定是0。然而,当我修正了那个框架后,它现在可以正常工作了。
https://stackoverflow.com/questions/69014803
复制相似问题