原创 复习Douglas E. Comer书第七章:路由器如何转发IP数据报

2008-3-29 11:49 3127 6 6 分类: 通信
直接交付和间接交付:

    回顾TCP/IP互联网的体系结构。互联网由多个物理网络组成,这些物理网络通过称为路由器的系统互联起来。每个路由器与两个以上的物理网络有直接的连接。
    直接交付是指把数据报从一台机器通过物理网络直接传输到另一台机器。只有当两台机器同时连接到同一底层物理传输系统时(如一个以太网),才能进行直接交付。直接交付通常为互联网转发数据报的最后一步。即,先有几步间接交付,最后一步由路由器直接交付给目的主机。直接交付通过IP地址到物理地址的ARP映射,从而在物理上实现。
    发送方怎样知道目的站是否在自己连接的网络上呢?每个IP地址都有网络前缀,发送方只要将目的IP地址中的网络前缀提取出来,与自己的网络前缀比较,若匹配,则意味着数据报可以直接发送。
    间接交付是指路由器接到数据报后将数据报转发给下一个路由器,一步一步传递,最终由目的站所在网络的路由器直接交付给目的站。
    路由器如何知道应该将数据报转发给哪一个下一站路由器呢?可以用基本的表驱动转发算法。这里只讲如何通过路由表进行转发,路由表是怎样得来的放到后面几章讲。

表驱动IP转发:

    IP路由表含有许多对(N,R),其中N是目的网络的IP地址,R是通过网络N的路径上“下一个”路由器的IP地址。路由器R称为下一跳,这种转发称为下一跳转发。路由器只指明了从它到某个目的网络的路径上的下一步——路由器并不知道目的站的完整路径。
    (其中N用的是目的网络的IP地址,这样可以节省空间。我们没有必要将目的主机地址放在路由表中,这样也不大可能实现。我们只要将目的主机所在网络的IP地址放在路由表中,就可以完成下一跳转发。)
点击看大图                      2462ae81-a50c-40d7-8606-70ea44ecf168.JPG
    上图表示了路由器R中的路由表。注意,机器R中路由表中的每个表项指向的下一跳路由器地址都必须位于M直接相连的网络上。
    可见,路由表的大小取决于互联网中网络的数量;而不是主机的数量。但互联网中网络的数量也是相当大的。
    默认路由可以使路由表保持较小。即,让IP转发软件先在路由表中查找目的网络,如果表中没有路由,则将数据报转发给默认路由器。
    当一个网点的本地地址集很小,并且只有一条到互联网的连接时,默认路由转发尤其有用。
    特定主机的路由:尽管我们知道所有的转发是基于网络而不是基于个别主机的,但多数IP转发软件允许指明每个主机的路由作为特例。指明某特定主机的路由,使本地网络管理员能够更好地控制网络的使用,允许测试,还可以出于安全目的来控制访问。

IP转发算法:(用于转发分类编址IP数据报的原型算法)

                    转发算法:
                ForwardDatagram

    从数据报中抽取目的IP地址D;
    if 表中有D的一个特定主机路由
       把数据报发送到表中指明的下一跳,然后退出;
   
    计算地址D的网络前缀N;
    if N与任何一个直接相连的网络地址匹配
       通过该网络把数据报交付给目的站D;
       (包括把D解析成一个物理地址,封装数据报并发送帧)

    else if 表中包含一个针对网络D的路由
       把数据报发送到表中指明的下一跳;

    else if 表中包含一个默认路由
       把数据报发送到表中指明的默认路由器;

    else 声明一个转发差错;

下一跳IP地址的物理实现:

    我们说下一跳地址是IP地址,而不是物理地址。这样使整个网络系统中IP地址和物理地址的界限分明,便于管理和进一步应用。
    当IP转发算法选择了下一跳IP地址后,是怎么将数据报转发到下一跳站的呢?IP转发并不把下一跳IP地址存储在IP数据报中,数据报中没有为它预留空间。注意,IP转发除了减少生存时间及重新计算检验和以外,并不改变原始的数据报。
    事实上,IP根本不保存下一跳地址。在执行转发算法后,IP软件把数据报及下一跳地址传递给一个网络接口软件,该接口软件负责数据报必须发往的那个物理网络。这个接口软件把下一跳IP地址绑定到一个物理地址,并使用该物理地址形成一个帧,然后发送该数据报。

处理传入的数据报:

    主机:收到数据报后先检查数据报目的地址是否与本机IP地址匹配。若匹配,则接受数据报,并传递给相应高层协议处理;若不匹配,则丢弃该数据报。
    路由器:收到数据报后先检查数据报目的地址是否与属于本路由器的多个IP地址中的任何一个匹配。若匹配,则说明该数据报就是发给本路由器的,已到达目的站;若不匹配,在执行转发算法。如果是受限广播地址or定向广播地址,则本路由器也必须接受在物理网络上广播的数据报。
    另外,当要执行转发算法时,还要把数据报中的生存时间减1。若生存时间减到0,则丢弃该报;若没有到0,则执行转发算法进行转发。



PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条