【复盘指南-计算机网络】你真的搞懂传输层了吗
写在前面
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滑动窗口的学习会很有帮助,由于时间原因,博主暂时写到这里,后期来更新【这次一定,ε=ε=ε=┏(゜ロ゜;)┛】
如果错误,欢迎大家指针。
【复盘指南-计算机网络】你真的搞懂传输层了吗相关推荐
- inputstream重新赋值之前需要close吗_变量提升真的搞懂了吗?打脸的一道题
变量提升真的搞懂了吗?打脸的一道题 我们知道JS代码在执行之前,会做一系列的事情,其中就包括变量提升,原本以为把变量提升搞懂的我(因为这两天一直在研究变量提升,自我感觉已经很良好了,哈哈哈),拿到了一 ...
- 计算机网络实验五——应用层和传输层协议分析
计算机网络实验五--应用层和传输层协议分析 一.实验目的 二.实验内容 三.实验步骤 (一)任务1: 从 PC 使用 URL 捕获 Web 请求 1.配置Packet Tracer文件 2.使用URL ...
- 【计算机网络】第五部分 传输层(24) 拥塞控制和服务质量
文章目录 24.1 数据通信量 24.1.1 通信量描述符 1. 平均数据速率 2. 峰值数据速率 3. 最大突发长度 4. 有效带宽 24.1.2 通信量特征值 1. 恒定比特率 2. 可变比特率 ...
- tcp协议的主要功能是什么_计算机网络 | 一文搞懂什么是TCP/IP协议
什么是TCP/IP协议? 计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件, ...
- 计算机网络 | 一文搞懂什么是TCP/IP协议
什么是TCP/IP协议? 计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件, ...
- 五天带你学完《计算机网络》·第三天·传输层
文章目录 一.传输层的功能✪✪ 二.端口 三.UDP✪✪ 四.TCP✪✪✪✪ 概述 可靠传输工作原理 两个协议 TCP报文段 流量控制,拥塞控制,运输连接管理✪✪✪✪ 前些天发现了一个巨牛的人工智能学 ...
- (王道考研计算机网络)第五章传输层-第一节:传输层概述、功能和端口
指导获取:密码7281 专栏目录首页:[专栏必读]王道考研408计算机网络+湖科大教书匠计算机网络+网络编程万字笔记.题目题型总结.注意事项.目录导航和思维导图 王道考研408计算机组成原理万字笔记 ...
- 计算机网络:第五章 传输层
5.1 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层. 从通信和信息处理的角度看,运输层向它上面的应用层提供通信 ...
- 计算机网络——第三章、传输层
一.传输层概述 概述 传输层协议为不同主机上的应用进程之间提供了逻辑通信. 传输层协议是在端系统中而不是在路由器中实现的.在发送端,传输层将从发送应用程序进程接收到的报文转换成传输层分组,称为传输层报 ...
最新文章
- Spring为什么建议使用构造器来注入?
- 硬盘最多能分几个区?
- 在iOS中求数组元素中最大数与最小数
- 通过设计绿色数据中心寻求循环经济
- python中什么可变_Python中的可变类型与不可变类型
- 回归测试——游戏版本发布前的最后关口
- linux 管道文件上机总结,[转载]LINUX 管道 fifo 等总结
- 【Kotlin】我的第一个 Kotlin 程序
- 硬件?软件?视频会议系统中两者有何区别?
- windows服务器新建管理员用户_用户和组管理
- 在firefox中backspace返回键不能回到之前的页面
- 微软官方推出的win10安装或者创建安装u盘的工具
- paip.win7 减肥记
- vb.net 设置打印纸张与页边距_机关公文格式设置规范(最新整理版)
- 扫雷游戏网页版_《我的世界》简单的两款小游戏 带你回味和同学在电脑课上的时光...
- Unity3d import package 无标准资源包
- 2022年6月青少年软件编程(图形化) 等级考试试卷(一级)
- 哈工大计算机研究生到抖音,抖音一家12口全是硕博引围观,本人谈心得:学霸养成就靠这三点...
- 【Beta】 第七次Daily Scrum Meeting
- 华为6个月试用期经历