累积确认方式:

接收方一般采用累积确认的方式。即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到了。

优点:容易实现,即使确认丢失也不必重传。

缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息。

以字节为单位的滑动窗口

设发送方是A,接收方是B。

在没有收到B的确认情况下,A可以连续把窗口内的数据都发送出去。凡是 已发送过的数据,在未收到确认之前都必须暂时保留,以便在超时重传时使用。

A的发送窗口一定不能超过B的接收窗口数值。

发送方的发送窗口大小还要受到当时网络拥塞程度的制约。

发送窗口后沿的后面部分表示已发送且已收到了确认。不需要再保留这些数据了。 发送窗口后沿不可能向后移动,因为不能撤销已收到的确认。发送窗口前沿通常是不断向前移动的,但也有可能不动,这对应于2种情况:①没有收到新的确认;②收到了新确认,但对方通知的窗口缩小了,使得发送窗口前沿正好不动。

TCP标准强烈不赞成发送窗口向后收缩。

A发送的数据若没有得到B的确认,为了保证可靠传输,A只能认为B还没有收到这些数据。则,A经过一段时间(由超时计时器来控制的)就重传这部分数据 , 重置超时计时器,直到B的确认为止。如果A收到的确认号落在发送窗口内,那么A就可以使发送窗口继续向前滑动,并发送新的数据。

如果收到的分组被检测出有差错,则要丢弃。若接收应用程序来不及读取收到的数据,接收缓存最终会被填满,使得接收窗口减小到零。反之,若接收应用程序能够及时从接收缓存中读取收到的数据,接收窗口就可以增大,但最大不能超过接收缓存的大小。

由以上所讨论,还要强调以下3点:

一、虽然A的发送窗口是根据B的接收窗口设置的,但于同一时刻,A的发送窗口并不总与B之接收窗口一致大。这是因为通过网络传送窗口值需要经历一定时间滞后(这个时间还是不确定的)。另外,发送方A还可能根据网络当时的拥塞情况适当减小自己的发送窗口数值。

二、对于不按序到达的数据应如何处理,TCP标准并无明确规定。 通常为了提高网络资源的利用率,TCP对不按序到达的数据是先临时存放在接收窗口中,等到字节流中所缺少的字节收到以后,再按序交付上层应用程序

三、TCP要求接收方必须有累积确认的功能,这样可以减小传输开销。接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便 捎带。但请注意两点:一是接收方不应过分推迟发送确认,否则会导致 发送方不必要的重传,这反而浪费了网络资源。TCP标准规定,确认推迟的时间不超过0.5秒。若收到一连串具有最大长度的报文段,则必须每隔一个报文段就发送一个确认[RFC 1122]。二是捎带确认实际上并不经常发生,因为大多数应用程序很少同时在两个方向上发送数据。

最后再强调一下,TCP的通信是全双工通信。通信中的每一方都在发送和接收报文段。因此,每一方都有自己的发送窗口和接收窗口。在谈到这些窗口时,须一定要弄清楚是哪一方的窗口。

TCP的可靠传输実现相关推荐

  1. TCP的可靠传输机制

    TCP 的可靠传输机制是基于连续 ARQ 协议和滑动窗口协议的. 发送窗口的大小是变化的,它是由接收窗口剩余大小和网络中拥塞程度来决定的,TCP 就是通过控制发送窗口的长度来控制报文段的发送速率. 自 ...

  2. TCP实现可靠传输的实现

    TCP实现可靠传输的实现 目录 TCP实现可靠传输的实现 ARQ协议 停止等待协议(古老) 连续ARQ协议 累计重传(回退N帧的ARQ协议) 缓存确认(选择重传ARQ协议) 超时重传的时间选择 TCP ...

  3. TCP提供可靠传输的工作原理和实现过程

    TCP发送的报文段是交给IP层传送的,但IP层只能提供尽最大努力交付的服务,也就是说,TCP下面的网络所提供的是不可靠的传输.因此,TCP采用了一些适当的措施来提供可靠的传输,使得两个传输层直接的通信 ...

  4. 被问到TCP的可靠传输和提高网络利用率?

    前面讲到的TCP和UDP,在TCP的特性里面知道,他是有连接的,连接管理也是和可靠性是有一定关系的,那么他是如何建立连接,又是如何断开连接的呢? 1. 确认应答(ACK)机制 因为我TCP是面向字节流 ...

  5. TCP的可靠传输-停止等待协议

    TCP是可靠的传输协议,停止等待协议是保证TCP可靠传输的其中一种措施 正常传输 正常的TCP通信是这样的: 分析:在正常传输时,发送端发每发送一段数据,接受端就要确认一下并给出答复(就像你给喜欢的人 ...

  6. TCP 是一个可靠传输的协议,那我们来重点介绍 TCP 的重传机制、滑动窗口、流量控制、拥塞控制。

    TCP 巨复杂,它为了保证可靠性,用了巨多的机制来保证,真是个「伟大」的协议,写着写着发现这水太深了... 本文的全部图片都是小林绘画的,非常的辛苦且累,不废话了,直接进入正文,Go! 相信大家都知道 ...

  7. 【计算机网络】传输层 : TCP 可靠传输 ( 可靠传输机制 | 快速重传机制 )

    文章目录 一.TCP 可靠传输 二.TCP 可靠传输机制 三.TCP 快速重传 机制 一.TCP 可靠传输 可靠性 : 保证 接收方进程 从 TCP 缓冲区 中读取的数据 与 发送方进程 发送的数据 ...

  8. 网络基础2-3(TCP协议,三次握手,四次挥手,TIME_WAIT状态的作用,TCP如何保证可靠传输,TCP连接中状态转化,滑动窗口,流量控制,快速重传,拥塞窗口,延迟应答,捎带应答,粘包问题)

    TCP协议 TCP协议概念 TCP全称为 "传输控制协议(Transmission Control Protocol"). 人如其名, 要对数据的传输进行一个详细的控制 TCP协议 ...

  9. TCP/IP是如何实现可靠传输的

    1.概述 众所周知,TCP/IP是面向链接的可靠传输协议,但是问题是如何实现可靠传输的呢?在我看来,TCP/IP可靠传输的基础是滑动窗口协议和连续ARQ协议,配合着流量控制和拥塞控制,使得整个传输过程 ...

最新文章

  1. CSS里总算是有了一种简单的垂直居中布局的方法了
  2. VTK:vtkChartMatrix用法实战
  3. iOS之CocoaPods二进制化的实现方案
  4. Ubuntu安装 AndroidStudio
  5. Python【3】-字典dic和集合set
  6. 《C和指针》读书笔记
  7. requests 获取div_爬虫系列第五篇 使用requests与BeautifulSoup爬取豆瓣图书Top250
  8. python定时任务,隔月执行,隔定时执行
  9. python人工智能学习笔记_[Python] 人工智能与自然语言处理学习笔记(1)
  10. 独立成分分析(Independent Component Analysis)(ICA)(主元分解)
  11. 连接Mysql弹出2005_正确安装数据库SQL2005和安装出现的问题的解决方法
  12. triz矛盾矩阵_TRIZ—创新性问题解决理论与实务培训
  13. Pro Git读书笔记 - 分支
  14. 上反对下反对推理图_判断推理解题技巧:下反对关系的秒选技巧
  15. 苹果cms如何添加广告代码
  16. silvaco学习日记(三)--nMOS工艺仿真详细过程
  17. Pro/E产品设计之绘制齿轮的步骤
  18. 解决百度网盘限速问题
  19. SpringSecurity 使用
  20. 股票量化分析工具QTYX使用攻略代码说明——高速版本地行情源v2.5.1

热门文章

  1. 定义一个Employee类,排序
  2. 程序员这样聊天,让女神疯狂追逐你
  3. linux 触摸屏在dev的那个目录下,各硬件设备在Linux中的文件名
  4. c# 与 c++ 界面同框终极技巧
  5. python自定义异常捕获_python怎么自定义捕获错误
  6. display none的元素重新展示如何撑开页面_关于元素的浮动你了解多少
  7. 【Linux】nohup后台运行 关闭ssh 后 后台程序停止
  8. 【kafka】Number of insync replicas for partition __transaction_state-4 is below required minimum
  9. 【Elasticsearch】es 7.8.0 唐诗三百首写入 Elasticsearch 会发生什么
  10. 95-180-055-源码-Watermark-AutoMaticWatermarkContext