IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 【复盘指南-计算机网络】你真的搞懂传输层了吗 -> 正文阅读

[网络协议]【复盘指南-计算机网络】你真的搞懂传输层了吗

写在前面

hello~,周更小博主又来了(纯属是懒 ε=ε=ε=┏(゜ロ゜;)┛),本篇文章带领大家一起来看看传输层相关的知识。

1.可靠连接

1.1 TCP

都说tcp是面向连接的可靠的协议,那么为什么可靠呢?

tcp为什么可靠?

因为tcp保证了用户发送的数据的完整性、顺序性。你想想,如果传来的数据是乱序的,那么接受方收到的数据不就和发送方不一致嘛,哪能管这叫可靠?
乱序情况
11
丢失情况
在这里插入图片描述
重复情况
11

(比较抽象,画个简单的图,好丑ε=ε=ε=┏(゜ロ゜;)┛)

这问题又来了,tcp怎么保证数据的可靠呢?咳咳,我这就来解惑(认真脸)

你想想,要想发来的数据有顺序,那我要标识一下数据吧,你是你,他是他… 聪明的你一定想到了,排个序号呗。这不就分了先来后到。排完序号后,让接收方响应这个序号,那发送方就知道对方已经接受到刚才发送的数据啦,这就是ACK机制

好了,发来的数据已经有序了,那么当我们发现某个数据丢失的时候,是不是可以通过呼叫这个序号,告知发送方,再给我传一次呗。这就是ARQ(自动重传机制)

好了好了,到最后了,那收到重复的数据怎么办啊,不理不就行了。(笑)

下面让我们来看看这两种机制:

1.11 ACK

在这里插入图片描述(对不起,大家,我是真的讨厌画图…,就这样了…)

文字描述下:

sender 首先发送自己的数据的序号
reciver收到,并给予响应
sender得知自己发送的数据已经接受,接着可以发送下一个数据。

1.12 ARQ

在这里插入图片描述
文字描述下:
sender 首先发送自己的数据的序号
reciver收到,并给予响应ishi
sender得知自己发送的数据已经接受,接着可以发送下一个数据。
如果某个数据在发送过程中丢失,那么sender在设定的时间内没有收到对方的响应。就要重新发送一次改数据

思考下:
当ACK丢失了怎么办?或者ACK延时了怎么办?

好了好了,了解了上面两个机制,等于踏入了TCP实现可靠传输的大门。接下来我们继续来探索Tcp。

通过上图,大家能看出来,这样发送数据效率不高,发一次等一次,体验效果也不好。如果我们连续的发送数据,先不管对方的响应。这样行不行呢,那当然是可以的~
这其实就是流水线机制,常见的就是滑动窗口

1.13流水线机制

先看个窗口
这里我们假设窗口大小是4,也就是一次能发送4个数据(其实应该是报文段…)
在这里插入图片描述
那么流水线机制的工作原理是什么呢?

就是在窗口的范围内,不断发送数据,当收到一个响应的时候,窗口就想右边移动一格。这样效率不久提升上来了。

这只是简单的介绍了一下它的工作原理,实现呢,比这发杂的多…

流水线机制分为2种形式:

1.GBN(Go-Back-N)

先简单的介绍一下,GBN就是回退N的意思,其实这里主要是指重传已发却没有受到确认的N个分组。

这样讲,大家可能不是很明白,那么再补充一个概念:累积确认

累计确认:对按序到达的最后一个分组发送确认,表示到这个分组为止,所有的分组都已经接收到了。

其实这样做,也是为了提升效率,不用发一个回应一个。当然了,也不能一直推迟这不发送确认号,通常也设定了一个时间,超过这个时间,就要把自己已经收到的数据给响应下.(针对于接收方而言)

老环节,看图…(我恨画图)
在这里插入图片描述

移动移动
在这里插入图片描述
这里,博主只是简单的画了一下,实际情况可能不是图上这样的,比如ack=3,这里只是为了方便大家理解。

问题来了,当有个分组丢失了咋办?
在这里插入图片描述
图中pk4丢失了,那么我们的处理方法:

利用超时时间解决,一定时间内,一直收不到ACK=PK4,那么重传PK4

不知道大家注意到没,当收到pk5、pk6的时候,接收方并没有进行确认,而是直接丢弃这两个数据。那么当pk4重传的时候,pk5和pk6也要进行重传
这就是GBN的实现,当某个分组丢失的时候,需要重传改分组以及所有发送但是没有得到确认的分组

2. SR(select repeat)

SR看着这个英文,大家应该就能想到它的意思,选择重传。结合上面的GBN,大家是不是想到了什么?
每次,SR就是仅重传丢失的数据,而那么乱序到达的数据,SR机制会先缓存起来,并给予响应。

但是接收窗口是不会向前移动的,需要接收到这个丢失的数据,才会移动。

了解这些,对于接下来的tcp滑动窗口的学习会很有帮助,由于时间原因,博主暂时写到这里,后期来更新【这次一定,ε=ε=ε=┏(゜ロ゜;)┛】

如果错误,欢迎大家指针。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:40:35  更:2022-04-15 00:45:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:28:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码