【问题标题】:destination port in UDP protocolUDP协议中的目的端口
【发布时间】:2019-03-09 19:41:01
【问题描述】:

我的问题是如何选择/给出 UDP 中的目标端口地址?

我的意思是在 UDP 数据包中设置目标端口有什么意义? 因为当我们发送一个数据包时,只有目标地址(ip)很重要,我们希望将数据发送到我们的目标。 跟港口没关系! 我们分配一个随机端口吗?

【问题讨论】:

    标签: networking udp port


    【解决方案1】:

    通常情况下,无论文档告诉您在发送的 UDP 数据报中放置什么内容,还应该告诉您将其发送到哪个端口。

    例如,如果您尝试与 NTP 服务器通信,RFC5905 会告诉您在发送的 UDP 数据报中放入什么内容。它还在第 16 页告诉您将其发送到端口 123。

    如果您正在编写 DNS 解析器,RFC1035 是您可以在其中查找了解在 UDP 数据报中放入什么所需的信息的地方。它还在第 4.2 节中告诉您将数据报发送到端口 53。

    因此,无论您要弄清楚要在要发送的 UDP 数据报中放入什么内容,这通常会告诉您将它们发送到哪个端口,或者在某些情况下,如何确定将它们发送到哪个端口到。

    例如,媒体流协议可能从有关 Web 服务器传送的流的信息开始。在这种情况下,Web 服务器向客户端传递的信息可能包括要将数据报发送到的目标端口。

    一般来说,要么有一个众所周知的端口,至少有一方在监听数据报,要么有一些外部方法使用不同的协议,告诉发送第一个数据报的一端将其发送到哪个端口。然后另一端只是回复,将其响应数据报发送到发送第一个数据报的任何端口。

    【讨论】:

    • 你的意思是这取决于我使用的协议和我正在与之通信的服务器类型?例如在你的回答中,我应该总是在端口 123 上向这样的服务器发送数据包?
    • 这些端口是什么意思?为什么他们设置了一个特定的端口来发送数据包到服务器?
    • 我在答案中添加了更多细节。
    【解决方案2】:

    一般情况下,发送端口是为可用的临时端口随机选择的。

    目标端口是目标应用程序正在侦听的端口。为此,IANA 为标准应用程序和协议维护 Service Name and Transport Protocol Port Number Registry

    如果您创建自己的应用程序或协议,则有一个范围供您使用,但您应始终检查注册表以确保您不会踩到其他应用程序或协议。

    当您设计您的监听应用程序或协议时,您选择它监听的端口,发送应用程序将需要发送到该端口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多