数据链路层

数据链路层的流量控制与可靠传输机制

GNB

场景2:
WT=7(正确情况)
发送方发送 7 个帧:

  1. 发送序号 0, 1, 2, 3, 4, 5, 6(预留序号 7)。
    接收方返回 ACK 0~ACK 6:
    假设所有 ACK 到达,发送方滑动窗口,发送 新帧 7, 0, 1, 2, 3, 4, 5。
    即使 ACK 全部丢失:
    发送方重传的是 旧的 0~6,而接收方此时期待的是 7 或 0~5。
    接收方发现 重复的 0~6 会丢弃,避免歧义。
SR

404
404

为什么TDM(时分复用)对带宽有要求

  • TDM的基本原理

TDM(时分复用)通过 将时间划分为固定长度的时隙,让多个信号轮流占用信道:

  1. 发送端:不同用户的信号被分配到不同的时间片(如用户1用第1个时隙,用户2用第2个时隙……)。
  2. 接收端:根据时间片提取对应信号,完成多路信号的分离。
  • 带宽要求的核心原因

TDM对带宽的要求源于信号调制后的复合信号特性:复合信号的带宽:将多个信号按时间片交织后,复合信号的频谱会扩展,其带宽可能远大于单个信号带宽。
原因:时域上的快速切换(时隙轮换)会导致频域的高频成分增加(傅里叶变换性质)。

  • 举例:

若将 4 路 4 kHz 的语音信号通过 TDM 合并:时隙切换速度需足够快(如每秒 8000 次,每时隙 125 μs),复合信号的带宽可能扩展到 数十kHz。若信道带宽不足,高频成分会被滤除,导致信号失真。

令牌环网络的工作流程

A → B → C → D →(令牌循环)
站点要发送数据时

  • 举例:站点B有数据要发给站点D。
  1. 等待令牌:B必须等到令牌传到自己手里(比如当前令牌在A→B的路径上)。
  2. 拿到令牌后:
    B把令牌改成数据帧(贴上数据,写上目的地址D)。
    发送数据帧到环上(B→C→D→A→B)。
  3. 数据帧的旅程
    途经C:C检查数据帧,发现不是发给自己的,直接转发给D。
    到达D:D发现是发给自己的,复制数据,但继续转发帧(因为帧要回到发送者B)。
    回到B:B收到自己发的数据帧后,不再转发,而是:
    检查数据是否成功传输(通过帧状态位)。
    回收数据帧,重新生成一个干净的令牌。
    把新令牌传给下一个站点(B→C)。

为什么全双工模式下不需要碰撞检测?

  • 半双工(Half-Duplex):
  1. 同一时间只能单向通信(如对讲机)。
  2. 发送和接收共享同一信道,因此可能发生冲突(两个设备同时发数据)。
  3. 需要碰撞检测(如CSMA/CD):设备边发边听,发现冲突后重传。
  • 全双工(Full-Duplex):
  1. 双向同时通信(如电话)。
  2. 发送和接收使用独立的物理通道(如双绞线的两对线),互不干扰。
  3. 无需碰撞检测:因为发送和接收完全隔离,不可能冲突。

为什么网卡同时涉及数据链路层和物理层?

  1. 物理层(Layer 1)的职责

信号转换:
将计算机内部的数字信号(0/1)转换为适合传输的 电信号(以太网)、光信号(光纤) 或 电磁波(Wi-Fi)。

  1. 数据链路层(Layer 2)的职责

帧的封装与解封装:
将网络层(如IP数据包)加上 帧头(源/目的MAC地址)和 帧尾(FCS校验)。

CSMA/CD协议中最短帧长的界定

在以太网(CSMA/CD)中:

  1. 发送数据时,设备会持续监听信道(边发边听)。
  2. 如果发送的数据和监听到的信号不一致,说明发生了冲突。
  3. 一旦检测到冲突发送方会立即停止发送,并执行退避算法等待重传。

如果帧太短的话:

  1. 在冲突信号返回 A 之前,A 已经发完了整个帧。
  2. A 停止监听信道(因为帧已经发完),无法检测到冲突。
  3. 结果:A 以为发送成功,但实际上数据已经因冲突被破坏。

需要界定最短帧长,那么临界点就是传数据的时间占用整个争用期(2τ)

为什么“2τ × 速率”是最短帧长?

  1. 2τ 是冲突信号返回的最长时间。
  2. 速率 决定单位时间能发送多少比特。
  3. 乘积 就是“在冲突信号返回前,最少要发送多少比特”。
  4. 这里的(τ)为总线传播时延,就是在链路上传输消耗的时间。
  5. 总而言之:

以太网:物理上星型结构、逻辑上是总线型结构

404

由于电信号在网线中传输时会衰减,集线器的作用是 接收信号并重新放大,再广播给所有端口。

IEEE 802.11 无线局域网

有固定设施的

404

为什么AP会改变?

  1. 无线信号覆盖限制:单个AP的覆盖范围有限,移动设备(A)远离原AP(AP1)时,信号变弱,需切换到新AP(AP2)。
  2. 无缝漫游:在ESS中,所有AP共享同一个网络标识(SSID),设备可自动切换AP,而用户无感知。
  3. AP改变但通信不中断:
  4. 高层协议(如TCP/IP)不受影响,因为分配系统(DS)确保了数据转发。
  5. 只有物理层和链路层的连接点(AP)发生变化。
无固定设施的自组织网络

军事战场通信

  • 场景:
    士兵携带的无线设备(如战术电台、无人机)在野外快速部署,没有固定基站。

  • 自组网如何工作:

设备自动发现附近的战友设备,形成临时网络。

每台设备既是通信终端,也是路由器,负责转发其他设备的数据。

如果某个士兵移动(如前进或撤退),网络拓扑动态调整,自动选择新路径。

  • 与移动IP的区别:

移动IP需要依赖固定基站和互联网基础设施,而自组网完全独立运行。

  • 注意区分与移动IP的区别
    404

  • 手机热点是自组织网络吗?
    404

PPP-P

  1. LCP 负责建立、维护和终止物理连接,并协商链路层参数。

调制解调器拨号后,LCP先和ISP的服务器“握手”。
双方协商:“我们用CHAP认证,不压缩数据,链路超时时间设为30秒”。
若协商成功,链路建立;若失败(如密码错误),断开连接。

  1. NCP 在LCP建立链路后,配置网络层参数(如IP地址)。

LCP完成链路建立后:
NCP(具体为IPCP)向ISP请求:“请给我一个IP地址”。
ISP回复:“你的IP是192.168.1.100,DNS是8.8.8.8”。
你的电脑获得IP,开始上网。

  1. 组帧的方法

不同链路层协议的转发机制的差异

  • 以太网(IEEE 802.3)

使用CSMA/CD(半双工)或全双工模式,依赖交换机转发。

  • PPP协议(点对点链路)

简化帧格式(无MAC地址),直接转发到唯一对端。

  • 无线网络(IEEE 802.11)

通过AP(接入点)转发,MAC地址包含发送端、接收端和BSSID。

广播域(Broadcast Domain)与冲突域(Collision Domain)

  1. 广播域(Broadcast Domain)

定义:
广播域是指网络中能接收到同一广播消息的所有设备的集合。当一台设备发送广播包(如目的IP为255.255.255.255或MAC为FF:FF:FF:FF:FF:FF)时,该包会被广播域内的所有设备接收和处理。

关键设备的影响:

路由器:分隔广播域(默认不转发广播包),每个路由器接口属于不同的广播域。

交换机:不能分隔广播域(会泛洪广播包),所有连接的设备属于同一广播域。

集线器/中继器:不能分隔广播域(物理层设备,直接转发所有信号)。

示例:
若两个局域网通过路由器连接,则它们是两个独立的广播域;若仅通过交换机连接,则属于同一个广播域。

  1. 冲突域(Collision Domain)

定义:
冲突域是指网络中共享同一信道、可能发生数据冲突(Collision)的设备范围。当多台设备同时发送数据时,冲突域内的设备需要竞争信道(如CSMA/CD机制)。

关键设备的影响:

交换机:分隔冲突域(每个交换机端口是一个独立的冲突域),因为交换机支持全双工通信。

路由器:分隔冲突域(每个接口独立)。

集线器/中继器:不能分隔冲突域(所有连接的设备共享同一信道)。

示例:
若10台设备连接到一个集线器,它们属于同一个冲突域;若连接到一个交换机,则每台设备独占一个冲突域。

如何理解“数据链路层中,流量控制与可靠传输机制是交织在一起的”?

在计算机网络的数据链路层(Data Link Layer),流量控制(Flow Control)可靠传输(Reliable Delivery) 是两个核心功能,它们通常紧密结合,共同确保数据高效、无差错地传输。以下是具体解释:


1. 流量控制(Flow Control)
目的:防止发送方发送数据过快,导致接收方来不及处理而丢包。
实现方式

  • 滑动窗口协议(Sliding Window):动态调整发送窗口大小,限制未确认的数据帧数量。
  • 停等协议(Stop-and-Wait):每发一帧,必须等确认(ACK)后再发下一帧(效率低,但简单)。

关键点:流量控制主要解决 “接收方处理能力” 问题,避免缓冲区溢出。


2. 可靠传输(Reliable Delivery)
目的:确保数据帧正确、按序到达接收方,避免丢失或错误。
实现方式

  • 确认应答(ACK):接收方收到数据后返回确认信号。
  • 超时重传(Retransmission):如果发送方未收到 ACK,会重发数据帧。
  • 序号机制(Sequence Numbers):确保数据按顺序接收,避免重复或乱序。

关键点:可靠传输主要解决 “数据丢失或错误” 问题。


3. 为什么说它们“交织在一起”?
在数据链路层,流量控制和可靠传输通常由同一机制(如滑动窗口协议)同时实现,原因如下:

(1)滑动窗口协议同时实现两种功能

  • 流量控制:通过调整窗口大小限制发送速率。
  • 可靠传输:通过 ACK 和重传确保数据正确到达。

例子(TCP 的类似机制):

  • 发送方窗口大小 = 接收方剩余缓冲区大小(流量控制)。
  • 如果某个帧丢失,接收方会要求重传(可靠传输)。

(2)停等协议(简单但低效)

  • 每发一帧必须等 ACK(可靠传输)。
  • 由于每次只能发一帧,天然限制了发送速率(流量控制)。

(3)ARQ(自动重传请求)机制

  • 回退 N 帧(Go-Back-N, GBN)选择重传(Selective Repeat, SR) 协议同时涉及:
    • 流量控制:限制未确认帧的数量(窗口大小)。
    • 可靠传输:通过 ACK/NAK 和重传保证数据正确性。

4. 总结

功能 流量控制(Flow Control) 可靠传输(Reliable Delivery)
核心目标 防止接收方过载 防止数据丢失或错误
实现方式 滑动窗口、停等协议 ACK、超时重传、序号机制
交织点 滑动窗口同时控制速率和可靠性 ARQ 机制(如 GBN、SR)

结论
在数据链路层,流量控制和可靠传输通常由同一套协议(如滑动窗口、ARQ)实现,因此它们是紧密交织的。这种设计既保证了数据传输的可靠性,又避免了接收方被淹没,提高了整体效率。

网络层

网络地址转换(NAT)

  • 它把内部网络(例如家或公司的局域网)的私有IP地址,转换成对外的公共IP地址,让内部设备能访问互联网。
  • 例如:
  1. 有3台设备(手机、电脑、平板),都通过路由器连接互联网。
  2. 内部IP(路由器分配的私有地址):
    手机:192.168.1.2
    电脑:192.168.1.3
    平板:192.168.1.4
  3. 外部IP(运营商提供的公共地址):123.45.67.89
  4. 当你的手机访问某个网站(例如陈同学的桃花源)时,数据包先发给路由器,路由器会把手机的私有IP(192.168.1.2)替换成公共IP(123.45.67.89),并记录这个连接。网站收到请求后,只会看到公共IP(123.45.67.89),不知道内部具体是哪台设备发的请求。网站返回数据时,路由器根据之前的记录,再把数据转发给手机。

私有IP地址

A_HOME和B_HOME的路由器都用同样的私有IP段(比如192.168.1.1)。

A的电脑IP是192.168.1.2,B的电视也是192.168.1.2。

私有IP只在本地有效:

A的192.168.1.2只在A的局域网内有效,B的192.168.1.2也只在B有效。

当A电脑访问陈同学的网站时,路由器会把私有IP(192.168.1.2)转换成公共IP(比如123.45.67.89)。

通过路由器连接IPv4和IPv6网络

  • 隧道技术(Tunneling)

两个IPv6网络通过IPv4互联网连接:

  1. 由器A将IPv6数据包封装为IPv4数据包,目标为路由器B的IPv4地址。

  2. 路由器B解封装后,将原始IPv6数据包转发到本地IPv6网络。

DHCP

DHCP的工作流程(4个步骤)

假设一台新电脑(DHCP客户端)连接到公司网络,需要获取IP地址:

(1)DHCP发现(DHCP Discover)电脑(刚开机,IP=0.0.0.0)广播一条消息:“谁是DHCP服务器?我需要一个IP地址!”源IP:0.0.0.0(因为还没有IP)目标IP:255.255.255.255(全网广播)目标MAC:FF:FF:FF:FF:FF:FF(局域网广播)
为什么用广播?→电脑不知道DHCP服务器在哪,只能大喊一声问所有人。

(2)DHCP提供(DHCP Offer)DHCP服务器(比如公司内网的服务器)听到广播后回应:“我这有一个IP:192.168.1.100,你要吗?”源IP:DHCP服务器的IP(如192.168.1.1)目标IP:255.255.255.255(仍然广播,因为电脑还没IP)提供的配置:IP地址、子网掩码、网关、DNS、租期(如24小时)
注意:如果网络中有多个DHCP服务器,电脑会收到多个Offer,通常选择第一个。

(3)DHCP请求(DHCP Request)电脑选择其中一个Offer(比如192.168.1.100),并广播确认:“我要用192.168.1.100,请确认!”源IP:0.0.0.0(仍未正式分配)目标IP:255.255.255.255(继续广播)
为什么还要广播?→告诉其他DHCP服务器“我已选好,你们不用再给我IP了”。

(4)DHCP确认(DHCP Ack)DHCP服务器最终确认分配:“OK,192.168.1.100归你了,租期24小时!”源IP:DHCP服务器IP目标IP:255.255.255.255正式分配:IP、子网掩码、网关、DNS等信息。
此时,电脑正式获得IP,可以上网了!

IPv6的QoS

  • 是什么:

在有限的带宽下,提供端到端的可靠保证

  • IPv6 通过以下方式原生支持 QoS:
  1. 流量类别(Traffic Class, 8位)
    标记数据包的优先级(如视频通话 > 网页浏览)。

  2. 流标签(Flow Label, 20位)
    标识同一数据流(如一场视频会议的所有包),确保路由器统一处理。

  • 某公司使用 IPv6 网络进行跨国视频会议,需保证低延迟、不卡顿。

步骤:

  1. 标记优先级

视频会议终端将数据包的 Traffic Class 设为 0xB8(对应实时交互类流量)。
Flow Label 设为唯一值(如 0xABC12),标识此会议流。

  1. 路由器处理

路由器检测到 Traffic Class = 0xB8,优先转发该数据包。
相同 Flow Label 的包走同一路径,避免乱序。

  1. 带宽保障

若网络拥塞,普通下载流量(Traffic Class = 0x00)会被延迟,视频会议包仍优先传输。

  1. 效果:

即使网络带宽紧张,视频会议仍保持流畅,而文件下载速度暂时下降。

RIP 中的水平分割与毒性逆转

404

  • 水平分割的作用
  1. 规则:如果路由器从某个接口学到一条路由,则不会通过同一接口再通告该路由。

  2. 本例:

RouterB 从 RouterA 的接口学到 10.0.0.0/8,因此不会通过同一接口将这条路由发回给 RouterA。

即使 RouterA 的直连路由失效,RouterB 也不会向 RouterA 发送错误信息,从而避免环路。

  • 使用毒性逆转(Poison Reverse)的效果

毒性逆转是水平分割的增强版,其核心思想是:
“如果路由器从某个接口学到一条路由,它仍然会通过同一接口通告该路由,但会将其标记为不可达(跳数=∞)。”

404

注意:

  1. 当 RouterA 的直连路由 10.0.0.0/8 失效时:RouterA 会立即删除直连路由。
  2. 水平逆转超时速度慢:RouterB 会继续保留“10.0.0.0/8 可通过 RouterA 到达(跳数=1)”的路由,直到路由超时计时器(Route Age Timer)到期(如RIP默认是180秒)。

移动 IP 通信过程示例

  • 场景描述

假设你是一台笔记本电脑(移动节点),IP 地址是 192.168.1.100(归属地址),原始网络是“家庭 Wi-Fi”(归属网络)。
当你带着笔记本从家移动到公司时,公司网络是被访网络,你需要保持 192.168.1.100 不变以维持正在进行的视频会议。

  • 步骤详解
  1. 在家(归属网络)

你的笔记本通过家庭 Wi-Fi(192.168.1.0/24)联网,本地代理(家庭路由器)记录你的归属地址 192.168.1.100。

  1. 移动到公司(被访网络)

公司网络是 10.0.0.0/8,笔记本连接到公司 Wi-Fi。

外地代理(公司路由器)为你分配一个转交地址(如 10.0.0.5),并通知你的本地代理:“192.168.1.100 现在在 10.0.0.5”。

  1. 数据转发流程

同事(IP 192.168.1.200)给你发送数据包,目标地址是你的归属地址 192.168.1.100。

本地代理(家庭路由器)拦截该数据包,通过隧道封装(如 IP-in-IP)发送到转交地址 10.0.0.5。

外地代理(公司路由器)解封装数据包,最终递交给你的笔记本。

  1. 你的回复

笔记本直接通过公司网络(10.0.0.0/8)发送回复,无需经过本地代理(优化路径)。

路由器的交付

直接交付-全程不经过路由器

即若同属一个子网的A与B通信:主机 A(192.168.1.2)和主机 B(192.168.1.3)连接在同一交换机的局域网中(子网 192.168.1.0/24)。

  1. 主机 A 判断 192.168.1.3 属于同一子网。

  2. 主机 A 发送 ARP 请求:“谁是 192.168.1.3?请告诉你的 MAC 地址”。

  3. 主机 B 回复 ARP 响应,提供自己的 MAC 地址。

  4. 主机 A 将 ICMP 请求包(ping)封装目标 MAC 地址,通过交换机直接交付给主机 B。

间接交付-多次直接交付

传输层

端口

实际通信流程示例

  • 场景:用FTP客户端(端口21)上传文件到服务器。
  1. 客户端:

随机选择源端口(如50001),目标端口=21。
发送数据包:源Socket=192.168.1.100:50001,目的Socket=203.0.113.5:21。

  1. 服务器:

通过端口21识别FTP服务进程,处理请求。
返回数据时,源Socket=203.0.113.5:21,目的Socket=192.168.1.100:50001。

  1. 多任务支持:

同一台服务器可同时处理多个FTP连接,因为每个客户端的源Socket不同(如192.168.1.100:50001 vs 192.168.1.101:60000)

Q:UDP完全不靠谱吗?

不是!UDP的不可靠指协议本身不提供重传等机制,但应用层可自行实现可靠性(如QUIC协议)。

Q:TCP一定比UDP慢?

不一定!在丢包率低的网络中,TCP的流量控制能优化吞吐量;而UDP在高丢包时可能因无重传更快。

TCP 三次握手

  • 为什么要使用三次握手?
  1. 不使用三次握手

若客户端发送SYN=1, Seq=100(第一次握手),但因网络延迟未到达服务器。

客户端超时重传SYN=1, Seq=200(新请求),成功建立连接并传输数据后关闭。

此时旧SYN(Seq=100)突然到达服务器,若仅用两次握手:

服务器误认为新连接,回复SYN-ACK并分配资源。

客户端实际已关闭连接,不会回复ACK,导致服务器一直等待(资源浪费)。

  1. 三次握手如何解决:

客户端对旧SYN-ACK(应答Seq=100)会回复RST(重置),因为当前连接已失效。(客户端已经完成了Seq=200的连接并关闭了。它现在并没有处于“SYN_SENT”或“ESTABLISHED”状态。当它收到这个SYN-ACK(Seq=300,对Seq=100的响应)时,发现这不是自己当前期望的报文。于是客户端直接丢弃这个SYN-ACK,并发送RST(Reset)报文给服务器。RST的作用是告诉服务器:“这个连接我已经不认了,请你别等了。”)

关键点:第三次握手(ACK)是客户端对服务器响应的确认,表明连接是“新鲜”的。

应用层

域名解析过程示例(以查询 1chendian2.github.io 为例)

假设你的计算机(客户机)需要访问 1chendian2.github.io,但不知道它的 IP 地址,于是触发 DNS 解析过程。整个过程涉及 递归查询 + 迭代查询,并可能发送 最多 8 个 UDP 报文(4 次查询 + 4 次响应)。

步骤详解

  • ① 客户机 → 本地域名服务器(递归查询)
  1. 动作:你的计算机向 本地 DNS 服务器(如 ISP 提供的 DNS 服务器)发送一个 DNS 请求报文(查询 1chendian2.github.io 的 IP)。
  2. 查询方式递归查询(即本地 DNS 服务器必须返回最终结果,不能让你自己去问其他服务器)。

报文计数

  • 查询报文 1(客户机 → 本地 DNS)
  • 响应报文 1(本地 DNS → 客户机,但此时可能无缓存,需后续查询)

  • ② 本地 DNS 服务器查询缓存
  1. 如果本地 DNS 服务器缓存中有 1chendian2.github.io 的记录,直接返回 IP(解析结束)。
  2. 若无缓存,则本地 DNS 服务器代表客户机,向 根域名服务器 发起 迭代查询

  • ③ 本地 DNS → 根域名服务器(迭代查询)
  1. 动作:本地 DNS 服务器向 根域名服务器 查询 1chendian2.github.io 的 IP。(三级域名的网站、四级域名网站见2016计算机408考研)
  2. 根域名服务器回复:“我不知道 1chendian2.github.io 的 IP,但 .com 顶级域名服务器(TLD)的地址是 X.X.X.X,你去问它。”

报文计数

  • 查询报文 2(本地 DNS → 根服务器)
  • 响应报文 2(根服务器 → 本地 DNS,返回 .com TLD 地址)

  • ④ 本地 DNS → .com 顶级域名服务器(迭代查询)
  1. 动作:本地 DNS 服务器向 .com TLD 服务器(dns.com)查询 1chendian2.github.io 的 IP。
  2. TLD 服务器回复:“我不知道 1chendian2.github.io 的 IP,但 abc.com 的权威域名服务器(dns.abc.com)的地址是 Y.Y.Y.Y,你去问它。”

报文计数

  • 查询报文 3(本地 DNS → .com TLD)
  • 响应报文 3(.com TLD → 本地 DNS,返回 dns.abc.com 地址)

  • ⑤ 本地 DNS → abc.com 权威域名服务器(迭代查询)
  1. 动作:本地 DNS 服务器向 dns.abc.com(权威服务器)查询 1chendian2.github.io 的 IP。
  2. 权威服务器回复:“1chendian2.github.io 的 IP 是 192.0.2.100。”

报文计数

  • 查询报文 4(本地 DNS → dns.abc.com
  • 响应报文 4(dns.abc.com → 本地 DNS,返回 1chendian2.github.io 的 IP)

  • ⑥ 本地 DNS 缓存并返回结果给客户机
  1. 动作:本地 DNS 服务器缓存 1chendian2.github.io 的 IP(192.0.2.100),然后返回给客户机。
  2. 客户机 拿到 IP 后,即可访问 1chendian2.github.io

报文计数

  • 响应报文 5(本地 DNS → 客户机,返回最终 IP)

  • 总结(报文流程)
步骤 查询方 → 被查询方 查询方式 返回内容 报文类型
客户机 → 本地 DNS 递归查询 (无缓存,需进一步查询) 查询 1
本地 DNS → 根服务器 迭代查询 .com TLD 服务器地址 查询 2 + 响应 2
本地 DNS → .com TLD 迭代查询 abc.com 权威服务器地址 查询 3 + 响应 3
本地 DNS → dns.abc.com 迭代查询 1chendian2.github.io 的 IP 查询 4 + 响应 4
本地 DNS → 客户机 递归响应 192.0.2.100 响应 5

总报文数:5 次查询/响应(若严格按 UDP 计算,可视为 8 个报文)。


  • DNS 缓存优化
  1. 本地 DNS 缓存:存储最近查询的域名,减少重复查询。
  2. 客户机缓存:如浏览器、操作系统也会缓存 DNS 记录(TTL 到期后清除)。
  3. 减少查询次数:若缓存命中,可跳过部分步骤(如直接问权威服务器)。

  • 关键点

递归查询:客户机要求本地 DNS 服务器“必须给我最终答案”。
迭代查询:本地 DNS 服务器一步步问其他服务器(根 → TLD → 权威)。
UDP 报文:DNS 默认使用 UDP(快速、轻量),但大响应可能用 TCP。
缓存机制:提高解析速度,减少根服务器压力。

这样,1chendian2.github.io 的 IP 就被成功解析,计算机可以访问该网站了!

FTP

FTP 工作原理详解(以文件传输为例)

FTP(File Transfer Protocol,文件传输协议)用于在客户端和服务器之间传输文件。它使用 两个独立的 TCP 连接控制连接(端口 21)和 数据连接(端口 20)。下面以客户端上传文件 example.txt 到 FTP 服务器为例,详细说明 FTP 的工作流程。


  1. FTP 连接建立(控制连接)

① 客户端发起控制连接(TCP 三次握手)

  • 动作:客户端向 FTP 服务器的 21 端口 发起 TCP 连接请求(SYN)。
  • 服务器响应:服务器接受连接(SYN-ACK),完成三次握手(ACK)。
  • 作用:建立 控制连接,用于发送 FTP 命令(如登录、切换目录、上传/下载请求等)。

示例命令(客户端发送):

1
2
USER username  // 输入用户名
PASS password // 输入密码

  1. 文件传输(数据连接)
    FTP 的数据连接有两种模式:主动模式(PORT)被动模式(PASV)

(1)主动模式(PORT)—— 服务器主动连接客户端
② 客户端发送 PORT 命令

  • 动作:客户端告诉服务器:“我在 IP:端口(如 192.168.1.100:5000)等你,请用 20 端口 连接我。”
  • 服务器响应:服务器从 20 端口 发起 TCP 连接至客户端指定的端口(192.168.1.100:5000)。

③ 数据传输

  • 动作:客户端发送 STOR example.txt(上传)或 RETR example.txt(下载)。
  • 数据流:文件内容通过 数据连接(20 → 5000)传输。

适用场景:客户端位于公网(无防火墙限制),服务器能直接访问客户端。


(2)被动模式(PASV)—— 客户端主动连接服务器
② 客户端发送 PASV 命令

  • 动作:客户端请求服务器:“请告诉我一个端口,我来连接你。”
  • 服务器响应:服务器随机开放一个端口(如 3000),并回复:227 Entering Passive Mode (192.168.1.1,3000)

③ 客户端连接服务器端口

  • 动作:客户端主动连接服务器的 3000 端口,建立数据通道。

④ 数据传输

  • 动作:客户端发送 STOR example.txtRETR example.txt
  • 数据流:文件内容通过 数据连接(客户端 → 3000)传输。

适用场景:客户端位于 NAT/防火墙后(如家庭网络),无法被服务器直接访问。


  1. 连接关闭
    ⑤ 传输完成,关闭连接
  • 控制连接:保持开放,可继续发送其他命令(如 LIST 查看目录)。
  • 数据连接:传输完成后立即关闭。
  • 退出:客户端发送 QUIT,服务器关闭控制连接。

  • FTP 关键特点总结
特性 说明
双通道 控制连接(21) + 数据连接(20 或 PASV 随机端口)
传输模式 主动模式(PORT) / 被动模式(PASV)
协议依赖 基于 TCP,确保可靠传输
权限管理 支持用户名/密码认证,也可匿名登录(anonymous)
跨平台 可在不同操作系统(Windows/Linux)间传输文件

  • FTP 与 HTTP 对比
对比项 FTP HTTP
连接方式 双连接(控制+数据) 单连接(请求-响应后关闭)
传输效率 适合大文件(可断点续传) 适合小文件(无状态)
安全性 默认明文(可搭配 FTPS/SFTP) 可加密(HTTPS)
用途 文件管理(上传/下载/删除) 网页访问(GET/POST)

  • 实际应用场景
  1. 网站维护:通过 FTP 上传网页文件至服务器。
  2. 企业备份:自动备份数据库至远程 FTP 存储。
  3. 匿名共享:提供公共文件下载(如 Linux 镜像站)。

通过上述流程,FTP 实现了高效、灵活的文件传输,适用于各种网络环境!

DNS(域名系统) 相关的记录类型

  1. A记录(Address Record)
  • 作用:将域名指向一个 IPv4地址(如 192.0.2.1)。
1
2
example.com.    A    192.0.2.1
# 表示访问 example.com 时解析到 192.0.2.1。
  • 类似记录:

AAAA记录:指向IPv6地址(如 2001:db8::1)。

  • 负载均衡:

通过轮询A记录来实现。

  1. CNAME记录(Canonical Name Record)
  • 作用:将域名 别名 指向另一个域名(真实域名),实现间接解析。
1
2
www.example.com.    CNAME    example.com.
# 访问 www.example.com 时,实际解析到 example.com 的IP。
  • 注意:

CNAME不能与其他记录(如MX、TXT)共存。常用于CDN、子域名统一管理。

电子邮件

  • 发邮件:用户代理 → SMTP → 发送方SMTP服务器 → SMTP → 接收方SMTP服务器。

  • 收邮件:用户代理 ← POP3/IMAP ← 接收方服务器。

  • 异步通信:邮件存储在服务器,收件人随时拉取。

通过SMTP的“推”和POP3的“拉”,电子邮件实现了灵活、可靠的异步通信。

万维网的工作流程

  • 万维网的工作流程如下:
  1. 服务器监听TCP端口80,等待连接请求。
  2. 浏览器发起请求,与服务器建立TCP连接。
  3. 浏览器发送HTTP请求获取网页。
  4. 服务器处理请求,构建所需信息并通过HTTP响应返回。
  5. 浏览器解析响应并显示网页。
  6. 释放TCP连接。

鼠标点击一个网页链接,会发生什么?

  1. 应用层
    DHCP(若未配置IP):
    用户主机通过DHCP协议自动获取本地网络的IP地址、子网掩码、默认网关等配置(若未手动配置)。

DNS:
浏览器解析URL中的域名 www.tsinghua.edu.cn,向本地DNS服务器发起查询请求,通过递归/迭代查询最终获取目标服务器的IP地址(如 166.111.4.100)。

HTTP:
浏览器生成HTTP请求(如 GET /chn/index.htm),并依赖下层协议(TCP)传输。

  1. 传输层
    TCP连接:
    浏览器通过TCP协议与服务器建立可靠连接(三次握手),目标端口为80(HTTP默认端口)。

若使用HTTPS:还需通过TLS协议加密(涉及SSL握手)。

UDP(可选):
DNS查询通常使用UDP协议(端口53),因其无需建立连接,适合快速的小数据包传输。

  1. 网络层(网际层)
    IP路由:
    HTTP请求被封装为IP数据包,源IP(用户主机)和目标IP(清华大学服务器)由路由器基于路由表逐跳转发。

ARP:
在局域网内,通过ARP协议将网关IP地址解析为MAC地址,确保数据包能通过以太网传输。

  1. 数据链路层
    以太网(CSMA/CD):
    在本地网络中,数据包封装为以太网帧,通过MAC地址寻址。若使用有线网络,遵循CSMA/CD冲突检测机制(交换机环境下冲突较少)。

PPP(广域网):
若用户通过ISP拨号上网,数据链路层可能使用PPP协议封装IP数据包。

  1. 物理层
    数据最终转换为电信号(有线)或电磁波(无线),通过物理介质(如光纤、双绞线)传输至下一跳设备(如路由器、交换机)。

网络杂谈

嗯… 无法访问此页面

已重置连接。请尝试:检查连接、检查代理和防火墙ERR_CONNECTION_RESET

  1. dns服务器解析错误:首先电脑出现网页无法正常访问而其他应用正常,大多数人都会想到是否是dns服务器出现了解析的问题,所以他们做的第一件事情通常是将DHCP修改为手动配置dns,当然,我一开始也是这样考虑的,于是我修改了手动dns,将dns服务器配置为114.114.114.114或者国内一些主流大厂的dns服务器(如腾讯和阿里的dns服务器),但是在修改过后且用ipconfig /flushdns命令清理dns缓存后,我发现该问题依旧会复现,且在发生问题的时候,通过终端是可以ping通发生问题网站的网址的,也没有发生丢包的情况,且用nslookup命令查看dns服务器解析目标网站的ip地址,也是正常解析的,因此我排除了dns出现问题的可能。

拨号上网

拨号上网(Dial-up Internet Access) 是一种通过电话线模拟信号传输数据的早期互联网接入技术,曾在20世纪90年代至21世纪初广泛使用。其核心特点是利用电话网络和调制解调器(Modem)实现计算机与互联网服务提供商(ISP)的连接。


1. 工作原理

  • 调制解调器(Modem)
    将计算机的 数字信号 转换为电话线可传输的 模拟信号(调制),反之亦然(解调)。

    • 拨号时,Modem会发出熟悉的“嘀嘀嘀…滋滋滋”握手音。
  • 拨号过程

    1. 用户通过计算机拨叫ISP提供的电话号码(如 16300)。
    2. 电话线接通ISP的调制解调器池(Modem Pool)。
    3. 双方Modem协商连接参数(如速率:56 Kbps)。
    4. 建立PPP(点对点协议)连接,分配动态IP地址。

2. 主要特点

  • 低速传输

    • 理论最大速率 56 Kbps(实际受线路质量影响可能仅30-40 Kbps)。
    • 下载1MB文件需约3-5分钟,无法支持视频流媒体。
  • 独占电话线

    • 上网时电话无法接听或拨出(“占线”)。
    • 部分家庭安装“分线器”但会降低网速。
  • 按需连接

    • 每次上网需手动拨号,按时间计费(早期按分钟收费)。

3. 关键组件

组件 作用
调制解调器(Modem) 数模信号转换,支持拨号与数据传输。
电话线(PSTN) 物理传输介质,使用普通铜质电话线路。
ISP接入服务器 提供拨号号码、认证账号(如用户名/密码)、分配IP地址。
PPP协议 管理数据封装、错误检测和IP地址分配(如 PPPoE 衍生协议用于后续宽带)。

4. 与宽带对比

特性 拨号上网 现代宽带(如光纤)
速度 56 Kbps 100 Mbps - 1 Gbps+
连接方式 按需拨号,临时连接 始终在线(Always-On)
电话线影响 上网时电话不可用 独立线路(电话/网络分离)
典型费用 按分钟计费 + 电话费 包月固定费用

5. 为什么被淘汰?

  • 速度瓶颈:无法满足网页多媒体化(如图片、视频)需求。
  • 技术替代
    • DSL(如ADSL):利用电话线高频频段,实现上网/通话并行。
    • 光纤/ Cable:更高带宽、更低延迟。
  • 用户体验差:连接不稳定,易受干扰(如天气、电磁噪声)。

6. 历史意义

  • 互联网普及先驱:推动早期家庭和中小企业接入互联网。
  • 文化符号:拨号音成为一代人的集体记忆(如美国在线AOL的“Welcome”语音)。
  • 技术基础:PPP协议衍生出PPPoE,至今用于部分宽带认证。

常见问题
Q1:现在还能用拨号上网吗?

  • 少数偏远地区或特殊场景(如备份连接)仍支持,但主流ISP已逐步关闭服务。

Q2:为什么拨号音听起来像“噪音”?

  • 这是Modem的 握手协议(Handshaking),通过不同频率音频协商参数(如V.34/V.90标准)。

Q3:拨号上网的IP地址是固定的吗?

  • 通常是动态IP,每次拨号重新分配(类似现代家庭宽带的DHCP)。

本书梳理

计算机网络体系结构

计算机网络概述

计算机网络的组成

电路、报文、分组交换

计算机网络的分类

计算机网络的性能指标

计算机网络的分层

ISO/OSI模型

TCP/IP模型


物理层

通信基础

波特率、比特率

奈奎斯特、香农定理

曼彻斯特编码

QAM技术

传输介质

双绞线、同轴电缆、光纤、无线介质

物理接口的特性

设备

集线器

中继器


数据链路层

封装成帧:组帧方法(4种)

透明传输

差错控制(检错/纠错)

流量控制与可靠传输(交织)

ARQ

非连续ARQ(SW)
连续ARQ(GN\SR)

介质访问控制(FDM\TDM\CDM\WDM\纯LOHA\时隙ALOHA\CSMA\\CD\CSMA\\CA\令牌传递)

局域网(IEEE802.3\IEEE802.11\VLAN)

广域网(PPP)

设备(网桥、交换机)


网络层

网络层提供的两种服务、路由器的功能、SDN

IPv4\NAT\划分子网\路由聚合\ARP\DCHP\ICMP

IPv6\v4-v6转换

距离向量路由算法(协议)、链路状态算法(协议)、RIP\OSPF\BGP(路径向量协议)

IP多播、IGMP

移动IP

冲突域和广播域、路由器的组成和功能


传输层

4个作用

UDP(格式、检验)

TCP(格式、连接管理、可靠传输、流量控制、拥塞控制)


应用层

C/S \ P2P

DNS(3个组成部分)

FTP(两条路径)

E-MAIL(SMTP\POP3\MIME)

WWW(HTTP)