当我们进入一栋楼时需要通过“门”这个“端口”,新建房间的墙上我们也会看到不同的类型的盒子当做今后引入有线电视或电话等等的“端口”。实际上端口这个概念看似常见和简单,但它的出现和存在意味着通向另一个“环境”或“实体”的通道(接口)或“门”。结合这个例子,本文我们主要讲述计算机世界怎么借助“端口”来实现了相互间通信和管理。
1、简介计算机端口技术
在PC机系统中,和CPU通过总线相连的芯片除各种存储器外,还有以下3种芯片。
1) 各种接口卡(比如,网卡、显卡)上的接口芯片,它们控制接口卡进行工作;
2) 主板上的接口芯片,CPU通过它们对部分外设进行访问;
3) 其他芯片,用来存储相关的系统信息,或进行相关的输入输出处理。
在这些芯片中,都有一组可以由CPU读写的寄存器。这些寄存器,它们在物理上可能处于不同的芯片中,但是它们在以下两点上相同。
1) 都和CPU的总线相连,当然这种连接是通过它们所在的芯片进行的;
2) CPU对它们进行读或写的时候都通过控制线向它们所在的芯片发出端口读写命令。
可见,从CPU的角度,将这些寄存器都当作端口,对它们进行统一编址,从而建立了一个统一的端口地址空间。每一个端口在地址空间中都有一个地址。CPU可以直接读写以下3个地方的数据:CPU内部的寄存器、存单元、端口。
在访问端口的时候,CPU通过端口地址来定位端口。因为端口所在的芯片和CPU通过总线相连,所以,端口地址和内存地址一样,通过地址总线来传送。在PC系统中CPU最多可以定位64KB个不同的端口。则端口地址的范围为0 ~ 65535 。
回顾上一篇文章,我们通过汇编语言r命令用于查看和改变CPU寄存器的内容,图2也展示了CPU内部实际上由不同的寄存器和内存组成。我们知道了通过改变CPU内部的寄存器内容来让我们完成更复杂的自动化任务。

图1 8086CPU内部寄存器及存储单元
结合上述内容,我们可以将CPU内部的寄存器当成一个端口。如图2所示,每个CPU芯片都有许多管脚,这些管脚和总线相连(CPU内部和外总线),总线通过主板连接网络接口再连接对端设备上CPU芯片(现在几乎每一个电子设备离不开芯片)某个管脚,最终达到访问对设备CPU芯片寄存器的目标。通过修改对端设备芯片上寄存器内容能够实现监控、控制端设备的目的。

图2 CPU及管脚
2、网络端口与分布式数据管理
现在我们超出单个计算机范畴,再谈谈独立的不同计算机之间是怎么通信的。以国际标准的TCP/IP协议为例讲,在传输层也存在着端口的概念。我们通过在不同计算机中配置不同IP地址(实际上IP地址只是代表物理网口的别名而已),然后通过网线把他们连接,这样只是解决了连接(connection)的问题,但是计算机之间真正的数据通信还需借助端口号(port number)。
这个端口号的概念实际上本文开头举例的现实生活中的“门”类似的,IP地址代表这栋楼的地址,但要进入这栋楼,需要通过门。类似的计算机世界中仅仅知道IP地址还不够,要进入其内部需要端口号(即门牌号)。
可见现实世界和计算机世界大道相通,现实世界的排队论,照样适合于计算机世界并发控制,现实世界中人口猛增后盖许多栋楼解决居住问题,对于计算机世界来说同样通过网络连接多台计算机来构建分布式存储系统来满足猛增的数据量,,猛增的非结构化数据也给数据管理技术带来了新挑战和机遇。
回顾数据管理技术,因为之前主要以结构化数据为主,数据增量一般也在可控范围内。因此,分布式数据管理技术理论虽然很早提出过,但没有得到普遍应用和发展。随着非结构化数据为主的大数据时代降临和PC服务器的成熟,分布式存储技术得以“复活”。分布式数据管理技术当然也离不开通过各自独立设备之间通过大带宽低延迟的IB网络和端口(或接口)技术的连接和通信。关于大数据管理技术后续另作介绍,在此不再赘述。
3、通过“端口”管理工业设备
从数据中心远程监控和控制的角度看,我们也离不开端口技术。当然,在数据中心建设中该部分内容通过弱电、动环监控、BA(楼宇自动化)等术语和技术来覆盖和实现。当我们靠近这些技术细看时发现,实际上这些技术也是绕不开端口来通信和“控制”,如图3所示。冷机、空调、发电机等工业设备控制电路上也有芯片,不过工业设备所用的芯片跟计算机内部用的芯片之间有一定的区别。

图3 单片机和PLC
因为IT设备所处的环境是非常“优雅”的数据中心机房。数据中心建设成本50%至60%的投入用于创造这么一个“优雅”而稳定的风火水电环境。而工业设备没那么好的运气,因此给工业设备配置的芯片虽然计算速度没有那么高,但更注重于抗干扰、恶劣的温湿度环境指标等。这些芯片也叫作单片机、PLC(可编程序控制器)等不同名字,但是本质原理跟上一篇介绍的8086CPU基本类似。
4、结束语

参考资料:
汇编语言 王爽 著 清华大学出版社




