自学内容网 自学内容网

计算机网络·考点知识点整理

根据华科历年计网题,整理了一些常考的知识点难点

因特网五层协议的功能

层次名称协议功能描述典型协议举例(至少两种)协议分组名称
应用层制定两个应用进程之间的通信规范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,试回答下面相关问题。

  1. 第一个报文段中有多少数据?
  2. 假设第一个报文段丢失而第二个报文段到达主机 B。那么在主机 B 发往主机 A 的确认报文中,确认号应该是多少?
  • TCP 可靠数据传输中,“序号”是按字节确定的,因此第一个报文段有 110 − 90 = 20 110-90=20 11090=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 的报文段,它都会发送确认。

  1. 在从主机 A 发往 B 的第二个报文段中,序号、源端口号和目的端口号各是什么?
  2. 如果第一个报文段在第二个报文段之前到达,在第一个到达报文段的确认中,确认号、源端口号和目的端口号各是什么?
  3. 如果第二个报文段在第一个报文段之前到达,在第一个到达报文段的确认中,确认号是什么?
  4. 假定由 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β)×DevRTTi1+β×SampleRTTi1EstimatedRTTi1(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α)×EstimatedRTTi1+α×SampleRTTi1(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 i1 中计算得的 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β)×DevRTTi1+β×SampleRTTi1EstimatedRTTi 即利用新算得的 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 路由表中有的表项,删除它们(说明对应网络由原先的可达变为现在的不可达)。

链路层

交换机的自学习与选路过程

  交换机的自学习过程可以用下面的流程图表示:

Created with Raphaël 2.3.0 开始 从接口 x 收到帧 帧有差错? 丢弃 结束 在 ARP 表中查找目的 MAC 地址对应的接口 找到了接口为 d? d=x? 丢弃该帧 根据源 MAC 更新 ARP 表项 向接口 d 转发该帧 向除x以外的所有接口转发此帧 yes no yes no yes no

  其中更新 ARP 表项包括两个操作:

  • 如果源 MAC 不存在,那么加入 ARP 表。
  • 更新计时器(由于网络拓扑经常变化,所以交换机给每个表项设置了一个计时器,超时记录要删除,以反映链路最新状态)。

原文地址:https://blog.csdn.net/weixin_72137075/article/details/144289037

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!