2.3 计算机网络
某个周末,位于深圳南山区的云计算专家正在通过计算机和北京海淀区做服装生意的朋友解释什么是“云计算”,双方你一句我一句地在计算机上互传信息。做服装生意的朋友越听越糊涂,最后云计算专家无奈地输入了如下一句话:
“我给你解释不清楚了。”
然后单击“发送”按钮,对方马上反馈了一个晕倒的表情,聊天就这样无疾而终。现在的问题是,单击“发送”按钮后,“我给你解释不清楚了。”这句话如何能准确无误地立即显示在北京海淀区的那台计算机的屏幕上,而地球上千千万万的其他计算机不会显示这句话呢?这两个问题可以归结为:如何把一台计算机发出的信息准确无误地发送到另外一台计算机上?这个问题就是计算机网络要解决的问题,如图2-6所示。
图2-6 使用两台计算机进行通信
写过纸质信件的人很清楚,为了将信件送到对方手中,必须在信封上写上收信人的详细地址和姓名,且“地址+姓名”是唯一的。至于这封信具体如何传递,那就不用我们操心了。如果两台计算机之间需要通信,那么每台计算机需要定义一个唯一的地址——32个由0和1组成的二进制数字(为了便于人们记忆,常把32位0和1组成的数字分成四段,每段8位,8位二进制数再转换为十进制数,最终写成xxx.xxx.xxx.xxx格式,如192.168.0.10对应的二进制分段为11000000.10101000.00000000.00001010,因此最终的32位二进制地址是11000000101010000000000000001010,这有点类似于身份证号码,必须全球唯一。不同于“xx市xx区xx街xx号”格式的地址,计算机的地址称为IP地址,格式是“xxx.xxx.xxx.xxx”。有的读者可能马上会想到这样一个问题:32位二进制数字最多能给多少台计算机分配唯一的IP地址呢?答案是232,约等于43亿台设备。目前32位的地址(简称为IPv4地址)早已分配完毕,其中,分配给中国的IPv4地址非常少,只与微软一家企业拥有的IPv4地址的数量相当。在中国,公网IPv4地址极度匮乏,因此租用一个公网IP地址,价格非常昂贵。为了解决IPv4地址不够用的问题,人们发明了IPv6。IPv6采用128位二进制数字编码,可以分配的地址数量可达2128,这是一个天文数字,平摊下来,地球上每平方米可以分配上百万个IPv6地址。但是IPv6地址还没有被普遍采用,尽管现在的网络设备都已支持IPv6。中国还发明了动态域名服务(DDNS,比较有名的产品有花生壳等),利用花生壳,解决了外网如何通过域名访问局域网内的计算机的问题。
现在我们再来看看深圳的云计算专家发送的“我给你解释不清楚了。”这一消息是如何传递到北京朋友面前的计算机的。单击“发送”按钮后,消息、自己计算机的IP地址、对方计算机的IP地址被打包在一起并通过宽带发送给深圳电信,然后在电信内部传递,在到达北京海淀区电信后,由海淀区电信通过对方的宽带发送给对方的计算机。注意,消息的打包和传递都是由计算机网络自动完成的,而且以电或光的速度传播,所以速度非常快。传递路径上转发机构(通常是路由器)的多少决定了一条消息到达对方计算机消耗的时间(术语称为延时),因此,深圳的用户给美国的朋友发送消息可能比给武汉的朋友发送消息还快。实时输入/输出的软件对计算机网络的延时要求较高,尤其是实时强交互性软件,对计算机网络延时的要求更苛刻。而批量输入/输出的软件对计算机网络的延时要求并不高,比如在线看电影,刚开始有点延时,后面就流畅地播放了。
一个云计算中心的延时半径通常为100毫秒,即一个数据包从云中心出发,50毫秒能到达的范围(返回也要50毫秒),这个数字与地理位置没有直接关系,而与网络路径上的转发机构和数目有关。比如深圳的超算中心,100毫秒延时半径可能包括了美国的洛杉矶,但没有包括广东省内的梅州市,因为深圳与梅州市之间要经过太多性能低下的转发设备,而到达美国只经过少数几台高速路由器,如图2-7所示。
图2-7 深圳超算中心100毫秒延时半径
计算机网络的另一个指标是带宽。带宽是每秒能传递的数据量。带宽越大,每秒传递的数据量就越大。如果把计算机网络比喻为布满收费站的高速公路(车辆从一个收费站开到另一个收费站的时间可以忽略不计,但是在收费站交钱时要消耗时间),那么带宽就与车道数直接相关,延时就是从出发点到目的地在经过收费站交钱时消耗的时间之和。
计算机网络的第三个指标是丢包率(或称为掉包率)。丢包率是指在一定时间内被丢掉的数据包总数占本机发出的数据包总数的百分比。公式如下:
本机发出的数据包如果在规定的时间内没有得到对方的确认,就认为此数据包丢失,于是本机重发此数据包。比如对方一共收到8个数据包,而本机一共发出了10个数据包(因为重发了2个数据包),所以丢包率为20%,即×100%。丢包率越小,说明网络越稳定,当丢包率超过10%时就很严重了,这时需要检查网络。
接下来我们来谈一谈叠加网络技术。为了方便大家去网上搜索,在这里给出这个术语的英文名称:Overlay Networks。叠加网络,顾名思义,就是在一个网络平面上叠加更多层的网络平面,手法无非就是“包中之包”——把叠加协议和信息数据打包,作为底层网络平面传递的应用层数据。实现叠加的最新技术有VXLAN、NVGRE和STT,这些技术主要用来解决在大规模、多机房、跨地区的云计算中心部署多租户环境的问题。叠加网络技术类似于在邮政系统上建立一个情报网络,利用现有的邮局来收发情报。为了防止未经授权的人获取情报信息,需要先对情报信息进行加密处理,再放入信封,当然,对方事先要知道解密的方法。
叠加网络与虚拟局域网有着本质的不同,虚拟局域网通过分割一张大的局域网来减少广播风暴,本质是“分割”网络;而叠加网络是把“局域网”延伸到底层网络平面的任何地点,本质是“连通”。这里的“局域网”是虚拟的概念,对用户是透明的。VPN就是一个典型的在广域网中通过叠加网络技术构建地理位置跨度很大的局域网的例子,如果不采用叠加网络技术,那么一个公司很难或者根本不可能建立一个跨城市的局域网。为了进一步说明叠加网络的概念,请看下面的多租户环境的情景案例。
中国微算科技有限公司运营一个大型公共云,包含北京、上海和西安3个计算中心,共拥有80万台服务器,构造出近5000万台虚拟机,主营业务是对外出租虚拟机(IaaS云服务)。中国慧献是一家全国性的集团公司,机构分布在中国各地,为了节约成本和快速部署应用,该公司向中国微算科技有限公司长期租赁1万台虚拟机,成为中国微算科技有限公司的最大客户。这1万台虚拟机由中国慧献集团内部的技术工程师规划成近300个局域网(VXLAN),每个局域网内的虚拟机个数相对固定,但是虚拟机运行的地点与使用虚拟机的员工紧密相关。比如中国慧献员工郭淑敏在北京出差10天,她的虚拟机就在北京的云中心运行,等她返回上海后,虚拟机也将“漂移”到上海的云中心运行。这一切对郭淑敏来说都是透明的,她只是感觉首次在北京登录云端时稍微慢一点,几分钟之后就很流畅了,首次在上海登录时也是如此。不管在哪里,郭淑敏都是使用相同的IP地址,输入相同的账户和密码,然后看到自己熟悉的计算机桌面。郭淑敏昨天编辑的PPT依然在桌面上打开,光标停在“公司今年的财务”,处于是她继续输入“状况好于去年……”郭淑敏的虚拟机归口于财务部局域网,财务部局域网横跨北京、上海和西安云中心。这是一个典型的叠加网络案例。
最后,我们总结一下本节的知识点。
(1)计算机网络解决位于不同地区的两台计算机之间如何通信的问题。
(2)需要与外界通信的计算机必须拥有一个唯一的IP地址。
(3)计算机网络的3个重要指标是带宽、延时和丢包率。
(4)延时由网络路径上的转发机构的速度和数量决定,与通信双方地理位置的远近无关。
(5)叠加网络技术解决了在广域网上灵活构建虚拟局域网的问题。
我们要重点关注带宽和延时,因为它们是部署云计算时不可忽视的两个重要因素。