大作业2:IP包的截获和解析
IP包头结构详解

IP包头结构详解IP包头结构如下图所示下面具体分析IP包头中各部分的作用。
版本号(Version):长度4比特。
标识目前采用的IP协议的版本号。
一般的值为0100(IPv4),0110(IPv6)IP包头长度(Header Length):长度4比特。
这个字段的作用是为了描述IP包头的长度,因为在IP包头中有变长的可选部分。
该部分占4个bit位,单位为32bit(4个字节),即本区域值= IP头部长度(单位为bit)/(8*4),因此,一个IP包头的长度最长为“1111”,即15*4=60个字节。
IP包头最小长度为20字节。
服务类型(Type of Service):长度8比特。
8位按位被如下定义PPP D T R C 0PPP:定义包的优先级000 普通(Routine)001 优先的(Priority)010 立即的发送(Immediate)011 闪电式的(Flash)100 比闪电还闪电式的(Flash Override)101 CRI/TIC/ECP (不知道虾米意思)110 网间控制(Internetwork Control)111 网络控制(Network Control)D 时延: 0:普通1:尽量小T 吞吐量: 0:普通1:尽量大R 可靠性: 0:普通1:尽量大M 传输成本: 0:普通1:尽量小0 最后一位被保留,恒定为0IP包总长(Total Length):长度16比特。
以字节为单位计算的IP包的长度(包括头部和数据),所以IP包最大长度65535字节。
标识符(Identifier)(数据报ID):长度16比特。
该字段和Flags和Fragment Offest字段联合使用,对大的上层数据包进行分段(fragment)操作。
路由器将一个包拆分后,所有拆分开的小包被标记相同的值,以便目的端设备能够区分哪个包属于被拆分开的包的一部分。
标记(Flags):长度3比特。
该字段第一位不使用。
数据包抓包分析

数据包抓包分析数据包抓包分析是一种网络通信分析技术,通过捕获网络数据包并对其进行详细的分析,可以深入了解网络流量的详细情况,发现网络通信中的各种问题、威胁和漏洞。
以下是关于数据包抓包分析的详细介绍。
一、数据包抓取数据包抓取是进行数据包分析的第一步,它通过截获网络数据包并将其记录下来,以便后续的分析和处理。
在网络数据包抓取过程中,通常使用一些专门的数据包抓取工具,如Wireshark、tcpdump等来实现。
这些工具可以通过旁路监听或者利用操作系统的数据包过滤功能等方式,截获网络数据包并记录下来。
二、数据包分析工具在进行数据包分析时,需要使用一些专门的数据包分析工具。
这些工具可以对截获的数据包进行详细的解析和处理,帮助分析人员更好地了解网络流量和通信情况。
常用的数据包分析工具包括Wireshark、tcpdump、Sniffer等。
其中,Wireshark是一款非常流行的开源网络协议分析工具,它可以捕获网络数据包并显示详细的层次结构和协议信息。
tcpdump则是一款常用的命令行网络分析工具,它能够以人类可读的格式输出数据包的详细信息。
三、数据包分析实践在进行数据包分析时,通常需要遵循一定的步骤。
首先,需要明确分析的目的和需求,确定需要抓取哪些数据包以及需要分析哪些协议和端口。
其次,选择合适的数据包抓取工具进行数据包的捕获,并将捕获到的数据包保存为文本或者二进制文件。
然后,使用数据包分析工具对捕获到的数据包进行分析和处理,根据需求过滤、查找和分析数据包中的各种信息。
最后,根据分析结果得出结论,解决问题或漏洞。
四、数据包分析应用数据包抓取和分析在网络通信领域有着广泛的应用。
例如,在日常网络管理中,可以使用数据包分析工具检测网络通信中的异常和故障,如网络延迟、丢包、断流等。
在网络安全领域,可以使用数据包分析工具检测网络攻击、病毒传播等安全威胁,及时发现并防范潜在的安全风险。
此外,在软件开发和调试过程中,可以使用数据包分析工具对软件产生的网络流量进行分析,帮助开发人员更好地了解软件的运行情况和通信机制。
抓包工具和抓包分析

抓包工具和抓包分析1 概述在处理 IP网络的故障时,经常使用以太网抓包工具来查看和抓取 IP网络上某些端口或某些网段的数据包,并对这些数据包进行分析,定位问题。
在IMON项目里,使用抓包工具抓包进行分析的场景在EPG采集、引流模块和软终端监看模块,一般情况下EPG采集和引流模块比较稳定,软终端监看还涉及SS5代理,这部分出问题的几率比较大,这是就有可能要现场维护人员抓包进行分析、排查、定位问题,确定是网络问题还是软件问题,如果是软件问题则要将抓回的包发给研发解决。
EPG抓包可分为对鉴权过程、采集过程抓包验证,主要是通过通过抓包分析与IPTV鉴权服务器之间的TCP交互。
流媒体交互抓包可分为对组播、点播进行抓包,一般交互的协议分为IGMP、RTSP、RTMP等,组播一般是基于UDP的IGMP流,点播是基于RTP的RTSP流或基于TCP的RTMP流。
软终端抓包主要是抓取软终端与IPTV服务器交互、SS5与IPTV服务器交互的数据包,一般跟流媒体交互的报文协议差不多,也是分为组播IGMP、点播RTSP等协议,不过经过测试发现江苏的部分组播(可能是用户不同所致)发送的是RTSP的包。
2 常用抓包工具2.1 W ireSharkWireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的。
过滤器的区别捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中。
需要在开始捕捉前设置。
显示过滤器(DisplayFilters):在捕捉结果中进行详细查找。
他们可以在得到捕捉结果后随意修改。
捕捉过滤器Protocol(协议):可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp. 如果没有特别指明是什么协议,则默认使用所有支持的协议。
任务三计算机网络实验IP数据报捕获与分析

任务三计算机网络实验IP数据报捕获与分析一、实验目的本实验的目的是通过使用网络抓包工具捕获IP数据报,了解IP协议的工作过程,分析数据报的结构和内容。
二、实验设备和工具1.计算机2.网络抓包工具:Wireshark三、实验原理IP(Internet Protocol)是网络层的核心协议,在互联网中承担着数据包的传输任务。
IP协议负责将数据包从源主机传输到目标主机,保证数据在不同主机之间的正确传输。
IP数据报是IP协议传输的基本单位,由IP头和数据部分组成。
IP头部包含以下重要字段:1.版本(4位):表示IP协议的版本号,IPv4为4,IPv6为62.首部长度(4位):表示IP头部的长度,以32位的字节为单位。
3.区分服务(8位):用于标识优先级和服务质量等信息。
4.总长度(16位):指明整个IP数据报的长度。
5.标识(16位):用于标识同一个数据报的分片。
6.标志位(3位):标记是否进行数据报的分片。
7.片偏移(13位):表示数据报组装时的偏移量。
8.生存时间(8位):表示数据报在网络中的存活时间。
9.协议(8位):指明IP数据报中携带的数据部分所使用的协议,如TCP、UDP等。
10.头部校验和(16位):用于对IP头部的校验。
11.源IP地址(32位):指明数据报的发送者的IP地址。
12.目的IP地址(32位):指明数据报的目标IP地址。
四、实验步骤1.安装Wireshark软件。
2.打开Wireshark软件,选择需要进行抓包的网络接口。
3.点击“开始”按钮,开始抓包。
4.进行相关网络操作,产生数据包。
5.停止抓包。
6.选中其中一个数据包,进行分析。
五、数据包分析Wireshark软件可以对捕获到的数据包进行详细的分析,提供了丰富的信息和统计数据。
以下是对数据包的一些常规分析内容:1.源IP地址和目的IP地址:根据协议规定,每个IP数据报必须携带源IP地址和目的IP地址,通过分析这两个字段可以确定数据包的发送方和接收方。
计算机网络课程设计报告-IP数据包的捕获与分析

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课题研究的意义计算机之间进行通信时,交互的所有信息都封装在数据包中。
因此,通过采集网络数据并对其进行相应的分析,可以清楚地了解到进行通信的计算机的通信目的。
通过分析采集到的数据包可以确定网络是否受到入侵;其次也可以通过采集到的数据包来分析应用程序可能出现的问题及原因;此外,通过网络数据的采集和统计可以清楚地了解整个网络在各个时段内的网络负载情况,从而判断网络使用得是否合理。
(完整word版)北邮实验二网络层数据分组的捕获和解析

实验二:网络层数据分组的捕获和解析◆实验内容和实验环境实验内容:1)捕获在连接Internet过程中产生的网络层分组:DHCP分组,ARP分组,IP数据分组,ICMP分组。
2)分析各种分组的格式,说明各种分组在建立网络连接过程中的作用。
3)分析IP数据分组分片的结构。
通过本次实验了解计算机上网的工作过程,学习各种网络层分组的格式及其作用,理解长度大于1500字节IP数据组分片传输的结构。
实验环境:1台装有Windows XP 操作系统的pc机,能够连接到Internets使用Wireshark软件。
◆分析网络层分组结构1)捕获DHCP分组Encode分析如下:IP头部目的域地址为:ff ff ff ff 说明该数据包为广播包源地址为10.211.9.36Boot Requset 域为1.这应该是连接网络的首先要做的。
计算机以广播方式发送一个DHCP Requset 报文。
2)捕获IP数据分组:IP分组格式为:分析IP数据分组:字段报文内容包头长度45 包头长20字节服务类型22 正常时延正常吞吐量正常可靠性总长度01a3 419标识448c 标识为17548标志40 DF=1 MF=0不允许分片片偏移00 偏移量为0生存周期30 每跳生存周期为48秒协议06 携带数据来自TCP协议头部校验和78ea 头部校验和为78ea源地址6fca 07fc 源地址为111.202.7.252 目的地址0ad3 0924 目的地址为10.211.9.363)分析整个上网的工作过程,需要收发什么分组?每个分组的内容是什么?a.向默认网关发送一个DHCP REQUEST报文以申请获得IP地址。
b.网关收到报文后回送一个DHCP ACKc.利用ARP数据报本机广播自己的地址映射关系,使其他主机知道当前主机的地址。
DHCP REQUESTDHCP ACKARP4)捕获ICMP分组:ICMP分组格式:字段报文(16进制)内容类型08 询问一台机器是否处于活动状态代码00校验和4d51 校验和为4d51分析ICMP分组:该ICMP用来判断指定目标是否可达或是否活着。
计算机网络课程设计IP数据包的捕获与分析.docx

计算机科学与技术学院课程设计成绩单C+:72~74分C:68~71分C-:64~67分D:60~63分F:<60分武汉科技大学计算机科学与技术学院制表IP数据包捕获与解析程序设计一、需求分析在本次课程设计要求捕获本机网卡的IP包,对捕获的IP包进行解析。
要求输出版本号、总长度、标志位、片偏移、协议、源地址和目的地址七个字段。
要求遵循RFC791的相关IP协议规定,捕获通过本地网卡的IP数据包。
实现对指定数量的IP数据包的捕获过程。
,需要定义好IP数据报等相关的数据结构以对IP数据包的各个字段进行保存,以及该IP数据包的上一层使用的协议名称。
在对IP数据包进行解析时要将捕获的数据流存储在一个缓冲区中。
二、概要设计1.总体流程算法:创建原始套接字并绑定本地网卡,将套接字设置为混杂模式监听网卡并根据输入的数量捕获流经本地的IP包。
IP数据包的格式:NoYes开始创建并初始化原始套接字填充sockaddr_in并绑定socket 设置网卡混杂模式监听网卡捕获和解析IP数据报输出解析字段结束是否达到需要次数IP数据包由首部和数据两部分组成。
首部的前一部分是固定长度,共 20 字节,是所有IP数据报必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的,可选字段之后是数据部分。
其中,首部固定部分中本次课程设计需要解析的各字段的长度及意义如下:(1)版本占4位,指IP协议的版本。
通信双方使用的IP协议版本必须一致。
目前广泛使用的IP协议版本号为4(即IPv4)。
关于IPv6,目前还处于草案阶段。
(2)总长度总长度指首部和数据之和的长度,单位为字节。
总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节。
在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。
当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。
解析IP数据包

解析IP数据包IP数据包是在互联网传输中扮演重要角色的一种数据格式。
它包含了源IP地址和目标IP地址,以及其他与网络通信相关的信息。
解析IP数据包是对这些信息进行分析和解读的过程,以便理解数据包的来源、目的和内容。
在解析IP数据包时,我们可以从以下几个方面进行详细的分析:1. 版本号:IP数据包的版本号指示了所使用的IP协议的版本。
常见的版本有IPv4和IPv6。
IPv4是目前广泛使用的版本,而IPv6是为了解决IPv4地址不足的问题而推出的新版本。
2. 头部长度:IP数据包的头部长度指示了IP头部的长度,以字节为单位。
头部长度可以通过该字段的值乘以4来计算得到实际长度。
3. 服务类型:IP数据包的服务类型字段用于指示对数据包的处理优先级和要求。
这个字段可以用于区分不同类型的流量,如语音、视频或者普通数据。
4. 总长度:IP数据包的总长度字段指示了整个IP数据包的长度,包括头部和数据部份。
这个字段的值以字节为单位。
5. 标识、标志和片偏移:IP数据包的标识字段用于惟一标识一个IP数据包。
标志字段用于指示是否还有后续的分片数据包,以及是否允许分片。
片偏移字段用于指示当前数据包在原始数据中的位置。
6. 生存时间:生存时间字段指示了IP数据包在网络中的最大生存时间。
每经过一个路由器,生存时间字段的值就会减少1。
当生存时间字段的值为0时,数据包将被丢弃。
7. 协议:协议字段指示了IP数据包中封装的上层协议类型。
常见的协议有TCP、UDP和ICMP等。
8. 校验和:校验和字段用于检测IP数据包在传输过程中是否发生了错误。
发送端会计算校验和,并将其添加到IP头部中。
接收端在接收到数据包后会重新计算校验和,并将其与接收到的校验和进行比较,以检测数据包是否有损坏。
9. 源IP地址和目标IP地址:源IP地址字段指示了数据包的发送者的IP地址,而目标IP地址字段指示了数据包的接收者的IP地址。
通过解析IP数据包,我们可以获得有关网络通信的重要信息,如数据包的源地址、目标地址、协议类型等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据部分
IP数据包的第一个字段是版本字段,其度是4位,表示所使用的IP协议的版本。本程序主要针对版本是IPV4的数据包的解析。
报头标长字段为4位,它定义了以4B为一个单位的IP包的报文长度.报头中除了选项字段和填充域字段外,其他各字段是定长的。因此,IP数据包的头长度在20—40B之间,是可变的。
u_char SrcMAC[6]; /* source HW addresss */
u_char Ethertype; /* ethernet type */
} DLCHEADER;
2、IP数据报格式
0 4 8 16 19 24 31
版本
报头标长
服务类型
总长度
标识
标志
片偏移
生存时间
协议
头校验和
源IP地址
三.主要数据结构
各种包头部、IP地址等的结构体定义在Header.h中。
1、以太网帧格式
因此,以太网帧头部的数据结构定义为:
typedef struct tagDLCHeader /*以太网数据帧头部结构*/
{
u_char DesMAC[6]; /* destination HW addrress */
目前,IPv4的报头结构为常用的ICMP报文包括ECHO-REQUEST(响应请求消息)、ECHO-REPLY(响应应答消息)、Destination Unreachable(目标不可到达消息)、Time Exceeded(超时消息)、Parameter Problems(参数错误消息)、Source Quenchs(源抑制消息)、Redirects(重定向消息)、Timestamps(时间戳消息)、Timestamp Replies(时间戳响应消息)、Address Masks(地址掩码请求消息)、Address Mask Replies(地址掩码响应消息)等,是Internet上十分重要的消息。后面章节中所涉及到的ping命令、ICMP拒绝服务攻击、路由欺骗都与ICMP协议息息相关。
u_char proto;//后面的协议信息
u_short crc;//校验和
ip_address saddr;//源IP
ip_address daddr;//目的IP
ip_address selection;//选项
}ip_header;
3、各类报头TCP/UDP/ICMP/IP结构
当我们使用Raw Socket的时候,可以完全自定义IP包,一切形式的包都可以"制造"出来。因此,本文事先必须对TCP/IP所涉及IP包结构进行必要的交待。
片偏移字段共13位,说明分片在整个数据包中的相对位置,片偏移值是以8B为单位来记数的,因此选择的分片长度应该是8B的整数倍。
生存时间(TTL)字段为8位,用来设置数据包在互联网络的传输过程的寿命,通常是用一个数据包可以经过的最多的路由器跳步数来限定的。
协议字段为8位,表示使用此IP数据包的高层协议类型,常用的协议号如下表所示.
序号
协议名称
序号
协议名称
1
2
4
6
8
ICMP
IGMP
IP inIP
TCP
EGP
17
41
46
89
UDP
IPV6
RSVP
OSPFA
头校验和字段为16位,用于存放检查报头错误的校验码,检验的范围是整个IP包的报头。校验和为0,说明数据报报头没有出错。
地址字段包括源地址和目的地址。源地址和目的地址的长度都是32位,分别表示发送数据包的源主机和目的主机的IP地址。
程序的具体要求如下:
1、能够捕获以太网数据帧,并且能够解析:数据包类型,数据包长度,源、目的MAC,
2、如果是IP数据包,则进行进一步解析。输出版本,头长度,服务类型,数据包总长度,数据包标识,分段标志,分段偏移值,生存时间,上层协议类型,头校验和,源IP地址和目的IP地址等内容.
3、在指定的日志文件中写入网卡、时间、数据包解析结果等内容。当程序接收到键盘输入Ctrl+C时退出.
u_char tos;// TOS类型
u_short tlen;//总长度
u_short identification; // Identification
u_short flags_fo;// Flags (3 bits) + Fragment offset (13 bits)
u_char ttl;//生存期
选项字段的长度范围为0~40B,主要用于控制和测试。在使用选项字段的过程中,有可能出现报头部分的长度不是32位的整数倍的情况。如果出现这种情况,就需要通过填充位来凑齐。
因此,IP数据报的头部定义如下:
typedef struct ip_header{
u_char ver_ihl;// 4 bit的版本信息+ 4 bits的头长
IP包的截获和解析实验报告
Q1201012 刘倩君
一.实验目的:
设计一个能够截获并解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而IP层的工作原理有更好的理解和认识。
二.实验要求:
本实验的目标是捕获网络中数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件.
服务类型字段共8位,用于指示路由器如何处理该数据包。
总长度字段为2B,它定义了以字节为单位的数据包的总长度,IP数据包的最大长度为65535B。
标识字段的长度为16位,用于识别IP数据包的编号,每批数据都要有一个标识值,用于让目的主机判断新来的数据属于哪个分组。
标志字段共3位,最高位是0.禁止分片标志DF(do not fragment)字段的值若为1,表示不能对数据包分片;若DF值为0,则表明可以分片。分片标志MF(more fragment)的值为1,表示接收到的不是最后一个分片;若MF值为0,表示接收到的是最后一个分片。
TCP报头结构为:
对应数据结构:
typedef struct psd_hdr //定义TCP伪报头
{
unsigned long saddr; //源地址
unsigned long daddr; //目的地址
char mbz;
char ptcl; //协议类型
unsigned short tcpl; //TCP长度
}PSD_HEADER;
typedef struct _tcphdr //定义TCP报头