课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
tcp协议我们在前几期的文章中已经给大家简单介绍过一些基础概念与组成结构等内容,而本文我们就再来了解一下,tcp协议性能问题与调优方法都有哪些。
设计原则
应用程序必须容忍各种因特网路径条件;
应用程序应该控制传输速度;
应用程序应该对所有流量进行拥塞控制;
应用程序应该使用与TCP相近的带宽;
应用程序应该准备基于丢包的重发计数器;
应用程序应该不发送大于路径MTU的数据报;
应用程序应该处理数据报丢失、重复和重排;
应用程序应该足够稳定以支持2分钟以上的交付延迟;
应用程序应该支持IPv4UDP校验和,必须支持IPv6校验和;
应用程序可以在需要时使用keep-alive(小间隔15秒)。
建议使用WebRTC
带宽/延迟与页面加载时间的关系
时延的原因
TCP握手/流量拥塞控制/丢包/队拥塞
网站各资源的用户体验度量
通过NavigationTiming/UserTiming/resourcetiming来度量
浏览器的优化
资源预取和排定优先次序
DNS预解析
TCP预连接
页面预渲染
服务器如何利用这些优化
CSS和JavaScript等重要资源应该尽早在文档中出现;
应该尽早交付CSS,从而解除渲染阻塞并让JavaScript执行;
非关键性JavaScript应该推迟,以避免阻塞DOM和CSSOM构建;
HTML文档由解析器递增解析,从而保证文档可以间隙性发送,以求得佳性能
http优化
减少DNS查询
减少HTTP请求
使用CDN
添加Expires部并配置ETag标签
Gzip资源
避免HTTP重定向
使用持久化连接
keepalive和连接池的局限
对于每个服务器的ip,客户端维持一个长连接的连接池,如果有多个请求发往服务器,并超过连接池的数量,则会迫使客户端必须等待连接池的空闲,而且启用多个socket严重占用系统资源。
http协议的局限
每次发送http请求,都必须加上头部,而头部是没有经过压缩的,这直接导致头部的长度有可能超过
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。