第一部分:CDN 全局调度
1.
张三访问百度,在浏览器输入 www.baidu.com
2.
浏览器和本地 hosts 文件没有对应的 DNS 缓存,向配置的 DNS 服务器(如114.114.114.114)请求。
3.
114.114.114.114
的域名条目列表中对于 www.baidu.com
这个域名有一个别名(CNAME) www.baidu.wangsu.com
,于是去查找 www.baidu.wangsu.com
这个域名所对应的 IP 地址
4.
经过递归和迭代之后查到了 202.101.100.100
这个 IP 地址,实际上 202.101.100.100
是网宿的 Global DNS
服务器的 IP 地址
5.
情况一:
5.1
114.114.114.114
将 202.101.100.100
返回给张三的浏览器
5.2
张三的浏览器根据 202.101.100.100
去访问 www.baidu.com
5.3
Global DNS
服务器收到请求后,根据管理员配置的调度策略,选出对应的边缘节点的 IP 地址如(204.33.223.49)并返回给张三浏览器
5.4
张三浏览器根据 204.33.223.49
去访问 www.baidu.com
情况二:
5.1
114.114.114.114
向 202.101.100.100
请求域名解析的结果
5.2
Global DNS
服务器收到请求后,根据管理员配置的调度策略,选出对应的边缘节点的 IP 地址如(204.33.223.49)并返回给 114.114.114.114
,再返回给张三浏览器
5.3
张三浏览器根据 114.114.114.114
返回的 204.33.223.49
去访问 www.baidu.com
第二部分:边缘节点内部调度
实际上,返回给张三浏览器的 204.33.223.49
是边缘节点的 VIP
,节点内部 LVS
和 Real-Server
共用这个 VIP
。
1.
张三浏览器发送的 HTTP 请求报文经过运营商的网络到达边缘节点的出口路由器,出口路由器查询路由表后将报文转发给 LVS
2.
LVS
执行管理员在 ipvsadm
中配置的调度策略,修改报文的 mac 地址转发给交换机
3.
交换机查询 MAC-Address-Table
后将报文转发至真实提供服务的设备(Real-Server)
4.
HTTP-Request
报文到达 Real-Server
后,Real-Server
上的 switch
软件调度具体 CPU 和内存上的进程对报文进行响应
5.
响应报文 HTTP-Response
不经过 LVS
直接发给张三浏览器
第三部分:疑问
1.
在第一部分中,第五步后的哪种情况是正确的?或者是都不正确?正确的情况是怎样的?
2.
第一部分其他内容的哪些地方有错误?
3.
第二部分中的哪些地方有错误?
4.
错误的地方应该是怎样的?
5.
谢谢。