8 我只是从机器上捕获了一个数据包,并过滤掉了所有UDP连接。我看到某些连接使用似乎是随机生成的UDP源端口,某些连接使用与UDP目标端口相同的源端口。 我知道TCP连接将随机化源端口,因此响应具有要响应的“专用”端口。但是它如何与UDP一起使用? 我正在寻找权威的答案。到RFC(或其他)的链接将不胜感激。 是什么决定UDP Source端口? 当期望响应时,它是随机生成的吗? 如果没有响应,它是否与目标端口匹配?(而不是使用0作为源端口)? 谢谢。 udp — 埃迪 source
6 这取决于应用程序。例如,当内核2.6.24中未指定源端口时,Linux内核实现了UDP源端口随机化。 因此,您在某些连接中看到的行为必须是特定的应用程序,该应用程序将源端口指定为与目标端口相同,而其他应用程序将其留给内核。 — 杰夫·斯特朗克 source 因此,您要说的是(确保我理解)默认情况下,除非服务/应用程序本身要求特殊的东西(包括使用匹配的源/目标端口),否则UDP将随机化源端口(就像TCP)。那正确吗? — 艾迪 取决于平台,这是正确的。 — 杰夫·斯特朗克 +1这是正确的;与TCP不同,在TCP中,您无需控制源端口(因为操作系统必须确保每个套接字都是唯一的),而在UDP中,应用程序可以自由配置它以适应自己的需要。如果存在双向通信,则“合理”地将源端口设为另一方应答复的端口(在Wikipedia中 “源端口号”下进行了说明)。但是,无论是谁编写的应用程序,都可以轻松地选择使用随机数。 — Groo
0 临时端口是为UDP数据包生成的,与TCP相同。 http://www.hsc.fr/ressources/articles/win_net_srv/ephem_port_alloc.html — 罗布·多布 source 但并非总是如此,正如我的数据包捕获所示。是什么使某些连接使用随机的UDP源端口,而其他连接则与目标端口匹配?当它们匹配时,这如何影响回程流量? — 艾迪 该答案专门描述Windows行为。另一个答案是关于Linux行为的。假设这些仍是最新的,则默认情况下Windows不会像Linux那样随机化。 — thomasrutter