如果我没有正确提出问题,请原谅。英语不是我的母语。
我正在尝试解析SyncE ESMC数据包。这是以太网慢速协议数据包。
方法1: 为了解析此数据包,我使用了逐字节的方法,类似于此处所做的方法。
方法2: 解析数据包的另一种方法是定义一个“结构体”来表示整个数据包,并访问各个字段以检索特定偏移量处的值。 但是,在这种方法中,结构填充和对齐可能会出现(我不确定),但在Linux上,各种数据包头以结构体的形式定义,例如iphdr在ip.h中。 IP数据包(缓冲区)可以强制转换为“iphdr”,以检索IP头字段,因此它必须有效。
在C中解析网络数据包哪种方法更好?
在通过方法2解析数据包时,结构填充和对齐是否有任何影响?如果有,Linux头文件是如何解决这个问题的?