传输层协议之UDP

时间:2024-11-01 21:50:15

一.Port详细

端口号标识了一个主机进行通信的不同应用程序

一台主机的端口从0~65535:

0-1023:是知名端口号,例如HTTP是默认为80端口,HTTPS是默认为443端口,FTP是默认为21,SSH默认为22号端口

1024~65535:作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的

对于知名端口,如果是我们自己写的相关程序是要避开这些端口的,可以绑定OS动态分配的端口

在 TCP/IP 协议中, 用 "源 IP", "源端口号", "目的 IP", "目的端口号", "协议号" 这样一个五元组来标识一个通信,知道这个对于我们后续UDP学习非常重要

下面我们来解决一些特别有意思的问题:

一个进程是否可以 bind 多个端口号?
显然,一个进程是可以绑定多个端口的,我们知道一个进程可以打开多个文件描述符,而一个描述符对应一个端口,也就是说一个进程就可以绑定多个端口。

一个端口号是否可以被多个进程 bind?

一般来说一个端口号只能被一个进程绑定,但是在特俗情况下一个端口是可以被多个进程绑定的,例如:父进程绑定一个端口号,而子进程是也可以绑定该端口号。