1、传输层及答案解析(总分:256.00,做题时间:90 分钟)一、单项选择题(总题数:18,分数:36.00)1.在 OSI 参考模型中,运输层的数据服务单元是( )。(分数:2.00)A.分组B.报文C.帧D.比特序列2.如果网络内部使用数据报,那么( )。(分数:2.00)A.仅在建立时作一次路由选择B.为每个到来的分组作路由选择C.仅在网络拥塞时作新的路由选择D.不必作路由选择3.下面( )协议不是面向连接的 TCP 协议。(分数:2.00)A.SMTPB.HTTPC.DNSD.TELNET4.数据链路层的 HDLC 协议和传输层的 TCP 协议都使用滑动窗口技术。从这方面来进行比较,数据
2、链路层协议和传输层协议的主要区别是( )。(分数:2.00)A.传输层的 TCP 协议是端到端(进程到进程)的协议,而数据链路层的 HDLC 协议则是仅在一段链路上的结点到结点的协议。B.TCP 的窗口机制和 HDLC 的也有许多区别。如 TCP 是按数据部分的字节数进行确认,而 HDLC 则是以帧为确认的单位。C.以上两种说法都正确D.以上两种说法都不正确5.糊涂窗口综合症产生的条件是( )。(分数:2.00)A.当发送应用程序产生数据很慢时产生B.接收应用程序吸收数据很慢产生C.当发送应用程序产生数据很慢时或者接收应用程序吸收数据很慢时产生D.以上说法都不正确6.若从滑动窗口的观点来看,连
3、续 ARQ 协议的窗口大小为( )。(分数:2.00)A.发送窗口=1,接收窗口=1B.发送窗口1,接收窗口=1C.发送窗口=1,接收窗口1D.发送窗口1,接收窗口l7.是否 TCP 和 UDP 都需要计算往返时间 RTT( )?(分数:2.00)A.TCP 需要计算往返时间 RTTB.UDP 需要计算往返时间 RTTC.TCP 和 UDP 都需要计算往返时间 RTTD.TCP 和 UDP 都不需要计算往返时间 RTT8.在滑动窗口协议中,帧的编号为 3bit,发送窗口的最大值为( )。(分数:2.00)A.3B.4C.7D.89.TCP 都使用哪些计时器( )?(分数:2.00)A.计数计时
4、器、持续计时器、保活计时器和时间等待计时器B.重传计时器、持续计时器、保活计时器和时间等待计时器C.重传计时器、间隔计时器、保活计时器和时间等待计时器D.重传计时器、持续计时器、生成计时器和时间等待计时器10.在 TCP 报文段的首部中只有端口号而没有 IP 地址,当 TCP 将其报文段交给 IP 层时,IP 协议怎样知道目的 IP 地址呢( )?(分数:2.00)A.从 IP 地址填写在 IP 数据报的首部中获取B.从 IP 地址填写在 IP 数据报的数据段中获取C.以上两种说法都正确D.以上两种说法都不正确11.7.What is invalid value of TCP code bit
5、 field in following( )?(分数:2.00)A.4B.3C.2D.112.以下几种安全隧道协议中,( )是不属于第二层的隧道协议(分数:2.00)A.PPTPB.L2FC.IPsecD.L2TP13.在下面差错控制方式中,( )只会重新传输出错的数据帧。(分数:2.00)A.连续工作B.停止等待C.选择重发D.拉回14.Which of the following protocols uses UDP for transport layer services( )?(分数:2.00)A.SMTPB.HTTPC.RIPD.FTP15.在无线局域网(802.11)的退避机制中,
6、下面哪种情况不使用退避算法( )?(分数:2.00)A.检测到信道是空闲的,并且这个数据帧是要发送的第一个数据帧;B.在发送第一个帧之前检测到信道处于忙态;C.在每一次的重传后;D.在每一次的成功发送后。16.TCP 的滑动窗口,4 次成功发送后,窗口阈值为多少( )。(分数:2.00)A.4B.8C.9D.1617.TCP/IP 网络类型中,提供端到端的通信的是( )。(分数:2.00)A.应用层B.传输层C.网络层D.网络接口层18.两个相邻的结点 A、B,通过后退 N 帧 ARQ 协议通信,帧编号为 3bit,发送窗口的大小为 5,A 开始连续发送了 0、1、2、3 四个数据帧,收到了编
7、号为 3 的应答,请问 A 的窗口前沿滑动到哪里?此时 A 可以连续发送哪几个的数据帧而不必等应答?以下哪个说法是正确的( )?(分数:2.00)A.窗口的前沿滑动到编号为 6 的数据帧。A 可连续发送 3、4、5、6。B.窗口的前沿滑动到编号为 6 的数据帧。A 可连续发送 4、5、6、7。C.窗口的前沿滑动到编号为 7 的数据帧。A 可连续发送 3、4、5、6。D.窗口的前沿滑动到编号为 7 的数据帧。A 可连续发送 4、5、6、7。二、综合应用题(总题数:22,分数:220.00)19.下图是慢开始和拥塞避免算法的实现举例,请简要叙述慢开始算法的原理、“乘法减小”与“加法增大”的思想。(
8、分数:10.00)_20.TCP 协议是面向连接的,但 TCP 使用的 IP 协议却是无连接的。这两种协议都有哪些主要的区别?(分数:10.00)_21.从通信的起点和终点来比较,TCP 和 IP 的不同点是什么?(分数:10.00)_22.TCP 协议能够实现可靠的端到端传输,在数据链路层和网络层的传输还有没有必要来保证可靠传输呢?(分数:10.00)_23.简要说明网络中的阻塞及死锁现象,试列举常见的三种阻塞控制方法。具体解释发生于 AB 两个节点间的直接存储转发死锁现象。(分数:10.00)_24.造成网络拥塞的原因是什么?(分数:10.00)_25.简述 TCP 终止连接过程的四向握手
9、法。(分数:10.00)_26.TCP 都使用哪些计时器?(分数:10.00)_27.为什么 TCP 在建立连接时不能每次都选择相同的、固定的初始序号?(分数:10.00)_28.TCP 连接很像一条连接发送端和接收端的双向管道。当 TCP 在连续发送报文段时,若要管道得到充分的利用,则发送窗口的大小应怎样选择?(分数:10.00)_29.假定在一个互联网中,所有的链路的传输都不出现差错,所有的结点也都不会发生故障。试问在这种情况下,TCP 的“可靠交付”的功能是否就是多余的?(分数:10.00)_30.能否更详细些讨论一下糊涂窗口综合症及其解决方法?(分数:10.00)_31.能否利用 TC
10、P 发送端和接收端交换报文段的图来说明慢开始的特点?(分数:10.00)_32.对于拥塞避免是否也能够用发送端和接收端交换的报文段来说明其工作原理?(分数:10.00)_33.试从以下方面比较数据报服务和虚电路服务的区别。(1)连接的建立(2)目的站的地址(3)分组的顺序(分数:10.00)_34.简要说明数据报服务的特点(分数:10.00)_35.TCP 协议是面向连接的,但 TCP 使用的 IP 协议却是无连接的。这两种协议都有哪些主要的区别?(分数:10.00)_36.端口(port)和套接字(socket)的区别是什么?(分数:10.00)_37.在 TCP 传送数据时,有没有规定一个
11、最大重传次数?(分数:10.00)_38.是否 TCP 和 UDP 都需要计算往返时间 RTT?(分数:10.00)_39.糊涂窗口综合症产生的条件是什么?是否只有在接收方才产生这种症状?(分数:10.00)_40.TCP 是通信协议还是软件?(分数:10.00)_传输层答案解析(总分:256.00,做题时间:90 分钟)一、单项选择题(总题数:18,分数:36.00)1.在 OSI 参考模型中,运输层的数据服务单元是( )。(分数:2.00)A.分组B.报文 C.帧D.比特序列解析:2.如果网络内部使用数据报,那么( )。(分数:2.00)A.仅在建立时作一次路由选择B.为每个到来的分组作路
12、由选择 C.仅在网络拥塞时作新的路由选择D.不必作路由选择解析:3.下面( )协议不是面向连接的 TCP 协议。(分数:2.00)A.SMTPB.HTTPC.DNS D.TELNET解析:4.数据链路层的 HDLC 协议和传输层的 TCP 协议都使用滑动窗口技术。从这方面来进行比较,数据链路层协议和传输层协议的主要区别是( )。(分数:2.00)A.传输层的 TCP 协议是端到端(进程到进程)的协议,而数据链路层的 HDLC 协议则是仅在一段链路上的结点到结点的协议。B.TCP 的窗口机制和 HDLC 的也有许多区别。如 TCP 是按数据部分的字节数进行确认,而 HDLC 则是以帧为确认的单位
13、。C.以上两种说法都正确 D.以上两种说法都不正确解析:5.糊涂窗口综合症产生的条件是( )。(分数:2.00)A.当发送应用程序产生数据很慢时产生B.接收应用程序吸收数据很慢产生C.当发送应用程序产生数据很慢时或者接收应用程序吸收数据很慢时产生 D.以上说法都不正确解析:6.若从滑动窗口的观点来看,连续 ARQ 协议的窗口大小为( )。(分数:2.00)A.发送窗口=1,接收窗口=1B.发送窗口1,接收窗口=1 C.发送窗口=1,接收窗口1D.发送窗口1,接收窗口l解析:7.是否 TCP 和 UDP 都需要计算往返时间 RTT( )?(分数:2.00)A.TCP 需要计算往返时间 RTT B
14、.UDP 需要计算往返时间 RTTC.TCP 和 UDP 都需要计算往返时间 RTTD.TCP 和 UDP 都不需要计算往返时间 RTT解析:8.在滑动窗口协议中,帧的编号为 3bit,发送窗口的最大值为( )。(分数:2.00)A.3B.4C.7 D.8解析:9.TCP 都使用哪些计时器( )?(分数:2.00)A.计数计时器、持续计时器、保活计时器和时间等待计时器B.重传计时器、持续计时器、保活计时器和时间等待计时器 C.重传计时器、间隔计时器、保活计时器和时间等待计时器D.重传计时器、持续计时器、生成计时器和时间等待计时器解析:10.在 TCP 报文段的首部中只有端口号而没有 IP 地址
15、,当 TCP 将其报文段交给 IP 层时,IP 协议怎样知道目的 IP 地址呢( )?(分数:2.00)A.从 IP 地址填写在 IP 数据报的首部中获取 B.从 IP 地址填写在 IP 数据报的数据段中获取C.以上两种说法都正确D.以上两种说法都不正确解析:11.7.What is invalid value of TCP code bit field in following( )?(分数:2.00)A.4B.3 C.2D.1解析:12.以下几种安全隧道协议中,( )是不属于第二层的隧道协议(分数:2.00)A.PPTPB.L2FC.IPsec D.L2TP解析:13.在下面差错控制方式中
16、,( )只会重新传输出错的数据帧。(分数:2.00)A.连续工作B.停止等待C.选择重发 D.拉回解析:14.Which of the following protocols uses UDP for transport layer services( )?(分数:2.00)A.SMTPB.HTTPC.RIP D.FTP解析:15.在无线局域网(802.11)的退避机制中,下面哪种情况不使用退避算法( )?(分数:2.00)A.检测到信道是空闲的,并且这个数据帧是要发送的第一个数据帧; B.在发送第一个帧之前检测到信道处于忙态;C.在每一次的重传后;D.在每一次的成功发送后。解析:16.TCP
17、 的滑动窗口,4 次成功发送后,窗口阈值为多少( )。(分数:2.00)A.4B.8C.9D.16 解析:17.TCP/IP 网络类型中,提供端到端的通信的是( )。(分数:2.00)A.应用层B.传输层 C.网络层D.网络接口层解析:18.两个相邻的结点 A、B,通过后退 N 帧 ARQ 协议通信,帧编号为 3bit,发送窗口的大小为 5,A 开始连续发送了 0、1、2、3 四个数据帧,收到了编号为 3 的应答,请问 A 的窗口前沿滑动到哪里?此时 A 可以连续发送哪几个的数据帧而不必等应答?以下哪个说法是正确的( )?(分数:2.00)A.窗口的前沿滑动到编号为 6 的数据帧。A 可连续发
18、送 3、4、5、6。B.窗口的前沿滑动到编号为 6 的数据帧。A 可连续发送 4、5、6、7。C.窗口的前沿滑动到编号为 7 的数据帧。A 可连续发送 3、4、5、6。D.窗口的前沿滑动到编号为 7 的数据帧。A 可连续发送 4、5、6、7。 解析:二、综合应用题(总题数:22,分数:220.00)19.下图是慢开始和拥塞避免算法的实现举例,请简要叙述慢开始算法的原理、“乘法减小”与“加法增大”的思想。(分数:10.00)_正确答案:(慢开始算法的原理:在主机刚刚开始发送报文段时可先将拥塞窗口 cwnd 设置为一个最大报文段 MSS 的数值。在每收到一个对新的报文段的确认后,将拥塞窗口增加至多
19、一个 MSS 的数值。用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。“乘法减小“是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值 ssthresh 设置为当前的拥塞窗口值乘以 0.5。当网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入到网络中的分组数。“加法增大”是指执行拥塞避免算法后,当收到对所有报文段的确认就将拥塞窗口 cwnd 增加一个 MSS 大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。)解析:20.TCP 协议是面向连接的,但 TCP 使用的 IP 协议却是无连接的。这两种协
20、议都有哪些主要的区别?(分数:10.00)_正确答案:(TCP 是面向连接的,但 TCP 所使用的网络则可以是面向连接的(如 X.25 网络),但也可以是无连接的(如现在大量使用的 IP 网络)。选择无连接网络就使得整个的系统非常灵活,当然也带来了一些问题。下面是 TCP 和 IP 向上提供的功能和服务的比较。TCP 提供的 IP 提供的面向连接服务字节流接口有流量控制有拥塞控制保证可靠性无丢失无重复按序交付无连接服务IP 数据报接口无流量控制无拥塞控制不保证可靠性可能丢失可能重复可能失序显然,TCP 提供的功能和服务要比 IP 所能提供的多得多。这是因为 TCP 使用了诸如确认、窗口通知、计
21、时器等机制,因而可以检测出有差错的报文、重复的报文和失序的报文。)解析:21.从通信的起点和终点来比较,TCP 和 IP 的不同点是什么?(分数:10.00)_正确答案:(用下面的图就可说明。进程 A 和进程 B 的通信是使用面向连接的 TcP 提供的可靠的传输。主机 x 和主机 Y 的通信是使用无连接的 IP 提供的不可靠的传输。对 TCP 来说,通信的起点和终点是传输层上面的两个套接字(socket),而应用层的应用进程正是通过应用层和传输层之间的套接字来使用 TCP 提供的服务,TCP 协议根据报文段首部中的端口号找到目的端口,将报文段交付给目的进程,套接字是由 IP 地址和端口号决定的
22、,套接字也可称为“插口”。对 IP 来说,通信的起点和终点是连接在网络上的两个主机。IP 协议根据数据报首部中的目的 IP 地址找到目的主机,将数据报交付给目的主机。*可靠传输的范围和不可靠传输的范围是不同的。虽然在两个套接字之间的通信是面向连接的,但 IP 数据报在下面的网络中传输时是独立地选择路由,而不是沿着某一条固定的路径传输,然而在上面的端口看来,TCP 报文段好像都是从一个虚拟的、可靠的通信管道中传输到对方的端口。)解析:22.TCP 协议能够实现可靠的端到端传输,在数据链路层和网络层的传输还有没有必要来保证可靠传输呢?(分数:10.00)_正确答案:(在旧的 OSI 体系中,在数据
23、链路层使用 HDLC 协议而在网络层使用 x25 协议,这些协议都有确认机制和窗口机制,因而能够保证可靠传输。但是技术的进步使得链路的传输已经相当可靠了,因此在数据链路层和网络层重复地保证可靠传输就显得多余了。现在因特网在链路层使用的 PPP 协议和在网络层使用的 IP 协议都没有确认机制和窗口机制。如果出现差错就由传输层的 TCP 来处理(若使用 UDP 协议则传输层也不处理出错的问题)。)解析:23.简要说明网络中的阻塞及死锁现象,试列举常见的三种阻塞控制方法。具体解释发生于 AB 两个节点间的直接存储转发死锁现象。(分数:10.00)_正确答案:(阻塞现象是指到达通信子网中某一部分的分组
24、数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象;严重时甚至导致网络通信业务陷入停顿,即出现死锁现象。在死锁状态下,网络的有效吞吐量接近于零。常见的阻塞控制方法为:缓冲区预分配法;分组丢弃法;定额控制法。发生于 A.B 两个节点间的直接存储转发死锁表现为:A 节点的所有缓冲区装满了等待输出到 B 节点的分组;而 B 节点的所有缓冲区也全部装满了等待输出到 A 节点的分组;此时,A 节点不能从 B 节点接收分组,B节点也不能从 A 节点接收分组,从而造成两节点间的死锁。)解析:24.造成网络拥塞的原因是什么?(分数:10.00)_正确答案:(存储空间不足:当 n 个第
25、三层 PDU 从几个方向到达路由器并都从一个接口输出时,若输出缓冲区空间只能存储 n-1 个 PDU,那么就会有一个 PDU 被丢弃。处理器速度慢:如果路由器 CPU 的处理速度太慢,即使到来的 PDU 数量不太大,也可能导致存储空间溢出。链路带宽低:尽管存储空间和 CPU 的指标很高,但如果输出链路的带宽相对过低,也会导致部分 PDU 不能被及时转发。)解析:25.简述 TCP 终止连接过程的四向握手法。(分数:10.00)_正确答案:(第 1 步:发送方 TCP 发送 FIN 报文段。第 2 步:接收方 TCP 收到 FIN 报文段后发送 ACK 报文段,其确认号是 FIN 报文段序号+1
26、。第 3 步:接收方 TCP 继续向发送方发送剩余的数据直至发送完毕,然后发送 FIN 报文段。第 4 步:发送方发送 ACK 报文段证实从接收方收到了 FIN 报文段。ACK 报文段的确认号=FIN 报文段序号+1。)解析:26.TCP 都使用哪些计时器?(分数:10.00)_正确答案:(TCP 共使用以下四种计时器,即重传计时器、持续计时器、保活计时器和时间等待计时器。这几个计时器的主要特点如下:重传计时器:当 TCP 发送报文段时,就创建该特定报文段的重传计时器。可能发生两种情况:若在计时器截止时间到之前收到了对此特定报文段的确认,则撤销此计时器。若在收到了对此特定报文段的确认之前计时器
27、截止期到,则重传此报文段,并将计时器复位。持续计时器:为了对付零窗口大小通知,TCP 需要另一个计时器。假定接收 TCP 宣布了窗口大小为零。发送 TCP 就停止传送报文段,直到接收 TCP 发送确认并宣布一个非零的窗口大小。但这个确认可能会丢失。我们知道在 TCP 中,对确认是不需要发送确认的。若确认丢失了,接收 TCP 并不知道,而是会认为它已经完成任务了,并等待着发送 TCP 接着会发送更多的报文段。但发送 TCP 由于没有收到确认,就等待对方发送确认来通知窗口的大小,双方的 TCP 都在永远地等待着对方。要打开这种死锁,TCP 为每一个连接使用一个持续计时器。当发送 TcP 收到一个窗
28、口大小为零的确认时,就启动持续计时器。当持续计时器期限到时,发送 TCP 就发送一个特殊的报文段,叫做探测报文段。这个报文段只有一个字节的数据。它有一个序号,但它的序号永远不需要确认;甚至在计算对其他部分的数据的确认时该序号也被忽略。探测报文段提醒接收 TCP:确认已丢失,必须重传。持续计时器的值设置为重传时间的数值。但是,若没有收到从接收端来的响应,则需发送另一个探测报文段,并将持续计时器的值加倍和复位。发送端继续发送探测报文段,将持续计时器设定的值加倍和复位,直到这个值增大到门限值(通常是 60 秒)为止。在这以后,发送端每隔 60 秒就发送一个探测报文段,直到窗口重新打开。保活计时器:保
29、活计时器使用在某些实现中,用来防止在两个 TCP 之间的连接出现长时期的空闲。假定客户打开了到服务器的连接,传送了一些数据,然后就保持静默了。也许这个客户出故障了。在这种情况下,这个连接将永远地处理打开状态。要解决这种问题,在大多数的实现中都是使服务器设置保活计时器。每当服务器收到客户的信息,就将计时器复位。超时通常设置为 2 小时。若服务器过了 2 小时还没有收到客户的信息,它就发送探测报文段。若发送了 10 个探测报文段(每一个相隔 75 秒)还没有响应,就假定客户出了故障,因而就终止该连接。时间等待计时器:时间等待计时器是在连接终止期间使用的。当 TCP 关闭一个连接时,它并不认为这个连
30、接马上就真正地关闭了,在时间等待期间中,连接还处于一种中间过渡状态。这就可以使重复的 FIN 报文段(如果有的话)可以到达目的站因而可将其丢弃,这个计时器的值通常设置为一个报文段的寿命期待值的两倍。)解析:27.为什么 TCP 在建立连接时不能每次都选择相同的、固定的初始序号?(分数:10.00)_正确答案:(如果 TCP 在建立连接时每次都选择相同的、固定的初始序号,那么设想以下的情况:(1)假定主机 A 和 B 频繁地建立连接,传送一些 TCP 报文段后,再释放连接,然后又不断地建立新的连接、传送报文段和释放连接。(2)假定每一次建立连接时,主机 A 都选择相同的、固定的初始序号,例如,选
31、择 1。(3)假定主机 A 发送出的某些 TCP 报文段在网络中会滞留较长的时间,以致造成主机 A 超时重传这些 TCP报文段。(4)假定有一些在网络中滞留时间较长的 TCP 报文段最后终于到达了主机 B,但这时传送该报文段的那个连接早已释放了而在到达主机 B 时的 TCP 连接是一条新的 TCP 连接。这样,工作在新的 TCP 连接下的主机 B 就有可能会接受在旧的连接传送的、已经没有意义的、过时的 TCP报文段(因为这个 TCP 报文段的序号有可能正好处在现在新的连接所使用的序号范围之中)。结果产生错误。因此,必须使得迟到的 TCP 报文段的序号不处在新的连接中所使用的序号范围之中。这样,
32、TCP 在建立新的连接时所选择的初始序号一定要和前面的一些连接所使用过的序号不一样。因此,不同的 TCP 连接不能使用相同的初始序号。)解析:28.TCP 连接很像一条连接发送端和接收端的双向管道。当 TCP 在连续发送报文段时,若要管道得到充分的利用,则发送窗口的大小应怎样选择?(分数:10.00)_正确答案:(我们可以用下面的图来说明这一问题。图中在发送端和接收端之间的两个白色长条表示 TCP 全双工通信的发送管道和接收管道。管道是对信道的一种抽象,便于讨论问题(可以不涉及下层互连网络的细节)。假定在 t=0 时发送端使用慢开始算法来发送报文段,因此在 t=0 时只能发送一个报文段(图中标
33、有 1 的绿色长方条就代表报文段 1)。图中的时间都是按离散的时间单位表示。为简化分析,我们还假定,发送窗口仅由发送端的拥塞窗口来确定,接收端不对发送窗口加以限制。*假定在 t=1 时,报文段 1 的第一个比特正好走完四分之一的管道,同时该报文段的最后一个比特正好发送完毕。t=4,报文段 1 的前沿到达接收端。t=5 时,接收端将报文段 1 接收完毕。假定接收端立即发送确认报文段。我们所用的标记是:对报文段 n 的确认报文段我们用具有标记 n 的红色小长方条表示。t=9,对报文段 1 的确认的前沿到达发送端。t=10,发送端将发送窗口加 1 变为 2(可以发送报文段 2 和 3),并开始发送报
34、文段 2(这一步图中省略了,没有画出)。t=11,报文段 2 走完发送管道的四分之一,发送端开始发送报文段 3。t=12,报文段 2 和 3 填满发送管道的一半。t=14,报文段 2 的前沿到达接收端。t=15,接收端收完报文段 2,并发送对报文段 2 的确认。t=16,接收端收完报文段 3,并发送对报文段 3 的确认。t=19,对报文段 2 的确认前沿传播到发送端。t=20,发送端收到对报文段 2 的确认,将发送窗口加 1 变为 3(可以发送报文段 4,5 和 6),并开始发送报文段 4(这一步图中省略了,没有画出)。对报文段 3 的确认的前沿也在这个时间传播到发送端。再以后的过程我们用下面
35、的另一张图来说明。t=21,发送端收到对报文段 3 的确认,将发送窗口再加 1 变为 4(可以发送报文段 4,5,6 和 7),并开始发送报文段 5。此时,报文段 4 已完全进入发送管道,前沿到了管道的四分之一处。*发送端每收到一个对没有确认过的报文段的确认,就将发送窗口加 1。因此在陆续收到确认 47 后,将发送窗口加 4,即增大到 8,可以连续发送报文段 815。管道空间是有限的。从图中表示的例子可以看出,这样的管道至多可容纳 4 个报文段。当发送窗口很小时,管道在大部分时间内是比较空的(见前面的第一张图)。这说明在 TCP 连接中传输数据的效率比较低。当发送窗口增大时,管道逐渐被填满。可
36、以看出,在 t=3438 时,发送管道一直是被填满的,这说明发送管道被利用得很充分。因为报文段的传输需要时间,因此对报文段的确认总是会滞后一段时间。上面的例子表明,在单方向发送报文段(另一个方向发送确认)的情况下,发送管道和接收管道往往不能同时被充分利用(除非发送窗口的数值较大)。但如果双向都能发送数据报文段,那么发送管道和接收管道就都能够被利用得较充分。我们还可看出,接收管道(即接收端发送确认报文段的管道)在任何情况下都没有填满。这是因为确认报文段很短,只需很短的时间就可发送出去。但接收一个数据报文段需要较多的时间,这就造成确认报文段不可能连续地从接收端发送出去。)解析:29.假定在一个互联
37、网中,所有的链路的传输都不出现差错,所有的结点也都不会发生故障。试问在这种情况下,TCP 的“可靠交付”的功能是否就是多余的?(分数:10.00)_正确答案:(不是多余的。TCP 的“可靠交付”功能在互联网中起着至关重要的作用。至少在以下所列举的情况下,TCP 的“可靠交付”功能是必不可少的。(1)每个 IP 数据报独立地选择路由,因此在到达目的主机时有可能出现失序。(2)由于路由选择的计算出现错误,导致 IP 数据报在互联网中兜圈子。最后数据报首部中的生存时间 TTL的数值下降到零。这个数据报在中途就被丢弃了。(3)在某个路由器突然出现很大的通信量,以致路由器来不及处理到达的数据报。因此有的
38、数据报被丢弃。以上列举的问题表明了:必须依靠 TCP 的“可靠交付”功能才能保证在目的主机的目的进程接收到正确的报文。)解析:30.能否更详细些讨论一下糊涂窗口综合症及其解决方法?(分数:10.00)_正确答案:(发送端产生的症状如果发送端为产生数据很慢的应用程序服务,例如,一次产生一个字节。这个应用程序一次将一个字节的数据写入发送端的 TCP 的缓存。如果发送端的 TCP 没有特定的指令,它就产生只包括一个字节数据的报文段。结果有很多 41 字节的 IP 数据报就在互连网中传来传去。解决的方法是防止发送端的 TCP 逐个字节地发送数据。必须强迫发送端的 TCP 收集数据,然后用一个更大的数据
39、块来发送。发送端的 TCP 要等待多长时间呢?如果它等待过长,它就会使整个的过程产生较长的时延。如果它的等待时间不够长,它就可能发送较小的报文段。Nagle 找到了一个很好的解决方法。Nagle 算法:Nagle 算法非常简单,但它能解决问题。这个算法是为发送端的 TCP 用的:发送端的 TCP 将它从发送应用程序收到的第一块数据发送出去,哪怕只有一个字节。在发送第一个报文段(即报文段 1)以后,发送端的 TCP 就在输出缓存中积累数据,并等待:或者接收端的TCP 发送出一个确认,或者数据已积累到可以装成一个最大的报文段。在这个时候,发送端的 TCP 就可以发送这个报文段。对剩下的传输,重复步骤 2。这就是:如果收到了对报文段 x 的确认,或者数据已积累到可以装成一个最大的报文段,那么就发送下一个报文段(x+1)。Nagle 算法的优点就是简单,并且它考虑到应用程序产生数据的速率,以及网络运输数据的速率。若应用程序比网络更快,则报文段就更大(最大报文段)。若应用程序比网络慢,则报文段就较小(小于最大报文段)。接收端产生的症状:接收端的 TCP 可能产生糊涂窗口综合症,如果它为消耗数据很慢的应用程序服务,例如,一次消耗一个字节。假定发送应用程序产生了 1