网络端口(包括TCP端口和UDP端口)的作用、定义、分类,以及在视频监控和流媒体通信中的定义

目                    录

一、什么地方会用到网络端口?

二、端口的定义和作用

(一)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协议和UDP协议

TCPTransmission Control Protocol)协议,意为传输控制协议。

UDPUser Datagram Protocol)协议,意为用户数据报协议。

TCPUDP协议在TCP/IP五层协议中都位于传输层,负责在网络中传输数据。具体来说,它们都提供了数据传输的端到端服务,并使用端口号来标识发送和接收数据的源应用程序。

TCPUDP协议在数据传输方式和服务质量方面存在显著差异。TCP协议提供面向连接的、可靠的数据传输服务。它使用端口号来标识不同的应用程序,以便在网络中正确地路由和传输数据。TCP协议通过确认机制、重传机制、流量控制和拥塞控制等机制来保证数据传输的可靠性和效率。而UDP协议则是一种无连接的、尽最大努力的数据传输协议,不保证数据传输的可靠性和顺序,适用于对实时性要求较高的应用,如流媒体、VoIP等。

(二)端口的定义

        在TCP/IP协议中,端口号是一个16位的整数,用于标识网络进程。端口号的主要作用是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层的哪个进程。从这种意义上讲,端口是用来标志应用层的进程。每个端口号只被一个进程占用,但一个进程可以绑定多个端口号。

        在因特网中,不同计算机的相同端口号是没有联系的,端口的作用是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层的哪个进程。

        如果把IP地址比作一栋大楼,端口就是这栋大楼的房间,一个IP地址的端口可以有65536(即:256×256)个,端口是通过端口号来标记的,端口号只有整数,范围是从0 65535256×256)。可以理解为这个这栋大楼有65536个房间。

         网络层(IP层)接收到网络数据以后,根据端口号,分发给各个应用层APP。类似,快递到达大楼后,大楼传达室根据目的地址上面的具体房间号,分发给大楼里面的不同的房间(大楼入住单位),图示如下:

(三)TCP/IP体系中,端口(TCP和UDP)的作用

        归纳一下,在TCP/IP协议中,主要是TCPUDP用到了端口号。端口的作用主要有两个:

  1. 标识应用程序:每个端口号都是唯一的,可以用来标识运行在计算机上的应用程序。当数据包在网络中传输时,目的端口号可以告诉操作系统应该将数据包发送到哪个应用程序。
  2. 实现多任务处理:通过使用端口号,一台计算机可以同时运行多个应用程序,并正确地处理进入和离开的数据包。每个应用程序可以绑定到一个特定的端口号,这样就可以通过不同的端口号来区分不同应用程序的数据包。

(四)使用端口进行网络通信

        在TCP/IP中,不管是TCP还是UDP,它们都是通过源端口号和目的端口号来标识不同的应用程序,并使用这些端口号来传输数据达到网络通信的目的。当网络中的数据到达目的主机时,操作系统的网络协议栈会根据数据中的目的端口号将数据送到相应的应用程序。这样,不同的应用程序就可以通过不同的端口来接收和发送数据,实现网络通信。

         UDP为例,UDP进行数据通信的过程可以简要描述如下:

  1. 创建套接字socket:首先,在UDP通信中,需要创建一个套接字socket。这个套接字用于在本地主机上标识一个通信端点。
  2. 绑定端口:接下来,需要将套接字绑定到一个特定的端口上。这个端口用于标识发送和接收数据的进程。端口号是一个16位的整数,范围从0到65535(一般不用一些预留的端口)。
  3. 发送数据:一旦套接字被绑定到端口上,就可以使用这个套接字发送数据了。UDP发送数据时,会将数据封装成UDP数据报,并加上源端口号和目的端口号,然后发送到目的主机。
  4. 接收数据:在目的主机上,如果某个进程绑定了一个相同的端口号,它就可以接收数据了。当UDP数据报到达目的主机时,操作系统的网络协议栈会根据目的端口号将数据报送到相应的应用程序。
  5. 关闭套接字socket:当通信完成后,需要关闭套接字以释放资源。

总的来说,端口号在TCP/IP协议中起到了标识和区分不同应用程序的重要作用,使得网络通信能够高效、有序地进行。

三、端口的分类

(一)端口分配方式

        一般情况下,端口号有两种基本分配方式:

        第一种叫全局分配,这是一种集中分配方式,由一个公认权威的顶级机构根据用户需要进行统一分配,并将结果公布于众,

        第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(也称为binding,绑定)。

        TCP/IP端口号的分配综合了以上两种方式,将端口号分为两部分,

  1. 保留端口,以全局方式分配给服务进程。每一个标准服务器都拥有一个全局公认的端口(叫周知端口),即使在不同的机器上,其端口号也相同。
  2. 自由端口,也就是剩余的为端口,以本地方式进行分配。

TCPUDP规定,小于256的端口才能作为保留端口。

(二)TCP/IP的端口号分配

(1)公认端口(Well Known Ports):

        从01023,它们紧密绑定(binding)于一些特点服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。

      0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用一种通常的闭合端口连接它时将产生不同的结果。一种典型的扫描:使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。

(2)已注册端口(Registered Ports):

        从102449151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。

(3)动态和/或私有端口(Dynamic and/or Private Ports):

        从4915265535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUNRPC端口从32768开始。

四、常见的端口号

TCP/IP协议中有很多已知的端口号,这些端口号被分配给不同的应用程序和服务。以下是一些常见的端口号及其对应的服务(这只是一部分常见端口,实际上有更多端口号):

  • HTTP(超文本传输协议):默认端口号为80,用于Web浏览器和Web服务器之间的通信。
  • HTTPS(安全超文本传输协议):默认端口号为443,用于加密的Web浏览器和Web服务器之间的通信。
  • FTP(文件传输协议):默认端口号为21,用于文件传输服务。
  • TFTP(小型文件传输协议),默认端口号为69,用于文件传输服务。
  • TELNET:默认端口号为23,用于远程登录到其他计算机或设备。
  • SMTP(简单邮件传输协议):默认端口号为25,用于电子邮件传输。
  • POP3(Email协议版本3):默认端口号为110,用于接收电子邮件。
  • IMAP(Internet邮件访问协议):默认端口号为143,用于访问和管理电子邮件。
  • DNS(域名系统):默认端口号为53,用于域名解析服务。
  • SSH(安全shell协议):默认端口号为22,用于安全的远程登录和执行命令。
  • SNMP(简单网络管理协议):默认端口号为161和162,用于网络设备管理和监控。
  • NTP(网络时间协议):默认端口号为123,用于时间同步服务。
  • DHCP(动态主机配置协议):默认端口号为67和68,用于自动分配IP地址和其他网络配置信息。

        随着时间的推移,新的应用程序和服务可能会出现,并且可能会分配新的端口号。个人可以根据您的具体需求和兴趣,查找相关的文档和资源来获取所需的端口号信息。

四、视频监控和流媒体通信中的端口号

在网络视频监控和流媒体通信中,通常会使用以下常见的端口号:

  1. HTTP(超文本传输协议):参考上一章节。
  2. HTTPS(安全超文本传输协议):参考上一章节。
  3. RTSP(实时流协议):用于实时传输音频和视频数据,默认端口号为554。
  4. RTP(实时传输协议):用于实时传输音频和视频数据,通常与RTSP一起使用,默认端口号为5004或5005。
  5. SIP(会话初始协议):用于建立和管理音视频通话,默认端口号为5060。
  6. SNMP(简单网络管理协议):参考上一章节。
  7. TFTP(小型文件传输协议):参考上一章节。
  8. GB28181:GB28181协议可使用TCP和UDP协议进行音视频传输,端口号通常为默认的50000左右。对于控制命令、注册等交互性请求,通常会通过HTTP或者TCP的方式进行通信,其端口号需要平台方和设备方提前约定,比如有的采用5060,有的采用7060。可以参考以前的文章:国标GB28181对接的时候如何配置服务端口和本地端口
  9. RTMP(Real Time Messaging Protocol):默认端口号是1935。RTMP是一种用于实时传输音频、视频和数据的协议,通常用于流媒体和实时应用程序。在使用RTMP进行通信时,需要在服务器和客户端之间建立连接,并使用特定的端口号进行数据传输。默认情况下,RTMP使用端口号1935。但是,具体的端口号可能会因应用程序和部署环境的不同而有所变化。因此,在实际使用中,应该根据具体情况进行配置和调整。
  10. HLSHTTP 实时流协议):HLS基于HTTP的流媒体传输协议,端口号为8080。
  11. WebRTCWeb实时通信):WebRTC是一个实时通信协议,其默认端口号为8080。
  12. FLVFlash视频):由于FLV由Adobe公司出品,其本身并未像HLS或RTMP一样建立网络服务,但其可以被用于流媒体传输。FLV协议本身并不使用端口号,而是通过HTTP或RTMP等协议进行传输。

这些端口号被广泛应用于网络视频监控领域的不同组件和协议中。对于需要安全传输的视频监控数据,可能会使用加密的协议和端口号,以确保数据的安全性和隐私保护。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/286934.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

canvas绘制圆角矩形示例

查看专栏目录 canvas示例教程100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

【期末考试】数据结构大题

~~08|2.03|2|8 ^^统计出没带头结点的单链表HL中结点的值等于给定值x的结点数。 int CountX(LNode *HL, ElemType x) {int i 0;LNode *p HL;while (p ! NULL){if (P->data x)i;p p->next;}return i; }简答:定义一个i变量来记录节点值等于x的节点个数&…

Debezium发布历史43

原文地址: https://debezium.io/blog/2018/12/05/automating-cache-invalidation-with-change-data-capture/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. 通过更改数据捕获自动使缓存失效 2018 年…

以 RoCE+软件定义存储同时实现信创转型与架构升级

目前,不少企业数据中心使用 FC 交换机和集中式 SAN 存储(以下简称“FC-SAN 架构”),支持核心业务系统、数据库、AI/ML 等高性能业务场景。而在开展 IT 基础架构信创转型时,很多用户受限于国外交换机:FC 交换…

20 太空漫游

效果演示 实现了一个太空漫游的动画效果,其中包括火箭、星星和月亮。当鼠标悬停在卡片上时,太阳和星星会变成黄色,火箭会变成飞机,月亮会变成小型的月亮。整个效果非常炫酷,可以让人想起科幻电影中的太空漫游。 Code &…

SpringBoot—支付—支付宝

一、流程 二、沙箱操作 1.用支付宝账号登录【开放控制平台】创建应用获取 appid 2.选择沙箱模拟环境 3.沙箱应用-》获取appid(一个appid绑定一个收款支付宝账户) 4.利用开发助手工具生成RSA2密钥 公钥:传给支付宝平台 私钥:配置代码中,…

json解析本地数据,使用JSONObject和JsonUtility两种方法。

json解析丨网址、数据、其他信息 文章目录 json解析丨网址、数据、其他信息介绍一、文中使用了两种方法作为配置二、第一种准备2.代码块 二、第二种总结 介绍 本文可直接解析本地json信息的功能示例,使用JSONObject和JsonUtility两种方法。 一、文中使用了两种方法…

[GKCTF 2020]ez三剑客-eztypecho

[GKCTF 2020]ez三剑客-eztypecho 考点:Typecho反序列化漏洞 打开题目,发现是typecho的CMS 尝试跟着创建数据库发现不行,那么就搜搜此版本的相关信息发现存在反序列化漏洞 参考文章 跟着该文章分析来,首先找到install.php&#xf…

Arduino开发实例-AD8232心率监测传感器驱动

AD8232心率监测传感器驱动 文章目录 AD8232心率监测传感器驱动1、AD8232介绍2、硬件准备及接线3、驱动实现1、AD8232介绍 AD8232 传感器可为您提供心电图或 ECG 信号监测。 分析这些信号可以提供有关心脏功能的有用信息,例如心跳率、心律和其他有关心脏状况的信息。 该模块可…

word 常用功能记录

word手册 多行文字对齐标题调整文字间距打钩方框插入三线表插入参考文献自动生成目录 多行文字对齐 标题调整文字间距 打钩方框 插入三线表 插入一个最基本的表格把整个表格设置为无框线设置上框线【实线1.5磅】设置下框线【实线1.5磅】选中第一行,设置下框线【实线…

Mysql的基本用法(上)非常详细、快速上手

上篇结束了java基础,本篇主要对Mysql中的一些常用的方法进行了总结,主要对查询方法进行了讲解,包括重要的多表查询用到的内连接和外连接等,以下代码可以直接复制到可视化软件中,方便阅读以及练习; SELECT *…

Springer Latex正文参考文献样式改为数字

用过爱斯唯尔的latex,正文参考文献都是数字,第一次用Springer Latex的参考文献竟然是authoryear,如下: 将这种样式变回序号样式: (1)使用这个documentclass(此为双栏) …

Mnist手写体数字数据集介绍与在Pytorch中使用

1.介绍 MNIST(Modified National Institute of Standards and Technology)数据集是一个广泛用于机器学习和计算机视觉研究的常用数据集之一。它由手写数字图像组成,包括0到9的数字,每张图像都是28x28像素的灰度图像,图…

Unity游戏资源更新(AB包)

目录 前言: 一、什么是AssetBundle 二、AssetBudle的基本使用 1.AssetBundle打包 2.BuildAssetBundle BuildAssetBundleOptions BuildTarget 示例 3.AssetBundle的加载 LoadFromFile LoadFromMemory LoadFromMemoryAsync UnityWebRequestAsssetBundle 前…

设计模式:单例模式

文章目录 1、概念2、实现方式1、懒汉式2、饿汉式3、双检锁/双重校验锁4、登记式/静态内部类5、枚举6、容器实现单例 1、概念 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创…

Linux引导过程与服务控制

目录 一、操作系统引导过程 1. 过程图示 2. 步骤解析 2.1 bios 2.2 mbr 2.3 grup 2.4 加载内核文件 3. 过程总结 4. centos6和centos7启动区别 5. 小结 二、服务控制及切换运行级别 1. systemd核心概念 2. 运行级别 3. Systemd单元类型 4. 运行级别所对应的Syst…

YOLOv8改进 | 检测头篇 | DynamicHead原论文一比一复现 (不同于网上版本,全网首发)

一、本文介绍 本文给大家带来的改进机制是DynamicHead(Dyhead),这个检测头由微软提出的一种名为“动态头”的新型检测头,用于统一尺度感知、空间感知和任务感知。网络上关于该检测头我查了一些有一些魔改的版本,但是我觉得其已经改变了该检测头的本质,因为往往一些细节上才…

【安卓的签名和权限】

Android 编译使用哪个key签名? 一看Android.mk 在我们内置某个apk的时候都会带有Android.mk,这里面就写明了该APK使用的是什么签名,如: LOCAL_CERTIFICATE : platform表明使用的是platform签名 LOCAL_CERTIFICATE : PRESIGNED…

MPI并行程序设计 —— C 和 fortran 环境搭建 openmpi 示例程序

1.安装环境 wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.6.tar.g tar zxf openmpi-4.1.6.tar.gz cd openmpi-4.1.6/ 其中 configure 选项 --prefix/.../ 需要使用绝对路径,例如: ./configure --prefix/home/hipper/ex_open…

使用UDP和JSON在C#中高效发送结构体数据

使用UDP和JSON在C#中高效发送结构体数据 引言 在许多网络编程场景中,我们经常需要在不同的应用程序或服务之间发送和接收数据。UDP(用户数据报协议)因其低延迟和少开销的特点,在需要快速数据传输的场景中非常有用。本文介绍了如何…