IP 数据报捕获与分析实验报告
- 格式:doc
- 大小:360.00 KB
- 文档页数:5
实验四ICMP 协议和IP 数据报分片分析【实验目的】1. 理解 ICMP 协议报文类型和格式;2. 理解 ping 命令的工作原理;3. 理解 traceroute 的工作原理;4. 理解 IP 协议报文类型和格式。
【实验环境】与因特网连接的电脑,操作系统为Windows,安装有Wireshark、IE 等软件。
【实验内容】1. 使用 wireshark 抓包软件分析ICMP 协议报文的类型;2. 分析 ping 命令的工作原理;3. 分析 tracert 命令的工作原理;4. 使用 wireshark 抓包软件分析IP 协议报文以及报文分片。
【实验步骤】1. 分析ICMP 协议步骤1:在 PC1 运行 Wireshark,开始截获报文,为了只截获和实验内容有关的报文,将Wireshark 的 Captrue Filter 设置为“No Broadcast and no Multicast”;步骤2:在 PC1 以 baidu 为目标主机,在命令行窗口执行 Ping 命令,要求ping 通8 次;【答】:Ping 命令为:____ ping –n 8 baidu ____将命令行窗口进行截图:【答】:步骤3:停止截获报文,分析截获的结果,答复以下问题:〔1〕将抓包结果进行截图〔要求只显示 ping 的数据包〕:〔2〕截获的 ICMP 报文有几种类型?分别是:【答】:两种:8(Echo〔ping〕 request) 、 0(Echo (ping) reply )〔3〕分析截获的 ICMP 报文,按下表要求,将各字段信息填入表中,要求填写前4 个报文的信息。
〔4〕查看ping 请求信息,ICMP 的type是 ___Echo〔ping〕 request___。
和code是 __8__。
并截图。
〔5〕查看相应得ICMP 响应信息,ICMP 的type 是___Echo〔ping〕 reply___和code 是 __0__。
CENTRAL SOUTH UNIVERSITY计算机网络课程设计报告题目IP数据包的捕获与分析学生姓名廖成班级学号0902130408指导教师穆帅设计时间2015年11月目录第一章绪论 (3)1.1 课题研究背景 (3)1.2 课题研究的意义 (3)第二章课程设计的目的与要求 (3)2.1 课程设计的目的 (3)2.2 课程设计的要求 (4)第三章课程设计的内容 (4)3.1 课程设计的内容 (5)3.2 内容的要求 (5)第四章程序设计与分析 (5)4.1 IP数据包 (5)4.1.1 数据包的格式说明 (5)4.1.2 头部数据结构的定义 (7)4.2 部分程序实现 (7)4.2.1 套接字的使用 (7)4.2.2 数据库的使用 (8)4.2.3 各部分详细实现 (9)4.4 程序流程图 (12)4.4.1 主程序流程图 (12)4.4.2 捕获并分析数据包头部模块流程图 (13)4.4.3 头部信息存数据库模块 (13)第五章实验结果 (14)5.1 程序截图 (14)第六章总结 (16)6.1 实验心得 (16)第七章附录 (17)参考文献 (17)第一章绪论1.1 课题研究背景随着计算机技术的发展,网络的应用迅速普及,网络已日益成为生活中不可或缺的工具。
同时,网络的安全性与可靠性日益受到人们的重视,安全性指的是网络上的信息不被泄露、更改和破坏,可靠性指的是网络系统能够连续、可靠地运行,网络服务不被中断。
网络数据包捕获、监听与分析技术是网络安全维护的一个基础技术同时也是网络入侵的核心手段。
所以研究有关数据包捕获和分析技术对保证网络的健康、安全运行是很有意义的。
1.2课题研究的意义计算机之间进行通信时,交互的所有信息都封装在数据包中。
因此,通过采集网络数据并对其进行相应的分析,可以清楚地了解到进行通信的计算机的通信目的。
通过分析采集到的数据包可以确定网络是否受到入侵;其次也可以通过采集到的数据包来分析应用程序可能出现的问题及原因;此外,通过网络数据的采集和统计可以清楚地了解整个网络在各个时段内的网络负载情况,从而判断网络使用得是否合理。
arp,ip,icmp协议数据包捕获分析实验报告数据篇一:网络协议分析实验报告实验报告课程名称计算机网络实验名称网络协议分析系别专业班级指导教师学号姓名实验成绩一、实验目的掌握常用的抓包软件,了解ARP、ICMP、IP、TCP、UDP 协议的结构。
二、实验环境1.虚拟机(VMWare或Microsoft Virtual PC)、Windows XX Server。
客户机A客户机B2.实验室局域网,WindowsXP三、实验学时2学时,必做实验。
四、实验内容注意:若是实验环境1,则配置客户机A的IP地址:/24,X为学生座号;另一台客户机B的IP地址:(X+100)。
在客户机A上安装EtherPeek(或者sniffer pro)协议分析软件。
若是实验环境2则根据当前主机A的地址,找一台当前在线主机B完成。
1、从客户机A ping客户机B ,利用EtherPeek(或者sniffer pro)协议分析软件抓包,分析ARP 协议;2、从客户机A ping客户机B,利用EtherPeek(或者sniffer pro)协议分析软件抓包,分析icmp协议和ip协议;3、客户机A上访问,利用E(转载于: 小龙文档网:arp,ip,icmp协议数据包捕获分析实验报告数据)therPeek(或者sniffer pro)协议分析软件抓包,分析TCP和UDP 协议;五、实验步骤和截图(并填表)1、分析arp协议,填写下表12、分析icmp协议和ip协议,分别填写下表表一:ICMP报文分析233、分析TCP和UDP 协议,分别填写下表4表二: UDP 协议 5篇二:网络层协议数据的捕获实验报告篇三:实验报告4-网络层协议数据的捕获实验报告。
任务三网络编程一、实验目的捕获本机网卡的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报⽂的捕获与分析——实验报告⼀、实验⽬的(1)掌握IP协议报⽂格式。
(2)对捕捉到的包进⾏IP分析。
⼆、实验内容⽤Wireshark过滤出IP数据包,查看并分析具体的IP包的内容。
三、实验原理1、wireshark简介Wireshark(前称Ethereal)是⼀个⽹络封包分析软件。
⽹络封包分析软件的功能是撷取⽹络封包,并尽可能显⽰出最为详细的⽹络封包资料。
在GNUGPL通⽤许可证的保障范围底下,使⽤者可以以免费的代价取得软件与其程式码,并拥有针对其源代码修改及客制化的权利。
Ethereal是⽬前全世界最⼴泛的⽹络封包分析软件之⼀。
Wireshark可以帮助⽹络管理员检测⽹络问题,帮助⽹络安全⼯程师检查资讯安全相关问题,开发者使⽤Wireshark来为新的通讯协议除错,普通使⽤者使⽤Wireshark来学习⽹络协定的相关知识当然,有的⼈⽤它来寻找⼀些敏感信息Wireshark不是⼊侵侦测软件(Intrusion DetectionSoftware,IDS)。
对于⽹络上的异常流量⾏为,Wireshark不会产⽣警⽰或是任何提⽰。
然⽽,仔细分析Wireshark撷取的封包能够帮助使⽤者对于⽹络⾏为有更清楚的了解。
Wireshark不会对⽹络封包产⽣内容的修改,它只会反映出⽬前流通的封包信息,它也不会送出封包⾄⽹络上2、IP数据报格式IP数据报TCP/IP协议定义了⼀个在因特⽹上传输的包,称为IP数据报(IP Datagram)。
这是⼀个与硬件⽆关的虚拟包,由⾸部和数据两部分组成。
⾸部的前⼀部分是固定长度,共20字节,是所有IP数据报必须具有的。
在⾸部的固定部分的后⾯是⼀些可选字段,其长度是可变的。
⾸部中的源地址和⽬的地址都是IP协议地址。
IP数据包格式如图1所⽰。
图1 IP报⽂格式上⽹查找资料,整理如下更详细更易懂的IP报⽂格式与字段含义:IP协议偏移量0~34~78~1516~1819~31偏移量0~34~78~1516~1819~31 0版本⾸部长度服务类型总长度32标识符标识分段偏移64存活时间协议⾸部校验和96源IP地址128⽬的IP地址160选项160或192+数据IP报⽂字段含义版本指 IP 协议所使⽤的版本。
网络抓包分析实验报告一:实验目的:1. 学习使用网络数据抓包软件Ethereal,对互连网进行数据抓包,巩固对所学知识的理解二:实验内容:1:分析IP,ICMP的报文格式。
三:实验工具Wireshark抓包软件四:实验步骤1、安装Wireshark,简单描述安装步骤。
2、打开wireshark,选择接口选项列表。
或单击“Capture”,配置“option”选项。
3、设置完成后,点击“start”开始抓包,显示结果。
4、选择某一行抓包结果,双击查看此数据包具体结构5、抓ICMP时在开始->运行cmd->tracert 五:分析1:IP报文分析报文格式:截图:分析:由图可知:IP报文版本号是IPV4,首部长度:20 bytes,数据包总长度:58,标示符:0x7335,标志:0x00,比特偏移:0,寿命:112,上层协议:UDP,首部校验和:0x071d,并且是正确的。
源IP地址:61.142.208.196目的IP地址:192.168.1.102二:ICMP报文分析截图如下:ICMP格式有抓包显示截图可知:类型:8 (回显请求)代码/编码:0校验和:0xf2ff(正确的校验和)标示符:0x0300;序列号:512(0x0200)通过这次试验,培养了自己动手的能力,另外,通过对wireshark抓包软件的使用,用其来抓取数据包,对ip, icmp报文的格式有了进一步的了解,通过对报文格式的分析,并且把课本上多学的理论知识与实践结合起来,对以前的知识得到深化和巩固,为以后学习新的知识打下基础,也提高了学习的兴趣,收获很大。
实验二IP数据包的捕获与解析网络09021.实验目的:掌握网络层的基本原理,通过编程实现网卡截取标准格式的IP包;解析IP数据包,了解IP包结构中个字段的含义与用途。
2.实验原理:IP数据报结构:3. 实验环境平台:Windows、编程环境:VC 6.0、语言:C++4流程图及源代码#include<iostream>#include<winsock2.h>#include<ws2tcpip.h>#include<fstream>#include <windows.h>#pragma comment(lib,"ws2_32") //指定连接到网络应用和internet#define IO_RCVALL _WSAIOW(IOC_VENDOR,1)typedef struct IP_HEAD{union //定义联合{unsigned char Version;unsigned char HeadLen;};unsigned char ServiceType;unsigned short TotalLen; Array unsigned short Identifier;union{unsigned short Flags;unsigned short FragOffset;};unsigned char TimeToLive;unsigned char Protocol;unsigned short HeadChecksum;unsigned int SourceAddr;unsigned int DestinAddr;unsigned char Options;}ip_head; //定义IP头部的数据结构void main(int argc,char *argv[]){using namespace std;ofstream outfile("C:\\logfile.txt",ios::out);if(argc!=2){cout<<endl<<"请以下格式输入命令行return;}WSADATA WSAData;if(WSAStartup(MAKEWORD(2,2), &WSAData)!=0){cout<<endl<<"WSASTartup初始化失败"<<endl;return;}SOCKET sock=socket(AF_INET,SOCK_RAW,IPPROTO_IP); //三个参分别为通信发生的区字段,套接字的类型,与IP协议if(sock==INVALID_SOCKET){cout<<endl<<"创建Socket失败!"<<endl;closesocket(sock);WSACleanup();}BOOL flag=TRUE;if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char *) &flag,sizeof(flag))==SOCKET_ERROR){cout<<endl<<"setsockopt操作失败:"<<WSAGetLastError()<<endl;closesocket(sock);WSACleanup();}char hostName[128];//获取主机名if(gethostname(hostName,100)==SOCKET_ERROR){cout<<endl<<"gethostname操作失败:"<<WSAGetLastError()<<endl;closesocket(sock);WSACleanup();}hostent *pHostIP; //获取本地IPif((pHostIP=gethostbyname(hostName))==NULL){cout<<endl<<"gethostbyname操作失败:"<<WSAGetLastError()<<endl;closesocket(sock);WSACleanup();}sockaddr_in host_addr;//host_addr.sin_family=AF_INET;host_addr.sin_port=htons(6000);host_addr.sin_addr=*(in_addr *)pHostIP->h_addr_list[0];if(bind(sock,(PSOCKADDR)&host_addr,sizeof(host_addr))==SOCKET_ERROR){cout<<endl<<"bind操作失败:"<<WSAGetLastError()<<endl;closesocket(sock); //绑定网卡WSACleanup();}DWORD dwBufferLen[10];DWORD dwBufferInLen=1;DWORD dwBytesReturned=0;if(WSAIoctl(sock , IO_RCVALL ,&dwBufferInLen , sizeof(dwBufferInLen) , &dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL)==SOCKET_ERROR){cout<<endl<<"WSAIoctl操作失败:"<<WSAGetLastError()<<endl;closesocket(sock); //将网卡设为混杂模式,以接受所有数据WSACleanup();}cout<<endl<<"开始解析IP包:"<<endl;char buffer[65535]; //设置缓冲区int packsum=atoi(argv[1]); //字符串转换为整形for(int i=0;i<packsum;i++){if(recv(sock,buffer,65535,0)>0) //四个参数分别是套接字描述符,缓冲区的地址,缓冲区大小,附加标志{ip_head ip=*(ip_head *)buffer;cout<<"-----------------------"<<endl;cout<<"版本:"<<(ip.Version>>4)<<endl; //获取头部长度字段cout<<"头部长度:"<<((ip.HeadLen &0x0f)*4)<<endl; //获取头部长度字段cout<<"服务类型:Priority"<<(ip.ServiceType>>5)<<", Service"<<((ip.ServiceType>>1)&0x0f)<<endl;//优先级子域和TOS子域cout<<"总长度:"<<ip.TotalLen<<endl;//获取总长度字段cout<<"标识符:"<<ip.Identifier<<endl;//获取标识字段cout<<"标志位:"<<((ip.Flags>>15)&0x01)<<",DF= "<<((ip.Flags>>14)&0x01)<<",Mf="<<((ip.Flags>>13)&0x01)<<endl; //获得标志字段cout<<"片偏移:"<<(ip.FragOffset&0x1fff)<<endl; //获取分段偏移字段cout<<"生存周期:"<<(int)ip.TimeToLive<<endl; //获取生存时间字段cout<<"协议:Protocol"<<(int)ip.Protocol<<endl; //获取协议字段cout<<"头部校验和:"<<ip.HeadChecksum<<endl; //获取头校验和字段cout<<"原地址:"<<inet_ntoa(*(in_addr *)&ip.SourceAddr)<<endl; //获取源IP地址字段cout<<"目的IP地址:"<<inet_ntoa(*(in_addr *)&ip.DestinAddr)<<endl; //获取目的IP地址字段outfile<<"-----------------------"<<endl;outfile<<"版本:"<<(ip.Version>>4)<<endl;outfile<<"头部长度:"<<((ip.HeadLen &0x0f)*4)<<endl;outfile<<"服务类型:Priority"<<(ip.ServiceType>>5)<<", Service"<<((ip.ServiceType>>1)&0x0f)<<endl;outfile<<"总长度:"<<ip.TotalLen<<endl;outfile<<"标识符:"<<ip.Identifier<<endl;outfile<<"标志位:"<<((ip.Flags>>15)&0x01)<<",DF= "<<((ip.Flags>>14)&0x01)<<",Mf="<<((ip.Flags>>13)&0x01)<<endl;outfile<<"片偏移:"<<(ip.FragOffset&0x1fff)<<endl;outfile<<"生存周期:"<<(int)ip.TimeToLive<<endl;outfile<<"协议:Protocol"<<(int)ip.Protocol<<endl;outfile<<"头部校验和:"<<ip.HeadChecksum<<endl;outfile<<"原地址:"<<inet_ntoa(*(in_addr *)&ip.SourceAddr)<<endl;outfile<<"目的IP地址:"<<inet_ntoa(*(in_addr *)&ip.DestinAddr)<<endl;}}closesocket(sock);WSACleanup();}5.运行结果:。
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-52、添加IP安全规则。
如图1-6.图1-6 3、添加IP筛选器。
如图1-7,图1-8,图1-9图1-7图1-8 图1-9 4、设置筛选器操作,如图1-10,图1-11所示图1-10图1-115、设置身份验证方法,预共享密钥:123456789,如图1-12所示图1-12 6、将设置好的本地安全策略分配,如图1-13所示图1-13 四、两PC配置IPSEC互ping,并抓获报文分析:所抓取报文如下图1-14所示图1-14下图1-15为协议协商部分报文:图1-15分析:(1)发起方的SPI为:1cfe1a3b68487806(2)响应方的SPI为:未知(3)本报文作用为协商IKE策略(4)交换模式为主模式(5)有效载荷类型:策略协商(6)载荷长度:56(7)解释域为IPSEC协议(8)第二段有效载荷类型为建议部分(9)第二段有效载荷类型为传输,内容是IKE策略下图1-16为KEY交换部分报文:图1-16分析:作用为通过协商DH产生第一阶段的密码。
实验报告
专业班级成绩评定______ 学号姓名教师签名______ 实验题目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协议节点
上面节点说明如下:
树节点名称说明
Version IP版本,IPv4
Header Length 20个字节的IP头,没有其他选项
Total Length 该IP包携带的64字节
Flags 不分片标志被设置没有被设置,该IP在通过
各种类型的网络时可以分片传输;如果该网
络的最大数据包小于该IP包的长度,该数据
包将被分片传输;
Time to live TTL值为64,最多数据传输64个节点就被抛
弃。
Protocol 该数据包是TCP协议的
Header checksum 头的校验和,通过该字段可以知道数据是否
有错误。
Source,Destionation 该数据包的网络层源和目标地址。
3.进制数据包窗口
16进制数据包窗口将数据包的所有内容以16进制的形式显示出来,如下所示:
16进制数据包窗口
该窗口包括3部分,分别是:
1.16进制的序号,单位为字节;最左边部分。
2.16进制的数据内容:16个字节一行;中间部分。
3.ASCII码数据内容,最右边部分。
五、实验小结:
通过以上学习,基本掌握了wireshark软件的运用。
如何捕获数据包、怎样分析数据包以及如何过虑数据包。
我也理解了在现实生活中,捕获数据报的用途。
例如在一家企业中,网管可以通过查看每台主机流过数据报的一些情况,可以判断员工上网行为是否合理。
但学习wireshark的使用不是最终目的,wireshark只是辅助工具,真正需要掌握的是IP TCP等包的格式,以及各个字段的含义及作用。
通过分析,更加加深了本人对TCP/IP协议簇的理解。