计算机软件端口详述
当我们操作计算机浏览网页,同时使用微信、QQ发送信息时,计算机会及时将数据传输给浏览器、微信、QQ。我们思考这样一个问题,同样是网络数据,计算机为啥不会把QQ的数据传输给网页导致错误,计算机又是如何把网络收到的数据传输给不同的应用程序,这个过程用到了一个非常重要的概念,就是软件端口,不同的端口对应相应的应用程序以及确定应用程序传输的数据。下面就软件端口进行详细讲述。

一、软件端口的概念
软件端口是网络通信中的逻辑概念,一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。我们在计算机的任何操作都在有意无意地使用着计算机的各个端口。
在计算机网络中,端口(Port)是一种逻辑上的连接端点。可以将其类比为现实生活中的“门”或者“窗口”。在网络通信中,IP地址用于标识网络中的一台主机(就像房子地址),而端口号则用于标识这台主机上运行的特定应用程序或进程(就像房子里的不同房间)。
二、端口的作用
1.区分应用程序精准投送
一台计算机上可能同时运行多个网络应用程序,例如同时打开浏览器、即时通讯软件等。每个应用程序都需要通过网络进行数据传输,端口号就用来区分这些数据是属于哪个应用程序的。例如,浏览器可能使用端口8080(这是一个常用的非标准HTTP端口示例)来接收网页数据,而即时通信软件可能使用端口12345来接收消息。软件端口的核心作用就是区分同一台设备上不同的网络服务,确保数据能准确无误地送到指定的应用程序手中。当数据包到达目标电脑后,操作系统会根据端口号,判断这份数据应该交给浏览器、微信还是游戏程序。
实例说明:假设你同时打开了浏览器下载网页文件,又打开了迅雷下载电影。虽然两者的数据都通过网线传到了你的电脑,但系统不会搞混,原因如下:浏览器(Web服务)通常向服务器请求数据时,会标记自己使用80或443端口。服务器返回的数据包上也会写着“发给80端口”。迅雷(下载软件)它通常使用一个随机的高位端口(如54321)。服务器返回的电影数据包上写着“发给54321端口”。结果:操作系统收到数据包后,看到目标端口是80,就把网页数据交给浏览器;看到目标端口是54321,就把电影数据交给迅雷。
2.实现多路复用和多路分解
在网络传输层(如TCP或UDP),数据被封装成数据包进行传输。当数据包到达目标主机时,操作系统根据端口号将数据准确地分发给对应的应用程序,这个过程就是多路分解。相反,当应用程序发送数据时,操作系统将数据加上源端口号和目的端口号等信息封装成数据包发送出去,这就是多路复用。
实例说明:服务器的一机多用。一台服务器(IP地址相同)往往需要同时提供网页浏览、文件传输和邮件发送服务。端口让这成为可能:
Web服务:监听 80端口,处理网页请求。
FTP服务:监听 21端口,处理文件上传下载。
SMTP服务:监听 25端口,处理邮件发送。
客户端访问时,只需在IP地址后指定不同的端口,就能访问不同的服务,互不干扰。
三、如何查看端口
(一)借助Windows任务管理器查看端口使用情况
Windows的任务管理器,可以直接在详细信息中查看各进程打开的端口。
1.右键点击任务栏空白处,选择“任务管理器”,或使用快捷键【Ctrl + Shift + Esc】。
2.切换到“详细信息”选项卡,选择性能,然后选择左下角打开资源监视器,如下图:

3.选择“网络”选项并确认,随后在进程列表中即可看到每个进程所占用的本地端口。如图所示。
不同的Windows版本操作可能略有不同,但都类似,打开资源监视器可以看到进程所使用端口。
(二)使用Windows命令提示符查看
1.按下Win + R键,输入cmd,然后按Ctrl + Shift + Enter以管理员身份运行。
2.在命令提示符窗口中,输入netstat -ano命令并按下回车键。

上述命令列出所有端口的使用情况。
可以使用netstat -ano | findstr “端口号”命令查看特定端口的占用情况,将“端口号”替换为你想查询的具体端口号。例如查找端口4444,具体如下

(三)使用资源监视器(Resource Monitor)
打开资源监视器:按下“Win+R”组合键,打开“运行”对话框。输入“resmon.exe”,并点击“确定”按钮。可以查看端口占用情况与方法一样,只是简便操作。


(四)使用第三方工具查看端口
还有一些第三方工具,如TCPView、Advanced Port Scanner、Angry IP Scanner等,它们提供了更直观的用户界面来查看端口占用情况。这些工具通常由专业的软件开发公司或开源社区提供,可以在它们的官方网站上下载和使用。
四、端口的分类
在计算机网络中,端口是用于标识网络进程的16位整数。端口号的主要作用是让应用层的各种应用进程能够通过端口向下交付数据给传输层,并让传输层知道应当将其报文段中的数据向上交付给应用层的哪个进程。
(一)按照端口号分类
1.公认端口(Well Known Ports):范围是0到1023。这些端口紧密绑定于一些特定服务,通常明确表明了某种服务的协议。例如,80端口用于HTTP通信,21端口用于FTP服务。
2.注册端口(Registered Ports):范围是1024到49151。这些端口松散地绑定于一些服务,也用于许多其他目的。例如,许多系统处理动态端口从1024开始。
3动态或私有端口(Dynamic and/or Private Ports):范围是49152到65535。理论上,不应为服务分配这些端口,通常机器从1024开始分配动态端口。
(二)常用知名端口
1.基础网络服务
端口 | 协议 | 服务名称 | 应用描述 | 安全风险级别 |
20 | TCP | FTP-DATA | 文件传输协议(数据通道) | 中 |
21 | TCP | FTP | 文件传输协议(控制通道) | 高 |
22 | TCP | SSH | 安全远程登录 | 低 |
23 | TCP | TELNET | 明文远程登录 | 极高 |
25 | TCP | SMTP | 简单邮件传输协议 | 中 |
53 | TCP/UDP | DNS | 域名解析服务 | 高 |
67 | UDP | DHCP-Server | DHCP服务端 | 中 |
68 | UDP | DHCP-Client | DHCP客户端 | 低 |
69 | UDP | TFTP | 简单文件传输协议 | 高 |
80 | TCP | HTTP | 超文本传输协议 | 中 |
110 | TCP | POP3 | 邮局协议v3 | 中 |
123 | UDP | NTP | 网络时间协议 | 低 |
143 | TCP | IMAP | 互联网消息访问协议 | 中 |
161 | UDP | SNMP | 简单网络管理协议 | 高 |
162 | UDP | SNMP-TRAP | SNMP陷阱消息 | 中 |
389 | TCP/UDP | LDAP | 轻量目录访问协议 | 高 |
443 | TCP | HTTPS | 安全HTTP协议 | 低 |
465 | TCP | SMTPS | 安全SMTP(隐式TLS) | 低 |
587 | TCP | SMTP-Submission | 邮件提交端口 | 低 |
636 | TCP/UDP | LDAPS | 安全LDAP协议 | 低 |
993 | TCP | IMAPS | 安全IMAP协议 | 低 |
995 | TCP | POP3S | 安全POP3协议 | 低 |
2.数据库服务
端口 | 协议 | 服务名称 | 应用描述 | 默认DBMS |
1433 | TCP | MSSQL | Microsoft SQL Server | SQL Server |
1434 | UDP | MSSQL-Monitor | SQL Server浏览器服务 | SQL Server |
1521 | TCP | ORACLE | Oracle数据库默认端口 | Oracle |
1830 | TCP | ORACLE-RAC | Oracle RAC集群 | Oracle |
3306 | TCP | MYSQL | MySQL数据库服务 | MySQL |
5432 | TCP | POSTGRES | PostgreSQL数据库 | PostgreSQL |
27017 | TCP | MONGODB | MongoDB数据库 | MongoDB |
6379 | TCP | REDIS | Redis键值存储 | Redis |
9200 | TCP | ELASTICSEARCH | Elasticsearch服务 | Elastic |
3.远程访问与文件服务
端口 | 协议 | 服务名称 | 应用描述 | 加密支持 |
3389 | TCP | RDP | 远程桌面协议 | TLS |
5900 | TCP | VNC | VNC远程控制默认端口 | 可选SSL |
2049 | TCP/UDP | NFS | 网络文件系统 | 无 |
137 | UDP | NETBIOS-NS | NetBIOS名称服务 | 无 |
138 | UDP | NETBIOS-DGM | NetBIOS数据报服务 | 无 |
139 | TCP | NETBIOS-SSN | NetBIOS会话服务 | 无 |
445 | TCP | SMB | 服务器消息块(CIFS) | SMB加密 |
五、端口与协议的关系
端口通常与网络协议(如TCP或UDP)一起使用。TCP(传输控制协议)是一种面向连接的、可靠的协议,适用于对数据准确性要求较高的应用,如文件传输、电子邮件等。UDP(用户数据报协议)是一种无连接的、不可靠的协议,适用于对实时性要求较高但对数据准确性要求相对较低的应用,如视频流、在线游戏等。不同的应用程序可能会根据需求选择使用TCP或UDP协议,并结合特定的端口号进行通信。
六、端口使用的注意事项
1.不要使用端口号小于1024的端口。端口号一般习惯为4位整数,在同一台计算机上端口号不能重复,否则,会产生端口号冲突。
2.客户端端口号因存在时间很短暂又称临时端口号,大多数TCP/IP实现给临时端口号分配1024---5000之间的端口号。大于5000的端口号是为其他服务器预留的。
夜雨聆风