IP和ICMP协议实验报告.docx

上传人:b****5 文档编号:7690685 上传时间:2023-01-25 格式:DOCX 页数:27 大小:1.01MB
下载 相关 举报
IP和ICMP协议实验报告.docx_第1页
第1页 / 共27页
IP和ICMP协议实验报告.docx_第2页
第2页 / 共27页
IP和ICMP协议实验报告.docx_第3页
第3页 / 共27页
IP和ICMP协议实验报告.docx_第4页
第4页 / 共27页
IP和ICMP协议实验报告.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

IP和ICMP协议实验报告.docx

《IP和ICMP协议实验报告.docx》由会员分享,可在线阅读,更多相关《IP和ICMP协议实验报告.docx(27页珍藏版)》请在冰豆网上搜索。

IP和ICMP协议实验报告.docx

IP和ICMP协议实验报告

网际协议(IP)实验报告

何晓晓201126630112计算机实验班1101

一、实验目的

1.掌握IP数据报的报文格式

2.掌握IP校验和计算方法

3.掌握子网掩码和路由转发

4.理解特殊IP地址的含义

二、实验原理

(一)IP协议简介

IP(网际协议)是TCP/IP协议族中最核心的协议,它负责将数据包从源点交付到终点。

所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。

IP协议提供不可靠、无连接的数据报传送服务,即它对数据进行“尽力传输”,只负责将数据包发送到目的主机,不管传输正确与否,不做验证、不发确认、也不保证IP数据包到达顺序,将纠错重传问题交由传输层来解决。

(二)IP地址及其表示方法

1. 地址空间

   2. IP地址的表示方法

   3. IP地址的分类

   4. 网络号和主机号

   5. 地址类和地址块

IP地址是网际协议地址(InternetProtocoladdress)的简称。

一个IP地址惟一地标识了Internet上的一台主机。

通信时要使用IP地址来指定相应的目的主机。

1. 地址空间

   

地址空间就是协议所使用的地址总数。

如果协议使用N位来定义地址,每一位可以有两种不同的值(1或0),那么地址空间就是2N。

   IP使用32位地址,这表示地址空间是232,或4294967296(超过40亿个)。

从理论上讲,可以有超过40亿个设备连接到Internet。

但是,实际的数字要远小于这个数值。

2. IP地址的表示方法

   IP地址有三种常用的表示方法:

二进制表示方法、点分十进制表示方法和十六进制表示方法。

   ● 二进制表示方法:

   在二进制表示方法中,用一个32位的比特序列表示IP地址,为了使这个地址有更好的可读性,通常在每个字节(8位)之间加上一个或多个空格做分隔。

例如:

   10000001000011100000011000011111

   ● 点分十进制表示方法:

   为了使32位地址更加简洁和更容易阅读,Internet的地址通常写成用小数点把各字节分隔开的形式。

每个字节用一个十进制数表示,这个数小于256。

例如:

   129.14.6.31

   ● 十六进制表示方法:

   有时会见到十六进制表示方法的IP地址。

每一个十六进制数字等效于4个位。

例如:

   0x810E061F

3. IP地址的分类

   IP地址分成5类:

A类,B类,C类,D类和E类。

其中A类、B类和C类地址是基本的Internet地址,是用户使用的地址,D类地址用于广播,E类地址为保留地址。

   下图描述了IP地址的二进制表示方法的分类:

图3-1 在二进制记法中找出IP地址的类别

   下图描述了IP地址的十进制表示方法的分类:

图3-2 在点分十进制记法中找出IP地址的类别

4. 网络号和主机号

   在分类编址的A类,B类和C类地址中,IP地址可划分为网络号(net-id)

和主机号(host-id)。

这两部分长度都是可变的,取决于地址的类型。

下图给出了网络号和主机号所占的字节。

应该注意的是,D类地址和E类地址不划分网络号和主机号。

图3-3 网络号和主机号

5. 地址类和地址块

   分类编址将每一类地址都划分为固定数目的地址块,并且每一个地址块的大小都是固定的。

   A类地址共分为128个地址块,每个地址块都包含有16777216个地址。

这表明要使用这类地址的机构一定是一个非常庞大的机构。

但是,每个地址块中的地址数比机构的地址需求大的多,所以,在这类地址中,许多地址都被浪费了。

   B类地址共划分为16384个地址块,每个地址块都包含有65536个地址。

这个地址数往往大于中等规模机构的地址需求,所以,在这类地址中,也有许多地址被浪费了。

   C类地址共划分为2097152个地址块,每个地址块都包含有256个地址。

这类地址中的地址数对大多数机构来说是不够用的,因此许多机构不太愿意要这类地址。

   D类地址只有一个地址块。

它用来进行多播。

   E类地址只有一个地址块。

它是保留地址。

(三)特殊的IP地址

1. 特殊的IP地址

   2. 专用IP地址

1. 特殊的IP地址

   ● 网络地址:

主机号为全“0”的IP地址不分配给任何主机,而是作为网络本身的标识。

   例:

主机202.198.151.136所在网络地址为202.198.151.0。

   ● 直接广播地址:

主机号为全“1”的IP地址不分配给任何主机,用作广播地址,目的地址为直接广播地址的数据包传递给该网络中的所有节点(能否执行广播,则依赖于支撑的物理网络是否具有广播功能)。

   例:

202.198.151.136所在网络的广播地址为202.198.151.255。

   ● 有限广播地址:

32位为全“1”的IP地址(255.255.255.255)称为有限广播地址,通常由无盘工作站启动时使用,希望从网络IP地址服务器处获得一个IP地址。

   ● 主机本身地址:

32位全“0”的IP地址(0.0.0.0)称为主机本身地址。

   ● 回环地址:

127.0.0.1称为回环地址,常用于本机上软件测试和本机上网络应用程序之间的通信地址。

2. 专用IP地址

   随着Internet的飞速发展,IP地址资源已经开始告急,专用IP地址的使用是解决IP地址紧缺的一种方法。

原理是定义两类IP地址:

   ● 全局IP地址:

用于Internet上的公共主机;

   ● 专用IP地址:

仅用于专用网内部的本地主机。

   公共主机和本地主机可以共存于同一网络并进行互访,而大多数路由器不转发携带专用IP地址的数据包。

本地主机必须经网络地址转换服务器(NAT或代理服务器)才能访问Internet。

专用IP地址为:

   10.0.0.0-10.255.255.255              1个A类网络

   172.16.0.0-172.31.255.255            16个连续的B类网络

   192.168.0.0-192.168.255.255          256个连续的C类网络

(四)子网划分

为了便于网络的管理、提高系统的可靠性、改进系统性能、克服简单局域网的技术条件限制、通过设置不同访问权限来增强系统的安全保障,人们采用了划分子网的办法将网络进一步划分成独立的组成部分。

   现在的主机都要求支持子网编址。

不是把IP地址看成由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。

例如,把一个B类网络地址的16位主机号分成8位子网号和8位主机号如下图所示:

图3-4 子网划分

   这样就允许有254个子网,每个子网可以有254台主机。

对A类和B类网络,许多管理员采用自然的划分方法,即以8位为单位划分子网地址和主机号。

这样用点分十进制方法表示的IP地址就可以比较容易确定子网号。

但是,并不要求A类或B类地址的子网划分都要以字节为分界限。

子网对外部路由器来说隐藏了内部网络组织的细节。

   主机除了知道IP地址以外,还需要知道IP中有多少位用于子网号,多少位用于主机号。

这是通过使用一个称为“子网掩码”的32位值来完成的。

其中值为1的位留给网络号和子网号,为0的位留给主机号。

   给定IP地址和子网掩码以后,主机就可以确定IP数据包的目的是本子网中的主机、本网络中其它子网中的主机还是其它网络上的主机。

如果知道本机的IP地址,那么就知道它是否为A类、B类或C类地址(从IP地址的高位可以得知),也就知道网络号和子网号之间的分界线。

而根据子网掩码就可知道子网号与主机号之间的分界线。

   子网掩码除了可以如IP地址一样用“点分十进制”方式表示外,还可以在IP地址后用一个斜线(/)后面写明子网掩码的位数的方法来表示。

如:

192.168.1.25/24表示IP地址192.168.1.25的掩码为255.255.255.0。

(五)IP报文格式

IP数据报格式如下图所示,它是由IP首部与数据组成的。

IP首部长度通常为20字节。

如果含有选项字段,IP首部长度将会大于20字节,但不会超过60字节。

图3-5 IP报文格式

   在IP首部中各个字段的意义如下:

   ● 版本号:

这个字段定义了IP的版本。

目前主流的是版本4(IPv4),但它正逐渐地被版本6(IPv6)所替代。

   ● 首部长度:

由于IP选项字段的存在,所以IP首部长度是可变的。

该字段用4位来定义首部长度。

将该值乘4可得到用字节表示的长度,所以IP首部长度为20~60个字节。

   ● 区分服务:

该字段以前叫做服务类型(在RFC791中定义),是由3位优先域、4位服务类型域和1位未用位(该位必须置为0)组成,其中4位服务类型分别代表:

最小时延、最大吞吐量、最高可靠性和最小费用。

该字段在RFC2474中被重新定义,在新的定义中将该字段命名为区分服务,其中包含一个6位的区分服务码点(DSCP)字段和一个2位的未用位(CU)字段。

如下图所示:

图3-6 RFC2474定义的区分服务字段

   前6位的区分服务码点的值用来映射一个底层的服务,它决定了每一跳行为。

在RFC3168中,将区分服务字段中的未用位字段定义为显示拥塞通告(ECN)字段,ECN字段包括2个子字段,分别为:

ECT字段和CE字段,如下图所示:

图3-7 RFC3168定义的区分服务字段

   ECN字段用于指定发送数据的主机是否支持拥塞通告以及指示网络中是否有拥塞发生。

ECN通过两个子字段的不同值组合来做到这一点:

   00:

发送主机不支持ECN。

   01或10:

发送主机支持ECN。

   11:

路由器正在经历拥塞。

   ● 总长度:

该字段以字节为单位定义IP数据报的总长度(首部加上数据)。

要得到IP上层数据的长度,只需从总长度中减去首部长度即可。

   ● 标识:

每一个IP数据包在发送时被给定特有的标识值。

如果数据包必须被分割成碎片以适应支持小型数据包的网络,那么每一个碎片中都设置相同的标识号码。

   ● 标志:

标志由3位组成,第1位保留;第2位为不分片标志,表示此数据包不可以被分片;第3位为更多分片标志,表示在分片包之后还有分片,即此包不是最后分片。

   ● 偏移量:

如果数据包是一个分片包,该域指明了当前分片包在与其它分片包被重新组装成一个单独数据包时,应该位于数据包的什么位置。

该域的值以8字节为单位。

   ● 生存时间:

该字段表明数据包保存的生存时间,单位为秒,在实际的应用中,生存时间是按照数据包经过路由器的跳数计算的。

通常生存时间的值是32、64、128。

   ● 高层协议类型:

该字段定义了使用IP层服务的较高层协议。

一个IP数据报能封装来自诸如TCP、UDP、ICMP和IGMP等较高层协议的数据。

   ● 首部校验和:

IP首部校验和只对首部内容进行错误检测,并不包括数据包的其它内容。

校验和采用16位反码求和的算法。

   ● 源IP地址:

该字段定义了源主机的IP地址。

在IP数据包从源主机传送到目的主机期间,该字段保持不变。

   ● 目的IP地址:

该字段定义了目的主机的IP地址。

在IP数据报从源主机传送到目的主机期间该字段保持不变。

   ● IP选项:

这个字段是可选项。

它们通常用于网络测试和调试。

虽然可选项不是IP头部所必需的部分,但要求IP软件能够处理它们。

目前,这些选项定义如下:

   

(1)安全和处理限制(用于军事领域);

   

(2)记录路径(让每个路由器记下它的IP地址);

   (3)时间戳(让每个路由器都记下它的IP地址和时间);

   (4)宽松的源站选路(为数据报指定一系列必须经过的IP地址);

   (5)严格的源站选路(与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其它的地址)。

(六)IP封装

   IP数据报直接封装到数据链路层帧中,其封装方法如下图所示:

图3-8 IP封装

(七)IP数据报分片

   1. 最大传送单元(MTU)

   2. 与分片有关的字段

数据包可能通过多个不同的网络。

每一个路由器把收到的帧进行拆装,再进行处理,然后又封装成另一个帧。

收到帧的格式与长度取决于这个帧刚刚经过的物理网络所使用的协议。

发送出去的帧格式与长度则取决于这个帧将要经过的物理网络所使用的协议。

例如,如果路由器把以太网连接到一个广域网,那么这个路由器收到的帧是以太网的格式,而发送的帧是广域网的格式。

1. 最大传送单元(MTU)

   不同的网络所能传送的数据包的最大长度是不同的,这个最大长度叫做最大传送单元(MTU),这是由网络所使用的硬件与软件所决定的。

每种网络的数据链路层都有自己的帧格式,其中有一个字段是“数据字段最大长度”。

当数据包封装成帧时,数据包的总长度必须小于这个数据字段最大长度,如下图所示。

图3-9 MTU

   对于不同的物理网络协议,MTU的值是不同的。

下表给出了不同协议的MTU值。

表3-1 不同网络的MTU值

   为了使IP协议与物理网络无关,IP协议不考虑底层网络的MTU,只是规定IP数据包的最大负载长度为65535字节。

对于物理网络,如果数据包的长度超过了MTU,就要把数据包进行分割,使它们能够通过这些网络,这就叫做分片。

源主机的传输层会自动对数据包进行分片工作,把数据包划分成IP协议和数据链路层都可接受的大小。

   当数据包被分片时,每一个数据包片有它自己的首部,其中大部分的字段都是重复的,但有些是不同的。

如果已经分片的数据包要经过更小MTU的网络,那么这些已经分片的数据包还可再进行分片,数据包在到达最后终点之前可以经过多次的分片。

   数据包可以被源主机或在其路径上的路由器进行分片。

但是数据包的重装却只能在目的主机上进行。

由于被分片的数据包可能会通过不同的路由到达目的主机,所以应当在最后的目的主机上进行重装。

   当数据包被分片时,首部中的一些字段会被复制到所有的分片中(选项字段可以被复制,也可不被复制)。

有三个字段是与数据包分片相关的,这三个字段是:

标识字段、标志字段和偏移量字段。

当然,不管是否进行分片,校验和的值总是要重新计算的。

   对于最大传输单元(MTU)还可以理解为某层协议报文可携带数据的最大长度,对于不同协议,对应的MTU可能会有不同的值和计算方法。

如我们常说的“以太网MTU为1500”,说的是以太网MAC帧可封装的最大数据长度,其只包含IP报头及其上层协议数据的总长度。

对于IP协议的MTU值应为65535-20,也只是说一个IP数据报(包含IP包头的长度和IP上层协议数据的长度),最多可以携带65535个字节的数据。

2. 与分片有关的字段

   与数据包的分片和重装有关的三个字段是:

标识字段、标志字段和偏移量字段。

   ● 标识:

IP数据包的标识字段值与源IP地址惟一地确定了一个数据包。

IP协议使用一个计数器来保证每个数据包标识的惟一性。

当IP协议发送数据包时,就把这个计数器的当前值复制到标识字段中,并把这个记数器的值加1。

当数据包被分片时,标识字段的值就复制到所有的分片中。

这样所有的分片具有相同的标识。

这个标识号在终点重装数据包时很有用。

终点会将所有具有相同标识号的分片组装成一个数据包。

   ● 标志:

这是一个长度为3位的字段。

第一位保留。

第二位是不分片位。

若这个位为1,就表示不能把该数据包进行分片。

若无法把这个数据包通过任何可用的物理网络进行转发,就丢弃这个数据包,并向源主机发送ICMP差错报文(关于ICMP差错报文,参见实验4)。

若这个位为0,则在需要时可把这个数据包进行分片。

第三位是还有分片位。

若这个位是1,则表示这个数据包不是最后的分片,在这个分片后面还有其它分片。

若这个位是0,则表示这是最后的分片。

标志字段如下图所示:

图3-10 标志字段

   ● 偏移量:

偏移量字段表示一个分片在整个数据包中的相对位置。

以8字节为度量单位。

下图表示具有4000字节长度的数据包被划分为三个分片。

在原始数据包中的数据编号是0~3999。

第一个分片携带的数据是字节0~1399。

对于这个数据包,偏移量是0/8=0。

第二个分片携带的数据是字节1400~2799;对于这个数据包,偏移量是1400/8=175。

最后,第三个分片携带的数据是字节2800~3999。

对于这个数据包,偏移量是2800/8=350。

如下图。

图3-11 分片举例

   偏移量字段的长度只有13位,它不能表示超过8191的字节数,所以偏移量是以8字节为单位的。

因此,把数据包进行分片的主机或路由器必须选择一个能够被8整除的长度来为数据包分片。

(八)IP数据报校验和

   1. 在发送端计算校验和

   2. 在接收端计算校验和

   3. IP数据包中的校验和

大多数TCP/IP协议族中的协议采用的差错检测方法是校验和。

校验和能够识别数据包在传输过程中是否受到损伤。

校验和是在数据包上附加的信息。

在发送端先计算校验和,并把得到的结果与数据包一起发送出去。

接收端对整个数据包重复进行同样的计算。

若得到的结果正确则接受这个数据包;否则就把它丢弃。

1. 在发送端计算校验和

   在发送端,将数据包按16位长度分段。

把这些段用反码算数运算相加,将相加后得到的和再取反码就得出了校验和。

2. 在接收端计算校验和

   接收端把收到的数据包按16位长度分段,并把这些段相加。

把得到的和取反码。

若结果为0,则接受这个数据包;否则就拒绝这个数据包。

   下图用图解的方法描述了发送端和接收端计算校验和的过程。

图3-12 校验和的概念

3. IP数据包中的校验和

   IP数据包的校验和只校验IP首部部分而不校验IP数据部分。

这是因为所有将数据封装在IP数据报中的高层协议,都有覆盖整个数据包的校验和。

因此,IP数据报的校验和就不必再检验所封装的数据部分。

其次,每经过一个路由器,IP数据包的首部就要改变一次,但数据部分不改变。

因此若校验和包含数据部分,这就意味着路由器要花费很多时间计算没有改变的数据部分的校验和。

三、实验步骤

练习一——编辑并发送IP数据报

   各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。

   本练习将主机A、B、C、D、E、F作为一组进行实验。

1. 主机B在命令行方式下输入staticroute_config命令,开启静态路由服务。

2. 主机A启动协议编辑器,编辑一个IP数据报,其中:

   MAC层:

       目的MAC地址:

主机B的MAC地址(对应于172.16.1.1接口的MAC)。

       源MAC地址:

主机A的MAC地址。

       协议类型或数据长度:

0800。

   IP层:

       总长度:

IP层长度。

       生存时间:

128。

       源IP地址:

主机A的IP地址(172.16.1.2)。

       目的IP地址:

主机E的IP地址(172.16.0.2)。

       校验和:

在其它所有字段填充完毕后计算并填充。

    自定义字段:

       数据:

填入大于1字节的用户数据。

    【说明】先使用协议编辑器的“手动计算”校验和,再使用协议编辑器的“自动计算”校验和,将两次计算结果相比较,若结果不一致,则重新计算。

   ● IP在计算校验和时包括哪些内容?

IP在计算校验和时只检验数据报的首部,但不包括数据部分。

3. 在主机B(两块网卡分别打开两个捕获窗口)、E上启动协议分析器,设置过滤条件(提取IP协议),开始捕获数据。

4. 主机A发送第1步中编辑好的报文。

5. 主机B、E停止捕获数据,在捕获到的数据中查找主机A所发送的数据报,并回答以下问题:

   ● 第1步中主机A所编辑的报文,经过主机B到达主机E后,报文数据是否发生变化?

若发生变化,记录变化的字段,并简述发生变化的原因。

有变化,但报文中传送过程中的源IP地址和目的IP地址没变化,只是在传送过程中经过一些节点生成时间可能有变化。

6. 将第1步中主机A所编辑的报文的“生存时间”设置为1,重新计算校验和。

7. 主机B、E重新开始捕获数据。

8. 主机A发送第5步中编辑好的报文。

9. 主机B、E停止捕获数据,在捕获到的数据中查找主机A所发送的数据报,并回答以下问题:

 λ主机B、E是否能捕获到主机A所发送的报文?

简述产生这种现象的原因。

能捕获到主机A所发送的报文,因为主机B相当于路由器,所以能收到。

A与E不在同一网络,但可以通过B转发,仍然能收到。

 

练习二——特殊的IP地址

 本练习将主机A、B、C、D、E、F作为一组进行实验。

1. 直接广播地址

   

(1)主机A编辑IP数据报1,其中:

       目的MAC地址:

FFFFFF-FFFFFF。

       源MAC地址:

A的MAC地址。

       源IP地址:

A的IP地址。

       目的IP地址:

172.16.1.255。

       自定义字段数据:

填入大于1字节的用户数据。

       校验和:

在其它字段填充完毕后,计算并填充。

       

   

(2)主机A再编辑IP数据报2,其中:

       目的MAC地址:

主机B的MAC地址(对应于172.16.1.1接口的MAC)。

       源MAC地址:

A的MAC地址。

       源IP地址:

A的IP地址。

       目的IP地址:

172.16.0.255。

       自定义字段数据:

填入大于1字节的用户数据。

       校验和:

在其它字段填充完毕后,计算并填充。

   (3)主机B、C、D、E、F启动协议分析器并设置过滤条件(提取IP协议,捕获172.16.1.2接收和发送的所有IP数据包,设置地址过滤条件如下:

172.16.1.2<->Any)。

   (4)主机B、C、D、E、F开始捕获数据。

   (5)主机A同时发送这两个数据报。

   (6)主机B、C、D、E、F停止捕获数据。

   ● 记录实验结果

表3-4 实验结果

主机号

收到IP数据报1

BCDEF

收到IP数据报2

BEF

● 结合实验结果,简述直接广播地址的作用。

直接广播地址的作用是限制在同一网络的都能收到报文。

2. 受限广播地址

   

(1)主机A编辑一个IP数据报,其中:

       目的MAC地址:

FFFFFF-FFFFFF。

       源MAC地址:

A的MAC地址。

       源IP地址:

A的IP地址。

       目的IP地址:

255.255.255.255。

       自定义字段数据:

填入大于1字节的用户数据。

       校验和:

在其它字段填充完毕后,计算并填充。

   

(2)主机B、C、D、E、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1