6.5 链路虚拟化:网络作为链路层
多协议标签交换 MPLS
通过来自虚电路网络的一个关键概念—固定长度标签,可以改善 lP 路由器的转发速度。 其目标是使用转发 lP 数据报的路由设备,但却是基于固定长度标签和虚电路的技术,让路 由器根据固定长度的标签转发数据报(而不是目的地 IP 地址),从而加快转发速度(标签长 度固定、较小的标签空间这两个特点加快了查表速度)。
6.6 数据中心网络
- 因特网公司如FLAG构建了大量数据中心,每个数据中心容纳数十万太主机,同时支持着不同云应用。每个数据中心有自己的数据中心网络,内部主机彼此互联,并与因特网中其他数据中心互联
- 投资巨大,一个10w台主机的数据中心每月费用超过1200w刀
- 数据中心的主机(称为刀片)就像数据中心的工蜂:提供内容,存储文档,共同执行大规模分布式计算
- 多台机架顶部交换机与多台边界路由器相连
1.负载均衡
-
- 一个云数据中心,能够同时提供搜索、电子邮件、视频应用等应用,每个应用与一个公开可见的IP地址关联,外部用户向该地址发送请求并从该地址接收响应
- 外部请求首先被定向到一个负载均衡器,向主机分发请求,以主机当前负载作为函数在主机之间均衡负载
- 负载均衡器基于分组的目的端口号(第四层)以及目的IP地址做决策,被称为第四层交换机
- 客户请求—》负载均衡器—》主机—》负载均衡器—》客户
- 不仅平衡主机间工作负载,还提供类似NAT功能,将外部IP地址转换为内部IP地址,防止客户直接接触主机
2.等级结构体系
-
- 主机规模扩大到数十万时,数据中心应用路由器和交换机等级结构
- 边界路由器——接入路由器——第一层交换机+负载均衡器——第二层交换机——第三层交换机(TOR交换机,top of rack,机架交换机)
- 每台接入路由器下的主机构成单一子网,为使ARP广播流量本地化,每个子网分为更小VLAN子网,每个由数百台组成
3.数据中心网络发展趋势
-
- 全连接拓扑:每台第一层交换机都与所有第二层交换机相连
- 模块化数据中心MDC
6.7 回顾:Web页面请求的历程
6.7.1 准备:DHCP、UDP、IP和以太假定小明启动电脑,用以太网电缆连接到学校的以太网交换机
- 小明电脑的操作系统生成一个DHCP报文,将报文封装到目的端口67(DHCP服务器)和源端口68(小明的DHCP客户)的UDP报文段,该报文段又封装到目的地址是广播地址、源地址0的IP数据报中
- 包含DHCP请求报文的IP数据报封装到以太网帧中,目的MAC地址是MAC广播地址,该帧将广播到与交换机连接的所有设备(包括DHCP服务器)
- 包含DHCP请求的广播以太网帧是小明电脑发出的第一个帧,因此交换机在所有出端口广播入帧,包括连接到路由器的端口,同时自动添加表项到交换机表
- 路由器在它的接口接收到该帧,抽取IP数据报(因为是广播,否则地址不匹配会丢弃),UDP报文段被分解向上到达UDP,DHCP请求报文从里面再抽取出来,此时DHCP服务器得到了DHCP请求报文(DHCP服务运行在路由器)
- DHCP服务器回发DHCP ACK报文,包括了IP地址,DNS本地服务器IP地址、默认网关路由器IP地址、网络掩码,放入UDP报文段,再放入IP数据报,再放入一个以太网帧,目的MAC地址是小明电脑的MAC地址
- 包含DHCP ACK的帧由路由器发送给交换机,交换机从交换机表寻址到输出接口转发
- 小明电脑收到该帧,抽取IP数据报,抽取UDP报文段,抽取DHCP ACK报文。小明的DHCP客户记录下它的IP地址和DNS服务器的IP地址,在其IP转发表安装默认网关地址。小明电脑向默认网关发送所在子网以外的数据报.
6.7.2 仍在准备:DNS和ARP
当小明将www.baidu.com的URL输入Web浏览器时,开启了一长串事件,导致百度主页最终显示在Web浏览器上。
- 为了生成TCPsocket向baidu.com发送HTTP请求,需要知道其IP地址,小明电脑的操作系统因此生成一个DNS查询报文,将网址放入DNS报文,再将报文放入目的端口号53的UDP报文段,该UDP报文段放入具有IP目的地址为DNS服务器(DHCP服务器返回的)的IP数据报中
- 小明电脑将包含DNS请求报文的数据报放入一个以太网帧中,该帧在链路层需要寻址发送到小明学校网络的网关路由器。为了获得该网关路由器的MAC地址,小明的电脑需要使用ARP协议,将IP地址—》MAC地址
- 小明电脑生成一个目的IP地址为默认网关的ARP查询报文,放在具有目的地址为MAC广播地址的以太网帧中,并向交换机发送该以太网帧,交换机将帧广播给所有连接的设备,包括网关路由器
- 网关路由器在通往学校网络的接口上接收到包含该ARP查询报文的帧,发现在ARP报文中目标IP地址匹配自己的IP地址,网关路由器因此准备一个ARP回答,指示自己的MAC地址。它将ARP回答放在一个以太网帧中,目的地址为小明电脑的MAC地址,并向交换机发送该帧,交换机将该帧交付给小明电脑
- 小明电脑接收包含ARP回答报文的帧,并从ARP回答报文中抽取网关路由器的MAC地址
- 小明电脑终于能使包含DNS查询的以太网帧寻址到网关路由器的MAC地址。该帧中的IP数据报中的目的地址文DNS服务器,而帧具有目的地址网关路由器MAC。小明电脑向交换机发送该帧,交换机将该帧交付给网关路由器
6.7.3 仍在准备:域内路由选择到DNS服务器
- 网关路由器接收该帧并抽取包含DNS查询的IP数据报。路由器查找该数据报的目的地址,根据其转发表决定将数据报发送到comcast网络中最左边路由器
- 最左边路由器收到该帧,抽取IP数据报,检查目的地址,根据转发表为其确定出接口,经过该接口向DNS服务器转发数据报。转发表已根据comcast域内协议(如RIP、OSPF或IS-IS),以及因特网域间协议BGP所填写
- 最终包含DNS查询的IP数据报到达了DNS服务器。DS服务器抽取出DNS查询报文,在其数据库中快速查找www.baidu.com,找到包含该IP地址的DNS源记录(假设缓存在当前DNS服务器,源与权威DNS服务器,否则需要递归、迭代查找)。DNS服务器形成了包含该主机名到IP地址映射的DNS回答报文,放入UDP报文段,通过comcast网络反向转到小明学校路由器,经过以太网交换机到小明电脑
- 小明电脑从DNS报文抽取出www.baidu.com的IP地址
6.7.4 Web客户 - 服务器交互: TCP和HTTP
- 小明电脑有了百度的IP地址,终于能生成TCP套接字,用于向www.baidu.com发送HTTP GET报文。小明生成套接字时,小明电脑中的TCP必须首先与www.baidu.com的TCP执行三次握手。因此小明电脑首先生成具有目的端口80(HTTP)的TCP SYN报文段,将报文段放在目的IP地址为baidu的IP数据报,将数据报放在MAC地址为网关路由器的帧中,向交换机发送该帧
- 在学校网络、comcast网络和百度的路由器朝着www.baidu.com转发包含TCP SYN的数据报,使用每台路由器中的转发表。支配分组经过comcast和百度网络之间域间链路转发的路由器转发表项,是BGP协议决定的
- 包含TCP SYN的数据报到达www.baidu.com,从数据报抽取报文并分解到与80端口向联系的欢迎套接字。对百度HTTP服务器和小明电脑之间的TCP连接生成一个连接套接字。产生一个TCP SYNACK报文段,将其放入向小明电脑寻址的一个数据报中,最后放入链路层帧中,将www.baidu.com连接到其第一条路由器
- 包含TCP SYNACK报文段的数据报通过百度、comcast和学校网络,最终到达小明电脑的以太网卡。数据报在操作系统中分解到TCP套接字,从而进入连接状态
- 借助小明电脑上的套接字,浏览器生成包含要获取URL的HTTP GET报文,报文写入套接字,GET报文成为TCP报文段的数据载荷。交付到百度
- baidu的HTTP服务器从TCPsocket读取HTTP GET报文,生成一个HTTP响应报文,将请求的Web页内容放入HTTP响应体重,将报文发送进TCPsocket
- 小明浏览器从套接字读取HTTP响应,抽取Web网页的html,显示了Web网页