网络是信息社会不可或缺的关键支撑点,网络系统的好坏和性能直接影响着各层应用的使用体验和生产力。影响网络系统好坏和性能的关键两点是带宽和时延,这两点的决定因素牵涉到硬件、协议、基础环境和上层应用的建设等方方面面。 总结和归纳下这些影响面,掌握提升网络性能的方法是很必要的;特别是在很快到来的万物互联时代,不管是构建前端系统、服务端系统、亦或是任何基于http或其他网络协议的应用系统。
开放互联协议模型
OSI定义的网络七层协议模型,即物理层、链路层、网络层、传输层、会话层、表示层、应用层。
TCP协议的优化提升
TCP-IP协议模型与OSI七层协议模型的对比
TCP协议核心流程
三次握手
堵塞控制和慢启动
TCP协议使用优化
- 服务系统内核升级到最新版本
- 初始化tcp连接后抑制慢启动,尽量复用tcp连接
- 减少不必要数据传输和对数据做压缩
- 部署server尽量靠近客户,减少RTT时间
- 考虑开启TCP-Fast-Open
UDP协议的优化提升
UDP协议也被称之为空协议服务,其模型非常简单-协议本身只管数据发送
UDP协议头
UDP协议特性
- 不保证数据一定发送成功
- 不保证数据的固有顺序性
- 无会话状态保持
- 无堵塞控制
UDP协议使用优化
- 检查影响UDP使用的NAT环境配置
- 应用层来确保数据传输的速率、堵塞协调、重传
- 应用层来负责数据出现丢失、重复、乱序的处理
- 应用层来确保尽可能复用已有链接
TLS协议的优化提升
随着网络使用越来越广泛,人们越发关注网络上数据传输的安全性。数据传输也由原来的明文传输变为加密传输,数据加密机制也从原来的SSL逐渐变为TLS;目前已不建议使用任何版本的SSL加密,主要是用的为TLS1.1, 1.2版本
TLS交互的流程
TLS会话的复用
可信任证书链机制
TLS协议使用优化
- 首先优化使用的TCP连接
- 升级TLS组件库,确保使用最新的版本
- 使用TLS会话,复用TLS
- 审核和检查域名证书的可信任链
- 考虑开启TLS-False-Start
CDN的建设
越来越多的业务不仅仅是服务于企业本地的客户,而是面向全球的市场;另一方面视频等富媒体内容在网络上越来越流行。怎么让全球的客户都更快更好的体验到企业的产品?怎么让视频等富媒体内容的建设更节省带宽同时又能提高响应速度?这些问题就是CDN建设使用的场景。
CDN的优势和好处有:
- 让产品更高靠近客户,提升客户使用体验
- 减少系统的响应时间和时延
- 合理使用CDN的缓存可以节省带宽和提升产品响应速度
- 提高了产品整体的可靠性和稳定性