TCP的慢启动、拥塞机制和滑动窗口

TCP和UDP的对比

1.面向连接可靠 / 无连接的不可靠
2.面向字节流的,无边界的,每次发送后可以分包发送,最后进行数据合并(透明的保证了数据的依次,可靠) / 面向报文的,有边界的,每次发送一个报文,不能合并(效率更高但是需要自己保证数据的依次可靠)
3.有流量控制和拥塞控制 / 无
4.全双工 / 一对一,一对多,多对一,多对多
5.慢 / 快

TCP的慢启动

由于TCP连接会随着时间进行自我调谐,起初会限制连接的最大速度,如果数据传输成功,会随着时间的推移提高传输速度,这就是TCP的慢启动,所以http性能的优化关键并不在于高带宽而是低延迟,多路复用就是让所有的数据流通用一个TCP连接,让高带宽真正的服务于http性能的提升。2.0中解决了这个问题。

HTTP Pipelining其实是把多个HTTP请求放到一个TCP连接中一一发送,而在发送过程中不需要等待服务器对前一个请求的响应;只不过,客户端还是要按照发送请求的顺序来接收响应!而在2.0中通过二进制流标识而不需要按照顺序来接受响应
https://www.ucloud.cn/yun/76567.html

TCP的拥塞机制

更多:https://www.cnblogs.com/liangyc/p/11628757.html
1、慢开始:设置一个“拥塞窗口cwnd”,该变量和接受窗口共同决定了发送者的发送窗口,开始从1开始指数2递增,当达到了设置的“慢开始门限ssthresh”,则可以根据情况来执行拥塞避免算法——每次经过一个往返时间RTT就给拥塞窗口+1,线性增长
2、快重传,快恢复:
每次发出一个包都设置一个定时器,在定时器结束还没有收到确认则表示该包丢失,需要进行重传,当然定时器是后置的手段,快重传是当发送方收到了三个一样的确认,就知道该包出现了错误,立即重传该包,这时也会设置一个重传定时器,如果收到确认则执行拥塞避免算法(此时执行快恢复,慢开始门限减半,cwnd设置为此时的门限值,高起点,线性增长),如果仍然超时则执行慢开始算法(慢开始门限设置为原来的一半,将cwnd设置为1,执行慢开始算法,低起点,指数增长))


超时重传是TCP协议保证数据可靠性的一个重要机制,其原理是在发送一个数据以后就开启一个计时器RTO,在一定时间内如果没有得到发送数据报的ACK报文,那么就重新发送数据,直到发送成功为止。这是数据包丢失的情况下给出的一种修补机制。一般来说,重传发生在超时之后,但是如果发送端接收到3个以上的重复ACK,就应该意识到,数据丢了,需要重新传递。这个机制不需要等到重传定时器溢出,所以叫做快速重传,而快速重传以后,因为走的不是慢启动而是拥塞避免算法,所以这又叫做快速恢复算法。

  • 收到三个重复的ACK是因为数据是传递是按序的,如果M1之后的M2丢失,服务端接受到M3M4M5都会返回M2的ACK
    快速重传和快速恢复旨在:快速恢复丢失的数据包。没有快速重传和快速恢复,TCP将会使用定时器来要求传输暂停。在暂停这段时间内,没有新的数据包被发送

TCP滑动窗口

滑动窗口进行流量控制,为了数据的不丢失,平衡不同设备之间的性能,需要接受方告知发送端它所拥有的缓存区大小,发送方根据这个数据来计算自己最多能发送的数据量,A发给B
image.png

,为了防止B窗口的反馈信息空间rwnd丢失,会造成死锁,为了处理这种情况给A设置一个定时器,当时间到了则发送一个1字节的探测报文。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,607评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,239评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,960评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,750评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,764评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,604评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,347评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,253评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,702评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,893评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,015评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,734评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,352评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,934评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,052评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,216评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,969评论 2 355

推荐阅读更多精彩内容