IP数据报传输与处理过程

来源:互联网 发布:linux 修改北京时间 编辑:程序博客网 时间:2024/05/14 16:06

IP数据报传输与处理过程

       图1-1显示了由3个路由器互联3个以太网的互联网示意图,表1-1~表1-7给出了主机A、B和路由器R1,R2,R3的路由表。


表1-1     主机A的路由表

子网掩码

目的网络

下一路由器

255.255.0.0

10.1.0.0

直接投递

0.0.0.0

0.0.0.0

10.1.0.1

 

表1-2     路由器R1的路由表

子网掩码

目的网络

下一路由器

255.255.0.0

10.1.0.0

直接投递

255.255.0.0

10.3.0.0

直接投递

255.255.0.0

10.2.0.0

10.1.0.1

 

表1-3     路由器R2的路由表

子网掩码

目的网络

下一路由器

255.255.0.0

10.1.0.0

直接投递

255.255.0.0

10.2.0.0

直接投递

255.255.0.0

10.3.0.0

10.2.0.2

 

 

表1-4     路由器R3的路由表

子网掩码

目的网络

下一路由器

255.255.0.0

10.2.0.0

直接投递

255.255.0.0

10.3.0.0

直接投递

255.255.0.0

10.1.0.0

10.2.0.1

 

表1-5     主机B的路由表

子网掩码

目的网络

下一路由器

255.255.0.0

10.3.0.0

直接投递

0.0.0.0

0.0.0.0

10.3.0.2


假如主机A的某个应用程序需要发送数据到主机B的某个应用程序,IP数据报在互联网中的传输与处理大致要经历如下过程:

1. 主机发送IP数据报

如果主机A要发送数据给互联网上的另一台主机B,那么,主机A首先要构造一个目的IP地址为主机B的IP数据报(目的IP地址=10.3.0.88),然后对数据报进行路由选择。利用路由选择算法和主机A的路由表(见表1-1)可以得到,目的主机B和主机A不在同一网络,需要将该数据报转发到默认路由器R2(IP地址10.1.0.1)。

尽管主机A需要将数据报首先送到它的默认路由器R2而不是目的主机B,但是它既不会修改原IP数据报的内容,也不会在原IP数据报上面附加内容(甚至不附加下一默认路由器的IP地址)。那么,主机A怎样将数据报发送给下一路由器呢?在发送数据报之前,主机A首先调用ARP地址解析软件,得到下一默认路由器IP地址与MAC地址的映射关系,然后以该MAC地址为帧的目的地址形成一个帧,并将IP数据报封装在帧的数据区,最后由具体的物理网络(以太网)完成数据报的真正传输。由此可见,在为IP数据报选路时主机A使用数据报的目的IP地址,并且得到的是默认路由器R2的IP地址。但真正的数据传输是通过将IP数据报封装成帧,并利用默认路由器R2的MAC地址实现的。

2. 路由器R2处理和转发IP数据报

路由器R2接收到主机A发送给它的帧后,去掉帧头,并把IP数据报提交给IP软件处理。由于该IP数据报的目的地并不是路由器R2,因此R2需要将它转发出去。

利用路由选择算法和路由器R2的路由表(见表1-3)可知,如果要到达数据报的目的地,必须将它投递到IP地址为10.2.0.2的路由器(路由器R3)。

通过以太网投递时,路由器R2需要调用ARP地址解析软件,得到路由器R3的IP地址与MAC地址的映射关系,并利用该MAC地址作为帧的目的地址将IP数据报封装成帧,最后由以太网完成真正的数据投递。

需要注意的是,路由器在转发数据之前,IP软件需要从数据报报头的“生存周期”减去一定的值。若“生存周期”小于或等于0,则抛弃该报文;否则,重新计算IP数据报的校验和并继续转发。

3. 路由器R3处理和转发IP数据报

与路由器R2相同,路由器R3接收到路由器R2发送的帧后也需要去掉帧头,并把IP数据报提交给IP软件处理。与路由器R2不同,路由器R3在路由选择过程中发现该数据报指定的目的网络与自己直接相连,可以直接投递。于是,路由器R3调用ARP地址解析软件得到主机B的IP地址与MAC地址的映射关系,利用该MAC地址作为帧的目的地址,将IP数据报封装成帧,并由以太网实现数据的真正传递。

 

4. 主机B接收IP数据报

当封装IP数据报的帧到达主机B后,主机B对该帧进行解封装,并将IP数据报送主机B上的IP软件处理。IP软件确认该数据报的目的IP地址10.3.0.88为自己的IP地址后,将IP数据报中封装的数据信息送交高层协议软件处理。

从IP数据报在互联网中被处理和传递的过程可以看到,每个路由器都是一个自治的系统,它们根据自己掌握的路由信息对每一个IP数据报进行路由选择和转发。路由表在路由选择过程中发挥着重要作用,如果一个路由器的路由表发生变化,到达目的网络所经过的路径就有可能发生变化。例如,假如主机A路由表中的默认路由不是路由表R2(10.1.0.1),而是路由器R1(10.1.0.2),那么,主机A发往主机B的IP数据报就不会沿A-R2-R3-B,它将通过R1到达主机B。

另外,图1-1所示的互联网是3个以太网的互联,由于它们的MTU相同,因此IP数据报在传递过程中不需要分片。如果路由器连接不同类型的网络,而这些网络的MTU又不相同,那么,路由器在转发之前可能需要对IP数据报分片。对接收到的数据报,不管它是分片后形成的IP数据报还是未分片的IP数据报,路由器都一视同仁,进行相同的路由处理和转发。

原创粉丝点击