2011-06-27 189 views
2

我正在使用UDP网络协议将消息从各种客户端发送到根服务器。在UDP协议中的Tracerouting协议

从客户端到服务器的消息可能不会直接发送,并可能通过其他客户端发送。

我想通过查看在根服务器上收到的消息来知道通过其发送消息的客户端。这个怎么做?

回答

1

UDP不包含此信息。如果您想跟踪消息已通过的服务器,则需要在协议中包含某些内容。

traceroute程序使用一个技巧,通过将TTL设置为递增数来获得反弹数据包。它始于1的TTL,以便第一次反弹来自距离源最近的服务器。然后,它会尝试TTL为2以从路径上的第二台服务器获得反弹,以此类推。

0

traceroute是客户端和启发式的,即仅用于稳定连接。既然你基本上构建了一个覆盖网络,获得路由信息的唯一方法是根据你的路由算法重构路由(很难,并且可能在分布式网络中不可行),或者让每个中继添加一个注释(通常由中继的名称和以前的IP地址)。