北邮计算机网络实验:GoBackN协议与选择重传实现
需积分: 22 168 浏览量
更新于2024-09-08
3
收藏 106KB DOC 举报
本实验报告主要探讨的是北京大学邮电学院的计算机网络课程中的一个重要实践环节,即GoBackN协议的实现。实验内容围绕滑动窗口协议展开,目标是在具有特定条件的仿真环境中,设计并编程实现一种在无差错双工卫星信道上工作的通信协议。信道特性包括8000bps速率、全双工模式、270毫秒传播时延、10^-5的误码率,以及256字节的固定网络层分组长度。
实验环境为Windows 10操作系统,配合Microsoft Visual Studio 2017开发工具。参与者需要编写的数据链路层程序存放在datalink.c中,需遵循特定的源程序书写格式要求。此外,实验涉及到的关键组件包括库函数如protocol.h中的函数原型和宏定义,以及用于处理命令行参数的getopt.c中的getopt_long()函数。gbn.exe是Go-Back-N协议的一个参考实现,它集成了ACK技术,通过发送和接收数据包来交换数据,并利用控制信息进行错误检测和恢复。
GoBackN协议的核心部分是滑动窗口机制,它使用搭载ACK技术,通过字节填充的标志字节法来成帧。帧的开始和结束由特殊的字符FLAG标识,当有效载荷包含标志字节或转义字节时,需要添加ESC转义字节。接收端在传递给网络层之前会移除转义字符。在数据传输过程中,如果遇到帧丢失(例如,序号跳跃或CRC错误),发送方会主动发送NAK(否定帧);如果长时间未收到确认(ACK),发送方会触发ACK超时并重新发送数据;若数据帧长时间未得到确认,则会触发数据帧超时并进行重传。
在软件设计方面,关键的数据结构包括帧结构体,其中包含了帧类型(FRAME_DATA、FRAME_ACK、FRAME_NAK)、ACK或NAK的序号、数据帧的序号等信息。整个实验不仅锻炼了学生的编程能力,还让他们深入理解了滑动窗口协议的工作原理、错误检测与恢复机制,以及在实际通信环境中的应用。
通过这个实验,学生能够掌握在嘈杂的卫星信道上实现可靠数据传输的技术,增强对TCP/IP协议族的理解,并提升问题解决和调试能力。这在信息技术领域具有很高的实践价值,对于未来从事网络工程、系统集成等工作具有重要意义。
2022-06-27 上传
347 浏览量
126 浏览量
qq_41271365
- 粉丝: 8
- 资源: 18
最新资源
- 驱动器:用于数据存储和传输的android应用
- wheather-kotlin-app:应用Kotlin博物馆
- cse427:uw的计算生物学课程
- bash入门学习实例
- spacedesk安装包
- RTSP拉流软件显示.zip
- ReCapProject:租车计划
- spooky-authors-identification:该存储库介绍了我们在哥伦比亚大学IEOR 4523数据分析课程的背景下实现的项目中的工作
- 在WPF MVVM应用程序中使用IValueConverter选择UserControl / View
- 一次性电子邮件域
- 教育核算点财务管理考核方案
- USIM_Explorer.rar
- ucsf_www.ucsf.edu_tests:www.ucsf.edu 重新设计的测试场景
- DummyWebApp
- C语言期末作业——民航票务系统
- 电信设备-基于改进蚁群AODV协议的多机器人通信组网方法.zip