关系:
- 端口号与进程的关联: 每个进程可以监听一个或多个端口号来接收网络请求。例如,一个 Web 服务器进程可能在端口 80 上监听 HTTP 请求。操作系统维护一个表格或数据结构,将每个端口号与其对应的进程号关联起来。这样,操作系统就知道如何将传入的数据包发送到正确的进程。
- 端口号和进程的映射: 可以通过操作系统的网络工具(如
netstat
、ss
或lsof
)来查看端口号与进程号之间的映射关系。这些工具显示哪些端口号被哪些进程号使用。
区别:
- 功能:
- 端口号: 主要用于网络通信,用于标识应用程序层的不同服务。
- 进程号: 主要用于操作系统内部进程管理,跟踪和控制进程的执行状态。
- 作用范围:
- 端口号: 只在网络层面上相关,涉及到网络数据的路由。
- 进程号: 涉及整个操作系统层面,用于管理和调度进程。
在运行一个 Web 服务器和一个数据库服务器:
- Web 服务器: 可能运行在进程号 1234 上,监听端口 80。
- 数据库服务器: 可能运行在进程号 5678 上,监听端口 5432(假设是 PostgreSQL 的默认端口)。
当从浏览器访问 Web 服务器时,请求被发送到端口 80,操作系统通过端口号将请求路由到进程号 1234 对应的 Web 服务器进程。当 Web 服务器需要与数据库通信时,它会通过端口 5432 将请求发送到进程号 5678 对应的数据库服务器进程。