我正在尝试实现 TCP 握手但接收 RST 而不是 ACK:
No. Time Source Destination Protocol Length Info
62 24.622012890 192.168.0.147 192.168.0.41 TCP 76 51486 → 8888 [SYN] Seq=1240744644 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=2095798637 TSecr=0 WS=128
Frame 62: 76 bytes on wire (608 bits), 76 bytes captured (608 bits) on interface 0
Linux cooked capture
Internet Protocol Version 4, Src: 192.168.0.147, Dst: 192.168.0.41
Transmission Control Protocol, Src Port: 51486, Dst Port: 8888, Seq: 1240744644, Len: 0
No. Time Source Destination Protocol Length Info
63 24.627320274 192.168.0.41 192.168.0.147 TCP 62 8888 → 51486 [SYN, ACK] Seq=4039242319 Ack=0 Win=64240 Len=0
Frame 63: 62 bytes on wire (496 bits), 62 bytes captured (496 bits) on interface 0
Linux cooked capture
Internet Protocol Version 4, Src: 192.168.0.41, Dst: 192.168.0.147
Transmission Control Protocol, Src Port: 8888, Dst Port: 51486, Seq: 4039242319, Ack: 0, Len: 0
VSS-Monitoring ethernet trailer, Source Port: 0
No. Time Source Destination Protocol Length Info
64 24.627364199 192.168.0.147 192.168.0.41 TCP 56 51486 → 8888 [RST] Seq=0 Win=0 Len=0
Frame 64: 56 bytes on wire (448 bits), 56 bytes captured (448 bits) on interface 0
Linux cooked capture
Internet Protocol Version 4, Src: 192.168.0.147, Dst: 192.168.0.41
Transmission Control Protocol, Src Port: 51486, Dst Port: 8888, Seq: 0, Len: 0
我将 enc28j60 以太网控制器设置为服务器,并有脚本作为客户端。我尝试使用我自己的 TCP/IP 堆栈从 enc28j60(以太网控制器)发送一个 SYN、ACK 数据包,以响应来自客户端的 SYN,但我总是收到 RST 而不是 ACK。
根据 Wireshark,我的 SYN,ACK 中的校验和是正确的。我已经设置了ARP。
客户发送 RST 的一些原因是什么?