目 录
一、什么地方会用到网络端口?
二、端口的定义和作用
(一)TCP协议和UDP协议
(二)端口的定义
(三)在TCP/IP体系中,端口(TCP和UDP)的作用
(四)使用端口进行网络通信
三、端口的分类
(一)端口分配方式
(二)TCP/IP的端口号分配
(1)公认端口(Well Known Ports):
(2)注册端口(Registered Ports):
(3)动态和/或私有端口(Dynamic and/or Private Ports):
四、常见的端口号
四、视频监控和流媒体通信中的端口号
我们经常在浏览器的地址、或一些命令行栏输入如下一些URL(统一资源定位符):
编号 |
URL |
描述 |
1 |
http://10.2.2.2:23000 |
访问IP为10.2.2.2,端口为23000的网页 |
2 |
rtsp://192.1.3.33:5546 |
访问IP为10.2.2.2,端口为5546提供的RTSP流 |
3 |
telnet 166.3.2.1 2329 |
访问166.3.2.1上tcp端口2329提供的服务 |
4 |
rtmp://123.45.22.33:8080 |
访问IP为123.45.22.33,端口为8080提供的RTMP流 |
5 |
http://vidist.cn |
访问域名为vidisit.cn的web网站,端口80 |
6 |
https://vt.vidisit.cn:2800 |
访问域名为vt.vidisit.cn的web网站,端口2800 |
这些url 都是为了访问一些服务,这些服务是有某个服务器提供。同时可能会输入如下URL:
http://192.168.1.8/crm/index.php?pageto_module=Home&pageto_action=index
http://121.37.68.30:26558/realv/index-auto.html?cid=32050100001310000212
rtsp://192.1.3.33:5546/devid=3205010000131
这些也代表着特定的意义。我们可以看出,我们要访问网络资源,除了要输入IP地址以外,我们还需要一个端口、以及一些协议的名称,比如HTTP、RTSP、RTMP、TELNET等等。这里面说的端口是TCP或者UDP的端口,这些协议一般都属于应用层协议,都是基于TCP和UDP的,或者说是在传输层以上的应用层协议。
基于TCP/IP的各种应用层协议非常多,我们这里就不再详细描述了,我们这里主要谈谈网络端口。
TCP(Transmission Control Protocol)协议,意为传输控制协议。
UDP(User Datagram Protocol)协议,意为用户数据报协议。
TCP和UDP协议在TCP/IP五层协议中都位于传输层,负责在网络中传输数据。具体来说,它们都提供了数据传输的端到端服务,并使用端口号来标识发送和接收数据的源应用程序。
TCP和UDP协议在数据传输方式和服务质量方面存在显著差异。TCP协议提供面向连接的、可靠的数据传输服务。它使用端口号来标识不同的应用程序,以便在网络中正确地路由和传输数据。TCP协议通过确认机制、重传机制、流量控制和拥塞控制等机制来保证数据传输的可靠性和效率。而UDP协议则是一种无连接的、尽最大努力的数据传输协议,不保证数据传输的可靠性和顺序,适用于对实时性要求较高的应用,如流媒体、VoIP等。
在TCP/IP协议中,端口号是一个16位的整数,用于标识网络进程。端口号的主要作用是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层的哪个进程。从这种意义上讲,端口是用来标志应用层的进程。每个端口号只被一个进程占用,但一个进程可以绑定多个端口号。
在因特网中,不同计算机的相同端口号是没有联系的,端口的作用是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层的哪个进程。
如果把IP地址比作一栋大楼,端口就是这栋大楼的房间,一个IP地址的端口可以有65536(即:256×256)个,端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(256×256)。可以理解为这个这栋大楼有65536个房间。
网络层(IP层)接收到网络数据以后,根据端口号,分发给各个应用层APP。类似,快递到达大楼后,大楼传达室根据目的地址上面的具体房间号,分发给大楼里面的不同的房间(大楼入住单位),图示如下:
归纳一下,在TCP/IP协议中,主要是TCP和UDP用到了端口号。端口的作用主要有两个:
在TCP/IP中,不管是TCP还是UDP,它们都是通过源端口号和目的端口号来标识不同的应用程序,并使用这些端口号来传输数据达到网络通信的目的。当网络中的数据到达目的主机时,操作系统的网络协议栈会根据数据中的目的端口号将数据送到相应的应用程序。这样,不同的应用程序就可以通过不同的端口来接收和发送数据,实现网络通信。
以UDP为例,UDP进行数据通信的过程可以简要描述如下:
总的来说,端口号在TCP/IP协议中起到了标识和区分不同应用程序的重要作用,使得网络通信能够高效、有序地进行。
一般情况下,端口号有两种基本分配方式:
第一种叫全局分配,这是一种集中分配方式,由一个公认权威的顶级机构根据用户需要进行统一分配,并将结果公布于众,
第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(也称为binding,绑定)。
TCP/IP端口号的分配综合了以上两种方式,将端口号分为两部分,
TCP和UDP规定,小于256的端口才能作为保留端口。
从0到1023,它们紧密绑定(binding)于一些特点服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。
0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用一种通常的闭合端口连接它时将产生不同的结果。一种典型的扫描:使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。
从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。
从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
TCP/IP协议中有很多已知的端口号,这些端口号被分配给不同的应用程序和服务。以下是一些常见的端口号及其对应的服务(这只是一部分常见端口,实际上有更多端口号):
随着时间的推移,新的应用程序和服务可能会出现,并且可能会分配新的端口号。个人可以根据您的具体需求和兴趣,查找相关的文档和资源来获取所需的端口号信息。
在网络视频监控和流媒体通信中,通常会使用以下常见的端口号:
这些端口号被广泛应用于网络视频监控领域的不同组件和协议中。对于需要安全传输的视频监控数据,可能会使用加密的协议和端口号,以确保数据的安全性和隐私保护。