This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号: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
您好!
感谢您的回答。
RTOS 为`BIOS_6_37_03_30`、NDK 为`NDK_2_22_02_16`。 我创建了 TCP 客户端套接字并将 TCP 连接请求发送到 TCP 服务器。 TCP 服务器在另一个嵌入式电路板上运行。 第一次连接没有问题。 在其中一个 TCP 端断电和通电后(没有 FIN 数据包)出现问题、因此其他 TCP 端无法识别它。
我`S了另一项测试:EVMK2H (TCP 客户端)和 PC (TCP 服务器)、测试对象为"便携式测试"(https://bit.ly/2s2or3Y)。 我为 EVMK2H 上电并尝试使用同一端口进行 TCP 连接(PC 仍被认为已建立)。 这一次 PC 端中断 TCP 三次握手(PC 发送了错误的 SYNACK 序列和应答编号)。 是否可能是 TCP 一般问题?
此致、
SRT