软考网络工程师|第 5 章 TCP/UDP 完整备考笔记

一、TCP 与 UDP 基础对比★★★★

1 核心特性总览

维度TCP(传输控制协议)UDP(用户数据报协议)
连接属性面向连接,传输前建立连接无连接,直接发送报文
可靠性可靠传输,重传、确认、有序不可靠尽力交付,无确认重传
头部长度可变 20~60 字节(偏移 4bit,单位 4B)固定 8 字节,无复杂控制字段
控制机制序列号、ACK、滑动窗口、拥塞控制无流量 / 拥塞控制,仅端口 + 校验和
适用业务文件、网页、邮件、远程登录直播、语音、DNS、TFTP、游戏
优缺点稳定可靠,开销大、延迟高低延迟、开销小,存在丢包风险

2 分层可靠区分(高频选择题)

  • 数据链路层:点到点单段链路可靠;
  • 传输层 TCP:端到端全程可靠(源主机→目标主机)。

二、UDP 报文结构与计算考点★★★

1 UDP 固定 8 字节头部组成

16 位源端口 + 16 位目的端口 + 16 位总长度 + 16 位校验和

2 必考数值计算

  1. 总长度字段 16bit,最大值 65535 字节;
  2. UDP 最大有效负载 = 65535 - 8 头部 = 65527 字节
  3. 易错坑:题目问总长度选 65535,问数据负载选 65527。

3 UDP 典型应用(UDP 口诀:扔石头蛋蛋)

RIP(520)、SNMP(161)、TFTP(69)、DNS(53)、DHCP(67/68)

三、TCP 报文完整头部字段★★★★★

  • 源端口、目的端口(各 16bit,0~65535)
  • 32 位序列号 seq:每个数据字节独立编号,32 位最大可标识\(2^{32}\)字节(4GB)
  • 32 位确认号 ack:ack = 对方 seq + 已接收数据字节数,表示 ack 之前全部收到
  • 4 位数据偏移(IHL):单位 4 字节,最小值 5(20B),最大值 15(60B)
  • 6 位保留位,后续 6 个控制标志位(必考)
    • URG:紧急数据,搭配紧急指针使用;URG 标志 = 存在带外数据,指针标记紧急数据末尾
    • ACK:除第一次 SYN 报文外,所有 TCP 报文 ACK=1
    • PSH:推送,接收端不缓存,立即上交应用层
    • RST:重置,连接异常强制断开
    • SYN:同步,三次握手建立连接
    • FIN:结束,四次挥手释放连接
  • 16 位窗口字段:流量控制滑动窗口,通告接收缓冲区剩余容量
  • 16 位校验和:校验 TCP 头部 + 数据
  • 16 位紧急指针:仅 URG 置 1 时有意义,标记紧急数据位置
  • 可变选项字段:MSS、时间戳等,最长 40 字节

配套计算题

MSS 最大分段大小 = 以太网 MTU1500 - IP 头 20 - TCP 头 20 = 1460 字节

四、TCP 三次握手(建立连接)★★★★★

1 三步报文标志与 seq/ack 规则

  1. 客户端→服务端:SYN=1,ACK=0,随机初始 seq=x;状态:CLOSED→SYN_SENT
  2. 服务端→客户端:SYN=1,ACK=1,seq=y,ack=x+1;状态:LISTEN→SYN_RCVD
  3. 客户端→服务端:SYN=0,ACK=1,seq=x+1,ack=y+1;双方进入 ESTABLISHED,可携带业务数据

2 核心规则

ack 永远等于对方上一条 seq + 本条数据长度;SYN/FIN 控制报文单独占用 1 个序列号。

3 异常状态考点

SYN_SENT 长时间无响应,超时后回到 CLOSED。

五、TCP 四次挥手(断开连接)

  1. 客户端发 FIN=1:主动关闭发送通道,仍可接收数据(FIN_WAIT1)
  2. 服务端回 ACK=1:确认关闭请求(FIN_WAIT2)
  3. 服务端发 FIN=1:服务端无数据发送
  4. 客户端回 ACK=1,进入 TIME_WAIT(等待 2MSL 防止残留报文),服务端直接 CLOSED

六、TCP 序列号与确认号计算真题题型

  1. 示例:客户端 seq=42,发送 1 字节字符 "C"
    • 客户端 seq=42,数据长度 1
    • 服务端回复 ack=42+1=43,自身 seq 取对方 ack
  2. 三次握手 seq=2000,FIN 报文 seq=8001 有效数据范围 2001~8000,总字节 = 8000-2000=6000 字节

七、TCP 流量控制(滑动窗口)★★★★

1 作用

防止发送方发送速率过快,超出接收缓冲区处理能力,造成丢包重传。

2 实现机制

接收端通过 TCP 头部窗口字段通告剩余缓存容量;发送方每次发送数据总量不能超过通告窗口。

3 规则

发送窗口 = min (接收通告滑动窗口,本地拥塞窗口) 窗口值为 0 时,发送方暂停发送,等待新 ACK 更新窗口。

八、TCP 拥塞控制(全网链路管控)★★★★★

流量控制 vs 拥塞控制区分

  • 流量控制:两端主机缓冲区匹配(接收方限制)
  • 拥塞控制:整条网络链路负载(发送方本地 cwnd 控制)

四大核心阶段

  1. 慢启动 初始拥塞窗口 cwnd=1;每收到一组 ACK,cwnd×2,指数增长,直到达到慢启动阈值 ssthresh。
  2. 拥塞避免 cwnd≥ssthresh 后,每个 RTT 往返时间 cwnd+1,线性缓慢增长。
  3. 超时丢包处理 ssthresh = 当前 cwnd / 2;cwnd 重置为 1,重新慢启动。
  4. 快重传 + 快恢复(3 个重复 ACK 触发)
  • 快重传:无需等待超时计时器,直接重传丢失报文;
  • 快恢复:ssthresh = cwnd/2,cwnd=ssthresh,直接进入拥塞避免,不重置为 1。

真题计算公式

收到 3 个冗余 ACK:新 cwnd = 原 cwnd ÷ 2

例:原 cwnd=4000 字节,快恢复 cwnd=2000 字节

九、知名端口与应用层协议速记★★★

TCP 可靠协议(需要完整数据)

  • 21 FTP 控制、20 FTP 数据
  • 22 SSH、23 Telnet
  • 25 SMTP 发邮件、110 POP3 收、143 IMAP
  • 80 HTTP、443 HTTPS
  • 179 BGP

UDP 实时协议(口诀:扔石头蛋蛋)

  • 53 DNS、67/68 DHCP
  • 69 TFTP、161 SNMP、520 RIP

端口通用规则

客户端源端口:随机大于 1024;

服务器目的端口:0~1023 知名端口。

端口扫描考点

FIN 扫描:目标端口开放无应答;端口关闭返回 RST 报文。

十、本章综合重难点速查表

知识点模块核心结论高频易错点考试星级
UDP 头部固定 8B,最大负载 65527把总长度 65535 当作数据长度★★
TCP 头部20~60B,偏移单位 4 字节偏移单位 1 字节★★★★
TCP 标志SYN 建、FIN 断、URG 紧急ACK 握手第一帧置 1★★★★
三次握手SYN→SYN+ACK→ACK,ack=seq+1SYN 报文 ack=1★★★★★
序列号计算SYN/FIN 占 1 字节序号控制报文不计序号★★★
流量控制滑动窗口,接收端通告窗口字段是拥塞窗口★★★
拥塞控制慢启动指数、拥塞避免线性丢包直接 cwnd 减半★★★★
快重传3 个重复 ACK 触发超时才重传★★★
端口规则客户端源 > 1024客户端使用 80 作源端口★★★
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值