• TCP 协议中的 Window Size与吞吐量
    原地址:http://blog.sina.com.cn/s/blog_c5c2d6690102wpxl.html TCP 协议中影响实际业务流量的参数很多,这里主要分析一下窗口的影响。 ​TCP 窗口目的 为了获得最优的连接速率,使用 TCP 窗口来控制流速率(flow control),滑动窗口就是一种主要的机制。这个窗口允许源端在给定连接传送数据分段而不用等待目标端返回 ACK,一句话描述:窗口的大小决定在不需要对端响应(acknowledgement)情况下传送数据的数量。​官方定义:“The ...
  • TCP 的那些事儿(下)
    这篇文章是下篇,所以如果你对 TCP 不熟悉的话,还请你先看看上篇。上篇中,我们介绍了 TCP 的协议头、状态机、数据重传中的东西。但是 TCP 要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资源,所以,不适合在厕所中阅读。 TCP 的 RTT 算法 从前面的 TCP 重传机制我们知道 Timeout 的设置对于重...
  • 如何优化你的 HTTPS
    HTTP/2HTTP 2.0即超文本传输协议 2.0,是下一代HTTP协议。是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新,HTTP/2 协议是从 SPDY 演变而来,SPDY 已经完成了使命并很快就会退出历史舞台(例如 Chrome 在「2016 年初结束对 SPDY 的支持」;Nginx在版本1.9.5+,Apache在版本2.4.16+都已经全面支持HTTP/2。上图是A...
  • 实时视频传输中的BBR拥塞控制
    在复杂的网络环境中,想要实现实时视频传输,拥塞控制算法是尤为重点的一环。本文整理自学霸君高级技术总监袁荣喜在LiveVideoStackCon 2019上海大会中的分享,详细介绍了BBR拥塞控制算法在实时视频传输中新的实践以及优缺点。文 / 袁荣喜整理 / LiveVideoStack大家好,我是来自学霸君的袁荣喜,本次分享内容的核心是BBR在实时视频传输中的实践。BBR其实是基于TCP的一种拥塞算法,在实时音视频中的运用也是一种全新的尝试,接下来我将会为大家逐一介绍这种尝试所带来的优缺点。1. 传输与拥塞...
  • HyStrix替代方案限流降级框架 Sentinel 的原理和实践
    在此,墙裂推荐大家使用Sentinel 完成服务的熔断降级和流量控制。以下我将结合官方文档和在业务实际应用过程中的理解,介绍 Sentinel 的原理、核心概念和如何使用。ContextSentinel 的上下文,包含了上下文名称,一个调用链一个 Context,可以显示创建或者在调用 Entry 的时候隐式创建。Sentinel 中的 FlowSlot 会对该资源的所有限流规则依次遍历,直到有规则触发限流或者所有规则遍历完毕。Sentinel 并发线程数限流不负责创建和管理线程池,而是简单统计当前请求上下文的线程数目,如果超出阈值,新的请求会被立即拒绝,效果类似于信号量隔离。QPS 流量控制当 QPS 超过某个阈值的时候,则采取措施进行流量控制。
  • k8s+istio : 流量控制之灰度发布
    通过 Kubernetes+Istio 的流量控制实现灰度发布,主要演示通过流量权重实现蓝绿,通过http自定义头实现金丝雀准备环境k8s 和 istio 不想自己装的话可以在云上买个按量付费集群,用完即删,推荐华为云。4)创建默认路由kubectl apply -f istio-service-union-virtualservice-v1.yaml #使用v1版本测试访问结果,发现全部是 v1 版本{"userVersion":"v1","userException":""}{"userVersion":"v1","userException":""}{"userVersion":"v1","userException":""}{"userVersion":"v1","userException":""}kubectl apply -f istio-service-union-virtualservice-v2.yaml #使用v2版本测试访问结果,发现全部是 v2 版本{"userVersion":"v2","userException":""}{"userVersion":"v2","userException":""}{"userVersion":"v2","userException":""}{"userVersion":"v2","userException":""}5)流量权重kubectl apply -f istio-service-
  • 优化你的 HTTPS,你需要这么做
    HTTP/2HTTP 2.0即超文本传输协议 2.0,是下一代HTTP协议。二进制分帧主要是为HTTP2.0其他特性提供基础。需要注意的是,HTTP2.0的首部压缩,与我们常用的gzip等报文内容压缩不冲突。流量控制是有方向的,由接收者全面控制。超过限制数目的请求会被阻塞,而HTTP2.0中的多路复用优化了这一性能。基于二进制分帧层,HTTP2.0可以在共享TCP连接的基础上,同时发送请求和响应。HTTP消息被分解为独立的帧,而不破坏消息本身的语义,交错发送出去,最后在另一端根据流ID和首部将他们重新组合。请求优先级把HTTP消息分为很多独立帧之后,就可以通过优化这些帧的交错和传输顺序进一步优化性能。
  • BBR及其在实时音视频领域的应用
    本次我分享的主题是BBR及其在实时音视频领域的应用,BBR全称是Bottleneck Bandwidth and RTT,它是谷歌在2016年推出的全新网络拥塞控制算法,在此之后大家对于拥塞控制的关注度逐渐提高,越来越多的新算法被推出。本次分享的内容主要包括BBR算法的基本原理以及BBR算法如何应用在网易云信的实时音视频产品中。整个BBR的拥塞控制在启动之后,最终是在Drain和ProbeBW阶段之间切换。
  • 网络协议常见面试题集锦
    A 共发送了两个连接请求报文段,其中第一个丢失,第二个到达了 B。6)TCP 协议如何来保证传输的可靠性答:TCP 提供一种面向连接的、可靠的字节流服务。在一个 TCP 连接中,仅有两方进行彼此通信;而字节流服务意味着两个应用程序通过 TCP 链接交换 8 bit 字节构成的字节流,TCP 不在字节流中插入记录标识符。这个确认不是立即发送,通常将推迟几分之一秒;超时重发:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。TCP使用的流量控制协议是可变大小的滑动窗口协议。
  • 优化你的 HTTPS,你需要这么做
    帧是HTTP 2.0通信的最小单位,包括帧首部、流标识符、优先值和帧净荷等。二进制分帧主要是为HTTP2.0其他特性提供基础。需要注意的是,HTTP2.0的首部压缩,与我们常用的gzip等报文内容压缩不冲突。超过限制数目的请求会被阻塞,而HTTP2.0中的多路复用优化了这一性能。基于二进制分帧层,HTTP2.0可以在共享TCP连接的基础上,同时发送请求和响应。HTTP消息被分解为独立的帧,而不破坏消息本身的语义,交错发送出去,最后在另一端根据流ID和首部将他们重新组合。请求优先级把HTTP消息分为很多独立帧之后,就可以通过优化这些帧的交错和传输顺序进一步优化性能。
  • 一文理解TCP、UDP协议及两者的区别
    即TCP 协议为了更容易传送大数据才把数据分割, 而且 TCP 协议能够确认数据最终是否送达到对方。若在握手过程中某个阶段莫名中断, TCP 协议会再次以相同的顺序发送相同的数据包。四次挥手由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。先进行关闭的一方将执行主动关闭,而另一方被动关闭。服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。TCP协议是可靠的、面向连接的。HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连
公众号
关注公众号订阅更多技术干货!