成员     长度(Bit)     描述
Version     4      IP头的版本号,目前是IPv4,最新是IPv6
Header Length     4      IP头的长度,若没有特殊选择,IP头总是20字节长
Type of Service     8      服务类型,定义了数据传输的优先级、延迟、吞吐量和可靠性等特性
Total Packet Length     16      IP包的长度,若没有特殊选项,一般为20字节长
Identification     16      IP包标识,主机使用它唯一确定每个发送的数据报
Flag     3      IP数据分割标志
Fragment Offset     13      IP数据分割偏移
Time to Live      8      数据报在网络上的存活时间,每通过一个路由器,该数值减一
Protocol      8      TCP/IP协议类型,比如:ICMP为1,IGMP为2,TCP为6,UDP为17等
Header Checksum     16     头部检验和
Source IP Address      32     源IP地址
Destination IP Address     32      目的IP地址
Other       其他选项
Data        数据

struct iphdr
     {
       unsigned char ihl:4, version:4, tos;
       unsigned short tot_len, id, frag_off;
       unsigned char ttl, protocol;
       unsigned short check;
       unsigned int saddr, daddr;
     };
    
     struct igmphdr
     {
       unsigned char type, code;
       unsigned short cksum;
       struct in_addr group;
     };

typedef struct ethdr
{
     unsigned char   eh_dst[6];
     unsigned char   eh_src[6];
     unsigned short eh_type;
}

struct udphdr
{
     unsigned short souceport;
     unsigned short destport;
     unsigned short length;
     unsigned short checksum;
}

struct tcphdr { unsigned short source;
        unsigned short dest;
        unsigned long seq;
        unsigned long ack_seq;       
        unsigned short doff:4;
        unsigned char flags;
        unsigned short window;       
        unsigned short check;
        unsigned short urg_ptr;
};

posted on 2008-08-19 23:20  睿达团队  阅读(968)  评论(0编辑  收藏  举报