计算机网络协议分析实验指导书V201506(4)

2018-11-23 22:35

短 语 首部字段名 Date Server Etage Accept-Ranges Last-Modified

字段值 字段所表达的信息 3)分析在截获的报文中,客户机与服务器建立了几个连接?服务器和客户机分别使用 了哪几个端口号? 答:

_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4 )综合分析截获的报文,理解HTTP 协议的工作过程,将结果填入表22 中。

表22 HTTP 协议工作过程

HTTP 客户机端口号

HTTP 服务器端口号 所包括的报文号 步骤说明 实验小结

本次实验的主要目的是 在PC 机上访问RCMS 的Web 页面,截获报文,分析HTTP 协议的报文格式和HTTP 协议的工作过程。 HTTP 是一个面向事务的客户服务器协议。尽管HTTP 使用TCP 作为底层传输协议,但 每个事务都是独立地进行处理。当一个事务开始时,就在万维网客户和服务器之间建立一个TCP 连接,而当事务结束时就释放这个连接。

4. 协议分析器程序设计

4.1定义报文头部数据结构

4.1.1 UDP首部和伪首部结构体定义

/* UDP 首部*/ struct udphdr{ }; //UDP中校验使用的伪首部 struct pseudo_header { }; 4.1.2 IPv4基本定长首部结构体定义

struct iphdr { }; 4.1.3 以太网帧首部结构体定义

struct ethhdr { unsigned char h_dest[6]; /* destination eth addr */ unsigned char h_source[6]; /* source ether addr */ unsigned short h_proto; /* packet type ID field */ }; 4.1.4 网络通信5元组封装为结构体数据

struct socket_pair{ unsigned char proto_type; /*取值同IP头部字段的协议取值*/ unsigned short d_port; /*目的端口*/ unsigned short s_port; /*源端口*/ unsigned char d_ip[4]; /*目的IP地址*/ unsigned char s_ip[4]; /*源IP地址*/ }; 4.2分析显示报文头部信息函数设计

4.2.1 以太网帧首部信息显示

int print_eth_frame(const unsigned char *frame_data,int len){ struct ethhdr * frame; frame = (struct ethhdr *) frame _data; } printf(\该帧报类型ID为%H,\if(ntohs(frame->h_proto)==0x0800){ printf(\上层协议为IP.\\n\return 0; 4.2.2 IPv4基本定长首部信息显示

int print_ip_pkt(const unsigned char *pkt_data,int len){ }

4.2.3 UDP首部信息显示

int print_ udp_pkt(const unsigned char *pkt_data,int len){ }

4.3 Winpcap中打开网络接口捕获数据

(参考资料(中文):http://www.ferrisxu.com/WinPcap/html/index.html) 1)获取设备列表

2)打开适配器并捕获数据包

3)不用回调方法捕获数据包

4)发送数据包

5)例程:分析数据包

(http://www.ferrisxu.com/WinPcap/html/group__wpcap__tut6.html)

5. Winpcap编程基础

当应用程序需要访问原始数据包,即没有被操作系统利用网络协议处理过的数据包时,socket无法满足需要,WinPcap为Win32应用程序提供这种访问方式。

WinPcap(Windows Packet Capture)是Windows平台下的链路层网络访问工具,其目的在于为Windows应用程序提供访问网络底层的能力。

WinPcap允许应用程序直接利用网络驱动程序发送和接收报文,避免了原来的协议栈处理过程。Winpcap 是基于Win32 平台的网络包截获和分析的系统,它是Libpcap的Windows版本。

5.1 Winpcap开发环境的安装配置

1)C语言编程(编译)环境

集成开发环境:Visual C++ 6.0(淘汰);VS Express 2010+(推荐Visual Studio Express 2013 for Windows Desktop);CodeLite;Code::Blocks;Dev-C++。

2)下载安装WinPcap驱动

WinPcap驱动程序、Dll文件(如果系统已经安装了Wireshark,则应该默认已经安装了WinPcap驱动)WinPcap V4.1.2:http://www.winpcap.org/install/bin/WinPcap_4_1_2.exe。下载并安装。

3)下载WinPcap Developer’s Pack

库文件、头文件、简单的示例程序代码和帮助文件。WinPcap V4.1.2 Developer’s Pack:http://www.winpcap.org/install/bin/WpdPack_4_1_2.zip。下载到本地并解压缩到某个目录,如”d:/”,并找到其中的LIB 和 Include 目录,5.2中配置环境需要使用。

4)帮助参考网址

? WinPcap技术手册 V4.1.2 (an offline version can be found in the developer's pack) :

http://www.winpcap.org/docs/docs_412/index.html ? WinPcap中文技术手册 V4.01(翻译版):http://www.ferrisxu.com/WinPcap/

5.2 配置环境

5.2.1 VC++6.0环境下的配置

1)到http://www.winpcap.org/devel.htm 下载安装包 和 Developer's Pack.

2)安装winpcap驱动,解压Developer's Pack,分别找到LIB 和 Include 目录。 3)VC++6.0中配置添加WinPcap Developer’s Pack的 lib 和 Include 目录


计算机网络协议分析实验指导书V201506(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:土质学与土力学发展史及其在土木工程中的应用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: