TCP 跟踪如何工作?
答案1
TCP 跟踪的工作方式与更传统的跟踪非常相似,不同之处在于它不是发送 ICMP ECHO 或 UDP 数据包(这些数据包经常被防火墙和负载平衡器阻止),而是在每一批后续数据包中增加 TTL(生存时间),而是发送 TCP SYN 数据包,TTL 也不断增加,直到收到来自目的地的响应。通过这种方式,可以从发送每个数据包到收到相应响应的时间计算从路由器在每个跳上收到的每个后续错误数据包的响应。由于返回数据包来自不同的 IP 地址,TTL 相同,因此可以提取其他信息(例如不同负载平衡目的地的采样)。
答案2
如果您正在谈论 Traceroute (tracert),它通过发送具有极短 TTL 值的数据包来工作。
第一个数据包的 TTL 为 1;当它到达第一个路由器时,路由器会杀死该数据包,并发回一条消息说“这是我,你的数据包在这里死亡了”。
下一个数据包的 TTL 为 2,依此类推,直到到达目标主机或达到最大跳数(Windows 上默认为 30)。
编辑: 维基百科条目在 tracert 上。
答案3
像“tracert”这样的应用程序以及使用 ICMP 以外的协议的其他应用程序会发送多个数据包,每次都会将 TTL(生存时间)增加一。(某些防火墙会阻止所有 ICMP 数据包,从而使 tracert 和 ping 无法使用。)
当路由器等网络设备收到数据包时,它会将 TTL 减 1,如果减至零,则会发回 ICMP“主机不可达”以及从网络中删除数据包的设备的 IP 地址。这样,您就可以获得数据包在网络中经过的路径的线索。
如果你不是想使用 traceroute,TCP跟踪,那么这看起来非常类似于 SSH 隧道,但我不熟悉这个特定的应用程序。