当前位置:首页 > 数码 > 探索保留端口0的秘密-网络通信中的神秘占位-端口0之谜 (探索保留端口命令)

探索保留端口0的秘密-网络通信中的神秘占位-端口0之谜 (探索保留端口命令)

admin8个月前 (05-07)数码22
网络通信中的神秘占位

在计算机网络通信中,端口是至关重要的,它们为各种网络协议和框架提供标识,并为信息的传输提供途径。在众多的端口中,有一个特别引人注意的端口,那就是端口 0。尽管我们经常在网络协议和框架中遇到它,但对其具体功能和用途却往往一知半解。

端口 0 在 TCP/IP 协议中的位置

TCP/IP 协议栈中的端口类似于电话号码,用于标识互联网上的各种服务和应用。每个端口都分为高 16 位和低 16 位,分别代表端口号和协议类型。常见的协议类型包括 TCP(传输控制协议)和 UDP(用户数据报协议)。端口 0 在 TCP/IP 协议中并未被明确指定。它通常被用作临时端口,为一些需要动态分配端口的协议使用。

端口 0 在 HTTP 中的使用

在 HTTP(超文本传输协议)中,端口 0 的使用尤为明显。当我们访问一个网页时,通常使用 HTTP 协议进行通信。HTTP 默认使用端口 80 进行通信,但有时会使用端口 0。这是因为 HTTP 服务器在启动时会动态地选择一个空闲端口作为服务端口,而端口 0 常常被用作这个目的。这种动态分配端口的方式使得服务器可以同时处理多个请求,提高系统的并发性能。

端口 0 在其他网络协议中的应用

除了 HTTP,端口 0 还可以在其他网络协议中扮演着重要角色。例如,在 FTP(文件传输协议)中,端口 0 也被用作数据通道。FTP 通常使用 2 个连接:一个用于控制命令,另一个用于传输数据。控制连接通常使用默认的 21 端口,而数据连接则使用一个动态分配的端口。在这种情况下,端口 0 常常被用作数据连接的临时端口。

选择端口 0 作为临时端口的原因

那么,为什么选择端口 0 作为临时端口呢?这主要有两个原因。由于端口 0 未被注册到已知的服务中,因此使用端口 0 可以避免与已存在的服务端口冲突。这样可以确保在与服务器建立连接时不会影响其他正在运行的服务。由于端口 0 未被明确指定给任何服务,因此攻击者很难通过监听该端口来获取敏感信息。使用端口 0 可以减少网络中可能存在的监听和嗅探攻击的风险。

谨慎处理端口

需要注意的是,虽然端口 0 具有重要的功能并在网络通信中被广泛使用,但在设计和实现系统时仍需谨慎处理所有端口。确保系统的安全性和稳定性是至关重要的。

总结

端口 0 在网络通信中扮演着重要的角色。它作为临时端口被广泛用于动态分配端口的协议中,如 HTTP 和 FTP 等。通过选择端口 0 作为临时端口,可以避免与服务端口的冲突并降低潜在的安全风险。


网络里的端口是什么意思

端口是计算机连接网络时的必要参数,通过端口可以识别不同的应用程序。不同的应用程序需要不同的端口号来进行通信,比如HTTP协议使用的端口号为80,FTP协议使用的端口号为21。端口号共有个,其中0~1023为系统保留端口,一般应用程序使用的端口号为1024及以上。端口是网络通信中不可或缺的一部分,也是保障网络通信的重要因素。

端口的使用需要注意安全问题,常见的有端口扫描,端口暴力破解等攻击手段。为了防止端口被攻击,常见的方式是通过防火墙来限制端口的访问权限。防火墙可以根据不同的端口号,限制对端口的访问权限,保护网络安全。此外,用户在使用网络时也需要注意,不要随意打开陌生的端口,以免被攻击者利用。

在网络中,端口是实现网络通信的重要元素。通过端口,计算机之间可以进行应用程序的数据交互。不同的端口号对应不同的应用程序,如邮件应用程序对应的端口为25,文件传输应用程序对应的端口为20和21等。在使用网络时,用户需要了解不同应用程序对应的端口,以便顺利进行通信。端口的使用是网络通信中的关键部分,也是网络安全的重要环节。

为什么tcp 端口 0是保留的

计算机“端口”是英文port的义译,可以认为是计算机与外界通讯交流的出口。 其中硬件领域的端口又称接口,如:USB端口、串行端口等。 软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。 可以先了解面向连接和无连接协议(Connection-Oriented and Connectionless Protocols)面向连接和无连接协议(Connection-Oriented and Connectionless Protocols) 通信协议要么是面向连接的,要么是无连接的。 这依赖于信息发送方是否需要与接收方联系并通过联系来维持一个对话(面向连接的),还是没有任何预先联系就发送消息(无连接的)且希望接收方能顺序接收所有内容。 这些方法揭示了网络上实现通信的两种途径。 在面向连接的方法中,网络负责顺序发送报文分组并且以一种可靠的方法检测丢失和冲突。 这种方法被“可靠的”传输服务使用。 在无连接的方法中,网络只需要将报文分组发送到接收点,检错与流控由发送方和接收方处理。 这种方法被称作“最佳工作(best-effort)”或“无应答(unacknowledged)”的传输协议所使用。 假定你想给你在另一个城市的朋友发送一系列信件,信件类似于通过计算机网络发送的数据分组。 有两种发送方法,一种方法是把信件交给一位可信的朋友,由他私人传送,之后再向你证实已经发送。 在这种方法中,你在传送的两端都保持着联系,你的朋友提供了面向连接的服务。 另外一种是,你在信封上注明地址并将它们投进邮局,你并没有得到保证说每封信都会达到目的地,如果都到达了,它们可能在不同的时间到达并且不是连续的,这就象一个无连接服务。 面向连接服务的主要特点有:面向连接服务要经过三个阶段:数据传数前,先建立连接,连接建立后再传输数据,数据传送完后,释放连接。 面向连接服务,可确保数据传送的次序和传输的可靠性。 无连接服务的特点是:无连接服务只有传输数据阶段。 消除了除数据通信外的其它开销。 只要发送实体是活跃的,无须接收实体也是活跃的。 它的优点是灵活方便、迅速,特别适合于传送少量零星的报文,但无连接服务不能防止报文的丢失、重复或失序。 区分“面向连接服务”和“无连接服务”的概念,特别简单、形象的例子是:打电话和写信。 两个人如果要通电话,必须先建立连接——拨号,等待应答后才能相互传递信息,最后还要释放连接——挂电话。 写信就没有那么复杂了,地址姓名填好以后直接往邮筒一扔,收信人就能收到。 TCP/IP协议在网络层是无连接的(数据包只管往网上发,如何传输和到达以及是否到达由网络设备来管理)。 而“端口”,是传输层的内容,是面向连接的。 协议里面低于1024的端口都有确切的定义,它们对应着因特网上常见的一些服务。 这些常见的服务可以划分为使用TCP端口(面向连接如打电话)和使用UDP端口(无连接如写信)两种。 面向连接的通信(Connection-Oriented Communication) 在面向连接方法中,在两个端点之间建立了一条数据通信信道(电路)。 这条信道提供了一条在网络上顺序发送报文分组的预定义路径,这个连接类似于语音电话。 发送方与接收方保持联系以协调会话和报文分组接收或失败的信号。 但这并不意味着面向连接的信道比无连接的信道使用了更多的带宽,两种方法都只在报文分组传输时才使用带宽。 为面向连接的会话建立的通信信道自然是逻辑的,常被称作虚电路(virtual circuit),它关心的是端点。 与在网络上寻求一条实际的物理路径相比,这条信道更关心的是保持两个端点的联系。 在有多条到达目的地路径的网络中,物理路径在会话期间随着数据模式的改变而改变,但是端点(和中间节点)一直保持对路径进行跟踪,图C-26所示为多路复用电路中的逻辑路径。 一台计算机上的应用程序启动与另一台计算机的面向连接的会话,它通过访问基本的通信协议来请求这样的对话。 在传输控制协议/因特网协议(TCP/IP)组中,TCP提供面向连接的服务,而IP(较低层的协议)提供传输服务。 在NetWare SPX/IPX协议组中,SPX提供面向连接的服务。 因为报文分组是通过虚电路传输的,所以并不需要使用全分组地址,这是由于网络已经知道了发送方与接收方的地址。 网络路径上的每个节点都保持跟踪虚电路和需要交换分组的端口。 顺序编号用来保证分组的顺序流动。 虚电路需要一个建立过程,但电路一旦建立,它就为长时间的处理提供一条有效的路径,如由管理程序对网络站点的连续监控和许多大文件的传送。 与此相比,无连接方法是设计用于突发的、暂时的通信,这种方法中如用虚电路建立就不是很有效的。 面向连接的会话的建立过程如下: 1.源应用程序请求一个面向连接的通信会话。 2.建立会话(需要一段时间,是选用无连接的协议的一个原因)。 3.在逻辑连接上开始数据传输。 4.传输结束时,信道解除连接。 在分组交换远程通信网络中,有些信道永不断连。 两点之间建立的一条永久信道称为永久虚电路(PVC)(Permanent virtual circuits(PVCs))。 PVC类似于专用电话线。 面向连接的协议大部分位于与开放系统互连(OSI)协议模型相当的运输层协议中。 通用的面向连接的协议包括Internet和UNIX环境下的TCP(传输控制协议)、Novell的顺序分组交换(SPX)、IBM/Microsoft的NetBIOS和OSI的连接模型网络协议(CMNP)。 无连接通信(Connectionless Communication) 在无连接方法中,网络除了把分组传送到目的地以外不需做任何事情,如果分组丢失了,接收方必须检测出错误并请求重发;如果分组因采用不同的路径而没有按序到达,接收方必须将它们重新排序。 无连接的协议有TCP/IP协议组的IP部分,NetWare的SPX/IPX协议的IPX部分和OSI的无连接网络协议(CLNP)。 这些协议在与OSI协议模型相当的网络层中。 在无连接的通信会话中,每个数据分组是一个在网络上传输的独立单元,称作数据报。 发送方和接收方之间没有初始协商,发送方仅仅向网络上发送数据报,每个分组含有源地址和目的地址。 该方法中没有接收方发来的分组接收或未接收的应答,也没有流控制,所以分组可能不按次序到达,接收方必须对它们重新排序。 如果接收到有错误的分组,则将它删掉。 当重新整理分组时,就会发现被删掉的包并请求重发。 使用无连接的协议有许多好处。 就性能来说,无连接策略通常更好,因为大多数网络上只有相对少的错误,所以被破坏的或丢失的分组很少,端点不需很多时间来重发。 协议的比较(Comparing the Protocols) 面向连接的服务更适于需要稳定数据流的应用,例如,与Novell NetWare一起提供的远程监控程序使用的是面向连接的协议SPX。 面向连接的服务可靠性也更高,并能更有效从问题中恢复。 虽然无连接的服务中每个分组有更多的额外开销,而面向连接的服务在端点上需要更多的处理来建立和保持连接。 但是额外开销有时没有被证实,例如与局域网用户和服务器交互有关的短暂突发传输。 网络中可以被命名和寻址的通信端口是操作系统的一种可分配资源。 由网络OSI(开放系统互联参考模型,Open System Interconnection 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到。 它们松散地绑定于一些服务。 也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。 例如:许多系统处理动态端口从1024左右开始。 (3)动态和/或私有端口(Dynamic and/or Private Ports):从到。 理论上,不应为服务分配这些端口。 实际上,机器通常从1024起分配动态端口。 但也有例外:SUN的RPC端口从开始。 系统管理员可以“重定向”端口:一种常见的技术是把一个端口重定向到另一个地址。 例如默认的HTTP端口是80,不少人将它重定向到另一个端口,如8080。 如果是这样改了,要访问本文就应改用这个地址(当然,这仅仅是理论上的举例)。 实现重定向是为了隐藏公认的默认端口,降低受破坏率。 这样如果有人要对一个公认的默认端口进行攻击则必须先进行端口扫描。 大多数端口重定向与原端口有相似之处,例如多数HTTP端口由80变化而来:81,88,8000,8080,8888。 同样POP的端口原来在110,也常被重定向到1100。 也有不少情况是选取统计上有特别意义的数,象1234,,等。 许多人有其它原因选择奇怪的数,42,69,666,。 近来,越来越多的远程控制木马( Remote Access Trojans, RATs )采用相同的默认端口。 如NetBus的默认端口是。 Blake R. Swopes指出使用重定向端口还有一个原因,在UNIX系统上,如果你想侦听1024以下的端口需要有root权限。 如果你没有root权限而又想开web服务,你就需要将其安装在较高的端口。 此外,一些ISP的防火墙将阻挡低端口的通讯,这样的话即使你拥有整个机器你还是得重定向端口。 希望我的回答对您有所帮助

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: 网络通信