广州总校区切换校区
图片
news

新闻资讯

什么是端口与端口号

发布时间: 2022-04-14

在应用层上有许多的应用协议,它们提供各种不同的应用功能。但是,当传输数据时,传输层怎么知道数据是由哪一种应用协议或应用程序发出的呢?或者所接收到的数据是要访问哪一个应用协议或者应用程序呢?

TCP/IP协议使用端口解决这个问题。

什么是端口与端口号?在应用层与传输层之间,TCP/IP协议为每一个应用协议或者应用程序提供了唯一的接口,即端口,如图1所示。

图1 应用层与传输层之间的端口


正如图1所示,每种应用层协议或应用程序都具有与传输层唯一连接的端口,并且使用唯一的端口号将这些端口区分开来。当数据流从某一个应用发送到远程网络设备的某一个应用时,传输层根据这些端口号,就能够判断出数据是来自于哪一个应用,想要访问另一台网络设备的哪一个应用,从而将数据传递到相应的应用层协议或应用程序。

端口根据其对应的协议或应用不同,被分配了不同的端口号。负责分配端口号的机构是因特网编号管理局(IANA)。目前,端口的分配有三种情况,这三种不同的端口可以根据端口号加以区别。

● 保留端口

这种端口的端口号一般都小于1024。它们基本上都被分配给了已知的应用协议(如图1中的部分端口)。目前,这一类端口的端口号分配已经被广大网络应用者接受,形成了标准,在各种网络的应用中调用这些端口号就意味着使用它们所代表的应用协议。这些端口由于已经有了固定的使用者,所以不能被动态地分配给其他应用程序。表1给出了一些常用的保留端口。

表1 TCP协议和UDP协议的一些常用保留端口


● 动态分配的端口

这种端口的端口号一般都大于1024。这一类端口没有固定的使用者,它们可以被动态地分配给应用程序使用。也就是说,我们在使用应用软件访问网络的时候,我们的应用软件可以向系统申请一个大于1024的端口号临时代表这个软件与传输层交换数据,并且使用这个临时的端口与网络上的其他主机通信。图2显示了使用动态分配的端口访问网络资源的情况。

图2 使用动态分配的端口访问网络资源

图2显示的是在使用微软公司的IE浏览器上网时,在DOS窗口中使用netstat命令查看端口使用情况的画面。IE浏览器使用了1374和1384两个动态分配的端口号。

● 注册端口

注册端口比较特殊,它也是固定为某个应用服务的端口,但是它所代表的不是已经形成标准的应用层协议,而是某个软件厂商开发的应用程序。

某些软件厂商通过使用注册端口,使它的特定软件享有固定的端口号,而不用向系统申请动态分配的端口号。一般,这些特定的软件要使用注册端口,其厂商必须向端口的管理机构注册。

大多数注册端口的端口号大于1024。

TCP协议和UDP协议都允许16位的端口值,分别能够提供65536个端口。不论端口号大于还是小于1024,以上三种端口都分别属于TCP协议和UDP协议。当然,也有些协议的端口既属于TCP协议也属于UDP协议,如图1中的DNS服务。

当网络中的两台主机进行通信的时候,为了表明数据是由源端的哪一种应用发出的,以及数据所要访问的是目的端的哪一种服务,TCP/IP协议会在传输层封装数据段时,把发出数据的应用程序的端口作为源端口,把接收数据的应用程序的端口作为目的端口,添加到数据段的头中,从而使主机能够同时维持多个会话的连接,使不同的应用程序的数据不至于混淆。图3表现了源端口与目的端口的作用。

图3 源端口与目的端口的作用

上一篇: TCP传输规则及策略

下一篇: 网络拓扑图交换机路由器怎么画

<
在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!