本文为大家介绍路由器对数据的转发操作是什么(路由器对数据的转发操作是),下面和小编一起看看详细内容吧。
路由器的数据转发操作
路由器转发ip数据包的基础是路由表,ip数据包的转发是通过匹配路由表中的路由条目来实现的。
如图1所示,当路由器收到一条ip报文时,它会提取报文中的目的ip地址,然后将其与路由表中路由表项中包含的目的地址进行比较。如果与某个路由表项中的目的地址相同,则认为与该路由表项匹配;如果没有路由条目匹配,则丢弃该ip 数据包。
图1 路由器多跳转发流程图
ip数据包中的目的ip地址往往是主机地址,而路由表中的目的地址往往是网络地址。如何使两者匹配?这里有一个底层操作:首先将ip包中的目的地址和路由表项中的子网掩码“逻辑与”得到一个网络地址,然后将网络地址和路由表项中的网络地址进行“逻辑与”获得。比较地址,如果匹配,则认为匹配,否则认为不匹配。
如果路由表项匹配,则路由器检查匹配路由表项的下一跳地址是否在直连链路上。如果是在直连链路上,则按照这个下一跳转发;如果不在直连链路上,则需要重新查找路由表,寻找与该下一跳地址匹配的路由项。
确定下一跳地址后,路由器将报文发送到相应的接口,接口进行相应的地址解析。解析出对应的链路层地址后,ip报文被封装转发。
1.最长匹配路由原则
当路由表中同时有多个路由条目可以匹配到目的ip地址时,路由查找过程会选择掩码最长的路由条目进行转发。掩码越长,代表的网络范围越小,匹配度越大。更确切。这就是所谓的最长匹配原则。
如图2所示,路由器收到目的地址为30.0.0.1的ip报文后,查找整个路由表,发现路由表项30.0.0.0/24和30.0.0.0/8都能匹配。但根据最长匹配原则,路由器会选择路由项30.0.0.0/24,并根据路由项转发数据包。
图2 最长匹配原则
从上面的过程可以看出,路由表中的路由条目越多,搜索匹配的次数就越多,所以很多路由器都有相应的算法来优化搜索速度,加快转发速度。
2.路由迭代查找
如果匹配到的路由条目的下一跳地址不在直连链路上,则路由器需要反复查找路由表,找到最终的下一跳。路由迭代过程就是通过路由的下一跳信息找到直连出接口的过程。
如图3所示,路由器收到目的地址为50.0.0.2的报文后,查找路由表,发现匹配到路由表中的路由条目50.0.0.0/24,但是这条路由的下一跳条目是40.0。 0.2不在本路由器的直连链路上,因此路由器仍需在路由表中寻找以40.0.0.2为目的地址的下一跳;经过查找,到40.0.0.2的下一跳是20.0.0.2,这个地址在路由器的直连链路上,路由器会根据路由项转发数据包。
图3 路由迭代查找
在众多协议中:对于bgp路由(直连ebgp路由除外)、静态路由(配置下一跳)和多跳rip路由,携带的下一跳信息不一定是直接可达的。从转发的角度来说,需要通过路由迭代找到到下一跳的直出接口。对于ospf、is-is等链路状态路由协议,路由计算时直接获取下一跳,不需要路由迭代。
3.默认路由匹配
如果路由表中没有路由项可以匹配ip报文的目的ip地址,则丢弃该ip报文。但是,如果路由表中存在默认路由,则路由器会根据默认路由转发ip数据包。缺省路由也称为默认路由,其目的地址和子网掩码均为0.0.0.0。
如图4所示,路由器收到目的地址为30.0.0.2的ip包后,查找路由表,发现没有子网或主机路由匹配该地址,于是按照默认路由转发。
图4 默认路由转发
因为0.0.0.0和任意一个ip地址“逻辑与”的结果都是0.0.0.0,所以默认路由可以匹配所有的ip地址,但是因为它的掩码长度最短(0),根据最长路由匹配原则,只有当没有其他路由匹配该ip包,系统将按照默认路由转发。
默认路由可以通过手工配置获得,也可以通过一些路由协议(如ospf stub区域、nssa区域)动态生成。默认路由可以减小路由表的大小,在一定程度上可以提高路由查找的速度。在internet 中,大约99% 的路由器上都有默认路由。
好了,路由器对数据的转发操作是什么(路由器对数据的转发操作是)的介绍到这里就结束了,想知道更多相关资料可以收藏我们的网站。