主页 > 网络知识 > 计算机网络基础课程—IP路由

计算机网络基础课程—IP路由

一.IP路由

•发送端的处理过程:

•当主机A要和主机B进行通信时,首先判断主机B是否和它位于同一子网。

•方法:把两个主机的IP地址分别与它(主机A)的子网掩码进行“位与”操作,把分别得到的网络ID进行比较,如果结果相同,则表明位于同一子网,否则位于不同的子网。

•示例:

计算机网络基础课程—IP路由

 

计算机网络基础课程—IP路由

 

如果在同一子网,则源主机用ARP确定目标主机的硬件地址后直接发送数据帧到目标主机。(直接路由,无需路由器)

如果不在同一子网,则源主机用ARP确定默认网关(路由器)的硬件地址后,把数据帧转发给默认网关 (间接路由) 。

至此源主机的发送就结束了。

剩下的任务是间接路由情形下:

路由器把收到的数据帧解开,利用IP包中的地址选择如何进一步处理,

如果目的主机在路由器所处的另一个子网,则变成直接路由的情况,封装IP包,直接发送。

如果目的主机不在与路由器直接相连的子网,则需要选择转发到下一个路由器。通过进行转发,最终到达与目的主机在同一物理网络的路由,从而传送到目标主机(最终的一个步骤总是直接路由)。

问题:路由器如何选择转发的下一个路由器?

二.路由表

•路由器为了把收到的数据传送到目标主机,需要知道那些主机是可达的以及如何达到。

•这些网络拓扑信息由路由器中的路由表保存,路由器通过查找路由表,选择转发数据的路径。

•但是,在每个路由器的路由表中保存所有可能的目的地址的路由信息显然是不现实的。

下一跳(Next-Hop)路由表

•一个简化:是只保存目标网络的路由信息,因为一旦找到目标主机所在的目标网络,就可以直接在物理层传输数据帧了。

•进一步的简化:是不必在每个路由器中都保存一个到目标网络的完整路径,而只保存从本路由器到目标网络的路径的下一步路由器地址,这样就可以一步一步达到目标网络了。

•这种路由方式称为下一跳路由。其路由表的内容是这样的:

下一跳路由表示例

计算机网络基础课程—IP路由

 

表的第一列指明目标网络,第二列指明为到达该目标网络下一步应转发给哪一个路由器。

计算机网络基础课程—IP路由

 

•说明:

–路由表中通过指定网络号而非具体的主机,对主机进行屏蔽。使主机通信依赖于路由器。更主要的是,通过只指定网络,极大地减少了路由表的大小,只有网络数目的增长才会引起路由表的扩大,而主机的增加对路由表没有影响。

–路由表中列出的接口地址均应与路由器在同一物理网络,可直接转发物理帧的。

–还应该指定一个默认路由,以确定当网络号均不匹配时,如何转发。(当主机只能访问一个路由器时尤其应设置)

–也可以为了某些目的为某个主机指定路由。

问题:

–一旦路由表给定,所有的流量均将沿指定的同一路径转发,即使有多个可选路径。

–只有最后与目标网络相连的路由器才和目标主机直接通信,前面的路由器完全不知道目标主机的状态,如果目标主机已经不存在,那么也只有等数据发到最后一个路由器时才知道。

下一跳路由的算法:

•执行:拆开IP数据报,从中抽取目的IP地址:D,通过“位与”运算求出目的地址的网络ID:N

•if N 和某个与路由器直接相连的网络匹配,则直接转发到该网络中的相应主机(这需要执行:从IP 地址 D 解析出目的主机的物理地址,封装IP数据报为帧,帧头包含目的主机的物理地址,发送帧)。

•else if 路由器的路由表中包含有为该主机D指定的路由,则按路由表中所指定的发送到下一跳(这需要执行:解析所指定的下一跳路由的物理地址,封装IP数据报为帧,帧头包含下一跳路由的物理地址,发送帧)。

•else if 路由器的路由表中包含有到达该网络N的路由,则按路由表中所指定的发送到下一跳(这需要执行:同上)。

•else if 路由器的路由表中包含有默认路由,则发送到路由表中所指定的默认路由(这需要执行:解析所指定的默认路由的物理地址,封装IP数据报为帧,帧头包含默认路由的物理地址,发送帧)。

else 发回路由出错消息。

•一个问题:上述执行中均要解析下一跳的物理地址封装成帧,而不用IP地址,十分繁琐,为什么不在路由中直接指定下一跳的物理地址呢?

原因

•层次分明,物理地址在低层使用,如果又在网络层使用,则层次不清。分层体系的一个要点就是下层应该对上层是透明的。

•IP地址易于管理和维护,当路由表更新时,查看IP地址比查看物理地址更易明白发生了什么问题。

三.子网路由

•当要与子网中的主机进行通信时,那么只在路由表中指定网络ID还不够,因为一个网络ID中可能有多个物理子网,此时,还必须指定子网掩码:

计算机网络基础课程—IP路由

 

当选择路由时,就需要把目的主机的IP地址与子网掩码进行“位与”,以确定目标主机所在的网络地址,从而选择下一跳地址。

•上面介绍了路由器是依据路由表来进行数据转发,但有几个相关的问题还没提到:

•如前所述,IP是提供的是无连接的服务,源主机一旦把数据报发出之后,各个中间路由器根据数据报中的信息自主操作,与源主机无关,如果所有中间传输以及目的接收都不出问题,则此机制能正常工作。但如果出现问题,如路径拥塞不能正常转发数据报或目的主机宕机等,如何通知源主机此类情况以便其采取相应措施。(ICMP消息)

•路由表中包含一些什么内容最好?如何建立路由表? (路由协议)

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!