Protocolos e Serviços de Transporte: TCP, UDP e RDT
Classificado em Computação
Escrito em em
português com um tamanho de 3,94 KB
Protocolos e Serviços de Transporte
Fornecem comunicação lógica entre processos de aplicação em diferentes hospedeiros.
Os protocolos de transporte são executados nos sistemas finais:
- Lado emissor: quebra mensagens da aplicação em segmentos e envia para a camada de rede.
- Lado receptor: remonta os segmentos em mensagens e passa para a camada de aplicação.
Camada de Transporte vs. Camada de Rede
- Camada de Transporte: Comunicação lógica entre os processos; depende dos serviços da camada de rede (para garantir a entrega).
- Camada de Rede: Comunicação lógica entre os hospedeiros.
Protocolos Principais
- TCP (Transmission Control Protocol): Confiável, garante ordem de entrega (inclui controle de congestionamento, controle de fluxo e é orientado a conexão).
- UDP (User Datagram Protocol): Não confiável, sem garantia de ordem de entrega (é uma extensão do melhor esforço do IP, não garante atrasos nem banda).
Multiplexação e Demultiplexação
- Multiplexação: No hospedeiro emissor, coleta dados de múltiplos *sockets*, envelopa os dados com cabeçalho.
- Demultiplexação: No hospedeiro receptor, entrega os segmentos recebidos ao *socket* correto. O hospedeiro usa endereços IP e números de porta para direcionar o segmento ao *socket* apropriado.
Identificação de Conexão
- Sem conexão (UDP): Cria *sockets* com número de portas (identificado por 2 valores: verifica o número da porta de destino e direciona o segmento UDP para o *socket* com este número).
- Orientado a conexão (TCP): Usa 4 valores (endereço IP e porta de origem/destino).
Checksum: Detecta erros no segmento transmitido.
Protocolos de Transmissão Confiável (RDT)
- RDT 1.0: Transmissão confiável usando um canal confiável (sem perda de bits e pacotes).
- RDT 2.0: Lida com canais com erros de bits (usa *ACKs* - receptor avisa que recebeu; *NAKs* - não recebeu; novos mecanismos para detecção de erros; tratamento de duplicatas).
- RDT 2.2: Protocolo sem *NAK*.
- RDT 3.0: Lida com canais com erros e perdas.
Características do TCP
Paralelismo: Vários pacotes ao mesmo tempo (aumenta o número de sequência e armazena no receptor/transmissor).
Visão Geral (Overview): Ponto a ponto, confiável, *sequencial byte stream*, *pipelined*, controle de congestionamento e de fluxo, *buffers* de transmissão e recepção, orientado a conexão.
Controle de Tempo e Retransmissão
- RTT (Round-Trip Time): Como escolher a temporização: deve ser maior que o RTT medido. Muito curto causa temporização prematura; muito longo causa reação lenta à perda de segmento.
- Estimativa de RTT: Usa *sample RTT* (tempo medido da transmissão de um segmento até sua confirmação).
- Retransmissão Rápida: Reenvia o segmento antes que o temporizador expire.
Controle de Fluxo e Congestionamento
- Controle de Fluxo: O transmissor não deve esgotar os *buffers* de recepção enviando dados rápidos demais (*speed-matching* encontra a taxa adequada equilibrando vazão e envio).
- Controle de Congestionamento:
- Recepção Multiplicativa: Diminui o *Congestion Window* (*congwin*) pela metade após um evento de perda.
- Aumento Aditivo: Aumenta o *congwin* em 1 MSS a cada RTT.
- Partida Lenta (*Slow Start*): Cresce exponencialmente até o primeiro evento de perda.