pplware.sapo.ptpplware.sapo.pt - 15 jan. 14:00

Three-way Handshake: Saiba o que é e como "ver a acontecer"

Three-way Handshake: Saiba o que é e como "ver a acontecer"

No estabelecimento de ligação entre emissor e recetor existe um “pré-acordo” denominado de Three Way Handshake (SYN, SYN-ACK, ACK).

Saiba como funciona, usando para isso o popular snifer Wireshark.

O protocolo de comunicação de transporte TCP é o mais usado nas comunicações porque fornece garantia na entrega de todos os pacotes entre um PC emissor e um PC recetor. Dentro de um segmento TCP existem vários campos e hoje destacamos os campos  ACK e SYN que são usados no início de uma comunicação TCP.

  • SYN – Se ativo, indica um pedido de estabelecimento de ligação e a confirmação da ligação;
  • ACK – Se ativo, o campo Número de Confirmação deve ser interpretado;
Mas o que é Three Way Handshake?
  • A sessão entre um cliente e um servidor é sempre iniciada pelo cliente, que envia um pedido de ligação pacote com a flag SYN ativada.
  • O cliente envia também um número sequencial aleatório
  • O servidor responde com um pacote SYN,ACK com o seu próprio número sequencial aleatório e um número de confirmação (igual ao número sequencial do cliente +1)
  • Para finalizar o cliente responde com um pacote ACK com o número de confirmação (igual ao número de sequência do servidor +1)

Na prática, temos mais ou menos isto…

Vamos a um exemplo prático?

Vamos considerar então uma ligação da nossa máquina para o site Pplware.

Primeira Fase (SYN)

O cliente (192.168.1.123) envia um pedido de sincronização (SYN) para o Pplware.com. Tal segmento tem como numero de sequência 0 (zero). O servidor responde com um pacote SYN, ACK, onde o ACK=1 (igual ao número sequencial do cliente +1). Para finalizar o cliente responde com um pacote ACK =1 e envia também o número de sincronização (Seq =1) - igual ao número de sequência do servidor +1.

Nota: Para facilitar a encontrar os registos, podem usar os seguintes filtros:

  • Filtro 1: tcp.flags.syn == 1 && tcp.flags.ack == 0
  • Filtro 2: tcp.flags.syn == 1 && tcp.flags.ack == 1
  • Filtro 3: tcp.seq == 1 && tcp.ack == 1 && tcp.len == 0 && !(tcp.flags.push == 1)

Nota: Para facilitar, podem também usar a funcionalidade   Follow TCP Stream. Esta funcionalidade permite visualizar streams TCP completas, isto é, com esta opç��o o utilizador poderá acompanhar toda uma comunicação desde o primeiro SYN até ao FIN­-ACK - ver aqui.

NewsItem [
pubDate=2022-01-15 14:00:24.0
, url=https://pplware.sapo.pt/tutoriais/networking/three-way-handshake-saiba-o-que-e-e-como-ver-a-acontecer/
, host=pplware.sapo.pt
, wordCount=351
, contentCount=1
, socialActionCount=0
, slug=2022_01_15_831338192_three-way-handshake-saiba-o-que-e-e-como-ver-a-acontecer
, topics=[tecnologia, tutoriais, networking, redes, three-way handshake]
, sections=[ciencia-tecnologia]
, score=0.000000]