2.2 计算机内部通信

2.2  计算机内部通信

网络是什么,用一句话来说就是要通信的所有节点连接起来,然后找到目标,找到后就发送数据。笔者把这种简单模型叫做"连找发"网络三元素模型,听起来非常简单。

1. 连

网络系统当然首先要都连接起来,不管用什么样的连接方式,比如HUB总线、以太网交换、电话交换、无线、直连、中转等。在这些层面上每个网络点到其他网络点,总有通路,总是可达。

2. 找

连接起来之后,由于节点太多,怎么来区分谁是谁呢?所以就需要有个区分机制。当然首先就想到了命名,就像给人起名一样。在目前广泛使用的网络互联协议TCP/IP中,IP这种命名方式占了主导地位,统一了天下。其他的命名方式在IP看来都是"非正统"的,全部被"映射"到了IP。比如MAC地址和IP的映射,Frame Relay中DLCI地址和IP的映射,ATM中ATM地址和IP的映射,反正最终都映射成IP地址。任何节点,不管所在的环境使用什么命名方式,到了TCP/IP协议的国度里,就都需要有个IP名(IP地址),然后全部用TCP/IP协议来实现节点到节点无障碍的通信。在"连起来"这个层面,就是OSI(本书第7章介绍)模型中链路层实现的功能。

3. 发

"找目标"这个层面是网络层实现的功能。"发数据"这个层面,就是传输层需要保障的。至于发什么数据,数据是什么格式,这两个层面就不是网络通信所关心的了,它们已经属于OSI模型中上三层的内容了。

2.2.1  IO总线可以看作网络么

IO总线可以接入多个外设,比如键盘、鼠标、网卡、显卡、USB设备、串口设备和并口设备等,最重要的当然要属磁盘设备了。讲到这里,大家的脑海中应该能出现这么一种架构:CPU、内存和各种外设都连接到一个总线上,这不正是以太网HUB的模型么?HUB本身就是一个总线结构而已,所有接口都接在一条总线上,HUB所做的就是避免总线信号衰减,因此需要电源来加强总线上的电信号。

没错!仔细分析思考提炼之后,确实就是这么一个模型!不过IO总线和以太网HUB模型还是有些区别。CPU和内存因为足够快,它们之间单独用一条总线连接。这个总线和慢速IO总线之间通过一个桥接芯片连接,也就是主板上的北桥芯片。这个芯片连接了CPU、内存和IO总线。

CPU与北桥连接的总线叫做系统总线,也称为前端总线。这个总线的传输频率与CPU自身频率是两个不同概念,总线频率相当于CPU向外部存取数据时的数据传输速率,而CPU自身的频率则表示CPU运算时电路产生的频率。

前端总线的条数,比如64条或者128条,就叫做总线的位数。这个位数与CPU内部的位数也是不同的概念,CPU位数指的是寄存器和运算单元之间总线的条数。内存与北桥连接的总线叫做内存总线。由于北桥速度太快,而IO总线速度相对北桥显得太慢,所以北桥和IO总线之间,往往要增加一个网桥,叫做南桥,在南桥上一般集成了众多外设的控制器,比如磁盘控制器、USB控制器等。

下面就来看看,在这个网络上,我们能够干点什么惊天动地的事呢?