1 / 8
文档名称:

可靠的数据传输协议rdt的模拟实现.doc

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

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

分享

预览

可靠的数据传输协议rdt的模拟实现.doc

上传人:894280529 2018/9/11 文件大小:169 KB

下载得到文件列表

可靠的数据传输协议rdt的模拟实现.doc

文档介绍

文档介绍:可靠的数据传输协议rdt的模拟实现
姓名:陈锋学号:212008081202005
一、实验目的:
加深对可靠的数据传输协议(包括链路层、传输层和应用层)的理解。
二、实现的功能与要求
、功能
(1)由一台 PC (线程)向另一台 PC (线程)发送数据包,界面应显示出双方帧个数变化,帧序号,发送和接受速度,暂停或重传提示等,界面中必须动态显示数据帧的发送情况和接受情况,包括在相应窗口详细显示相应的 ACK 和其他收发数据帧后发出的消息,以表明模拟协议的正确运作过程。
(2)接收方及发送方应具有按序收发帧的能力;
(3)接受方应有固定大小的窗口,并对收到信息缓存。当发送方速度过快或帧丢失(超时),接受方应发送消息,要求暂停或重传(停-- 等协议);
(4)发送方发送速度应可以调节,并可以暂停或重发;
(5)发送方重传时可仅重传需要的(丢失的)幀;
(6)以上几个功能应可视,要求简单界面。
、要求
(1)Windows或者UNIX环境下,对可靠的数据传输协议的简单实现,程序应在 1-2 台 PC 上运行,
(2)演示在两台计算机间传输,允许在同一台机器中用两个独立线程来模拟。
三、可靠数据传输协议rdt的传输原理
下层信道是完美可靠的,没有bit错误,没有分组丢失。对发送方接收方具有独立的FSMs,发送方发送数据到下层信道,接收方从下层信道接收数据。
图1、可靠信道上的可靠传输
整个协议的工作原理图如下:
图2、可靠数据传输协议传输原理示意图
四、实验流程图
首先,启动服务器,调用Socket()建立一个套接口,然后用bind()将该套接口与本地网络地址绑定,再调用listen()使套接口做好监听的准备,规定请求队列的长度,ept()来接收连接。
客户在建立套接口后就可调用connect()和服务器建立连接。连接一旦建立,客户机和服务器之间就可以通过调用read()和write()来发送和接收数据。最后,待数据传送结束后,调用close()关闭套接口。实验流程图如下页图3所示。
Server
Socket()
Bind()
Listen()
Accept()
Client
Socket()
阻塞,等待
建立连接
Write()
Write()
Close()
Close()
Read()
connect()
请求数据
Read()
处理服务请求
应答数据
图3、Socket编程模拟实现rdt协议的流程图
五、主要程序片段
重要的数据结构—class CRcvSocket和class CSndSocket
类class CRcvSocket,用于服务器端的Socket通信。
class CRcvSocket : public CSocket
{
// Attributes
public:
// Operations
public:
CRcvSocket();
virtual ~CRcvSocket();
// Overrides
public:
void SetNotifyWnd(HWND hNtf);
void SetNotifyMsg(UINT uMsg);
private:
HWND hNot