拓冰建站拓冰建站
首页 / 资讯中心 / 正文

软考系统架构师必备:计算机网络核心考点全解析

这篇接着上篇写。上一篇把OSI七层模型、IP地址编址、子网划分和路由协议这些地基打完了这篇重点往上走一层把传输层、应用层的核心协议以及系统架构师考试里更爱考的网络架构设计、网络安全、新技术趋势一起过一遍。备考软考系统架构师的同学应该都有体会计算机网络在上午的选择题里大概占5到8分虽然不算大板块但知识点极其零散属于“性价比很高”的拿分区域——因为考点相对固定套路清晰比那些要靠背诵管理理论的科目好拿分得多。这篇文章的内容就是围绕真题里反复出现的那些考点展开的。1. TCP/IP协议栈——传输层那点事1.1 三次握手与四次挥手软考选择题的常青树传输层是软考计算机网络部分的绝对核心尤其TCP的连接管理几乎每年必考。三次握手的过程大家都能背出来客户端发SYN服务器回SYNACK客户端再回ACK然后连接建立。但软考一般不考这种默写题它喜欢考的是“为什么”和“状态变迁”。比如它喜欢问为什么要三次握手而不是两次标准的回答是防止已失效的连接请求报文段突然又传到服务器从而产生错误。这个“已失效的连接请求”场景是这样的客户端发了一个SYN因为网络拥塞滞留了客户端超时后重发SYN并成功完成连接、传输数据、释放连接。这时候之前滞留的那个SYN到达服务器服务器以为客户端又要建立新连接于是回SYNACK并分配资源。如果只有两次握手服务器分配了资源后客户端根本不会理它服务器资源就这么白白浪费了。三次握手的话客户端收到服务器回包后不会再次确认服务器收不到ACK就知道这个连接请求是无效的不会建立连接。四次挥手这边的考点更刁钻。主动关闭方发送FIN被动关闭方回ACK这是第一次“半关闭”被动方还可以继续发数据等被动方数据发完了再发FIN主动方回ACK这时候主动方进入TIME_WAIT状态要等2MSLMaximum Segment Lifetime报文最大生存时间才能彻底关闭。软考真题里考过为什么TIME_WAIT要等2MSL答案有两个要点第一是保证主动方最后一个ACK能到达被动方如果这个ACK丢了被动方会重发FIN主动方可以再回应第二是让本连接内所有迟到的报文段在网络中消失防止干扰后续的连接。这个考点在上午题出现过不止一次直接背下这两个理由就行。我复习时的一个体会是光看状态图容易晕建议自己抓一次包看一遍完整流程。用Wireshark开三个过滤表达式tcp.flags.syn1、tcp.flags.fin1配合过滤ip.addr服务器IP能很直观地看到SYN、SYNACK、ACK的交互过程。看一遍比背十遍状态图都管用。1.2 流量控制与拥塞控制两组容易混的概念流量控制Flow Control和拥塞控制Congestion Control是软考的高频辨析点。流量控制解决的是“发送方发的太快接收方来不及处理”的问题是一端到端的、点对点的问题靠的是滑动窗口机制。接收方通过TCP头里的窗口字段告诉发送方“我还能收多少”发送方就按这个窗口的大小来控制发送速度。拥塞控制解决的是“网络中间设备处理不过来”的问题是一个全局性的问题。核心思路是维护一个拥塞窗口cwnd发送窗口取min(接收窗口rwnd, 拥塞窗口cwnd)。拥塞控制有四个经典阶段慢启动、拥塞避免、快重传、快恢复。慢启动cwnd从1开始每收到一个ACK就加1指数增长直到达到慢启动阈值ssthresh。拥塞避免超过ssthresh后cwnd每个RTT只加1线性增长。超时重传一旦超时说明网络拥塞严重ssthresh减半cwnd重置为1重新慢启动。快重传如果收到3个重复ACK说明网络还没那么糟只是丢了包ssthresh减半cwnd设为ssthresh进入快恢复。软考选择题最常见的考法是给你一个场景问你当前处于哪个阶段。比如“TCP连接建立后cwnd从1开始每经过一个RTT翻倍这属于什么阶段”答案就是慢启动。还有一种考法是问“为什么TCP要同时维护接收窗口和拥塞窗口”这时候要答出来接收窗口是接收方能力的约束拥塞窗口是网络能力的约束两者取最小值才是实际能发的数据量。这里我要分享一个实操经验做题时不要只看概念要手动画一遍cwnd变化曲线。考纲里常出现“假设ssthresh16经过8个RTT后cwnd是多少”这种题你画一遍曲线就会了。我备考时把所有涉及拥塞控制的真题都画了一遍曲线之后遇到这类题基本是秒答。2. HTTP协议族——应用层必考清单2.1 HTTP/1.1与HTTP/2架构师必须理清楚的差异应用层协议里HTTP是软考的重中之重。最近几年考试明显喜欢考HTTP协议的演进而不是单纯的HTTP报文结构。HTTP/1.1引入了一个关键特性——持久连接Keep-Alive允许在一个TCP连接上发送多个请求避免频繁建立连接的开销。但HTTP/1.1有一个著名的缺陷队头阻塞Head-of-Line Blocking。因为HTTP/1.1是串行的一个请求没响应完后面的请求就得等着即使它们之间没有依赖关系也只能排队等。HTTP/2为了解决这个问题引入了多路复用Multiplexing机制在一条TCP连接上同时传输多个流Stream每个流里承载着请求和响应。它还做了一件事二进制分帧把所有传输的信息分割成更小的帧并用帧头标识属于哪个流。这样就解决了应用层的队头阻塞问题。但注意HTTP/2底层还是TCPTCP层面的队头阻塞依然存在。如果TCP包丢了整个连接上的所有流都会被阻塞。这个细节软考考过问“HTTP/2是否完全解决了队头阻塞”正确答案是“解决了应用层的队头阻塞但TCP层的队头阻塞仍然存在”。这是出题人最爱埋的坑。另外两个HTTP/2特性也是考点首部压缩HPACK——客户端和服务器各自维护一份首部表只发送差异部分服务器推送Server Push——服务器可以主动向客户端推送资源不用等客户端请求。软考曾考过“HTTP/2中服务器可以直接推送哪些资源”这类考点理解起来不难但容易跟HTTP/3混淆。HTTP/3把底层换成了QUIC基于UDP彻底解决了TCP层队头阻塞问题这个扩展了解即可软考目前涉及不多。2.2 HTTPS握手流程记住“非对称加密换对称加密”HTTPS HTTP TLS/SSL。软考里TLS握手最经典的考法是问你“握手阶段用的对称加密还是非对称加密”答案是非对称加密但握手完成后双方会协商出一个会话密钥之后的传输用对称加密。为什么要这样设计因为非对称加密慢对称加密快两者结合既保证安全性又保证性能。以RSA密钥交换为例一次简化版的TLS握手流程是客户端发送ClientHello包含支持的TLS版本、加密套件列表、一个随机数。服务器回复ServerHello选定加密套件附带自己的证书包含公钥和另一个随机数。客户端验证证书合法性用证书里的公钥加密一个预主密钥Pre-Master Secret发送给服务器。服务器用私钥解密得到预主密钥双方用两个随机数预主密钥计算出相同的会话密钥。双方互发Finished消息确认握手成功。之后所有HTTP数据都用对称加密的会话密钥进行加密传输。软考真题里考过“TLS握手中客户端发送的加密预主密钥使用了什么密钥”答案是“服务器公钥”。这里有个容易混淆的点数字证书里有公钥能加密私钥在服务器手里能解密但公钥加密的内容私钥能解私钥加密的内容公钥也能解——数字签名用的是私钥加密而密钥交换用的是公钥加密。这个方向千万别搞反。还有一个常考细节HTTPS默认端口是443HTTP默认端口是80。别小看这个基础上午题就喜欢冷不丁考一下。另外TLS 1.3已经发布好几年了它简化了握手流程把RSA密钥交换方式基本移除了改用ECDHE这类前向保密算法。软考大纲如果更新这个点大概率会变成新考点。3. 网络架构设计——从单机到集群的常见模式3.1 DNS解析与CDN调度架构师眼中的“流量入口”系统架构师考试不像网络工程师那样考命令和配置它更偏向设计和选型。DNS和CDN就是典型的架构设计考点因为它们决定了用户请求从哪里进、从哪里出。DNS解析过程要分清楚递归查询和迭代查询。通常客户端向本地域名服务器发起的是递归查询——本地域名服务器必须给客户端一个最终答案本地域名服务器向根域名服务器、顶级域名服务器、权威域名服务器发起的查询是迭代查询——服务器只告诉它“你下一步该问谁”。软考曾考过一个多选题“以下哪些属于DNS迭代查询的特点”把我绕晕过后来我记住一个口诀客户端到本地是递归本地到上级是迭代。这个基本能应对90%的考题。CDN内容分发网络在架构题里出现的频率更高核心思想是把内容缓存到离用户最近的边缘节点。CDN的关键技术有三个全局负载均衡GSLBGlobal Server Load Balancing、边缘缓存、内容路由。当用户请求一个启用了CDN的域名时权威DNS服务器会返回一个CNAME记录指向CDN的GSLB节点GSLB根据用户IP地理位置、节点负载、网络状况等返回一个最优的边缘节点IP。用户直接访问这个边缘节点如果缓存命中就直接返回内容未命中则回源站取内容再缓存。下午案例分析题如果给一个电商系统架构问“如何优化用户访问速度”CDN一定是标准答案之一。答题时需要把“静态资源走CDN、动态请求走API网关”这个分层思路写清楚。我在2019年的真题里就见过类似的场景题。3.2 负载均衡与高可用设计下午题最容易出的方向负载均衡几乎是系统架构师考试的必考内容因为它是高并发架构的核心组件。负载均衡分两层四层传输层和七层应用层。四层负载均衡工作在内核态基于IP端口转发典型代表是LVS和F5七层负载均衡工作在应用层能解析HTTP报文支持URL路由、Cookie会话保持等高级功能典型代表是Nginx和HAProxy。软考爱考选择题“LVS属于哪一层负载均衡”答案是四层。还要知道LVS的三种工作模式NAT模式、DR模式直接路由、Tunnel模式其中DR模式性能最高因为响应报文不经过负载均衡器直接返回给客户端。案例题里更常考的是会话保持Session Stickiness问题。例如你设计了一个无状态应用集群用户登录状态存在Session里那么用户第二次请求被负载均衡转发到另一台服务器Session就丢了。解决的方案有三个层次一是负载均衡层做会话保持同一用户的请求始终转发到同一台服务器二是应用层做Session复制服务器之间同步Session三是把Session抽出来放到集中式存储Redis这是现在的主流方案。软考参考答案里通常认可“Redis保存Session”这个说法而且它和系统架构风格里的“无状态设计”是呼应的。答题时如果能写出“将Session外置到Redis提高应用节点的无状态性”这种表述分数会高不少。高可用层面的考点是Keepalived和VRRP协议。Keepalived通过VRRP虚拟路由冗余协议实现主备切换主节点周期性发送VRRP通告报文备节点收到就认为主节点存活如果连续多次收不到通告备节点升级为主节点并抢虚拟IPVIP。软考考过“VRRP协议中虚拟IP的作用是什么”答案是“提供一个漂移的对外服务地址客户端无需感知后端节点变化”。这套“VIP做入口、Keepalived做探活、Nginx做反向代理、后端多节点做集群”的组合拳是软考下午题的高频答案模板值得整理下来反复用。4. 网络安全与网络管理——判断题的重灾区4.1 加密算法分类选择题拿分最快的板块网络安全在软考上午题中一般有2到3道其中加密算法分类是必考的。核心就是一张表算法类别代表算法特点典型用途对称加密DES、3DES、AES加密解密用同一密钥速度快数据加密传输非对称加密RSA、ECC、ElGamal公钥加密私钥解密私钥签名公钥验签速度慢密钥交换、数字签名哈希算法MD5、SHA-1、SHA-256单向不可逆任意长度输入固定长度输出完整性校验数字签名RSA签名、DSA用私钥签名公钥验签防抵赖身份认证考试最常见的考法是配对题“以下哪个算法属于非对称加密”、“数字签名中用于验证签名的密钥是”、“MD5算法的输出长度是多少位”前者答案固定是RSA后者答案是公钥MD5输出128位。这些题属于送分题背住就好不需要深入理解算法原理。有一个考点容易绕晕数字证书和数字签名的关系。数字证书是CA证书颁发机构颁发的里面包含了持有者的公钥和身份信息CA用自己的私钥对证书内容签名。验证证书时用CA的公钥验签确认证书是真实的、没被篡改。所以数字签名解决的是“这个证书是不是真的”DH密钥交换解决的是“我们怎么协商出共同的密钥”两者配合共同保障HTTPS的可靠性。4.2 防火墙、IDS、IPS架构师要会选型安全设备的选型也是软考的一个考点。这里有个经典辨析防火墙、IDS入侵检测系统、IPS入侵防御系统的区别。防火墙是部署在网络边界基于规则做访问控制像小区的门卫能管谁进谁出但对已经混进去的攻击无能为力。IDS是旁路部署监听网络流量发现攻击后产生告警但不能实时阻断像监控摄像头。IPS是串联部署在检测到攻击的同时直接阻断像装了自动拦截装置的监控摄像头不但能发现还能当场拦下。软考考过选择题“以下哪个设备可以实时阻断网络攻击”答案不是IDS而是IPS或防火墙。这种题要求理解部署方式的本质差异。另外WAFWeb应用防火墙也偶尔出现它专门防护Web应用层攻击如SQL注入、XSS跨站脚本与网络层防火墙形成互补。做架构题时如果场景里提到“需要防护SQL注入”答案大概率是加WAF。4.3 SNMP网络管理偶尔出现的小考点SNMP简单网络管理协议在软考中偶尔考一道属于“性价比高的冷门考点”。它的管理模型包含三个核心组件管理站NMSNetwork Management Station网络管理站、代理Agent、MIBManagement Information Base管理信息库。管理站通过SNMP协议向代理发起请求代理执行操作并返回结果MIB则是被管理对象的数据库。SNMP有三个主要版本SNMPv1和SNMPv2c用“社区名”Community String做认证相当于明文密码安全性很差SNMPv3引入了用户安全和加密机制支持身份认证和数据加密。软考曾有真题问“以下哪个SNMP版本支持加密和认证”答案是SNMPv3。哪怕只是做对这一道题也比花大量时间背OSPF的各种报文类型划算得多。我的备考思路是冷门考点只记结论不深挖原理把时间留给核心考点。5. 新网络技术考点——IPv6与SDN5.1 IPv6地址压缩规则每年都考IPv6是新大纲里明确增加的内容软考现在基本每年都出一到两题。IPv6地址长度为128位采用冒号十六进制表示法比如2001:0DB8:0000:0000:0000:FF00:0042:8329。压缩规则有两条每段前导的0可以省略但每段至少保留一位连续的全0段可以用双冒号“::”代替但双冒号只能出现一次否则无法判断压缩了多少位。真题经常给一个IPv6地址让你选“压缩后的正确写法”或者反过来给压缩后的地址让你还原。这类题只要记住双冒号只能出现一次的规则基本稳了。IPv6还有几类特殊地址要了解回环地址是::1相当于IPv4的127.0.0.1未指定地址是::全零相当于0.0.0.0链路本地地址以FE80::/10开头仅在同一链路内有效唯一本地地址以FC00::/7开头用于内网通信相当于IPv4的私网地址。过渡技术也是一个考点。双栈技术最理想网络设备同时运行IPv4和IPv6协议栈隧道技术是把IPv6报文封装在IPv4报文里传输适合IPv6孤岛穿越IPv4网络NAT-PT协议转换技术则是在IPv4和IPv6网络之间做地址和协议转换。软考考过“在IPv4和IPv6共存的网络中用于地址翻译的技术是”答案就是NAT-PT。5.2 SDN控制与转发分离的核心思想SDN软件定义网络是近几年的新考点考的是概念理解。SDN的核心思想是控制平面与数据平面分离控制平面集中到一个逻辑上集中的控制器通过南向接口如OpenFlow协议下发流表给交换机数据平面只负责根据流表转发报文变得简单和可编程。北向接口连接上层应用让应用能通过API动态调整网络行为。软考选项里经常把“SDN和数据平面可编程”与“传统网络”做对比你要能指出传统网络的控制逻辑分散在每台设备里而SDN把控制逻辑集中起来了。我备考时看到一个比喻特别好传统网络是每家店自己决定卖什么SDN是一个总店统一配货分店只管卖。这个比喻用于回答“SDN的优势是什么”很形象——集中管理、全局优化、灵活编程。SDN还有一个常见考点是“OpenFlow协议属于南向接口还是北向接口”答案毫无疑问是南向。6. 备考策略与真题复盘6.1 网络考点分布与命题规律我统计了近五六年的上午题计算机网络版块的出题分布大概是TCP/UDP约2到3题HTTP/HTTPS约1到2题IP地址与子网划分约1到2题网络安全约1到2题其余如DNS、IPv6、SNMP、路由协议随机出现1到2题。整套下来5到8分题型以概念辨析和场景判断为主。从命题趋势看纯记忆题在减少场景题在增多。比如早些年“TCP端口号范围是多少”这种直给题基本消失了现在更多是“用户在浏览器输入网址到页面显示的完整过程中涉及哪些协议”这种综合题。这种题其实是最考验功底的把DNS、TCP、HTTP、DNS缓存、TCP连接管理和HTTP解析全串起来了。我建议备考时不要只看单个协议要建立“一次HTTP请求全链路”的思维模型从用户的输入到服务器的响应每个环节涉及什么协议、什么设备、什么技术都要能画出来、讲清楚。还有一点软考系统架构师的网络题跟网络工程师的题有明显区别架构师更多考“设计选型”而网络工程师更多考“配置命令”。比如同样考负载均衡网络工程师考LVS的具体配置架构师考四层和七层如何选型、会话保持如何设计。备考时要有意识地站在架构师视角看问题。6.2 我在备考中踩过的坑备考过程中我踩过几个坑写出来给大家提个醒。第一个坑是死记IP地址类别。早年考IPv4地址分类A类、B类、C类大家背得滚瓜烂熟但现在的考试越来越倾向于CIDR无类别域间路由的计算。我记得有一次上午题给了“192.168.1.0/26问可用主机数”有人因为纠结是B类还是C类而算错其实/26前缀就是64个地址去掉网络地址和广播地址可用地址是62个。跟地址类别一点关系都没有。所以复习重点要放在CIDR、子网掩码、可用地址计算公式上可用主机数 2^(32-前缀长度) - 2。第二个坑是做题只做一遍。上午题的内容太多太杂第一遍做真题正确率不到60%很正常第二遍才发现很多题是“看着会真做错”。我的经验是至少做三遍第一遍摸底第二遍按知识点分类做第三遍限时模拟。特别是最后一次严格按照考试时间75分钟做75道题训练节奏感。网络部分的题通常不难如果花了超过1分半还没做出来果断先蒙一个标记一下别恋战。200道真题做下来基本该踩的坑都踩过了。第三个坑是忽视下午题里的网络设计内容。很多人以为网络是上午题专属下午案例题不会考。但实际上系统架构设计的案例里网络相关的考点经常融在整体架构里比如“如何设计系统的网络拓扑”“如何保证系统的高可用”。我见过一道案例是给一个支付系统做容量评估要求估算带宽这种题需要结合并发量、单请求大小、峰值系数做计算公式是带宽 平均并发数 × 单次请求数据量 × 8 / 时间窗口。虽然不算特别难但没准备过的人考场上容易懵。我建议备考时把“高并发系统的网络带宽估算”和“负载均衡与高可用设计模板”这两个知识点当作下午题的弹药储备。最后分享一个实操技巧这篇内容写到最后我特别想分享一个自己备考时的高效方法把历年真题里所有网络相关的题摘出来按“OSI/RM、TCP/IP、HTTP、DNS、安全、IPv6、SDN”等主题做一张错题表。每次复习只看自己错的那些选项和解析比对着教材从头看效率高太多。我考前一周基本不看教材只看这张表考场上遇到网络题基本是秒选。还有个小技巧做题时遇到“以下哪项不是/错误的是”这种否定题把题干里的“不”字圈出来再开始看选项考场上因为看漏“不”字选反答案的同学每年都有。这种失误太可惜了一分之差可能就决定你过没过线。软考系统架构师的计算机网络部分说难不难说简单也不简单关键是把高频考点吃透、把真题做熟。希望这篇梳理能帮正在备考的同学少走一些弯路。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门