MPLS资料看到的一段话,关于路由器的知识
:lol核心路由起的网络拓扑信息肯定是有一张独立的路由表的,不是你在自己的局域网内随便加个路由器,你的设备信息也会被加进路由表里去的 ...
另外,IP地址的分配也是有地理信息存在的,全球网络/全国网络的规划是由一定规律的,要不互联网如何管理;P
你的意思就是说每一个路由器都记录了周围其他路由器的信息并存于路由表里,那么一个数据包过来的时候,这个路由器会把这个数据包中的IP地址和它里面的路由信息表一个个去匹配?
:( OSPF、 BGP/IGP.... 不就是这么来的么
自制域内每一个路由器都记录了周围其他路由器的信息并存于路由表里,这是必须的,要不如何转发呢
哈哈,谢谢了。那么一个数据过来,路由器岂不是要在路由表里按照最大匹配原则一个个查找IP地址最大匹配后再转发?
路由器是有一个路由表的,它知道跟自己相邻的路由器的相关信息,根据要转发的IP地址,它可以判断数据包下一个应该转给哪个路由器,LZ可以看看CCNA里面关于路由器的相关知识,大概就明白了
每台路由器都会有不少于3个端口连接到不同子网(当仅用2个端口连接2个子网时,可不用路由器,网桥或交换机就够了),每个端口都被设置了属于对应子网网段的IP地址。这时路由器的路由表内,要记录不同端口的IP地址代表相应的IP子网信息。路由器初起动时,可以由管理员输入部分路由条目;随路由器在网络上工作一段时间后,会接收到周围子网发来的路由广播,路由器要将相应广播中的IP子网地址信息及接收到该广播的那个端口的信息添加到路由表中,从而学习对其他IP地址的路由去向的判定信息。
OSPF/BGP等网络管理协议可以向周围传播自身子网的地址信息,从而构成自适应的网络路由链路。这也是有时错将两个子网使用相同IP地址时,可能要过一段时间才会发现地址冲突问题的原因。
当一个IP包进入端口x后,路由器会取该IP包的目的地址与路由表中存在的各路由条目的IP地址进行异或操作,发现匹配的条目时,就将该IP包向该条目对应端口y转发,让下一跳的路由器继续进行这种路由/转发工作;如果要转发的就是端口x,则丢弃该IP包,因为目标主机与源主机在同一子网,不需要路由/转发处理。异或操作时,掩码用于区分目的IP是向上行子网方向,还是平级子网方向。
当一个IP包被成功转发到下一跳路由器后,就将这个目的IP地址与端口信息合成一条新路由条目,添加进路由表,以便简化后续路由计算,当这样形成的路由较长时间没有被使用时,可被逐步废止丢弃。
最长匹配
递归查询
:o
举个例子来说明一下:你现在在深圳想要到某个地方去(比如北京),同时你也拥有一张地图,但是这张地图只告诉你如何到广东的相邻省份(湖南,广西,福建等),但是通过比较,你发现到达只有先到达湖南才是最佳的路径(最佳下一跳),所以,你把湖南添加到你自己的规划的路径中(把最佳的路由添加到IP路由表中),至于从湖南怎么去北京你就不知道了,你只能坐火车到湖南,拿到湖南到相邻省份的地图,然后再在湖南选择相应的交通工具和下一站,最终到达北京。也就是,每个路由器,实际上是不知道每个报文转发的整条路径的,只是简单的将报文转发给路由表中的下一跳。所以是逐步查找路由。
懂了,多谢了!嘿嘿