计算机网络应用基础黑大,黑龙江大学计算机网络实验.doc

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

黑龙江大学

实 验 报 告

课程名称计算机网络(Computer Network)实验项目名称RIP协议的模拟实现实验时间

(日期及节次)(5 月6日-5月20 日)第 10- 12 周, 7 -8 节专业计算机科学与技术学生所在学院计算机

科学技术学院年级2010学号姓名张宁指导教师姜誉 教授实验地点4#413

实验成绩

出勤、预习情况操作技术及结果实验报告附加:综合创新能力实验

综合成绩教师签字

黑龙江大学教务处

实验名称

RIP协议的模拟实现

实验目的

开设本实验可以使学生能够将课堂知识与实践相结合,让学生进一步理解计算机网络的基本原理和具体的通信机制,熟悉基本的计算机网络的组网技术,掌握初步的网络应用编程技术,为学生进一步深入学习网络应用、网络设计、网络应用开发打下一个坚实的基础,同时也能使学生在实践中体会、深化了解课堂中学习的知识。

实验类型

设计型

实验环境

编程环境:Visual C++ 6.0

运行环境:Windows XP

实验要求

以Socket通信程序为基础,在给定互联网络拓扑的前提下,模拟实现多个路由器利用RIP协议更新其路由表的工作过程。

实验内容与步骤

1、实验中主要使用的技术和算法

常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket (SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。这次实验中 用到的是数据报式Socket(SOCK_DGRAM)。数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠、无差错。类似于邮政系统服务。每个分组都携带完整的目的地址,各分组独立传送。

Socket 是面向客户/服务器模型而设计的,针对客户和服务器程序提供不同的Socket 系统调用。客户随机申请一个Socket,系统为之分配一个Socket号;服务器拥有全局公认的 Socket ,任何客户都可以向它发出连接请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)。Socket利用客户/服务器模式巧妙地解决了进程之间建立通信连接的问题。

本地试验中,最核心的部分是RIP协议使用的距离向量算法,该算法对每一个相邻的路由器发送来的RIP报文,进行以下步骤:

(1)对地址为X 的相邻路由器发送过来的RIP报文,先修改此报文中的所有项目:把

“下一跳”字段中的地址都改为X,并把所有的“距离”字段的值加1,每一个项目都

有三个关键数据,即:到目的网络N,距离是d,下一跳路由器是X;.

对修改后的RIP报文中的每一个项目,进行下述步骤。若原来的路由表中没有目的

网络N,则把该项目添加到路由表中,否则查看下一跳路由器地址,若下一跳路由器地

址是X,则把收到的项目替换原路由表中的项目,否则若收到的项目中的距离d小于路

由表中的距离,则进行更新,否则,什么也不做。

(3)若三分钟没有收到相邻的路由器的更新路由表,则把相邻路由器记为不可达路由器,

即把距离置为16(距离为16表示不可达)。

(4)返回。

2、设计思想

服务器端:

(1)创建套接字socket();

(2)绑定套接字到一个IP地址和一个端口上(bind()),端口号为520;

(3)接受客户端发送的路由信息recvfrom();

(3)根据RIP协议的距离向量算法更改发送来的路由信息,并更新自身的路由信息;

(4)向客户端发送更新后的路由信息send();

(5)互相发送路由信息send(),recvfrom(),直到某一方的路由信息不再发生更改,

结束通信,关闭套接字。

客户端:

(1)创建套接字socket();

(2)向服务器发自身的路由信息send();

(3)接受服务器端的路由信息recvfrom(),然后根据RIP协议的距离向量算法更改发

送来的路由信息,并更新自身的路由信息;

(4)互相发送路由信息send(),recvfrom(),直到某一方的路由信息不再发生更改,

结束通信,关闭套接字。

程序中模块控制流程图如下所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值