Mudanças entre as edições de "RCO2-2010-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 49: Linha 49:
 
Há um resumo nas [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula2.pdf transparências].
 
Há um resumo nas [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula2.pdf transparências].
  
O experimento com o [http://www.sj.ifsc.edu.br/~msobral/RCO2/fcs-rfc.tgz gerador de CRC-16 do PPP] pode ser repetido em casa. Ele é capaz de verificar um quadro PPP, que pode ser conseguido usando-se a opção ''record'' do '''pppd'''. Essa opção grava em um arquivo de ''log'' os conteúdos dos quadros PPP enviados e recebidos, que podem depois serem visualizados (ou terem seu bytes extraídos) com o utilitário '''pppdump'''. Porém o gerador de CRC-16 fornecido inclui dois arquivos contendo quadros PPP previamente coletados: ''quadro_correto.raw'' e ''quadro_errado.raw''. Para fazer os testes, deve-se executar o programa ''testa.py'' (ele usa o arquivo ''quadro_correto.raw'' para fazer os testes):
+
O experimento com o [http://www.sj.ifsc.edu.br/~msobral/RCO2/fcs-rfc.tgz gerador de CRC-16 do PPP] pode ser repetido em casa. Ele é capaz de verificar um quadro PPP, que pode ser conseguido usando-se a opção ''record'' do '''pppd'''. Essa opção grava em um arquivo de ''log'' os conteúdos dos quadros PPP enviados e recebidos, que podem depois serem visualizados (ou terem seu bytes extraídos) com o utilitário '''pppdump'''. Porém o gerador de CRC-16 fornecido inclui dois arquivos contendo quadros PPP previamente coletados: ''quadro_correto.raw'' e ''quadro_errado.raw''. Eles podem ser verificados com o programa '''fcs''' (o verificador de CRC-16):
  
 
<syntaxhighlight lang=bash>
 
<syntaxhighlight lang=bash>
Linha 56: Linha 56:
 
cd fcs
 
cd fcs
  
 +
# Testa o quadro correto
 +
./fcs quadro_correto.raw
 +
 +
# Testa o quadro_errado
 +
./fcs quadro_errado.raw
 +
</syntaxhighlight>
 +
 +
Há um testador que modifica aleatoriamente uma certa quantidade de bits do ''quadro_correto.raw'', até que encontre um caso em que o erro não seja detectado. Para usá-lo deve-se executar o programa ''testa.py'':
 +
 +
<syntaxhighlight lang=bash>
 
# executa testa.py com 4 erros de bit por quadro gerados aleatoriamente
 
# executa testa.py com 4 erros de bit por quadro gerados aleatoriamente
 
./testa.py 4
 
./testa.py 4

Edição das 10h43min de 24 de fevereiro de 2010

Redes de Computadores II: Diário de Aula 2010-1

Professor: Marcelo Maia Sobral (msobral@gmail.com)
Lista de email (forum): rco2@googlegroups.com
Atendimento paralelo: 2a e 4a de 10h às 12 h, 4a de 16h às 17h.

Bibliografia

10/02: Apresentação

Apresentação da disciplina: conteúdo, bibliografia e avaliação, laboratório.

12/02: Introdução

Apresentou-se uma visão geral dos conceitos sobre comunicação de dados, amparada em transparências. Nesta aula se planta a base para iniciar o estudo com maior profundidade da camada de enlace e da camada física.

19/02:

Camada de enlace: objetivos e serviços.

Data-link.png

Os serviços identificados na figura acima estão descritos abaixo. A eles foram acrescentados outros dois:

  • Encapsulamento (ou enquadramento): identificação das PDUs (quadros) de enlace dentro de sequências de bits enviadas e recebidas da camada física
  • Controle de erros: garantir que quadros sejam entregues no destino
    • Detecção de erros: verificação da integridade do conteúdo de quadros (se foram recebidos sem erros de bits)
  • Controle de fluxo: ajuste da quantidade de quadros transmitidos, de acordo com a capacidade do meio de transmissão (incluindo o atraso de transmissão) e do receptor
  • Endereçamento: necessário quando o enlace for do tipo multi-ponto, em que vários equipamentos compartilham o meio de transmissão (ex: redes locais e redes sem-fio)
  • Controle de acesso ao meio (MAC): também necessário para meios compartilhados, para disciplinar as transmissões dos diversos equipamentos de forma a evitar ou reduzir a chance de haver colisões (transmissões sobrepostas)
  • Gerenciamento de enlace: funções para ativar, desativar e manter enlaces

Nesta aula se criarão enlaces ponto-a-ponto entre computadores, usando o protocolo PPP. A partir de alguns experimentos se discutem os serviços da camada de enlace, em particular o enquadramento e detecção de erros.

Roteiro do primeiro laboratório

Foi apresentado como funciona o enquadramento (ou sincronização de quadro) do tipo sentinela (usado pelo PPP e HDLC). Nesse caso, usa-se uma flag delimitadora para informar o início e fim de quadro. Há uma segunda flag, chamada de escape (ESC), para evitar que um byte com o valor de flag delimitadora, o qual apareça em algum campo do quadro (ex: dados ou campos de controle) seja erroneamente interpretado como fim de quadro.

O roteiro foi executado até a análise de enquadramento do PPP. A detecção de erros ficou para a aula seguinte.

24/02: Camada enlace: detecção de erros

Finalização do roteiro 1, iniciado na aula de 19/02: fazer a injeção de erros (quadros corrompidos) no enlace.

Probabilidade de erros de transmissão (BER - Bit Error Rate), códigos de detecção de erro e CRC.

Há um resumo nas transparências.

O experimento com o gerador de CRC-16 do PPP pode ser repetido em casa. Ele é capaz de verificar um quadro PPP, que pode ser conseguido usando-se a opção record do pppd. Essa opção grava em um arquivo de log os conteúdos dos quadros PPP enviados e recebidos, que podem depois serem visualizados (ou terem seu bytes extraídos) com o utilitário pppdump. Porém o gerador de CRC-16 fornecido inclui dois arquivos contendo quadros PPP previamente coletados: quadro_correto.raw e quadro_errado.raw. Eles podem ser verificados com o programa fcs (o verificador de CRC-16):

# descompacta o arquivo do gerador de CRC-16
tar czf fcs-rfc.tgz
cd fcs

# Testa o quadro correto
./fcs quadro_correto.raw

# Testa o quadro_errado
./fcs quadro_errado.raw

Há um testador que modifica aleatoriamente uma certa quantidade de bits do quadro_correto.raw, até que encontre um caso em que o erro não seja detectado. Para usá-lo deve-se executar o programa testa.py:

# executa testa.py com 4 erros de bit por quadro gerados aleatoriamente
./testa.py 4

O código fonte do gerador de CRC-16 está no arquivo fcs-rfc.c, o qual foi obtido diretamente da RFC 1662.