Camada de transporte - Transport layer

Quatro blocos empilhados etiquetados.  O bloco azul com a etiqueta "transporte" é o segundo a partir do topo.
A camada de transporte na pilha de protocolos da Internet.

Em redes de computadores , a camada de transporte é uma divisão conceitual de métodos na arquitetura em camadas de protocolos na pilha de rede no conjunto de protocolos da Internet e no modelo OSI . Os protocolos dessa camada fornecem serviços de comunicação host a host para aplicativos. Ele fornece serviços como comunicação orientada a conexão , confiabilidade , controle de fluxo e multiplexação .

Os detalhes de implementação e semântica da camada de transporte do conjunto de protocolos da Internet , que é a base da Internet , e o modelo OSI de rede geral são diferentes. Todos os protocolos em uso hoje nesta camada para a Internet se originaram no desenvolvimento do TCP / IP. No modelo OSI, a camada de transporte é freqüentemente referida como Camada 4 ou L4 , enquanto as camadas numeradas não são usadas no TCP / IP.

O protocolo de transporte mais conhecido do conjunto de protocolos da Internet é o Transmission Control Protocol (TCP). Ele é usado para transmissões orientadas por conexão, enquanto o User Datagram Protocol (UDP) sem conexão é usado para transmissões de mensagens mais simples. O TCP é o protocolo mais complexo, devido ao seu design stateful que incorpora transmissão confiável e serviços de fluxo de dados. Juntos, TCP e UDP abrangem essencialmente todo o tráfego na Internet e são os únicos protocolos implementados em todos os principais sistemas operacionais. Os protocolos de camada de transporte adicionais que foram definidos e implementados incluem o Datagram Congestion Control Protocol (DCCP) e o Stream Control Transmission Protocol (SCTP).

Serviços

Os serviços da camada de transporte são transmitidos a um aplicativo por meio de uma interface de programação para os protocolos da camada de transporte. Os serviços podem incluir os seguintes recursos:

  • Comunicação orientada a conexão : normalmente é mais fácil para um aplicativo interpretar uma conexão como um fluxo de dados em vez de ter que lidar com os modelos subjacentes sem conexão, como o modelo de datagrama do User Datagram Protocol (UDP) e da Internet Protocolo (IP).
  • Entrega na mesma ordem: a camada de rede geralmente não garante que os pacotes de dados cheguem na mesma ordem em que foram enviados, mas geralmente esse é um recurso desejável. Isso geralmente é feito por meio do uso de numeração de segmento, com o receptor passando-os para o aplicativo em ordem. Isso pode causar bloqueio frontal .
  • Confiabilidade : os pacotes podem ser perdidos durante o transporte devido ao congestionamento da rede e erros. Por meio de um código de detecção de erro , como uma soma de verificação , o protocolo de transporte pode verificar se os dados não estão corrompidos e verificar o recebimento correto enviando uma mensagem ACK ou NACK ao remetente. Os esquemas de solicitação de repetição automática podem ser usados ​​para retransmitir dados perdidos ou corrompidos.
  • Controle de fluxo : a taxa de transmissão de dados entre dois nós deve, às vezes, ser gerenciada para evitar que um remetente rápido transmita mais dados do que o buffer de recepção de dados suporta , causando uma saturação do buffer. Isso também pode ser usado para melhorar a eficiência, reduzindo a insuficiência de buffer .
  • Prevenção de congestionamento : o controle de congestionamento pode controlar a entrada do tráfego em uma rede de telecomunicações, de modo a evitar o colapso congestivo , tentando evitar a superinscrição de qualquer um dos recursos de processamento ou link dos nós e redes intermediários e tomando medidas de redução de recursos, como reduzir a taxa de envio de pacotes . Por exemplo, solicitações de repetição automática podem manter a rede em um estado congestionado; esta situação pode ser evitada adicionando prevenção de congestionamento ao controle de fluxo, incluindo partida lenta . Isso mantém o consumo de largura de banda em um nível baixo no início da transmissão ou após a retransmissão do pacote.
  • Multiplexação : as portas podem fornecer vários pontos de extremidade em um único nó. Por exemplo, o nome em um endereço postal é uma espécie de multiplexação e distingue entre diferentes destinatários do mesmo local. Cada aplicativo de computador ouvirá informações em suas próprias portas, o que permite o uso de mais de um serviço de rede ao mesmo tempo. Faz parte da camada de transporte no modelo TCP / IP , mas da camada de sessão no modelo OSI.

Análise

A camada de transporte é responsável por entregar dados ao processo de aplicativo apropriado nos computadores host. Isso envolve a multiplexação estatística de dados de diferentes processos de aplicação, ou seja, a formação de segmentos de dados e a adição de números de porta de origem e destino no cabeçalho de cada segmento de dados da camada de transporte. Junto com o endereço IP de origem e destino, os números das portas constituem um soquete de rede , ou seja, um endereço de identificação da comunicação processo a processo. No modelo OSI, esta função é suportada pela camada de sessão .

Alguns protocolos da camada de transporte, por exemplo TCP, mas não UDP, oferecem suporte a circuitos virtuais , ou seja, fornecem comunicação orientada à conexão por meio de uma rede de datagramas orientada a pacotes subjacente . Um fluxo de bytes é entregue enquanto oculta a comunicação do modo de pacote para os processos do aplicativo. Isso envolve o estabelecimento da conexão, a divisão do fluxo de dados em pacotes chamados de segmentos, a numeração do segmento e o reordenamento dos dados fora de ordem.

Finalmente, alguns protocolos da camada de transporte, por exemplo TCP, mas não UDP, fornecem comunicação confiável de ponta a ponta, ou seja, recuperação de erro por meio de código de detecção de erro e protocolo de solicitação de repetição automática (ARQ). O protocolo ARQ também fornece controle de fluxo , que pode ser combinado com prevenção de congestionamento .

O UDP é um protocolo muito simples, e não fornece circuitos virtuais, nem comunicação confiável, delegando essas funções ao programa aplicativo . Os pacotes UDP são chamados de datagramas , em vez de segmentos.

O TCP é usado para muitos protocolos, incluindo navegação na web HTTP e transferência de e-mail. UDP pode ser usado para multicast e broadcast , uma vez que as retransmissões não são possíveis para uma grande quantidade de hosts. O UDP normalmente oferece maior rendimento e menor latência e, portanto, é frequentemente usado para comunicação multimídia em tempo real, onde a perda de pacotes pode ser aceita ocasionalmente, por exemplo IP-TV e IP-telefonia, e para jogos de computador online.

Muitas redes não baseadas em IP, como X.25 , Frame Relay e ATM , implementam a comunicação orientada à conexão na rede ou na camada de enlace de dados em vez da camada de transporte. No X.25, em modems de rede telefônica e em sistemas de comunicação sem fio, a comunicação nó a nó confiável é implementada em camadas de protocolo inferiores.

A especificação do protocolo da camada de transporte do modo de conexão OSI define cinco classes de protocolos de transporte: TP0 , fornecendo a menor recuperação de erro, para TP4 , que é projetado para redes menos confiáveis.

Protocolos

Esta lista mostra alguns protocolos que são comumente colocados nas camadas de transporte do conjunto de protocolos Internet , o conjunto de protocolos OSI , NetWare 's IPX / SPX , AppleTalk , e Fibre Channel .

Comparação de protocolos da camada de transporte

Característica UDP UDP-Lite TCP Multipath TCP SCTP DCCP RUDP
Tamanho do cabeçalho do pacote 8 bytes 8 bytes 20-60 bytes 50-90 bytes 12 bytes 12 ou 16 bytes 14+ bytes
Sobrecarga típica de pacote de dados 8 bytes 8 bytes 20 bytes ?? bytes 44-48 + bytes 12 ou 16 bytes 14 bytes
Entidade de pacote de camada de transporte Datagrama Datagrama Segmento Segmento Datagrama Datagrama Datagrama
Conexão orientada Não Não sim sim sim sim sim
Transporte confiável Não Não sim sim sim Não sim
Transporte não confiável sim sim Não Não sim sim sim
Preservar o limite da mensagem sim sim Não Não sim sim sim
Entrega Não ordenado Não ordenado Ordenado Ordenado Ordenado / Não ordenado Não ordenado Não ordenado
Soma de verificação de dados Opcional sim sim sim sim sim Opcional
Tamanho do checksum 16 bits 16 bits 16 bits 16 bits 32 bits 16 bits 16 bits
Checksum parcial Não sim Não Não Não sim Não
Path MTU Não Não sim sim sim sim ?
Controle de fluxo Não Não sim sim sim Não sim
Controle de congestão Não Não sim sim sim sim ?
Notificação explícita de congestionamento Não Não sim sim sim sim ?
Múltiplos streams Não Não Não Não sim Não Não
Multi-homing Não Não Não sim sim Não Não
Pacote / Nagle Não Não sim sim sim Não ?

Comparação de protocolos de transporte OSI

ISO / IEC 8073 / ITU-T Recomendação X.224, "Tecnologia da Informação - Interconexão de Sistemas Abertos - Protocolo para fornecer o serviço de transporte em modo de conexão", define cinco classes de protocolos de transporte em modo de conexão designados de classe 0 (TP0) a classe 4 (TP4). A classe 0 não contém recuperação de erros e foi projetada para uso em camadas de rede que fornecem conexões sem erros. A classe 4 é a mais próxima do TCP, embora o TCP contenha funções, como o fechamento normal, que o OSI atribui à camada de sessão. Todas as classes de protocolo de modo de conexão OSI fornecem dados acelerados e preservação de limites de registro. As características detalhadas das classes são mostradas na tabela a seguir:

Serviço TP0 TP1 TP2 TP3 TP4
Rede orientada para conexão sim sim sim sim sim
Rede sem conexão Não Não Não Não sim
Concatenação e separação Não sim sim sim sim
Segmentação e remontagem sim sim sim sim sim
Recuperação de erro Não sim Não sim sim
Reinicie a conexão (se um número excessivo de PDUs não for confirmado) Não sim Não sim Não
Multiplexação e demultiplexação em um único circuito virtual Não Não sim sim sim
Controle de fluxo explícito Não Não sim sim sim
Retransmissão no tempo limite Não Não Não Não sim
Serviço de transporte confiável Não sim Não sim sim

Há também um protocolo de transporte sem conexão, especificado pela ISO / IEC 8602 / ITU-T Recomendação X.234.

Referências