• TCP/IP协议头部结构体


    //Mac头部,总长度14字节
    typedef struct _eth_hdr
    {
    unsigned char dstmac[6]; //目标mac地址
    unsigned char srcmac[6]; //源mac地址
    unsigned short eth_type; //以太网类型
    }eth_hdr;
     
    //IP头部,总长度20字节
    typedef struct _ip_hdr
    {
    #if LITTLE_ENDIAN
    unsigned char ihl:4;   //首部长度
    unsigned char version:4, //版本 
    #else  www.2cto.com  
    unsigned char version:4, //版本
    unsigned char ihl:4;   //首部长度
    #endif
    unsigned char tos;   //服务类型
    unsigned short tot_len; //总长度
    unsigned short id;    //标志
    unsigned short frag_off; //分片偏移
    unsigned char ttl;   //生存时间
    unsigned char protocol; //协议
    unsigned short chk_sum; //检验和
    struct in_addr srcaddr; //源IP地址
    struct in_addr dstaddr; //目的IP地址
    }ip_hdr;
     
    //TCP头部,总长度20字节
    typedef struct _tcp_hdr
    {
    unsigned short src_port;   //源端口号
    unsigned short dst_port;   //目的端口号
    unsigned int seq_no;    //序列号
    unsigned int ack_no;    //确认号
    #if LITTLE_ENDIAN
    unsigned char reserved_1:4; //保留6位中的4位首部长度
    unsigned char thl:4;    //tcp头部长度
    unsigned char flag:6;    //6位标志
    unsigned char reseverd_2:2; //保留6位中的2位
    #else
    unsigned char thl:4;    //tcp头部长度
    unsigned char reserved_1:4; //保留6位中的4位首部长度
    unsigned char reseverd_2:2; //保留6位中的2位
    unsigned char flag:6;    //6位标志 
    #endif
    unsigned short wnd_size;   //16位窗口大小
    unsigned short chk_sum;   //16位TCP检验和
    unsigned short urgt_p;    //16为紧急指针
    }tcp_hdr;  www.2cto.com  
     
    //UDP头部,总长度8字节
    typedef struct _udp_hdr
    {
    unsigned short src_port; //远端口号
    unsigned short dst_port; //目的端口号
    unsigned short uhl;   //udp头部长度
    unsigned short chk_sum; //16位udp检验和
    }udp_hdr;
     
    //ICMP头部,总长度4字节
    typedef struct _icmp_hdr
    {
    unsigned char icmp_type;   //类型
    unsigned char code;    //代码
    unsigned short chk_sum;   //16位检验和
    }icmp_hdr; 
     
  • 相关阅读:
    Bzoj1101 [POI2007]Zap
    Bzoj2393 Cirno的完美算数教室
    UVa10891 Game of Sum
    Bzoj4128 Matrix
    类的组合
    继承
    属性查找与绑定方法
    类与对象
    面向对象程序设计——基础概念
    修改个人信息的程序
  • 原文地址:https://www.cnblogs.com/wanghuaijun/p/6402355.html
Copyright © 2020-2023  润新知