网络基础知识

网络基础知识 知识量:6 - 28 - 111

3.3 路由器的包转发操作><

路由器- 3.3.1 -

路由器是一种连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的TCP/IP协议。这样,路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。所以路由器可以把非TCP/IP网络连接到因特网上。

路由表中的信息- 3.3.2 -

路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。 路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。

路由表中含有网络周边的拓扑信息。 路由表建立的主要目标是为了实现路由协议和静态路由选择。

路由表中的表项内容包括:

  • destination:目的地址,用来标识IP包的目的地址或者目的网络。

  • mask:网络掩码,与目的地址一起标识目的主机或者路由器所在的网段的地址。

  • pre:标识路由加入IP路由表的优先级。 可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。

  • nexthop:下一跳IP地址,说明IP包所经过的下一个路由器。

  • interface:输出接口,说明IP包将从该路由器哪个接口转发。

  • cost:路由开销,当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由。

路由器的包接收操作- 3.3.3 -

路由器的包接收操作如下:

  1. 电信号到达网线接口部分,路由器中的模块会将电信号转成数字信号,然后通过包末尾的FCS进行错误校验。 如果没问题则检查MAC头部中的接收方MAC地址,看看是不是发给自己的包,如果是就放到接收缓冲区中,否则就丢弃这个包。

  2. 总的来说,路由器的端口都具有MAC地址,只接收与自身地址匹配的包,遇到不匹配的包则直接丢弃。

  3. 查询路由表确定输出端口完成包接收操作之后,路由器就会去掉包开头的MAC头部。 MAC头部的作用就是将包送达路由器,其中的接收方MAC地址就是路由器端口的MAC地址。 因此,当包到达路由器之后,MAC头部的任务就完成了,于是MAC头部就会被丢弃。

  4. 接下来,路由器会根据MAC头部后方的IP头部中的内容进行包的转发操作。 转发操作分为几个阶段,首先是查询路由表判断转发目标。

查询路由表确定输出端口- 3.3.4 -

完成包接收操作之后,路由器就会丢弃包开头的MAC头部。接下来,路由器会根据MAC头部后方的IP头部中的内容进行包的转发操作。转发操作分为几个阶段,首先是查询路由表判断转发目标。

查询路由表确定输出端口的过程如下:

  1. 根据包接收方IP地址查询路由表中的目标地址栏,以找到相匹配的记录。匹配并不是匹配全部32个比特,而是根据子网掩码列中的值判断网络号的比特数,并匹配相应数量的比特。

  2. 在这个例子中,第3、4、5行都可以匹配。在实际情况中,可能会有多条候选记录。

  3. 路由器会根据一系列的规则,如路由的优先级、开销等,在这些候选记录中选择最佳的一个。

  4. 最后,路由器会根据选定的路由信息将包发送到相应的输出端口。

默认路由- 3.3.5 -

默认路由是一种特殊的路由,用于将数据包发送到未知目标网络或无法匹配的目标网络。当路由器在路由表中找不到匹配的路由时,它会将数据包发送到默认路由指定的下一跳地址。默认路由的作用是在设备无法找到匹配的路由时,将数据包发送到下一跳地址。

默认路由通常由管理员手动配置在路由器上,并被放置在路由表的底部。当路由器收到一个数据包时,它会首先查找路由表中与目标地址匹配的特定路由。如果找不到匹配的路由,路由器将查找默认路由。通过配置默认路由,管理员可以确保路由器知道如何处理那些无法找到匹配路由的数据包,从而将它们转发到正确的目的地。

包的有效期- 3.3.6 -

TTL是IP头部中的一个字段,用于表示数据包在网络中能够存活的时间。每当数据包经过一个路由器转发时,TTL值会减1。当TTL值减少到0时,数据包将被丢弃,以防止数据包在网络中无限循环或造成资源耗尽。

为了确保网络中的数据包能够正确地到达目的地,路由表中的转发目标必须配置正确。如果路由表中的信息有误或由于设备故障等原因导致路由切换出现暂时性的混乱,可能会出现数据包无法正确转发的情况。在这种情况下,TTL机制可以起到一定的保护作用,避免数据包在网络中陷入死循环。

通过分片功能拆分大网络包- 3.3.7 -

当遇到大网络包时,路由器可以通过分片功能将其拆分成更小的包进行传输。这是因为不同线路和局域网类型各自传输的最大包长度是不同的,而输出端口的最大包长度可能会小于输入端口。一旦转发的包长度超过了输出端口能传输的最大长度,就无法直接发送这个包。

为了解决这个问题,可以使用IP协议中定义的分片功能对包进行拆分,从而缩短每个包的长度。需要注意的是,这里说的分片和TCP对数据进行拆分的机制是不同的。TCP拆分数据的操作是在将数据装到包里之前进行的,换句话说,拆分好的一个数据块正好装进一个包里。而从IP分片的角度来看,这样一个包其实是一个未拆分的整体,也就是说,分片是对一个完整的包再进行拆分的过程。

当需要使用分片功能时,首先需要了解输出端口的MTU(Maximum Transmission Unit,最大传输单元)大小,因为这将决定包的最大长度。然后,根据实际需要拆分包的大小,将数据分割成若干个较小的数据块。每个数据块单独封装成一个IP包进行传输。在接收端,这些分片的数据块会按照IP协议的规定重新组装成完整的数据包。

路由器与交换机的关系- 3.3.8 -

路由器与交换机是两种重要的网络设备,它们在实现互联网连接和数据传输方面扮演着关键的角色。虽然它们有一些区别,但它们在功能上也有一定的相似性,主要表现在以下几个方面:

  1. 工作层次:路由器工作在网络层,而交换机则工作在数据链路层。路由器主要负责IP地址的路由和数据传输,而交换机则负责物理地址的映射和数据转发。

  2. 数据转发:路由器通过IP地址进行数据转发,而交换机则通过MAC地址进行数据转发。

  3. 分工:路由器主要用于连接不同网络段,并实现网络之间的数据传输。而交换机则主要用于将多台计算机连接到一个网络中,提供数据交换服务。

  4. 路由与交换:路由器可以执行路由和交换两种操作,而交换机只能执行交换操作。

  5. 配置和管理:路由器需要更多的配置和管理,因为它们涉及到更多的网络段和协议。而交换机的配置和管理相对简单,因为它们主要用于局域网内的数据交换。