图 2-13 子页
图 2-14 子页
2.3.2 结果分析
首先,这五个页面,主页存储在一台计算机上,另外四个子页分别存储在四台计算
12
机上。该实验的前提是四台计算机在同一局域网内。
网页制作的基本语言是HTML,通过HTML标签的用法可轻松的制作出静态网页。 在浏览器的地址栏输入存有主页的计算机的IP地址后,由于四台计算机在同一局域网内,所以出现的页面即为主页,再通过链接也可访问另外三台电脑上的页面。
13
第三章 路由表的生成
编程题:随机给定一个拓扑,要求使用狄克斯特拉算法生成每一个路由器的路由表。 检查方法:随机制定一个路由器,输入一个IP地址,电脑输出其下一跳MAC地址。
42371865 图 3-15 网络拓扑图
9§3.1引言
网络层向上只提供简单灵活的、无连接的、尽量大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(也就是IP数据报)独立发送,与其前后的分组无关(不进行编号)。且分组通过路由器转发。
3.1.1 IP层转发分组的流程
在互联网上转发分组时,是从一个路由器转发到下一个路由器。总之,在路由表中,对每一条路由最主要的是以下两个信息:
(目的网络地址,下一条地址)
于是,我们就根据目的网络地址来确定下一跳路由器,这样做的结果是:
(1)IP数据报最终一定可以找到目的主机所在的目的网络上的路由器(可能要通过多次的间接交付)。
(2)只有到达最后一个路由器时,才试图向目的主机进行直接交付。
15
这里我们应明确,在IP数据报的首部写上的IP地址是源IP地址和目的IP地址,而没有中间经过的路由器的IP地址。
3.1.2 路由器
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。从路由器某个输入输出端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输入输出端口转发给下一跳路由器。下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。路由器的转发分组正是网络层的主要工作。
路由器的结构可划分为两大部分:路由选择部分和分组转发部分。
3.1.3 狄克斯特拉算法
程序的核心算法即为狄克斯特拉算法:v0为源,p->cost 为点u 和j 之间的边的长度,结果保存在 distance[]中
初始化:源的距离distance[s]设为0,其他的点距离设为无穷大,同时把所有的点状态设为没有扩展过。
循环n-1次:
(1). 在没有扩展过的点中取一距离最小的点u,并将其状态设为已扩展。 (2). 对于每个与u相邻的点j,如果distance[u] +p->cost< distance[j],那么把distance[j]更新成更短的距离distance[u] + p->cost。此时到点j的最短路径上,前一个节点即为u。
结束:此时对于任意的u,distance[u]就是v0到u的距离。
§3.2实验设计
3.2.1 设计思想
此实验的过程主要分为五个步骤,包括:图的存储—邻接矩阵、最短路径的算法、路由表的生成、路由表的输出、查询。其中主要过程是路由表的生成和查询,而程序设计的难点则是路由表中下一跳路由的确定和点分十进制IP地址的转换。
首先图用邻接矩阵存储,创建图时就初始化各顶点的值和各边的权值。可以简化进行实验时的输入量。
16