tcp ping或traceroute如何工作?是否仅考虑建立TCP握手所需的时间?
另外,在ICMP ping中,您可以指定数据包大小,这可以在TCP ping中实现吗?
tcp ping或traceroute如何工作?是否仅考虑建立TCP握手所需的时间?
另外,在ICMP ping中,您可以指定数据包大小,这可以在TCP ping中实现吗?
Answers:
我相信您指的是这些实用程序:
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个字节。
是否仅考虑建立TCP握手所需的时间?
否...您的计算机发出了3个UDP数据包,其TTL(生存时间)为1。当这些数据包到达下一跳路由器时,它将TTL减小为0,从而拒绝该数据包。它将在传输过程中(代码0)将超过ICMP生存时间(类型11),TTL等于0的TTL返回0到您的机器-其自身的源地址,因此,您现在知道路径中第一个路由器的地址。