# 互联网是如何工作的

Internet

互联网始于 1960 年美国军方资助的研究项目,是网络与网络之间所串连成的庞大网络。随着时间的变化,各种各样的技术支持着互联网的发展,但是它的工作方式却没有改变多少:将若干个电子计算机网络相互连接而成更大的网络。

目前世界上最大的互联网是因特网。

# 基础网络

连成互联网的计算机网络(computer network),通常也简称网路,是利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统连接起来,以功能完善的网络软件实现网络的硬件、软件及资源共享和信息传递的系统。

当计算机网络中两台电脑需要通信的时候,首先需要将它们连接起来,连接的方式主要包括有线连接和无线连接。

通常一个网络不仅限于两台电脑。我们把在某一区域内由多台计算机互联成的计算机组,称为局域网。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。

与局域网相对于的是广域网,又称外网、公网。是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。

在网络中,当一台电脑向另一台电脑发送数据时,数据在网络传输介质中进行传递。由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,最后会导致接收错误。

为了解决这个问题,我们引入了中继器。

# 中继器

Repeater

中继器(RP repeater)是连接网络线路的一种装置,常用于两个网络节点之间物理信号的双向转发工作。

中继器是最简单的网络互联设备,主要完成物理层的功能,负责在两个节点的物理层上按位传递信息,完成信号的复制、调整和放大功能,以此来延长网络的长度。它完成物理线路的连接,对衰减的信号进行放大,保持与原数据相同。

通常,中继器的两端连接的是相同的媒体,但有的中继器也可以完成不同媒体的转接工作。从理论上讲中继器的使用是无限的,网络也因此可以无限延长。事实上这是不可能的,因为网络标准中都对信号的延迟范围作了具体的规定,中继器只能在此规定范围内进行有效的工作,否则会引起网络故障。总的来说它具有以下优点:

  • 扩大了通信距离,但代价是增加了一些存储转发延时。
  • 增加了节点的最大数目。
  • 各个网段可使用不同的通信速率。
  • 提高了可靠性。当网络出现故障时,一般只影响个别网段。
  • 性能得到改善。

缺点:

  • 由于中继器对收到被衰减的信号再生(恢复)到发送时的状态,并转发出去,增加了延时。
  • CAN 总线的 MAC 子层并没有流量控制功能。当网络上的负荷很重时,可能因中继器中缓冲区的存储空间不够而发生溢出,以致产生帧丢失的现象。
  • 中继器若出现故障,对相邻两个子网的工作都将产生影响。

中继器是局域网环境下用来延长网络距离的,但是它不属于网络互联设备,操作在 OSI 模型 的物理层,中继器对在线路上的信号具有放大再生的功能,用于扩展相同的局域网网段的长度。

另外网络中有一个名叫多端口中继器的设备,可作为多个网段的转接设备,我们通常称它为集线器。

# 集线器

Hub

集线器(Hub):对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。

集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,它在发送数据时都是没有针对性的,而是采用广播方式发送。也就是说当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。

举例来说,如果一个具有 4 个端口的集线器,共连接了 4 台电脑。通过集线器对信号进行转发,4 台电脑之间可以互连互通。如果其中一台计算机要将一条信息发送给另一台计算机,当信息通过传输介质送到集线器上时,集线器并不会直接将信息送给目的计算机,它会将信息进行“广播”——将信息同时发送给 4 个端口,当 4 个端口上的计算机接收到这条广播信息时,会对信息进行检查,如果发现该信息是发给自己的,则接收,否则不予理睬。

由于集线器基本上不具有"智能记忆"能力和"学习"能力,所以逐渐的被一种新的设备所代替,也就是交换机。

# 交换机

Switch

交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路,主要目的是解决通信网络中带宽不足的问题。。

交换机工作在 OSI 模型 第二层(数据链路层),根据 MAC 地址 进行数据转发。集线器所有端口属于一个冲突域,而交换机的每一个端口都属于一个冲突域。

交换机通过分析 Ethernet 包 的包头信息(其中包含了源 MAC 地址、目标 MAC 地址、信息长度等),取得目标 MAC 地址 后,查找交换机中存储的地址对照表(MAC 地址对应的端口),确认具有此 MAC 地址的网卡连接在哪个端口上,然后将信包送到对应端口,有效的抑制 IP 广播风暴。并且信息包处于并行状态,效率较高。

如果目的 MAC 地址 不存在,交换机将广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。

这里我们已在提及的 MAC 地址,也就是网卡的物理地址。

# 网卡

网卡(NIC-Network Interface Card):是工作在链路层的网络组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。

网卡主要包括以太网卡和无线网卡,每个网卡都拥有一个全球唯一的物理地址,也被称为 MAC 地址。MAC 地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个全球唯一的 MAC 地址。

在网络底层的物理传输过程中,是通过物理地址来识别主机的。

MAC 地址 专注于数据链路层,将一个数据帧从一个节点传送到相同链路的另一个节点。如果想要进行跨网段的传输信息就需要先经过网关。

# 网关

网关(Gateway)又称网间连接器、协议转换器,是一种充当转换重任的计算机系统或设备,使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,对收到的信息要重新打包,以适应目的系统的需求。

事实上网关是一个大概念,不具体特指一类产品,只要连接两个不同的网络的设备都可以叫网关。由于网关通常是安装在路由器内部的。所以,常将路由器和网关两个概念混用。

现在,通常所说的默认网关是一个 IP 地址,当主机找不到可用的网关时,就把数据包发给默认指定的网关,由这个网关来处理数据包。因此,只有设置好网关的 IP 地址,TCP/IP 协议才能实现不同网络之间的相互通信。

那么这个 IP 地址是哪台机器的 IP 地址呢?网关的 IP 地址是具有路由功能的设备的 IP 地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。

那么什么是路由器呢?

网关能在不同协议间移动数据,而路由器是在不同网络间移动数据,相当于传统所说的 IP 网关。

# 路由器

router

路由器(router)是一种电讯网络设备,用于连接多个逻辑分开的网络,在信息包传递时提供“路由和传送功能”。

在网络之中如果要相互联系的电脑通过网线两两相连,那么网线和电脑接口都是一个很大的问题,为了解决这个问题,于是网络上的每台电脑一般都链接到路由器上。当然一个路由器也不可能连接成千上万台电脑,因此整个网络中就需要多个路由器进行相连。

另一方面,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。决定数据包从来源端到目的端所经过的路由路径,这个过程称为路由。将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。

名字带有“猫”的设备代表它有调制解调的功能,也就是能把电话信号(或者光纤信号)和网络信号相互转换。而路由器的功能是组建局域网(有线或者无线)以及当作一个中转站(使局域网内的终端可以访问外网)。不过现在很多厂商都把这两个功能做到同一设备。

正如我们刚才所说,在内网之间通过物理地址来识别主机,而在外网中,只有通过 IP 地址 来确定起始地址和目的地。

# IP 地址

互联网协议地址(Internet Protocol Address,又译为网际协议地址),是 IP Address 的缩写。IP 地址IP 协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

每台连入网络的计算机都需要有一个全球唯一的网络中的地址,IPv4 代表 IP 地址的第 4 版本,其由 32 位二进制数组成(以 4 组十进制数表示,各组之间通过点号分隔),在 IPv6 下由 128 位二进制数组成,现在主要还是使用的第 4 版本,所以这里以 IPv4 为例进行描述。

IP 地址由网络号和主机好两部分组成,主要分为五大类,其中每个网段的 .255.255.255 代表当前网络的广播地址,.0.0.0 代表网络本身,不能分配。

IPv4 地址
IP 地址类别 二进制地址最高位 第一字节十进制范围 地址结构 可用网络地址数 可用主机地址数 其中私网 IP 地址
A 0 0-127 网.主.主.主 126(2^7-1) 16777214(2^24-2) 10.0.0.0-10.255.255.255
B 10 128-191 网.网.主.主 16384(2^14) 65534(2^16-2) 172.16.0.0-172.31.255.255
C 110 192-223 网.网.网.主 2097152(2^21) 254(2^8-2) 192.168.0.0-192.168.255.255
D 1110 224-239 组播地址
E 1111 240-255 研究和实验地址

值得注意的是,IP 地址不能单独存在,它必须结合子网掩码一起使用。

# 子网掩码

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个 IP 地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。

其表示方法为:网络号与子网好置 1,主机号置 0。

也就是说:子网掩码只有一个作用,就是将某个 IP 地址划分成网络地址和主机地址两部分。

子网掩码在寻址时通过子网掩码对 IP 地址进行屏蔽运算,先找出网络部分,再确定子网中的主机地址。

子网掩码某位为 1,表示该位所对应 IP 地址中的一位是网络地址部分中的一位,若某位为 0,则表示它对应的 IP 地址中的一位是主机地址部分中的一位。

类别 标准子网掩码
A 255.0.0.0
B 255.255.0.0
C 255.255.255.0

IP 地址与对应的子网掩码进行“与”运算就会得到网络地址,屏蔽 IP 地址中的网络部分,就可以得到主机地址。

在互联网中,通过 IP 地址来进行通信,由于 IP 地址用二进制数表示,对于用户来说记忆起来比较困难,所以我们需要使用域名。

# 域名

网域名称(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

在域名系统的层次结构中,各种域名都隶属于域名系统根域的下级。域名的第一级是顶级域,它包括通用顶级域以及国家和地区顶级域。最初创立的通用顶级域:

通用顶级域 用途
.com 商业机构;现无限制
.edu 供教育机构使用
.gov 供美国政府的联邦、州及地方各级部门使用
.mil 供美国军事机构使用
.net 原供网络服务供应商使用;现无限制
.org 原供不属于其他通用顶级域类别的组织使用;现无限制

顶级域名下一层是二级域名,它位于顶级域名的左侧,而二级域名下面是三级域名,它位于二级域名的左侧。

域名的结尾有时候还有一点,这是保留给根节点的,书写时通常省略。

domain name structure

在互联网中使用 IP 地址通信,而人们使用的却是域名,进而引发了域名和地址相互转换的问题。为了解决这个问题,就有了网域名称系统。

# DNS 解析

网域名称系统(DNS,Domain Name System,有时也简称为域名)是因特网的一项核心服务,它作为可以将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 地址数串。

例如,我们在地址栏中输入域名:www.anani.com,客户端就向本地域名服务器发起请求,询问该域名映射的 IP 地址。如果该域名服务器知道就会告诉客户端(默认会对查询到的 IP 地址保存三天),如果它不知道,他就会去询问根 DNS 服务器

根 DNS 服务器并不知道全球所有的 IP 地址,但是它知道顶级域的权威域名服务器地址。所以,本地域名服务器拿到根 DNS 服务器返回的顶级域的域名服务器地址后,就回去询问它(.com),然后又会得到二级域(.anani.com)的权威域名服务器地址。

最后 DNS 服务器向得到的二级域的权威域名服务器发送查询报文,得到主机 wwww 的主机记录,存入自身缓存并返回给客户端。

在上面的例子中涉及到了两种查询方式:

  • 递归查询:如果客户机所询问的本地域名服务器不知道被查询的域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其它根域名服务器继续发出查询请求报文,最终将返回查询结果给客户机,其结果要么是在该 DNS 服务器上查找到的结果,要么是查询失败。
  • 迭代查询:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。

客户机向域名服务器的查询采用的是递归查询,而迭代查询是发生在 DNS 服务器之间的查询。

Windows 系统中的 C:\Windows\System32\drivers\etc 目录下的 hosts 文件中,我们可以在一行中的左边书写 IP 地址,右边配置域名,当我们再 ping 配置的域名时也就会 ping 配置的对应的 IP 地址,也就是说 hosts 文件具有配置静态 IP 地址和域名的配置,其优先级高于 DNS 解析

现在我们通过 DNS 服务器拿到 IP 地址,知道了去处,那么如何将我们的信息从我们的网络发送到我们想要送到的地方呢,为了做这些,我们需要把我们的网络连接到互联网服务商(ISP)。

# 互联网服务商

互联网服务提供商(Internet Service Provider, 简称 ISP)指的是面向公众提供下列信息服务的经营者:

  • 接入服务:帮助用户接入 Internet。
  • 导航服务:帮助用户在 Internet 上找到所需要的信息。
  • 信息服务:建立数据服务系统,收集、加工、存储信息,定期维护更新,并通过网络向用户提供信息内容服务。

通俗来讲,ISP 是家可以管理一些特殊的路由器的公司,这些路由器连接其他 ISP 的路由器. 互联网就是由这些所有的网络设施所组成的。

通过 ISP 提供的服务,我们的网络消息可以被 ISP 捕获到并发送到相应的网络。

通常网络消息在网络传输介质中传递的格式并不被计算机所识别,所以我们需要一些设备来对数据的格式进行一些转化,比如调制解调器。

# 调制解调器

Modem

调制解调器Modulator(调制器)与 Demodulator(解调器)的简称,中文称为调制解调器,根据 Modem 的谐音,我们亲昵地称之为“猫”。

我们使用的电话线路传输的是模拟信号,而 PC 机之间传输的是数字信号。所以当你想通过电话线把自己的电脑连入 Internet 时,就必须"翻译"两种不同的信号。

调制解调器就是这样一种计算机硬件,它能把计算机的数字信号翻译成可沿普通电话线传送的模拟信号,而这些模拟信号又可被线路另一端的另一个调制解调器接收,并译成计算机可懂的语言。

连入 Internet 后,当 PC 机向 Internet 发送信息时,用调制解调器来把数字信号"翻译"成模拟信号,这个过程叫做"调制"。而相反的过程叫作“解调”。总的来说就称为“调制解调”。

随着网络传输介质的发展,我们现在大部分使用频带更宽、容量更大的光纤进行通信。与之对应的,要实现光通信就必须进行光的调制解调,也就是需要光调制解调器。

# 光调制解调器

optical modem

光调制解调器(Optical modem),也就是光猫,同时也被称为单端口光端机,是针对特殊用户环境而研发的一种三件一套的光纤传输设备。

基带调制解调器由发送、接收、控制、接口、操纵面板及电源等部分组成。数据终端设备以二进制串行信号形式提供发送的数据,经接口转换为内部逻辑电平送入发送部分,经调制电路调制成线路要求的信号向线路发送。接收部分接收来自线路的信号,经滤波、反调制、电平转换后还原成数字信号送入数字终端设备。

光调制解调器是一种类似于基带调制解调器的设备,和基带调制解调器不同的是接入的是光纤专线,是光信号。

现在,数据被转换成了计算机能够识别的数据,但是一台计算机上通常同时存在多个服务,那么最后应该将消息交给谁来处理呢?这就涉及到了端口。

# 网络端口

在网络技术中,端口(Port)大致有两种意思:

  • 物理意义上的端口:比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口。
  • 逻辑意义上的端口:一般是指 TCP/IP 协议中的端口,端口号的范围从 0 到 65535。

端口有什么用呢?我们知道,一台拥有 IP 地址的主机可以提供许多服务,这些服务完全可以通过 1 个 IP 地址来实现。那么,主机是怎样区分不同的网络服务呢?

实际上,服务器一般都是通过知名端口号来识别的。其中一些知名端口号由 Internet 号分配机构(InternetAssignedNumbersAuthority,IANA)来管理。比如常见端口号:

服务(协议) 端口号
FTP(文件传输协议 ) 端口号:20(数据传递)/21(登录/传输页面)
SSH(安全 shell 协议) 端口号:22
telnet(远程登录协议) 端口号:23(明文传递,不建议使用)
DNS 端口号:53
HTTP(超文本传输协议) 端口号:80
SMTP(简单邮件传输协议) 端口号:25
POP3(邮件协议 3 代) 端口号:110

通常,大多数 TCP/IP 实现给临时端口分配 1024 ~ 5000 之间的端口号。大于 5000 的端口号是为其他服务器预留的。

客户端通常对它所使用的端口号并不关心,只需保证该端口号在本机上是唯一的就可以了。客户端口号又称作临时端口号(即存在时间很短暂)。这是因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着的,其服务就运行。

# 参考资料