TCP Ping或Traceroute如何工作?


9

tcp ping或traceroute如何工作?是否仅考虑建立TCP握手所需的时间?

另外,在ICMP ping中,您可以指定数据包大小,这可以在TCP ping中实现吗?


我不认识任何运行tcp echo服务器的人。也许您是说UDP?
克里斯S

1
我的理解是,有些工具可以在没有ECHO的情况下执行此操作。他们要做的是将SYN数据包发送到端口80上的路由器,然后等待ACK。我只想确认这是什么...这是一个商业工具netscantools.com/nstpro_ping.html
GeorgeU 2011年

Answers:


6

我相信您指的是这些实用程序:

http://www.vdberg.org/~richard/tcpping.html

http://michael.toren.net/code/tcptraceroute/

由于tcpping需要tcptraceroute,因此我将从tcptraceroute开始。

tcptraceroute的作者指出,与传统的traceroute不同,“通过发送TCP SYN数据包而不是UDP或ICMP ECHO数据包,tcptraceroute能够绕过最常见的防火墙过滤器。”

此外:值得注意的是,tcptraceroute从未与目标主机完全建立TCP连接。

因此,tcptraceroute不会测量完成三向握手所需的时间,因为这永远不会发生。它测量从初始SYN到SYN / ACK的时间。有时将其称为半开连接扫描。

从nmap联机帮助页:

          This technique is often referred to as half-open scanning,
          because you don’t open a full TCP connection. You send a SYN
          packet, as if you are going to open a real connection and then
          wait for a response. A SYN/ACK indicates the port is listening
          (open), while a RST (reset) is indicative of a non-listener. If
          no response is received after several retransmissions, the port
          is marked as filtered. The port is also marked filtered if an
          ICMP unreachable error (type 3, code 1,2, 3, 9, 10, or 13) is
          received.

对于您的数据包大小问题,上面的描述也有答案。由于tcptraceroute发送一个标准的SYN数据包,因此它应该是一个小数据包,也许是64个字节。


0

我不知道“ TCP Ping”或“ TCP Traceroute”的任何标准规范或参考实现,因此您可能需要选择一对实现这些测试的特定工具,然后使用数据包嗅探器查看这些特定工​​具的功能。


-2

是否仅考虑建立TCP握手所需的时间?

否...您的计算机发出了3个UDP数据包,其TTL(生存时间)为1。当这些数据包到达下一跳路由器时,它将TTL减小为0,从而拒绝该数据包。它将在传输过程中(代码0)将超过ICMP生存时间(类型11),TTL等于0的TTL返回0到您的机器-其自身的源地址,因此,您现在知道路径中第一个路由器的地址。

更多信息,请参阅http://www.tek-tips.com/faqs.cfm?fid=381


+1但它不必发送任意的和可控制的三个,并且它通常发送ICMP数据包而不是UDP。
2011年

1
问题不是关于利用ICMP或UDP替代协议的传统traceroute。特别是对于Traceroute来说,它依赖于TCP数据包。
GeorgeU 2011年

@启用原​​始的Unix跟踪路由,并且默认情况下直到今天,所有类似于Un * x的跟踪路由都会发送UDP数据包,并返回超出ICMP时间的数据包。您可能会想到traceroute的非标准实现,例如Microsoft的“ tracert”。
2011年

-2

Traceroute''是一种网络调试实用程序,它尝试跟踪数据包通过网络的路径。Traceroute传输具有短生存时间(TTL)值的数据包。在每个路由器上,该值将递减1,如果TTL达到0,则该数据包已过期并被丢弃。Traceroute取决于在发生这种情况时将RFC 792中记录的ICMP超时消息发送回发送方的通用路由器惯例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.