软考网络工程师必背|TCP协议 高频真题分析

四季读书网 1 0
软考网络工程师必背|TCP协议 高频真题分析
备考软考网络工程师的小伙伴们,TCP 协议绝对是咱们考试里的高频顶流考点!从选择题到案例分析,TCP 的知识点几乎每次考试都会考,而且很多考点看似简单,却藏着不少容易踩坑的细节。
今天我们就结合历年 TCP 真题,把 TCP 的核心考点一个个拆解清楚,帮你把这些分稳稳拿到手!
一、拥塞控制:软考最爱的「计算 + 概念」双考点
TCP 的拥塞控制是每年必考的点,不仅考概念,还会考计算,很多小伙伴在这里容易搞混 cwnd、ssthresh 的变化规则。
核心知识点
TCP 通过拥塞窗口(cwnd)来进行拥塞控制,这里要注意:
划重点:cwnd 是本地存储的参数!不会随着报文传到对端!这是真题里反复考的易错点!
发送方的实际发送窗口,是取本地拥塞窗口 cwnd和对端通告的接收窗口 rwnd的最小值!
拥塞控制的两个核心阶段:
1.慢启动阶段:初始 cwnd=1,每收到一个 ACK,cwnd 翻倍(指数增长),直到 cwnd 达到慢启动门限 ssthresh。
2. 拥塞避免阶段:当 cwnd≥ssthresh 后,cwnd 每轮只 + 1(线性增长),避免网络拥塞。
3. 当出现拥塞时:ssthresh 会更新为当前 cwnd 的一半,cwnd 重置为 1,重新开始慢启动。
软考网络工程师必背|TCP协议 高频真题分析 第1张
真题拆解
我们来看这道经典的计算题,很多考生第一次做都会错:
真题 :TCP 采用慢启动进行拥塞控制,若 TCP 在某轮拥塞窗口为 8 时出现拥塞,经过 4 轮均成功收到应答,此时拥塞窗口为 ( )。
A. 5 B. 6 C. 7 D. 8
解题步骤:
1.当拥塞发生在 cwnd=8 时,首先更新 ssthresh = 8/2 =4,同时 cwnd 重置为 1。
2.第 1 轮:慢启动,cwnd 从 1→2(翻倍)
3.第 2 轮:cwnd 从 2→4(翻倍,此时刚好达到 ssthresh)
4.第 3 轮:进入拥塞避免阶段,cwnd 线性增长,4→5
5.第 4 轮:继续线性增长,5→6
所以答案是 B 选项 6!
还有这道易错题,直接戳中很多考生的知识盲区:
真题:以下网络控制参数中,不随报文传送到对端实体的是 ( )。
A. 接收进程 B. 上层协议 C. 接收缓存大小 D. 拥塞窗口大小
答案是 D!
因为 cwnd 是本地的拥塞控制参数,不会传给对端;而接收缓存大小就是对端的接收窗口 rwnd,会通过 TCP 头部的窗口字段传给发送方,用来做流量控制。
二、连接管理:三次握手 / 状态机,标志位要记清
TCP 的连接建立(三次握手)、释放(四次挥手),还有连接过程中的状态机,也是每年的必考点,主要考各个状态的含义,还有标志位的作用。
核心知识点
1.三次握手的核心目的
为什么是三次握手而不是两次?防止失效的连接请求报文段被服务器接收,从而产生错误的连接!这是真题里反复考的核心考点!
2.核心标志位
  • SYN:同步标志,连接建立时使用,SYN=1 代表这是连接请求 / 确认报文,会消耗一个序号。
  • ACK:确认标志,ACK=1 代表这是确认报文,确认号有效。
  • FIN:终止标志,连接释放时使用,FIN=1 代表发送方已经没有数据要发送了。
  • RST:复位标志,当连接出现错误、或者拒绝连接时,RST=1 来重置连接。
3.连接状态
  • LISTEN:服务器被动打开后,等待连接请求的状态(也就是收到对端 SYN 之前的状态)。
  • SYN_SENT:客户端主动打开,发送 SYN 后,等待对方确认的状态。
  • SYN_RCVD:服务器收到客户端的 SYN 后,发送了 SYN+ACK,等待客户端 ACK 的状态。
  • ESTABLISHED:连接建立完成,可以传输数据的状态。
软考网络工程师必背|TCP协议 高频真题分析 第2张
真题拆解
真题:建立 TCP 连接时,被动打开一端在收到对端 SYN 前所处的状态为 ( )。
A. LISTEN B. CLOSED 
C. SYN RESECEIVD D. LASTACK
答案 A!被动打开的一方(也就是服务器),启动服务后就会进入 LISTEN 状态,侦听来自客户端的连接请求,在收到客户端的 SYN 报文之前,一直处于这个状态。
真题:TCP 使用 3 次握手协议建立连接,以防止 (); 当请求方发出 SYN 连接请求后,等待对方回答 () 以建立正确的连接;当出现错误连接时,响应 ( )。
选项 1:A. 出现半连接 B. 无法连接 C. 产生错误的连接 D. 连接失效
选项 2:A. SYN,ACK B. FIN,ACK C. PSH,ACK D. RST,ACK
选项 3:A. SYN,ACK B. FIN,ACK C. PSH,ACK D. RST,ACK
答案是 C、A、D!三次握手的核心目的就是为了防止失效的连接请求导致产生错误的连接;请求方发了 SYN 后,要等待对方回复 SYN+ACK 来确认连接同意;如果出现错误的连接请求,会用 RST 标志位来复位连接,拒绝请求。
三、流量控制:滑动窗口,别和拥塞控制搞混!
很多小伙伴会把流量控制和拥塞控制搞混,这也是软考的高频易错点,两者解决的问题完全不同!
核心知识点
  • 流量控制:解决的是「发送方和接收方之间的端到端速度匹配问题」,防止发送方发太快,接收方来不及接收导致数据丢失。
  • TCP 用的是可变大小的滑动窗口协议,注意是「可变」的!不是固定的!接收方会根据自己的接收缓存剩余情况,动态调整窗口大小。
  • 接收方会把自己的接收窗口大小,放在 TCP 头部的「窗口字段」里,传给发送方,发送方根据这个来调整自己的发送速度。
再次划重点:TCP 头部的窗口字段,存的是接收窗口 rwnd,不是拥塞窗口 cwnd!这是无数考生踩过的坑!
真题拆解
真题:TCP 使用的流量控制协议是 (),TCP 头中与之相关的字段是 ()。
选项 1:A. 停等应答 B. 可变大小的滑动窗口协议 C. 固定大小的滑动窗口协议 D. 选择重发 ARQ 协议
选项 2:A. 端口号 B. 偏移 C. 窗口 D. 紧急指针
答案是 B、C!TCP 的流量控制就是通过可变大小的滑动窗口来实现的,依靠 TCP 头部的窗口字段来传递接收方的接收能力。
真题:主机甲和主机乙建立一条 TCP 连接,采用慢启动进行拥塞控制,TCP 最大段长度为 1000 字节。主机甲向主机乙发送第 1 个段并收到主机乙的确认,确认段中接收窗口大小为 3000 字节,则此时主机甲可以向主机乙发送的最大字节数是 ( ) 字节。
A. 1000 B. 2000 C. 3000 D. 4000
这道题就考了发送窗口的取值规则!
  • 初始 cwnd=1,收到第一个 ACK 后,慢启动阶段 cwnd 翻倍到 2,也就是 2*1000=2000 字节。
  • 对端通告的接收窗口 rwnd 是 3000 字节。
  • 发送窗口要取两者的最小值,也就是 2000,所以答案是 B!
四、TCP 头部与字段:这些细节年年考
除了上面的大模块,TCP 头部的各个字段,还有一些相关的计算,也是选择题的常客,很多细节稍不注意就会丢分。
核心知识点 & 真题拆解
1.MSS 的计算:别搞混这两个数值!
以太网的 MTU(最大传输单元)是 1500 字节,也就是 IP 数据报的最大长度是 1500 字节。这里有两个极易混淆的数值,真题反复考:
  • TCP 段的最大长度:IP 头最小 20 字节,所以 TCP 整个段(头部 + 数据)最大是 1500-20=1480 字节。
  • TCP 数据字段的最大长度(MSS):TCP 头部最小 20 字节,所以数据部分最大是 1500-20-20=1460 字节。
这两个数值真题都考过,一定要看清楚题目问的是什么!
真题:若主机采用以太网接入 Internet,TCP 段格式中,数据字段最大长度为 ( ) 字节。
A. 20 B. 1460 C. 1500 D. 65535
答案 B!这是问数据字段,也就是 MSS,1460。
真题:以太网可以传送最大的 TCP 段为 ( ) 字节。
A. 1480 B. 1500 C. 1518 D. 2000
答案 A!这是问整个 TCP 段,1480,很多同学这里会错选 1460,一定要看清楚题目描述!
2. TCP 伪首部
伪首部是为了计算 TCP 校验和而虚拟出来的结构,它不是 TCP 报文的实际部分,也不会在网络中传输,只是用来校验 IP 头的地址有没有出错,防止报文传错了主机。
伪首部包含:源 IP 地址、目的 IP 地址、协议字段、TCP 长度。
真题:TCP 伪首部不包含的字段为 ( )。
A. 源地址 B. 目的地址 C. 标识符 D. 协议
答案 C!标识符是 IP 头的字段,伪首部里没有这个字段。
3. URG 紧急指针
URG 标志位为 1 时,紧急指针有效,它的作用是指出紧急数据在 TCP 段中的位置,告诉接收方,到这个位置为止都是紧急数据,需要优先处理,不用等前面的数据处理完。
真题:TCP 协议中,URG 指针的作用是 ( )。
A. 表明 TCP 段中有带外数据 B. 表明数据需要紧急传送 C. 表明带外数据在 TCP 段中的位置 D. 表明 TCP 段的发送方式
答案 C!很多同学会错选 B,其实紧急指针是用来定位紧急数据的位置的,不是单纯表明要紧急传送。
最后:TCP 考点速记清单
最后给大家整理了速记清单,考前再过一遍,把这些分牢牢抓在手里:
1.cwnd 是本地的拥塞窗口,rwnd 是对端通告的接收窗口,发送窗口取 min (cwnd, rwnd)
2.拥塞控制:慢启动指数增长,拥塞避免线性增长,拥塞后 ssthresh=cwnd/2,cwnd 重置为 1
3.三次握手的核心是防止产生错误的连接,RST 标志位用来复位错误连接
4.流量控制是可变滑动窗口,靠 TCP 头部的窗口字段实现
5.MSS=1460,整个 TCP 段最大 1480,别搞混这两个数值!
6.伪首部用来计算校验和,没有标识符字段
7.URG 指针的作用是定位紧急数据在段中的位置

上一个一模真题分享(完整版)

下一个当前已是最新一个了

抱歉,评论功能暂时关闭!