【发布时间】:2019-03-09 19:41:01
【问题描述】:
我的问题是如何选择/给出 UDP 中的目标端口地址?
我的意思是在 UDP 数据包中设置目标端口有什么意义? 因为当我们发送一个数据包时,只有目标地址(ip)很重要,我们希望将数据发送到我们的目标。 跟港口没关系! 我们分配一个随机端口吗?
【问题讨论】:
标签: networking udp port
我的问题是如何选择/给出 UDP 中的目标端口地址?
我的意思是在 UDP 数据包中设置目标端口有什么意义? 因为当我们发送一个数据包时,只有目标地址(ip)很重要,我们希望将数据发送到我们的目标。 跟港口没关系! 我们分配一个随机端口吗?
【问题讨论】:
标签: networking udp port
通常情况下,无论文档告诉您在发送的 UDP 数据报中放置什么内容,还应该告诉您将其发送到哪个端口。
例如,如果您尝试与 NTP 服务器通信,RFC5905 会告诉您在发送的 UDP 数据报中放入什么内容。它还在第 16 页告诉您将其发送到端口 123。
如果您正在编写 DNS 解析器,RFC1035 是您可以在其中查找了解在 UDP 数据报中放入什么所需的信息的地方。它还在第 4.2 节中告诉您将数据报发送到端口 53。
因此,无论您要弄清楚要在要发送的 UDP 数据报中放入什么内容,这通常会告诉您将它们发送到哪个端口,或者在某些情况下,如何确定将它们发送到哪个端口到。
例如,媒体流协议可能从有关 Web 服务器传送的流的信息开始。在这种情况下,Web 服务器向客户端传递的信息可能包括要将数据报发送到的目标端口。
一般来说,要么有一个众所周知的端口,至少有一方在监听数据报,要么有一些外部方法使用不同的协议,告诉发送第一个数据报的一端将其发送到哪个端口。然后另一端只是回复,将其响应数据报发送到发送第一个数据报的任何端口。
【讨论】:
一般情况下,发送端口是为可用的临时端口随机选择的。
目标端口是目标应用程序正在侦听的端口。为此,IANA 为标准应用程序和协议维护 Service Name and Transport Protocol Port Number Registry。
如果您创建自己的应用程序或协议,则有一个范围供您使用,但您应始终检查注册表以确保您不会踩到其他应用程序或协议。
当您设计您的监听应用程序或协议时,您选择它监听的端口,发送应用程序将需要发送到该端口。
【讨论】: