相关疑难解决方法(0)

struct ip和struct iphdr之间的区别

我试图了解网络是如何工作的,我正在做一些测试,发送一些软件包......无论如何

我的观点是,我找不到"protocol" structure和之间的真正区别"protocol header" structure.

对于ip结构,它们都大小为20个字节.但例如:

  • struct ip并且struct iphdr大小为20个字节
  • struct icmp 大小为28个字节
  • struct icmphdr 大小为8个字节

我猜这struct icmp包括一个struct ip/iphdr?

我所看到的每个协议都有相同的结构. struct udp/ struct udphdr,

是否链接到IP_HDRINCL设置setsockopt()

所以我的问题是它们之间真正的区别是什么?而当使用好的.

ip和iphdr结构:

struct iphdr {
    #if defined(__LITTLE_ENDIAN_BITFIELD)
        __u8    ihl:4,
                version:4;
    #elif defined (__BIG_ENDIAN_BITFIELD)
        __u8    version:4,
                ihl:4;
    #else
        #error  "Please fix <asm/byteorder.h>"
    #endif
         __u8   tos;
         __u16  tot_len;
         __u16  id;
         __u16  frag_off;
         __u8   ttl;
         __u8   protocol;
         __u16  check;
         __u32  saddr; …
Run Code Online (Sandbox Code Playgroud)

c ip networking icmp

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

icmp ×1

ip ×1

networking ×1