写在前面

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

1.可靠连接

1.1 TCP

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

tcp为什么可靠?

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

丢失情况

重复情况

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

这问题又来了,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滑动窗口的学习会很有帮助,由于时间原因,博主暂时写到这里,后期来更新【这次一定,ε=ε=ε=┏(゜ロ゜;)┛】

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

【复盘指南-计算机网络】你真的搞懂传输层了吗相关推荐

  1. inputstream重新赋值之前需要close吗_变量提升真的搞懂了吗?打脸的一道题

    变量提升真的搞懂了吗?打脸的一道题 我们知道JS代码在执行之前,会做一系列的事情,其中就包括变量提升,原本以为把变量提升搞懂的我(因为这两天一直在研究变量提升,自我感觉已经很良好了,哈哈哈),拿到了一 ...

  2. 计算机网络实验五——应用层和传输层协议分析

    计算机网络实验五--应用层和传输层协议分析 一.实验目的 二.实验内容 三.实验步骤 (一)任务1: 从 PC 使用 URL 捕获 Web 请求 1.配置Packet Tracer文件 2.使用URL ...

  3. 【计算机网络】第五部分 传输层(24) 拥塞控制和服务质量

    文章目录 24.1 数据通信量 24.1.1 通信量描述符 1. 平均数据速率 2. 峰值数据速率 3. 最大突发长度 4. 有效带宽 24.1.2 通信量特征值 1. 恒定比特率 2. 可变比特率 ...

  4. tcp协议的主要功能是什么_计算机网络 | 一文搞懂什么是TCP/IP协议

    什么是TCP/IP协议? 计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件, ...

  5. 计算机网络 | 一文搞懂什么是TCP/IP协议

    什么是TCP/IP协议? 计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件, ...

  6. 五天带你学完《计算机网络》·第三天·传输层

    文章目录 一.传输层的功能✪✪ 二.端口 三.UDP✪✪ 四.TCP✪✪✪✪ 概述 可靠传输工作原理 两个协议 TCP报文段 流量控制,拥塞控制,运输连接管理✪✪✪✪ 前些天发现了一个巨牛的人工智能学 ...

  7. (王道考研计算机网络)第五章传输层-第一节:传输层概述、功能和端口

    指导获取:密码7281 专栏目录首页:[专栏必读]王道考研408计算机网络+湖科大教书匠计算机网络+网络编程万字笔记.题目题型总结.注意事项.目录导航和思维导图 王道考研408计算机组成原理万字笔记 ...

  8. 计算机网络:第五章 传输层

    5.1 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层. 从通信和信息处理的角度看,运输层向它上面的应用层提供通信 ...

  9. 计算机网络——第三章、传输层

    一.传输层概述 概述 传输层协议为不同主机上的应用进程之间提供了逻辑通信. 传输层协议是在端系统中而不是在路由器中实现的.在发送端,传输层将从发送应用程序进程接收到的报文转换成传输层分组,称为传输层报 ...

最新文章

  1. Spring为什么建议使用构造器来注入?
  2. 硬盘最多能分几个区?
  3. 在iOS中求数组元素中最大数与最小数
  4. 通过设计绿色数据中心寻求循环经济
  5. python中什么可变_Python中的可变类型与不可变类型
  6. 回归测试——游戏版本发布前的最后关口
  7. linux 管道文件上机总结,[转载]LINUX 管道 fifo 等总结
  8. 【Kotlin】我的第一个 Kotlin 程序
  9. 硬件?软件?视频会议系统中两者有何区别?
  10. windows服务器新建管理员用户_用户和组管理
  11. 在firefox中backspace返回键不能回到之前的页面
  12. 微软官方推出的win10安装或者创建安装u盘的工具
  13. paip.win7 减肥记
  14. vb.net 设置打印纸张与页边距_机关公文格式设置规范(最新整理版)
  15. 扫雷游戏网页版_《我的世界》简单的两款小游戏 带你回味和同学在电脑课上的时光...
  16. Unity3d import package 无标准资源包
  17. 2022年6月青少年软件编程(图形化) 等级考试试卷(一级)
  18. 哈工大计算机研究生到抖音,抖音一家12口全是硕博引围观,本人谈心得:学霸养成就靠这三点...
  19. 【Beta】 第七次Daily Scrum Meeting
  20. 华为6个月试用期经历

热门文章

  1. 【CTF】BugkuCTF - 分析 - 抓到一只苍蝇
  2. 苍蝇的下场——金庸人物之招式应对
  3. 用bs4和requests库,抓取nga舰队Collection萌战玩家投票
  4. android 实例-个人理财工具,Android 个人理财工具六:显示账单明细 下
  5. python之父北京尚学堂_北京尚学堂 - 主页
  6. STAR原则:挖掘闪光点
  7. 零基础创作专业wordpress网站05-将主页面设置为主页
  8. 该收收心,静下心来苦作舟
  9. 未雨绸缪:理解软件配置管理(第2版)
  10. 【测开方法论】未雨绸缪