(200分)扩展UDP实现可靠传输(SR,GBN)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(200分)扩展UDP实现可靠传输(SR,GBN)相关的知识,希望对你有一定的参考价值。

一共两个题目,做出任何一个就给分,两个都做出来会追加,提供思路也可!
切忌:复制,粘贴,原文引用已有文章。
用自己的话讲思路,最好清晰明了……
(备注:该问题将于7.7号22:30结束,如无满意答案将关闭,想着碰运气来教我如何写程序的请走开)

一、扩展UDP实现SR可靠数据传输
要求:1.UDP向应用层提供不可靠数据传输服务,本课题的任务是扩展UDP的服务,使其对应用层提供采用SR(选择重传)的可靠的数据传输服务。
2.可靠数据传输机制设计:
2.1 UDP不可靠数据传输服务抽象;
2.2扩展UDP实现SR可靠数据传输:
2.2.1 如何体现流水线机制?
2.2.1 如何应对传输过程中的错误,实现SR?
2.3可靠数据传输机制的验证系统。

二、扩展UDP实现GBN可靠数据传输
要求:1.UDP向应用层提供不可靠数据传输服务,本课题的任务是扩展UDP的服务,使其对应用层提供采用GBN(Go_back_N)的可靠的数据传输服务。
2.可靠数据传输机制设计:
2.1 UDP不可靠数据传输服务抽象;
2.2扩展UDP实现GBN可靠数据传输:
2.2.1 如何体现流水线机制?
2.2.1 如何应对传输过程中的错误,实现GBN?
2.3可靠数据传输机制的验证系统。

(利用Java实现)
(可能是级别低的原因,我只能提供上限100的悬赏分,剩下的会追加,或者再出一个无意义问题累加到200,请大家放心)
只是一个课程设计而已,帮同学做的,没思路,有这么专业么,panda0112兄?
切忌:复制,粘贴,原文引用已有文章。 没看见?k19862217兄?

UDT协议-基于UDP的可靠数据传输协议
1. 介绍
随着网络带宽时延产品(BDP)的增加,通常的TCP协议开始变的低效。这是因为它的AIMD(additive increase multiplicative decrease)算法彻底减少了TCP拥塞窗口,但不能快速的恢复可用带宽。理论上的流量分析表明TCP在BDP增加到很高的时候比较容易受包损失攻击另外,继承自TCP拥塞控制的不公平的RTT也成为在分布式数据密集程序中的严重问题。拥有不同RTT的并发TCP流将不公平地分享带宽。尽管在小的 BDP网络中使用通常的TCP实现来相对平等的共享带宽,但在拥有大量BDP的网络中,通常的基于TCP的程序就必须承受严重的不公平的问题。这个RTT 基于的算法严重的限制了其在广域网分布式计算的效率,例如:internet上的网格计算。
一直到今天,对标准的TCP的提高一直都不能在高BDP环境中效率和公平性方面达到满意的程度(特别是基于RTT的问题)。例如:TCP的修改,RFC1423(高性能扩展),RFC2018(SACK)、RFC2582(New Reno)、RFC2883(D-SACK)、和RFC2988(RTO计算)都或多或少的提高了点效率,但最根本的AIMD算法没有解决。HS TCP(RFC 3649)通过根本上改变TCP拥塞控制算法来在高BDP网络中获得高带宽利用率,但公平性问题仍然存在。
考虑到上面的背景,需要一种在高BDP网络支持高性能数据传输的传输协议。我们推荐一个应用程序级别的传输协议,叫UDT或基于UDP的数据传输协议并拥有用塞控制算法。
本文描述两个正交的部分,UDP协议和UDT拥塞控制算法。一个应用层级别的协议,位于UDP之上,使用其他的拥塞算法,然而这些本文中描述的算法也可以在其他协议中实现,例如:TCP。
一个协议的参考实现叫[UDT];详细的拥塞控制算法的性能分析在[GHG04]中可以找到。

参考资料:http://www.abcdown.net/InfoView/Article_213539.html

参考技术A 参考下TFTP RFC吧

至少可以实现可靠传输.
参考技术B http://zhidao.baidu.com/question/77081746.html

(建议收藏)计算机网络:传输层概述UDP协议与可靠传输协议习题解析与拓展

一.单选题(共10题,71.0分)

1 关于UDP,以下哪一项描述是错误的

A、 UDP提供数据检错功能

B、 UDP提供面向报文传输服务

C、 UDP提供面向连接传输服务

D、 UDP实现进程间通信

正确答案: C

TCP实现的是面向连接的服务。
UDP提供不可靠的传输协议。
不管是TCP还是UDP,收不报文都存在检错功能,都有着循环冗余校验码作为检错。
UDP就是面向报文的传输服务。
UDP实现了进程之间的通信,传输层就是为了服务应用层从而实现进程之间通信而存在的服务。

2 以下哪一项与传输层面向连接服务无关
A、两端之间传输数据前存在协调过程
B、两端之间分配相关资源
C、两端之间建立传输路径
D、提供两端之间按序可靠传输服务

正确答案: C
首先要明确,面向连接的服务是指在数据传输之前和数据传输之后都会有连接报文的发送,俗称握手和挥手。
这个协调过程指的就是握手过程。
在握手过程之后进行分配相关资源来进行更好地调控。
不论是TCP还是UDP,他们都需要在两端之间建立传输路径。
面向连接的服务是可靠的传输

3 传输层可以通过( )标识不同的应用。

A、 物理地址

B、 端口号

C、 IP地址

D、 逻辑地址

正确答案: B
物理地址,就是MAC地址,记录了主机在地球的哪个位置。
端口号表示的就是应用进程的入口。下面列举了常见的端口号:
在这里插入图片描述
IP地址和应用没有关系,和路由器有关。
逻辑地址指的就是逻辑上的位置,比如机房的序号。和应用没有什么关系。

4 下面关于端口和套接字的叙述错误的是( )

A、 TCP套接字是由源IP地址、源端口号、目标IP地址和目标端口号共同标识的

B、 提供面向连接服务的服务器可以同时支持多个并行的套接字

C、 UDP和TCP的端口号不能冲突

D、 传输层通过端口号向上层提供多路复用功能

正确答案: C
套接字就是IP地址+端口号
所以TCP是面向连接的服务,它的套接字肯定是源IP地址、源端口号、目标IP地址和目标端口号共同标识的。这就是并行的套接字。

UDP和TCP的端口号是可以冲突的,为什么?
因为我的DNS协议既有TCP传输又有UDP传输。他们共用一个53端口号。
传输层通过端口号能够使用多条线路,提供多路复用的技术。

5 若数据链路层采用了GBN协议,发送方已经发送了编号为0~10的帧。当计时器超时时,若发送方只收到0、2、3、6号帧的确认,则发送方需要重发的帧数是?

A、 4

B、 5

C、 6

D、 7

正确答案: A
GBN(go back to N)表示接收方只接收正确的帧,而错误的帧就会被丢弃。意思就是说,接收的帧一定是正确的。接收到0、2、3、6号帧的确认,说明6号帧已经正确接收到了。只需要发送方发送7、8、9、10四个帧就好了。
GBN累积确认机制:发送方收到某个分组的确认说明这个分组之前(包括这个分组)的所有的分组接收方都正确接收到。

6 在滑动窗口协议中,如果发送窗口的尺寸大于1而接收窗口的尺寸等于1时,属于( )

A、 回退N步协议

B、 停–等协议

C、 选择重发协议

D、 争用协议

正确答案: A

只有在接收窗口向前滑动时(与此同时也发送了确认),发送窗口才有可能向前滑动。

当发送窗口和接收窗口的大小都等于 1时,就是停止等待协议。因为发送出去帧一定要等待确认才能发下一个帧,窗口值为1。

当发送窗口大于1,接收窗口等于1时,就是回退N步协议(GBN)。-------发送方在未收到确认帧的情况下,可连续发送Ws个数据帧;若受到确认帧,发送方可继续发送数据,否则停止发送并等待确认。不会越过错误的帧发送确认。

当发送窗口和接收窗口的大小均大于1时,就是选择重发协议。选择错误的重新发送,发送来对的包就发送对的确认,错误的包就发送错误的确认
D选项不属于滑动窗口协议,也没听说过。

7 下列不属于实现一个可靠协议必须要有的机制的是( )

A、 序号和确认机制

B、 查错或纠错机制

C、 超时重传机制

D、 滑动窗口机制

正确答案: D
我们的TCP可靠传输协议最根本的就是滑动窗口协议。序号和确认机制其实并不重要。

8 数据链路层采用SR传输数据,发送方已经发送了编号为0~3号数据帧,现已收到1号帧的确认,而0、2号帧依次超时,则此时需要重传的帧数是?

A、 1

B、 2

C、 3

D、 4

正确答案: B
SR (select repeat)选择重传协议。
出错了就重新船从,收到了1 号的确认,2号和0号超时,就发送2号和0号即可,毫无争议的。

9 下列关于选择性重传协议的发送窗口和接受窗口的大小描述正确的是?

A、 只有发送窗口大于1

B、 只有接收窗口大于1

C、 都为1

D、 都大于1

正确答案: D
见第六题解析。

正确答案: C 我的答案:D得分: 0.0分

二.判断题(共4题,29.0分)

1
有时应用程序开发者更倾向于选择在UDP上运行应用程序而不是在TCP上运行,原因包括需要避免使用TCP的拥塞控制、不需要保证数据的可靠传输。

我的答案:√
TCP的拥塞控制和保证可靠的传输都会占用网络资源,造成信息的慢速发出。
比如QQ,发消息用的就是UDP

2 在今天的因特网中,当你使用视频网站提供的播放器客户端观看视频时,其语音和视频流量常常是经TCP而不是经UDP发送。

我的答案:×
发消息要保证速度,减少网络资源的占用,用的是UDP。

3 在rdt协议中,接收机需要序列号来确定到达的分组是否包含新数据或是重传。

我的答案:√
序列号能够看出数据是否顺序正确。

4 在rdt协议中,引人定时器来处理数据包的丢失。
如果在定时器的持续时间内未接收到发送的分组的ACK,则假定分组(或其ACK或NACK)已经丢失,因此会重传数据包。

我的答案:√
rdt就是可靠数据传输协议的总称,有个时间计时器来计算到达时间是否超时,超时则做出相应的措施。

以上是关于(200分)扩展UDP实现可靠传输(SR,GBN)的主要内容,如果未能解决你的问题,请参考以下文章

王道考研 计算机网络11 数据链路层 封装成帧 透明传输 流量控制 停止-等待协议 后退N帧协议GBN 选择重传协议SR

计算机网络—— 数据链路层:可靠传输

数据链路层概述

udp如何保证数据传输的可靠性?

运输层-可靠数据传输原理:回退N步 Go-Back_N Protocol

UDP如何保证传输的可靠性