分组转发的过程

计算机网络第八版【例4-2】

【例4-2】图4-23中有三个子网通过两个路由器互连在一起。主机H1发送出一个分组,其目的地址是128.1.2.132。现在源主机是H1而目的主机是H2。试讨论分组怎样从源主机传送到目的主机。
在这里插入图片描述
【解】主机H1首先必须确定:目的主机是否连接在本网络上?如果是,那么问题很简单,就直接交付,根本不需要利用路由器;如果不是,就间接交付,把分组发送给连接在本网络上的路由器,以后要做的事情都由这个路由器来处理。

主机H1把要发送的分组的目的地址和本网络N1的子网掩码按位进行AND运算,得出运算结果。如果运算结果等于本网络 N1的前缀,就表明目的主机连接在本网络上;否则,就必须把分组发送到路由器R1,由路由器R1完成后续的任务。

由于采用了CIDR记法,转发表中给出的都是网络前缀,而没有明显给出子网掩码。其实只要细心观察斜线后面的数字,就可知道相应的子网掩码。例如,/26 的子网掩码就是点分十进制的255.255.255.192。现在,要发送的分组的目的地址是128.1.2.132,本网络的掩码是26个1,后面有6个0。如图4-24(a)所示,按位.AND运算的结果是128.1.2.128,不等于本网络N1的前缀。这说明目的主机没有连接在本网络上。源主机H1必须把分组发送给路由器R1,让路由器R1根据其转发表来处理这个分组。
在这里插入图片描述
路由器R1的部分转发表已在图4-23右上方给出了。转发表中第1列就是“前缀匹配”,这是因为查找转发表的过程就是寻找前缀匹配的过程

现在先检查路由器R1的转发表中的第1行。

源主机H1要发送的分组的目的地址是128.1.2.132。本网络128.1.2.192/26的前缀有26位,因此本网络的掩码是26个1,后面是6个0。目的地址和子网掩码按位.AND运算的结果是128.1.2.128/26(见图4-24(a))。很明显,AND运算结果与转发表第1行的前缀不匹配。

接着检查路由器R1的转发表中的第2行。运算结果是128.1.2.128/26,如图4-24(b)所示。这个结果和转发表第2行的前缀相匹配。因此按照转发表第2行指出的,在网络N2上进行分组的直接交付(通过路由器R1的接口1)。这时路由器R1调用ARP,解析出目的主机H2的MAC地址,再封装成链路层的帧,直接交付连接在本网络N2上的目的主机H2

如果按照同样的方法,检查路由器R1的转发表中的第3行,不难得出不匹配的结果。

路由器分组转发的过程

  1. 判断目的主机是否连接在本网络上,如果在,就直接交付,如果不在就执行第2步,把分组发送到路由器R,由路由器R完成后续的任务。
  2. 检查转发表中是否有目的IP地址的特定主机路由,如果有,按特定主机路由转发,如果没有,就执行第3步
  3. 把要发送的分组的目的地址和转发表中网络的子网掩码逐行相与,结果和转发表中的某行前缀相匹配,按该行指出的接口进行转发,如果结果都不匹配,就执行第4步
  4. 看转发表中是否设置有默认路由,有的话就按照默认路由表转发,没有的话就执行第5步
  5. 向源主机报错

判断目的主机是否连接在本网络上的方法:把发送的分组的目的地址和本网络的子网掩码按位进行AND运算,得出运算结果。如果运算结果等于本网络的前缀,就表明目的主机连接在本网络上

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值