ARTICLE DETAIL

资讯详情

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

计算机网络核心考点速记:分层模型、子网划分与TCP拥塞控制详解

计算机网络核心考点速记:分层模型、子网划分与TCP拥塞控制详解 期末复习也好、考研408也好很多人面对《计算机网络》的第一反应是背了一堆名词谢希仁的教材翻了三四遍王道视频也刷了但做题还是错。我当年备考的时候也有这种感觉——明明知识点都见过可一到子网划分、拥塞控制这种题目就卡壳。后来才明白计网这门课真正难的不是记忆而是脑子里缺一张地图。你不知道每个知识点属于哪一层、解决的问题是什么、和相邻层的机制怎么配合那背再多也是散的。这篇速记就是帮你把地图先铺开。我按先搭分层框架、再逐层填充细节、最后横向对比易混点的顺序把计网最核心的考点串一遍。不管你是考前突击、408备考还是工作中需要补网络基础顺着这条线过一遍比零散刷题要高效得多。1. 把分层模型当成思维脚手架先背骨架再填肉计网所有教材上来都讲分层但很多人没意识到这不是为了考试才设计的抽象模型而是实际网络排障的基本方法论。你要养成的第一个习惯是遇到任何网络问题先问一句——这是哪一层的事1.1 分层到底解决了什么问题打个比方。你和朋友写信你关心的是内容、语气、格式邮局关心的是信封上的地址、贴没贴邮票、走陆运还是空运货车司机关心的则是道路、油价、落脚点。三者各管一段谁也不需要懂谁的全部细节。网络分层就是同一个道理——不同的协议各管一段层与层之间通过标准的接口打交道上层不需要知道下层怎么实现下层也不关心上层的数据含义。这个解耦带来的直接好处是某一层的技术可以单独升级而不影响其他层。比如底层链路从铜线换成光纤TCP协议完全无需改动应用层从HTTP换成FTP底层的路由和传输机制照常工作。1.2 两套模型的对照别死记考试和面试里最常见的就是让你区分OSI七层和TCP/IP的层次关系。我建议你这样记OSI是理论派TCP/IP是实战派。OSI七层TCP/IP四层每层一句话职责应用层、表示层、会话层应用层为用户提供网络服务入口比如发邮件、看网页传输层传输层端到端的可靠/不可靠传输给数据编号、核对、重传网络层网际层跨网寻址和选路解决数据包怎么找到目的网络数据链路层网络接口层相邻节点之间的帧传输解决同一段链路上怎么传物理层网络接口层比特流的透明传输解决信号怎么变成0和1如果用的是谢希仁教材的五层原理体系就是把数据链路层和物理层单独列出来应用层合并表示层和会话层。无论哪种分法你在复习时都记住一句话下层为上层提供服务上层不关心下层的实现细节。所有协议和知识点你第一步先把它归层后面的逻辑关系基本就顺了。1.3 用分层思路做排障定位这个思路在工作里太常用了。比如你电脑上不了网实际排查顺序就是自下而上的网线/网卡灯亮不亮——物理层IP地址、子网掩码、网关配置对不对——网络层能不能ping通网关、ping通公网——网络层ICMP浏览器能不能打开页面——应用层HTTP。我见过很多新手一上来就怀疑防火墙拦截其实多半是IP配错或网关不通。你先用分层思维把故障圈定在某一段效率会高很多。2. 物理层与数据链路层把底层细节变成送分题很多人复习时喜欢从网络层、传输层开始底层一带而过。但选择题和计算题恰恰喜欢埋伏在这里。其实底层知识点套路化很强记清楚几个公式和机制就稳了。2.1 物理层的两个公式必须能默写奈氏准则无噪声理想信道和香农公式有噪声信道是物理层两大计算支柱。奈氏准则理想低通信道最高码元速率 2WBand/s其中W是信道带宽Hz。如果每个码元携带n比特信息极限数据速率 2W·nbit/s。香农公式C W·log₂(1S/N)其中S/N是信噪比通常题目里给的是分贝值要先用 S/N倍 10^(dB/10) 换算回来。考试偏好这么出给你带宽W和信噪比分别用两个公式算出速率取较小值作为实际能达到的极限速率。用大白话说奈氏准则管的是每秒能发多少个符号香农公式管的是每个符号最多能带多少信息量两者共同决定最终的速率上限。2.2 链路层帧、地址和差错控制链路层解决的是同一段物理链路上怎么把数据可靠地交给下一个节点。三个高频考点封装成帧。在IP数据报外面套上帧头和帧尾。帧头和帧尾最重要的工作是定界——接收方得知道这一帧从哪开始、到哪结束。所以就有了两种做法面向字节的做法用特殊字符定界如PPP协议面向比特的做法用01111110这样的比特模式定界。为了不让数据里恰好出现和定界符相同的比特序列还引入了零比特填充和字符填充这就是所谓的透明传输。记法数据里如果混入了假边界要么加转义符要么硬性插入0接收方再删掉。CRC循环冗余校验。这个必须会算。简单说就是发送方把数据左移r位r是生成多项式的阶数用生成多项式对应的二进制数做模2除法余数就是FCS帧检验序列。接收方拿收到的数据做同样的除法余数为0则无差错。考试不会让你算大数但模2除法按位异或、不够就补0的规则要练熟。MAC地址与以太网帧。MAC地址48位前24位是厂商编号OUI后24位是序列号。以太网V2帧格式的顺序是目的MAC6字节、源MAC6字节、类型2字节、数据46~1500字节不够要填充、FCS4字节。注意这里没有长度字段而用类型是因为以太网靠前导码和帧间隙来定界类型字段用来识别上层协议比如0x0800表示IPv4。2.3 交换机的自学、泛洪和环路交换机是链路层设备核心工作是自学习和转发/过滤。维护一张MAC地址表表中记录MAC地址→端口。收到帧时查表目的MAC在表里且对应端口不是入端口——转发到该端口目的MAC在表里但对应端口就是入端口——过滤丢弃说明目标在同一侧目的MAC不在表里——泛洪向除入端口外的所有端口广播。这就是未知单播泛洪的由来。另外还要清楚交换机隔离冲突域但不隔离广播域路由器则两个都隔离。一句话交换机管同一网段内怎么传路由器管跨网段往哪走。2.4 CSMA/CD碰撞检测背后的数学题以太网采用CSMA/CD载波监听多路访问/碰撞检测。“先听再发边发边听冲突停发随机重发”。其中最小帧长是高频计算点公式最小帧长 2 × 单程端到端时延 × 数据传输速率原因是发送方必须保证在发送完之前能检测到可能发生的碰撞。如果帧太短发完了碰撞信号还没传回来发送方会误以为发送成功。所以标准以太网规定最小帧长64字节就是为了在半双工、10Mbit/s、电缆最长2500米、最多4个中继器的限制下保证发送时间 ≥ 2倍单程时延。重发策略也要会检测到碰撞后按截断二进制指数退避算法第n次冲突后从0到2ⁿ⁻¹中随机选一个数k等待k×512比特时间后重发n超过10后就不再增加随机范围。这个机制保证了冲突后重发的公平性和概率可控。3. 网络层IP编址、子网划分与路由协议是得分主战场网络层在考试里占的比重最大也是拉开分数的地方。这块的核心就三件事编址IP地址怎么分、转发路由器怎么走、选路路由协议怎么定。3.1 IP地址的分类记忆法IPv4地址32位点分十进制表示。传统分类编址A类首位0网络号8位范围1.0.0.0~126.255.255.255默认掩码255.0.0.0B类前两位10网络号16位范围128.0.0.0~191.255.255.255默认掩码255.255.0.0C类前三位110网络号24位范围192.0.0.0~223.255.255.255默认掩码255.255.255.0D类前四位1110组播地址E类前四位1111保留。不用死记数值范围只看第一段的二进制前缀就行。考试最容易考的特殊地址网络地址主机号全0、广播地址主机号全1、回环地址127.0.0.1、私有地址段10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。私有地址不能上公网是靠NAT转出去的。不过现在的实际网络早就不用分类编址了而是CIDR无分类编址用IP/前缀长度的方式表示比如192.168.10.0/24。复习的时候重点练两件事给一个IP和一个掩码算出网络地址和广播地址给一段地址空间按题目要求划分子网并写出每个子网的可用主机范围。3.2 子网划分的实操套路拿到题目不要慌按步骤来把IP和子网掩码都转成二进制IP和掩码逐位相与得到网络地址主机位全1就是广播地址可用主机数 2^主机位数 - 2减掉网络地址和广播地址。举个例子192.168.10.130/26。掩码是255.255.255.192二进制最后8位是11000000相当于把C类地址的最后一个字节借了2位做子网号主机位只剩6位。130的二进制是10000010和11000000相与得10000000也就是128所以网络地址是192.168.10.128广播地址是192.168.10.191主机位全1即10000000加0011111110111111可用主机范围192.168.10.129~192.168.10.190共62台主机。遇到把一个大网划分成若干子网要求每个子网能容纳多少台主机这类题先根据主机数倒推主机位数主机数≤2ⁿ-2取满足条件的最小n**剩下的位就是子网号位数。** 这个顺序千万别弄反很多人先急着凑子网数最后主机位不够用白丢分。3.3 路由器的转发流程查表、最长前缀匹配、TTL路由器转发IP数据报的核心是查路由表。现代路由表用CIDR条目查表时采用最长前缀匹配多条路由都能匹配时选前缀最长也就是掩码最长、范围最精确的那条。转发的大致流程收到数据报校验头部用目的IP查路由表最长前缀匹配确定下一跳TTL减1如果TTL变为0直接丢弃并回送ICMP超时报文重算首部校验和按出端口转发。有个细节每经过一个路由器IP数据报的源IP和目的IP不变变的只是MAC地址。所以抓包时一个包在不同链路段的源/目的MAC是不同的而IP始终一致。这个点常考理解透彻了链路层和网络层的分工就彻底清晰了。3.4 ARP、ICMP、DHCP、NAT网络层的辅助配角ARP的作用是已知目的IP求目的MAC。因为数据链路层需要MAC地址作为帧的目的地址所以发送方先查本机ARP缓存没有就发广播ARP请求目标主机单播回复。记住ARP是同一网段内的协议跨网段通信时数据报要先发给默认网关路由器这时ARP解析的是网关的MAC而不是最终目标的MAC。ICMP是网络层的信使最常用的两类差错报告终点不可达、时间超过、参数问题和询问ping用的回显请求/回答。traceroute就是利用TTL超时回送ICMP时间超过报文来逐跳探测路径的。DHCP负责自动分配IP流程是DISCOVER发现、OFFER提供、REQUEST请求、ACK确认。NAT的作用是把内网私有地址转换成公网地址常见实现是NAPT用IP端口的映射表来复用公网IP。3.5 路由协议三兄弟RIP、OSPF、BGP怎么区分这三个是超高频考点我直接给对比表协议类型算法度量适用范围RIP距离向量Bellman-Ford跳数上限15小型自治系统内部OSPF链路状态Dijkstra带宽等开销较大自治系统内部BGP路径向量选择策略非单纯算法路径属性AS-PATH等自治系统之间RIP每个路由器只和邻居交换到各网络的距离好消息传得快、坏消息传得慢这就是计数到无穷问题的根源。OSPF每个路由器泛洪自己的链路状态连着谁、开销多少全网最终有相同的链路状态数据库然后各自独立算最短路径树。OSPF的收敛速度比RIP快得多因为它一检测到拓扑变化就立刻泛洪更新。BGP不是找最短路径而是根据AS间的策略选路比如不经过某运营商这种业务层面的约束所以叫路径向量。4. 传输层三次握手、滑动窗口与拥塞控制的隐蔽陷阱传输层的核心是TCP也是全书中概念最密集、选择题最爱挖坑的一章。复习它只要抓住一条主线TCP要在一个不可靠的IP网络上实现可靠、有序、不重复、流量可控的字节流传输。4.1 端口与套接字传输层用端口号区分应用进程。常见端口FTP 21、SSH 22、Telnet 23、SMTP 25、DNS 53、HTTP 80、HTTPS 443。用套接字SocketIP地址:端口号唯一标识一个连接端点。TCP连接的标识是四元组源IP、源端口、目的IP、目的端口两个不同的进程可以通过不同的源端口连接同一个目的服务器。4.2 TCP报文段的关键字段别只看序号TCP段的头部至少20字节考试重点关注序号seq本报文段数据的第一个字节在整个字节流中的编号初始序号是随机选的不是0确认号ack期望收到对方下一个报文段第一个字节的序号也就是我已收到ack-1为止的全部数据ACK标志位确认号只在ACK1时才有意义窗口rwnd接收方当前能接收的字节数用于流量控制SYN、FIN、RST连接建立、关闭、异常复位。很多人搞混seq和ack我提供一个万能的记法seq是对面该看的位置ack是告诉对面我下次要什么。握手时A发SYN1、seqxB回SYN1、ACK1、seqy、ackx1A再发ACK1、seqx1、acky1。全程每个方向都只消耗一个序号因为SYN和FIN各占一个序号。4.3 三次握手为什么必须三次三次握手要解决的真正问题不只是确认双方都在线而是让双方都确认自己的发送能力和接收能力正常。第一次握手A确认我能发、B能收其实只确认了B的接收能力第二次握手B确认了A能发、A能收同时B也确认我能发第三次握手A确认B能收、B能发。还有一个经典考点如果只有两次握手历史遗留的重复SYN报文可能让服务器误建连接白白分配资源。三次握手中客户端可以通过判断ack是否等于自己上次的seq1来拒绝过期连接。这和为什么TCP是可靠的直接挂钩。4.4 四次挥手与TIME_WAIT关连接要四次是因为TCP支持半关闭A发FIN只表示我没有数据发了但还能收B回ACK表示我知道你发完了但B可能还有数据要发等B的数据发完了B再发FIN最后A回ACK。所以中间B的ACK和FIN不能合并除非B在收到FIN后立刻也没数据可发了这种情况在实际抓包中确实可以看到合并但理论流程永远是四步。特别注意TIME_WAIT主动关闭方通常是客户端发出最后ACK后要等2MSL才进入CLOSED。原因有二一是确保最后一个ACK能被对端收到如果丢了对端会重发FIN此时还能响应二是让本连接产生的所有报文段在网络中自然消失避免干扰后续使用同一四元组的新连接。工作中用netstat偶尔看到大量TIME_WAIT是正常现象只要不是堆积到把端口耗尽就行。4.5 可靠传输滑动窗口是流量控制的基础TCP的可靠传输建立在确认重传机制上配合滑动窗口实现一边发一边等。窗口的意义不是一次全发出去而是允许连续发送未确认数据的总量。停止-等待协议发一个等一个效率太低只用于教学讲解后退N帧GBN发送方有窗口接收方只按序接收一旦某个包丢失后续全部丢弃发送方超时后从丢失处重传选择重传SR接收方缓存乱序到达的包发送方只重传真正丢失的包。TCP实际采用的是类似SR的机制但通过SACK选择性确认选项进一步优化。考试如果让你比较这三种协议抓住两个指标发送窗口大小、接收缓存策略。4.6 流量控制和拥塞控制千万别混流量控制是端到端的解决接收方处理不过来的问题靠的是TCP头部的窗口字段rwnd由接收方告诉发送方你能发多少。拥塞控制是全局的解决网络中间设备路由器处理不过来的问题靠的是拥塞窗口cwnd由发送方根据网络状况自己调整。两者最终都表现为限制发送速率但动机完全不同。拥塞控制的四个算法要按阶段记慢开始cwnd从1开始每收到一个ACKcwnd加1也就是每轮RTT翻倍指数增长拥塞避免cwnd达到慢开始门限ssthresh后每轮RTT只加1线性增长快重传接收方收到失序报文立即重复确认缺失的报文发送方连续收到3个重复ACK就立即重传不等超时快恢复一旦触发快重传ssthresh减半cwnd设为新的ssthresh然后直接从拥塞避免阶段开始线性增长。这里有个高频陷阱慢开始不是慢拥塞避免也不是一定不拥塞。慢开始只是从1开始慢慢探路的意思实际增长是指数级的拥塞避免才是真正温和的线性增长。考试如果画一条cwnd随时间变化的曲线让你判断哪段是慢开始、哪段是拥塞避免你一定要能读出指数增长段和线性增长段的分界点。4.7 UDP没那么多机制但照样重要UDP头部只有8字节源端口、目的端口、长度、校验和。无连接、不保证可靠交付、支持一对一/一对多/多对多。正因为开销小像DNS查询、RTP音视频、QUIC基于UDP这类场景反而更合适。选择题里常出现以下哪个协议使用UDP答案通常包括DNS、TFTP、DHCP、RTP而HTTP、FTP、SMTP、SSH则都是TCP。5. 应用层的送分题DNS、HTTP、Cookie/Session的答题套路应用层考点集中、规律性强复习性价比极高。很多人把应用层的各个协议割裂开来记其实完全可以串成一条线你在浏览器输入一个网址回车到页面显示出来一路上都调用了哪些应用层协议5.1 DNS解析递归与迭代的区别输入网址后第一步是域名解析。DNS默认使用UDP端口53。解析过程分两种递归查询主机向本地域名服务器发起本地域名服务器负责追根问底最终把结果带回迭代查询本地域名服务器向根域名服务器求助根服务器不直接给答案而是指路——告诉你去找哪个顶级域名服务器顶级域名服务器又告诉你去找哪个权威域名服务器。实际的主机→本地DNS是递归本地DNS→根/顶级/权威服务器通常是迭代。记忆方法递归是你帮我查完告诉我迭代是我一步一步问你你只告诉我下一步去哪。还有一个常考题浏览器输入IP而不是域名就不会触发DNS解析因为DNS存在的意义就是把名字翻译成可路由的IP。5.2 HTTP的报文、方法与状态码HTTP是超文本传输协议基于TCP。请求报文结构请求行方法URL版本、首部行、空行、实体主体。响应报文结构状态行版本状态码短语、首部行、空行、实体主体。状态码要记清楚几个代表2xx成功——200 OK3xx重定向——301永久、302临时、304未修改缓存生效4xx客户端错误——400语法错、401未认证、403禁止、404不存在5xx服务器错误——500内部错、503服务不可用。方法上掌握GET读数据、POST提交数据并创建、PUT整体更新、DELETE删除、HEAD只要响应头就够用了。选择题常挖的坑是GET和POST在缓存、历史记录、书签、长度限制上的差异但核心差别其实在语义GET是幂等且只读的POST不是。5.3 Cookie与Session无状态协议怎么记住你HTTP本身是无状态的每个请求都是独立的服务器不记得你是谁。为了让电商网站能维持登录态引入会话机制Cookie服务器生成一段小数据比如session_id通过Set-Cookie响应头发给浏览器浏览器存在本地下次请求带上。Session数据存在服务器端以session_id为索引查记录。没有Cookie和Session的配合你每次刷新页面都要重新登录加购物车的操作也无法跨请求保持一致。考试还喜欢问Cookie的内容是否能存敏感信息——答案是不能Cookie暴露在客户端只能存标识符和低敏信息真正的用户状态放服务器端Session里。5.4 HTTP版本演进1.0、1.1、2.0的考点HTTP/1.0每请求一个对象就建立一次TCP连接用完就关效率低HTTP/1.1默认持久连接keep-alive一个TCP连接可连续传送多个请求引入流水线Pipe lining但存在队头阻塞——前面的响应慢了后面的得等着HTTP/2.0多路复用一个TCP连接上同时交错传输多个请求/响应头部压缩、二进制分帧、服务器推送。但底层仍是TCPTCP层的队头阻塞依然存在。如果想要建筑上的性能提升就要说到HTTP/3基于UDP的QUIC。这块选择题爱问哪个版本解决了队头阻塞——注意是缓解而不是彻底解决HTTP/2解决的是应用层队头阻塞TCP层的还在真正绕开的是HTTP/3。5.5 HTTPS多出来的那一层是SSL/TLSHTTPS不是新协议就是HTTP跑在SSL/TLS之上。TLS握手大致过程客户端发ClientHello支持的加密套件、随机数服务器回ServerHello选定套件、自己的证书、随机数客户端验证证书生成预主密钥用服务器公钥加密发给服务器双方各自算出会话密钥之后的应用数据全部用对称加密密钥加密传输。为什么要这么设计非对称加密RSA/ECC适合做身份认证和密钥交换但性能差对称加密AES性能好却需要共享密钥。TLS把两者组合起来用非对称加密安全地协商出一个对称密钥后续通信全用对称加密。这既是考点也是理解HTTPS性能开销的关键。6. 考前横向对比最容易记混的兄弟知识点清单复习到最后阶段光按章节顺序过一遍是不够的。我习惯把相似概念拉出来做横向对比让它们在脑子里形成成对出现的反射。下面这些都是历年选择题和简答题的高频混淆对象。6.1 电路交换、报文交换与分组交换记住三句话电路交换先建路再通信通信期间独占线路实时性好但线路利用率低报文交换存储转发整份报文逐跳转发无需预先建路分组交换把报文拆成小分组可独立选路、可在不同路径并行传输延迟更小、利用率高但也带来乱序和丢包的可能。现代互联网核心是分组交换。电话网是电路交换。分组交换又分数据报方式无连接IP就是典型和虚电路方式逻辑上预先建路帧中继、ATM用过。6.2 CSMA/CD和CSMA/CA两者都用于共享信道的随机访问但一个在以太网有线一个在WiFi无线。CSMA/CD边发边听能检测冲突冲突后重传CSMA/CA不能边发边听无线环境自己发信号会淹没接收信号所以采用先预约后发送的机制通过RTS/CTS握手来避免冲突。考试里考得最多的问题是为什么无线不能用CD答案的关键是无线信道的信号衰减和隐藏终端问题——A发给B时C可能听不到A的发送从而同时发送造成冲突而A自己又检测不到这个冲突。6.3 分组交换的时延构成算端到端时延时总时延 发送时延 传播时延 排队时延 处理时延。很多人只记公式却不理解物理含义发送时延是把数据从节点放到链路上的时间等于数据长度/发送速率传播时延是比特在链路上跑的时间等于链路长度/传播速率约2×10⁸m/s排队时延是路由器缓存中排队等待的时间取决于网络拥塞程度。这题有个惯用陷阱一条长链路速率很高问你什么占主导如果链路长传播时延大如果数据量大而带宽小发送时延大。计算时别少算、别重复算尤其是中间经过多个路由器时每段链路的发送时延都要累加。6.4 TCP关键字速查表机制由谁决定控制什么主要字段/参数流量控制接收方发送方的发送速率窗口rwnd拥塞控制发送方自调节发送速率适应网络状态拥塞窗口cwnd可靠传输双方配合数据不丢不重不错序号、确认号、重传计时器连接管理双方配合连接建立/释放状态SYN、FIN、ACK、状态机面试里如果让你简述TCP如何保证可靠从这四个维度各说一两句就非常完整了比死背一大段强得多。6.5 常见记忆锚点最后分享几个我当年自己编的小口诀和联想点不一定严密但管用路由协议RIP找邻居问路OSPF拿着全网地图自己算BGP是公司之间谈合作TCP标志位SYN是发起ACK是确认FIN是告别RST是掀桌子子网划分先定主机位再算子网位永远别忘减2HTTP状态码2成功、3换地方、4你错了、5我错了拥塞控制阶段翻倍叫慢开始匀速叫拥塞避免连续三个重复ACK就快重传减半之后快恢复。如果时间紧张不用贪多。把上面这些横向对比表过一遍再针对自己最薄弱的子网划分和拥塞控制算法各练上十几道题比漫无目的地翻书要管用得多。计网说到底是一门结构性很强的课框架在脑子里立起来了细节怎么填都不会乱。
返回列表