查看原文:欢迎来到我的个人博客
本文读者应有基础的网络知识
端口概念
在网络技术中,端口(port)大致有两种意思:
- 物理上的端口,比如 ADSL、Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如 RJ-45 端口、SC 端口等等。
- 逻辑意义上的端口,一般是指 TCP/IP 协议中的端口,端口号的范围从 0 到 65535,比如用于浏览网页服务的 80 端口,用于 FTP 服务的 21 端口等等。
这里要说的端口是指 TCP/UDP 协议中的端口
什么是端口
首先我们知道internet上,各主机根据TCP/IP协议发送接收数据报,而根据其目的主机的IP地址可以很容易的将数据送到目的主机。但是在同一时间主机中是同时运行众多进程的,那么目的主机应该把接收到的数据传送给哪一个进程呢,此时就需要引入端口机制了。
计算机之间依照互联网传输层TCP/IP 协议的协议通信,不同的协议都对应不同的端口。并且,利用数据报文的 UDP 也不一定和 TCP 采用相同的端口号码。所以是分为两种。端口作为一种操作系统的可分配资源,有需要时进程会和某一端口绑定,绑定之后,远程主机发给该端口的数据就能被相应进程接收,反之亦然。这样就建立了一种对应关系。
一台主机可以提供的服务是很多的,比如Web服务,FTP服务,SMTP服务等等,也就是说IP地址(主机)和网络服务是一对多的关系。所以需要端口来确定。所以客户端端口应该唯一。
端口分类
-
按照端口号分
- 知名端口:范围从 0 到 1023,这些端口号一般固定分配给一些服务。比如 25 端口分配给 SMTP(简单邮件传输协议)服务,80 端口分配给 HTTP 服务,135 端口分配给 RPC(远程过程调用)服务等等。
- 动态端口:动态端口的范围从 1024 到 65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。
-
按协议分
- TCP
- UDP