什么是端口?

发布网友 发布时间:2022-04-23 00:36

我来回答

3个回答

热心网友 时间:2023-09-26 18:48

计算机"端口"是英文port的义译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口

又称接口, 如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通

信协议端口,是一种抽 象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。

可以先了解面向连接和无连接协议(Connection-Oriented and Connectionless Protocols)

面向连接服务的主要特点有:面向连接服务要经过三个阶段:数据传数前,先建立连接,连接建立

后再传输数 据,数据传送完后,释放连接。面向连接服务,可确保数据传送的次序和传输的可靠性。

无连接服务的特点是:无连接服务只有传输数据阶段。消除了除数据通信外的其它开销。只要发送

实体是活跃 的,无须接收实体也是活跃的。它的优点是灵活方便、迅速,特别适合于传送少量零星的报

文,但无连接服务不能 防止报文的丢失、重复或失序。

区分"面向连接服务"和"无连接服务"的概念,特别简单、形象的例子是:打电话和写信。两个人如

果要通电话 ,必须先建立连接--拨号,等待应答后才能相互传递信息,最后还要释放连接--挂电话。写

信就没有那么复杂了, 地址姓名填好以后直接往邮筒一扔,收信人就能收到。TCP/IP协议在网络层是无

连接的(数据包只管往网上发,如 何传输和到达以及是否到达由网络设备来管理)。而"端口",是传输

层的内容,是面向连接的。协议里面低于 1024的端口都有确切的定义,它们对应着因特网上常见的一些

服务。

这些常见的服务可以划分为使用TCP端口(面 向连接如打电话)和使用UDP端口(无连接如写信)两

种。

网络中可以被命名和寻址的通信端口是操作系统的一种可分配资源。由网络OSI(开放系统互联参考

模型, Open SystemInterconnection Reference Model)七层协议可知,传输层与网络层最大的区别是

传输层提供进程 通信能力,网络通信的最终地址不仅包括主机地址,还包括可描述进程的某种标识。所

以TCP/IP协议提出的协议端 口,可以认为是网络通信进程的一种标识符。

应用程序(调入内存运行后一般称为:进程)通过系统调用与某端口建立连接(binding,绑定)后

,传输层 传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都从该端口输出。在

TCP/IP协议的实现中, 端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的

I/O文件,可以用一般的读写方式访问 类似于文件描述符,每个端口都拥有一个叫端口号的整数描述符

,用来区别不同的端口。由于TCP/IP传输层的 TCP和UDP两个协议是两个完全的软件模块,因此各自

的端口号也相互。如TCP有一个255号端口,UDP也可 以有一个255号端口,两者并不冲突。

端口号有两种基本分配方式:第一种叫全局分配这是一种集中分配方式,由一个公认权威的*机

构根据用户 需要进行统一分配,并将结果公布于众,第二种是本地分配,又称动态连接,即进程需要访

问传输层服务时,向本 地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统

调用,将自己和该端口连接起来( binding,绑定)。TCP/IP端口号的分配综合了以上两种方式,将端

口号分为两部分,少量的作为保留端口,以全 局方式分配给服务进程。每一个标准服务器都拥有一个全

局公认的端口叫周知口,即使在不同的机器上,其端口号 也相同。剩余的为自由端口,以本地方式进行

分配。TCP和UDP规定,小于256的端口才能作为保留端口。

按端口号可分为3大类:

(1)公认端口(Well Known Ports):从0到1023,它们紧密绑定(binding)于一些服务。通常这

些端口的通讯 明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。

(2)注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有

许多服务绑定于 这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右

开始。

(3)动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不应为

服务分配这些端 口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开

始。

系统管理员可以"重定向"端口:

一种常见的技术是把一个端口重定向到另一个地址。例如默认的HTTP端口是80,不少人将它重定向

到另一个端 口,如8080。如果是这样改了,要访问本文就应改用这个地址

http://wwd.3322.net:8080/net/port.htm(当然, 这仅仅是理论上的举例)。

实现重定向是为了隐藏公认的默认端口,降低受破坏率。这样如果有人要对一个公认的默认端口进

行攻击则必 须先进行端口扫描。大多数端口重定向与原端口有相似之处,例如多数HTTP端口由80变化而

来:81,88,8000, 8080,8888。同样POP的端口原来在110,也常被重定向到1100。也有不少情况是选

取统计上有特别意义的数,象 1234,23456,34567等。许多人有其它原因选择奇怪的数,42,69,

666,31337。近来,越来越多的远程控制木马 (Remote Access Trojans, RATs )采用相同的默认端口。

如NetBus的默认端口是12345。Blake R. Swopes指出使用 重定向端口还有一个原因,在UNIX系统上,如

果你想侦听1024以下的端口需要有root权限。如果你没有root权限而 又想开web服务,你就需要将其安

装在较高的端口。此外,一些ISP的防火墙将阻挡低端口的通讯,这样的话即使你 拥有整个机器你还是

得重定向端口。

热心网友 时间:2023-09-26 18:48

既然是端口就应该能输入和输出嘛!计算机的端口就像房子的门口。

热心网友 时间:2023-09-26 18:49

端口就是计算机向外输出的路径

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com