路由器转发数据包的工作原理

路由器转发数据包的工作原理

路由器转发数据包的工作原理
路由器有很多接口(也就是数据出入的端口),每个接口都有不同网络的IP地址,连接着不同的网络。当一个接口收到一个数据报文后,根据报文头信息,目标地址和原地址,查找路由表,按路由规则,转发到相应的接口上,把数据转发出去。
另外还有ACL,TCP/UDP等转发控制规则,对数据进行是否转发的控制。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-30

第2个回答  2019-05-06

路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。

路由器是一种三层设备,是使用IP地址寻址,实现从源IP到达目标IP地址的端到端的服务,其工作原理如下:

    路由器接收到数据包,提取目标IP地址及子网掩码计算目标网络地址;

    根据目标网络地址查找路由表,如果找到目标网络地址就按照相应的出口发送到下一个路由器;

    如果没有找到,就看一下有没有默认路由,如果有就按照默认路由的出口发送给下一个路由器;

    如果没有找到就给源IP发送一个出错ICMP数据包表明没法传递该数据包;

    如果是直连路由就按照第二层MAC地址发送给目标站点。

    路由器转发数据工作原理

    1.输入端口

    把一条输入的物理链路与路由器连接的物理层功能

    与位于入链路远端的数据链路层交互的数据链路层功能

    在输入端口完成查找功能 。通过查询转发表决定路由器的输出端口

    控制分组从输入端口转发到路由选择处理器

    2.交换结构

    将路由的输入端口与输出端口相连接

    3.输出端口

    从交换结构接收分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组

    4.路由选择处理器

    执行路由选择协议,维护路由选择表以及连接的链路状态信息,并为路由器计算转发表。还执行网络管理功能。

    输入端口、输出端口和交换结构共同实现了转发功能,并且总是用硬件实现。这些转发功能有时总称为路由器转发平面 (router forwarding plane)。

    假如有 10Gbps 带宽的输入链路的 64 字节的 IP 数据报,其输入端口在另一个数据报到达前仅有 51.2ns 来处理数据报。 如果 N 个端口结合在一块线路卡上(实践中很常见),数据报处理流水必须以 N 倍速率运行。这远远超过软件时间的速率。转发平面以纳秒时间尺度运行,路由器的控制功能在毫秒或秒时间尺度上运行。这些路由器控制平面 (router control plane) 通常用软件实现并在路由选择处理器上执行。

    一、输入端口

    如图,最左边的线路端接功能和数据链路处理功能实现了用于各个输入链路的物理层和链路层。

    输入端口进行的查找功能对路由器的执行是至关重要的。转发表的一份影子副本通常会被存放在每个输入端口,从而避免了集中式处理的瓶颈。

    由于查找需要在纳秒级执行,因此不仅需要硬件执行查找,而且需要对大型查找表使用超出简单线性搜索的技术。同时,必须对内存访问时间给予特别关注,使用 DRAM 和 SRAM 来设计。

    通过查找确定了某分组的输出端口,该分组就能进入交换结构。某些设计中,一个分组可能在进入交换结构时被暂时阻塞。此时,被阻塞的分组必须要在输入端口处排队,并等待稍后被及时调度以通过交换结构。

    此外,还需要完成一些其他工作,包括并不限于:

    1.检查分组的版本号、校验和以及寿命字段,并且重写后两个字段

    2.更新用户网络管理的计数器

    二、交换结构

    交换结构位于一台路由器的核心部位。交换可以用多种方式进行,如经内存交换、经总线交换、经互联网络交换。

    三、 输出端口

    基本执行的是和输入端口相反的操作

    四、路由器会出现丢包

    在输入和输出端口都能够形成分组队列。随着这些队列的增长,路由器的缓存空间最终将会耗尽,此时如果有新的分组到达,会导致丢包 (packet loss)。

    1.输出端口队列导致丢包

    假设输入和输出线路的速率都是 R,有 N 个输入端口和 N 个输出端口,交换结构的速率足够快。每个线路上的分组都有相同的固定长度,分组以同步的方式到达输入端口,且每个分组都被转发到同一个输出端口。

    这种情况下,向输出链路发送一个分组的时间内,将有 N 个分组到达该输出端口。这 N 个到达的分组必须排队传输到输出链路上。随着时间的推移,排队的分组数量将耗尽输出端口可用内存,最终导致丢包。

    2.输入端口队列导致丢包

    如果交换结构不能快到使所有到达的分组无时延地通过它传送,则在输入端口也将出现分组排队。因为到达的分组必须加入输入端口队列中,以等待通过交换结构传送到输出端口。

    路由器的工作原理

    一:对于普通用户来说,所能够接触到的只是局域网的范围,通过在PC上设置默认网关就可以是局域网的计算机与Internet进行通信。

    二:其实在计算机上所设置的默认网关就是路由器以太口的IP地址,如果局域网的计算机要和外面的计算机进行通信,只要把请求提交给路由器的以太口就可以了,接下来的工作就由路由器来完成了,因此可以说路由器就是互联网的中转站,网络中的包就是通过一个一个的路由器转发到目的网络的。

    三:那么路由器是如何 进行包的转发的呢?就像一个人如果在去某个地方,一定要在他的脑海里有一张地图,在每个路由器的内部也有一张地图,这张地图就是路由表。

    四:在这个路由表中包含有该路由器掌握的所有目地网络地址,以及通过此路由器到达这些网络中最佳路径,这个最佳路径指的是路由器的某个接口或下一条路由器的地址。

    五:这是由于路由表的存在,路由器才可以依据路由表进行包的转发,如下面图所示网络为例。介绍路由器转发数据的过程。为了方便,将网段192.168.1.0/24简写为0,其他网段也做类似处理。 这里写图片描述

    六: 主机1.1要发送数据包给主机4.1,因为IP地址不再同一网段,主机会将数据包发送给本网段的网关路由器A。 

    七: 路由器A接收到数据包,查看数据包IP中的目标IP地址,在查找自己的路由表,数据包的目标IP地址是4.1,属于4.0网段,路由器A在路由表中查到4。0网段转发的接口是SO接口。于是,路由表A将数据包从SO接口转发出去。 

    八: 网络中的每个路由器都是按这样的步骤去转发数据,直到到达了路由器B,用同样的转发方法,从EO口转发出去,4.1主机接收发这个数据包。 

    九: 在转发数据的过程中,如果在路由表中没有找到包的目的地地址,则根据路由器的配置转发到默认接口或者用户返回目标地址不可达的信息。

    路由表的形成

    一: 路由表是在路由器中维护的路由条目的集合,路由表为路由做出最佳路径选择提供依据。 

    二: 直连网段:当在路由器上配置了接口的IP地址,并且接口状态为up的时候,路由表中就出现直连路由项,如下面图所示:路由器A在接口FO/O和FO/1上分别配置了IP地址,并且在接口已经是up状态时,在路由器A的路由表中就会出现192.168.1.0和10.0.0.0这个网段。 

    三: 直连网段:那么对于20.0.0.0这样不直连在路由器A上的网段,路由器A应该怎么写进路由表呢?这就需要使用静态路由或动态路由来将这些网段以及如何转发写到路由表中 

    这里写图片描述

相似回答