首页 > 解决方案 > 如何理解我在 PIC18 上收到的 TCP 选项字段?

问题描述

在此处输入图像描述我的目标是在我的 PIC18F67j60 微控制器(它有一个以太网模块)和我的主机之间交换数据包。我使用 MPLABX IDE(C 语言,pickit3)对 PIC18F 进行了编程,在计算机端,我使用 CODE::BLOCKS(C 语言)编写了一个简单的应用程序。在我的计算机上运行的应用程序可以正常工作(我对其进行了测试)。目标是在 PIC18 和计算机之间建立 TCP 通信(我知道 TCP 对微控制器等嵌入式设备不太好,因为它占用内存空间)。我已经设法建立了 UDP 通信,我可以从双方发送和接收任何数据。该问题发生在 TCP 通信中。问题如下:我的计算机向我的微控制器发送一个 TCP PDU(以启动连接过程,因此设置 SYN 标志)并且我的微控制器接收它。然后我决定在屏幕上显示(使用 UART)微控制器接收到的数据。我终于注意到我在 TCP“常规”标头中添加了一个 TCP 选项字段(在此 TCP 常规标头中,OFFSET 字节为“0x8 0",这意味着整个 TCP 标头是8 * 4 字节 = 32 字节长或 256 位长,如果你愿意的话,还有 32 = 20 + 12,这意味着除了 TCP 20 个常规字节之外,我还有 12 个字节)。 TCP 标头的最后一个字节是“紧急指针”,紧随其后的是 TCP 选项: TCP 选项字段 = “02 04 05 B4 01 03 03 08 01 01 04 02” 这个选项字段是什么意思?我明白那个“02 04 05 B4”是用于MSS字段的,但后来我一无所知,我不明白其他字节代表什么......有什么帮助吗?谢谢你提供的帮助。

标签: tcpheadernetwork-programmingoptionpic18

解决方案


推荐阅读