滑动窗口协议模拟程序实验报告内容摘要:

CTICE REPEAT),其工作过程如图所示。 显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。 流量控制 9 TCP 的特点之一是提供体积可变的滑动窗口机制,支持端到端的流量控制。 TCP 的窗口以字节为单位进行调整,以适应接收方的处理能力。 处理过程如下: ( 1) TCP连接阶段,双方协商窗口尺寸,同时接收方预留数据缓存区; ( 2)发送方根据协商的结果,发送符合窗口尺寸的数据字节流,并等待对方的确认; ( 3)发送方根据确认信息,改变窗口的尺寸,增加或者减少发送未得到确认 的字节流中的字节数。 调整过程包括:如果出现发送拥塞,发送窗口缩小为原来的一半,同时将超时重传的时间间隔扩大一倍。 ( 4)滑动窗口机制为端到端设备间的数据传输提供了可靠的流量控制机制。 然而,它只能在源端设备和目的端设备起作用,当网络中间设备(例如路由器等)发生拥塞时,滑动窗口机制将不起作用。 四、 实验步骤和结果记录 给出发送端滑动窗口协议基本算法的伪代码 给出接收端滑动窗口协议基本算法的伪代码 Sender 与 receiver 之间的 UDP 通信端口设置 定义滑动窗口的公共数据结构 发送端模拟代码说明 接收端模拟代码说 明 10 实验结果截图 ( 1) 发送方: ( 2) 接收方: 五、 关键源代码 发送方代码 11 // : Defines the class behaviors for the application. include include include ifdef _DEBUG define new DEBUG_NEW undef THIS_FILE static char THIS_FILE[] = __FILE__。 endif // CSenderApp BEGIN_MESSAGE_MAP(CSenderApp, CWinApp) //{{AFX_MSG_MAP(CSenderApp) // NOTE the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() // CSenderApp construction CSenderApp::CSenderApp() { // TODO: add construction code here, 12 // Place all significant initialization in InitInstance } // The one and only CSenderApp object CSenderApp theApp。 // CSenderApp initialization BOOL CSenderApp::InitInstance() {AfxEna。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。