当下,计算机网络(Computer Network)已经成为海量应用程序及服务的连接基础。企业唯有掌握充足的算力、网络连接能力,以及数据存储能力,才能获得商业战场上的战略制高点。云网络不仅改变了计算和应用的部署方式,而且重构了未来网络的基础设施,让企业可以像使用水电一样使用算力,贴近客户,连接商业伙伴,快速构建和提升商业服务能力。越来越多的企业服务与应用因由云而生、依云而建的云网络而改变。
1.1什么是网络
网络在当今的生活中无处不在,究竟什么是网络呢?
数据从源节点通过设备之间的连接(链路)送达目的节点。源节点与目的节点通过各种线路、设备(转换)装置连接在一起构成的数据链路就是网络,如图1-1 所示。
图1-1 简单的网络模型
当下主流的TCP/IP 网络,是以“编址+ 路由”的方式传递数据的。整个过程涉及以下几个基本概念,如图1-2 所示。
图1-2 TCP/IP 网络模型
1. 编址
在TCP/IP 网络中,通常会用IP 地址、域名地址、MAC 地址来描述数据报文的目的地。IP 地址是IP 协议提供的一种统一的地址格式。因而互联网上的每一个网络和每一台主机都有一个逻辑地址,以此来屏蔽物理地址的差异。由于IP 地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,所以,人们设计了域名, 并通过域名系统(Domain Name System,DNS)将域名和IP 地址相互映射,让人们更方便地访问互联网,而不用记住能够被机器直接读取的IP 地址串。而MAC 地址(Media Access Control Address) 称为以太网硬件地址(Ethernet Hardware Address)、以太网地址(Ethernet Address)或物理地址(Physical Address)。在OSI 模型中,第三层网络层用IP 地址进行寻址,IP 地址用于在网络中标识一个网络或者一台主机。数据链路层用MAC 地址寻址,标识一个网络接口。一个网络设备具有一个或多个网络接口。
将IP 世界的编址方式与邮政快递系统进行类比。通常,我们发送包裹时会写上收件人地址,例如“北京市朝阳区绿地阿里中心B 座, 小明,手机号”, 这与域名地址类似。这个地址会被翻译为一个实际可送达的地址“北京市朝阳区望京东园四区9 号楼, 阿里小邮局,小明,手机号”,这就是一个明确的可寻址的IP 地址。而当快递被送到阿里小邮局后,系统会查找小明的手机号,给他的工号发一封邮件。这个过程就是将公网可达的IP 地址翻译为内部IP 地址(工号)。最后,由某个员工将这个包裹送到小明的工位,这个工位与MAC 地址对应,是在内部可寻址的唯一地址。
2.DNS 域名解析
DNS 服务器是将域名地址翻译为IP 地址的设备。IP 地址分为公网IP 地址和私网IP 地址。只有网站将公网IP 地址在域名注册商那里注册了之后,用户才能通过域名访问网站,私网IP 地址只能私网内部访问,如图1-3 所示。当快递员将货物送到客户手上时,会打电话找到客户,这相当于获得了公网IP 地址。如果该公司有小邮局,则需要由小邮局通过内部邮件通知收件人,以避免内部的人员直接面向快递员,导致工作被打扰。在IP 世界里,负载均衡或NAT 设备便起到了小邮局的作用, 它们将公网IP 地址翻译为内部应用服务器的私网IP 地址。
图1-3 DNS 域名解析
3. 数据
有了网络层的地址,接下来就是对数据进行打包传输。通常会使用传输控制协议(Transmission Control Protocol,TCP) 和用户数据包协议(User Datagram Protocol,UDP)。通常大家关注的是应用层协议,包括超文本传输协议(HTTP)、远程登录服务协议(Telnet)等,并不关心传输层TCP 或UDP。只需要这样简单地理解:TCP 相当于EMS,有确认机制,信件的传递是有保障的;UDP 相当于普通包裹,在传输过程中可能丢失。
4. 路由
包裹打包完成后,需要选择合适的运输工具,比如面包车、大货车等。由于不同工具的承载量不同,需要对货物进行分包。运输包裹的汽车、高铁、飞机,类似于网络中的骨干网络、专线网络。报文传输会经过多种设备,每一步都在进行路径的选择,即路由。
5. 交换机
报文从主机网卡发出后,用到的第一个网络设备是交换机。交换机查询报文以太网头的目标MAC 地址,然后往该MAC 地址所在的端口或主机发送报文。通常在同一个网段内的主机都是通过MAC 地址来通信的。主机通过ARP(Address Resolution Protocol)喊话的广播方式来获得对方的目的MAC 地址,然后发送单播报文。当目的IP 地址不是同一个网段的主机时,MAC 地址默认为网关(路由器) 的地址。
6. 路由器
在报文传输链路的每个十字路口,路由器都会根据报文的目标IP 地址查询路由表来找到合适的出口。如果发现出口的带宽最大传输单元(Max Transit Unit, MTU)小于报文长度,那么路由器还会进行IP 分片处理。这是所有网络层IP 转发设备都具备的功能。当报文标签设置了不能分片的标志时,路由器会把MTU 值通过ICMP 返回给源主机,让它重组一个合适长度的报文再进行发送。
7. 防火墙
当源IP 地址是私有地址,又需要访问公网IP 地址时,会用到NAT地址转换设备, 如防火墙设备。通过其源IP 地址转换(Source Network Address Translation,SNAT ) 能力,将源/ 目的地址为私网的报文发送到公网,再经过运营商网络,继续送至数据中心中的应用服务器,完成整个数据链路的传输。为了保护应用服务器免受恶意攻击,通常需要部署防火墙及DDoS 防护相关设备。
8. 负载均衡
当报文到达应用服务器前,通常需要使用负载均衡(Load Balance)设备对报文进行分发。通常负载均衡服务器会根据后端的负载(会话数/ 内存)情况,采用轮询法(Round Robin)、最小连接数法(Least Connections)、源地址哈希法(Hash)等算法选择真实的服务器。如前文所述的小邮局,它会将报文的目标地址进行DNAT 转换,修改为后端真实的服务器私网IP 地址。同时,为了让回程报文返回到相同的负载均衡设备,会将报文的源IP 地址做SNAT,修改为负载均衡服务器的IP 地址。
经过转换的报文再由路由器设备根据目标IP 地址所在的路由器出口及路由器中的ARP 表,重新设置目标主机的MAC 地址,然后由交换机根据目标MAC 地址将报文送到主机的网卡。至此一个完整的报文在IP 网络中传送完成。图1-4 展示了交换机、路由器、防火墙、负载均衡之间的关系。
图1-4 交换机、路由器、防火墙、负载均衡之间的关系