1.结构体说明

1.结构体说明

ID:34955675

大小:64.50 KB

页数:8页

时间:2019-03-15

1.结构体说明_第1页
1.结构体说明_第2页
1.结构体说明_第3页
1.结构体说明_第4页
1.结构体说明_第5页
资源描述:

《1.结构体说明》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1.结构体说明  在程序中,我们将要进行分析的各数据包头格式用结构体进行定义。这样便于对数据包的解析,使每个字段清楚易懂。以太帧头格式结构体,共14个字节:  typedefstructether_header{  unsignedcharether_dhost[6];//目的MAC地址  unsignedcharether_shost[6];//源MAC地址  unsignedshortether_type;//协议类型  }ETHHEADER,*PETHHEADER;IPv4报头格式结构体,共20个字节:typedefs

2、tructipv4_header{unsignedcharver_ihl;//版本(4bits)+首部长度(4bits)unsignedchartos;//服务类型unsignedshorttlen;//数据报总长度unsignedshortidentification;//标识unsignedshortflags_fo;//标志(3bits)+片偏移(13bits)unsignedcharttl;//生存时间unsignedcharproto;//协议unsignedshortcrc;//首部校验和u_charip_src

3、[4];//源IP地址u_charip_dst[4];//目的IP地址}IPHEADER,*PIPHEADER;IPv6报头格式结构体,共40个字节:typedefstructipv6_header{u_charver_tf;//版本号(4bit)u_chartraffic;//优先级(8bit)u_shortlabel;//流标识(20bit)u_charlength[2];//报文长度(16bit)u_charnext_header;//下一头部(8bit)u_charlimits;//跳数限制(8bit)u_charS

4、rcv6[16];//源IPv6地址(128bit)u_charDestv6[16];//目的IPv6地址(128bit)}IPv6_HEADER,*PIPv6_HEADER;TCP报头格式结构体,共20个字节:typedefstructtcp_header{WORDSourPort;//源端口号  WORDDestPort;//目的端口号DWORDSeqNo;//序号DWORDAckNo;//确认序号BYTEHLen;//首部长度(保留位)BYTEFlag;//标识(保留位)WORDWindow;//窗口大小WORDChk

5、Sum;//校验和WORDUrgPtr;//紧急指针}TCPHEADER,*PTCPHEADER;UDP报头格式结构体,共8个字节:typedefstructudp_header{u_shortsport;//源端口号u_shortdport;//目的端口号u_shortlen;//数据报长度u_shortcrc;//校验和}UDPHEADER,*PUDPHEADER;  2.程序说明程序1利用WinPcap函数库函数解析捕获数据包的以太帧头程序名:AnalyzeETH_WinPcap.CPP  该程序通过利用WinPcap

6、提供的捕获数据包函数,对网络中的数据包进行采集分析。WinPcap中提供的函数pcap_open_live()可以获取网络适配器,通过函数pcap_loop(pcap_t*p,intcnt,pcap_handledispatch_handle,u_char*user)直接深入到数据链路层进行网络数据的捕获,将捕获的数据传到函数dispatch_handle(u_char*,constpcap_pkthdr*header,constu_char*pkt_data)中,该函数的参数pkt_data指向的即是捕获的数据包。这样,我

7、们可以捕获局域网内数据链路层的以太帧,并按照以太帧头格式对数据包进行解析,以获得以太帧头中的有关信息。同时将捕获数据存入磁盘中。通过该程序,可以分析出局域网内传输的各类网络层数据包的情况。程序完整代码详见程序1(AnalyzeETH_WinPcap.CPP)。  程序2利用WinPcap函数库函数解析捕获的IPv4数据报包头程序名:AnalyzeIPv4_WinPcap.CPP  该程序同样通过WinPcap提供的函数,获取网络适配器,利用函数pcap_loop(pcap_t*p,intcnt,pcap_handledisp

8、atch_handle,u_char*user)捕获数据包。并将捕获的数据传到函数dispatch_handle(u_char*,constpcap_pkthdr*header,constu_char*pkt_data)中,在该函数中对以太帧包进行过滤,将以太帧头中协议类型字段(ether

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。