我试图了解网络是如何工作的,我正在做一些测试,发送一些软件包......无论如何
我的观点是,我找不到"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)