TCPIP实验之IP数据包分析--
TCP-IP IP 协议分析实验

实验5 IP 协议分析实验一、实验目的使用 Ping 命令在两台计算机之间发送数据报,用Ethereal 截获数据报,分析IP 数据报的格式,理解IP V4 地址的编址方法,加深对IP 协议的理解。
二、实验内容及要求1.相关知识点介绍IP 报文格式: IP 报文由报头和数据两部分组成,如图1所示:图1 IP 报文格式其中主要字段的意义和功能如下:* 版本:指IP 协议的版本;* 头长:是指IP 数据报的报头长度,它以4 字节为单位。
IP 报头长度至少为 20 字节,如果选项部分不是4 字节的整数倍时,由填充补齐;* 总长度:为整个IP 数据报的长度;* 服务类型:规定对数据报的处理方式;* 标识:是IP 协议赋予数据报的标志,用于目的主机确定数据分片属于哪个报文;* 标志:为三个比特,其中只有低两位有效,这两位分别表示该数据报文能否分段和是否该分段是否为源报文的最后一个分段;* 生存周期:为数据报在网络中的生存时间,报文每经过一个路由器时,其值减 1,7当生存周期变为 0 时,丢弃该报文;从而防止网络中出现循环路由;* 协议:指IP 数据部分是由哪一种协议发送的;* 校验和:只对IP 报头的头部进行校验,保证头部的完整性;* 源IP 地址和目的IP 地址:分别指发送和接收数据报的主机的IP 地址。
(3)IP 数据报的传输过程在互联网中,IP 数据报根据其目的地址不同,经过的路径和投递次数也不同。
当一台主机要发送 IP 数据报时,主机将待发送数据报的目的地址和自己的子网掩码按位“与”,判断其结果是否与其所在网络的网络地址相同,若相同,则将数据报直接投递给目的主机,否则,将其投递给下一跳路由器。
路由器转发数据报的过程如下:①当路由器收到一个数据报文时,对和该路由器直接相连的网络逐个进行检查,即用目的地址和每个网络的子网掩码按位“与”,若与某网络的网地址相匹配,则直接投递;否则,执行2。
②对路由表的每一行,将其中的子网屏蔽码与数据报的目的地址按位“与”,若与该行的目的网络地址相等,则将该数据报发往该行的下一跳路由器;否则,执行3。
TCPIP实验之IP数据包分析--

TCP/IP协议与编程实验姓名:班级:学号:实验题目用Wireshark抓包分析ip数据包一、实验目的1、了解并会初步使用Wireshark,能在所用电脑上进行抓包2、了解IP数据包格式,能应用该软件分析数据包格式3、查看一个抓到的包的内容,并分析对应的IP数据包格式二、实验内容Wireshark 是网络包分析工具。
网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。
实验步骤:1、打开wireshark,选择接口选项列表。
或单击“Capture”,配置“option”选项。
2、设置完成后,点击“start”开始抓包:3、显示结果:3、选择某一行抓包结果,双击查看此数据包具体结构。
4、捕捉IP数据报。
① 写出IP数据报的格式。
IP数据报首部的固定部分中的各字段含义如下:(1)版本占4位,指IP协议的版本。
通信双方使用的IP协议版本必须一致。
目前广泛使用的IP协议版本号为4(即IPv4)。
(2)首部长度占4位,可表示的最大十进制数值是15。
请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。
当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。
因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。
首部长度限制为60 字节的缺点是有时可能不够用。
但这样做是希望用户尽量减少开销。
最常用的首部3)区分服务占8位,用来获得更好的服务。
这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。
1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。
只有在使用区分服务时,这个字段才起作用。
(4)总长度总长度指首部和数据之和的长度,单位为字节。
总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
长度就是20字节(即首部长度为0101),这时不使用任何选项。
TCPIP数据包解析示例

IP协议(Internet Protocol)是网络层协议,用在因特网上,TCP,UDP,ICMP,IGMP数据都是按照IP数据格式发送得。
IP协议提供的是不可靠无连接得服务。
IP数据包由一个头部和一个正文部分构成。
正文主要是传输的数据,IP头部由20字节的固定长度和一个可选任意长度部分构成,以大段点机次序传送,从左到右,IP协议数据包格式如下TCP协议(TRANSMISSION CONTROL PROTOCOL)是传输层协议,为应用层提供服务,和UDP 不同的是,TCP协议提供的可靠的面向连接的服务,跟IP头部差不多,基本的长度也是20字节。
TCP 数据包是包含在一个IP数据报文中的,TCP数据包如下这是一次FTP的连接,呵呵,是cuteftp默认的cuteftp的FTP站点,IP地址是:216.3.226.21。
我的IP地址假设为:192.168.1.1。
下面的数据就是TCP/IP连接过程中的数据传输。
我们可以分析TCP/IP协议数据格式以及TCP/IP连接的三次握手情况。
下面的这些十六进制数据只是TCP/IP 协议的数据,不是完整的网络通讯数据。
第一次,我向FTP站点发送连接请求(TCP数据的可选部分去掉了)192.168.1.1->216.3.226.21IP头部:450000305252400080062c23c0a80101d803e215TCP头部:0d280015505f a9060000000070024000c0290000第一字节,"45",其中"4"是IP协议的版本(Version),说明是IP4。
"5"是IHL位,表示IP 头部的长度,是一个4bit字段,最大就是1111了,值为15,IP头部的最大长度就是60字节。
而这里为"5",说明是20字节,这是标准的IP头部长度,头部报文中没有发送可选部分数据。
ip数据包分析

1. 开发背景计算机网络是计算机技术与通信技术紧密结合的产物,网络技术队信息产业的发展产生深远的影响,而且将发挥越来越大的作用。
本章在介绍网络形成于发展历史的基础上,对网络定义、分类与拓扑构型等问题进行了系统的讨论,并对网络的应用、网络技术的研究与发展进行了探讨,以帮助人们对网络技术与应用有一个全面和准确的认识。
IP数据包作为网络层的数据必然要通过帧来传输。
一个数据包可能要通过多个不同的网络。
每一个路由器都要讲接收到的帧进行拆包和处理,然后封装成另外一个帧。
帧的格式与长度取决于网络所采用的协议。
从网络层—数据链路层来看,由于IP数据包的最大长度为65535B,那么它所使用的网络的数据链路层最大传输单元的长度为65535B,那么传输的效率一定会很高。
但是实际上大量使用的网络的最大传输单元长度都比IP数据包的最大长度短。
以太网的MTU长度为1500B,它远小于IP数据包的最大长度。
因此,使用这些网络传输IP数据包时,要对IP数据包进行分成若干较小的片濑传输,这些片的长度小于或等于数据链路层MTU的长度。
2. 需求分析在传输路径中,路由器通常连接多个网络。
不同的网络的数据链路层最大传输单元的长度的可能不同的,因此路由器在接收到数据包,并准备要转发到目的主机时,它必须首先决定使用哪一个接口网络,要决定该网络的数据链路层最大传输单元是否允许该数据包通过。
根据数据包长度来确定是否需要对数据包进行分片。
如果数据包来自一个能够通过较大数据包的局域网,又要通过另一个只能通过较小的数据包的局域网,那么就必须对IP数据包进行分片。
IP数据包分片的方法如下图所示在IP数据包分片时,首先要确定片长度。
然后将原始IP数据包包括报头分成第1个片。
如果剩下的数据仍然超过长度,那么需要进行第2次分片。
第2个分片数据加上原来的报头,构成第2个片。
这样一直分割到剩下的数据小于片长度为止。
3. 可行性分析经济可行性适用本计算机安全系统可提高计算机通信流量分析和管理水平,把大量繁琐工作简单化,能够有效地节省人力物力,并能够准确地进行统计和计算,避免人工统计或计算所带来的差错,保证计算机通信管理高效而有序地进行。
实验5-IP数据包的结构分析

实验5IP数据包的结构分析1.实验目的1.学习并分析IP数据包的结构、含义2.实验设备与环境1.Ethereal网络分析软件2.实验文件“网络协议的层次观察.cap”3.相关知识⏹一个 IP 数据报由首部和数据两部分组成。
⏹首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
⏹在首部的固定部分的后面是一些可选字段,其长度是可变的。
⏹IP首部最大长度60字节。
首部可变部分4.实验内容4.1 ARP地址解析协议数据打开文件“网络协议的层次观察.cap”,这是一个包括100个分组的网络通信记录,详细记录了分组的序号、相对时间、源地址、目标地址、协议类型、内容,如图1是对第1个分组的详细信息。
在协议框内,分别显示了该分组的各层协议:接口层以太网协议(eth)、ARP 地址解析协议。
图1 ARP地址解析协议数据从中可以发现它是一个广播形式的ARP地址解析协议数据,IP为219.222.162.254的主机需要知道219.222.162.36的物理地址。
4.2 IP数据包的结构和含义分析观察文件内第6个分组的IP数据包详细信息,见图2。
●它的前8位是45(H)=0100 0101(B),其中0100(B)=4 ,表示IP协议的版本是4; 0101(B)=5,表示首部长度是20字节(一个单位为 4 字节,合计5个单位)。
●差异服务类型字段为00000000(B),没有使用。
●总长度——占 16 bit,指首部和数据之和的长度,00 3E(H)=62字节●标识(identification) 占 16 bit,它是一个计数器,用来产生数据报的标识,便于重装分片的同一数据报,当前值为0AE2;●标志(flag) 占 3 bit,,当前值是000,表明可以分片(注:如果数据报的长度超过网络的MTU,需将数据包分片;否则事实上不进行分片),该分组是最后的一个分片,再结合后面的片偏移,可以确定它是完整的未分片。
IP和TCP抓包分析实验(做)

IP和TCP抓包分析实验实验需求1. 配置IP地址,R1的g0/0口是1.1.1.1/24,R2的g0/0口是1.1.1.2/242. 在该链路上开启抓包3. 在R1上ping R24. 开启wireshark,查看抓取的ping包的内容5. 在R2上开启FTP服务6. 在R1上访问R2的FTP7. 刷新wireshark,查看抓取的FTP的登录名和密码实验解法修改设备名称<H3C>system‐viewSystem View: return to User View with Ctrl+Z.[H3C]sysname R1[R1]1<H3C>system‐viewSystem View: return to User View with Ctrl+Z.[H3C]sysname R2[R2]2配置IP地址[R1]interface g0/0[R1‐GigabitEthernet0/0]ip address 1.1.1.1 243[R2]interface g0/0[R2‐GigabitEthernet0/0]ip address 1.1.1.2 244开启抓包在R1上PING R2[R1]ping 1.1.1.2Ping 1.1.1.2 (1.1.1.2): 56 data bytes, press CTRL_C to break 56 bytes from 1.1.1.2: icmp_seq=0 ttl=255 time=1.000 ms56 bytes from 1.1.1.2: icmp_seq=1 ttl=255 time=1.000 ms56 bytes from 1.1.1.2: icmp_seq=2 ttl=255 time=0.000 ms56 bytes from 1.1.1.2: icmp_seq=3 ttl=255 time=1.000 ms56 bytes from 1.1.1.2: icmp_seq=4 ttl=255 time=1.000 ms5开启Wireshark,查看抓取的Ping包内容6在R2上开启FTP服务,创建用户“wangdaye”,密码“123456”[R2]ftp server enable[R2]local‐user wangdaye class manageNew local user added.[R2‐luser‐manage‐wangdaye]password simple 123456[R2‐luser‐manage‐wangdaye]authorization‐attribute user‐role level‐15 [R2‐luser‐manage‐wangdaye]service‐type ftp7在R1上访问FTP服务,输入用户名和密码<R1>ftp 1.1.1.2Press CTRL+C to abort.Connected to 1.1.1.2 (1.1.1.2).220 FTP service ready.User (1.1.1.2:(none)): wangdaye331 Password required for wangdaye.Password:230 User logged in.Remote system type is UNIX.Using binary mode to transfer files.8刷新Wireshark,查看抓取的FTP的登录名和密码9。
解析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数据包,我们可以获得有关网络通信的重要信息,如数据包的源地址、目标地址、协议类型等。
TCPIP数据包的分析

TCP/IP数据包的分析就比较困难和麻烦了。
首先这种分析是基于对TCP/IP协议族的理解之上的,如果你还不了解,《TCP-IP详解卷1:协议》是首先需要翻阅的书籍,如果懒的看,那也不要提什么分析了,呵呵。
截取了一个TCP/IP数据包后,首先分离出IP协议(IP“Internet Protocol”协议是TCP/IP协议族中最为核心的协议,所有的TCP、UDP、ICMP和IGMP数据等都是以IP数据报格式传输的)的头部分,从IP协议头中可以得到很多关键的数据,如IP头的长度、源IP、目的IP、TCP/IP协议类型等,下面演示代码实现这个功能:typedef struct _IP_HEADER //定义IP首部{unsigned char h_lenver; //4位首部长度+4位IP版本号unsigned char tos; //8位服务类型TOSunsigned short total_len; //16位总长度(字节)unsigned short ident; //16位标识unsigned short frag_and_flags; //3位标志位+13位片偏移unsigned char ttl; //8位生存时间TTLunsigned char proto; //8位协议(TCP, UDP 或其他)unsigned short checksum; //16位IP首部校验和unsigned int sourceIP; //32位源IP地址unsigned int destIP; //32位目的IP地址} IP_HEADER;typedef struct _TCP_HEADER //定义TCP首部{USHORT th_sport; //16位源端口USHORT th_dport; //16位目的端口UINT th_seq; //32位序列号UINT th_ack; //32位确认号UCHAR th_lenres; //4位首部长度/6位保留字UCHAR th_flag; //6位标志位USHORT th_win; //16位窗口大小USHORT th_sum; //16位校验和USHORT th_urp; //16位紧急数据偏移量} TCP_HEADER;unsigned short DecodeIPHeader(char *buf) //IP头解码函数(得到IP头的长度,其他内容得到方法类似){IP_HEADER * ipheader;unsigned short ipheaderlen;ipheader = (IP_HEADER *)buf;ipheaderlen = sizeof(unsigned long) * (ipheader->h_lenver & 0xf);return ipheaderlen;}好,现在我们获得了IP头的长度,用类似的方法也可以获得了协议类型等其他数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TCP/IP协议与编程实验
姓名:
班级:
学号:
实验题目用Wireshark抓包分析ip数据包
一、实验目的
1、了解并会初步使用Wireshark,能在所用电脑上进行抓包
2、了解IP数据包格式,能应用该软件分析数据包格式
3、查看一个抓到的包的内容,并分析对应的IP数据包格式
二、实验内容
Wireshark 是网络包分析工具。
网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。
实验步骤:
1、打开wireshark,选择接口选项列表。
或单击“Capture”,配置“option”
选项。
2、设置完成后,点击“start”开始抓包:
3、显示结果:
3、选择某一行抓包结果,双击查看此数据包具体结构。
4、捕捉IP数据报。
① 写出IP数据报的格式。
IP数据报首部的固定部分中的各字段含义如下:
(1)版本占4位,指IP协议的版本。
通信双方使用的IP协议版本必须一致。
目前广泛使用的IP协议版本号为4(即IPv4)。
(2)首部长度占4位,可表示的最大十进制数值是15。
请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。
当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。
因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。
首部长度限制为60 字节的缺点是有时可能不够用。
但这样做是希望用户尽量减少开销。
最常用的首部
3)区分服务占8位,用来获得更好的服务。
这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。
1998年IETF把这个字段改名为区分服务
DS(Differentiated Services)。
只有在使用区分服务时,这个字段才起作用。
(4)总长度总长度指首部和数据之和的长度,单位为字节。
总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
长度就是20字节(即首部长度为0101),这时不使用任何选项。
(5)标识(identification) 占16位。
IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。
但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。
当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。
相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
(6)标志(flag) 占3位,但目前只有2位有意义。
标志字段中的最低位记为MF(More Fragment)。
MF=1即表示后面“还有分片”的数据报。
MF=0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。
只有当DF=0时才允许分片。
7)片偏移占13位。
片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。
也就是说,相对用户数据字段的起点,该片从何处开始。
片偏移以8
个字节为偏移单位。
这就是说,每个分片的长度一定是8字节(64位)的整数倍。
(8)生存时间占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。
由发出数据报的源点设置这个字段。
其目的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。
最初的设计是以秒作为TTL的单位。
每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。
若数据报在路由器消耗的时间小于1秒,就把TTL值减1。
当TTL值为0时,就丢弃这个数据报。
#TTL通常是32或者64,scapy中默认是64
(9)协议占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
(在scapy中,下层的这个protocol一般可以从上曾继承而来,自动填充,我们一般可以省略不填此项)
(10)首部检验和占16位。
这个字段只检验数据报的首部,但不包括数据部分。
这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和
(一些字段,如生存时间、标志、片偏移等都可能发生变化)。
不检验数据部分可减少计算的工作量。
(11)源地址占32位。
(12)目的地址占32位。
IP数据报首部的可变部分
IP首部的可变部分就是一个可选字段。
选项字段用来支持排错、测量以及安全等措施,内容很丰富。
此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。
某些选项项目只需要1个字节,它只包括1个字节的选项代码。
但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍。
增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度成为可变的。
这就增加了每一个路由器处理数据报的开销。
实际上这些选项很少被使用。
新的IP版本IPv6就将IP数据报的首部长度做成固定的。
②捕捉IP数据报的格式图例。
三、实验心得
通过这次实验,对Wireshark又进一步了解,了解了怎样运用wireshark去获取ip,分析ip数据包。