【网络】tcp流控制和拥塞控制

名词解释

MTU:最大传输单元(硬件规定),指的是ip头+data的最大字节数(数据包超过该值会分片,主要为UDP协议)
TTL:数据报的寿命(经过一个路由器减1,工作在ip层)
RTO:重传超时时间
cwnd:发送窗口
rwnd:接受窗口

流控制

目的:
    防止发送方速率太快,接受端承受不了(点对点流空)

原理:
    a. 通过滑动窗口实现(滑动窗口协议工作在传输层)
    b. 发送方根据收到ack中下一字节的序号n和接受方窗口大小m,以及目前发送字节序号x,算出还可以发送的字节数
    发送窗口的第一个字节序号 = ack中期望的下一个字节序号

总结:
    a. 发送窗口只有收到接受端的确认,才会移动发送窗口的左边界
    b. 接受窗口只有在前面所有数据报都确认,才会移动接受窗口的左边界
    c. 应用程序可以通过api接口更改rwnd大小;tcp协议栈在下次发送时将新窗口大小发给发送方,对端按照新窗口大小设置发送窗口大小,减缓发送速率

拥塞控制

原文地址:http://blog.51cto.com/kongxiaofa/2338815

时间: 2024-08-29 17:22:28

【网络】tcp流控制和拥塞控制的相关文章

TCP自时钟/拥塞控制/带宽利用之脉络半景解析

0.说明 搬家公司的人很多都穿皮鞋!Why? 这个题目不是很明确,而且这个文章比较长,也算是我的一个阶段性总结,既然是总结,就不必为题目而纠结了.在端午假期的最后来做这个总结也实属不易(假期前两天加班,没有完成预期的计划,低落),记得很早以前写那篇<TCP协议疑难杂症全景解析>的时候跟现在一个心情.翻翻以前的记录,写那个的时候是2011年的7月初,小小才刚刚半个月,如今小小已经马上5岁了,时间过得真快啊,弹指一挥间!!回首过去的五年间,最累的时候是在2011年中到2014年初这两年半的时间,有

TCP流量控制和拥塞控制

TCP的流量控制 所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接受.利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制.TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值. 如图所示,说明了利用可变窗口大小进行流量控制.设主机A向主机B发送数据.双方确定的窗口值是400.再设每一个报文段为100字节长,序号的初始值为seq=1,图中的箭头上面大写ACK,表示首部中的却认为为ACK,小写ack表示确认字段的值. 接收方的主机B进行了

TCP流量控制与拥塞控制

 一.TCP建立连接后,通信双方都同时可以进行数据的传输:在保证可靠性上,采用超时重传和捎带确认机制:在流量控制上,采用滑动窗口协议,协议中规定,窗口内未经确认的分组需要进行重传:在拥塞控制上,采用慢启动算法. (一)拥塞控制: 1. TCP慢启动.拥塞避免.快速重传.快速回复 为了防止网络的拥塞现象,TCP提出了一系列的拥塞控制机制.最初由V. Jacobson在1988年的论文中提出的TCP的拥塞控制由"慢启动(Slow start)"和"拥塞避免(Congestio

TCP 流量控制和拥塞控制中的重要机制

停止等待协议: 放送方发送一个数据包,要收到接收方对该包的确认后,才发送下一个数据包. 缺点:慢,信道利用率低. ARQ Automatic Repeat reQuest 接收方采用累加确认的方式,接收方不必对每一个分组进行缺,只需要对按序到达的最后一个分组发送确认. 缺点:当发送方发送了5个分组,中间第3个丢失,那么接收方只对前两个分组进行确认.发送方只好把后面的3个分组都重传一次.这叫做Go-back-N(回退N) 选择确认 selective ack 接收方对接收到的数据字节流中,若有中间

TCP 流量控制、拥塞控制

流量控制: 流量控制是为了控制发送方发送速率,保证接收方来得接收. 接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率.将窗口字段设置为 0,则发送方不能发送数据. 拥塞控制: 如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高.因此当出现拥塞时,应当控制发送方的速率.这一点和流量控制很像,但是出发点不同.流量控制是为了让接收方来得及接受,而拥塞控制是为了降低整个网络的拥塞程度. TCP主要通过四种算法来进行拥塞控制:慢开始.拥塞避免

网络--TCP

1. 与UDP不同的是,TCP提供了一种面向连接的.可靠的字节流服务.面向连接比较好理解,就是连接双方在通信前需要预先建立一条连接,这犹如实际生活中的打电话.助于可靠性,TCP协议中涉及了诸多规则来保障通信链路的可靠性,总结起来,主要有以下几点: (1)应用数据分割成TCP认为最适合发送的数据块.这部分是通过“MSS”(最大数据包长度)选项来控制的,通常这种机制也被称为一种协商机制,MSS规定了TCP传往另一端的最大数据块的长度.值得注意的是,MSS只能出现在SYN报文段中,若一方不接收来自另一

网络TCp数据的传输设计(黏包处理)

//1.该片为引用别人的文章:http://www.cnblogs.com/alon/archive/2009/04/16/1437599.html 解决TCP网络传输"粘包"问题 解决TCP网络传输"粘包"问题 作者:杨小平 王胜开 原文出处:http://www.ciw.com.cn/ 当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API).TCP/IP传输层有两个并列的协议:TCP和UDP.其中TCP(trans

Nagle 算法(TCP中用于拥塞控制)详解

算法适应的情况和原理 在广域网上,小分组会增加拥塞的可能性,一种简单且好用的方式是使用Negla算法. 该算法要求一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到来之前不发送其他的小分组.相反,TCP收集这些少量的分组,并在确认到来之时以一个分组的形式发送出去.这样,就能够减少网络中小分组的数量,提高数据包的利用率. 算法优势:自适应,确认到达的越快,数据发送也就越快. 关闭算法 有时也需要关闭该算法.一个典型的例子是X窗口服务器,小消息(例如鼠标移动)不能缓存发送,因为

Linux 网络 tcp C/S通信模型

C/S模型就是server 与 client 的模型 TCP服务器模型流程图                                                               TCP 客户端模型流程图:                    函数使用: (1)创建一个网络通信套接字描述符  int socket(int domain, int type, int protocol); 参数:domain : 协议系列,常用的是 AF_INET 表示IPV4     ty