Ip数据包捕获设计报告

合集下载

大作业2:IP包的截获和解析

大作业2:IP包的截获和解析
目ຫໍສະໝຸດ IP地址选项填充域
数据部分
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协议息息相关。

实验五IP报文的捕获与分析

实验五IP报文的捕获与分析
如果未捕获到ICMP报文,或是捕获到了除 这两种之外的其他类型报文 – 检查Sniffer捕获条件中的Address和 Advanced是否按要求设置
2.4.4 实验报告
完成
– 实验指导书中规定的
实验数据及结果分析 思考题 实验结论
– 总结及心得体会 – 对本实验过程及方法、手段的改进建议
组格式
实验操作预习
– Sniffer捕获操作 – IP协议捕获操作
完成预习题
完成实验报告
– 实验项目名称 – 实验学时 – 实验原理 – 实验目的 – 实验内容 – 实验器材 – 实验步骤
实验步骤
1.根据实验拓扑设置主机TCP/IP配置 参数。运行sniffer软件,设置捕获条 件:
– Address
实验拓扑 操作事项 数据记A1 A2
2人一组
子网B B1 B2
检查Sniffer的工作情况
按照步骤1设置Sniffer捕获条件 – 提示:ICMP报文封装在IP分组中发送
然后启动Sniffer捕获 – Ping组内任意一台主机的IP地址 – Ping通后停止捕获
提交
– 纸质实验报告
实验五:IP报文捕获与分析
实验学时:2学时
内容
实验目的 实验预习 实验软件 实验要求
5.1 实验目的
掌握Sniffer软件的报文捕获操作 掌握IP报文格式
5.2 实验预习
预习实验指导书
– 目的、原理 – 内容、步骤 – 数据分析 – 实验结论 – Sniffer软件 – 以太帧、ARP和IP分
Type = IP,Mode = Include Station 1 = 本机IP地址,Station 2 =
any
– Advanced

计算机网络课程设计报告-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课题研究的意义计算机之间进行通信时,交互的所有信息都封装在数据包中。

因此,通过采集网络数据并对其进行相应的分析,可以清楚地了解到进行通信的计算机的通信目的。

通过分析采集到的数据包可以确定网络是否受到入侵;其次也可以通过采集到的数据包来分析应用程序可能出现的问题及原因;此外,通过网络数据的采集和统计可以清楚地了解整个网络在各个时段内的网络负载情况,从而判断网络使用得是否合理。

计算机网络课程设计IP数据包的捕获与分析.docx

计算机网络课程设计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值。

TCP-IP协议抓包分析实验报告

TCP-IP协议抓包分析实验报告

TCP协议分析实验____院系:专业:一.实验目的学会使用Sniffer抓取ftp的数据报,截获ftp账号与密码,并分析TCP 头的结构、分析TCP的三次"握手"和四次"挥手"的过程,熟悉TCP协议工作方式.二.实验〔软硬件以与网络〕环境利用VMware虚拟机建立网络环境,并用Serv-U FTP Server在计算机上建立FTP服务器,用虚拟机进行登录.三.实验工具sniffer嗅探器,VMware虚拟机,Serv-U FTP Server.四.实验基本配置Micrsoft Windows XP操作系统五.实验步骤1.建立网络环境.用Serv-U FTP Server在计算机上建立一台FTP服务器,设置IP地址为:192.168.0.10,并在其上安装sniffer嗅探器.再并将虚拟机作为一台FTP客户端,设置IP地址为:192.168.0.12.设置完成后使用ping命令看是否连通.2.登录FTP运行sniffer嗅探器,并在虚拟机的"运行"中输入,点确定后出现如下图的登录窗口:在登录窗口中输入:用户名〔hello〕,密码〔123456〕[在Serv-U FTPServer中已设定],就登录FTP服务器了.再输入"bye"退出FTP3.使用sniffer嗅探器抓包再sniffer软件界面点击"stop and display" ,选择"Decode"选项,完成FTP命令操作过程数据包的捕获.六.实验结果与分析1.在sniffer嗅探器软件上点击Objects可看到下图:再点击"DECODE<反解码>"按钮进行数据包再分析,我们一个一个的分析数据包,会得到登录用户名〔hello〕和密码〔123456〕.如下图:2. TCP协议分析三次握手:发报文头——接受报文头回复——再发报文〔握手〕开始正式通信.第一次握手:建立连接时,客户端发送syn包<syn=j>到服务器,并进入SYN_SEND 状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN〔ack=j+1〕,同时自己也发送一个SYN包〔syn=k〕,即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK<ack=k+1>,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手.完成三次握手,客户端与服务器开始传送数据.四次挥手:由于TCP连接是全双工的,因此每个方向都必须单独进行关闭.这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接.收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据.首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭.〔1〕虚拟机发送一个FIN,用来关闭用户到服务器的数据传送.〔2〕服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1.和SYN 一样,一个FIN将占用一个序号.〔3〕服务器关闭与虚拟机的连接,发送一个FIN给虚拟机.〔4〕虚拟机发回ACK报文确认,并将确认序号设置为收到序号加1.。

arp,ip,icmp协议数据包捕获分析实验报告数据

arp,ip,icmp协议数据包捕获分析实验报告数据

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报文的捕获与分析

实验⼆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 协议所使⽤的版本。

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

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

任务三网络编程一、实验目的捕获本机网卡的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数据包解析(共5篇)

计算机网络课程设计IP数据包解析(共5篇)

计算机网络课程设计IP数据包解析(共5篇)第一篇:计算机网络课程设计 IP数据包解析课设名称:IP数据包解析班级:学号:姓名:指导老师:日期: 2012.6.15计算机网络课程设计报告目录1.课程设计目的 (1)2.课程设计要求 (1)3.程序设计分析 (1)3.1 网卡设置 (1)3.2 使用套接字 (2)3.2.2 接收数据包 (2)3.3 定义IP头部的数据结构 (3)3.4 IP包的解析 (3)3.5 协议的定义 (4)3.6捕获处理 (4)4.运行结果 (5)5.总结 (5)6.源程序代码 (6)Ip数据包解析1.课程设计目的本课程设计的目的就是设计一个捕获并解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP 层的工作原理有更好的理解和认识。

2.课程设计要求本设计的目标是捕获网络中的IP数据包,解析数据包的内容,将结果显示在标准输出上,并同时写入日志文件。

程序的具体要求如下:1)以命令行形式运行:ipparse logfile,其中ipparse是程序名, 而logfile则代表记录结果的日志文件。

2)在标准输出和日志文件中写入捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。

3)当程序接收到键盘输入Ctrl+C时退出3.程序设计分析3.1 网卡设置为了获取网络中的IP数据包,必须对网卡进行编程,在这里使用套接字(socket)进行编程。

但是,在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的数据包或是以广播形式发出的数据包。

对于其他形式的数据包,如已到达网络接口,但却不是发送到此地址的数据包,网络接口在骓投递地Ip数据包解析址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的数据包。

我们要想获取网络设备的所有数据包,就是需要将网卡设置为混杂模式。

数据包捕获实验实验报告

数据包捕获实验实验报告
在设计系统的时候我们就考虑到了这个问题,所以 SnifferFox 本身就是支持多语言的, 我们很容易对它进行扩展,只需要把 Lang/english 翻译成响应的语言就可以,不需要进行 任何的程序更改。系统中已经提供了中英两中语言的支持,可以很容易的切换。 4. 有比较好的扩展性
我们在语言,界面,协议方面都充分考虑到了其可扩展性。所以,要在这个版本的基 础上开发新的版本相对来说还是不难的。这样可以很好的复用现在的代码。 5. 操作方便
实验报告
学生姓名:
学 号:
一、实验室名称:软件实验室
二、实验项目名称:数据包捕获实验
三、SnifferFox 工作原理:
软件首先把网卡设置为混杂模式,然后获得网卡接收到的数据,按 TCP/IP 协议对数据包进 行分析,按照用户的要求把一部分包过滤掉,然后再把这些等剩下的数据包写入缓冲区(一块 指定大小的内存块,可以根据用户计算机的内存大小手工设置),显示在用户界面上,当缓冲 区满了的时候,系统会自动把缓冲区的数据写入到外存中去。
报告评分:
指导教师签字:
下图是一个简单的说明。
图表 1 SnifferFox Data Flow Diagram
SnifferFox 是一个多线程的系统,大致可以分成 3 个线程(实现的时候实际只用了 2 个),抓 包线程(Sniffer Thread),协议分析和过滤的线程,用户界面。工作在数据链路层,因此可以获 得原始的数据帧,所以 SnifferFox 可以支持 ARP,RARP 等底层协议。
这是我们考虑得比较多的一个问题,我们在尽量地让系统的操作方式符合人们的习惯, 使得用户觉得它方便好用。 6. 支持了比较多的协议
以太网中,SnifferFox 分析了 TCP/IP 族的几乎应用层以下的所有协议,应用层的协议 能够识别 112 个。

IP数据包的捕获与解析

IP数据包的捕获与解析

IP数据包的结构 IP数据包的结构
0度
服务类型 标志 协议 源IP地址 目的IP地址 选项 数据部分
总长度 片偏移 头部校验和
标识符 生存周期
填充域
协议字段值
• • • • • TCP 6 UDP 17 ICMP 1 IGMP 2 OSPF 89
UDP头部
TCP头部
IP数据包的捕获与解析 IP数据包的捕获与解析
IP数据包 IP数据包
• IP协议在TCP/IP协议栈中处于核心地位。 IP协议在TCP/IP协议栈中处于核心地位 协议在TCP/IP协议栈中处于核心地位。 • IP协议制定了统一的IP数据包格式,以 IP协议制定了统一的IP数据包格式, 协议制定了统一的IP数据包格式 消除互联网络中各种通信子网之间的差 异,从而为数据的收发双方提供透明的 传输通道。 传输通道。 • IP数据包的长度是可变的,它分为头部 IP数据包的长度是可变的 数据包的长度是可变的, 与数据两个部分。 与数据两个部分。 • IP数据包的头部的长度为20~60字节。 IP数据包的头部的长度为20~60字节 数据包的头部的长度为20~60字节。

Wireshark抓包实验报告

Wireshark抓包实验报告

《计算机通信与网络》——网络抓包分析实验报告Wireshark抓包分析实验报告一.实验目的1.了解并初步使用Wireshark,能在所用电脑上进行抓包。

2.了解IP数据包格式,能应用该软件分析数据包格式。

3.查看一个抓到的包的内容,并分析对应的IP数据包格式。

二.主要仪器设备协议分析软件Wireshark,联网的PC机。

三.实验原理和实验内容2打开wireshark,选择接口选项列表。

或单击“Capture”,配置“option”选项。

3打开WireShark,选择"Capture>>Interfaces",选择自己的网卡,设置完成后,选择"Start"开始监控流量。

开始抓包,显示结果。

4选择某一行抓包结果,双击查看此数据包具体结构。

5 捕捉IP数据报。

IP数据报的格式如下图所示:捕捉到的IP帧如下图所示:由图可知,这个IP帧的一下信息:版本号:IPV4首部长度:20 bytes总长度:202 Bytes,即可变部分为182.标识:0x1aa3(6819)标志:0x00片偏移:0,表示本片是原分组中的第一片。

生存时间:64,说明这个数据报还可以在路由器之间转发64次。

协议:UDP(17)头部检验和:0xd8a1 (接受正确)Source:192.168.2.143Destination:192.168.2.255四.实验总结:本次wireshark抓包实验,我分析了IP抓包,捕捉IP数据报。

IP协议的提出有它的必然性。

正如黑格尔所述:凡是存在的,都是合理的。

正是有了各种各样协议的存在,人们的网络生活才会变的如此丰富。

然而,学习一种协议是一种相当枯燥的事,这一点我已深有体会,更不用说编写协议了。

所以我们在享受丰富多彩的网络生活的同时,不能忘记那些协议工作者,正所谓“饮水思源”。

Wireshark是一款基于winpcap的抓包软件,它的界面是友好的,功能是强大的,上手是容易的,掌握是困难的。

IP数据包的捕获与分析设计报告

IP数据包的捕获与分析设计报告

CENTRAL SOUTH UNIVERSITY计算机网络课程设计报告题目IP数据包的捕获与分析学生姓名班级学号指导教师设计时间目录第一章绪论 (3)1.1课题研究的意义 (3)1.2捕获数据包的常用方法 (3)第二章系统需求分析 (4)2.1课程设计题目与要求 (4)2.2 IP数据包格式 (6)2.3程序流程图 (7)2.4实验环境 (9)第三章系统总体框架 (9)3.1套接字模块 (9)3.2 IP数据包的捕获模块 (9)3.3 IP数据包分析模块 (9)3.4输出模块 (9)第四章详细设计与实现 (10)4.1数据结构的定义 (10)4.2初始化工作 (11)4.3套接字的创建和设置 (12)4.4数据包的捕获与分析 (13)4.5信息的输出 (14)第五章程序运行结果与分析 (15)5.1程序运行结果截图 (15)5.2程序中有待改进的地方 (16)第六章总结 (17)参考文献 (17)附录 (18)第一章绪论现如今,计算机网络已经彻彻底底地改变了人们的生活。

大量的数据都是经过计算机网络传输的,而TCP/IP协议是计算机网络中最重要的协议之一。

计算机网络中绝大多数数据都是以IP数据包的形式发送和接受的。

所以IP数据包的捕获是很多计算机安全技术的基础。

1.1课题研究的意义计算机之间进行通信时,交互的所有信息都封装在数据包中。

因此,通过采集网络数据并对其进行相应的分析,可以清楚地了解到进行通信的计算机的通信目的。

首先,分析采集到的数据包,可以确定网络是否受到攻击入侵;其次,也可以使用采集到的数据包来分析网络应用程序可能出现的问题的原因;此外,通过网络数据采集和统计可以清楚的了解整个网络在各个时段内的网络负载情况,从而判断网络使用得是否合理。

除了以上谈到的几个方面以外,数据包采集分析还有其他很多用途.在研究IPv4网络的同时,我们还对IPv6协议进行了初步的研究并通过对数据报的分析,了解了在不同网络环境下IPv6数据包的封装格式以及在网络中的传输路径。

计算机网络课程设计IP数据包的捕获与分析

计算机网络课程设计IP数据包的捕获与分析

CENTRAL SOUTH UNIVERSITY计算机网络课程设计报告目录第一章课程设计的目的与要求 (1)1.1 课程设计的目的 (1)1.2 课程设计的要求 (1)第二章课程设计的内容 (3)2.1 课程设计的内容 (3)2.2 内容的要求 (3)第三章程序分析与设计 (4)3.1 IP数据包 (4)3.1.1 IP数据包的格式说明 (4)3.1.2 IP数据包的格式 (4)3.1.3 IP数据包的C++定义 (5)3.1.4 IP数据包的解析 (6)3.2 套接字 (7)3.1.4 套接字的使用 (7)3.1.4 使用原始套接字 (7)3.3 接受数据包 (7)第四章实验结果 (10)4.1 程序截图 (10)第五章总结 (11)5.1 实验心得 (11)第六章附录 (12)6.1 源代码 (12)第一章课程设计的目的与要求1.1 课程设计的目的计算机网络课程设计的目的,是为了让学生更深入地掌握计算机网络的核心内容,实现理论与实践相结合。

让学生用具体的实践成果,体现对理论知识的掌握程度。

有利于学生提高计算机网络的实践能力,加深对计算机网络理论知识的理解。

1.2 课程设计的要求(1)编写程序,实现系统的基本功能,鼓励自行增加新功能;(2)要有用户界面:要求至少采用文本菜单界面;鼓励采用图形菜单界面;(3)写课程设计报告,内容包括:●封面(参见附录I)●需求分析:以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?给出功能模块图和流程图。

同时明确规定:输入的形式和输出值的范围;输出的形式;程序所能够达到的功能;测试数据,包括正确的输入与其输出结果和含有错误的输入与其输出结果。

●概要设计:包括程序设计组成框图,程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。

●详细设计:包括模块功能说明(如函数功能、入口与出口参数说明,函数调用关系描述等),每个模块的算法设计说明(可以是描述算法的流程图)。

解析IP数据包实验报告

解析IP数据包实验报告

成都工业学院(课程设计实验报告)院系: 计算机工程系课程名称: 计算机网络设计名称: 解析IP数据包专业名称: 网络工程班级: 1305022姓名: 牟黎明学号: 11指导老师: 刘枝盛老师成绩:设计时间:2014年12月22日—2014年12月26日成都工业学院课程设计任务书指导教师(签名):目录一、课程设计的目的和意义 (3)二、课程设计的内容和要求 (3)三、解析IP数据包设计的相关技术 (4)● 3.1 IP数据包的格式与分析 (4)● 3.2程序分析设计 (6)● 3.2.1 网卡设置 (6)● 3.2.2 程序设计 (6)● 3.2.3 程序设计 (7)● 3.2.4 程序设计 (7)● 3.2.5 程序设计 (7)四、课程设计过程 (8)● 4.1 程序流程图 (8)● 4.2源程序代码 (9)● 4.3 程序运行结果 (16)● 4.3.1.登陆界面,提示输入命令符 (16)● 4.3.2.命令符输入错误后提示界面 (16)● 4.3.3.截获的IP数据包界面 (17)● 4.3.4.继续抓包图 (17)五、课程设计小结 (18)参考文献 (18)一、课程设计的目的和意义目的:本章课程设计的目的就是设计一个解析IP数据包的程序(我的编辑环境为visual2102),并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对网络层的工作原理有更好的理解和认识。

意义:1、有利于编程能力的提高在做设计的过程中,我再一次熟悉了开发设计的基本流程,从分析任务到确立整体框架再到确定算法,然后再一步步实现各函数的功能。

从中,我熟悉了许多新的库函数,并提高了编程技巧。

2、有利于基础知识的理解在这次课程设计之前,我们已经学完了网络层的理论知识,可是对它的理解很粗浅。

之前只知道关于网络层的一些概念性的东西。

可是做完设计后,我才从整体上理解了网络层的框架,明白了网络层的每一个组成部分都是有它特定的功能和意义的,从而对网络层协议有了更深入的理解。

计网实验报告(抓取本地网卡的IP数据包)

计网实验报告(抓取本地网卡的IP数据包)

计网大型实验报告课程计算机网络原理大型实验姓名汪敏倩班级计科1201 学号201226100117一、实验目的1.1任务一:了解常用网络命令Ping、Tracert/traceroute、Arp、Route的工作原理及使用。

1.2任务二:了解交换机的工作原理,掌握常用交换机的配置和应用以及静态路由的配置。

1.3任务三:抓取本地网卡的IP数据包,并且分析IP数据包的各个部分字段。

二、实验软件2.1任务一:cmd.exe命令解释程序2.2任务二:Packet.Tracer模拟器2.3任务三:Wincap网络抓包器,jnetpcap开源包,eclipes编程器,java语言三、实验步骤或实验原理3.1任务一:3.1.1◆实验原理:1、Ping是Windows下的一个命令在Unix和Linux下也有这个命令。

ping也属于一个通信协议,是TCP/IP协议的一部分。

利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。

它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。

使用格式:Ping空格IP地址。

该命令还可以加许多参数使用,具体是键入Ping按回车即可看到详细说明。

2、Tracert/traceroute 的用处和PING是差不多的。

但是也有本质的区别。

用ping的时候是不会显示经过的路径的。

但是用tracerert的时候就可以显示经过的路由,并且显示它经过那个路由,花了多少时间,并且每个路由都会测试3次。

它可以让你知道,你的计算机离目的计算机在网络上的距离有多远,经过多久才能到达。

使用格式:Tracert/traceroute空格IP地址。

3、ARP即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。

主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存一节约资源。

实验四SnifferPro数据包捕获与协议分析(2)报告

实验四SnifferPro数据包捕获与协议分析(2)报告
7)“C0 A8 01 04”表示源主机主机IP地址为:192.168.1.4.。
8)“00 50 56 C0 00 03”表示源主机MAC地址为:
9)“C0 A8 01 64”表示目的主机主机IP地址为:192.168.1.100
以下是ARP数据包头中部分的分析:
(4)抓取TCP协议数据包,分析TCP协议的头部信息
实验步骤及内容:
一、规划IP地址,使得虚拟机与主机通信(自定义模式)主机使用虚拟网卡1,主机IP为192.168.1.100子网掩码255.255.255.0,共享的VMNET1虚拟机IP为192.168.1.4子网掩码255.255.255.0默认网关为192.168.1.4,首选DNS为114.114.114.114。
在往前看,可知以太网首部(14字节)如下
往最后看,为18字节的填充位:
可知,该ARP数据包并没有填充位。
结合上面抓包信息以及ARP报头结构,可将28字节的ARP帧结构进行如下详细地分析:
00 01
08 00 06 04 00 02 00 0C 29 1F 3E D3 C0 A8 01 04
00 50 56 C0 00 03 C0 A8 01 64
以下截取的是TP头部的部分对应的详细信息。
(2)抓取ICMP协议数据包,分析ICMP协议的头部信息。
由上抓包截图可知,ICMP的报头头为:08 00 42 5E 02 00 0B 00 41 42……
参照以上图并结合ICMP报文头部格式可以进行详细的ICMP数据报格式分析;
1)“08”表示一个8位类型字段,表示ICMP数据包类型。
注:一般主机都有默认的TTL值,不同系统的默认值不一样。比如WINDOWS为128。不过,一般Ping得到的都不是默认值,这是因为每次IP数据包经过一个路由器的时候TTL就减一,当减到0时,这个数据包就消亡了。这也时Tracert的原理。

ip抓包课程设计

ip抓包课程设计

ip抓包课程设计一、课程目标知识目标:1. 学生能理解IP抓包的基本概念,掌握抓包工具的使用方法。

2. 学生能分析网络数据包的结构,识别各类协议及其特点。

3. 学生能了解网络通信过程中数据包的传输过程,理解网络延迟、丢包等现象的产生原因。

技能目标:1. 学生能运用抓包工具捕获并分析实时网络数据包,具备网络问题排查能力。

2. 学生能通过抓包数据,分析网络攻击手段,提高网络安全意识。

3. 学生能独立完成网络数据包分析任务,具备一定的网络故障处理能力。

情感态度价值观目标:1. 培养学生积极探索网络知识的兴趣,提高学习主动性和积极性。

2. 增强学生对网络安全的重视,树立正确的网络道德观念。

3. 培养学生团队协作精神,提高沟通与表达能力。

本课程针对高中年级学生,结合计算机网络知识,设计IP抓包课程。

课程性质为实践性、探究性,旨在让学生在实际操作中掌握网络知识,提高网络技能。

根据学生特点,课程注重培养学生的学习兴趣和动手能力,强调理论知识与实践操作相结合。

教学要求明确,注重培养学生的网络安全意识和团队协作精神,为后续学习及实际应用打下坚实基础。

通过本课程的学习,学生将具备一定的网络问题排查和解决能力,为我国培养高素质的网络技术人才做好准备。

二、教学内容1. 理论知识:- 计算机网络基础:网络分层模型、IP地址、端口等基本概念。

- 抓包工具介绍:Wireshark等抓包工具的安装与使用方法。

- 网络协议分析:TCP/IP协议族、HTTP、HTTPS、FTP等常用协议的特点及抓包分析技巧。

2. 实践操作:- 抓包工具操作演示:教师现场演示抓包过程,分析数据包结构。

- 学生动手实践:分组进行抓包实验,分析特定协议数据包,识别网络攻击行为。

- 网络问题排查:利用抓包工具进行网络故障排查,分析并解决实际问题。

3. 教学大纲:- 第一课时:计算机网络基础及抓包工具介绍。

- 第二课时:网络协议分析及抓包操作演示。

- 第三课时:学生动手实践,分组进行抓包实验。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解析IP数据包程序设计与实现学生姓名:梁帅指导老师:谢晓巍摘要现如今,计算机网络已经彻彻底底地改变了人们的生活。

大量的数据都是经过计算机网络传输的,而TCP/IP协议是计算机网络中最重要的协议之一。

计算机网络中绝大多数数据都是以IP数据包的形式发送和接受的。

所以IP数据包的捕获是很多计算机安全技术的基础。

本课程设计实现了可以捕获流经本地网卡的IP数据包并将其头部信息解析输出的程序。

关键词TCP/IP;IP数据包;计算机网络;捕获Design and implementation of IP datapacketStudent name: LIANG Shuai Advisor:XIE Xiao-weiAbstract 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;Capture1引言1.1课程设计的目的本课程设计的目的就是设计一个解析IP数据包的程序,并根据这个程序,说明IP 数据包的结构及IP协议的相关问题,从而对IP层的工作原理有更好的理解和认识。

1.2课程设计的意义计算机之间进行通信时,交互的所有信息都封装在数据包中。

因此,通过采集网络数据并对其进行相应的分析,可以清楚地了解到进行通信的计算机的通信目的。

首先,分析采集到的数据包,可以确定网络是否受到攻击入侵;其次,也可以使用采集到的数据包来分析网络应用程序可能出现的问题的原因;此外,通过网络数据采集和统计可以清楚的了解整个网络在各个时段内的网络负载情况,从而判断网络使用得是否合理。

除了以上谈到的几个方面以外,数据包采集分析还有其他很多用途.在研究IPv4网络的同时,我们还对IPv6协议进行了初步的研究并通过对数据报的分析,了解了在不同网络环境下IPv6数据包的封装格式以及在网络中的传输路径。

目前,在同一子网范围内,可以通过邻居计算机发现协议自动配置主机的本地一链路IPv6地址,并获取子网内其他主机的通信地址,通过该地址可以实现子网内的主机间纯IPv6环境下的通信。

但由于现在整个因特网并不支持IM协议,因此IPv6数据包要在网间传输,必须通过基于双协议栈的IPv4隧道(Tunnel)技术,将EM数据报封装在IPv4包头中,并通过指定的支持IM协议的路由在Internet中传送到目的地,再由目的主机进行数据报解析。

获取IPv6数据报中的信息。

1.3设计平台笔记本,windows7 64bit操作系统,Microsoft Visual C++6.0,C语言。

2设计原理2.1 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数据包的格式为表2-1[1]:表2-1 数据包格式4位版本4位首部长度8位服务类型TOS 16位总长度16位标识3位标志13位片偏移8位生存时间TTL 8位协议16位首部检验和32位源IP地址32位目的IP地址2.2 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;2.3套接字的使用本程序使用套接字socket编程,将网卡设为能够接受流经网卡的所有类型的数据包。

首先,初始化套接字,然后监听数据包,解析数据包。

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

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

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

3设计步骤3.1程序流程图此次课程设计的程序流程图如图3-1NOYES图3-1程序流程图3.2主要程序分析使用原始套接字要进行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 三种套接字类型。

在这里,开始结束是否达到需要次数构造程序运行文件,生成输出文件创建并初始化原始套接字设置网卡混杂模式监听网卡捕获和解析IP 数据报输出解析信息,并存入文档设置为SOCK_RAW,表示声明的是一个原始套接字类型。

第三个参数依赖于第二个参数,用于指定套接字所有的特定协议,这里使用IP协议。

第四个参数为WSAPROTOCOL_INFO位,该位可以置空。

第五个参数保留,永远置0。

第六个参数是标志位,WSA_FLAG_OVERLAPPED表明可以使用发送接收超时设置[3]。

创建原始套接字后,IP头就会包含在接收的数据中。

然后,可以设置IP头操作选项,调用setsockopt函数。

其中flag设置为true,并设定IP_HDRINCL选项,表明用户可以亲自对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()函数将socket绑定到本机网卡上。

绑定网卡后,需要用WSAIoctl()函数把网卡设置为混杂模式,使网卡能够接收所有网络数据,其关键代码如下:#define SIO_RCV ALL_WSAIOW(IOC_VENDOR,1)DWORD dwBufferLen[10];DWORD dwBufferInLen = 1;DWORD dwBytesReturned = 0;WSAIoct1(SnifferSocket,IO_RCV ALL,&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,sizeof(dwBufferLen), &dwBytesReturned,NULL,NULL);如果接收的数据包中的协议类型和定义的原始套接字匹配,那么接收到的数据就拷贝到套接字中。

相关文档
最新文档