思路:将前缀匹配全部转换为二进制,每八位之间用“ . ”隔开。然后用目的地址对应的二进制,找到与前缀匹配的,即为下一跳地址
为了方便计算,记一下: 2的1次方:2 2的2次方:4 2的3次方:8 2的4次方:16 2的5次方:32 2的6次方:64 2的7次方:128 2的8次方:256 2的9次方:512 2的10次方:1024
解:
R3 对应的网络前缀为:11000000.00000100.10011001.00 m0对应的网络前缀为:10000000.01100000.00100111.0 m1对应的网络前缀为:10000000.01100000.00100111.1 R2对应的网络前缀为:10000000.01100000.00101000.0 再算目的地址的时候前面的一样直接对应(网络前缀相同),只求最后的数,比如第一个最后一个为10,就求出10的二进制,但是要用八位来表示,即 00001010,观察首位与上面的二进制最后一位对应就可以求出下一跳。 (1)10 ———— 00001010 下一跳为m0 (2)12 ———— 00001100 下一跳为R2 (3)151———— 10010111 下一跳为R4 (4)17 ———— 00010001 下一跳为R3 (5)90 ———— 01011010 (01≠00)即没有对应 ,就用默认,下一跳为R4
思路:做这个题最好是画个图表,往里面填数字,这样比较方便检查,也更直观,首先要看固定首部长度,它的范围可以在 20~60之间,在计算时候减去。先算分片要分多少,在算片偏移。
解: 取首部20,1500-20=1480
4000/1480=3(进行进一制)即分为3个数据片
数据字段长度 MF DF 片偏移
原始数据报 4000 0 0
数据片1 1480 1 0 0
数据片2 1480 1 0 185
数据片3 1020 0 0 370
片偏移的计算:
数据片1:第一片不需要偏移,所以偏移量为0 数据片2:1480*1/8=185 数据片3:1480*2/8=370
至于为什么网上有的首部为24原因是因为:数据报片外每个分片的长度一定是8字节的整数倍,即片偏移不能含小数。首部分为20的固定部分和可变部分 首部最长60,单位是4
解析:路由表的组成由:目的网络地址、目的网络子网掩码、下一跳组成。还是采用画表形式填入数据,转发就要用到子网掩码和目的地址的二进制与运算。
(1)R的路由表
目的网络地址 目的网络子网掩码 下一跳 145.13.0.1 255.255.192.0 直接交付,接口m0 145.13.61.1 255.255.192.0 直接交付,接口m1 145.13.128.1 255.255.192.0 直接交付,接口m2 145.13.192.1 255.255.192.0 直接交付,接口m3 * 接口m4
(2)160And192 = 128
收到的分组从路由器的接口m2转发
计算:
子网掩码的计算: 可以看到每一个目的地址后面都是18位,即 11111111.11111111.11000000.000000 转化为十进制:255.255.192.0
目的地址倒数第二位是160,转化为二进制为:10100000
子网掩码倒数第二位是192,转化为二进制为:11000000
10100000 And 11000000
10000000
10000000转化为十进制为 128,看图128对应N3那
思路:将网络地址与目的地址都转化为二进制 ,利用最长前缀匹配准测进行判断。
4-49 解:
根据最长前缀匹配准测,选择路由3
4-50 解:
最长前缀匹配准则是没有问题的,问题出在主机H的IP地址,在目的网络11.0.0.0/8中分配本网络的主机号时,不允许重复使用路由3中的任意一个地址。导致地址重复,引起混乱。
版权归原作者 梁弋生 所有, 如有侵权,请联系我们删除。