端口是用来区分同一网络设备(IP地址)上运行的不同服务或应用程序接收外部数据的窗口。
以下是几个要点:
- 对于我们发送请求指定的url中的端口,指的是对方服务器的用于接收数据的端口,如http的80端口,服务器通常都会设定要监听来自80端口的请求。如果这个端口对方服务器没有在监听(关闭状态),这个数据往往会被抛弃。我们自己也会收到ICMP反馈的端口不可达的错误消息;
- 对于自己的电脑,端口号的分配通常发生在应用程序尝试建立网络连接时,而不是在应用程序启动时立即分配。因此,单机应用通常不会被分配端口号。
- 监听端口是应用程序主动执行的操作。应用程序通过持续监听端口,得到属于自己的数据;
- 应用程序在发送请求时使用的临时端口还是服务器响应时数据传回的端口。
- 在UDP通信中,端口号的分配是持久的,直到应用程序关闭或显式地关闭套接字;而TCP通信中,端口号的分配通常就是整个TCP连接的生命周期。