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