TCP可靠传输的保证
我们知道传输层提供最主要的两种协议,TCP和UDP,其中TCP是保证可靠传输,为什么他要保证可靠传输呢,IP说:当然是我不能,我只提供尽力而为的服务,不保证你能不能交付,不保证能不能正确的交付,不保证能不能按顺序交付。要不然干嘛要你保证呢。说的好有道理,我呵呵一笑。
那么可靠数据传输到底能保证什么呢?
1.不错:就是传输的数据包没有错误
2.不丢:传输的数据包不丢失
3.不乱:传输的数据包顺序要保持正确的交付。
可靠传输协议凭什么能做出这样的保证呢?
1.差错检测:TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。
2.超时重发和确认机制:当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。
3.缓存机制:每个分组都会有一个序列号,对于后一个序列号分组先到的情况,接收端会先进行缓存,等待前一个序列号到达,然后一起交付上层。
重点讲一下流水线可靠传输协议,其实也就是滑动窗问题。
对于使用流水线可靠传输协议,如果出现丢包,损坏或超时会有哪些方法来解决呢?两种方法:回退N步(Go-Back-N,GBN)和选择重传(Selective Repeat,SR)
GBN协议
发送端维持这一个长度为N的滑动窗口,你也可以理解为一个数组。
1.窗口里含有发送但是没收到确认的分组,以及剩下可用的坑位,如果有可用的坑位,上层需要发送数据,则直接发送,否者缓存或返回给上层。
2.接收端实行累积确认,也就是说当接收端传送的确认号为100,也就是前面的序号都是收到了,
3.如果超时未收到确认,发送端会重传所有发送但未确认的分组。只有一个定时器,用来记录窗口的最前端,也就是最早发送的分组。
4.因为此协议是使用的累积确认,所以所有为按序到达的分组都会被丢弃。
选择重传
1.发送端和接收端都会维持一个窗口,大小为N。
2.接收端每收到一个分组就会发送一个确认,并且会缓存不是按序到达的分组
3.发送端会标记已经被确认的分组,当窗口第一个值被确认后,窗口向后滑动。每一个分组为此自己的定时器。
4.当一个分组超时了,只会重传超时的分组。
窗口长度必须小于或等于序号空间大小的一半。
TCP的可靠传输协议是GBN和SR的混合的
1.他是基于累积确认的,
2.但是他是可以缓存的,不会丢弃乱序的分组,
3.只有一个定时器,记录发送端窗口的第一个未确认的分组的时间,超时发送第一个分组。
TCP可靠传输的保证的更多相关文章
- TCP可靠传输的实现
TCP可靠传输的实现 1.概述 为方便描述可靠传输原理,假定数据传输只在一个方向上进行,即A发送数据,B给出确认 2.以字节为单位的滑动窗口 TCP的滑动窗口是以字节为单位的.为了 ...
- 计算机网络概述 传输层 TCP可靠传输的实现
TCP可靠传输的实现 TCP的可靠性表现在:它向应用层提供的数据是 无差错的.有序的.无丢失的,简单的说就是:TCP最终递交给应用层的数据和发送者发送的数据是一模一样的. TCP采用了流量控制.拥塞控 ...
- TCP可靠传输的工作原理
TCP可靠传输的工作原理 一.停止等待协议 1.1.简介 在发送完一个分组后,必须暂时保留已发送的分组的副本. 分组和确认分组都必须进行编号. 超时计时器的重传时间应当比数据在分组传输的平均往返时间更 ...
- TCP可靠传输
1. TCP 可靠性如何保证? 信道可靠:用三次握手.四次挥手保证连接正确: 数据正确:分区编号.校验和.超时重传: 传输控制:流量控制.拥塞控制 2. 重传机制 TCP可靠传输方式是序列号与确认应答 ...
- 计算机网络(9)-----TCP可靠传输的实现
TCP可靠传输的实现 以字节为单位的滑动窗口 滑动窗口的滑动是以字节为单位的,发送方A和接收方B在TCP三次握手的前两次握手时协商好了发送窗口和接受窗口的大小,发送方A根据B发送来的确认连接报文中标明 ...
- TCP可靠传输及流量控制实现原理
一.为什么TCP是可靠传输? 1. 停止等待协议 通过确认与超时重传机制实现可靠传输 在发送完一个分组后,必须暂时保留已发送的分组的副本. 分组和确认分组都必须进行编号. 超时计时器的重传时间应当比数 ...
- 运输层6——TCP可靠传输的实现
目录 1. 以字节为单位的滑动窗口 2. 超时重传时间的选择 写在前面:本文章是针对<计算机网络第七版>的学习笔记 运输层1--运输层协议概述 运输层2--用户数据报协议UDP 运输层3- ...
- TCP 可靠传输与流量控制的实现
TCP 可靠传输与流量控制的实现 一.TCP可靠传输的实现 现在所讲的可靠传输是根据之前所说的可靠传输原理的实现,是现实中应用的技术. 1.1.以字节为单位的滑动窗口 如图A端一份文件分为了多个字节, ...
- TCP可靠传输原理
停止等待协议 "停止等待"就是发送方在发送完一个分组后停止发送,等待接收方的确认后再继续发送. 超时重传 发送方在等待一定时间后如果还没有收到接收方的确认,此时发送方将认定分组没有 ...
- 计算机网络传输层之TCP可靠传输
文章转自:https://blog.csdn.net/weixin_43914604/article/details/105524592 学习课程:<2019王道考研计算机网络> 学习目的 ...
随机推荐
- [奶奶看了都会]ChatGPT接入企业微信成为聊天机器人
1.聊天效果 上次给大家讲了ChatGPT接入个人微信的方法,但是个人微信容易被封号.这次就教大家接入企业微信,不会再被封号哦~ 话不多说,直接看机器人的聊天效果.基本能实现ChatGPT的聊天效果了 ...
- shell find 根据时间获取文件列表
根据时间得到文件,可以使用find进行查找,支持查找: find以时间为条件查找可用选项: -amin n:查找n分钟以前被访问过的所有文件. -atime n:查找n天以前被访问过的所有文件. -c ...
- 洛谷P3046 海底高铁 巧用差分统计经过区间次数
洛谷P3046 海底高铁 -差分统计经过区间次数 题目贴在这里P3406 海底高铁 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 分析 本题题干很长,但是题意理解很简单.就是给定n ...
- 欢迎加入 DotNet NB 交流学习群
目录 起因 创建群组 群成员 技术交流 社区推广 社区前辈 欢迎加入 起因 自从2019年参加 .NET Conf China 大会之后,我创办了一个公众号 DotNet NB,内容主要是 关于 .N ...
- CF1834
A 给出一个由 \(1,-1\) 组成的序列.一次操作可以让一个数变相反. 要多少次操作,才能让整个序列和非负且积等于 \(1\). 大 氵题. B 定义两个数 \(A,B\) 有一个价值:每一位上的 ...
- 计网学习笔记四 Bridge && Switch
在前面的学习中,我们学习了MAC和LAN.在一个LAN里可以通信是很不错的,我们可以用一些东西让它变得更加不错!那就是我们接下来学习的网桥和交换机,其中包括了一点802.1D机制. Bridge 网桥 ...
- NC25084 [USACO 2006 Nov S]Bad Hair Day
题目 题目描述 Some of Farmer John's N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow is s ...
- 解密C语言选择结构:掌握条件语句与分支逻辑的利器
欢迎大家来到贝蒂大讲堂 养成好习惯,先赞后看哦~ 所属专栏:C语言学习 贝蒂的主页:Betty's blog 引言 C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构.选择结构.循环结构.为什么有 ...
- golang获取windows版本和详细信息
场景: 将木马丢到感染机运行后回连时希望返回感染机的操作系统信息.golang 可以通过runtime.OS获取到操作系统类型,但是无法获取详细的版本信息,如win7 win10等, 解决方案; 下面 ...
- 【Android逆向】破解看雪 test1.apk
1. 获取apk,并安装至手机 apk 获取地址: https://www.kanxue.com/work-task_read-800624.htm adb install -t test1.apk ...