计算机网络·考点知识点整理
根据华科历年计网题,整理了一些常考的知识点难点。
因特网五层协议的功能
层次名称 | 协议功能描述 | 典型协议举例(至少两种) | 协议分组名称 |
---|---|---|---|
应用层 | 制定两个应用进程之间的通信规范 | HTTP、SMTP、FTP、Telnet、POP3、IMAP | 报文 |
运输层 | 实现进程与进程之间的通信 | TCP、UDP | 报文段 |
网络层 | 实现主机到主机之间的逻辑通信 | IP、ICMP、BGP、RIP、OSPF | 数据报 |
链路层 | 将数据通过单一通信链路从一个节点移动到相邻节点 | PPP、HDLC、WIFI、ARQ | 数据帧 |
物理层 | 在相邻结点之间传输比特流 | 10Base-5、10Base-T、100Base-T、1000Base-T | 比特流 |
运输层
TCP 可靠数据传输的原理
例 假定主机 A 通过一条 TCP 连接向主机 B 发送两个紧接着的 TCP 报文段。第一个报文段的序号为 90 90 90,第二个报文段的序号为 110 110 110,试回答下面相关问题。
- 第一个报文段中有多少数据?
- 假设第一个报文段丢失而第二个报文段到达主机 B。那么在主机 B 发往主机 A 的确认报文中,确认号应该是多少?
- TCP 可靠数据传输中,“序号”是按字节确定的,因此第一个报文段有 110 − 90 = 20 110-90=20 110−90=20 字节的数据。
- TCP 的“确认号”不同于 GBN 或 SR,它的确认号含义是下一个期望收到的序号。同时,TCP 采取累计确认,这表明它发送的确认号之前的数据均已收到。本题中,一开始接收方希望收到 90 90 90,在 s e q = 110 \mathit{seq}=110 seq=110 的报文到达后,依然希望收到 90 90 90,所以发送的确认号为 a c k = 90 \mathit{ack}=90 ack=90。
答案 20 , 90 20,90 20,90
例 主机 A 和 B 经一条 TCP 连接通信,并且主机 B 已经收到了来自 A 的最长为 126 126 126 字节的所有字节。假定主机 A 随后向主机 B 发送两个紧接着的报文段。第一个和第二个报文段分别包含了 80 80 80 字节和 40 40 40 字节的数据。在第一个报文段中,序号是 127 127 127,源端口号是 302 302 302,目的端口号是 80 80 80。无论何时主机 B 接收到来自主机 A 的报文段,它都会发送确认。
- 在从主机 A 发往 B 的第二个报文段中,序号、源端口号和目的端口号各是什么?
- 如果第一个报文段在第二个报文段之前到达,在第一个到达报文段的确认中,确认号、源端口号和目的端口号各是什么?
- 如果第二个报文段在第一个报文段之前到达,在第一个到达报文段的确认中,确认号是什么?
- 假定由 A 发送的两个报文段按序到达 B。第一个确认丢失了而第二个确认在第一个超时间隔之后到达。画出时序图,显示这些报文段和发送的所有其他报文段和确认。(假设没有其他分组丢失。)
对于图上每个报文段,标出序号和数据的字节数量;对于你增加的每个应答,标出确认号。
- 207 , 302 , 80 207,302,80 207,302,80。
- 207 , 80 , 32 207,80,32 207,80,32。
- 127 127 127。
超时时间计算
在 RFC 原件中,记载的超时时间的计算可以表示为:
D
e
v
R
T
T
i
=
(
1
−
β
)
×
D
e
v
R
T
T
i
−
1
+
β
×
∣
S
a
m
p
l
e
R
T
T
i
−
1
−
E
s
t
i
m
a
t
e
d
R
T
T
i
−
1
∣
(1)
\mathrm{DevRTT}_i = (1 − \beta) \times \mathrm{DevRTT}_{i-1} + \beta \times |\mathrm{SampleRTT}_{i-1} − \mathrm{EstimatedRTT}_{i-1}|\tag{1}
DevRTTi=(1−β)×DevRTTi−1+β×∣SampleRTTi−1−EstimatedRTTi−1∣(1)
E
s
t
i
m
a
t
e
d
R
T
T
i
=
(
1
−
α
)
×
E
s
t
i
m
a
t
e
d
R
T
T
i
−
1
+
α
×
S
a
m
p
l
e
R
T
T
i
−
1
(2)
\mathrm{EstimatedRTT}_i = (1 − \alpha) \times\mathrm{EstimatedRTT}_{i-1} + \alpha \times \mathrm{SampleRTT}_{i-1}\tag{2}
EstimatedRTTi=(1−α)×EstimatedRTTi−1+α×SampleRTTi−1(2)
T
i
m
e
o
u
t
I
n
t
e
r
v
a
l
i
=
E
s
t
i
m
a
t
e
d
R
T
T
i
+
4
×
D
e
v
R
T
T
i
(3)
\mathrm{TimeoutInterval}_i = \mathrm{EstimatedRTT}_i + 4 \times \mathrm{DevRTT}_{i}\tag{3}
TimeoutIntervali=EstimatedRTTi+4×DevRTTi(3)
也就是利用上一时刻
i
−
1
i-1
i−1 中计算得的 EstimatedRTT, DevRTT 以及测量得到的 SampleRTT,去估计下一时刻
i
i
i 的 EstimatedRTT, DevRTT,从而得到下一时刻的 TimeoutInterval。然而在 2024/12/6 上午的答疑中,老师指出式
(
1
)
(1)
(1) 是错误的,应该更改为:
D
e
v
R
T
T
i
=
(
1
−
β
)
×
D
e
v
R
T
T
i
−
1
+
β
×
∣
S
a
m
p
l
e
R
T
T
i
−
1
−
E
s
t
i
m
a
t
e
d
R
T
T
i
∣
\mathrm{DevRTT}_i = (1 − \beta) \times \mathrm{DevRTT}_{i-1} + \beta \times |\mathrm{SampleRTT}_{i-1} − \mathrm{EstimatedRTT}_{\red{i}}|
DevRTTi=(1−β)×DevRTTi−1+β×∣SampleRTTi−1−EstimatedRTTi∣ 即利用新算得的 EstimatedRTT 参与到 DevRTT 的计算当中。
网络层
IP 数据报分片
IP 数据报会通过加上首部和尾部,变成链路层的数据帧,并交付给链路层进行数据传输。然而,链路层出于各种原因,限定了数据帧的有效载荷不得超过 MTU。比如以太网的 MTU 就是
1500
1500
1500 字节。
因此,当 IP 数据报要交付给以太网时,如果 IP 数据报的总长度超过
1500
1500
1500 字节,这个数据报就要进行分片。
例 考虑向具有
700
700
700 字节 MTU 的一条链路发送一个
2400
2400
2400 字节的数据报。假定初始数据报标有标识号
422
422
422。将会生成多少个分片?在生成相关分片的数据报中与分片相关的四个字段的值是多少?
- 2400 2400 2400 字节数据报包含 20 20 20 字节 IP 头部以及 2380 2380 2380 字节的有效载荷。而链路层能够接受的 IP 报文最大长度为 700 700 700,也即一次 680 680 680 字节的 IP 数据报有效载荷。因此, ⌈ 2380 / 680 ⌉ = 4 \lceil2380/680\rceil=4 ⌈2380/680⌉=4,需要生成 4 4 4 个分片。
- 首先我们需要知道,IP 数据报中与分片相关的四个字段都位于其首部,这四个字段分别是:长度(IP 数据报总长度,以字节计),标识号(一个大 IP 数据报分片后,其子数据报具有相同的标识号),标志( 3 b i t 3\mathrm{\ bit} 3 bit,第一个比特保留,第二个比特表示能否分片,第三个比特表示后续是否还有分片;一般我们只关心第三个比特),片偏移(这个子数据报中第一个有效载荷字节,在原数据报的哪个位置,一个片就是 8 B 8\ \mathrm{B} 8 B)。基于上面的知识,可以得知:
- 长度分别是 700 , 700 , 700 , 360 700,700,700,360 700,700,700,360。
- 标识号都是 422 422 422(题给条件)。
- 标志分别是 1 , 1 , 1 , 0 1,1,1,0 1,1,1,0。
- 片偏移分别是 0 , 85 , 170 , 255 0,85,170,255 0,85,170,255。
路由表更新算法(距离向量)
两个相邻路由器 A,B 位于同一个 AS 中,都执行 DV 选路算法时(例如 RIP),会相互发送自己的路由表。比如 B 向 A 发送路由表,A 在收到后进行两个操作:
- 将 B 中每一个表项的“距离”加一,得到新表。
- 对比新表和 A 的路由表:
- 若目的网络在 A 的路由表中不存在,直接填入 A 的路由表中。
- 相同下一跳,更新距离。
- 不同下一跳,距离更短(或者相同),则更新对应记录。
- 不同下一跳,距离更大,则保留距离更短的记录。
- 对于新表中没有的但是 A 路由表中有的表项,删除它们(说明对应网络由原先的可达变为现在的不可达)。
链路层
交换机的自学习与选路过程
交换机的自学习过程可以用下面的流程图表示:
其中更新 ARP 表项包括两个操作:
- 如果源 MAC 不存在,那么加入 ARP 表。
- 更新计时器(由于网络拓扑经常变化,所以交换机给每个表项设置了一个计时器,超时记录要删除,以反映链路最新状态)。
原文地址:https://blog.csdn.net/weixin_72137075/article/details/144289037
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!