#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
ethdr, *pethdr;
/**//*
*28位元組的arp頭
*/typedef struct _arphdr
arphdr, *parphdr;
/**//*
*20位元組的ip頭
*/typedef struct _iphdr
iphdr, *piphdr;
/**//*
*20位元組的tcp頭
*/typedef struct _tcphdr
tcphdr, *ptcphdr;
/**//*
*偽tcp頭,計算校驗和時使用
*/typedef struct _psdtcphdr
psdtcphdr, *ppsdtcphdr;
/**//*
*8位元組的udp頭
*/typedef struct _udphdr
udphdr, *pudphdr;
/**//*
*偽udp頭,計算校驗和時使用
*/typedef struct _psdudphdr
psdudphdr, *ppsdudphdr;
/**//*
*12位元組的icmp頭
*/typedef struct _icmphdr
icmphdr, *picmphdr;
/**//*
*6位元組的pppoe頭+2位元組協議
*/typedef struct _pppoehdr
pppoehdr, *ppppoehdr;
/**//*
* dns包頭
*/typedef struct _dnshdr
dnshdr, *pdnshdr;
/**//*
* dns查詢包,query
*/typedef struct _dnsquery
dnsquery, *pdnsquery;
/**//*
* dns響應包
*/typedef struct _dnsresponse
dnsresponse, *pdnresponse;
#pragma pack(pop)
#endif
TCP IP協議棧及常見協議結構
型別字段 0800 ip資料報 0806 arp請求 響應報文 版本 一般為4,表示ipv4 首部長度 一般為5,以4位元組為單位,表示20位元組的首部長度 總長度 以位元組為單位 標識 標誌 片偏移 與ip分組有關,同乙個報文下的分組具有相同的標識 df don t 1標誌位代表不能分組,mf m...
TCP IP協議資料報結構詳解
tcp ip協議中各層的資料報結構是乙個比較抽象的內容,大家在日常學習過程中往往難以理解和掌握,常常是死記硬背把它記住了事。本文首先利用sniffer工具捕獲了ftp命令操作過程中的所有資料報,然後對sniffer工具中捕獲的每一部分資料報的含義進行了詳細的闡述,最後總結歸納出tcp ip協議中網路...
TCP IP協議族體系結構
tcp ip協議族不是乙個協議,而是乙個四層協議系統,自下而上分別是資料鏈路層 網路層 傳輸層和應用層。每一層完成不同的功能,且通過若干協議來實現,上層協議使用下層協議提供的服務 上層和下層的關聯性 1 資料鏈路層 負責幀資料的傳遞。經過資料鏈路層封裝的資料稱為幀 資料鏈路層兩個常用的協議時arp ...