• <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 閱讀(6920) 評論(0)  編輯 收藏 引用 所屬分類: 協議分析

            <2008年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網絡開發

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 500428
            • 排名 - 37

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            国产精品99久久久精品无码| 国产精品一区二区久久| AV色综合久久天堂AV色综合在| 午夜精品久久久久久| 久久www免费人成看国产片| 久久综合九色综合精品| 国产精品久久久久久搜索| 久久久久久毛片免费播放| 久久天天躁狠狠躁夜夜网站 | 久久久久久久久久久久久久| 久久精品综合一区二区三区| 久久久久一本毛久久久| 亚洲精品综合久久| 亚洲人成网亚洲欧洲无码久久| 超级97碰碰碰碰久久久久最新| 亚洲愉拍99热成人精品热久久| 久久偷看各类wc女厕嘘嘘| 久久国产高清字幕中文| 久久综合九色综合欧美就去吻| 亚洲精品无码久久毛片| 狼狼综合久久久久综合网| 久久99精品久久久久久久久久 | 久久久久久亚洲AV无码专区| 久久精品亚洲一区二区三区浴池| 国产精品99久久久久久人| 国内精品久久久久久久涩爱 | 久久久久久九九99精品| 久久综合丝袜日本网| 久久影院亚洲一区| 久久久久久无码Av成人影院| 国产午夜精品久久久久九九| 性做久久久久久久久浪潮| 精品精品国产自在久久高清| 久久婷婷五月综合97色直播| 久久久久99精品成人片欧美| 国产99久久久国产精免费| 亚洲人成伊人成综合网久久久| 久久国产免费直播| 久久国产欧美日韩精品| 久久笫一福利免费导航| 国产激情久久久久影院老熟女免费|