• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            aurain
            技術文摘
            posts - 137,  comments - 268,  trackbacks - 0

             

            #ifndef _PROTO_H_
            #define _PROTO_H_

            /*
            * TCP/IP 協議類型
            */

            #define IPPROTO_IP        0              // IP
            #define IPPROTO_ICMP    1              // ICMP
            #define IPPROTO_TCP        6              // TCP
            #define IPPROTO_UDP        17             // UDP

            /*
            * 常見端口
            */

            #define PORT_DNS        53                // DNS

            /*
            * 其它定義
            */

            #define ETH_ALEN       6              // 以太網地址大小
            #define ETH_HLEN       14             // 以太網頭部大小
            #define ETH_DATA_LEN   1500           // 最大幀負載數據大小
            #define ETH_FRAME_LEN  1514           // 最大幀大小,頭部+負載數據

            /**
             * 常見協議定義
            *
            */

            #pragma pack(push, 
            1)

            /*
            *14字節的以太網包頭
            */

            typedef 
            struct _ETHDR         
            {
                UCHAR    eh_dst[ETH_ALEN];            
            // 目的MAC地址
                UCHAR    eh_src[ETH_ALEN];            // 源MAC地址
                USHORT    eh_type;                    // 下層協議類型,如IP(ETHERTYPE_IP)、ARP(ETHERTYPE_ARP)等
            }
             ETHDR, *PETHDR;

            /*
            *28字節的ARP頭
            */

            typedef 
            struct _ARPHDR    
            {
                USHORT    ar_hrd;                
            //    硬件地址類型,以太網中為ARPHRD_ETHER
                USHORT    ar_pro;                //  協議地址類型,ETHERTYPE_IP
                UCHAR    ar_hln;                //    硬件地址長度,MAC地址的長度為6
                UCHAR    ar_pln;                //    協議地址長度,IP地址的長度為4
                USHORT    ar_op;                //    ARP操作代碼,ARPOP_REQUEST為請求,ARPOP_REPLY為響應
                UCHAR    ar_sha[ETH_ALEN];    //    源MAC地址
                ULONG    ar_sip;                //    源IP地址
                UCHAR    ar_tha[ETH_ALEN];    //    目的MAC地址
                ULONG    ar_tip;                //    目的IP地址
            }
             ARPHDR, *PARPHDR;

            /*
            *20字節的IP頭
            */

            typedef 
            struct _IPHDR        
            {
                UCHAR    h_lenver;            
            // 版本號和頭長度(各占4位)
                UCHAR    tos;                // 服務類型 
                USHORT    total_len;            // 封包總長度,即整個IP報的長度
                USHORT    ident;                // 封包標識,惟一標識發送的每一個數據報
                USHORT    frag_and_flags;        // 標志
                UCHAR    ttl;                // 生存時間,就是TTL
                UCHAR    protocol;            // 協議,可能是TCP、UDP、ICMP等
                USHORT    checksum;            // 校驗和
                ULONG    saddr;                // 源IP地址
                ULONG    daddr;                // 目標IP地址
            }
             IPHDR, *PIPHDR; 

            /*
            *20字節的TCP頭
            */

            typedef 
            struct _TCPHDR    
            {
                USHORT    srceport;            
            // 16位源端口號
                USHORT    dstport;            // 16位目的端口號
                ULONG    seq;                // 32位序列號
                ULONG    ack;                // 32位確認號
                UCHAR    dataoffset;            // 高4位表示數據偏移
                UCHAR    flags;                // 6位標志位
                
            //FIN - 0x01
                
            //SYN - 0x02
                
            //RST - 0x04 
                
            //PSH - 0x08
                
            //ACK - 0x10
                
            //URG - 0x20
                
            //ACE - 0x40
                
            //CWR - 0x80

                USHORT    window;                
            // 16位窗口大小
                USHORT    checksum;            // 16位校驗和
                USHORT    urgptr;                // 16位緊急數據偏移量 
            }
             TCPHDR, *PTCPHDR;

            /*
            *偽TCP頭,計算校驗和時使用
            */

            typedef 
            struct _PSDTCPHDR
            {
                ULONG    saddr;
                ULONG    daddr;
                
            char    mbz;
                
            char    ptcl;
                USHORT    tcpl;
            }
             PSDTCPHDR, *PPSDTCPHDR;

            /*
            *8字節的UDP頭
            */

            typedef 
            struct _UDPHDR
            {
                USHORT    srcport;            
            // 源端口號        
                USHORT    dstport;            // 目的端口號        
                USHORT    len;                // 封包長度
                USHORT    checksum;            // 校驗和
            }
             UDPHDR, *PUDPHDR;

            /*
            *偽UDP頭,計算校驗和時使用
            */

            typedef 
            struct _PSDUDPHDR
            {
                ULONG    saddr;
                ULONG    daddr;
                
            char    mbz;
                
            char    ptcl;
                USHORT    udpl;
            }
             PSDUDPHDR, *PPSDUDPHDR;

            /*
            *12字節的ICMP頭
            */

            typedef 
            struct _ICMPHDR
            {
                UCHAR   type;                
            //類型
                UCHAR   code;                //代碼
                USHORT  checksum;            //校驗和
                USHORT  id;                    //標識符
                USHORT  sequence;            //序列號
                ULONG   timestamp;            //時間戳
            }
             ICMPHDR, *PICMPHDR;

            /*
            *6字節的PPPOE頭+2字節協議
            */

            typedef 
            struct _PPPOEHDR
            {
                UCHAR    ver_type;            
            //版本+類型 一般為0x11
                UCHAR    code;                //編碼
                USHORT    sessionid;            //session id
                USHORT    len;                //長度
                USHORT    protocol;            //協議
            }
             PPPOEHDR, *PPPPOEHDR;

            /*
            * dns包頭
            */

            typedef 
            struct _DNSHDR 
            {
                USHORT id;
                USHORT flags;
                USHORT quests;
                USHORT answers;
                USHORT author;
                USHORT addition;
            }
             DNSHDR, *PDNSHDR;

            /* 
            * dns查詢包,query
            */

            typedef 
            struct _DNSQUERY
            {
                
            /*UCHAR *dname;*/    //查詢的域名,這是一個大小在0到63之間的字符串
                /*該域名的獲取方法如下:
                * 長度:udp包總長度-sizeof(UDPHDR)-sizeof(DNSHDR)-sizeof(DNSQUERY)
                * 內容在dns頭后面
                
            */

                USHORT    type;            
            //查詢類型,大約有20個不同的類型
                USHORT    classes;        //查詢類,通常是A類既查詢IP地址
            }
             DNSQUERY, *PDNSQUERY;

            /* 
            * dns響應包
            */

            typedef 
            struct _DNSRESPONSE
            {
                USHORT    name;        
            // 查詢的域名
                USHORT    type;        // 查詢的類型
                USHORT    classes;    // 類型碼
                UINT    ttl;        // 生存時間
                USHORT    length;        // 資源數據長度
                UINT    addr;        // 資源數據
            }
             DNSRESPONSE, *PDNRESPONSE;

            #pragma pack(pop)

            #endif
            posted on 2009-12-03 11:47 閱讀(6909) 評論(0)  編輯 收藏 引用 所屬分類: 協議分析

            <2009年11月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網絡開發

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 499036
            • 排名 - 36

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            狠狠色丁香婷综合久久| 天天做夜夜做久久做狠狠| 国产成人精品免费久久久久| 少妇久久久久久久久久| 久久99精品国产99久久| 日韩中文久久| 狠狠色丁香久久综合五月| 老司机午夜网站国内精品久久久久久久久| 久久影院久久香蕉国产线看观看| 伊人久久大香线焦AV综合影院| 久久久精品一区二区三区| 久久精品国产亚洲av麻豆蜜芽 | 久久男人中文字幕资源站| 久久99热这里只有精品国产| 国产三级精品久久| 久久精品中文无码资源站| 一级女性全黄久久生活片免费| 久久精品国产亚洲AV电影| 久久综合日本熟妇| 26uuu久久五月天| 久久99国产综合精品女同| 漂亮人妻被中出中文字幕久久| 香蕉久久一区二区不卡无毒影院| 久久精品国产99久久久古代| 久久精品国产一区二区| 精品久久久久久国产牛牛app| 久久久无码精品亚洲日韩蜜臀浪潮| 欧美色综合久久久久久| 一本色道久久88加勒比—综合| 久久久老熟女一区二区三区| 欧美亚洲国产精品久久| 性做久久久久久免费观看| 日本一区精品久久久久影院| 亚洲精品tv久久久久久久久| 国产精品久久久久久久app| 久久最新免费视频| 亚洲婷婷国产精品电影人久久 | 国产香蕉久久精品综合网| 久久亚洲天堂| 午夜视频久久久久一区 | 国产精品美女久久久网AV|