哈工大计算机网络实验:停等、GBN、SR协议实现与分析

需积分: 0 5 下载量 42 浏览量 更新于2024-08-05 收藏 2MB PDF 举报
"哈尔滨工业大学计算机网络课程实验报告" 实验报告详细介绍了如何设计和实现可靠数据传输协议,包括停等协议、Go-Back-N (GBN) 协议和选择重传(SR)协议。这些协议都是为了确保在不可靠的网络环境中,如使用UDP协议时,数据能够准确无误地从服务器传输到客户端。 1. **停等协议(Stop-and-Wait Protocol)** - 在最简单的形式下,停等协议每次只发送一个数据包,并等待接收方的确认(ACK)。如果收到ACK,发送方才会发送下一个数据包。如果未收到ACK,将重新发送该数据包。在GBN协议中,当发送端的窗口大小为1时,实际上就是停等协议。 2. **Go-Back-N (GBN) 协议** - GBN允许发送端在一个较大的窗口内连续发送多个数据包,而不需要等待每个包的ACK。只有当接收到一个错误的序号或者超时没有收到ACK时,发送端才需要回退N个包,重新发送。实验中,GBN协议的发送端窗口大小设定为7,意味着可以连续发送7个数据包。 3. **选择重传(SR)协议** - SR协议比GBN更高效,因为它只重传丢失的数据包,而不是所有未确认的包。发送端同样维护一个窗口,但接收端会在接收到错误序号的数据包时,只发送丢失数据包的ACK,而不是发送最后一个正确接收包的ACK。 4. **模拟数据丢失** - 实验通过随机方法模拟数据包丢失,以此验证所实现协议的有效性。当判定数据包丢失时,发送端不会发送该数据包,从而测试协议的容错能力。 5. **协议改进** - 实验的第三部分要求改进协议,以实现双向的数据传输。这意味着客户端也能向服务器发送数据,这需要更复杂的窗口管理和确认机制。 6. **文件传输实现** - 最后,实验还包括了文件传输的实现,这可能涉及到将文件分割成多个数据包,然后按照上述协议进行传输和确认。 在实验过程中,发送端需要设置监听的IP地址和端口,初始化SOCKET,绑定地址,然后进入监听状态。接收到请求后,根据请求类型(如"time"或"begin")执行相应操作。数据包结构包括填充字节、序号和数据,序号用8个比特位存储。ACK数据结构则用于反馈接收情况。 实验报告中还提到了实验的表现得分和教师的评语,但具体得分和评语未给出。通过这个实验,学生可以深入理解可靠数据传输协议的工作原理,以及如何在实际编程中实现这些概念。