黑龙江大学计算机网络实验

上传人:第*** 文档编号:32772574 上传时间:2018-02-12 格式:DOC 页数:10 大小:130.07KB
返回 下载 相关 举报
黑龙江大学计算机网络实验_第1页
第1页 / 共10页
黑龙江大学计算机网络实验_第2页
第2页 / 共10页
黑龙江大学计算机网络实验_第3页
第3页 / 共10页
黑龙江大学计算机网络实验_第4页
第4页 / 共10页
黑龙江大学计算机网络实验_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《黑龙江大学计算机网络实验》由会员分享,可在线阅读,更多相关《黑龙江大学计算机网络实验(10页珍藏版)》请在金锄头文库上搜索。

1、黑龙江大学计算机学院软件学院计算机网络实验报告- 0 -黑龙江大学实 验 报 告课程名称 计算机网络(Computer Network)实验项目名称 RIP 协议的模拟实现实验时间(日期及节次) (5 月 6 日5 月 20 日) 第 10 12 周, 7 8 节专业 计算机科学与技术 学生所在学院 计算机科学技术学院年级 2010 学号 20100990姓名 张宁 指导教师 姜誉 教授实验地点 4413出勤、预习情况操作技术及结果 实验报告附加:综合创新能力实验综合成绩实验成绩教师签字黑龙江大学教务处- 1 -实验名称 RIP 协议的模拟实现实验目的开设本实验可以使学生能够将课堂知识与实践相

2、结合,让学生进一步理解计算机网络的基本原理和具体的通信机制,熟悉基本的计算机网络的组网技术,掌握初步的网络应用编程技术,为学生进一步深入学习网络应用、网络设计、网络应用开发打下一个坚实的基础,同时也能使学生在实践中体会、深化了解课堂中学习的知识。实验类型设计型实验环境编程环境:Visual C+ 6.0运行环境:Windows XP实验要求以 Socket 通信程序为基础,在给定互联网络拓扑的前提下,模拟实现多个路由器利用 RIP 协议更新其路由表的工作过程。实验内容与步骤 1、实验中主要使用的技术和算法常用的 Socket 类型有两种:流式 Socket(SOCK_STREAM)和数据报式

3、Socket (SOCK_DGRAM) 。流式是一种面向连接的 Socket,针对于面向连接的 TCP 服务应用;数据报式 Socket 是一种无连接的 Socket,对应于无连接的 UDP 服务应用。这次实验中 用到的是数据报式 Socket(SOCK_DGRAM ) 。数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠、无差错。类似于邮政系统服务。每个分组都携带完整的目的地址,各分组独立传送。 Socket 是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的Socket 系统调用。客户随机申请一个 Socket,系统为之分配一个 Soc

4、ket 号;服务器拥有全局公认的 Socket ,任何客户都可以向它发出连接请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)。Socket 利用客户/ 服务器模式巧妙地解决了- 2 -进程之间建立通信连接的问题。本地试验中,最核心的部分是 RIP 协议使用的距离向量算法,该算法对每一个相邻的路由器发送来的 RIP 报文,进行以下步骤:(1)对地址为 X 的相邻路由器发送过来的 RIP 报文,先修改此报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“ 距离”字段的值加 1,每一个项目都有三个关键数据,即:到目的网络 N,距离是 d,下一跳路由器是 X;.(2)

5、对修改后的 RIP 报文中的每一个项目,进行下述步骤。若原来的路由表中没有目的网络 N,则把该项目添加到路由表中,否则查看下一跳路由器地址,若下一跳路由器地 址是 X,则把收到的项目替换原路由表中的项目,否则若收到的项目中的距离 d 小于路由表中的距离,则进行更新,否则,什么也不做。(3)若三分钟没有收到相邻的路由器的更新路由表,则把相邻路由器记为不可达路由器, 即把距离置为 16(距离为 16 表示不可达) 。(4)返回。2、设计思想服务器端:(1)创建套接字 socket();(2)绑定套接字到一个 IP 地址和一个端口上( bind()) ,端口号为 520;(3)接受客户端发送的路由信

6、息 recvfrom();(3)根据 RIP 协议的距离向量算法更改发送来的路由信息,并更新自身的路由信息;(4)向客户端发送更新后的路由信息 send();(5)互相发送路由信息 send(),recvfrom(),直到某一方的路由信息不再发生更改, 结束通信,关闭套接字。客户端:(1)创建套接字 socket();(2)向服务器发自身的路由信息 send();- 3 -(3)接受服务器端的路由信息 recvfrom(),然后根据 RIP 协议的距离向量算法更改发 送来的路由信息,并更新自身的路由信息;(4)互相发送路由信息 send(),recvfrom(),直到某一方的路由信息不再发生更

7、改, 结束通信,关闭套接字。程序中模块控制流程图如下所示:建立连接 发送路由信息发送路由信息3、编码socket()创建套接字bind()绑定套接字获得端口号,等待客户端连接服务器recvfrom()接收客户端发送的路由信息,更新自身路由信息sendto()向客户端发送自身的路由信息socket()创建套接字获得端口号 520和 IP 地址,与服务器建立连接sendto()向服务器端发送自身的路由信息recvfrom()接收服务器端发送的路由信息,更新自身路由信息客户端closesocket()关闭套接字closesocket()关闭套接字- 4 -服务器端:for(i=0;ir_t2i.le

8、n)strcpy(r_,r_);r_t1ii.len=r_t2i.len;strcpy(r_t1ii.next_routing,r_t2i.next_routing);break;else break;elseflag+; if(flag=j1+1)- 5 -j1+;strcpy(r_,r_);r_t1j1.len=r_t2i.len;strcpy(r_t1j1.next_routing,r_t2i.next_routing);客户端:for(i=0;ir_t2i.len)strcpy(r_,r_);r_t1ii.len=r_t2i.len;strcpy(r_t1ii.next_routing

9、,r_t2i.next_routing);break;else break;else- 6 -flag+; if(flag=j1+1)j1+;strcpy(r_,r_);r_t1j1.len=r_t2i.len;strcpy(r_t1j1.next_routing,r_t2i.next_routing);4、调试 (1)首先运行服务器端,等待客户端发送信息。(2)然后运行客户端,输入的 IP 地址及端口号(端口号为 520) ,输入自身的路由信息。(3)在客户端发送信息后,看服务器算端情况,服务器端端显示了本路由器的原始信息,发送来的信息,发送来的信息更改后的信息及更新后的路由表。根据RIP

10、协议更新路由表的工作过程观察这些信息是否正确,若正确,则把更新后的路由表信息发送给客户端。(4)服务器端接收到客户端发来的信息后,同样观察服务器端显示的信息是否符合 RIP 协议工作过程,若符合,则把自身更新后的路由表发送回客户端。(5)按照上述说明反复发送信息,并观察路由表更新信息是否正确,直到某一方在接收到路由信息并更新自己的路由信息后,发现没有变化时,则程序自行结束。 后者是正常关闭后结束程序。5、测试- 7 -端口号 IP 地址 发送数据 接受数据客户端 520 127.0.0.1 自身路由信息 服务器端路由信息服务器端 520 127.0.0.1 自身路由信息 客户端路由信息6、实验

11、过程(演示说明)服务器端:客户端:- 8 -实验总结在开始编写该实验前,首先我对上一次的实验进行了一下复习,然后,我又对在课堂上已经学习过的对本实验最核心的部分 RIP 协议的距离向量算法进行进一步的细致的学习。由于有了上一次的 Socket 通信编程实验的基础和对该实验核心算法的了解,因此在编写该实验时,我感到较为轻松。通过这次的实验,使我能够将课堂知识与实践相结合,让我进一步理解计算机网络的基本原理和 RIP 协议的距离向量算法,同时掌握初步的网络应用编程技术,最重要的- 9 -是,我深刻的体会到温故而知新这句话的含义。因此,在以后的学习及实验中,我都会吸取这次实验的经验,先要对重点知识进行巩固和扎实,使自己做到编写实验时条理清晰,明确地知道下一步该做什么。只有这样,才能事半功倍。不仅节约时间,而且,提高了效率。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号