分享

从硬件角度理解什么是计算机端口

 朱子俊 2020-05-25

从硬件角度理解什么是计算机端口

图一

在PC 系统的接口卡和主板上,装有各种接口芯片。这些外设接口芯片的内部有若干寄存器,CPU 将这些寄存器当作端口来访问。

图一表示了一个实际的端口电路。从图中我们可以看出以下几点:

一:端口首先是一个硬件,是一块具体的电路。

二:这个硬件是CPU和外部设备连接的桥梁。

三:这个接口电路通过地址线和控制线与CPU相连。

四:这个接口电路有若干寄存器,是用来和CPU交换信息的。因于这个硬件有地址线和CPU相连,因此CPU可以通过寻址的方式找到这些寄存器。

这些寄存器通常称为端口。

汇编语言中,in和out指令,是端口的读写指令,分别用于从端口读取数据和往端口写入数据。

外设的输入不直接送入内存和CPU ,而是送入相关的接口芯片的端口中;

CPU 向外设的输出也不是直接送入外设,而是先送入端口中,再由相关的芯片送到外设。

比如:从端口60h读出键盘的输入

in al,60h

从硬件角度理解什么是计算机端口

上面介绍的是对应于具体硬件的端口概念,属于物理(硬件)端口。我们记住:上述物理端口指的其实就是接口电路中的寄存器。计算机学科中除了物理端口外,还有逻辑上的端口。

除了物理端口外,还有:

网络端口

在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。

软件端口

缓冲区。

协议端口

如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。

在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择,把数据包顺利的传送到目的主机。大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。

本地操作系统会给那些有需求的进程分配协议端口(即我们常说的端口),每个协议端口由一个正整数标识,如:80,139,445,等等。当目的主机接收到数据包后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。那么与此端口相对应的那个进程接收到数据包以后,将放到哪里呢?

端口其实就是队,操作系统为各个进程分配了不同的队,数据包按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。那么,队又到底是什么呢?队其实就对应一块内存区域,是进程用来存储自己所接收到的数据包的。

不光接受数据包的进程需要开启它自己的端口,发送数据包的进程也需要开启端口,这样,数据包中将会标识有源端口,以便接受方能顺利地回传数据包到这个端口。那么,如何理解开启或者关闭端口呢?我们可以理解为有一个逻辑变量A,A=0时代表关闭端口,A=1时代表开启端口。

每种网络的服务功能都不相同,因此有必要将不同的封包送给不同的服务来处理,当你的主机同时开启了FTP与WWW服务时,别人送来的资料封包,就会依照 TCP 上面的 port 号码来给 FTP 这个服务或者是 WWW 这个服务来处理。

端口按照号码分类:

· 第一类

公认端口:从0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服务的协议,例如:80端口实际上总是HTTP通讯。

第二类

注册端口:从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。

第三类

动态和/或私有端口:从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。

一些端口常常会被黑客利用,还会被一些木马病毒利用,对计算机系统进行攻击。

如果攻击者使用软件扫描目标计算机,得到目标计算机打开的端口,也就了解了目标计算机提供了哪些服务。我们都知道,提供服务就一定有服务软件的漏洞,根据这些,攻击者可以达到对目标计算机的初步了解。如果计算机的端口打开太多,而管理者不知道,那么这种情况是很危险的。因为端口如果打开了,就允许本地机的CPU一直可以通过这个端口与外设(网络)交换信息,如果外部有恶意程序通过这个端口不间断地和本地机进行信息交换,那就必然大量占用本地机的CPU时间以及内存资源,从而导致本地机的功能下降甚至崩溃。

有名的DDoS攻击手段就是通过使网络过载来干扰甚至阻断正常的网络通讯。通过向服务器提交大量请求,使服务器超负荷。阻断某一用户访问服务器,阻断某服务与特定系统或个人的通讯。

常见端口

(1)8080端口

服务:HTTP

说明:为http服务的备用端口

(2)端口:21

服务:FTP

说明:FTP服务器所开放的端口,用于上传、下载。

(3)端口:22

服务:SSH;

(4)端口:23

服务:Telnet;

(5)端口:25

服务:SMTP;

说明:SMTP服务器所开放的端口,用于发送邮件。

(6)端口:80

服务:HTTP

说明:用于网页浏览。

总之,无论物理端口还是逻辑端口,其最终都和物理上的寄存器或者内存相关联。

端口可以打开,也可以关闭。

打开的端口有可能遭到网络攻击。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多