ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

运输层考点地图:TCP/UDP可靠传输、拥塞控制与三次握手一次理清

运输层考点地图:TCP/UDP可靠传输、拥塞控制与三次握手一次理清

计算机网络期末考试复习到第五章运输层,很多同学就开始头大了。这一章的考点密度特别高:端口、UDP/TCP、可靠传输、流量控制、拥塞控制、三次握手、四次挥手,哪一个拎出来都能出题。不少学校把这章当成整门课的"分水岭",前面几章靠记忆还能撑住,到这章概念一多、流程一长,光靠死记硬背就顶不住了。

我当年复习这章的时候,前前后后看了三遍才把逻辑理顺。后来发现,只要抓住一条主线——"网络层只负责把数据送到主机,运输层负责把数据送到进程并保证可靠",整章内容都能串起来。这篇就把运输层的考点地图、记忆方法、计算套路全部整理出来,不绕弯子,直接给能用的东西。正在冲刺期末的本科生可以照着这份思路过一遍,想系统搞懂TCP和UDP的自学者也能找到一条清晰的学习路径。

1. 先看清第五章在整门课里的定位

1.1 运输层是承上启下的"中间层"

很多同学复习计算机网络,习惯一章一章孤立地背,背完第三章忘了第二章,到第五章直接原地崩溃。我的建议是:先看清楚这门课的叙事主线。

物理层解决怎么传比特,数据链路层解决怎么在一段链路上可靠传帧,网络层解决怎么把分组从源主机送到目的主机,也就是IP地址和路由选择那一套。但问题来了:IP协议提供的是"尽力而为"的服务,分组随时可能丢失、重复、乱序。可我们平时用浏览器、聊微信、收邮件,需要的是一条看起来"可靠"的通信连接。这个可靠性的缺口谁来补?就是运输层。

运输层运行在主机上,干两件核心的事:一是通过端口号把数据交付给正确的应用进程,这就是"分用";二是通过TCP协议实现端到端的可靠传输。记住一句话:网络层负责主机到主机,运输层负责进程到进程。这句话几乎是年年考的选择题,也是理解整章的钥匙。

1.2 第五章考试重点分布地图

按高校期末的出题规律,第五章的考点可以分成五块。我把它们整理成一张复习地图,建议先按这张图自查,哪一块心里没底就重点补哪块。

考点板块核心内容常见题型
基础概念端口号分类、复用与分用、UDP/TCP特点选择、判断
报文格式UDP首部8字节、TCP首部20~60字节、六个标志位选择、填空
可靠传输停止等待协议、连续ARQ、滑动窗口、流量控制简答、计算
连接管理三次握手、四次挥手、状态变迁、TIME_WAIT简答、判断
拥塞控制慢开始、拥塞避免、快重传、快恢复计算、画图

从这五块可以看出,第五章是全书少有的"全题型覆盖"章节。选择题考概念辨析,简答题考流程叙述,计算题考窗口和序号,画图题考拥塞窗口变化曲线。后面每个部分我都会给出记忆方法和考场实操套路。

2. 端口与复用分用:别小看这几分

2.1 端口号的分段规则

端口号是运输层最基础的概念。它是16位的整数,范围0到65535,分为三段:0到1023是熟知端口号,也叫周知端口,分配给最常用的应用层协议,比如HTTP的80、HTTPS的443;1024到49151是登记端口号,给需要登记的应用使用,避免冲突;49152到65535是短暂端口号,客户端进程临时使用,通信一结束就回收。

这里的易混淆点在于:端口号是"逻辑端口",不是物理接口。平时我们说的"网卡端口"或者交换机上的插口,那是物理层的东西。逻辑端口的作用是标识主机上的应用进程,一个IP地址配上不同的端口号,就能同时支撑多个应用同时通信。

2.2 复用与分用:用快递柜来理解

复用与分用是运输层的两个基本动作。发送方这边,多个应用进程的数据通过同一个运输层协议传送出去,这叫复用;接收方那边,运输层根据端口号,把收到的数据分别交付给对应的应用进程,这叫分用。

打个比方:一栋楼里的快递柜。所有快递员把包裹投进同一个快递柜(复用),取件人凭取件码(端口号)到对应柜子里取出自己的包裹(分用)。取件码不对,柜子就打不开,对应到网络里就是"端口不匹配,数据无法交付"。这个类比在简答题里特别管用,能把抽象概念讲得清清楚楚。

2.3 必背的常用端口号表

考试爱考的端口号其实不多,我整理成一张表,基本就是全部的出题范围:

应用协议端口号传输层协议
FTP 数据/控制20/21TCP
TELNET23TCP
SMTP25TCP
DNS53UDP(也支持TCP)
HTTP80TCP
HTTPS443TCP
DHCP67/68UDP
TFTP69UDP
SNMP161UDP
RIP520UDP

记忆技巧:FTP是20/21一对儿;DNS是53,域名解析讲究快,默认走UDP;HTTP和HTTPS天天用浏览器都熟。考试如果出"下列哪个协议使用了UDP",DNS、TFTP、SNMP、DHCP、RIP都是常见答案,而HTTP、FTP、SMTP一定是TCP,这几个必须分清楚。

3. UDP和TCP:对比着记才不会被绕晕

3.1 UDP的特点与报文格式

UDP(用户数据报协议)的特点,教材上写了四条,我翻译成人话:

无连接。想发就发,不需要先建立连接。就像发短信,编辑好内容就发出去,不用先"打通电话"再说话。尽最大努力交付。不保证不丢、不保证顺序。短信可能延迟,也可能被运营商丢了一条,但大部分情况下能到。面向报文。UDP一次交付一个完整的报文,应用层给多少字节,UDP就原封不动地封装成用户数据报发出去,不拆分也不合并。所以报文太大,IP层可能分片;报文太小,网络利用率低。没有拥塞控制。网络拥堵时,UDP不会主动降速。这就是实时语音、视频通话这类应用喜欢UDP的原因——它们宁可丢一点,也不愿等。

UDP首部只有8个字节:源端口占2字节,目的端口占2字节,长度占2字节,检验和占2字节。长度字段是UDP用户数据报的总长度(含8字节首部),所以最小长度是8,最大可以到65535。检验和字段可以填0表示不计算检验和,这是IPv4下允许的。

3.2 TCP的特点与报文格式

TCP(传输控制协议)的特点同样可以拆成五条:面向连接,通信前必须建立连接,通信后要释放;点对点,TCP连接只有两个端点,不支持一对多广播;可靠交付,通过序号、确认、重传保证数据无差错、不丢失、不重复、按序到达;全双工通信,双方随时可以发数据,需要各自的发送和接收缓存;面向字节流,TCP不关心应用层报文边界,它把数据看成一串无结构的字节流,按字节编号,分块发送。

这里要重点提醒:"面向字节流"是高频判断题陷阱。UDP是面向报文,TCP是面向字节流,这两个一定不要搞混,我见过太多人在这里丢分了。

TCP首部最小20字节,选项最多40字节,所以最大60字节。核心字段必须记住:

  • 源端口和目的端口:各16位。
  • 序号(seq):32位,本报文段数据第一个字节的序号。
  • 确认号(ack):32位,期望收到对方下一个报文段第一个数据字节的序号。注意,确认号只有在ACK标志位置1时才有效,连接建立之后ACK通常总是1。
  • 数据偏移:4位,表示TCP首部长度,单位是4字节。数据偏移为15,说明首部是60字节。
  • 六个标志位:URG(紧急指针有效)、ACK(确认号有效)、PSH(尽快交付)、RST(重置连接)、SYN(同步,建立连接)、FIN(终止,释放连接)。
  • 窗口:16位,接收方通告给发送方的"我能收多少",单位是字节,这是流量控制的载体。
  • 检验和:16位,校验首部和数据。
  • 紧急指针:16位,配合URG使用。

3.3 UDP与TCP终极对比表

这张对比表建议抄下来贴在电脑前,考前扫一眼比翻书快得多:

对比项UDPTCP
连接状态无连接面向连接
可靠性尽力而为,不保证可靠交付
传输单位用户数据报报文段
数据视角面向报文面向字节流
流量控制无有(滑动窗口)
拥塞控制无有
首部开销8字节20~60字节
典型应用DNS、TFTP、实时音视频HTTP、FTP、SMTP

考场速记:UDP是"四无产品"——无连接、无可靠、无流量控制、无拥塞控制。TCP恰好全部相反,该有的都有。

4. 可靠传输原理:从停等协议到滑动窗口

4.1 停止等待协议:最朴素的可靠传输

停等协议的思想很朴素:发送方发一个分组,必须等接收方确认后才发下一个。如果超时没收到确认,就重传。它解决了丢包和重复的问题,但效率太低——一个往返时间只能发一个分组,信道利用率极低。

考试可能会问:为什么不能只靠确认,还要超时重传?答案很简单:确认本身也可能丢失。如果发送方发出数据后傻等,而ACK在半路丢了,接收方其实已经收到了数据,发送方却不知道,两边就会僵住。所以发送方必须设置一个超时计时器,超时没等到确认就重传。

这里还有一个经典问题:重传的数据到了接收方手里,接收方怎么知道它是新的还是重复的?靠序号。这就是"编号"的意义所在。停等协议虽然效率低,但它把可靠传输的三个基本要素讲清楚了:检验和检测差错、序号解决重复、确认加超时重传解决丢失。

4.2 连续ARQ与滑动窗口

停等协议太慢,所以有了连续ARQ协议,也叫流水线传输:发送方可以连续发送多个分组,不必等每一个确认。接收方采用累计确认:只确认最后一个按序到达的分组,表示它和之前的所有分组都已正确收到。

连续ARQ配合滑动窗口使用,发送窗口的意义是:发送方在不收到确认的情况下,最多能发多少数据。窗口内的数据可以连续发送,收到确认后窗口向前滑动。

考试常考的坑是累计确认的缺点:如果某个分组丢了,即使后续分组都正确到达,接收方也只能重复确认"最后一个按序到达的分组",发送方要等超时重传那个丢失的分组,导致后续已到达的分组被缓存甚至丢弃。这就是回退N协议的思想。如果简答题考到这一块,按"连续ARQ + 累计确认 + 超时重传 + 回退N"的思路作答,逻辑就完整了。

4.3 流量控制与发送窗口的构成

TCP的流量控制本质是:让发送方的发送速率服从接收方的接收能力。具体实现是滑动窗口加窗口通告。接收方在TCP首部的窗口字段里写上自己当前能接收的字节数(叫接收窗口rwnd),发送方的发送窗口不能超过对方的rwnd。接收方还可以把窗口设为0,强制发送方停下来。

这里有个容易被忽略的点:发送方的实际发送窗口,由两个值共同决定,一个是接收方通告的接收窗口rwnd,另一个是发送方自己维护的拥塞窗口cwnd。发送窗口取两者的较小值。所以流量控制管的是"对方能不能收",拥塞控制管的是"网络能不能扛",两个概念各管各的,但最终一起决定发送速率。

再补充一个经典场景:接收方通告窗口为0时,发送方进入坚持状态。如果接收方后来想通告"窗口变大了",但这个通告报文丢了,发送方不知道,就会一直等,两边形成死锁。解决办法是坚持定时器,发送方周期性发送探测报文段,逼接收方重新通告窗口。这个知识点在选择题里出现的频率不低。

还有一个相关概念叫糊涂窗口综合症。接收方缓存几乎满了,只腾出很少的空间,却把这个小窗口通告给发送方,发送方就发一个很小的报文段,网络利用率极低。解决思路有两个层面:接收方采用窗口通告策略,等到窗口足够大再通告;发送方采用Nagle算法,积攒数据到一定量再发,避免发送大量小报文。期末一般不深挖算法细节,但知道"小窗口导致低效率"这个结论是必要的。

注意:流量控制是端到端的、基于接收能力的控制;拥塞控制是全局性的、基于网络负载的控制。这两个概念期末必考,一定要区分开,简答题里经常要求对比它们。

5. TCP连接管理:三次握手与四次挥手

5.1 三次握手全过程拆解

三次握手是第五章的网红考点,必须做到能默写。整个过程用序号表示:

  1. 客户端发送SYN=1、seq=x的报文段,进入SYN_SENT状态。
  2. 服务端回复SYN=1、ACK=1、seq=y、ack=x+1的报文段,进入SYN_RCVD状态。
  3. 客户端发送ACK=1、seq=x+1、ack=y+1的报文段,进入ESTABLISHED状态。服务端收到后也进入ESTABLISHED。

三次握手的核心作用是双方确认自己的发送能力和接收能力都正常。第一次握手是客户端告诉服务端"我要连你",第二次是服务端告诉客户端"我收到了你的请求,我也可以发数据给你",第三次是客户端告诉服务端"我收到了你的确认"。

为什么不是两次?假如只有两次握手,服务端在第二次握手后就认为连接建立了,但如果客户端第一个SYN在网络中滞留了很久,客户端超时后重发SYN,服务端收到重发的SYN再次回应,客户端却认为这个回复是迟到的无效回复,直接丢弃。此时服务端已经为一个"假连接"分配了资源,只能傻等。三次握手可以防止这种历史连接请求突然到达造成的资源浪费。

为什么不是四次?因为三次已经足够,第二次和第三次其实可以合并,SYN和ACK标志位可以同时置1,没必要多一次往返。

还有一个高频考点:前两次握手的报文段不能携带数据,第三次握手的ACK报文段可以携带数据。因为SYN报文段要消耗一个序号,而纯ACK报文段不消耗序号。FIN报文段即使不携带数据,也要消耗一个序号,这个细节后面四次挥手也会用到。

5.2 四次挥手全过程拆解

四次挥手是另一个必考流程:

  1. 主动关闭方发送FIN=1、seq=u的报文段,进入FIN_WAIT_1状态。
  2. 被动关闭方回复ACK=1、seq=v、ack=u+1,进入CLOSE_WAIT状态。主动方收到后进入FIN_WAIT_2状态。
  3. 被动关闭方发送FIN=1、ACK=1、seq=w、ack=u+1,进入LAST_ACK状态。
  4. 主动关闭方回复ACK=1、seq=u+1、ack=w+1,进入TIME_WAIT状态。被动方收到后关闭连接,主动方等待2MSL后关闭。

为什么是四次而不是三次?因为TCP是全双工的,每个方向的关闭都需要单独的FIN和ACK。主动方发FIN只是表示"我的数据发完了",但被动方可能还有数据要发给主动方,所以被动方的ACK和FIN必须分开发。这就是为什么挥手时第二次和第三次不能像握手那样合并。

5.3 TIME_WAIT状态的深意

主动关闭方在发送最后一个ACK后,要等待2MSL才关闭。MSL是最长报文段寿命,教材里写的是2分钟,所以TIME_WAIT最长4分钟。为什么非要等这么久?

第一个原因:保证最后一个ACK能到达对方。如果这个ACK丢了,被动方会重发FIN,主动方要是已经关闭就没法回应了。等待2MSL能确保即使ACK丢失,也有足够时间收到重发的FIN并重新确认。第二个原因:保证本次连接的所有报文段从网络中完全消散,防止"旧连接的数据"残留在网络里,被误认为是"新连接"的数据。

判断题喜欢出"TCP主动关闭方发送最后一个ACK后立即关闭连接",这句话是错的,要等2MSL。这个"2"不要记成"1"或"0.5"。

5.4 状态变迁与速记口诀

TCP连接共有11种状态:CLOSED、LISTEN、SYN_SENT、SYN_RCVD、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、CLOSE_WAIT、LAST_ACK、TIME_WAIT、CLOSING。

我自己的记忆方法是按角色分两条线:

  • 客户端方向:CLOSED到SYN_SENT到ESTABLISHED,然后FIN_WAIT_1到FIN_WAIT_2到TIME_WAIT,最后回到CLOSED。
  • 服务端方向:CLOSED到LISTEN到SYN_RCVD到ESTABLISHED,然后CLOSE_WAIT到LAST_ACK,最后回到CLOSED。

平时刷题时,把每个报文段对应到状态变化,反复推演几遍,这两条线自然就记住了,比死背状态名高效得多。

这里列几个高频判断题,考前务必过一遍:TCP连接建立过程中,服务端第二次握手可以携带数据?错,SYN报文段不携带数据。序号和确认号是同一个字段?错,序号是seq,确认号是ack。四次挥手后主动方立即关闭连接?错,还要等待2MSL。

6. 拥塞控制:四个算法一条线串起来

6.1 慢开始和拥塞避免

拥塞控制解决的是:发送数据太多太快,路由器缓存溢出,造成丢包,进而触发大量重传,让网络更堵甚至瘫痪。TCP的拥塞控制通过维护拥塞窗口cwnd来实现。

慢开始算法的第一印象很有迷惑性,它名字里带"慢",实际增长却快得惊人。cwnd初始为1个最大报文段MSS,每收到一个对新报文段的确认,cwnd就增加1个MSS。由于一个往返时间内收到的确认数量会翻倍,实际效果是每个RTT,cwnd翻倍,也就是指数增长。慢开始的"慢"指的是起点低,从小窗口试探网络,而不是增长慢。

慢开始门限ssthresh用来切换算法。当cwnd达到或超过ssthresh时,改用拥塞避免算法。拥塞避免很简单:每个RTT,cwnd只增加1个MSS,线性增长,让窗口缓慢逼近网络容量。

当发生超时,说明网络确实堵了,这时执行:ssthresh = cwnd/2,cwnd = 1,重新进入慢开始。

6.2 快重传和快恢复

快重传解决的是"丢了一个报文段,但要等超时才能重传,效率太低"的问题。改进思路是:接收方每收到一个失序报文段,就立即发送重复的ACK;发送方只要收到3个重复的ACK,就立刻重传丢失的报文段,不必等超时计时器到期。

收到3个重复的ACK后,执行快恢复而不是慢开始:先把ssthresh设为cwnd的一半,再把cwnd设为新的ssthresh,然后执行拥塞避免,线性增长。

这里要和超时的情况严格区分:超时代表网络严重拥塞,直接回到慢开始,从cwnd=1重新来;收到3个重复ACK,大概率只是单个报文段丢失,网络还能扛,所以只减半再线性恢复。这两种情况的处理差异,几乎年年出计算题。

注意:不同教材对快恢复后cwnd的初始值表述略有差异。有的写法是cwnd = ssthresh + 3×MSS,理由是管道里还有3个重复确认对应的报文段已经送达。期末复习时务必以你教材的表述为准,如果拿不准,考前直接问任课老师确认。

6.3 拥塞窗口计算题标准解法

教材里经典的例题:初始cwnd=1,ssthresh=16,写出cwnd随RTT的变化过程。标准步骤如下:

  • 第1个RTT:cwnd=1,发送1个MSS。
  • 第2个RTT:cwnd=2。
  • 第3个RTT:cwnd=4。
  • 第4个RTT:cwnd=8。
  • 第5个RTT:cwnd=16,达到ssthresh。
  • 从第6个RTT起,cwnd=17、18、19,线性增长。

如果题目改成"第5个RTT后发生超时",那么ssthresh = 16/2 = 8,cwnd重置为1,重新慢开始,一直增长到8后才转线性增长。

如果题目改成"第5个RTT后收到3个重复ACK",那么ssthresh = 16/2 = 8,cwnd直接设为8(或按教材写成8+3),然后线性增长。

我强烈建议考场上画一张坐标图:横轴是RTT次数,纵轴是cwnd(单位MSS),指数段是不断上升的曲线,线性段是平缓的斜线,超时点是垂直回落到1的跳变,快恢复是从减半位置开始线性上升。画图题在期末试卷里出现的概率很高,而画图的过程本身就是梳理逻辑的过程,比空想清楚得多。

7. 超时重传与TCP四个定时器

7.1 超时重传时间RTO的计算

TCP发送方发出报文段后,必须设置一个超时重传时间RTO。RTO太短会导致大量不必要的重传,浪费带宽;太长会导致丢包后长时间空等。教材给出的RTT平滑值计算方法是:

RTTs = (1 - α) × 旧RTTs + α × 新RTT样本,其中α取1/8。

再算偏差RTTd,最后RTO = RTTs + 4 × RTTd。

考试一般只要求会用公式。给你几个RTT样本,先取第一个样本作为RTTs初值,再按公式迭代算新的RTTs,最后用RTO = RTTs + 4 × RTTd求结果。需要注意每次代入计算时,α的取值、平滑公式的次序都不要写反。

Karn算法是高频判断题:如果报文段重传了,那么收到的确认既不能用来更新RTTs,也不能用来更新RTO,必须把重传报文段的往返时间样本丢弃。原因很好理解:重传后收到的ACK,可能是对应第一次发送的报文段,也可能是对应重传的报文段,发送方无法区分,用这样的样本计算反而会把RTO带偏。

7.2 TCP的四个定时器

TCP的定时器在选择题里出现的频率很高,整理成表格直接背:

定时器作用高频考点
重传定时器超时未收到ACK就重传超时后进入慢开始
坚持定时器解决接收窗口为0时的死锁周期发送探测报文段
保活定时器检测长时间空闲连接的对端是否存活默认2小时
时间等待定时器主动关闭方TIME_WAIT计时等待2MSL

坚持定时器的场景前面提过:接收方通告窗口为0,发送方等待。如果接收方的"窗口已变大"通告丢了,发送方不知道,就会一直等,双方死锁。坚持定时器让发送方每隔一段时间发一个探测报文段,逼接收方重新通告窗口。这四个定时器各管一摊,考试喜欢把其中两个混在一起出题,背清楚就好。

8. 期末冲刺:题型解法与易错点整理

8.1 选择题高频陷阱清单

按我刷题的经验,下面这些说法几乎年年出现,全部过一遍心里就有底了:

  • "UDP可以提供可靠交付"——错。
  • "TCP是面向报文的"——错,面向字节流。
  • "TCP首部最小长度为8字节"——错,最小20字节。
  • "UDP首部最小长度为20字节"——错,8字节。
  • "DNS使用的是TCP端口53"——半对。DNS既用UDP也用TCP,普通查询用UDP,区域传送用TCP。选择题问默认传输层协议,选UDP。
  • "HTTP使用UDP作为传输层协议"——错,TCP端口80。
  • "三次握手第二次握手中,服务端可以携带数据"——错,SYN报文段不携带数据。
  • "TCP连接释放需要四次握手"——对。
  • "拥塞控制在网络层实现"——错,运输层实现。
  • "端口号是用来标识主机地址的"——错,标识应用进程。

这些选择题陷阱的核心就一条:把UDP和TCP的特点、报文格式、流程细节记准确,每个特例都想想"为什么会这样",而不是硬背结论。

8.2 计算题套路总结

第五章计算题基本逃不出四类,每一类都有固定的解法:

第一类,序号和确认号计算。给定握手或挥手过程的seq和ack,推出下一个报文的序号。记规律:SYN消耗1个序号,FIN消耗1个序号,纯ACK不消耗序号。

第二类,拥塞窗口变化。按6.3的流程画图填表,关键区分超时和快重传两个分支的处理差异。

第三类,UDP长度与数据长度计算。UDP报文段的总长度(含8字节首部)减去8,就是数据部分长度。题目给的长度字段是多少,就用多少减8,不会有坑。

第四类,滑动窗口与流量控制。给了接收窗口值和已发送未确认的字节数,问还能发多少。基本公式是:还能发送的字节数 = 接收窗口 - 已发送未确认的字节数。若题目同时给出拥塞窗口,则取两者的较小值再减。

做计算题一定要写单位。cwnd的单位是MSS还是字节,窗口的单位是字节,序号单位是字节,这些在题目里都有约定,看清再下笔,能避免大量低级失误。

8.3 简答题背诵清单

高频简答题整理成"背了就得分"的口径,考场直接按这个结构写,条理清晰得分还高。

Q1:TCP和UDP的区别。 答:按3.3的对比表展开。重点是无连接vs面向连接、可靠vs尽力而为、面向报文vs面向字节流,再补一句UDP首部8字节、TCP首部20到60字节,各举一个典型应用。

Q2:为什么TCP要三次握手? 答:防止失效的连接请求报文段突然到达服务端造成资源浪费。展开说:若只有两次握手,服务端在第二次握手后就认为连接建立,但迟到的SYN可能让服务端为一个假连接分配资源,三次握手能确认双方收发能力都正常。

Q3:流量控制和拥塞控制的区别。 答:流量控制是端到端的,控制发送速率不超过接收方的接收能力;拥塞控制是全局的,控制发送速率不超过网络能承载的负载。流量控制由接收方通过窗口字段通告实现,拥塞控制由发送方维护cwnd实现,两者共同决定发送窗口,发送窗口取rwnd和cwnd的较小值。

Q4:叙述快重传和快恢复。 答:接收方收到失序报文段立即发送重复ACK,发送方收到3个重复ACK立即重传而不等超时;随后执行快恢复:ssthresh减半、cwnd设为新ssthresh、执行拥塞避免。

Q5:TIME_WAIT为什么等待2MSL? 答:两个理由:保证最后一个ACK到达对端;让本连接的所有报文段从网络中消散,避免旧连接数据混入新连接。

复习第五章,我个人最有用的经验是"先画图再背概念"。三次握手、四次挥手、拥塞窗口演进,全部在草稿纸上画一遍时序图和坐标图,胜过死记硬背十遍。把图画熟了,考场遇到状态变迁题、窗口计算题,基本是下笔就有。另一个小技巧是:把所有"为什么是三次""为什么是四次"这类问题讲给自己听,能不看笔记讲明白,就说明真的理解了。最后再提醒一句,运输层这章的题目坑点非常集中,刷题时把每道错题的陷阱点记在小本子上,考前翻一遍,比再做十套卷子都管用。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进