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

            <2009年4月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網絡開發

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 497473
            • 排名 - 36

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            国产亚洲色婷婷久久99精品| 综合网日日天干夜夜久久| 热99RE久久精品这里都是精品免费| 国产精品久久久久久搜索| 久久久久国产精品嫩草影院| 亚洲欧洲精品成人久久曰影片 | 精品国际久久久久999波多野| 狠狠色狠狠色综合久久| 99精品久久久久久久婷婷| 久久婷婷五月综合97色直播 | AA级片免费看视频久久| 久久久91精品国产一区二区三区| 久久精品国产一区二区三区日韩| 久久免费视频观看| 青青草国产97免久久费观看| 久久丫忘忧草产品| 久久亚洲美女精品国产精品| 久久99精品久久久久子伦| 丰满少妇人妻久久久久久| 国产ww久久久久久久久久| 91精品国产91久久| 国产精品日韩欧美久久综合| 91久久精品电影| 久久成人精品| 深夜久久AAAAA级毛片免费看| 欧美精品丝袜久久久中文字幕| 久久综合九色综合久99| 伊人热热久久原色播放www| 亚洲国产成人精品无码久久久久久综合 | yellow中文字幕久久网| 国产激情久久久久影院小草| 国产成人精品久久亚洲高清不卡 | 一本大道加勒比久久综合| 精品国产一区二区三区久久蜜臀| 久久精品国产99国产精品| 国产精品99久久久精品无码| 亚洲午夜精品久久久久久app| 久久午夜伦鲁片免费无码| 久久综合丁香激情久久| 天天做夜夜做久久做狠狠| 男女久久久国产一区二区三区|