【网络】网络端口号分类

来源:互联网 发布:qq空间皮肤psd源码 编辑:程序博客网 时间:2024/05/17 03:51

在开始之前有必要先说一下为什么要网络要对对端口号进行细分,而像常见的端口号之间又是什么东西,有什么作用,为什么要学习端口号相关的知识,带着这些疑问,下面开始今天知识的学习。

在我学习网络的过程中第一次听到端口号的时并不知道,端口号究竟是什么鬼,心里想着端口应该就是我们手下正在使用的电脑上面的一些拓展端口,像我们插电源、插鼠标、连接键盘直接的吧。然而网络中的端口并不是我当时这样的天真的想法。比较正式的听到端口号是在开始简单的socket编程时,老师告诉我们socket(套接字)=IP地址+port(端口)号,对于端口号的理解要和进程相联系,我们都知道通过IP地址我们可以查找到一个唯一的目的主机,但是当源主机和对端主机进行通信或者说通过网络层,如何确定源主机发送来的IP数据报拆掉报头之后要上传给上层的那个服务进程,这时聪明的网络设计者就设计出了端口号这个东西,端口号就相当于是特定主机上面的特定进程,有了端口号的概念后,在网络通信中,源主机和目的主机就可以通过IP地址和端口号将要发送的数据发送到对端主机的特定进程上。

从TCP/UDP数据报的报头设计,我们可以知道端口号是由16位比特位来组成的,因此端口号的范围为0~~65535,但是这么多的端口号一下子扔过来,不要说我们计算机其实也是很头大的,因此计算机对于这些多口号有进行了进一步的细分,以便将其高效的管理起来。

常见的端口号分类方式

1、基于软硬件的端口分类

(1)硬件端口:这些端口主要是相对于网络模型的一些底层不同硬件设备进行交互的一些接口,如在同一个局域网之中的交换机,长距离传输中的集线器,不同局域网/广域网之间进行交互的路由器等;

(2)软件端口:和硬件接口相对,软件接口主要时为上层应用层的各种协议进程与传输实体进行交互的具体地址(这部分使学习网络编程中需要重点

注意:不同主机之中的相同端口号之间是没有相互关联的,只是相对于本主机来说的

2、基于协议类型分类

(1)TCP端口:远程控制协议端口,通常使用时需要在客户端和服务器之间建立连接,以提供可靠的数据传输,常见的有80,21,23,25等。

(2)UDP端口:用户数据报协议端口,由于UDP协议是无连接不可靠的,因此不需要在客户端和服务器之间建立连接,常见的有53,161,8000,4000等。

(3)保留端口:从名字上看这些端口号就是为以后新的服务保存的,而在UNIX中,只有超级用户特权的进程才允许给其分配一个保留端口号,这些端口号介于0~1023

3、基于端口号使用分类

(1)熟知端口号(公认端口号):这部分端口号是从0~~1023,主要用于绑定一些常见的服务,明确的为我们表明某种服务的协议。像常见的80,21,22等。

(2)注册端口号(登录端口号):这部分端口号是从1024~~49151,用于松散的绑定一些服务,许多服务绑定于这些端口号,这些端口号同样的也可以用于其他的使用。

(3)动态端口号(私有端口号):这不冯端口号是从49152~~65535,理论上不应为服务分配这些端口号。通常机器通常是从1024开始分配动态端口号,但也有个别例外。

Linux下对于端口号的查看与编辑操作

(1)netstat:查看端口状态,可以列出当前系统正在开放的端口号和其状态。

(2)使用第三方端口扫描软件,例如Fport

(3)netstat -n:以数字格式显示端口和数字信息

常见端口号预览表




原创粉丝点击