返回

网络技术的优化手段:打造敏捷流畅的云上体验

后端

作为新一代的信息基础设施,云计算让数据处理、数据交换变得前所未有地便捷。然而,网络环境千变万化,某些历史遗留问题时有爆发,给云上系统带来不小的性能损失,进而影响用户体验,给客户造成不便。

前不久,Jetty项目的官方安全公告中透露了一个很有趣的漏洞,并提供了相应的解决方案。Jetty是一个免费、开源的Servlet容器,它提供了HTTP服务器功能,支持多种协议,包括HTTP/2.0、HTTP/1.1、WebSocket、SSL/TLS等,在企业应用开发中得到了广泛应用。

HTTP/2.0作为新一代的网络协议,相较于之前的版本,具备更高的传输效率、更低的延时和更强的安全性。

HTTP/2.0通过流(Stream)的概念,实现了多路复用(Multiplexing),可以同时在同一连接上并发多个请求,从而有效减少了请求的延迟。

但正是HTTP/2.0多路复用特性,带来了一个潜在的风险——DoS(拒绝服务)攻击。

如果攻击者利用Jetty服务器对于HTTP/2.0请求的处理机制,在短时间内发送大量请求,就会导致服务器的资源被耗尽,从而无法响应其他正常的请求,从而造成DoS攻击。

造成DoS攻击的原因之一,是HTTP/2.0将所有的请求都视为“流”,而每个流都有一个状态,用于存储连接和状态信息,如果攻击者发送大量请求,就相当于创建了大量流,而Jetty服务器需要为每个流都分配内存,随着流的不断增加,内存就会被逐渐耗尽。

问题的另一个原因是,HTTP/2.0允许客户端随时取消请求,但Jetty服务器在收到取消请求后,仍然会将该请求分配给一个工作线程,这无疑加剧了服务器资源的消耗。

为了解决该问题,Jetty官方发布了最新的安全补丁,主要做了两方面的改进:

  • 限制服务器同时处理的并发请求数,避免服务器因处理过多请求而崩溃。

  • 优化Jetty服务器对HTTP/2.0取消请求的处理,当收到取消请求时,立即释放该请求所占用的资源,避免不必要的资源浪费。

除了采取官方的安全补丁,云服务提供商还可以结合自身业务场景,通过以下方式进一步优化网络性能,为客户带来更好的云上体验:

  • 采用负载均衡技术,将请求分发到多个服务器,避免单个服务器成为攻击目标。

  • 使用Web Application Firewall (WAF)来过滤和拦截恶意请求,保护服务器免受DoS攻击。

  • 使用内容分发网络(CDN)来缓存静态内容,减少服务器的负担,并提高网站的加载速度。

  • 使用HTTP/3等更新的网络协议,以获得更高的传输效率和更低的延时。

通过采取这些措施,云服务提供商可以有效提升网络性能,保障客户的云上体验。

总之,网络技术的发展让云计算的应用环境更加复杂多变,某些历史遗留问题也逐渐暴露出来,成为影响云上系统性能的重要因素,最终影响客户体验。云服务提供商需要采取多种措施,如限制服务器同时处理的并发请求数、优化对HTTP/2.0取消请求的处理、采用负载均衡技术、使用WAF、使用CDN、使用更新的网络协议等,来进一步优化网络性能,为客户带来更好的云上体验。