计算机网络原理实验七传输层可靠传输协议GBN编程实验报告精编
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络原理实验七
传输层可靠传输协议G B N编程实验报告精编
Document number:WTT-LKK-GBB-08921-EIGG-22986
实验七、传输层可靠传输协议G B N编程实验报告序号:姓名:学号:成绩指导老师:
一、实验目的:
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);
} }
结果截图: