0%
计算机网络
分组转发算法(路由器转发)
- 从数据报的首部提取目的主机的 IP 地址 D ,得出目的网络 N 。
- 若 N 就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付给目的主机(这里包括把目的主机地址 D 转换为具体的硬件地址,把数据报封装为 MAC 帧,再发送此帧);否则就是间接交付,执行(3)。
- 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
- 若路由表中有到达网络 N 的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(5)。
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
- 报告转发分组出错。
划分子网的情况下,路由器转发分组的算法
- 从收到的数据报的首部提取目的 IP 地址 D。
- 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和 D 逐位相『与』(AND 操作),看结果是否和相应的网络地址匹配。若匹配,则把分组进行直接交付(当然还需要把 D 转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行(3)。
- 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
- 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和 D 逐位相『与』(AND 操作),其结果为 N 。若 N 与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则,执行(5)。
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)
- 报告转发分组出错。
路由表建立更新
A 类、B 类、C 类 IP 地址的默认子网掩码
类别 |
子网掩码 |
A 类 |
255.0.0.0 |
B 类 |
255.255.0.0 |
C 类 |
255.255.255.0 |
B 类地址的子网划分选择(使用固定长度子网)
子网号的位数 |
子网掩码 |
子网数 |
每个子网的主机数 |
2 |
255.255.192.0 |
2 |
16382 |
3 |
255.255.224.0 |
6 |
8190 |
4 |
255.255.240.0 |
14 |
4094 |
5 |
255.255.248.0 |
30 |
2046 |
6 |
255.255.252.0 |
62 |
1022 |
7 |
255.255.254.0 |
126 |
510 |
8 |
255.255.255.0 |
254 |
254 |
9 |
255.255.255.128 |
510 |
126 |
10 |
255.255.255.192 |
1022 |
62 |
11 |
255.255.255.224 |
2046 |
30 |
12 |
255.255.255.240 |
4094 |
14 |
13 |
255.255.255.248 |
8190 |
6 |
14 |
255.255.255.252 |
16382 |
2 |