O documento descreve a implementação do protocolo RDT 3.0 para transferência confiável de dados através de redes, cobrindo a evolução dos protocolos RDT de versões anteriores e a implementação do código usando máquina de estados finitos e modelagem UML.
1. 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
2. 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
3. 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
4. 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
5. 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
6. 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
7. 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
8. Implementação do protocolo RDT 3.0
Disciplina: Redes de Computadores I
Marllus Lustosa / Eugênio Carvalho / José Renato / Francisco Lima / Alceu Medeiros
9. 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