首页 文章

从以太网帧中提取UDP数据包有效负载

提问于
浏览
0

我正在使用一些Layer-2 API编写UDP send / recv . 我可以收到包含我的UDP数据包的以太网帧 . 例如,我发送 "hello" 并获得以下以太网帧 .

000f 5325 fb00 000f 5324 8c30 0800 4500   
0022 0000 4000 4011 5b0c 0a80 657d 0a80 
6542 c179 15b3 000e 46a2 3068 656c 6c6f 
0000 0000 0000 0000 0000 0000

哪里

000f 5325 fb00 : destination MAC
000f 5324 8c30 : source MAC
0800           : Ethernet type
....
68 656c 6c6f   : "hello"

如果我使用不同的程序发送UDP数据包,我的消息/有效负载(“hello”)的起始位会有所不同 .

Question: 如何提取有效载荷?

我需要尽可能地保持我的UDP协议实现,所以我最好用C语言编写它们 . 但是相关的库或系统功能仍然很有用 .

1 回答

  • 0

    您可以在Linux中使用POSIX Socket API . 您可以创建UDP套接字,recvfrom()调用可以获得您的UDP有效负载 .

相关问题