计算机传输层端口分类
本文最早发布于我的51CTO博客,目前已迁移至博客园。
参考:port的英文维基百科
简介
MAC地址定义了数据包的下一跳地址。
IP地址定义了数据包最终应该传输到哪台计算机上。
而端口(port)则定义了数据包中的数据应该由计算机上的哪个进程来接收。
端口是一种逻辑上的概念,用来识别一个计算机上的一个进程或者一类网络服务。
端口一般和网络协议与IP地址相关联。
端口号由16位无符号二进制组成,2^16=65536,可表示的端口号数量为65536,端口号的范围为0~65535。
分类
特定的端口有特定的用途,端口的分类是由IANA定义的。
周知端口
周知端口(well-known port),端口范围是0~1023,用于互联网常用的服务,在类Unix操作系统中,可能需要具备root的权限才可以将管理使用周知端口的服务。常见的周知端口如下:
端口 | 描述 |
---|---|
20 | FTP数据连接主动模式 |
21 | FTP命令连接 |
22 | SSH |
23 | telnet |
25 | SMTP |
80 | HTTP |
443 | HTTPS |
... | ... |
注册端口
注册端口(register port),端口范围是1024~49151,一般用于那些不需要root权限的服务。常见的注册端口如下:
端口 | 描述 |
---|---|
10050 | zabbix-agent |
10051 | zabbix-server |
3306 | mysql or mariadb |
6379 | redis |
... | ... |
动态端口
动态端口(dynamic port),也叫作私有端口(private port)或者短命端口(ephemeral port),端口范围是49152~65535,这些端口是无法在IANA上面注册的,一般用于C/S架构中client启用的高位端口作临时使用的。
如图所示,本机开了四个X shell会话(session)来连接虚拟机,每个会话占用一个连接(connection),每个连接在我的本机启用了一个动态端口,分别是:49618、49628、49629和49635。
# netstat -ntup
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 64 192.168.17.100:22 192.168.17.1:49618 ESTABLISHED 2761/sshd
tcp 0 0 192.168.17.100:22 192.168.17.1:49628 ESTABLISHED 2790/sshd
tcp 0 0 192.168.17.100:22 192.168.17.1:49629 ESTABLISHED 2811/sshd
tcp 0 0 192.168.17.100:22 192.168.17.1:49635 ESTABLISHED 2832/sshd