什么是互联网?互联网是由什么组成的?我们身处一个怎样的网络环境?相信很多人其实都无法回答。互联网起始于1969年,至今已经发展为一个极其庞大的全球网络,没有人能够详细描述其全貌。
我觉得这是一个特别奇怪的现象,在软件行业,一个软件如果没有人能够描述其全貌,那么通常是因为这个软件过于复杂,使人难以维护。而互联网发展至今,竟然依然健壮,并且在历史潮流中愈发光彩,不禁令人想要一探究竟。
硬件
首先来简单了解一些网络中常见的硬件设备。
- 路由器:数据中转站,基于IP协议转发数据,同时还提供了NAT、网络防火墙、WIFI等功能
- 交换机:用来做数据交换的一种设备,基于mac协议转发数据帧
- 网线:连接各设备之间的传输介质,基于电信号传播
- 光纤:作用类似于网线,基于速度更快的光信号进行传播
- 光猫:进行光信号和电信号之间相互转换的一种设备
术语
- 互联网:一种计算机网络,也被称之为因特网、公网等
- 主机:代指手机、电脑、笔记本、网络摄像头等边缘设备
- 流量:在计算机网络中所传输的数据
- 路由:通常指路由器收到一个数据然后将数据转发到其他的地方
- 路由表:通常存在于路由器中,标记着IP地址应该从哪一个网卡中进行传输
局域网(LAN)
局域网是一种小型的计算机网络,大多数人接触互联网应该都是从局域网开始的,当你购买了路由器,网线,并且把电脑、笔记本通过网线连接在该路由器时,它们之间便形成了一个局域网
运营商网络
通常我们还需要从网络运营商处拉一条网线接入到互联网,所以我可以大胆的猜测这时的物理连接应该是: 主机>家用路由器>运营商路由器>互联网。所以这时的互联网大概是这样
由上图可以看出,运营商网络更像是一个大型的局域网,家庭局域网通过网线或光纤的方式接入到运营商的网络中进行上网。
那么现在还需要思考一个问题,不同的运营商之间是如何建立物理连接并传输数据的呢?
如何连接多个运营商网络?
两个运营商之间如果需要进行通信,那么首先需要做的应该是建立物理上的链接。
我们知道运营商有一个顶层的路由器会汇聚所有的流量,并且知道交换机和路由器都可以进行数据交换,而目前这种仅用来做数据交换的场景显然是用二层交换机会更加合适,所以我们可以把多个运营商顶层路由器通过交换机连接在一起,形成如下结构
这样通过中心交换机聚合了多个运营商网络,如果再扩展其他的运营商,只需要将其顶层路由器接入到中心交换机即可,这样就在物理层面形成了不同运营商网络之间的互连。
众所周知,互联网中数据是根据ip地址进行转发的,这意味着运营商的顶层路由器必须拥有自己的互联网ip地址,并且能够知道其他运营商IP地址及对应的物理线路,这个IP地址和物理线路的对应关系其实就是路由表。然而IP地址是有限的,并且互联网中不能拥有同样的ip地址,因此必须有一个统一管理并分配的机构,这个机构是IANA。
IP地址分配及AS自治系统划分
IANA将互联网划分为不同的自治系统 (AS),然后将某一批公网IP直接分配给其自治系统,并且规定了不同自治系统之间可以通过边界网关协议(BGP)交换路由信息。如下图所示
可以看到IANA并没有实际参与互联网物理链路的建设,而仅仅是对其进行了逻辑上的划分和管理。AS自治系统和我们定义的运营商网络概念重合,因此下文将使用更加严谨的"自治系统"代替"运营商网络"
骨干网的形成
互联网的体量毕竟过于巨大,如果采用上述的网络结构,那么其中心交换机将会承载极其庞大的压力,因此为了避免单一设备的瓶颈成为整个网络的瓶颈,所以需要对中心设备(交换机)进行进一步的升级,最终使用了一个特殊的网络替代了中心交换机,这个网络负责连接不同自治系统并在不同自治系统之间路由流量,这个网络就是骨干网。骨干网在一些节点上提供了路由器/交换机用来支持自治系统的接入,这些节点被称为骨干网接入点(IXP)。
互联网
骨干网IXP设备支持接入不同的自治系统,并且负责不同自治系统之间的流量转发功能。由于其需要支持边界网关协议BGP,所以我更倾向于认为骨干网IXP其实是路由器。
AS自治系统通过骨干网实现了网络互连,同时由于骨干网存在于不同的国家、不同的地区、不同的机构,所以其内部结构通常也有所不同。
现在基于全球通信的需求,我们可以将全球范围内的骨干网与骨干网进行连接,形成一个覆盖全球的大型网络,也就是目前所说的互联网。
关于骨干网的一些猜想
网络上关于骨干网的资料比较杂,也或许是因为不同网络运营商的骨干网结构也不相同,所以很难找到一份详尽的资料。
我收集了网上的一些资料,认为多层次的骨干网是较为合理的一种划分方式。
因此当我们访问互联网时,流量所经过的网络应该是:局域网->运营商接入网(大内网)->城域网(可能也是局域网)->区域骨干网->国家级骨干网->全球互联骨干网。
当然,这部分是我的个人猜测,实际的骨干网结构或许比我预想的更为复杂。
纸上得来终觉浅、觉知此事要躬行。
对于理论知识,始终要保持一种审视的眼光,不要轻易相信任何没有经过实践验证的理论。