路由器是工作在网络互连层实现子网之间转发数据的设备。路由器内部可以划分为控制平面和数据通道。在控制平面上,处理应用层和传输层的协议报文(RIP、OSPF、BGP等)。路由器间互通信息进行路由更新,依照拓扑结构动态生成路由表。在数据通道上,转发引擎从输入线路接收IP包后,分析与修改包头,使用转发表查找输出端口,把数据交换到输出线路上。转发表是根据路由表生成的,其表项和路由表项有直接对应关系,但转发表的格式和路由表的格式不同,它更适合实现快速查找。
转发的主要流程包括线路输入、包头分析、数据存储、包头修改和线路输出。 IP包从不同的线路上到达路由器的接口卡,线路输入处理部分对它进行信号恢复、解码和CRC校验,然后放进输入FIFO。输入FIFO的数据要送入数据存储器,数据存储器可以是CPU控制主内存或逻辑控制的专用内存。新输入数据放在系统输入队列尾部,CPU或逻辑从输入队列取出报文进行分析,需要分析的内容主要是L3包头中的目的IP地址,有些情况也L3包头的其他部分,甚至包括L2和L4包头。包头分析首先滤掉IP头校验和有错的报文,然后确定是协议报文还是转发报文。协议报文送协议软件处理,转发报文要查转发表确定输出端口,查流分类表确定输出队列。 每个端口可以有若干个输出队列,他们对应于不同的优先级别。 输出队列调度模块根据特定的规则,把选中的报文交给输出FIFO。报文在进入输出FIFO之前,要修改包头。修改包头包括IP TTL值减一,更新IP头校验和,替换L2的地址等。线路输出处理部分从输出FIFO中取出数据,更新链路层CRC数值,然后编码,经信号调制发送到输出线路上。这就是IP包转发的基本流程,如果支持更多的IP业务,如ACL,NAT等,在上述流程中还要增加额外的过滤和处理。
路由协议根据网络拓扑结构动态生成路由表。IP协议把整个网络划分为管理区域,这些管理区域称为自治域,自治域区号实行全网统一管理。这样,路由协议就有域内协议和域间协议之分。域内路由协议,如OSPF、IS-IS,在路由器间交换管理域内代表网络拓扑结构的链路状态,根据链路状态推导出路由表。 域内路由协议相邻节点之间,采用多播或广播方式通
路由器原理
最新推荐文章于 2022-07-26 15:52:47 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)