Você está offline; aguardando reconexão

Explicação sobre o handshake de três vias via TCP/IP

O suporte para o Windows XP terminou

A Microsoft terminou o suporte para o Windows XP em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

O suporte para o Windows Server 2003 termina em 14 de julho de 2015.

A Microsoft terminou o suporte para o Windows Server 2003 em 14 de julho de 2015. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 172983
Sumário
Este artigo destina-se ao público que estão familiarizado com o TCP/IP (Transmission Control Protocol/Internet Protocol) e discute o processo de handshake de três vias do TCP que ocorre entre um cliente e servidor ao iniciar ou encerrar uma conexão TCP.

Para obter informações adicionais sobre TCP/IP, consulte o seguinte white paper disponível no servidor de ftp anônimo do Microsoft (em inglês):
Nome do arquivo: Tcpipimp2.doc
Local: ftp://ftp.microsoft.com/bussys/winnt/winnt-docs/papers/ "Microsoft Windows NT 3.5/3.51/4.0: detalhes da implementação de TCP/IP pilha do protocolo TCP/IP e serviços, versão 2.0"
Mais Informações
O nível de TCP (Transmission Control Protocol) do protocolo de transporte TCP/IP é orientado por conexão. Orientado por conexão significa que, antes de todos os dados podem ser transmitidos, uma conexão confiável deve ser obtida e confirmada. TCP transmissões de dados em nível de estabelecimento da conexão e encerramento da conexão mantém parâmetros de controle específicas que regem o processo inteiro. Os bits de controle são listados da seguinte maneira:
URG: Campo de ponteiro urgente significativo
ACK: Campo de confirmação significativo
PSH: Função de push
RST: Redefinir a conexão
SYN: Sincronizar números de seqüência
FIN: Não há mais dados do remetente
Há dois cenários em que um handshake de três vias ocorrerá:
  • Estabelecer uma conexão (aberto ativa)
  • Encerrar uma conexão (fechamento ativo)
As seguintes informações de exemplo foi obtidas de uma captura do Monitor de rede. O Monitor de rede é um analisador de protocolo que pode ser obtido a partir do Microsoft Systems Management Server.

Estabelecer uma conexão

A seqüência a seguir mostra o processo de uma conexão TCP estabelecida:

Quadro 1:

Como você ver no primeiro quadro, o cliente, NTW3, envia um segmento SYN (TCP.... S.). Essa é uma solicitação ao servidor para sincronizar os números de seqüência. Ele especifica seu número de seqüência inicial (ISN), que é incrementado em 1, 8221821 + 1 = 8221822 e que é enviada ao servidor. Para inicializar uma conexão, o cliente e o servidor devem sincronizar números de seqüência dos outros. Também é uma opção de tamanho máximo de segmento (MSS) deve ser definido, que é definida pelo comprimento (comp.: 4). esta opção se comunica o tamanho máximo de segmento, o remetente deseja receber. O campo de confirmação (ack: 0) é definida como zero porque esta é a primeira parte do handshake de três vias.
1    2.0785 NTW3 --> BDC3 TCP ....S., len: 4, seq: 8221822-8221825, ack: 0,win: 8192, src: 1037  dst:  139 (NBT Session)  NTW3 -->  BDC3 IPTCP: ....S., len: 4, seq: 8221822-8221825, ack: 0, win: 8192, src: 1037dst:  139 (NBT Session)   TCP: Source Port = 0x040D   TCP: Destination Port = NETBIOS Session Service   TCP: Sequence Number = 8221822 (0x7D747E)   TCP: Acknowledgement Number = 0 (0x0)   TCP: Data Offset = 24 (0x18)   TCP: Reserved = 0 (0x0000)   TCP: Flags = 0x02 : ....S.      TCP: ..0..... = No urgent data      TCP: ...0.... = Acknowledgement field not significant      TCP: ....0... = No Push function      TCP: .....0.. = No Reset      TCP: ......1. = Synchronize sequence numbers      TCP: .......0 = No Fin   TCP: Window = 8192 (0x2000)   TCP: Checksum = 0xF213   TCP: Urgent Pointer = 0 (0x0)   TCP: Options         TCP: Option Kind (Maximum Segment Size) = 2 (0x2)         TCP: Option Length = 4 (0x4)         TCP: Option Value = 1460 (0x5B4)   TCP: Frame Padding00000:  02 60 8C 9E 18 8B 02 60 8C 3B 85 C1 08 00 45 00   .`.....`.;....E.00010:  00 2C 0D 01 40 00 80 06 E1 4B 83 6B 02 D6 83 6B   .,..@....K.k...k00020:  02 D3 04 0D 00 8B 00 7D 74 7E 00 00 00 00 60 02   .......}t~....`.00030:  20 00 F2 13 00 00 02 04 05 B4 20 20                .........				
Frame 2:

No segundo quadro, o servidor, BDC3, envia um pacote ACK e um SYN neste segmento (TCP. a..S.). in neste segmento do servidor está reconhecendo a solicitação do cliente para sincronização. Ao mesmo tempo, o servidor está enviando também sua solicitação para o cliente para a sincronização de seus números de seqüência. Há uma diferença importante neste segmento. O servidor transmite um número de confirmação (8221823) para o cliente. A confirmação é apenas prova ao cliente o ACK é específico para o cliente iniciado SYN. O processo de reconhecimento de solicitação do cliente permite que o servidor incrementar o número de seqüência do cliente por um e usa como seu número de confirmação.
2   2.0786 BDC3 --> NTW3  TCP .A..S., len: 4, seq: 1109645-1109648, ack:8221823, win: 8760, src: 139 (NBT Session)  dst: 1037 BDC3 --> NTW3  IPTCP: .A..S., len:    4, seq:   1109645-1109648, ack:   8221823, win: 8760,src:  139 (NBT Session)  dst: 1037   TCP: Source Port = NETBIOS Session Service   TCP: Destination Port = 0x040D   TCP: Sequence Number = 1109645 (0x10EE8D)   TCP: Acknowledgement Number = 8221823 (0x7D747F)   TCP: Data Offset = 24 (0x18)   TCP: Reserved = 0 (0x0000)   TCP: Flags = 0x12 : .A..S.      TCP: ..0..... = No urgent data      TCP: ...1.... = Acknowledgement field significant      TCP: ....0... = No Push function      TCP: .....0.. = No Reset      TCP: ......1. = Synchronize sequence numbers      TCP: .......0 = No Fin   TCP: Window = 8760 (0x2238)   TCP: Checksum = 0x012D   TCP: Urgent Pointer = 0 (0x0)   TCP: Options         TCP: Option Kind (Maximum Segment Size) = 2 (0x2)         TCP: Option Length = 4 (0x4)         TCP: Option Value = 1460 (0x5B4)   TCP: Frame Padding00000:  02 60 8C 3B 85 C1 02 60 8C 9E 18 8B 08 00 45 00   .`.;...`......E.00010:  00 2C 5B 00 40 00 80 06 93 4C 83 6B 02 D3 83 6B   .,[.@....L.k...k00020:  02 D6 00 8B 04 0D 00 10 EE 8D 00 7D 74 7F 60 12   ...........}t`.00030:  22 38 01 2D 00 00 02 04 05 B4 20 20               "8.-......				
Frame 3:

No terceiro quadro, o cliente envia um pacote ACK neste segmento (TCP. a....). Neste segmento, o cliente está reconhecendo a solicitação do servidor para sincronização. O cliente usa o mesmo algoritmo de servidor implementado no fornecimento de um número de confirmação. Confirmação do cliente de solicitação do servidor de sincronização conclui o processo de estabelecer uma conexão confiável, portanto o handshake de três vias.
3   2.787 NTW3 --> BDC3  TCP .A...., len: 0, seq: 8221823-8221823, ack:1109646, win: 8760, src: 1037  dst:  139 (NBT Session)  NTW3 --> BDC3  IPTCP: .A...., len:    0, seq:   8221823-8221823, ack:   1109646, win: 8760,src: 1037  dst:  139 (NBT Session)   TCP: Source Port = 0x040D   TCP: Destination Port = NETBIOS Session Service   TCP: Sequence Number = 8221823 (0x7D747F)   TCP: Acknowledgement Number = 1109646 (0x10EE8E)   TCP: Data Offset = 20 (0x14)   TCP: Reserved = 0 (0x0000)   TCP: Flags = 0x10 : .A....      TCP: ..0..... = No urgent data      TCP: ...1.... = Acknowledgement field significant      TCP: ....0... = No Push function      TCP: .....0.. = No Reset      TCP: ......0. = No Synchronize      TCP: .......0 = No Fin   TCP: Window = 8760 (0x2238)   TCP: Checksum = 0x18EA   TCP: Urgent Pointer = 0 (0x0)   TCP: Frame Padding00000:  02 60 8C 9E 18 8B 02 60 8C 3B 85 C1 08 00 45 00   .`.....`.;....E.00010:  00 28 0E 01 40 00 80 06 E0 4F 83 6B 02 D6 83 6B   .(..@....O.k...k00020:  02 D3 04 0D 00 8B 00 7D 74 7F 00 10 EE 8E 50 10   .......}t....P.00030:  22 38 18 EA 00 00 20 20 20 20 20 20               "8....				

Encerrar uma conexão

Embora o handshake de três vias requer apenas três pacotes a serem transmitidas pela nossa mídia em rede, a finalização desta conexão confiável irá exigir a transmissão de pacotes de quatro. Como uma conexão TCP é full duplex (ou seja, dados podem ser fluir em cada direção independente da outra), cada direção deve ser terminada independentemente.

Quadro 4:

Nesta sessão de quadros, você vê o cliente envia um FIN é acompanhado por um ACK (TCP. A...F). Esse segmento tem duas funções básicas. Primeiro, quando o parâmetro FIN é definido, você será informado no servidor que ele tem mais dados para enviar. Segundo, o ACK é essencial identificar a conexão específica, que eles estabeleceram.
4   16.0279 NTW3 --> BDC3 TCP .A...F, len: 0, seq: 8221823-8221823,ack:3462835714, win: 8760, src: 2337  dst: 139 (NBT Session)  NTW3 --> BDC3IPTCP: .A...F, len:   0, seq: 8221823-8221823, ack:  1109646, win: 8760, src:1037  dst:  139 (NBT Session)   TCP: Source Port = 0x040D   TCP: Destination Port = NETBIOS Session Service   TCP: Sequence Number = 8221823 (0x7D747F)   TCP: Acknowledgement Number = 1109646 (0x10EE8E)   TCP: Data Offset = 20 (0x14)   TCP: Reserved = 0 (0x0000)   TCP: Flags = 0x11 : .A...F      TCP: ..0..... = No urgent data      TCP: ...1.... = Acknowledgement field significant      TCP: ....0... = No Push function      TCP: .....0.. = No Reset      TCP: ......0. = No Synchronize      TCP: .......1 = No more data from sender   TCP: Window = 8760 (0x2238)   TCP: Checksum = 0x236C   TCP: Urgent Pointer = 0 (0x0)00000:  00 20 AF 47 93 58 00 A0 C9 22 F5 39 08 00 45 00   . .G.X...".9..E.00010:  00 28 9B F5 40 00 80 06 21 4A C0 5E DE 7B C0 5E   .(..@...!J.^.{.^00020:  DE 57 09 21 05 48 0B 20 96 AC CE 66 AE 02 50 11   .W.!.H. ...f..P.00030:  22 38 23 6C 00 00                                 "8#l..				
Frame 5:

Nesse quadro, você não vir nada especial exceto para o servidor confirmando FIN que foi transmitido do cliente.
5    16.0281 BDC3 --> NTW3 TCP .A...., len:    0, seq: 1109646-1109646,ack: 8221824, win:28672, src: 139  dst: 2337 (NBT Session) BDC3 -->  NTW3IPTCP: .A...., len:    0, seq: 1109646-1109646, ack: 8221824, win:28672, src:139  dst: 2337 (NBT Session)   TCP: Source Port = 0x040D   TCP: Destination Port = NETBIOS Session Service   TCP: Sequence Number = 1109646 (0x10EE8E)   TCP: Acknowledgement Number = 8221824 (0x7D7480)   TCP: Data Offset = 20 (0x14)   TCP: Reserved = 0 (0x0000)   TCP: Flags = 0x10 : .A....      TCP: ..0..... = No urgent data      TCP: ...1.... = Acknowledgement field significant      TCP: ....0... = No Push function      TCP: .....0.. = No Reset      TCP: ......0. = No Synchronize      TCP: .......0 = No Fin   TCP: Window = 28672 (0x7000)   TCP: Checksum = 0xD5A3   TCP: Urgent Pointer = 0 (0x0)   TCP: Frame Padding00000:  00 A0 C9 22 F5 39 08 00 02 03 BA 84 08 00 45 00   ...".9........E.00010:  00 28 D2 82 00 00 3F 06 6B BD C0 5E DE 57 C0 5E   .(....?.k..^.W.^00020:  DE 7B 05 48 09 21 CE 66 AE 02 0B 20 96 AD 50 10   .{.H.!.f... ..P.00030:  70 00 D5 A3 00 00 90 00 01 00 86 00               p...........				
Frame 6:

Depois de receber o FIN do computador cliente, o servidor irá ACK. Mesmo que o TCP estabeleceu conexões entre os dois computadores, as conexões são ainda independentes entre si. Portanto, o servidor também deve transmitir um FIN (TCP. A...F) para o cliente.
6   17.0085 BDC3 --> NTW3 TCP .A...F, len: 0, seq: 1109646-1109646, ack:8221824, win:28672, src: 139 dst: 2337 (NBT Session) BDC3 -->  NTW3   IPTCP: .A...F, len:  0, seq: 1109646-1109646, ack: 8221824, win:28672, src:139  dst: 2337 (NBT Session)   TCP: Source Port = 0x0548   TCP: Destination Port = 0x0921   TCP: Sequence Number = 1109646 (0x10EE8E)   TCP: Acknowledgement Number = 8221824 (0x7D7480)   TCP: Data Offset = 20 (0x14)   TCP: Reserved = 0 (0x0000)   TCP: Flags = 0x11 : .A...F      TCP: ..0..... = No urgent data      TCP: ...1.... = Acknowledgement field significant      TCP: ....0... = No Push function      TCP: .....0.. = No Reset      TCP: ......0. = No Synchronize      TCP: .......1 = No more data from sender   TCP: Window = 28672 (0x7000)   TCP: Checksum = 0xD5A2   TCP: Urgent Pointer = 0 (0x0)   TCP: Frame Padding00000:  00 A0 C9 22 F5 39 08 00 02 03 BA 84 08 00 45 00   ...".9........E.00010:  00 28 D2 94 00 00 3F 06 6B AB C0 5E DE 57 C0 5E   .(....?.k..^.W.^00020:  DE 7B 05 48 09 21 CE 66 AE 02 0B 20 96 AD 50 11   .{.H.!.f... ..P.00030:  70 00 D5 A2 00 00 02 04 05 B4 86 00               p...........				
Frame 7:

O cliente responde no mesmo formato que o servidor pelo ACKing FIN do servidor e incrementando o número de seqüência por 1.
7   17.0085 NTW3 --> BDC3 TCP .A...., len: 0, seq: 8221824-8221824, ack:1109647, win: 8760, src: 2337  dst: 139 (NBT Session) NTW3 --> BDC3 IPTCP: .A...., len:    0, seq: 8221824-8221824, ack: 1109647, win: 8760, src:2337  dst: 139   (NBT Session)   TCP: Source Port = 0x0921   TCP: Destination Port = 0x0548   TCP: Sequence Number = 8221824 (0x7D7480)   TCP: Acknowledgement Number = 1109647 (0x10EE8F)   TCP: Data Offset = 20 (0x14)   TCP: Reserved = 0 (0x0000)   TCP: Flags = 0x10 : .A....      TCP: ..0..... = No urgent data      TCP: ...1.... = Acknowledgement field significant      TCP: ....0... = No Push function      TCP: .....0.. = No Reset      TCP: ......0. = No Synchronize      TCP: .......0 = No Fin   TCP: Window = 8760 (0x2238)   TCP: Checksum = 0x236B   TCP: Urgent Pointer = 0 (0x0)00000:  00 20 AF 47 93 58 00 A0 C9 22 F5 39 08 00 45 00   . .G.X...".9..E.00010:  00 28 BA F5 40 00 80 06 02 4A C0 5E DE 7B C0 5E   .(..@....J.^.{.^00020:  DE 57 09 21 05 48 0B 20 96 AD CE 66 AE 03 50 10   .W.!.H. ...f..P.00030:  22 38 23 6B 00 00                                 "8#k..				
o cliente ACKing FIN notificação do servidor identifica um fechamento normal de uma conexão TCP.
Referências
Para obter informações adicionais sobre ICMP:
Consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
170292Noções básicas do Internet Control Message Protocol (ICMP)
- ou -
Obter RFC 793.
RFCs podem ser obtidas através da Internet da seguinte maneira:

Cópias em papel de todas as RFCs são disponibilizadas pela NIC, individualmente ou em uma base de assinatura (para obter mais informações sobre contato NIC@NIC.DDN.MIL). Cópias on-line estão disponíveis por meio de FTP ou Kermit de NIC.ddn.mil como rfc/rfc #### .txt ou rfc/rfc #### .PS (#### é o número da RFC sem zeros).

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 172983 - Última Revisão: 02/12/2010 09:27:02 - Revisão: 4.0

Windows Server 2008 Standard, Windows Server 2008 Enterprise, Windows Server 2008 Datacenter, Windows Server 2008 for Itanium-Based Systems, Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows XP Professional, Microsoft Windows XP Home Edition, Microsoft Windows XP Tablet PC Edition, Microsoft Windows XP Media Center Edition 2005 Update Rollup 2, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows 2000 Datacenter Server, Microsoft Windows 2000 Server, Windows Vista Business, Windows Vista Business 64-bit edition, Windows Vista Enterprise, Windows Vista Enterprise 64-bit edition, Windows Vista Home Basic, Windows Vista Home Basic 64-bit edition, Windows Vista Home Premium, Windows Vista Home Premium 64-bit edition, Windows Vista Ultimate, Windows Server 2008 Foundation, Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Standard, Windows Web Server 2008 R2, Windows 7 Enterprise, Windows 7 Home Basic, Windows 7 Home Premium, Windows 7 Professional, Windows 7 Ultimate

  • kbmt kbinfo kbnetwork KB172983 KbMtpt
Comentários
=">