PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
Parte3a
1. 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
2. Ementa
Introdução a Redes de Computadores
A Camada Aplicação
A Camada Transporte
A Camada Rede
A Camada Enlace
A Camada Física
3. 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
6. 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
7. 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
10. 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
11. 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
12. 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
14. Multiplexação/demultiplexação no UDP (fonte: Kurose)
DatagramSocket serverSocket = new DatagramSocket(6428);
P2 P1
P1
P3
SP: 6428 SP: 6428
DP: 9157 DP: 5775
SP: 9157 SP: 5775
cliente DP: 6428 DP: 6428 cliente
servidor
IP: A IP:B
IP: C
SP fornece o “endereço de retorno”
15. UDP - detecção de erros
Usada pois nem sempre a camada de enlace
utiliza verificação de erros
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
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
16. UDP - detecção de erros
Ver exemplo do Kurose na pag. 156
Datagrama com erro pode ser
Descartado
Passado para a aplicação (junto com um aviso)
17. UDP - formato do datagrama
Formato do datagrama UDP (adaptado de Tanenbaum)
Data
18. UDP - formato do datagrama
Porta de origem (16 bits)
Porta de destino (16 bits)
Comprimento (16 bits)
19. UDP - formato do datagrama
Soma de verificação (16 bits)
Feita no datagrama UDP junto com um pseudo
cabeçalho
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
Campo protocolo (valor 17)
Comprimento UDP
20. 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)
21. UDP - formato do datagrama
Dados
No fim do datagrama podem ter enchimento usado no
cálculo da soma de verificação