文章转自:https://blog.csdn.net/weixin_43914604/article/details/105524592 学习课程:<2019王道考研计算机网络> 学习目的:利用最省时间的方法学习考研面试中的计算机网络. 1.TCP可靠传输简介 2.序号 3.确认 4.重传…
TCP可靠传输的实现 1.概述      为方便描述可靠传输原理,假定数据传输只在一个方向上进行,即A发送数据,B给出确认 2.以字节为单位的滑动窗口      TCP的滑动窗口是以字节为单位的.为了便于说明,字节编号取得很小.先假定A收到B发来的确认报文字段,其中窗口是20字节,而确认号是31字节.(表明B期望接收到的下一个序号是31,序号30之前的数据已经收到了).如图所示. A的发送窗口: 发送窗口表示:在没有收到B的确认的情况下,可以连续把窗口内的数据发送出去.凡是已经发送过的数据,在未…
一.为什么TCP是可靠传输? 1. 停止等待协议 通过确认与超时重传机制实现可靠传输 在发送完一个分组后,必须暂时保留已发送的分组的副本. 分组和确认分组都必须进行编号. 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些. 出现差错或丢失的时候,发送方会将自己备份的副本再重传一次,直到收到接收的确认信息.当接收方收到重复的数据时,会直接丢弃,但是会给发送方请确认自己已经收到了. 2. 改进的停止等待协议——连续ARQ协议和滑动窗口协议 上面的停止等待协议每发送一组数据就必须等到接收…
目录 1. 以字节为单位的滑动窗口 2. 超时重传时间的选择 写在前面:本文章是针对<计算机网络第七版>的学习笔记 运输层1--运输层协议概述 运输层2--用户数据报协议UDP 运输层3--传输控制协议TCP概述 运输层4--TCP可靠运输的工作原理 运输层5--TCP报文段的首部格式 运输层6--TCP可靠传输的实现 运输层7--TCP的流量控制和拥塞控制 运输层8--TCP运输连接管理 首先为了方便解释,先假定数据传输只在一个方向上进行. 1. 以字节为单位的滑动窗口 假定A收到了B发来的…
TCP可靠传输的工作原理 一.停止等待协议 1.1.简介 在发送完一个分组后,必须暂时保留已发送的分组的副本. 分组和确认分组都必须进行编号. 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些. 1.2.确认数据包丢失和迟到 当确认M1的数据包丢失时,A经过一段超时时间后重传M1,B接收并丢弃重复的M1之后,重传确认M1数据包: 当B发送的确认M1数据包由于网络原因,绕远路了,在A端规定的超时时间内未到达A,A端就会重传M1,B接收并丢弃重复的M1之后,重传确认M1数据包,并继续通…
1. TCP 可靠性如何保证? 信道可靠:用三次握手.四次挥手保证连接正确: 数据正确:分区编号.校验和.超时重传: 传输控制:流量控制.拥塞控制 2. 重传机制 TCP可靠传输方式是序列号与确认应答.当传送数据包丢失时,会用重传机制解决.常见重传机制有超时重传.快速重传.SACK.D-SACK. 2.1 超时重传 ​TCP协议要求在发送端每发送一个报文段,就启动一个定时器并等待确认信息:接收端成功接收新数据后返回确认信息.若在定时器超时前数据未能被确认,TCP就认为报文段中的数据已丢失或损坏,…
停止等待协议 "停止等待"就是发送方在发送完一个分组后停止发送,等待接收方的确认后再继续发送. 超时重传 发送方在等待一定时间后如果还没有收到接收方的确认,此时发送方将认定分组没有送达,从而重新发送分组. TCP通过以下的方式实现超时重传: 超时计时器:每发送完一个分组后,tcp都会设置一个超时计时器.超时计时器的超时时间往往要大于报文的平均往返时间. 分组副本:发送分组后,tcp会保留分组的副本,只有收到分组的确认后才会清除 分组编号:TCP会对每一个分组编号,确认分组和发送的分组编…
TCP可靠传输的实现 以字节为单位的滑动窗口 滑动窗口的滑动是以字节为单位的,发送方A和接收方B在TCP三次握手的前两次握手时协商好了发送窗口和接受窗口的大小,发送方A根据B发送来的确认连接报文中标明的窗口的大小,来确定收到确认前的最大发送数据量,如果A接收到的B发来的确认报文中标明的窗口大小为0,则停止发送数据,直到收到不为0的确认报文,再继续发送.发送窗口表示在没有收到B的确认的情况下,A可以连续把窗口内的数据都发送出去,凡是已发送过的数据,在没有收到确认前都要暂时保留,以便超时重传时使用.…
TCP可靠传输的实现 TCP的可靠性表现在:它向应用层提供的数据是 无差错的.有序的.无丢失的,简单的说就是:TCP最终递交给应用层的数据和发送者发送的数据是一模一样的. TCP采用了流量控制.拥塞控制.连续ARQ等技术来保证它的可靠性. PS:网络层传输的数据单元为『数据报』,传输层的数据单元为『报文段』,但为了方便起见,可以统称为『分组』. 停止等待协议(ARQ协议) TCP保证其可靠性采用的是更为复杂的滑动窗口协议,但停止等待协议是它的简化版,为了方便理解,这里先介绍停止等待协议. ARQ…
TCP 可靠传输与流量控制的实现 一.TCP可靠传输的实现 现在所讲的可靠传输是根据之前所说的可靠传输原理的实现,是现实中应用的技术. 1.1.以字节为单位的滑动窗口 如图A端一份文件分为了多个字节,每个字节用带有字节号的方块表示.A需要把这份文件发个B,发送时文件先放入A的发送缓存中排队,准备发送.B中有一个接收缓存,用于存放接收到的由文件分成的多个字节数据. 通信时,B要与A建立会话(连接)(TCP是面向连接的),建立连接时B计算机要根据自己的接收缓存的大小设定合适的接收窗口,单位为字节,并…
Tcp通过校验和,重传控制,序号标识,滑动窗口.确认应答实现可靠传输 应答码:ACK TCP的滑动窗口机制       TCP这个协议是网络中使用的比较广泛,他是一个面向连接的可靠的传输协议.既然是一个可靠的传输协议就需要对数据进行确认. TCP协议里窗口机制有2种:一种是固定的窗口大小:一种是滑动的窗口. 窗口大小就是我们一次传输几个数据. 对所有数据帧按顺序赋予编号,发送方在发送过程中始终保持着一个发送窗口,只有落在发送窗口内的帧才允许被发送: 同时接收方也维持着一个接收窗口,只有落在接收窗…
[前言]上一篇文章介绍了关于TCP的基础知识,以及建立(释放)连接和滑动窗口的概念. 本篇文章将延续上一篇的思路,继续介绍TCP实现可靠传输的机制. 超时重传 上一篇文章里介绍过TCP采用停止等待协议,即在收到接收方的确认信息后才继续发送下面的数据. 那么如果(在一段时间内)发送方没有收到确认信息,我们便可以认为数据在传输的过程中出了差错,没有顺利传送到接收方.这种情况下,就需要一个"超时重传"的机制了. TCP 每发送一个报文段,就对这个报文段设置一次计时器.只要计时器设置的重传时间…
1.概述      为方便描述可靠传输原理,假定数据传输只在一个方向上进行,即A发送数据,B给出确认 2.以字节为单位的滑动窗口      TCP的滑动窗口是以字节为单位的.为了便于说明,字节编号取得很小.先假定A收到B发来的确认报文字段,其中窗口是20字节,而确认号是31字节.(表明B期望接收到的下一个序号是31,序号30之前的数据已经收到了).如图所示. A的发送窗口: 发送窗口表示:在没有收到B的确认的情况下,可以连续把窗口内的数据发送出去.凡是已经发送过的数据,在未收到确认之前都必须暂时…
  TCP数据段作为IP数据报的数据部分来传输的,IP层提供尽最大努力服务,却不保证数据可靠传输.TCP想要提供可靠传输,需要采取一定的措施来让不可靠的传输信道提供可靠传输服务.比如:出现差错时,让发送方重传数据:接收方来不及处理数据时,让发送方降低传输速度. 一.数据流传输方式   TCP传输的数据一般分为两类:交互数据.成块数据.交互数据一般较小,比如发送1个字节的交互数据,加上TCP数据段首部以及IP数据报首部,至少需要41个字节.在广域网,数量众多的交互数据会增加拥塞出现的可能.而成块数…
1.TCP的可靠传输 tcp的可靠传输主要靠 来自接收方的确认报文 和 超时重传. 发出报文,计时器开始计时,在规定超时时间内未收到确认报文则重新发送. 注意:发送报文都留一个副本,如果收到确认报文就会删除,未重新发送之后超时时间会设置为原来的2倍. 对于流水线形式的请求报文,服务器只会按照顺序发出确认报文,如果出现失序报文,则不会被确认而是继续发送前一个的确认报文. 流水线形式:不必等到一个确认报文到来再发送下一个请求报文,而是连续发送请求报文.序 失效报文是指确认号不正确的报文 如 第一个请…
TCP提供了可靠的传输服务,这是通过下列方式提供的: 分块发送:应用数据被分割成TCP认为最适合发送的数据块.由TCP传递给IP的信息单位称为报文段或段(segment) 定时确认重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段.如果不能及时收到一个确认,将重发这个报文段. 当TCP收到发自TCP连接另一端的数据,它将发送一个确认.这个确认不是立即发送,通常将推迟几分之一秒 数据校验:TCP将保持它首部和数据的检验和.这是一个端到端的检验和,目的是检测数据在传输过程中的…
TCP报文段首部 序号: TCP是面向字节流的.在一个TCP连接中传送的字节流中的每一个字节都按顺序编号.整个要传送的字节流的起始序号必须在连接建立时设置.首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号. 例如,一报文段的序号字段值是301,而携带的数据共有100字节.这就表明:本报文段的数据的第一个字节的序号是301,最后一个字节的序号是400. 确认号: 期望收到的下一个报文段的第一个数据字节的序号. 例如,B收到A发送过来的一个报文段,其序号字段值是501,而数据长度是2…
一.综述 1.确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传. 2.数据校验 3.数据合理分片和排序: UDP:IP数据报大于1500字节,大于MTU.这个时候发送方IP层就需要分片(fragmentation).把数据报分成若干片,使每一片都小于MTU.而接收方IP层则需要进行数据报的重组.这样就会多做许多事情,而更严重的是,由于UDP的特性,当某一片数据传送中丢失时,接收方便无法重组数据报.将导致丢弃整个UDP数据报. tcp会按MTU合理分片,接收方会缓存未按序…
文章目录 12 TCP:传输控制协议(初步) 12.1 引言 12.1.1 ARQ和重传 12.1.2 分组窗口和滑动窗口 12.1.3 变量窗口:流量控制和拥塞控制 12.1.4 变量窗口:设置重传超时 12 TCP:传输控制协议(初步) 12.1 引言 ​ 以太网上的很多协议自身不包含可靠传输机制,他们可能会使用一种类似于校验和或者CRC这样的数学函数来检测接收到的数据是否包含差错,但是他们不会去尝试纠正差错.尤其对于IP协议和UDP协议,根本没有实现差错纠正功能.虽然一些基于IP协议或者U…
IP协议因为是无连接的, 所以其传输是不可靠的.虽然链路保证了数据包在端到端的传输中不发生差错,但是它不能保证IP数据包是按照正确的书需到达最终的目的地.IP数据包可以使用不同的路由通过网络,到达接收端的顺序会不一致, 因此需要TCP来使字节流按正确的序号到达接收端.…
文章转自:https://blog.csdn.net/weixin_43914604/article/details/104908762 学习课程:<2019王道考研计算机网络> 学习目的:利用最省时间的方法学习考研面试中的计算机网络. 1.思维导图 2.什么是流量控制? 流量控制是数据链路层的一种功能,流量控制对数据链路上的帧的发送速率进行控制,以使接收方有足够的缓冲空间来接受每个帧 流量控制的基本方法是:由接收方控制发送方发送数据的速率 常见的流量控制方式有两种:停止-等待协议.滑动窗口协…
作者:小林coding 计算机八股文刷题网站:https://xiaolincoding.com 大家好,我是小林. 我记得之前在群里看到,有位读者字节一面的时候被问到:「如何基于 UDP 协议实现可靠传输?」 很多同学第一反应就会说把 TCP 可靠传输的特性(序列号.确认应答.超时重传.流量控制.拥塞控制)在应用层实现一遍. 实现的思路确实这样没错,但是有没有想过,既然 TCP 天然支持可靠传输,为什么还需要基于 UDP 实现可靠传输呢?这不是重复造轮子吗? 所以,我们要先弄清楚 TCP 协议…
目录 1. 停止等待协议 写在前面:本文章是针对<计算机网络第七版>的学习笔记 运输层1--运输层协议概述 运输层2--用户数据报协议UDP 运输层3--传输控制协议TCP概述 运输层4--TCP可靠运输的工作原理 运输层5--TCP报文段的首部格式 运输层6--TCP可靠传输的实现 运输层7--TCP的流量控制和拥塞控制 运输层8--TCP运输连接管理 因为IP层提供的是不可靠的,尽最大努力的传输,因此TCP如果要实现可靠的传输需要采取适当的措施. 1. 停止等待协议 停止等待:每发送完一个…
前言:在学习tcp三次握手的过程之中,由于一直无法解释tcpdump命令抓的包中seq和ack的含义,就将tcp协议往深入的了解了一下,了解到了几个协议,做一个小结. 先来看看我的问题: 这是用tcpdump命令抓的三次握手的包,可以看到seq和ack都比较大,我自己也无法解释原因. 第二张是在同一过程中用Wireshark抓的包,其中seq和ack还比较正常,难道原因就是我不懂tcpdump命令中的数据?我的解释是Wireshark和tcpdump中抓的包,数据的显示方式可能不同,最后学长说可…
滑动窗口机制 滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口:同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口.发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同.不同的滑动窗口协议窗口大小一般不同.发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧.下面举一个例子(假设发送窗口尺寸为2,接收窗口尺寸为1): 分析: ①初始态,发送方没有帧发出,发送窗口前后沿相重合.接收方0号窗口打…
原创文章首发于公众号:「码农富哥」,欢迎收藏和关注,如转载请注明出处! TCP 是一种提供可靠性交付的协议. 也就是说,通过 TCP 连接传输的数据,无差错.不丢失.不重复.并且按序到达. 但是在网络中相连两端之间的介质,是复杂的,并不确保数据的可靠性交付,那么 TCP 是怎么样解决问题的? TCP 是通过下面几个特性保证数据传输的可靠性: 序列号和确认应答信号 超时重发控制 连接管理 滑动窗口控制 流量控制 拥塞控制 通过序列号和确认应答信号提高可靠性 如下图,在 TCP 中,当发送端的数据到…
参考资料 http://blog.chinaunix.net/uid-26275986-id-4109679.html http://network.51cto.com/art/201501/464002_all.htm 一.滑动窗口协议 将TCP与UDP这样的简单传输协议区分开来的是它传输数据的质量.TCP对于发送数据进行跟踪,这种数据管理需要协议有以下两大关键功能: 可靠性:保证数据确实到达目的地.如果未到达,能够发现并重传. 数据流控:管理数据的发送速率,以使接收设备不致于过载. 要完成这…
17.2 TCP的服务 TCP提供了一种面向连接的.可靠的字节流服务.两个使用TCP的应用在彼此交换数据之前必须先建立一个TCP连接. TCP通过下列方式来提供可靠性: 1)  应用数据被分割成TCP认为最合适发送的数据块 2)  当TCP发送一个段后,它会启动一个定时器,等待目的端确认.如果不能及时收到确认,将重发这个报文段. 3)  TCP收到数据后,它会发送一个确认.这个确认不是立即发送的,通常会推迟几分之一秒 4)  TCP将保持它首部和数据的校验和.(这是一个端到端的校验和,如果收到段…
1.什么是TCP的可靠传输 它向应用层提供的数据是无差错的.有序的.无丢失的,换言之就是:TCP最终递交给应用层的数据和发送者发送的数据是一模一样的. 2.TCP保证可靠传输的办法有哪些? TCP采用了流量控制.拥塞控制.连续ARQ等技术来保证它的可靠性. 3.停止等待协议 AQR协议:当请求失败时它会自动重传,直到请求被正确接收为止.这种机制保证了每个分组都能被正确接收.停止等待协议是一种ARQ协议. 停止等待协议的原理 无差错的情况:A向B每发送一个分组,都要停止发送,等待B的确认应答:A只…
TCP,控制传输协议,它充分实现了数据传输时的各种控制功能:针对发送端发出的数据包确认应答信号ACK:针对数据包丢失或者出现定时器超时的重发机制:针对数据包到达接收端主机顺序乱掉的顺序控制:针对高效传输数据包的滑动窗口控制:针对避免网络拥堵时候的流量控制:针对刚开始启动的时候避免一下子发送大量数据包而导致网络瘫痪的慢启动算法和拥塞控制. 此外,TCP作为一种面向有连接的控制传输协议,只有在确认对端主机存在时才会发送数据,从而可以控制通信流量的浪费. TCP通过序列号.超时重传.检验和.流量控制.…