前言:

                        宽带上网已经不是什么新鲜事情,人们对相关的网络器件已经不再陌生,比如说常见的路由。对于一般的网络用户,他们能知道怎样使用路由器来上网、玩游戏等就已经感到很满足了,通常情况下对路由器的深层技术很少去过问研究,但做为兴趣广泛的技术爱好者,对这方面的知识是非常感兴趣的。但限于各种条件的制约,这些爱好者都非开发者,很大程度上无法深入了解真正的技术实现过程以及相关的核心内幕。正是基于此点,笔者凭借自身的知识沉淀,尽最大努力为爱好技术的读者架设一坐能通向深层核心的桥梁!

           生活中,无处不在的路由器:


  互联网是依靠路由器连接起来的,路由器是互联网或者可以说是IP网络的核心设备。宽带接入的不断 增长,带动了路由器的需求不断加。

677478b8555eb9a158dd018a22bd8647.jpg-wh_

   路由器的工作原理路由器是实现网络互连,在不同的网络之间转发数据单元的重要网络设备。路由器主要工作在OSI 参考模型的第三层(网络层),路由器的主要任务

564fc610e03ead5199b55969f8b07bad.png-wh_

就是为经过路由器的每一个数据帧,寻找一条最佳传输路径并将该数据有效地传送到目的地。

当路由器接收到来自网络接口的数据包时,首先根据其中所包含的目的地址查询路由表,决定转发路径和它的下一跳。然后从ARP缓存中调出下一跳的MAC 地址,将路由器自己的MAC地址作为源MAC ,下一跳地址的MAC 地址作为目的MAC ,封装成帧头,进行转发。讲那么多,其实就10个字概括:成表  查表 转发数据包。

             路由器里面提到了 路由功能:

    路由功能时指路由器通过运动动态由一些协议(比如OSPF协议,ACL,HSRP,NAT等)或者其他方式来学习和维护网络拓扑结构,建立,查询和维护路由表。

    路由表里则保存着路由器进行路由选择时所需要的关键信息,(包括了目的地址,以及它的子网掩码,下一跳的地址,转发端口,路由信息来源,路由优先级,等)

    路由信息可以通过多种协议的学习而来,其来源方式可以分为直连路由,静态路由,缺省路由和动态路由。一个路由器上可以同时运行多个不同的路由协议,每个路由协议都可以根据自己的算法,计算出到达目的地址的最佳路径。然后进行数据包的接受与u转发。

            路由器的  转发功能:

   第一步:当一个数据帧到达某一端口,到达对帧进行CRC校验并检查其目的数据链路地址是否与本端口符合。

   第二步:如果通过检查,则去掉帧的封装并读出IP 数据包中的目的地址信息,查询路由表,并决定转发接口与下一跳的地址。

   第三步:根据路由表中所查到的下一跳IP 地址,在从ARP缓存中调出的MAC地址,并将转发接口的,AC地址作为源MAC 地址,下一跳地址的MAC 作为目的地址,封装成帧头。

   最后一步:最后封装成帧,经转发接口发送到输出链路上。

                                              

                                                 后续!(Linux 系统)