网络的全貌
以一次浏览器数据请求为例,整个网络请求分为三个部分。
- 客户端
- 网络运营商
- 服务器端
一个完整的客户端组成部分:
- web浏览器
- 协议栈
- 网卡
- 集线器
- 交换机
- 路由器
中间运营商部分
- 接入网
- 网络运营商
web服务器部分:
- 防火墙
- 缓存服务器
- web服务器(web应用程序,协议栈,网卡驱动)
下面我们一一解释这些组成部分
1.web浏览器
首先浏览器的工作方式,当我们在浏览器中输入网址(URL),浏览器会按照一定的规则去分析这个网址的含义,然后根据其含义生成请求信息。
当然浏览器不会亲自负责数据的传送,浏览器会委托操作系统去做这件事情。
2.协议栈,网卡
协议栈的作用是把浏览器要传输的数据打包,然后加上目的地址等控制信息。通俗的理解,相当于准备客户端把数据送出去前的打包准备工作。
接下来,协议栈会将包送给网卡(负责以太网或无线网络通信的硬件)。然后网卡将包里的信息换转为电信号通过网线发送出去,这样,包就进入到网络之中了。
3.集线器,交换机,路由器
这三样会根据具体接入互联网的形式不同而不同,我们以计算机连接到家庭或者公司局域网,再通过ADSL和光纤到户(FTTH)等宽带网络接入互联网为例。
在上面这个场景中,网卡发送的包会经过交换机等设备,到达用来接入互联网的路由器。路由器后面就是互联网。
4.接入网,运营商网络
接下来,数据从接入互联网的路由器出发,进入互联网内部。互联网的入口线路被称为接入网。
一般来说,我们可以用电话线,ISDN,ADSL,有线电视,光纤等线路接入互联网,这些通信线路统称为接入网。
接入网链接到签约的网络运营商,并接入称为接入点,接入点的实体是一台专门为运营商设计的路由器。
接入点后面就是互联网的骨干部分了,在骨干网中存在很多运营商和大量路由器,这些路由器相互连接,组成一张巨大的网。
5.防火墙,缓存服务器
通过骨干网之后,网络包终于到达了web服务器所在的局域网。接着它会遇到防火墙,就像家门口的保安,会检查所有进入的包。
安检完,数据包还可能遇到缓存服务器,用来处理一部分重复利用的数据,增加服务器效率。
此外,大型网站上可能还会通过负载均衡。
经过这些机制,网络包才会进入web服务器。
6.web服务器
数据包会被还原为原始的请求消息,然后交给web服务器程序。和客服端一样,这个操作也是由操作系统中的协议栈完成的。接下来,web服务器获得请求后,向客户端发送响应消息,这个过程和我们之前介绍的正好相反。
后面的章节会从细节原理上还原上面提到的过程。