Como o TCP Ping ou o Traceroute funcionam?

9

Como o tcp ping ou traceroute funciona? Leva em consideração o tempo necessário para estabelecer o handshake TCP?

Também no ping ICMP, você pode especificar o tamanho do pacote, isso pode ser alcançado no ping TCP?

GeorgeU
fonte
Não conheço ninguém que execute um servidor tcp echo; talvez você queira dizer UDP?
Chris S
1
Entendo que existem ferramentas que fazem isso sem o ECHO. O que eles fazem é enviar um pacote SYN para o roteador na porta 80 e aguardar o ACK. Eu só quero confirmar isso é o que é ... aqui é uma ferramenta comercial netscantools.com/nstpro_ping.html
GeorgeU

Respostas:

6

Eu acredito que você está se referindo a estes utilitários:

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

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

Como tcpping requer tcptraceroute, começarei com tcptraceroute.

O autor do tcptraceroute afirma que, diferentemente de um traceroute tradicional, "Ao enviar pacotes TCP SYN em vez de pacotes UDP ou ICMP ECHO, o tcptraceroute pode ignorar os filtros de firewall mais comuns".

Mais: Vale a pena notar que o tcptraceroute nunca estabelece completamente uma conexão TCP com o host de destino.

Portanto, o tcptraceroute não mede o tempo necessário para concluir o handshake de três vias, porque isso nunca acontece. Ele mede o tempo desde o SYN inicial até o SYN / ACK. Às vezes, isso é chamado de verificação de conexão semi-aberta.

Na página de manual do 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.

Quanto à sua pergunta sobre o tamanho do pacote, a descrição acima também tem a resposta. Como o tcptraceroute envia um pacote SYN padrão, ele deve ser um pacote pequeno, talvez de 64 bytes.

dmourati
fonte
0

Não tenho conhecimento de nenhuma especificação padrão ou implementação de referência para "TCP Ping" ou "TCP Traceroute", portanto, você provavelmente precisará escolher um par específico de ferramentas que implementa esses testes e, em seguida, usar um sniffer de pacotes para ver o que essas ferramentas específicas fazem. .

Spiff
fonte
-2

Leva em consideração o tempo necessário para estabelecer o handshake TCP?

não ... sua máquina envia 3 pacotes UDP com um TTL (Time-to-Live) de 1. Quando esses pacotes atingem o roteador do próximo salto, ele reduz o TTL para 0 e, assim, rejeita o pacote. Ele enviará um tempo de vida do ICMP excedido (Tipo 11), TTL igual a 0 durante o trânsito (Código 0) de volta à sua máquina - com um endereço de origem próprio, portanto agora você sabe o endereço do primeiro roteador no caminho .

Mais informações Consulte http://www.tek-tips.com/faqs.cfm?fid=381

Pete White
fonte
+1 Mas ele não precisa enviar três, que é arbitrário e controlável, e envia pacotes ICMP não UDP como regra.
Orbling
1
A questão não é sobre o traceroute tradicional que utiliza o ICMP ou a alternativa UDP. É especificamente para o Traceroute que depende de pacotes TCP.
GeorgeU
@Orbling o traceroute original do Unix, e todos os traceroutes do tipo Un * x até hoje, por padrão, enviam pacotes UDP e obtêm o tempo de ICMP excedido. Você pode estar pensando em uma implementação não padrão do traceroute, como o "tracert" da Microsoft.
Spiff
-2

Traceroute '' é um utilitário de depuração de rede que tenta rastrear o caminho que um pacote percorre pela rede. O Traceroute transmite pacotes com valores TTL (time to live). Em cada roteador, o valor está sendo decrementado em 1 e se TTL atingir 0, o pacote expirou e é descartado. O traceroute depende da prática comum do roteador de enviar uma mensagem ICMP com tempo excedido, documentada no RFC 792, de volta ao remetente quando isso ocorrer.

Stephen Lembert
fonte