您好,欢迎访问三七文档
15—05试举例说明有些应用程序愿意采用不可靠的UDP,而不用采用可靠的TCP。答:VOIP:由于语音信息具有一定的冗余度,人耳对VOIP数据报损失有一定的承受度,但对传输时延的变化较敏感。有差错的UDP数据报在接收端被直接抛弃,TCP数据报出错则会引起重传,可能带来较大的时延扰动。因此VOIP宁可采用不可靠的UDP,而不愿意采用可靠的TCP。5—08为什么说UDP是面向报文的,而TCP是面向字节流的?答:发送方UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。接收方UDP对IP层交上来的UDP用户数据报,在去除首部后就原封不动地交付上层的应用进程,一次交付一个完整的报文。发送方TCP对应用程序交下来的报文数据块,视为无结构的字节流(无边界约束,课分拆/合并),但维持各字节5—09端口的作用是什么?为什么端口要划分为三种?答:端口的作用是对TCP/IP体系的应用进程进行统一的标志,使运行不同操作系统的计算机的应用进程能够互相通信。端口号分为两大类,一类是服务器使用的端口号,其中又分为两类:熟知端口,数值一般为0~1023.标记常规的服务进程;登记端口号,数值为1024~49151,标记没有熟知端口号的非常规的服务进程。另一类是客户端使用的端口号,数值为59152~65535,仅在客户进程运行时才动态选择。5—11某个应用进程使用运输层的用户数据报UDP,然而继续向下交给IP层后,又封装成IP数据报。既然都是数据报,可否跳过UDP而直接交给IP层?哪些功能UDP提供了但IP没提提供?答:不可跳过UDP而直接交给IP层。IP数据报承担主机寻址,提供报头检错;只能找到目的主机而无法找到目的进程。UDP提供对应用进程的复用和分用功能,以及提供对数据差分的差错检验。5—13一个UDP用户数据的数据字段为8192字节。在数据链路层要使用以太网来传送。试问应当划分为几个IP数据报片?说明每一个IP数据报字段长度和片偏移字段的值。答:6个2以太网数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的.这个1500字节被称为链路层的MTU(最大传输单元).所以,这个1500字节就是网络层IP数据报的长度限制.因为IP数据报的首部为20字节,所以IP数据报的数据区长度最大为1480字节.而这个1480字节就是用来放TCP传来的TCP报文段或UDP传来的UDP数据报的.又因为UDP数据报的首部8字节,所以相当于UDP数据报由8200字节.数据字段的长度:前5个是1480字节,最后一个是800字节。由于片偏移以8个字节为偏移单位,1480/8=185所以片偏移字段的值分别是:0,185,370,555,740,925.5—14一UDP用户数据报的首部十六进制表示是:06320045001CE217.试求源端口、目的端口、用户数据报的总长度、数据部分长度。这个用户数据报是从客户发送给服务器还是从服务器发送给客户?使用UDP的这个服务器程序是什么?解:源端口632(十六进制)1586(十进制)目的端口45(十六进制)69(十进制)UDP用户数据报总长度1C(十六进制)28字节(十进制)数据部分长度28-8=20字节。此UDP用户数据报是从客户发给服务器(因为目的端口号是691023,是熟知端口),服务器程序是TFTP。(由书P192表格得到)5—17在停止等待协议中,如果收到重复的报文段时不予理睬(即悄悄地丢弃它而其他什么也没做)是否可行?试举出具体的例子说明理由。答:不可行。收到重复帧不确认相当于确认丢失,如果不重传确认M1,A会以为数据报丢失而在此重传。5—24一个TCP连接下面使用256kb/s的链路,其端到端时延为128ms。经测试,发现吞吐量只有120kb/s。试问发送窗口W是多少?(提示:可以有两种答案,取决于接收等发出确认的时机)。3答:两种情况:1、接收端在收完一批数据的最后才发出确认,因此发送端经过(256ms+T)后才能发送下一个窗口数据。T=W/256k2、即:W/(256ms+W/256k)=120k得:W=57825.88235bit约为7228字节。3、接收端每收到一个很小的报文段后就发回确认,因此发送端经过256ms即可再次发送数据。即:W/256ms=120k得:W=30720bit=3840字节5—29在使用TCP传送数据时,如果有一个确认报文段丢失了,也不一定会引起与该确认报文段对应的数据的重传。试说明理由。答:还未重传就收到了对更高序号的确认。当数据包都是相连的情况下,由于连续ARQ协议,接收方没有必要每一次都回应。比如,他收到第1到5条TCP报文段,只需回应第五条就行了。如果第3条TCP报文段被丢失了,所以尽管他收到了第4和5条,然而他只能回应第2条。发送方在发送了第三条以后,没能收到回应,因此当时钟过时时,他重发第三条。这次第三条被成功接收,接收方可以直接确认第5条,因为4,5两条已收到。然后所说的情况,比如传送方发送了5条TCP报文段,而接收方在接收到第3条报文段的时候发送出的确认报文丢失了,但是之后接收完全部5条报文段的时候又发出了一个对第5条的确认报文,那么发送方收到后就能够知道接收方已经成功收到了全部的5条TCP报文段,因此不会再去重传。5—30设TCP使用的最大窗口为65535字节,而传输信道不产生差错,带宽也不受限制。若报文段的平均往返时延为20ms,问所能得到的最大吞吐量是多少?答:在发送时延可忽略的情况下,最大数据率=最大窗口*8/平均往返时间=65535*8/20ms=26.2Mb/s。5—33假定TCP在开始建立连接时,发送方设定超时重传时间是RTO=6s。(1)当发送方接到对方的连接确认报文段时,测量出RTT样本值为1.5s。试计算现在的RTO值。(2)当发送方发送数据报文段并接收到确认时,测量出RTT样本值为2.5s。试计算现在的RTO值。答:(1)据RFC2988建议,RTO=RTTs+4*RTTd。其中RTTd是RTTs的偏差加权均值。4初次测量时,RTTd(1)=RTT(1)/2;后续测量中,RTTd(i)=(1-Beta)*RTTd(i-1)+Beta*{RTTs-RTT(i)};Beta=1/4依题意,RTT(1)样本值为1.5秒,则RTTs(1)=RTT(1)=1.5sRTTd(1)=RTT(1)/2=0.75sRTO(1)=RTTs(1)+4RTTd(1)=1.5+4*0.75=4.5(s)(2)RTT(2)=2.5RTTs(1)=1.5sRTTd(1)=0.75sRTTd(2)=(1-Beta)*RTTd(1)+Beta*{RTTs(1)-RT(2)}=0.75*3/4+{1.5-2.5}/4=13/16RTO(2)=RTTs(1)+4RTTd(2)=1.5+4*13/16=4.75s5—35试计算一个包括5段链路的运输连接的单程端到端时延。5段链路程中有2段是卫星链路,有3段是广域网链路。每条卫星链路又由上行链路和下行链路两部分组成。可以取这两部分的传播时延之和为250ms。每一个广域网的范围为1500km,其传播时延可按150000km/s来计算。各数据链路速率为48kb/s,帧长为960位。答:5段链路的传播时延=250*2+(1500/150000)*3*1000=530ms5段链路的发送时延=960/(48*1000)*5*1000=100ms所以5段链路单程端到端时延=530+100=630ms5—41用TCP传送512字节的数据。设窗口为100字节,而TCP报文段每次也是传送100字节的数据。再设发送端和接收端的起始序号分别选为100和200,试画出类似于图5-31的工作示意图。从连接建立阶段到连接释放都要画上。答:55—44试以具体例子说明为什么一个运输连接可以有多种方式释放。可以设两个互相通信的用户分别连接在网络的两结点上。答:设A,B建立了运输连接。协议应考虑一下实际可能性:A或B故障,应设计超时机制,使对方退出,不至于死锁;A主动退出,B被动退出B主动退出,A被动退出5—46试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况。答:3次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。假定B给A发送一个连接请求分组,A收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A认为连接已经成功地建立了,可以开始发送数据分组。可是,B在A的应答分组在传输中被丢失的情况下,将不知道A是否已准备好,不知道A建议什么样的序列号,B甚至怀疑A是否收到自己的连接请求分组,在这种情况下,B认为连接还未建立成功,将忽略A发来的任何数据分组,只等待连接6确认应答分组。而A发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
本文标题:运输层作业
链接地址:https://www.777doc.com/doc-2000277 .html