网络性能影响因素和提升(web/client/server/http)之一

1,471 阅读3分钟

网络是信息社会不可或缺的关键支撑点,网络系统的好坏和性能直接影响着各层应用的使用体验和生产力。影响网络系统好坏和性能的关键两点是带宽和时延,这两点的决定因素牵涉到硬件、协议、基础环境和上层应用的建设等方方面面。 总结和归纳下这些影响面,掌握提升网络性能的方法是很必要的;特别是在很快到来的万物互联时代,不管是构建前端系统、服务端系统、亦或是任何基于http或其他网络协议的应用系统。

开放互联协议模型

OSI定义的网络七层协议模型,即物理层、链路层、网络层、传输层、会话层、表示层、应用层。

Osi-model.png

TCP协议的优化提升

TCP-IP协议模型与OSI七层协议模型的对比

TCP-IP.vs.Osi.png

TCP协议核心流程

三次握手

three-way-handshake.svg

堵塞控制和慢启动

slow-start.svg

TCP协议使用优化

  • 服务系统内核升级到最新版本
  • 初始化tcp连接后抑制慢启动,尽量复用tcp连接
  • 减少不必要数据传输和对数据做压缩
  • 部署server尽量靠近客户,减少RTT时间
  • 考虑开启TCP-Fast-Open

UDP协议的优化提升

UDP协议也被称之为空协议服务,其模型非常简单-协议本身只管数据发送

UDP协议头

UDP-header.svg

UDP协议特性

  • 不保证数据一定发送成功
  • 不保证数据的固有顺序性
  • 无会话状态保持
  • 无堵塞控制

UDP协议使用优化

  • 检查影响UDP使用的NAT环境配置
  • 应用层来确保数据传输的速率、堵塞协调、重传
  • 应用层来负责数据出现丢失、重复、乱序的处理
  • 应用层来确保尽可能复用已有链接

TLS协议的优化提升

随着网络使用越来越广泛,人们越发关注网络上数据传输的安全性。数据传输也由原来的明文传输变为加密传输,数据加密机制也从原来的SSL逐渐变为TLS;目前已不建议使用任何版本的SSL加密,主要是用的为TLS1.1, 1.2版本

TLS交互的流程

TLS-handshake.svg

TLS会话的复用

TLS-resumption.svg

可信任证书链机制

chain-trust-certificates.svg

TLS协议使用优化

  • 首先优化使用的TCP连接
  • 升级TLS组件库,确保使用最新的版本
  • 使用TLS会话,复用TLS
  • 审核和检查域名证书的可信任链
  • 考虑开启TLS-False-Start

CDN的建设

越来越多的业务不仅仅是服务于企业本地的客户,而是面向全球的市场;另一方面视频等富媒体内容在网络上越来越流行。怎么让全球的客户都更快更好的体验到企业的产品?怎么让视频等富媒体内容的建设更节省带宽同时又能提高响应速度?这些问题就是CDN建设使用的场景。

CDN的优势和好处有:

  1. 让产品更高靠近客户,提升客户使用体验
  2. 减少系统的响应时间和时延
  3. 合理使用CDN的缓存可以节省带宽和提升产品响应速度
  4. 提高了产品整体的可靠性和稳定性