PORT的“真实”定义是什么?它们安装在哪里?


2

我对网络中PORT的概念感到困惑。

但是不清楚它们存在于何处?我的查询...

  1. 他们住在哪里?

  2. 我可以更改它们吗?

  3. ISP如何阻止端口(我读过一些文章,其中ISP阻止了租户的某些端口号,因此租户无法托管网站)

  4. 如果端口号在路由器内部被阻止,该怎么办?

  5. 谁为Web,SMTP,FTP等保留了某些端口号。

哑巴的定义对我来说是正确的。




您如何知道定义,却不知道它们是什么?
Scott Hunter

@ScottHunter好吧,您可能会记住定义,但不了解您所记住的内容!就像E = MC ^ 2
barlop

Answers:


1
Are they only used to specify "which application should use the data? "

是的,我是这样认为的。或过程而不是应用程序。进程是内存中应用程序的实例。

端口是数据包中许多字段中的一个字段(以使用数据包的通用且有用的定义)。

当说一个进程在特定的端口X上侦听时,表示它正在读取或获得将端口设置为X的数据包

假设您有两台计算机A和B

B有很多不同的软件,运行着不同的进程

A上的每个进程和B上的每个进程都与端口关联。因此,当数据包进入A或B时,这些进程会知道哪些数据包适合它们。

实际上,它不仅仅用于每个进程。它还用于通信通道。因此,A上的进程希望与B上的进程交换数据。因此A选择了用于该通信的端口,而B选择了用于该通信的端口。 。A和B在正确设置源端口和目标端口的情况下互相发送数据包。

如果A和B想要在另一个主题或相关主题上进行通信,或者A上的用户或B上的用户想要进行通信。那么他们可以使用新的端口。因此,通过查看源或目标端口为X的所有数据包,A和B上的程序或A和B上的用户可以分别看到两个通信通道。

关于你的问题

他们住在哪里?

假设您有计算机A和计算机B,则计算机A的端口被打开,计算机B的端口被打开。这就像一个ID,程序将“打开端口”,即,从操作系统请求将“端口”留出以供其使用。

我可以更改它们吗?

有两种情况下会打开一个端口:即一个端口存在。该ID正在创建供使用。

一种是程序启动连接时,另一种是程序监听连接时。聆听首先发生。

在使程序侦听连接时,通常可以告诉程序侦听哪个端口。通常,程序会为您提供选择。

您可以通过设置所谓的“服务器”来自己尝试。服务器有不同的定义。一种是功能非常强大的计算机,另一种是可以被其他许多人访问甚至用于访问许多其他人。另外一个定义(主要定义)是一种软件,它侦听其他人进行连接(通常可能有许多其他人进行连接),因此您可以从该软件中看到服务器的其他定义。

您可以创建一个服务器..设置一个

Tinyweb是一个小的Web服务器

说明在此网站上

https://www.ritlabs.com/en/products/tinyweb/install.php

因此,创建c:\ blah \ index.html甚至可以为空白。

这使它在端口8000上侦听

Run TinyWeb on port 8000:
c:\tinyweb\tiny.exe c:\blah 8000

然后,您可以执行http://127.0.0.1:8000 ,以便访问计算机的本地(我想是虚拟的)网络接口127.0.0.1所谓的回送接口并指定端口8000

如果在其他端口上设置tinyweb,则将http连接到其他端口,并在冒号后更改数字

并查看您的网页

通常,人们使用Web服务器在端口80上侦听。如果它们是公用的,则端口8080如果它们在自己的LAN内部而不是公用的,则有时侦听8080。

程序加载在端口上侦听。以VNC为例,该程序可让您远程查看计算机。它具有您指定端口的设置

在此处输入图片说明

有一个名为nc的程序,可以仅侦听端口并输出发送给它的任何内容。如果安装cygwin,则可以与cygwin一起运行。

因此,程序本身可以更改其侦听的端口。然后你可以告诉程序。

那是用于服务器,在端口上侦听程序的

启动与服务器连接的程序称为客户端程序。您总是有一个客户端和一个服务器。一个侦听程序(通常称为客户端)和一个侦听程序(通常称为服务器)。

客户端和服务器可以表示客户端的请求,而服务器可以答复。然后,如果答复的是客户端,则您可以从某些软件中获得一些有趣的术语,以表示服务器与客户端建立反向连接。但是通常启动的一个称为客户端,而侦听的一个称为服务器,并且通常是客户端发出请求,而服务器也进行回复。例如,您的Web浏览器是客户端,它从Web服务器请求某个远程IP上的网页。

客户端(即程序启动连接),它们会获得一个大于1024的随机端口号

如果打开cmd.exe并运行, netstat -aon则会看到包括端口在内的连接列表。它显示任何连接的本地端口和远程端口。

因此,查找端口号<1024。在这里,我们有一台服务器正在侦听我计算机上的端口1234(0.0.0.0表示任何IP都可以连接。尽管可以通过防火墙或NAPT路由器阻止该连接)。

另一行在外部地址中看到端口80。这是我的计算机连接到Web服务器

> 1023的端口是随机端口

前1024个端口0-1023端口通常是服务器使用的端口。尽管有时人们会选择更高的服务器端口作为安全保护层,以便更好地隐藏一点,从而使黑客更难发现。或对于局域网上的内部Web服务器,不像8080这样的约定。

C:\>netstat -aon

  Proto  Local Address          Foreign Address        State           PID  
  TCP    0.0.0.0:1234           0.0.0.0:0              LISTENING       3656
  ...
  TCP    10.0.0.92:50735        147.148.112.39:80      CLOSE_WAIT      5340


How does the ISP blocks a Port(I have read in some articles where ISPs block certain ports numbers of a tenant and so tenant is not able to host a website)
If port number is blocked inside a Router, how is it done?

NAT路由器可以做到这一点。尽管他们也可以运行防火墙,但也可以这样做

NAT路由器正在使用多种形式的NAT,其中包括NAPT或NAT / PAT。要在NAT路由器上取消阻止,请执行“端口转发”。这意味着当发出请求并从外部(通常是Internet)发出请求以连接到服务器时,路由器会将其传递到运行该服务器的一台计算机(您告诉它的计算机)上。

他们使用的软件称为防火墙。您也可以在Windows XP和Windows 7中运行一个。还有专用的硬件防火墙(它们也运行防火墙软件)。

Who has reserved certain Port Numbers for Web, SMTP, FTP, etc.

他们是惯例

我想是IANA。他们有一个清单。

https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt


感谢您的回复@barlop。我已经编辑了问题。你能帮我更新吗?
卡兰·辛格

@karanSingh好的,已更新
barlop 2015年

1

将港口视为专用于特定类型/类别的车辆的行车道。如果您开车,则只能在汽车专用车道上行驶。

同样,在网络上,端口和相关的防火墙规则规定了哪些应用程序/协议可以通过网络上的特定端口进行通信。例如,HTTP使用80端口,FTP使用20和21端口等。

当您的朋友说“端口80被其ISP阻止”时-可能是为了阻止他浏览其连接上的网页。如今,ISP(尤其是移动数据提供商)提供的Internet数据包仅允许某些应用程序(如Whatsapp,Facebook等...)访问,在这种情况下,它们将阻止对所有端口的访问,但Whatsapp所需的端口除外,Facebook或用户付费的应用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.