Camada de transporte-Resumo TCP (Transmission Control Protocol)
Por: Sara • 28/5/2018 • 2.173 Palavras (9 Páginas) • 479 Visualizações
...
Muitas aplicações se adaptam melhor ao UDP por essas razões:
-
- Assim que um processo de aplicação passa dados ao UDP, o protocolo empacota esses dados em um segmento UDP e os passa imediatamente à camada de rede. O TCP tem um mecanismo de controle de congestionamento que limita o remetente TCP se um ou mais enlaces da camada de transporte entre o remente e o destinatário ficam congestionados. O TCP também reenvia um segmento até que o destinatário reconheça a recepção do mesmo, independentemente do tempo que essa entrega vai levar. Aplicações em tempo real requerem uma taxa mínima de envio, podem tolerar uma certa perda de dados e não querem atrasar demais a transmissão dos dados, portanto o TCP não é uma boa opção para essas aplicações;
-
- O UDP simplesmente envia mensagens sem nenhuma preliminar formal, diferente do TCP e sua apresentação de três vias, dessa forma o UDP não introduz nenhum atraso para estabelecer uma conexão;
-
- O UDP não mantém o estado da conexão, portanto um servidor devotado a uma aplicação específica pode suportar um número muito maior de clientes ativos quando a aplicação roda sobre UDP do que o TCP;
-
- O segmento TCP tem 20 bytes de sobrecarga de cabeçalho além dos dados, enquanto o UDP tem 8 bytes de sobrecarga.
Um segmento UDP contém um cabeçalho e um campo de dados, o cabeçalho tem apenas quatro campos, cada um com 2 bytes. Os números de porta permitem que o destinatário passe os dados da aplicação ao processo correto (demultiplexação). A soma de verificação é usada verificação de erros no segmento.
Multiplexação e Demultiplexação
No hospedeiro de destino, a camada de transporte recebe segmentos da camada de rede e entrega os dados desses segmentos para o processo de aplicação apropriado que está rodando no hospedeiro.
Considerando um hospedeiro destinatário que direciona à porta correta um segmento de camada de transporte que chega. Cada segmento de transporte tem campos que servem para essa finalidade. A tarefa de entregar os dados contidos em um segmento da camada de transporte à porta correta é denominada demultiplexação.
Já a tarefa de multiplexação é o trabalho de reunir no hospedeiro de origem, porções de dados de diferentes portas, encapsular cada porção de dados com informações de cabeçalho para criar segmentos e passar esses segmentos para a camada de rede.
A demultiplexação pode ser ilustrada através de um serviço de correio, onde o carteiro tem várias cartas e examina seus endereços para entrega-las aos destinatários corretos.
Multiplexação e Demultiplexação não orientadas para conexão
Suponha que um processo no hospedeiro A queira enviar uma porção de dados de aplicação a um processo no hospedeiro B. A camada de transporte no hospedeiro A cria um segmento de camada de transporte que inclui os dados da aplicação, o número da porta da fonte e o número da porta de destino, e então passa esse segmento para a camada de rede (multiplexação). Se o segmento chegar à máquina de destino B, a camada de transporte no hospedeiro destinatário examinará o número da porta de destino no segmento e o entregará a seu socket identificado pelo número (demultiplexação).
Multiplexação e Demultiplexação orientadas para conexão
Um socket TCP é identificado com 4 elementos: endereço IP da fonte, número da porta da fonte, endereço IP de destino e número da porta de destino. Dessa forma, quando um segmento TCP vem da rede e chega a um hospedeiro, este usa todos os 4 campos para demultiplexar o segmento para o socket apropriado. E ao contrário do UDP, dois segmentos TCP com endereços IP de fonte ou números de porta de fonte diferentes serão direcionados para sockets diferentes.
Go-Back-N
O Go-Back-N é um protocolo que realiza recuperação de erros em conexões confiáveis com paralelismo que pode enviar pacotes sem ter que esperar por reconhecimento.
O funcionamento do Go-Back-N se dá da seguinte forma:
-
- Determina-se um tamanho de janela N, que representa o número máximo de pacotes que o Go-Back-N enviou, mas ainda não teve reconhecimento. À medida que o protocolo opera, essa janela é deslocada para frente para enviar mais pacotes;
-
- O protocolo possui um único temporizador que é associado ao pacote que foi enviado mais cedo naquela janela, mas que ainda não foi reconhecido pelo destinatário, quando este pacote é reconhecido o temporizador é reiniciado e associado ao próximo pacote (considerando a antiguidade);
-
- Se em um pacote A não for reconhecido ou encontrado algum erro, o protocolo reenvia A e todos os outros pacotes referenciados na janela que vem depois deste que haviam sido enviados;
-
- A janela vai se deslocando conforme os primeiros pacotes vão sendo reconhecidos.
Esse protocolo resolve o problema do protocolo pare e espere, onde se aguarda confirmação do recebimento do pacote para se enviar o próximo, gerando muita lentidão por reduzir a vazão dos dados, mas tende a enviar uma quantidade muito grande de pacotes devido à falta de reconhecimento, como exemplo, basta considerar uma janela de 100 pacotes, onde quando se envia o 50º pacote, o temporizador se encerra se que o 1º pacote tenha sido reconhecido, então esses 50 pacotes são reenviados, independente de ter ou não sido reconhecidos.
Por um lado isso facilita o trabalho do destinatário, já que não é necessário armazenar pacotes em buffer antes de passa-los para a camada superior, uma vez que os pacotes virão ordenados, mas por outro lado pode gerar problemas de desempenho devido ao envio de uma grande quantidade de pacotes, esse problema se agrava quanto maior for a janela.
Repetição Seletiva
Repetição Seletiva é um protocolo que assim como o Go-Back-N realiza recuperação de erros em conexões confiáveis com paralelismo, mas diferente dele, a Repetição Seletiva evita retransmissões desnecessárias reenviando somente os pacotes suspeitos de terem sido recebidos pelo destinatário com erro (perdidos ou corrompidos).
...