前言:
宽带上网已经不是什么新鲜事情,人们对相关的网络器件已经不再陌生,比如说常见的路由。对于一般的网络用户,他们能知道怎样使用路由器来上网、玩游戏等就已经感到很满足了,通常情况下对路由器的深层技术很少去过问研究,但做为兴趣广泛的技术爱好者,对这方面的知识是非常感兴趣的。但限于各种条件的制约,这些爱好者都非开发者,很大程度上无法深入了解真正的技术实现过程以及相关的核心内幕。正是基于此点,笔者凭借自身的知识沉淀,尽最大努力为爱好技术的读者架设一坐能通向深层核心的桥梁!
生活中,无处不在的路由器:
互联网是依靠路由器连接起来的,路由器是互联网或者可以说是IP网络的核心设备。宽带接入的不断 增长,带动了路由器的需求不断加。
《 路由器的工作原理》:路由器是实现网络互连,在不同的网络之间转发数据单元的重要网络设备。路由器主要工作在OSI 参考模型的第三层(网络层),路由器的主要任务
就是为经过路由器的每一个数据帧,寻找一条最佳传输路径并将该数据有效地传送到目的地。
当路由器接收到来自网络接口的数据包时,首先根据其中所包含的目的地址查询路由表,决定转发路径和它的下一跳。然后从ARP缓存中调出下一跳的MAC 地址,将路由器自己的MAC地址作为源MAC ,下一跳地址的MAC 地址作为目的MAC ,封装成帧头,进行转发。讲那么多,其实就10个字概括:成表 查表 转发数据包。
路由器里面提到了 路由功能:
路由功能时指路由器通过运动动态由一些协议(比如OSPF协议,ACL,HSRP,NAT等)或者其他方式来学习和维护网络拓扑结构,建立,查询和维护路由表。
路由表里则保存着路由器进行路由选择时所需要的关键信息,(包括了目的地址,以及它的子网掩码,下一跳的地址,转发端口,路由信息来源,路由优先级,等)
路由信息可以通过多种协议的学习而来,其来源方式可以分为直连路由,静态路由,缺省路由和动态路由。一个路由器上可以同时运行多个不同的路由协议,每个路由协议都可以根据自己的算法,计算出到达目的地址的最佳路径。然后进行数据包的接受与u转发。
路由器的 转发功能:
第一步:当一个数据帧到达某一端口,到达对帧进行CRC校验并检查其目的数据链路地址是否与本端口符合。
第二步:如果通过检查,则去掉帧的封装并读出IP 数据包中的目的地址信息,查询路由表,并决定转发接口与下一跳的地址。
第三步:根据路由表中所查到的下一跳IP 地址,在从ARP缓存中调出的MAC地址,并将转发接口的,AC地址作为源MAC 地址,下一跳地址的MAC 作为目的地址,封装成帧头。
最后一步:最后封装成帧,经转发接口发送到输出链路上。
后续!(Linux 系统)
转载于:https://blog.51cto.com/13460587/1983655