14. 【解答】
## 14. 【解答】
1)第二次握手报文段的 $\mathrm{SYN} = 1$ , $\mathrm{ACK} = 1$ 。确认序号是第一次握手报文段的序号 $+1 = 101$ 。
<!-- page: 277 -->
第5章 传输层
265
2)因为S的TCP接收缓存仅有数据存入而无数据取出,当S收到第8个段时接收缓存还剩12KB,所以H3收到的第8个确认段所通告的接收窗口是12KB。在慢开始阶段,每收到一个对新报文段的确认,拥塞窗口就加1,当收到对第8个报文段的确认后,H3的拥塞窗口变为9KB。H3的发送窗口取接收窗口和拥塞窗口的最小值,即9KB。
3)H3的发送窗口等于0时,下一个待发送段的序号是 $20\mathrm{K} + 101 = 20\times 1024 + 101 = 20581$。H3从发送第1个段到发送窗口等于0时刻为止,共耗费了5RTT(每个RTT传输的数据量依次为1KB、2KB、4KB、8KB、5KB),平均数据传输速率是 $20\mathrm{KB} = (5\times 200\mathrm{ms}) = 20\times 1024\times 8\mathrm{b / s} = 163.84\mathrm{kb / s}$。
## 注意
K表示文件大小或描述存储空间时等于1024,这里通常用大写的K;k表示传输速率或描述网络通信时等于1000,这里通常用小写的k。注意区分和转换。
4)$t$ 时刻 H3 请求断开连接,发出连接释放 FIN 报文段;S 收到后,最短时间的情况是 S 已没有要发送的数据,所以同时发出确认 ACK 报文段和连接释放 FIN 报文段,即 S 直接跳过 CLOSE-WAIT 状态;H3 收到 FIN 报文段后必须发出确认,S 收到确认后进入 CLOSED 状态,共经历 1.5RTT,因此 S 释放该连接的最短时间是 $1.5 \times 200 \mathrm{~ms} = 300 \mathrm{~ms}$。
## 5.4 本章小结及疑难点
1. MSS(最大报文段长度)设置得过大或过小会有什么影响?
MSS的设定与接收方的缓存大小或接收窗口无关,其主要目的是避免IP分片。若MSS设置得太小,网络利用率会显著降低。因为每个TCP报文段至少要加上40B的首部(TCP首部20B+IP首部20B)才能形成一个IP数据报。极端情况下,若数据部分仅1B,则有效载荷占比仅为1/41;若再考虑数据链路层的帧头尾开销,实际利用率还会更低。若MSS设置得太大,在IP层传输时可能因超过路径中某段链路的MTU而被分片。接收端需将所有分片重新组装成原始TCP报文段;一旦任一分片丢失,整个报文段都必须重传,反而增加传输开销和延迟。
因此,MSS应尽可能大,但以在IP层不发生分片为前提。然而,由于互联网路径是动态变化的,某条路径上无须分片的MSS,在另一条路径上可能仍需分片,故最佳MSS难以确定。为此,TCP规定默认MSS为536B,这意味着所有互联网主机都应能接收长度为536B(数据)+20B(TCP首部)=556B的TCP报文段。
2. TCP使用的是后退N帧(GBN)还是选择重传(SR)?
表面上看,TCP使用累积确认,类似于GBN。但区别在于:接收方不会丢弃正确到达但失序的报文段,而是将其缓存,并反复发送冗余ACK,指明期望收到的下一个按序报文段的序号。例如,假设发送方A连续发送 $N$ 个报文段,其中第 $k(k < N)$ 个丢失,其余均正确到达接收方B。在GBN中,接收方会丢弃所有失序的报文段(第 $k + 1$ 个至 $N$ 个),发送方需重传从第 $k$ 个开始的所有未确认报文段。而TCP仅重传丢失的第 $k$ 个报文段,后续已缓存的报文段无须重传。此外,TCP还支持SACK(Selective ACK)选项。启用SACK后,接收方可明确告知发送方哪些非连续的数据块已成功接收,使重传行为更接近SR协议。
因此,TCP的重传机制可视为GBN与SR的混合体:基础行为基于累积确认和冗余ACK
<!-- page: 278 -->
2027年计算机网络考研复习指导
实现高效单点重传,SACK则进一步增强了选择性确认能力。
3. 为什么超时事件发生时 cwnd 被置为 1,而收到 3 个冗余 ACK 时 cwnd 减半?
两种事件反映的网络拥塞严重程度不同。收到 3 个冗余 ACK,表明后续部分报文段已成功到达接收方(否则无法触发重复确认),说明网络仍具备一定传输能力,拥塞相对较轻。此时 TCP 采用快速重传机制,将 cwnd 减半(乘法减小),适度降低发送速率。超时事件发生,意味着连 ACK 都未能及时返回,很可能网络已严重拥塞甚至局部瘫痪。为最大限度缓解拥塞,TCP 将 cwnd 重置为 1MSS,进入慢启动阶段,极其谨慎地重新探测网络容量。因此,超时代表更严重的拥塞,故采取更强的抑制措施;而冗余 ACK 表明网络尚可通信,只需适度退让。
4. 为什么不采用“两次握手”建立连接呢?
主要是为了防止已失效的连接请求报文段突然传送到服务器,导致错误建立连接。
考虑如下情况:客户 A 向服务器 B 发送 TCP 连接请求(SYN),该报文在网络中长时间滞留。A 超时后重传 SYN,B 收到后正常建立连接,完成数据传输并断开。
此后,先前滞留的旧 SYN 报文(失效请求)才到达 B。
若采用三次握手:B 收到旧 SYN 后,会向 A 发送 SYN-ACK;但 A 发现该确认序号无效(非当前请求),直接丢弃,不回复 ACK,连接无法建立。
若采用两次握手:B 收到旧 SYN 后,立即认为连接已建立,并等待 A 发送数据;而 A 并无此连接意图,不会响应,导致 B 长期占用资源,造成浪费。
因此,三次握手能有效避免因网络延迟的旧请求引发的资源误分配,而两次握手无法做到。
5. 为什么 TCP 在建立连接时不能每次都选择相同的、固定的初始序号?
假设主机 A 与 B 频繁建立连接、传输数据后释放。若每次 A 都使用相同的初始序号(如 1),具体场景:A 发送的某些 TCP 报文段在网络中滞留较久,A 超时后重传并完成后续通信。但这些旧报文段在连接早已释放后才到达 B,而此时 A 与 B 已建立一条新的 TCP 连接。
由于新连接仍使用相同的初始序号,旧报文段的序号可能落在新连接的有效窗口内,导致 B 误将其当作新数据接收,造成数据混乱或协议错误。为防止此类问题,新连接的初始序号必须与之前连接使用过的序号不同,确保迟到的旧报文段序号不会被新连接接受。因此,TCP 不能使用固定初始序号,而应采用随时间递增的随机化初始序号。
6. 假定在一个互联网中,所有链路的传输都不出现差错,所有节点也都不会发生故障。试问在这种情况下,TCP 的“可靠交付”功能是否就是多余的?
不是多余的。即使底层无差错、无故障,IP 层本身是无连接且不可靠的,仍可能导致数据丢失、失序或重复,因此 TCP 的可靠交付依然必不可少。典型情况包括:
1)IP 数据报独立选路,可能到达时失序;
2)路由异常可能导致数据报在网中循环,TTL 减至 0 后被丢弃;
3)路由器突发拥塞时,来不及处理的数据报会被丢弃。
以上问题均发生在网络层,与链路差错或节点故障无关。只有依靠 TCP 的可靠交付机制,才能确保目的进程收到完整、有序且无重复的数据。
<!-- page: 279 -->
第6章
# 应用层
## 【考纲内容】
(一)网络应用模型
客户/服务器模型;P2P 模型
(二)域名系统(DNS)
层次域名空间;域名服务器;域名解析过程
(三)文件传输协议(FTP)
FTP 的工作原理;控制连接与数据连接
(四)电子邮件(E-mail)
电子邮件系统的组成结构;电子邮件格式与 MIME;SMTP 与 POP3
(五)万维网(WWW)
WWW 的概念与组成结构;HTTP
## 【复习提示】
本章内容既可按选择题的形式考查,又可结合其他章节的内容出综合题。因此,牢固掌握本章的几个典型应用层协议是关键。我们生活中的很多网络应用都是建立在这些协议的基础上的,因此在学习时要注意联系实际,提高学习的兴趣,才会获得更好的学习效果。
## 6.1 网络应用模型
网络应用模型是计算机网络中用于描述应用程序之间通信方式和结构的框架,主要包括客户/服务器模型(C/S)和对等模型(P2P)两种。
### 6.1.1 客户/服务器模型
**考点信息** ➔ C/S 模型和 P2P 模型的特点(2019)
在客户/服务器(Client/Server,C/S)模型中,存在一个始终处于开启状态的主机,称为服务器,它负责响应来自多个称为客户的主机的服务请求,如图 6.1 所示。其工作流程如下:
1)服务器持续处于接收请求的状态。
2)客户主动发起服务请求,并等待接收处理结果。
3)服务器收到请求后,解析并处理该请求,将结果返回给客户。
服务器上运行着专门提供某种服务的程序,能够同时处理多个来自远程或本地客户程序的请求。客户程序必须事先知道服务器程序的地址;而服务器程序启动后便一直不断运行着,被动等待并接收来自各地客户程序的请求。因此,服务器程序无须知道客户程序的地址。
原转写引用的配图未随 Markdown 保存,请回到原 PDF 核验。
视频讲解 <!-- page: 280 --> 2027年计算机网络考研复习指导 客户/服务器模型的主要特征:客户是服务请求方,服务器是服务提供方。例如,在Web应用中,始终运行的Web服务器响应运行在客户上的浏览器所发出的请求。当Web服务器收到来自客户对某一对象的请求时,会将该对象发送回客户作为响应。采用C/S模型的常见应用包括Web、文件传输协议(FTP)和电子邮件(SMTP/POP3/IMAP)等。 客户/服务器模型的主要特点还包括: 1)网络中各计算机的地位不平等。服务器可通过用户权限控制来管理客户,整个网络的管理工作由少数服务器集中承担,因此管理更加集中和便捷。 2)客户之间通常不直接通信。例如,在Web应用中,两个浏览器不会直接交换数据。 3)可扩展性不佳。受服务器性能和网络带宽的制约,单个服务器支持的客户数量有限。 ## 6.1.2 P2P模型 在 C/S 模型中,服务器的性能决定了整个系统的吞吐能力,当面临大量用户请求时,服务器极易成为系统瓶颈。对等(Peer-to-Peer,P2P)模型的思想是:网络中的内容不再集中存储于中心服务器;每个节点同时具备下载和上传的能力,其权利与义务大体是对等的,如图 6.2 所示。
原转写引用的配图未随 Markdown 保存,请回到原 PDF 核验。
图6.1 C/S模型
原转写引用的配图未随 Markdown 保存,请回到原 PDF 核验。
图6.2 P2P模型 在P2P模型中,各计算机没有固定的客户和服务器角色划分。任意两台计算机——称为对等方(Peer),均可直接相互通信。从实现机制上看,P2P模型本质上仍基于客户/服务器模式:每个节点访问其他节点资源时扮演客户角色,为其他节点提供资源时又充当服务器角色。 与C/S模型相比,P2P模型的优点主要体现如下: 1)减轻了中心服务器的计算和带宽压力,消除了对单一服务器的依赖,可将任务分散到众多节点上,从而大幅提升系统的整体效率和资源利用率。 2)多个节点之间可直接通信,无须通过中心服务器中转。 3)可扩展性好。传统服务器受限于处理能力和带宽,只能响应有限数量的并发请求,而P2P网络的容量随节点数量的增加而自然增长 4)网络健壮性强。单个节点的失效通常不会影响其他节点的正常运行。 P2P模型也存在缺点。节点在获取服务的同时,还需为其他节点提供服务,这会占用较多的系统资源(如CPU、内存和磁盘I/O),可能影响本机性能。例如,频繁进行P2P下载会对硬盘造成较大负担。据某些互联网调研机构统计,在某些年份,P2P应用曾占互联网流量的 $50\% \sim 90\%$,导致网络严重拥塞。因此,各互联网服务提供商(ISP)通常对P2P应用持限制或反对态度。 ## 6.1.3 本节习题精选 ### 单项选择题 01. 在客户/服务器模型中,客户指的是()。 <!-- page: 281 --> 第6章 应用层 269 A. 请求方 B. 响应方 C. 硬件 D. 软件 02. 用户提出服务请求,网络将用户请求传送到服务器;服务器执行用户请求,完成所要求的操作并将结果送回用户,这种工作模型称为()。 A. C/S 模型 B. P2P 模型 C. CSMA/CD 模型 D. 令牌环模型 03. 下面关于客户/服务器模型的描述,()存在错误。 I. 客户端必须提前知道服务器的地址,而服务器则不需要提前知道客户端的地址 II. 客户端主要实现如何显示信息与收集用户的输入,而服务器主要实现数据的处理 III. 浏览器显示的内容来自服务器 IV. 客户端是请求方,即使连接建立后,服务器也不能主动发送数据 A. I、IV B. III、IV C. 仅 IV D. 仅 III 04. 下列关于客户/服务器模型的说法中,不正确的是()。 A. 服务器专用于完成某些服务,而客户则作为这些服务的使用者 B. 客户通常位于前端,服务器通常位于后端 C. 客户和服务器通过网络实现协同计算任务 D. 客户是面向任务的,服务器是面向用户的 05. 以下关于P2P概念的描述中,错误的是()。 A. P2P 是网络节点之间采取对等方式直接交换信息的工作模型 B. P2P 通信模式是指 P2P 网络中对等节点之间的直接通信能力 C. P2P 网络是指与互联网并行建设的、由对等节点组成的物理网络 D. P2P 实现技术是指为实现对等节点之间直接通信的功能所需要设计的协议、软件等 06. 【2019统考真题】下列关于网络应用模型的叙述中,错误的是()。 A. 在P2P模型中,节点之间具有对等关系 B. 在客户/服务器(C/S)模型中,客户与客户之间可以直接通信 C. 在 C/S 模型中,主动发起通信的是客户,被动通信的是服务器 D. 在向多用户分发一个文件时,P2P 模型通常比 C/S 模型所需的时间短 ## 6.1.4 答案与解析 ### 单项选择题 01. A 客户既不是硬件,又不是软件,只是服务的请求方,服务器才是响应方。 02. A 用户提出服务请求,网络将用户请求传送到服务器;服务器执行用户请求,完成所要求的操作并将结果送回用户,这种工作模型称为客户/服务器模型,即C/S模型。 03. C 在连接未建立前,服务器在某一个端口上监听。客户端是连接的请求方,客户端必须事先知道服务器的地址才能发出连接请求,而服务器则从客户端发来的数据包中获取客户端的地址。一旦连接建立,服务器就能响应客户端请求的内容,服务器也能主动发送数据给客户端,用于一些消息的通知,如一些错误的通知。所以只有说法IV错误。 04. D 客户的作用是根据用户需求向服务器发出服务请求,并将服务器返回的结果呈现给用户,因 <!-- page: 282 --> 2027年计算机网络考研复习指导 此客户是面向用户的,服务器是面向任务的。 ## 05. C P2P 可以理解为一种通信模型、一种逻辑网络模型。物理网络是指在网络中由各种设备(主机、交换机等)和介质(双绞线等)连接而形成的网络,它看得见摸得着。而这个网络中所使用的协议,或网络结构,都是靠逻辑网络来划分的。P2P 网络是一个构建在 IP 网络上的覆盖网络,是一种动态的逻辑网络。对等节点之间具有直接通信的能力是 P2P 的显著特点。 ## 06. B 在 P2P 模型中,每个节点的权利和义务对等,彼此可直接通信。而在 C/S 模型中,客户是服务发起方,服务器被动接受来自客户的请求,客户之间不能直接通信,例如 Web 应用中的两个浏览器之间不能直接通信。P2P 模型通过将文件分发任务分散到多个节点,允许用户从多个对等方并行下载,从而减轻服务器负担,在向多用户分发文件时,通常比 C/S 模型所需的时间更短。 ## 6.2 域名系统 **考点关注** DNS 使用的传输层及以下协议(2018、2021) 从概念上,DNS 可分为三部分:层次域名空间、域名服务器和解析器。 ## 6.2.1 层次域名空间 互联网采用层次树状结构的命名方法。按照这种命名方法,任何连接到互联网的主机或路由器都拥有唯一的层次结构名称,即域名(Domain Name)。域(Domain)是名字空间中一个可被管理的划分。域可以进一步划分为子域,子域还可以继续细分,从而形成顶级域、二级域、三级域等层次结构。每个域名由一系列标号组成,各标号之间用点(“”)分隔。 如图 6.3 所示是王道论坛提供 WWW 服务的服务器域名,它由三个标号组成,其中标号 com 是顶级域名,标号 cskaoyan 是二级域名,标号 www 是三级域名。
原转写引用的配图未随 Markdown 保存,请回到原 PDF 核验。
图 6.3 一个域名的例子 关于域名中的标号,有以下几点需要注意: 1)标号中的英文字母不区分大小写。 2)标号中除连字符(-)外,不得使用其他标点符号。 3)每个标号不超过 63 个字符,整个域名(含分隔点)的总长度不得超过 255 个字符。 4)级别最低的域名写在最左边,级别最高的顶级域名写在最右边。 顶级域名(Top Level Domain,TLD)主要分为以下三大类: 1)国家顶级域名(ccTLD)。代表国家的域名,如“.cn”表示中国,“.us”表示美国。 <!-- page: 283 --> 第6章 应用层 271 2)通用顶级域名(gTLD)。常见的包括“.com”(公司)、“.net”(网络服务机构)、“.org”(非营利性组织)、“.edu”(教育机构)和“.gov”(国家或政府机构)等。 3)基础结构域名(arpa)。用于反向域名解析,即将IP地址转换为对应的域名。
原转写引用的配图未随 Markdown 保存,请回到原 PDF 核验。
图6.4 域名空间的树状结构 在域名系统中,各级域名由其上一级的域名管理机构管理。顶级域名由互联网名称与数字地址分配机构(ICANN)管理。国家顶级域名下的二级域名由相应国家自行规定和管理。每个组织还可以将其所辖的域进一步划分为若干子域,并将这些子域委托给其他组织管理。例如,负责管理cn域的中国将edu.cn子域授权给中国教育和科研计算机网(CERNET)进行管理。 ## 6.2.2 域名服务器 域名到 IP 地址的解析是由运行在域名服务器上的程序完成的。一个服务器负责管辖(或具有管理权限)的范围称为区,其范围小于或等于域。一个区内的所有节点必须是连通的,每个区都设有相应的权限域名服务器(也称授权域名服务器),用于保存该区中所有主机的域名到 IP 地址的映射信息。每个域名服务器不仅要能解析部分域名到 IP 地址的映射,还要能维护指向其他域名服务器的信息;当自身无法完成解析时,要能知道向哪个服务器进一步查询。 DNS 使用大量的域名服务器,它们按层次结构组织。没有任何一台域名服务器包含互联网上所有主机的映射,相反,这些映射分布在所有域名服务器上。有四种类型的域名服务器。 ### 1. 根域名服务器 根域名服务器是 DNS 层次结构中的最高层级。所有根域名服务器都知道全部顶级域名服务器的域名和 IP 地址。无论哪个本地域名服务器需要解析任意域名,只要自身无法解析,就首先向根域名服务器发起查询。全球共有 13 个根域名服务器,每个根域名服务器实际上都是由多个冗余服务器组成的集群,以提高可靠性和性能。根域名服务器用来管辖顶级域(如.com),它通常并不直接将待查询的域名解析为 IP 地址,而是返回下一步应查询的顶级域名服务器的地址。 ### 2. 顶级域名服务器 顶级域名服务器负责管理在其下注册的所有二级域名。例如,.com 顶级域名服务器管理所有以.com 结尾的域名。当收到 DNS 查询请求时,它会返回相应的响应(可能是最终的解析结果, <!-- page: 284 --> 2027年计算机网络考研复习指导 即目标IP地址;也可能是下一步应当查找的域名服务器的IP地址)。 ## 3. 权限域名服务器(授权域名服务器) 权限域名服务器负责管理特定区的域名信息。每个主机必须在所属区的权限服务器处登记,该服务器总能将其管辖的主机名解析为对应的IP地址。为提高可靠性,通常建议每个区配置至少两个权限域名服务器。实际上,许多本地域名服务器也同时承担权限域名服务器的角色。 ## 4. 本地域名服务器 本地域名服务器在域名系统中扮演关键角色。每家互联网服务提供商(ISP)、一所大学甚至大学中的各个院系,通常都会部署自己的本地域名服务器。当主机发起DNS查询请求时,该请求首先被发送给其配置的本地域名服务器。事实上,在Windows系统中配置“本地连接”时所填写的DNS服务器地址,就是该主机所用的本地域名服务器地址。 DNS的层次结构如图6.5所示。
原转写引用的配图未随 Markdown 保存,请回到原 PDF 核验。
图6.5 DNS的层次结构 ## 6.2.3 域名解析过程 **考点说明** DNS协议的功能与意义(2021) 域名解析是指将域名转换为 IP 地址的过程。当客户端需要进行域名解析时,会通过本机的 DNS 客户端构造一个 DNS 请求报文,并以 UDP 数据报的形式发送给本地域名服务器。 域名解析有两种方式:递归查询和迭代查询。