TCP/IP滑动窗口

T C P使用一种窗口(w i n d o w)机制来控制数据流。当一个连接建立时,连接的每一端分配一个缓冲区来保存输入的数据,并将缓冲区的尺寸发送给另一端。当数据到达时,接收方发送确认,其中包含了自己剩余的缓冲区尺寸。剩余的缓冲区空间的大小被称为窗口( w i n d o w) ,指出窗口大小的通知称为窗口通告(window advertisement) 。接收方在发送的每一确认中都含有一个窗口通告。
  如果接收方应用程序读数据的速度能够与数据到达的速度一样快,接收方将在每一确认中发送一个正的窗口通告。然而,如果发送方操作的速度快于接收方(由于C P U更快) ,接收到的数据最终将充满接收方的缓冲区,导致接收方通告一个零窗口( zero window) 。发送方收到一个零窗口通告时,必须停止发送,直到接收方重新通告一个正的窗口。

TCP的特点之一是提供体积可变的滑动窗口机制,支持端到端的流量控制。TCP的窗口以字节为单位进行调整,以适应接收方的处理能力。处理过程如下:

  (1)TCP连接阶段,双方协商窗口尺寸,同时接收方预留数据缓存区;  

  (2)发送方根据协商的结果,发送符合窗口尺寸的数据字节流,并等待对方的确认;  

  (3)发送方根据确认信息,改变窗口的尺寸,增加或者减少发送未得到确认的字节流中的字节数。调整过程包括:如果出现发送拥塞,发送窗口缩小为原来的一半,同时将超时重传的时间间隔扩大一倍。  

  TCP的窗口机制和确认保证了数据传输的可靠性和流量控制。

TCP/IP中滑动窗口的意义

1.在不可靠链路上可靠地传输帧(核心功能)
2.用于保持帧的传输顺序
3.它有时支持流量控制,这是一种接收方能够控制发送方的一种反馈机制
时间: 2024-11-02 20:49:53

TCP/IP滑动窗口的相关文章

TCP 滑动窗口(已经发出等待对方确认的队列)协议

滑动窗口协议是TCP使用的一种 流量控制方法,该协议允许发送方在停止并等待确认前可以连续发送多个分组.TCP是如何通过滑动窗口协议实现流量控制的?本博文将为您详细介绍该协议及其工作原理.什么是滑动窗口协议?一图胜千言,看下面的图.简单解释下,发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口.发送方的窗口大小由接受方确定,目的在于控制发送速度,以免接受方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞.下面图中的4,5,6号数据帧已经被发送出去, 但是未收到关联的ACK,7,8,9

《趣学CCNA——路由与交换》一第2章 TCP/IP协议2.1 TCP协议简介

第2章 TCP/IP协议 趣学CCNA--路由与交换 在上一章,我们郑重其事地介绍了无聊的OSI七层参考模型,并浓墨重彩地讲述了其中每一层负责提供的功能.OSI模型出身名门.条理清晰,只有一个"小小的"缺点,那就是一直没人太拿它当回事儿.所以,如果对它太认真,你就败了. 我们是有职业精神的,因此在介绍OSI模型时反复强调了这个模型是如何地曲高和寡.我们在上一章中花大篇幅介绍OSI模型有三个目的:一是延续各类技术教材的惯例,以免将本书作为技术开蒙读物的读者在与别人讨论技术问题时,因全然不

TCP IP基础知识的复习

TCP/IP网络协议栈分为应用层(Application).传输层(Transport).网络层(Network)和链路层(Link)四层.如下图所示 两台计算机通过TCP/IP协议通讯的过程如下所示 传输层及其以下的机制由内核提供,应用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机.应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图

tcp/ip重温记录

这几天重温了下tcp/ip,做一下记录,有不正确或者有遗漏的地方,请大家指正哈   一.网络层 1. ip协议 1.1 ip协议头中的TTL字段 TTL字段有8位.每经过一个路由器,TTL就会减一,当TTL为0时,数据包还没有到达目的ip的话,这个数据包就会被丢弃.从这可以看出,ip协议不提供可靠性保障. 1.2 ip路由选择 ip的路由选择可以看成是从路由表进行匹配的过程, · 从路由表中进行匹配,当路由表中有目的ip的话,直接发送数据包到目的ip · 如果没有目的ip的话,如果有与目的ip处

TCP/IP协议 详解

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成.TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准.协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到

TCP/IP之TCP交互数据流、成块数据流

建立在TCP协议上的网络协议有telnet,ssh,ftp,http等等.这些协议根据数据吞吐量来分成两大类: (1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做小流量的数据交换,比如说按一下键盘,回显一些文字等等. 交互数据类型在通讯中比例为10%: (2)数据成块类型,例如ftp,这种类型的协议要求TCP能尽量的运载数据,把数据的吞吐量做到最大,并尽可能的提高效率.数据成块类型在通讯中比例为90%: 针对这两种情况,TCP给出了两种不同的策略来进行数据传输: 1

socket-请教一点关于计算机网络中的滑动窗口协议的问题

问题描述 请教一点关于计算机网络中的滑动窗口协议的问题 在下最近在完成计算机网络的课程设计,题目要用socket实现滑动窗口协议,但是有点要求看不懂,百度也找不到,想请教一下:超时计数器技术,帧编号盘重技术,校验和技术, 使用**重传技术**是否意味着是**选择重传ARQ**? 请各位指导 解决方案 用google,而不是那些山寨业余的搜索引擎. 解决方案二: 题主应该是大二或者大三的学生吧. 我之前选修<TCP/IP>的时候也学了滑动窗口协议. 你问的这个问题涉及的点比较多,如果你理论部分都

socket跟TCP/IP 的关系,单台服务器上的并发TCP连接数可以有多少

常识一:文件句柄限制 在linux下编写网络服务器程序的朋友肯定都知道每一个tcp连接都要占一个文件描述符,一旦这个文件描述符使用完了,新的连接到来返回给我们的错误是"Socket/File:Can'topen so many files". 这时你需要明白操作系统对可以打开的最大文件数的限制. 进程限制 执行ulimit -n 输出1024,说明对于一个进程而言最多只能打开1024个文件,所以你要采用此默认配置最多也就可以并发上千个TCP连接. 临时修改:ulimit -n10000

从零构建TCP/IP协议

从零构建TCP/IP协议(这次叫PCT协议) 这篇博客是读完<图解TCP/IP协议>和<TCP/IP协议详解卷一:协议>之后的总结 我从0构建了一个可靠的双工的有序的基于流的协议,叫做PCT协议 :) OSI七层模型和TCP/IP四层模型 谈到计算机网络,就一定会说起OSI七层模型和TCP/IP四层模型,不过我们先从为何分层 说起. 为什么要分层 软件开发的过程中,我们经常听到的词语是"解耦","高内聚,低耦合"等等诸如此类的 词语,又常听见