Redes de
Computadores
Protocolos Peer-to-Peer
Protocolos ARQ
Aula 8
Protocolos Peer-to-Peer
• Os processos Peer-to-Peer executam um protocolo da camada n para fornecer serviços à camada (n+1)
• O peer (n+1) chama o peer n e lhe transfere Service Data
Units (SDUs) a serem transmitidas
• Os peers da camada n trocam Protocol Data Units (PDUs) para executar a transmissão • A camada n entrega os SDUs
Modelos de Serviço
• O modelo de serviço especifica o serviço de
transferência de informação que a camada n
oferece à camada (n+1)
• O serviço pode ser orientado a conexão ou
sem conexão
• O modelo de serviço permite:
– Escolhas no tamanho e estrutura da mensagem
– Sequenciamento e confiança
– Temporização e controle de fluxo
– Multiplexação
Confiabilidade e sequenciamento
• Confiabilidade: quando ?
– Sequenciamento: mensagens ou streams
entregues em ordem?
– duplicidade
• Como fornecer comunicação confiável ?
– TCP e HDLC
• Os protocolos ARQ combinan a deteção de
erros, retransmissão e sequenciamento para
fornecer confiabilidade e ordenamento
Controle de Fluxo
• Para que serve ?
– Se a camada destino (n+1) não recupera a
informação suficientemente rápido, as camadas
de destino n podem ter overflow
• O controle de fluxo é um conjunto de
mecanismos de regulação que controlam a
transferência de acordo a disponibilidade de
buffers no destino
Temporização
• Nas aplicações multimídia:
– As aplicações que envolvem voz e vídeo geram unidades de informação que são relacionadas no tempo
– A rede introduz atraso e jitter
– A aplicação de destino deve reconstruir a relação temporal entre as unidades de voz e vídeo
• Como se faz a reconstrução ?
– Protocolos de recuperação de temporização usam timestamps e numeração de sequencia para regular as diferenças
Privacidade, Autenticação e
Integridade
• Privacidade: garantir que a informação
transferida não pode ser lida por outros
• Integridade: garantir que a informação não é
alterada enquanto transferida
• Autenticação : verificar que emissor e
receptor são os que dizem ser
• Os protocolos de segurança garantem estes
serviços. Ex: IPSec, SSL
Fim a Fim ou Salto a Salto
• Um tipo de serviço se implementa a partir de
um protocolo
– Fim a fim, através da rede
– Através de cada salto na rede
• Exemplos:
– Verificar erros em cada salto da rede ou somente
entre emissor e receptor ?
– Executar controle de fluxo em cada salto da rede
ou somente entre emissor e receptor ?
Controle de Erro na Camada
de Enlace
3 2 1 1 2 1 2 3 2 1 2 1 Meio 1 2 Entidade da Camada Física Entidade da Camada de Enlace 3 Entidade da Camada de Rede Física Enlace Física Enlace A B A B Pacotes Pacotes Quadros (a) (b) • O enlace de dados funciona como um fio, conectando diretamente os sistemas • Os quadros podem ser corrompidos ou perdidos, mas chegam em ordem • o enlace de dados executa verificação de erro e retransmissãoControle de Erro na Camada
de Transporte
Física Enlace Física Enlace Sistema Final α Rede Rede Física Enlace Rede Física Enlace Rede Transporte Transporte Mensagens Mensagens Segmentos Sistema Final Β Rede• Protocolo de Transporte (TCP) envia segmentos atraves da rede e executa checagem fim a fim e retransmissão • Se assume que a rede não é confiável
Quando utilizar cada enfoque ?
1 2 3 4 5
Data Data Data
ACK/NAK
Data
1 2 3 4 5
Data Data Data Data
ACK/ NAK ACK/ NAK ACK/ NAK ACK/ NAK
Fim a Fim (Ex. TCP)
Elementos Básicos do ARQ
Sequencia de Pacotes
Sequencia de Pacotes sem erro
Quadros de Informação Quadros De Controle Transmissor Receptor CRC Pacote de Informação Cabeçalho Estação A Estação B Quadro de Informação Quadro de Controle CRC Cabeçalho
Objetivo: garantir que uma sequencia de pacotes de informação seja entregue em ordem e sem erros ou duplicações, ainda na
ARQ – Alguns termos
• Janela Deslizante ( Sliding window) : um
conjunto de sequencias que correspondem a
quadros que podem ser enviados ou
transmistidos
• Serão estudados : Stop-and-Wait ARQ,
Go-Back N ARQ, Selective Repeat ARQ
• Elementos básicos:
• Código de deteção de erro
• ACKs (confirmações positivas)
• NACKs (confirmações negativas)
• Temporizadores
A necessidade dos números
de sequencia
(a) Perda do quadro 1
A B quadro 0 quadro 1 ACK quadro 1 ACK tempo Time-out quadro 2 (b) ACK perdido A B quadro 0 quadro 1 ACK quadro 1 ACK tempo Time-out quadro 2 ACK
Nas partes (a) e (b) o emissor A funciona igual, mas na parte (b) o receptor (B) aceita o quadro 1 duas vezes
Como pode o receptor saber que o segundo quadro também é o quadro 1?
Ao adicionar número de sequencia de quadro no cabeçalho
Sem ACKs numerados
• Como pode o receptor saber que o segundo ACK é do quadro 0? Usando número de sequencia no cabeçalho do ACK
• Rnext é o número de sequencia do próximo quadro
esperado pelo receptor
• Quantos bits são necessários para o número de sequencia ? A B quadro 0 quadro 0 ACK quadro 1 ACK tempo time-out quadro 2
A estação transmissora A interpreta de forma errada os ACKs duplicados e assume que o segundo ACK confirma o quadro 1
Informação de Estados para o
STOP and WAIT ARQ
Emissor Receptor Slast Rnext 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (0,0) (0,1) (1,0) (1,1) Temporizador Estado Global: (Slast, Rnext)
Quadro 0 sem erros chega ao receptor ACK para o quadro 0 chega ao emissor ACK para o quadro 1 chega ao
emissor Quadro 1 sem erros chega ao receptor
Estação A Rnext Estação B
STOP and WAIT ARQ
Emissor
Estado Pronto
1. Esperar pedido da camada superior para transmitir pacote
2. Quando chega o pedido, transmitir quadro como o Slast atualizado e o CRC
3. Ir para o Estado de Espera
Estado de Espera
1. Esperar pelo ACK ou timeout expirar; bloquear pedidos das camadas
superiores
2. Se o timeout expira
1. Retransmitir o quadro e inicializar timer
3. Se é recebido um ACK
Se o número de sequencia é
incorreto ou com erros: ignorar ACK Se o número de sequencia é correto então Rnext=(Slast+1) mod 2 , aceitar quadro e ir ao Estado Pronto
Receptor
Sempre no Estado Pronto
1. Esperar pela chegada de um novo quadro 2. Quando o quadro chega, checar erros
3. Se não são detectados erros e o número de sequencia está correto (Slast=Rnext), então
- Aceitar o quadro
- Atualiar Rnext=(Rnext+1) mod 2 - Enviar quadro ACK com Rnext - Entregar o pacote à camada
superior
4. Se não são detectados erros e o número de sequencia está incorreto então descartar o quadro e enviar quadro ACK com Rnext 5. Se são detectados erros, descartar o quadro
Componentes do Atraso no
STOP and WAIT ARQ
Tempo
tf do quadro
A
B
tprop tproc tack tprop
tproc
t0 = tempo total para transmitir um quadro
t0= 2tprop+ 2tpro+ tf + tack tack= na / R e tf= nf / R
t0 é o tempo básico para enviar um quadro e receber um ACK, na ausência de erros
Eficiência na Transmissão
• O protocolo é ineficiênte quando o tempo para receber um ACK é grande em comparação ao tempo de
transmissão do quadro. Primeiro bit do quadro Último bit do quadro Receptor prepara ACK e o envia Chega o ACK Tempo que o canal permanece
desocupado
Quadro de 1000 bits 1 Mbps usa 10 ms para transmitir Se a espera por um ACK = 1 ms, a eficiência é de 10/11= 91% Se a espera por um ACK = 20 ms, a eficiência é de 10/30 = 33%
Eficiência na Transmissão
• A taxa efetiva de transmissão de informação do
protocolo na ausência de erros é dada por:
R0
eff = # bits de informação entregues / tempo total requerido para entregar os bits de
informação
= nf –n0/ t0, em que n0 é o numero de bits de overhead no quadro (header + CRC)
Eficiência na transmissão:
Efeito do overhead do
quadro
Efeito do quadro ACK Efeito do produto atraso x largura de banda
Go Back n ARQ
Melhora o Stop and Wait ao eliminar a espera
• Mantém o canal ocupado enviando quadros de forma continua
• Permite uma janela de tamanho Ws de quadros excedentes
• A janela do receptor é de tamanho 1
• Usa uma sequencia de numeração m-bit
• Se um ACK para um quadro antigo chega antes de tamanho da janela ser alcançado, pode-se continuar transmitindo
• Se a janela é esaurida, se volta e se retransmitem os quadros excedentes
GO BACK n ARQ
A B fr 0 fr 1 fr 2 fr 3 fr 4 fr 5 fr 6 fr 3 tempo A C K 1 erro Quadros fora de sequenciaGo-Back-4: 4 quadros foram enviados voltar 4
fr 5 fr 6 fr 4 fr 7 fr 8 fr 9 A C K 2 A C K 3 A C K 4 A C K 5 A C K 6 A C K 7 A C K 8 A C K 9
Comparação Stop and Wait e GO Back N ARQ
A B fr 0 fr 1 fr 2 fr 3 fr 0 tempo erro Quadros fora de sequencia4 quadros excedentes voltar 4
fr 2 fr 3 fr 1 fr 4 fr 5 fr 6 A B tempo fr 0 fr 0 erro Time-out expira fr 1 A C K 1 Stop-and-Wait Go-Back-N A C K 1 A C K 2 A C K 3 A C K 4 A C K 5 A C K 6
Timer Slast Slast+1 Srecent Slast+Ws-1 Timer Timer emissor receptor ... Recebe janela Buffers Slast S last+Ws-1 ... Envia janela Srecent Quadros transmitidos e confirmados Rnext quadros recebidos
receptor somente aceita um quadro sem erro e com
número de sequencia Rnext ...
A B fr 0 fr 1 fr 2 fr 3 fr 0 tempo fr 1 fr 2 fr 3 A C K 1 M =22 = 4, Go-Back - 4: A C K 4 A C K 2 A C K 3 Transmissor volta 4
Receptor tem Rnext=0, mas não sabe se o ACK para o quadro 0
foi recebido, então não pode distinguir se este é para o frame
0 antigo ou novo A B fr 0 fr 1 fr 2 fr 0 fr 1 tempo fr 2 A C K 1 M=22=4, Go-Back-3: A C K 2 A C K 3 Transmissor volta 3
O Receptor tem Rnext=3 , então rejeita o quadro velho com seq= 0 Janela com número fixo de bits