在NAT中,UDP会话有两个不同的超时时间。
在大多数NAT配置中,UDP timeout
设置为30 seconds
。但是,UDP stream timeout
设置为180 seconds
。我了解网络管理员可能会更改配置。但是,UDP会话由一对源端点和目标端点标识。 NAT应该将连接分类为流。
我的问题是NAT
如何以及何时将连接分类为流,何时不将其分类为流?尽管似乎有一对连续的双向send()
和receive()
将UDP连接分类为流,但是我没有找到有据可查的证据。
我还假设不同的NAT策略应用不同的算法。但是,是否有任何RFC或任何公开的文件来记录这些算法?
在下面的link中,流被定义为双向通讯的会话。但是需要多少个发送和接收?在不同的NAT中是否有所不同?
在这种情况下,“流”表示连接跟踪机制具有 在“双向”上看到数据包,因此默认超时时间更长。如果 仅看到一个方向,则应用“另一个”超时。
答案 0 :(得分:0)
通常,当LAN客户端将UDP数据报发送到WAN时,NAT会将UDP流(也称为端口状态)与用于将数据报发送到WAN的端口相关联。当NAT在特定端口上从WAN接收到UDP数据报时,它会查看是否有与该端口相关联的UDP流,如果存在,它将数据报转发到关联的LAN客户端。否则,数据报将被丢弃。
当两个不同的LAN客户端想要通过WAN相互发送UDP数据报时,遍历其NAT的一种常见做法是UDP hole punching:两个客户端都开始从/从同一端口相互发送数据报,这样它们的NAT关联UDP流并开始转发数据报。