
1. 考前必看这份速记到底怎么用先说清楚这份速记是给谁用的。期末冲刺、考研408第一轮扫盲、面试前临时抱佛脚三类人都能在这份清单里找到自己需要的东西。计算机网络这门课知识点碎得像散落一地的螺丝钉难的不是某个单独的知识点而是它们之间的关联——物理层到应用层怎么串起来TCP和IP怎么配合路由和交换各管哪一段。我当年复习的时候最痛苦的不是背不住协议名字而是背住了却不知道它出现在哪一层、解决什么问题。这份速记的定位是三件事把高频考点压缩成可背诵的条目把容易混淆的概念摆在一起作对比把刷题时反复踩的坑拿出来单独说。它不是教材的替代品而是教材的“提纯版”。如果你用的是谢希仁的《计算机网络》或者王道的408辅导书配合这份速记去对照效率会高很多。顺便说一句网上经常有人问“湖科大教书匠的计算机网络课适合考408吗”。我的观点是打基础完全够用他的课程对概念讲解非常细致尤其是物理层和数据链路层讲得比很多教材都清楚。但408的考法是重综合、重计算光看视频不做题等于白搭。建议的路线是看视频理解概念用王道或者谢希仁的课后题练手最后用这份速记做考前回顾。接下来是正题。2. 体系结构OSI七层与TCP/IP四层的对应关系2.1 分层模型为什么重要面试和考试都喜欢问“为什么计算机网络要分层”这个问题看起来简单但很多人答不到点上。分层的本质是把复杂的通信过程拆成一个个可以独立设计、独立升级的模块。就好比快递运输寄件人写地址应用层、仓库分拣传输层、运输干线网络层、最后一公里配送数据链路层、高速公路本身物理层每一段只需关心自己的职责出了问题也只需排查对应段落。OSI七层模型分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP四层模型是网络接口层、网际层、传输层、应用层。虽然OSI是理论标杆但现实中跑的是TCP/IP所以考试时更常考的是TCP/IP的划分。记住一个对应关系应用层TCP/IP 应用层 表示层 会话层OSI传输层TCP/IP 传输层OSI网际层TCP/IP 网络层OSI网络接口层TCP/IP 数据链路层 物理层OSI这里容易犯的错就是很多人以为TCP/IP四层和OSI七层是一一对应的其实应用层那里是“三合一”的关系。408真题里出现过这种概念的辨析题选择题丢分往往就丢在这种细节上。2.2 各层核心设备与协议速查这一块是要背住的而且不能背混。物理层的设备是集线器和中继器工作在比特级没有智能收到什么转发什么。数据链路层的设备是交换机和网桥它们开始有了“帧”的概念能看MAC地址做转发决策。网络层的设备是路由器看IP地址选路是网络互联的核心。光记住设备还不够还得知道协议。应用层的HTTP、DNS、FTP、SMTP、POP3、DHCP传输层的TCP、UDP网络层的IP、ICMP、ARP、IGMP数据链路层的以太网协议、PPP物理层基本不涉及高层协议。我建议把这份清单默写三遍不是说我默写不出而是考试时看到“ARP属于哪一层”这种送分题一秒之内要能反射出来。有个细节特别容易错ARP协议。从功能上看它是通过IP地址查MAC地址属于网络层的辅助协议但它的报文是封装在以太网帧里传输的。考试问它属于哪一层标准答案是网络层但如果问你“ARP报文直接封装在什么里面”答案是数据链路层的帧。这两种说法不矛盾一个是逻辑归属一个是封装方式。3. 物理层与数据链路层以太网、交换机的核心机制3.1 物理层的编码与调制物理层这部分在期末考试里占比不大但408偶尔会出一道选择题考基带信号和宽带信号、编码和调制的区别。编码是数字数据转成数字信号调制是数字数据转成模拟信号。常见的编码方式里不归零码、曼彻斯特编码、差分曼彻斯特编码是高频考点。曼彻斯特编码的规则是每个比特中间肯定有跳变电平从高到低表示1、从低到高表示0不同教材定义可能相反跳变既做时钟同步又表示数据所以它被称为“自含时钟编码”。差分曼彻斯特编码则是看比特起始处有没有跳变有跳变表示0、无跳变表示1中间照样有跳变。这两者的区别就是考试里常挖的坑别看教材里画了波形图就觉得简单做题时漏了“起始处是否有跳变”这个判断依据就容易选错。3.2 以太网与CSMA/CD协议传统以太网用的是总线型拓扑多个设备共享一条信道所以需要介质访问控制协议来避免冲突。CSMA/CD载波监听多点接入/碰撞检测就是当年的解决方案。它的核心流程是先听后发、边发边听、冲突停发、随机重传。为什么现在交换机普及后CSMA/CD就很少提了因为交换机每个端口是一个独立的冲突域全双工模式下发送和接收走不同的线路根本不会撞车。考试如果问“以太网最小帧长为什么是64字节”你得能答上来这是为了保证在最大传输距离内发送方发送完全帧之前能够检测到冲突。假设最远两端相距2500米单程传播时延约12.5微秒一来一回就是25微秒在10Mbps的速率下25微秒内能发送的比特数是 10 × 10^6 × 25 × 10^(-6) 250比特约31.25字节。考虑前导码等因素最小帧长定在64字节才能确保冲突信号能传回发送方时帧还没发完。这题408考过期末也爱考属于必背的计算逻辑。我不建议死记64这个数字而是记住推导思路冲突检测需要两倍的传播时延最小帧长 2 × 传播时延 × 数据传输速率这样无论题目怎么变你都能算。3.3 交换机的自学习与转发机制交换机是数据链路层的核心设备它干的事就是查表、转发、学习。初始转发表是空的交换机收到一个帧先看源MAC地址把它和进入的端口号记录到转发表里这叫“学习”再看目的MAC地址查表如果表里有对应端口就直接转发这叫“明确转发”如果表里没有就向除源端口外的所有端口广播这个帧这叫“泛洪”。这个机制是期末笔试和面试手撕题的高频考点。常考的问题是假设交换机刚启动A主机给B主机发了一个帧交换机会怎么处理答案是学习A的MAC地址然后泛洪因为此时转发表里没有B的记录。等B回复A时交换机又从源端口学到了B的MAC地址之后A和B再通信交换机就能精确转发了。有个坑值得单独说如果网络里有环路交换机的泛洪会导致帧无限循环产生广播风暴。所以生产网络里要用生成树协议STP来切断环路把物理上的环路逻辑上变成树状结构。408偶尔会在选择题里带一下STP不深考但至少要知道它是为了防环的。4. 网络层IP地址、子网划分、路由协议4.1 IP地址分类与CIDRIPv4地址是32位用点分十进制表达。传统的分类编址把地址分成A、B、C、D、E五类A类第一字节以0开头0~127B类以10开头128~191C类以110开头192~223D类是组播224~239E类保留240~255。这个分类方式在早期够用但随着网络数量爆炸分类编址太浪费地址空间于是有了CIDR无分类编址。CIDR的核心思想是“网络前缀 主机号”用斜线表示前缀长度比如192.168.1.0/24前24位是网络前缀。考试里最常见的操作题就是给一个IP地址和掩码让你算网络地址、广播地址、可用主机数。以192.168.1.130/27为例子网掩码/27即255.255.255.224网络地址把IP和掩码做按位与运算192.168.1.130 与 255.255.255.224结果是192.168.1.128广播地址网络地址的主机位全置1主机位有5位全置1后是192.168.1.159可用主机范围192.168.1.129 ~ 192.168.1.158共30个可用地址这里有个易错点很多人算广播地址时直接用网络地址加子网规模减一如果子网规模算错了广播地址也错。最稳的办法是写二进制先把IP地址和掩码都化成二进制按位与得出网络地址再数主机位。笔试时时间够用宁可多写几步也不要心算出错。4.2 路由协议RIP、OSPF、BGP网络层的另一半重头戏是路由。考研和期末最爱考的是三类协议RIP、OSPF、BGP。RIP是基于距离向量的协议用跳数作为度量最大跳数1516跳视为不可达。它每隔30秒和邻居交换完整路由表收敛慢适合小型网络。这个协议的经典问题是“坏消息传得慢”或叫“计数到无穷”因为路由更新要一步一步传链路断了之后路由器可能要经过很多轮更新才能认定某个网络不可达。OSPF是基于链路状态的协议路由器把自己知道的链路状态广播给整个区域内所有路由器每台路由器都有一张一致的拓扑图然后用Dijkstra算法计算最短路径。它收敛快支持负载均衡没有跳数限制适合中大型网络。BGP是自治系统之间的路由协议跑在TCP179端口上属于路径矢量协议它关心的不是跳数多少而是“经过哪些AS”从而决定路由策略。考试如果出这三者的对比表格从这几项区分算法的类别、度量标准、收敛速度、应用场景、底层传输协议RIP走UDP520OSPF走IP直接封装BGP走TCP179。这个表格建议自己默画一遍比单纯背文字强得多。4.3 ARP与ICMP的配合ARP的作用是“已知IP求MAC”。同一广播域内的主机发送数据前先查自己的ARP缓存如果没有对应表项就广播一个ARP请求报文目的MAC是FF-FF-FF-FF-FF-FF所有主机都会收到但只有IP地址匹配的那台会回复ARP应答报文把自己的MAC地址告诉请求方。这个机制在数据链路层和网络层的交界处之所以单独拿出来讲是因为题里经常把它和“交换机工作在哪一层”结合起来考。ICMP的作用是传递差错报告和网络诊断信息。ping命令用的就是ICMP的echo request和echo reply。常考的细节是ping不能穿越路由器吗不是不能而是很多路由器为了安全会禁掉ICMP导致ping不通但业务数据照样能通。考试里问“ICMP报文封装在什么里面”答案是IP数据报的数据部分也就是说ICMP是IP的上层协议但它不算传输层协议这是很容易被误解的地方。5. 传输层TCP与UDP的全面对比5.1 端口与协议基础传输层有两个协议TCP传输控制协议和UDP用户数据报协议。它们的最大区别是TCP提供面向连接的、可靠的字节流服务UDP是无连接的、不可靠的数据报服务。知名端口号要记住几个常用的HTTP用80HTTPS用443FTP控制连接用21、数据连接用20SSH用22DNS用53DHCP用67/68SMTP用25POP3用110。考试常考的是DNS它虽然走UDP但注意它也可以走TCP当响应报文超过512字节时会改用TCP来传输。这个细节在408真题里出现过属于钻牛角尖的考点考前看一眼不亏。5.2 TCP三次握手与四次挥手TCP建立连接的三次握手是面试和笔试的常青树。第一次握手客户端发送SYN报文seq x进入SYN_SENT状态。 第二次握手服务端收到SYN后回复SYN ACK报文seq yack x 1进入SYN_RCVD状态。 第三次握手客户端收到SYN ACK后回复ACK报文ack y 1进入ESTABLISHED状态。服务端收到这个ACK后也进入ESTABLISHED状态。为什么要三次不是两次核心原因是防止“已失效的连接请求报文”突然又到达服务端而建立错误连接。假如只有两次握手客户端发送SYN后因为网络阻塞这个SYN在网络上滞留了很久客户端超时重传了一个新SYN服务端只回复了ACK就算连接建立但旧的SYN迟到了服务端以为又一个新连接就会白白分配资源。三次握手让服务端必须收到客户端的ACK才能确认客户端知道自己准备好了。四次挥手比三次握手更微妙因为TCP是全双工的双方都能发和收所以关闭连接必须两个方向都关。第一次挥手主动关闭方发送FIN报文seq m进入FIN_WAIT_1。 第二次挥手被动关闭方收到FIN后回复ACKack m 1进入CLOSE_WAIT。主动方进入FIN_WAIT_2。 第三次挥手被动关闭方把要发的数据都发完后发送FIN报文seq n进入LAST_ACK。 第四次挥手主动关闭方收到FIN后回复ACKack n 1进入TIME_WAIT。被动方收到ACK后进入CLOSED。主动方等待2MSL后进入CLOSED。为什么TIME_WAIT要等2MSL有两个原因一是确保最后一个ACK能送达。如果ACK丢了被动方会超时重发FIN主动方如果直接关了就收不到了。二是让旧的报文段在网络中自然消失避免影响新连接。2MSL是两倍的“最大报文段寿命”足够让网络里残留的旧报文全部消失。这里有个高频面试问题“如果第四次挥手时ACK丢了怎么办”答案是主动方因为处于TIME_WAIT被动方收不到ACK会超时重传FIN主动方再回复ACK。所以TIME_WAIT的时间是关键。5.3 TCP可靠传输机制TCP的可靠传输靠三件事校验和、序号、确认与重传。发送方给每个字节编序号接收方按序接收后返回确认号表示确认该序号之前的字节都已正确收到。如果发送方超时没收到确认就重传。这个机制本身不难难的是重传策略的演进。经典的重传是超时重传超过重传时间就重发。TCP改进后又引入了快速重传当接收方收到乱序的报文时会重复发送对最后一个有序字节的ACK发送方连续收到三次相同的ACK就推断后续报文丢了不等超时立即重传。还有一个概念叫滑动窗口它解决了“发送方一次能发多少数据”的问题。接收方在确认报文里捎带自己的接收窗口大小发送方据此控制自己未确认的数据量不能超过对方的接收窗口。加上慢启动和拥塞避免TCP的发送速率就由“接收窗口”和“拥塞窗口”两者中的较小者决定。考试和面试常问“拥塞窗口和接收窗口有什么区别”记住一句接收窗口是接收方的缓冲区还剩多少拥塞窗口是网络里能容纳多少一个是端系统的限制一个是网络路径的限制。5.4 TCP拥塞控制四部曲TCP拥塞控制有四个算法慢启动、拥塞避免、快重传、快恢复。慢启动拥塞窗口从1个MSS开始每收到一个确认拥塞窗口加1也就是说每轮RTT窗口翻倍是指数增长的。拥塞避免当拥塞窗口达到慢启动阈值ssthresh时改成线性增长每轮RTT只加1个MSS。发生超时TCP认为网络严重拥塞把ssthresh降到当前拥塞窗口的一半拥塞窗口直接降到1个MSS重新慢启动。这就是“乘性减”快速降速避免网络崩溃。快重传 快恢复如果收到三个重复ACK说明只是单丢包网络没崩此时把ssthresh降到当前窗口一半拥塞窗口降到调整后的ssthresh直接进入拥塞避免阶段而不是回落到1。期末和408很喜欢画拥塞窗口变化曲线图问“第几轮进入拥塞避免”“ssthresh是多少”。画图的时候记住几个锚点第一次超时或快重传才调整ssthresh慢启动阶段曲线是竖着长的指数曲线拥塞避免阶段是缓坡的线性曲线。算这道题最稳的方法是把轮次和窗口值一行一行列出来列到出结果为止不要跳步。6. 应用层HTTP、DNS、DHCP的考点浓缩6.1 HTTP协议的状态码与报文结构应用层的HTTP协议是面试问得最多、期末考得最琐碎的。状态码要记住几类1xx信息性状态码101代表协议切换2xx成功200 OK204 No Content3xx重定向301永久重定向302临时重定向304未修改4xx客户端错误400 Bad Request401未认证403 Forbidden404 Not Found5xx服务器错误500服务器内部错误502 Bad Gateway503服务不可用有一个细节值得展开说HTTP/1.1和HTTP/1.0的区别不只是多了Host字段。HTTP/1.0默认每个TCP连接只发一个请求发完就断开效率很低HTTP/1.1默认持久连接多个请求可以复用同一个TCP连接还引入了管道化技术允许客户端在收到响应前连续发送多个请求。不过HTTP/1.1的管道化有队头阻塞问题所以后来才有了HTTP/2的多路复用。还有Cookie和Session的区别面试常考。Cookie是存储在客户端的小数据浏览器每次请求都会带上它Session是存储在服务端的数据服务端通过Session ID识别用户。Cookie解决了“服务端怎么知道你上次来过”Session解决了“服务端要保存你的哪些状态”。两者通常是配合使用的服务端生成Session ID通过Set-Cookie下发给客户端客户端后续请求带着Cookie服务端查Session表确认身份。6.2 DNS的解析流程与记录类型DNS是把域名解析成IP的系统它本身是个分布式的层级结构几乎不会因为单一节点故障而整体瘫痪。查询流程分为递归查询和迭代查询。具体说浏览器先查自己的DNS缓存没有就查操作系统缓存再没有就发请求给本地DNS服务器通常是你路由器或运营商提供的本地DNS服务器如果也没有就代替客户端去问根域名服务器根域名服务器告诉它该去找哪个顶级域名服务器顶级域名服务器告诉它该去找哪个权威域名服务器权威域名服务器返回最终的IP。这个过程对客户端就是一次递归查询对本地DNS服务器就是它替你做了一整套迭代查询。DNS记录类型也要认识A记录是域名转IPv4AAAA记录是域名转IPv6CNAME是别名指向MX是邮件交换记录NS是域名服务器记录。笔试爱考的场景是想知道某个域名的邮件服务器应该查什么记录答MX记录。有个容易混淆的点DNS默认使用UDP53端口为什么不用TCP因为DNS查询报文通常很小一个请求一个响应用UDP开销小、速度快。但为什么又有TCP模式当响应数据量大超过512字节DNS协议早期限制时就会出现截断客户端收到截断的响应后会改用TCP重新发起查询。这个转化细节408真题考过值得重点标注。6.3 DHCP的工作机制DHCP用于自动分配IP地址。它的工作流程是“四步握手”DHCP发现Discover客户端广播发送DHCP DISCOVER报文源IP是0.0.0.0目的IP是255.255.255.255。DHCP提供Offer服务器收到后广播回复DHCP OFFER报文给出一个可分配地址。DHCP请求Request客户端选择第一个收到的offer广播发送DHCP REQUEST报文告知服务器我要用哪个地址。DHCP确认ACK服务器广播回复DHCP ACK报文租约建立。为什么要广播因为客户端此时还没有IP地址所以只能说广播。客户端收到OFFER后为什么还要用广播回复REQUEST因为可能有多个DHCP服务器都发了OFFER客户端需要向所有服务器声明自己选了哪一个其他的就可以把预留地址收回。这些细节如果看书容易漏但笔试里“DHCP使用什么传输层协议”这个问题很高频答案是UDP客户端67端口、服务器68端口。这个坑特别经典有人记成TCP有人说“用广播所以是UDP”其实严格说是DHCP报文基于UDP封装但广播与否跟TCP/UDP没有必然关系。7. 期末与408复习策略哪些坑最容易踩7.1 谢希仁教材 vs 自顶向下 vs 王道很多同学纠结教材到底用哪本。说实话不用太纠结它们各有侧重谢希仁《计算机网络》国内考研主流教材知识点全面但个别地方理论偏多代码和现代应用场景讲得少。优点是考点覆盖稳缺点是纵深不够。自顶向下Computer Networking: A Top-Down Approach从应用层往下讲例子多、贴近工程实践适合建立整体直觉。缺点是中文翻译偶尔生硬某些考点比如物理层细节没有谢希仁讲得细。王道408辅导书完全是按考点组织的每章都有真题和模拟题适合刷题冲刺。它不是教材是“真题导向的习题集知识点浓缩”。我的建议是第一轮用“自顶向下”搭框架第二轮用“谢希仁”补细节第三轮用“王道”刷题补漏。如果时间不够直接谢希仁加王道也能覆盖绝大部分考点。7.2 计算题的三种典型套路计算机网络的计算题考点非常集中反复出现的就这几类第一类是最小帧长计算。给传输速率、最远距离、电磁波传播速率算最小帧长。公式是最小帧长 2 × 传播时延 × 数据传输速率。注意传播时延 两站点距离 / 传播速度这里要看清题目给的是单程距离还是往返距离很多人栽在这里。第二类是子网划分与汇聚。给一个地址块让你划分成若干子网每网固定容量。做法先确定每个子网需要的主机位数向上取到2的幂再看前缀长度怎么变。比如给192.168.10.0/24要分成每个子网可容纳50台主机的子网50需要6个主机位2^664去掉网络地址和广播地址剩62个可用所以子网前缀是32-626位即/26。能分成2^(26-24)4个子网。第三类是滑动窗口与信道利用率。发送窗口大小、往返时延、发送时延求信道利用率或者吞吐量。公式是信道利用率 实际发送数据时间 / 发送数据时间 空闲时间。在停止等待协议下信道利用率 发送时延 / 发送时延 往返时延。这类题最重要的是把“一个周期”的时间搞清楚发送时延加RTT就是一个完整周期。7.3 面试与八股文常问的连接管理题面试和“八股文”环节计算机网络集中在几个经典问题上三次握手为什么是三次、四次挥手为什么是四次、TIME_WAIT为什么等待2MSL、TCP和UDP的区别、HTTP和HTTPS的区别、Cookie和Session的区别、DNS解析过程。我发现很多背了答案的人仍然会被追问卡住。比如“HTTPS是怎么办到的”光说“SSL/TLS加密”不够得说清楚握手阶段客户端发送ClientHello服务器回复ServerHello并附上证书客户端验证证书用证书中的公钥协商出一个预主密钥双方基于它派生会话密钥之后的数据用对称加密传输。这里要理解为什么混合加密非对称加密用于密钥交换对称加密用于数据加密因为对称加密快非对称加密慢。还有一个高频追问“TCP粘包问题怎么处理”这个问题在面试里问得多因为做网络编程很容易碰到。粘包的本质是TCP是流式协议没有消息边界。解决办法有三种定长消息、使用分隔符、消息头加长度字段。工程中最常用的是第三种在报文头部用固定字节数表示整个消息体长度接收方先读头部获取长度再按长度读取消息体。7.4 考试现场的时间分配建议期末卷面一般有选择、填空、简答、计算、综合题。时间分配上我建议先做计算题再做简答和综合最后做选择和填空。为什么因为计算题答案唯一会就是会拿到手的分数最稳。简答题踩点给分只要答出关键术语就有分。选择和填空虽然分值小但数量多耗时不短放在最后做也不会影响前面的得分。如果遇到不会的简答题不要空着把你知道的相关概念全写上去。比如问“为什么TCP是可靠的”你不会细说就写“校验和、序号、确认、重传、滑动窗口”阅卷是踩点给分的光五六个关键词就能拿一半分。8. 题库自测20道高频题自查清单下面这份清单是我从期末真题、408历年题、面试题库里提炼出来的高频题每道题背后都带着一个“为什么”建议合上书自己先讲一遍讲不明白的地方就是薄弱点。为什么计算机网络要分层OSI七层和TCP/IP四层如何对应交换机收到一个目的MAC未知的帧怎么做以太网最小帧长为什么是64字节曼彻斯特编码和差分曼彻斯特编码的区别是什么给一个IP和掩码算网络地址和广播地址。RIP、OSPF、BGP分别用什么算法适合什么场景ARP的作用和报文封装过程是什么三次握手为什么不能改成两次四次挥手过程中TIME_WAIT状态出现在哪一端为什么等2MSLTCP vs UDP列出至少5个对比维度。拥塞控制和流量控制的区别是什么慢启动阶段拥塞窗口每轮增长多少为什么快重传和超时重传的区别是什么HTTP状态码301和302的区别是什么HTTP和HTTPS在建立连接的过程中有什么区别Cookie和Session是什么关系DNS解析的完整流程是什么为什么有时会改用TCPDHCP四步握手的报文名称分别是什么交换机自学习过程会广播帧吗为什么这20道题做自测的时候不需要写全答案而是快速说关键词。说得流畅说明知识点已经内化卡壳超过五秒就回去翻对应章节。就按这个方法滚动测试考前两天每天过一遍到考场看到知识点自然就会有反应。最后分享一个我自己的习惯遇到记混的知识点不要只在脑子里过动手在白纸上画一遍。画TCP拥塞窗口曲线、画DNS层次结构树、画三次握手状态迁移图画完你会有一种“原来这块是通的”的感觉。计算机网络最忌讳的就是零散记忆把知识串成网络图之后考前的复习效率会好很多。