我正在使用 UDP 网络协议将消息从各种客户端发送到根服务器。
从客户端到服务器的消息可能不会直接发送,可能会通过其他客户端发送。
我想通过查看根服务器收到的消息来了解发送消息的客户端。这个怎么做?
我正在使用 UDP 网络协议将消息从各种客户端发送到根服务器。
从客户端到服务器的消息可能不会直接发送,可能会通过其他客户端发送。
我想通过查看根服务器收到的消息来了解发送消息的客户端。这个怎么做?
UDP 不包括此信息。如果要跟踪消息通过的服务器,则需要在协议中包含一些内容。
traceroute 程序通过将 TTL 设置为不断增加的数字来使用一种技巧来获取退回的数据包。它以 1 的 TTL 开始,以便第一次反弹来自离源最近的服务器。然后它尝试 2 的 TTL 以从路径上的第二个服务器获得反弹,依此类推。
traceroute 是客户端和启发式的,即仅适用于稳定连接。由于您实际上是在构建一个覆盖网络,因此获取有关路由的信息的唯一方法是根据您的路由算法重建路由(很难,并且在分布式网络中可能不可行)或让每个中继添加一个注释(通常由中继的名称和之前的 IP 地址)到消息中。