好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

北交计算机网络可靠数据传输原理Go-Back-N_图文.docx

10页
  • 卖家[上传人]:ss****gk
  • 文档编号:234298305
  • 上传时间:2022-01-03
  • 文档格式:DOCX
  • 文档大小:120.15KB
  • / 10 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 编程实现可靠数据传输原理、实验目的运用各种编程语言实现阜丁・Go-Back-N的可靠数据传输软件本实验中使用JAVA语言、实验意义通过本实验,使学牛能够对可靠数据传输原理有进一步的理解和学握三、实验背景Go-Back-N的有限状态机模型表示如图3.1所示:if (nextseqnum < base+N) {compute chksummake_pkt(sndpkt(nextse qnu m)) jextseqnumQcrthksum) udt_sehd (s nd pkt (nextseq num))if (base == nextseqnum)start^timernextseq num = n extseqnum + 1elsetimeoutstart」imerudtjsend(sndpkt(base))udt_send($ndpkt(base4-1)• •••••udt_send(sndpkt(nextseq n 1 )Xdefaultudt_send(sndpkt)rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && hasseq n u m(rcvpkt ,expectedseq num)extract(rcvpktzdata) deliver_data(data) make_pkt(sndpkt,ACK,expectedseqnum) udt^send(sndpkt)图3.1 Go-Back-N的有限状态机模型(a)发送端(b)接受端!1!实验步月1, 选择合适的编程语言编程实现基于Go-Back-N的可靠数据传输软件。

      2, 在实际网络环境或模拟不可靠网络环境中测试和验证自己的可靠数据传 输软件五、实验环境(1) 实验语言:JAVA(2) 实验平台:Eclipse(3) 引用库函数:随机(Random)库六、设计方法在GBN中,已经被发送但述耒被确认的分组的许可序号范围可以被看成是一个序号范 围内氏度为N的窗口,随着协议的运行,该窗口在序号空间内向前滑动在木实验中,设 定窗口的长度为4,—共发送7个分组GBN的发送方响应上层的调用,当上层要发送数据时,发送方首先检查发送'窗I」是否 己满,即是否冇N个己发送但还未被确认的分组,如果窗口未满,则创建一个分组并将其 发送如果窗口已满,发送方只需将数据返回给上层,隐式的通知上层该窗口已满本实验 中输出窗口的状态,若窗口的状态为“待确认”表示该分组已经被发送,发送方等待收到接 收方传回的ACK;若窗口状态为“待发送”表示窗口未满,创建一个分组并准备将其发送出 去在GBN协议中,对序号为n的分组的确认采用累计确认的方式,表明接收方已止确收 到序号n以前(包括n在内)的所有分组发送方只使用一个定时器,它被当做是最早的已发送但未被确认的分组所使用的定吋器 如果收到一个ACK,但仍有已发送但未被确认的分组,则定时器重新被启动。

      如果没有已发 送但未被确认的分组,则该定时器被终止若定时器超时,发送方将重传所有已经发送但还 未被确认的分组对于接收方,如果一个序号为n的分组被止确接收到,并且按序(即上次交付给上层的 数据是序号为n-1的分组),则接收方为分组n发送•个ACK,并将该分组中的数据交付到 上层在所有其它情况下,接收方都丢弃该分组,并为最近按序接收到的分组重传ACK木实验中,由于窗口长度的限制,发送方发送分组0至3,然后在继续发送之前,必须 等待直到一个或多个分组被确认当接收到每一个连续的ACK (例如ACK0和ACK1)时,该 窗口向前滑动,发送方便可以发送新的分组在接收方,若一个分组丢包,则其后面的分组 在接收方收到的为失序的分组并被丢弃山于定吋器被当做最早的已发送但未被确认的分组 所使用的定时器,设定定时长度为2秒,在程序小使用随机函数为分组设定时延,当定时器 超时时,发送方将重传所有已经被发送但是未被确认的分组下图展示了木实验中模拟的GBN协议的运行情况: receiversendersend pktO send pktl send pkt2 send pkt3(woit)rev ACKOsend pkt4rev ACK1send pkt5-pkt2 timeoutsend pkt2send pkt3send pkt4send pkt5rev pktO send ACKOrev pktl send ACK1 rev pkt3# discard send ACK1 rev pkt4z discard send ACK1rev pkt5, d scard send AOKlrev pkt2z deliver send ACK2rev pkt3z deliver send ACK3七、测试结果■ S貝 Console S3 GBN [Java Application] D:\php\EasyEclipse for PHPJ..2.2.2\讓;现在开始™•乱现在接收分组数据!开始发送分组0有未被确认的分组,定时器启动开始发送分组1开始发送分组2发送方:发送方:发送方:发送方:发送方:开始发送分组?发送分组0至3,为最早的已发送但未被确认的分组0设定一个定时器,开始计时,吋间为2秒当前窗口内的分组情况为:第0号窗口里面存放的是序号为0的待确认的数据分组! 第1号窗口里面存放的是序号为1的待确认的数据分组! 第2号窗口里面存放的是序号为2的待确认的数据分组! 第?号窗口里面存放的是序号为?的待确认的数据分组!序号为0的分组在伎给接收方途中发生了丢包!接收方:收到分组A该分组是失序的,丢弃该分组,接收方回送ACK7 接吹方:收到分组2j该分组是失序的,丢弃该分组,接收方回送ACK7 序号为?的分组在伎给接收方途中发生了丢包!于分组0丢包,导致接收方、 接收的分组1,2均为失序的分 组,被丢弃,并为最近按序接 收到的分组重传ACK,由于程序 中设置的最后收到的分组为所以接收方回送ACK0-1 i发送方:分组0计时超时!即将重发所有已经发送但未确认的分组! 开始发送分组0开始发送分组1开始发送分组2开始发送分组3发送方:有条被确认的分组,走时器启动由于分组o丢包,所以发送方 收不到ACK0,计时器超时,重发 所有已发送但未被确认的分组, 并R为最早己发送但未被确认的 分组0启动定吋器 >接收方:收到分组6该分组正是所期待的,接受它并回送ACK0 接收方:收到分组匚该分组正是所期待的,接受它并回送ACK1 接收方:收到分组乙该分组正是所期待的,接受它并回送ACK2 序号为?的分组在传给接收方途中发生了丢包!分组0时发生延迟汩00亮秒! 发送方:接收到ACK0 窗口右移厂 ■接收方接收到按序R正确的分组 0,1,2,返回对应的 ACKO, ACK1, ACK2o分组3发生了丢包,接收 方接收不到。

      聽加认的分组,W当前窗口内的分组情况为:第0号窗口里面存畝的是序号为1的待确认的数据分组! 第1号窗口里面存敢的是序号为2的待确认的数据分组! 第2号窗口里面存敢的是序号为?的待确认的数据分组! 第?号窗口里面存敢的是序号为4的待发送的数据分组!分组0延时为300毫秒,未超吋,发送方接收到匸确的ACK,窗口向右滑动,发送方发送新的分组4,并且为最早己发送但未被确认的分组1启动定时器分组1时发生延迟:?00毫秒!发送方:接收到ACK1窗口右移当前窗口内的分组情况为:第0号窗口里面存预的是序号为2的待确认的数据分组! 第1号窗口里面存预的是序号为3的待确认的数据分组! 第2号窗口里面存预的是序号为4的待确认的数据分组! 第3号窗口里面存预的是序号为5的待发送的数据分组!发送方:有未被确认的分组,定时器启动开始发送分组5分组1的延吋为300進秒,未超吋,发送方接收到正确的ACK1,窗口向右滑动,发送 弋」方发送新的分组5,并且为最早已发送但未 被确认的分组2启动定时器 分组2时发生延迟:308^秒!发送方:接收到ACK2窗口右移当前窗口內的分组情;兄为:第0号窗口里面存放的是序号为?的待确认的数据分组! 第1号窗口里面存锁的是序号为4的待确认的数摇分组! 第2号窗口里面存锁的是序号为5的待确认的数摇分组! 第3号窗口里面存锁的是序号为6的待发送的数摇分组!分组2的延时为300毫秒,耒超时,发送方接收到正确的ACK2,窗口向右滑动,发送方发送新的分纽6,并且为最早己发送但未被确认的分组3启动定时器瞬蹲的分组'2发送方:分组?计时超时!即将重发所有已经发送但未确认的分组! 开始发送分组3开始发送分组4开始发送分组5开始发送分组6发送方:有未械确认的分组,定时器启动由于分组3丢包,所以发送方接收不 到ACK3,计时器超时,重发所有已发 送但未被确认的分组3,4,5,6,并11为 最早已发送但未被确认的分组3启动序号为3的分组在传给接收方途中发生了丢包!接收方:收到分组4该分组是尖序的,丢弃该分组,接收方回送ACK2 接收方:收到分组》该分组是尖序的,丢弃该分组,接收方回送ACK2 接收方:收到分组6该分组是尖序的,丢弃该分组,接收方回送ACK2分组3在重发的时候乂丢辺,所以接收方接收到的分组4,5,6均为失序的分组,被丢弃,并为最近按序接收到的分组2重传ACK2发送方:分组3计时超时!即将重发所有已经发送但未确认的分组! 开始发送分组3开始发送分组4开始发送分组5开始发送分组6发送方:有未械确认的分组,定时器启动方方方方收收收收反至! 反至! 反至!分组亠该分组正是所期待的,接覺它并回送ACK? 分组4「该分组正是所期待的,接覺它并回送ACK4 分组5「该分组正是所期待的,接覺它并回送ACK5 分组6»该分组正是所期待的,接覺它并回送ACK6由于分组3丢包,计时器超时,重发所有已发送但未被确认的分M 3,4,5,6,并且为最早已发送但未被确认的分组3启动定吋器接收方接收到按序.几止确的分组3,4,5,6,返回 ACK3, ACK4, ACK5, ACK6分组3时发生延: 3000^秒!发送方:分组3计时超时!即将重发所有已经发送但未确认的分组! 开始发送分组3开始发送分组4开始发送分组5开始发送分组6发送方:有未械确认的分组,定时器启动虽然分纽3被接收方正确的接收并返回ACK3,但是由于分组3过度时延,使得计时超时导致所冇已经被发送但未被确认的分组重发接收方:收到分组勺该分组正是所期待的,接受它并回送ACK?接收方:收到分组J该分组正是所期待的,接受它并回送ACK4 序号为5的分组在传给接收方途中发生了丢包!接收方:收到分组6该分组是尖序的,丢弃该分组,接收方回送ACK4分组?时发生延迟:758皇秒! 发送方:接收。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.