跳转至

运输层

1、设计传输层的目的是弥补通信子网服务的不足,提高传输服务的可靠性和保证(D)。

A. 安全性

B. 进程通信

C. 保密性

D. 服务质量QoS

2、TCP使用了4种计时器:重传计时器、坚持计时器、保持计时器和(B)。

A. 延迟计时器

B. 时间等待计时器

C. 端口计时器

D. 服务时间计时器

分析:

**TCP共使用以下四种计时器,即重传计时器、坚持计时器、保活计时器和时间等待计时器。**这几个计时器的主要特点如下:

1 重传计时器

**当TCP发送报文段时,就创建该特定报文段的重传计时器。**可能发生两种情况:

(1)若在计时器截止时间到(通常是60秒)之前收到了对此特定报文段的确认,则撤销此计时器。

(2)若在收到了对此特定报文段的确认之前计时器截止期到,则重传此报文段,并将计时器复位。

2 坚持计时器

为了对付零窗口大小通知,TCP需要另一个计时器。假定接收TCP宣布了窗口大小为零。发送TCP就停止传送报文段,直到接收TCP发送确认并宣布一个非零的窗口大小。但这个确认可能会丢失。我们知道在TCP中,对确认是不需要发送确认的。若确认丢失了,接收TCP并不知道,而是会认为它已经完成任务了,并等待着发送TCP接着会发送更多的报文段。但发送TCP由于没有收到确认,就等待对方发送确认来通知窗口的大小。双方的TCP都在永远地等待着对方。

要打开这种死锁,TCP为每一个连接使用一个坚持计时器。 当发送TCP收到一个窗口大小为零的确认时,就启动坚持计时器 。 当坚持计时器期限到时,发送TCP就发送一个特殊的报文段, 叫做 探测报文段 。这个报文段只有一个字节的数据。它有一个序号,但它的序号永远不需要确认;甚至在计算对其他部分的数据的确认时该序号也被忽略。探测报文段提醒对端:确认已丢失,必须重传。

坚持计时器的值设置为重传时间的数值。但是,若没有收到从接收端来的响应,则需发送另一个探测报文段,并将坚持计时器的值加倍和复位。发送端继续发送探测报文段,将坚持计时器设定的值加倍和复位,直到这个值增大到门限值( 通常是60秒 )为止。在这以后,发送端每隔60秒就发送一个探测报文段,直到窗口重新打开。

3 保活计时器

保活计时器使用在某些实现中,用来防止在两个TCP之间的连接出现长时期的空闲。假定客户打开了到服务器的连接,传送了一些数据,然后就保持静默了。也许这个客户出故障了。在这种情况下,这个连接将永远地处理打开状态。

要解决这种问题,在大多数的实现中都是使服务器设置保活计时器。每当服务器收到客户的信息,就将计时器复位。保活计时器 通常设置为2小时 。若服务器过了2小时还没有收到客户的信息,它就发送探测报文段。若发送了10个探测报文段(每一个相隔75秒)还没有响应,就假定客户出了故障,因而就终止该连接。

4 时间等待计时器

时间等待计时器是在连接终止期间使用的 。当TCP关闭一个连接时,它并不认为这个连接马上就真正地关闭了。在时间等待期间中,连接还处于一种中间过渡状态。这就可以使重复的FIN报文段(如果有的话)可以到达目的站因而可将其丢弃。这个计时器的值 通常设置为一个报文段的寿命期待值的两倍 。

3、主机甲和主机乙建立一个TCP连接,TCP是大段长度为1000字节,若主机甲的当前拥塞窗口为4000字节,在主机甲向主机乙连续发送2个最大段后,成功收到主机乙发送的第一段的确认段,确认段中通告的接收窗口大小为2000字节,则此主机甲还可以向主机乙发送的最大字节数是(A)。

A. 1000

B. 2000

C. 3000

D. 4000

分析:

发送方发送窗口的上限值应该取接收窗口和拥塞窗口这两个值中较小的一个,于是此时发送方的发送窗口为min{4000,2000}=2000字节,由于发送方还没有收到第二个最大段的确认,所以此时主机甲还可以向主机乙发送的最大字节数为2000-1000=1000字节。

4、考虑到进程标识和多重协议的识别,网络环境中进程通信是要涉及到两个不同主机的进程,因此一个完整的进程通信标识需要一个(D)来表示。

A. 半相关

B. 三元组

C. 套接字

D. 五元组

5、传输层的作用是向源主机与目的主机进程之间提供(C)的数据传输。

A. 点到点

B. 点到多点

C. 端到端

D. 多端口之间

6、UDP端口号分为三类,即熟知端口号、注册端口号和(D)。

A. 永久端口号

B. 确认端口号

C. 客户端口号

D. 临时端口号

7、将个人计算机通过Modem接入Internet需要安装以下哪些协议?(C)

A. HTTP

B. FTP

C. TCP/IP和PPP

D. E-mail

8、TCP/IP协议是一种开放的协议标准,下列哪个不是它的特点?(C)

A. 独立于特定计算机硬件和操作系统

B. 统一编址方案

C. 政府标准

D. 标准化的高层协议

9、服务器控制着网络共享的资源,具有更高的权限,它要完成用户合法身份的识别,资源访问的管理,因此服务器的(A)也就显得格外的重要。

A. 安全性

B. 性能

C. 配置

D. 通信能力

10、在TCP/IP协议族中,应用层的各种服务是建立在传输层提供服务的基础上。下列哪组协议需要使用传输层的TCP 协议建立连接?(B)

A. DNS DHCP FTP

B. TELNET SMTP HTTP

C. BOOTP FTP TELNET

D. SMTP FTP TFTP

分析:

DNS 、RIP(路由选择协议)、DHCP(动态主机配置协议) 、TFTP(简单文件传送协议)均使用运输层UDP协议,UDP服务不需要建立连接。

11、在Internet上,计算机通信的基础构筑块是:(C)

A. 端口

B. 服务器

C. 套接口

D. 分组

12、计算机网络最本质的活动是分布在不同地理位置的主机之间的(C)。

A. 数据交换

B. 网络连接

C. 进程通信

D. 网络服务

13、下列哪项不是UDP协议的特性?(A)

A. 提供可靠服务

B. 提供无连接服务

C. 提供端到端服务

D. 提供全双工服务

14、TCP协议规定HTTP(C)进程的端口号为80。

A. 客户

B. 分布

C. 服务器

D. 主机

15、在UNIX Socket调用中,Accept()调用是为(C)的传输服务设计的。

A. 无连接

B. 无连接或面向连接

C. 面向连接

D. 可靠

16、某个应用进程使用运输层的用户数据报UDP,然而继续向下交给IP层后,又封装成IP数据报。既然都是数据报,可否跳过UDP而直接交给IP层?哪些功能UDP提供了但IP没提供?

答:

不可跳过UDP而直接交给IP层。IP数据报承担主机寻址,提供报头检错,只能找到目的主机而无法找到目的进程。UDP提供对应用进程的复用和分用功能,以及提供对数据差分的差错检验。

17、假设TCP的拥塞窗口被设置为18KB,并且出现了一个超时。如果接下来的4次传输全部成功的话,则接收窗口将是多大?假设最大数据段长度为1KB。

分析:

在TCP的慢启动拥塞控制算法中,除了使用慢启动的接收窗口和拥塞窗口外,还使用

了第3个参数,阈值(常规情况下,初始值为 64KB)。当发生超时时,阈值=当前拥塞窗口值的一半,而拥塞窗口则重新=1个最大TCP报文。

阈值的作用是,发送窗口 <= 阈值,则发送窗口=拥塞窗口以指数方式增长;

发送窗口 > 阈值,则发送窗口=拥塞窗口以线性方式增长。

答:

发生超时,则阈值=发生超时时拥塞窗口值/2=18KB/2=9KB;

拥塞窗口=1 个 TCP 报文=1KB。

重新发送,

第1次, 发送窗口=1KB,得到确认后拥塞窗口=2KB;

第2次, 发送窗口=2KB,得到确认后拥塞窗口=4KB;

第3次, 发送窗口=4KB,得到确认后拥塞窗口=8KB;

第4次, 发送窗口=8KB,得到确认后拥塞窗口=9KB;

则 4 次发送后,窗口=8KB。

18、一个TCP连接下面使用256kb/s的链路,其端到端时延为128ms。经测试,发现吞吐量只有120kb/s。试问发送窗口W是多少?(提示:可以有两种答案,取决于接收等发出确认的时机)。

答:

此题分两种情况:

①B接收到A的信息就给A确认,不算发送数据报时间:

公式:吞吐量=W / (端到端延时 * 2),代入数据得:8 * W / (0.128s * 2) = 120kb/s,故发送窗口W= 3840字节

②B接收完整的A发送的信息再给A确认,需要计算发送数据报的时间:

公式:吞吐量=W / [ (端到端延时 * 2 + (W / 传输速度) ],其中W / 传输速度为传输数据报的时间,代入数据得:8 * W / (0.128s * 2 + (W / 256kb/s)) = 120kb/s,故发送窗口W= 7228字节。

19、想象用两步握手过程而不是三步握手过程来建立连接。换句话说,第三个消息不再需要了。现在有可能出现死锁吗?请给出一个例子,或者证明死锁不存在。

答:

死锁是有可能的。例如,一个分组到达A,A确认了它。但是如果确认在传输途中丢失了, A现在将是打开的,而B一点儿也不知道发生了什么。现在同样的事情将发生在B身上, B是打开的,但正期待着A送回的不同的序列号。因此,必需引入超时来避免这种死锁。

20、有一长为2000公里的千兆位光纤,请问接收方至少开辟多大的缓冲区才能使信息保持全速发送(使用滑动窗口协议)?信号在光纤中传送速度为200 000km/s。

答:

双向传输延迟时间 = (2 * 2000km) / (200000km/s) = 20ms

带宽延迟乘积 = 1Gb/s * 20ms = 20Mbit = 2.5MB

接收方至少开辟2.5M的缓冲区才能使信息保持全速发送。

21、设TCP使用的最大窗口为65535字节,而传输信道不产生差错,带宽也不受限制。若报文段的平均往返时延为20ms,问所能得到的最大吞吐量是多少?

答:

在发送时延可忽略的情况下,最大数据率=最大窗口*8/平均往返时间=26.2Mb/s。

22、如果TCP往返时间RTT当前是30ms,接下来的确认分别为26、32和24ms之后到达,那么,若使用Jacobson算法,新的RTT估计值为多少?请使用a=0.9。

答:

RTT = α * RTT + (1 - α) * M

D = α * D + (1 - α) |RTT - M |

Timeout = RTT + 4 * D

接下来的三次估计值分别为29.6,29.84,29.256ms

23、已知第一次测得TCP的往返时延的当前值是30 ms。现在收到了三个接连的确认报文段,它们比相应的数据报文段的发送时间分别滞后的时间是:26ms,32ms和24ms。设α=0.9。试计算每一次的新的加权平均往返时间值RTTs。讨论所得出的结果。

答:

根据公式RTT = α * RTT + (1 - α) * M

α = 0.9,RTT0 = 30ms

故有:

RTT1 = α * RTT0 + (1 - α) * M0 = 0.9 * 30ms + 0.1 * 26ms = 29.6ms

RTT2 = α * RTT1 + (1 - α) * M1 = 0.9 * 29.6ms + 0.1 * 32ms = 29.84ms

RTT3 = α * RTT2 + (1 - α) * M2 = 0.9 * 29.84ms + 0.1 * 24ms = 29.256ms

因此三次的加权平均往返时间值RTT分别为29.6ms,29.84ms,29.256ms。可以看出RTT的样本值变化多达20%时,加权平均往返。

24、解释为什么突然释放运输连接就可能会丢失用户数据,而使用TCP的连接释放方法就可保证不丢失数据。

答:

当主机1 和主机2 之间连接建立后,主机1 发送了一个TCP 数据段并正确抵达主机2,接着主机1 发送另一个TCP数据段,这次很不幸,主机2 在收到第二个TCP 数据段之前发出了释放连接请求,如果就这样突然释放连接,显然主机1发送的第二个TCP 报文段会丢失。

而使用TCP 的连接释放方法,主机2 发出了释放连接的请求,那么即使收到主机1 的确认后,只会释放主机2 到主机1 方向的连接,即主机2 不再向主机1 发送数据,而仍然可接受主机1 发来的数据,所以可保证不丢失数据。

25、一个客户向服务器请求建立TCP连接。客户在TCP连接建立的三次握手中的最后一个报文段中捎带上一些数据,请求服务器发送一个长度为L字节的文件。假定:

(1)客户和服务器之间的数据传输速率是R字节/秒,客户与服务器之间的往返时间是RTT(固定值)。

(2)服务器发送的TCP报文段的长度都是M字节,而发送窗口大小是nM字节。

(3)所有传送的报文段都不会出错(无重传),客户收到服务器发来的报文段后就及时发送确认。

(4)所有的协议首部开销都可忽略,所有确认报文段和连接建立阶段的报文段的长度都可忽略(即忽略这些报文段的发送时间)。试证明,从客户开始发起连接建立到接收服务器发送的整个文件多需的时间T是:

T=2RTT+L/R 当nM>R(RTT)+M

或 T=2RTT+L/R+(K-1)[M/R+RTT-nM/R] 当nM<R(RTT)+M

其中,K=[L/nM],符号[x]表示若x不是整数,则把x的整数部分加1。

答:

从客户端发送TCP连接请求到客户端收到第一个报文段所需的时间的为2RTT。

(1)当nM>R(RTT)+M时,由于发送窗口较大,可以连续把文件发送完,相当于连续的发送每一个报文段。服务器发送整个文件的时间为L / R,因此T=2RTT+L/R

(2)当nM<R(RTT)+M时,由于发送窗口较小,发送完一个窗口内的报文段后,因为还没有收到确认,必须停下等待确认。

文件的长度为L,可以被分为的窗口数为K,若不能整除,最后一个窗口的长度为(L - (K - 1)nM):前(K - 1)个窗口每个窗口的发送时间等于一个往返时延和下一个窗口中第一个报文段的发送时间的加和,为RTT + M / R;最后一个窗口的发送时间为[L - (K - 1)nM] / R。

总的发送时间为:

T = 2RTT + (K - 1)(RTT + M / R) + [L - (K - 1)nM] / R = 2RTT + L / R + (K - 1)(RTT + M/R - nM / R)

综上所述,从客户开始发起连接建立到接收服务器发送的整个文件多需的时间T是:

T=2RTT+L/R ,当nM>R(RTT)+M

或 T=2RTT+L/R+(K-1)[M/R+RTT-nM/R] ,当nM<R(RTT)+M

其中,K=[L/nM],符号[x]表示若x不是整数,则把x的整数部分加1。

26、TCP协议通过那些差错检测和纠正方法来保证传输的可靠性?

答:

TCP协议支持数据报传输可靠性的主要方法是确认、超时、重传、校验和以及流量控制。

(1)校验和——每个TCP报文段都包括检验和字段,校验和用来检查报文段是否出现传输错误,如果报文段出现传输错误,TCP检查出错就丢弃该报文段。

(2)确认——接收端检查报文是否出错,发现出错时就丢弃,不发确认;而发送端TCP就通过检查接收端的确认,判断发送的报文段是否已经正确到达目的地。

(3)超时——发送端根据发出的报文段在超时规定的时间内是否收到确认,从而来判断该报文段是否丢失或传输出错。TCP使用了4种计时器:重传计时器、坚持计时器、保持计时器和时间等待计时器来保证了传输的可靠性。

27、数据链路层和传输层都要进行流量控制,试比较之两者之间有什么异同?

28、在使用TCP协议的T3线路(44.736Mb/s)上传输数据,如果来回传输的延迟为50ms,请计算TCP滑动窗口大小字段分别为16位和32位时该线路上的利用率。

答:

当滑动窗口大小字段为16位时,接收端一次最多可接收的数据为216字节。

(216 * 8) / (44.736 * 106) = 12ms,利用率 = 12 / 50 = 0.24。

当滑动窗口大小字段为32位时,接收端一次最多可接收的数据为232字节。

(232 * 8) / (44.736 * 106) = 715s > 50ms,利用率为1。