gpt4 book ai didi

c - 为什么原始套接字改变了我的 TCP 校验和

转载 作者:可可西里 更新时间:2023-11-01 02:50:48 25 4
gpt4 key购买 nike

我写了一个程序来测试原始套接字sento功能,我发现当我写一个校验和错误的tcp消息时,我在wireshark中观察到一个正确的校验和,以下是我的程序:

int main()
{
int sock_raw_fd,len;
struct sockaddr_ll sll;

struct ifreq ethreq;

strncpy (ethreq.ifr_name, "eth0", (sizeof(ethreq.ifr_name) - 1));
ethreq.ifr_name[sizeof(ethreq.ifr_name)-1] = '\0';
sock_raw_fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));

if(sock_raw_fd < 0){
perror("socket");
exit(1);
}

if(-1 == ioctl(sock_raw_fd, SIOCGIFINDEX, &ethreq)){
perror("ioctl");
close(sock_raw_fd);
exit(1);
}

bzero(&sll, sizeof(sll));
sll.sll_ifindex = ethreq.ifr_ifindex;

unsigned char buf[size] = {0xF0,0xDE,0xF1,0x06,0x71,0x3A,0x00,0xE0,0x66,0xE2,0xEA,0xC0,0x08,0x00,0x45,0x00,0x05,0xDC,0x2B,0x5E,0x40,0x00,0x40,0x06,0x85,0xE9,0xC0,0xA8,0x01,0x0A,0xC0,0xA8,0x01,0x7A,0x09,0x79,0xD8,0xB7,0x27,0x6C,0x4C,0x2C,0xF5,0x9C,0xAB,0xC9,0x50,0x10,0x01,0x00,0xAB,0xC9,0x00,0x00,0x7C,0xC8,0xE8,0x89,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFD,0xFF,0xFD,0xFE,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFD,0xFE,0xFF,0xFD,0xFE,0xFF,0xFF,0xFC,0xFF,0xFF,0xFD,0xFF,0xFE,0xFE,0xFF,0xFD,0xFE,0xFF,0xFE,0xFC,0xFE,0xFE,0xFD,0xFE,0xFE,0xFD,0xFF,0xFE,0xFC,0xFD,0xFE,0xFD,0xFE,0xFE,0xFC,0xFF,0xFE,0xFC,0xFE,0xFE,0xFC,0xFD,0xFE,0xFB,0xFF,0xFE,0xFC,0xFF,0xFE,0xFC,0xFF,0xFE,0xFC,0xFF,0xFE,0xFC,0xFF,0xFE,0xFA,0xFE,0xFD,0xFB,0xFE,0xFC,0xFB,0xFF,0xFC,0xFA,0xFD,0xFE,0xFB,0xFE,0xFE,0xFA,0xFF,0xFD,0xFA,0xFE,0xFD,0xFA,0xFD,0xFE,0xF9,0xFF,0xFC,0xFB,0xFE,0xFC,0xFA,0xFD,0xFD,0xF9,0xFE,0xFE,0xFA,0xFE,0xFC,0xFA,0xFE,0xFD,0xF9,0xFE,0xFD,0xF8,0xFD,0xFC,0xF9,0xFF,0xFE,0xF9,0xFE,0xFD,0xF9,0xFE,0xFD,0xF8,0xFE,0xFD,0xF8,0xFE,0xFD,0xF9,0xFE,0xFD,0xF7,0xFE,0xFC,0xF8,0xFE,0xFB,0xF8,0xFE,0xFC,0xF8,0xFE,0xFB,0xF8,0xFE,0xFC,0xF8,0xFE,0xFC,0xF7,0xFE,0xFB,0xF6,0xFE,0xFD,0xF8,0xFE,0xFD,0xF7,0xFE,0xFC,0xF7,0xFE,0xFB,0xF6,0xFE,0xFB,0xF5,0xFE,0xFD,0xF7,0xFE,0xFC,0xF7,0xFD,0xFB,0xF7,0xFC,0xFC,0xF6,0xFE,0xFC,0xF4,0xFE,0xFC,0xF5,0xFD,0xFC,0xF5,0xFC,0xFC,0xF4,0xFE,0xFC,0xF6,0xFD,0xFB,0xF5,0xFC,0xFB,0xF4,0xFD,0xFB,0xF4,0xFE,0xFB,0xF5,0xFE,0xFB,0xF5,0xFE,0xFB,0xF4,0xFE,0xFB,0xF3,0xFE,0xFB,0xF4,0xFE,0xFB,0xF2,0xFE,0xFB,0xF3,0xFD,0xFB,0xF3,0xFC,0xFB,0xF3,0xFC,0xFB,0xF3,0xFD,0xFB,0xF2,0xFD,0xFB,0xF2,0xFC,0xFB,0xF2,0xFC,0xFB,0xF1,0xFE,0xFB,0xF2,0xFD,0xFB,0xF2,0xFC,0xFA,0xF2,0xFC,0xF9,0xF2,0xFE,0xFB,0xF0,0xFD,0xFA,0xF1,0xFC,0xF9,0xF0,0xFD,0xFA,0xEF,0xFD,0xFA,0xF0,0xFD,0xFA,0xF0,0xFD,0xFA,0xF0,0xFD,0xFA,0xF0,0xFE,0xFA,0xF0,0xFC,0xFA,0xEE,0xFD,0xFA,0xEF,0xFD,0xF9,0xEF,0xFD,0xF8,0xEF,0xFD,0xF9,0xEF,0xFD,0xF9,0xFD,0xF8,0xEA,0xFC,0xF8,0xEA,0xFB,0xF8,0xEA,0xFD,0xF8,0xE8,0xFC,0xF7,0xE9,0xFB,0xF6,0xE9,0xFB,0xF6,0xE9,0xFD,0xF8,0xE9,0xFC,0xF8,0xE9,0xFC,0xF7,0xE8,0xFC,0xF6,0xE8,0xFB,0xF7,0xE9,0xFC,0xF7,0xE7,0xFC,0xF7,0xE8,0xFC,0xF7,0xE7,0xFC,0xF7,0xE6,0xFC,0xF7,0xE7,0xFC,0xF7,0xE7,0xFC,0xF7,0xE6,0xFC,0xF7,0xE5,0xFC,0xF7,0xE7,0xFC,0xF7,0xE6,0xFC,0xF7,0xE6,0xFC,0xF6,0xE5,0xFC,0xF5,0xE4,0xFC,0xF6,0xE5,0xFC,0xF6,0xE5,0xFC,0xF6,0xE5,0xFC,0xF6,0xE5,0xFC,0xF6,0xE3,0xFC,0xF6,0xE4,0xFC,0xF6,0xE4,0xFC,0xF6,0xE4,0xFC,0xF4,0xE2,0xFB,0xF5,0xE3,0xFA,0xF6,0xE3,0xFB,0xF6,0xE2,0xFC,0xF6,0xE3,0xFA,0xF4,0xE1,0xFA,0xF5,0xE2,0xFB,0xF5,0xE3,0xFC,0xF4,0xE2,0xFC,0xF5,0xE0,0xFB,0xF5,0xE1,0xFA,0xF5,0xE1,0xFA,0xF5,0xE1,0xFC,0xF5,0xE1,0xFB,0xF4,0xE1,0xFB,0xF4,0xE0,0xFB,0xF5,0xDF,0xFB,0xF5,0xE0,0xFB,0xF5,0xDE,0xFA,0xF5,0xDF,0xFB,0xF5,0xDF,0xFC,0xF5,0xDF,0xFA,0xF3,0xDF,0xFB,0xF4,0xDE,0xFB,0xF3,0xDD,0xFB,0xF2,0xDE,0xFB,0xF3,0xDE,0xFB,0xF2,0xDE,0xFB,0xF3,0xDE,0xFB,0xF4,0xDD,0xFB,0xF4,0xDC,0xFB,0xF4,0xDD,0xFB,0xF4,0xDD,0xFB,0xF3,0xDC,0xFB,0xF2,0xDB,0xF9,0xF3,0xDC,0xFA,0xF3,0xDB,0xFA,0xF3,0xDA,0xF9,0xF3,0xDB,0xFA,0xF3,0xDA,0xFA,0xF3,0xDA,0xFA,0xF3,0xDA,0xFA,0xF3,0xDA,0xFA,0xF3,0xDA,0xC8,0xE8,0x89,0xC2,0xE6,0x7C,0x7A,0x92,0x4B,0x47,0x50,0x82,0x47,0x50,0x82,0x47,0x50,0x82,0x47,0x50,0x82,0x47,0x50,0x82,0x47,0x50,0x82,0x47,0x50,0x82,0x47,0x50,0x82,0x47,0x50,0x82,0x47,0x50,0x82,0x48,0x51,0x83,0x47,0x50,0x82,0x47,0x50,0x82,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x46,0x4F,0x81,0x48,0x4F,0x81,0x48,0x4F,0x81,0x48,0x4F,0x81,0x48,0x4F,0x81,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x48,0x4F,0x81,0x48,0x4F,0x81,0x48,0x4F,0x81,0x48,0x4F,0x81,0x48,0x4F,0x81,0x48,0x4F,0x81,0x48,0x4F,0x81,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x47,0x4E,0x80,0x49,0x4D,0x80,0x49,0x4D,0x80,0x48,0x4C,0x7F,0x48,0x4C,0x7F,0x49,0x4D,0x80,0x49,0x4D,0x80,0x48,0x4C,0x7F,0x48,0x4C,0x7F,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x46,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x48,0x4D,0x7E,0x47,0x4C,0x7D,0x47,0x4C,0x7D,0x47,0x4C,0x7D,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xF1,0xF9,0xF1,0xC2,0xE6,0x7C,0x7A,0x92,0x4B,0x4E,0x54,0x81,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4F,0x55,0x84,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4F,0x55,0x84,0x4F,0x55,0x84,0x4F,0x55,0x84,0x4F,0x55,0x84,0x4F,0x55,0x84,0x4F,0x55,0x84,0x4F,0x55,0x84,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4E,0x54,0x83,0x4F,0x55,0x84,0x4F,0x55,0x84,0x4F,0x55,0x84,0x4F,0x55,0x84,0x51,0x55,0x85,0x51,0x55,0x85,0x50,0x56,0x85,0x50,0x56,0x85,0x50,0x56,0x85,0x50,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4C,0x56,0x85,0x4C,0x56,0x85,0x4C,0x56,0x85,0x4C,0x56,0x85,0x4A,0x57,0x85,0x4A,0x57,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0x56,0x85,0x4E,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

len = sendto(sock_raw_fd, &buf[0], size, 0, (struct sockaddr*)&sll, sizeof(sll));

printf("send succeed: %d bytes\n",len);
return 0;
}

我发送的校验和是ABC9但我在 wireshark 中收到的这条消息是 wireshark message

校验和是 DEEA,它是正确的,我想看看校验和是 ABC9 但不正确,但我不知道如何设置原始套接字不要更改我的校验和。

谢谢!

最佳答案

我假设 wireshark 转储来自接收机器,而不是来自发送方,这可能是由于您的网卡正在执行校验和卸载。您可以使用 ethtool 禁用该行为:

ethtool -K eth0 tx-checksum-ipv4 off
ethtool -K eth0 tx-checksum-ip-generic off

您现在可以检查您的设置是否正确

ethtool -k eth0

关于c - 为什么原始套接字改变了我的 TCP 校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41390782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com