计算机网络实验课总结,计算机网络课程实验小结.doc

计算机网络课程实验小结

计算机网络实验题

(四选一)

滑动窗口协议的模拟

目的:

加深对滑动窗口协议的理解。

任务:

实现对于滑动窗口协议的模拟(协议六—选择性重发)。

要求:

Windows 环境下运行,1-2台PC上运行;

演示在两台计算机间传输文件。允许在同一台机器中用两个独立线程来模拟:

PC(线程)向另一台PC(线程)发送数据包,界面应显示出双方帧个数变化,帧序号,发送和接受速度,暂停或重传提示等,界面中动态显示数据帧的发送情况和接受情况,包括在相应窗口详细显示相应的ACK和其他收发数据帧后发出的消息,以模拟协议的正确运作过程

接收方及发送方应具有按序收发帧的能力;

,。,,(--等协议);

,;

以上几个功能应可视,要求简单界面。

提交:

所有程序源代码,并可编译执行;

文档:

,,,。,:(VC环境下)LINK.H,

评分:

最高分:A

原代码是否可运行;

文档是否完备,

文档与程序代码是否一致;

程序容错性,

参考:

关于滑动窗口,请阅读网络教材(实现协议6 — 选择性重发);

运行时启动两个线程client 和server。其中sever 初始应该为监听状态;

可指定滑动窗口数目m(m=2n,n为大于1的整数)和要发送的帧总数,停等的超时时间间隔以及发送类型(正常发送,即没有缺帧和错序发送帧的现象),发送速率等参数;

client向server发起连接,成功则转入5;

client端发出帧,帧的内容可同序号或者为“111”“222”…“aaa”“bbb”…或者是一段文章中的部分内容;

选择发送类型为“缺帧”,模拟因网络拥塞造成丢帧的情况,开始发送情况同“正常发送”的情况。不同的是在帧x发送前用户可以选择丢失,则客户端继续接收帧x+1,x+2…并且对帧x+1,x+2…发出确认并缓存该帧;

服务器端等待一段相当长的时间(超时),重发帧x;

选择发送类型为“错序发送”。将一组待发送的帧按照指定(错序)顺序发送。具体实现同“缺帧”情况;

以上各种情况下,client和server窗口中应实时显示帧的发送和接受情况,包括序号,到达时间,内容等。以及窗口的填充和清空情况;

使用socket编程;

本实验要求实现的是一个简化了许多的滑动窗口协议。对于所有包,在生成序列号后进行发送。接收方为每个包设定一个定时器,记录包的到达情况。如发送方发送速度过快,或某包定时器超时,则发送方应重发。接受方窗口满时,接受到的包应被拷贝至硬盘(以下部分可以自由设计,仅做参考)。

主要的数据结构:

包:

class packet{

protect:

int num;//

cstring content;//

… …

//method

… …

}

消息:

class message{

protect:

int no;//

cstring content;//

int id;//消息的方向

//method

… …

}

程序主要流程

方法:

void create_windows();//

void create_packet();//

bool create_timer();//

int waitfornext();//

void resend();//

void receive();//

void write();//

注:本实验主要目的是为了加深同学们对于滑动窗口协议的了解,而不是底层的网络编程。所以在这里,“包”的概念可以是一组题为“1”、“2”、“3”等等的文件(由程序动态创建)。如果是在两台机器上实现,其中一台机器作为发送方,另一台则是接收方,双方进行通讯。如果接收方窗口大小为6,则当编号为7的包(文件)到达时,接受方应作相应处理,包括通知发送方暂停发送,缓存收到的包,清空滑动窗口等。当然,对于出错的情况,比如包丢失,不按序到达等情况编程者应有所考虑,所以在模拟接收方的机器上,应提供选择待发送包序号的界面。一个简单的选择发送包的界面如下:

按序发送

错序发送(包4未发送)

简单的端口扫描

目的:

加深对TCP/IP协议的理解,熟悉Socket编程。

任务:

实现一个扫描器,必须能够完成以下所有功能:使用TCP connect、TCP SYN和 TCP FIN 进行端口扫描,使用ICMP echo扫描

提交:

程序源代码,必须有详细的注释。

项目设计报告

要求:

Windows环境下,

最高分:A

符合要求:70%:10%:20%

系统概述:运行环境、编译、使用方法、实现环境、程序文件列表等;

主要数据结构;

主要算法描述;

遇到的问题及解决方法;

体会与建议。

参考:几种扫描的原理

TCP connect() 扫描这是最基本的TCP扫描。操作系统提供的connect()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么con

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值