端口机制

端口

端口在tcp协议中的体现

端口一般在tcp首部前四个字节中,前2字节表示源端口 后两字节表示目标端口
image

1.周知端口(Well Known Ports)
周知端口是众所周知的端口号,范围从 0 到 1023,其中 80 端口分配给 WWW 服务,21 端口分配给 FTP 服务等。我们在 IE 的地址栏里输入一个网址的时候是不必指定端口号的,因为在默认情况下 WWW 服务的端口是”80”。网络服务是可以使用其他端口号的,如果不是默认的端口号则应该在 地址栏上指定端口号,方法是在地址后面加上冒号”:”,再加上端口号。比如使用”8080”作为 WWW 服务的端口,则需要在地址栏里输入”网址:8080”。但是有些系统协议使用固定的端口号,它是不能被改变的,比如 139 端口专门用于 NetBIOS 与 TCP/IP 之间的通信,不能手动改变。

2.注册端口(Registered Ports)
端口 1024 到 49151,分配给用户进程或应用程序。这些进程主要是用户选择安装的一些应用程序,而不是已经分配好了公认端口的常用程序。这些端口在没有被服务器资源占用的时候,可以用用户端动态选用为源端口。

3.动态端口(Dynamic Ports)
动态端口的范围是从 49152 到 65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。比如本地想和远端建立 TCP 连接,如果没有指定本地源端口,系统就会给你自动分配一个未占用的源端口,这个端口值就是动态的,当你断开再次建立连接的时候,很有可能你的源端口和上次得到的端口不一样。

一些常见的端口号及其用途如下:

  • TCP21 端口:FTP 文件传输服务
  • TCP22 端口:SSH 安全外壳协议
  • TCP23 端口:TELNET 终端仿真服务
  • TCP25 端口:SMTP 简单邮件传输服务
  • UDP53 端口:DNS 域名解析服务
  • UDP67 端口:DHCP 的服务端端口 UDP68 端口:DHCP 的客户端端口 TCP80 端口:HTTP 超文本传输服务
  • TCP110 端 口:POP3“邮局协议版本 3”使用的端口
  • TCP443 端口:HTTPS 加密的超文本传输服务

注意点

端口是网络层协议地址+传输层协议号+端口号来区分的,比如:

ipv4的tcp 80端口和ipv4的udp 80端口不会冲突。

如果你主机有两个 ip 地址 ip1 和 ip2,那么你同时监听ip1:80ip2:80不会冲突。

ipv4的tcp 80端口和ipv6的tcp 80端口不会冲突。