ip数据包的捕获与解析.

ip数据包的捕获与解析.
ip数据包的捕获与解析.

计算机网络与通信

课程设计报告

实验项目名称 IP数据包的捕获与解析

实验学生班级电力通信122

实验学生学号 208120529 实验学生姓名颜辉

同组学生姓名无

实验时间12.15~12.19

实验地点信息楼C322

实验成绩评定

指导教师签字

2014 年 12 月 20 日

目录

一.课程设计应达到的目的--------------------------------1

二.课程设计题目及要求----------------------------------1

三.课程设计思想----------------------------------------1

四.课程设计流程图--------------------------------------3 五.部分程序设计的分析---------------------------------3 六.IP数据包解析代码-----------------------------------6 七.运行结果-------------------------------------------11 八.总结-----------------------------------------------11 九.参考文献-------------------------------------------12

一.课程设计应达到的目的

(1)使学生掌握网络通信协议的基本工作原理;

(2)培养学生基本掌握网络编程的基本思路和方法;

(3)能提高学生对所学计算机网络理论知识的理解能力;

(4)能提高和挖掘学生对所学知识的实际应用能力和创新能力;

(5)提高学生的科技论文写作能力。

二.课程设计题目及要求

IP数据包捕获与解析的设计。

设计任务:

(1)掌握IP数据包的工作原理与报头设计的相关字段

(2)理解IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移量、生存时间、上层协议类型、头校验合、源IP地址和目的IP地址等内容。

设计内容:根据IP数据包的标准格式,编写程序捕获IP数据包并进行解析,并将解析后各IP包的头部与数据字段写入输出文件。数据字段的值从捕获的文件中获取。为了获取网络中的IP数据包,可以采用Winsock的数据库查询函数gethostname()和gethostbyname()解决,捕获IP数据包并解析IP地址等内容。

三.课程设计思想

IP数据报的格式说明:

IP数据包格式包含了标头固定部分,标头可变部分和数据区三部分。IP数据报标头部分固定为20个字节,其中包含了12个参数域,各参数域隐含着网间协议的传输机制。IP具体的标头格式如图1所示。

各参数域的具体含义如下:

1)版本号:长度4位,表示所使用的IP协议的版本。IPv4版本号字段值为4;IPV6

版本号字段号的值为6.

2)标头长:长度4位,定义了一个以4B为一个单位的IP包的报头长度

3)服务类型:共8位,高3位组成优先级子域,随后4位组成服务类型子域。

4)数据报总长度:总长度为2B(即6位)。定义了以字节为单位的数据报的总长度。

5)重装标识:长度16位,用于识别IP数据报的编号,让目的主机判断新来的数据属

于哪个分组。

6)分片标识:共3位,最高位为0;DF禁止分片标识。DF=0,可以分片;DF=1,不能

分片。MF:分片标识。MF=0,表示接的是最后一个分片;MF=1,不是最后一个分片。

7)片偏移值:共13位,说明分片在整个数据报中的相对位置。

8)生存周期:8位,用来设置数据数据报在整个网络传输过程中的寿命。常以一个数

据报可以经过的最多的路由器跳步数来控制。

9)协议类型:共8位,表示该IP数据报的高层协议类型。

10)标头校验和:共16位,用于存放检查报头错误的校验码。

11)源、宿主机地址:共32位,分别表示发送和接受数据报的源主机和宿主机的IP地

址。

12)选项数据域:0-40B,用于控制和测试。

IP数据包的格式为:

4位版本4位首部长

8位服务类型(TOS)16位总长度(字节为单位) 16位标识3位标志13位片偏移

8位生存时间(TTL)8位协议16位首部检验和

32位源IP地址

32位目的IP地址

IP数据包的C++定义:

typedef struct _IP

{

union

{

BYTE Version; // 版本

BYTE HdrLen;//IHT

};

BYTE ServiceType; // 服务类型

WORD TotalLen; // 总长

WORD ID; // 标识

union

{

WORD Flags; // 标志

WORD FragOff; // 分段偏移

};

BYTE TimeToLive; // 生命期

BYTE Protocol; // 协议

WORD HdrChksum; // 头校验和

DWORD SrcAddr; // 源地址

DWORD DstAddr; // 目的地址

BYTE Options; // 选项

} IP;

套接字的使用:

本程序使用套接字socket编程,将网卡设为能够接受流经网卡的所有类型的数据包。首先,初始化套接字,然后监听数据包,解析数据包。

SOCKET sock=socket(AF_INET,SOCK_RAW,IPPROTO_IP)用来创建套接字,其参数为通信发生的区字段和套接字的类型。

WSAIoctl(sock , IO_RCVALL ,&dwBufferInLen , sizeof(dwBufferInLen)函数用来把网卡设置为混杂模式。

recv(sock,buffer,65535,0)函数用来接收经过的IP包,其参数分别是套接字描述符,缓冲区的地址,缓冲区的大小。

四.课程设计流程图

五.部分程序设计的分析

1、使用原始套接字

要进行IP 层数据包的接收和发送,应使用原始套接字。创建原始套接字的代码如下:

SOCKET sock;

sock=WSASoccket(AF_INET,SOCK_RAW,IPPROTO_IP,NULL,0,

WSA_FLAG_OVERLAPPED);

在WSASoccket 函数中,第一个参数指定通信发生的区字段,AF_INET 是针对Internet 的,允许在远程主机之间通信。第二个参数是套接字的类型,在AF_INET 地址族下,有SOCK_STREAM 、SOCK_DGRAM 、SOCK_RAW 三种套接字类型。在这里,设置为SOCK_RAW ,表示声明的是一个原始套接字类型。第三个参数依赖于第二个参数,用于指定套接字所有的特定协议,这里使用IP 协议。第四个参数为WSAPROTOCOL_INFO 位,该位可以置空。第五个参数保留,永远置0。第六个参数是标志位,WSA_FLAG_OVERLAPPED 表明可以使用发送接收超时设置。

创建原始套接字后,IP 头就会包含在接收的数据中。然后,可以设置IP 头操作选项,调用setsockopt 函数。其中flag 设置为true ,并设定IP_HDRINCL 选项,表明用户可以亲No

自对IP头进行处理。

BOOL flag=true;

setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(CHAR*)&flag,sizeof(flag));

之后,使用如下代码完成对socket的初始化工作:

/*获取主机名*/

char hostName[128];

gethostname(hostName,100);

/*获取本地IP地址*/

hostent * pHostIP;

pHostIP = gethostbyname(hostName);

/*填充SOCKADDR_IN结构的内容*/

sockaddr_in addr_in;

addr_in.sin_addr = *(in_addr *)pHostIP->h_addr_list[0];

addr_in.sin_family = AF_INET;

addr_in.sin_port = htons(6000);

/*绑定socket*/

bind(sock,(PSOCKADDR)&addr_in,sizeof(addr_in));

填写sockaddr_in的内容时,其地址值应填写为本机IP地址,本机IP地址可以通过gethostbyname()函数获取;端口号可以随便填写,但不能与系统冲突;协议族应填为AF_INET。使用htons()函数可以将无符号短整型的主机数据转换为网络字节顺序的数据。最后使用bind(0函数将socket绑定到本机网卡上。

绑定网卡后,需要用WSAIoctl()函数把网卡设置为混杂模式,使网卡能够接收所有网络数据,其关键代码如下:

#define SIO_RCVALL_WSAIOW(IOC_VENDOR,1)

DWORD dwBufferLen[10];

DWORD dwBufferInLen = 1;

DWORD dwBytesReturned = 0;

WSAIoct1(SnifferSocket,

IO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,sizeof(dwBufferLen) ,&dwBytesReturned,NULL,NULL);

如果接收的数据包中的协议类型和定义的原始套接字匹配,那么接收到的数据就拷贝到套接字中。因此,网卡就可以接收所有经过的IP包。

2、接收数据包

在程序中可使用recv()函数接收经过的IP包。该函数有四个参数,第一个参数接收操作所用的套接字描述符;第二个参数接收缓冲区的地址;第三个参数接收缓冲区的大小,也就是所要接收的字节数;第四个参数是一个附加标志,如果对所发送的数据没特殊要求,直接设为0。因为IP数据包的最大长度是65535B,因此,缓冲区的大小不能小于65535B。设置缓冲区后,可利用循环来反复监听接收IP包,用RECV()函数实现接收功能的代码如下:#define BUFFER_SIZE 65535

char buffer[BUFFER_SIZE]; //设置缓冲区

while(true)

{

recv(sock,buffer,BUFFER_SIZE,0); //接收数据包

/*然后是解析接收的IP包*/

}

3、定义IP头部的数据结构

程序需要定义一个数据结构表示IP头部。这个数据结构应该和IP数据包的格式吻合,其代码如下:

typedef struct _IP_HEADER //定义IP头

{

union

{

BYTE Version; //版本(前4位)

BYTE HdrLen; //报头标长(后4位),IP头的长度};

BYTE ServiceType; //服务类型

WORD TotalLen; //总长度

WORD ID; //标识

union

{

WORD Flags; //标志(前3位)

WORD FragOff; //分段偏移(后13位)

};

BYTE TimeToLive; //生命期

BYTE Protocol; //协议

WORD HdrChksum; //头校验和

DWORD SrcAddr; //源地址

DWORD DstAddr; //目的地址

BYTE Options; //选项

} IP_HEADER;

这里只考虑IP头部结构,不考虑数据部分。在捕获IP数据包后,可以通过指针把缓冲区的内容强制转化为IP_HEADER的数据结构。

IP_HEADER ip=*(IP_HEADER*)buffer;

4、IP包的解析

通过IP_HEADER解析IP头各个字段的代码:

/*获取版本字段*/

ip.Version>>4;

/*获取头部长度字段*/

ip.HdrLen & 0x0f;

/*获取服务类型字段中的优先级子域*/

ip.ServiceType>>5;

/*获取服务类型字段中的TOS子域*/

(ip.ServiceType>>1)&0x0f;

/*获取总长度字段*/

ip.TotalLen;

/*获取标识字段*/

ip.ID;

/*解析标志字段*/

DF = (ip.Flags>>14) & 0x01;

MF = (ip.Flags>>13) & 0x01;

/*获取分段偏移字段*/

ip.FragOff & 0x1fff;

/*获取生存时间字段*/

ip.TimeToLive;

/*获取协议字段*/

ip.Protocol;

/*获取头校验和字段*/

ip.HdrChksum;

/*解析源IP地址字段*/

inet_ntoa(*(in_addr*)&ip.SrcAddr);

/*解析目的IP地址字段*/

inet_ntoa(*(in_addr*)&ip.DstAddr);

六.IP数据包解析代码如下:

#include

#include

#include

#include

#pragma comment (lib,"Ws2_32.lib")

#define BUFFER_SIZE 65535

#define IO_RCV ALL _WSAIOW(IOC_VENDOR,1)

typedef struct _IP_HEADER //定义IP头

{

union

{

BYTE Version; //版本(前4位)

BYTE HdrLen; //报头标长(后4位),IP头长度};

BYTE ServiceType; //服务类型

WORD TotalLen; //数据报总长

WORD ID; //标识

union

{

WORD Flags; //标识(前3位)

WORD FragOff; //分段偏移(后13位)};

BYTE TimeToLive; //生存周期

BYTE Protocol; //协议

WORD HdrChksum; //头校验和

DWORD SrcAddr; //源地址

DWORD DstAddr; //目地地址

BYTE Options; //选项

}IP_HEADER;

char * parseServiceType_getProcedence(BYTE b)

{

switch(b>>5) //获取服务类型字段中优先级子域

{

case 7:

return "Network Control"; //网络控制

break;

case 6:

return "Internet work Control"; //网络控制

break;

case 5:

return "CRITIC/ECP";

break;

case 4:

return "Flash Override"; //最优先信号

break;

case 3:

return "Flsah";

break;

case 2:

return "Immediate";

break;

case 1:

return "Priority"; //协议

break;

case 0:

return "Routine"; //路由

break;

default:

return "Unknow";

break;

}

}

char * parseServiceType_getTOS(BYTE b)

{

b=(b>>1)&0x0f; //获取服务类型字段中的TOS子域switch(b)

{

case 0:

return "Normal service"; //正常运行

break;

case 1:

return "Minimize monetary cost"; //成本

break;

case 2:

return "Maximize reliability"; //可靠性

break;

case 4:

return "Maximize throughput"; //吞吐量

break;

case 8:

return "Minimize delay"; //延迟

break;

case 15:

return "Maximize security"; //安全性

break;

default:

return "Unknow";

}

}

char * getProtocol(BYTE Protocol) //获取协议字段共8位

{

switch(Protocol) //以下为协议号说明:

{

case 1:

return "ICMP"; //Internet控制报文协议case 2:

return "IGMP"; //Internet组管理协议

case 4:

return "IP in IP"; //移动IP数据封装和隧道case 6:

return "TCP"; //传输控制协议

case 8:

return "EGP"; //外部网关协议

case 17:

return "UDP"; //用户数据报文协议

case 41:

return "IPv6";

case 46:

return "RSVP"; //资源预留协议

case 89:

return "OSPF"; //Open Shortest Path First 开发式最短路径优先default:

return "UNKNOW";

}

}

void ipparse(FILE* file,char* buffer)

{

IP_HEADER ip=*(IP_HEADER*)buffer; //通过指针把缓冲区的内容强制转化为IP_HEADER数据结构

fseek(file,0,SEEK_END);

fprintf(file,"版本号=%d\r\n",ip.Version>>4);

fprintf(file,"报头标长= %d (BYTE)\r\n",((ip.HdrLen & 0x0f)*4));

fprintf(file,"服务器类型= %s,%s\r\n",parseServiceType_getProcedence(ip.ServiceType), parseServiceType_getTOS(ip.ServiceType));

fprintf(file,"总长度= %d(BYTE)\r\n",ip.TotalLen);

fprintf(file,"标识= %d\r\n",ip.ID);

fprintf(file,"标志位DF=%d , MF=%d\r\n",((ip.Flags>>14)&0x01),((ip.Flags>>13)&0x01));

fprintf(file,"分段偏移值= %d\r\n",(ip.FragOff&0x1fff));

fprintf(file,"生存期= %d (hops)\r\n",ip.TimeToLive);

fprintf(file,"协议= %s\r\n",getProtocol(ip.Protocol));

fprintf(file,"头校验和= 0x%0x\r\n",ip.HdrChksum);

fprintf(file,"源IP地址= %s\r\n",inet_ntoa(*(in_addr*)&ip.SrcAddr));

fprintf(file,"目的IP地址= %s\r\n",inet_ntoa(*(in_addr*)&ip.DstAddr));

fprintf(file,"---------------------------------------------\r\n");

}

int main()

{

FILE * file;

if((file=fopen("history.txt","wb+"))==NULL)

{

printf("fail to open file %s");

return -1;

}

WORD rv;

WSADATA WSAData; //定义了能够储存WSAStarup调用返回值的结构

rv=MAKEWORD(2,2); //Winsock2版本

WSAStartup(rv,&WSAData);

SOCKET sock=socket(AF_INET,SOCK_RAW,IPPROTO_IP); //创建套接字,sock为套接字描述符

BOOL flag=true;

setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(CHAR*)&flag,sizeof(flag));//任意类型、任意状态套接口的设置选项值

char hostName[128];

gethostname(hostName,100); //获取主机名

hostent * pHostIP; //获取本地IP地址

pHostIP = gethostbyname(hostName);

sockaddr_in addr_in;

addr_in.sin_addr=*(in_addr *)pHostIP->h_addr_list[0];

addr_in.sin_family = AF_INET;

addr_in.sin_port = htons(6000); //将无符号短整型主机数据转换为网络字节顺序数据bind(sock,(PSOCKADDR)&addr_in,sizeof(addr_in));

DWORD dwBufferLen[10]; //设置网卡为混杂模式

DWORD dwBufferInLen=1;

DWORD dwBytesReturned=0;

WSAIoctl(sock, IO_RCV ALL,&dwBufferInLen,sizeof(dwBufferInLen),

&dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL);

char buffer[BUFFER_SIZE]; //设置缓冲区

char i,a;

int n=0,c;

printf("数据包捕捉和解析程序正在启动\n");

for(a=1;a<=10;a++)

{

printf("...");

Sleep(300);

}

printf("\n\n确定要接收并解析本机的数据包吗?Y/N \n");

scanf("%c",&i);

printf("\n\n需要一次抓取几个数据包\n");

scanf("%d",&c);

system("cls");

while(true&&i=='Y'||i=='y')

{

if(n==-1){printf("\n\n需要一次抓取几个数据包\n");

scanf("%d",&c);n=0;}

int size=recv(sock,buffer,BUFFER_SIZE,0); //接收数据包

if (size>0)

{

printf("\n\n数据包捕获解析程序\n");

printf("---------------------------------------------\n");

ipparse(stdout,buffer);

ipparse(file,buffer);

n++;

if(n

else n=-1;

printf("是否要继续接收并解析本机的数据包?Y/N \n");

fflush(stdin);

scanf("%c",&i);

continue;

}

else

fclose(file);

return 0;

}

closesocket(sock);

}

七.运行结果:

八.总结

本次课程设计让我学会了很多的东西,其中,最值得一提的是:①对IP协议有了比较深入的了解;②学习了Windows socket。

我选择的课题是IP数据包的捕获与分析。所以需要对IP数据包有非常深入

的了解。这次实验中,我把IP协议学了好多遍,知道了IP头中每一个字段的意

思。

对IP数据包的捕获,我使用的是原始套接字,在Windows操作系统中实现

的。在做实验的过程中,我把Windows socket大概学了一遍,重点学习了其中

的原始套接字。在学习的过程中,对OSI七层模型有了更深的了解。对Windows socket的学习,让我对网络编程的基本方法和步骤有了一定的了解,相信这次

的学习对我以后网络编程的学习会很有帮助。我感觉Windows socket确实是一

个很强大的工具,但是由于是C语言的接口,用起来也有一些的繁琐。

在学习《计算机网络》这门课程的时候,我觉得很乏味无聊。但是,在做课

程设计的时候,我才发现上课学的那些理论知识是非常有用的。如果没有那些理

论知识的支撑,要完成这次的课程设计,基本是不可能完成的事情。所以,这次

课程设计的经历又一次告诉我,理论和实际相结合是非常重要的。

九.参考文献

(1)................................................................... A ndrew S.Tanenbaum,David J.Wetherall. 计算机网络(第五版)[M]. 北

京:清华大学出版社,2012.3 (2)................................................................... B ob Quinn,Dave Shute. Windows Sockets网络编程[M].北京:机械工业

出版社,2012.8 (3)................................................................... M SDN. TCP / IP原始套接字.

https://www.360docs.net/doc/f46361124.html,/en-us/library/windows/desktop/ms74054

8(v=vs.85).aspx

网络数据包的捕获与分析毕业设计

网络数据包的捕获与分析 【摘要】网络数据包的捕获对于网络安全有着巨大的作用,为我们更好的分析网络中的数据流提供了帮助。本论文是基于Windows下开发一个网络监听工具,侧重点在于实现网络数据包的捕获,然后分析并显示捕获到的数据包信息这部分功能的实现,如分析:IP首部协议类型、源IP、目的IP和端口号等。采用的是Winpcap(Windows Packet Capture)来实现的抓包功能。通过VC++6.0中MFC编程实现通过一个完整界面来控制调用Winpcap中的函数来实现对网卡信息的捕获和循环捕获数据包,然后通过预先对于IP、TCP、UDP等数据包的定义和TCP/IP等协议来解析其中包含的内容并返回显示捕获到数据包的信息,当然也可以保存捕获到的数据包到指定地点以便进一步分析。 【关键词】Winpcap;数据包;捕获;分析

The Capture and Analysis of Network Data Packets Wang Hang (Grade 11,Class 1, Major Network Engineering, Scho ol of Mathematics and Computer Science Dept, Shaanxi University of Technology, Hanzhong 723003, Shaanxi) Tutor: Jia Wei Abstract: The capture of network data packets plays an important part in network security, which is helpful for our better analysis of network data flow.This paper is about a network monitoring tool based on Windows system, which emphasizes particularly on realizing the capture and analysis of network data packets and then displays them. Take analysis as an example, it will check the type of the IP protocol, the source address of IP, the destination address of IP and the port https://www.360docs.net/doc/f46361124.html,e the Winpcap(Windows Packet Capture)to capture of data packets. In MFC programming of VC++6.0, the capture of network data packets can be realized via the invoking and control of the functions through a full control panel, and then the analysis of IP ,TCP,UDP and TCP/IP will be done before they are displayed. Certainly the information captured can be saved to the appointed destination in order to go through an advanced analysis. Key words:Winpcap;Data Packets;Capture;Analysis

高速网络环境下数据包捕获技术的分析

龙源期刊网 https://www.360docs.net/doc/f46361124.html, 高速网络环境下数据包捕获技术的分析 作者:王亚 来源:《数字技术与应用》2011年第12期 摘要:互联网的迅猛发展,网络带宽飞速增长,在高速网络环境下,传统的网络数据包捕获已经成为制约整个系统的性能提升的瓶颈,为了满足高速网络的数据包捕获的需求,对传统的网络数据包捕获存在的问题进行分析,在此基础上提出了改进措施,为后期研究高速网络下高性能的数据包捕获技术奠定基础。 关键词:高速网数据包捕获 Libpcap 中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2011)12-0194-02 The Analysis of Packet Capture Technology in High Speed Network wangya (Fuyang Teachers College of computer and Information engineering Fuyang 236041) Abstract:The rapid development of the Internet and the rapid growth of network bandwidth,in high-speed network environment,the traditional network data packet capture has become the constraints of the system performance bottleneck. In order to satisfy the high speed network packet capture demand,to analysis the existing problems of the traditional network packet capture,and put forward on this foundation improvement measures.,It lays the foundation for later research of high-speed network and high performance packet capture technology. Keywords:high speed network;packet capture;Libpcap 1、引言 目前,对网络信息监控与检测的软件都是基于数据包捕获技术,如:入侵检测程序Snort、嗅探器Tcpdump等。数据包捕获技术是一种对网络上的数据包进行监听并截取的技术,可以将数据包原封不动的拷贝到捕包端的系统中。数据包捕获是入侵检测系统、网络协议

数据包捕获与解析

数据包捕获与解析课程设计报告 学生姓名:董耀杰 学号:1030430330 指导教师:江珊珊

数据包捕获与分析 摘要本课程设计通过Ethereal捕捉实时网络数据包,并根据网络协议分析流程对数据包在TCP/IP各层协议中进行实际解包分析,让网络研究人员对数据包的认识上升到一个感性的层面,为网络协议分析提供技术手段。最后根据Ethereal的工作原理,用Visual C++编写一个简单的数据包捕获与分析软件。 关键词协议分析;Ethereal;数据包;Visual C++ 1引言 本课程设计通过技术手段捕获数据包并加以分析,追踪数据包在TCP/IP各层的封装过程,对于网络协议的研究具有重要的意义。Ethereal是当前较为流行的图形用户接口的抓包软件,是一个可以用来监视所有在网络上被传送的包,并分析其内容的程序。它通常被用来检查网络工作情况,或是用来发现网络程序的bugs。通过ethereal对TCP、UDP、SMTP、telnet和FTP等常用协议进行分析,非常有助于网络故障修复、分析以及软件和协议开发。,它以开源、免费、操作界面友好等优点广为世界各地网络研究人员使用为网络协议分析搭建了一个良好的研究平台。 1.1课程设计的内容 (1)掌握数据包捕获和数据包分析的相关知识; (2)掌握Ethreal软件的安装、启动,并熟悉用它进行局域网数据捕获和分析的功能; (3)设计一个简单的数据包捕获与分析软件。 1.2课程设计的要求 (1)按要求编写课程设计报告书,能正确阐述设计结果。 (2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。 (3)学会文献检索的基本方法和综合运用文献的能力。 (4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。

Ip数据包捕获设计报告

解析IP数据包程序设计与实现 学生姓名:梁帅指导老师:谢晓巍 摘要现如今,计算机网络已经彻彻底底地改变了人们的生活。大量的数据都是经过计算机网络传输的,而TCP/IP协议是计算机网络中最重要的协议之一。计算机网络中绝大多数数据都是以IP数据包的形式发送和接受的。所以IP数据包的捕获是很多计算机安全技术的基础。本课程设计实现了可以捕获流经本地网卡的IP数据包并将其头部信息解析输出的程序。 关键词TCP/IP;IP数据包;计算机网络;捕获

Design and implementation of IP data packet Student name: LIANG Shuai Advisor:XIE Xiao-wei Abstract Nowadays, computer network has completely changed people's life. A large amount of data is transmitted through computer networks, and the TCP/IP protocol is one of the most important protocols in computer networks. Most of the data in the computer network are sent and received in the form of IP data packets. So IP packet capture is the basis of many computer security technology. This course is designed to capture the IP data packet that flows through the local network card and the program to parse the output of its head. Key words TCP/IP;IP data packet;Computer network;Capture

IP及IPSEC协议数据包的捕获与分析分析

IP及IPSEC协议数据包的捕获与分析 为了掌握掌握IP和IPSEC协议的工作原理及数据传输格式,熟悉网络层的协议。我进行了以下实验:首先用两台PC互ping并查看其IP报文,之后在两台PC上设置IPSEC互ping并查看其报文。最终分析两者的报文了解协议及工作原理。 一、用两台PC组建对等网: 将PC1与PC2连接并分别配置10.176.5.119和10.176.5.120的地址。如图1-1所示。 图1-1 二、两PC互ping: IP数据报结构如图1-2所示。 图1-2 我所抓获的报文如图1-3,图1-4所示:

图1-3 请求包 图1-4 回应包 分析抓获的IP报文: (1)版本:IPV4 (2)首部长度:20字节 (3)服务:当前无不同服务代码,传输忽略CE位,当前网络不拥塞

(4)报文总长度:60字节 (5)标识该字段标记当前分片为第1367分片 (6)三段标志分别指明该报文无保留、可以分段,当前报文为最后一段 (7)片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段 的偏移量,即在原数据报中的相对位置。 (8)生存时间:表明当前报文还能生存64 (9)上层协议:1代表ICMP (10)首部校验和:用于检验IP报文头部在传播的过程中是否出错 (11)报文发送方IP:10.176.5.120 (12)报文接收方IP:10.176.5.119 (13)之后为所携带的ICMP协议的信息:类型0指本报文为回复应答,数据部分 则指出该报文携带了32字节的数据信息,通过抓获可看到内容为:abcdefghijklmnopqrstuvwabcdefghi 三、IPSec协议配置: 1、新建一个本地安全策略。如图1-5。 图1-5 2、添加IP安全规则。如图1-6.

sniffer数据包捕获

实训报告 一、sniffer的功能认知; 1. 实时网络流量监控分析 Sniffer Portable LAN能够对局域网网络流量进行实时监控和统计分析,对每个链路上的网络流量根据用户习惯,可以提供以表格或图形(条形图、饼状图和矩阵图等)方式显示的统计分析结果,内容包括: ·网络总体流量实时监控统计:如当前和平均网络利用率、总的和当前的帧数、字节数、总网络节点数和激活的网络节点数、当前和总的平均帧长等。 ·协议使用和分布统计:如协议类型、协议数量、协议的网络利用率、协议的字节数以及每种协议中各种不同类型的帧的数量等。Sniffer包含通用的TCP和UDP网络应用协议如HTTP, Telnet, SNMP, FTP等。同时,Sniffer 也具有特有的灵活性允许增加自定义的应用。一旦应用协议加入Sniffer,针对应用的所有的监控、报警和报告便自动生效;

·包尺寸分布统计:如某一帧长的帧所占百分比,某一帧长的帧数等。 ·错误信息统计:如错误的CRC校验数、发生的碰撞数、错误帧数等; ·主机流量实时监控统计:如进出每个网络节点的总字节数和数据包数、前x个最忙的网络 节点等;

话节点对等;

·Sniffer还提供历史统计分析功能,可以使用户看到网络中一段时间内的流量运行状况,帮助用户更好的进行流量分析和监控。

2.应用响应时间监控和分析 Sniffer 在监控网络流量和性能的同时,更加关注在网络应用的运行状况和性能管理,应用响应时间(ART)功能是Sniffer中重要的组成部分,不仅提供了对应用响应时间的实时监控,也提供对于应用响应时间的长期监控和分析能力。 首先ART监控功能提供了整体的应用性能响应时间,让用户以多种方式把握当前网络通讯中的各类应用响应时间的对比情况,如客户机/服务器响应时间、服务器响应时间,最 快响应时间、最慢响应时间、平均响应时间和90%的请求的响应时间等。

IP及IPSEC协议数据包的捕获与分析

IP及IPSEC协议数据包的捕获与分析

IP及IPSEC协议数据包的捕获与分析 为了掌握掌握IP和IPSEC协议的工作原理及数据传输格式,熟悉网络层的协议。我进行了以下实验:首先用两台PC互ping并查看其IP报文,之后在两台PC上设置IPSEC互ping并查看其报文。最终分析两者的报文了解协议及工作原理。 一、用两台PC组建对等网: 将PC1与PC2连接并分别配置10.176.5.119和10.176.5.120的地址。如图1-1所示。 图1-1 二、两PC互ping: IP数据报结构如图1-2所示。 图1-2 我所抓获的报文如图1-3,图1-4所示:

图1-3 请求包 图1-4 回应包 分析抓获的IP报文: (1)版本:IPV4 (2)首部长度:20字节 (3)服务:当前无不同服务代码,传输忽略CE位,当前网络不拥塞

(4)报文总长度:60字节 (5)标识该字段标记当前分片为第1367分片 (6)三段标志分别指明该报文无保留、可以分段,当前报文为最后一段 (7)片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段 的偏移量,即在原数据报中的相对位置。 (8)生存时间:表明当前报文还能生存64 (9)上层协议:1代表ICMP (10)首部校验和:用于检验IP报文头部在传播的过程中是否出错 (11)报文发送方IP:10.176.5.120 (12)报文接收方IP:10.176.5.119 (13)之后为所携带的ICMP协议的信息:类型0指本报文为回复应答,数据部分 则指出该报文携带了32字节的数据信息,通过抓获可看到内容为:abcdefghijklmnopqrstuvwabcdefghi 三、IPSec协议配置: 1、新建一个本地安全策略。如图1-5。 图1-5 2、添加IP安全规则。如图1-6.

实验1:网络数据包的捕获与协议分析

实验报告 ( 2014 / 2015 学年第二学期) 题目:网络数据包的捕获与协议分析 专业 学生姓名 班级学号 指导教师胡素君 指导单位计算机系统与网络教学中心 日期2015.5.10

实验一:网络数据包的捕获与协议分析 一、实验目的 1、掌握网络协议分析工具Wireshark的使用方法,并用它来分析一些协议; 2、截获数据包并对它们观察和分析,了解协议的运行机制。 二、实验原理和内容 1、tcp/ip协议族中网络层传输层应用层相关重要协议原理 2、网络协议分析工具Wireshark的工作原理和基本使用规则 三、实验环境以及设备 Pc机、双绞线、局域网 四、实验步骤 1.用Wireshark观察ARP协议以及ping命令的工作过程: (1)打开windows命令行,键入“ipconfig -all”命令获得本机的MAC地址和缺省路由器的IP地址;结果如下: (2)用“arp -d”命令清空本机的缓存;结果如下 (3)开始捕获所有属于ARP协议或ICMP协议的,并且源或目的MAC地址是本机的包。(4)执行命令:ping https://www.360docs.net/doc/f46361124.html,,观察执行后的结果并记录。

此时,Wireshark所观察到的现象是:(截图表示) 2.设计一个用Wireshark捕获HTTP实现的完整过程,并对捕获的结果进行分析和统计。(截 图加分析) 3.设计一个用Wireshark捕获ICMP实现的完整过程,并对捕获的结果进行分析和统计。要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析该ICMP 报文。(截图加分析) 4. 设计一个用Wireshark捕获IP数据包的过程,并对捕获的结果进行分析和统计(截图加分析) 要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析在该数据包中的内容:版本首部长度、服务类型、总长度、标识、片偏移、寿命、协议、源Ip地址、目的地址 五、实验总结

计算机网络实验八 Sniffer Pro数据包捕获与协议分析汇编

惠州学院《计算机网络》实验报告 实验08 Sniffer Pro数据包捕获与协议分析 1. 实验目的 (1)了解Sniffer的工作原理。 (2)掌握SnifferPro工具软件的基本使用方法。 (3)掌握在非交换以太网环境下侦测、记录、分析数据包的方法。 2. 实验原理 数据在网络上是以很小的被称为“帧”或“包”的协议数据单元(PDU)方式传输的。以数据链路层的“帧”为例,“帧”由多个部分组成,不同的部分对应不同的信息以实现相应的功能,例如,以太网帧的前12个字节存放的是源MAC地址和目的MAC地址,这些数据告诉网络该帧的来源和去处,其余部分存放实际用户数据、高层协议的报头如TCP/IP 的报头或IPX报头等等。帧的类型与格式根据通信双方的数据链路层所使用的协议来确定,由网络驱动程序按照一定规则生成,然后通过网络接口卡发送到网络中,通过网络传送到它们的目的主机。目的主机按照同样的通信协议执行相应的接收过程。接收端机器的网络接口卡一旦捕获到这些帧,会告诉操作系统有新的帧到达,然后对其进行校验及存储等处理。 在正常情况下,网络接口卡读入一帧并进行检查,如果帧中携带的目的MAC地址和自己的物理地址一致或者是广播地址,网络接口卡通过产生一个硬件中断引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理,否则就将这个帧丢弃。 如果网络中某个网络接口卡被设置成“混杂”状态,网络中的数据帧无论是广播数据帧还是发向某一指定地址的数据帧,该网络接口卡将接收所有在网络中传输的帧,这就形成了监听。如果某一台主机被设置成这种监听(Snfffing)模式,它就成了一个Sniffer。 一般来说,以太网和无线网被监听的可能性比较高,因为它们是一个广播型的网络,当然无线网弥散在空中的无线电信号能更轻易地截获。 3. 实验环境与器材 本实验在虚拟机中安装SnifferPro4.7版本,要求虚拟机开启FTP、HTTP等服务,即虚拟机充当服务器,物理机充当工作站。 物理机通过Ping命令、FTP访问及网页访问等操作实验网络数据帧的传递。 4. 实验内容 介绍最基本的网络数据帧的捕获和解码,详细功能请参阅本教材辅助材料。 (1)Sniffer Pro 4.7的安装与启动 1)启动Sniffer Pro 4.7。在获取Sniffer Pro 4.7软件的安装包后,运行安装程序,按要求输入相关信息并输入注册码,若有汉化包请在重启计算机前进行汉化。完成后重启计算机,点击“开始”→“程序”→“Sniffer Pro”→“Sniffer”,启动“Sniffer Pro 4.7”程序。 2)选择用于Sniffer的网络接口。如果计算机有多个网络接口设备,则可通过菜单“File”→“Select Settings”,选择其中的一个来进行监测。若只有一块网卡,则不必进行此步骤。

IP 数据报捕获与分析实验报告

实验报告 专业班级成绩评定______ 学号姓名教师签名______ 实验题目IP 数据报捕获与分析实验时间 一、实验目的: 1.掌握IP数据报格式。 2.理解IP协议的工作原理及工作过程。 3.掌握使用wireshark捕获IP等数据报并分析。 二、实验环境:以太网。 三、实验内容: 1.熟悉WinPcap的体系构架和提供的函数。 2.学习IP数据报校验和计算方法。 3.掌握使用wireshark捕获IP等数据报。 4.对捕获的IP数据报进行分析。 四、实验步骤: 1.在PING之前先运行wireshark熟悉页面并进行一些设置

a.单击Capture Filter过滤器:可以设置捕捉一些特殊规则 的数据报。 b.在选中Capture packets in promiscuous mode:可以设置 为混合全处理模式。 c.可以点击Start开始捕捉。过一段时间后,点击Stop停止, 观察捕捉到的数据报,并进行分析。 2.使用wireshark捕获和分析IP数据包。 a.打开wireshar并开始捕获数据包。 b.然后在系统的“开始”—“运行”—输入“CMD”命令,进 入DOS命令窗口,并输入“ping”命令测试网络的情况. c.如“ping 192.168.0.1”。 Ping 命令的使用

d.再回到wireshar点击停止后查看捕获到的数据,双击打开 “ping”后的数据包,分析数据包的内容。 分片的数据包 (以下图片全部通过wireshark捕获数据包,然后用QQ中的截图功能截取) IP协议节点

IP协议节点 上面节点说明如下: 3.进制数据包窗口 16进制数据包窗口将数据包的所有内容以16进制的形式显示出来,如下所示:

ip数据包的捕获与解析代码

// PackCaptureDlg.h:header file #define IPV4_WERSION 4 #define IPV6_WERSION 6 #define ICMP_PACKET 1 #define IGMP_PACKET 2 #define TCP_PACKET 6 #define EGP_PACKET 8 #define UDP_packet 17 #define OSPF_PACKET 89 class CPackCaptureDlg:public CDialog { public: //{{AFX_DATA(CFindHostDlg) enum {IDO=IDO_PACKCAPTURE_DIALOG}; int m_Count; CString m_Packet; //}}AFX_DATA protected: //{{AFX_MSG(CFindHostDlg) afx_msg void OnCapture(); //}}AFX_MSG private: typedef struct IP_HEAD //IP头部结构 { union { unsigned char Version; //版本(字节前四位) unsigned char HeadLen; //头部长度(字节后四位) }; unsigned char ServiceType; //服务类型 unsigned short TotalLen; //总长度 unsigned short Identifier; //标识符 union { unsigned short Flags; //标志位(字前三位) unsigned short FragOffset;

实验三 网络数据包的捕获与分析

实验三 网络数据包的捕获与分析 一、实验目的和要求 通过本次实验,了解sniffer 的基本作用,并能通过sniffer 对指定的网络行为所产生的数据包进行抓取,并分析所抓取的数据包。 二、实验内容 A :1、首先打开sniffer 软件,对所要监听的网卡进行选择 2、选择网卡按确定后,进入sniffer 工作主界面,对主界面上的操作按钮加以熟悉。 B :设置捕获条件进行抓包 基本的捕获条件有两种: 1、链路层捕获,按源MAC 和目的MAC 地址进行捕获,输入方式为十六进制连续输入,如:00E0FC123456。 2、IP 层捕获,按源IP 和目的IP 进行捕获。输入方式为点间隔方式,如:10.107.1.1。如果选择IP 层捕获条件则ARP 等报文将被过滤掉。 任意捕协议捕缓冲区基本捕获条件数据流链路层捕获获条件编辑 获编辑 编辑 链路层捕获IP 层捕获 方向 地址条件 高级捕获条件

在“Advance ”页面下,你可以编辑你的协议捕获条件,如图: 选择要捕捕获帧长错误帧是保存过滤获的协议 度条件 否捕获 规则条件 高级捕获条件编辑图 在协议选择树中你可以选择你需要捕获的协议条件,如果什么都不选,则表示忽略该条件,捕获所有协议。 在捕获帧长度条件下,你可以捕获,等于、小于、大于某个值的报文。 在错误帧是否捕获栏,你可以选择当网络上有如下错误时是否捕获。 在保存过滤规则条件按钮“Profiles ”,你可以将你当前设置的过滤规则,进行保存,在捕获主面板中,你可以选择你保存的捕获条件。 C :捕获报文的察看: Sniffer 软件提供了强大的分析能力和解码功能。如下图所示,对于捕获的报文提供了一个Expert 专家分析系统进行分析,还有解码选项及图形和表格的统计信息。 专家分析专家分析捕获报文的捕获报文的其他 系统 系统图形分析 统计信息 专家分析 专家分分析系统提供了一个只能的分析平台,对网络上的流量进行了一些分析对于分析出的

任务三计算机网络实验IP数据报捕获与分析

任务三计算机网络实验I P数据报捕获与 分析

任务三网络编程 一、实验目的 捕获本机网卡的IP包,对捕获的IP包进行解析。要求必须输出以下字段:版本号、总长度、标志位、片偏移、协议、源地址和目的地址。 二、实验环境 平台:Windows 编程环境:VC 6.0 语言:C++ 三、实验原理 3.1 数据报格式 以太帧由一个包含三个字段的帧头开始,前两个字段包含了物理地址,各六个字节,头部的第三个字段包含了 16 位的以太帧类型,帧头后面是数据区。根据帧类型可以判断是哪种数据包,一般常用的有 0X0080(IP 数据包)、0X0806(ARP 请求/应答)和 0X8035(RARP 请求/应答)三种类型。TCP/IP 协议簇中位于网络层的协议,也是最为核心的协议。所有的 TCP, UDP, ICMP 及 IGMP 数据都以 IP 数据报格式传输。IP 协议提供了无连接的、不可靠的数据传输服务。同时IP 协议的一个重要功能是为网络上的包传递提供路由支持。TCP/IP 协议使用 IP 数据报这个名字来指代一个互联网数据包。IP 数据报由两部分组成,前面的头部和后面的数据区,头部含有描述该数据报的信息,包括源 IP 地址和目的 IP 地址等。在 IP 数据报的报头中的众多信息可根据协议类型字段区分出该数据包的类型,常用的有TCP 包、 UDP 包、 ICMP 包等,各格式分别如下所示:

IP数据报格式 TCP数据报格式 ICMP数据报格式

UDP数据报格式 3.2 捕获数据包方法 目前常用的捕获数据包的方法有原始套接字、LibPcap、WinPcap和JPcap 等方法。本次实验选用套接字方法。套接字是网络应用编程接口。应用程序可以使用它进行网络通信而不需要知道底层发生的细节。有时需要自己生成一些定制的数据包或者功能并希望绕开Socket提供的功能,原始套接字(RawSocket)满足了这样的要求。原始套接字能够生成自己的数据报文,包括报头和数据报本身的内容。通过原始套接字,可以更加自如地控制Windows下的多种协议,而且能够对网络底层的传输机制进行控制。 网络数据包截获机制一般指通过截获整个网络的所有信息流,根据信息源主机,目标主机,服务协议端口等信息,简单过滤掉不关心的数据,再将用户感兴趣的数据发送给更高层的应用程序进行分析。一般数据包的传输路径依次为网卡、设备驱动层、数据链路层、 IP 层、传输层、最后到达应用程序。IP 数据包的捕获就是将经过数据链路层的以太网帧拷贝出一个备份,传送给 IP 数据包捕获程序进行相关的处理。 IP 数据包的捕获程序一般由数据包捕获函数库和数据包分析器组成。数据包捕获函数库是一个独立于操作系统的标准捕获函数库。主要提供一组可用于查找网络接口名称、打开选定的网络接口、初始化、设置包过滤条件、编译过滤代码、捕获数据包等功能函数。对捕获程序而言,只需要调用数据包捕获函数库的这些函数就能获得所期望的 IP 数据包。这种捕获程序与数据包捕获函数库分离的机制,使得编写的程序具有很好的可移植性。IP 数据包捕获程序的核心部分就是数据包分析器。数据包分析器应具有识别和理解各种协议格式

IP数据包的捕获与分析文献综述

毕业设计(论文)文献综述 还有同名论文、任务书、和其他文件题目: IP数据包的捕获与分析 姓名: 学号: 系别: 专业: 年级: 指导教师:(签名) 年月日

一、研究背景 随着社会的飞速发展,科技的日新月异,互联网已经渗透到世界的各行各业和人民生活的各个方面,全社会对网络的依赖程度只增不减,整个世界通过网络正快速的融为一体,网络时代已经来临。但由于网络具有开放性,互联性,多样性,不均匀性等诸多特征,以至于网络中存在许多风险,例如黑客攻击,恶意软件等。这些风险的存在,严重的危险到网络上信息的完整性、保密性、真实性、可靠性。所以网络安全问题已越发受到人们的关注,而想要解决这些问题涉及的内容既有技术方面的问题,也有管理方面的问题,两方面相互补充,缺一不可。技术方面主要侧重于防范外部非法用户的攻击,管理方面则侧重于内部人为因素的管理。如何更有效地保护重要的信息数据、提高计算机网络系统的安全性已经成为所有计算机网络应用必须考虑和必须解决的一个重要问题。 可以这样来定义网络数据安全:所谓网络数据安全,指的是网络系统的硬件、软件和数据信息能够受到保护,不会因为偶然或恶意的原因而遭到破坏、更改、泄露,同时系统能够连续、可靠地运行,网络服务不被中断。但在现实中,绝对安全的网络是没有的。 目前,我正处在高速的现代化建设阶段,政府部门、军队、企业、学校等都需要建立自己的网络和信息系统并实施保护,尤其是有关的重要部门更需要需要网络的安全保障。所以建立网络安全系统对我们具有重大的意义,而有效的实时监控和捕获可疑的网络信息就是建立网络安全系统的基础。 二、研究意义 随着个人计算机和互联网的普及,使我们从一个封闭的环境进入到一个开放的世界,越来越多的人开始使用网络这个媒介来发送,接收信息,计算机网络给人们生产和生活带来了巨大的便利。但是由于网络是一个面向大众的开放系统,它的这种特性决定了其对数据信息的保密和系统的安全性考虑并并不完备,存在着诸多的安全隐患。因此让有些个人或团体有机可乘,利用这些隐患和漏洞,通过网络来发送一些包含色情,反动等不良内容的信息,或通过网络入侵他人主机盗取信息和机密,达到破坏正常社会秩序的目的,以至于计算机网络的安全形势日趋严峻。因此,现在在计算机网络安全隐患中扮演重要角色之一的网络数据抓包软件受到越来越大的关注。 构建安全网络环境,除了通过主动的人为思想的预防以外,一套被动的网络安全检测机制也是必不可少的,通过运用标准的机制对网络中传输的各类型进行实时监控,对具有威胁性的信息进行甄别警报,这套机制的前提就是首先对网络中传输的信息进行捕获,对获取的信息解析筛查。而想要捕获这些信息,就要知道网络中的信息是以数据包的形式进行传输,想要获取信息,就必须对网络中的数据包进行捕获和分析,才能获得所需要的相应信息。所以对网络上传送的数据包进行有效的捕获与解析是目前网络监控的关键技术,

计算机网络实验应用层数据包的捕获和分析报告

淮海工学院计算机工程学院 实验报告书 课程名:《计算机网络》 题目:应用层数据报捕获和分析 班级: Z计121 学号: 93 姓名:薛慧君

1.目的与要求 熟悉网络数据包捕获与分析工具SNIFFER的操作和使用方法,掌握数据包捕获和分析的基本过程;掌握协议过滤器的设定方法,能够捕获并分析常见的网络层和运输层数据包。 2.实验内容 (1)运行SNIFFER软件并设定过滤器,将捕获数据包的范围缩小为常见的协议; (2)开始捕获数据包,同时制造特定协议的数据; (3)对捕获的数据包进行分析,解析出常见的网络层和运输层数据包的格式,重点要求解析出DNS、FTP、Telnet的数据包。 3.实验步骤 ①打开Sniffer?Pro程序后,选择Capture(捕获)—Start(开始),或者使用F10键,或者是工具栏上的开始箭头。?? ②?一小段时间过后,再次进入Capture(捕获)菜单,然后选择Stop(停止)或者按下F10键,还可以使用工具栏。?? ③还可以按F9键来执行“停止并显示”的功能,或者可以进入Capture(捕获)菜单,选择“停止并显示”。?? ④停止捕获后,在对话框最下角增加了一组窗口卷标,包括高级、解码、矩阵、主机表单、协议分布和统计信息。?? ⑤选择解码卷标,可以看到Sniffer?Pro缓冲器中的所有实际“数据”。分析该卷标结构及其内容。? 具体结构:分割为上中下三个相连接的窗口,分别用于显示不同信息内容;? 内容: 1)最上面得窗口显示的是捕获各帧的数量和主要信息(包括帧编号,帧状态,源地址与目的地址,摘要等信息);? 2)中间的窗口显示的是所选取帧的协议信息(DLC,IP,UDP及TCP协议等的协议内容);? 3)最下面得窗口显示的是帧中协议各项内容对应的位置和机器码(默认以ASCII码显示)。?? 4. 测试数据与实验结果 实验1捕获DNS协议数据包 (1)设定过滤器,将捕获数据包的范围缩小为DNS协议;

计算机网络数据包的获取与分析实验报告

课程设计报告 数据包的获取与分析 学院: 专业班级: 学生姓名: 学号: 指导教师: 成绩: 2011 年 12 月

1. 设计任务 使用抓包软件抓取网络传输中的数据包,并对所抓取的数据包进行分析,在这里我使用的抓包软件是“锐捷”,使用“锐捷”抓包软件对邮件发送过程中所产生的数据包进行抓取,并从所抓取的数据包中筛选出邮件发送所产生的包,对其进行数据分析,包括数据包所属协议、作用以及首部字段和数据内容(具有相同功能的数据包只分析一次)。并且需要截图做详细说明。 2. 操作步骤 首先打开“锐捷”抓包软件,匿名登录上该软件。 从IE浏览器中打开163邮箱的登陆界面。 从一登陆上的界面点击开始按钮,开始捕捉网络中的数据包。 登陆163邮箱,编辑所要发送的邮件,编辑完成后,点击发送。发送完成后,关闭邮箱。 查看并分析抓包软件所抓取的数据包。 3. 数据包分析 3.1图3.1.1为我的主机的网络配置。

图3.1.1 计算机IP配置 3.2 捕获到的数据包分析 3.2.1 IP数据报的格式 IP数据报的格式,在网络中要对I数据经行封装,在网络中要发送一个数据要对其进行封装。 3.2.1 IP数据包格式 还需要地址解析协议ARP,如果主机A要向主机B发送IP数据报是如果高速缓存中没有主机B的IP地址,ARP进程在本局域网上广播发送一个ARP请求分组,主机B在ARP请求分组中看的自己的IP地址,就想主机A发送ARP响应分组,主机A收到主机B的响应分组后,就在ARP高速缓存中写入主机B的IP地址到MAC地址的映射。图3.2.2为邮件发送过程中所发送的ARP请求。

最新计算机网络练习之使用WireShark捕获和分析数据包

以太帧和ARP包协议分析实验 一、目的 1、理解以太帧格式 2、理解ARP协议格式和ARP 协议的工作原理 二、实验类型 验证类实验 三、实验步骤 一:运行wireshark开始捕获数据包,如图所示点击第二行的start开始捕获数据包。启动界面: 抓包界面的启动是 按file下的按钮(或capture下的interfaces)之后会出现

这个是网卡的显示,因为我有虚拟机所以会显示虚拟网卡,我们现在抓的是真实网卡上的包所以在以太网卡右边点击start 开始抓包。(捕捉本地连接对应的网卡,可用ipconfig/all 查看) 二:几分钟后就捕获到许多的数据包了,主界面如图所示: 如上图所示,可看到很多捕获的数据。 第一列是捕获数据的编号; 第二列是捕获数据的相对时间,从开始捕获算为0.000秒; 第三列是源地址,第四列是目的地址; 第五列是数据包的信息。 选中第一个数据帧,然后从整体上看看Wireshark的窗口,主要被分成三部分。上面部分是所有数据帧的列表;中间部分是数据帧的描述信息;下面部分是帧里面的数据。 三:开始分析数据 1.打开“命令提示符”窗口,使用“arp -a”命令查看本地计算机ARP高速缓存。

2.使用“arp -d”命令清除本地计算机ARP高速缓存,再使用“arp -a”命令查看。 此时,本地计算机ARP高速缓存为空。 3.在下图中Filter后面的编辑框中输入:arp(注意是小写),然后回车或者点击“Apply”按钮 将计算机与数据设备相连(3928或路由器),参见静态路由配置。 3.此时,网络协议分析软件开始捕获数据,在“命令提示符”窗口中PING同一子网中的 任意主机。(计算机Aping计算机B)

计算机网络-使用网络协议分析器捕捉和分析协议数据包

广州大学学生实验报告 开课学院及实验室:计算机科学与工程实验室2014年11月28日 学院计算机科学与 教育软件学院 年级/专 业/班 姓 名 学号 实验课 程名称 计算机网络实验成绩 实验项目名称使用网络协议分析器捕捉和分析协议数据包 指导 老师 熊伟 一、实验目的 (1)熟悉ethereal的使用 (2)验证各种协议数据包格式 (3)学会捕捉并分析各种数据包。 二、实验环境 1.MacBook Pro 2.Mac OS 10.10.1 3..Wireshark 三、实验内容 1.安装ethereal软件 2.捕捉数据包,验证数据帧、IP数据报、TCP数据段的报文格式。 3.捕捉并分析ARP报文。 4.捕捉ping过程中的ICMP报文,分析结果各参数的意义。 5.捕捉tracert过程中的ICMP报文,分析跟踪的路由器IP是哪个接口的。 6.捕捉并分析TCP三次握手建立连接的过程。 7.捕捉整个FTP工作工程的协议包 对协议包进行分析说明,依据不同阶段的协议分析,画出FTP工作过程的示意图 a.. 地址解析ARP协议执行过程 b. FTP控制连接建立过程 c . FTP 用户登录身份验证过程 d. FTP 数据连接建立过程 e. FTP数据传输过程 f. FTP连接释放过程(包括数据连接和控制连接) 8.捕捉及研究WWW应用的协议报文,回答以下问题: a. .当访问某个主页时,从应用层到网络层,用到了哪些协议? b. 对于用户请求的百度主页(https://www.360docs.net/doc/f46361124.html,),客户端将接收到几个应答报文?具体是哪几个? 假设从本地主机到该页面的往返时间是RTT,那么从请求该主页开始到浏览器上出现完整页面, 一共经过多长时间? c. 两个存放在同一个服务器中的截然不同的Web页(例如,https://www.360docs.net/doc/f46361124.html,/index.jsp,和 https://www.360docs.net/doc/f46361124.html,/cn/research/index.jsp可以在同一个持久的连接上发送吗? d. 假定一个超链接从一个万维网文档链接到另一个万维网文档,由于万维网文档上出现了差错而 使超链接指向一个无效的计算机名,这时浏览器将向用户报告什么?

数据包的捕获与分析

实验一数据包的捕获与分析 一、实验目的 数据包捕获技术是网络管理系统的关键技术。本实验通过Wireshark软件的安装使用,监控局域网的状态,捕获在局域网中传输的数据包,并结合在计算机网络课程中学习到的理论知识,对常用网络协议的数据包做出分析,加深网络课程知识的理解和掌握。 二、实验内容 Wireshark是一种开源的网络数据包的捕获和分析软件,本实验通过Wireshark软件的安装使用,监控局域网的状态,捕获在局域网中传输的数据包,并结合在计算机网络课程中学习到的理论知识,对常用网络协议的数据包做出分析,加深网络课程知识的理解和掌握。具体内容及要求如下: ●Wireshark软件的安装; ●Wireshark软件的启动,并设置网卡的状态为混杂状态,使得Wireshark可以监 控局域网的状态; ●启动数据包的捕获,跟踪PC之间的报文,并存入文件以备重新查; ●设置过滤器过滤网络报文以检测特定数据流; ●对常用协议的数据包的报文格式进行分析,利用协议分析软件的统计工具显示网络 报文的各种统计信息。 三、实验结果与分析 抓包结果: 分析:首先是6字节的目的地址字段,代码为:00 21 5d 39 df 44 接下来是6字节的源地址字段,代码为:00 24 d7 26 64 84 然后是2字节的类型代码字段,代码为:08 00,即为IP (0x0800)

抓包结果: 分析:首先是6字节的的目的地址字段,此报文的地址字段代码为:01 80 c2 00 00 00 00。接下来的6字节的源地址字段,此报文的源地址字段代码为:00 0f 23 80 ef e2,接着是两字节的长度字段,代码为 00 26,即长度为 38。 抓包结果:

计算机网络实验 数据包捕获与分析

计算机网络实验 实验名称:实验二 数据包捕获与分析 辅导员意见: 辅导员 成绩 签 名 信息与通信学院 电子信息工程 作者: 学号:0800220305 实验日期:2010年12月 14 日 一、实验目的 二、实验设备 连接在局域网的并且安装有Ethereal/Wireshark 软件的微机计算机 三、实验要求 实验前认真预习TCP/IP 协议内容,尤其应认真理解WINDOWS 网络相关原理;在进行实验时应该注意爱护仪器,按照实验指导的要求的内容和步骤完成实验,尤其应注意认真观察实验结果,作好记录;试验完成后应认真写实验报告。 四、实验原理

五、实验过程及结果 1、捕获一个数据包,并对其中的一个IP数据包进行分析。捕获了这个数据报: 分析其数据如下: 由以上的信息可以分析IP数据报的各项内容:

数据报的版本号是:4 报头标长是:20 bytes 服务类型:0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 总长度:48 标识:0x8f09 (36617) 标志:0x02 (Don't Fragment) 0... .... = Reserved bit: Not set .1.. .... = Don't fragment: Set ..0. .... = More fragments: Not set 片偏移:0 生存时间:128 协议:TCP (6) 源IP地址:192.168.1.104 (192.168.1.104) 目的IP地址:124.89.102.139 (124.89.102.139) 选项:(8 bytes) Maximum segment size: 1460 bytes NOP NOP TCP SACK Permitted Option: True 2、捕获一个数据包,并对其中的一个TCP报文进行分析。 捕获了这个数据报: 分析其数据如下: 由以上的信息可以分析TCP报文的各项内容:

相关文档
最新文档