Windows Tracert tcp

时间:2013-10-30 12:28:04

标签: sockets tcp winsock

我正在尝试在Windows上使用tcp实现tracert。我正在使用Winsock。我使用的套接字是SOCK_STREAM。

问题是如何获取下一个TTL的主机地址。据我所知,在这种情况下我不能使用recvfrom函数,因为TCP是一个基于连接的协议,所以recv相等就是在这种情况下recvfrom。 我尝试使用getpeername,但我仍然只获得目标节点的IP地址。

此外。甚至将TTL = 0设置为IP数据包仍然会找到通往目标计算机的路径并获得响应。

1 个答案:

答案 0 :(得分:1)

tracert(或traceroute)不适用于TCP但使用ICMP(如ping)。 TTL应该由 1 启动,然后递增1直到达到目的地。

更多信息可以在http://en.wikipedia.org/wiki/Traceroute#Implementation

找到