Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro
Ementa Introdução a Redes de Computadores A Camada Aplicação A Camada Transporte A Camada Rede A Camada Enlace A Camada Física
Camada transporte Protocolos de transporte Fornecem comunicação entre processos de aplicação que rodam em hospedeiros diferentes Implementados nos sistemas finais Protocolos de rede Fornecem comunicação entre hospedeiros diferentes
Camada transporte Diversos protocolos UDP RTP/RTCP TCP
Camada transporte PDUs possuem diferentes nomes Segmento (TCP e geral) Datagrama (UDP) TPDU (geral) Pacote (geral)
Camada transporte Serviços Multiplexação/demultiplexação Transferência de dados (confiável ou não) Controle de fluxo Controle de congestionamento Serviços serão apresentados intercalados com protocolos que usam esses serviços
Multiplexação/demultiplexação Utilizam o conceito de portas (sockets) Multiplexação Reunir porções de dados de diferentes portas, criar segmentos e passar para a camada rede Demultiplexação Entregar os dados de um segmento à porta correta
Multiplexação/demultiplexação Exemplo de multiplexação/demultiplexação (fonte: Kurose)
Multiplexação/demultiplexação Formato geral de um segmento de transporte (fonte: Kurose)
UDP Protocolo de datagrama do usuário (User Datagram Protocol) Definido na RFC 768 Serviços Transferência de dados não confiável Multiplexação/demultiplexação Detecção de erros Não orientado a conexão Sem controle de congestionamento Sem controle de fluxo Não tem segmentação
UDP Principais características Melhor controle no nível da aplicação sobre quais dados são enviados e quando Não possui controle de congestionamento Não há estabelecimento de conexão Não introduz atraso dessa fase Não há estados de conexão Pode ter um número maior de clientes ativos Pequena sobrecarga de cabeçalho de pacote
UDP - transferência não confiável Transferência confiável pode ser implementada na camada aplicação Ex.: Uso de mecanismos de reconhecimento e retransmissão Dessa forma a aplicação não fica sujeita a um controle de congestionamento do transporte Bom para aplicações multimídias
UDP - multiplexação/demultiplexação Socket UDP é identificado por somente Endereço IP de destino Número de porta de destino
Multiplexação/demultiplexação no UDP (fonte: Kurose) DatagramSocket serversocket = new DatagramSocket(6428); P2 P3 P1P1 SP: 6428 DP: 9157 SP: 6428 DP: 5775 SP: 9157 SP: 5775 cliente IP: A DP: 6428 servidor IP: C DP: 6428 cliente IP:B SP fornece o endereço de retorno
UDP - detecção de erros Usada pois Nem sempre a camada de enlace utiliza verificação de erros Pode haver erros binários quando um datagrama é armazenado na memória de um roteador Realiza a detecção através de uma soma de verificação (checksum) de 16 bits Na fonte Complemento a 1 da soma (em complemento a 1) de todas as palavras de 16 bits Soma em complemento a 1 leva em conta o vai um do bit mais significativo
UDP - detecção de erros No destino Complemento a 1 da soma (em complemento a 1) de todas as palavras de 16 bits (inclui a soma de verificação) Se um ou mais bits do resultado forem 1 erro Ver exemplo do Kurose na pag. 153 Em função da implementação, datagrama com erro pode ser Descartado Passado para a aplicação (junto com um aviso)
UDP - formato do datagrama Formato do datagrama UDP (adaptado de Tanenbaum) Data
UDP - formato do datagrama Porta de origem (16 bits) Porta de destino (16 bits) Comprimento (16 bits) Datagrama completo Tamanho máximo é função do tamanho máximo do IP (65535 octetos)
UDP - formato do datagrama Soma de verificação (16 bits) Feita no datagrama UDP junto com um pseudo cabeçalho (não transmitido) Para fazer uma verificação adicional e uma confirmação de que o datagrama chegou ao destino correto Pseudo cabeçalho (12 octetos) contém Endereços IP da fonte e do destino Enchimento Usado no cálculo da soma de verificação Campo protocolo (valor 17) Comprimento UDP
UDP - formato do datagrama Soma de verificação (cont.) Opcional Se os bits são iguais a 0 não é usada (para diminuir a sobrecarga) Se o cálculo de uma soma de verificação resulta em 16 bits iguais a 0, estes são trocados para 16 bits iguais a 1 (o número 0 possui duas representações em complemento a 1)
RTP Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços Identificação do tipo de carga útil (mídia) Números de sequência Estampa de tempo
RTP Não possui Controle de fluxo Controle de erros Confirmação Mecanismo de solicitação de retransmissões
RTP Posição do RTP na pilha de protocolos (fonte: Tanenbaum)
RTP - formato do cabeçalho Formato do cabeçalho RTP (fonte: Tanenbaum)
RTP - principais campos Tipo de carga útil (payload type) (7 bits) Indica o algoritmo de codificação usado Número de sequência (16 bits) UDP não possui Usado para detectar pacotes perdidos Aplicação pode usar interpolação Estampa de tempo (32 bits) Indica o instante da amostragem do primeiro octeto no pacote
RTP - principais campos Identificador de sincronização da fonte (32 bits) Informa a que fluxo o pacote pertence Usado para multiplexar e demultiplexar vários fluxos de dados em um único fluxo de datagramas UDP
RTCP Protocolo de controle de transporte em temporeal (Real-Time Transport Control Protocol) Também definido na RFC 3350 Pacotes RTCP enviados em multicast contém relatórios de remetente e/ou receptor com dados estatísticos Remetente pode mudar a taxa de transmissão Destinatário pode sincronizar diferentes fluxos de mídias em uma sessão RTP
RTCP Possui um problema potencial de escalabilidade Exemplo Sessão RTP com um remetente e vários receptores em multicast Total de tráfego RTP não muda se o número de receptores aumenta Total de tráfego RTCP aumenta linearmente com o número de receptores Por causa dos relatórios periódicos dos receptores Solução cada participante reduz o tráfego RTCP à medida que o número de participantes da conferência aumenta