Protocolo TCP
Protocolo TCP:
[editar | editar código-fonte]Recebe um fluxo de dados proveniente da camada superior para segmentá-lo e enviar essas partes uma a uma ordenadamente para a camada inferior. Esses segmentos são numerados e sequenciados, permitindo a remontagem do fluxo assim que os segmentos atingem seu destino. O TCP é considerado um protocolo orientado à conexão, o que significa que ele é orientado à garantia do sucesso do processo de comunicação. Isso se dá por uma série de processos que são estabelecidos por este protocolo. É um protocolo full-duplex, orientado à conexão e altamente confiável. A arquitetura é bastante complexa, o que acarreta em um grande custo em termos de cabeçalho (overhead). Como as redes de hoje são muito confiáveis do que as redes existentes quando o protocolo TCP foi criado, grande parte das características que garantem essa confiabilidade na transmissão poderia ser dispensada atualmente.
O TCP estabelece um circuito virtual com a abertura de uma sessão entre origem e destino. Neste processo a máquina de origem verifica se o destino está apto a receber os segmentos que serão encaminhados. Esse processo recebe o nome de Handshake Triplo pois são três verificações conforme abaixo:
- o destino está online?
- existe uma porta de destino aberta?
- o serviço nessa porta está ativo?
Controle de Fluxo
[editar | editar código-fonte]Outro processo que ocorre é o chamado controle de fluxo onde a máquina origem define em acordo com o destino a quantidade de segmentos que ele suporta simultaneamente na transmissão. Esse processo existe pela heterogeneidade de nossas infraestruturas. Encontramos equipamentos com configurações de hardware (processamento, memória, armazenamento) e capacidades de envio e recepção muito diferentes. Além disso, uma máquina não está necessariamente em uma única sessão de comunicação, dividindo assim sua capacidade com múltiplas conversas.
Essa etapa do controle de fluxo é chamada de janelamento (windowing) onde origem e destino definem quantos segmentos serão enviados. Junto a esse processo o TCP faz a confirmação de entrega onde somente enviará uma nova janela de segmentos depois de receber uma confirmação do destino que recebeu com sucesso a anterior. Caso não receba uma confirmação, ou receba uma confirmação parcial, o TCP reenviará os segmentos não confirmados. O controle de fluxo evita que os destinos do circuito virtual sobrecarreguem e entrem em estado de negação de serviço (DoS).
Ele acompanha as conversas individuais das aplicações mantendo o canal aberto até o último segmento a ser entregue
Ao encerrar uma transmissão, o TCP realiza um fechamento do circuito virtual enviando uma mensagem de finalização (FIN) e aguardando a confirmação (ACK) do destino. O destino repete o procedimento enviando também uma mensagem de finalização (FIN) e recebendo a confirmação (ACK) da origem.
O protocolo TCP com isso possui um cabeçalho de dados maior e uma latência elevada com relação a seu par UDP como podemos verificar.
|
---|