计算机网络期末复习:分层协议、时延计算与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。这里有个最容易踩坑的点表示速率时K10^3、M10^6、G10^9表示文件大小、存储容量时K2^10、M2^20、G2^30。题目里看到“速率”和“容量”混在一起先把单位统一不然一步错步步错。信道带宽表示网络中某信道传送数据的能力单位也是 bit/s吞吐量是单位时间内通过某个网络的实际数据量。带宽像水管口径吞吐量像实际流过的水量口径大不代表每时每刻都满流。时延分四种发送时延是主机或路由器把数据帧送到链路上所需的时间发生在机器内部的发送器传播时延是电磁波在信道中传播一定距离花费的时间公式是信道长度除以传播速率处理时延是收到分组后分析首部、提取数据、差错检测、查找转发表等花费的时间排队时延发生在路由器里取决于拥塞程度。总时延是四者之和但题目常让忽略某些项读题时先看它问的是哪个环节。时延带宽积等于传播时延乘带宽可以理解成“管道里最多能装多少比特”。往返时间 RTT 是双向交互一次所需的时间不是单程。信道利用率 U1-空闲时的时延/当前时延这个公式背后是“忙的时间占比越高利用率越高”。这些指标不是孤立数字它们共同回答一个问题这条链路到底快不快、堵不堵、等多久。复习时把单位、发生位置、公式三件事绑在一起比背一句定义更稳。3. 物理层与数据链路层比特怎样变成一帧3.1 物理层只管比特流奈氏准则和香农公式在算什么物理层考虑的是如何传输比特流它不关心这一串比特是图片还是网页。物理层有机械特性、电气特性、功能特性、过程特性接口形状、电压范围、某一电平的含义、事件出现顺序都属于它要约定的内容。通信方式分单工、半双工、全双工。单工只有一个方向像广播半双工双方都能发但不能同时发像对讲机全双工可以同时收发像打电话。使用 CSMA/CD 的以太网只能半双工通信因为它发送时还要监听碰撞不能同时收发。奈氏准则说的是在带宽为 W Hz 的低通信道中不考虑噪声时码元最高传输速率是 2W 码元/秒。超过这个速率会出现严重码间串扰。注意它限制的是码元速率不是直接等于比特率如果一个码元携带多个比特比特率还可能更高。香农公式则把噪声考虑进来CWlog2(1S/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 查出有错、数据字段不在 461500 字节之间都属于无效 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 类网络号范围 1126最大主机数 2^24-2B 类网络号范围 128191最大主机数 2^16-2C 类网络号范围 192223最大主机数 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×4B20B。首部长度必须是 4 字节的整数倍不够就用填充字段补齐。总长度是首部加数据部分之和单位 1B。数据链路层封装 MAC 帧时要求数据报总长度不能大于 MTU超过就要分片。标志字段里MF1 表示后面还有分片MF0 表示这是最后一个分片DF1 表示不能分片DF0 表示可以分片。片偏移表示分片后该分片在原分组中的相对位置以 8 字节为单位。除了最后一个分片其他每个分片的长度一定是 8 字节的整数倍。为什么按 8 字节因为片偏移字段只有 13 位用 8 字节作单位可以在有限位数里表示更大的数据报范围。复习时把“首部长度单位 4B”和“片偏移单位 8B”分开记别混成一个单位。举个清楚的计算例子一个 IP 数据报总长 3200B首部 20B数据部分 3180BMTU 为 1200B。每个分片的数据部分最多 1200-201180B但片偏移按 8 字节走所以每片数据长度要取 8 的整数倍最大取 1176B。3180÷11762.7需要 3 片。第一片数据 1176B片偏移 0第二片数据 1176B片偏移 1176÷8147第三片数据 3180-1176×2828B片偏移 2352÷8294。每个分片都有自己的首部总长度是该片首部加该片数据部分。分片题最怕把“总长度”当成“数据部分长度”读题时先把首部减掉。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 交换路由表给邻居靠 UDPOSPF 交换链路状态给全网靠 IPBGP 交换路径信息给 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 题也先标“发送端补零、接收端不补”。这个习惯帮我少踩了很多坑。希望帮到你。本文还有配套的精品资源点击获取