TCP协议 本文内容如下: 1)TCP协议概念 2)TCP头部结构和字段介绍 3)TCP流量控制 滑动窗口 4)TCP拥塞控制 慢启动、拥塞避免、快重传、快恢复 有关TCP的三次握手四次挥手单独写了一篇博客:【TCP协议】 TCP三次握手和四次挥手 有关TCP粘包和黏包,也单独写一篇博客,下一篇博客 ...
分类:
其他好文 时间:
2019-01-15 14:03:13
阅读次数:
251
TCP包头格式 首先,源端口号和目标端口号是不可少的. 接下来是包的序列号. 然后就是确认序号. 接下来就是状态位.例如SYN是发起一个连接,ACK是回复,RST是重新连接,FIN是结束连接 还有一个重要的是窗口大小.TCP要做流量控制,通信双方各声明一个窗口,标识自己当前能够的处理能力. TCP ...
分类:
其他好文 时间:
2019-01-12 16:40:21
阅读次数:
237
名词解释MTU:最大传输单元(硬件规定),指的是ip头+data的最大字节数(数据包超过该值会分片,主要为UDP协议)TTL:数据报的寿命(经过一个路由器减1,工作在ip层)RTO:重传超时时间cwnd:发送窗口rwnd:接受窗口流控制目的:防止发送方速率太快,接受端承受不了(点对点流空)原理:a.通过滑动窗口实现(滑动窗口协议工作在传输层)b.发送方根据收到ack中下一字节的序号n和接受方窗口大
分类:
其他好文 时间:
2019-01-04 15:31:00
阅读次数:
238
是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率
分类:
其他好文 时间:
2019-01-02 12:23:49
阅读次数:
176
什么是KCP "KCP" 是开源的、基于UDP的、可靠的网络传输协议,它的特点是牺牲带宽来降低延迟。因为TCP协议的大公无私,经常牺牲自己速度来减少网络拥塞,它是从大局上考虑的。而KCP是自私的,它只顾自己的传输效率,从不管整个网络的拥塞情况。举个例子,TCP检测到丢包的时候,首先想到的是网络 拥塞 ...
分类:
其他好文 时间:
2018-12-31 22:37:18
阅读次数:
427
这周其实先收尾了一下15-213,把异常控制流也就是shelllab那部分重新看了下,主要是上到后面发现2015 summer版的小哥讲的非常好,于是想把他前面的讲课视频也看了。 所以其实也不算收尾,之后准备再花一天把他讲的cache,linker和vm的部分也看下。 然后这周基本上就一直看14-7 ...
分类:
其他好文 时间:
2018-12-30 22:17:11
阅读次数:
228
转自浅谈TCP拥塞控制算法 本篇文章介绍了几种经典的TCP拥塞控制算法,包括算法原理及各自适用场景。 回顾上篇文章:浅谈 redis 延迟 前言 TCP 通过维护一个拥塞窗口来进行拥塞控制,拥塞控制的原则是,只要网络中没有出现拥塞,拥塞窗口的值就可以再增大一些,以便把更多的数据包发送出去,但只要网络 ...
分类:
编程语言 时间:
2018-12-30 20:24:41
阅读次数:
275
夜深人静...夜深人静...TCP在发现丢包的时候,会采取一定的措施,至于如何发现丢包不是本文的内容,本文主要描述发现丢包以后TCP采取什么措施。以Linux为例,降窗发生在进入快速恢复的当时(暂时不考虑RTO以及本地拥塞),在降窗之前是一个Disorder的状态,指的是系统发现了异常,比如收到了重 ...
分类:
编程语言 时间:
2018-12-28 14:05:36
阅读次数:
156
本文主要阐述TCP拥塞控制中ssthresh的来历以及为什么拥塞避免探测到丢包的时候,ssthresh会被设置为当前窗口的一半。进入证实内容之前,不得不再次吐槽!目前在网上搜的,任何资料上看的,甚至RFC上,都没有讲明白到底什么是ssthresh,它的值有什么讲究,几乎所有的资料都是在说,如果窗口大 ...
分类:
其他好文 时间:
2018-12-27 13:12:40
阅读次数:
173
TCP协议设计原理 最近去了解TCP协议,发现这是一个特别值得深思的协议。在本篇博客中,不会长篇大论的给大家介绍TCP协议特点、包头格式以及TCP的连接和断开等基本原理,而是会带大家深入理解为什么要这么设计,如果不这么设计,会产生什么后果,希望能帮助大家对TCP协议的理解。TCP弥补了IP尽力而为服 ...
分类:
其他好文 时间:
2018-12-22 11:33:55
阅读次数:
160