实验目的
运用各种编程语言实现基于 Go-Back-N 的可靠数据传输软件。
实验环境系统:Mac OS X 10.13.1
语言:Java
开发平台:eclipse
内部库:java.net,java.util
实验过程
代码设计
为了完成本次试验的要求,我编写了两个Java代码文件,分别实现server端功能和client端功能:server端代码流程
主要算法流程如下所示,server端实现在一定丢包率范围内接收数据包并且回传ACK:
client端代码流程
主要的算法流程如下,client端主要实现数据包的传送以及延迟处理:
主机ip获取
在启用Go-Back-N之前,我们首先需要获得个人电脑的IP。在Mac OS X系统,使用终端命令ifconfig即可直接查看主机IP,具体如下:
丢包率为0下的测试
为了验证代码的正确性,我首先先把丢包率设置为0查看了具体的传输流程,代码执行结果如下:窗口长度 windowSize = 4;
数据包总数 num = 10;
超时限制 Timer = 1000ms
执行结果如下:
丢包率为10%下的测试
为了继续验证代码的正确性,而后我把丢包率设置为10%查看了具体的传输流程,代码执行结果如下: