以太网帧传输层识别
Ethernet frame transport layer recognition
最近我一直在研究嵌入式系统中的原始以太网支持。主要用于教育目的和专业知识。使用在 google 上找到的一些数据,我能够实现 ARP 支持,并分离 UDP/TCP 传输层支持。
不幸的是,我在同时支持它们 (UDP/TCP) 时遇到了问题。基本上我无法识别传入的帧协议,因此无法决定是将其发送到 UDP 还是 TCP 处理程序。不能将它发送给两者而不会有获取格式错误数据的风险。
我期望一些位域表示该信息,但找不到它。
我找了几天这个信息,但找不到任何来源,可能是因为我误解了什么。
我可以通过解释 subject/hinting 在哪里查看来向更有经验的 IT 人员寻求帮助吗?我觉得我在死胡同里。
提前致谢。
TCP/UDP 不应直接嵌入到以太网帧中。
TCP 段应位于 Type = 6, and the IP packet should be inside the Ethernet Frame with EtherType= 0x800(对于 IPv4)的 IP 数据包内:
Ethernet EtherType=0x800 (IPv4)
+----------------------------------+
| IP Type=6 (TCP) |
| +-------------------------+ |
| | | |
| | +---------------+ | |
| | | TCP | | |
| | | | | |
| | +---------------+ | |
| | | |
| +-------------------------+ |
| |
+----------------------------------+
对于UDP,也是一样的,只是IP类型是17,而不是6。
最近我一直在研究嵌入式系统中的原始以太网支持。主要用于教育目的和专业知识。使用在 google 上找到的一些数据,我能够实现 ARP 支持,并分离 UDP/TCP 传输层支持。 不幸的是,我在同时支持它们 (UDP/TCP) 时遇到了问题。基本上我无法识别传入的帧协议,因此无法决定是将其发送到 UDP 还是 TCP 处理程序。不能将它发送给两者而不会有获取格式错误数据的风险。 我期望一些位域表示该信息,但找不到它。
我找了几天这个信息,但找不到任何来源,可能是因为我误解了什么。
我可以通过解释 subject/hinting 在哪里查看来向更有经验的 IT 人员寻求帮助吗?我觉得我在死胡同里。
提前致谢。
TCP/UDP 不应直接嵌入到以太网帧中。 TCP 段应位于 Type = 6, and the IP packet should be inside the Ethernet Frame with EtherType= 0x800(对于 IPv4)的 IP 数据包内:
Ethernet EtherType=0x800 (IPv4)
+----------------------------------+
| IP Type=6 (TCP) |
| +-------------------------+ |
| | | |
| | +---------------+ | |
| | | TCP | | |
| | | | | |
| | +---------------+ | |
| | | |
| +-------------------------+ |
| |
+----------------------------------+
对于UDP,也是一样的,只是IP类型是17,而不是6。