以太网原始数据和框架检查顺序



我正在尝试通过C代码使用以太网框架构建原始数据。我构建了一个数据包(包括以太网 -> ip-> udp-> DHCP协议),并通过WiFi接口发送。我通过打印出来的Wireshark遵循:以太网2->框架检查顺序 ->不正确,应为xxx。

我没有在数据包中构建FCS数据,而是将字段留为空白。现在,我在C中找不到任何简单的功能/代码。我发现的所有代码都给了我不好的输出。

有人以前做过它,可以分享如何在以太网包中实现FC?

预先感谢您

修复:似乎FCS计算只是可选的,我添加了IP校验和计算,这足以让DHCP通过。

谢谢。

尝试:

#define BYTE unsigned char
     int fcs(BYTE* paquete,int n){
        int byte,sum=0;
        n++;
        for(int j=0;j<=n;j++){
                byte=paquete[j];
                for(int i=0;i<8;i++){
                        if(j!=n && i<7){
                                sum = sum+(byte & 0x01);
                                byte = byte >> 1;
                        }
                }
        }
        return sum;
}

最新更新