一、 网络层与传输层基础概念
1. 路由基础:默认路由
- 子网掩码:
0.0.0.0 - 目的地址:
0.0.0.0 - 逻辑补充: 默认路由是路由表中掩码最短(匹配位数最少)的项。当路由表中所有特定条目都无法匹配时,数据包将根据默认路由转发。
2. 逻辑通信层次对比
在 408 考研中,区分"谁与谁通信"是理解协议栈的关键:
| 协议 | 通信层级 | 通信类型 | 备注 |
|---|---|---|---|
| IP | 网络层 | 主机到主机 (Host-to-Host) | 提供点到点的物理路径选择 |
| UDP | 传输层 | 端到端 / 端口到端口 | 不可靠,无连接 |
| TCP | 传输层 | 端到端 (End-to-End) | 可靠,面向连接,进程对进程 |
关键辨析:
- 点到点 (Point-to-Point): 通常指数据链路层,相邻节点间的通信。
- 端到端 (End-to-End): 指传输层,源主机进程与目的主机进程间的通信。
二、 TCP 协议核心机制
1. 序号与确认号
- seq (Sequence Number): 发送方告诉对方,本报文段所发送数据的第一个字节的序号。
- ack (Acknowledgment Number): 累计确认 。表示期望收到对方下一个报文段的第一个数据字节的序号。
- 公式: 若收到 ack=nack = nack=n,说明到 n−1n-1n−1 为止的所有字节已正确接收。
2. 窗口控制 (重点)
TCP 的发送能力受限于三个窗口的协同:
- 发送窗口 (swnd): 发送方当前允许发送的数据量。
- 拥塞窗口 (cwnd): 发送方根据网络拥塞程度维护的窗口。
- 接收窗口 (rwnd): 接收方根据缓存大小反馈的窗口(流量控制)。
三、 方法总结:发送窗口计算逻辑演练
核心公式
发送窗口的实际大小由拥塞窗口和接收窗口的最小值 决定:
swnd=min(cwnd,rwnd)swnd = \min(cwnd, rwnd)swnd=min(cwnd,rwnd)
真题模拟演练
题目:
主机甲和主机乙已建立 TCP 连接,乙的 rwnd=4000rwnd = 4000rwnd=4000 字节。甲当前 cwnd=2000cwnd = 2000cwnd=2000 字节。甲已发送了 1000 字节数据(序号 100∼1099100 \sim 1099100∼1099),且尚未收到确认。此时主机甲还可以发送多少字节?
解题步骤:
-
确定当前发送窗口上限:
swnd=min(cwnd,rwnd)=min(2000,4000)=2000 字节swnd = \min(cwnd, rwnd) = \min(2000, 4000) = 2000 \text{ 字节}swnd=min(cwnd,rwnd)=min(2000,4000)=2000 字节 -
计算已占用窗口:
甲已发送但未收到确认的数据量 = 1099−100+1=10001099 - 100 + 1 = 10001099−100+1=1000 字节。
-
计算剩余可发送量:
剩余量=swnd−已发送未确认量\text{剩余量} = swnd - \text{已发送未确认量}剩余量=swnd−已发送未确认量
剩余量=2000−1000=1000 字节\text{剩余量} = 2000 - 1000 = 1000 \text{ 字节}剩余量=2000−1000=1000 字节
结论: 主机甲还可以发送 1000 字节。
四、 408 复习心得
- 不要混淆点对点与端到端: 笔记中划掉"点对点"改写"端到端"是非常关键的提分点。
- 累计确认的理解: ackackack 是"期待"而非"已收",计算时注意序号的偏移量。
- 动态变化: 在大题中,cwndcwndcwnd 会随 RTTRTTRTT 呈指数或线性增长,而 rwndrwndrwnd 往往由题目直接给出。
考研复习是一场苦修,但脚踏实地走过的每一步,都是你最坚固的护城河。
如果今天的复盘对你有启发,欢迎 一键三连(点赞、收藏、评论) 支持一下!