1 / 8
文档名称:

路由分组转发算法的模拟C.docx

格式:docx   大小:1,758KB   页数:8页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

路由分组转发算法的模拟C.docx

上传人:xzp0639 2022/6/4 文件大小:1.72 MB

下载得到文件列表

路由分组转发算法的模拟C.docx

相关文档

文档介绍

文档介绍:Revised by BLUE on the afternoon of December 12,2020.
路由分组转发算法的模拟C
计算机网络作业
教材P128所述的分组转发算法如下:
从数据报的首部提取目 Revised by BLUE on the afternoon of December 12,2020.
路由分组转发算法的模拟C
计算机网络作业
教材P128所述的分组转发算法如下:
从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。
若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。
若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。
若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。
报告转发分组出错。
将该算法加以修改便可用于如下图所示(P130)划分子网的B类网络。
该B类网络被划分为三个子网,它们分别为,和。可知它们的子网掩码均为。
修改后的算法如下:
从收到的分组的首部提取目的 IP 地址 D。
先用各网络的子网掩码和D逐比特相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。
若路由表中有目的地址为 D的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(4)。
对路由表中的每一行的子网掩码和 D逐比特相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(5)。
若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。
报告转发分组出错。
用流程图表示上述算法如下:




开始
提取目的IP地址D
用子网掩码与D逐位相“与”
直接交付
与相应网络地址匹配
传送给指明的下一路由器
路由表中第行子网掩码与D逐位相“与”
传送给该行指明的路由器
路由表中有目的地址为 D 的特定主机路由
结束
结果与该行目的地址匹配
路由表中有 默认路由
传送给指明的默认路由器
报告分组发送出错




用C++实现该算法,考虑传送到路由器R2处的IP数据报分组,经过路由选择决定如何投递,编制程序模拟IP数据报分组转发过程。在程序中,以手动方式输入数据分组的目的IP地址D来模拟上述算法中的步骤(1)(D以点分十进制形式输入,在程序中分四部分输入,每部分以回车结尾)。
设R2的路由表中,目的IP地址有对应的特定主机路由,该特定路由指明发送到的数据分组传送到路由器R3。同时又设R2的路由表有默认路由,默认路由的下一跳也是R3。而对于发送到网络的数据分组均被直接传送到路由器R1。
即路由器R2的路由表如下图所示:
目的主机所在的网络
子网掩码
下一跳地址
(默认)
R3
(特定主机)
R3
R1
……