Transporte de Dados
Transporte de Dados

Transporte de Dados

Papel da Camada de Transporte

Os programas da camada de aplicação geram dados que devem ser trocados entre os hosts de origem e de destino. A camada de transporte é responsável pela comunicação lógica entre aplicativos executados em hosts diferentes. Isso pode incluir serviços como o estabelecimento de uma sessão temporária entre dois hosts e a transmissão confiável de informações para um aplicativo.

Conforme mostrado na figura, a camada de transporte é o elo entre a camada de aplicação e as camadas inferiores responsáveis pela transmissão da rede.

Papel da Camada de Transporte

A camada de transporte não tem conhecimento do tipo de host de destino, o tipo de mídia pela qual os dados devem viajar, o caminho percorrido pelos dados, o congestionamento em um link ou o tamanho da rede.

A camada de transporte inclui dois protocolos:

  • Protocolo de controle de transmissão (TCP)
  • Protocolo de datagrama do usuário (UDP)

Responsabilidades da Camada de Transporte

A camada de transporte tem muitas responsabilidades.

Clique em cada botão para obter mais informações.

Acompanhamento de conversas individuais

Na camada de transporte, cada conjunto de dados fluindo entre um aplicativo de origem e um aplicativo de destino é conhecido como uma conversa e é rastreado separadamente. É responsabilidade da camada de transporte manter e rastrear essas várias conversas.

Conforme ilustrado na figura, um host pode ter vários aplicativos que se comunicam pela rede simultaneamente.

A maioria das redes tem uma limitação na quantidade de dados que podem ser incluídos em um único pacote. Portanto, os dados devem ser divididos em partes gerenciáveis.

Acompanhamento de conversas individuais

Segmentando Dados e Remontando Segmentos

É responsabilidade da camada de transporte dividir os dados do aplicativo em blocos de tamanhos apropriados. Dependendo do protocolo da camada de transporte usado, os blocos da camada de transporte são chamados de segmentos ou datagramas. A figura ilustra a camada de transporte usando blocos diferentes para cada conversa.

A camada de transporte divide os dados em blocos menores (ou seja, segmentos ou datagramas) que são mais fáceis de gerenciar e transportar.

Segmentando Dados e Remontando Segmentos

Adicionar informação de cabeçalho

O protocolo da camada de transporte também adiciona informações de cabeçalho contendo dados binários organizados em vários campos para cada bloco de dados. São os valores nesses campos que permitem que vários protocolos da camada de transporte executem diferentes funções no gerenciamento da comunicação de dados.

Por exemplo, as informações do cabeçalho são usadas pelo host receptor para remontar os blocos de dados em um fluxo de dados completo para o programa da camada de aplicativo receptor.

A camada de transporte garante que, mesmo com vários aplicativos em execução em um dispositivo, todos os aplicativos recebam os dados corretos.

Adicionar informação de cabeçalho

Identificando os Aplicativos

A camada de transporte deve ser capaz de separar e gerenciar várias comunicações com diferentes necessidades de requisitos de transporte. Para passar fluxos de dados para os aplicativos adequados, a camada de transporte identifica o aplicativo de destino usando um identificador chamado número de porta. Conforme ilustrado na figura, cada processo de software que precisa acessar a rede recebe um número de porta exclusivo para aquele host.

Identificando os Aplicativos

Multiplexação de conversas

O envio de alguns tipos de dados (por exemplo, um streaming de vídeo) através de uma rede, como um fluxo de comunicação completo, pode consumir toda a largura de banda disponível. Isso evitaria que outras conversas de comunicação ocorressem ao mesmo tempo. Isso também dificultaria a recuperação de erros e a retransmissão de dados danificados.

Conforme mostrado na figura, a camada de transporte usa segmentação e multiplexação para permitir que diferentes conversas de comunicação sejam intercaladas na mesma rede.

A verificação de erros pode ser realizada nos dados do segmento, para determinar se o segmento foi alterado durante a transmissão.

Multiplexação de conversas

Protocolos da Camada de Transporte

O IP preocupa-se apenas com a estrutura, endereçamento e roteamento de pacotes. O IP não especifica como ocorre a entrega ou transporte dos pacotes.

Os protocolos da camada de transporte especificam como transferir mensagens entre hosts e são responsáveis por gerenciar os requisitos de confiabilidade de uma conversa. A camada de transporte inclui os protocolos TCP e UDP.

Diferentes aplicações têm diferentes requisitos de confiabilidade de transporte. Portanto, o TCP / IP fornece dois protocolos da camada de transporte, conforme mostrado na figura.

Protocolos da Camada de Transporte

Protocolo de controle de transmissão (TCP)

O IP se preocupa apenas com a estrutura, endereçamento e roteamento de pacotes, do remetente original ao destino final. A IP não é responsável por garantir a entrega ou determinar se uma conexão entre o remetente e o destinatário precisa ser estabelecida.

O TCP é considerado um protocolo de camada de transporte confiável e completo, que garante que todos os dados cheguem ao destino. O TCP inclui campos que garantem a entrega dos dados do aplicativo. Esses campos requerem processamento adicional pelos hosts de envio e recebimento.

Nota: O TCP divide os dados em segmentos.

O transporte TCP é análogo ao envio de pacotes que são rastreados da origem ao destino. Se um pedido de remessa for dividido em vários pacotes, um cliente pode verificar online para ver o pedido da entrega.

O TCP fornece confiabilidade e controle de fluxo usando estas operações básicas:

  • Numere e rastreie os segmentos de dados transmitidos para um host específico a partir de um aplicativo específico
  • Confirmar dados recebidos
  • Retransmitir todos os dados não confirmados após um determinado período de tempo
  • Dados de sequência que podem chegar na ordem errada
  • Envie dados em uma taxa eficiente que seja aceitável pelo receptor

Para manter o estado de uma conversação e rastrear as informações, o TCP deve primeiro estabelecer uma conexão entre o remetente e o destinatário. É por isso que o TCP é conhecido como um protocolo orientado a conexão.

Clique em Reproduzir na figura para ver como os segmentos TCP e as confirmações são transmitidas entre o emissor e o receptor.

Segmentos TCP

Protocolo de datagrama do usuário (UDP)

UDP é um protocolo de camada de transporte mais simples que o TCP. Ele não fornece confiabilidade e controle de fluxo, o que significa que requer menos campos de cabeçalho. Como os processos UDP do emissor e do receptor não precisam gerenciar a confiabilidade e o controle de fluxo, isso significa que os datagramas UDP podem ser processados ​​mais rapidamente do que os segmentos TCP. O UDP fornece as funções básicas para entrega de datagramas entre os aplicativos apropriados, com muito pouca sobrecarga e verificação de dados.

Nota: UDP divide os dados em datagramas que também são chamados de segmentos.

UDP é um protocolo sem conexão. Como o UDP não fornece confiabilidade ou controle de fluxo, ele não requer uma conexão estabelecida. Como o UDP não rastreia as informações enviadas ou recebidas entre o cliente e o servidor, o UDP também é conhecido como protocolo sem estado.

O UDP também é conhecido como protocolo de entrega de melhor esforço porque não há confirmação de que os dados foram recebidos no destino. Com o UDP, não há processos da camada de transporte que informam o remetente de uma entrega bem-sucedida.

UDP é como colocar uma carta normal, não registrada, no correio. O remetente da carta não tem conhecimento da disponibilidade do destinatário para recebê-la. Nem os correios são responsáveis ​​por rastrear a carta ou informar ao remetente se a carta não chegar ao destino final.

Clique em Reproduzir na figura para ver uma animação dos datagramas UDP sendo transmitidos do emissor para o receptor.

Protocolo de datagrama do usuário (UDP)

O Protocolo de Camada de Transporte Certo para o Aplicativo Certo

Alguns aplicativos podem tolerar alguma perda de dados durante a transmissão pela rede, mas atrasos na transmissão são inaceitáveis. Para esses aplicativos, o UDP é a melhor escolha porque requer menos sobrecarga de rede. UDP é preferível para aplicativos como Voice over IP (VoIP). Agradecimentos e retransmissão retardariam a entrega e tornariam a conversa de voz inaceitável.

O UDP também é usado por aplicativos de solicitação e resposta em que os dados são mínimos e a retransmissão pode ser feita rapidamente. Por exemplo, o serviço de nome de domínio (DNS) usa UDP para esse tipo de transação. O cliente solicita endereços IPv4 e IPv6 para um nome de domínio conhecido de um servidor DNS. Se o cliente não receber uma resposta em um período de tempo predeterminado, ele simplesmente envia a solicitação novamente.

Por exemplo, se um ou dois segmentos de um fluxo de vídeo ao vivo não chegarem, isso criará uma interrupção momentânea no fluxo. Isso pode aparecer como distorção na imagem ou som, mas pode não ser perceptível para o usuário. Se o dispositivo de destino tivesse que levar em conta os dados perdidos, o fluxo poderia ser atrasado enquanto aguardava a retransmissão, fazendo com que a imagem ou o som fossem bastante degradados. Nesse caso, é melhor renderizar a melhor mídia possível com os segmentos recebidos e abrir mão da confiabilidade.

Para outras aplicações, é importante que todos os dados cheguem e que possam ser processados ​​na sequência adequada. Para esses tipos de aplicativos, o TCP é usado como protocolo de transporte. Por exemplo, aplicativos como bancos de dados, navegadores da web e clientes de e-mail exigem que todos os dados enviados cheguem ao destino em sua condição original. Qualquer dado ausente pode corromper uma comunicação, tornando-a incompleta ou ilegível. Por exemplo, é importante, ao acessar informações bancárias pela web, certificar-se de que todas as informações sejam enviadas e recebidas corretamente.

Os desenvolvedores de aplicativos devem escolher qual tipo de protocolo de transporte é apropriado com base nos requisitos dos aplicativos. O vídeo pode ser enviado por TCP ou UDP. Os aplicativos que transmitem áudio e vídeo armazenados geralmente usam TCP. O aplicativo usa TCP para realizar buffering, verificação de largura de banda e controle de congestionamento, a fim de controlar melhor a experiência do usuário.

O vídeo e a voz em tempo real geralmente usam UDP, mas também podem usar TCP, ou UDP e TCP. Um aplicativo de videoconferência pode usar UDP por padrão, mas como muitos firewalls bloqueiam o UDP, o aplicativo também pode ser enviado por TCP.

Os aplicativos que transmitem áudio e vídeo armazenados usam TCP. Por exemplo, se sua rede repentinamente não puder suportar a largura de banda necessária para assistir a um filme sob demanda, o aplicativo pausa a reprodução. Durante a pausa, você pode ver uma mensagem de “buffering …” enquanto o TCP trabalha para restabelecer o fluxo. Quando todos os segmentos estão em ordem e um nível mínimo de largura de banda é restaurado, sua sessão TCP é retomada e a reprodução do filme.

A figura resume as diferenças entre UDP e TCP.

Diferenças entre UDP e TCP

O seu endereço de email não será publicado. Campos obrigatórios marcados com *