TCP利用滑动窗口实现流量控制基本的数据单位不是数据段,而是字节

滑动窗口本质上是描述接受方(本地)的TCP数据报缓冲区大小的数据,发送方根据这个数据来计算自己最多能发送多长的数据。如果发送方收到接受方的窗口大小为0的TCP数据报,那么发送方将停止发送数据,等到接受方发送窗口大小不为0的数据报的到来。tcp采用滑动窗口机制来实现流量控制

发送方得发送窗口不能超过接受方给出的接受窗口的数值。当rwnd=0时,即不允许发送数据了,只到B发出的一个新窗口值为止。假设B向A发送了一个新的窗口报文段,这个报文段在传送的过程中丢失了,则A一直等待B发送非零窗口的通知,而B一直等待A发送数据,这样就会产生死锁局面。

为了解决这个问题,TCP为每个连接设有一个持续计时器,如果持续计时器到期,就发送一个探测报文段(仅携带一个字节),对方确认时就给出了现在的窗口值。

TCP规定,即使零窗口,也必须接受零窗口探测报文段,确认报文段和携带紧急数据的报文段。

滑动窗口协议是TCP使用的一种流量控制方法,发送方和接收方都有一定大小的缓冲区,该协议允许发送方在停止并等待确认前可以连续发送多个分组,此协议能够加速数据的传输。协议中规定,对于窗口内未经确认的分组需要重传。这种分组的数量最多可以等于发送窗口的大小。

TCP滑动窗口的更多相关文章

  1. TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释

    一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在T ...

  2. TCP 滑动窗口和 拥塞窗口

    转http://coolshell.cn/articles/11609.html 滑动窗口 -- 表征发送端和接收端的接收能力 拥塞窗口-- 表征中间设备的传输能力 TCP滑动窗口 需要说明一下,如果 ...

  3. TCP 滑动窗口的简介

    TCP 滑动窗口的简介 POSTED BY ADMIN ON AUG 1, 2012 IN FLOWS34ARTICLES | 0 COMMENTS TCP的滑动窗口主要有两个作用,一是提供TCP的可 ...

  4. TCP滑动窗口控制流量的原理

    TCP的滑动窗口机制       TCP这个协议是网络中使用的比较广泛,他是一个面向连接的可靠的传输协议.既然是一个可靠的传输协议就需要对数据进行确认.TCP协议里窗口机制有2种:一种是固定的窗口大小 ...

  5. tcp滑动窗口详解(2)

    http://blog.csdn.net/yujun00/article/details/636495 ARQ与滑动窗口概念  滑动窗口协议,是TCP使用的一种流量控制方法.该协议允许发送方在停止并等 ...

  6. [转]TCP滑动窗口详解

    TCP滑动窗口详解  http://lyjdamzwf.blog.163.com/blog/static/75206837201193373226/ TCP滑动窗口(Sliding Window)   ...

  7. TCP滑动窗口与回退N针协议

    [转]TCP 滑动窗口协议/1比特滑动窗口协议/后退n协议/选择重传协议 2014-1-5阅读884 评论0 本文转自 http://www.cnblogs.com/ulihj/archive/201 ...

  8. TCP滑动窗口(发送窗口和接受窗口)

    TCP窗口机制 TCP header中有一个Window Size字段,它其实是指接收端的窗口,即接收窗口.用来告知发送端自己所能接收的数据量,从而达到一部分流控的目的. 其实TCP在整个发送过程中, ...

  9. 传输层-Transport Layer(下):UDP与TCP报头解析、TCP滑动窗口、TCP拥塞控制详解

    第六章 传输层-Transport Layer(下) 上一篇文章对传输层的寻址方式.功能.以及流量控制方法做了简短的介绍,这一部分将介绍传输层最重要的两个实例:TCP协议和UDP协议,看一看之前描述的 ...

  10. 彻底搞通TCP滑动窗口

    在我们当初学习网络编程的时候,都接触过TCP,在TCP中,对于数据传输有各种策略,比如滑动窗口.拥塞窗口机制,又比如慢启动.快速恢复.拥塞避免等.通过本文,我们将了解滑动窗口在TCP中是如何使用的. ...

随机推荐

  1. Oracle中B-TREE索引的深入理解(转载)

    索引概述 索引与表一样,也属于段(segment)的一种.里面存放了用户的数据,跟表一样需要占用磁盘空间.只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样.在理解索引时,可以想象一本书, ...

  2. 《mysql必知必会》学习_第五章_20180730_欢

    使用的工具是wamp的Mysql. P29 select prod_name from products;  #在表products中选列prod_name,顺寻不是纯粹的随机,但是没有说明排列顺序, ...

  3. Ajax_Json

    前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AjaxJson ...

  4. python3使用ip地址代理

    第一种IP地址代理方式from urllib import request if __name__ == "__main__": # 访问网址 url = 'http://www. ...

  5. A - Excellent Team

    Description Gibbs: Next! First Pirate: My wife ran off with my dog and I'm drunk for a month. Gibbs: ...

  6. glob

    主要是用来在匹配文件,相当shell中用通配符匹配. 用法: glob.glob(pathname) # 返回匹配的文件作为一个列表返回 glob.iglob(pathname) # 匹配到的文件名, ...

  7. MicrosoftSQLServer数据库定时备份(备份计划)的几种方式

    首先,做备份计划钱,先要查看下SQL Server代理是否开启 进入主题 1.备份计划方式1: 1.1新增数据库备份作业: 备份脚本: declare @name varchar() ))+'.bak ...

  8. C# Winform右下角弹窗方式

    [方法一] 第一步:winform项目创建完成后,添加一个窗口,命名为:Messages .(加上最开始的Form1,一共为两个窗口),双击主窗口进入后台代码 . 第二步:在Messages 窗口中添 ...

  9. WPF用户控件库 嵌入外部(VLC)exe

    综合网上资源完成的自己的第一篇博客 ------------------------------------------------------------------------ 网上类似的贴子挺多 ...

  10. 【BZOJ5188】 [Usaco2018 Jan]MooTube

    BZOJ5188 [Usaco2018 Jan]MooTube 突然发现BZOJ没有题目,放题面. 题意翻译 题面描述 在业余时间,Farmer John创建了一个新的视频共享服务,他将其命名为Moo ...