文档章节

TCP 可靠传输的工作原理

秋风醉了
 秋风醉了
发布于 2015/07/29 16:14
字数 1039
阅读 239
收藏 1

TCP 可靠传输的工作原理

ARQ(Automatic Repeat-reQuest)(自动重传请求)

  • 停止等待ARQ协议

  • 连续ARQ协议

 

停止等待ARQ协议

全双工通信的双发既是发送方也是接收方。下面为了讨论问题的方便,我们仅考虑A发送数据而B接受数据并发送确认。因此A就做发送方,B叫做接收方。因为这里是讨论可靠传输的原理,因此把传送的数据单元都称为分组,而并不考虑数据在哪一层次上传送的。停止等待就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后在发送下一个分组。

1.无差错情况

2.出现差错情况值超时重传

超时自动重传分组

  • 在发送完一个分组后,必须暂时保留已发送的分组的副本。

  • 分组和确认分组都必须进行编号。

  • 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些。

 

3.确认丢失和确认迟到

分组确认

使用上述的重传和确认机制,我们可以在不可靠的传输网络上实现可靠的通信。

重传和确认机制

像上述这种可靠传输协议常称为自动重传请求ARQ (Automatic Repeat reQuest),ARQ 表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组 。

 

流水线传输

  • 发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的认。

  • 由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率。 

当使用流水线传输时,就要使用下面介绍的连续ARQ协议和滑动窗口协议。

 

连续 ARQ 协议 

下图表示发送方维持的发送窗口,他的意义是:位于发送窗口内的5个分组都可以连续发送出去,而不需 要等待对方的确认。这样信道利用率就提高了。

发送窗口是5 

连续ARQ协议规定,发送方每接收到一个确认,就把发送窗口向前滑动一个分组的位置。下图表示发送方收到了第一个分组的确认,于是把发送窗口向前移动一个分组的位置。

如果原来已经发送了前5个分组,那么现在就可以发送窗口内的第六个分组。

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

 

累积确认

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

  • 累积确认有的优点是:容易实现,即使确认丢失也不必重传。缺点是:不能向发送方反映出接收方已经正确收到的所有分组的信息。

 

Go-back-N(回退 N)

  • 如果发送方发送了前 5 个分组,而中间的第 3 个分组丢失了。这时接收方只能对前两个分组发出确认。发送方无法知道后面三个分组的下落,而只好把后面的三个分组都再重传一次。

  • 这就叫做 Go-back-N(回退 N),表示需要再退回来重传已发送过的 N 个分组。

  • 可见当通信线路质量不好时,连续 ARQ 协议会带来负面的影响。 

================END================

© 著作权归作者所有

共有 人打赏支持
秋风醉了
粉丝 246
博文 543
码字总数 412294
作品 0
朝阳
程序员
私信 提问
TCP/IP学习笔记(8)-tcp协议

终于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读。 简要介绍 TCP和UDP处在同一层---传输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,...

linuxprobe16
2018/10/14
0
0
计算机网络之运输层

1 运输层的功能 1.1 进程之间的通信 从通信和信息处理的角度看,运输层向应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最底层 当网络的边缘部分中的两个主机使用网络的...

芥末无疆sss
2017/12/13
0
0
netmon工作原理

参考文献: netmon中解析非1433端口的TDS协议 TDS的解析 在前面一篇博客netmon中解析非1433端口的TDS协议中我们提到了netmon如何去解析非1433端口的TDS。我们是通过在tcp.npl这个文件中添加命...

嗯哼9925
2017/12/27
0
0
TCP/IP学习(9)-TCP协议概述

TCP和UDP处在同一层--运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通...

qq_32998153
2018/03/15
0
0
ude协议—基于udp的全双工可靠传输协议

ude是一款基于udp的可靠传输协议,专门用于在数据传输方面对实时性要求较高的应用领域。 tcp协议虽然能保证数据的可靠传输,但它有以下几个缺点:1.tcp的数据确认机制会导致发送方重复发送一...

烟都大宗师
2017/10/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Coding and Paper Letter(六十四)

资源整理。 1 Coding: 1.交互式瓦片编辑器。 tile playground 2.R语言包autokeras,autokeras的R接口。autokeras是一个开源的自动机器学习的软件。 autokeras 3.斯坦福网络分析平台,用于网络...

胖胖雕
36分钟前
0
0
最简单的cd命令是个大坑!

BASH Shell 是大多 Linux 发行版的默认 shell,BASH 有一些自己的内置命令,cd 就是其中的一个。 在centos6里面,系统中不存在 cd 的二进制文件。但是你仍然可以运行该命令,这是因为 cd 是 ...

gaolongquan
47分钟前
1
0
spring获取bean的几种方式

使用jdk:1.8、maven:3.3.3 spring获取Bean的方式 pom.xml文件内容: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="......

Vincent-Duan
54分钟前
2
0
一段话系列-Linux中IO的同步、异步、阻塞、非阻塞

首先我们框定一下背景,我们探讨的是Linux系统下的IO模型。 同步和异步是针对内核操作数据而言的,同步是指内核串行顺序操作数据,异步是指内核并行(或并发)操作数据,然后通过回调的方式通...

EasyProgramming
58分钟前
5
0
好程序员web前端分享主流CSS image比较

好程序员web前端分享主流CSS image比较在还原设计图的时候,难免会碰到一些样式图片的引用。如何来对这些图片做优化呢?本文简单的梳理了一下目前几种比较常用的使用方式。   注: 1. 有更好...

好程序员IT
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部