资源描述
实验四 网际协议IP
实验目的
1.掌握IP数据报的报文格式。
2. 理解特殊IP地址的含义。
3. 掌握路由表信息含义
实验环境
1.安装Windows2000/2003Server/XP操作系统的PC计算机一台。
2.每台PC具有一块以太网卡,通过双绞线与局域网相连。
2.每台PC运行网络协议分析软件Wireshark。
实验原理
一、 IP报文格式
IP数据报是由IP首部加数据组成的。IP首部的最大长度不超过60字节。 IP数据报文格式如下图所示:
4位版本
4位首部长度
8位服务类型
16位总长度(字节数)
16位标识
3位标志
13位片偏移
8位生存时间
8位协议类型
16位首部检验和
32位源IP地址
32位目的IP地址
选项(如果有)
数据
IP报文格式
二、 IP分片
链路层具有最大传输单元(MTU)这个特性,它限制了数据帧的最大长度。不同的网络类型都有一个上限值。以太网通常是1500字节。 如果IP层有数据包要传输,而数据包的长度超过了MTU,那么IP层就要对数据包进行分片操作。使每一片长度都小于MTU。 IP首部中“16位标识” 、“3位标志”和“13位片偏移”包含了分片和重组所需的信息。另外,当数据被分片后,每个片的“16位总长度” 值要改为该片的长度值。
三、 IP路由表
大部分网络层设备都存储着一张记录路由信息的表格,称为路由表。它由许多条项目组成。网络层设备收到数据报后,根据其目的IP地址查找路由表确定数据报传输的最佳路径(下一跳)。然后利用网络层的协议重新封装数据报,利用下层提供的服务把数据报转发出去。 路由表的项目一般含有五个基本字段:目的地址、网络掩码、下一跳地址、接口、度量。
路由表按如下顺序匹配:
l 直接交付:路由表表项的“目的地址”字段是交付主机的本网络地址。
l 特定主机交付:路由表表项的“目的地址”字段是某台特定主机的IP地址。
l 特定网络交付:路由表表项的“目的地址”字段是另一个网络的地址。
l 默认交付:路由表表项的“目的地址”字段是一个默认路由器(默认网关)。
四、 路由选择过程
路由选择模块从IP处理模块接收到IP分组后,使用该分组的目的IP地址同路由表中的每一个项目按特定的顺序(按照前面介绍的“路由表匹配顺序”)查找匹配项,当找到第一个匹配项后就不再继续寻找了,这样就完成了路由选择过程。
匹配路由表项的方法是将IP地址与路由表中的一个项目的“子网掩码”进行按位“与”操作,然后判断运算结果是否等于该项目的“目的地址” ,如果等于,则匹配成功,否则,匹配失败。
路由选择模块的工作过程
实验步骤
1、 IP数据报格式与IP首部校验和的计算
用wireshark捕获IP数据报,查看IP数据报的格式。
2、特殊的IP地址
(1)直接广播地址 网络广播会被路由,并会发送到专门网络上的每台主机
IP地址的网络字段定义这个网络,主机字段通常全为1。
其中:
目的MAC地址:FFFFFF-FFFFFF。
目的IP地址:192.168.32.255。
(2)受限(有限)广播地址
它不被路由但会被送到相同物理网络段上的所有主机,IP地址的网络字段和主机字段全为1
其中:
目的MAC地址:FFFFFF-FFFFFF。
目的IP地址:255.255.255.255。
(3)环回地址:127.0.0.1
ping 127.0.0.1
正常情况下,主机发送到127.0.0.1的数据报,会不会出现在本地网络?
3、IP路由表
(1)进入命令行模式,输入 route print
(2)试着解释路由表各部分的含义。
思考题
1.试说明IP地址与硬件地址的区别。为什么要使用这两种不同的地址?
2.IP数据报中的首部检验和并不检验数据报中的数据。这样做的最大好处是什么?坏处是什么?
3.不同协议的MTU的范围从296到65535。使用大的MTU有什么好处?使用小的MTU有什么好处?
附录:
我们打开cmd,运行route print ,来查看一下当前的路由表,如下:
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.5.20 20
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.0.0 255.255.248.0 192.168.5.20 192.168.5.20 20
192.168.5.20 255.255.255.255 127.0.0.1 127.0.0.1 20
192.168.5.255 255.255.255.255 192.168.5.20 192.168.5.20 20
224.0.0.0 240.0.0.0 192.168.5.20 192.168.5.20 20
255.255.255.255 255.255.255.255 192.168.5.20 192.168.5.20 1
Default Gateway: 192.168.0.1
=======================================================
Persistent Routes:
None
大家也可以打开自己当前网络的路由表对照起来看,会更清晰些。
初看这个路由表,让人感觉有点怪,怎么一开始就目的地了呢? 源在那????? 为了更容易理解,我把这个路由表的格式稍微改了一下:
------
Interface Network Dest. Netmask Gateway Metric
127.0.0.1 127.0.0.0 255.0.0.0 127.0.0.1 1
127.0.0.1 192.168.5.20 255.255.255.255 127.0.0.1 20
-------
192.168.5.20 192.168.5.255 255.255.255.255 192.168.5.20 20
192.168.5.20 192.168.0.0 255.255.248.0 192.168.5.20 20
192.168.5.20 0.0.0.0 0.0.0.0 192.168.0.1 20
192.168.5.20 224.0.0.0 240.0.0.0 192.168.5.20 20
192.168.5.20 255.255.255.255 255.255.255.255 192.168.5.20 1
Default Gateway: 192.168.0.1
-------------------------
请大家注意,我把interface调到了第一列,并根据interface一列,将表分为2部分,一部分是127的路由条目,一部分是和物理网卡ip 192.168.5.20相关的路由条目。
下面我们来分析这些路由条目
先看第一部分
127.0.0.1尽管很特殊,但毕竟还是一个IP地址,那么它也一样有自己的网段和广播地址,尽管我们几乎用不到。
所以,它自身有1条路由就是从接口127.0.0.1到目的地127.0.0.0 这个8位网段,掩码自然是255.0.0.0,网关呢? 网关简单说就是下一跳出口地址,因为如果你想访问127.0.0.0/8的任意一个地址,显然这个地址和自己在一个网段上,没有必要跨网段,就像你想从自己家的厨房到客厅一样,不用出门,就可以直接到达,因此最终的出口(下一跳)就是自己了,metric 表示跳跃数,用于确定最佳路由,在某些情况下越小越好,但也不是绝对的。
第二条可以这样理解,如果想让tcp/ip和网卡良好的通讯,就需要有一条路由可以让系统内部的路由到物理网卡上,如此,才可以保证在本机上设置的任意IP均可以顺利与环回地址通讯,同时这也是系统自身网络机制必须实现的一部分。
剩下的都和网卡地址有关了。
第三条,接口为本机IP,目标为192.168.5.255,这是一个直接广播地址,也就是广播地址的另一种类型,指代一个特定网络中的所有主机。显然这里是只192.168.5.X的目标地址。ping命令其实就是用的这条路由。
第四条,可以理解为,如果某个地址和掩码255.255.248.0进行与运算后结果都是192.168.0.0,则本机地址可以与之通讯,这条路由的作用其实是代替了这个计算过程,和上一跳相比,比仅仅局限与192.168.5.x,而是符合上面条件的所有地址,实际上,我可以ping通192.168.0.x-192.166.7.x 的任意一个IP,就是因为这条路由在起作用。
第五条,如果访问地址并非本地,则系统会将目标地址当作0.0.0.0 掩码是0.0.0.0,也就是处本地、127地址之外的所有地址均通过192.168.0.1这个网关出去,这条路由通常被称为默认路由,说白了,你上外网就是依靠此条路由策略。就是因为有了这条路由,才可以将访问外网的请求都发给网关192.168.0.1,之后就由0.1主机上的isa2006去处理这些请求了。
第六条,224开头的是多播地址,这个是在某些情况下给多地址发广播时用的,因此这里会单独作为一条路由策略列出。
最后一条,255.255.255.255的地址已提到过,它是广播地址的另一种被称为有限广播,同时也叫本地广播。我想这个地址经常用抓包工具的朋友应该比较常见,MAC地址是全F的就是目标广播地址了,arp协议会用到此地址会对全部主机发送广播以实现查询特定主机的请求,由于对方mac地址位置,所以就用全F,也就是FF-FF-FF-FF-FF-FF 来表示。
从上面我们可以看出,下一条的指定很重要,因为它会指引系统或程序等的访问请求下一个要去的地方在哪里,这点至关重要。
展开阅读全文