本系列文章为笔者阅读计算机网络入门书籍《网络是怎样连接的》整理的笔记,分享出来希望能够与大家一起探讨,同时也是对知识进行一次梳理。《网络是怎样连接的》是一本非常适合像笔者这种对计算机网络不甚理解的小白启蒙的书籍。只要能进下心来慢慢看,都能看懂,不会像许多其它的计算机网络科普书籍一样越看越困,还看不懂(可能还是本人太菜了)。
注:本系列文章旨在与大家探讨网络连接的全过程,因此会省略许多细节性问题,有兴趣的小伙伴可以阅读原著(强烈推荐!!!)
废话不多说,下面就开始这本书籍的探索之旅。本篇文章主要是介绍这整本书的结构以及脉络,由于这一篇是为了介绍全书脉络,本篇内容不需要提炼,所以内容基本与原文无异,希望大家可以花点时间把它看完。
下面是一张探索之旅的路线图,全书就是按照这个脉络进行讲解的,后面会在每篇文章的开头都附上这张图片,以便了解自己学习到了哪一个环节。
第一章 Web浏览器
我们将首先探索浏览器的工作方式。大家可以认为我们的探索之旅是从在浏览器中输入网址(URL)开始的。例如,当我们输入下面这样的网址时,浏览器就会按照一定的规则去分析这个网址的含义,然后根据其含义生成请求消息。
http://www.lab.glasscom.com/sample1.html
在上面这个例子中,浏览器生成的请求消息表示“请给我 sample1. html 这一文件中储存的网页数据”,接着浏览器会将请求消息发送给 Web 服务器。
当然,浏览器并不会亲自负责数据的传送。传送消息是搬运数字信息的机制负责的工作,因此浏览器会委托它将数据发送出去。具体来说,就是委托操作系统中的网络控制软件将消息发送给服务器。第 1 章中,我们会探索到浏览器将数据委托出去为止。
第二章 协议栈、网卡
第 2 章我们将探索搬运数据的机制。其中最先出场的是协议栈(网络 控制软件叫作协议栈)。这个软件会将从浏览器接收到的消息打包,然后加 上目的地址等控制信息。如果拿邮局来比喻,就是把信装进信封,然后在 信封上写上收信人的地址。这个软件还有其他一些功能,例如当发生通信 错误时重新发送包,或者调节数据发送的速率等,或许我们可以把它当作 一位帮我们寄信的小秘书。
接下来,协议栈会将包交给网卡(负责以太网或无线网络通信的硬 件)。然后,网卡会将包转换为电信号并通过网线发送出去。这样一来,包 就进入到网络之中了
第三章 集线器、交换机、路由器
接下来出场的物品会根据接入互联网的形式不同而不同。客户端计算机可以通过家庭或公司的局域网接入互联网,也可以单独直接接入互联网。很遗憾,我们的探索之旅无法涵盖所有这些可能性,因此只能以现在最典型的场景为例,假设客户端计算机是连接到家庭或公司的局域网中,然后 再通过 ADSL 和光纤到户(FTTH)等宽带线路接入互联网。
在这样的场景中,网卡发送的包会经过交换机等设备,到达用来接入互联网的路由器。路由器的后面就是互联网,网络运营商会负责将包送到目的地,就好像我们把信投到邮筒中之后,邮递员会负责把信送给收件人一样。
第四章 接入网、网络运营商
接下来,数据从用来接入互联网的路由器出发,进入了互联网的内部。 互联网的入口线路称为接入网。一般来说,我们可以用电话线、ISDN、 ADSL、有线电视、光线、专线等多种通信线路来接入互联网,这些通信 线路统称为接入网。接入网连接到签约的网络运营商,并接入被称为接入点(Point of Presence,PoP)的设备。
接入点的实体是一台专为运营商设计的路由器,我们可以把它理解为离你家最近的邮局。从各个邮筒中收集来的信件会在邮局进行分拣,然后被送往全国甚至全世界,互联网也是一样,网络包首先通过接入网被发送到接入点,然后再从这里被发送到全国甚至全世界。接入点的后面就是互联网的骨干部分了。
在骨干网中存在很多运营商和大量的路由器,这些路由器相互连接, 组成一张巨大的网,而我们的网络包就在其中经过若干路由器的接力,最终被发送到目标 Web 服务器上。其中的具体细节我们会在正文中进行讲 解,但其实它的基本原理和家庭、公司中的路由器是相同的。也就是说,无论是在互联网中,还是在家庭、公司的局域网中,包都是以相同的方式传输的,这也是互联网的一大特征。
不过,运营商使用的路由器可跟我们家用的小型路由器不一样,它是一种可以连接几十根网线的高速大型路由器。在互联网的骨干部分,存在着大量的这种路由器,它们之间以复杂的形式连接起来,而网络包就在这些路由器之间穿行。
第五章 防火墙、缓存服务器
通过骨干网之后,网络包最终到达了 Web 服务器所在的局域网中。接着,它会遇到防火墙,防火墙会对进入的包进行检查。大家可以把防火墙想象成门口的保安,他会检查所有进入的包,看看有没有危险的包混在里 面。检查完之后,网络包接下来可能还会遇到缓存服务器。网页数据中有一部分是可以重复利用的,这些可以重复利用的数据就被保存在缓存服务器中。如果要访问的网页数据正好在缓存服务器中能够找到,那么就可以不用劳烦 Web 服务器,直接从缓存服务器读出数据。此外,在大型网站中,可能还会配备将消息分布到多台 Web 服务器上的负载均衡器,还有可能会使用通过分布在整个互联网中的缓存服务器来分发内容的服务。经过这些机制之后,网络包才会到达 Web 服务器。
第六章 Web服务器
当网络包到达 Web 服务器后,数据会被解包并还原为原始的请求消息,然后交给 Web 服务器程序。和客户端一样,这个操作也是由操作系统中的协议栈(网络控制软件)来完成的。接下来,Web 服务器程序分析请 求消息的含义,并按照其中的指示将数据装入响应消息中,然后发回给客户端。响应消息回到客户端的过程和之前我们介绍的过程正好相反。
当响应到达客户端之后,浏览器会从中读取出网页的数据并在屏幕上显示出来。到这里,访问 Web 服务器的一系列操作就全部完成了,我们的探索之旅也到达了终点。
以上就是本书引读的全部内容,包含了由浏览器地址栏输入地址开始,到Web服务器完成响应的全过程。
本期的整理就先到这里啦,我们下一期见!!!