路由器的包转发操作(3.3)

2018-08-19  本文已影响24人  cdd48b9d36e0

3.3 路由器的包转发操作

3.3.1 路由器的基本知识

“路由器包括转发模块和端口模块两部分:转发模块负责判断包的转发目的地,端口模块负责包的收发操作。”


路由器的结构

“计算机的网卡除了以太网和无线局域网之外很少见到支持其他通信技术的品种,而路由器的端口模块则支持除局域网之外的多种通信技术,如 ADSL、FTTH,以及各种宽带专线等,只要端口模块安装了支持这些技术的硬件即可”

“路由器的各个端口都具有 MAC 地址和 IP 地址。(这一点和交换机是不同的,交换机只是将进来的包转发出去而已,它自己并不会成为发送方或者接收方。)”

3.3.2 路由表中的信息

路由器根据路由表对包进行转发

“最左侧的目标地址列记录的是接收方的信息。这里可能不是很容易理解,实际上这里的 IP 地址只包含表示子网的网络号部分的比特值,而表示主机号部分的比特值全部为。路由器会将接收到的网络包的接收方 IP 地址与路由表中的目标地址进行比较,并找到相应的记录。交换机在地址表中只匹配完全一致的记录,而路由器则会忽略主机号部分,只匹配网络号部分。打个比方,路由器在转发包的时候只看接收方地址属于哪个区,××区发往这一边,××区发往那一边。”

“路由表的子网掩码列只表示在匹配网络包目标地址时需要对比的比特数量。”

“跃点计数,它表示距离目标 IP 地址的距离是远还是近。这个数字越小,表示距离目的地越近;数字越大,表示距离目的地越远。”
“路由表记录维护的方式和交换机也有所不同。交换机中对 MAC 地址表的维护是包转发操作中的一个步骤 ,而路由器中对路由表的维护是与包转发操作相互独立的,也就是说,在转发包的过程中不需要对路由表的内容进行维护。”

3.3.3 路由器的包接收操作

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

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

“完成包接收操作之后,路由器就会丢弃包开头的 MAC 头部。MAC 头部的作用就是将包送达路由器,其中的接收方 MAC 地址就是路由器端口的 MAC 地址。因此,当包到达路由器之后,MAC 头部的任务就完成了,于是 MAC 头部就会被丢弃。”
“最长匹配原则:路由器首先寻找网络号比特数最长的一条记录”
“然而,有时候路由表中会存在网络号长度相同的多条记录,例如考虑到路由器或网线的故障而设置的备用路由就属于这种情况。这时,需要根据跃点计数的值来进行判断。跃点计数越小说明该路由越近,因此应选择跃点计数较小的记录。”
“如果在路由表中无法找到匹配的记录,路由器会丢弃这个包,并通过 ICMP 消息告知发送方。(与交换机不同,交换机遇到不知道应该转发到哪里的包,交换机可以将包发送到所有的端口上 )”

3.3.5 找不到匹配路由时选择默认路由

“路由表中子网掩码为 0.0.0.0 的记录表示“默认路由”(也叫默认网关)。”

3.3.6 包的有效期

“ IP 头部中的 TTL(Timeto Live,生存时间)字段(参见第 2 章的表 2.2)。TTL 字段表示包的有效期,包每经过一个路由器的转发,这个值就会减 1,当这个值变成 0 时,就表示超过了有效期,这个包就会被丢弃。”
“发送方在发送包时会将 TTL 设为 64 或 128”

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

“路由器的端口并不只有以太网一种,也可以支持其他局域网或专线通信技术。不同的线路和局域网类型各自能传输的最大包长度也不同,因此输出端口的最大包长度可能会小于输入端口。即便两个端口的最大包长度相同,也可能会因为添加了一些头部数据而导致包的实际长度发生变化,ADSL、FTTH 等宽带接入技术中使用的 PPPoE协议就属于这种情况。无论哪种情况,一旦转发的包长度超过了输出端口能传输的最大长度,就无法直接发送这个包了。”


对包进行拆分的分片功能

“在分片中,TCP 头部及其后面的部分都是可分片的数据,尽管 TCP 头部不属于用户数据,但从 IP 来看也是 TCP 请求传输的数据的一部分。”
“一般来说都是可以分片的,但下面两种情况不能分片:1)发送方应用程序等设置了不允许分片;2)这个包已经是经过分片后的包。”

3.3.8 路由器的发送操作和计算机相同

“路由器判断下一个转发目标的方法如下。”

  • “如果路由表的网关列内容为 IP 地址,则该地址就是下一个转发目标。”
  • “如果路由表的网关列内容为空,则 IP 头部中的接收方 IP 地址就是下一个转发目标。”

3.3.9 路由器与交换机的关系

“实际的路由器有内置交换机功能的,比如用于连接互联网的家用路由器就属于这一种”
“IP 并不是委托以太网将包传输到最终目的地,而是传输到下一个路由器。在创建 MAC 头部时,也是从 IP 的路由表中查找出下一个路由器的 IP 地址,并通过 ARP 查询出 MAC 地址,然后将 MAC 地址写入 MAC 头部中的,这表示 IP 对以太网的委托只是将包传输到下一个路由器就行了。当包到达下一个路由器后,下一个路由器又会重新委托以太网将包传输到再下一个路由器。随着这一过程反复执行,包就会最终到达 IP 的目的地,也就是通信的对象。”

“IP(路由器)负责将包送达通信对象这一整体过程,而其中将包传输到下一个路由器的过程则是由以太网(交换机)来负责的。”

上一篇下一篇

猜你喜欢

热点阅读