网络的全貌

首先我们来看一下浏览器访问Web服务器这一过程的全貌.访问Web服务器并显示网页这一过程包含了浏览器和Web服务器之间的一系列交互,主要是下面这样的交互.

  1. 浏览器向Web服务器发送请求.
  2. Web服务器根据请求向浏览器发送响应.

要实现应用程序之间的交互,我们需要一个能够在浏览器和Web服务器之间传递请求和响应的机制.网络是由很多计算机等设备相互连接组成的,因此在通信过程中需要确定正确的通信对象,并将请求和响应发送给它们.请求和响应在传递的过程中可能会丢失和损坏,因此这些情况也要考虑到.

所以说,我们需要一种机制,无论遇到任何情况都能够将请求和响应准确无误地发送给对方.由于请求和响应都是由0和1组成的数字信息,所以可以说,我们需要的是一种能够将数字信息搬运到指定目的地的机制.

这种机制是由操作系统中的网络控制软件,以及交换机,路由器等设备分工合作来实现的,它的基本思路是将数字信息分割成一个一个的小块,然后装入一些被称为"包"的容器中来运送.

总体上分为如下六个环节.

Web浏览器

我们的探索之旅是从浏览器中输入网址(URL)开始的.例如,当我们输入下面这样的网址时,浏览器就会按照一定的规则去分析这个网址的含义,然后根据其含义生成请求消息.

http://segmentfault.com/zuckjet/index.html

上面这个例子中,浏览器生成的消息表示"请给我index.html这一文件中存储的网页数据",接着浏览器会将请求发送给 Web服务器.
当然浏览器并不会亲自负责数据的传送.传送消息是搬运数字信息的机制负责的工作,因此浏览器会委托它将数据发送出去.

协议栈、网卡

协议栈(网络控制软件叫做协议栈)会将从浏览器接收到的消息打包,然后加上目的地址等控制信息.接下来,协议栈会将包交给网卡(负责以太网或无线网络通信的硬件).然后,网卡会将包转换为电信号并通过网线发送出去.这样一来,包就进入到网络中了.

集线器、交换机、路由器

网卡发送的包会经过交换机等设备,到达用来接入互联网的路由器.路由器的后面就是互联网,网络运营商会负责将包送到目的地,就好像我们把信投到邮筒中之后,邮递员会负责把信送给收件人一样.

接入网、网络运营商

接下来,数据从用来接入互联网的路由器出发,进入了互联网的内部.互联网的入口线路称为接入网.一般来说我们可以用电话线,ISDN,ADSL,有线电视,光线,专线等多种通信线路来接入互联网,这些通信线路统称为接入网.接入网连接到签约的网络运营商,并接入被称为接入点的设备.
接入点的实体是一台专为运营商设计的路由器,我们可以把它理解为离你家最近的邮局.接入点的后面就是互联网的骨干部分了.

防火墙,缓存服务器

通过骨干网之后,网络包最终到达了Web服务器所在的局域网中.接着,它会遇到防火墙,防火墙会对进入的包进行检查.检查完之后,网络包接下来可能还会遇到缓存服务器.如果要访问的网页数据正好在缓存服务器中能够找到,那么就可以不用劳烦Web服务器,直接从缓存服务器读出数据.

Web服务器

当网络包到达Web服务器后,数据会被解包并还原为原始的请求消息,然后交给Web服务器程序.和客户端一样,这个操作也是由操作系统中的协议栈来完成的.接下来Web服务器程序分析请求消息的含义,并按照其中的指示将数据装入响应消息中,然后发回给客户端.

相关推荐