赞
踩
本文摘自《网络是怎样连接的》一书
网络的全貌 让我们先来看一下浏览器访问 Web 服务器这一过程的全貌。
访问 Web 服务器并显示网页这一过程包含了浏 览器和 Web 服务器之间的一系列交互,主要是下面这样的交互。
(1) 浏览器:“请给我 ××× 网页的数据。”
(2) Web 服务器:“好的,这就是你要的数据。”
在这一系列交互完成后,浏览器就会将从 Web 服务器接收到的数据显示在屏幕上。虽然显示网页这个过程 非常复杂,但浏览器和服务器之间通过网络进行的交互却出乎意料地简单。
虽然我们看到的很简单,但是在内部还有分为几个部分,如下图所示
我们将首先探索浏览器的工作方式。大家可以认为我们的探索之旅是从在浏览器中输入网址(URL)开始 的。例如,当我们输入下面这样的网址时,浏览器就会按照一定的规则去分析这个网址的含义,然后根据其 含义生成请求消息。
http://www.lab.glasscom.com/sample1.html
在上面这个例子中,浏览器生成的请求消息表示“请给我 sample1.html 这一文件中储存的网页数据”,接着浏 览器会将请求消息发送给 Web 服务器。 当然,浏览器并不会亲自负责数据的传送。传送消息是搬运数字信息的机制负责的工作,因此浏览器会委托 它将数据发送出去。具体来说,就是委托操作系统中的网络控制软件将消息发送给服务器。
我们将探索搬运数据的机制。其中最先出场的是协议栈(网络控制软件叫作协议栈)。这个软件会**将 从浏览器接收到的消息打包,然后加上目的地址等控制信息。**如果拿邮局来比喻,就是把信装进信封,然后 在信封上写上收信人的地址。这个软件还有其他一些功能,例如当发生通信错误时重新发送包,或者调节数 据发送的速率等,或许我们可以把它当作一位帮我们寄信的小秘书。 接下来,协议栈会将包交给网卡(负责以太网或无线网络通信的硬件)。然后,网卡会将包转换为电信号并 通过网线发送出去。这样一来,包就进入到网络之中了。
接下来出场的物品会根据接入互联网的形式不同而不同。客户端计算机可以通过家庭或公司的局域网接入互联网,也可以单独直接接入互联网。 很遗憾,我们的探索之旅无法涵盖所有这些可能性,因此只能以现在最 典型的场景为例,假设客户端计算机是连接到家庭或公司的局域网中,然后再通过 ADSL 和光纤到户 (FTTH)等宽带线路接入互联网。 在这样的场景中,网卡发送的包会经过交换机等设备,到达用来接入互联网的路由器。路由器的后面就是互 联网,网络运营商会负责将包送到目的地,就好像我们把信投到邮筒中之后,邮递员会负责把信送给收件人 一样。
接下来,数据从用来接入互联网的路由器出发,进入了互联网的内部。 互联网的入口线路称为接入网。一般 来说,我们可以用电话线、ISDN、 ADSL、有线电视、光线、专线等多种通信线路来接入互联网,这些通 信线路统称为接入网。接入网连接到签约的网络运营商,并接入被称为接入点(Point of Presence,PoP)的 设备。 接入点的实体是一台专为运营商设计的路由器,我们可以把它理解为离你家最近的邮局。从各个邮筒中收集 来的信件会在邮局进行分拣,然后被送往全国甚至全世界,互联网也是一样,网络包首先通过接入网被发送 到接入点,然后再从这里被发送到全国甚至全世界。接入点的后面就是互联网的骨干部分了。 在骨干网中存在很多运营商和大量的路由器,这些路由器相互连接,组成一张巨大的网,而我们的网络包就 在其中经过若干路由器的接力,最终被发送到目标 Web 服务器上。其实它的基本原理和家庭、公司中的路由器是相同的。也就是说,无论是在互联网中,还是在家庭、 公司的局域网中,包都是以相同的方式传输的,这也是互联网的一大特征。 不过,运营商使用的路由器可跟我们家用的小型路由器不一样,它是一种可以连接几十根网线的高速大型路 由器。在互联网的骨干部分,存在着大量的这种路由器,它们之间以复杂的形式连接起来,而网络包就在这 些路由器之间穿行。 此外,路由器不但在规模上存在差异,在路由器间的连接方式上也存在差异。家庭和公司局域网中一般采用 以太网线进行连接,而互联网中除了以太网线连接之外,还会使用比较古老的电话技术和最新的光通信技术 来传送网络包。这一部分所使用的技术是当今网络中最热门的部分,可以说是最尖端技术的结晶。
通过骨干网之后,网络包最终到达了 Web 服务器所在的局域网中。接着,它会遇到防火墙,**防火墙会对进 入的包进行检查。**大家可以把防火墙想象成门口的保安,他会检查所有进入的包,看看有没有危险的包混在 里面。检查完之后,网络包接下来可能还会遇到缓存服务器。网页数据中有一部分是可以重复利用的,这些 可以重复利用的数据就被保存在缓存服务器中。如果要访问的网页数据正好在缓存服务器中能够找到,那么 就可以不用劳烦 Web 服务器,直接从缓存服务器读出数据。 此外,在大型网站中,可能还会配备将消息分 布到多台 Web 服务器上的负载均衡器,还有可能会使用通过分布在整个互联网中的缓存服务器来分发内容 的服务。经过这些机制之后,网络包才会到达 Web 服务器
当网络包到达 Web 服务器后,数据会被解包并还原为原始的请求消息,然后交给 Web 服务器程序。 和客户 端一样,这个操作也是由操作系统中的协议栈(网络控制软件)来完成的**。接下来,Web 服务器程序分析 请求消息的含义,并按照其中的指示将数据装入响应消息中,然后发回给客户端。 响应消息回到客户端的过 程和之前我们介绍的过程正好相反。 当响应到达客户端之后,浏览器会从中读取出网页的数据并在屏幕上显示出来。到这里,访问 Web 服务器 的一系列操作就全部完成了,我们的探索之旅也到达了终点。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。