【发布时间】:2016-02-09 04:53:54
【问题描述】:
当我使用 TCP 时,我需要目标端口(以便能够与其他主机上的其他进程“对话”)和源端口(因为 TCP 是面向连接的,所以我会将数据发送回源,如 ack、seq 和更多的)。 另一方面,无连接的UDP也需要源端口。
为什么会这样? (我不需要发回数据)
【问题讨论】:
当我使用 TCP 时,我需要目标端口(以便能够与其他主机上的其他进程“对话”)和源端口(因为 TCP 是面向连接的,所以我会将数据发送回源,如 ack、seq 和更多的)。 另一方面,无连接的UDP也需要源端口。
为什么会这样? (我不需要发回数据)
【问题讨论】:
您不需要,但仍有可能发回响应(这实际上非常有用),但正如 RCF 768 中所述
Source Port 是一个可选字段,当有意义时,它表示端口 的发送过程,并且可以假定为端口 应在没有任何其他信息的情况下作出答复。如果 未使用,插入零值。
【讨论】:
可能有两个原因。
首先,接收者通常需要回复,为此提供标准工具很有用。
其次,您可能有多个接口(网卡)并使用源地址,您决定必须使用其中的哪个来发送数据包。
【讨论】:
我想在这里添加答案。除了简单地知道要回复什么之外,源端口还可以属于list of well-known port numbers。这些端口指定UDP(或TCP!)数据包中封装的数据类型。
例如,源端口530表示包中包含Remote Procedure Call,520表示包中包含Routing Information Protocol。
【讨论】: