如何selectUDP源端口?

我只是从我的机器做了一个数据包捕获,并过滤掉了所有的UDP连接。 我看到某些使用随机生成的UDP源端口的连接,以及使用与UDP目标端口相同的源端口的某些连接。

我知道TCP连接将随机化源端口,所以响应有一个“专用”端口来响应。 但是它如何与UDP协同工作呢?

我正在寻找权威的答案。 链接到RFC的(或whatnot)将不胜感激。

什么决定UDP源端口?

  • 是否在预期响应时随机生成?
  • 当预期没有响应时,它是否与目标端口匹配? (而不是使用0作为源端口)?

谢谢。

这取决于应用程序。 例如,当内核2.6.24中没有指定源端口时,Linux内核实现了UDP源端口随机化。

因此,您在某些连接中看到的行为必须是指定源端口与目标端口相同的特定应用程序,而其他连接则将其留给内核。

生成与TCP相同的UDP数据包的临时端口。

http://www.hsc.fr/ressources/articles/win_net_srv/ephem_port_alloc.html