器件型号:EVMK2H
大家好、社区
我正在与 TI-RTOS 和 EVMK2H 一起处理一个项目。 我使用 NDK TCP 堆栈创建了 TCP 客户端套接字。 我对这个堆栈有疑问。
使用3路握手(SYN、SYNACK、ACK)的 TCP。 SYN 数据包必须为 SEQ=0、 SYNACK 数据包必须为 SEQ=0 ACK=1、 ACK 数据包必须为 SEQ=1 ACK=1。
在我的情况下、很少 ACK 数据包具有无效的 Seq&ack 编号、而 SYN 和 SYNACK 数据包具有有效的 Seq&ack。 因此、连接从未建立 、因为 EVMK2H 向(SEQ=2973524992) TCP 服务器发送 SYN 数据包时尝试使用 SYNACK (SEQ=341319993、ACK=2973524682)建立、但 NDK-TCP 堆栈使用 ACK (SEQ=139587585、Ack=4140089672)进行应答。
这种三次握手不正常:
--> SYN(Seq=A)
--SYNACK (SEQ=B、ack=A+1)
--> ACK (C 非 A+1、D 非 B+1)
如何处理此问题?
此致、
SRT