CN 第二章 应用层-判断题
两个不同的Web页面(例如,www.mit.edu/research.html 及www.mit.edu/students.html)可以通过同一个持续连接发送。
- A. 对
- B. 错
HTTP/1.1规范允许:
同一连接可传输多个资源(包括不同页面),只要满足:
- 同域名(
www.mit.edu
)。 - 服务器支持持久连接(现代服务器默认支持)。
对一个P2P文件共享应用,你认为“一个通信会话不存在客户端和服务器端的概念”的说法正确吗?
- A. 对
- B. 错
在P2P网络里,节点之间是对等的,但是在具体的一次通信会话中,客户端和服务器端的概念依然存在,每个节点都具有双重角色,既可以作为客户端从其他节点请求文件资源,又可以作为服务器向其他节点提供自己拥有的文件资源
假定你想尽快地处理从远程客户到服务器的事务,你将使用UDP而不是TCP
- A. 对
- B. 错
原因:
- UDP是无连接的、不保证可靠性的协议,但具有低延迟和更快的传输速度(因为不需要建立连接、确认或重传)。
- TCP是面向连接的、可靠的协议,但需要三次握手、确认和重传机制,导致更高的延迟。
- 如果目标是尽快处理事务(如实时视频、在线游戏、DNS查询等),可以容忍少量数据丢失,此时UDP是更优选择。
UDP vs TCP 对比表
传输层协议 | UDP (User Datagram Protocol) | TCP (Transmission Control Protocol) |
---|---|---|
连接方式 | 无连接(直接发送数据) | 面向连接(需三次握手建立连接) |
可靠性 | 不可靠(不保证数据到达或顺序) | 可靠(通过确认、重传、排序保证数据完整) |
速度 | 更快(无连接开销,无重传延迟) | 较慢(需握手、确认、重传等机制) |
数据顺序 | 不保证顺序 | 保证数据按序到达 |
流量控制 | 无 | 有(通过滑动窗口机制) |
拥塞控制 | 无 | 有(如慢启动、拥塞避免等算法) |
头部大小 | 较小(8字节) | 较大(20字节或更多) |
适用场景 | 实时应用(视频流、游戏、VoIP)、DNS查询、广播/多播 | 需可靠传输的应用(网页浏览、文件传输、电子邮件) |
应用层协议示例 | DNS、DHCP、QUIC(HTTP/3)、在线游戏 | HTTP/HTTPS、FTP、SSH、SMTP |
假设用户请求由某些文本和两幅图片组成的Web页面(不使用内含图像文档)。对于这个页面,浏览器将会发送一个请求报文并接收三个响应报文。
- A. 对
- B. 错
解析:
- 当浏览器请求一个包含文本和两张图片的Web页面时,完整的加载过程如下:
- HTML请求:浏览器发送一个HTTP请求(GET /page.html)。
- HTML响应:服务器返回HTML文档(包含文本和图片的
<img>
标签)。 - 图片请求:浏览器解析HTML后,为每张图片单独发送请求(GET /image1.jpg、GET /image2.jpg)。
- 图片响应:服务器分别返回两张图片的响应。
- 实际报文数量:
- 请求报文:1(HTML) + 2(图片) = 3个。
- 响应报文:1(HTML) + 2(图片) = 3个。
- 题目说法错误:
- 题目认为浏览器只发送1个请求并接收3个响应,这是不成立的。HTML和图片的请求是一对一的,总报文数为6(3请求 + 3响应)。
HTTP响应报文决不会具有空的报文体。
- A. 对
- B. 错
解析:
- HTTP响应报文的报文体(Body)可以为空,常见场景包括:
- HEAD请求的响应:HEAD方法仅返回响应头(如检查资源是否存在),无报文体。
- 204 No Content:服务器成功处理请求,但无需返回数据(如删除操作)。
- 304 Not Modified:缓存未过期,服务器不返回实际内容。
- 反例:
- 例如,
HTTP/1.1 204 No Content
的响应只有状态行和头部,无报文体。
- 例如,
对同一个域名向DNS服务器发出好几次的DNS请求报文后,每一次得到IP地址可能都不一样。
- A. 对
- B. 错
解析:
- DNS解析结果可能动态变化,原因包括:
- 负载均衡:大型网站(如Google、YouTube)返回不同IP以分散流量。
- CDN(内容分发网络):根据用户地理位置返回最近服务器IP。
- DNS轮询:同一域名配置多个IP,DNS服务器轮流返回。
- TTL过期:DNS记录的缓存时间(TTL)到期后重新查询,可能获取新IP。
- 示例:
- 第一次查询
www.example.com
返回1.1.1.1
,第二次可能返回2.2.2.2
。
- 第一次查询
进行网络通信的实际上是进程(process)而不是程序。不同端系统上的进程通过跨越计算机网络交换报文而相互通信。
- A. 对
- B. 错
解析:
- 进程与程序的区别:
- 程序:静态的可执行文件(如
chrome.exe
)。 - 进程:程序运行的实例(如浏览器的一个标签页)。
- 程序:静态的可执行文件(如
- 网络通信的本质:
- 通信主体是进程(如浏览器进程向Web服务器进程发送HTTP请求)。
- 进程通过**套接字(Socket)**绑定端口,收发报文。
- 示例:
- 当访问网页时,浏览器进程(端口
1234
)与服务器进程(端口80
)交换数据。
- 当访问网页时,浏览器进程(端口