Implementação do protocolo RDT 3.0
Disciplina: Redes de Computadores I

Implementação – Protocolo RDT 3.0
Marllus Lustosa
Eugênio Carvalho
José Renato
Franscisco Lima
Alceu Medeiros

Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
Implementação do protocolo RDT 3.0
Disciplina: Redes de Computadores I

Sumário
1. RDT 1.0/2.0/2.1/2.2/3.0
2. Execução do código em máquina de estados finitos (FSM)
3. UML da implementação do código

Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
Implementação do protocolo RDT 3.0
Disciplina: Redes de Computadores I

1. RDT 1.0/2.0/2.1/2.2/3.0
-  RDT 1.0
-  Cenário perfeito
-  Canal totalmente confiável
-  Sem percas ou atrasos

-  RDT 2.0
-  Canal com erros de bits
-  Implementado checksum e ACK/NAK
-  Mas, e se o ACK/NAK for corrompido? Como saber?

Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
Implementação do protocolo RDT 3.0
Disciplina: Redes de Computadores I

1. RDT 1.0/2.0/2.1/2.2/3.0
-  RDT 2.1
-  Remetente:
-  Adiciona número de sequência a todos os pacotes
-  Bit de sequência atual é comparado com o anterior
-  Faz checksum do ACK/NAK


- Destinatário:
-  Verifica se o pacote recebido está duplicado (a partir
do número de sequência)
-  Mas, o destinatário não sabe se seu último ACK/NAK enviado
foi recebido OK no remetente. E agora?

Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
Implementação do protocolo RDT 3.0
Disciplina: Redes de Computadores I

1. RDT 1.0/2.0/2.1/2.2/3.0
-  RDT 2.2
-  Exclusão do NAK
-  Ao invés do destinatário enviar um NAK, ele envia um
ACK para último pacote.
-  Quando o remetente recebe o ACK para o pacote
anterior, desdobre que o mesmo está corrompido e o
reenvia
-  Mas, e se o canal descartar pacotes?

Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
Implementação do protocolo RDT 3.0
Disciplina: Redes de Computadores I

1. RDT 1.0/2.0/2.1/2.2/3.0
-  RDT 3.0
-  Canal pode também perder pacotes
-  Técnica ninja: Temporizador decrescente no remetente
-  Remetente aciona temporizador todas as vezes que
um pacote for enviado
-  Remetente espera esse tempo por ACK, para então
retransmitir o pacote, em caso de não recebimento.
-  Temos um protocolo de transferência confiável de dados!

Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
Implementação do protocolo RDT 3.0
Disciplina: Redes de Computadores I

2. Execução do código em máquina de estados finitos (FSM)

Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
Implementação do protocolo RDT 3.0
Disciplina: Redes de Computadores I

Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
Implementação do protocolo RDT 3.0
Disciplina: Redes de Computadores I

3. UML da implementação do código

Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros

Evolução protocolo rdt

  • 1.
    Implementação do protocoloRDT 3.0 Disciplina: Redes de Computadores I Implementação – Protocolo RDT 3.0 Marllus Lustosa Eugênio Carvalho José Renato Franscisco Lima Alceu Medeiros Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
  • 2.
    Implementação do protocoloRDT 3.0 Disciplina: Redes de Computadores I Sumário 1. RDT 1.0/2.0/2.1/2.2/3.0 2. Execução do código em máquina de estados finitos (FSM) 3. UML da implementação do código Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
  • 3.
    Implementação do protocoloRDT 3.0 Disciplina: Redes de Computadores I 1. RDT 1.0/2.0/2.1/2.2/3.0 -  RDT 1.0 -  Cenário perfeito -  Canal totalmente confiável -  Sem percas ou atrasos -  RDT 2.0 -  Canal com erros de bits -  Implementado checksum e ACK/NAK -  Mas, e se o ACK/NAK for corrompido? Como saber? Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
  • 4.
    Implementação do protocoloRDT 3.0 Disciplina: Redes de Computadores I 1. RDT 1.0/2.0/2.1/2.2/3.0 -  RDT 2.1 -  Remetente: -  Adiciona número de sequência a todos os pacotes -  Bit de sequência atual é comparado com o anterior -  Faz checksum do ACK/NAK - Destinatário: -  Verifica se o pacote recebido está duplicado (a partir do número de sequência) -  Mas, o destinatário não sabe se seu último ACK/NAK enviado foi recebido OK no remetente. E agora? Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
  • 5.
    Implementação do protocoloRDT 3.0 Disciplina: Redes de Computadores I 1. RDT 1.0/2.0/2.1/2.2/3.0 -  RDT 2.2 -  Exclusão do NAK -  Ao invés do destinatário enviar um NAK, ele envia um ACK para último pacote. -  Quando o remetente recebe o ACK para o pacote anterior, desdobre que o mesmo está corrompido e o reenvia -  Mas, e se o canal descartar pacotes? Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
  • 6.
    Implementação do protocoloRDT 3.0 Disciplina: Redes de Computadores I 1. RDT 1.0/2.0/2.1/2.2/3.0 -  RDT 3.0 -  Canal pode também perder pacotes -  Técnica ninja: Temporizador decrescente no remetente -  Remetente aciona temporizador todas as vezes que um pacote for enviado -  Remetente espera esse tempo por ACK, para então retransmitir o pacote, em caso de não recebimento. -  Temos um protocolo de transferência confiável de dados! Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
  • 7.
    Implementação do protocoloRDT 3.0 Disciplina: Redes de Computadores I 2. Execução do código em máquina de estados finitos (FSM) Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
  • 8.
    Implementação do protocoloRDT 3.0 Disciplina: Redes de Computadores I Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
  • 9.
    Implementação do protocoloRDT 3.0 Disciplina: Redes de Computadores I 3. UML da implementação do código Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros