Webrtc 当一个STUN服务器从不同的STUN代理接收到具有相同事务ID的请求时,它的行为如何?

Webrtc 当一个STUN服务器从不同的STUN代理接收到具有相同事务ID的请求时,它的行为如何?,webrtc,stun,turn,Webrtc,Stun,Turn,当一台STUN服务器收到来自两个具有相同事务ID的不同STUN代理的请求时,它应该如何运行?我认为您不应该准备软件来处理这种奇怪的情况。事务id是由客户端生成的随机值,在stun客户端中不太可能看到此类错误 事务ID是一个96位标识符,用于唯一标识 眩晕交易。对于请求/响应事务 STUN客户端为请求选择事务ID,然后 服务器在响应中响应 如果不是随机的,则很可能是由一个伪造的客户端软件引起的,最终您只需向该客户端发送错误的答案,直到其开发人员找到并修复其软件。这不应该发生,但如果发生这种情况,服

当一台STUN服务器收到来自两个具有相同事务ID的不同STUN代理的请求时,它应该如何运行?

我认为您不应该准备软件来处理这种奇怪的情况。事务id是由客户端生成的随机值,在stun客户端中不太可能看到此类错误

事务ID是一个96位标识符,用于唯一标识 眩晕交易。对于请求/响应事务 STUN客户端为请求选择事务ID,然后 服务器在响应中响应


如果不是随机的,则很可能是由一个伪造的客户端软件引起的,最终您只需向该客户端发送错误的答案,直到其开发人员找到并修复其软件。

这不应该发生,但如果发生这种情况,服务器应检查5元组(客户端IP地址和端口、服务器IP地址和端口以及传输协议(当前为UDP、TCP或TLS之一)的组合)。如果5元组不匹配,则服务器应继续将其视为有效事务,否则其行为应符合RFC-5766。

来自STUN绑定请求的事务ID仅在STUN绑定响应中回显。服务器不会尝试将此值解释为除日志记录之外的任何内容。或者它是否尝试管理或处理重复的请求或重复的事务ID。如果两个不同的客户端发送具有相同事务ID的绑定请求,则它们在相应的响应中都将获得相同的事务ID

事务ID只是为了客户机的利益。如果客户机从服务器收到的响应与请求中使用的事务ID不同,则应忽略该响应。因为该数据包可能是前一个STUN会话的延迟到达

大约只有当客户端在等待响应时超时并再次重新发送绑定请求时,才能存在重复的事务ID。RFC 5389在中提到了这一点:
重新发送相同的请求重用相同的事务ID