网络寻址、分层与接入方式
第四章:网络基础概述
第一节:网络基础介绍
从逻辑功能上看,计算机网络是以传输信息为基础目的,用通信线路将多个计算机连接起来的计算机系统的集合。一个计算机网络组成包括传输介质和通信设备。从用户角度看,计算机网络它是这样定义的:存在着一个能为用户自动管理的网络操作系统。
由它调用完成用户所调用的资源,而整个网络像一个大的计算机系统一样,对用户是透明的。但网络对于我们来说还显得是有点虚无缥缈的,我们需要从一些基本的网络名词来说起。
一、 IP 地址、DNS、域名
IP 地址
IP 地址(英语:Internet Protocol Address)是一种在 Internet 上的给主机编址的方式,也称为网际协议地址。IP 地址即是 Internet 上的电脑的一个编号。大家日常见到的情况是每台联网的 PC 都需要有 IP 地址,才能正常通信。
我们可以把 PC 比作“一台电话”,那么“IP 地址”就相当于“电话号码”,而 Internet 中的路由器,就相当于电信局的“程控式交换机”。IP 地址是一个 32 位的二进制数, 通常被分割为 4 个“8 位二进制数”(也就是 4 个字节)。IP 地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a.b.c.d 都是 0-255 之间的十进制整数。
例:我家 IP 地址为:192.168.1.167,其实际上是一个32 位的二进制数: 11000000.10101000.00000001.10100111。常见的 IP 地址,分为 IPv4 与 IPv6 两大类。现有的互联网是在 IPv4 的基础上运行的,IPv6 是下一版本的互联网协议,也可以说是下一代互联网协议的协议。
它的提出最初是因为随着互联网的迅速发展,IPv4 定义的有限地址空间将被耗尽,而地址空间的不足必将妨碍互联网的进一步发展。为了扩大地址空间,拟通过 IPv6 以重新定义地址空间。IPv4 采用 32 位地址长度,只有大
约 43 亿个地址,而 IPv6 采用 128 位地址长度, 几乎可以不受限制地提供地址。按保守方法估算 IPv6 实际可分配的地址,整个地球的每平方米面积上仍可分配 1000 多个地址。
DNS
DNS 是计算机域名系统( Domain Name System) 的缩写,它是由解析器以及域名服务器组成的, 域名服务器保存有该网络所有主机域名以及 IP 地址,并可以将域名转换为 IP 地址。
在 Internet 上域名与 IP 地址之间是一对一(或者多对一)的,也可采用 DNS 轮换实现一对多,域名虽然便于人们记忆,但机器之间只认 IP 地址,它们之间的转换工作称为域名解析,域名注册查询需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务。
域名
域名(Domain Name),是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置),域名可以看成是一个 IP 地址的“面具” 。以一个常见的域名为例说明,baidu的网址是由三部分组成,标号“baidu”是这个域名的主体,而最后的标号“com”则是该域名的后缀,代表的这是一个 com 国际域名,是顶级域名。
而前面的”www.”是网络名,为 www 的域名。总之,打个比方,IP 就是酒店的房号,DNS 就是酒店的前台,域名就是你要找的人的名字。你要在这个酒店里找人,就要去问 DNS 这个人住在哪个房间,才能去找到这个人。
二、 DHCP、Hosts、Cookies
DHCP
动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用 UDP 协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配 IP 地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
DHCP 提供三种分配方式:
-
人工分配:获得的 IP 也叫静态地址,网络管理员为某些少数特定的在网计算机或者 网络设备绑定固定 IP 地址,且地址不会过期。同一个路由器一般可以通过设置来划分静态 地址和动态地址的 IP 段,比如一般家用 TP-LINK 路由器,常见的是从 192.168.1.100 至 192.168.1.254, 这样如果你的电脑是自动获得 IP 的话,一般就是 192.168.1.100,下一台电脑就会由 DHCP 自动分到为 192.168.1.101。而 192.168.1.2 至 92.168.1.99 为手动配置 IP 段。
-
自动分配:其情形是:当 DHCP 客户端第一次成功的从 DHCP 服务器端租用到IP 地址之后,就永远使用这个地址。
-
动态分配:当 DHCP 客户端第一次从 DHCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个 IP 地址,以给其它工作站使用。动态分配显然比手工分配更加灵活,尤其是当实际 IP 地址不足的时候,例如:一家 ISP,只能提供 200 个 IP 地址用来给拨接客户,但这并不意味着客户最多只能有 200 人。因为要知道,客户们不可能全部同一时间上网的,除了他们各自的行为习惯的不同,也有可能是电话线路的限制。这样就可以将这 200 个地址,轮流的租用给拨接上来的客户使用了。这也是为什么当您查看 IP 地址的时候,会因每次拨接而不同的原因了。
Hosts
Hosts 是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应 IP 地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从 Hosts 文件中寻找对应的 IP 地址, 一旦找到, 系统会立即打开对应网页,如果没有找到,则系统再会将网址提交 DNS 域名解析服务器进行 IP 地址的解析。要是对于每个域名请求我们都要等待域名服务器解析后返回 IP 信息,这样访问网络的效率就会降低,因为 DNS 做域名解析和返回 IP 都需要时间。 为了提高对经常访问的网络域名的解析效率,可以通过利 Hosts 文件中建立域名和 IP 的映射关系来达到目的。根据 Windows 系统规定,在进行 DNS 请求以前,Windows 系统会先检查自己 Hosts 文件中是否有这个网络域名映射关系。如果有,则调用这个 IP 地址映射,如果没有,再向已知的 DNS 服务器提出域名解析。也就是说 Hosts 的请求级别比 DNS 高。
CookiesCookie 一词用在程序设计中是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。当你浏览某网站时,Web 服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用 ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,网站通过读取 Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等。
从本质上讲,它可以看作是你的身份证。保存的信息片断以"名/值"对(name-value pairs)的形式储存, 一个"名/值对仅仅是一条命名的数据。一个网站只能取得它放在你的电脑中的信息,它无法从其它的 Cookies 文件中取得信息,也无法得到你的电脑上的其它任何东西。
三、 计算机网络原理简介
计算机网络分层结构首先一点,我们要明白计算机网络为什么采用分层结构?我们以生活中的实例解释:首先,任何一个公司都是从小企业创办而来的,当公司规模很小时(假定只有一个老板和三个员工),老板可以和员工处于一个层面。这时不需要分层,员工可以直接向老板汇报问题。
但是,如果该公司是诸如微软一样的企业(也就是计算机网络达到一定规模时候),处于公司最高层的比尔盖茨希望实现公司的长远发展,但不可能每天与公司员工讨论某个功能模块应该使用那种算法。因此,分层结构应运而生,结构中的每一层应该实现对应的功能,这样才会由更好的发展。但是,分层又不能太多,如果分层太多,那么浪费的资源就很多。
计算机网络结构亦是如此。TCP/IP 折中地采用了 4 层结构,而在教材中为了更好的描述各层地工作原理,经常被看作 5 层:物理层、数据链路层、网络层、传输层、应用层。
物理层:
如果电脑要联网,我们需要做什么?首先电脑需要电, 然后电脑与电脑之间相连,需要网:可以用光纤、双绞线、同轴电缆、无线波等介质连接。把电脑连接起来的物理手段,主要规定了网络的一些电气特性,作用是负责传送 0 和1 的电信号。
而机械特性,及时如何去与硬件相连了,比如说插座的尺寸。
数据链路层:
物理层传过来了 0 和 1 的电信号,但是单纯的 0 和 1 没有啥意义,所以就要规定解读方式,就像情报一样,但是我们怎么来解读?这里我们需要了解到一组电信号可以构成一个数据块,这个数据块便有了一个称呼——帧。帧由两个部分组成:头和数据(head and data)帧是有底线(长度)的,如果数据量特别大,就需要分割成多个帧来发送。
如果在传输过程中,数据出现了错误,那么就需要重新发送了。所以帧必须得能够识别出物理层发过来的比特流,还得能识别出信号的起始和终止。在生活中, 我们会经常遇到这种情况 :我的目标给你发送一份文件,但怎么确保我给你的文件中数据有没有遭到损坏?
我将文件发送过后, 当你接受时,那么你必须要能够发现给你的文件中的数据有没有差错。如果有,你给我一个反馈:收到的不对啊,你再给我重新发一份。但如果这时你掉线了,你无法给我回复收到的文件是否正确。
那么我这里就启用一个定时器。如果到时间后你还没回复,那我就认为你收到的有问题, 再次重新发送这个文件。那么这个就是差错控制功能了,也是数据链路层主要功能之一。
差错控制其实是有两种:一种就是上面所述,我发现接收的文件异常,那么就让你重新给我发一份完整的.,这种方式叫:自动请求重复;一种是我接收了一部分的文件,让我给你重发的时候,是继续上一部分之后的内容发过来。这种方式对于你的要求就更高了,要不只能判断文件有差错,还得能判断发生错误的位置,方便你再次给我续传。
这种差错控制叫:前向纠错(FEC)。
网络层:
上面我们讲了,数据链路层是两个相邻端点之间的数据帧的传送。现在一个数据需要从 A 传到 Z,中间经过了 B、C、D……等等。这时就需要网络层的支持了.再举个例子: 我们在教室中上课,我要把我的零食传给你。
这时可以有 n 种传法,但是为了方便处理零食的传输,咱俩之间可以先和其他人商量好,确定一个传输路线,这就是逻辑通路(逻辑上的,也就是不存在的)。然后经过若干人传递给你,不过最终是只有一个人把所有零食都给到你手里。还有一种方式就是:我把零食分成好几袋,若干袋零食构成了是我要送给你的一整包零食。
每个零食都带包装,我将它们分开传送。然后你就会收到不一定是谁给你的某一包。当然这也有种可能,中间零食被人吃了,你最后收到的零食就丢了部分。
上面两种就是通信子网对端系统提供的两种网络服务:虚电路和数据报。虚电路:从最一开始我就确定了,先传给 B,再传 C,以此类推直到传给你.数据报:就是每次某个人收到这包零食,再去做出选择。一帮人来回传,直到传到你的手里。
拿这么一个词来表达:路由选择.如果在传送的过程中,B 不光需要传我给你的零食,还要转其他人给别人的零食。那么 B 就可能因为需要转的东西太多,忙不过来导致拥塞。这个想想双十一时候的快递就完全就理解了。
要么就是仓库太小,有些快递就给丢了;有些就是因为分拣员少,来不及处理那么多的量,导致收到快递的日期会延期,所以堵了很正常嘛。当然这个拥塞现象,不光光是网络层可能出现,其它层也可能会出现。
为了解决这个堵塞,可以进行分组排队,也可以把一些包直接给丢了从而减少传输压力。传输层经过上面物理层,,电脑通上了电,首先是活了,然后经过介质之间的连接,经脉开始复苏。数据链路层成功把物理层的传输内容进行了解析,开始传输。
网络层利用其路由选择,成功地从一台主机联系上了目标主机。
虽然我们联系上了目标主机,但是主机上有很多的应用程序,它们都要使用网络。当你让对方发送一个文件, 但同时你还开着微信和 QQ,那么电脑怎么就确定了是对方传过来的这个文件呢?这里就有一个新的名词出现了,就是我们常说的端口。
一个文件可以理解成一个数据包,这个包发送到我的文件传输端口,我就能取到这个包了。我们都知道基本没有什么东西是无限长的,上面讲了帧有长度,端口也不例外。端口的长度介于 0-65535,不过我们的系统会占用一定的端口,也就是 0-1023。
用户只能使用 1024 之后的端口。现在我们可以这样区分网络层和传输层: 网络层主要是确定主机到主机;传输层确定端口到端口。
有了主机 IP 地址和端口,就可以确定唯一的入口了。程序之间的通信到目前就接通了。接着上述所说:我们找到了中国共产党的接头人,但是情报不能乱给吧。
这里就需要建立连接了,数据包要传输,但要传输到哪里?这就需要在数据包中添加一个端口,方便逐个对应。数据包要加入端口信息,就得需要一个新的协议了。
最简单的方式就是 UDP 协议了。UDP 的格式很简单,就是标头和数据,标头中有源端口、目标端口、长度和校验和;数据就是具体的内容了。
整个 UDP 数据包中是放在 IP 数据包中的数据部分。那它是怎么来发送的呢?其实就是只要我手里有情报,管你能不能收,反正我都发出去。
也不对这个数据包进行检查和修改,所以 UDP 协议的特点就是快,及时性强,但是不可靠啊。所以就得完善它,那么就有了 TCP 协议。TCP 与 UDP 最大的区别就是,TCP 有确认机制。
UDP 不管你能不能收都发出,所以
很有可能导致丢包。TCP 就会确保数据不会遗失,那它怎么做到的:
三次握手:我发送请求,你回应请求,我再次发送收到你回应请求的请求。

当然也可能你没有回应请求,我就来个计时器,到时间后如果还没给我应答,我就重发,也会记录这个时间。存放当前的目的端的时间,以后就不乱估时间了,多智能化。应用层我们平时用到了各种的应用程序,有网页,还有邮箱等等应用。
所以来的数据都是五花八门的,我们必须得事先规定好格式,否则根本无法解读。简单理解应用层的作用,就是规定应用程序的数据格式。同时应用层也是最高层,直接面对用户。
四、 拨号连接、ADSL 连接、光纤连接
拨号连接20 世纪 90 年代,互联网刚刚进入日常生活,那时上网使用最为普遍的一种方式是拨号上网。只要用户拥有一台个人电脑、一个外置或内置的调制解调器(Modem,俗称猫)和一根电话线,再向本地 ISP 供应商申请自己的账号,或购买上网卡,拥有自己的用户名和密码后,然后通过拨打 ISP 的接入号连接到 Internet 上。Modem 是将电脑通过电话线连接到另一台电脑或一个电脑网络的装置,它的作用是将电脑的数字信号转换为能够依电话线路传输的模拟信号,通过网络传递到另外的电脑或服务器;
对于接受到的模拟信号,则由它再解调为数字信号,以便电脑能够识别。但是当用户上网的时候调制解调器所连接的电话是无法使用的。电话中会有很大的噪音出现,但是,这已经是二十年前的上网方式了。
到后来,使用 ADSL 技术出现后,家里的电脑虽然也连接着“猫”,但是可以和电脑同时使用。ADSL 连接ADSL 技术采用频分复用技术把普通的电话线分成了电话、上行和下行三个相对独立的信道,从而避免了相互之间的干扰。用户可以边打电话边上网,不用担心上网速率和通话质量下降的情况。
理论上,ADSL 可在 5 km 的范围内,在一对铜缆双绞线上
提供最高 1 Mbps 的上行速率和最高 8Mbps 的下行速率(也就是我们通常说的带宽),能同时提供话音和数据业务。电信服务商提供商端,需要将每条开通 ADSL 业务的电话线路连接在数字用户线路访问多路复用器(DSLAM)上。而在用户端,用户需要使用一个 ADSL 终端(因为和传统的调制解调器(Modem)类似,所以也被称为“猫”)来连接电话线路。
由于ADSL 使用高频信号,所以在两端还都要使用 ADSL 信号分离器将 ADSL 数据信号和普通音频电话信号分离出来,避免打电话的时候出现噪音干扰。光纤连接光纤宽带就是把要传送的数据由电信号转换为光信号进行通讯。在光纤的两端分别都装有“光猫”进行信号转换。
光纤是宽带网络中多种传输媒介中最理想的一种,它的特点是传输容量大,传输质量好,损耗小,中继距离长。光纤传输使用的是波分复用,即是把小区里的多个用户的数据分别调制成不同波长的光信号在一根光纤里传输。光纤宽带和 ADSL 接入方式的区别就是,ADSL 是一人享用一根电话线上网,在这根电话线里还有你的电话机使用的语音信号。
而光纤宽带则是通到小区,然后分别通过超 5 类网线通到各用户,这样上网是上网,打电话是打电话。小区里的用户共享一根光纤足够了。
注意:
宽带连接不是一种网络连接方式。宽带连接是一种相对的描述方式,频率的范围愈大,也就是频宽愈高时,传送资料相对增加。就像是一条公路,路越宽,车道越多,公路上能承受的车流量就越大。
以拨号上网速率上限 56KBps 为界,低于 56KBps 称为“窄带”,以上称为“宽带”。对家庭用户而言是指传输速率超过 1M,可以满足语音、图像等大量信息传递的需求。包括光纤,XDSL(ADSL,HDSL),ISDN 等。
来源:四川大学飞扬俱乐部《维修手册》PDF 第 90-98 页(印刷页 89-97)。