计算路由表的目的地址

设某路由器建立了如下路由表(这三列分别是目的网络、子网掩码和下一跳路由器,若直接交付则最后一列表示应当从哪一个接口转发出去):
128.96.39.0              255.255.255.128              接口0
128.96.39.128            255.255.255.128              接口1
128.96.40.0              255.255.255.128              R2
192.4.153.0              255.255.255.192              R3
*(默认)                                          R4
现共收到5个分组,其目的站IP地址分别为:
(1)128.96.39.10
(2)128.96.40.12
(3)128.96.40.151
(4)192.4.153.17
(5)192.4.153.90
试分别计算其下一跳。
解:(1)分组的目的站IP地址为:128.96.39.10。先与子网掩码255.255.255.128相与,得128.96.39.0,可见该分组经接口0转发。
(2)分组的目的IP地址为:128.96.40.12。
① 与子网掩码255.255.255.128相与得128.96.40.0,不等于128.96.39.0。
② 与子网掩码255.255.255.128相与得128.96.40.0,经查路由表可知,该项分组经R2转发。
(3)分组的目的IP地址为:128.96.40.151,与子网掩码255.255.255.128相与后得128.96.40.128,与子网掩码255.255.255.192相与后得128.96.40.128,经查路由表知,该分组转发选择默认路由,经R4转发。
(4)分组的目的IP地址为:192.4.153.17。与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.0,经查路由表知,该分组经R3转发。
(5)分组的目的IP地址为:192.4.153.90,与子网掩码255.255.255.128相与后得192.4.153.0。与子网掩码255.255.255.192相与后得192.4.153.64,经查路由表知,该分组转发选择默认路由,经R4转发


转载于:https://my.oschina.net/passer007/blog/548601

### 计算路由表下一跳的练习题 #### RIP协议下的路由表更新实例 假设路由器A当前的路由表如下所示: | 目的网络 | 距离 | 下一跳路由器 | |--------------|----|-----------| | 10.0.0.0/8 | 2 | R2 | | 20.0.0.0/8 | 3 | R3 | 现在接收到从邻居路由器C发送过来的新路由信息,内容为: | 目的网络 | 距离 | |-------------|-----| | 10.0.0.0/8 | 1 | | 30.0.0.0/8 | 4 | 对于上述情况,路由器A会按照以下逻辑来决定如何更新自己的路由表[^3]。 - 对于`10.0.0.0/8`这个目的网络,由于来自C的信息显示只需要经过1跳就能到达目的地,而通过现有记录则需两跳。因此应该采用更优路径,并将下一跳设置为发出此消息的源——即C。 - `30.0.0.0/8`是一个新的条目,在之前的表格里并不存在这样的记录。所以应当直接添加这条新纪录到自身的路由表中去,同时指定下一跳也是C。 最终得到更新后的路由表应呈现这样一种形式: | 目的网络 | 距离 | 下一跳路由器 | |--------------|----|------------| | 10.0.0.0/8 | 1 | C | | 20.0.0.0/8 | 3 | R3 | | 30.0.0.0/8 | 5 | C | 注意这里针对`30.0.0.0/8`的距离增加了1是因为考虑到了从A到C本身也构成了一次跳跃过程。 ```python def update_routing_table(current_table, received_info): updated_table = current_table.copy() for destination_network, distance in received_info.items(): if destination_network not in current_table or \ (destination_network in current_table and distance + 1 < current_table[destination_network]['distance']): updated_table[destination_network] = { 'distance': distance + 1, 'next_hop_router': 'C' } return updated_table ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值