• <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
            技術(shù)文摘
            posts - 137,  comments - 268,  trackbacks - 0

             

            #ifndef _PROTO_H_
            #define _PROTO_H_

            /*
            * TCP/IP 協(xié)議類型
            */

            #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              // 以太網(wǎng)地址大小
            #define ETH_HLEN       14             // 以太網(wǎng)頭部大小
            #define ETH_DATA_LEN   1500           // 最大幀負載數(shù)據(jù)大小
            #define ETH_FRAME_LEN  1514           // 最大幀大小,頭部+負載數(shù)據(jù)

            /**
             * 常見協(xié)議定義
            *
            */

            #pragma pack(push, 
            1)

            /*
            *14字節(jié)的以太網(wǎng)包頭
            */

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

            /*
            *28字節(jié)的ARP頭
            */

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

            /*
            *20字節(jié)的IP頭
            */

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

            /*
            *20字節(jié)的TCP頭
            */

            typedef 
            struct _TCPHDR    
            {
                USHORT    srceport;            
            // 16位源端口號
                USHORT    dstport;            // 16位目的端口號
                ULONG    seq;                // 32位序列號
                ULONG    ack;                // 32位確認號
                UCHAR    dataoffset;            // 高4位表示數(shù)據(jù)偏移
                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位緊急數(shù)據(jù)偏移量 
            }
             TCPHDR, *PTCPHDR;

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

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

            /*
            *8字節(jié)的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字節(jié)的ICMP頭
            */

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

            /*
            *6字節(jié)的PPPOE頭+2字節(jié)協(xié)議
            */

            typedef 
            struct _PPPOEHDR
            {
                UCHAR    ver_type;            
            //版本+類型 一般為0x11
                UCHAR    code;                //編碼
                USHORT    sessionid;            //session id
                USHORT    len;                //長度
                USHORT    protocol;            //協(xié)議
            }
             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)
                * 內(nèi)容在dns頭后面
                
            */

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

            /* 
            * dns響應(yīng)包
            */

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

            #pragma pack(pop)

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

            <2009年3月>
            22232425262728
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網(wǎng)絡(luò)開發(fā)

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 497583
            • 排名 - 36

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            久久久久久国产精品无码下载| 一本大道久久东京热无码AV| 精品蜜臀久久久久99网站| 久久综合丁香激情久久| 日韩va亚洲va欧美va久久| 18岁日韩内射颜射午夜久久成人| 久久精品欧美日韩精品| 久久99国产精品成人欧美| 色欲av伊人久久大香线蕉影院| 91久久国产视频| 久久精品国产精品亚洲毛片| 色婷婷狠狠久久综合五月| 久久久久久亚洲精品成人| 亚洲va久久久久| 国产高潮久久免费观看| 国产精品美女久久久久| 综合久久给合久久狠狠狠97色| 一本久久久久久久| 久久香蕉超碰97国产精品| 久久综合亚洲色HEZYO国产| 日本精品久久久中文字幕| 伊人久久综合成人网| 人妻中文久久久久| 91亚洲国产成人久久精品| 精品久久久久久成人AV| 国产aⅴ激情无码久久| 久久精品免费全国观看国产| 久久久久久av无码免费看大片| 狠色狠色狠狠色综合久久| 狠狠色婷婷久久一区二区三区| 日日狠狠久久偷偷色综合96蜜桃 | 国产成人精品久久综合| 国产精品久久久亚洲| 久久久久亚洲精品无码蜜桃 | 久久99国产精品二区不卡| 欧美va久久久噜噜噜久久| 久久男人Av资源网站无码软件 | 99久久er这里只有精品18| 日产精品99久久久久久| 国内精品人妻无码久久久影院 | 色狠狠久久综合网|