连接某个端口意味着什么?

时间:2014-09-11 22:25:03

标签: service ssh connection port

例如,当您建立ssh连接时,您将连接到端口22.然后会发生什么?在一个非常高级的简要概述中,我知道如果端口22在另一端打开,并且如果您可以作为特定用户对其进行身份验证,那么您将在该计算机上获得一个shell。

但是我不明白端口如何与这种服务模型以及与远程机器的不同服务的连接相关联?为什么需要运行特定服务的这么多特定端口?当您尝试连接到端口时会发生什么?

由于我天真的理解,我希望这个问题不会太混乱。感谢。

3 个答案:

答案 0 :(得分:1)

想象一下,您的服务器是一个拥有65536门的房子。如果你想访问家庭“HTTP”,你会去80号门。如果你要访问家庭“SMTP”,你会访问门没有。 25。

从技术上讲,端口只是传出/接收连接的多个可能端点之一。许多端口号都分配给某些服务by convention

打开/建立连接意味着(当传输协议是TCP时,这是大多数“经典”服务,如HTTP,SMTP等),您正在执行TCP handshake。使用UDP(用于流媒体和VoIP等),没有握手。

除非您想了解IP网络的更深层次的巫术,否则您可以说,就是这样。没什么特别的。

答案 1 :(得分:1)

该端口旨在允许TCP / IP上的应用程序交换数据。互联网上的每台机器都有一个地址即IP。该端口允许一台计算机上的不同应用程序通过网络/ Internet上的多个服务器发送和接收数据。除非网络管理员出于安全原因更改这些默认端口,否则ftp和http服务器等常见应用程序在默认端口(如21和80)上进行通信

答案 2 :(得分:1)

计算机上的TCP-IP端口本质上是一种将消息发送到正确端点的机制。

互联网号码分配机构(IANA)将每个可能的65536个端口(总共16个比特)归入某些类别designated

  

但我不明白端口如何与这种服务模式相关联   从远程机器连接到不同的服务?为什么会有   是否需要运行特定服务的众多特定端口?

     

...

     

当您尝试连接到端口时会发生什么?

以这种方式思考:您的计算机上有多少应用程序与其他计算机通信? Web浏览器,电子邮件客户端,SSH客户端,在线游戏等。更不用说在引擎盖下运行的所有东西。

现在想一想:您的计算机上有多少个物理端口?大多数台式机都有一台。偶尔两三个。如果单个应用程序必须完全控制您的网络接口,那么其他任何东西都无法使用它!因此TCP端口是将1个连接转换为65536个连接的一种方式。

  

例如,当您进行ssh连接时,您已连接到   端口22.那么会发生什么?

将其视为发送包裹。您面前的SSH客户端需要将信息发送到另一台机器上运行的进程。因此,您以“user @ [ip或hostname]”的形式提供目标地址(以便它知道网络上的哪台机器将其发送到),以及“端口22”(因此它将运行到正确的应用程序上)机器)。然后,您的应用程序将打包TCP包裹并标记目的地和返回地址,并将其发送到网络。

网络找到目标计算机并提供程序包。所以现在它在合适的机器上,但它仍然需要找到合适的应用程序。如果您的SSH数据包已发送到电子邮件客户端,您认为会发生什么?这就是端口号的用途。它有效地告诉您的计算机的本地TCP邮件员在哪里进行最终交付。然后,应用程序会根据需要对数据执行任何操作(例如验证身份验证),并使用计算机的返回地址发送响应数据包。只要连接处于活动状态,就会继续来回。

希望有所帮助。 :)