实验七:模拟stop-and-wait算机网络编程.pptx

实验七:模拟stop-and-wait算机网络编程.pptx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用windows的时间函数模拟stop-and-wait 可靠传输 问题:数据帧可能出现错误,可能丢失,那么如何实现可靠传输? 基本解决方法 ACK (确认): 接收方根据差错检测的结果向发送方发送一个小的控制帧进行确认 ACK = 正确接收, NAK = 帧错误 超时: 如果发送方在一定的时间范围内未收到来自接受方的确认, 则重传数据帧 自动请求重传 (ARQ) ARQ 采用确认和超时定时器的可靠传输机制 链路层假设 串行通信信道 :传输过程中不存在帧的乱序 所有数据帧的传播时延相同 接收方 对数据帧进行差错检测 对正确帧进行确认, 丢失错误帧 丢弃禁止接收的数据帧 发送方 发送原始数据帧 对错误帧和丢失帧进行重传 3 -4- 停止等待协议 最简单的ARQ机制 每发送完一个数据帧, 发送方在继续发送下一个数据帧之前必须等待确认 如果在一定的时间范围内,发送方未收到确认(ACK), 则发送定时器超时激发, 发送方重传原始数据帧. -5- 停止等待协议 两种不同的帧丢失情况 Demo -6- 停止等待协议 问题: 超时重传 解决方案: 帧序号 (SeqNum ) 避免确认丢失导致的重复数据帧 在有线传输媒质中, 只需1比特 实验内容第三部分 本实验内容利用socket和windows时间函数,来模拟client和server之间的停止-等待动作 旨在帮助大家更好的理解停止-等待协议 考虑到时间,请大家完成两种情况的程序编写 正常通话,成功收到ACK 在时限内未能收到ACK,超时自动重传 Windows时间函数 请参加实验指导书 SYSTEMTIME sys:定义系统时间类型变量 GetLocalTime(sys):获得当前时间 printf(“%02d:%02d:%02d [duplex-talk] client: ”, sys.wHour, sys.wMinute, sys.wSecond): 显示时间 注意:请在每一个命令行前显示当前时间 正常通话 需要实现的功能: 客户端每发送一串数据,服务器自动回复ACK 输入为空时,回复ACK,自动退出 示例: 客户端 服务器 未收到ACK,超时自动重传 需要实现的功能: 客户端发送一串数据,服务器不回复ACK; 接收超时后,客户端自动重发数据; 发送三次数据之后,设置服务器回复ACK。 提示:可使用if()条件语句,使得发送次数达到3之后,服务器端回复ACK 如何设置超时重传? setsockopt(): 用于任意类型、任意状态套接口的设置选项值 本实验中用于设置recv函数最长超时等待时间 设置超时等待时间Timeout=xxx; setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO,(char *)Timeout, sizeof(int)); 一旦recv()超时Timeout,将返回-1,此时客户端应自动重发。

文档评论(0)

东山书苑 + 关注
实名认证
内容提供者

业务以学生学习成长为中心,为外语培训、中小学基础教育、学前教育,提供各种学习资料支持服务。

1亿VIP精品文档

相关文档