端口的目的是什么?

格里芬

关于以下我发现的端口的解释,我有几个问题

应用程序层通过端口与传输层对话。端口已编号,标准应用程序始终使用相同的端口。

端口号的使用允许传输协议(通常为TCP)知道数据包中包含哪种类型的内容,从而允许其在接收端知道应将接收到的数据传递给哪个应用协议。

  • 在没有绝对保证的情况下,为什么要使用端口号来指示驻留在哪种类型的应用程序数据协议中?

    据我了解,通过端口发送什么样的应用程序数据没有任何限制(这只是一个建议)。再加上协议数据不是已经包含在数据包中用于此目的的地方吗?

  • 另外,如果将HTTP或其他协议发送到端口25的目的地(需要SMTP),数据将如何处理?

  • 第三,如果将数据发送到未与任何程序绑定的端口,因此不会被监听,该怎么办?

  • **最后,如果端口只能绑定到一个程序,那么如何在我的计算机上同时运行多个依赖于传入HTTP数据的程序?

提前致谢!

丹尼尔·皮特曼

在没有绝对保证的情况下,为什么要使用端口号来指示驻留在哪种类型的应用程序数据协议中?

因为猜测是运行事情的一种糟糕方法,并且您无法阻止,例如,恶意的人反正发送了错误的消息。因此,这在每个人都打得很好并且不会使任何情况变得更糟的情况下很有用。

据我了解,通过端口发送什么样的应用程序数据没有任何限制(这只是一个建议)。

正确的。实际上,这甚至不是建议,只是很多人碰巧分享的共识。

再加上协议数据不是已经包含在数据包中用于此目的的地方吗?

否。至少不是在端口通常指示的级别上:您知道发送的是哪种更高级别的IP协议(例如:TCP,UDP),但不知道其内容是什么(例如:HTTP,SMTP) 。

另外,如果将HTTP或其他协议发送到端口25的目的地(需要SMTP),数据将如何处理?

TCP只是将数据传递到应用程序层,而应用程序层可以对其执行任何所需的操作。大多数时候,您只会得到错误。有时,您会遇到可利用的安全漏洞。

有时,对于不正确的客户端,您会得到良好的举止,例如,当您不对端口使用SSL时,某些HTTPS服务器将给出纯文本HTTP错误。

第三,如果将数据发送到未与任何程序绑定的端口,因此不会被监听,该怎么办?

您从接收系统收到ICMP错误消息。从技术上讲,接收器可以做任何让自己满意的事情,但是实际上,这就是发生的情况。

最后,如果端口只能绑定到一个程序,那么如何在我的计算机上同时运行多个依赖于传入HTTP数据的程序?

当浏览器与远程服务器建立HTTP连接时,它将使用随机的本地端口,并与远程服务器上的知名端口(80或443)进行通信。在这种情况下,每个不同的出站连接的唯一性。(不过,从技术上讲,就服务器而言,不必如此。)

在服务器端,当您侦听时,只有一个进程可以接受端口上的新连接(在Unix / BSD套接字中),但可以将已建立的连接传递给其他进程进行服务。由于该集合是唯一的,因此可以将流量路由到正确的连接。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章