一、互联网的组成(教材版)
互联网的拓扑结构非常复杂 ,并且在地理位置上覆盖了全球,从工作方式上看,可以划分为两大块:
- 边缘部分:这部分由所有连接在互联网上的主机组成。这部分是用户直接使用的,用来进行通信和资源共享。
- 核心部分:由大量网络和连接这些网络的路由器组成。这部分用来为边缘部分提供服务。
注意:上述分类过于正规,有兴趣深入的同学可以看大学计算机网络的教材,请看我们下述的科普版本。
二、互联网的组成(科普版)
说到互联网大家都不陌生,利用互联网打开电脑或手机看新闻、写邮件、逛淘宝、聊微信、看抖音。现代人离开了手机离开了互联网就好像和全世界断了联系,好像已经作为我们身体的一部分了。
区块链号称是是下一代互联网。那么,到底什么是互联网?
作为一个技术老兵,见证互联网的发展,以下是个人对什么是互联网的理解:谈互联网主要就是谈互联网的组成,也就是说明互联网的基础设施的组成。
互联网的基础设施非常庞大,包含硬件、软件两部分。下面我们先来看下当你打开浏览器,输入一个网址比如 <www.taobao.com> ,几秒钟就看到淘宝首页。这个一个简单的动作,整个互联网到底发送了什么?其实这是一个非常非常复杂的事情。下面是一个简化的过程描述:
- 浏览器检查是否有缓存过域名对应IP地址
- 如果没有缓存的域名对应的IP,请求域名服务器解析成对应的IP地址(这个过程也非复杂,暂省了)
- 浏览器建立Socket连接,根据http协议组装get 类型的http header,通过tcp/ip协议发送报文。
- tcp/ip协议会通过网络层网卡(wifi或网线)发射信号到家庭里面的路由器,家里的路由器发送信号到电讯厂商的交换机(中间可能会经过很多次的路由)找到目标服务器,服务器也许托管在IDC机房,也许在阿里云VPS,也许在国外。
- 机房里面会有大型交换机、机柜、专业的精密空调,你要访问的那台IP的服务器就在其中某个机柜中。
- 在服务器接收到信号后,会根据tcp/ip协议解出http协议头。根据get的请求决定需要返回的数据
- 在服务器端实际上根据业务还有很复杂的逻辑;服务器后面还有许多台服务器,到底指定那台服务器来处理请求,需要负载均衡设备来完成
- 要返回的数据是在缓存里面、还是在静态文件中、还是在数据库(如MySQL,Oracle)中
- 浏览器根据返回的数据,发现有一些静态资源(如CSS,JS,图片等)时有重新发起新的http请求,而这些静态资源文件可能在CDN网络中,请求静态资源的整个过程需需要从第一步重新再走一遍,并且很可能中间经过的交换机,路由过程是不一样的。
上面的过程是不是比你想象中的复杂呢?其实这只是非常非常简化的过程。在上面的过程中,也许你已经发现了一些名词,比如网卡,路由器,交换机,又比如tcp/ip,域名,http。这些其实就是互联网设施中的一部分,有些也许你听说过,有些也许没有听过。为了方便理解,笔者把互联网的组成分成硬件、软件两类总结如下。
2.1 互联网的硬件组成
硬件组成主要包括终端设备,主要是联网的个人设备;组成家庭(企业)局域网、城域网、主干网的网络设备;提供内容服务的服务主机设备等。
- 终端设备:电脑(pc,笔记本),移动设备(手机,pad),智能电视,智能家居
- 网络设备:网卡,网线,水晶头,路由器,家用交换机,防火墙设备,中继器,桥接器
- 主机设备:IDC机房,机柜,精密空调,负载均衡器,服务器,工作站,小型机、大型机
注意:应该没有列全,想到后再补充
2.2 互联网的软件组成
互联网的软件非常多,不太好分类,大致分成网络协议类,操作系统类,平台中间件类,应用类。
- 网络协议类,比如互联网的基础协议tcp/ip协议
- 操作系统类,比如window,linux,macOS,android,iOS
- 平台中间件类:比如webServer,Nginx,Apache,Tomcat,MySQL等
- 应用类:比如浏览器,微信,邮箱,游戏等等。
注意:上述四种分类,上三种都是基于协议开发的应用程序,也就说作为开发的我们要想开发上三种应用程序,则必须得了解互联网的基础协议。