O TCP funciona estabelecendo uma comunicação confiável e orientada à conexão entre dois nós. Aqui está uma visão geral de alto nível de como o TCP funciona:
Resolução de endereço: - Quando uma aplicação cliente deseja enviar dados para outra aplicação, o primeiro passo envolve obter o endereço IP do servidor de destino. Isto é conseguido através do Protocolo de Resolução de Endereços (ARP).
Estabelecimento de conexão TCP (handshake de três vias): - Durante o estabelecimento da conexão, o TCP segue um processo de handshake de três vias.
1. O cliente envia um pacote SYN (Sincronizar) ao servidor. Este pacote contém o número de sequência inicial que o cliente utilizará para seus segmentos de dados.
2. O servidor responde com um pacote SYN-ACK (Synchronize-Acknowledgment). Isto reconhece o SYN do cliente e também inclui o número de sequência inicial do servidor.
3. O cliente confirma a resposta do servidor enviando um pacote ACK (Reconhecimento).
Transmissão e Reconhecimento de Dados: - Uma vez estabelecida a conexão TCP, o cliente e o servidor podem começar a trocar dados.
- O TCP garante uma transmissão confiável de dados, dividindo os dados em segmentos de tamanho apropriado e atribuindo números de sequência a cada segmento.
- O receptor envia um pacote de confirmação (ACK) de volta ao remetente para cada segmento de dados recebido. O remetente mantém um buffer de dados não confirmados e continua enviando mais segmentos até que todos sejam confirmados.
- Se uma confirmação não for recebida dentro de um período de tempo limite especificado, o remetente retransmite o segmento. Este mecanismo ajuda a garantir a entrega confiável de dados.
Controle de fluxo (protocolo de janela deslizante): - Para evitar que o remetente sobrecarregue o receptor, o TCP emprega um mecanismo chamado controle de fluxo.
- Utiliza um protocolo de janela deslizante, que define a quantidade máxima de dados que podem ser ignorados a qualquer momento. Isso evita o estouro do buffer no lado do receptor.
Controle de congestionamento (início lento e prevenção de congestionamento): - O TCP implementa mecanismos de controle de congestionamento para adaptar sua taxa de transmissão com base nos recursos de rede disponíveis.
1. Início lento:evita que o remetente introduza congestionamento na rede abruptamente. Começa enviando uma pequena quantidade de dados e depois aumenta gradativamente a taxa de transmissão à medida que as confirmações são recebidas.
2. Prevenção de congestionamento:Assim que o remetente atinge a capacidade da rede, ele entra na fase de prevenção de congestionamento. Nesta fase, o crescimento da taxa de transmissão é controlado para evitar sobrecarga da rede.
Término da conexão (Handshake de quatro vias): - Quando a troca de dados for concluída, a conexão TCP será encerrada por meio de um processo de handshake de quatro vias.
1. O cliente envia um pacote FIN (Finish) ao servidor.
2. O servidor reconhece o FIN e indica que possui mais dados para enviar com um pacote FIN-ACK.
3. O cliente confirma o FIN-ACK do servidor com um pacote ACK.
4. O servidor envia um ACK final ao cliente e ambas as extremidades fecham a conexão.
Durante toda a conexão, o TCP garante uma comunicação confiável e controlada entre o cliente e o servidor, gerenciando segmentos de dados, confirmações, controle de fluxo e controle de congestionamento. Isso permite que os aplicativos troquem dados de maneira eficiente e confiável pela rede.