计算机网络期末复习:分层协议、时延计算与IP分片易混点梳理

发布时间:2026/10/25 0:53:04
计算机网络期末复习:分层协议、时延计算与IP分片易混点梳理

简介:这份《计算机网络》期末复习电子版资料对应谢希仁第8版教材,面向高校计算机相关专业备考期末的学生,也适合需要梳理网络基础概念的自学者。内容围绕互联网的连通性与共享、边缘部分与核心部分、电路交换/报文交换/分组交换、性能指标计算,以及OSI七层与TCP/IP四层体系结构展开,并延伸到物理层的奈氏准则、香农公式、传输媒体与信道复用,数据链路层的PPP、CSMA/CD等高频考点。压缩包内为1个docx文档,大小约1.36MB,便于直接阅读、标注和打印复习。已有19422人学习,说明其在期末备考场景中具有一定参考度。资料以提纲和考点提示组织,覆盖计算题公式、协议要点与易混概念,能帮助读者快速建立章节框架、定位薄弱环节并对照教材查漏补缺。

1. 先搞懂计算机网络:它不是一根线,而是一套分工

计算机网络期末复习电子版资料摆到桌上时,最容易出现的困惑不是没东西看,而是每一页都像认识、连起来却串不成线。计算机网络这四个字听起来像“电脑连电脑”,可真正要理解的是一套分工:有的部分负责让用户用上资源,有的部分负责把数据从一端送到另一端,中间还要分层、封装、寻址、检错、选路。

打个比方,寄快递时你只管把包裹交给网点,后面有分拣、装车、转运、派送。网络也一样,主机像寄件人和收件人,路由器像转运站,协议像大家共同遵守的填单规则。搞懂这套分工,比孤立背缩写更抗忘。

这份资料值得放在手边,是因为它把“概念”和“计算”放在同一条线上:时延、CRC、分片、拥塞窗口这些点,一旦只背结论,考试时很容易翻车;一旦知道它为什么存在,题目换个说法也能认出来。

2. 为什么网络要分层:从两台机器说话到协议体系

2.1 分层不是摆架子:把“说话”拆成几件小事

两台机器要通信,问题并不是“发一串 0 和 1”这么简单。它还要解决:对方在不在、地址怎么写、数据丢了怎么办、不同介质怎么接、应用进程怎么找到。把所有问题塞进一个模块,改一处就牵动全身,所以网络采用分层思路,把复杂任务切成相对独立的几层。分层的好处不是让名词变多,而是让每一层只关心自己的边界:下层向上层提供接口,上层不关心下层用铜线还是光纤。

OSI 七层和 TCP/IP 四层是两种常见的观察方式。复习时不必把两套图死记成两张孤立表,而要抓住对应关系:应用层对应具体业务,运输层面对进程,网络层面对主机到主机的分组转发,数据链路层面对相邻结点之间的帧,物理层面对比特流。每一层都在给上一层“打包”或“拆包”,这就是封装与解封。协议数据单元 PDU 是对等层次之间传送的数据单位,服务数据单元 SDU 是层与层之间交换的数据单位。通俗地说,PDU 像同一层两人约定的信封规格,SDU 像上层交给下层的信纸。两者不是谁高级谁低级,而是站在不同层看同一份数据。

协议三要素是语法、语义、同步。语法规定格式,语义规定操作含义,同步规定时序关系。用寄快递类比:面单格式是语法,面单上每一栏填什么意思是语义,先下单再揽收再转运是同步。这个概念在选择题里常被拆开问,但核心就是“通信不是随意发,而是按共同规则发”。

2.2 边缘部分与核心部分:谁在用网,谁在送包

互联网常被分成边缘部分和核心部分。边缘部分又叫资源子网,主要是主机,用户直接使用,用来通信和资源共享;核心部分又叫通信子网,主要是路由器和网络,为边缘部分提供连通性。这个划分很重要,因为很多易混题就是拿“主机”和“路由器”做文章。两者都是计算机,但主机偏向信息处理,路由器偏向转发分组。

边缘部分的通信方式有 C/S 和 P2P。C/S 是客户端/服务器方式,一方请求、一方服务;P2P 是对等方式,节点之间更平等地交换资源。核心部分的数据传送方式有电路交换、报文交换、分组交换。电路交换先建立连接再通信,像打电话;报文交换把整份报文存储转发;分组交换把数据切成小分组,采用存储转发技术,是互联网最常用的方式。分组交换不保证每个分组走同一条路,也不保证按原路到达,但灵活、线路利用率高。

交换方式直观理解典型特点
电路交换先占一条通路再说话建立连接有开销,通信时独占资源
报文交换整份报文交给中间结点存储转发,对结点缓存要求高
分组交换切成小包分别转发灵活、共享线路,可能乱序和排队

网络类别按覆盖范围常见分为广域网 WAN、城域网 MAN、局域网 LAN、个人局域网 PAN。这里的“范围”只是帮助理解,不是绝对地理边界。ISP 是互联网服务提供者,通常由商业机构运营,负责把用户接入互联网。复习时抓住它的角色:它不生产内容,而是提供接入和转发能力。

2.3 性能指标为什么爱考:速率、带宽、时延、RTT

性能指标是计算题高发区,因为它把“概念”落成了公式。速率又叫数据率或比特率,单位是 bit/s 或 bps。这里有个最容易踩坑的点:表示速率时,K=10^3、M=10^6、G=10^9;表示文件大小、存储容量时,K=2^10、M=2^20、G=2^30。题目里看到“速率”和“容量”混在一起,先把单位统一,不然一步错步步错。

信道带宽表示网络中某信道传送数据的能力,单位也是 bit/s;吞吐量是单位时间内通过某个网络的实际数据量。带宽像水管口径,吞吐量像实际流过的水量,口径大不代表每时每刻都满流。时延分四种:发送时延是主机或路由器把数据帧送到链路上所需的时间,发生在机器内部的发送器;传播时延是电磁波在信道中传播一定距离花费的时间,公式是信道长度除以传播速率;处理时延是收到分组后分析首部、提取数据、差错检测、查找转发表等花费的时间;排队时延发生在路由器里,取决于拥塞程度。总时延是四者之和,但题目常让忽略某些项,读题时先看它问的是哪个环节。

时延带宽积等于传播时延乘带宽,可以理解成“管道里最多能装多少比特”。往返时间 RTT 是双向交互一次所需的时间,不是单程。信道利用率 U=1-空闲时的时延/当前时延,这个公式背后是“忙的时间占比越高,利用率越高”。这些指标不是孤立数字,它们共同回答一个问题:这条链路到底快不快、堵不堵、等多久。复习时把单位、发生位置、公式三件事绑在一起,比背一句定义更稳。

3. 物理层与数据链路层:比特怎样变成一帧

3.1 物理层只管比特流:奈氏准则和香农公式在算什么

物理层考虑的是如何传输比特流,它不关心这一串比特是图片还是网页。物理层有机械特性、电气特性、功能特性、过程特性:接口形状、电压范围、某一电平的含义、事件出现顺序,都属于它要约定的内容。通信方式分单工、半双工、全双工。单工只有一个方向,像广播;半双工双方都能发但不能同时发,像对讲机;全双工可以同时收发,像打电话。使用 CSMA/CD 的以太网只能半双工通信,因为它发送时还要监听碰撞,不能同时收发。

奈氏准则说的是,在带宽为 W Hz 的低通信道中,不考虑噪声时,码元最高传输速率是 2W 码元/秒。超过这个速率会出现严重码间串扰。注意它限制的是码元速率,不是直接等于比特率;如果一个码元携带多个比特,比特率还可能更高。香农公式则把噪声考虑进来:C=Wlog2(1+S/N),其中 W 是信道带宽,C 是信道的极限信息传输速率。信噪比常用分贝表示,信噪比(dB)=10log10(S/N)。这两个公式一个讲“理想低通信道下码元别发太快”,一个讲“有噪声时信息速率有上限”,考试里经常结合信噪比换算考。

传输媒体分导引型和非导引型。导引型包括双绞线、同轴电缆、光缆;非导引型包括无线电波、微波、红外线、激光。双绞线便宜,同轴电缆常见于电视信号,光纤容量大。微波方向固定,距离远、覆盖广、通信容量大,但受气候影响、传播时延长、误码率高、成本高。信道复用技术有频分复用 FDM、时分复用 TDM、统计时分复用 STDM、码分复用 CDM。FDM 是同样时间占不同带宽,TDM 是不同时间占同样频带,STDM 是改进的时分复用,按需分配时隙。CDMA 中每个用户同一时间使用同样频带通信,靠码片序列区分;计算时码片序列用 -1 表示 0、1 表示 1,内积为 +1 表示收到比特 1,内积为 -1 表示收到比特 0,内积为 0 表示没发送。这个点看着玄学,其实就是用正交码把多个人“叠”在一起再分开。

宽带接入技术里,ADSL 利用现有电话用户线改造,HFC 在有线电视网基础上发展,FTTx 是光纤接入,FTTH 是光纤到户。复习时不必陷进设备型号,抓住“利用什么现有线路、由谁改造、双向能力如何”即可。

3.2 数据链路层三件事:封装成帧、透明传输、差错检测

数据链路层面对的是相邻结点之间的通信,它把网络层交下来的 IP 数据报封装成帧。帧有首部和尾部,帧定界符让接收方知道从哪里开始、到哪里结束。透明传输解决的是“数据里恰好出现控制字符”的问题,常用字节填充法,在特殊字符前加转义字符,让接收方知道它是数据而不是定界符。差错检测只检错不纠错,发现错帧就丢弃。误码率 BER 是传输出错的比特占所传比特总数的比率,提高信噪比可以减小误码率。

循环冗余检验 CRC 是重点计算。做法是:由生成多项式得到除数 P,待传送数据后面补 n-1 个 0,做模 2 除法得到余数 R,这个 R 就是冗余码 FCS,把 R 加到数据后面一起发送。接收端用收到的数据除以 P,余数为 0 就判定这个帧没有差错。这里有个血泪经验:题目给的是“待发送数据”还是“接收到的数据”一定要看清。待发送才补 n-1 个 0;接收到的数据已经带着 FCS,不要再补 0 了。这个坑一旦踩中,计算过程全对也会得零分。

下面是一个简化的 CRC 余数计算示例,只演示模 2 除法思路:

def crc_remainder(data_bits, poly_bits): # data_bits:待发送数据位串,例如 "110101" # poly_bits:生成多项式位串,例如 "1011" # 发送端才在数据后补 len(poly_bits)-1 个 0 work = list(data_bits + "0" * (len(poly_bits) - 1)) for i in range(len(data_bits)): if work[i] == "1": for j, bit in enumerate(poly_bits): work[i + j] = str(int(work[i + j]) ^ int(bit)) # 余数长度等于生成多项式位数减 1 return "".join(work[-(len(poly_bits) - 1):]) print(crc_remainder("110101", "1011"))

这段代码的关键参数是data_bits和poly_bits。data_bits是待发送的数据位串,poly_bits是生成多项式对应的二进制位串。代码先补零,再逐位异或,最后取尾部作为余数。接收端校验时不要调用“补零”这一步,而是把收到的完整位串直接做同样的模 2 除法,看余数是否全为 0。CRC 是检错方法,FCS 是加在数据后面的冗余码,两者一个是方法、一个是结果,别写反。

数据链路层还有最大传送单元 MTU,它指帧的数据部分最大长度,也就是 IP 数据报的总长度,不包括帧头和帧尾。信道极限利用率 Smax=发送帧所需时间/(发送帧所需时间+端到端传播时延)。以太网 MAC 帧发往物理层时还要加 8 字节首部。IEEE 802.3 规定,帧长度不是整数个字节、FCS 查出有错、数据字段不在 46~1500 字节之间,都属于无效 MAC 帧。

3.3 CSMA/CD 与以太网:先听后发为何还要碰撞检测

CSMA/CD 的意思是载波监听多点接入/碰撞检测。十六字总结是“先听后发,边听边发,冲突停止,延迟重发”。多点接入说明这是总线型网络;载波监听是发送前和发送中都要监听信道;碰撞检测是发送时如果发现其他站也在发送,就立即中断本站发送。为什么先听了还要检测?因为两个站可能同时听到信道空闲,然后同时开始发,冲突仍会发生。监听降低冲突概率,碰撞检测负责冲突发生后的止损。

以太网争用期是 2τ,10Mbit/s 以太网中争用期是 512 比特时间,也就是 51.2µs。最小帧长=2τ×数据传输率。这个公式来自“帧长/数据传输率>=2τ”,意思是发送方必须在冲突信号传回来之前还在发送,才能检测到冲突。帧间最小间隔是 9.6µs,相当于 96 比特时间。使用 CSMA/CD 的以太网只能半双工通信,因为一个站不可能同时发送和接收,但必须边发边监听。

局域网地理范围和站点数目有限,按拓扑可分星型网、总线网、环形网。以太网逻辑拓扑是总线型,物理拓扑常是星型。以太网交换机工作在数据链路层,以全双工方式工作,没有碰撞问题,不使用 CSMA/CD,但它仍采用以太网帧结构,所以还叫以太网。虚拟局域网 VLAN 把一个较大的局域网分割成较小的广播域,它只是局域网提供给用户的一种服务,不是一种新型局域网。注意 VLAN 切的是广播域,不是把 IP 地址重新发明一遍;专用地址则是只能用于机构内部通信的地址块,两者解决的不是同一个问题。

4. 网络层:IP地址、分片和路由选择到底在解决什么

4.1 IP地址与CIDR:网络前缀在切哪一段

网络层的主要功能是路由选择和分组转发、异构网络互联、拥塞控制。传输单元是数据报或分组,书里这两个词常混用。网络层提供虚电路服务和数据报服务两种思路,主要差别在于虚电路需要建立连接,各分组按序到达;数据报服务更灵活,分组可能乱序。路由器之间传送两类信息:转发源主机和目的主机之间的数据,以及传送路由信息。

分类 IP 地址把地址分成网络号和主机号。A 类地址以 0 开头,B 类以 10 开头,C 类以 110 开头,D 类以 1110 开头用于多播。A 类网络号范围 1~126,最大主机数 2^24-2;B 类网络号范围 128~191,最大主机数 2^16-2;C 类网络号范围 192~223,最大主机数 2^8-2。减 2 是因为主机号全 0 表示网络地址,全 1 表示广播地址。127 开头且主机号不全为 1、不全为 0 的地址用于环回测试。这个“减 2”不是死记,而是地址里有两个特殊用途不能分配给主机。

无分类编址 CIDR 把网络号改称网络前缀,使用斜线记法,斜杠后面是网络前缀所占位数。网络前缀都相同的连续 IP 地址称为一个 CIDR 地址块。地址掩码是网络前缀全为 1、主机号全为 0,把二进制 IP 地址与掩码按位与,得到网络地址。网络前缀越短,地址块包含的地址数越多;网络前缀越长,地址块越小,路由越具体。最长前缀匹配就是在这种“越具体越优先”的规则下选路由。

地址解析协议 ARP 通过 IP 地址找出对应的 MAC 地址。它解决的是“我知道你要去哪,但本地链路上一跳该把帧交给谁”的问题。IP 地址是网络层地址,MAC 地址是链路层地址,两者作用范围不同,不能互相替代。

4.2 IP数据报分片:片偏移为什么按8字节走

IP 数据报首部有首部长度、总长度、标志、片偏移等字段。首部长度 4 位,单位是 4B,固定部分 20B,所以首部长度最小是 0101,也就是 5×4B=20B。首部长度必须是 4 字节的整数倍,不够就用填充字段补齐。总长度是首部加数据部分之和,单位 1B。数据链路层封装 MAC 帧时要求数据报总长度不能大于 MTU,超过就要分片。

标志字段里,MF=1 表示后面还有分片,MF=0 表示这是最后一个分片;DF=1 表示不能分片,DF=0 表示可以分片。片偏移表示分片后该分片在原分组中的相对位置,以 8 字节为单位。除了最后一个分片,其他每个分片的长度一定是 8 字节的整数倍。为什么按 8 字节?因为片偏移字段只有 13 位,用 8 字节作单位可以在有限位数里表示更大的数据报范围。复习时把“首部长度单位 4B”和“片偏移单位 8B”分开记,别混成一个单位。

举个清楚的计算例子:一个 IP 数据报总长 3200B,首部 20B,数据部分 3180B,MTU 为 1200B。每个分片的数据部分最多 1200-20=1180B,但片偏移按 8 字节走,所以每片数据长度要取 8 的整数倍,最大取 1176B。3180÷1176=2.7,需要 3 片。第一片数据 1176B,片偏移 0;第二片数据 1176B,片偏移 1176÷8=147;第三片数据 3180-1176×2=828B,片偏移 2352÷8=294。每个分片都有自己的首部,总长度是该片首部加该片数据部分。分片题最怕把“总长度”当成“数据部分长度”,读题时先把首部减掉。

4.3 RIP、OSPF、BGP:三种路由思路别背串

自治系统 AS 是在单一技术管理下的许多网络、IP 地址和路由器,使用一种内部路由选择协议和共同度量,对外表现出单一一致的路由选择策略。内部网关协议 IGP 在一个 AS 内使用,如 RIP、OSPF;外部网关协议 EGP 在 AS 之间使用,如 BGP。

RIP 是基于距离向量的路由选择协议,只适用于小型互联网,只和相邻路由器交换信息,交换的是路由表,按固定时间交换。RIP 报文作为运输层用户数据报 UDP 的数据部分传送。它有个特点:“好消息传得快,坏消息传得慢”。距离向量算法步骤是:路由器 A 收到相邻路由器 B 的路由表,第一步把 B 表中距离列每项加 1,下一跳都改为 B;第二步与 A 表逐项比较,A 没有的 Net 直接插入,A 有的看下一跳是不是 B,是就更新,不是就比较距离,更小才更新,否则不动。

OSPF 开放最短路径优先的主要特征是使用链路状态协议,向本自治系统内所有路由器发送信息,采用洪泛法,发送的是本路由器相邻的所有路由器的链路状态。链路发生变化才洪泛发送链路状态信息。OSPF 直接采用 IP 数据报传送。BGP 目前使用 BGP-4,有 OPEN、UPDATE、KEEPALIVE、NOTIFICATION 四种报文,BGP 报文作为 TCP 报文的数据部分传送。三者记忆抓“交换什么、发给谁、靠什么传”:RIP 交换路由表给邻居,靠 UDP;OSPF 交换链路状态给全网,靠 IP;BGP 交换路径信息给 AS 之间,靠 TCP。

网际控制报文协议 ICMP 允许主机或路由器报告差错情况和异常情况。ICMP 差错报告报文有终点不可达、时间超过、参数问题、改变路由等。ICMP 询问报文可用于回送请求和回送回答,ping 用它;traceroute 利用时间超过差错报文。IPv6 首部长度改为 8 字节整数倍,地址采用冒号十六进制记法,零压缩可以省略开头的 0,一连串连续 0 可以用双冒号表示,但一个地址只能用一次零压缩。IPv4 向 IPv6 过渡有双协议栈和隧道技术。专用地址只能用于机构内部通信,常见块有 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。软件定义网络 SDN 是一种体系结构,要点是控制层面与数据层面分离,控制层面用软件实现。它不改变网络功能,而是改变控制方式。

5. 易混概念与常见误区:这些名词长得像,边界差很远

5.1 四种时延:发送、传播、处理、排队不是一回事

易混点:发送时延和传播时延都叫“时延”,公式里又都带时间,很多题一上来就把两者相加却不知道加的是什么。为什么混:它们描述的是数据从一台机器到另一台机器的不同阶段,题目只给“链路长度”“数据率”“帧长”时,很容易抓错公式。怎么区分:发送时延发生在机器内部发送器,等于帧长除以发送速率;传播时延发生在信道里,等于信道长度除以电磁波传播速率;处理时延在路由器分析首部、查表、检错时发生;排队时延在路由器缓存里等待转发时发生。判断时先问“这件事发生在机器里还是链路上”,再选公式。

5.2 数据链路层和运输层:都在“传”,传的对象不同

易混点:数据链路层和运输层都涉及传输,缩写又多,复习时容易把“帧”“分组”“报文段”“用户数据报”混着叫。为什么混:它们都在把上层数据往下送,也都有差错检测或可靠传输的影子。怎么区分:数据链路层面对相邻结点,传送单位是帧,解决的是本地链路上怎么把帧交给下一跳;运输层面对应用进程,TCP 提供面向连接、可靠交付、全双工、面向字节流的服务,UDP 无连接、尽最大努力交付、面向报文、首部 8 字节。网络层为主机间通信服务,运输层为应用进程间通信服务。看到“进程到进程”就想运输层,看到“相邻结点”就想数据链路层。

5.3 交换机、路由器、VLAN与专用地址:广播域和地址块别混

易混点:交换机、路由器都能“连网络”,VLAN 和专用地址都带“内部使用”的味道。为什么混:它们都出现在局域网和网络互联场景里,名字里又都有“虚拟”“专用”之类的词。怎么区分:交换机工作在数据链路层,按 MAC 帧转发,全双工工作时不使用 CSMA/CD;路由器工作在网络层,按 IP 地址和路由表转发分组。VLAN 是把一个较大局域网划分成较小广播域的服务,不是新型局域网;专用地址是只能用于机构内部通信的 IP 地址块,不能作为全球地址使用。一个切广播域,一个划地址范围,解决的问题不同。

5.4 三次握手与四次挥手:seq和ack到底在确认什么

易混点:三次握手和四次挥手都涉及 seq、ack,背图时容易把“确认号”理解成“我收到了哪个包”。为什么混:TCP 是面向字节流的,序号和确认号不是按“第几个包”数,而是按字节数走;握手和挥手又都强调双向。怎么区分:ack 表示期望对方下一个传来的序号,对方下一个 seq 应该等于这个 ack。三次握手确认双方收发能力,建立连接;四次挥手因为 TCP 全双工,双方各自关闭发送方向,所以通常分四次。SYN、FIN 各占一个序号,确认号要加 1。记图不如记一句:我确认的是“下一步想收到哪个字节”,不是“刚才那个包我收没收到”。

5.5 流量控制与拥塞控制:一个管接收方,一个管整个网络

易混点:流量控制和拥塞控制都在“让对方别发太快”,复习时容易把两者当成同一件事。为什么混:它们都通过窗口调节发送速率,都会出现“窗口变小”的描述。怎么区分:流量控制是点对点的,让发送方别发太快,使接收方来得及接收;拥塞控制是全局性的,防止过多数据注入网络导致性能变差。拥塞控制四种算法是慢开始、拥塞避免、快重传、快恢复。慢开始阶段拥塞窗口按 2 倍增大,拥塞避免阶段加 1 增大;超时时拥塞窗口降为 1,收到三个重复确认时降为当前的一半。题目问“接收方来不及收”是流量控制,问“网络整体堵了”是拥塞控制。

6. 什么时候用这份资料、什么时候别用:复习边界比背题更重要

这份计算机网络期末复习电子版资料适合在“已经听过一遍课、需要把概念串成线”的阶段用。比如你能说出分组交换和电路交换的区别,但一遇到时延题就分不清发送时延和传播时延;你知道 CRC 要补零,却总在“接收端要不要补零”上翻车;你背过 RIP、OSPF、BGP,却说不清它们交换的是什么。这时候把它当索引,按章节回填公式和边界,效率最高。

场景适合用不适合用
考前两周梳理概念用章末易混点做对照,回看公式发生位置只扫缩写,不回到定义
计算题专项用 CRC、分片、时延、拥塞窗口例题练手只看答案不写单位
完全没学过第一遍可当目录,知道先学什么直接背结论,容易把层次混掉
想替代课堂和习题不适合网络层分片、运输层拥塞控制必须动手算

如果你要的是“快速知道这本书讲了什么”,可以按第 2 章到第 4 章的线索翻:先看分层和性能指标,再看物理层与数据链路层,最后看网络层和运输层。如果你要的是“考试时少踩坑”,重点看第 5 章的易混点,尤其是时延四种、链路层与运输层、交换机与路由器、三次握手与四次挥手。完整电子版资料可以按页面提示获取,放在手边当索引即可,不必把它当成唯一答案。

从那以后我每次做网络层分片题,都先写“首部 20B、片偏移单位 8B、总长度含首部”这三行再动笔;做 CRC 题也先标“发送端补零、接收端不补”。这个习惯帮我少踩了很多坑。希望帮到你。

本文还有配套的精品资源,点击获取