第8章 传输层(5)_流量控制

5. 流量控制

(1)流量控制:就是让发送方的发送速率不要太快,要让接收方来得及接收

(2)流量控制原理

  ①在客户端向服务器发送TCP连接请求时TCP首部会包含客户端接收窗口的大小,服务器就会根据这个窗口调整自己发送窗口的大小。

  ②在传输过程中,客户端发送的确认数据包除了确认号还包含窗口信息,服务器收到确认数据包后,会根据窗口信息调整发送窗口。通过这种方法进行流量控制。

(3)流量控制过程

  ①在连接建立时,B告诉A“我的接收窗口(rwnd)为400字节”,这时A的发送窗口就被设置为400。(注意,ACK表示首部中的确认位,ack表示确认号)

  ②假设A发送第1~3分组出去,其中B收到1、2分组,但第3个分组丢失。这时A还没来得及发送第4个数组包,就收到了B发送的的确认包(Ack=1,ack=201,rwnd=300,其中的rwnd是B根据自己当前的缓存情况给出的)

  ③A将自己的发送窗口调整为300第1次流量控制)并前移200字节,然后发送第4、5个分组。假设之后第3个分组超时重传时间到,就会接着发送第3个分组。

  ④B收到3、4、5分组以后发送确认,并根据自己缓存情况调用接收窗口(设为100)。

  ⑤A收到B的确认以后,调整发送窗口为100第2次流量控制),并发送第6个分组。

  ⑥B收到第6个分组后,缓存满就会发送(ACK=1,ack=601,rwnd=0)的确认包让A停止发送。

  ⑦A收到确认包以后将发送窗口调整为0第3次流量控制),然后停止发送。

  ⑧当B缓存有空间时,会调整接收窗口(400),并向A发送确认包(Ack=1,ack=601,rwnd=400)让A继续发送分组。如果B的这个确认包中途丢失,TCP为每一个连接设置了一个持续计时器只要一方收到零窗口通知,就启动计时器。若计时器到时,就会发送一个零窗口探测报文要求对方给出窗口值,以避免A和B处于互相等待的死锁状态

时间: 2024-10-25 21:15:51

第8章 传输层(5)_流量控制的相关文章

第五章 传输层

传输层的两个协议 TCP(Transmission Control Protocol,传输控制协议)需要将要传输的        文件分段传输   建立会话     可靠传输      流量控制 UDP(User Data Protocol,用户数据报协议)  一个数据包就能够完成数据通信 不分段 不需要建立会话 不可靠传输  不需要流量控制 常见使用UDP协议:QQ消息  屏幕广播 多播 广播  DNS解析 查看会话 netstat -n 查看建立会话的进程 netstat -nb 传输层协议

第8章 传输层(1)_TCP/UDP协议的应用场景

1. 传输层的两个协议 1.1 TCP和UDP协议的应用场景 (1)TCP协议:如果要传输的内容比较多,需要将发送的内容分成多个数据包发送.这就要求在传输层用TCP协议,在发送方和接收方建立连接,实现可靠传输.流量控制和拥塞避免.(如下载500M电影.QQ好友传输文件.浏览网页.发送电子邮件等) (2)UDP协议:一个数据包就能发送全部内容,不需要持续发送,发送方和接收方不需要建立连接.由于就一个数据包不需要流量控制和拥塞避免,在传输层不需要负责可靠传输.如果数据包发送出去,应用程序没有收到返回

第8章 传输层(3)_TCP协议

3. 传输控制协议(TCP) 3.1 TCP协议的主要特点 (1)TCP是面向连接的传输层协议.即使用TCP协议之前必须先建立TCP连接.在传送数据完毕之后,必须释放己经建立的TCP连接. (2)每一条TCP连接只能有两个端点,即只能是一对一的. (3)TCP提供可靠交付服务,也就是说通过TCP连接传送的数据,无差错.不丢失.不重复且按序发送. (4)TCP提供全双工通信.TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据.这就允许通信双方在任何时候都可以发送数据. (5)面向

第二章 传输层:TCP、UDP和SCTP

//1. IPv4 : 网际协议版本4.使用32位地址.IPv4给TCP.UDP.SCTP.ICMP.IGMP提供分组递送服务. IPv6 : 网际协议版本6.使用128位地址.IPv6给TCP.UDP.SCTP.ICMPv6提供分组递送服务. TCP/IP协议概况: IP协议: //2. UDP简介: UDP是一个简单的传输层协议,应用进程往一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报中, 该UDP数据包又被封装入一个IP数据报,然后发送至目的地.UDP不保证其数据报会到达

数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点

上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Control Procotol )协议是一个面向连接,可靠的协议.TCP为了提供面向连接的服务,专门定义了连接创建,数据传输.连接终止阶段.TCP使用GBN和SR协议来提供可靠性.为了实现可靠性这个目标,TCP使用检验和来进行误差控制.重传来处理数据包丢失和冲突.同时还利用了应答和计数机制.在本节,首先讨论

【知识强化】第五章 传输层 5.3 TCP协议

这节课我们来学习一下TCP协议的特点以及TCP报文段的格式. 首先呢我们来看一下TCP有哪些特点呢.之前我们说过TCP它是一个比较可靠的面向连接的协议,所以最主要的特点它是可以面向连接的一种传输层协议.那之所以说面向连接呢就是指应用程序在使用这个TCP协议之前,必须要先建立好一个TCP的连接,在传输数据完毕之后呢再释放这个已经建立的连接.也就是说俩应用进程之间的通信啊好像就是在打call一样,啊只要两个人电话打通了才可以进行数据的传输,也就是TCP它面向连接的一个特点.那这里面为什么说它是虚连接

第8章 传输层(6)_拥塞控制

6. 拥塞控制 6.1 拥塞控制的原理 (1)理想状态下:路由器R1和R2向R3提供负载不超过1000Mb/s,都能从R3发送到R4.当提供的负载超过1000Mb/s后,不能再提高了,多余的数据包将被丢弃. (2)实际情况:网络系统的吞吐量与输入负载之间的关系不是线性的.随着提供的负载增大,网络的吞吐量增长速率逐渐减小.在网络未达到饱和时就有一部分输入分组被丢弃,当网络的吞吐量明显小于理想吞吐量就开始出现轻度拥塞现象.当负载达到某一数值时,网络的网络的吞吐量反而随提供负载的增大而下降,这时网络进

第8章 传输层(2)_UDP协议

2. 用户数据报协议(UDP) 2.1 UDP的特点 (1)UDP是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延. (2)UDP使用了尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表,通信的两端不用保持连接,因此节省系统资源. (3)UDP是面向报文的.UDP对应用层下来的报文即既不合并,也不拆分,而是保留这些报文的边界.也就是说应用层交给UDP多长的报文,UDP就原样发送,即一次发送一个报文.(这要求应用程序必须选择合适大小的报文,以免降低IP

第8章 传输层(7)_TCP连接管理

7. TCP连接管理 7.1 TCP的连接建立 (1)三次握手 ①三次握手过程 A.第1.2次握手,数据包的SYN均为1,表示用于同步.即第1次客户端发起请求,并将自己的连接参数(如接收窗口大小.MSS和是否支持SACK等)告知服务器.第2次连接是服务器收到连接请求后作出确认,同时其自己的连接参数告知客户端,这主要是出于双向通信的需要).因此SYN=1表示,这两个数据包主要用于协商和同步通信双方的连接参数).ACK=1表示是一个确认包.ack表示确认的数据包序号. B.第3次握手用于告知客户端服