计算机网络核心知识点复习笔记
第一章:概述与物理层
核心知识点
-
网络体系结构对比
- OSI 七层模型: 物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。这是一个逻辑上清晰、定义了完备网络功能的法律标准 (de jure),但因其复杂性,并未被广泛实现。
- TCP/IP 四层模型: 网络接口层、网际层(IP)、运输层(TCP/UDP)、应用层。这是伴随互联网发展而来的事实标准 (de facto),是现代网络通信的基石。
- 教学用五层模型: 物理层、数据链路层、网络层、运输层、应用层。它综合了 OSI 和 TCP/IP 的优点,屏蔽了物理层之下的复杂细节,同时清晰地展示了网络核心分层,是学习和理解网络的最佳模型。
-
三种交换方式
- 电路交换: 独占资源。通信前需建立一条专用的物理连接,直到通信结束才释放。优点是通信时延小且固定;缺点是建立连接慢,线路利用率低,不适合突发性通信。
- 报文交换: 存储-转发。以完整的报文为单位进行传输,每个节点接收整个报文,检查无误后转发给下一个节点。优点是无需建立连接,线路利用率高;缺点是时延较长且不固定,对节点缓存要求高。
- 分组交换: 存储-转发。将数据分割成较小的、固定或可变长度的分组进行传输。它结合了前两者的优点,通过在链路层和网络层使用流水线式的传输,实现了高效率和低时延,是现代计算机网络的基础。
-
物理层核心理论
- 奈氏准则 (Nyquist Theorem): 描述了在无噪声、带宽有限的理想信道中,为避免码间串扰,极限码元传输速率为
2W波特。若码元有V种离散状态,则极限数据传输速率为:
$$C = 2W \log_2V \quad (b/s)$$ - 香农定理 (Shannon Theorem): 描述了在有高斯白噪声、带宽受限的信道中,理论上可达到的、不会出错的极限数据传输速率:
$$C = W \log_2(1 + S/N) \quad (b/s)$$
其中W为信道带宽(Hz),S/N为信噪比。香农定理指出了,只要信息传输速率低于信道极限速率,就一定存在某种方法实现无差错的传输。
- 奈氏准则 (Nyquist Theorem): 描述了在无噪声、带宽有限的理想信道中,为避免码间串扰,极限码元传输速率为
章节练习题与答案
- 简答: 对比 OSI 和 TCP/IP 参考模型,说明它们的共同点和主要区别。
答案:
- 共同点:
- 分层思想: 两者都采用了分层的体系结构,将复杂的网络问题分解为若干个更小、更易于处理的层次。
- 核心层次功能相似: 都包含了功能基本相同的应用层、运输层和网络层。
- 基于分组交换: 底层都依赖于分组交换技术。
- 主要区别:
- 层数不同: OSI 是 7 层模型,TCP/IP 是 4 层模型。TCP/IP 将 OSI 的表示层、会话层合并到应用层,将数据链路层和物理层合并到网络接口层。
- 协议与模型关系: OSI 是“模型先行”,先有严格的理论模型,再指导协议开发;TCP/IP 是“协议先行”,先有成功的协议族,再归纳出模型。
- 连接服务: OSI 的网络层支持无连接和面向连接两种服务,而运输层只提供面向连接服务;TCP/IP 的网络层(IP)只提供无连接服务,而运输层(TCP/UDP)则分别提供面向连接和无连接服务。
- 标准性质: OSI 是国际标准组织(ISO)定义的法律标准,但未流行;TCP/IP 是事实上的国际标准。
- 计算: 假设一个信道的带宽为 4000 Hz,采用 8 个相位,每个相位有 2 种振幅的调制技术。根据奈氏准则,该信道的最大数据传输速率是多少?
答案:
-
计算码元状态数 (V): 该调制技术共有
8 个相位 × 2 种振幅 = 16种不同的状态。所以 $V = 16$。 -
应用奈氏准则公式: $C = 2W \log_2V$
-
代入数值: $C = 2 \times 4000 \times \log_2(16) = 8000 \times 4 = 32000 \text{ b/s}$。
-
最终结果: 该信道的最大数据传输速率为 32 kb/s。
-
原理: 对比电路交换、报文交换和分组交换的主要特点和优缺点,并说明为何分组交换最适合计算机网络。
| 答案: | 特性 | 电路交换 | 报文交换 | 分组交换 |
|---|---|---|---|---|
| 资源分配 | 预分配,独占 | 动态分配 | 动态分配 | |
| 建立连接 | 必须 | 不需要 | 不需要 | |
| 传输单位 | 连续比特流 | 整个报文 | 分组 | |
| 优点 | 时延低且固定,无冲突 | 线路利用率高 | 线路利用率高,时延较低,灵活可靠 | |
| 缺点 | 线路利用率低 | 时延高且不固定 | 存在排队时延,需要额外开销管理分组 |
分组交换最适合计算机网络的原因:
计算机通信具有突发性的特点,即数据传输在时间上是不均匀的,时而有大量数据,时而线路空闲。
- 电路交换为突发通信预留固定带宽,会导致线路在大部分时间里处于空闲状态,资源浪费严重。
- 报文交换虽然提高了资源利用率,但由于必须存储和转发整个大报文,导致网络节点需要巨大缓存,且时延过高,无法满足交互式应用的需求。
- 分组交换通过将数据切分成小分组,可以灵活地在网络中“见缝插针”地传输,极大地提高了线路利用率;同时,由于分组较小,存储转发的时延也大大降低,非常适合处理计算机的突发数据流。
第二章:数据链路层
核心知识点
-
核心功能
- 封装成帧: 通过在数据前后添加帧定界符来标识帧的边界。
- 透明传输: 确保任意数据都能在帧内传输。字节填充是在特殊字符(如帧定界符、转义符)前再插入一个转义符;比特填充则是在发送端的数据流中,每当检测到连续5个'1'时,就自动在其后插入一个'0'。
- 差错检测: 使用循环冗余校验 (CRC)。原理是,在发送端,将
k位的原始数据M后面添加n位 0,然后用这个(k+n)位的数模2除以一个(n+1)位的生成多项式 G,得到的n位余数R就是帧检验序列 (FCS)。发送方将R附加到M后面发送。接收方用收到的(M+R)模2除以G,若余数为0,则认为传输无误。
-
CSMA/CD 协议 (载波监听多点接入/碰撞检测)
- 工作原理: 先听后发,边听边发,冲突停发,随机重发。
- 争用期 ($2\tau$): 是信号在总线两端往返传播的时间,也是主机能检测到碰撞的最迟时间。帧长必须大于等于最小帧长(64字节),以确保
帧的发送时间 >= 争用期,从而保证碰撞能被可靠检测。 - 截断二进制指数退避算法: 用于决定碰撞后的重传时机。
-
局域网与设备
- MAC 帧格式: 包含目的MAC(6字节)、源MAC(6字节)、类型、数据、FCS(4字节)等。
- 集线器 (Hub): 物理层设备,再生并广播信号,不隔离碰撞域和广播域。
- 网桥/交换机 (Bridge/Switch): 数据链路层设备,能根据MAC地址表进行过滤和转发,可以隔离碰撞域,但不能隔离广播域。
- VLAN (虚拟局域网): 在交换机上实现的逻辑分组技术,能将一个物理局域网划分成多个广播域。
章节练习题与答案
- 计算: 在一个 10-Base-T 以太网中,争用期为 51.2 µs。一个报文在经历了三次成功的重传后(即第四次发送前),再次发生碰撞。请使用截断二进制指数退避算法,计算它再次准备重传时,最多需要等待的时间。
答案:
-
确定重传次数: 题目描述“经历了三次成功的重传后,再次发生碰撞”,这意味着这是该报文的第4次碰撞。
-
确定 k 值: 退避算法中的 $k = \min(\text{重传次数}, 10)$。因此,$k = \min(4, 10) = 4$。
-
确定随机数 r 的范围: 随机数
r从整数集合[0, 1, ..., 2^k - 1]中选取。所以r的范围是[0, 1, ..., 2^4 - 1],即[0, 1, ..., 15]。 -
计算最大等待时间: 最大等待时间发生在
r取最大值时,即r=15。退避时间 =r × (争用期)=15 × 51.2 µs=768 µs。 -
最终结果: 最多需要等待 768 µs。
-
判断 (CRC): 接收方收到的数据帧的二进制表示为
1101011011,使用的生成多项式为 $G(x) = x^4 + x + 1$ (即10011)。请通过计算判断这次传输是否出错。
答案:
-
执行模2除法: 我们用接收到的数据
1101011011除以生成多项式10011。11001 _________ 10011 | 1101011011 10011 ----- 10011 10011 ----- 01011 00000 ----- 10111 10011 ----- 0100 (余数) -
判断结果: 计算得到的余数是
0100(即100),而不是0。 -
最终结论: 因此,可以断定这次传输发生了错误。
-
对比: 简述集线器、网桥和以太网交换机在工作层次、功能和对碰撞域/广播域处理上的主要区别。
| 答案: | 设备 | 工作层次 | 主要功能 | 碰撞域 | 广播域 |
|---|---|---|---|---|---|
| 集线器(Hub) | 物理层 | 信号放大和再生,将信号广播到所有端口 | 不隔离,所有端口在同一碰撞域 | 不隔离,所有端口在同一广播域 | |
| 网桥(Bridge) | 数据链路层 | 根据MAC地址表过滤和转发帧 | 隔离,每个端口是一个独立的碰撞域 | 不隔离,所有端口在同一广播域 | |
| 交换机(Switch) | 数据链路层 | 实质是多端口网桥,功能相同 | 隔离,每个端口是一个独立的碰撞域 | 不隔离(除非配置VLAN) |
总结: 交换机可以看作是更高效、端口更多的网桥。它们都能显著减少网络冲突,提高网络性能,但默认情况下都不能隔离广播风暴。
第三章:网络层
核心知识点
-
地址解析协议 (ARP)
- 作用: 在同一个局域网内,根据目标的 IP 地址查询其对应的 MAC 地址。ARP 协议是网络层和数据链路层之间的关键桥梁。
- 工作流程: 主机 A 广播一个 ARP 请求,该请求中包含了主机 A 的 IP 和 MAC 地址,以及目标主机 B 的 IP 地址。网络上所有主机都会收到此请求,但只有 IP 地址与请求中目标 IP 地址匹配的主机 B 才会处理它,并向主机 A 单播一个包含自己 MAC 地址的 ARP 响应。
-
IP 数据报分片
- 关键首部字段:
- 标识 (Identification): 16位。由发送方分配,用于唯一标识一个IP数据报。同一数据报的所有分片具有相同的标识值。
- 标志 (Flags): 3位。
DF位=1禁止分片;MF位=1表示后面还有分片,MF=0表示这是最后一个分片。 - 片偏移 (Fragment Offset): 13位。该分片数据部分在原始无首部数据报中的起始位置,以8字节为单位。
- 关键首部字段:
-
划分子网与 CIDR
- CIDR (无分类域间路由选择): 使用
IP地址/网络前缀长度的形式表示地址块。 - 路由聚合 (超网): 将多个小的CIDR地址块合并成一个前缀更短的、更大的地址块,以减少路由表条目。例如,
192.168.0.0/24和192.168.1.0/24可以聚合成192.168.0.0/23。 - 最长前缀匹配: 路由器在转发时,会在路由表中查找所有与目的IP地址匹配的条目,并选择其中网络前缀最长的一条进行转发。因为前缀越长,地址块越小,路由越具体。
- CIDR (无分类域间路由选择): 使用
-
路由协议对比 特性 RIP (路由信息协议) OSPF (开放最短路径优先) BGP (边界网关协议) 类型 IGP (内部网关协议) IGP (内部网关协议) EGP (外部网关协议) 算法 距离向量 链路状态 路径向量 交换信息 与邻居交换整个路由表 向全网洪泛链路状态 与邻居交换完整路径信息 适用范围 小型网络 大型自治系统 自治系统之间 传输协议 UDP IP (协议号89) TCP 优点 简单,开销小 快速收敛,无路由环路 策略丰富,可控性强 缺点 “坏消息传得慢”,最大跳数15 配置复杂,开销较大 配置复杂,收敛慢
章节练习题与答案
- 简答: 如果本地网络中没有 DHCP 服务器,应如何手动配置主机的网络参数以接入互联网?需要配置哪四项主要信息?
答案:
需要手动配置以下四项主要信息:
-
IP 地址 (IP Address): 主机在网络中的唯一标识符。
-
子网掩码 (Subnet Mask): 用于区分 IP 地址中的网络部分和主机部分。
-
默认网关 (Default Gateway): 当主机需要与不同网络的主机通信时,数据包将发往该地址。这通常是本地路由器的 IP 地址。
-
DNS 服务器地址 (DNS Server Address): 用于将域名解析为 IP 地址的服务器地址。
-
分片: 一个总长度为 4000 字节的 IP 数据报(固定首部为20字节),需要通过一个 MTU 为 1500 字节的链路进行传输。请给出分片方案,说明每个分片的总长度、MF 标志和片偏移的值。
答案:
-
计算数据大小: 原始数据报总长 4000 B,首部 20 B,因此数据部分为 3980 B。
-
计算每片最大数据: 链路 MTU 为 1500 B,每个分片也需要 20 B 的首部,所以每个分片最多能承载
1500 - 20 = 1480B 的数据。 -
分片方案:
- 分片 1: 承载 1480 B 的数据。
- 总长度 =
1480 + 20 = 1500B - MF = 1 (后面还有分片)
- 片偏移 =
0 / 8 = 0
- 总长度 =
- 分片 2: 承载 1480 B 的数据。
- 总长度 =
1480 + 20 = 1500B - MF = 1 (后面还有分片)
- 片偏移 =
1480 / 8 = 185
- 总长度 =
- 分片 3: 承载剩余的数据。剩余数据 =
3980 - 1480 - 1480 = 1020B。- 总长度 =
1020 + 20 = 1040B - MF = 0 (这是最后一个分片)
- 片偏移 =
(1480 + 1480) / 8 = 2960 / 8 = 370
- 总长度 =
- 分片 1: 承载 1480 B 的数据。
-
路由: 某路由器的路由表如下。请问目的地址为 192.168.1.130和192.168.1.70的分组将分别被转发到哪个下一跳?请说明理由。目的网络 子网掩码 下一跳 192.168.1.0255.255.255.128(/25)R1 192.168.1.64255.255.255.192(/26)R2 0.0.0.00.0.0.0R3 答案:
路由器转发遵循最长前缀匹配原则。- 对于
192.168.1.130:- 与第一条路由
/25匹配:192.168.1.130AND255.255.255.128=192.168.1.128。这与目的网络192.168.1.0不符,不匹配。 - 与第二条路由
/26匹配:192.168.1.130AND255.255.255.192=192.168.1.128。这与目的网络192.168.1.64不符,不匹配。 - 与第三条默认路由匹配。
- 结论:
192.168.1.130的分组将被转发到 R3。
- 与第一条路由
- 对于
192.168.1.70:- 与第一条路由
/25匹配:192.168.1.70AND255.255.255.128=192.168.1.0。匹配。前缀长度为 /25。 - 与第二条路由
/26匹配:192.168.1.70AND255.255.255.192=192.168.1.64。匹配。前缀长度为 /26。 - 与第三条默认路由匹配。
- 结论: 有两个条目匹配(R1 和 R2)。根据最长前缀匹配原则,/26 比 /25 更长,因此选择第二条路由。
192.168.1.70的分组将被转发到 R2。
- 与第一条路由
- 对于
-
对比: 详细论述 RIP 协议和 OSPF 协议的优缺点。
答案:
- RIP (路由信息协议):
- 优点: 实现简单,配置容易,系统开销小。
- 缺点:
- 规模限制: 最大跳数限制为15,超过15则认为目标不可达,限制了网络规模。
- 收敛慢: “好消息传得快,坏消息传得慢”,网络故障信息传播速度慢,容易导致路由环路和“计数到无穷”问题。
- 度量单一: 仅以跳数作为路径度量,无法反映链路的带宽、时延等真实情况。
- 广播开销: 定期广播整个路由表,在大型网络中会产生巨大开销。
- OSPF (开放最短路径优先):
- 优点:
- 无路由环路: 基于链路状态数据库计算最短路径,从根本上避免了路由环路。
- 快速收敛: 当网络拓扑变化时,只洪泛变化的部分,收敛速度快。
- 度量灵活: 可以根据链路的带宽、时延等多种因素计算路径成本。
- 支持大规模网络: 通过划分区域(Area)来支持大规模网络,减少了区域内的路由信息量。
- 缺点:
- 配置复杂: 相较于RIP,OSPF的配置更复杂,需要对网络有更深入的了解。
- 系统开销大: 需要维护庞大的链路状态数据库和运行复杂的SPF算法,对路由器的CPU和内存要求更高。
- 优点:
第四章:运输层
核心知识点
-
TCP vs. UDP
- UDP: 无连接,尽力而为,面向报文,无拥塞/流量控制,首部8字节。 适用于实时性要求高、能容忍少量丢包的场景(如直播、语音通话、DNS)。
- TCP: 面向连接,可靠,面向字节流,有拥塞/流量控制,首部20字节起。 适用于要求数据完整准确的场景(如文件传输、网页浏览、邮件)。
-
TCP 连接管理
- 三次握手: 确保双方都具有收发能力。 防止已失效的连接请求报文段突然又传送到了服务器,从而引发错误。
- 四次挥手: 由于 TCP 是全双工的,一方关闭发送通道后(发送FIN),另一方可能还有数据要发送,所以不能立即关闭接收通道。 必须等到另一方也发完数据并发送FIN后,才能真正关闭整个连接。
- TIME_WAIT 状态 (2MSL 等待): 主动关闭方在发送最后一个 ACK 后等待 2MSL。 目的: 1. 确保最后的 ACK 能到达:如果被动方没收到 ACK,会重传 FIN,主动方能再次响应。 2. 防止旧连接的报文干扰新连接: 等待足够长的时间,让本次连接中所有在网络中滞留的报文都自然消失。
-
TCP 拥塞控制
- 核心算法: 慢开始、拥塞避免、快重传、快恢复。
- 算法流程:
- 慢开始:
cwnd<ssthresh时,cwnd指数增长 (每 RTT 加倍)。 - 拥塞避免:
cwnd>=ssthresh时,cwnd线性增长 (每 RTT 加 1)。 - 拥塞处理 (超时):
ssthresh = cwnd / 2,cwnd = 1,重新进入慢开始。 - 快重传与快恢复 (收到3个重复ACK): 立即重传丢失的报文段,然后
ssthresh = cwnd / 2,cwnd = ssthresh(或ssthresh+3),跳过慢开始,直接进入拥塞避免。
- 慢开始:
章节练习题与答案
- 计算: 设 TCP 的
ssthresh初始值为 16 (单位为报文段)。当cwnd上升到 20 时收到了 3 个重复的 ACK,然后在cwnd增长到 24 时网络又发生了超时。请描述从cwnd=20开始,后续cwnd和ssthresh的完整变化过程。
答案:
-
初始状态:
cwnd = 20,ssthresh = 16。 -
收到3个重复ACK:
- 触发快恢复。
ssthresh更新为cwnd / 2 = 20 / 2 = 10。cwnd更新为ssthresh = 10。- 进入拥塞避免阶段。
-
拥塞避免阶段:
cwnd线性增长。- 经过 14 个 RTT 后,
cwnd从 10 增长到10 + 14 = 24。
- 经过 14 个 RTT 后,
-
cwnd=24时发生超时:
- 触发超时重传。
ssthresh更新为cwnd / 2 = 24 / 2 = 12。cwnd被重置为1。- 进入慢开始阶段。
-
后续变化:
cwnd将从 1 开始指数增长,直到达到新的ssthresh值 12,然后再次进入拥塞避免阶段。 -
计算 (RTT): 假设 TCP 的
EstimatedRTT的初始值为 100ms,DevRTT初始值为 20ms。连续收到了三个报文段的确认,其 RTT 样本值分别为 120ms, 80ms, 100ms。假设α=0.125和β=0.25,请计算出每收到一个确认后的新EstimatedRTT,DevRTT和TimeoutInterval(RTO)。 (RTO = EstimatedRTT + 4 * DevRTT)
答案:
- 初始状态:
EstimatedRTT = 100ms,DevRTT = 20msRTO = 100 + 4 * 20 = 180ms
- 收到样本 1 (SampleRTT = 120 ms):
EstimatedRTT = (1 - 0.125) * 100 + 0.125 * 120 = 87.5 + 15 = 102.5msDevRTT = (1 - 0.25) * 20 + 0.25 * |120 - 102.5| = 15 + 0.25 * 17.5 = 19.375msRTO = 102.5 + 4 * 19.375 = 102.5 + 77.5 = 180ms
- 收到样本 2 (SampleRTT = 80 ms):
EstimatedRTT = 0.875 * 102.5 + 0.125 * 80 = 89.6875 + 10 = 99.6875msDevRTT = 0.75 * 19.375 + 0.25 * |80 - 99.6875| = 14.53125 + 4.921875 = 19.453125msRTO = 99.6875 + 4 * 19.453125 = 99.6875 + 77.8125 = 177.5ms
- 收到样本 3 (SampleRTT = 100 ms):
EstimatedRTT = 0.875 * 99.6875 + 0.125 * 100 = 87.2265625 + 12.5 = 99.7265625msDevRTT = 0.75 * 19.453125 + 0.25 * |100 - 99.7265625| = 14.58984375 + 0.068359375 ≈ 14.658msRTO = 99.727 + 4 * 14.658 = 99.727 + 58.632 = 158.359ms
- 原理: TCP 在断开连接的四次挥手中,为什么主动关闭方在最后需要进入
TIME_WAIT状态并等待 2MSL?
答案:
进入 TIME_WAIT 状态并等待 2MSL(两倍的最长报文段寿命)是为了解决两个关键问题:
- 保证连接的可靠关闭: 这是为了确保被动关闭方能够收到最后一个 ACK 报文段。如果这个 ACK 丢失,被动方会因收不到确认而超时重传它的 FIN 报文。此时,如果主动方已经关闭,将无法响应,导致被动方无法正常关闭。而主动方在 2MSL 的等待时间内,仍能接收到重传的 FIN,并重新发送 ACK,从而保证双方都能正常关闭。
- 防止已失效的报文段干扰新连接: 2MSL 的时间足以让本次连接中所有在网络中滞留的报文段都自然消失。这样可以防止这些“迷路”的旧报文段在稍后建立的、使用相同端口号的新连接中被误认为是新数据,从而避免数据混淆。
第五章:应用层
核心知识点
-
DNS (域名系统)
- 查询方式:
- 递归查询: “替我查,告诉我最终结果”。 通常发生在主机与本地域名服务器之间。
- 迭代查询: “告诉我下一步该问谁”。 通常发生在本地域名服务器与各级域名服务器(根、顶级、权限)之间。
- 查询方式:
-
邮件协议
- SMTP: 应用层协议,基于 TCP,端口 25。用于发送和服务器间中转邮件。
- POP3: 应用层协议,基于 TCP,端口 110。用于从服务器拉取邮件到本地,通常是“下载并删除”。
- ICMP: 网络层协议,封装在 IP 数据报中。 用于在 IP 主机、路由器之间传递控制消息和差错报告,
ping就是其应用。
-
HTTP (超文本传输协议)
- 特点: 应用层协议,基于 TCP,无状态。
- 连接方式:
- 非持续连接 (HTTP/1.0): 每个请求/响应都建立一个新的 TCP 连接。
- 持续连接 (HTTP/1.1): 在一个 TCP 连接上可以传输多个请求/响应。
- 非流水线: 客户端收到前一个响应后才能发送下一个请求。
- 流水线: 客户端可以像流水线一样连续发送多个请求,无需等待响应,极大地提高了效率。
章节练习题与答案
- 综合: 解释 POP3 和 ICMP 协议的工作原理。它们之间有何联系和区别?
答案:
- 工作原理:
- POP3: 用户代理(客户端)与邮件服务器建立 TCP 连接后,通过一系列命令(如
user,pass,list,retr,dele)进行身份认证,获取邮件列表,下载邮件内容,并最终可以选择在服务器上删除邮件。它是一种“拉”协议。 - ICMP: 它不用于传输用户数据。当网络中发生错误(如主机不可达、端口未开放)或需要进行网络诊断时,路由器或主机会生成 ICMP 报文,封装在 IP 数据报中发送给源主机,以报告情况。
ping命令发送 ICMP 回送请求,目标主机则返回 ICMP 回送回答。
- POP3: 用户代理(客户端)与邮件服务器建立 TCP 连接后,通过一系列命令(如
- 联系和区别:
- 联系: 几乎没有直接联系。两者都是 TCP/IP 协议族的重要组成部分。
- 区别:
- 所属层次: POP3 是应用层协议;ICMP 是网络层协议。
- 功能: POP3 用于获取邮件;ICMP 用于网络控制和差错报告。
- 传输协议: POP3 运行在可靠的 TCP 之上;ICMP 本身封装在 IP 数据报中。
-
场景分析: 当你在浏览器中首次访问一个域名(例如
www.example.com)时,你的主机需要向本地域名服务器发起查询。- a) 描述本地域名服务器采用迭代查询方式,从根域名服务器开始,直到获取到 IP 地址的全过程。
- b) 在此过程中,如果本地域名服务器的缓存为空,它最少和最多需要发送几个 DNS 请求报文?请分别说明是哪种情况。
答案: - a) 迭代查询过程:
- 主机 -> 本地域名服务器: 主机向其配置的本地域名服务器发送对
www.example.com的递归查询请求。 - 本地域名服务器 -> 根域名服务器: 本地域名服务器向一个根域名服务器发送迭代查询请求。
- 根 -> 本地: 根服务器回复:“我不知道
www.example.com的 IP,但.com顶级域名服务器的地址是这些,你去问它们。” - 本地 -> .com 顶级域名服务器: 本地域名服务器向一个
.com顶级域名服务器发送迭代查询请求。 - .com -> 本地:
.com服务器回复:“我不知道www.example.com的 IP,但example.com的权限域名服务器的地址是这些,你去问它们。” - 本地 -> example.com 权限域名服务器: 本地域名服务器向
example.com的权限域名服务器发送迭代查询请求。 - 权限 -> 本地:
example.com的权限服务器查找记录并回复:“www.example.com的 IP 地址是A.B.C.D。” - 本地 -> 主机: 本地域名服务器将查询到的 IP 地址
A.B.C.D返回给主机,并缓存该记录。
- 主机 -> 本地域名服务器: 主机向其配置的本地域名服务器发送对
- b) 请求报文数量:
- 最常见/最多: 3 个。如上所述,分别向根、.com顶级域、example.com权限域各发送一个请求。
- 最少: 2 个。在一种特殊情况下,如果
.com顶级域名服务器本身就包含了www.example.com的完整记录(这种情况称为“粘合记录”或Glue Record,通常是为了避免循环依赖),那么它可以直接返回最终IP,跳过第三步。因此最少需要向根和顶级域发送2个请求。
-
对比: 简述 HTTP/1.1 的持续连接相比于 HTTP/1.0 的非持续连接有什么优点?流水线和非流水线的持续连接又有什么区别?
答案:
- 持续连接的优点:
- 减少延迟: 避免了为每个请求都重新建立 TCP 连接的开销。TCP 的三次握手本身就需要 1.5 个 RTT,对于包含大量小文件(如图片、CSS)的网页,这能极大地减少总的加载时间。
- 降低服务器负担: 减少了服务器为频繁的 TCP 连接建立和关闭所消耗的 CPU 和内存资源。
- 提高网络效率: 避免了因 TCP 慢开始算法为每个新连接重新探测网络带宽而导致的效率低下问题。
- 流水线 vs 非流水线:
- 非流水线 (Pipelining: Off): 这是一种“请求-等待-响应-请求-...”的串行模式。客户端在发送一个请求后,必须等待收到该请求的响应,然后才能发送下一个请求。
- 流水线 (Pipelining: On): 这是一种并行模式。客户端可以连续发送多个请求,而无需等待前一个请求的响应。服务器则按照收到请求的顺序,依次将响应返回。这进一步减少了网络空闲时间,提高了吞吐率。
- 1本网站名称:MuQYY
- 2本站永久网址:www.muqyy.top
- 3本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长 微信:bwj-1215 进行删除处理。
- 4本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
- 5本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
- 6本站资源大多存储在云盘,如发现链接失效,请联系我们我们会在第一时间更新。








暂无评论内容