5月阅读周·HTTP权威指南:重定向与负载均衡之IP MAC转发篇
引言
HTTP(Hypertext Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。
《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。此外,这本书还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。
这本书主要包括以下内容:
- 第一部分描述了Web的基础构件与HTTP的核心技术
- 第二部分重点介绍了Web系统的结构构造块:HTTP服务器、代理、缓存、网关以及机器人应用程序。
- 第三部分提供了一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧。
- 第四部分涵盖HTTP报文主体和Web标准,前者包含实际内容,后者描述并处理主体内容。
- 第五部分介绍了发布和传播Web内容的技巧。
- 第六部分是一些很有用的参考附录,以及相关技术的教程。
重定向与负载均衡
任播寻址
在任播寻址中,几个地理上分散的Web服务器拥有完全相同的IP地址,而且会通过骨干路由器的“最短路径”路由功能将客户端的请求发送给离它最近的服务器。要使这种方法工作,每台服务器都要向邻近的骨干路由器广告,表明自己是一台路由器。Web服务器会通过路由器通信协议与其邻近的骨干路由器通信。骨干路由器收到发送给任播地址的分组时,会(像平常一样)寻找接受那个IP地址的最近的“路由器”。由于服务器是将自己作为那个地址的路由器广告出去的,所以骨干路由器会将分组发送给服务器。
三台服务器为同一个IP地址10.10.10.1服务。洛杉矶(LA)服务器将此地址广告给LA路由器,纽约(NY)服务器同样将此地址广告给NY路由器,以此类推。服务器会通过路由器协议与路由器进行通信。路由器会将目标为10.10.10.1的客户端请求自动地转发到广告这个地址的最近的服务器上去。对IP地址10.10.10.1的请求会被转发给服务器3。
任播寻址仍然是项实验性技术。要使用分布式任播技术,服务器就必须“使用路由器语言”,而且路由器必须能够处理可能出现的地址冲突,因为因特网地址基本上都是假定一台服务器只有一个地址的。(如果没有正确地实现,可能会造成很严重的“路由泄露”问题。)分布式任播是一种新兴技术,可以为那些自己控制骨干网络的内容提供商提供一种解决方案。
IP MAC转发
在以太网中,HTTP报文都是以携带地址的数据分组的形式发送的。每个分组都有一个第四层地址,由源IP地址、目的IP地址以及TCP端口号组成,它是第四层设备所关注的地址。每个分组还有一个第二层地址,MAC(Media Access Control,媒体访问控制)地址,这是第二层设备(通常是交换机和Hub)所关注的地址。第二层设备的任务是接收具有特定输入MAC地址的分组,然后将其转发到特定的输出MAC地址上去。
比如,交换机的程序会将来自MAC地址MAC3的所有流量都发送到MAC地址MAC4上去。
第四层交换机能够检测出第四层地址(IP地址和TCP端口号),并据此来选择路由。比如,一台第四层交换机可以将所有目的为端口80的Web流量都发送到某个代理上去。编写交换机程序,将MAC3上所有端口80的流量都转发到MAC6(代理缓存)上去。MAC3上所有其他流量都会被转发到MAC5上去。
通常,如果缓存中有所请求的HTTP内容,而且是新鲜的,那么就由代理缓存来提供内容;否则,代理缓存就会代表客户端向此内容的原始服务器发送一条HTTP请求。交换机会将端口80的请求从代理(MAC6)发送给因特网网关(MAC5)。
支持MAC转发的第四层交换机通常会将请求转发给几个代理缓存,并在它们之间平衡负载。类似地,也可以将HTTP流量转发给备用HTTP服务器。
因为MAC地址转发只是点对点的,所以服务器或代理只能位于离交换机一跳远的地方。
总结
HTTP并不是独自运行在网上的。很多协议都会在HTTP报文的传输过程中对其数据进行管理。HTTP只关心旅程的端点(发送者和接收者),但在包含有镜像服务器、Web代理和缓存的网络世界中,HTTP报文的目的地不一定是直接可达的。
重定向技术涉及网络工具、重定向技术细节以及判定HTTP报文最终目的地的协议。重定向技术通常可以用来确定报文是否终结于某个代理、缓存或服务器集群中某台特定的服务器。重定向技术可以将报文发送到客户端没有显式请求的地方去。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
- 点赞
- 收藏
- 关注作者
评论(0)