Cursos / Redes de Computadores / Redes de Computadores I / Aula
Para conseguir realizar todas essas tarefas, o TCP precisa manter uma série de informações sobre a comunicação que está ocorrendo. Por isso, ele requer que uma conexão seja estabelecida entre as duas máquinas que desejam se comunicar, antes que as informações possam realmente ser transmitidas.
Estabelecer uma conexão significa que uma máquina vai pedir para conversar com a outra, de modo que ambas se preparem para controlar a comunicação que irá acontecer. Esse controle se refere, por exemplo, à criação de variáveis para armazenar informações sobre o andamento da comunicação.
Entre outras informações, o cabeçalho TCP possui um campo formado por diversos bits (chamados de flags) que indicam o tipo do pacote sendo transmitido. Esse tipo pode ser, por exemplo, um pacote de pedido de conexão ou um pacote de confirmação. A combinação dos flags definidos (os que possuem o valor 1) é que indica o tipo do pacote.
Para estabelecer uma conexão são trocados três pacotes, conforme mostrado na Figura 5, onde a máquina A estabelece uma conexão com a máquina B. Veja que a máquina A envia um pacote de solicitação de conexão (flag SYN definido), a máquina B responde aceitando a conexão (flags SYN e ACK definidos) e finalmente a máquina A avisa que recebeu a confirmação da conexão (pacote com apenas o flag ACK definido). Esse procedimento é chamado de Three-way-handshake em referência ao fato de serem trocados três pacotes para estabelecer a conexão.
Os três pacotes trocados durante a fase de estabelecimento da conexão contêm apenas o cabeçalho TCP e não contêm nada na parte de dados! Só após o estabelecimento da conexão é que os dados são de fato transmitidos. Conforme estudaremos na próxima seção, o TCP confirma os pacotes recebidos. Portanto, a fase de troca de dados, ou seja, a comunicação propriamente dita é composta de pacotes de dados e as confirmações. Quando não se deseja mais transmitir nada a conexão é fechada. Como uma conexão TCP é full-duplex, ou seja, podem-se transmitir dados nos dois sentidos, cada máquina precisa solicitar o fechamento da conexão. Isso é feito com pacotes com o flag FIN definido.
A Figura 6 mostra as três fases de uma conexão TCP: estabelecimento de conexão, transferência de dados, encerramento da conexão. Evidentemente, os pacotes mostrados na fase de dados são apenas um exemplo, pois os pacotes trocados dependem de cada situação. O importante é observar que cada máquina pode transmitir dados para a outra, independentemente de quem abriu a conexão.
Veja aqui a explicação, em vídeo, sobre o funcionamento de uma conexão tcp.
Versão 5.3 - Todos os Direitos reservados