计算机网络原理实验七传输层可靠传输协议GBN编程实验报告精编

  • 格式:docx
  • 大小:344.26 KB
  • 文档页数:7

计算机网络原理实验七
传输层可靠传输协议
GBN编程实验报告精编

Document number:WTT-LKK-GBB-08921-EIGG-22986
实验七、传输层可靠传输协议GBN编程实验报告
序号:姓名:学号:成绩 指导老师:
一、实验目的:
1、通过编写实现一个简单可靠的数据传输协议GBN的发送
和接收代码,模拟可靠数据传输
2、理解TCP协议可靠传输的差错检测、重传、累计确认、
定时器的可靠传输策略。
二、实验原理:
在GBN中,发送端不需要在接收到上一个数据包的
ACK后才发送下一个数据包,而是可以连续发送数据包。在
发送端发送的过程中,如果接收到对应已发送的某个数据
包的NACK,则发送端将NACK对应的某个数据包进行重发,
然后再将该数据包之后的数据包依次进行重发。
三、结果分析:
本次试验中采用java语言进行程序编写
代码注释:
(一) Sender类
import class Sender extends Thread{
public int windowsize=3; ;
import .*;
public class GBN extends Thread{
static void senddelay(int x) throws
InterruptedException{
if(x==1) {sleep(300); "发送数据分组时发生延
迟:300毫秒!"); }
else if(x==2) {sleep(750); "发送数据分组时
发生延迟:750毫秒!");}
else if(x==3) {sleep(1200);"发送数据分组时
发生延迟:1200毫秒!");}
else if(x==4) {sleep(3000);"发送数据分组时
发生延迟:3000毫秒!");}
else;
}
public static void main(String[] args) throws
IOException, InterruptedException {
Sender s=new Sender();
Receiver re=new Receiver();
();
extInt(3);

int randelay=new
Random().nextInt(5);
();
senddelay
(randelay);

extInt(3);
int randelay=new
Random().nextInt(5);
(); //
计时开始(2秒时间)
senddelay
(randelay); //

设置随机值,模拟数据传输延迟
if(ran!=1) [i],s);
//设置随机
值,模拟数据丢包过程
else "序号为"+i+"的分组在传给接收方途
中发生了丢包!");
}
}
"以下是每个数据分组被发送过的次数的统计结果
");
for(int i=0;i<7;i++) //显示关于
每个数据包发送次数的统计表
"序号为"+i+"的数据分组被发送过的次数为:
"+retimes[i]);
(0);
}
}

结果截图: