ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

计算机网络复习:分层模型、TCP/IP核心考点与面试八股速记

计算机网络复习:分层模型、TCP/IP核心考点与面试八股速记 又到期末季和408备考高峰后台私信里问计算机网络怎么学的声音明显多起来。无论你是准备期末考试、冲刺考研408还是在为面试刷计算机网络八股文最后都会落到同一个需求上把散落在教材里的知识点串成体系在有限时间里抓住核心、记住易错点。这篇速记不打算替代教材也不是把《计算机网络》谢希仁版或《自顶向下》的目录抄一遍。我的目的是把各层里最容易考、最容易混淆、面试官最爱问的内容拎出来配上我当时复习时用的记忆方法和踩过的坑。适合正在过第二遍或第三遍的人快速建立框架也适合大一/大二刚开始学、被各种协议绕晕的同学用来锚定方向。1. 先建立整体框架协议栈与学习地图1.1 分层模型到底在解决什么问题很多同学一上来就背OSI七层物理、数据链路、网络、传输、会话、表示、应用背得滚瓜烂熟但问一句为什么需要分层就卡住了。这个问题一旦想不明白后面所有协议都是死记硬背。分层解决的核心问题是把复杂的网络通信拆成一系列可独立设计、独立维护的子问题。我常用的类比是寄快递你不需要知道包裹坐的是飞机还是卡车也不需要知道中转站怎么分拣你要做的只是写好地址、贴好面单、交给快递员。快递公司内部再把运输、分拣、派送拆成不同的环节。网络分层是同一套逻辑——每一层只负责自己该干的事层与层之间通过标准接口通信。考试和面试里最常见的映射关系要烂熟于心OSI七层TCP/IP四层典型协议典型设备应用层、表示层、会话层应用层HTTP、DNS、FTP、SMTP应用层网关传输层传输层TCP、UDP四层交换机网络层网际层IP、ICMP、ARP、OSPF、RIP路由器数据链路层网络接口层Ethernet、PPP、VLAN交换机、网桥物理层网络接口层双绞线、光纤、中继器集线器、中继器记忆诀窍OSI七层背口诀物数网传会表应物理-数据链路-网络-传输-会话-表示-应用TCP/IP四层其实就是把OSI的上三层合并成应用层把下两层合并成网络接口层中间的网络层和传输层原样保留。面试里如果问你OSI和TCP/IP有什么区别本质答的就是这个合分层逻辑。1.2 按层学习的正确姿势与常见误区我见过太多人学计网的第一个误区从物理层开始逐字精读教材结果在曼彻斯特编码差分曼彻斯特编码里耗了两个星期学到传输层已经没力气了。物理层和数据链路层内容杂、琐碎但在408和期末考试里占比反而不高更好的策略是先抓网络层和传输层这两条主线回头再补物理层和链路层的细节。第二个误区是只看概念不上手。计网是工科不是文科。子网划分、CRC校验、CSMA/CD退避时间计算这些点只看例题绝对不够必须自己动笔算。我的经验是第一遍学完每章立刻做对应章的练习题错了的题回到课本找根因比反复看书有效得多。学习主线建议按这个顺序走先搞清楚应用层HTTP、DNS解决什么问题再往下看传输层TCP怎么保证可靠接着看网络层IP怎么寻址和路由最后回过头补链路层和物理层。这样一路是从用户能感知的体验往底层实现机制推每一步都知道自己在解决什么问题比从物理层往上推要顺得多。2. 物理层与数据链路层容易被低估的送分题2.1 物理层必背概念编码、调制、复用与带宽计算物理层的核心概念就四个数据通信基础、编码与调制、传输介质、复用技术。这里面几乎每年必考的是码元、波特率、比特率的关系和奈氏准则、香农公式。码元是承载信息的基本信号单元。波特率码元传输速率表示每秒传输多少个码元单位Baud比特率信息传输速率才是我们常说的网速单位bit/s。两者的关系是比特率 波特率 × log₂M其中M是码元的离散电平数。比如一个码元能表示4种状态M4那么每个码元携带2比特信息波特率1000Baud对应的比特率就是2000bit/s。奈氏准则和香农公式是计算题重灾区要分清适用条件奈氏准则奈奎斯特公式理想低通信道下极限码元传输速率 2W Baud其中W是信道带宽Hz。它解决的是无噪声信道里码元能传多快的问题注意它限制的是波特率。香农公式C W × log₂(1 S/N)其中C是信道极限信息传输速率S/N是信噪比。注意信噪比通常用分贝dB表示10dB对应S/N 1030dB对应S/N 1000代入计算时别直接拿dB数值算。实考题里常见的是带宽3kHz信噪比30dB求极限传输速率代入香农公式就是 C 3000 × log₂(1 1000) ≈ 3000 × 9.97 ≈ 29.9kbit/s。这类题的关键是记住dB到S/N的换算我当年在这上面丢过分。复用技术里的重点区分**频分复用FDM**让不同信号占用不同频段像不同电台占用不同频率**时分复用TDM**让不同信号在不同时间片轮流使用信道**波分复用WDM**是光纤里的频分复用**码分复用CDM**用不同码序列区分用户3G时代的核心技术。考试常考的是TDM和统计TDM的区别记住TDM固定分配时隙即使某路用户没数据时隙也空着统计TDM则按需分配。2.2 数据链路层的核心机制封装、差错控制与MAC协议数据链路层做的事情可以概括为三件封装成帧、差错控制、介质访问控制。封装成帧的关键概念是帧。数据链路层从网络层拿到IP数据报加上帧头含目的MAC地址、源MAC地址、类型和帧尾FCS校验序列构成一帧。以太网帧格式里有个容易被忽略的点帧的最小长度为64字节如果上层数据太少要填充到64字节。为什么是64这跟CSMA/CD的冲突检测机制绑定后面细说。差错控制里最常考的是CRC循环冗余校验。CRC的原理不复杂发送端把数据看成多项式除以生成多项式得到余数作为FCS附加在数据后接收端用同样生成多项式除一遍余数为0则无误。考试常考的是给定数据和生成多项式求FCS这类题必须自己手算过几道光看范文永远学不会。我建议至少把课本上的两三道CRC例题完整算一遍体会二进制模2除法不进位不退位的过程。介质访问控制协议是这层最难的地方核心是CSMA/CD载波监听多路访问/冲突检测。它用在传统共享式以太网里流程四步先听后发、边发边听、冲突停发、随机重发。冲突后采用截断二进制指数退避算法第n次冲突后从0到2ⁿ⁻¹n≤10中随机取一个数r等待r×512比特时间后重发。考试常考以太网最短帧长为什么是64字节假设网络直径对应的最大传播时延为τ一个站点发送帧后最迟2τ才能检测到冲突所以发送时间必须大于2τ即帧长/发送速率 2τ换算下来最小帧长就是64字节。这个推导过程理解了比死背数字靠谱。2.3 高频混淆点冲突域、广播域与交换机/路由器选型数据链路层相关的概念辨析题最经典的是冲突域、广播域和网络设备的对应关系。我在面试里被问过考卷上也见过属于那种好像知道但一写就错的题。冲突域是指两台设备同时发送数据会产生冲突的区域。广播域是指一台设备发送广播帧所有能收到该广播的设备构成的区域。两者的区别用设备区分最直观集线器Hub不隔离冲突域也不隔离广播域——所有端口在同一个冲突域里所以它的总带宽是所有端口共享的。交换机Switch每个端口是一个独立的冲突域但默认不隔离广播域——所有端口属于同一个广播域除非划分VLAN。路由器Router隔离广播域——每个接口是一个独立的广播域。用这张表速记看到哪个设备能隔离冲突域选交换机看到哪个设备能隔离广播域选路由器。这个点我建议细想一遍因为后续学VLAN、学三层交换都建立在它的基础上。我复习时的记忆锚点是冲突域看的是物理上会不会撞车广播域看的是逻辑上会不会收到别人的广播。Hub是大家挤在同一条巷子里走路必然会撞交换机像独立电梯各走各的但电梯里的广播还是会传遍整栋楼路由器像楼与楼之间的门禁广播到了门口就停了。3. 网络层IP编址、路由与核心协议3.1 IP地址与子网划分计算题的五步套路与实战示例网络层的绝对重点是IP编址。IPv4地址是32位二进制通常写成点分十进制。传统分类编址把地址分成A、B、C、D、E五类判断类别的办法很简单看第一个8位组的高位A类以0开头1~126B类以10开头128~191C类以110开头192~223。这段内容唯一需要背的就是ABCDE各自的范围和默认子网掩码没有技术含量但必须滚瓜烂熟。子网划分是必考计算题。我总结的五步法基本能覆盖90%的考题确定需要从主机位借几位如果有n个子网需求满足2^k ≥ n的最小k就是借位数。写出新的子网掩码原掩码中主机位最前面k位变1。计算每个子网的地址增量增量 2^(剩余主机位数)。列出所有子网的网络地址从原网络地址开始逐一加增量。计算每个子网的主机范围、广播地址。举个例子把192.168.10.0/24划分成4个子网。原掩码是255.255.255.0主机位8位。需要2^k ≥ 4k2所以借2位。新掩码是255.255.255.192二进制11111111.11111111.11111111.11000000。剩余主机位6位子网增量 2⁶ 64。四个子网分别是192.168.10.0/26可用主机范围192.168.10.1~192.168.10.62广播地址192.168.10.63192.168.10.64/26可用主机范围192.168.10.65~192.168.10.126广播地址192.168.10.127192.168.10.128/26可用主机范围192.168.10.129~192.168.10.190广播地址192.168.10.191192.168.10.192/26可用主机范围192.168.10.193~192.168.10.254广播地址192.168.10.255每个子网可用主机数 2⁶ - 2 62减去网络地址和广播地址。注意考题如果问每个子网能容纳多少台主机这个减2很容易漏我见过不少人栽在这里。3.2 CIDR、ARP、ICMP与NAT网络层协议速记传统分类编址浪费了大量地址空间于是有了CIDR无分类域间路由它把IP地址写成IP地址/前缀长度的形式比如192.168.10.0/26。CIDR的核心思想是取消ABC类地址的限制按任意长度前缀划分网络。路由聚合路由汇总就是CIDR的应用把多个连续的子网聚合成一个更大的网络减小路由表规模。ARP地址解析协议解决的是已知IP地址怎么找到MAC地址的问题。它的关键在于ARP只在同一局域网内有效发送方在局域网内广播ARP请求目标主机回复自己的MAC地址。跨网段通信时先把数据包发给默认网关由网关负责下一步ARP查询。考试容易挖坑的点是主机A访问不同网段的主机B时ARP请求查的是网关的MAC地址而不是B的MAC地址。这个点我在综合题里反复见理解ARP是逐跳的就不会错。ICMP网际控制报文协议主要用于传递网络层差错信息。考试常考两个应用ping利用ICMP回显请求/回显应答报文测试连通性tracerouteWindows下是tracert利用ICMP超时报文逐跳显示路由路径。不需要知道太多细节记住这两个工具分别利用ICMP的哪类报文就够了。NAT网络地址转换是为了缓解IPv4地址枯竭而生的技术。它让内网主机使用私有地址10.0.0.0/8、172.16.0.0/12、192.168.0.0/16出网时路由器把源IP和端口映射成公网IP和端口。这里涉及一个高频考点普通NAT只能解决IP地址映射不能解决端口复用问题所以诞生了NAPT网络地址端口转换把传输层端口也纳入映射表实现一个公网IP同时供多台内网主机上网。家庭宽带的上网功能用的就是NAPT。3.3 路由协议比较RIP、OSPF与BGP的一句话记忆法路由协议这部分408真题和期末考试的考法很固定给你几个协议让你选特征、选端口、选算法。把三者的核心差异背熟做题基本不慌。RIP路由信息协议是距离向量算法以跳数作为度量最大跳数1516表示不可达每30秒广播一次完整路由表。实现简单但收敛慢适合小型网络。它基于UDP端口520。OSPF开放最短路径优先是链路状态算法每台路由器收集全网链路状态通过Dijkstra算法计算最短路径。收敛快、支持大型网络基于IP协议直接封装协议号89采用SPF算法与区域划分。BGP边界网关协议负责自治系统AS之间的路由交换属于路径向量协议它关心的不是最短路径而是可达性和策略基于TCP端口179。一句话记忆RIP看跳数、小网用OSPF算全网最短路径、大网用BGP管AS之间、讲策略。我复习时专门拿这三者做了一张对比表贴在书桌前考前最后一眼看的就是它。4. 传输层端口、可靠传输与TCP的十二个细节4.1 UDP与TCP一张表讲清二者的取舍逻辑传输层是面试八股文的密集区UDP和TCP的对比题几乎场场必问。这张对比表建议背到能默写的程度对比维度TCPUDP连接性面向连接需三次握手无连接直接发可靠性可靠传输确认、重传、排序尽最大努力交付不保证可靠传输方式面向字节流面向报文拥塞控制有慢启动、拥塞避免等无传输效率低高首部开销20字节最小8字节应用场景文件传输、网页浏览、邮件视频直播、语音通话、DNS查询理解这张表的钥匙是取舍逻辑TCP把可靠性做满代价是效率低、首部大、连接管理复杂UDP把效率拉满代价是数据丢了不负责。所以凡是要求不能丢的用TCP凡是丢一点没关系但必须快的用UDP。视频通话里偶尔卡一下能忍文件传输里丢一个字节整个文件就坏了这就是选择的本质。端口号方面要记住三类知名端口0~1023HTTP的80、HTTPS的443、DNS的53、FTP的20/21、SSH的22、SMTP的25、DHCP的67/68注册端口1024~49151动态端口49152~65535。面试常问DNS为什么用UDP主流查询还要用TCP区域传送普通查询一次请求一个响应用UDP快区域传送数据量大且要求可靠用TCP。4.2 三次握手与四次挥手为什么是这个次数TCP连接的建立要三次握手过程得能默画状态变迁图客户端先发SYN报文seqx服务器回SYNACKseqyackx1客户端再回ACKseqx1acky1。三次之后连接建立。面试官最爱问为什么不是两次也不是四次。答案要点三次握手之所以成立是因为要确认双方的发送能力和接收能力都正常。第一次握手服务器确认客户端的发送能力正常第二次握手客户端确认服务器的发送和接收能力都正常同时让服务器确认客户端的接收能力正常能收到SYNACK第三次握手服务器确认客户端的接收能力也正常。如果只用两次握手服务器永远无法确认客户端的接收能力是否正常还可能收到迟到的旧SYN报文后建立一条错误连接。四次挥手的过程是主动方发FIN被动方回ACK此时被动方还可以继续发数据因为TCP允许半关闭被动方发完数据后也发FIN主动方回ACK确认。这里有个必考陷阱为什么要TIME_WAIT等待2MSL最大报文段生存时间再关闭。原因有两个一是确保最后一个ACK能到达对方如果丢了对方会重发FIN主动方还能响应二是有足够时间让本连接产生的所有报文在网络中消失避免干扰后续使用同一端口的新连接。我面试时把这两条答全基本就是满分回答了。游涡般的细节还有SYN Flood攻击攻击者只发SYN不完成第三次握手耗尽服务器半连接队列。防护手段包括SYN Cookie不分配资源用加密算法生成初始序号——这个点408真题考过值得看一眼。4.3 可靠传输与拥塞控制滑动窗口、超时重传与四个算法TCP可靠传输的三个支柱是校验和检测比特错误、确认与重传ARQ协议、序号排序和去重。具体机制要掌握停止等待协议和滑动窗口协议。GBN后退N帧和SR选择重传的区别是经典考点GBN里一个分组出错发送方要重传该分组及其后所有已发送分组SR里只重传出错的那个分组代价是接收方要缓存乱序到达的分组。拥塞控制是TCP面试八股文的压轴题。四个算法要按顺序讲清楚我直接复述当时的答题套路慢启动拥塞窗口cwnd从1开始每收到一个确认cwnd翻倍指数增长。直到达到慢启动阈值ssthresh。拥塞避免进入线性增长阶段每经过一个RTTcwnd加1加法增大。快重传收到3个重复ACK立即重传丢失报文段不等超时。快恢复发生快重传时ssthresh减半cwnd设为ssthresh直接进入拥塞避免阶段。还有个记忆点超时重传发生后ssthresh设为当前cwnd的一半cwnd重置为1重新开始慢启动。而快恢复之所以叫快是因为它不把cwnd降回1而是直接降到ssthresh避免重新慢启动浪费时间。画一张cwnd随时间变化的锯齿图这四个算法基本就刻进脑子了。5. 应用层与高频面试真题速记5.1 HTTP/HTTPS/DNS面试题里的常客应用层协议在期末考试里比重不大但面试里占比极高。HTTP相关的八股文基本是必背项。HTTP版本演进是个高频题HTTP/1.0每请求一个资源就建立一次TCP连接效率极低HTTP/1.1引入持久连接Keep-Alive支持管道化但队头阻塞问题未解决HTTP/2.0引入多路复用、二进制分帧、头部压缩解决了队头阻塞问题HTTP/3.0基于UDP的QUIC协议进一步消除TCP队头阻塞。HTTPS的核心是HTTP TLS/SSL。握手过程大致是客户端发ClientHello服务器回ServerHello并附带数字证书客户端验证证书验证CA签名、证书有效期、域名匹配协商密钥之后用对称加密传输数据。一句话总结用非对称加密协商对称密钥用对称密钥加密业务数据。CA证书链验证是加分项能说出证书由CA私钥签名客户端用CA公钥验证就从背过升级成了理解。DNS解析流程也是必问。递归查询和迭代查询的区别要会描述主机向本地DNS服务器发查询这是递归查询本地服务器必须给出最终答案本地DNS服务器依次向根DNS、顶级域DNS、权威DNS发起查询这是迭代查询被查服务器只给下一个地址。我常用的例子是解析www.example.com根服务器告诉它去查.com服务器.com服务器告诉它去查example.com的权威服务器权威服务器返回IP。这里还要记住DNS用了UDP 53端口本地DNS缓存能显著减少解析耗时。5.2 经典八股题从输入URL到页面显示发生了什么这道题堪称计算机网络八股文的集大成之题它把应用层到物理层的所有知识点串成一条线面试官可以通过它考察你对全栈协议的掌握程度。我的答题框架分十步浏览器解析URL提取协议、域名、端口和路径。DNS解析域名得到目标服务器IP地址。浏览器发起TCP连接三次握手建立连接。如果使用HTTPS进行TLS握手协商密钥。浏览器构造HTTP请求报文发送GET请求。服务器处理请求返回HTTP响应报文。浏览器收到响应解析HTML、CSS、JavaScript加载资源。页面渲染过程中发现外部资源图片、脚本重复步骤2~6。TCP四次挥手释放连接HTTP/1.0或复用连接HTTP/1.1。页面完成渲染用户看到最终内容。每一步能展开的细节都很多但面试时一口气把这个框架背出来已经能给面试官留下体系完整的印象。我建议你在此基础上把第2步DNS、第3步TCP、第4步TLS的细节分别准备好因为面试官几乎必然会顺着你的回答往下追问其中某一步。6. 备考资源怎么选从教材到视频的实用搭配6.1 谢希仁版、自顶向下与王道的取舍目前主流的计网教材有三套谢希仁《计算机网络》国内高校用得最多、库罗斯/罗斯《计算机网络自顶向下方法》翻译版叫自顶向下经典国外教材、王道考研系列专门针对408。三者的定位差异我在复习时体会很深。谢希仁版的优点是贴合国内本科教学大纲知识点覆盖齐全语言算是通俗的期末考试的很多考点比如子网划分、CRC、CSMA/CD在书里都有明确章节对应。缺点是部分内容组织偏旧IPv6和现代网络架构讲得不算多而且理论阐释比较多、实际场景联系少。如果你学校上课用的是这本期末复习跟着它走最稳。自顶向下的优点是为什么讲得极其透彻从应用层一路往下每个协议都从真实应用场景引入读起来像看故事而不是看手册。很多人觉得它比谢希仁版有意思但要注意它的内容组织和国内考纲不完全对得上比如物理层讲得很浅因为作者默认读者不需要深入了解物理细节。自顶向下更适合建立网络思维不适合作为期末考前的快速突击材料。王道系列是典型的考研教辅把408真题和核心考点按章节整理得清清楚楚每一章配视频课和习题。如果你目标是408王道是最高效的刷题材料但它默认你已经有教材基础不适合当第一本入门书。我的建议组合是第一遍用自顶向下建立整体认知有时间的话或者直接用谢希仁过一遍课本时间紧的话第二遍用王道强化考点和刷题。湖科大教书匠的视频课我也看过它把协议讲解做得比较直观生动适合配着教材理解细节尤其是TCP状态变迁、路由算法这类抽象内容看动画演示比自己啃文字效率高一截。6.2 期末突击 vs 408系统复习的不同打法备考场景不同投入策略完全不一样。期末突击版2周以内目标是过考纲、拿高分。优先把老师划的重点章节通常是网络层和传输层吃透再做3~5套往年期末题。期末题的特点是重复率高很多学校连续几年考同一类计算题子网划分、CRC、滑动窗口把真题题型总结出来逐一突破比从头看教材有效得多。如果老师发了PPT优先过PPT因为考题范围基本在PPT里划定了。408系统复习版1个月以上目标是覆盖全部考点、应对综合性大题。408计网大题最爱综合应用层、传输层和网络层给一个网络拓扑问你IP地址规划、路由配置、TCP连接过程。这种题光靠背知识点不够需要把各层知识串起来。我在系统复习阶段的做法是每学完一章就动手画一遍该层的协议栈图最后把四层的图拼成一张大图贴在书桌前每天过一眼。考前两周集中刷王道真题错题按考点分类整理冲刺阶段只复习错题本。6.3 我的几点实操心得最后分享几个我复习计网时受益最大的习惯都是踩过坑之后总结出来的。第一协议一定要画图。TCP三次握手、四次挥手的状态变迁TCP拥塞控制的窗口变化OSPF的LSA泛洪过程光看文字记不住但自己动手画一遍图就记住了。我画了三遍TCP状态图之后状态名和迁移条件彻底刻进脑子里。第二计算题必须限时手算。子网划分、CRC、CSMA/CD退避时间平时做题慢悠悠可以容忍考场上每题只有几分钟时间。我的做法是每天随机抽一道计算题设置8分钟倒计时模拟考场压力坚持两周后计算速度明显提升。第三用讲给别人听来检验掌握程度。找一个同样在备考的同学互相讲TCP为什么可靠、DNS怎么解析、为什么要有TIME_WAIT。能用自己的话把别人讲明白才算真正掌握。这是我复习阶段检验知识牢固度的黄金标准很多自以为明白的知识点都是在这一步暴露问题的。计算机网络的内容量很大但核心骨架是清晰的。把分层模型想明白、把TCP的可靠性和拥塞控制吃透、把IP编址和路由原理学会你就已经掌握了这门课80%的精华。剩下的就是反复刷题、反复画图把熟悉变成条件反射。希望这篇速记能帮你节省一些自己摸索的时间。
返回列表