go back n java_计算机网络——实现Go

实验目的

运用各种编程语言实现基于 Go-Back-N 的可靠数据传输软件。

实验环境系统:Mac OS X 10.13.1

语言:Java

开发平台:eclipse

内部库:java.net,java.util

实验过程

代码设计

为了完成本次试验的要求,我编写了两个Java代码文件,分别实现server端功能和client端功能:server端代码流程

主要算法流程如下所示,server端实现在一定丢包率范围内接收数据包并且回传ACK:

7c5548c0ba9c4ca1da726b872cd0e746.png

client端代码流程

主要的算法流程如下,client端主要实现数据包的传送以及延迟处理:

acbff73b58e15ab9e71baae63b5daf5f.png

主机ip获取

在启用Go-Back-N之前,我们首先需要获得个人电脑的IP。在Mac OS X系统,使用终端命令ifconfig即可直接查看主机IP,具体如下:

cc2f5107de9b536aae3fa5e809d59221.png

丢包率为0下的测试

为了验证代码的正确性,我首先先把丢包率设置为0查看了具体的传输流程,代码执行结果如下:窗口长度 windowSize = 4;

数据包总数 num = 10;

超时限制 Timer = 1000ms

执行结果如下:

6b7fad8cbaec778e4dda52b3d5b7eb49.png

%E4%B8%A2%E5%8C%85%E7%8E%87%E4%B8%BA0%E6%A8%A1%E6%8B%9F.png

丢包率为10%下的测试

为了继续验证代码的正确性,而后我把丢包率设置为10%查看了具体的传输流程,代码执行结果如下:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值