Você está na página 1de 3

Capítulo 3 - Camada de transporte

Introdução à camada de transporte; Multiplexação e Demultiplexação; protocolo UDP.


Princípios da Transferência Confiável de Dados; Protocolo Orientado à Conexão - TCP
(Transmission Control Protocol)

Introdução à camada de transporte: a camada de transporte é a primeira das camadas que


faz uma comunicação fim-a-fim, isto é, que exerce uma conexão lógica entre os processos
finais. Por exemplo, se eu quero que um browser se comunique com um servidor para ter
acesso a um site, a camada de transporte gerencia a comunicação entre os processos
desses dois(mandando para cada um dos dois itens os endereços das portas onde
determinados processos estão rodando). Nessa camada, os pacotes são chamados de
segmentos, enquanto na camada de aplicação os pacotes são chamados de segmentos.
Vários protocolos podem ser utilizados na camada de transporte, mas os principais deles
são o UDP e o TCP. Especificamente na rede internet, os protocolos utilizados são o TCP e
o UDP.
A camada de transporte vai nos garantir serviços de confiabilidade(garantia de que o pacote
vai chegar no destinatário), detecção de erros(detecta erros e os encaminha aos emissor
para que ele possa, quem sabe, até reenviar o segmentos) e agregar datagramas para
formar segmentos(encapsulamento dos dados+cabeçalho que vêm da camada de
aplicação).
Obs.: O TCP garante confiabilidade e é orientado à conexão, enquanto o UDP não tem
conexão e não necessariamente garante confiabilidade.

Multiplexação e Demultiplexação: a ampliação(detalhamento) da entrega hospedeiro a


hospedeiro para a entrega processo a processo está relacionado a multiplexação(sentido
aplicação para rede) e à demultiplexação(sentido rede para aplicação). A multiplexação e a
demultiplexação são técnicas que permitem que vários fluxos de dados possam ser
transmitidos por um único canal de comunicação, como por exemplo, uma conexão TCP.
Multiplexação: procedimento em que há a combinação de vários fluxos de dados em um
único canal de comunicação, onde também há o encapsulamento do payload com o
cabeçalho para criar os segmentos. A partir daí, os segmentos são transferidos para a
camada de rede. Esse é um mecanismo vários-para-um(várias portas para um único canal),
no qual os sockets são utilizados para permitir que vários fluxos de dados possam ser
transmitidos através de um único canal de comunicação, além de que permitem que vários
processos possam se comunicar através de um único canal. Acontece no sentido da
aplicação para a rede.
Demultiplexação: é o processo inverso da multiplexação, ou seja, é o processo de separar
os diferentes fluxos de dados que foram combinados em um único canal de comunicação.
Isso é feito através da leitura do identificador único associado a cada fluxo de dados,
geralmente um número de porta, e direcionando os dados para o processo correto.
Novamente, os sockets são utilizados para implementar essa técnica, permitindo que os
dados recebidos sejam direcionados para o processo correto com base no identificador
único associado a cada fluxo de dados. Esse mecanismo é um-para-vários(de um único
canal para uma única porta) e acontece no sentido da rede para aplicação.

Em ambos os processos, será necessário verificar no segmento qual é o número de porta


de origem e qual é o número de porta de destino. Essa informação precisa ser passada
para o receptor para que ele possa devolver a mensagem que recebeu - ou não,
determinado segmento. Cada porta vai corresponder a um número de processo.

Princípios da transferência confiável de dados:


Existem níveis de confiabilidade e forma de prover essa confiabilidade para os protocolos
da camada de transporte. Pode acontecer do canal de comunicação ser confiável ou de não
ser confiável.
As funções RDT (Reliable Data Transfer) e UDT (Unreliable Data Transfer) são utilizadas na
camada de transporte para implementar a transferência confiável e não confiável de dados,
respectivamente.

Função UDT:
A função UDT é utilizada para transmitir dados de forma não confiável, sem a garantia de
entrega confiável ou livre de erros. A implementação da UDT é geralmente mais simples do
que a RDT, e é utilizada em situações onde a entrega confiável dos dados não é crítica ou
onde a sobrecarga associada à implementação da RDT seria muito alta. Exemplos de
protocolos que utilizam a UDT são o UDP (User Datagram Protocol) e o SCTP (Stream
Control Transmission Protocol), que é um protocolo de transporte orientado à conexão e
que pode ser configurado para transmitir dados de forma confiável ou não confiável.

Função RDT:
A função RDT é utilizada para garantir que os dados sejam transmitidos de forma confiável
e livre de erros, mesmo em condições adversas de rede, como perda de pacotes,
duplicação de pacotes e reordenação de pacotes. A implementação da RDT envolve a
utilização de técnicas como retransmissão de pacotes perdidos, controle de fluxo e controle
de congestionamento para garantir a entrega confiável dos dados. A RDT é geralmente
implementada em protocolos como TCP (Transmission Control Protocol).
Neste caso, serão utilizados pacotes de confirmação de corrompimento ou de não
corrompimento das informações, sendo estes os ACKs e os NACKs, respectivamente. Além
disso, alguns RDTs também funcionam baseados em temporizadores, em que, caso passe
um dado tempo e a confirmação do pacote não seja recebida(pacote perdido ou ACK
perdido), ele envia novamente o pacote.

TCP: protocolo orientado à conexão(antes de enviar, solicita conexão ao destinatário).

UDP: protocolo não orientado à conexão.

Controle de fluxo TCP: se refere ao controle do fluxo com relação ao buffer do destinatário,
o buffer está cheio, então ele manda um sinal vermelho. O TCP mantém uma variável
denominada janela de recepção, a qual vai se alargando de acordo com a velocidade em
que os itens são consumidos pelo receptor.

Controle de congetsionamneto TCP:


Controle de congestionamento no TCP:
Fase de Partida Lenta (Slow Start): nesta fase, o transmissor começa com uma janela de
congestionamento pequena e a aumenta exponencialmente para aproveitar a largura de
banda disponível. A fase de partida lenta termina quando a janela de congestionamento
atinge um determinado limite, determinado pelo valor do ssthresh.
Fase de Prevenção de Congestionamento (Congestion Avoidance): nesta fase, o
transmissor continua aumentando a janela de congestionamento de forma linear, mas de
maneira mais conservadora do que na fase de partida lenta, para evitar congestionamentos
na rede. Quando ocorre um timeout ou três ACKs duplicados, o transmissor volta à fase de
partida lenta.

Recuperação Rápida (Fast Recovery): nesta fase, o transmissor reduz a janela de


congestionamento pela metade (ssthresh) e entra na fase de prevenção de
congestionamento. Quando um pacote perdido é retransmitido com sucesso, a janela de
congestionamento é aumentada para o valor anterior ao da redução. Se ocorrerem mais
três ACKs duplicados, o transmissor volta para a recuperação rápida.

Regenerate response

Você também pode gostar