zoukankan      html  css  js  c++  java
  • TCP/IP各种数据包结构体

    下面这些TCP/IP数据包是我在进行Socket及Wipcap网络编程过程中曾经用到过的数据包结构体, 这些东西平时看起来不起眼,真正用到的时候就会觉得非常有用......


    以太帧头格式结构体,共14个字节:

      typedef struct ether_header {
       unsigned char ether_dhost[6];   //目的MAC地址
       unsigned char ether_shost[6];   //源MAC地址
       unsigned short ether_type;     //协议类型
      }ETHHEADER,*PETHHEADER;

    IPv4报头格式结构体,共20个字节:

        typedef struct ipv4_header {
    unsigned char ver_ihl;          //版本 (4 bits) + 首部长度 (4 bits)
    unsigned char tos;             //服务类型
    unsigned short tlen;            //数据报总长度
    unsigned short identification;    //标识
    unsigned short flags_fo;        //标志 (3 bits) + 片偏移 (13 bits)
            unsigned char ttl;             //生存时间
    unsigned char proto;           //协议
    unsigned short crc;            //首部校验和
    u_char ip_src[4];              //源IP地址
    u_char ip_dst[4];              //目的IP地址
        }IPHEADER,*PIPHEADER;

    IPv6报头格式结构体,共40个字节:

    typedef struct ipv6_header {
    u_char ver_tf;                //版本号(4 bit)
    u_char traffic;                //优先级(8 bit)
    u_short label;                //流标识(20 bit)
    u_char length[2];             //报文长度(16 bit)
    u_char next_header;           //下一头部(8 bit)
    u_char limits;                //跳数限制(8 bit)
    u_char Srcv6[16];            //源IPv6地址(128 bit)
    u_char Destv6[16];           //目的IPv6地址(128 bit)
    }IPv6_HEADER,*PIPv6_HEADER;

    TCP报头格式结构体,共20个字节:

    typedef struct tcp_header {
    WORD SourPort;       //源端口号  
    WORD DestPort;       //目的端口号
    DWORD SeqNo;       //序号
    DWORD AckNo;       //确认序号
    BYTE HLen;          //首部长度(保留位)
    BYTE Flag;           //标识(保留位)
    WORD Window;       //窗口大小
    WORD ChkSum;       //校验和
    WORD UrgPtr;        //紧急指针
    }TCPHEADER,*PTCPHEADER;

    UDP报头格式结构体,共8个字节:

    typedef struct udp_header {
    u_short sport;          //源端口号
    u_short dport;          //目的端口号
    u_short len;            //数据报长度
    u_short crc;            //校验和
    }UDPHEADER,*PUDPHEADER;

  • 相关阅读:
    mysql主从复制+读写分离
    lnmp平台菜鸟入门级笔记
    Shell编程
    Shell编程之--“grep-awk-sed” 基础用法汇总
    Nginx
    LB负载均衡之Nginx-Proxy
    LB(Load balance)负载均衡集群-LVS
    HA(High available)-Keepalived高可用性集群(双机热备)单点实验
    HA(High available)--Heartbeat高可用性集群(双机热备)
    linux -小记(3) 问题:linux 安装epel扩展源报错
  • 原文地址:https://www.cnblogs.com/RodYang/p/3271878.html
Copyright © 2011-2022 走看看