查询路由表确定输出端口

路由器完成包接收操作之后,路由器就会丢弃包开头的MAC头部

MAC头部的作用就是将包送达路由器,其中的接收方MAC地址就是路由器端口的MAC地址。因此,当包到达路由器之后,MAC头部的任务就完成了,于是MAC头部就会被丢弃。

通过路由器转发的网络包,其接收方MAC地址为路由器端口的MAC地址

接下来,路由器会根据MAC头部后方的IP头部中的内容进行包的转发操作

转发操作分为几个阶段,首先是查询路由表判断转发目标。

关于具体的工作过程,我们还是来看一个实际的例子,如图3.13的情况,假设地址为10.10.1.101的计算机要向地址为192.168.1.10的服务器发送一个包,这个包先到达图中的路由器。

判断转发目标

第一步,就是根据包的接收方IP地址查询路由表中的目标地址栏,以找到相匹配的记录。就像前面讲过的一样,这个匹配并不是匹配全部32个比特,而是根据子网掩码列中的值判断网络号的比特数,并匹配相应数量的比特。例如,图3.13的第3行,子网掩码列为255.255.255.0,就表示需要匹配从左起24个比特。网络包的接收方IP地址和路由表中的目标地址左起24个比特的内容都是192.168.1,因此两者是匹配的,该行记录就是候选转发目标之一。
在这里插入图片描述
按照这样的规则,我们可能会匹配到多条候选记录。在这个例子中,第3、4、5行都可以匹配[插图]。其中,路由器首先寻找网络号比特数最长的一条记录[插图]。网络号比特数越长,说明主机号比特数越短,也就意味着该子网内可分配的主机数量越少,即子网中可能存在的主机数量越少,这一规则的目的是尽量缩小范围,所以根据这条记录判断的转发目标就会更加准确。我们来看图3.13中的例子。

第3行192.168.1.0/255.255.255.0表示一个子网,第4行192.168.1.10/255.255.255.255表示一台服务器。相比服务器所属的子网来说,直接指定服务器本身的地址时范围更小,因此这里应该选择第4行作为转发目标。按照最长匹配原则筛选后,如果只剩一条候选记录,则按照这条记录的内容进行转发。

然而,有时候路由表中会存在网络号长度相同的多条记录,例如考虑到路由器或网线的故障而设置的备用路由就属于这种情况。这时,需要根据跃点计数的值来进行判断。跃点计数越小说明该路由越近,因此应选择跃点计数较小的记录。

如果在路由表中无法找到匹配的记录,路由器会丢弃这个包,并通过ICMP消息告知发送方。这里的处理方式和交换机不同,原因在于网络规模的大小。交换机连接的网络最多也就是几千台设备的规模,这个规模并不大。如果只有几千台设备,遇到不知道应该转发到哪里的包,交换机可以将包发送到所有的端口上,虽然这个方法很简单粗暴,但不会引发什么问题。然而,路由器工作的网络环境就是互联网,它的规模是远远大于以太网的,全世界所有的设备都连接在互联网上,而且规模还在持续扩大,未来的互联网里到底会有多少设备,我们谁都说不准。在如此庞大的网络中,如果将不知道应该转发到哪里的包发送到整个网络上,那就会产生大量的网络包,造成网络拥塞。因此,路由器遇到不知道该转发到哪里的包,就会直接丢弃

ps

  • 什么是网络号的比特数?
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值