lesson19-23计算机网络数据链路层完全指南:从帧封装到滑动窗口协议

第三章 Lesson 19 数据链路层的作用(★★★★★)

考试重要程度:

⭐⭐⭐⭐⭐

  • 选择题:★★★★★
  • 填空题:★★★★☆
  • 简答题:★★★★★

第一部分:为什么还要有数据链路层?

很多同学学到这里都会问:

第二章不是已经能传数据了吗?

答案:

不能。

第二章只能做到:

markdown 复制代码
电脑A
   │
电信号
   │
电脑B

也就是说:

物理层只负责把 0 和 1 送出去。

它根本不知道:

  • 数据是谁发的?
  • 发给谁?
  • 有没有出错?
  • 一次发送多少?

这些事情:

物理层完全不管。


举个现实例子

假设:

你想寄快递。

如果只有物理层。

就相当于:

markdown 复制代码
把快递扔到高速公路上。

能不能到?

不知道。

因为:

没有:

  • 地址
  • 包装
  • 收件人

是不是很危险?

所以:

必须:

先包装。

写地址。

再发。

网络:

也是一样。


第二部分:数据链路层到底干什么?

一句话:

负责相邻两个节点之间的数据可靠传输。

★★★★★

这是教材原话。

一定要背。


例如:

markdown 复制代码
电脑A
   │
交换机
   │
电脑B

注意。

这里:

数据链路层:

只负责一跳。

例如:

markdown 复制代码
电脑A

↓

交换机

或者:

markdown 复制代码
交换机

↓

电脑B

它:

不负责整个互联网。

这一点以后学习网络层时非常重要。


第三部分:什么叫"一跳"?

这是第三章最重要的概念。

例如:

北京快递:

寄到广州。

路线:

markdown 复制代码
北京

↓

天津

↓

济南

↓

南京

↓

广州

是不是:

经过很多站?

数据:

也是一样。

例如:

markdown 复制代码
电脑A

↓

交换机①

↓

交换机②

↓

路由器

↓

服务器

数据链路层:

每次:

只负责:

一段。

例如:

markdown 复制代码
电脑A

↓

交换机①

完成后。

下一段:

重新开始。

所以:

一句口诀:

数据链路层负责一跳,网络层负责全程。

★★★★★★★★★★

这是第三章和第四章最容易混淆的地方。


第四部分:数据链路层主要完成哪些工作?

教材一般总结为三个核心任务。

markdown 复制代码
数据链路层

├── 封装成帧
├── 差错检测
└── 流量控制

这三个,就是第三章的主线。

我们后面每节课都围绕它展开。


① 封装成帧

例如:

应用层给你:

markdown 复制代码
Hello

不能直接发。

必须:

包装。

变成:

markdown 复制代码
┌────┬────────┬────┐
│头部│ 数据   │尾部│
└────┴────────┴────┘

这个:

就叫:

帧(Frame)

下一课专门讲。


② 差错检测

第二章:

学过:

CRC。

第三章:

继续:

放到帧里面。

例如:

markdown 复制代码
头

数据

CRC

发送。

接收端:

检查。

有没有错误。


③ 流量控制

什么意思?

举例。

假设:

你:

一分钟:

能读:

100字。

老师:

一分钟:

讲:

10000字。

怎么办?

是不是:

根本来不及?

网络:

也是一样。

发送方:

太快。

接收方:

处理不了。

于是:

需要:

流量控制。

后面:

滑动窗口。

就是:

解决这个问题。


第五部分:为什么叫"链路层"?

很多学生:

觉得:

名字奇怪。

其实:

很好理解。

例如:

markdown 复制代码
电脑A ======= 交换机

这一段:

就是:

一条:

链路(Link)

数据链路层:

就是:

管理:

这一条链路。

所以:

叫:

数据链路层。


第六部分:数据链路层和物理层有什么区别?

这是考试超级高频。

物理层 数据链路层
传输比特流 传输帧
不关心地址 有地址(MAC)
不关心错误 检测错误
不关心控制 流量控制

★★★★★

一定会比较。


第七部分:本章你将学什么?

整个第三章,其实就是围绕一张图展开。

markdown 复制代码
数据

↓

封装成帧

↓

加入MAC地址

↓

加入CRC

↓

发送

↓

交换机转发

↓

接收

↓

CRC检查

↓

拆帧

看到没有?

后面的每一节课,其实都是这张图中的一个步骤。


本课总结

一定记住下面这棵知识树:

markdown 复制代码
数据链路层
│
├── 作用
│   └── 相邻节点可靠传输
│
├── 核心任务
│   ├── 封装成帧
│   ├── 差错检测
│   └── 流量控制
│
└── 服务对象
    └── 一跳(Hop)

第三章 Lesson 20 封装成帧(★★★★★)

考试重要程度:

⭐⭐⭐⭐⭐


第一部分:什么是帧(Frame)?

先不要看定义。

我们先举一个生活中的例子。

假设:

你要寄一本书。

如果直接这样寄:

markdown 复制代码
计算机网络教程

快递员知道:

不知道。

所以必须包装。

例如:

markdown 复制代码
寄件人:张三

收件人:李四

内容:计算机网络教程

是不是信息完整了?

网络中的数据也是一样。

应用层交给数据链路层的只是:

markdown 复制代码
Hello

不能直接发送。

必须包装。

于是变成:

markdown 复制代码
┌────┬────────┬────┐
│头部│ 数据   │尾部│
└────┴────────┴────┘

这个整体:

就叫:

帧(Frame)


第二部分:什么叫封装成帧?

一句话:

给数据加上头部和尾部。

教材定义:

数据链路层在数据前后分别添加控制信息,形成帧。

★★★★★

这是考试喜欢考的定义。


来看变化过程。

应用层:

markdown 复制代码
Hello

数据链路层:

markdown 复制代码
头部 + Hello + 尾部

形成:

markdown 复制代码
Frame

是不是很简单?


第三部分:为什么要加头和尾?

很多同学都会问:

为什么不能直接发送数据?

原因有三个。


原因一:告诉别人发给谁

例如:

快递:

必须有地址。

网络:

也是。

头部:

以后会放:

markdown 复制代码
MAC地址

例如:

markdown 复制代码
发送方:

00-11-22

接收方:

AA-BB-CC

交换机:

就是:

看这个地址。

决定:

往哪转发。


原因二:判断哪里开始哪里结束

假设:

连续发送:

markdown 复制代码
HelloWorldPythonJava

接收端:

怎么看?

不知道。

于是:

加:

开始。

结束。

例如:

markdown 复制代码
<Hello>

<World>

<Python>

<Java>

是不是:

立刻:

分开了?

这就是:

帧边界。


原因三:检查有没有出错

尾部:

以后会放:

markdown 复制代码
CRC

例如:

markdown 复制代码
┌────┬────────┬────┐
│头部│ 数据   │ CRC│
└────┴────────┴────┘

收到后:

计算CRC。

一致。

说明:

没错。


第四部分:帧的一般格式(★★★★★)

考试经常画图。

记住:

markdown 复制代码
┌────────┬────────────┬────────┐
│ 首部   │ 数据(Data) │ 尾部   │
└────────┴────────────┴────────┘

以后:

不同协议:

首部内容:

不同。

尾部内容:

不同。

但是:

都有头部和数据。

很多协议还会有尾部。


第五部分:帧定界(★★★★★)

这是考试重点。

什么叫:

帧定界?

一句话:

告诉接收方,一帧从哪里开始,到哪里结束。

例如:

火车。

每节车厢:

都有:

连接处。

网络:

也是。

例如:

markdown 复制代码
FLAG

数据

FLAG

FLAG:

就是:

标志。

例如:

markdown 复制代码
01111110

★★★★★

PPP协议:

就是:

这个。

下一课:

详细讲。


第六部分:透明传输(★★★★★)

这是第三章最容易考的名词。

也是很多学生第一次看不懂的。

我们慢慢来。


假设:

FLAG:

规定:

markdown 复制代码
01111110

但是:

你的数据:

刚好也是:

markdown 复制代码
01111110

怎么办?

接收端:

会不会误认为:

数据结束了?

当然会。

例如:

markdown 复制代码
FLAG

111

01111110

222

FLAG

接收端:

看到:

中间那个:

01111110

就会误认为:

结束了。

是不是:

出错了?


怎么办?

答案:

字节填充(字符填充)或比特填充。

也叫:

透明传输。

一句话:

让数据中出现的特殊标志不会被误认为帧边界。


第七部分:比特填充(★★★★★)

这是教材重点。

规则:

连续出现5个1,就自动插入一个0。

★★★★★

一定要记。

例如:

原始数据:

markdown 复制代码
01111110

发送前:

变成:

markdown 复制代码
011111010

注意:

连续5个1后:

插入:

一个:

0。

接收端:

看到:

5个1后面的0。

就知道:

这是:

填进去的。

于是:

删掉。

恢复:

原数据。


口诀:

五个1,插个0。

★★★★★


第八部分:为什么叫"透明"?

因为:

对于用户来说:

数据:

没有改变。

用户:

发送:

markdown 复制代码
Hello

收到:

还是:

markdown 复制代码
Hello

至于:

中间:

插没插0。

用户:

不知道。

所以:

叫:

透明。


第九部分:本课知识串起来

整个过程:

markdown 复制代码
应用层数据

↓

Hello

↓

数据链路层

↓

加首部

↓

加尾部

↓

形成帧

↓

比特填充

↓

发送

↓

接收

↓

是不是整个流程已经很清楚了?


第十部分:本课总结

markdown 复制代码
封装成帧
│
├── 首部
│
├── 数据
│
└── 尾部
      │
      └── CRC

封装成帧的作用:

  • 标识一帧的开始和结束;
  • 携带控制信息(如地址);
  • 便于进行差错检测。

第十二部分:与后续课程的联系

从今天开始,你要把后面的知识都放进这个框架里理解:

markdown 复制代码
┌────────────────────────────────────┐
│ 首部 │ 数据 │ CRC │
└────────────────────────────────────┘

后面我们学的内容其实都是在回答这些问题:

  • Lesson 21(CRC) :CRC 放在哪里?怎么检查?
  • Lesson 22(PPP) :PPP 帧长什么样?
  • Lesson 24(MAC 地址) :MAC 地址放在首部哪里?
  • Lesson 25(以太网) :以太网帧格式是什么?
  • Lesson 27(交换机) :交换机为什么只看帧首部就能转发?

所以, 帧就是第三章的主角

第三章 Lesson 21 CRC(数据链路层中的应用)

第一部分:回顾一下CRC

上一章我们学过:

CRC:

循环冗余校验(Cyclic Redundancy Check)

它的作用:

检测数据有没有发生错误。

注意:

CRC只能检错。

不能:

自动纠错。

★★★★★

考试:

经常考。


第二部分:CRC为什么属于数据链路层?

很多同学:

第一次都会疑惑。

上一章:

CRC不是:

物理层吗?

其实:

不是。

准确来说:

CRC:

是一种检错技术。

物理层介绍了:

它是什么。

数据链路层:

真正:

使用它。

例如:

发送:

markdown 复制代码
Hello

数据链路层:

先:

封装成帧。

markdown 复制代码
┌──────┬────────┬──────┐
│ 首部 │ Hello  │ CRC  │
└──────┴────────┴──────┘

注意。

CRC:

放在:

尾部。

这里:

有一个专门名字。

叫:

FCS(Frame Check Sequence,帧校验序列)

★★★★★

考试:

很喜欢考。


第三部分:什么是FCS?

一句话。

FCS就是帧尾部保存的CRC校验值。

很多教材:

直接画:

markdown 复制代码
┌────────┬──────────┬────────┐
│ 首部   │ 数据     │  FCS   │
└────────┴──────────┴────────┘

注意。

以后:

看到:

FCS。

马上想到:

CRC校验码。

★★★★★


第四部分:发送端如何工作?

这是考试最喜欢画流程图。

一步一步来看。


第一步:

应用层:

给数据。

markdown 复制代码
Hello

第二步:

数据链路层:

计算CRC。

例如:

算出来:

markdown 复制代码
1011

(这里是假设。)


第三步:

放到帧尾。

变成:

markdown 复制代码
┌──────┬────────┬──────┐
│ 首部 │ Hello  │1011 │
└──────┴────────┴──────┘

然后:

发送。


一句话:

发送端负责计算CRC,并把结果放到FCS。

★★★★★


第五部分:接收端如何工作?

收到:

markdown 复制代码
┌──────┬────────┬──────┐
│ 首部 │ Hello  │1011 │
└──────┴────────┴──────┘

第一步。

重新:

计算CRC。

假设:

也是:

markdown 复制代码
1011

第二步。

比较。

markdown 复制代码
收到:

1011

计算:

1011

一致。

说明:

没有错误。

交给:

上层。


如果:

计算出来:

markdown 复制代码
1000

而收到:

markdown 复制代码
1011

不同。

说明:

出错。

直接:

丢弃。

★★★★★

注意。

很多教材:

都是:

直接丢弃。

不是:

修改。

不是:

自动恢复。


第六部分:为什么CRC不能纠错?

举例。

老师:

批改试卷。

看到:

第五题:

错。

知道:

错了。

但是:

不知道:

正确答案。

CRC:

也是。

它:

只能说:

有错。

不能说:

错在哪里。

更不能:

改回来。

所以:

需要:

重发。


第七部分:为什么把CRC放尾部?

很多学生:

都会问。

为什么:

不是:

放前面?

其实:

很好理解。

CRC:

必须:

根据:

整个数据:

计算。

例如:

数据:

markdown 复制代码
10110010

CRC:

是:

根据:

这一串:

算出来。

所以:

必须:

最后:

才能放进去。

是不是:

很合理?


第八部分:整个发送过程(★★★★★)

一定会画。

markdown 复制代码
应用层数据

↓

数据链路层

↓

封装成帧

↓

计算CRC

↓

加入FCS

↓

发送

接收:

markdown 复制代码
收到帧

↓

重新计算CRC

↓

比较FCS

↓

正确?

↓

是

↓

交给网络层

↓

否

↓

丢弃

★★★★★

这张流程图:

考试:

经常画。


第九部分:CRC和ARQ的关系

上一章:

我们:

学过:

ARQ。

自动重传请求。

现在:

终于:

联系起来。

例如:

CRC:

发现:

错误。

数据链路层:

丢弃。

然后:

由上层协议(如PPP、TCP等)决定是否请求重传。

所以:

很多教材:

写:

markdown 复制代码
CRC

↓

发现错误

↓

重传

不要理解成:

CRC:

自己:

重传。

CRC:

只是:

发现。

★★★★★


第十部分:本课总结(★★★★★)

markdown 复制代码
CRC(循环冗余校验)

        │
        ▼
   发送端计算CRC
        │
        ▼
 放入FCS(帧尾)
        │
        ▼
      发送帧
        │
        ▼
   接收端重新计算
        │
        ▼
   与FCS比较
        │
   ┌────┴────┐
   │         │
 一致      不一致
   │         │
 接收      丢弃

第十二部分:考试必背

一定记住这四句话:

✅ CRC 是 检错技术

✅ FCS 位于 帧尾部

✅ 接收端会 重新计算 CRC 并与 FCS 比较

✅ CRC 不能纠错 ,发现错误后通常 丢弃该帧 ,后续是否重传由相应协议决定。


第三章 Lesson 22 PPP协议(★★★★★)


第一部分:为什么需要 PPP?

先举个生活中的例子。

假设:

只有两台电脑。

markdown 复制代码
电脑A  ───────── 电脑B

它们之间:

只有一根线。

是不是:

特别简单?

那:

需要交换机吗?

不用。

需要路由器吗?

不用。

只需要:

让这两台电脑:

正常通信。

于是:

就有了:

PPP(Point-to-Point Protocol)

中文:

点对点协议。

★★★★★

考试:

经常考全称。


第二部分:什么叫点对点?

就是:

一条链路:

只有:

两个节点。

例如:

markdown 复制代码
电脑A ─────── 电脑B

或者:

markdown 复制代码
路由器A ─────── 路由器B

注意。

没有:

第三个人。

所以:

PPP:

只适用于:

点对点通信。


PPP 不适用于什么?

例如:

局域网。

markdown 复制代码
A
         │
B ──交换机── C
         │
         D

这里:

很多设备。

不是:

点对点。

PPP:

不能用。

以后:

会用:

以太网协议。


第三部分:PPP 的特点(★★★★★)

教材总结四个特点。

我们一个一个理解。


① 简单

PPP:

没有:

复杂的寻址。

因为:

只有:

两台设备。

例如:

打电话。

只有:

你。

和:

对方。

不需要:

问:

"你是谁?"

线路:

已经固定。


② 提供差错检测

PPP:

使用:

什么?

答案:

CRC。

★★★★★

是不是:

和上一课:

连起来了?

PPP:

发送:

markdown 复制代码
帧

↓

CRC

↓

FCS

↓

发送

③ 不提供纠错

注意。

PPP:

发现:

错误。

怎么办?

答案:

直接:

丢弃。

不负责:

重发。

★★★★★

考试:

特别喜欢。


④ 支持多种网络层协议

什么意思?

PPP:

不仅:

可以传:

IP。

还可以:

传:

其他协议。

所以:

兼容性:

很好。

了解即可。


第四部分:PPP 帧格式(★★★★★)

终于来了。

教材:

就是:

这一张图。

先别怕。

我们慢慢拆。

markdown 复制代码
+------+------+----------+------+------+
|Flag |地址 | 控制 | 数据 | FCS | Flag |
+------+------+----------+------+------+

是不是:

很多东西?

其实:

考试:

重点:

只有几个。


第一部分:Flag

也叫:

标志字段。

值:

固定:

markdown 复制代码
01111110

★★★★★

这是:

考试:

必考。

作用:

告诉:

接收端:

markdown 复制代码
这里开始

这里结束

例如:

markdown 复制代码
01111110

数据

01111110

是不是:

边界:

非常清楚?


第二部分:Address(地址)

很多学生:

会问。

PPP:

不是:

只有:

两台机器?

为什么:

还有地址?

其实:

PPP:

地址字段:

固定:

markdown 复制代码
11111111

★★★★★

不用记二进制含义,只要记住:

PPP 地址字段固定值。

教材考试一般考:

PPP 地址字段是否真正用于寻址?

答案:

不是。

因为:

只有两台设备。


第三部分:Control(控制)

控制字段:

固定:

markdown 复制代码
00000011

也是:

固定值。

考试:

知道:

存在即可。


第四部分:Data(数据)

这里:

才是真正的数据。

例如:

markdown 复制代码
Hello

或者:

IP数据包。


第五部分:FCS

是不是:

上一课:

学过?

这里:

就是:

CRC校验值。

放在:

尾部。


第五部分:PPP 帧完整结构(★★★★★)

一定会画。

markdown 复制代码
┌────┬────┬────┬────────┬────┬────┐
│Flag│Addr│Ctrl│ Data   │FCS │Flag│
└────┴────┴────┴────────┴────┴────┘

考试:

可能:

让你:

填空。


第六部分:为什么 Flag 会冲突?

假设:

规定:

Flag:

markdown 复制代码
01111110

但是:

数据:

刚好:

也是:

markdown 复制代码
01111110

例如:

markdown 复制代码
Flag

数据

Flag

01111110

01111110

01111110

接收端:

还能分清吗?

不能。


怎么办?

答案:

比特填充。

是不是:

上一课:

学过?

终于:

串起来了。


第七部分:PPP 比特填充(★★★★★)

规则:

★★★★★

连续出现5个1,就自动插入1个0。

例如:

数据:

markdown 复制代码
01111110

发送:

变成:

markdown 复制代码
011111010

接收:

删除:

那个:

0。

恢复。

原数据。

口诀:

五个1,插个0。


第八部分:PPP 工作流程

来看整个过程。

markdown 复制代码
应用层数据

↓

网络层数据包(IP数据报)

↓

PPP封装

↓

加入Flag

↓

加入FCS

↓

比特填充

↓

发送

↓

接收

↓

去填充

↓

是不是:

整个过程:

已经非常完整?


第九部分:PPP 为什么应用广?

以前:

家庭宽带:

拨号上网。

ADSL。

很多:

都是:

PPP。

后来:

又出现:

PPPoE。

(PPP over Ethernet)

就是:

PPP:

跑在:

以太网上。

考试:

了解即可。


第十部分:PPP 总结(★★★★★)

markdown 复制代码
PPP协议
│
├── 点对点协议
│
├── Flag = 01111110
│
├── CRC(FCS)
│
├── 比特填充
│      └── 五个1插个0
│
└── 差错检测,不负责纠错

加粗样式

第三章 Lesson 23 滑动窗口协议(★★★★★)

考试重要程度:

⭐⭐⭐⭐⭐


第一部分:为什么需要滑动窗口?

先举个例子。

假设:

老师发试卷。

有100张。

老师有两种发法。


第一种:一张一张发

markdown 复制代码
老师 → 第1张

学生:

收到。

↓

老师:

发第2张。

↓

学生:

收到。

↓

老师:

发第3张......

有没有问题?

当然有。

效率太低。

因为:

老师一直在等。


网络也是一样。

假设:

电脑A发送数据。

markdown 复制代码
A

↓

发送1

↓

等待

↓

收到确认

↓

发送2

↓

等待......

这样:

线路大部分时间都在等待。

速度非常慢。


所以:

科学家想出了一个办法。

一次发送很多个数据。

例如:

markdown 复制代码
1

2

3

4

一起发。

是不是快很多?

这就是:

滑动窗口。


第二部分:什么是滑动窗口?

一句话:

允许发送方连续发送多个数据,而不用每发送一个就等待确认。

★★★★★

这是考试最喜欢考的定义。


例如:

窗口大小:

4。

那么:

发送方:

可以:

markdown 复制代码
①

②

③

④

连续发送。

不用等。


第三部分:窗口是什么?

很多学生:

第一次听:

窗口。

其实:

它不是:

电脑里的窗口。

而是:

一个:

允许发送的数据范围。

例如:

窗口大小:

4。

可以发送:

markdown 复制代码
1

2

3

4

不能发送:

markdown 复制代码
5

因为:

5:

还没进入窗口。


可以画成:

markdown 复制代码
序号:

1 2 3 4 5 6 7 8

窗口:

[1 2 3 4]

★★★★★


第四部分:什么叫"滑动"?

这是最重要的地方。

假设:

发送:

markdown 复制代码
1

2

3

4

接收方:

确认:

markdown 复制代码
ACK1

说明:

1:

已经收到。

于是:

窗口:

向前移动。

变成:

markdown 复制代码
2 3 4 5

是不是:

像滑过去一样?

所以:

叫:

滑动窗口。


动画理解:

开始:

markdown 复制代码
[1 2 3 4] 5 6 7 8

收到1确认:

markdown 复制代码
1 [2 3 4 5] 6 7 8

收到2确认:

markdown 复制代码
1 2 [3 4 5 6] 7 8

★★★★★

这张图:

考试:

经常画。


第五部分:ACK(确认)

什么叫:

ACK?

英文:

Acknowledgement(确认)

意思:

我收到了。

例如:

电脑A:

发送:

markdown 复制代码
数据1

电脑B:

收到。

回复:

markdown 复制代码
ACK1

意思:

第1个数据已经收到。


第六部分:为什么效率提高?

我们比较一下。


停止等待协议

markdown 复制代码
发送

↓

等待

↓

确认

↓

发送

↓

等待

效率:

低。


滑动窗口

markdown 复制代码
1234

一起发

↓

收到确认

↓

5678

继续发

是不是:

一直:

都有数据:

在线路上?

所以:

效率:

高很多。


第七部分:窗口大小(★★★★★)

考试:

喜欢问。

例如:

窗口:

大小:

4。

表示:

什么?

答案:

最多可以连续发送4个未确认的数据。

★★★★★

注意:

这里说的是:

未确认。

不是:

发送总数。


例如:

窗口:

4。

发送:

markdown 复制代码
1

2

3

4

还没收到确认。

不能发送:

markdown 复制代码
5

必须:

等:

至少一个ACK。


第八部分:举一个完整例子

窗口:

4。

开始:

markdown 复制代码
窗口:

[1 2 3 4]

发送:

markdown 复制代码
1

2

3

4

收到:

ACK1。

窗口:

变:

markdown 复制代码
[2 3 4 5]

发送:

markdown 复制代码
5

收到:

ACK2。

窗口:

变:

markdown 复制代码
[3 4 5 6]

发送:

markdown 复制代码
6

整个过程:

一直:

滑动。


第九部分:累计确认(★★★★★)

这一点:

很多学校:

会考。

例如:

收到:

markdown 复制代码
1

2

3

接收方:

回复:

markdown 复制代码
ACK4

什么意思?

不是:

收到4。

而是:

1、2、3都已经收到,下一次请发送4。

★★★★★

一定不要理解错。


第十部分:滑动窗口的作用

总结:

三个。

markdown 复制代码
提高线路利用率

提高发送效率

实现流量控制

★★★★★

全部:

考试:

高频。


第十一部分:停止等待 VS 滑动窗口

停止等待 滑动窗口
一次发1个 一次发多个
效率低 效率高
简单 稍复杂

第十二部分:本课总结(★★★★★)

markdown 复制代码
滑动窗口
│
├── 连续发送多个数据
│
├── ACK确认
│
├── 窗口不断前移
│
├── 提高效率
│
└── 实现流量控制
相关推荐
肠畔码农4 小时前
Redis 主从复制内核深潜:从物理模型到全量增量同步的本质
网络·redis·php
CDN3605 小时前
360CDN发布HTTP/3(QUIC)弱网加速方案:实测首屏提速40%,彻底终结移动端接口超时与频繁断连
网络·网络协议·http
zyf1044165 小时前
暑期实践日志 Day33:整体复盘核查视频,完善剪辑成果
学习·计算机网络·剪辑·暑期实践·课题任务
随风而飘1865 小时前
安立(Anritsu)MT8820C无线综合测试仪(手机综测仪)
网络·功能测试·测试工具·5g·智能手机
SWAGGY..5 小时前
【C++ 初阶】:(12)深入理解C++ stack:容器适配器、底层容器与算法实战
网络·网络协议·rpc
嵌入式阿蔡6 小时前
项目实战 02:智能家居环境网关——ESP32 做 BLE 中心 + 本地联动
网络·单片机·嵌入式硬件·esp32·智能家居·嵌入式实时数据库
Doraemomo6 小时前
Linux编程-socket网络编程之TCP
linux·网络·tcp/ip
猫咪宝妖6 小时前
信息安全工程师-网络信息安全
网络
Brilliantwxx6 小时前
【Linux】 进程(3)深度解析:从查看进程到进程状态
linux·服务器·网络·c++