端口 Port

网络技术中 端口 Port 包括 逻辑端口 和 物理端口 两种类型

物理端口
物理存在的端口 如ADSL Modem 集线器 交换机 路由器 上用于连接 其他网络设备的 接口 如RJ-45端口 SC端口等

逻辑端口
逻辑意义上用于 区分服务的端口 如TCP/IP协议中的 服务端口 端口号的范围从0到 65535 比如 用于浏览网页服务的 80端口 用于FTP服务的 21端口 等

由于物理端口和逻辑端口数量较多 为了对端口进行区分 将每个端口进行了编号 就是端口号

逻辑端口 有什么用呢?
拥有IP地址的主机可以提供许多服务 比如Web服务 FTP服务 SMTP服务等
这些服务完全可以通过1个IP地址来实现
那么 主机是怎样区分不同的网络服务呢?
显然不能只靠IP地址 因为IP 地址与网络服务的关系是一对多的关系
实际上 是 通过 IP地址+端口号 来区 分不同的服务的

服务器 通过 知名端口号 来识别的 例如 对于每个TCP/IP实现来说 FTP服务器的TCP端口号都是21 每个Telnet服务器 的TCP端口号都是23 每个TFTP(简单文件传送协议)服务器的UDP端口号都是69

任何TCP/IP实现所提供的服务都用知名的1~1023之间的端口号
这些知名端口号由 Internet 号分配机构(InternetAssignedNumbersAuthority,IANA)来管理

到1992年为止 知名端口号介于1~255之间
256~1023之间的端口号通常都是由Unix系统占用 以提供一些特定的Unix服务
也就是说 提供一些只有Unix系统才有的 而其他操作系统可能不提供的服务 IANA管理1~1023之间所有的端口号

Internet扩展服务与Unix特定服务之间的一个差别就是Telnet和 Rlogin
它们二者都允许通过计算机网络登录到其他主机上
Telnet 是采用端口号为23的TCP/IP标准且几乎可以在所有操作系统上进行实现

Rlogin只是为Unix系统设计的(尽管许多非Unix系统也提供该服务) 它的有名端口号为513
客户端通常对它所使用的端口号并不关心 只需保证该端口号在本机上是唯一的就可以了
客户端口号又称作临时端口号(即存在时间很短暂)

这是因为它通常只是在用户运行该客户程序时才存在 而服务器则只要主机开着的 其服务就运行
大多数TCP/IP实现给临时端口分配1024~5000之间的端口号
大于5000的端口号是为其他服务器预留的(Internet上并不常用的服务)

可以在后面看见许多这样的给临时端口分配端口号的例子
Solaris2.2是一个很有名的例外 通常TCP和UDP的缺省临时端口号从32768开始

php 的端口
php开发 最常见的就是80 http默认端口了
在没有指定端口的情况下 访问网站都是默认为80端口 如果你web服务器监听的是8080端口 访问时就必须 www.google.com:8080 带上端口才能访问