计算机网络
计算机网络
这门课最大的难点不是"知识多",而是"没有一条线把它们串起来"。本文用一条主线——分层——把物理层到应用层串成一个完整的故事:每一层回答三个问题——"这一层要解决什么问题?用什么机制解决?为什么这样设计?" 把这三个问题想清楚,所有协议都不是背的,而是"顺理成章推出来的"。学长的考前串讲,从物理层一路讲到网络安全,尽量直击要害、少绕弯子。
一、课程大纲
| 模块 | 章节 | 核心内容 |
|---|---|---|
| 基础 | 1. 概述 | 计算机网络定义、分类、性能指标、OSI 七层 / TCP/IP 四层体系结构、协议与分层思想 |
| 底层 | 2. 物理层 | 数据通信基础、奈氏与香农公式、传输介质、信道复用、编码与调制 |
| 底层 | 3. 数据链路层 | 封装成帧、差错检测 CRC、可靠传输(停止等待/滑动窗口/ARQ)、点对点协议、以太网、交换机与 MAC、CSMA/CD、VLAN |
| 核心 | 4. 网络层 | IP 协议与 IP 地址、子网划分与掩码、CIDR、ARP、ICMP、路由选择(RIP/OSPF/BGP)、NAT、分组转发 |
| 核心 | 5. 传输层 | 端口与套接字、UDP、TCP 报文段格式、三次握手/四次挥手、可靠传输、流量控制、拥塞控制 |
| 上层 | 6. 应用层 | DNS、HTTP/HTTPS、FTP、SMTP/POP3、DHCP、TELNET/SSH、万维网 |
| 拓展 | 7. 网络安全与新技术 | 威胁与加密、数字签名、防火墙与入侵检测、无线局域网 WLAN/Wi-Fi、IPv6 |
二、一条主线:分层的哲学
网络太复杂了,复杂到没人能一口气把它设计出来。于是人们采用唯一的办法:分层。每层只解决一类问题,通过接口向上一层提供服务,对等层之间用协议通信。整门课 = 从物理层到应用层,逐层追问"这一层要解决什么问题、用什么机制解决"。
为什么必须分层?
如果把"上网"当成一个整体问题,你会发现它包含无数子问题:如何把比特变成电信号?如何保证传过去的比特没出错?如何在众多计算机之间找到对方?如何让程序 A 的程序 B 精确对话?这些问题性质完全不同、跨度极大(从晶体管到应用程序)。分而治之是唯一可行的工程策略:把一个大问题拆成多个小问题,每层专注于自己的小问题,层与层之间用标准接口解耦——这层怎么改,不影响别的层。
分层带来三个直接好处:
- 各层独立:可以分别设计、测试、演进。物理介质从铜线换成光纤,上层的 TCP 代码一行都不用改。
- 灵活性:每层可选用不同实现(比如传输层既可以用 TCP 也可以用 UDP)。
- 易于标准化:每层的协议可以单独制定标准,各厂商按标准实现即可互通。
协议为什么是"基石"?
层与层之间是"服务关系"(用接口通信),而对等层之间(比如你的机器上的 TCP 和服务器上的 TCP)必须用协议通信。协议就是通信双方约定的"语法与语义":
- 语法:报文的格式、字段顺序、编码方式——"比特流怎么排布";
- 语义:每个字段的含义、收到之后该做什么——"这段比特是什么意思";
- 同步/时序:先发什么后发什么、什么时候开始、超时多久。
没有协议,双方各说各话,比特流只是一堆噪声。有了协议,双方才能"对上暗号":TCP 双方约好"第一次握手 SYN=1 表示想建立连接",网络层双方约好"IP 地址前 24 位是网络号"……协议 = 通信世界的语言与规则。整门课要学的,就是各层"约定了什么、为什么这么约定"。
怎么用这条主线复习?
拿到任何协议,先问自己三件事:它解决哪一层的问题?它的报文长什么样(语法)?每个字段/状态为什么要存在(语义)? 能用这三问把协议讲清楚,就说明你真懂了。本文后面的每一章,都按这个框架展开。
三、逐章精讲
第 1 章 概述:先搞清楚"网络是什么、怎么度量、怎么组织"
这一章在干什么
一切从定义开始。你要先知道研究对象是什么、用什么指标评价它、按什么结构组织它。这一章是全书的地图:先看全景,再逐层进入。
核心内容
1. 计算机网络的定义
计算机网络是把分布在不同地理位置的、具有独立功能的计算机,通过通信设备与线路连接起来,在网络软件(协议)的管理协调下,实现资源共享与信息传递的计算机系统。三个关键词各有用意:计算机要"独立"(不是终端),要有"协议"(否则连不起来),目的是"资源共享"(而不是只为通话)。
2. 分类
按作用范围分为:广域网 WAN、城域网 MAN、局域网 LAN、个人区域网 PAN。按拓扑结构分为:星型(中心设备故障全网瘫痪)、总线型(早期以太网,靠冲突检测)、环形、网状(健壮但昂贵)。按使用者分为:公用网、专用网。按交换技术分为:电路交换、报文交换、分组交换——分组交换是现代网络的基石,后面单独说。
3. 电路交换 vs 分组交换(高频考点)
- 电路交换:先"拨号建立连接",建立后整条链路被独占(如老式电话),优点是延迟确定、不排队,缺点是线路利用率低、建立连接有开销。
- 分组交换:数据切成小"分组",每个分组独立转发,存储转发——路由器先收完整一个分组,再查表转发。优点是共享线路、利用率高、健壮(一条路断了可以绕行),缺点是每个分组带开销、有排队时延、可能乱序或丢失。
4. 性能指标(必考计算)
- 速率(比特率):每秒传送的比特数,单位 b/s、kb/s、Mb/s(注意:1 k = 1000,不是 1024)。
- 带宽:数字信道上的"最大数据传输率"(单位 b/s),理解成"高速路的宽度"。
- 吞吐量:实际到达的速率,永远 ≤ 带宽。
- 时延 = 发送时延(数据长度 ÷ 发送速率)+ 传播时延(链路长度 ÷ 传播速度,光速约 2×10⁸ m/s 在光纤中)+ 排队时延 + 处理时延。最容易错的:发送时延看"数据大小和速率",传播时延只看"距离和介质",二者无关!
- 时延带宽积 = 传播时延 × 带宽,单位 bit,物理含义是"管子里正在流动的比特数"。
- 往返时延 RTT:数据发出到收到确认的总时间,TCP 的设计处处离不开它。
- 利用率:信道利用率/网络利用率,过高会导致时延急剧上升(排队),所以不是越高越好。
5. 体系结构:OSI 七层与 TCP/IP 四层
- OSI 七层(自下而上):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。背口诀:"物数网传会表应"。
- TCP/IP 四层(实际使用的):网络接口层、网际层(IP)、传输层(TCP/UDP)、应用层。
- 五层简化模型(教材通用):物理层、数据链路层、网络层、传输层、应用层——把 OSI 上三层合并为应用层。考试以五层为主,OSI 记住七层名字和顺序即可。
- 层间关系:数据向下传输要逐层加头部(封装),向上接收要逐层剥头(解封装)。对等层看到的是"对方对等层的协议数据单元 PDU"——这是"虚拟通信"的思想。
6. 协议三要素:语法、语义、同步(时序)。协议是"规则的集合",服务是"层间功能的体现",接口(服务访问点 SAP)是上下层交换信息的窗口。
典型题型/考点
- 计算题:给数据量、带宽、距离,求发送时延、传播时延、总时延、时延带宽积。
- 概念题:电路交换与分组交换的区别;OSI 七层顺序;速率与带宽的区别。
- 简答题:为什么分层?协议的三要素?
为什么这一章重要
它是全书的坐标系。所有后续章节都在这个框架里展开,性能指标计算是年年必考的基本功。把"五层结构 + 封装思想 + 三指标计算"吃透,后面才有意义。
第 2 章 物理层:把比特变成信号,在介质上跑起来
这一章在干什么
上层送下来一串比特(0/1),物理层的任务就一句话:把这串比特变成能在信道上传输的信号,以最快的速度、最少的错误传过去。它不关心比特的含义,只负责"搬运"。核心问题两个:能在多快的速率上可靠传输?(奈氏/香农) 和 用什么方式传?(编码、调制、复用)。
核心内容
1. 数据通信的基本概念
- 单向(单工):只能一个方向(如广播);半双工:同一时刻只能一方发(如对讲机);全双工:双方可同时发收。
- 基带信号 vs 带通信号:基带信号是原始的数字信号(方波),传输距离短;调制后变成带通(模拟)信号,可在频带上远距离传输。
- 码元:一个固定时长的信号波形,码元速率 = 波特率(Baud)。波特率 × 每码元携带的比特数 = 比特率。若每码元可表示 4 种电平(log₂4=2),波特率 1000 时比特率就是 2000 b/s。
2. 奈氏准则(奈奎斯特)——理想信道,无噪声
在无噪声理想信道中,码元速率有上限:每赫兹带宽每秒最多传 2 个码元,即最高码元速率 = 2W(W 为带宽 Hz)。
由此推得极限数据传输率 = 2W × log₂V(V 为码元可取的离散电平数)。
结论:想提高速率,要么加带宽,要么增加电平数(一个码元多带几个比特)——但电平越多越难分辨。
3. 香农公式——有噪声信道
在有噪声信道中,极限数据传输率 = W × log₂(1 + S/N)。S/N 是信噪比(信号功率 ÷ 噪声功率),工程上常用 dB 表示:信噪比(dB) = 10·lg(S/N)。例如 30dB → S/N = 1000。
结论:带宽和信噪比共同决定上限;香农公式是"物理天花板",奈氏是"码元速率天花板",两者一起算出真正极限。常考组合:奈氏管码元个数(电平数),香农管最终速率——比如"用奈氏算 2W·log₂V 如果超过香农上限,说明这些电平在噪声下根本分不清"。
4. 编码与调制
- 编码(基带传输):数字数据 → 数字信号。常见:曼彻斯特编码(每个码元中间必有一次跳变,跳变既是时钟又是数据,自同步,缺点速率减半)、差分曼彻斯特编码(跳变表示时钟,是否跳变表示 0/1)、不归零 NRZ(简单但无自同步)。
- 调制(带通传输):数字数据 → 模拟信号。三种基本手段:调幅 AM(幅度变)、调频 FM(频率变)、调相 PM(相位变)。组合出 正交振幅调制 QAM(同时调幅调相,如 QAM-16 一个码元带 4 比特)。
- 记住逻辑:编码→能不能自己定时钟、误码率、速率;调制→带宽效率。
5. 传输介质
- 导向型:双绞线(便宜,局域网常用,分屏蔽 STP/非屏蔽 UTP,按绞合分 5 类/超五类/6 类)、同轴电缆、光纤(单模——传得远、芯径细、用激光;多模——短距离、芯径粗、用 LED)。
- 非导向型:无线电波、微波、红外。
6. 信道复用(共享介质提高利用率)
- 频分复用 FDM:把频带分给不同用户,同时用不同频率,需要保护间隔。
- 时分复用 TDM:把时间分成时隙轮流给用户,用户分到固定时隙;统计时分复用让用户按需分配时隙,不浪费空闲时隙。
- 波分复用 WDM:光信号上的 FDM,一根光纤多个波长。
- 码分复用 CDM / CDMA:每个用户分配一个正交码片序列,自己码片与收到的混合信号做内积就能提出自己的数据。必考小题:A 用码片 S 发数据,收到的总信号与 S 内积,结果 >0 是 1、<0 是 0、=0 表示 A 没发。
典型题型/考点
- 计算:奈氏/香农求极限速率;已知 30dB 求 S/N;比特率与波特率互算;发送时延/传播时延(配合时延带宽积)。
- 选择:哪种编码带时钟;单模/多模光纤区别;CDMA 内积判断 0/1。
- 简答:调制与编码的区别;为什么光纤传得远。
为什么这一章重要
它是"传输的天花板"理论。奈氏和香农两道公式揭示了通信的根本约束——速率不可能无限提高,这直接解释了后面为什么需要差错控制、为什么要压缩、为什么网络会拥塞。物理层概念单独考不多,但两道公式几乎每年必考一题,性价比极高。
第 3 章 数据链路层:把"容易出错的链路"变成"基本可靠的链路"
这一章在干什么
物理层把比特传过去,但可能丢比特、错比特、乱序。数据链路层的任务是:在相邻两个节点之间,把"不可靠的物理线路"改造成"看起来基本可靠的点对点信道"。三个动作:封装成帧(划分边界)、差错检测(发现错了)、可靠传输(错了就重传)。局域网是它的主战场。
核心内容
1. 封装成帧与透明传输
数据链路层要把上层数据加上头(目的地址、类型)和尾(帧校验序列 FCS)组成帧。帧与帧之间要有定界:用特殊的帧首尾字符/标志。透明传输指"不管数据里出现什么内容,都能原样传过去"——解决办法:字符填充(在数据中的特殊字符前加转义字符 ESC,接收端去掉转义)或零比特填充(HDLC:连续 5 个 1 后插入 0,接收端检测 5 个 1 后删掉 0)。
2. 差错检测:CRC 循环冗余检验(必考计算)
发送方把数据除以一个双方约定的生成多项式 G(x),得到余数作为帧检验序列 FCS 附在帧尾;接收方把整个帧除以 G(x),余数为 0 就认为没错。考试流程(设数据 M、生成多项式 G 的位数 r+1):
- 在 M 后面补 r 个 0(r = 多项式最高次数);
- 用 G 模 2 除(异或运算,不进位借位),余数就是 FCS;
- 发送 M 后接上余数;接收方用 G 除整个接收串,余数为 0 无差错。
注意:CRC 只能检错(发现错了),不能纠错,且可能有漏检(但工程上可接受);差错率高的链路需要可靠传输机制。这也是为什么说"数据链路层提供的只是比特差错检测,不是全部可靠"。
3. 可靠传输机制(必考大题)
三种由简到繁的协议,层层递进理解:
- 停止等待协议(Stop-and-Wait):发一帧,等确认;超时未收到就重发。简单但效率低——利用率 ≈ 发送时间/(发送时间+2×传播时间)。(对应 ARQ 自动重传请求思想)
- 后退 N 帧协议(GBN,Go-Back-N):滑动窗口 + 累计确认。发送窗口大于 1,可以连续发多帧;接收方只接收按序到达的帧,对乱序帧一律丢弃;接收方只对"最后一个按序到达的帧"发累计确认。某个帧超时,发送方把该帧及之后所有帧重发(后退 N)。
- 选择重传协议(SR,Selective Repeat):接收方缓存乱序但正确的帧,只重发真正丢失的那一帧,需要为每个帧分别确认。窗口大小 ≤ 2^(n-1),n 为序号位数——这是常考的小题。
- 共同点:超时重传是可靠性的兜底。只要有超时计时器 + 重传,配合确认,就能实现可靠。
4. 点对点协议 PPP(广域网)
PPP 用于拨号上网这类点对点链路,功能:封装成帧、透明传输(用字节填充/零比特填充)、检测(CRC)。不提供可靠传输(用 TCP 的上层自己保证),不做流量控制——简单就是它的设计原则,因为点对点链路已经相当可靠,复杂机制纯属浪费。
5. 局域网与以太网
- 局域网特点:短距离、高数据率、低误码率、多台主机共享介质。
- MAC 地址:48 位(6 字节),烧录在网卡上,前 3 字节是厂商代码。帧中目标地址/源地址都是 MAC 地址。
- 以太网帧格式:目的 MAC(6) + 源 MAC(6) + 类型(2,标明上层是 IP 还是 ARP) + 数据(46~1500B) + FCS(4)。最小帧长 64 字节是有原因的:要保证发送端在发送期间能侦测到冲突(见 CSMA/CD)。
6. CSMA/CD 载波监听多点接入/碰撞检测(必考)
以太网采用总线式共享介质,多站想同时发就会冲突。机制:
- 先听后发:发前监听信道,空闲才发;
- 边发边听:发送同时检测电压是否被叠加(冲突)——这是为什么帧不能太短,要确保"发完之前冲突已传回";
- 冲突停止 + 退避重发:检测到冲突立即停发,用截断二进制指数退避随机等待再试。
- 争用期(冲突窗口):以太网规定 51.2 μs,对应"发送 64 字节的最长时间"。最小帧长 = 争用期 × 发送速率,保证冲突在发送期间能被发现。
- 注意 CSMA/CD 只适用于半双工/总线型,交换式以太网全双工,不存在冲突,不需要它。
7. 以太网交换机与 VLAN
- 交换机工作在数据链路层,基于 MAC 地址转发,内部有一张 MAC 地址表(通过学习——收到帧就记录"源地址→端口")来转发,隔离冲突域,每个端口独享带宽,支持全双工。不会像集线器(物理层,广播)那样把冲突扩散。
- VLAN 虚拟局域网:在交换机上用软件把端口划分成逻辑组,解决"物理上一个局域网广播域太大、广播风暴严重"的问题。用 VLAN 标记(802.1Q) 在帧里加 12 位 VLAN ID,实现隔离广播域、便于管理、安全。
典型题型/考点
- 计算:CRC 求 FCS(必考);停止等待利用率;帧长与发送时延。
- 大题:给定 GBN/SR 的窗口、序号位,判断窗口大小、分析超时后的重发范围。
- 分析:交换机与集线器区别;最小帧长为什么是 64B;VLAN 解决了什么问题。
为什么这一章重要
这是你第一次真正见到"协议怎么设计"。窗口 + 确认 + 超时重传这套可靠传输框架,在传输层的 TCP 会原样复用——这是全书最重要的一处"递归",链路层学扎实,TCP 只是它的升级版。CRC 和 CSMA/CD 是计算与简答的高频考点。
第 4 章 网络层:跨越无数网络,把分组送到地球对面
这一章在干什么
数据链路层只管"相邻两节点"。互联网由海量路由器连接无数异构网络组成,网络层的任务是一句大白话:你只要给出一个全局唯一的地址,我负责把分组从源机器一路转发到目标机器,哪怕中间隔了几十台路由器、跨了几个大洲。核心两件事:编址(IP 地址怎么设计) 和 寻路(路由器怎么决定下一步往哪走)。
核心内容
1. IP 地址与 IP 协议
- IPv4 地址:32 位,分 4 段点分十进制。结构 = 网络号 + 主机号。网络号标识"在哪一个网络",主机号标识"该网络内哪台机器"——这是"跨网寻址"的关键:先找网络,再找主机。
- A/B/C 类地址:A 类首位 0(1.0.0.0~126,主机数最多),B 类首位 10(128.0.0.0~191),C 类首位 110(192.0.0.0~223)。特殊的:全 0 主机号 = 本网络;全 1 主机号 = 广播地址(如 192.168.1.255);127 网段是环回地址(本机)。
- 无分类编址 CIDR:用"IP/前缀长度"表示,如 192.168.1.0/24,斜杠后是网络号位数。消除 A/B/C 的僵硬划分,支持路由聚合(把多个相邻前缀合并成一条路由,减少路由表)。
2. 子网划分与子网掩码(必考大题)
一个网络里主机太多会乱,于是从主机号里"借位"出来做子网号。判断主机属于哪个子网:IP 地址 与 子网掩码 = 子网地址。
- 例子:192.168.10.0/26 → 掩码 255.255.255.192(二进制最后一段 11000000),主机号占 6 位,可用主机 2⁶-2=62 个(全 0 网络地址、全 1 广播地址不能用)。
- 要点:借几位、每个子网几个主机、子网掩码是多少,三步连环计算,务必练熟。可用主机数 = 2^(主机位) - 2。
3. ARP 与 ICMP
- ARP 地址解析协议:我知道对方 IP,想知道对方 MAC。广播发"谁有这个 IP?告诉我 MAC",目标回单播。维护 ARP 缓存(有生存期),否则每次都广播。注意:ARP 是解决"同一网络内 IP→MAC",跨网络先找网关(路由器)的 MAC。
- ICMP 网际控制报文协议:IP 协议的"快递员通知系统"。两类:差错报告(目标不可达、超时、参数错误)和询问(回送请求/回答)。PING 就是 ICMP 回送请求——测试连通性。它封装在 IP 数据报里,但逻辑上属于网络层。Traceroute 利用 ICMP 超时报文逐跳显示路径。
4. IP 数据报格式(重点字段)
版本(4) | 首部长度(4) | 区分服务(8) | 总长度(16) | 标识(16) | 标志(3) | 片偏移(13) | 生存时间 TTL(8) | 协议(8) | 首部检验和(16) | 源地址(32) | 目的地址(32)。必记的:
- TTL 生存时间:每过一台路由器减 1,减到 0 丢弃并回 ICMP 超时——防止数据报在环里永远绕圈。初始值常用 64/128。
- 标识/标志/片偏移:用于分片。数据报太大超过 MTU(如以太网 1500B)就必须切片,接收端按"标识+片偏移"重组。DF 位=1 禁止分片;MF=1 表示后面还有分片。分片只发生在路由器,重组只在目的主机。
- 协议字段:TCP=6,UDP=17,ICMP=1。
5. 分组转发(路由器的工作流程)
路由器收到分组:① 查目的地址;② 用目的地址与各路由表项的前缀匹配(最长前缀匹配:多个匹配时选前缀最长、最具体的);③ 找不到就按默认路由转发,找到就换源/目的 MAC 转发到下一跳。注意:IP 地址全程不变,MAC 地址每跳都变——这是"网络层寻址 vs 链路层寻址"分工的体现。
6. 路由选择算法(必考大题)
两大类:静态路由(管理员手工配置,简单但适应性差)和动态路由(自动学习,又分两种):
- 距离向量(RIP):每个路由器只知道"我到自己邻居的代价"+"邻居告诉我的到别人的距离",只和邻居交换"我的路由表",选距离最短。问题:收敛慢、"好消息传得快,坏消息传得慢"(可能形成路由环路/计数到无穷)。RIP 以跳数为度量,限制 15 跳(16 表示不可达)。
- 链路状态(OSPF):每个路由器洪泛自己的链路状态给全网,因此每台路由器都有全网的拓扑图,用 Dijkstra 算法算出到各点的最短路径树。收敛快、无环路、支持等价多路径,适合大网。
- 对比记忆:距离向量 = "只听邻居的二手消息,逐跳传播",链路状态 = "知道全局地图,自己算最短路径"。前者简单易做但会出环路,后者聪明但开销大。
- BGP 边界网关协议:负责自治系统 AS 之间的路由,不追求"最短",追求"可达 + 策略(经济、政治)",是路径向量协议。三层路由的格局:RIP/OSPF 管 AS 内部(域内),BGP 管 AS 之间(域间)。
7. NAT 网络地址转换
IPv4 地址不够用,所以私网地址(10.x、172.16~31.x、192.168.x)不能在公网直接路由。NAT 让内网多台机器共享一个公网 IP:路由器把内网 IP:端口 映射成 公网 IP:端口(NAPT,端口号也参与转换),并维护一张转换表。好处是节省地址、隐藏内网结构;代价是破坏端到端透明性,外部主动连接内网困难。
典型题型/考点
- 大题(最热):给一个 IP 和掩码,求子网地址、广播地址、可用主机范围;或要求把一个网络划分成 N 个固定大小子网,写出各子网。
- 计算:分片——给总长和 MTU,求分几片、每片数据长度、片偏移、标志位。
- 分析:RIP 和 OSPF 对比;路由环路的成因与解决(水平分割、毒性逆转、最大跳数)。
- 简答:ARP 为什么需要;TTL 的作用;NAT 原理与优缺点。
为什么这一章重要
这是全书的重心,也是考试分值的大头。 网络层解决了互联网最本质的问题——"在异构的、会变化的互联网里如何全局可达",子网划分与路由算法是计算题、分析题的核心来源。把"IP 编址 → 子网/掩码 → 转发 → 路由协议"这条链走通,整门课的理解会上一大截。
第 5 章 传输层:为"两个进程"提供端到端的、可靠的信道
这一章在干什么
网络层把分组送到了"那台机器",但一台机器上同时跑着几十个程序(浏览器、微信、邮件……),数据该给谁?而且网络层是"尽力而为"的,分组可能丢、乱序、重复。传输层的任务:为运行在不同主机上的两个"进程"之间,提供端到端的通信;TCP 更进一步,把不可靠的 IP 改造成可靠、有序、按流量受控的信道。 从此,上层的应用"眼里的信道"是完美无缺的。
核心内容
1. 端口与套接字
- 端口:16 位,标识进程,解决"数据给哪个应用"。熟知端口:HTTP=80/8080,HTTPS=443,DNS=53,FTP=21(控制)/20(数据),SMTP=25,POP3=110,DHCP=67/68,TELNET=23,SSH=22。
- 套接字(socket) = IP 地址 : 端口号。一条 TCP 连接由四元组唯一确定:源 IP : 源端口 与 目的 IP : 目的端口。
- 端口按用途分:熟知端口(01023)、登记端口(102449151)、短暂端口(49152~65535)。
2. UDP:无连接、不可靠、尽力而为
- 特点:无连接(不需要握手)、不保证可靠(没有确认重传)、报文面向报文(一次一个完整的 UDP 用户数据报)、开销小(8 字节首部)、支持广播多播。
- 首部:源端口(16) | 目的端口(16) | 长度(16) | 检验和(16)。检验和可选,计算时加"伪首部"(含 IP 地址)——为什么加伪首部? 防止 IP 层地址错导致送错人,让传输层也参与校验。
- 适合:实时应用(视频直播、VoIP、DNS 查询、DHCP)——丢一点比晚到好。
3. TCP:面向连接、可靠、面向字节流
(1)报文段格式(重点字段)
源端口(16) | 目的端口(16) | 序号(32) | 确认号(32) | 数据偏移(4) | 保留 | 标志位(6) | 窗口(16) | 检验和(16) | 紧急指针(16) | 选项 | 填充。
- 序号 seq:本报文段数据第一个字节的编号(面向字节流,所有数据字节都要编号)。
- 确认号 ack:期望收到对方的下一个字节序号,也即"ack=n 表示 n-1 及以前的都收好了"。
- 窗口字段:接收方通告自己能收多少(流量控制用)。
- 标志位:SYN 同步(建立连接)、ACK 确认、FIN 结束(断开)、RST 重置、PSH 立即交付、URG 紧急。
(2)三次握手(建立连接,必考)
- 客户端发 SYN=1, seq=x("我想连接");
- 服务器回 SYN=1, ACK=1, seq=y, ack=x+1("同意,我也要发");
- 客户端发 ACK=1, seq=x+1, ack=y+1("收到,正式建立")。
为什么三次不是两次? 防止已失效的连接请求突然又到达服务器,造成服务器白白建立连接、浪费资源(也为了双方都确认"我能发、你能收")。两次握手服务器无法确认客户端的接收能力,可能建立多余连接。
为什么不是四次? 三次已经能让双方确认收发能力都正常,第四次纯属多余。
(3)四次挥手(释放连接,必考)
- A 发 FIN=1, seq=u("我没数据发了");
- B 回 ACK=1, ack=u+1("收到,但你那边还有数据要发可以继续",此时 A→B 的半连接关闭,B→A 还可单向传);
- B 发完数据后发 FIN=1, seq=w("我也没数据了");
- A 回 ACK=1, ack=w+1,并进入 TIME_WAIT,等待 2MSL 后才真正关闭。
为什么 TIME_WAIT 等 2MSL? 保证最后一个 ACK 能到达 B(丢了的话 B 会重发 FIN,A 还能再答一次);同时让本连接遗留的分组在网络中消失,避免干扰新连接。为什么不能只有三次? 因为 TCP 是全双工,两条单向连接必须各自独立关闭。
(4)可靠传输(怎么保证不丢不错不乱)
- 校验和(检错)+ 确认机制(每收一段回 ACK)+ 超时重传(发出去没等到确认就重发,RTT 自适应估算)+ 序号(去重、排序、拼字节流)。
- 这是链路层"滑动窗口 + 确认 + 超时重传"思想的 TCP 版:窗口以字节计,支持累计确认,延迟发送确认。
(5)流量控制(防止"发太快淹没接收方")
用滑动窗口 + 接收方通告的窗口字段:接收方在 ACK 里告诉发送方"我的接收窗口还剩多少",发送方只能发窗口内的数据。注意:流量控制是点对点、端到端的,只管"发送方 ≤ 接收方能收",和网络拥塞无关。
(6)拥塞控制(防止"发太快淹没网络")——必考大题
拥塞控制判断依据:网络拥塞 → 丢包/超时。TCP 维护一个拥塞窗口 cwnd,发送窗口 = min(接收窗口, 拥塞窗口)。四个算法:
- 慢开始(Slow Start):cwnd 从 1 开始,每收到确认翻倍(指数增长),直到慢开始门限 ssthresh。
- 拥塞避免(Congestion Avoidance):超过 ssthresh 后改为每轮 RTT 加 1(线性增长,加法增),一路增长直到拥塞。
- 发生拥塞(超时):把 ssthresh 降为 cwnd/2,cwnd 回到 1,重新慢开始(乘法减)。规律:加法增大、乘法减小。
- 快重传(Fast Retransmit):接收方连续收到 3 个重复 ACK 就立刻重传(不等超时)——因为 3 个重复 ACK 说明该报文段很可能丢了。
- 快恢复(Fast Recovery):收到 3 个重复 ACK 时,ssthresh = cwnd/2,cwnd 直接从 ssthresh 开始(而不是回到 1),进入拥塞避免线性增长——比超时重传温和得多。
- 典型计算题:给初始 ssthresh,按"每轮 RTT 慢开始翻倍、拥塞避免 +1",画出 cwnd 随 RTT 的变化曲线;或在一个慢开始门限、3 个重复 ACK 后问新门限和 cwnd。
- 对照:流量控制=管"接收方",拥塞控制=管"网络",一个是自己的事,一个是大家的事。
典型题型/考点
- 大题:三次握手/四次挥手的状态与字段;拥塞控制画图/算 cwnd;给窗口和序号判断确认号。
- 计算:TCP 报文段 seq/ack 推算;UDP 检验和(伪首部)。
- 概念辨析:TCP vs UDP 全面对比;流量控制 vs 拥塞控制;为什么 2MSL、为什么三次握手。
- 状态机:CLOSED→SYN_SENT→ESTABLISHED 等状态转换。
为什么这一章重要
传输层是考研与期末的大头中的大头。 它把前几章的"可靠性工程"升华成最完整的设计——三次握手、可靠传输、流量与拥塞控制,每一个都是设计精妙又环环相扣。拥塞控制更是每年大题的高频出题点。这一章背得再熟,不如亲手画一遍状态图和 cwnd 曲线。
第 6 章 应用层:用户真正能感知的那一层
这一章在干什么
传输层已经把信道变成"可靠且有序",应用层终于到了用户的世界:浏览器、邮件、域名、下载……应用层协议解决的是"不同应用之间,用什么语言、按什么规则交换数据"。它只负责规定应用之间的交互规则(报文格式与语义),具体的传输工作交给 TCP/UDP。这一章最贴近生活,也最好理解——但别小看,HTTP 和 DNS 是高频考点。
核心内容
1. DNS 域名系统:把"名字"翻译成"地址"
人类记不住 12 个数字的 IP,记住 www.baidu.com 却很容易。DNS 就是分布式的域名→IP 翻译服务。
- 域名结构:根 → 顶级域(.com/.org/.cn) → 二级域(baidu) → 三级域(www),从右向左级别从高到低,用点分隔。
- 为什么必须分布式? 全球域名几亿个,一台服务器存不下也扛不住查询。于是层次划分、逐级授权:根服务器 → 顶级域服务器 → 权限域名服务器,各管各的一段。
- 解析过程(递归 + 迭代):主机先查本地域名服务器(缓存命中最快);本地不知道,就迭代查询:问根服务器(告诉我.com 服务器在哪)→ 问 .com 服务器(告诉我 baidu.com 在哪)→ 问 baidu 的权限服务器,得到 IP。整个过程:递归查询是"替用户跑腿",迭代查询是"给个地址让我自己找"。
- 使用的传输协议:查询多用 UDP(53 端口)(快、开销小,一个报文一个答案)。
2. HTTP 与 HTTPS:万维网的语言
- HTTP:超文本传输协议,请求-响应模型。客户端发请求报文,服务器回响应报文。无状态(服务器不记得你上次是谁,所以要 Cookie 来记住)、基于 TCP。
- HTTP/1.1 引入持久连接(一个 TCP 连接处理多个请求,减少握手开销)与流水线。
- HTTPS = HTTP + 加密:在 HTTP 和 TCP 之间加一层 TLS/SSL,用非对称加密交换对称密钥、用证书验证服务器身份,解决"明文传输被偷看被篡改"的问题。默认端口 443。
- 请求报文方法:GET(取资源)、POST(提交数据)、HEAD(只要首部)等;响应状态码:2xx 成功、3xx 重定向(301 永久/302 临时)、4xx 客户端错误(404 未找到、403 禁止)、5xx 服务器错误(500)——必背。
3. FTP 文件传送协议
- 用于文件的上传下载。双连接结构:控制连接(21 端口,传送命令)与数据连接(20 端口,传数据)分离——控制通道小、稳定,数据通道可以开得很快。支持断点续传、匿名访问。
4. SMTP 与 POP3/IMAP:电子邮件
- 发邮件用 SMTP(简单邮件传送协议,25 端口):客户端 → 发送方邮件服务器 → 接收方邮件服务器,推(push)的模型,逐跳转发。
- 收邮件用 POP3(110 端口)或 IMAP:用户从邮件服务器拉(pull)邮件。POP3 通常"下载后删除服务器副本",IMAP 保留服务器端、多设备同步。
- 流程:发件人 → SMTP → 发件服务器 → SMTP → 收件服务器 → POP3/IMAP → 收件人。
- 补充:MIME 扩展了邮件格式,让它能传图片、附件、多语言(因为 SMTP 原本只支持 ASCII)。
5. DHCP 动态主机配置协议
主机开机想上网,得先有 IP、掩码、网关、DNS。DHCP 自动分配,省去管理员手工配。
- 四步流程(必考):DHCP 发现(Discover,广播)→ DHCP 提供(Offer)→ DHCP 请求(Request,广播)→ DHCP 确认(ACK)。
- 为什么 Discover 和 Request 都广播?发现阶段还没地址只能广播;请求阶段广播是为了告诉其他提供 Offer 的服务器"我选了别人,你们的可以收回"。分配方式:租用(有限期,过期要续租)、固定分配、动态分配。
6. TELNET 与 SSH 远程终端
- TELNET(23 端口):远程登录,明文传输,有安全隐患。
- SSH(22 端口):安全外壳协议,加密传输,是现代远程登录/远程管理的主流。同样基于"非对称加密交换密钥 + 对称加密传数据"。
典型题型/考点
- 简答/选择:DNS 递归与迭代查询的区别与流程;HTTP 与 HTTPS 的区别;状态码含义;电子邮件整套流程(SMTP/POP3 配合)。
- 流程题:DHCP 四步;一次完整网页访问会触发哪些协议(DNS→ARP→TCP→HTTP……)——综合题常见。
- 辨析:HTTP 无状态与 Cookie;FTP 控制连接与数据连接。
为什么这一章重要
应用层是"看得见的胜利"——前面所有层的努力,最后都体现在浏览器里的页面和邮件里的附件。这一章考点以概念和流程为主,不复杂但零散,适合临考前集中背一遍。尤其要会串"从敲下一个网址到页面显示,各层协议按什么顺序各干什么"这类综合题。
第 7 章 网络安全与新技术:把"可靠"升级为"可信、安全、够用"
这一章在干什么
前六章都在追求"把数据正确送到",但这个世界还有坏人在偷看、篡改、冒充。网络安全的任务是:数据在传输过程中,要保证机密性(别人看不到)、完整性(别人改不了)、鉴别(确认对方是真的)、不可否认(做过的事赖不掉)。最后再补充无线网络和 IPv6 两个现实话题。
核心内容
1. 安全威胁与基本概念
- 四大威胁:截获(偷看,破坏机密性)、中断(让通信失效,破坏可用性)、篡改(修改内容,破坏完整性)、伪造(冒充别人,破坏真实性)。
- 两类密码体制:
- 对称加密:加密解密同一把密钥(如 DES、AES)。优点:快;缺点:密钥怎么安全地送到对方(密钥分配难题)、密钥管理复杂。加密多少人都要多少把钥匙。
- 非对称(公钥)加密:一对密钥——公钥公开、私钥保密(如 RSA)。公钥加密、私钥解密(机密性);或私钥加密、公钥解密(这就是数字签名的基础)。优点:解决了密钥分发;缺点:慢。
- 实际方案:混合加密——用非对称加密传对称密钥(密钥交换),之后用对称加密传数据(快)。HTTPS/SSH 都是这个套路。
2. 数字签名与证书(必考)
- 数字签名:发送方用自己的私钥对报文的摘要(哈希值)加密,附在报文后。接收方用发送方的公钥解密得到摘要,再对收到的报文算一遍摘要,两者一致 → 说明①报文没被篡改(完整性)、②确实是发送方发的(鉴别/真实性)、③发送方抵赖不了(不可否认)。
- 为什么先哈希再签名? 公钥加密慢,只加密一个小小的摘要(如 256 位)就够了,效率高。
- 证书 CA:解决"公钥到底是不是对方的"。CA 认证中心给实体发数字证书(含公钥 + CA 的数字签名),浏览器内置可信 CA 的根证书,用它验证网站证书,从而安全地拿到网站的真公钥。没有 CA,攻击者可以伪造公钥冒充服务器。
3. 防火墙与入侵检测
- 防火墙:位于内网和外网之间的"门卫",按访问控制策略决定允许/拒绝进出流量。分包过滤(看 IP/端口,工作在 IP 层,简单但粒度粗)和应用网关(代理)(检查应用层内容,安全但慢)。
- 入侵检测系统 IDS / 入侵防御系统 IPS:防火墙是"设卡拦截",IDS 是"事后发现入侵行为",IPS 是"检测到就自动阻断"。纵深防御,层层设防。
4. 无线局域网 WLAN 与 Wi-Fi
- IEEE 802.11 系列即 Wi-Fi。与以太网(802.3)对比,无线介质是共享的、开放的,而且冲突无法被侦测(发送时收不到别人的信号)。所以不能用 CSMA/CD,改用 CSMA/CA(载波监听多点接入/冲突避免):
- 先听后发:信道空闲也要随机退避一段时间再发(避免大家都"等空闲后同时发");
- 发前预约(RTS/CTS):可选机制,先发 RTS 声明"我要发多久",AP 回 CTS,告诉全网络"都闭嘴",从而避免隐藏终端问题;
- 确认机制:接收方收对了要回 ACK(因为没有冲突检测,发方无法知道数据有没有被撞坏)。
- 隐藏终端:A 和 C 互相听不见,但都能听见中间的 B——A 发数据 C 不知道也发,造成冲突。RTS/CTS 就是为解决这个问题。
- 无线还面临移动性(漫游时切换接入点)、安全(WPA3 加密)等新问题。
5. IPv6 简介
- 为什么需要:IPv4 只有 2³² 个地址,加上 NAT 也救不了地址枯竭。IPv6 用 128 位地址(2¹²⁸ 个,几乎用不完),用冒号十六进制表示(如 2001:db8::1,
::代表连续多段 0)。 - 新特点:更长的地址;简化固定 40 字节首部(路由器处理更快);不再需要 NAT(地址够用,恢复端到端透明);支持即插即用(无状态自动配置);安全更好(IPSec 内嵌);不再有分片由路由器做——只有源主机可以做分片(中间路由器不再分片,减轻负担)。
- 过渡技术:双栈(同时运行 IPv4 和 IPv6)和隧道(把 IPv6 包封装在 IPv4 包里穿越 IPv4 网络)。
典型题型/考点
- 大题:数字签名完整过程(私钥签名/公钥验签);对称 vs 非对称对比与混合加密流程。
- 简答:防火墙种类;CSMA/CA 与 CSMA/CD 的区别(为什么无线不能用 CD);IPv6 相比 IPv4 的改进;隐藏终端问题。
- 概念:CA 证书的作用;WPA 与加密的关系。
为什么这一章重要
现代网络离开安全寸步难行,这一章把密码学的基础原理讲得"够用且不超纲"。数字签名、混合加密、防火墙、CSMA/CA 是高频考点,而且和前面知识(如 MAC 地址、IP 转发)能串起来考综合题。IPv6 与 Wi-Fi 更是现实中的"现在与未来",性价比高、好拿分。
四、全书收尾
一张图看懂五层体系结构与数据封装
数据在端系统上逐层向下封装(加头),在物理信道里"裸奔",在对端逐层向上解封装(剥头);只有对等层才"看得懂"对方的头。
应用层 | HTTP 请求数据 (字节流)
┌────────────────────────────────────────────────┐
│ 应用层:DNS/HTTP/SMTP... [HTTP 报文] │
│ │ 加 TCP 头(端口、序号、窗口、标志) │
│ 传输层:TCP / UDP [TCP 头][HTTP 报文]
│ │ 加 IP 头(源/目的 IP、TTL、协议号) │
│ 网络层:IP [IP 头][TCP 头][HTTP 报文]
│ │ 加帧头尾(源/目的 MAC、类型、FCS) │
│ 链路层:以太网帧 [MAC 头][IP 头][TCP 头][HTTP 报文][FCS]
│ │ 变成比特流,靠物理层送到线上 │
│ 物理层:编码调制,比特→信号 →→→→→→→→→→→→→→→→→→→→→→→→→→→→
└────────────────────────────────────────────────┘
(中间经过路由器:只剥到网络层,查路由,
换 MAC 地址重新封装后继续转发;链路层一次一跳)
一句话总结封装:每一层都只管"自己该管的事",只给上层数据"加一层头",剩下的交给下层;对端收到后,按相反顺序逐层剥开,"每层只认自己那层头"——这就是分层哲学的完整体现。
全书逻辑一句话
物理层解决"比特怎么传",链路层解决"相邻节点间怎么不出错",网络层解决"隔着千山万水怎么到达",传输层解决"到了怎么给对的进程、还保证可靠",应用层解决"人与程序怎么用"。每一层用"协议"与相邻层/对等层对话,用"接口"向上一层服务。整门课就是一个从比特到应用、层层叠加又层层解耦的递归结构。
复习权重(学长划重点)
| 优先级 | 章节 | 理由 |
|---|---|---|
| ★★★★★ | 第 4 章 网络层、第 5 章 传输层 | 大题集中地:子网划分、路由算法、三次握手、拥塞控制 |
| ★★★★ | 第 3 章 数据链路层 | CRC、可靠传输、CSMA/CD、交换机构成计算与辨析主力 |
| ★★★ | 第 2 章 物理层、第 6 章 应用层 | 奈氏/香农、DHCP/DNS/HTTP 流程,性价比高的稳拿分项 |
| ★★ | 第 1 章 概述、第 7 章 安全与新技术 | 以概念、简答为主,考前速记即可 |
最后一句嘱咐:计算机网络不靠死记,靠"一条主线 + 三个问题"。复习时把每个协议都问一遍"解决什么问题、用什么机制、为什么这样设计",再亲手算三道子网划分、画一张拥塞窗口曲线、走一遍四次挥手——这门课的分数,基本就攥在手里了。祝考试顺利!

浙公网安备 33010602011771号