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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com '= Redes de Computadores II: Diário de Aula 2011-2 = '''Professor:''' Marcelo Maia Sobral (msobral@gmail.com) <br>'''Lista de email (forum):''' rco2@googlegroups.com <br>'''Enco...')
 
 
(220 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
= Redes de Computadores II: Diário de Aula 2011-2 =
+
= Redes de Computadores II: Diário de Aula 2012-1 =
  
 
'''Professor:''' Marcelo Maia Sobral (msobral@gmail.com)
 
'''Professor:''' Marcelo Maia Sobral (msobral@gmail.com)
 
<br>'''Lista de email (forum):''' rco2@googlegroups.com
 
<br>'''Lista de email (forum):''' rco2@googlegroups.com
<br>'''Encontros:''' 4a feira/7:30, 5a feira/9:40
+
<br>'''Encontros:''' 5a feira/9:40, 6a feira/7:30
<br>'''Atendimento paralelo:''' 4a de 10h às 12 h, 5a de 8h às 9:30h e de 13:30 às 15:00h.
+
<br>'''Atendimento paralelo:''' 4a de 13:30 às 16 h.
<br> '''IMPORTANTE:''' o direito de recuperar uma avaliação em que se faltou somente existe mediante justificativa reconhecida pela coordenação. Assim, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação, e assim a reprovação na disciplina.
 
  
 
* [[RCO2-ementa|Ementa]]
 
* [[RCO2-ementa|Ementa]]
Linha 38: Linha 37:
 
== Listas de exercícios ==
 
== Listas de exercícios ==
  
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista1.pdf 1a lista de exercícios]
+
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista1.pdf 1a lista de exercícios] ''(09/03/2012)''
<!--
+
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista2.pdf 2a lista de exercícios] ''(16/03/2012)''
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista2.pdf 2a lista de exercícios]
+
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista3.pdf 3a lista de exercícios] ''(30/03/2012)''
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista3-2010-1.pdf 3a lista de exercícios]
+
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista4.pdf 4a lista de exercícios] ''(19/04/2012)''
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista4-2010-1.pdf 4a lista de exercícios]
+
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista5.pdf 5a lista de exercícios] ''(10/05/2012)''
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista5.pdf 5a lista de exercícios]
+
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista6.pdf 6a lista de exercícios] ''(21/06/2012)''
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista6.pdf 6a lista de exercícios]
+
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista7.pdf 7a lista de exercícios] ''(21/06/2012)''
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista7.pdf 7a lista de exercícios]
+
 
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista8.pdf 8a lista de exercícios]
+
== RECUPERAÇÕES APÓS A GREVE !!! ==
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista9-2010-2.pdf 9a lista de exercícios]
+
 
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista10.pdf 10a lista de exercícios]
+
Inicialmente pensei em fazermos as avaliações de recuperação nos
-->
+
dias em que vocês têm ANC. Minha sugestão é nesta 4a às 7:30 h, ou 6a feira às
 +
9:40 h. Todos podem vir (confirmar por email) ?
 +
 
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/rec/prova1-2012-1-erc.odt Prova 1 (simulado)]
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/rec/prova2-2011-2.odt Prova 2 (simulado)]
 +
 
 +
=== DATAS E HORÁRIOS DA REVISÃO E DA AVALIAÇÃO ===
 +
 
 +
* Revisão nesta semana (12 e 14/9) na 4a de 7:30 a 9:20h, e 6a feira de 9:40 a 11:30h.
 +
* '''AVALIAÇÕES:'''
 +
** ''Avaliação 3:'' 4a da semana que vem (19/9), iniciando 7:30 h.
 +
** ''Avaliações 1 e 2:'' 2a feira (24/9), iniciando 8:00 h.
  
 
== Avaliações ==
 
== Avaliações ==
 
<!-- '''Obs:''' no caso de conceito parcial D:
 
* '''''D!''' significa reprovação em definitivo, por frequência insuficiente''
 
* '''''D?''' significa que pode ser revertido na recuperação''
 
-->
 
  
 
{| border="1" cellpadding="2"
 
{| border="1" cellpadding="2"
 
  !Aluno
 
  !Aluno
 
  !1a prova
 
  !1a prova
  !Trabalho Protocolo
+
  !Trabalho LAN
 
  !2a prova
 
  !2a prova
!3a prova
 
!Trabalho Switch
 
!Trabalho LANs
 
 
  !Trabalho WAN
 
  !Trabalho WAN
 
  !4a prova
 
  !4a prova
 
  !Conceito FINAL
 
  !Conceito FINAL
 
  |-
 
  |-
  |Ana Paula || D/C || C || D/D||D/C ||C|| C|| D|| C||D
+
  |Ana Paula || C||B || C|| A|| B|| B
|-
 
|André || D/A|| B||C||B ||A || A|| B|| B+||A
 
|-
 
|Bolívar || D/D||D  || D/D||D/D || B||D ||D || D/D||D
 
|-
 
|Davi ||D/C || C ||D/C ||B ||B ||A || C||D/C ||C
 
|-
 
|Kalvim || B || B ||B ||A || A|| A||B || C+||A
 
|-
 
|Leandro || D/? || C? ||C||C ||B || ||D ||D* ||D
 
|-
 
|Luiz Gustavo || B || B ||C ||B ||A ||A || B|| B||B
 
|-
 
|Maicky || C || C || C||C || A|| A||B ||C+ ||C
 
|-
 
|Marine || C || C ||C ||B ||C || B|| C||B+ ||C
 
|-
 
|Mário || D/C || C||C ||C || A|| A|| B|| C||C
 
|-
 
|Patrícia || D/C || C ||C ||C || B||A || C|| B||C
 
 
  |-
 
  |-
  |Thayse || D/B || C || C||C ||B || A|| C||B ||C
+
  |Bárbara || D|| B|| D|| D*|| D*||  D
 +
|-
 +
|Bruno || D/C||B || C|| A|| D/C|| C
 +
|-
 +
|Carlos Eduardo || D|| A|| D|| A|| D/D|| D
 
  |-
 
  |-
  |Thiego || C || C || B||B || A||A || B||B+ ||B
+
  |Claudir || D|| D*||D || A|| D|| D
 +
|-
 +
|Daniel || D|| D*||D || D*|| D*||  D
 +
|-
 +
|Diogo || D/C|| B||C || A|| D/C|| C
 +
|-
 +
|Douglas || D|| D*||D || D*|| D*||D
 +
|-
 +
|Fábio || D|| D*|| D|| D*|| D*|| D
 +
|-
 +
|Ismael || C|| B|| B|| A|| D/C||C
 +
|-
 +
|João Mário || D|| A||D || A|| D||D
 +
|-
 +
|Jonas || D/C|| A||C || A|| D/C||C
 +
|-
 +
|José Lopes || B|| A||D* || D*|| D*|| D
 +
|-
 +
|Juan Carlos|| C||B ||C ||A || D/C||C
 +
|-
 +
|Kelly ||C ||B || C|| A|| C||C
 +
|-
 +
|Leandro ||B || D*/C||D/C || A|| C||C
 +
|-
 +
|Lindalvo || D/C||B ||C || A|| D/C||C
 +
|-
 +
|Luís Henrique || B||D*/C || D/C|| A|| D/C||C
 +
|-
 +
|Mário Allan || C|| B|| C|| A|| D/C||C
 +
|-
 +
|Mário André || D/C|| B||C || A|| D/C||C
 +
|-
 +
|Maycon Moreira || B|| A|| A|| A|| B||A
 +
|-
 +
|Maykon Chagas || D/C|| B||C || A|| D*/C||C
 
  |-
 
  |-
 +
|Michelle|| D||B || D*|| D*|| D*||D
 +
|-
 +
|Nathan || D|| A||D* || D*|| D*||D
 +
|-
 +
|Renan || D|| D*|| D*|| D*|| D*||D
 +
|-
 +
|Ricardo || B||A || C|| A|| D/C||B
 +
|-
 +
|Rubia || D|| D*||D* || D*|| D*||D
 +
|-
 +
|Thiago || D*|| D*|| D|| D*|| D*||D
 
  |}
 
  |}
  
Linha 107: Linha 138:
 
* [[Omnetpp-Instalacao| Tutorial para instalação do Omnet++ 4.0p1]]
 
* [[Omnetpp-Instalacao| Tutorial para instalação do Omnet++ 4.0p1]]
  
== 02/08: Apresentação ==
+
= 01/03: Apresentação =
  
 
Apresentação da disciplina: conteúdo, bibliografia e avaliação, laboratório.
 
Apresentação da disciplina: conteúdo, bibliografia e avaliação, laboratório.
Linha 114: Linha 145:
 
* [http://mmsobral.no-ip.org:8080/ifsc/RCO2/slides/aula1.pdf Introdução: escopo da disciplina]
 
* [http://mmsobral.no-ip.org:8080/ifsc/RCO2/slides/aula1.pdf Introdução: escopo da disciplina]
  
=== Introdução e camada de enlace ===
+
* Capítulo 13 do livro "''Comunicação de Dados e Redes de Computadores''", de Berhouz Forouzan
 +
* Capítulo 5 do livro "''Redes de Computadores e a Internet''", de James Kurose.
 +
* Capítulo 4 do livro "''Redes de Computadores''", de Andrew Tanenbaum
  
* Ver Parte III e capítulo 10 do livro "Comunicação de Dados e Redes de Computadores", de Behrouz Forouzan (há uma cópia no xerox), ou capítulo 3 do livro "redes de Computadores" de Andrew Tanenbaum.
+
Apresentação da disciplina: conteúdo, bibliografia e avaliação, laboratório.
 
 
Apresentou-se uma visão geral dos conceitos sobre comunicação de dados, amparada em [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula1.pdf transparências]. Nesta aula se planta a base para iniciar o estudo com maior profundidade da camada de enlace e da camada física.
 
 
 
[[Image: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
 
 
 
=== Atividade ===
 
 
 
Uma empresa possui uma filial em outra cidade do estado, e precisa estabelecer um enlace dedicado que a una a matriz. Por esse enlace trafegarão dados de aplicativos administrativos da empresa (ex: ERP), e de gerência de redes. A solução para o problema deve contemplar essas questões:
 
# Que tecnologias podem ser usadas ? Quais suas características ?
 
# Qual a viabilidade para implantação de cada uma delas ?
 
 
 
Após decidirmos como implantar esse enlace, será feito um experimento no laboratório simulando a solução.
 
 
 
A escolha após discussão em aula foi por um circuito dedicado com pares metálicos para o enlace físico, e o protocolo PPP para o enlace lógico.
 
 
 
Questões a serem respondidas pela turma mediante pesquisa na bibliografia ou outras fontes:
 
# Para que cenários foi criado o protocolo PPP ? Ele exige alguma característica especial do enlace físico ?
 
# Ele pode ser usado por qualquer protocolo de camada de rede ?
 
# Qual o formato dos quadros desse protocolo, e qual o overhead de seus dados de controle ?
 
# Como esse protocolo identifica onde começa e termina cada quadro durante a transmissão (pense nos quadros sendo recebidos) ?
 
# O que acontece se um quadro sofrer um erro durante a transmissão ? Quer dizer, se um quadro for perdido durante a transmissão (não chegar ao destino), ou chegar corrompido ?
 
  
Pesquise e responda as questões acima, para que possam ser discutidas na próxima aula.
+
== Lembrando Redes de Computadores da 3a fase ... ==
  
== 05/08: Enquadramento ==
+
Em RCO1 foi estudado o assunto ''Arquitetura de Redes'' com ênfase na Internet. A figura abaixo resume a ''arquitetura em camadas'' usada para representar o funcionamento de sistemas em uma rede de computadores. Cada camada representa uma certa funcionalidade necessária para a comunicação, e apresenta um ou mais protocolos que participam dessa tarefa.
  
* Ver Parte III e capítulo 12 do livro "Comunicação de Dados e Redes de Computadores", de Behrouz Forouzan (há uma cópia no xerox), ou capítulo 3 do livro "Redes de Computadores" de Andrew Tanenbaum.
+
[[imagem:Osi-tcpip-rco2.png]]
  
  
[[imagem:Rede2-IER.png]]
+
O foco da disciplina RCO2 é a '''infra-estrutura de rede''', representada pelas camadas ''Internet'' e ''Acesso a rede'' no modelo TCP/IP (ou camadas ''Rede'' e inferiores no modelo OSI). Ela diz respeito ao conjunto de ''equipamentos, links, protocolos e tecnologias'' empregados para construir uma rede de computadores. Essa rede pode ser assim usada para que sistemas finais consigam se comunicar, tais como computadores de usuários, servidores, smartphones, e quaisquer outros dispositivos que produzam ou consumam dados. Desta forma, em IER estudaremos como escolher tecnologias, selecionar e configurar equipamentos, e interligá-los para construir redes de computadores.
<br>''Exemplo de enlace ponto-a-ponto entre roteadores''
 
  
 +
Nosso ponto de partida serão pequenas redes compostas por uma ou mais redes locais (LANs) que se interligam, incluindo conexão para a Internet. Em cada rede investigaremos seu funcionamento, incluindo as configurações da subrede IP e os equipamentos usados.
  
[http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula1.pdf Transparências sobre camada de enlace]
 
  
=== Atividade ===
+
[[Image:Rede1-IER.png]]
 +
<br>''Figura 1: uma  pequena  rede local (LAN) com conexão para Internet''
  
Nesta aula se criarão enlaces ponto-a-ponto entre computadores, usando o protocolo [http://en.wikipedia.org/wiki/Point-to-Point_Protocol PPP]. A partir de alguns experimentos se discutem os serviços da camada de enlace, em particular o [http://en.wikipedia.org/wiki/Frame_(telecommunications) '''''enquadramento'''''] e [http://en.wikipedia.org/wiki/Error_detection_and_correction '''''detecção de erros'''''].
 
  
[[imagem:Lab1-2011-1.png]]
+
[[Image:Rede2-IER.png]]
<br>''Rede do experimento''
+
<br>''Figura 2: duas redes locais (LAN) interligadas por um  enlace de longa distância (WAN)''
 
 
 
 
A rede do experimento será inicialmente implantada usando o [[Netkit]], um software para emulação de redes. A configuração necessária para criá-la segue abaixo:
 
 
 
<syntaxhighlight lang=text>
 
pc1[type]=generic
 
pc2[type]=generic
 
r1[type]=gateway
 
r2[type]=gateway
 
 
pc1[eth0]=rede0:ip=192.168.0.1/26
 
r1[eth0]=rede0:ip=192.168.0.62/26
 
r1[ppp0]=serial:rate=115200
 
 
pc2[eth0]=rede1:ip=192.168.1.1/24
 
r2[eth0]=rede1:ip=192.168.1.254/24
 
r2[ppp0]=serial:rate=115200
 
  
pc1[default_gateway]=192.168.0.62
 
pc2[default_gateway]=192.168.1.254
 
</syntaxhighlight>
 
  
[http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab1-2011-2.pdf 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 (valor <math>7E_H</math> nesses protocolos) para informar o início e fim de quadro. Há uma segunda ''flag'', chamada de escape (ESC, com valor <math>7D_H</math> no caso do PPP), 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.
+
Conceitos necessários para realizar os exercícios:
 +
* Endereços IP e máscaras de rede
 +
* Rotas estáticas
 +
* Interfaces de rede
  
O roteiro de laboratório não foi totalmente realizado, pois faltou visualizar o enquadramento feito pelo PPP e as sequências de escape.
+
== Ferramentas de apoio ao estudo ==
-->
 
  
=== Atividade para próxima aula ===
+
Uma limitação que temos está na pouca quantidade de equipamentos para as atividades em laboratório. Para atenuar esse problema, podem-se usar softwares que simulem redes. Existe um  software desses em particular, chamado Netkit, que possibilita criar redes virtuais. Essas nada mais são que máquinas virtuais interligadas com switches e links seriais virtuais (isso é, tudo feito por software mas funciona como se fosse de verdade). Com ele se podem criar redes compostas por máquinas virtuais Linux, que são conectadas por links ethernet e PPP. Todos os cenários que usaremos em nosso estudo (com  exceção das configurações de modems), poderiam ser reproduzidos com esse software. Existe um guia de instalação e uso publicado na wiki:
  
''Reflita sobre o problema descrito a seguir:''
+
* [[Netkit]]
  
No  exemplo baseado no enlace entre duas unidades de uma empresa, imagine que o enlace físico apresente uma taxa de erros de 0,001% (i.e. a cada 100000 bits transmitidos, em média um bit chega com erro). Usando-se o protocolo PPP na camada de enlace, quais as possíveis consequências para as seguintes aplicações:
+
Esse guia contém uma [[Netkit#Uma_biblioteca_de_exemplos_de_experimentos|coleção de exemplos]], para que tenham ideia do que se pode fazer com o Netkit.
# Web (HTTP e HTTPS)
 
# DNS
 
# Email (POP3 e SMTP)
 
# VoIP
 
  
Seria possível que alguma modificação na camada de enlace reduzisse ou eliminasse os problemas apontados ? Caso acredite que sim, o que poderia ser feito ?
+
O Netkit fica assim como opção para complementar o estudo. Ele funciona como um laboratório de redes, em que se podem criar redes como aquelas que vemos em aula  e mesmo inventar novas redes.  Seu uso se destina a fixar conceitos, para que o uso dos equipamentos reais seja facilitado.
  
== 09/08: Detecção de erros ==
+
Além  do Netkit, este simulador de roteamento IP, que roda dentro do próprio navegador, pode ajudá-los a exercitar a divisão de subredes e a criação de rotas estáticas.
 +
* [http://tele.sj.ifsc.edu.br/~msobral/IER/ipkit/ Ipkit: Simulador de encaminhamento IP]
  
* Ver capítulos 10 e 11 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan.
+
=== Exercícios ===
* Ver capítulo 5 do livro ''Redes de Computadores e a Internet'', de James Kurose.
 
* Ver capítulo 4 do livro ''Redes de Computadores'', de Andrew Tanenbaum.
 
* Resolver a [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista1.pdf 1a lista de exercícios].
 
  
=== Probabilidade de erros de transmissão (BER - Bit Error Rate), códigos de detecção de erro e CRC ===
+
1. Usando o [[Netkit]] crie as seguintes redes. Não esqueça de definir as rotas estáticas.
  
Há um resumo nas [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula2.pdf transparências].
+
[[imagem:Rede1-1.png|400px]]
 +
<br>[http://tele.sj.ifsc.edu.br/~msobral/RCO2/Lab.conf Arquivo do experimento]
  
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>
+
[[imagem:Rede1-2.png|400px]]
# descompacta o arquivo do gerador de CRC-16
+
<br>[http://tele.sj.ifsc.edu.br/~msobral/RCO2/Lab2.conf Arquivo do experimento (Lab2.conf)]
tar czf fcs-rfc.tgz
 
cd fcs
 
  
# Testa o quadro correto
 
./fcs quadro_correto.raw
 
  
# Testa o quadro_errado
+
[[imagem:Rede1-3.png|400px]]
./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'':
+
2. Teste a comunicação entre os computadores e roteadores usando o comando ping. Use também o tcpdump ou wireshark para monitorar as interfaces de rede.
  
<syntaxhighlight lang=bash>
+
= 02/03: Criando redes IP =
# executa testa.py com 4 erros de bit por quadro gerados aleatoriamente
 
./testa.py 4
 
</syntaxhighlight>
 
  
O código fonte do gerador de CRC-16 está no arquivo ''fcs-rfc.c'', o qual foi obtido diretamente da [http://tools.ietf.org/html/rfc1662 RFC 1662].
+
... continuação dos exercícios da aula passada.
  
==== Detecção de erros no PPP ====
+
= 08/03: Redes locais =
  
Pode-se testar a detecção e o tratamento de erros do PPP injetando-se quadros com erros em um enlace previamente estabelecido. Isso pode ser verificado usando-se o Netkit:
+
''Referências bibliográficas:''
 +
* Capítulo 13 do livro "Comunicação de Dados e Redes de Computadores", de Berhouz Forouzan
 +
* Capítulo 5 do livro "Redes de Computadores e a Internet, 5a edição", de James Kurose
 +
* Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum
  
# Crie o arquivo Lab.conf com o seguinte conteúdo: <syntaxhighlight lang=text>
+
* Transparências:
pc1[type]=generic
+
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula7.pdf Introdução]
pc2[type]=generic
+
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula8.pdf LANs e acesso ao meio]
 
+
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab6-2010-2.pdf Roteiro do experimento]
pc1[ppp0]=link_serial:ip=10.0.0.1/30
 
pc2[ppp0]=link_serial:ip=10.0.0.2/30
 
</syntaxhighlight>
 
# Inicie o experimento do Netkit: <syntaxhighlight lang=bash>
 
labstart -p teste
 
</syntaxhighlight>
 
# Na máquina real faça o download dos [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab1/quadros.tgz arquivos] que contêm quadros PPP especialmente criadaos para esse experimento. Descompacte esse arquivo dentro de ''teste/shared''.
 
# Note que existe um enlace PPP entre as máquinas virtuais. Na máquina virtual ''pc1'' deixe o tcpdump monitorando a interface ppp0: <syntaxhighlight lang=bash>
 
tcpdump -i ppp0 -ln
 
</syntaxhighlight>
 
# Na máquina virtual ''pc2'' será feita a injeção de quadros PPP no enlace. A ideia é transmitir quadros corretos e em seguida quadros com erros (i.e. com bits propositalmente modificados), e observar como o PPP na máquina virtual ''pc1'' trata esses quadros. Para isso, primeiro deve-se terminar o ''pppd'' em ''pc2'': <syntaxhighlight lang=bash>
 
killall -9 pppd
 
</syntaxhighlight>Isso é necessário para que se consigam injetar os quadros via porta serial ''/dev/ttyS0''. Observe que em ''pc'' o ''pppd'' continua rodando como se nada tivesse acontecido (quer dizer, para ''pc1'' o enlace ainda está ativo).<br>
 
# Injete o quadro correto em ''pc2'', observando o que mostra o ''tcpdump'' em ''pc1'': <syntaxhighlight lang=bash>
 
cd /hostlab/shared
 
cat quadro.ok > /dev/ttyS0
 
</syntaxhighlight>
 
# Agora injete o quadro com erros e veja o que acontece: <syntaxhighlight lang=bash>
 
cd /hostlab/shared
 
cat quadro.erro > /dev/ttyS0
 
</syntaxhighlight>
 
# O que se pode concluir quanto à recepção pelo PPP de quadros com erros de transmissão ?
 
 
 
=== Trabalho do Módulo 1 ===
 
 
 
O trabalho do primeiro módulo da disciplina trata da implementação de um protocolo de enlace ponto-a-ponto, que deve estabelecer um enlace entre dois computadores por meio de suas portas seriais. O protocolo de enlace deve-se integrar à pilha de protocolos TCP/IP do Linux, podendo assim transmitir e receber datagramas IP.
 
 
 
O protocolo de enlace deve prover os seguintes serviços de enlace:
 
# Encapsulamento e enquadramento (requisito mínimo, gerando um  conceito C).
 
# Detecção de erros (opcional, gerando conceito B)
 
# Controle de erros pare-e-espere (opcional, gerando conceito  A)
 
 
 
Para realizar o trabalho será usado o [http://www.netkit.org Netkit], um projeto da Universidade de Roma para experimentação com redes virtuais baseadas em Linux.
 
* [[Netkit|Guia de instalação do Netkit]]
 
* [[Trabalho-Modulo1-RCO2-2011-2|Descrição detalhada do trabalho]]
 
 
 
* '''Data limite de entrega: ''' 10/09
 
** Entrega deve constar de código fonte, demonstração de funcionamento e resposta a questões colocadas pelo professor.
 
** Cada serviço de enlace somente será considerado correto se plenamente funcional (e sem erros).
 
* Pode ser feito em grupos de até dois alunos.
 
 
 
== 12/08: Controle de erros: stop-and-wait ==
 
 
 
Ver capítulo 11 do livro "Comunicação de Dados e Redes de Computadores", de Behrouz Forouzan (há uma cópia no xerox).
 
 
 
Resolver a [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista1.pdf 1a lista de exercícios].
 
 
 
Mecanismos ARQ para controle de erros:
 
* '''Stop-and-Wait:'''  só transmite o próximo quadro quando receber uma confirmação (''ACK'') do último quadro enviado. Retransmite o último quadro enviado se um tempo máximo de espera pelo ACK (ou ''timeout'') for excedido.
 
* '''Go-Back-N:''' transmite até ''N'' quadros sem receber confirmação, quando então espera os ACK antes de enviar mais quadros. Caso exceda o timeout de um dos quadros enviados, retransmite todos os quadros a partir desse quadro.
 
* '''Selective Repeat:''' transmite até ''N'' quadros sem receber confirmação, quando então espera os ACK antes de enviar mais quadros. Caso exceda o timeout de um dos quadros enviados, retransmite somente esse quadro.
 
 
 
[[Desempenho_ARQ|Desempenho esperado do Stop-and-Wait]].
 
 
 
=== Simulações com Omnet++ ===
 
 
 
Na aula foi mostrada uma simulação de protocolo de enlace que usa Stop-and-Wait. Essas simulações foram criadas usando-se o simulador de redes [http://www.omnetpp.org Omnet++]. Abaixo segue um tutorial para instalar esse simulador em seu computador (assume-se que nele haja o Ubuntu Linux 9.04 ou superior):
 
 
 
* [[Omnetpp-Instalacao| Tutorial para instalação do Omnet++ 4.0p1]]
 
* [[Omnetpp-Instalacao#Rodando_as_simulações_dos_mecanismos_ARQ|Rodando as simulações dos mecanismos ARQ]]
 
 
 
== 16/08: NÃO HAVERÁ AULA DE REDES 2 ==
 
 
 
== 19/08: Controle de erros e de fluxo: Go-back-N e Selective Repeat ==
 
 
 
* Resolver a [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista1.pdf 1a lista de exercícios]. Ela deve ser entregue por email (preferencialmente em PDF) até a próxima aula (10/03).
 
 
 
Ver capítulo 11 do livro "Comunicação de Dados e Redes de Computadores", de Berhouz Forouzan.
 
 
 
* Análise do mecanismo ARQ Stop-and-Wait [http://tele.sj.ifsc.edu.br/~msobral/RCO2/proto.tgz (programas do protocolo ponto-a-ponto para usar no Netkit)]
 
* Análise dos mecanismos ARQ Go-Back-N e Selective Repeat.
 
** Uma [http://media.pearsoncmg.com/aw/aw_kurose_network_4/applets/SR/index.html simulação com animação do Selective Repeat].
 
* Demonstração da melhoria da utilização do meio usando esse mecanismo, comparado ao Stop-and-Wait.
 
* Uso do simulador Omnet++ 4.01 para avaliar esses os mecanismos ARQ.
 
 
 
Na aula anterior foi visto que o mecanismo ARQ Stop-and-wait é eficaz no controle de erros. Isto significa que ele garante que um quadro seja entregue no destino. Além disto, o Stop-and-wait não se atrapalha se ocorrerem os seguintes erros de transmissão:
 
 
 
* Perda de quadro de dados (inclui quadro de dados recebido com erros e assim descartado).
 
* Perda de quadro ACK
 
* Quadro ACK atrasado, fazendo com que ocorra um ''timeout'' de espera por confirmação e consequente retransmissão
 
 
 
Ver [[Desempenho_ARQ|ARQ Go-Back-N e Selective-Repeat]].
 
 
 
=== Experimento sobre desempenho do protocolo de enlace em um meio sujeito a erros ===
 
 
 
Vale a pena observar qual a diferença entre fazer ou não controle de erros com ARQ em um protocolo de enlace. A experiência a seguir busca dar uma ideia de seus prós e contras.
 
 
 
# Obtenha os [http://tele.sj.ifsc.edu.br/~msobral/RCO2/proto.tgz arquivos de programa do protocolo de enlace ponto-a-ponto]
 
# Descompacte-o em algum diretório, e em seguida entre no subdiretório ''erros''.
 
# Execute ''labstart'' para iniciar o experimento.
 
# Em ambas as máquinas virtuais faça o seguinte: <syntaxhighlight lang=bash>
 
cd /hostlab/shared
 
./proto /dev/ttyS0 &
 
ifconfig tun0 10.0.0.1 dstaddr 10.0.0.2
 
</syntaxhighlight>... apenas invertendo os endereços IP em uma das máquinas virtuais.
 
# Na máquina virtual ''pc1'' execute: <syntaxhighlight lang=bash>
 
/etc/init.d/apache2 start
 
dd if=/dev/urandom bs=4096 of=/var/www/teste.bin count=512
 
</syntaxhighlight>
 
# Na máquina virtual ''pc2'' execute o seguinte: <syntaxhighlight lang=bash>
 
wget http://10.0.0.1/teste.bin
 
</syntaxhighlight>
 
# Observe a taxa de bits obtida durante o donwload ...
 
# Repita o procedimento, porém usando o programa ''proto-sw''.
 
 
 
== 23/08: Protocolos PPP e HDLC ==
 
 
 
* '''Extra:''' ver uma discussão sobre o desempenho dos mecanismos ARQ quando acontecem erros:
 
** [[Desempenho_ARQ#Utiliza.C3.A7.C3.A3o_do_meio_com_Go-Back-N_sujeito_a_erros|Go-Back-N sujeito a erros]]
 
 
 
=== PPP e HDLC ===
 
 
 
Detalhes sobre esses protocolos. Ver as transparências:
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-ppp.pdf PPP]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-hdlc.pdf HDLC]
 
** [http://www.aiaa.org/spaceops2002archive/papers/SpaceOps02-P-T5-21.pdf Uso do HDLC em missões espaciais (artigo da Nasa)]
 
 
 
Resolver a [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista2.pdf 2a lista de exercícios].
 
 
 
=== Enlaces ponto-a-ponto entre roteadores ===
 
 
 
Nesta aula serão configurados enlaces entre dois roteadores Cisco usando os protocolos PPP e HDLC. O objetivo é ter um contato com esse tipo de equipamento, e ver os protocolos em ação. Além disto, será feita uma medição de vazão (''throughput'') com cada um dos protocolos.
 
 
 
[[imagem:Rede-modems.png]]
 
 
 
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab3-2011-1.pdf Roteiro da experiência]
 
* [http://www.cisco.com/warp/cpropub/45/tutorial.htm Tutorial da interface de linha de comando Cisco (CLI)]
 
* [http://www.cisco.com/en/US/tech/tk713/tk507/technologies_tech_note09186a008019cfa7.shtml#ppp01 Resolução de problemas com PPP em roteadores Cisco]
 
 
 
Esse experimento pode ser reproduzido usando o Netkit. Os comandos dos roteadores Cisco são muito parecidos no software [http://www.quagga.net/ Quagga], que é usado em máquinas virtuais do Netkit que agem como roteadores. No entanto, as interfaces seriais de enlaces ponto-a-ponto no Quagga são identificadas pelos nomes ''ppp0'', ''ppp1'' e assim por diante (ao contrário de ''Serial 0'' e ''Serial 1'' usados no Cisco). Abaixo segue a configuração do Netkit que reproduz o experimento de hoje:
 
 
 
<syntaxhighlight lang=text>
 
# Os três roteadores
 
r1[type]=router
 
r2[type]=router
 
r3[type]=router
 
 
 
# O computador que fica na subrede da esquerda
 
pc1[type]=generic
 
 
 
# O computador que fica na subrede da direita
 
pc2[type]=generic
 
 
 
# Um computador que representa a Internet
 
internet[type]=generic
 
 
 
# Os enlaces ponto-a-ponto entre os roteadores
 
r1[ppp0]=linkEsquerdo:ip=10.0.0.1/30
 
r1[ppp1]=linkDireito:ip=10.0.0.5/30
 
r2[ppp0]=linkEsquerdo:ip=10.0.0.2/30
 
r3[ppp0]=linkDireito:ip=10.0.0.6/30
 
 
 
# a subrede do laboratório, que representa a Internet
 
r1[eth0]=lanExterna:ip=192.168.1.230/24
 
internet[eth0]=lanExterna:ip=192.168.1.1/24
 
 
 
# A subrede do lado esquerdo
 
r2[eth0]=lanEsquerda:ip=172.18.0.30/28
 
pc1[eth0]=lanEsquerda:ip=172.18.0.17/28
 
 
 
# A subrede do lado direito
 
r3[eth0]=lanDireita:ip=172.18.10.110/28
 
pc2[eth0]=lanDireita:ip=172.18.10.97/28
 
</syntaxhighlight>
 
 
 
Note que as rotas não foram definidas ... você precisará criá-las.
 
 
 
<!-- === Curiosidade: captura de quadros para análise ===
 
 
 
Para analisar um protocolo em ação, é necessário capturar suas PDUs e interpretá-las. Programas como '''tcpdump''' e '''wireshark''' fazem exatamente isso, oferecendo grande riqueza de detalhes e opções de filtragem de PDUs a serem analisadas. Mas como nada é perfeito, esses programas não possibilitam capturar plenamente quadros de protocolos de enlace que não sejam Ethernet (IEEE 802.3) ou WiFi (IEEE 802.11), devido ao mecanismo de captura que eles usam. Quer dizer, algumas informações dos cabeçalhos dos quadros podem ser descartados. Assim, caso se deseje analisar um protocolo como PPP, deve-se escrever um programa de captura.
 
 
 
Os quadros capturados precisam ser gravados em um arquivo para posterior análise pelo '''wireshark'''. Segundo a documentação do projeto do '''wireshark''', arquivos de captura devem seguir o [http://wiki.wireshark.org/Development/LibpcapFileFormat formato descrito na ''libpcap''], a biblioteca de captura usada por esse programa. De acordo com a ''libpcap'', esse arquivo tem o seguinte formato:
 
 
 
[[imagem:Pcap-file.png]]
 
 
 
 
 
Como se vê, o arquivo inicia com um cabeçalho global. Em seguida há uma sequência de pares formados pelo cabeçalho de um pacote e seu conteúdo capturado. O formato do cabeçalho global é:
 
 
 
<syntaxhighlight lang=c>
 
typedef struct pcap_hdr_s {
 
        guint32 magic_number;  /* magic number */
 
        guint16 version_major;  /* major version number */
 
        guint16 version_minor;  /* minor version number */
 
        gint32  thiszone;      /* GMT to local correction */
 
        guint32 sigfigs;        /* accuracy of timestamps */
 
        guint32 snaplen;        /* max length of captured packets, in octets */
 
        guint32 network;        /* data link type */
 
} pcap_hdr_t;
 
</syntaxhighlight>
 
 
 
Os cabeçalhos de pacotes são definidos por outra struct:
 
 
 
<syntaxhighlight lang=c>
 
typedef struct pcaprec_hdr_s {
 
        guint32 ts_sec;        /* timestamp seconds */
 
        guint32 ts_usec;        /* timestamp microseconds */
 
        guint32 incl_len;      /* number of octets of packet saved in file */
 
        guint32 orig_len;      /* actual length of packet */
 
} pcaprec_hdr_t;
 
</syntaxhighlight>
 
 
 
Os detalhes de como usar essas estruturas de dados pode ser visto na [http://wiki.wireshark.org/Development/LibpcapFileFormat descrição do arquivo de captura], no site do '''wireshark'''. Um exemplo de como usá-las segue abaixo:
 
 
 
<syntaxhighlight lang=c>
 
// Cria um arquivo de captura.
 
//
 
// char * nome: o nome do arquivo a ser criado
 
// int snaplen: a quantidade de bytes capturadas em cada pacote
 
// int link: o tipo de enlace onde foram capturados os pacotes
 
//
 
// valor de retorno: o descritor do arquivo aberto (ou NULL em caso de erro)
 
 
 
FILE * create_pcap_file(char * nome, int snaplen, int link) {
 
  pcap_hdr_t header;
 
  FILE * f;
 
 
 
  header.magic_number = 0xa1b2c3d4;
 
  header.version_major = 2;
 
  header.version_minor = 4;
 
  header.thiszone = 0;
 
  header.sigfigs = 0;
 
  header.snaplen = snaplen;
 
  header.network = link;
 
 
 
  if ((f = fopen(nome, "w")) != NULL) {
 
    fwrite(&header, sizeof(header), 1, f);
 
  }
 
 
 
  return f;
 
}
 
 
 
// Grava um pacote no arquivo de captura.
 
//
 
// FILE * f: o descritor do arquivo de captura, criado previamente por create_pacp_file
 
// unsigned char * msg: o buffer que contém os bytes do pacote capturado
 
// int bytes: a quantidade de bytes capturados
 
// int snaplen: a quantidade máxima de bytes capturados
 
 
 
void save_pcap(FILE * f, unsigned char * msg, int bytes, int snaplen) {
 
  pcaprec_hdr_t header;
 
  struct timeval tv;
 
  int maxbytes;
 
 
 
  if (snaplen < bytes) maxbytes = snaplen;
 
  else maxbytes = bytes;
 
 
 
  gettimeofday(&tv, NULL);
 
  header.ts_sec = tv.tv_sec;
 
  header.ts_usec = tv.tv_usec;
 
  header.incl_len = maxbytes;
 
  header.orig_len = bytes;
 
 
 
  fwrite(&header, sizeof(header), 1, f);
 
  fwrite(msg, maxbytes, 1, f);
 
  fflush(f);
 
}
 
</syntaxhighlight>
 
 
 
Os valores para ''link'' (tipo de enlace) onde foi realizada a captura são estes:
 
 
 
<syntaxhighlight lang=c>
 
// Estas definições foram copiadas da biblioteca libpcap
 
// Coloquei-as aqui para não precisar instalar a biblioteca para
 
// compilar esse programa, já que ele não a utiliza.
 
 
 
#define DLT_NULL        0      /* no link-layer encapsulation */
 
#define DLT_EN10MB      1      /* Ethernet (10Mb) */
 
#define DLT_EN3MB      2      /* Experimental Ethernet (3Mb) */
 
#define DLT_AX25        3      /* Amateur Radio AX.25 */
 
#define DLT_PRONET      4      /* Proteon ProNET Token Ring */
 
#define DLT_CHAOS      5      /* Chaos */
 
#define DLT_IEEE802    6      /* IEEE 802 Networks */
 
#define DLT_ARCNET      7      /* ARCNET, with BSD-style header */
 
#define DLT_SLIP        8      /* Serial Line IP */
 
#define DLT_PPP        9      /* Point-to-point Protocol */
 
#define DLT_FDDI        10      /* FDDI */
 
</syntaxhighlight>
 
-->
 
 
 
== 26/08: Enlaces ponto-a-ponto entre roteadores ==
 
 
 
''(se não conseguirmos concluir a experiência da aula anterior ...)''
 
 
 
 
 
Nesta aula serão configurados enlaces entre dois roteadores Cisco usando os protocolos PPP e HDLC. O objetivo é ter um contato com esse tipo de equipamento, e ver os protocolos em ação. Além disto, será feita uma medição de vazão (''throughput'') com cada um dos protocolos.
 
 
 
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab3-2011-1.pdf Roteiro da experiência]
 
* [http://www.cisco.com/warp/cpropub/45/tutorial.htm Tutorial da interface de linha de comando Cisco (CLI)]
 
* [http://www.cisco.com/en/US/tech/tk713/tk507/technologies_tech_note09186a008019cfa7.shtml#ppp01 Resolução de problemas com PPP em roteadores Cisco]
 
 
 
<!-- === Curiosidade: sockets para camada de enlace ===
 
 
 
Assim como é possível escrever programas que se comuniquem usando os protocolos UDP, TCP e IP, também se podem criar programas que se comuniquem diretamente usando um protocolo de enlace. Para isso devem-se usar ''sockets'' do tipo AF_PACKET (no Linux ... em outros Unix pode ser diferente), que possibilitam enviar e receber quadros por uma interface de rede.
 
 
 
A criação de um socket AF_PACKET pode ser feita da seguinte forma:
 
 
 
<syntaxhighlight lang=c>
 
  int sd;
 
 
 
  // criação de um socket do tipo AF_PACKET, por onde se enviam e recebe quadros pela camada
 
  // de enlace. O parâmetro 0x8888 é o identificador de protocolo da camada superior.
 
  if ((sd = socket(AF_PACKET, SOCK_DGRAM, htons(0x8888))) < 0) {
 
    perror("Ao criar o socket");
 
    return 1;
 
  }
 
</syntaxhighlight>
 
 
 
Após criado, o socket deve ser vinculado a uma interface de rede. Dessa forma, os quadros enviados sairão por essa interface, e quadros por ela recebidos serão passados para o socket. A vinculação à interface é feita com a função ''bind'', porém usando-se uma ''struct sockaddr_ll'' para especificar a interface e o identificador do protocolo da camada superior. No exemplo abaixo, vincula-se o socket à interface ''eth0''. Além disso, o protocolo de camada superior foi definido pelo número 8888 (esse valor irá aparecer no campo ''ethertype'' dos quadros Ethernet).
 
 
 
<syntaxhighlight lang=c>
 
  // Precisa vincular o socket a uma interface de rede, usando uma "struct sockaddr_ll"
 
  addr.sll_family = AF_PACKET;
 
  addr.sll_protocol = htons(0x8888); // apenas um exemplo: protocolo de número 8888
 
  addr.sll_ifindex = getif(sd, "eth0"); // descobre o numero da interface de rede
 
 
 
  if (addr.sll_ifindex < 0) {
 
    perror("Interface desconhecida !");
 
    return 1;
 
  }
 
 
 
  // vincula o socket a interface de rede
 
  if (bind(sd, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
 
    perror("Ao fazer bind");
 
    return 1;
 
  }
 
</syntaxhighlight>
 
 
 
''Obs: a função getif, usada acima para obter o número da interface de rede conforme registrado no sistema operacional, foi implementada da seguinte forma:''
 
 
 
<syntaxhighlight lang=c>
 
// Obtém o número de uma interface de rede, conforme registrada no sistema operacional
 
int getif(int sd, char * ifname) {
 
  struct ifreq ifr;
 
 
 
  strcpy(ifr.ifr_name, ifname);
 
  if (ioctl(sd, SIOCGIFINDEX, &ifr) < 0) {
 
    perror("interface ???");
 
    return -1;
 
  }
 
  return ifr.ifr_ifindex;
 
}
 
</syntaxhighlight>
 
  
Tendo o socket criado e vinculado a uma interface, pode-se usá-lo então para enviar e receber quadros.
+
== Estudo de caso: entendendo a rede do IFSC-SJ ==
  
<syntaxhighlight lang=c>
+
A rede do IF-SC é composta pelas redes dos campi, sendo que o campus Mauro Ramos centraliza os links para os demais campi. Dentre eles, o link para a rede do campus São José tem a capacidade de 1 Gbps. Além disso, o link para a Internet se localiza também no campus Mauro Ramos. A figura abaixo mostra um diagrama simplificado da rede do IF-SC, destacando apenas os campis Mauro Ramos, São José e Continente.
  // endreço de destino: broadcast Ethernet
 
  unsigned char dest[6] = {0xff, 0xff,0xff,0xff,0xff,0xff};
 
  
  // Envia 100 quadros
 
  for (i=0; i < 100; i++) {
 
    int bytes;
 
    unsigned char msg[SIZE];
 
  
    // o conteúdo do quadro (payload) está dentro de msg
+
[[imagem:Ifsc.png|600px]]
    bzero(msg, SIZE);
 
    strcpy(msg, "12345678910");
 
  
    // endereço físico do destinatário, e identificador de protocolo (ethertype)
 
    addr.sll_protocol = htons(0x8888);
 
    addr.sll_halen = 6;
 
    memcpy(addr.sll_addr, dest, 6); // variável "dest" é um vetor que contém o endereço de destino
 
  
    // envia um quadro
+
Como se pode ver, os campi são interligados por enlaces (links) de longa-distância com alta capacidade de transmissão (1 Gbps). O link para a Internet, provido pelo [http://www.pop-sc.rnp.br/ POP-SC] (Ponto de Presença da [http://www.rnp.br RNP] em SC, mantido pela UFSC) é também de 1 Gbps. Esses links de longa distância asseguram que não existam gargalos entre os campi, possibilitando uma boa vazão entre as redes.
    if ((bytes=sendto(sd, msg, 100, 0, (struct sockaddr*)&addr, sizeof(addr))) > 0) {
 
      printf("enviados %d bytes ...\n", bytes);
 
    }
 
  
    // espera 1 segundo
+
No nosso primeiro projeto, vamos iniciar estudando a estrutura e funcionamento da rede do campus São José. Essa rede é formada por três redes locais, compostas por switches ethernet, servidores, gateways e firewall. O diagrama abaixo apresenta a estrutura geral da rede do nosso campus.
    sleep(1);
 
  }
 
  close(sd);
 
</syntaxhighlight>
 
  
Juntando esses pedaços de programa acima, podem-se criar programas de demonstração do uso de sockets de enlace:
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/soft/l2-envio.c Programa de envio]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/soft/l2-recepcao.c Programa de recepção]
 
  
Para compilá-los:
+
[[imagem:Ifsc-sj.png|800px]]
<syntaxhighlight lang=c>
 
gcc -o envio l2-envio.c
 
gcc -o recepcao l2-recepcao.c
 
</syntaxhighlight>
 
  
Teste-os rodando o programa de envio em um computador e o de recepção em outro. Eles precisam ser executados com privilégio de administrador, portanto rode-os dentro de máquinas virtuais desta forma:
 
<syntaxhighlight lang=bash>
 
sudo ./envio eth0
 
</syntaxhighlight>
 
  
... e ...
+
* '''Observar os equipamentos in-loco:''' veremos que tipos de equipamentos são usados para manter a estrutura, como são conectados, seus fabricantes e modelos.
 +
* '''Criar um modelo reduzido dessa rede usando equipamentos reais:''' criaremos um modelo usando switches e computadores do laboratório.
 +
* '''Investigar as tecnologias empregadas na rede:''' identificaremos as tecnologias usadas e testaremos sua capacidade de transmissão.
  
<syntaxhighlight lang=bash>
+
== Distinção entre WAN, MAN e LAN ==
sudo ./recepcao eth0
 
</syntaxhighlight>
 
-->
 
 
 
== 30/08: Aula de revisão ==
 
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/Prova1-2010-1.pdf Prova do semestre 2010-1]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/prova1-2011-1.pdf Prova do semestre 2011-1]
 
 
 
Correção das listas 1 e 2.
 
 
 
=== Dúvidas nas listas de exercícios ===
 
 
 
A questão 3 da lista 2 despertou uma dúvida sobre como a utilização e a taxa efetiva variam em função tanto do tamanho da janela quanto da taxa nominal, para um mecanismo ARQ Go-Back-N. Foram plotados dois gráficos para ilustrar a dependência entre elas, mostrados abaixo. Eles foram gerados usando estes valores: quadros de 1500 bytes, atraso de propagação de 5 ms, quadros ACK de 8 bytes.
 
 
 
[[imagem:TaxaEfetiva.png]]<br><br>
 
''Taxa efetiva em função do tamanho da janela (N) e da taxa nominal''
 
 
 
 
 
----
 
 
 
 
 
[[imagem:Utilizacao.png]]<br><br>
 
''Utilização em função do tamanho da janela (N) e da taxa nominal''
 
 
 
== 02/09: Introdução à camada física ==
 
 
 
Ver capítulos 3, 4 e 5 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (cópia no xerox).
 
 
 
Ver [http://tele.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-fisica.pdf transparências].
 
 
 
 
 
'''A camada física: camada mais baixa da arquitetura de redes'''
 
 
 
[[imagem:Osi-tcpip.png]]
 
 
 
 
 
'''Serviços da camada física:'''
 
 
 
[[Imagem:Servicos-Camada-Fisica.png|600px]]
 
<br>''(Adaptado do livro "Comunicação de Dados e Redes de Computadores, 3a ed.", de Berhouz Forouzan)''
 
 
 
=== Transmissão digital ===
 
 
 
* Transmissão serial síncrona x assíncrona
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab3-2009-2.pdf Experiência para comparar esses dois tipos de transmissão serial]
 
 
 
== 06/09: 1a avaliação ==
 
 
 
Foi realizada [http://www.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/prova1-2011-1.pdf esta avaliação].
 
 
 
== 09/09: Modems ==
 
 
 
* Resolver a [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista3-2010-1.pdf 3a lista].
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula5-modems.pdf transparências] sobre modems.
 
 
 
[[imagem:Modelo-comunicacao.png]]
 
 
 
 
 
Existem diversas tecnologias para criar enlaces ponto-a-ponto de longa distância. Inicialmente estudaremos enlaces criados com modems síncronos, por ser muito comum ainda de ser implantado. Esse tipo de enlace faz uso de pares metálicos tipicamente usados em redes telefônicas, e por isso foram a primeira solução usada em larga escala. Deve-se ter em mente que quando surgiu a necessidade de enlaces de dados de longa distância, a única opção que havia (e a mais barata, justamente por já existir) era a rede telefônica. Assim, toda uma geração de equipamentos de comunicação de dados foi criada para usar o tipo de circuito provido em redes telefônicas, e o tipo de fiação nela utilizada.
 
 
 
'''Questão para pesquisa:''' ''atualmente como são implantados os circuitos de dados de longa distância, e como eles se relacionam com a rede telefônica ?''
 
 
 
[[imagem:Rede-ier-wan.png]]
 
 
 
==== Atividade ====
 
 
 
# Realizar a [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab3.pdf experiência com modems síncronos], em que se configuram modems SHDSL ([http://www.sj.ifsc.edu.br/~msobral/RCO2/manuais/Guia_DT2048_SHDSL_T_E_S_VG_210.5088.00-1.pdf Manual modem DT2048 SHDSL]).
 
# Pesquisar qual a codificação usada no modem SHDSL (publicar aqui mesmo na wiki):
 
#* Taxas de bit suportadas
 
#* Frequência de portadora
 
#* Tipo de codificação usada (inclua um diagrama para exemplificar)
 
#* Níveis de tensão usados no sinal
 
 
 
== 12/09: Modems digitais ==
 
 
 
...continuando a aula anterior.
 
 
 
== 16/09: Enlaces de teste em modems ==
 
 
 
* Finalizar a [[RCO2-2011-1#Atividade_4|experiência da aula passada]].
 
* Para hoje: como testar circuitos com modems
 
** Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula6-modems-analogicos.pdf transparências].
 
** [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/lab5-2010-2.pdf Roteiro do experimento]
 
 
 
=== Atividade em aula ===
 
 
 
Vamos criar uma tabela com informações sobre os códigos de linha/modulações usados em diversas tecnologias. Devemos descobrir a técnica de modulação ou codificação, as taxas de bit suportadas, frequências de portadoras, níveis de sinal (amplitude), alcance de transmissão e tipo de meio de transmissão suportados. Além disso, deve-se identificar a aplicação de cada uma dessas tecnologias.
 
 
 
* Interface digital V.35
 
* Interface digital RS-232
 
* PHY Ethernet 10 Mbps, 100 Mbps, 1 Gbps e 10 Gbps
 
* Modems SHDSL
 
** [http://www.dsl-broadband-isp.com/about-shdsl/shdsl-faq SHDSL Faq]
 
** [http://www.broadband-forum.org/marketing/download/mktgdocs/SHDSL_wp.pdf SHDSL White Paper]
 
* Modems aDSL
 
* Modems VDSL
 
* PLC (Power Line Communication)
 
* CATV (links de dados via TV a cabo)
 
* Modems V.92 (acesso discado)
 
* CAN (um tipo de rede industrial)
 
* HPNA (tecnologia para redes domésticas): ver [http://www.artigos.com/artigos/exatas/tecnologia/uso-da-tecnologia-hpna-como-alternativa-para-comunicacao-entre-dispositivos-com-interface-ethernet-13798/artigo/ artigo] indicado pelo Davi.
 
 
 
Obs: veja os modems de alguns fabricantes:
 
* [http://www.datacom.ind.br/new/taxonomy/term/45 datacom]
 
* [http://www.rad.com/20/First-Mile-Local-Loop/2489/ RAD]
 
* [http://www.digitel.com.br/pt/produtos/default.asp Digitel]
 
* [http://www.cianet.ind.br/ Cianet]
 
 
 
 
 
{| border="1" cellpadding="2"
 
!Tecnologia
 
!Modulação/Codificação
 
!Taxa de bits
 
!Alcance (m)
 
!Meio físico
 
!Aplicação
 
|-
 
|CATV (Docsis 3.0) || QAM-64 down / QPSK up || até 304 Mbps down / 122 up || ??? || HFC (Coaxial + Fibra) || Acesso
 
|-
 
|SHDSL || TC-PAM || 64 kbps a 2.3 Mbps|| 6,5 km a 3,8 km||fios telefonia|| Acesso
 
|-
 
|HDSL || 2B1Q || 2048 kbps|| ||fios telefonia|| Acesso
 
|-
 
|ADSL2+ || DMT + QAM|| até 20 Mbps|| ||fios telefonia|| Acesso
 
|-
 
|PLC/BPL || OFDM || || ||fios elétricos|| Acesso,rede local
 
|-
 
|HPNA || FD-QAM || || ||fios telefonia/coaxial|| Rede residencial
 
|-
 
|V.92 || QAM/TCM || 56 kbps up/28.8 kbps down|| ||fios telefonia|| Acesso
 
|}
 
 
 
<!-- === Tarefa individual ===
 
 
 
A tarefa individual a seguir faz parte da avaliação do segundo módulo da disciplina.
 
 
 
Fazer uma  pesquisa sobre a codificação de linha/modulação usadas em aDSL2+. O texto deve explicar as características elétricas do sinal gerado na  linha, a codificação ou modulação adotadas, e quaisquer outras estruturações que porventura existam no sinal; explore o uso de diagramas para ilustrar as informações apresentadas. Por fim, deve descrever também os protocolos de enlace usados e a sequência de encapsulamentos realizada desde o computador do usuário (o cliente aDSL2+) até o roteador na operadora.
 
 
 
Sua pesquisa deve conter:
 
* Um resumo (ou ''abstract''), com no máximo 10 linhas, informando o que está contido no texto.
 
* Uma introdução, contendo a contextualização do serviço aDSL (quando  foi criado, a quem se destina,  e qual o princípio tecnológico) e indicando que informações serão apresentadas no  texto.
 
* Uma seção sobre a codificação ou modulação usada no  aDSL
 
* Uma seção sobre  os protocolos de enlace utilizados, incluindo os encapsulamentos efetuados desde o cliente aDSL e o roteador na operadora.
 
* Uma conclusão
 
* A bibliografia utilizada (com referências no texto).
 
 
 
'''Entrega: 15/04/2011'''
 
-->
 
 
 
== 20/09: Modems analógicos e Interfaces digitais ==
 
 
 
Ver capítulo 5 e 6 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (cópia no xerox).
 
 
 
Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula6-modems-analogicos.pdf transparências sobre modems analógicos].
 
 
 
Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula5-modems.pdf transparências sobre interfaces digitais].
 
 
 
Um [[Interfaces_Digitais_IER|catálogo de interfaces digitais]] feito pela turma do curso Técnico em 2011-1.
 
 
 
 
 
Durante a aula serão feitas experiências sobre interfaces digitais V.35 e RS-232c.
 
 
 
* [http://en.wikipedia.org/wiki/List_of_device_bandwidths Tabelas de taxas de transmissão de diferentes tecnologias]
 
* [http://www.best-microcontroller-projects.com/how-rs232-works.html Interface RS-232]
 
* [http://docstore.mik.ua/univercd/cc/td/doc/product/atm/l2020/l2020r21/clicard/planning/cabling.htm Cabos e pinagens de diversas interfaces digitais]
 
 
 
[[imagem:Rede-ID.png]]
 
 
 
=== Códigos de linha ===
 
 
 
Resolver a [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista4-2010-1.pdf 4a lista de exercícios].
 
 
 
Ver capítulos 3 e 4 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (cópia no xerox).
 
 
 
Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula4-codigos.pdf transparências] sobre códigos de linha.
 
 
 
[http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/5965-7160E.pdf Bom texto sobre modulação digital]
 
 
 
* Animações de códigos de linha:
 
** [http://www.youtube.com/watch?v=PeUUeOd3w8U NRZ]
 
** [http://www.youtube.com/watch?v=p1xSolqJ9ZI Vários códigos de linha básicos]
 
 
 
<!-- === Trabalho coletivo ===
 
 
 
Após ver um conjunto de tecnologias de enlace e de camada física, devem existir questões como "afinal, quais tecnologias são usadas de fato atualmente, e quais as apostas para o futuro próximo ?". Para responder a essa pergunta propõe-se um trabalho coletivo de pesquisa para criar uma tabela dessas tecnologias junto com algumas outras informações:
 
 
 
* Que protocolos de enlace estão envolvidos ?
 
* Qual a codificação ou modulação usada ?
 
* Em que tipo de circuito é usada (incluindo o tipo de meio de transmissão) ?
 
* Que equipamentos são necessários (incluindo os modelos) ?
 
* Quais as taxas de bits nominais e BER que proporcionam ?
 
* Qual o custo do enlace ?
 
* Empresa de onde obteve a informação ?
 
 
 
Os resultados da pesquisa devem ser colocados aqui mesmo na Wiki.
 
-->
 
 
 
== 23/09: Redes locais ==
 
 
 
* Correção de exercícios das listas 3 e 4.
 
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/prova2-2010-2.pdf 2a avaliação de 2010-2]
 
 
 
=== Introdução a redes locais ===
 
* Transparências:
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula7.pdf Introdução]
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula8.pdf LANs e acesso ao meio]
 
* Capítulo 13 do livro "''Comunicação de Dados e Redes de Computadores''", de Berhouz Forouzan (tem no xerox)
 
* Capítulo 15 do livro "Redes e sistemas de comunicação de dados",  de William Stallings.
 
* Capítulo 4 do livro "''Redes de Computadores''", de Andrew Tanenbaum (tem na biblioteca)
 
 
 
=== Distinção entre WAN, MAN e LAN ===
 
  
 
* Aplicações de cada um desses tipos de rede
 
* Aplicações de cada um desses tipos de rede
Linha 882: Linha 270:
 
** [http://en.wikipedia.org/wiki/Myrinet Myrinet]
 
** [http://en.wikipedia.org/wiki/Myrinet Myrinet]
 
** [http://en.wikipedia.org/wiki/InfiniBand Infiniband]
 
** [http://en.wikipedia.org/wiki/InfiniBand Infiniband]
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab6-2010-2.pdf Roteiro do experimento]
 
  
  
Linha 902: Linha 289:
 
<br>''Uma LAN um pouco maior, e também com um link para Internet''
 
<br>''Uma LAN um pouco maior, e também com um link para Internet''
  
 +
= 09/03 LANs: arquitetura IEEE 802 =
  
 
+
A [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista1.pdf 1a lista de exercícios] já está disponível.
[[imagem:Lan-media.png]]<br>''Uma LAN de médio porte''
 
 
 
== 27/09: Redes locais: arquitetura IEEE 802 ==
 
  
 
* Arquitetura IEEE 802 e Redes locais IEEE 802.3 (Ethernet)
 
* Arquitetura IEEE 802 e Redes locais IEEE 802.3 (Ethernet)
 
** Ver [http://tele.sj.ifsc.edu.br/~msobral/RCO2/slides/aula9-ieee.pdf transparências].
 
** Ver [http://tele.sj.ifsc.edu.br/~msobral/RCO2/slides/aula9-ieee.pdf transparências].
 +
** Capítulo 14 do livro "Comunicação de Dados e Redes de Computadores", de Behrouz Forouzan.
 +
** Capítulo 5 do livro "Redes de Computadores e a Internet", de James Kurose.
 
** Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum.
 
** Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum.
** Capítulo 14 do livro "Comunicação de Dados e Redes de Computadores", de Behrouz Forouzan.
+
** [http://www.arandanet.com.br/midiaonline/rti/2010/abril/index.html Ethernet 40 Gbps e 100 Gbps]
 +
 
  
 
[[Imagem:Ethernet.png|600px]]
 
[[Imagem:Ethernet.png|600px]]
Linha 929: Linha 317:
 
... mas no início redes Ethernet não eram assim ! Leia o material de referência para ver como eram essas redes num passado relativamente próximo.
 
... mas no início redes Ethernet não eram assim ! Leia o material de referência para ver como eram essas redes num passado relativamente próximo.
 
   
 
   
=== Arquitetura IEEE 802 ===
+
== Atividade ==
 +
 
 +
Será criado um modelo simplificado da [[RCO2-2012-1#Estudo_de_caso:_entendendo_a_rede_do_IFSC-SJ|rede do campus IF-SC SJ]].
 +
 
 +
... como tarefa extra-classe, experimente fazer esse modelo reduzido também com o [[Netkit]].
 +
 
 +
{{collapse top|Um exemplo de configuração para o Netkit}}
 +
<syntaxhighlight lang=text>
 +
# computadores e switch que ficam na subrede do IF-SC SJ
 +
ifsc1[type]=generic
 +
ifsc2[type]=generic
 +
ifsc-switch[type]=switch
 +
asa5510[type]=gateway
 +
 
 +
# Gateway, micros e switch do lab. Redes 1
 +
r1-2[type]=generic
 +
r1-3[type]=generic
 +
gw-r1[type]=gateway
 +
r1-switch[type]=switch
 +
 
 +
# Gateway, micros e switch  do lab. Redes 2
 +
r2-2[type]=generic
 +
r2-3[type]=generic
 +
gw-r2[type]=gateway
 +
r2-switch[type]=switch
 +
 
 +
# Asportas do switch do IF-SC SJ
 +
ifsc-switch[eth0]=ifsc-port1
 +
ifsc-switch[eth1]=ifsc-port2
 +
ifsc-switch[eth2]=ifsc-port3
 +
ifsc-switch[eth3]=ifsc-port4
 +
ifsc-switch[eth4]=ifsc-port5
 +
 
 +
# Micros da subrede do IF-SC obtem enderecos IP via DHCP
 +
ifsc1[eth0]=ifsc-port1:ip=dhcp
 +
ifsc2[eth0]=ifsc-port2:ip=dhcp
 +
 
 +
# O ASA 5510 é gateway da rede do IF-SC SJ.
 +
asa5510[eth0]=ifsc-port3:ip=172.18.0.254/16
 +
 
 +
# ... no uplink não foi usado o IP externo do IF-SC SJ para evitar conflito
 +
# (isso poderia impedir esse gateway de se comunicar com servidores do IF-SC).
 +
asa5510[eth1]=uplink:ip=10.0.0.1/30
 +
asa5510[default_gateway]=10.0.0.2
 +
 
 +
# O ASA 5510 faz NAT da rede interna.
 +
asa5510[nat]=eth1
 +
 
 +
# O ASA 5510 é também o servidor DHCP da subrede do IF-SC SJ
 +
asa5510[dhcp]=eth0:range=172.18.20.1,172.18.30.200:default-lease=43200:max-lease=86400:gateway=172.18.0.254
 +
 
 +
# Portas do switch do lab. Redes 1
 +
r1-switch[eth0]=r1-port1
 +
r1-switch[eth1]=r1-port2
 +
r1-switch[eth2]=r1-port3
 +
 
 +
# Ligacao dos micros e gateway do lab. Redes 1 ao seu switch. Esses micros tem IP fixo.
 +
r1-2[eth0]=r1-port1:ip=192.168.1.2/24
 +
r1-3[eth0]=r1-port2:ip=192.168.1.3/24
 +
gw-r1[eth0]=r1-port3:ip=192.168.1.1/24
 +
 
 +
# O gateway do lab. Redes 1 fica ligado tambem ao switch do IF-SC
 +
gw-r1[eth1]=ifsc-port4:ip=172.18.0.100/16
 +
 
 +
# O gateway default dos micros do lab. Redes 1
 +
r1-2[default_gateway]=192.168.1.1
 +
r1-3[default_gateway]=192.168.1.1
 +
 
 +
# A rota default do gateway do lab. Redes 1 vai pelo ASA 5510
 +
gw-r1[default_gateway]=172.18.0.254
 +
 
 +
# O gateway do lab. Redes 1 faz NAT da rede interna
 +
gw-r1[nat]=eth1
 +
 
 +
# Portas do switch do lab. Redes 2
 +
r2-switch[eth0]=r2-port1
 +
r2-switch[eth1]=r2-port2
 +
r2-switch[eth2]=r2-port3
 +
 
 +
# Ligacao dos micros e gateway do lab. Redes 2 ao seu switch. Esses micros tem IP fixo.
 +
r2-2[eth0]=r2-port1:ip=192.168.2.2/24
 +
r2-3[eth0]=r2-port2:ip=192.168.2.3/24
 +
gw-r2[eth0]=r2-port3:ip=192.168.2.1/24
 +
 
 +
# O gateway do lab. Redes 2 fica ligado tambem ao switch do IF-SC
 +
gw-r2[eth1]=ifsc-port5:ip=172.18.0.101/16
 +
 
 +
# O gateway default dos micros do lab. Redes 2
 +
r2-2[default_gateway]=192.168.2.1
 +
r2-3[default_gateway]=192.168.2.1
 +
 
 +
# A rota default do gateway do lab. Redes 2 vai pelo ASA 5510
 +
gw-r2[default_gateway]=172.18.0.254
 +
 
 +
# O gateway do lab. Redes 2 faz NAT da rede interna
 +
gw-r2[nat]=eth1</syntaxhighlight>
 +
 
 +
 
 +
Essa configuração gera a seguinte rede no Netkit:
 +
 
 +
 
 +
[[imagem:Ifsc-sj.png|600px]]
 +
{{collapse bottom}}
 +
 
 +
== Arquitetura IEEE 802 ==
  
  
Linha 959: Linha 451:
  
 
* [http://www.datacottage.com/nch/eoperation.htm Animacões que mostram o tratamento de colisões]  
 
* [http://www.datacottage.com/nch/eoperation.htm Animacões que mostram o tratamento de colisões]  
 
==== Ver também ====
 
 
Leia este texto:
 
* [http://www.arandanet.com.br/midiaonline/rti/2010/abril/index.html Ethernet 40 Gbps e 100 Gbps]
 
  
 
=== Utilização do meio de transmissão em uma rede local com MAC do tipo CSMA/CD ===
 
=== Utilização do meio de transmissão em uma rede local com MAC do tipo CSMA/CD ===
Linha 974: Linha 461:
  
 
O ''total de quadros recebidos'' pode ser obtido em qualquer um dos computadores.
 
O ''total de quadros recebidos'' pode ser obtido em qualquer um dos computadores.
 +
 +
{{collapse top|Experiência com uma rede real}}
  
 
Para fazer com uma rede real:
 
Para fazer com uma rede real:
Linha 994: Linha 483:
  
 
Com esses dados deve-se plotar um gráfico da quantidade de bytes recebidos X quantidade de estações transmissoras. Na tabela acima, as estações transmissoras estão na 1a coluna, e a quantidade de bytes recebidos deve ser calculada pela subtração da 3a coluna pela 2a coluna.
 
Com esses dados deve-se plotar um gráfico da quantidade de bytes recebidos X quantidade de estações transmissoras. Na tabela acima, as estações transmissoras estão na 1a coluna, e a quantidade de bytes recebidos deve ser calculada pela subtração da 3a coluna pela 2a coluna.
 +
{{collapse bottom}}
  
Para fazer a experiência pode ser feita também com o simulador Omnet++:
+
{{collapse top|Experiência com uma rede simulada}}
*** [[Omnetpp-Instalacao|Instale o Omnet++ 4]]
+
 
*** Instale o modelo INET: <syntaxhighlight lang=bash>
+
Para fazer a experiência pode-se usar também o simulador Omnet++:
 +
* [[Omnetpp-Instalacao|Instale o Omnet++ 4]]
 +
* Instale o modelo INET: <syntaxhighlight lang=bash>
 
# Faz o download do INET Framework (aprox. 23 MB)
 
# Faz o download do INET Framework (aprox. 23 MB)
 
wget http://tele.sj.isfc.edu.br/~msobral/RCO2/soft/inet-20100323-src.tgz
 
wget http://tele.sj.isfc.edu.br/~msobral/RCO2/soft/inet-20100323-src.tgz
Linha 1 009: Linha 501:
 
make
 
make
 
</syntaxhighlight>
 
</syntaxhighlight>
*** Copie esses arquivos para dentro de ''inet/examples/ethernet/lans'':<br>[http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5/mu.ini mu.ini]<br>[http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5/mu2.ini mu2.ini]<br>[http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5/Networks.ned Networks.ned]
+
* Copie esses arquivos para dentro de ''inet/examples/ethernet/lans'':<br>[http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5/mu.ini mu.ini]<br>[http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5/mu2.ini mu2.ini]<br>[http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab5/Networks.ned Networks.ned]
*** Para executar uma simulação interativa, com animação, faça assim: <syntaxhighlight lang=bash>
+
* Para executar uma simulação interativa, com animação, faça assim: <syntaxhighlight lang=bash>
 
cd inet/examples/ethernet/lans
 
cd inet/examples/ethernet/lans
 
./run mu.ini
 
./run mu.ini
 
</syntaxhighlight>... e escolha um dos modelos para executar.
 
</syntaxhighlight>... e escolha um dos modelos para executar.
*** Para executar uma simulação não-interativa, com uma bateria de experimentos que variam a quantidade de estações (2 a 16) e tamanhos de quadros (256, 512 e 1480 bytes), faça assim: <syntaxhighlight lang=bash>
+
* Para executar uma simulação não-interativa, com uma bateria de experimentos que variam a quantidade de estações (2 a 16) e tamanhos de quadros (256, 512 e 1480 bytes), faça assim: <syntaxhighlight lang=bash>
 
cd inet/examples/ethernet/lans
 
cd inet/examples/ethernet/lans
 
./run -u Cmdenv -c Hub1 mu2.ini
 
./run -u Cmdenv -c Hub1 mu2.ini
 
</syntaxhighlight>
 
</syntaxhighlight>
*** Os resultados das simulações estarão em arquivos dentro do subdiretório ''inet/examples/ethernet/lans/results''. Por exemplo, o arquivo ''Hub1-0.sca'' contém o resultado da primeira simulação, e parte de seu conteúdo é mostrada abaixo (cada linha contém algum resultado ou estatística da simulação, e o título é auto-explicativo): <syntaxhighlight lang=text>
+
* Os resultados das simulações estarão em arquivos dentro do subdiretório ''inet/examples/ethernet/lans/results''. Por exemplo, o arquivo ''Hub1-0.sca'' contém o resultado da primeira simulação, e parte de seu conteúdo é mostrada abaixo (cada linha contém algum resultado ou estatística da simulação, e o título é auto-explicativo): <syntaxhighlight lang=text>
 
version 2
 
version 2
 
run Hub1-1-20100423-09:38:33-7627
 
run Hub1-1-20100423-09:38:33-7627
Linha 1 090: Linha 582:
 
* 2 a 45 estações
 
* 2 a 45 estações
 
* Geração de tráfego por estação com intervalos entre quadros dados por uma distribuição exponencial com média 15*tamanho_quadro_em_bits*0.11us (0.11us é o tempo aproximado de um bit)
 
* Geração de tráfego por estação com intervalos entre quadros dados por uma distribuição exponencial com média 15*tamanho_quadro_em_bits*0.11us (0.11us é o tempo aproximado de um bit)
 +
{{collapse bottom}}
  
* Uma análise feita no capítulo 4 do livro "Redes de Computadores, 4a ed." de Andrew Tanenbaum fornece a seguinte previsão de desempenho para o CSMA/CD em uma rede Ethernet a 10 Mbps.
+
{{collapse top|Análise de desempenho do CSMA/CD}}
 +
 
 +
Uma análise feita no capítulo 4 do livro "Redes de Computadores, 4a ed." de Andrew Tanenbaum fornece a seguinte previsão aproximada de desempenho para o CSMA/CD em uma rede Ethernet a 10 Mbps.
  
 
* ''Utilização do meio:''
 
* ''Utilização do meio:''
Linha 1 106: Linha 601:
 
Essa figura mostra curvas para a utilização do meio em função da quantidade de estações prontas para transmitir, e para diferentes tamanhos de quadro. A conclusão é que quadros menores proporcionam desempenho inferior, assim como uma quantidade maior de estações resulta em uma provável menor utilização do meio. No entanto essa análise considera a rede numa situação de carga muito alta, o que não acontece normalmente. Há também algumas simplificações no desenvolvimento da análise, tal como considerar que a probabilidade de retransmissão constante em cada ''slot'', ao invés de analisar o algoritmo de recuo exponencial binário (''backoff''). Finalmente, esse resultado tem sentido para um meio de transmissão compartilhado, mas a atualmente as redes locais ethernet trabalham com meios de transmissão exclusivos (''ethernet comutada e full-duplex'', em que não há risco de colisão).
 
Essa figura mostra curvas para a utilização do meio em função da quantidade de estações prontas para transmitir, e para diferentes tamanhos de quadro. A conclusão é que quadros menores proporcionam desempenho inferior, assim como uma quantidade maior de estações resulta em uma provável menor utilização do meio. No entanto essa análise considera a rede numa situação de carga muito alta, o que não acontece normalmente. Há também algumas simplificações no desenvolvimento da análise, tal como considerar que a probabilidade de retransmissão constante em cada ''slot'', ao invés de analisar o algoritmo de recuo exponencial binário (''backoff''). Finalmente, esse resultado tem sentido para um meio de transmissão compartilhado, mas a atualmente as redes locais ethernet trabalham com meios de transmissão exclusivos (''ethernet comutada e full-duplex'', em que não há risco de colisão).
  
Para fins de comparação, um experimento de simulação foi realizado (conforme descrito na [[RCO2-2010-2#Utiliza.C3.A7.C3.A3o_do_meio_de_transmiss.C3.A3o_em_uma_rede_local.2C_com_MAC_do_tipo_CSMA.2FCD|aula anterior]]), e foram obtidos os resultados mostrados na figura abaixo.
+
Para fins de comparação, veja os resultados obtidos com uma rede simulada.
 
+
{{collapse bottom}}
[[imagem:Csma-perf-sim.png]]
 
 
 
Para esse experimento foram realizadas simulações com os seguintes parâmetros:
 
* Quadros de 256, 512 e 1480 bytes
 
* 2 a 45 estações
 
* Geração de tráfego por estação com intervalos entre quadros dados por uma distribuição exponencial com média 15*tamanho_quadro_em_bits*0.11us (0.11us é o tempo aproximado de um bit)
 
  
== 04/10: 2a avaliação ==
+
= 14/03: Interligando redes locais =
 
 
Envolve o conteúdo sobre Camada Física, e se baseará nas listas de exercícios 3 e 4.
 
 
 
== 07/10: Redes locais: arquitetura IEEE 802 e interligação de LANs ==
 
 
 
* Ver [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista5.pdf 5a lista de exercícios].
 
** Obs: tente resolver as questões finais usando o [[Netkit]].
 
  
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula10.pdf transparências].
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula10.pdf transparências].
 
* Capítulo 16 do livro "''Comunicação de Dados e Redes de Computadores, 3a ed.''", de Behrouz Forouzan.
 
* Capítulo 16 do livro "''Comunicação de Dados e Redes de Computadores, 3a ed.''", de Behrouz Forouzan.
 +
* Capítulo 5 do livro "''Redes de Computadores e a Internet, 5a ed.''", de James Kurose.
 
* Capítulo 4 do livro "''Redes de Computadores, 4a ed.''", de Andrew Tanenbaum.
 
* Capítulo 4 do livro "''Redes de Computadores, 4a ed.''", de Andrew Tanenbaum.
  
'''Interligação de LANs (norma IEEE802.1D):'''
+
 
 +
== Interligação de LANs (norma IEEE802.1D) ==
 +
 
 
* Operação de pontes e switches [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab7-2011-1.pdf (roteiro)]
 
* Operação de pontes e switches [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab7-2011-1.pdf (roteiro)]
** Visualizar o aprendizado de endereços em um switch ou ponte
+
** Como um  switch aprende que endereços MAC estão em cada porta ?
 +
** Como um switch encaminha um quadro cujo destinatário é desconhecido ?
 +
** Como um switch propaga quadros em broadcast ?
 
*** [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/lan-switch-transparent.swf Animação sobre o funcionamento de switches (Cisco)]
 
*** [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/lan-switch-transparent.swf Animação sobre o funcionamento de switches (Cisco)]
** Visualizar como um switch ou ponte propaga quadros em broadcast.
 
  
=== Tecnologias de LAN switches ===
+
== Tecnologias de LAN switches ==
  
Leia este [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/switch-internals.pdf bom texto] sobre estruturas internas de switches.
+
Switches ''store-and-forward'' X ''cut-through''
 +
* Leia este [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/switch-internals.pdf bom texto] sobre estruturas internas de switches.
  
  
Outros materiais:
 
 
* [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a00800a7af3.shtml#switchtechs Bom texto sobre switches]
 
* [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a00800a7af3.shtml#switchtechs Bom texto sobre switches]
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/lan-switch-transparent.swf Animação sobre o funcionamento de switches (Cisco)]
+
* [http://www.cisco.com/image/gif/paws/10607/lan-switch-transparent.swf Animação sobre o funcionamento de switches]
 
* [http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html Texto sobre tecnologias de switches (store-and-forward e cut-through)]
 
* [http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9670/white_paper_c11-465436.html Texto sobre tecnologias de switches (store-and-forward e cut-through)]
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0142.mov Animacão sobre switches cut-through]
+
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0141.mov Animacão sobre switches store-and-forward]
+
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0143.mov Animacão sobre switches simétricos (todas portas com mesma taxa de bits)]
+
Algumas animações mostrando o funcionamento de switches ''store-and-forward'' e ''cut-through'':
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0144.mov Animacão sobre switches assimétricos (portas com diferentes taxas de bits)]
+
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0142.mov Animacão sobre switches cut-through]
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0141.mov Animacão sobre switches store-and-forward]
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0143.mov Animacão sobre switches simétricos (todas portas com mesma taxa de bits)]
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/videos/q0144.mov Animacão sobre switches assimétricos (portas com diferentes taxas de bits)]
 +
 
  
 
* Quais são as características dos switches do laboratório ?
 
* Quais são as características dos switches do laboratório ?
Linha 1 153: Linha 643:
 
** 3Com 3224 [http://www.3com.com/prod/pt_la_amer/detail.jsp?tab=prodspec&sku=3C16479 (especificações)]
 
** 3Com 3224 [http://www.3com.com/prod/pt_la_amer/detail.jsp?tab=prodspec&sku=3C16479 (especificações)]
  
=== TRABALHO sobre switches ===
+
== Segmentando redes ==
 +
 
 +
A equipe que administra a rede do campus São José vem estudando uma reestruturação dessa rede. Como diferentes setores e públicos a utilizam, e para diferentes propósitos, concluiu-se que seria apropriado segmentá-la em algumas subredes. Isso possibilitaria facilitar o controle de quem usa a rede, além do policiamento do tráfego. Para isso, a subrede geral do campus precisaria ser segmentada inicialmente em cinco novas subredes, denominadas:
 +
 
 +
{| border="1" cellpadding="2"
 +
!Segmento
 +
!Descrição
 +
!Subrede IP
 +
|-
 +
|'''Pedagogica''' || Pontos das salas de aula e laboratórios de informática|| 172.18.32.0/20
 +
|-
 +
|'''Administrativa''' || Pontos de setores administrativos|| 172.18.16.0/20
 +
|-
 +
|'''DMZ''' || Servidores acessíveis de fora da escola (ex: Wiki, WWW)|| 200.135.37.64/26
 +
|-
 +
|'''BD''' || Servidores que hospedam bancos de dados (ex: LDAP, MySQL)|| 172.18.240.0/24
 +
|-
 +
|'''LAN''' || Demais pontos de rede || 172.18.0.0/20
 +
|}
 +
 
  
Para ser lançado em mercado, um switch deve apresentar conformidade com as especificações para ''bridges'' do padrão IEEE 802.1D. Além disso, deve também ter descritos seus parâmetros de desempenho.  
+
A figura abaixo mostra a estrutura proposta para a rede do campus São José, composta pelas cinco novas subredes e as subredes dos laboratórios de Redes 1 e Redes 2. Como se pode observar, o roteador/firewall Cisco ASA 5510 se torna um nó central da rede, pois interliga todas suas subredes (com exceção dos laboratórios de Redes 1 e Redes 2).
  
O trabalho consiste em efetuar uma avaliação de um switch de baixo custo. Deve-se determinar:
 
# Se o switch opera conforme uma ponte transparente (''transparent bridge''), de acordo com o padrão IEEE 802.1D.
 
# Se o switch é robusto (não tranca).
 
# Informações de desempenho do switch: latência, vazão (''throughput''), ''backplane'', tamanho da tabela de endereços MAC (total e por porta), taxas de bits e modos duplex, suporte a auto-negociação, limites mínimos e máximos de tamanhos de quadros.
 
  
Cada equipe receberá um switch, com que deve criar experimentos para responder os ítens da avaliação. Os resultados devem ser reportados em um relatório composto pelas seções:
+
[[imagem:Nova-rede-ifsc-sj.png|600px]]
# Título
 
# Identificação dos membros da equipe
 
# Objetivo do trabalho
 
# Introdução: uma visão geral sobre a avaliação do switch, em que se explicam sucintamente os pontos a serem avaliados. Na introdução deve-se também apresentar resumidamente os procedimentos realizados, e uma indicação dos resultados obtidos.
 
# Desenvolvimento: descrição dos experimentos e seus resultados. Cada experimento deve ser explicado com detalhes, de forma que outra pessoa pudesse repeti-los. Os resultados devem ser apresentados de forma clara, explorando o uso de gráficos e tabelas quando adequado.
 
# Conclusão: uma discussão sobre os resultados obtidos, acompanhada de um julgamento sobre a avaliação do switch.
 
# Bibliografia: uma listagem das referências bibliográficas utilizadas (e que devem ser citadas no texto).
 
  
  
As equipes podem ser compostas por até '''3 alunos'''.
+
Existe mais de uma forma de implantar uma estrutura como essa, as quais serão apresentadas nas próximas subseções.
  
'''Prazo de entrega: 18/10'''
+
=== Segmentação física ===
  
'''OBS:''' use [http://tele.sj.ifsc.edu.br/~msobral/soft/l2-envio.c este programa] para enviar quadros ethernet com endereços de origem forjados. Ele enviará quadros indefinidamente, sendo que cada quadro terá um endereço de origem diferente. O intervalo entre envios é de 100 microssegundos (pode ser modificado editando o programa). Os quadros possuem o campo ''ethertype'' com valor 0x8888. Para compilá-lo faça assim:
+
A segmentação física é uma solução aparentemente simples e direta. Cada subrede deve ser composta de uma estrutura exclusiva, contendo seus switches e cabeamentos. No entanto, para adotar esse tipo de segmentação, algumas modificações precisarão ser feitas na infraestrutura de rede existente. Observe a estrutura física da rede do campus:
  
<syntaxhighlight lang=bash>
+
[[imagem:Rede-ifsc-sj.png|600px]]
gcc -o envio l2-envio.c
+
 
</syntaxhighlight>
+
 
 +
O que seria necessário fazer para implantar uma segmentação física ?
 +
 
 +
=== Segmentação com VLANs ===
 +
 
 +
Se a reestruturação pudesse ser efetuada com mínimas modificações na estrutura física (incluindo cabeamento), a implantação da nova rede seria mais rápida e menos custosa. Para isso ser possível, seria necessário que a infraestrutura de rede existente tivesse a capacidade de agrupar portas de switches, separando-as em segmentos lógicos. Quer dizer, deveria ser possível criar '''redes locais virtuais''', como mostrado na seguinte figura:
 +
 
 +
[[imagem:Vlans.png]]
 +
 
 +
No exemplo acima, três redes locais virtuais ('''VLAN''') foram implantadas nos switches. Cada rede local virtual é composta por um certo número de computadores, que podem estar conectados a diferentes switches. Assim, uma rede local pode ter uma estrutura lógica diferente da estrutura física (a forma como seus computadores estão fisicamente interligados). Uma facilidade como essa funcionaria, de certa forma, como um ''patch panel'' virtual, que seria implementado diretamente nos switches.
 +
 
 +
'''Exemplo:''' a configuração do [[Netkit]] mostrada abaixo cria uma pequena rede composta por um switch e quatro computadores. Além disso, foram definidas duas VLANs (VLAN 5 e VLAN 10). Com isso, os computadores ''pc1'' e ''pc4''  pertencem a VLAN 5, e os computadores ''pc2'' e ''pc3'' estão na VLAN 10. Execute a rede abaixo e teste a comunicação entre os computadores - quais computadores conseguem se comunicar ?.
 +
 
 +
{| border="0" cellpadding="2"
 +
|-
 +
| <syntaxhighlight lang=text>
 +
sw[type]=switch
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
pc3[type]=generic
 +
pc4[type]=generic
 +
 
 +
# As portas do switch
 +
sw[eth0]=port0:vlan_untagged=5
 +
sw[eth1]=port1:vlan_untagged=10
 +
sw[eth2]=port2:vlan_untagged=10
 +
sw[eth3]=port3:vlan_untagged=5
 +
 
 +
# Ligando os computadores ao switch
 +
pc1[eth0]=port0:ip=192.168.0.1/24
 +
pc2[eth0]=port1:ip=192.168.0.2/24
 +
pc3[eth0]=port2:ip=192.168.0.3/24
 +
pc4[eth0]=port3:ip=192.168.0.4/24
 +
</syntaxhighlight> || [[imagem:Vlans-ex1.png]]
 +
|}
 +
 
 +
=== Padrão IEEE 802.1q ===
 +
 
 +
Os primeiros switches com suporte a VLANs as implementavam de forma legada (i.e. não seguiam um padrão da indústria). Isso impedia que houvesse interoperabilidade entre equipamentos de diferentes fabricantes. Logo a IEEE formou um grupo de trabalho para propor mecanismos padronizados para implantar VLANs, dando origem ao padrão [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1Q-2005.pdf IEEE 802.1q]. Os fabricantes de equipamentos de rede o adoataram largamente, suplantando outras tecnologias legadas (ex: [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094665.shtml ISL] e [http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094c52.shtml VTP] da Cisco). Com isso, VLANs IEEE 802.1q podem ser criadas usando switches de fabricantes diferentes.
 +
 
 +
Atualmente, a implantação de VLANs depende de switches com suporte ao padrão IEEE 802.1q. Assim, verifique quais dos switches do laboratório possuem suporte a VLAN:
 +
* D-Link DES-526 [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/manual-des3526.pdf (manual)]
 +
* Micronet SP 1658B [http://www.sj.ifsc.edu.br/~msobral/IER/roteiros/SP1658B_Manual.pdf (manual)]
 +
* 3Com 3224 [http://www.3com.com/prod/pt_la_amer/detail.jsp?tab=prodspec&sku=3C16479 (especificações)]
 +
 
 +
Uma VLAN é identificada por um número, chamado VID (''VLAN Identifier''), sendo que a VLAN com VID 1 é considerada a ''VLAN default'' (configuração de fábrica). Em um switch com suporte a VLAN IEEE 802.1q, cada porta possui um (ou mais ...) VID, o que define a que VLAN pertence. Assim, para criar uma VLAN, devem-se modificar os VID das portas de switches que dela farão parte. Por exemplo, em uma pequena rede com duas VLANs as portas dos switches podem estar configuradas da seguinte forma:
 +
 
 +
 
 +
{| border="0" cellpadding="2"
 +
|-
 +
|[[imagem:Bridge3.png]] || <syntaxhighlight lang=text>
 +
switch1[type]=switch
 +
switch2[type]=switch
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
pc3[type]=generic
 +
pc4[type]=gateway
 +
pc5[type]=generic
 +
pc6[type]=generic
 +
 
 +
pc1[default_gateway]=192.168.0.4
 +
pc2[default_gateway]=192.168.0.4
 +
pc3[default_gateway]=192.168.1.4
 +
pc5[default_gateway]=192.168.1.4
 +
pc6[default_gateway]=192.168.0.4
 +
 
 +
switch1[eth0]=sw1-port0:vlan_untagged=5
 +
switch1[eth1]=sw1-port1:vlan_untagged=5
 +
switch1[eth2]=sw1-port2:vlan_untagged=10
 +
switch1[eth3]=link-sw1-sw2:vlans_tagged=5,10
  
... e para rodá-lo:
+
switch2[eth0]=sw2-port0:vlans_tagged=5,10
 +
switch2[eth1]=sw2-port1:vlan_untagged=10
 +
switch2[eth2]=sw2-port2:vlan_untagged=5
 +
switch2[eth3]=link-sw1-sw2:vlans_tagged=5,10
  
<syntaxhighlight lang=bash>
+
pc1[eth0]=sw1-port0:ip=192.168.0.1/24
sudo ./envio eth0 aa:bb:cc:dd:ee:ff
+
pc2[eth0]=sw1-port1:ip=192.168.0.2/24
 +
pc3[eth0]=sw1-port2:ip=192.168.1.3/24
 +
pc4[eth0]=sw2-port0:vlans_tagged=(5,ip=192.168.0.4/24),(10,ip=192.168.1.4/24)
 +
pc5[eth0]=sw2-port1:ip=192.168.1.5/24
 +
pc6[eth0]=sw2-port2:ip=192.168.0.6/24
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
|}
  
''aa:bb:cc:dd:ee:ff'' é o endereço MAC da estação destino. Se ele for omitido, os quadros serão enviados para broadcast.
+
Além do VID, a configuração da porta de um switch deve especificar o modo de operação da VLAN:
 +
* '''tagged:''' cada quadro transmitido ou recebido por essa porta deve conter o número da VLAN a que pertence. Esse modo é usado normalmente em portas que interligam switches.
 +
* '''untagged:''' quadros que entram e saem pela porta não possuem informação sobre a VLAN a que pertencem. Usado normalmente para conectar computadores e servidores a switches.
  
== 11/10 e 14/10: Redes locais: interligação de LANs e VLANs IEEE 802.1q ==
 
  
'''IMPORTANTE:''' Ver [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista5.pdf 5a lista de exercícios].
+
Esses modos '''tagged''' e '''untagged''' implicam haver uma forma de um quadro Ethernet informar a que VLAN pertence. Isso é usado para restringir a propagação de quadros, fazendo com que sejam recebidos e transmitidos somente por portas de switches que fazem parte de suas VLANs.  
* Obs: tente resolver as questões finais usando o [[Netkit]].
+
 
----
 
  
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula10.pdf transparências].
+
O padrão IEEE 802.1q define, entre outras coisas, uma extensão ao quadro MAC para identificar a que VLAN este pertence. Essa extensão, denominada tag (etiqueta) e mostrada na figura abaixo, compõe-se de 4 bytes situados entre os campos de endereço de origem e ''Type''. O identificador de VLAN (VID) ocupa 12 bits, o que possibilita portanto 4096 diferentes VLANs.
* Capítulo 16 do livro "''Comunicação de Dados e Redes de Computadores, 3a ed.''", de Behrouz Forouzan.
 
* Capítulo 4 do livro "''Redes de Computadores, 4a ed.''", de Andrew Tanenbaum.
 
* Capítulo 5 do livro "''Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição'', de James Kurose.
 
  
* '''VLANs'''
 
** Norma [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1Q-2005.pdf IEEE 802.1q]
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab7.pdf Roteiro da experiência]
 
*** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/manual-des3526.pdf manual do switch D-Link DES-3526]
 
  
[[imagem:quadro-8021q.png|600px]]
+
[[imagem:Quadro-8021q.png]]
 
<br>''Quadro ethernet com a TAG IEEE 802.1q''
 
<br>''Quadro ethernet com a TAG IEEE 802.1q''
  
=== VLANs no Netkit ===
 
  
Configuração do Netkit (arquivo Lab.conf):
+
A ''tag'' de VLAN, inserida em quadros Ethernet, está diretamente relacionada com os modos '''tagged''' e '''untagged''' de portas de switches. Portas em modo '''tagged''' transmitem e recebem quadros que possuem ''tag'', e portas em modo '''untagged''' recebem e transmitem quadros que não possuem ''tag''. Isso foi pensado para tornar a implantação de VLANs transparente para os usuários finais, pois seus computadores não precisarão saber que existem VLANs (i.e. não precisarão interpretar ''tags''). Por isso equipamentos que não interpretam ''tags'' são denominados ''VLAN-unaware'' (desconhecem VLAN), e equipamentos que recebem e transmitem quadros com ''tag'' são referidos como ''VLAN-aware'' (conhecem VLAN).
 +
 
 +
 
 +
'''Exemplo: simulador de switch com VLAN:'''
 +
<br>Esta animação possibilita simular a configuração de VLANs em um switch, e efetuar testes de transmissão. Experimente criar diferentes VLANs e observar o efeito em transmissões unicast e broadcast (clique na figura para acessar o simulador).
 +
 
 +
[[imagem:Simulador-vlan.png|link=http://www2.rad.com/networks/2006/vlan/demo.htm|Um simulador de VLANs]]
 +
 
 +
=== Atividade ===
 +
 
 +
Na figura abaixo, a rede da esquerda está fisicamente implantada em uma pequena empresa. No entanto, uma reestruturação tem como objetivo modificá-la de acordo com o diagrama mostrado à direita. Essa alteração da rede deve ser feita sem adicionar switches ou modificar o cabeamento (tampouco devem-se mudar as conexões de pontos de rede às portas de switches). Faça essa modificação usando o [[Netkit]].
 +
 
 +
[[imagem:Vlan-ex1.png]]
 +
 
 +
# '''Criar a topologia física:'''<syntaxhighlight lang=text>
 +
sw1[type]=switch
 +
sw2[type]=switch
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
pc3[type]=generic
 +
pc4[type]=generic
 +
pc5[type]=generic
 +
pc6[type]=generic
 +
 +
sw1[eth0]=sw1-port0
 +
sw1[eth1]=sw1-port1
 +
sw1[eth2]=sw1-port2
 +
sw1[eth3]=link-sw1-sw2
 +
 +
sw2[eth0]=sw2-port0
 +
sw2[eth1]=sw2-port1
 +
sw2[eth2]=sw2-port2
 +
sw2[eth3]=link-sw1-sw2
 +
 +
pc1[eth0]=sw1-port0
 +
pc2[eth0]=sw1-port1
 +
pc6[eth0]=sw1-port2
  
 +
pc3[eth0]=sw2-port0
 +
pc4[eth0]=sw2-port1
 +
pc5[eth0]=sw2-port2
 +
</syntaxhighlight>
 +
# '''Criar a topologia lógica usando VLANs'''<br>''... isso é com vocês!'' <syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
switch[type]=switch
+
sw1[type]=switch
 +
sw2[type]=switch
 
pc1[type]=generic
 
pc1[type]=generic
 
pc2[type]=generic
 
pc2[type]=generic
 
pc3[type]=generic
 
pc3[type]=generic
 
pc4[type]=generic
 
pc4[type]=generic
 +
pc5[type]=generic
 +
pc6[type]=generic
 +
 +
sw1[eth0]=sw1-port0:vlan_untagged=1
 +
sw1[eth1]=sw1-port1:vlan_untagged=3
 +
sw1[eth2]=sw1-port2:vlan_untagged=2
 +
sw1[eth3]=link-sw1-sw2
 +
 +
sw2[eth0]=sw2-port0:vlan_tagged=1,2,3
 +
sw2[eth1]=sw2-port1:vlan_untagged=3
 +
sw2[eth2]=sw2-port2:vlan_untagged=1
 +
sw2[eth3]=link-sw1-sw2
 +
 +
pc1[eth0]=sw1-port0:ip=192.168.1.1/24
 +
pc2[eth0]=sw1-port1:ip=192.168.3.2/24
 +
pc6[eth0]=sw1-port2:ip=192.168.2.6/24
 +
 +
pc3[eth0]=sw2-port0:vlan_tagged=(1,ip=192.168.1.3/24),(2,ip=192.168.2.3/24),(3,ip=192.168.3.3/24)
 +
pc4[eth0]=sw2-port1:ip=192.168.3.4/24
 +
pc5[eth0]=sw2-port2:ip=192.168.1.5/24
 +
</syntaxhighlight>
 +
 +
= 15/03: Redes locais e VLANs =
 +
 +
A [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista2.pdf 2a lista de exercícios] já está disponível.
  
switch[eth0]=port0:vlan_untagged=5
 
switch[eth1]=port1:vlan_untagged=10
 
switch[eth2]=port2:vlan_untagged=5
 
switch[eth3]=port3:vlan_untagged=10
 
  
pc1[eth0]=port0:ip=192.168.5.1/24
+
...continuando o estudo sobre VLANs.
pc2[eth0]=port1:ip=192.168.10.2/24
+
 
pc3[eth0]=port2:ip=192.168.5.3/24
+
== Atividade ==
pc4[eth0]=port3:ip=192.168.10.4/24
+
 
</syntaxhighlight>
+
Voltando à segmentação da rede do campus São José, vamos implantar a nova rede usando VLANs.
 +
 
 +
 
 +
{| border="0" cellpadding="2"
 +
|-
 +
|[[imagem:Ifsc-sj-simples.png|400px]] || [[imagem:Ier-seta.png]]|| [[imagem:Nova-rede-ifsc-sj.png|400px]]
 +
|}
 +
 
 +
Primeiro isso será realizado usando o [[Netkit]], e em seguida será implantado no laboratório. Para simplificar a rede, vamos assumir que a topologia física está implantada como mostrado na figura acima, à esquerda.
 +
 
 +
= 22/03: Redes locais e VLANs =
 +
 
 +
Foi realizada uma atividade de implantação de uma rede comv VLANs. Essa rede foi criada usando os switches D-Link 3526, interligados da seguinte forma:
 +
 
 +
 
 +
[[imagem:Rede-vlan-real.png]]
 +
 
 +
 
 +
Essa rede foi implantada com VLANs, de forma a funcionar como se tivesse a seguinte topologia:
 +
 
  
== 18/10: Redes locais: interligação de LANs e protocolo Spanning Tree (STP) ==
+
[[imagem:Rede-vlan-virtual.png]]
  
Fazer a [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/lista7.pdf 6a lista de exercícios].
+
= 23/03: Protegendo a rede local contra erros de interligação =
  
 
* Capítulo 16 do livro "''Comunicação de Dados e Redes de Computadores, 3a ed.''", de Behrouz Forouzan.
 
* Capítulo 16 do livro "''Comunicação de Dados e Redes de Computadores, 3a ed.''", de Behrouz Forouzan.
 +
* Capítulo 5 do livro "''Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição'', de James Kurose.
 
* Capítulo 4 do livro "''Redes de Computadores, 4a ed.''", de Andrew Tanenbaum.
 
* Capítulo 4 do livro "''Redes de Computadores, 4a ed.''", de Andrew Tanenbaum.
* Capítulo 5 do livro "''Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição'', de James Kurose.
 
  
 +
Outros materiais:
 
* Introdução a STP (ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula11.pdf transparências])
 
* Introdução a STP (ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula11.pdf transparências])
 
* [http://www.cisco.com/warp/public/473/spanning_tree1.swf Uma animação sobre STP].
 
* [http://www.cisco.com/warp/public/473/spanning_tree1.swf Uma animação sobre STP].
Linha 1 244: Linha 894:
 
* [http://en.wikipedia.org/wiki/Spanning_tree_protocol STP na  Wikipedia]
 
* [http://en.wikipedia.org/wiki/Spanning_tree_protocol STP na  Wikipedia]
  
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista7.pdf 7a Lista de exercícios]
+
== A nova rede do IF-SC SJ ==
 +
 
 +
Após implantar a [[RCO2-2012-1#Atividade_3|nova rede do IF-SC SJ]], a equipe da gerência de rede passou a acompanhar seu uso pela comunidade escolar. E um certo dia um aluno acidentalmente pegou um cabo e ligou em duas tomadas de rede em um laboratório (que está na Subrede ''Pedagógica''). Quer dizer, ele fez algo assim com um dos switches da rede:
 +
 
 +
 
 +
[[imagem:Curto-lan.png]]
 +
 
 +
 
 +
Para ver a consequência dessa ação aparentemente inocente, experimente reproduzi-la em uma rede feita com o [[Netkit]]:
 +
 
 +
{| border="0" cellpadding="2"
 +
|-
 +
|[[imagem:Stp-ex1.png]] || <syntaxhighlight lang=text>
 +
pc1[type]=generic
 +
pc2[type]=generic
 +
sw[type]=switch
 +
 
 +
sw[eth0]=port0
 +
sw[eth1]=port1
 +
 
 +
pc1[eth0]=port0:ip=192.168.0.1/24
 +
pc2[eth0]=port1:ip=192.168.0.2/24
 +
 
 +
# ... a barbeiragem do usuário da rede no switch !
 +
sw[eth2]=link-barbeiragem
 +
sw[eth3]=link-barbeiragem
 +
</syntaxhighlight>
 +
|}
 +
 
 +
 
 +
'''O que ocorreu ao tentar pingar de pc1 para pc2 ?'''
 +
 
 +
== O problema dos ciclos (caminhos fechados) em uma rede local ethernet ==
  
Em LANs grandes pode ser necessário ter enlaces redundantes, para evitar que a interrupção de um enlace isole parte da rede. A existência de interligações alternativas portanto tem a finalidade de conferir algum grau de tolerância a falhas na infraestrutura da rede. Assim, uma LAN com uma ligação em anel como mostrado abaixo apresentaria dois enlaces para ligar cada switch ao resto da rede.
+
A interligação acidental de duas portas de um switch cria um ciclo na rede local (''loop''). Mas isso pode ser feito também de forma intencional, pois em LANs grandes pode ser desejável ter enlaces redundantes, para evitar que a interrupção de um enlace isole parte da rede. A existência de interligações alternativas portanto é algo que pode ocorrer em uma rede local, seja por acidente ou com a finalidade de conferir algum grau de tolerância a falhas na infraestrutura da rede. Um caso em que uma rede possui um ciclo intencionalmente colocado pode ser visto na LAN abaixo:
  
 
[[imagem:LAN-anel-stp.png]]
 
[[imagem:LAN-anel-stp.png]]
Linha 1 280: Linha 962:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Apesar de desejável em algumas situações, uma topologia de rede com caminhos fechados, como visto na figura acima, não pode ser instalada sem alguns cuidados. Uma rede como essa trancaria devido a um efeito chamado de ''tempestade de broadcasts'' (''broadcast storm''). Isso acontece porque ao receber um quadro em broadcast, um switch sempre o retransmite por todas as demais portas. Para que a rede acima funcione como esperado, uma ou mais portas de switches precisarão ser desativadas de forma que o caminho fechado seja removido. Ter que fazer isso manulamente tira o sentido de ter tal configuração para tolerância a falhas, por isso foi criado o protocolo [http://en.wikipedia.org/wiki/Spanning_Tree_Protocol STP] (''Spanning Tree Protocol'', definido na norma IEEE 802.1d) para realizar automaticamente essa tarefa.  
+
Apesar de desejável em algumas situações, uma topologia de rede com caminhos fechados, como visto na figura acima, não pode ser instalada sem alguns cuidados. Uma rede como essa trancaria devido a um efeito chamado de ''tempestade de broadcasts'' (''broadcast storm''). Isso acontece porque, ao receber um quadro em broadcast, um switch sempre o retransmite por todas as demais portas. Para que a rede acima funcione como esperado, uma ou mais portas de switches precisarão ser desativadas de forma que o caminho fechado seja removido. Ter que fazer isso manualmente tira o sentido de ter tal configuração para tolerância a falhas (e não impede um "acidente" como aquele descrito no início desta secão), por isso foi criado o protocolo [http://en.wikipedia.org/wiki/Spanning_Tree_Protocol STP] (''Spanning Tree Protocol'', definido na norma IEEE 802.1d) para realizar automaticamente essa tarefa.  
  
[[Netkit#STP_.28Spanning_Tree_Protocol.29|Switches_e_STP_(Spanning_Tree_Protocol) no Netkit]]
+
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula11.pdf Ver transparências]
 +
* [http://www.cisco.com/warp/public/473/spanning_tree1.swf Uma animação sobre STP]
 +
* [http://www.visualland.net/protocol.overview.php?p=Spanning%20Tree&protocol=Spanning%20Tree&title=Spanning%20Tree%20Overview ... e várias animações sobre STP]
 +
 
 +
== Atividade ==
 +
 
 +
Vamos realizar um experimento para entender melhor como funciona o STP. Isso nos dará base para aplicá-lo no caso da rede da escola (o que faremos na pŕoxima aula).
 +
 
 +
[[Netkit#STP_.28Spanning_Tree_Protocol.29|Switches e STP (Spanning Tree Protocol) no Netkit]]
  
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula11.pdf Ver transparências]
 
 
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab8-2011-1.pdf Roteiro do experimento]
 
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab8-2011-1.pdf Roteiro do experimento]
* [http://www.cisco.com/warp/public/473/spanning_tree1.swf Uma animação sobre STP]
 
  
 
... ver também:
 
... ver também:
 
* timers do STP (hello e max-age), que influenciam o tempo de convergência do protocolo
 
* timers do STP (hello e max-age), que influenciam o tempo de convergência do protocolo
  
== 21/10: Redes locais: controle de acesso com IEEE 802.1x e VLANs dinâmicas ==
+
= 29/03: Acrescentando enlaces redundantes na rede da escola =
 +
 
 +
Voltando à segmentação da rede do campus São José, vamos acrescentar alguns enlaces para conferir um grau de tolerância a falhas:
 +
 
  
 +
{| border="0" cellpadding="2"
 +
|-
 +
|[[imagem:Ifsc-sj-simples.png|400px]] || [[imagem:Ier-seta.png]]|| [[imagem:Nova-rede-ifsc-sj.png|400px]]
 +
|}
 +
 +
 +
Dada a dimensão da rede, isso será realizado usando o [[Netkit]]. Sendo assim, implante a rede acima e ative o STP para tratar os caminhos fechados. Em seguida, experimente modificar alguns links para verificar se a rede continua funcionando.
 +
 +
= 30/03: Fazendo controle de acesso em redes locais =
 +
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista3.pdf 3a lista de exercícios]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/2010-1/prova3-2010-1.pdf Prova de 2010-1]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/2010-1/prova3-2010-1.pdf Prova de 2010-1]
  
  
=== Norma IEEE 802.1x ===
+
 
 +
== Controlando o acesso à rede da escola ==
 +
 
 +
A gerência de rede concluiu que deve-se controlar os acessos aos pontos da rede da escola. Com isso, somente usuários devidamente autenticados e autorizados poderão se comunicar usando os pontos de rede. A forma com que isso deve ser feito deve impedir inclusive que uma pessoa conecte um laptop a uma tomada de rede, e consiga acessar a rede. Além disso, o acesso pode ser negado ou concedido dependendo do tipo de usuário (aluno, funcionário, professor, visitante) e da localização do ponto de rede. O mecanismo de segurança capaz de fazer isso deve agir portanto diretamente nas portas de switches, habilitando-as ou bloqueando-as dependendo do usuário que tentar usar o equipamento nela conectado.
 +
 
 +
=== Padrão IEEE 802.1x ===
  
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula12.pdf transparências]
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula12.pdf transparências]
Linha 1 304: Linha 1 011:
  
  
A norma [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1X-2004.pdf IEEE 802.1x] define um framework para controle de acesso a redes locais IEEE 802, sendo usado tanto em redes cabeadas quanto sem-fio. O propósito dessa norma é criar mecanismos para identificar e autorizar ou não o acesso de um usuário à infraestrutura da rede. Esses mecanismos são implementados em três componentes que forma a estrutura de controle de acesso IEEE 802.1x, mostrada na figura abaixo:
+
O padrão [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/ieee/802.1X-2004.pdf IEEE 802.1x] define um framework para controle de acesso a redes locais IEEE 802, sendo usado tanto em redes cabeadas quanto sem-fio. O propósito dessa norma é criar mecanismos para identificar e autorizar ou não o acesso de um usuário à infraestrutura da rede. Esses mecanismos são implementados em três componentes que forma a estrutura de controle de acesso IEEE 802.1x, mostrada na figura abaixo:
  
 
[[imagem:Ieee-8021x.png]]
 
[[imagem:Ieee-8021x.png]]
Linha 1 326: Linha 1 033:
 
* ... [http://freeradius.org/features/eap.html e muitos outros !]
 
* ... [http://freeradius.org/features/eap.html e muitos outros !]
  
=== TRABALHO SOBRE LANS ===
+
<!-- === TRABALHO SOBRE LANS === -->
  
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/trabalhos/trab-lans-2011-2.pdf Descrição do trabalho]
+
= 05/04: Revisão e Trabalho =
* [[Netkit|Ajuda sobre o Netkit]]
 
  
'''Prazo de entrega:''' 07/11
+
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista1.pdf 1a lista de exercícios] ''(09/03/2012)''
<br>Grupos de até 2 pessoas
+
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista2.pdf 2a lista de exercícios] ''(16/03/2012)''
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista3.pdf 3a lista de exercícios] ''(30/03/2012)''
  
== 25/10: Revisão ==
+
... para a avaliação que está próxima !
  
Revisão, com correção das listas de exercícios.
+
== Trabalho 1: projeto de uma rede local ==
  
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/2010-1/prova3-2010-1.pdf Avaliação de 2010-1]
+
O 1o trabalho trata de implantar um modelo para a rede da escola. Esse modelo deve incorporar as seguintes técnicas de redes locais vistas em aula:
 +
* '''Segmentação com uso de VLANs:''' as subredes a serem implantadas devem ser feitas usando segmentação lógica.
 +
* '''Proteção contra enlaces redundantes:''' a rede deve ser protegida contra ligações entre tomadas de rede ("curtos-circuitos" com cabos de rede). E se qualquer um dos switches cair ou ligação entre switches for rompida, os demais switches devem conseguir se comunicar.
 +
* '''Controle de acesso:''' usuários devem ser identificados e autorizados ao tentarem usar pontos de rede em qualquer um dos segmentos da rede. As seguintes restrições devem ser feitas:
 +
** ''Alunos:'' podem acessar somente a rede Pedagogica
 +
** ''Professores e funcionários:'' apenas redes Pedagogica ou Administrativa
 +
** ''Administradores da rede:'' todas as redes
  
== 01/11: 3a avaliação ==
 
  
Na sala de aula  ...
+
A rede que será a base para o trabalho está mostrada abaixo. A rede da esquerda corresponde à topologia física, e a da direita representa a topologia lógica.  
  
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/prova3-2011-1.pdf Prova de 2011-1]
+
{| border="0" cellpadding="2"
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/prova3-2010-2.pdf Prova de 2010-2]
+
|-
 +
|[[imagem:Ifsc-sj-simples.png|400px]] || [[imagem:Ier-seta.png]]|| [[imagem:Nova-rede-ifsc-sj.png|400px]]
 +
|}
  
== 04/11: WAN: Frame-Relay e MPLS ==
 
 
* Introdução a WAN: conceitos básicos (ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula13.pdf transparências])
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab12.pdf Experimento sobre Frame-Relay]
 
** [http://www.ciscopress.com/articles/article.asp?p=170741 Guia da Cisco sobre Frame Relay]
 
 
 
'''Ver também:'''
 
*Capítulo 18 do livro ''Comunicação de Dados e Redes de Computadores, 3a ed.'', de Behrouz Forouzan.
 
*Capítulos 12 a 15 do livro ''Comunicação entre Computadores e Tecnologias de Rede'', de Michael Gallo e William Hancock.
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista8.pdf 8a lista de exercícios]
 
 
* '''''Referências sobre MPLS:'''''
 
** Capítulo 5 (seção 5.4.5) do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum.
 
** Capítulo 5 (seção 5.8) do livro ''Redes de Computadores e a Internet, 5a ed.'', de James Kurose.
 
** [http://www.opalsoft.net/qos/MPLS.htm MPLS Related Notes]
 
** [http://www.netcraftsmen.net/resources/archived-articles/423-introduction-to-mpls.html MPLS Tutorial]
 
** [http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS na Wikipedia]
 
** [http://www.ietf.org/rfc/rfc3031.txt RFC 3031: MPLS  Architecture]
 
** [http://www.ietf.org/rfc/rfc3032.txt MPLS Label Stack Encoding]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/mpls-linux Documentação sobre os experimentos com MPLS (tirados do projeto MPLS-Linux)]
 
 
=== MPLS: Multi Protocol Label Switching ===
 
 
[http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS] é um  mecanismo para redes de telecomunicações de alto desempenho que encaminha e transporta dados de um nó da rede a outro. Isso se faz por meio de links virtuais entre nós distantes um do outro, semelhante ao conceito de ''circuitos virtuais''. Diversos protocolos podem ser transportados por MPLS, tais como IP e Ethernet (note que o primeiro é um protocolo de rede, mas o segundo é um ''"protocolo"'' de enlace). Assim, MPLS se apresenta como uma tecnologia de transporte de dados em redes de longa distância, como ilustrado na figura abaixo.
 
 
[[imagem:Mpls-network.jpg]]
 
 
Simplificadamente, um cabeçalho (''shim header'') é adicionado a cada PDU a ser transportada pela rede MPLS. O rótulo contém um número identificador chamado de rótulo (''label'', e similar ao ''VCI'' visto em circuitos virtuais), junto com alguns bits de controle. Os roteadores dentro da rede MPLS encaminham essas PDUs com base somente no conteúdo desse cabeçalho, comutando-os de acordo com os valores de rótulo (''label  switching''). Note que MPLS não faz roteamento, e sim comutação de circuitos virtuais: os circuitos devem ser previamente estabelecidos para que o encaminhamento de PDUs entre origem e destino possa ser realizada. Desta forma, MPLS parece ser um  protocolo que fica entre as camadas de rede e de enlace, como mostrado na  figura a seguir.
 
 
[[imagem:Mpls_protocolstack.jpg]]  ---->  [[imagem:MPLS_D2.gif‎]]
 
 
 
O cabeçalho MPLS possui apenas 32 bits, como  mostrado  abaixo. O valor de rótulo ocupa 20 bits, o que possibilita pouco mais de 1 milhão de diferentes rótulos (<math>2^{20}</math>). Há um  campo ''Time To Live'' (ou simplesmente ''TTL'') com 8 bits, com mesma finalidade que o campo homônimo existente em PDUS IPv4: evitar que um erro de configuração em um roteador faça com que PDUs fiquem circulando  eternamente em um ''loop'' na rede. O valor desse campo ''TTL'' é decrementado por cada roteador que encaminhe a PDU e, se o valor chegar a 0, a PDU é descartada. O campo ''Exp'' com 3 bits foi pensado para codificar a classe de serviço da PDU, a qual pode ser usada por mecanismos de qualidade de serviço (''QoS'') existentes na rede. Por exemplo, o valor de ''Exp'' pode ser usado como prioridade da PDU em um  determinado roteador dentro da rede MPLS. Por fim, o bit ''S'' (''bottom of stack'') informa se esse é o último cabeçalho MPLS na PDU, uma vez que podem-se empilhar dois ou mais desses  cabeçalhos.
 
 
 
[[imagem:Mpls-label.png]]
 
 
 
A terminologia MPLS possui nomes próprios para diversos componentes da arquitetura. Como ocorre em outras tecnologias, existem conceitos conhecidos apresentados porém com nomes diferentes. A tabela  abaixo descreve alguns termos importantes existentes no MPLS:
 
  
 +
As subredes a serem criadas devem usar as seguintes faixas de endereços:
  
 
{| border="1" cellpadding="2"
 
{| border="1" cellpadding="2"
  !Termo
+
  !Segmento
 
  !Descrição
 
  !Descrição
 +
!Subrede IP
 
  |-
 
  |-
  |''LSP'' || Label Switching Path, o análogo a circuito virtual.
+
  |'''Pedagogica''' || Pontos das salas de aula e laboratórios de informática|| 172.18.32.0/20
 
  |-
 
  |-
  |''LSR'' || Label Switching Router, ou roteador capaz de comutar PDUs MPLS.
+
  |'''Administrativa''' || Pontos de setores administrativos|| 172.18.16.0/20
 
  |-
 
  |-
  |''LER'' || Label Edge Router,  ou roteador que faz a interface entre a rede MPLS (onde se encaminham  PDUs exclusivamente com base nos rótulos), e a rede externa (onde não se usa MPLS). A rede externa pode ser qualquer outra rede, como IPv4, IPv6 ou mesmo LAN Ethernet. Note que LER é um  tipo especial de LSR,  e podem ser denominados também como ''LSR ingress'' (''LSR'' de entrada na rede MPLS) e ''LSR egress'' (''LSR'' de saída da rede MPLS).
+
  |'''DMZ''' || Servidores acessíveis de fora da escola (ex: Wiki, WWW)|| 200.135.37.64/26
 
  |-
 
  |-
  |''LFIB'' || Label Forwarding Information Base, ou o conjunto de informações existentes nos LSR usadas para fazer o encaminhamento das PDUS MPLS. Pode ser entendida como uma estrutura análoga à tabela de comutação de circuitos virtuais.
+
  |'''BD''' || Servidores que hospedam bancos de dados (ex: LDAP, MySQL)|| 172.18.240.0/24
 
  |-
 
  |-
 +
|'''LAN''' || Demais pontos de rede || 172.18.0.0/20
 
  |}
 
  |}
  
  
Usando os termos acima, podem-se descrever redes MPLS demonstrativas como mostrado  a seguir. Na  primeira rede há dois LSP: um vai do ''Host X'' ao ''Host Z'' e está identificado com PDUS em amarelo, e outro vai de ''Host  X'' ao ''Host Y'' e tem PDUs em azul. O número dentro de cada PDU informa os valores de rótulo usados  ao longo dos LSP. Assim como em circuitos virtuais em  geral (e como em Frame  Relay e ATM), os valores de rótulo podem ser modificados por cada roteador que os comute.
+
Para fins de demonstração, os seguintes usuários devem ser usados para fins de controle de acesso (as senhas ficam a seu critério):
 
 
[[imagem:Mplsrouters.gif]]
 
 
 
==== Conceitos básicos sobre comutação de rótulos ====
 
 
 
A comutação de rótulos feita nos LSR é muito parecida com comutação de circuitos virtuais. Ao receber uma PDU MPLS, um LSR decide o que fazer com ela com base no número do rótulo e na interface de rede de onde ela foi recebida. Porém há um  detalhe específico do MPLS: uma ou mais interfaces podem ser associadas em um  ''labelspace MPLS'', sendo esse ''labelspace'' usado para identificar de onde foi recebida uma PDU. Desta forma, um  LSR na  verdade decide o que fazer com uma PDU com base em seu rótulo e no  seu ''labelspace''. Dentro do LSR essa operação se chama ''ILM'' (''Input Label Mapping'').
 
 
 
'''''ILM''' é a função que identifica uma PDU recebida e mapeia seu rótulo para um '''labelspace'''''
 
 
 
Um caso especial  trata de PDUs que entram na rede MPLS. Por exemplo, uma PDU IPv4, originada de uma rede externa, deve ser transportada pela rede MPLS. Nesse caso, o ''LER'' (roteador de borda) deve associar essa PDU a um rótulo MPLS e encaminhá-lo pela rede MPLS. A identificação de uma PDU externa à rede MPLS, com  base nas informações dessa PDU, se chama  ''FEC'' (''Forwarding Equivalence Class'').
 
 
 
Uma vez identificada uma PDU recebida, o  LSR deve encaminhá-la de acordo com instruções predefinidas em sua ''LFIB''. Dentro de sua LFIB essas instruções são chamadas de ''NHLFE'' (''Next-Hop Label Forwarding Entry''), e contêm a '''operação MPLS''' a ser realizada e a interface de saída por onde encaminhar a PDU. As operações MPLS possíveis estão descritas na tabela abaixo:
 
 
 
  
 
{| border="1" cellpadding="2"
 
{| border="1" cellpadding="2"
  !Operação
+
  !Usuário
  !Descrição
+
  !Tipo
 +
|-
 +
|boi || Administrador da rede
 +
|-
 +
|humberto || Administrador da rede
 +
|-
 +
|joaozinho || Aluno
 +
|-
 +
|cacilda || Aluna
 
  |-
 
  |-
  |''SWAP'' || Troca o valor de rótulo. Essa operação deve ser usada para comutação dentro da rede MPLS. Mesmo  quando  o novo valor de rótulo for idêntico ao anterior essa operação deve ser realizada.
+
  |raimundo || Professor
 
  |-
 
  |-
  |''PUSH'' || Adiciona um cabeçalho MPLS com um determinado valor de rótulo. Essa operação deve ser usada principalmente  nos ''LER'',  quando  uma PDU entra na rede MPLS.
+
  |marocas || Professora
 
  |-
 
  |-
  |''POP'' || Remove o cabeçalho MPLS. Essa operação deve ser usada principalmente nos ''LER'', quando uma PDU sai da rede MPLS.
+
  |manuel || Funcionário
 
  |-
 
  |-
|}
+
|bilica || Funcionária
 
+
  |}
 
 
A comutação fica completa ao se juntarem o mapeamento de entrada (''ILM'') com as ''NHLFE'', no caso de comutação dentro da rede MPLS. No caso de entrada de PDUs na rede MPLS, a operação se chama  ''FTN'' (''Fec-To-Nhlfe''), que nada mais é que regras para associar os rótulos MPLS a essas PDUS. No  exemplo da PDU IPv4, pode-se usar o endereço IPv4 de destino  dessa PDU para escolher que rótulo MPLS deve  ser usado. Isso está sumarizado na  figura abaixo.
 
 
 
[[imagem:Mpls-lfib.png]]
 
 
 
== 08/11: WAN: MPLS ==
 
 
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab13-mpls.pdf 1o Experimento com MPLS]
 
** [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/mpls.conf Lab do netkit com o experimento]
 
** Os experimentos usarão o [[Netkit#Switches_MPLS|Netkit e MPLS]]
 
 
 
O exercício proposto em aula - fazer o LSP entre A2 e A1 passar por E5 ao invés de E3 - implica modificar a configuração dos roteadores E2, E3, E4 e E5:
 
 
 
[[imagem:Exercicio-mpls-1.png|600px]]
 
 
 
* '''E4:''' mudar a ''NHLFE'' para que o LSP A2->A1 vá para E5.
 
* '''E5:''' fazer a comutação A2->A1 que antes ficava em E3.
 
* '''E2:''' modificar o ''labelspace 0'' para que contenha a interface ''eth3''.
 
* '''E3:''' removida a configuração da comutação A2->A1
 
 
 
 
 
'''''Exemplos de serviços baseados em MPLS em operadoras:'''''
 
* [http://www.gvt.com.br/portal/grandesempresas/solucoesdedados/ GVT]
 
* [http://portal.embratel.com.br/mge/solucoes_dados_mpls_turbinado.jsp Embratel]
 
* [http://novaoi.oi.com.br/portal/site/NovaOi/menuitem.5853151550f56e9faf022086f26d02a0/?vgnextoid=02fd7f9586fb2110VgnVCM10000090cb200aRCRD Oi]
 
 
 
== 10/11: WAN: MPLS (labelspaces e túneis) ==
 
 
 
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab14-mpls.pdf Roteiro sobre labelspaces e túneis MPLS]
 
** [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab14/mpls2.conf Laboratório do netkit sobre labelspaces]
 
** [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab14/mpls3.conf Laboratório do netkit sobre túneis]
 
 
 
''Questão: para que serviria um túnel  MPLS ?''
 
 
 
=== Para casa ===
 
 
 
* Concluir a atividade final do roteiro sobre tunelamento.
 
* Ler [http://www.networkcomputing.com/1113/1113ws2.html texto sobre MPLS]
 
* Ler [http://www.alcatel-lucent.com/solutions/mpls4ips/docs/MPLS_EEI_wp.pdf este outro texto sobre MPLS], da Alcatel-Lucent.
 
  
== 11/11: WAN MPLS ==
 
  
=== Atenção: 4a avaliação ===
+
A rede deve ser criada usando o [[Netkit]]. O professor avaliará o trabalho testando o modelo da rede, verificando se:
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/trabalhos/trab-wan-2011-2.pdf Trabalho sobre WAN]
+
# Todos os computadores conseguem se comunicar.
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/trabalhos/wan.conf Configuração do Netkit para o trabalho WAN]
+
# Se a rede resiste a enlaces redundantes.
 +
# Se apesar da remoção de um link entre switches, ou mesmo a remoção de um switch, as demais partes da rede continuam funcionando.
 +
# Se as restrições a usuários foram corretamente definidas (e estão funcionando).
  
<!-- '''OBS (para professor): adicionar aqui referência para comandos de rede do Linux (ifconfig, route, ...)''' -->
 
  
[[Imagem:Wan-2011-2.png|640px]]
+
A entrega do trabalho deve portanto ser composta de:
 +
# Modelo da rede feito no [[Netkit]].
 +
# Relatório contendo uma descrição de como a rede foi implantada, diagrama da rede física e lógica, mapa das conexões de switches, e funcionalidades ativadas e configuradas nos switches. Esse relatório deve ser escrito de forma a possibilitar que uma pessoa de formação técnica consiga reproduzir seu trabalho, além de ser capaz de manter a rede.
  
'''''CUIDADO:''''' Não use rótulos entre 0 e 15, pois são reservados (ver [http://www.networkers-online.com/blog/2009/01/mpls-labels/ detalhes]).'''
 
  
=== Label merging ===
+
Os grupos podem ser compostos de até '''03 alunos''' (sem exceção !!!).
  
* ''Label merging:'' [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab15-mpls.pdf roteiro do experimento]
 
** [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab15/merging.conf Arquivos do netkit]
 
  
''Label merging'' ("fusão de rótulos") significa a união de dois ou mais LSP a partir de um roteador. Isso pode ser feito quando os LSP em questão seguem o mesmo caminho a partir desse roteador e possuem o mesmo destino (e são tratados da mesma forma  do ponto de vista de engenharia de tráfego).
+
'''Prazo de entrega: 19/04'''
  
[[imagem:Label-merging.png]]
+
= 12/04: 1a avaliação =
  
No exemplo acima, os LSP ''A1 -> A3'' e ''A2 -> A3'' seguem o mesmo caminho a partir do roteador E3. Assim, a partir desse ponto eles podem ser fundidos. Porém os LSP ''A3 -> A1'' e ''A3 -> A2'' não podem ser fundidos, já que os caminhos que eles seguem terminam em destinos diferentes.
+
Na sala de aula.
  
== 22/11: Redes sem-fio: introdução ==
+
= 13/04: Redes sem-fio =
  
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula15.pdf transparências]
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula15.pdf transparências]
Linha 1 504: Linha 1 134:
 
* Ver este [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/livros/livro-802_11.chm livro on-line] sobre redes IEEE 802.11. (precisa do ''gnochm'' ou ''chmsee'' para ser lido)
 
* Ver este [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/livros/livro-802_11.chm livro on-line] sobre redes IEEE 802.11. (precisa do ''gnochm'' ou ''chmsee'' para ser lido)
  
Será feito um  experimento para configurar, usar e verificar a vazão de uma rede local sem-fio IEEE 802.11. Também será investigado o tráfego nessa rede, usando o analisador de protocolo wireshark.
+
== Introdução ==
 +
 
 +
Redes sem-fio se tornaram uma tecnologia largamente difundida e de uso corriqueiro, principalmente em sua versão para redes locais. Graças a ela, as pessoas não precisam usar cabos para ter acesso à rede, e podem se comunicar em qualquer localização dentro do alcance da rede sem-fio. Mesmo usuários em movimento podem se manter em comunicação pela rede sem-fio. Essas características atraentes da tecnologia fazem com que ela seja naturalmente desejável na rede da escola.
 +
 
 +
A rede do campus São José deve ser estendida para que seus usuários possam acessá-la via rede sem-fio, como se estivessem usando a subrede Pedagógica. Assim, a gerência da rede imaginou que a nova rede do campus ficaria da seguinte forma, após adicionar a rede sem-fio:
 +
 
 +
[[imagem:Nova-rede-ifsc-sj-wl.png|600px]]
  
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab16-wlan-2011-1.pdf Roteiro do experimento]
 
  
 +
A implantação da rede sem-fio deve atender alguns requisitos levantados pela gerência de rede, os quais serão discutidos mais tarde. No entanto, antes de pensar nos detalhes a serem observados, devem-se conhecer as características de comunicação de dados por um canal sem-fio e os mecanismos inventados para efetuar esse tipo de comunicação.
  
=== Alguns usos de redes sem-fio ===
+
== Alguns usos de redes sem-fio ==
  
 
[[imagem:WLAN-comum.gif]]<br>
 
[[imagem:WLAN-comum.gif]]<br>
Linha 1 543: Linha 1 179:
 
''Redes entre veículos (experimental)''
 
''Redes entre veículos (experimental)''
  
=== Padrão IEEE 802.11 ===
+
== Padrão IEEE 802.11 ==
  
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula15.pdf transparências]
 
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula15.pdf transparências]
Linha 1 554: Linha 1 190:
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab16-wlan.pdf Roteiro do experimento]-->
 
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab16-wlan.pdf Roteiro do experimento]-->
  
Apresentaram-se as características de comunicação e propagação de sinal em uma rede sem-fio multiponto,  
+
Dentre as várias tecnologias de comunicação sem-fio existentes, o padrão IEEE 802.11 para redes locais tem ampla utilização. Conhecido popularmente como Wi-Fi (um trocadilho com Hi-Fi, uma qualidade atribuída a aparelhos de som e que significa ''High-Fidelity''), está presente praticamente em todos os lugares hoje em dia - desde escolas, empresas, aeroportos, supermercados, restaurantes, cafés e residências, e até mesmo em espaços abertos de cidades (ver ''Cidades Digitais''). Muitos dos problemas existentes nesse tipo de rede (alguns resolvidos e outros não), e características de funcionamento, são comuns a outras tecnologias menos conhecidas, porém também importantes em suas áreas de aplicação. Por isso nosso estudo se concentrará nesse padrão de redes sem-fio, para conhecê-lo com razoável profundidade. Como consequência, além de entender como funciona uma rede IEEE 802.11, os conhecimentos obtidos habilitarão a compreensão de outras tecnologias de redes sem-fio.
introduzindo-se os problemas a serem considerados pelo protocolo MAC.
 
  
== 25/11: Redes sem-fio: padrão IEEE 802.11 ==
+
* Apresentaram-se as possíveis formas de organização de uma rede IEEE 802.11:
 +
** '''Rede infraestruturada:''' uso de uma estação central, que intermedia as transmissões das demais estações.<br><br>[[imagem:Infrastructure-bss.png]]<br>
 +
** '''Rede Ad-Hoc:''' estações se comunicam livremente com suas estações vizinhas.<br><br>[[imagem:Adhoc-bss.png]]<br>
 +
** '''Rede Mesh:''' estações se comunicam livremente, mesmo que existam múltiplos saltos (''multihop'').<br><br>[[imagem:Mesh_topology.gif]]<br>
  
* Resolver a [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista9-2010-2.pdf 9a lista de exercicios].
+
== Atividade ==
  
Continuação sobre o MAC CSMA/CA.
+
Será feito um  experimento para configurar, usar e verificar a vazão de uma rede local sem-fio IEEE 802.11. Também será investigado o tráfego nessa rede, usando o analisador de protocolo wireshark.
 +
 
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab16-wlan-2011-1.pdf Roteiro do experimento]
 +
 
 +
= 19/04: Redes sem-fio IEEE 802.11 =
 +
 
 +
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula15.pdf transparências]
 +
* Ver capítulo 15 do livro ''Comunicação de Dados e Redes de Computadores, 3a ed.'', de Behrouz Forouzan.
 +
* Ver capítulo 6 do livro ''Redes de Computadores e a Internet, 3a ed.'', de James Kurose.
 +
* Ver capítulo 4 (seção 4.4) do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum.
 +
* Ver este [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/livros/livro-802_11.chm livro on-line] sobre redes IEEE 802.11. (precisa do ''gnochm'' ou ''chmsee'' para ser lido)
 +
 
 +
 
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista4.pdf 4a lista de exercícios]
  
 
=== MAC CSMA/CA (''Carrier Sense Multiple Access/Collision Avoidance'')  ===
 
=== MAC CSMA/CA (''Carrier Sense Multiple Access/Collision Avoidance'')  ===
Linha 1 576: Linha 1 227:
 
[[Imagem:Wlan-backoff.png|400px]]<br>
 
[[Imagem:Wlan-backoff.png|400px]]<br>
 
''Backoff para retransmissões sucessivas''
 
''Backoff para retransmissões sucessivas''
 +
 +
= 20/04: Correção da 1a avaliação =
 +
 +
== TAREFA: LEITURA DA SEMANA ==
 +
 +
Leiam o seguinte texto:
 +
*[http://arstechnica.com/business/guides/2009/12/wifi-looks-to-1-gigabit-horizon.ars/1 The future of WiFi: gigabit speeds and beyond]
 +
 +
Na próxima aula (26/04) alguém será sorteado para apresentar um resumo e puxar uma discussão sobre o conteúdo desse texto. A apresentação deve ser feita em no máximo 10 minutos, e pode usar o projetor para ajudar na explanação.
 +
 +
'''OBS:'''
 +
# Caso o sorteado não tenha preparado seu material, será penalizado com arredondamentos para baixo de conceitos de avaliações.
 +
# O sorteio será repetido até que alguém que tenha se preparado faça a apresentação.
 +
# Um sorteado que tenha faltado será tratado como no caso 1.
 +
 +
 +
[[imagem:Dr-evil.jpg|200px]]
 +
 +
= 26/04: Rede sem-fio IEEE 802.11 e o MAC CSMA/CA =
 +
 +
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula15.pdf transparências]
 +
* Ver capítulo 15 do livro ''Comunicação de Dados e Redes de Computadores, 3a ed.'', de Behrouz Forouzan.
 +
* Ver capítulo 6 do livro ''Redes de Computadores e a Internet, 3a ed.'', de James Kurose.
 +
* Ver capítulo 4 (seção 4.4) do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum.
 +
* Ver este [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/livros/livro-802_11.chm livro on-line] sobre redes IEEE 802.11. (precisa do ''gnochm'' ou ''chmsee'' para ser lido)
 +
 +
 +
'''Leitura adicional:'''
 +
* [http://www.radio-electronics.com/info/wireless/wi-fi/ieee-802-11n.php IEEE 802.11n overview]
 +
 +
 +
----
  
  
Linha 1 615: Linha 1 298:
 
** [http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/csma-ca/withhidden.html CSMA/CA com nodos escondidos (Kurose)]
 
** [http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/csma-ca/withhidden.html CSMA/CA com nodos escondidos (Kurose)]
  
=== Resultados do experimento ===
+
== Exercício 8 da lista ==
 +
 
 +
Foi resolvido o primeiro diagrama do exercício 8 da [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista4.pdf lista 4]:
 +
 
 +
[[imagem:Csma-ca-2012-11.png]]
 +
 
 +
''Legenda:''
 +
* '''Azul:''' transmissão de um quadro + recepção de ACK.
 +
* '''Verde:''' espera imposta após uma transmissão de quadro (duração: ''CWmin'' slots, sendo ''CWmin=15'' no IEEE 802.11g).
 +
* '''Amarelo:''' backoff
 +
* '''Vermelho:''' DIFS
 +
 
 +
== Resultados do experimento ==
  
 
* ''Downstream:'' 7 fluxos unidirecionais simultâneos de 144 MB enviados do computador do professor (rede cabeada) para os dos alunos (rede sem-fio).
 
* ''Downstream:'' 7 fluxos unidirecionais simultâneos de 144 MB enviados do computador do professor (rede cabeada) para os dos alunos (rede sem-fio).
Linha 1 621: Linha 1 316:
 
* Comandos usados (usaram-se [http://manpages.ubuntu.com/manpages/lucid/en/man1/dd.1posix.html dd] e [http://manpages.ubuntu.com/manpages/dapper/en/man1/nc.1.html nc]):
 
* Comandos usados (usaram-se [http://manpages.ubuntu.com/manpages/lucid/en/man1/dd.1posix.html dd] e [http://manpages.ubuntu.com/manpages/dapper/en/man1/nc.1.html nc]):
 
** No computador que recebe o fluxo (''X'' é o número do computador): ''nc -d -l 150X ''
 
** No computador que recebe o fluxo (''X'' é o número do computador): ''nc -d -l 150X ''
** No computador que inicia o fluxo: ''dd if=/dev/zero bs=1440 count=100000 | nc 192.168.1.X 150X''
+
** No computador que inicia o fluxo: ''dd if=/dev/zero bs=1440 count=10000 | nc 192.168.1.X 150X''
  
  
Linha 1 628: Linha 1 323:
 
  !Upstream (kB/s)
 
  !Upstream (kB/s)
 
  |-
 
  |-
  |369||  
+
  |756|| 234
 +
|-
 +
|334 || 262
 +
|-
 +
|278 || 233
 
  |-
 
  |-
  |389 ||  
+
  |251 || 244
 
  |-
 
  |-
  |360 ||  
+
  |241 || 243
 
  |-
 
  |-
  |368 ||  
+
  |235 || 240
 +
|-
 +
|218 || 269
 
  |}
 
  |}
  
=== Desempenho estimado do MAC CSMA/CA ===
+
== Desempenho estimado do MAC CSMA/CA ==
  
  
Linha 1 658: Linha 1 359:
 
** signal extension (trailer PHY): 6 us
 
** signal extension (trailer PHY): 6 us
  
== 29/11: Redes sem-fio IEEE 802.11: formação de BSS. Sistemas de Distribuição ==
+
== Melhorias no padrão IEEE 802.11n ==
 +
 
 +
Ver [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/WFA_802_11n_Industry_June07.pdf este artigo da WiFi Alliance]. A tabela abaixo sumariza as melhorias criadas nesse padrão.
 +
 
 +
[[image:80211n-melhorias.png|600px]]
 +
 
 +
= 27/04: Redes sem-fio IEEE 802.11: formação de BSS. Sistemas de Distribuição =
  
 
* Ver capítulos 8, 20, 21, 23 e 25 do [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/livros/livro-802_11.chm livro sobre IEEE 802.11]
 
* Ver capítulos 8, 20, 21, 23 e 25 do [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/livros/livro-802_11.chm livro sobre IEEE 802.11]
 
* Ver capítulo 8 (seção 8.6.4) do livro ''Redes de Computadores, 4a ed.'' de Anndrew Tanenbaum.
 
* Ver capítulo 8 (seção 8.6.4) do livro ''Redes de Computadores, 4a ed.'' de Anndrew Tanenbaum.
* Resolver a [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista10.pdf 10a lista de exercícios]
+
* [http://www.radio-electronics.com/info/wireless/wi-fi/ieee-802-11n.php Varios tutoriais sobre IEEE 802.11]
  
=== Autenticação e associação ===
+
== Autenticação e associação ==
  
 
Originalmente foi definido na norma IEEE 802.11 que uma estação precisa se autenticar e associar a um BSS para poder transmitir dados. Em sua forma mais simples, esses procedimentos demandam apenas quatro quadros de controle no total, sendo dois para cada operação. A sequência de autenticação em sua forma  mais simples é denominada ''Autenticação aberta'', mostrada abaixo:
 
Originalmente foi definido na norma IEEE 802.11 que uma estação precisa se autenticar e associar a um BSS para poder transmitir dados. Em sua forma mais simples, esses procedimentos demandam apenas quatro quadros de controle no total, sendo dois para cada operação. A sequência de autenticação em sua forma  mais simples é denominada ''Autenticação aberta'', mostrada abaixo:
Linha 1 682: Linha 1 389:
 
''Associação com AP''
 
''Associação com AP''
  
=== Sistemas de Distribuição ===
+
== Sistemas de Distribuição ==
  
  
Linha 1 696: Linha 1 403:
 
[[imagem:80211-ds2.png|400px]]
 
[[imagem:80211-ds2.png|400px]]
  
=== Atividade ===
+
== TAREFA: leitura da semana ==
 +
 
 +
Leiam este texto e se reparem para apresentá-lo na aula de 5a feira (03/05):
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/WiGig_White_Paper_FINAL.pdf Wireless Gigabit Alliance White Paper]
 +
 
 +
Na apresentação procurem interpretar o conteúdo do texto (explicá-lo com suas palavras), e extrair o máximo de informação relevante. Se necessário, pesquisem em outras fontes para esclarecer o que não entenderem, ou consultem seus professores. Vocês podem também usar o grupo de email de RCO2 (rco2@googlegroups.com) para discutirem entre si.
 +
 
 +
= 03/05: Sistemas de Distribuição =
  
Será criada uma rede sem-fio composta por três BSS, que formarão o ESS "redes2". Essa rede sem-fio estará em uma subrede separada da rede do laboratório, havendo um computador com papel de gateway. Duas configurações serão testadas:
+
Foi criada uma rede sem-fio composta por três BSS, que formaram o ESS "redes2". Essa rede sem-fio estava em uma subrede separada da rede do laboratório, havendo um computador com papel de gateway. Duas configurações foram testadas:
 
# Os AP estarão interligados por um DS via rede cabeada<br><br>[[imagem:Lab-ds-1.png|400px]]<br><br>
 
# Os AP estarão interligados por um DS via rede cabeada<br><br>[[imagem:Lab-ds-1.png|400px]]<br><br>
 
# Os AP estarão interligados por um WDS. <br><br>[[imagem:Lab-ds-2.png|400px]]<br><br>
 
# Os AP estarão interligados por um WDS. <br><br>[[imagem:Lab-ds-2.png|400px]]<br><br>
Em ambos os casos, serão feitos downloads de arquivos longos para estimar a vazão que pode ser obtida.
+
Em ambos os casos, foram feitos downloads de arquivos longos para estimar a vazão que pode ser obtida.
 +
 
 +
= 04/05: Redes Ad Hoc e Mesh =
  
== 02/12: Redes Ad Hoc ==
+
As redes Ad Hoc e Mesh não dependem a rigor de existir uma infraestrutura prestabelecida para que as estações possam se comunicar. Nessas formas de organização de redes sem-fio, as estações podem transmitir quadros diretamente entre si, e mesmo entre estações fora do alcance direto. Nesse caso, a transmissão de quadros ocorre em múltiplos saltos (''multihop''), e depende de mecanismos para descobrir caminhos dentro da rede sem-fio. A principal diferença entre redes ad hoc e mesh reside justamente em como se faz a descoberta de caminhos.
  
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab17-wlan.pdf Roteiro do experimento]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab17-wlan.pdf Roteiro do experimento]
 +
 +
== Redes Ad Hoc ==
  
* Ausência de uma estação base (ou ''Access Point'')
+
'''Características:'''
* Cada estação pode se comunicar diretamente com qualquer outra estação em seu alcance
+
* Ausência de uma estação base (ou ''Access Point'').
* Problemas dos nodos  escondidos e expostos se manifestam intensamente
+
* Cada estação pode se comunicar diretamente com qualquer outra estação em seu alcance.
* Demandam roteamento especializado (ex: [http://en.wikipedia.org/wiki/Ad_hoc_On-Demand_Distance_Vector_Routing AODV], [http://en.wikipedia.org/wiki/OLSR OLSR])
+
* Problemas dos nodos  escondidos e expostos se manifestam intensamente.
 
+
* Demandam roteamento especializado para a descoberta de caminhos, quando necessário fazer encaminhamento em múltiplos saltos.
 +
** '''Descoberta de caminhos:''' no caso de redes IEEE 802.11, depende de uso de tecnologia adicional e fora do escopo da rede sem-fio. Por exemplo, se as estações se comunicarem com IPv4 ou IPv6, podem-se usar protocolos de roteamento IP (ex: [http://en.wikipedia.org/wiki/Ad_hoc_On-Demand_Distance_Vector_Routing AODV], [http://en.wikipedia.org/wiki/OLSR OLSR]). Isso demanda a configuração adicional desses protocolos, e não garante uma integração plena com a rede sem-fio - quer dizer, esses protocolos de roteamento podem não conseguir escolher os melhores caminhos, pois podem não ter acesso a todas as informações sobre as qualidades de links entre as estações.
  
 
[[imagem:Adhoc1.jpg]]
 
[[imagem:Adhoc1.jpg]]
Linha 1 726: Linha 1 445:
 
<br>''Podem  ser usadas como base para aplicações inovadoras, como  redes veiculares ''
 
<br>''Podem  ser usadas como base para aplicações inovadoras, como  redes veiculares ''
  
=== Problemas sobre nodos escondidos e expostos ===
+
== Redes Mesh ==
 +
 
 +
De forma geral, redes mesh são compostas por um conjunto de nodos capazes de descobrir caminhos dentro da rede, os quais são usados pelos demais nodos da rede para que possam se comunicar. Assim, os nodos roteadores formam uma ''malha'' cujos caminhos idealmente são compostos pelos enlaces de melhor qualidade. Apesar de não existirem estações base (i.e. pontos de acesso), essa rede provê uma certa infraestrutura para que nodos acessem a rede e se comuniquem. Além disso, assume-se que os nodos roteadores sejam estáticos ou possuam baixo grau de mobilidade, de forma que seus enlaces sejam duradouros. Essa forma de organização se apresenta em diferentes redes sem-fio, tais como redes metropolitanas e redes industriais. Recentemente, uma extensão ao padrão IEEE 802.11 vem sendo discutida para possibilitar a formação de redes mesh com esse tipo de rede.
 +
 
 +
O padrão [http://en.wikipedia.org/wiki/IEEE_802.11s IEEE 802.11s] propõe mecanismos para o estabelecimento de redes mesh. No escopo de redes IEEE 802.11, estações capazes de formarem redes mesh (chamadas de ''mesh points'') descobrem automaticamente suas estações vizinhas e as utilizam para estabelecerem caminhos para outras estações que estejam fora de alcance direto. Para isso, dois componentes importantes da tecnologia foram definidos:
 +
* Um estimador de qualidade de enlace para avaliar os enlaces entre estações, e assim poder estabelecer e usar os melhores caminhos dentro da rede.
 +
* Um ou mais protocolos de descoberta de caminhos (evita-se o termo ''roteamento'', por estar associado uma função da camada de rede), sendo mandatório o HWMP. Há também o OLSR, que é opcional.
 +
 
 +
O kernel Linux possui uma [https://github.com/cozybit/open80211s/wiki/HOWTO implementação do IEEE 802.11s] feita em software, explorando a capacidade de muitas interfaces de rede de delegarem as funções de gerenciamento do MAC para o device driver (isso é conhecido como SoftMAC). Assim, pode-se estabelecer e experimentar uma rede mesh IEEE 802.11s usando-se algumas ferramentas do Linux.
 +
 
 +
 
 +
<!-- === Problemas sobre nodos escondidos e expostos ===
  
 
# De acordo com a rede sem-fio em modo ad hoc mostrada na figura abaixo, assumindo que o MAC  seja o CSMA/CA, identifique:
 
# De acordo com a rede sem-fio em modo ad hoc mostrada na figura abaixo, assumindo que o MAC  seja o CSMA/CA, identifique:
Linha 1 732: Linha 1 462:
 
#* Para cada estação, identifique todas as estações que podem transmitir simultaneamente (independente da estação destino). Quer dizer, que estações podem transmitir sem risco de colisões devido ao problema dos nodos escondidos. <br><br>[[imagem:Rede-sem-fio1.png|600px]]<br>
 
#* Para cada estação, identifique todas as estações que podem transmitir simultaneamente (independente da estação destino). Quer dizer, que estações podem transmitir sem risco de colisões devido ao problema dos nodos escondidos. <br><br>[[imagem:Rede-sem-fio1.png|600px]]<br>
 
# Faça a mesma análise para a rede mostrada abaixo: <br><br>[[imagem:Rede-sem-fio2.png|600px]]
 
# Faça a mesma análise para a rede mostrada abaixo: <br><br>[[imagem:Rede-sem-fio2.png|600px]]
 +
-->
 +
 +
== TAREFA: Leitura da semana ==
 +
 +
O texto desta semana trata de arquiteturas para WLAN corporativas.
 +
* [http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_9-3/wireless_lan_switches.html Wireless LAN Switches — Functions and Deployment]
 +
 +
Outro texto que pode ajudar a entender a questão segue abaixo:
 +
* [http://www.networkcomputing.com/wireless/229609252 Enterprise Wi-Fi Architecture--Proprietary from Edge to Core]
 +
 +
= 10/05: Segurança em redes sem-fio IEEE 802.11 =
 +
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista5.pdf 5a lista de exercícios]
 +
 +
== Uma rede sem-fio para o IFSC-SJ ==
 +
 +
A rede sem-fio do campus Sao Jose do IFSC esta sendo reformulada. A nova rede a ser implantada deve atender os seguintes requisitos:
 +
* Apresentar boa cobertura em toda a escola: em todas as localidades do campus, deve-se conseguir uma taxa nominal de ao menos 20 Mbps.
 +
* Os usuarios da rede sem-fio devem ter acesso via segmento ''Pegadogica''.
 +
* Para acessar a rede sem-fio, os usuarios devem ser autenticados individualmente.
 +
* Todas as comunicacoes dos usuarios devem ser encriptadas.
 +
 +
Para servir de piloto, foram instalados tres pontos de acesso na rede, como se pode ver abaixo:
 +
 +
[[imagem:Ifsc-sj-wlan.png|600px]]
 +
 +
Com o que ja estudamos, o que pode ser feito para atender os requisitos dessa rede sem-fio ?
 +
 +
=== Transição de BSS ===
 +
 +
Em redes IEEE 802.11 com mais de um AP, para ampliar a área de cobertura, estações que se movimentam podem precisar migrar de um AP para outro. Essa operação se chama ''transição de BSS'' (também conhecida como ''handover'' ou ''roaming'').
 +
 +
[[imagem:Handover2.png]]
 +
 +
A transição se desencadeia quando o sinal do enlace com o AP atual tem sua qualidade abaixo de um determinado limiar. Isso faz com que um novo AP seja procurado (varredura, ou ''scanning''). Ao escolher um novo AP, a estação precisa nele se autenticar e associar. A autenticação depende do método usado (aberto, WPA-PSK à esquerda, ou WPA-EAP à direita)
 +
 +
[[imagem:Auth-rsn1.png]]  [[imagem:Auth-eap.png|400px]]
 +
 +
 +
Como se pode deduzir, a transição feita dessa forma não é imediata. Na verdade, ela pode demorar muitos segundos ! Esse atraso de transição pode influenciar negativamente nas comunicações em andamento, uma vez que a transição costuma ocorrer quando o sinal está com baixa qualidade (causando perdas de quadros), além da demora para se completar. Esforços vêm sendo feitos atualmente para reduzir o atraso de transição, e dentre eles a norma [http://en.wikipedia.org/wiki/IEEE_802.11r-2008 IEEE 802.11r] propõe um mecanismo para acelerar a autenticação. Porém o atraso de varredura ainda está por melhorar ...
 +
 +
A qualidade do sinal depende da modulação usada (e da taxa de dados), assim o limiar entre um BSS e outro depende de como as estações medem a qualidade de sinal e quais as taxas mínimas aceitáveis. A figura abaixo ilustra possíveis alcances para diferentes taxas de dados.
 +
 +
[[imagem:80211-ranges-rates.png|400px]]<br>
 +
''Taxas em função da distância do AP (exemplo, pois depende das condições do ambiente e dos equipamentos)''
 +
 +
 +
Esta outra figura ilustra as taxas em função da distância para um cenário sem obstáculos, e assumindo alguns parâmetros típicos de equipamentos (ver o capítulo 23 do livro ''"802.11 Wireless Networks The Definitive Guide"'').
 +
 +
[[imagem:80211-ranges.png]]
 +
 +
Assim, a cobertura de uma área envolve um planejamento que leve em conta as taxas mínimas desejáveis e as características dos equipamentos (potências de transmissão e ganhos de antenas) e do ambiente (existência de obstáculos, reflexões, e fontes de ruído). Além disso, deve-se minimzar a interferência entre BSS vizinhos, o que pode ser feito escolhendo-se canais que não se sobreponham. A figura abaixo mostra conceitualmente como se podem escolher os canais dos AP para atingir esse objetivo.
 +
 +
[[imagem:80211-freq-planning.png]]
 +
  
== 06/12: Redes sem-fio: Segurança em redes IEEE 802.11  ==
+
Desta forma, podem-se criar BSS para cobrir uma área e aproveitar melhor a capacidade do meio de transmissão.
 +
 
 +
[[imagem:80211-cobertura.png]]
 +
 
 +
== Seguranca ==
  
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula16.pdf Transparências]
 
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula16.pdf Transparências]
Linha 1 755: Linha 1 544:
 
# ''Monitoramento do tráfego da rede:'' os quadros na rede sem-fio podem ser coletados e interpretados, com possível roubo ou revelação de informação sensível.
 
# ''Monitoramento do tráfego da rede:'' os quadros na rede sem-fio podem ser coletados e interpretados, com possível roubo ou revelação de informação sensível.
 
# ''Infiltração de equipamentos na rede:'' um ou mais pontos de acesso podem ser infiltrados na rede sem-fio (chamados de [http://en.wikipedia.org/wiki/Rogue_access_point ''Rogue AP'']), fazendo com que pessoas os utilizem para se comunicarem. Assim, o tráfego dessas pessoas pode passar por outra rede, sendo passível de monitoramento.
 
# ''Infiltração de equipamentos na rede:'' um ou mais pontos de acesso podem ser infiltrados na rede sem-fio (chamados de [http://en.wikipedia.org/wiki/Rogue_access_point ''Rogue AP'']), fazendo com que pessoas os utilizem para se comunicarem. Assim, o tráfego dessas pessoas pode passar por outra rede, sendo passível de monitoramento.
 +
 +
 +
Adicionalmente, [http://www.esecurityplanet.com/views/article.php/3869221/Top-Ten-WiFi-Security-Threats.htm este site] lista 10 ameaças à segurança de redes sem-fio. E [http://www.techrepublic.com/blog/security/10-wi-fi-security-tips/364 este outro] apresenta 10 dicas para melhorar a segurança de uma rede sem-fio (apesar de ter sido escrito em 2007, isso ainda são válidas).
 +
  
 
Por exemplo, redes em locais densamente ocupados (como edifícios) podem ser investigadas por alguém em busca de uma rede aberta ou fácil de ser invadida. Essa pessoa pode simplesmente querer usar o acesso à Internet disponível em alguma rede sem-fio, ou mesmo invadir os equipamentos existentes em tal rede. A figura abaixo mostra a técnica de [http://en.wikipedia.org/wiki/Wardriving WarDriving], em que uma pessoa investiga a existência de redes sem-fio a partir de um carro que trafega pelas ruas.
 
Por exemplo, redes em locais densamente ocupados (como edifícios) podem ser investigadas por alguém em busca de uma rede aberta ou fácil de ser invadida. Essa pessoa pode simplesmente querer usar o acesso à Internet disponível em alguma rede sem-fio, ou mesmo invadir os equipamentos existentes em tal rede. A figura abaixo mostra a técnica de [http://en.wikipedia.org/wiki/Wardriving WarDriving], em que uma pessoa investiga a existência de redes sem-fio a partir de um carro que trafega pelas ruas.
Linha 1 787: Linha 1 580:
 
# ''Autenticação dos pontos de acesso:'' pontos de acesso devem se identificar para os usuários, para evitar a infiltração de pontos de acesso indevidos na rede.
 
# ''Autenticação dos pontos de acesso:'' pontos de acesso devem se identificar para os usuários, para evitar a infiltração de pontos de acesso indevidos na rede.
  
Há mecanismos de segurança usados em redes IEEE 802.11 que contemplam todos os requisitos acima (WPA-EAP, WPA Enterprise), ou parcialmente (WPA-PSK ou WPA Personal). WPA-EAP aproveita a infraestrutura IEEE 802.1x, junto com técnicas de encriptação entre estações sem-fio, para atender esses requisitos. Já WPA-PSK usa apenas as técnicas de encriptação, não havendo um controle de acesso baseado em usuário. Na figura abaixo se mostra uma pequena rede sem-fio que usa WPA-EAP.
+
O primeiro mecanismo de segurança para redes IEEE 802.11 foi WEP (''Wired Equivalent Privacy''), que foi projetado para prover um acesso com mesmo nível de segurança que acesso cabeado. O acesso à rede é concedido a quem conhecer uma senha compartilhada, sendo que as comunicações entre usuários e ponto de acesso são encriptadas (cada usuário obtém uma chave exclusiva, que é gerada durante a negociação inicial com o AP). Na prática, WEP procura prover somente o serviço de sigilo, e nem isso faz bem feito. O seguinte [http://en.wikipedia.org/wiki/Wireless_security fragmento de texto obtido na Wikipedia] explica porque atualmente '''WEP não deve ser usado em hipótese alguma''':
 +
 
 +
<syntaxhighlight lang=text>
 +
WEP is one of the least secure forms of security. A network that is secured with WEP has been cracked in 3 minutes
 +
by the FBI.[1] WEP is an old IEEE 802.11 standard from 1999 which was outdated in 2003 by WPA or
 +
Wi-Fi Protected Access.
 +
</syntaxhighlight>
 +
 
 +
outros mecanismos de segurança usados em redes IEEE 802.11 que contemplam todos os requisitos acima (WPA-EAP, WPA Enterprise), ou parcialmente (WPA-PSK ou WPA Personal), e que estão definidos no padrão [http://en.wikipedia.org/wiki/IEEE_802.11i IEEE 802.11i]. WPA-EAP aproveita a infraestrutura IEEE 802.1x, junto com técnicas de encriptação entre estações sem-fio, para atender esses requisitos. Já WPA-PSK usa apenas as técnicas de encriptação, não havendo um controle de acesso baseado em usuário. Na figura abaixo se mostra uma pequena rede sem-fio que usa WPA-EAP.
  
 
[[imagem:Wifi-auth.jpeg]]
 
[[imagem:Wifi-auth.jpeg]]
Linha 1 793: Linha 1 594:
 
Além dos mecanismos WPA, definidos na norma [http://en.wikipedia.org/wiki/IEEE_802.11i-2004 IEEE 802.11i], outra forma de implantar controle de acesso em redes sem-fio se vale de um ''portal de captura''. Quando um usuário não identificado acessa a rede, o acesso ao ponto de acesso é concedido mas ao tentar navegar na Web seu acesso é desviado para uma página predefinida. Nessa página o usuário deve se identificar (ex: com ''login'' e senha), e em caso de sucesso seu acesso à Internet é liberado. Essa técnica se vale de uma combinação de mecanismos (firewall com filtro IP, serviço Web, uso de programas para autenticação) para controlar o acesso dos usuários. No entanto, não provê sigilo das comunicações nem autenticação de pontos de acesso ao usuário. Sua atratividade reside na simplicidade de implantação e uso (não necessita de ''supplicant''), sendo uma escolha comum em ''hot spots'' como aeroportos e ''cyber cafes''. No [[Projeto_Integrador_-_2009.2| Projeto Integrador 2009.2]] as equipes implantaram uma infra-estrutura que usava essa técnica.
 
Além dos mecanismos WPA, definidos na norma [http://en.wikipedia.org/wiki/IEEE_802.11i-2004 IEEE 802.11i], outra forma de implantar controle de acesso em redes sem-fio se vale de um ''portal de captura''. Quando um usuário não identificado acessa a rede, o acesso ao ponto de acesso é concedido mas ao tentar navegar na Web seu acesso é desviado para uma página predefinida. Nessa página o usuário deve se identificar (ex: com ''login'' e senha), e em caso de sucesso seu acesso à Internet é liberado. Essa técnica se vale de uma combinação de mecanismos (firewall com filtro IP, serviço Web, uso de programas para autenticação) para controlar o acesso dos usuários. No entanto, não provê sigilo das comunicações nem autenticação de pontos de acesso ao usuário. Sua atratividade reside na simplicidade de implantação e uso (não necessita de ''supplicant''), sendo uma escolha comum em ''hot spots'' como aeroportos e ''cyber cafes''. No [[Projeto_Integrador_-_2009.2| Projeto Integrador 2009.2]] as equipes implantaram uma infra-estrutura que usava essa técnica.
  
== 09/12: finalização ... ==
+
=== Vulnerabilidade também no WPA2 ??? ===
 +
 
 +
O Maykon Chagas contribuiu com [http://lifehacker.com/5873407/how-to-crack-a-wi+fi-networks-wpa-password-with-reaver um artigo] sobre um software chamado [http://www.tacnetsol.com/products/ Reaver], que é capaz de quebrar a chave WPA-PSK ou WPA2-PSK de um ponto de acesso. Parece que realmente isso é possível, porém de acordo com [http://arstechnica.com/business/2011/12/researchers-publish-open-source-tool-for-hacking-wifi-protected-setup/ este outro artigo] existe uma precondição: o ponto de acesso precisa usar WPS (WiFi Protected Setup), um padrão criado para facilitar a configuração do acesso a redes WiFi com WPA2. Assim, se um ponto de acesso não possui suporte a WPS, ou ele estiver desativado, o método descrito não pode ser usado.
 +
 
 +
A introdução do [http://en.wikipedia.org/wiki/Wi-Fi_Protected_Setup artigo sobre WPS na Wikipedia] explica o propósito desse padrão. De acordo com ele, busca-se evitar que seja preciso digitar longas senhas de acesso, algo necessário para que não sejam facilmente descobertas. Com isso, usuários poderiam ter o acesso facilitado à rede, tendo o benefício de um maior nível de segurança provido pela encriptação usada em WPA2-PSK. Porém o mecanismo implantado no WPS possui ao menos uma grave falha de projeto, que abriu uma brecha de segurança que possibilita descobrir a senha WPA2-PSK em poucas horas.
 +
 
 +
<syntaxhighlight lang=text>
 +
Wi-Fi Protected Setup (WPS; originally Wi-Fi Simple Config) is a computing standard that attempts to
 +
allow easy establishment of a secure wireless home network.
 +
 
 +
Created by the Wi-Fi Alliance and introduced in 2007, the goal of the protocol is to allow home users
 +
who know little of wireless security and may be intimidated by the available security options to set
 +
up the encryption method WPA2, as well as making it easy to add new devices to an existing network
 +
without entering long passphrases. Prior to the standard, several competing solutions were developed
 +
by different vendors to address the same need, including Broadcom's SecureEasySetup, Buffalo Inc.'s
 +
AOSS, Atheros's JumpStart, Intel's Smart Wireless Technology, and Microsoft's Windows Connect Now.[1]
 +
 
 +
WPS has been shown to easily fall to brute-force attacks.[2] A major security flaw was revealed in
 +
December 2011 that affects wireless routers with the WPS feature, which most recent models have
 +
enabled by default. The flaw allows a remote attacker to recover the WPS PIN and, with it, the
 +
network's WPA/WPA2 pre-shared key in a few hours.[3] Users have been urged to turn off the WPS
 +
feature,[4] although this may not be possible on some router models.[5]
 +
</syntaxhighlight>
 +
 
 +
Nesse mesmo artigo sobre WPS, uma seção explica o princípio do ataque:
 +
 
 +
<syntaxhighlight lang=text>
 +
In December 2011 researcher Stefan Viehböck reported a design and implementation flaw that makes
 +
brute-force attacks against PIN-based WPS feasible to perform on WPS-enabled Wi-Fi networks. A
 +
successful attack on WPS allows unauthorized parties to gain access to the network. The only
 +
effective workaround is to disable WPS.
 +
 
 +
The vulnerability centers around the acknowledgement messages sent between the registrar and
 +
enrollee when attempting to validate a PIN. The PIN, which is printed on the side of each
 +
WPS-enabled Wi-Fi router, is an eight digit number. Since the last digit is a checksum of
 +
the previous digits,[6] there are seven unknown digits in each PIN, yielding 107 = 10,000,000 possible combinations.
 +
 
 +
When an enrollee attempts to gain access using a PIN, the registrar reports the validity of
 +
the first and second halves of the PIN separately. Since the first half of the pin consists
 +
of four digits (10,000 possibilities) and the second half has only three active digits
 +
(1000 possibilities), at most 11,000 guesses are needed before the PIN is recovered. This
 +
is a reduction by four orders of magnitude from the number of PINs that would have to be
 +
tested absent the design flaw. As a result, a practical attack can be completed in just
 +
a few hours. The ease or difficulty of exploiting this flaw is implementation dependent,
 +
as Wi-Fi router manufacturers could defend against such attacks by slowing or disabling
 +
the WPS feature after several failed PIN validation attempts.
 +
 
 +
</syntaxhighlight>
 +
 
 +
Esse fato só reforça o que discutimos em aula: à medida que o nível de segurança aumenta, os procedimentos de acesso se complicam. Pode-se emendar que atalhos que procurem atenuar o que diz essa regra apresentam um bom risco de prejudicarem o sistema de segurança.
 +
 
 +
= 11/05: Segurança de redes IEEE 802.11 e revisão =
 +
 
 +
... continuando aula passada.
 +
 
 +
= 17/05: Revisão =
 +
 
 +
= 18/05: 2a Avaliacao =
 +
 
 +
== TAREFA: Leitura da semana ==
 +
 
 +
Ler até a página 10 do seguinte texto:
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/docs/wan-chap01.pdf Introduction to WAN Technologies]
 +
 
 +
...e preparar para apresentá-lo nesta 6a feira - 25/05.
 +
 
 +
= 24/05: Correção da avaliação e introdução a WAN =
 +
 
 +
*Capítulo 18 do livro ''Comunicação de Dados e Redes de Computadores, 3a ed.'', de Behrouz Forouzan.
 +
* Introdução a WAN: conceitos básicos (ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula13.pdf transparências])
 +
 
 +
= 25/05: Introdução a WAN =
 +
 
 +
* Capítulo 18 do livro ''Comunicação de Dados e Redes de Computadores, 4a ed.'', de Behrouz Forouzan.
 +
* Introdução a WAN: conceitos básicos (ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula13.pdf transparências])
 +
 
 +
 
 +
O caso mais simples para acesso a uma rede WAN: enlaces ponto-a-ponto por linhas dedicadas.
 +
 
 +
== PPP e  HDLC ==
 +
 
 +
Detalhes sobre esses protocolos. Ver as transparências:
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-ppp.pdf PPP]
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-hdlc.pdf HDLC]
 +
** [http://www.aiaa.org/spaceops2002archive/papers/SpaceOps02-P-T5-21.pdf Uso do HDLC em missões espaciais (artigo da Nasa)]
  
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/prova4-2011-1.pdf Prova 4 de 2011-1]
+
== Enlaces ponto-a-ponto entre roteadores ==
  
<!-- === Se der tempo ... ===
+
Nesta aula serão configurados enlaces entre dois roteadores Cisco usando os protocolos PPP e HDLC. O objetivo é ter um contato com esse tipo de equipamento, e ver os protocolos em ação. Além disto, será feita uma medição de vazão (''throughput'') com cada um dos protocolos.  
  
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab18-2010-2.pdf Roteiro do experimento]
+
[[imagem:Rede-modems.png]]
** [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab18 Arquivos para o wpa_supplicant]
+
 
** [http://www.aircrack-ng.org/ Aircrack-ng] (software para quebrar chaves WEP e WPA-PSK)
+
= 31/05: NÃO HAVERÁ AULA DEVIDO AO FORUM MUNDIAL =
*** [http://www.aircrack-ng.org/doku.php?id=simple_wep_crack Um guia rápido para quebra de chaves WEP]
+
 
*** [http://www.aircrack-ng.org/doku.php?id=cracking_wpa Um tutorial sobre como quebrar WPA/WPA2]
+
[http://www.aptor.com.br/fmept/login/ Forum Mundial de Educação Profissional no IFSC]
*** [http://tldp.org/HOWTO/html_single/8021X-HOWTO/ Bom texto sobre IEEE 802.1X em redes sem-fio]
+
 
 +
= 1/06: Tecnologias de acesso para WAN =
 +
 
 +
* Parte III e capítulos 10 e 11 do livro "Comunicação de Dados e Redes de Computadores, 4a ed.", de Behrouz Forouzan
 +
* Capítulo 3 do livro "Redes de Computadores" de Andrew Tanenbaum.
 +
 
 +
Um típico enlace WAN, do ponto de vista de uma rede de computadores de usuário, é representado por um enlace ponto-a-ponto, como pode ser visto na figura abaixo. Nele, dois roteadores se comunicam por um meio físico dedicado, usando um protocolo de enlace especializado. Como o meio é dedicado, não existem colisões, e por isso não é necessário um controle de acesso ao meio (MAC). Além disso, como somente esses dois roteadores estão envolvidos, não há necessidade de endereçamento no protocolo de enlace.
 +
 
 +
[[imagem:Rede-ier-wan.png]]
 +
 
 +
Dois protocolos de enlace ponto-a-ponto muito utilizados são:
 +
* '''[http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-ppp.pdf PPP] (''Point-to-Point Protocol''):''' proposto no início dos anos 90 pelo IETF (ver [http://www.ietf.org/rfc/rfc1661.txt RFC 1661]), e amplamente utilizado desde então. Originalmente muito usado em acesso discado, recentemente sua aplicação se concentra em enlaces por linhas dedicadas, enlaces sem-fio 3G, e uma versão modificada para acesso doméstico ADSL (''PPPoE''). Ver mais detalhes na seção 11.7 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan.
 +
* '''[http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-hdlc.pdf HDLC] (''High-level Data Link Control''):''' criado nos anos 70, foi largamente utilizado em enlaces ponto-a-ponto, porém atualmente foi substituído pelo PPP na maioria dos cenários em que era usado. Ainda se aplica a enlaces ponto-a-ponto em linhas dedicadas, enlaces por satélite e aplicações específicas (ver por exemplo este artigo sobre [http://www.spaceops.org/2002/papers/SpaceOps02-P-T5-21.pdf seu uso missões espaciais em um artigo da Nasa]). Ver mais detalhes na seção 11.6 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan.
 +
 
 +
Ambos protocolos foram criados para uso com comunicação serial síncrona (ver capítulo 4, seção 4.3 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan). O PPP funciona também com [http://pt.wikipedia.org/wiki/Comunica%C3%A7%C3%A3o_serial_ass%C3%ADncrona comunicação serial assíncrona]. Esse requisito explica vários detalhes de seus projetos, como será explicado logo abaixo.
 +
 
 +
== Serviços da camada de enlace ==
 +
 
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula1.pdf Transparências]
 +
 
 +
 
 +
Para ficar mais claro o que deve fazer um protocolo de enlace ponto-a-ponto, vamos listar os serviços típicos existentes na camada de enlace.
  
* [[Projeto_Integrador_-_2009.2#Instala.C3.A7.C3.A3o_de_Equipamentos_de_Rede|Exemplo de portal de captura implantado no Projeto Integrador 2009.2 do Curos Técnico em Redes]]
+
[[Image:Data-link.png]]
  
== 09/12: Redes sem-fio: transição entre BSS em rede infra-estruturada (handover) ==
+
Os serviços identificados na figura acima estão descritos abaixo. A eles foram acrescentados outros dois:
  
* Ver capítulos 8, 20, 21, 23 e 25 do [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/livros/livro-802_11.chm livro sobre IEEE 802.11]
+
* '''Encapsulamento (ou ''enquadramento'')''': identificação das PDUs (quadros) de enlace dentro de sequências de bits enviadas e recebidas da camada física
* Ver capítulo 8 (seção 8.6.4) do livro ''Redes de Computadores, 4a ed.'' de Anndrew Tanenbaum.
+
* '''Controle de erros''': garantir que quadros sejam entregues no destino
* Resolver a [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista10.pdf 10a lista de exercícios]
+
** '''''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
  
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab19-wlan-2010-2.pdf Roteiro do experimento]
+
== Atividade 1: enlaces PPP ==
  
=== Autenticação e associação ===
+
<!-- * [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab3-2011-1.pdf Roteiro da experiência]
 +
* [http://www.cisco.com/warp/cpropub/45/tutorial.htm Tutorial da interface de linha de comando Cisco (CLI)]
 +
* [http://www.cisco.com/en/US/tech/tk713/tk507/technologies_tech_note09186a008019cfa7.shtml#ppp01 Resolução de problemas com PPP em roteadores Cisco]-->
  
Originalmente foi definido na norma IEEE 802.11 que uma estação precisa se autenticar e associar a um BSS para poder transmitir dados. Em sua forma mais simples, esses procedimentos demandam apenas quatro quadros de controle no total, sendo dois para cada operação. A sequência de autenticação em sua forma  mais simples é denominada ''Autenticação aberta'', mostrada abaixo:
+
[[imagem:Ppp-exp1.png|480px]]
 +
<br>''Rede do experimento''
  
[[imagem:80211-auth.png]]<br>
 
''Autenticação aberta''
 
  
 +
Esse experimento será feito usando o Netkit. Três roteadores estarão interligados por enlaces PPP. A interface mostrada no Netkit para os roteadores é muito parecida com a CLI de roteadores Cisco reais (graças ao software [http://www.quagga.net/ Quagga], que é usado em máquinas virtuais do Netkit que agem como roteadores). No entanto, as interfaces seriais de enlaces ponto-a-ponto no Quagga são identificadas pelos nomes ''ppp0'', ''ppp1'' e assim por diante (ao contrário de ''Serial 0'' e ''Serial 1'' usados no Cisco). Abaixo segue a configuração do Netkit que reproduz o experimento:
  
Como se pode ver, chamar essa operação de autenticação é forçar o uso desse termo porque o AP (que controla o BSS) não confere a identidade informada pela estação. Assim, outra forma de autenticação foi criada para conferir a informação passada pela estação, além de negociar chave de encriptação para ter o sigilo das comunicações. Esse novo método se chama ''Autenticação com chave compartilhada'', sendo implementado pelo WEP (e lembre que isso é inseguro e não deve ser usado em redes reais ;-):
+
{{collapse top|Configuração do experimento para o Netkit}}
 +
<syntaxhighlight lang=text>
 +
# Os três roteadores
 +
r1[type]=router
 +
r2[type]=router
 +
r3[type]=router
  
[[imagem:80211-shared-key-auth.png]]<br>
+
# O computador que fica na subrede da esquerda
''Autenticação com chave compartilhada''
+
pc1[type]=generic
  
Note que no caso de se usar WPA ou WPA2, a autenticação é transferida para depois da associação. Porém, por compatibilidade com o que foi definido originalmente na norma, deve-se efetuar a autenticação aberta antes da associação.
+
# O computador que fica na subrede da direita
 +
pc2[type]=generic
  
Uma vez estando a estação em estado autenticado, deve ocorrer a associação com o AP. Na associação o AP registra a existência da estação de forma que o sistema de distribuição (''DS'', que interliga os AP) saiba em que AP se encontra essa estação e possa assim lhe encaminhar quadros. A norma IEEE 802.11 proíbe explicitamente a associação a mais de um AP simultaneamente.
+
# Um computador que representa a Internet
 +
internet[type]=generic
  
[[imagem:80211-associate.png]]<br>
+
# Os enlaces ponto-a-ponto entre os roteadores
''Associação com AP''
+
r1[ppp0]=linkEsquerdo:ip=10.0.0.1/30:debug=1
 +
r1[ppp1]=linkDireito:ip=10.0.0.5/30:debug=1
 +
r2[ppp0]=linkEsquerdo:ip=10.0.0.2/30:debug=1
 +
r3[ppp0]=linkDireito:ip=10.0.0.6/30:debug=1
  
 +
# a subrede do laboratório, que representa a Internet
 +
r1[eth0]=lanExterna:ip=192.168.1.230/24
 +
internet[eth0]=lanExterna:ip=192.168.1.1/24
  
=== Transição de BSS ===
+
# A subrede do lado esquerdo
 +
r2[eth0]=lanEsquerda:ip=172.18.0.30/28
 +
pc1[eth0]=lanEsquerda:ip=172.18.0.17/28
  
Em redes IEEE 802.11 com mais de um AP, para ampliar a área de cobertura, estações que se movimentam podem precisar migrar de um AP para outro. Essa operação se chama ''transição de BSS'' (também conhecida como ''handover'' ou ''roaming'').
+
# A subrede do lado direito
 +
r3[eth0]=lanDireita:ip=172.18.10.110/28
 +
pc2[eth0]=lanDireita:ip=172.18.10.97/28
  
[[imagem:Handover2.png]]
+
# As rotas ...
 +
pc1[default_gateway]=172.18.0.30
 +
pc2[default_gateway]=172.18.10.110
 +
r2[default_gateway]=10.0.0.1
 +
r3[default_gateway]=10.0.0.5
 +
r1[route]=172.18.0.16/38:gateway=10.0.0.2
 +
r1[route]=172.18.10.96/38:gateway=10.0.0.6
 +
internet[route]=172.18.0.0/16:gateway=192.168.1.230
 +
</syntaxhighlight>
 +
{{collapse bottom}}
  
A transição se desencadeia quando o sinal do enlace com o AP atual tem sua qualidade abaixo de um determinado limiar. Isso faz com que um novo AP seja procurado (varredura, ou ''scanning''). Ao escolher um novo AP, a estação precisa nele se autenticar e associar. A autenticação depende do método usado (aberto, WPA-PSK à esquerda, ou WPA-EAP à direita)
+
Com base nessa rede, as seguintes atividades serão realizadas:
 +
# Observe as informações sobre as interfaces PPP nos roteadores, e compare com o que é mostrado para interfaces ethernet: <syntaxhighlight lang=bash>
 +
r1# show interfaces ppp0
 +
</syntaxhighlight> ... ou ... <syntaxhighlight lang=bash>
 +
r1# start-shell
 +
# ifconfig ppp0
 +
# ifconfig eth0
 +
</syntaxhighlight>
 +
# Teste a comunicação pelos enlaces PPP. Por exemplo, no roteador ''r1'' pode ser feito o seguinte: <syntaxhighlight lang=bash>
 +
r1# ping 10.0.0.2
 +
r1# ping 10.0.0.6
 +
</syntaxhighlight>
 +
# Compare o encapsulamento de datagramas IP na rede ethernet e no enlace PPP. Para isso use o wireshark, executando-o para a interface eth0 do roteador ''r1'' e também para a interface ''ppp0''. Para haver datagramas passando pelo roteador, deixe um ping em execução entre os computadores ''pc1'' e ''internet''.
 +
# Simule um erro de transmissão pelo enlace PPP:
 +
## Na máquina real faça o download dos [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab1/quadros.tgz arquivos] que contêm quadros PPP especialmente criados para esse experimento. Descompacte esse arquivo dentro de ''lab/shared''.
 +
## Nos roteadores ''r1'' e ''r2'' execute o comando ''start-shell''. Como ele se obtém acesso ao shell, visto que nos roteadores a interface é inicialmente fornecida por um software especial chamado Quagga.
 +
## Note que existe um enlace PPP entre as máquinas virtuais. No roteador ''r1'' deixe o tcpdump monitorando a interface ppp0 (ou use o wireshark): <syntaxhighlight lang=bash>
 +
sh-3.1# tcpdump -i ppp0 -ln
 +
</syntaxhighlight>
 +
## No roteador ''r2'' será feita a injeção de quadros PPP no enlace. A ideia é transmitir quadros corretos e em seguida quadros com erros (i.e. com bits propositalmente modificados), e observar como o PPP no roteador ''r1'' trata esses quadros.
 +
## Injete o quadro correto em ''r2'', observando o que mostra o ''tcpdump'' em ''r1'': <syntaxhighlight lang=bash>
 +
cd /hostlab/shared
 +
cat quadro.ok > /dev/ttyS0
 +
</syntaxhighlight>
 +
## Agora injete o quadro com erros e veja o que acontece: <syntaxhighlight lang=bash>
 +
cd /hostlab/shared
 +
cat quadro.erro > /dev/ttyS0
 +
</syntaxhighlight>
 +
## O que se pode concluir quanto à recepção pelo PPP de quadros com erros de transmissão ?
 +
# Como o PPP se comporta em um circuito sujeito a erros de transmissão ? Isso pode ser simulado no Netkit, bastando especificar a taxa de erro de bits (BER - Bit Error Rate) do enlace serial. Assim, mude o link entre os roteadores ''r1'' e ''r2'' para que fique da seguinte forma (i.e. com BER=<math>10^{-5} </math>): <syntaxhighlight lang=text>
 +
r1[ppp0]=linkEsquerdo:ip=10.0.0.1/30:debug=1:ber=0.00001
 +
r2[ppp0]=linkEsquerdo:ip=10.0.0.2/30:debug=1:ber=0.00001
 +
</syntaxhighlight>... e após reiniciar a rede, teste fazer um download através desse enlace. Isso pode ser feito assim:
 +
## Copie [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/demo.asis este arquivo] para dentro de /hostlab/shared.
 +
## Em ''internet'', execute o seguinte: <syntaxhighlight lang=bash>
 +
cd /hostlab/shared
 +
nc -l -p 8080 < demo.asis
 +
</syntaxhighlight>
 +
## Em ''pc1'' execute: <syntaxhighlight lang=bash>
 +
wget http://192.168.1.1:8080/demo.asis
 +
</syntaxhighlight>... e observe a taxa de transmissão obtida.
 +
## Configure o link serial para não apresentar erros (remova o parâmetro ber=0.00001) e repita o experimento. O que você notou quanto a taxa de bits pelo link ?
  
[[imagem:Auth-rsn1.png]]  [[imagem:Auth-eap.png|400px]]
+
== TAREFA: Leitura da Semana ==
  
 +
Leiam [http://compnetworking.about.com/od/internetaccessbestuses/l/aa080501a.htm este texto sobre PPPoE] (reparem que ele tem três páginas), e preparem-se para apresentá-lo na 6a feira (15/06).
  
Como se pode deduzir, a transição feita dessa forma não é imediata. Na verdade, ela pode demorar muitos segundos ! Esse atraso de transição pode influenciar negativamente nas comunicações em andamento, uma vez que a transição costuma ocorrer quando o sinal está com baixa qualidade (causando perdas de quadros), além da demora para se completar. Esforços vêm sendo feitos atualmente para reduzir o atraso de transição, e dentre eles a norma [http://en.wikipedia.org/wiki/IEEE_802.11r-2008 IEEE 802.11r] propõe um mecanismo para acelerar a autenticação. Porém o atraso de varredura ainda está por melhorar ...
+
= 14/06: Protocolos ponto-a-ponto: detecção e controle de erros =
  
A qualidade do sinal depende da modulação usada (e da taxa de dados), assim o limiar entre um BSS e outro depende de como as estações medem a qualidade de sinal e quais as taxas mínimas aceitáveis. A figura abaixo ilustra possíveis alcances para diferentes taxas de dados.
+
* Ver capítulos 10 e 11 do livro ''Comunicação de Dados e Redes de Computadores'', de Behrouz Forouzan.
 +
* Ver capítulo 5 do livro ''Redes de Computadores e a Internet'', de James Kurose.
 +
* Ver capítulo 4 do livro ''Redes de Computadores'', de Andrew Tanenbaum.
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula2.pdf transparências]
  
[[imagem:80211-ranges-rates.png|400px]]<br>
+
Na aula anterior fizemos um experimento em que se injetou um quadro corrompido em um enlace PPP. Ao chegar na outra ponta do enlace, esse quadro foi identificado como incorreto e consequentemente descartado. Com isso, se pode concluir que o protocolo PPP faz detecção de erros, porém não os corrige nem os recupera. Para entender isso, na aula de hoje serão discutidos os conceitos de '''detecção e controle de erros'''.
''Taxas em função da distância do AP (exemplo, pois depende das condições do ambiente e dos equipamentos)''
 
  
 +
== Experimento com CRC-16 ==
  
Esta outra figura ilustra as taxas em função da distância para um cenário sem obstáculos, e assumindo alguns parâmetros típicos de equipamentos (ver o capítulo 23 do livro ''"802.11 Wireless Networks The Definitive Guide"'').
+
O experimento com o [http://www.sj.ifsc.edu.br/~msobral/RCO2/fcs-rfc.tgz gerador de CRC-16 do PPP] pode ser facilmente realizado. 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):
  
[[imagem:80211-ranges.png]]
+
<syntaxhighlight lang=bash>
 +
# descompacta o arquivo do gerador de CRC-16
 +
tar czf fcs-rfc.tgz
 +
cd fcs
  
Assim, a cobertura de uma área envolve um planejamento que leve em conta as taxas mínimas desejáveis e as características dos equipamentos (potências de transmissão e ganhos de antenas) e do ambiente (existência de obstáculos, reflexões, e fontes de ruído). Além disso, deve-se minimzar a interferência entre BSS vizinhos, o que pode ser feito escolhendo-se canais que não se sobreponham. A figura abaixo mostra conceitualmente como se podem escolher os canais dos AP para atingir esse objetivo.
+
# Testa o quadro correto
 +
./fcs quadro_correto.raw
  
[[imagem:80211-freq-planning.png]]
+
# 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'':
  
Desta forma, podem-se criar BSS para cobrir uma área e aproveitar melhor a capacidade do meio de transmissão.
+
<syntaxhighlight lang=bash>
 +
# executa testa.py com 4 erros de bit por quadro gerados aleatoriamente
 +
./testa.py 4
 +
</syntaxhighlight>
  
[[imagem:80211-cobertura.png]]
+
O código fonte do gerador de CRC-16 está no arquivo ''fcs-rfc.c'', o qual foi obtido diretamente da [http://tools.ietf.org/html/rfc1662 RFC 1662].
  
=== Medição da qualidade de enlace ===
+
== PPP em um enlace ruidoso ==
  
Em um [http://www.wirelessforums.org/hardware-discussion/measuring-link-quality-4809.html forum] encontrou-se o seguinte questionamento:
+
Usando a rede feita no Netkit na aula passada será realizado um experimento com um enlace PPP em um meio ruidoso.  
  
 +
{{collapse top|Configuração do experimento para o Netkit}}
 
<syntaxhighlight lang=text>
 
<syntaxhighlight lang=text>
Hello,
+
# Os três roteadores
 +
r1[type]=router
 +
r2[type]=router
 +
r3[type]=router
 +
 
 +
# O computador que fica na subrede da esquerda
 +
pc1[type]=generic
 +
 
 +
# O computador que fica na subrede da direita
 +
pc2[type]=generic
 +
 
 +
# Um computador que representa a Internet
 +
internet[type]=generic
 +
 
 +
# Os enlaces ponto-a-ponto entre os roteadores
 +
r1[ppp0]=linkEsquerdo:ip=10.0.0.1/30:debug=1
 +
r1[ppp1]=linkDireito:ip=10.0.0.5/30:debug=1
 +
r2[ppp0]=linkEsquerdo:ip=10.0.0.2/30:debug=1
 +
r3[ppp0]=linkDireito:ip=10.0.0.6/30:debug=1
  
 +
# a subrede do laboratório, que representa a Internet
 +
r1[eth0]=lanExterna:ip=192.168.1.230/24
 +
internet[eth0]=lanExterna:ip=192.168.1.1/24
  
the 802.11 standard specifies that link quality should be (for DSSS modulation) calculated from the correlation value obtained
+
# A subrede do lado esquerdo
when code lock is achieved between the local PN code and the incoming PN codes.
+
r2[eth0]=lanEsquerda:ip=172.18.0.30/28
 +
pc1[eth0]=lanEsquerda:ip=172.18.0.17/28
  
In practice however I am convinced that Wi-Fi cards' producers do not calculate it in this way but rather by the percentage of
+
# A subrede do lado direito
correctly recieved bits or as the difference between signal strength and noise level.
+
r3[eth0]=lanDireita:ip=172.18.10.110/28
 +
pc2[eth0]=lanDireita:ip=172.18.10.97/28
  
I am currently doing some research on the possibility of using a 802.11 signal in a Wi-Fi LAN for locational purposes and I
+
# As rotas ...
would like to consider all the information available to estimate a terminal's position. That includes, signal strength, noise
+
pc1[default_gateway]=172.18.0.30
level and link quality. However I cannot use link quality if I am not sure of how it is calculated.
+
pc2[default_gateway]=172.18.10.110
 +
r2[default_gateway]=10.0.0.1
 +
r3[default_gateway]=10.0.0.5
 +
r1[route]=172.18.0.16/38:gateway=10.0.0.2
 +
r1[route]=172.18.10.96/38:gateway=10.0.0.6
 +
internet[route]=172.18.0.0/16:gateway=192.168.1.230
 +
</syntaxhighlight>
 +
{{collapse bottom}}
  
Does anyone know how I can find a Wi-Fi card whose vendors specify their method of determining the link quality? Or a card from
+
#Como o PPP se comporta em um circuito sujeito a erros de transmissão ? Isso pode ser simulado no Netkit, bastando especificar a taxa de erro de bits (BER - Bit Error Rate) do enlace serial. Assim, mude o link entre os roteadores ''r1'' e ''r2'' para que fique da seguinte forma (i.e. com BER=<math>10^{-5} </math>): <syntaxhighlight lang=text>
which I can extract a link quality according to the definition of the standard?
+
r1[ppp0]=linkEsquerdo:ip=10.0.0.1/30:debug=1:ber=0.00001
 +
r2[ppp0]=linkEsquerdo:ip=10.0.0.2/30:debug=1:ber=0.00001
 +
</syntaxhighlight>... e após reiniciar a rede, teste fazer um download através desse enlace. Isso pode ser feito assim:
 +
## Copie [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/demo.asis este arquivo] para dentro de /hostlab/shared.
 +
## Em ''internet'', execute o seguinte: <syntaxhighlight lang=bash>
 +
cd /hostlab/shared
 +
nc -l -p 8080 < demo.asis
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
## Em ''pc1'' execute: <syntaxhighlight lang=bash>
 +
wget http://192.168.1.1:8080/demo.asis
 +
</syntaxhighlight>... e observe a taxa de transmissão obtida.
 +
## Configure o link serial para não apresentar erros (remova o parâmetro ber=0.00001) e repita o experimento. O que você notou quanto a taxa de bits pelo link ?
 +
 +
= 15/06: A parte física do enlace ponto-a-ponto =
 +
 +
Ver capítulos 3, 4 e 5 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (cópia no xerox).
 +
 +
Ver [http://tele.sj.ifsc.edu.br/~msobral/RCO2/slides/aula3-fisica.pdf transparências].
 +
 +
 +
'''A camada física: camada mais baixa da arquitetura de redes'''
  
Há  também um outro [http://www.rigacci.org/wiki/doku.php/doc/appunti/linux/sa/wifi_signal_quality bom texto], com explicações sobre muitos termos usados quando se trata da qualidade do link (tais como RSSI e SNR). Um tanto comprido, por isso não o copiei aqui.
+
[[imagem:Osi-tcpip.png]]
  
O texto acima questiona como se faz a medição de qualidade de enlace em uma rede sem-fio IEEE 802.11.  Nele se observa que a norma define como se deve fazer isso, mas os  fabricantes provavelmente  não seguem isso à risca. Partindo desse texto, pesquise como um determinado fabricante ou modelo de interface de rede faz essa medição (ex: Atheros, D-Link, Ralink, Intel, Broadcom, ...).
 
  
-->
+
'''Serviços da camada física:'''
 +
 
 +
[[Imagem:Servicos-Camada-Fisica.png|600px]]
 +
<br>''(Adaptado do livro "Comunicação de Dados e Redes de Computadores, 3a ed.", de Berhouz Forouzan)''
 +
 
 +
== Modems ==
 +
 
 +
<!-- * Resolver a [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista3-2010-1.pdf 3a lista].-->
 +
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula5-modems.pdf transparências] sobre modems.
 +
* Exemplos de modems no mercado:
 +
** [http://www.datacom.ind.br/new/taxonomy/term/45 Datacom]
 +
** [http://www.digitel.com.br/en/produtos/produto.asp?idLinha=18&idCat=18&Id=51 Digitel]
 +
** [http://www.parks.com.br/site/pt/produtos.php?idcat=105 Parks]
 +
 
 +
[[imagem:Modelo-comunicacao.png]]
 +
 
 +
 
 +
Existem diversas tecnologias para criar enlaces ponto-a-ponto de longa distância. Inicialmente estudaremos enlaces criados com modems síncronos, por ser muito comum ainda de ser implantado. Esse tipo de enlace faz uso de pares metálicos tipicamente usados em redes telefônicas, e por isso foram a primeira solução usada em larga escala. Deve-se ter em mente que quando surgiu a necessidade de enlaces de dados de longa distância, a única opção que havia (e a mais barata, justamente por já existir) era a rede telefônica, como pode ser visto [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/comp-net-history.pdf neste texto sobre história das redes]. Assim, toda uma geração de equipamentos de comunicação de dados foi criada para usar o tipo de circuito provido em redes telefônicas, e o tipo de fiação nela utilizada.
 +
 
 +
'''Questão para pesquisa:''' ''atualmente como são implantados os circuitos de dados de longa distância, e como eles se relacionam com a rede telefônica ?''
 +
 
 +
[[imagem:Rede-ier-wan.png]]
 +
 
 +
= 21/06: Modems =
 +
 
 +
* Realizar a [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab3.pdf experiência com modems síncronos], em que se configuram modems SHDSL ([http://www.sj.ifsc.edu.br/~msobral/RCO2/manuais/Guia_DT2048_SHDSL_T_E_S_VG_210.5088.00-1.pdf Manual modem DT2048 SHDSL]).
 +
* Pesquisar qual a codificação usada no modem SHDSL (publicar aqui mesmo na wiki):
 +
** Taxas de bit suportadas
 +
** Frequência de portadora
 +
** Tipo de codificação usada (inclua um diagrama para exemplificar)
 +
** Níveis de tensão usados no sinal
 +
 
 +
= 22/06: Interfaces digitais =
 +
 
 +
* Ver capítulos 3 e 4 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (cópia no xerox).
 +
* Ver [http://tele.sj.ifsc.edu.br/~msobral/RCO2/slides/aula5-modems.pdf transparências sobre interfaces digitais].
 +
* Ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula4-codigos.pdf transparências] sobre códigos de linha.
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/5965-7160E.pdf Bom texto sobre modulação digital]
 +
* [http://en.wikipedia.org/wiki/List_of_device_bandwidths Tabelas de taxas de transmissão de diferentes tecnologias]
 +
* [http://www.best-microcontroller-projects.com/how-rs232-works.html Interface RS-232]
 +
* [http://docstore.mik.ua/univercd/cc/td/doc/product/atm/l2020/l2020r21/clicard/planning/cabling.htm Cabos e pinagens de diversas interfaces digitais]
 +
* Um [[Interfaces_Digitais_IER|catálogo de interfaces digitais]] feito pela turma do curso Técnico em 2011-1.
 +
 
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista6.pdf 6a Lista de exercícios (protocolos de enlace)]
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista6.pdf 7a Lista de exercícios (camada física)]
 +
 
 +
Durante a aula, se aproveitará a experiência da aula passada com modems SHDSL para investigar suas interfaces digitais V.35 e RS-232c.
 +
 
 +
 
 +
[[imagem:Rede-ID.png]]
 +
 
 +
* Animações de códigos de linha:
 +
** [http://www.youtube.com/watch?v=PeUUeOd3w8U NRZ]
 +
** [http://www.youtube.com/watch?v=p1xSolqJ9ZI Vários códigos de linha básicos]
 +
 
 +
== Atividade em aula ==
 +
 
 +
Vamos criar uma tabela com informações sobre os códigos de linha/modulações usados em diversas tecnologias. Devemos descobrir a técnica de modulação ou codificação, as taxas de bit suportadas, frequências de portadoras, níveis de sinal (amplitude), alcance de transmissão e tipo de meio de transmissão suportados. Além disso, deve-se identificar a aplicação de cada uma dessas tecnologias.
 +
 
 +
* Interface digital V.35
 +
* Interface digital RS-232
 +
* PHY Ethernet 10 Mbps, 100 Mbps, 1 Gbps e 10 Gbps
 +
* Modems SHDSL
 +
** [http://www.dsl-broadband-isp.com/about-shdsl/shdsl-faq SHDSL Faq]
 +
** [http://www.broadband-forum.org/marketing/download/mktgdocs/SHDSL_wp.pdf SHDSL White Paper]
 +
* Modems aDSL
 +
* Modems VDSL
 +
* PLC (Power Line Communication)
 +
* CATV (links de dados via TV a cabo)
 +
* Modems V.92 (acesso discado)
 +
* CAN (um tipo de rede industrial)
 +
* HPNA (tecnologia para redes domésticas): ver [http://www.artigos.com/artigos/exatas/tecnologia/uso-da-tecnologia-hpna-como-alternativa-para-comunicacao-entre-dispositivos-com-interface-ethernet-13798/artigo/ artigo] indicado pelo Davi.
 +
 
 +
Obs: veja os modems de alguns fabricantes:
 +
* [http://www.datacom.ind.br/new/taxonomy/term/45 datacom]
 +
* [http://www.rad.com/20/First-Mile-Local-Loop/2489/ RAD]
 +
* [http://www.digitel.com.br/pt/produtos/default.asp Digitel]
 +
* [http://www.cianet.ind.br/ Cianet]
 +
 
 +
 
 +
{| border="1" cellpadding="2"
 +
!Tecnologia
 +
!Modulação/Codificação
 +
!Taxa de bits
 +
!Alcance (m)
 +
!Meio físico
 +
!Aplicação
 +
|-
 +
|CATV (Docsis 3.0) ||  ||  ||  || ||
 +
|-
 +
|SHDSL/SHDSL.bis || || || || ||
 +
|-
 +
|HDSL || || || || ||
 +
|-
 +
|ADSL2+ || || || || ||
 +
|-
 +
|PLC/BPL || || || || ||
 +
|-
 +
|HPNA || || || || ||
 +
|-
 +
|V.92 || ||  || || ||
 +
|}
 +
 
 +
= 28/06: WAN e MPLS =
 +
 
 +
* Introdução a WAN: conceitos básicos (ver [http://www.sj.ifsc.edu.br/~msobral/RCO2/slides/aula13.pdf transparências])
 +
 
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab12.pdf Experimento sobre Frame-Relay]
 +
** [http://www.ciscopress.com/articles/article.asp?p=170741 Guia da Cisco sobre Frame Relay]
 +
 
 +
 
 +
'''Ver também:'''
 +
*Capítulo 18 do livro ''Comunicação de Dados e Redes de Computadores, 3a ed.'', de Behrouz Forouzan.
 +
*Capítulos 12 a 15 do livro ''Comunicação entre Computadores e Tecnologias de Rede'', de Michael Gallo e William Hancock.
 +
 
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/listas/lista8.pdf 8a lista de exercícios]
 +
 
 +
* '''''Referências sobre MPLS:'''''
 +
** Capítulo 5 (seção 5.4.5) do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum.
 +
** Capítulo 5 (seção 5.8) do livro ''Redes de Computadores e a Internet, 5a ed.'', de James Kurose.
 +
** [http://www.opalsoft.net/qos/MPLS.htm MPLS Related Notes]
 +
** [http://www.netcraftsmen.net/resources/archived-articles/423-introduction-to-mpls.html MPLS Tutorial]
 +
** [http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS na Wikipedia]
 +
** [http://www.ietf.org/rfc/rfc3031.txt RFC 3031: MPLS  Architecture]
 +
** [http://www.ietf.org/rfc/rfc3032.txt MPLS Label Stack Encoding]
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/docs/mpls-linux Documentação sobre os experimentos com MPLS (tirados do projeto MPLS-Linux)]
 +
 
 +
== MPLS: Multi Protocol Label Switching ==
 +
 
 +
'''''Exemplos de serviços baseados em MPLS em operadoras:'''''
 +
* [http://www.gvt.com.br/portal/grandesempresas/solucoesdedados/ GVT]
 +
* [http://portal.embratel.com.br/mge/solucoes_dados_mpls_turbinado.jsp Embratel]
 +
* [http://novaoi.oi.com.br/portal/site/NovaOi/menuitem.5853151550f56e9faf022086f26d02a0/?vgnextoid=02fd7f9586fb2110VgnVCM10000090cb200aRCRD Oi]
 +
 
 +
[http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS] é um  mecanismo para redes de telecomunicações de alto desempenho que encaminha e transporta dados de um nó da rede a outro. Isso se faz por meio de links virtuais entre nós distantes um do outro, semelhante ao conceito de ''circuitos virtuais''. Diversos protocolos podem ser transportados por MPLS, tais como IP e Ethernet (note que o primeiro é um protocolo de rede, mas o segundo é um ''"protocolo"'' de enlace). Assim, MPLS se apresenta como uma tecnologia de transporte de dados em redes de longa distância, como ilustrado na figura abaixo.
 +
 
 +
[[imagem:Mpls-network.jpg]]
 +
 
 +
Simplificadamente, um cabeçalho (''shim header'') é adicionado a cada PDU a ser transportada pela rede MPLS. O rótulo contém um número identificador chamado de rótulo (''label'', e similar ao ''VCI'' visto em circuitos virtuais), junto com alguns bits de controle. Os roteadores dentro da rede MPLS encaminham essas PDUs com base somente no conteúdo desse cabeçalho, comutando-os de acordo com os valores de rótulo (''label  switching''). Note que MPLS não faz roteamento, e sim comutação de circuitos virtuais: os circuitos devem ser previamente estabelecidos para que o encaminhamento de PDUs entre origem e destino possa ser realizada. Desta forma, MPLS parece ser um  protocolo que fica entre as camadas de rede e de enlace, como mostrado na  figura a seguir.
 +
 
 +
[[imagem:Mpls_protocolstack.jpg]]  ---->  [[imagem:MPLS_D2.gif‎]]
 +
 
 +
 
 +
O cabeçalho MPLS possui apenas 32 bits, como  mostrado  abaixo. O valor de rótulo ocupa 20 bits, o que possibilita pouco mais de 1 milhão de diferentes rótulos (<math>2^{20}</math>). Há um  campo ''Time To Live'' (ou simplesmente ''TTL'') com 8 bits, com mesma finalidade que o campo homônimo existente em PDUS IPv4: evitar que um erro de configuração em um roteador faça com que PDUs fiquem circulando  eternamente em um ''loop'' na rede. O valor desse campo ''TTL'' é decrementado por cada roteador que encaminhe a PDU e, se o valor chegar a 0, a PDU é descartada. O campo ''Exp'' com 3 bits foi pensado para codificar a classe de serviço da PDU, a qual pode ser usada por mecanismos de qualidade de serviço (''QoS'') existentes na rede. Por exemplo, o valor de ''Exp'' pode ser usado como prioridade da PDU em um  determinado roteador dentro da rede MPLS. Por fim, o bit ''S'' (''bottom of stack'') informa se esse é o último cabeçalho MPLS na PDU, uma vez que podem-se empilhar dois ou mais desses  cabeçalhos.
 +
 
 +
 
 +
[[imagem:Mpls-label.png]]
 +
 
 +
 
 +
A terminologia MPLS possui nomes próprios para diversos componentes da arquitetura. Como ocorre em outras tecnologias, existem conceitos conhecidos apresentados porém com nomes diferentes. A tabela  abaixo descreve alguns termos importantes existentes no MPLS:
 +
 
 +
 
 +
{| border="1" cellpadding="2"
 +
!Termo
 +
!Descrição
 +
|-
 +
|''LSP'' || Label Switching Path, o análogo a circuito virtual.
 +
|-
 +
|''LSR'' || Label Switching Router, ou roteador capaz de comutar PDUs MPLS.
 +
|-
 +
|''LER'' || Label Edge Router,  ou roteador que faz a interface entre a rede MPLS (onde se encaminham  PDUs exclusivamente com base nos rótulos), e a rede externa (onde não se usa MPLS). A rede externa pode ser qualquer outra rede, como IPv4, IPv6 ou mesmo LAN Ethernet. Note que LER é um  tipo especial de LSR,  e podem ser denominados também como ''LSR ingress'' (''LSR'' de entrada na rede MPLS) e ''LSR egress'' (''LSR'' de saída da rede MPLS).
 +
|-
 +
|''LFIB'' || Label Forwarding Information Base, ou o conjunto de informações existentes nos LSR usadas para fazer o encaminhamento das PDUS MPLS. Pode ser entendida como uma estrutura análoga à tabela de comutação de circuitos virtuais.
 +
|-
 +
|}
 +
 
 +
 
 +
Usando os termos acima, podem-se descrever redes MPLS demonstrativas como mostrado  a seguir. Na  primeira rede há dois LSP: um vai do ''Host X'' ao ''Host Z'' e está identificado com PDUS em amarelo, e outro vai de ''Host  X'' ao ''Host Y'' e tem PDUs em azul. O número dentro de cada PDU informa os valores de rótulo usados  ao longo dos LSP. Assim como em circuitos virtuais em  geral (e como em Frame  Relay e ATM), os valores de rótulo podem ser modificados por cada roteador que os comute.
 +
 
 +
[[imagem:Mplsrouters.gif]]
 +
 
 +
=== Conceitos básicos sobre comutação de rótulos ===
 +
 
 +
A comutação de rótulos feita nos LSR é muito parecida com comutação de circuitos virtuais. Ao receber uma PDU MPLS, um LSR decide o que fazer com ela com base no número do rótulo e na interface de rede de onde ela foi recebida. Porém há um  detalhe específico do MPLS: uma ou mais interfaces podem ser associadas em um  ''labelspace MPLS'', sendo esse ''labelspace'' usado para identificar de onde foi recebida uma PDU. Desta forma, um  LSR na  verdade decide o que fazer com uma PDU com base em seu rótulo e no  seu ''labelspace''. Dentro do LSR essa operação se chama ''ILM'' (''Input Label Mapping'').
 +
 
 +
'''''ILM''' é a função que identifica uma PDU recebida e mapeia seu rótulo para um '''labelspace'''''
 +
 
 +
Um caso especial  trata de PDUs que entram na rede MPLS. Por exemplo, uma PDU IPv4, originada de uma rede externa, deve ser transportada pela rede MPLS. Nesse caso, o ''LER'' (roteador de borda) deve associar essa PDU a um rótulo MPLS e encaminhá-lo pela rede MPLS. A identificação de uma PDU externa à rede MPLS, com  base nas informações dessa PDU, se chama  ''FEC'' (''Forwarding Equivalence Class'').
 +
 
 +
Uma vez identificada uma PDU recebida, o  LSR deve encaminhá-la de acordo com instruções predefinidas em sua ''LFIB''. Dentro de sua LFIB essas instruções são chamadas de ''NHLFE'' (''Next-Hop Label Forwarding Entry''), e contêm a '''operação MPLS''' a ser realizada e a interface de saída por onde encaminhar a PDU. As operações MPLS possíveis estão descritas na tabela abaixo:
 +
 
 +
 
 +
{| border="1" cellpadding="2"
 +
!Operação
 +
!Descrição
 +
|-
 +
|''SWAP'' || Troca o valor de rótulo. Essa operação deve ser usada para comutação dentro da rede MPLS. Mesmo  quando  o novo valor de rótulo for idêntico ao anterior essa operação deve ser realizada.
 +
|-
 +
|''PUSH'' || Adiciona um cabeçalho MPLS com um determinado valor de rótulo. Essa operação deve ser usada principalmente  nos ''LER'',  quando  uma PDU entra na rede MPLS.
 +
|-
 +
|''POP'' || Remove o cabeçalho MPLS. Essa operação deve ser usada principalmente nos ''LER'', quando uma PDU sai da rede MPLS.
 +
|-
 +
|}
 +
 
 +
 
 +
A comutação fica completa ao se juntarem o mapeamento de entrada (''ILM'') com as ''NHLFE'', no caso de comutação dentro da rede MPLS. No caso de entrada de PDUs na rede MPLS, a operação se chama  ''FTN'' (''Fec-To-Nhlfe''), que nada mais é que regras para associar os rótulos MPLS a essas PDUS. No  exemplo da PDU IPv4, pode-se usar o endereço IPv4 de destino  dessa PDU para escolher que rótulo MPLS deve  ser usado. Isso está sumarizado na  figura abaixo.
 +
 
 +
[[imagem:Mpls-lfib.png]]
 +
 
 +
= 29/06: MPLS - 1o experimento =
 +
 
 +
== Atividade 1: introdução  ==
 +
 
 +
* [http://www.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab13-mpls.pdf 1o Experimento com MPLS]
 +
** [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/mpls.conf Lab do netkit com o experimento]
 +
** Os experimentos usarão o [[Netkit#Switches_MPLS|Netkit e MPLS]]
 +
 
 +
O exercício proposto em aula - fazer o LSP entre A2 e A1 passar por E5 ao invés de E3 - implica modificar a configuração dos roteadores E2, E3, E4 e E5:
 +
 
 +
[[imagem:Exercicio-mpls-1.png|600px]]
 +
 
 +
* '''E4:''' mudar a ''NHLFE'' para que o LSP A2->A1 vá para E5.
 +
* '''E5:''' fazer a comutação A2->A1 que antes ficava em E3.
 +
* '''E2:'''  modificar o ''labelspace 0'' para que contenha a interface ''eth3''.
 +
* '''E3:''' removida a configuração da comutação A2->A1
 +
 
 +
= 05/07: Labelspaces e túneis =
 +
 
 +
== Atividade ==
 +
 
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab14-mpls.pdf Roteiro sobre labelspaces e túneis MPLS]
 +
** [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab14/mpls2.conf Laboratório do netkit sobre labelspaces]
 +
** [http://tele.sj.ifsc.edu.br/~msobral/RCO2/roteiros/lab14/mpls3.conf Laboratório do netkit sobre túneis]
 +
 
 +
''Questão: para que serviria um túnel  MPLS ?''
 +
 
 +
== Para casa ==
 +
 
 +
* Concluir a atividade final do roteiro sobre tunelamento.
 +
* Ler [http://www.networkcomputing.com/1113/1113ws2.html texto sobre MPLS]
 +
* Ler [http://www.alcatel-lucent.com/solutions/mpls4ips/docs/MPLS_EEI_wp.pdf este outro texto sobre MPLS], da Alcatel-Lucent.
 +
 
 +
== TRABALHO SOBRE MPLS ==
 +
 
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/wan-2012-1/trab3-wan.pdf Descrição do trabalho]
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/wan-2012-1/wan.conf Configuração do Netkit]
 +
 
 +
O trabalho envolve criar uma infraestrutura MPLS para uma pequena rede WAN composta por duas operadoras (Core e Edge1), como ilustrado pela figura abaixo:
 +
 
 +
 
 +
[[imagem:Wan-2012-1.png|800px]]
 +
 
 +
 
 +
* '''Prazo de entrega:'''12/07/2012
 +
* '''Equipes:''' até três alunos
 +
* '''Caso não seja entregue:''' a recuperação será uma avaliação prática e com duração de uma prova (2 aulas) sobre um problema semelhante a esse.
 +
 
 +
= 06/07: Túneis MPLS e início do trabalho =
 +
 
 +
* Concluir o experimento da aula passada sobre túneis.
 +
* Iniciar o trabalho.
 +
 
 +
== Sobre avaliação de 12/07 ==
 +
 
 +
A avaliação se concentrará em enlaces ponto-a-ponto (partes lógica e física), mas haverá uma questão sobre comutação de circuitos virtuais.
 +
 
 +
As listas de exercícios [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista6.pdf 6] e [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista7.pdf 7] cobrem enlaces ponto-a-ponto.
 +
 
 +
Sobre comutação de circuitos virtuais, vejam a 1a questão da [http://tele.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/prova4-2011-2.pdf avaliação feita semestre passado].
 +
 
 +
= 12/07: Apresentação do trabalho =
 +
 
 +
= 13/07: Avaliação =
 +
 
 +
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/prova3-2012-1-resolvida.pdf Prova 3 resolvida]
 +
 
 +
== Atividades de recuperação ==
 +
 
 +
# Resolvam DE FATO as listas de exercícios [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista6.pdf 6] e [http://tele.sj.ifsc.edu.br/~msobral/RCO2/listas/2012-1/lista7.pdf 7] cobrem enlaces ponto-a-ponto.
 +
# Resolvam também o seguinte problema:
 +
 
 +
Seja a seguinte rede:
 +
 
 +
[[imagem:Recuperacao-ppp.png]]
 +
 
 +
 
 +
Os links PPP possuem diferentes taxas de erro de bit (BER). O link 1 tem uma taxa de <math>10^{-6}</math>, e o link 2 não tem erros. Para definir essas taxas no Netkit, use o parâmetro ''ber'' ao declarar cada link PPP, como exemplificado abaixo:
 +
 
 +
<syntaxhighlight lang=text>
 +
# Link entre r1 e r2: BER=1e-6 e capacidade=128 kbps
 +
r1[ppp0]=link1:ber=0.000001:rate=128000
 +
r2[ppp0]=link1:ber=0.000001:rate=128000
 +
</syntaxhighlight>
 +
 
 +
[[Netkit#Enlaces_ponto-a-ponto_.28via_portas_seriais.29|Links PPP no Netkit]]
  
== 13/12: Avaliação ==
 
  
* [http://tele.sj.ifsc.edu.br/~msobral/RCO2/avaliacoes/prova4-2011-2.pdf A prova que foi aplicada ...]
+
Implante essa rede usando o [[Netkit]], e faça os seguintes experimentos:
  
== 16/12: Recuperações ==
+
a) Estime a taxa de bits que pode ser obtida para uma transmissão com TCP em cada um dos enlaces PPP.
  
Será feita '''uma prova para cada unidade pendente'''. Deve-se obter '''ao menos C''' em cada prova.
+
b) Estime a taxa de perda de pacotes obtida em cada um dos enlaces PPP. ''Dica: use o [http://manpages.ubuntu.com/manpages/gutsy/man1/nc.1.html nc] para transferir um arquivo grande com UDP. Por exemplo, execute isto no computador transmissor:''<syntaxhighlight lang=bash>
 +
nc -u IP_destino port_UDP < arquivo_a_ser_enviado
 +
</syntaxhighlight> ... e isto no receptor: <syntaxhighlight lang=bash>
 +
nc -l -u port_UDP > arquivo_recebido
 +
</syntaxhighlight>
 +
OBS: O comportamento normal do''nc'' receptor é rodar indefinidamente. Assim, alguns segundos após o transmissor terminar de enviar o arquivo, você deve matar o ''nc'' receptor (use CTRL C).
  
=== Trabalhos pendentes ===
+
c) Experimente usar o ''tcpdump'' ou ''wireshark'' nos roteadores para acompanhar o tráfego pelos links PPP. Observe em especial como os enlaces são estabelecidos (vejas os primeiros quadros trocados entre os roteadoers).
  
Há duas opções:
+
d) Experimente modificar a MTU em um link PPP. Isso pode ser feito assim: <syntaxhighlight lang=bash>
# Entregá-los até 19/12, às 14 h.
+
ifconfig ppp0 mtu novo_valor_da_MTU
# A partir de 14h, fazer uma prova prática para cada trabalho em haver :-b
+
</syntaxhighlight> ... e em seguida veja o que aconteceu com os tamanhos de quadros tanto dentro do link PPP quanto na LAN ethernet. Se quiser ver o tamanho real dos quadros PPP (quer dizer, incluindo as flags e bytes de escape), use o [http://manpages.ubuntu.com/manpages/dapper/man8/pppdump.8.html pppdump].

Edição atual tal como às 18h42min de 1 de setembro de 2016

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

Professor: Marcelo Maia Sobral (msobral@gmail.com)
Lista de email (forum): rco2@googlegroups.com
Encontros: 5a feira/9:40, 6a feira/7:30
Atendimento paralelo: 4a de 13:30 às 16 h.

Bibliografia

  • Livros sobre Redes de Computadores (por ordem de preferência):
    • FOROUZAN, Behrouz. Comunicação de Dados e Redes de Computadores, 3a/4a edicão. Editora Bookman, 2004.
    • KUROSE, James F. e ROSS, Keith W. Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição. Editora Addison Wesley SP, 2010.
    • STALLINGS, W. Redes e sistemas de comunicação de dados. Editora Elsevier RJ, 2005.
    • TANENBAUM, Andrew S. Redes de Computadores, tradução da quarta edição. Editora Campus RJ, 2003
    • GALLO, Michael A. E HANCOCK Wiliam M. Comunicação entre computadores e tecnologia de rede. Ed. Pioneira Thomson Learning SP, 2003.
    • COMMER, Douglas E. Redes de Computadores e Internet – 2a edição. Editora Bookman, Porto Alegre, 2001

Curiosidades

Listas de exercícios

RECUPERAÇÕES APÓS A GREVE !!!

Inicialmente pensei em fazermos as avaliações de recuperação nos dias em que vocês têm ANC. Minha sugestão é nesta 4a às 7:30 h, ou 6a feira às 9:40 h. Todos podem vir (confirmar por email) ?

DATAS E HORÁRIOS DA REVISÃO E DA AVALIAÇÃO

  • Revisão nesta semana (12 e 14/9) na 4a de 7:30 a 9:20h, e 6a feira de 9:40 a 11:30h.
  • AVALIAÇÕES:
    • Avaliação 3: 4a da semana que vem (19/9), iniciando 7:30 h.
    • Avaliações 1 e 2: 2a feira (24/9), iniciando 8:00 h.

Avaliações

Aluno 1a prova Trabalho LAN 2a prova Trabalho WAN 4a prova Conceito FINAL
Ana Paula C B C A B B
Bárbara D B D D* D* D
Bruno D/C B C A D/C C
Carlos Eduardo D A D A D/D D
Claudir D D* D A D D
Daniel D D* D D* D* D
Diogo D/C B C A D/C C
Douglas D D* D D* D* D
Fábio D D* D D* D* D
Ismael C B B A D/C C
João Mário D A D A D D
Jonas D/C A C A D/C C
José Lopes B A D* D* D* D
Juan Carlos C B C A D/C C
Kelly C B C A C C
Leandro B D*/C D/C A C C
Lindalvo D/C B C A D/C C
Luís Henrique B D*/C D/C A D/C C
Mário Allan C B C A D/C C
Mário André D/C B C A D/C C
Maycon Moreira B A A A B A
Maykon Chagas D/C B C A D*/C C
Michelle D B D* D* D* D
Nathan D A D* D* D* D
Renan D D* D* D* D* D
Ricardo B A C A D/C B
Rubia D D* D* D* D* D
Thiago D* D* D D* D* D

Legenda:

  • B?: conceito a verificar (apresentação de trabalho)
  • D/C: conceito da recuperação (C neste exemplo)
  • B+: conceito próximo do próximo nível (pode ajudar a decidir o conceito final)

Softwares

01/03: Apresentação

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

  • Capítulo 13 do livro "Comunicação de Dados e Redes de Computadores", de Berhouz Forouzan
  • Capítulo 5 do livro "Redes de Computadores e a Internet", de James Kurose.
  • Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum

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

Lembrando Redes de Computadores da 3a fase ...

Em RCO1 foi estudado o assunto Arquitetura de Redes com ênfase na Internet. A figura abaixo resume a arquitetura em camadas usada para representar o funcionamento de sistemas em uma rede de computadores. Cada camada representa uma certa funcionalidade necessária para a comunicação, e apresenta um ou mais protocolos que participam dessa tarefa.

Osi-tcpip-rco2.png


O foco da disciplina RCO2 é a infra-estrutura de rede, representada pelas camadas Internet e Acesso a rede no modelo TCP/IP (ou camadas Rede e inferiores no modelo OSI). Ela diz respeito ao conjunto de equipamentos, links, protocolos e tecnologias empregados para construir uma rede de computadores. Essa rede pode ser assim usada para que sistemas finais consigam se comunicar, tais como computadores de usuários, servidores, smartphones, e quaisquer outros dispositivos que produzam ou consumam dados. Desta forma, em IER estudaremos como escolher tecnologias, selecionar e configurar equipamentos, e interligá-los para construir redes de computadores.

Nosso ponto de partida serão pequenas redes compostas por uma ou mais redes locais (LANs) que se interligam, incluindo conexão para a Internet. Em cada rede investigaremos seu funcionamento, incluindo as configurações da subrede IP e os equipamentos usados.


Rede1-IER.png
Figura 1: uma pequena rede local (LAN) com conexão para Internet


Rede2-IER.png
Figura 2: duas redes locais (LAN) interligadas por um enlace de longa distância (WAN)


Conceitos necessários para realizar os exercícios:

  • Endereços IP e máscaras de rede
  • Rotas estáticas
  • Interfaces de rede

Ferramentas de apoio ao estudo

Uma limitação que temos está na pouca quantidade de equipamentos para as atividades em laboratório. Para atenuar esse problema, podem-se usar softwares que simulem redes. Existe um software desses em particular, chamado Netkit, que possibilita criar redes virtuais. Essas nada mais são que máquinas virtuais interligadas com switches e links seriais virtuais (isso é, tudo feito por software mas funciona como se fosse de verdade). Com ele se podem criar redes compostas por máquinas virtuais Linux, que são conectadas por links ethernet e PPP. Todos os cenários que usaremos em nosso estudo (com exceção das configurações de modems), poderiam ser reproduzidos com esse software. Existe um guia de instalação e uso publicado na wiki:

Esse guia contém uma coleção de exemplos, para que tenham ideia do que se pode fazer com o Netkit.

O Netkit fica assim como opção para complementar o estudo. Ele funciona como um laboratório de redes, em que se podem criar redes como aquelas que vemos em aula e mesmo inventar novas redes. Seu uso se destina a fixar conceitos, para que o uso dos equipamentos reais seja facilitado.

Além do Netkit, este simulador de roteamento IP, que roda dentro do próprio navegador, pode ajudá-los a exercitar a divisão de subredes e a criação de rotas estáticas.

Exercícios

1. Usando o Netkit crie as seguintes redes. Não esqueça de definir as rotas estáticas.

Rede1-1.png
Arquivo do experimento


Rede1-2.png
Arquivo do experimento (Lab2.conf)


Rede1-3.png

2. Teste a comunicação entre os computadores e roteadores usando o comando ping. Use também o tcpdump ou wireshark para monitorar as interfaces de rede.

02/03: Criando redes IP

... continuação dos exercícios da aula passada.

08/03: Redes locais

Referências bibliográficas:

  • Capítulo 13 do livro "Comunicação de Dados e Redes de Computadores", de Berhouz Forouzan
  • Capítulo 5 do livro "Redes de Computadores e a Internet, 5a edição", de James Kurose
  • Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum

Estudo de caso: entendendo a rede do IFSC-SJ

A rede do IF-SC é composta pelas redes dos campi, sendo que o campus Mauro Ramos centraliza os links para os demais campi. Dentre eles, o link para a rede do campus São José tem a capacidade de 1 Gbps. Além disso, o link para a Internet se localiza também no campus Mauro Ramos. A figura abaixo mostra um diagrama simplificado da rede do IF-SC, destacando apenas os campis Mauro Ramos, São José e Continente.


Ifsc.png


Como se pode ver, os campi são interligados por enlaces (links) de longa-distância com alta capacidade de transmissão (1 Gbps). O link para a Internet, provido pelo POP-SC (Ponto de Presença da RNP em SC, mantido pela UFSC) é também de 1 Gbps. Esses links de longa distância asseguram que não existam gargalos entre os campi, possibilitando uma boa vazão entre as redes.

No nosso primeiro projeto, vamos iniciar estudando a estrutura e funcionamento da rede do campus São José. Essa rede é formada por três redes locais, compostas por switches ethernet, servidores, gateways e firewall. O diagrama abaixo apresenta a estrutura geral da rede do nosso campus.


Ifsc-sj.png


  • Observar os equipamentos in-loco: veremos que tipos de equipamentos são usados para manter a estrutura, como são conectados, seus fabricantes e modelos.
  • Criar um modelo reduzido dessa rede usando equipamentos reais: criaremos um modelo usando switches e computadores do laboratório.
  • Investigar as tecnologias empregadas na rede: identificaremos as tecnologias usadas e testaremos sua capacidade de transmissão.

Distinção entre WAN, MAN e LAN

  • Aplicações de cada um desses tipos de rede
  • Tecnologias envolvidas
  • "Backbones" da Internet Brasileira:


Algumas redes WAN:


Uma rede MAN MetroEthernet em Florianópolis.

Man-metro.png

LANs


Pontos chaves (obtido de STALLINGS, 2005):

  • Uma LAN consiste de um meio de transmissão compartilhado e um conjunto de hardware e software para servir de interface entre dispositivos e o meio de transmissão, além de regular o acesso ao meio de forma ordenada.
  • As topologias usadas em LANs são anel (ring), barramento (bus), árvore (tree) e estrela (star). Uma LAN em anel consiste de um laço fechado formado por repetidores que possibilitam que dados circulem ao redor do anel. Um repetidor pode funcionar também como um ponto de acesso de um dispositivo. Transmissão geralmente se dá na forma de quadros (frames). As topologias barramento e árvore são segmentos de cabos passivos a que os dispositivos são acoplados. A transmissão de um quadro por um dispositivo (chamado de estação) pode ser escutada por qualquer outra estação. Uma LAN em estrela inclui um nó central onde as estações são acopladas.
  • Um conjunto de padrões definido para LANs especifica uma faixa de taxas de dados e abrange uma variedade de topologias e meios de transmissão.
  • Na maioria dos casos, uma organização possui múltiplas LANs que precisam ser interconectadas. A abordagem mais simples para esse problema se vale de equipamentos chamados de pontes (bridges). Os conhecidos switches Ethernet são exemplos de pontes.
  • Switches formam os blocos de montagem básicos da maioria das LANs (não muito tempo atrás hubs também eram usados).


Lan1-2011-1.png
Uma pequena LAN com um link para Internet



Lan2-2011-1.png
Uma LAN um pouco maior, e também com um link para Internet

09/03 LANs: arquitetura IEEE 802

A 1a lista de exercícios já está disponível.

  • Arquitetura IEEE 802 e Redes locais IEEE 802.3 (Ethernet)
    • Ver transparências.
    • Capítulo 14 do livro "Comunicação de Dados e Redes de Computadores", de Behrouz Forouzan.
    • Capítulo 5 do livro "Redes de Computadores e a Internet", de James Kurose.
    • Capítulo 4 do livro "Redes de Computadores", de Andrew Tanenbaum.
    • Ethernet 40 Gbps e 100 Gbps


Ethernet.png

Desenho usado por Bob Metcalfe, um dos criadores da Ethernet, para apresentação em uma conferência em 1976.

  • Elementos de uma rede Ethernet atual:
    • Estações: equipamentos que se comunicam pela rede. Ex: computadores e roteadores.
    • Interface de rede (NIC): dispositivo embutido em cada estação com a finalidade de prover o acesso à rede. Implementa as camadas PHY e MAC.
    • Meio de transmissão: representado pelos cabos por onde os quadros ethernet são transmitidos. Esses cabos são conectados às interfaces de rede das estações.
    • Switch: equipamento de interconexão usado para interligar as estações. Cada estação é conectada a um switch por meio de um cabo. Um switch usualmente possui múltiplas interfaces de rede (12, 24 ou mais). Uma rede com switches apresenta uma topologia física em estrela.


Lan2-2011-1.png
Uma LAN com switches

... mas no início redes Ethernet não eram assim ! Leia o material de referência para ver como eram essas redes num passado relativamente próximo.

Atividade

Será criado um modelo simplificado da rede do campus IF-SC SJ.

... como tarefa extra-classe, experimente fazer esse modelo reduzido também com o Netkit.

Um exemplo de configuração para o Netkit
# computadores e switch que ficam na subrede do IF-SC SJ
ifsc1[type]=generic
ifsc2[type]=generic
ifsc-switch[type]=switch
asa5510[type]=gateway

# Gateway, micros e switch do lab. Redes 1
r1-2[type]=generic
r1-3[type]=generic
gw-r1[type]=gateway
r1-switch[type]=switch

# Gateway, micros e switch  do lab. Redes 2
r2-2[type]=generic
r2-3[type]=generic
gw-r2[type]=gateway
r2-switch[type]=switch

# Asportas do switch do IF-SC SJ
ifsc-switch[eth0]=ifsc-port1
ifsc-switch[eth1]=ifsc-port2
ifsc-switch[eth2]=ifsc-port3
ifsc-switch[eth3]=ifsc-port4
ifsc-switch[eth4]=ifsc-port5

# Micros da subrede do IF-SC obtem enderecos IP via DHCP
ifsc1[eth0]=ifsc-port1:ip=dhcp
ifsc2[eth0]=ifsc-port2:ip=dhcp

# O ASA 5510 é gateway da rede do IF-SC SJ.
asa5510[eth0]=ifsc-port3:ip=172.18.0.254/16

# ... no uplink não foi usado o IP externo do IF-SC SJ para evitar conflito 
# (isso poderia impedir esse gateway de se comunicar com servidores do IF-SC).
asa5510[eth1]=uplink:ip=10.0.0.1/30
asa5510[default_gateway]=10.0.0.2

# O ASA 5510 faz NAT da rede interna.
asa5510[nat]=eth1

# O ASA 5510 é também o servidor DHCP da subrede do IF-SC SJ
asa5510[dhcp]=eth0:range=172.18.20.1,172.18.30.200:default-lease=43200:max-lease=86400:gateway=172.18.0.254

# Portas do switch do lab. Redes 1
r1-switch[eth0]=r1-port1
r1-switch[eth1]=r1-port2
r1-switch[eth2]=r1-port3

# Ligacao dos micros e gateway do lab. Redes 1 ao seu switch. Esses micros tem IP fixo.
r1-2[eth0]=r1-port1:ip=192.168.1.2/24
r1-3[eth0]=r1-port2:ip=192.168.1.3/24
gw-r1[eth0]=r1-port3:ip=192.168.1.1/24

# O gateway do lab. Redes 1 fica ligado tambem ao switch do IF-SC
gw-r1[eth1]=ifsc-port4:ip=172.18.0.100/16

# O gateway default dos micros do lab. Redes 1
r1-2[default_gateway]=192.168.1.1
r1-3[default_gateway]=192.168.1.1

# A rota default do gateway do lab. Redes 1 vai pelo ASA 5510
gw-r1[default_gateway]=172.18.0.254

# O gateway do lab. Redes 1 faz NAT da rede interna
gw-r1[nat]=eth1

# Portas do switch do lab. Redes 2
r2-switch[eth0]=r2-port1
r2-switch[eth1]=r2-port2
r2-switch[eth2]=r2-port3

# Ligacao dos micros e gateway do lab. Redes 2 ao seu switch. Esses micros tem IP fixo.
r2-2[eth0]=r2-port1:ip=192.168.2.2/24
r2-3[eth0]=r2-port2:ip=192.168.2.3/24
gw-r2[eth0]=r2-port3:ip=192.168.2.1/24

# O gateway do lab. Redes 2 fica ligado tambem ao switch do IF-SC
gw-r2[eth1]=ifsc-port5:ip=172.18.0.101/16

# O gateway default dos micros do lab. Redes 2
r2-2[default_gateway]=192.168.2.1
r2-3[default_gateway]=192.168.2.1

# A rota default do gateway do lab. Redes 2 vai pelo ASA 5510
gw-r2[default_gateway]=172.18.0.254

# O gateway do lab. Redes 2 faz NAT da rede interna
gw-r2[nat]=eth1


Essa configuração gera a seguinte rede no Netkit:


Ifsc-sj.png

Arquitetura IEEE 802

Define um conjunto de normas e tecnologias no escopo das camadas física (PHY) e de enlace. A camada de enlace é dividida em duas subcamadas:

  • LLC (Logical Link Control): o equivalente a um protocolo de enlace de fato, porém na prática de uso restrito (pouco utilizada).
  • MAC (Medium Access Control): um protocolo de acesso ao meio de transmissão, que depende do tipo de meio físico e tecnologia de comunicação. Esse tipo de protocolo é necessário quando o meio de transmissão é compartilhado.


Arq-ieee.png

Protocolo de acesso ao meio (MAC)

Parte da camada de enlace na arquitetura IEEE 802, tem papel fundamental na comunicação entre estações. O MAC é responsável por:

  • Definir um formato de quadro onde deve ser encapsulada uma PDU de um protocolo de camada superior.


Quadro-ethernet.png
Quadro ethernet


  • Endereçar as estações, já que o meio de transmissão é multiponto (ver campos Dest Add e Source Add no quadro Ethenet).
  • Acessar o meio para efetuar a transmissão de quadros, resolvendo conflitos de acesso quando necessário. Um conflito de acesso (chamado de colisão) pode ocorrer em alguns casos quando mais de uma estação tenta transmitir ao mesmo tempo.


Csma-cd.png
O MAC CSMA/CD (Carrier Sense Multiple Access/Collision Detection


Utilização do meio de transmissão em uma rede local com MAC do tipo CSMA/CD

Nesta seção mostra-se como estimar o desempenho do CSMA/CD por meio de experimentos para medir a utilização máxima do meio. Esses experimentos podem ser feitos usando uma rede real, com computadores interligados por hubs, ou com um simulador. Em ambos os casos deve-se fazer com que vários computadores gerem tráfego intenso na rede, e calcular ao final a utilização do meio da seguinte forma:

O total de quadros recebidos pode ser obtido em qualquer um dos computadores.

Experiência com uma rede real

Para fazer com uma rede real:

Resultados (obtidos em 2010-2):

1: 140254390 214015690
2: 214015690 276800590
3: 276800590 336225070
4: 336225070 398761510
5: 398761510 460950490
6: 479962630 544977970
7: 544977970 610117870
8: 690263890 755876470

Com esses dados deve-se plotar um gráfico da quantidade de bytes recebidos X quantidade de estações transmissoras. Na tabela acima, as estações transmissoras estão na 1a coluna, e a quantidade de bytes recebidos deve ser calculada pela subtração da 3a coluna pela 2a coluna.

Experiência com uma rede simulada

Para fazer a experiência pode-se usar também o simulador Omnet++:

  • Instale o Omnet++ 4
  • Instale o modelo INET:
    # Faz o download do INET Framework (aprox. 23 MB)
    wget http://tele.sj.isfc.edu.br/~msobral/RCO2/soft/inet-20100323-src.tgz
    
    # Descompacte o arquivo
    tar xzf inet-20100323-src.tar.gz
    
    # Compila o INET
    cd inet
    make makefiles
    make
    
  • Copie esses arquivos para dentro de inet/examples/ethernet/lans:
    mu.ini
    mu2.ini
    Networks.ned
  • Para executar uma simulação interativa, com animação, faça assim:
    cd inet/examples/ethernet/lans
    ./run mu.ini
    
    ... e escolha um dos modelos para executar.
  • Para executar uma simulação não-interativa, com uma bateria de experimentos que variam a quantidade de estações (2 a 16) e tamanhos de quadros (256, 512 e 1480 bytes), faça assim:
    cd inet/examples/ethernet/lans
    ./run -u Cmdenv -c Hub1 mu2.ini
    
  • Os resultados das simulações estarão em arquivos dentro do subdiretório inet/examples/ethernet/lans/results. Por exemplo, o arquivo Hub1-0.sca contém o resultado da primeira simulação, e parte de seu conteúdo é mostrada abaixo (cada linha contém algum resultado ou estatística da simulação, e o título é auto-explicativo):
    version 2
    run Hub1-1-20100423-09:38:33-7627
    attr bytes 256
    attr configname Hub1
    attr datetime 20100423-09:38:33
    attr experiment Hub1
    attr inifile mu2.ini
    attr iterationvars "$bytes=256, $stations=3"
    attr iterationvars2 "$bytes=256, $stations=3, $repetition=0"
    attr measurement "$bytes=256, $stations=3"
    attr network HubLAN2
    attr processid 7627
    attr repetition 0
    attr replication #0
    attr resultdir results
    attr runnumber 1
    attr seedset 1
    attr stations 3
    
    scalar .        bytes   256
    scalar .        stations        3
    scalar HubLAN2.sta[0].cli       "packets sent"  0
    scalar HubLAN2.sta[0].cli       "packets rcvd"  0
    scalar HubLAN2.sta[0].cli       "end-to-end delay mean"         0
    scalar HubLAN2.sta[0].cli       "end-to-end delay stddev"       nan
    scalar HubLAN2.sta[0].cli       "end-to-end delay min"  0
    scalar HubLAN2.sta[0].cli       "end-to-end delay max"  0
    scalar HubLAN2.sta[0].srv       "packets sent"  0
    scalar HubLAN2.sta[0].srv       "packets rcvd"  247453
    scalar HubLAN2.sta[0].srv       "end-to-end delay mean"         1.6121223100944
    scalar HubLAN2.sta[0].srv       "end-to-end delay stddev"       1.0596723502417
    scalar HubLAN2.sta[0].srv       "end-to-end delay min"  0.0002378
    scalar HubLAN2.sta[0].srv       "end-to-end delay max"  5.18103003756
    scalar HubLAN2.sta[0].llc       "dsaps registered"      1
    scalar HubLAN2.sta[0].llc       "packets from higher layer"     0
    scalar HubLAN2.sta[0].llc       "frames from MAC"       247453
    scalar HubLAN2.sta[0].llc       "packets passed up"     247453
    scalar HubLAN2.sta[0].llc       "packets dropped - unknown DSAP"        0
    scalar HubLAN2.sta[0].mac       "simulated time"        60.0001141233
    scalar HubLAN2.sta[0].mac       "txrate (Mb)"   10
    scalar HubLAN2.sta[0].mac       "full duplex"   0
    scalar HubLAN2.sta[0].mac       "frames sent"   0
    scalar HubLAN2.sta[0].mac       "frames rcvd"   247453
    scalar HubLAN2.sta[0].mac       "bytes sent"    0
    scalar HubLAN2.sta[0].mac       "bytes rcvd"    68544481
    scalar HubLAN2.sta[0].mac       "frames from higher layer"      0
    scalar HubLAN2.sta[0].mac       "frames from higher layer dropped (iface down)"         0
    scalar HubLAN2.sta[0].mac       "frames dropped (bit error)"    0
    scalar HubLAN2.sta[0].mac       "frames dropped (not for us)"   0
    scalar HubLAN2.sta[0].mac       "frames passed up to HL"        247453
    scalar HubLAN2.sta[0].mac       "PAUSE frames sent"     0
    scalar HubLAN2.sta[0].mac       "PAUSE frames rcvd"     0
    scalar HubLAN2.sta[0].mac       "frames/sec sent"       0
    scalar HubLAN2.sta[0].mac       "frames/sec rcvd"       4124.2088221947
    scalar HubLAN2.sta[0].mac       "bits/sec sent"         0
    scalar HubLAN2.sta[0].mac       "bits/sec rcvd"         9139246.7499834
    scalar HubLAN2.sta[0].mac       "rx channel idle (%)"   5.937858457565
    scalar HubLAN2.sta[0].mac       "rx channel utilization (%)"    94.031961146038
    scalar HubLAN2.sta[0].mac       "rx channel collision (%)"      0.030180396396893
    scalar HubLAN2.sta[0].mac       collisions      4825
    scalar HubLAN2.sta[0].mac       backoffs        0
    

O gráfico abaixo foi obtido com esse experimento de simulação:

Csma-perf-sim.png

As simulações tiveram os seguintes parâmetros:

  • Quadros de 256, 512 e 1480 bytes
  • 2 a 45 estações
  • Geração de tráfego por estação com intervalos entre quadros dados por uma distribuição exponencial com média 15*tamanho_quadro_em_bits*0.11us (0.11us é o tempo aproximado de um bit)
Análise de desempenho do CSMA/CD

Uma análise feita no capítulo 4 do livro "Redes de Computadores, 4a ed." de Andrew Tanenbaum fornece a seguinte previsão aproximada de desempenho para o CSMA/CD em uma rede Ethernet a 10 Mbps.

  • Utilização do meio:

  • B: taxa de bits nominal
  • L: comprimento do meio de transmissão
  • c: velocidade de propagação do sinal
  • F: comprimento do quadro

Csma-perf.png

Essa figura mostra curvas para a utilização do meio em função da quantidade de estações prontas para transmitir, e para diferentes tamanhos de quadro. A conclusão é que quadros menores proporcionam desempenho inferior, assim como uma quantidade maior de estações resulta em uma provável menor utilização do meio. No entanto essa análise considera a rede numa situação de carga muito alta, o que não acontece normalmente. Há também algumas simplificações no desenvolvimento da análise, tal como considerar que a probabilidade de retransmissão constante em cada slot, ao invés de analisar o algoritmo de recuo exponencial binário (backoff). Finalmente, esse resultado tem sentido para um meio de transmissão compartilhado, mas a atualmente as redes locais ethernet trabalham com meios de transmissão exclusivos (ethernet comutada e full-duplex, em que não há risco de colisão).

Para fins de comparação, veja os resultados obtidos com uma rede simulada.

14/03: Interligando redes locais

  • Ver transparências.
  • Capítulo 16 do livro "Comunicação de Dados e Redes de Computadores, 3a ed.", de Behrouz Forouzan.
  • Capítulo 5 do livro "Redes de Computadores e a Internet, 5a ed.", de James Kurose.
  • Capítulo 4 do livro "Redes de Computadores, 4a ed.", de Andrew Tanenbaum.


Interligação de LANs (norma IEEE802.1D)

Tecnologias de LAN switches

Switches store-and-forward X cut-through

  • Leia este bom texto sobre estruturas internas de switches.



Algumas animações mostrando o funcionamento de switches store-and-forward e cut-through:


Segmentando redes

A equipe que administra a rede do campus São José vem estudando uma reestruturação dessa rede. Como diferentes setores e públicos a utilizam, e para diferentes propósitos, concluiu-se que seria apropriado segmentá-la em algumas subredes. Isso possibilitaria facilitar o controle de quem usa a rede, além do policiamento do tráfego. Para isso, a subrede geral do campus precisaria ser segmentada inicialmente em cinco novas subredes, denominadas:

Segmento Descrição Subrede IP
Pedagogica Pontos das salas de aula e laboratórios de informática 172.18.32.0/20
Administrativa Pontos de setores administrativos 172.18.16.0/20
DMZ Servidores acessíveis de fora da escola (ex: Wiki, WWW) 200.135.37.64/26
BD Servidores que hospedam bancos de dados (ex: LDAP, MySQL) 172.18.240.0/24
LAN Demais pontos de rede 172.18.0.0/20


A figura abaixo mostra a estrutura proposta para a rede do campus São José, composta pelas cinco novas subredes e as subredes dos laboratórios de Redes 1 e Redes 2. Como se pode observar, o roteador/firewall Cisco ASA 5510 se torna um nó central da rede, pois interliga todas suas subredes (com exceção dos laboratórios de Redes 1 e Redes 2).


Nova-rede-ifsc-sj.png


Existe mais de uma forma de implantar uma estrutura como essa, as quais serão apresentadas nas próximas subseções.

Segmentação física

A segmentação física é uma solução aparentemente simples e direta. Cada subrede deve ser composta de uma estrutura exclusiva, contendo seus switches e cabeamentos. No entanto, para adotar esse tipo de segmentação, algumas modificações precisarão ser feitas na infraestrutura de rede existente. Observe a estrutura física da rede do campus:

Rede-ifsc-sj.png


O que seria necessário fazer para implantar uma segmentação física ?

Segmentação com VLANs

Se a reestruturação pudesse ser efetuada com mínimas modificações na estrutura física (incluindo cabeamento), a implantação da nova rede seria mais rápida e menos custosa. Para isso ser possível, seria necessário que a infraestrutura de rede existente tivesse a capacidade de agrupar portas de switches, separando-as em segmentos lógicos. Quer dizer, deveria ser possível criar redes locais virtuais, como mostrado na seguinte figura:

Vlans.png

No exemplo acima, três redes locais virtuais (VLAN) foram implantadas nos switches. Cada rede local virtual é composta por um certo número de computadores, que podem estar conectados a diferentes switches. Assim, uma rede local pode ter uma estrutura lógica diferente da estrutura física (a forma como seus computadores estão fisicamente interligados). Uma facilidade como essa funcionaria, de certa forma, como um patch panel virtual, que seria implementado diretamente nos switches.

Exemplo: a configuração do Netkit mostrada abaixo cria uma pequena rede composta por um switch e quatro computadores. Além disso, foram definidas duas VLANs (VLAN 5 e VLAN 10). Com isso, os computadores pc1 e pc4 pertencem a VLAN 5, e os computadores pc2 e pc3 estão na VLAN 10. Execute a rede abaixo e teste a comunicação entre os computadores - quais computadores conseguem se comunicar ?.

sw[type]=switch
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic
pc4[type]=generic

# As portas do switch
sw[eth0]=port0:vlan_untagged=5
sw[eth1]=port1:vlan_untagged=10
sw[eth2]=port2:vlan_untagged=10
sw[eth3]=port3:vlan_untagged=5

# Ligando os computadores ao switch
pc1[eth0]=port0:ip=192.168.0.1/24
pc2[eth0]=port1:ip=192.168.0.2/24
pc3[eth0]=port2:ip=192.168.0.3/24
pc4[eth0]=port3:ip=192.168.0.4/24
Vlans-ex1.png

Padrão IEEE 802.1q

Os primeiros switches com suporte a VLANs as implementavam de forma legada (i.e. não seguiam um padrão da indústria). Isso impedia que houvesse interoperabilidade entre equipamentos de diferentes fabricantes. Logo a IEEE formou um grupo de trabalho para propor mecanismos padronizados para implantar VLANs, dando origem ao padrão IEEE 802.1q. Os fabricantes de equipamentos de rede o adoataram largamente, suplantando outras tecnologias legadas (ex: ISL e VTP da Cisco). Com isso, VLANs IEEE 802.1q podem ser criadas usando switches de fabricantes diferentes.

Atualmente, a implantação de VLANs depende de switches com suporte ao padrão IEEE 802.1q. Assim, verifique quais dos switches do laboratório possuem suporte a VLAN:

Uma VLAN é identificada por um número, chamado VID (VLAN Identifier), sendo que a VLAN com VID 1 é considerada a VLAN default (configuração de fábrica). Em um switch com suporte a VLAN IEEE 802.1q, cada porta possui um (ou mais ...) VID, o que define a que VLAN pertence. Assim, para criar uma VLAN, devem-se modificar os VID das portas de switches que dela farão parte. Por exemplo, em uma pequena rede com duas VLANs as portas dos switches podem estar configuradas da seguinte forma:


Bridge3.png
switch1[type]=switch
switch2[type]=switch
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic
pc4[type]=gateway
pc5[type]=generic
pc6[type]=generic

pc1[default_gateway]=192.168.0.4
pc2[default_gateway]=192.168.0.4
pc3[default_gateway]=192.168.1.4
pc5[default_gateway]=192.168.1.4
pc6[default_gateway]=192.168.0.4

switch1[eth0]=sw1-port0:vlan_untagged=5
switch1[eth1]=sw1-port1:vlan_untagged=5
switch1[eth2]=sw1-port2:vlan_untagged=10
switch1[eth3]=link-sw1-sw2:vlans_tagged=5,10

switch2[eth0]=sw2-port0:vlans_tagged=5,10
switch2[eth1]=sw2-port1:vlan_untagged=10
switch2[eth2]=sw2-port2:vlan_untagged=5
switch2[eth3]=link-sw1-sw2:vlans_tagged=5,10

pc1[eth0]=sw1-port0:ip=192.168.0.1/24
pc2[eth0]=sw1-port1:ip=192.168.0.2/24
pc3[eth0]=sw1-port2:ip=192.168.1.3/24
pc4[eth0]=sw2-port0:vlans_tagged=(5,ip=192.168.0.4/24),(10,ip=192.168.1.4/24)
pc5[eth0]=sw2-port1:ip=192.168.1.5/24
pc6[eth0]=sw2-port2:ip=192.168.0.6/24

Além do VID, a configuração da porta de um switch deve especificar o modo de operação da VLAN:

  • tagged: cada quadro transmitido ou recebido por essa porta deve conter o número da VLAN a que pertence. Esse modo é usado normalmente em portas que interligam switches.
  • untagged: quadros que entram e saem pela porta não possuem informação sobre a VLAN a que pertencem. Usado normalmente para conectar computadores e servidores a switches.


Esses modos tagged e untagged implicam haver uma forma de um quadro Ethernet informar a que VLAN pertence. Isso é usado para restringir a propagação de quadros, fazendo com que sejam recebidos e transmitidos somente por portas de switches que fazem parte de suas VLANs.


O padrão IEEE 802.1q define, entre outras coisas, uma extensão ao quadro MAC para identificar a que VLAN este pertence. Essa extensão, denominada tag (etiqueta) e mostrada na figura abaixo, compõe-se de 4 bytes situados entre os campos de endereço de origem e Type. O identificador de VLAN (VID) ocupa 12 bits, o que possibilita portanto 4096 diferentes VLANs.


Quadro-8021q.png
Quadro ethernet com a TAG IEEE 802.1q


A tag de VLAN, inserida em quadros Ethernet, está diretamente relacionada com os modos tagged e untagged de portas de switches. Portas em modo tagged transmitem e recebem quadros que possuem tag, e portas em modo untagged recebem e transmitem quadros que não possuem tag. Isso foi pensado para tornar a implantação de VLANs transparente para os usuários finais, pois seus computadores não precisarão saber que existem VLANs (i.e. não precisarão interpretar tags). Por isso equipamentos que não interpretam tags são denominados VLAN-unaware (desconhecem VLAN), e equipamentos que recebem e transmitem quadros com tag são referidos como VLAN-aware (conhecem VLAN).


Exemplo: simulador de switch com VLAN:
Esta animação possibilita simular a configuração de VLANs em um switch, e efetuar testes de transmissão. Experimente criar diferentes VLANs e observar o efeito em transmissões unicast e broadcast (clique na figura para acessar o simulador).

Um simulador de VLANs

Atividade

Na figura abaixo, a rede da esquerda está fisicamente implantada em uma pequena empresa. No entanto, uma reestruturação tem como objetivo modificá-la de acordo com o diagrama mostrado à direita. Essa alteração da rede deve ser feita sem adicionar switches ou modificar o cabeamento (tampouco devem-se mudar as conexões de pontos de rede às portas de switches). Faça essa modificação usando o Netkit.

Vlan-ex1.png

  1. Criar a topologia física:
    sw1[type]=switch
    sw2[type]=switch
    pc1[type]=generic
    pc2[type]=generic
    pc3[type]=generic
    pc4[type]=generic
    pc5[type]=generic
    pc6[type]=generic
     
    sw1[eth0]=sw1-port0
    sw1[eth1]=sw1-port1
    sw1[eth2]=sw1-port2
    sw1[eth3]=link-sw1-sw2
     
    sw2[eth0]=sw2-port0
    sw2[eth1]=sw2-port1
    sw2[eth2]=sw2-port2
    sw2[eth3]=link-sw1-sw2
     
    pc1[eth0]=sw1-port0
    pc2[eth0]=sw1-port1
    pc6[eth0]=sw1-port2
    
    pc3[eth0]=sw2-port0
    pc4[eth0]=sw2-port1
    pc5[eth0]=sw2-port2
    
  2. Criar a topologia lógica usando VLANs
    ... isso é com vocês!
    <syntaxhighlight lang=text>
    sw1[type]=switch
    sw2[type]=switch
    pc1[type]=generic
    pc2[type]=generic
    pc3[type]=generic
    pc4[type]=generic
    pc5[type]=generic
    pc6[type]=generic
     
    sw1[eth0]=sw1-port0:vlan_untagged=1
    sw1[eth1]=sw1-port1:vlan_untagged=3
    sw1[eth2]=sw1-port2:vlan_untagged=2
    sw1[eth3]=link-sw1-sw2
     
    sw2[eth0]=sw2-port0:vlan_tagged=1,2,3
    sw2[eth1]=sw2-port1:vlan_untagged=3
    sw2[eth2]=sw2-port2:vlan_untagged=1
    sw2[eth3]=link-sw1-sw2
     
    pc1[eth0]=sw1-port0:ip=192.168.1.1/24
    pc2[eth0]=sw1-port1:ip=192.168.3.2/24
    pc6[eth0]=sw1-port2:ip=192.168.2.6/24
    
    pc3[eth0]=sw2-port0:vlan_tagged=(1,ip=192.168.1.3/24),(2,ip=192.168.2.3/24),(3,ip=192.168.3.3/24)
    pc4[eth0]=sw2-port1:ip=192.168.3.4/24
    pc5[eth0]=sw2-port2:ip=192.168.1.5/24
    

15/03: Redes locais e VLANs

A 2a lista de exercícios já está disponível.


...continuando o estudo sobre VLANs.

Atividade

Voltando à segmentação da rede do campus São José, vamos implantar a nova rede usando VLANs.


Ifsc-sj-simples.png Ier-seta.png Nova-rede-ifsc-sj.png

Primeiro isso será realizado usando o Netkit, e em seguida será implantado no laboratório. Para simplificar a rede, vamos assumir que a topologia física está implantada como mostrado na figura acima, à esquerda.

22/03: Redes locais e VLANs

Foi realizada uma atividade de implantação de uma rede comv VLANs. Essa rede foi criada usando os switches D-Link 3526, interligados da seguinte forma:


Rede-vlan-real.png


Essa rede foi implantada com VLANs, de forma a funcionar como se tivesse a seguinte topologia:


Rede-vlan-virtual.png

23/03: Protegendo a rede local contra erros de interligação

  • Capítulo 16 do livro "Comunicação de Dados e Redes de Computadores, 3a ed.", de Behrouz Forouzan.
  • Capítulo 5 do livro "Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição, de James Kurose.
  • Capítulo 4 do livro "Redes de Computadores, 4a ed.", de Andrew Tanenbaum.

Outros materiais:

A nova rede do IF-SC SJ

Após implantar a nova rede do IF-SC SJ, a equipe da gerência de rede passou a acompanhar seu uso pela comunidade escolar. E um certo dia um aluno acidentalmente pegou um cabo e ligou em duas tomadas de rede em um laboratório (que está na Subrede Pedagógica). Quer dizer, ele fez algo assim com um dos switches da rede:


Curto-lan.png


Para ver a consequência dessa ação aparentemente inocente, experimente reproduzi-la em uma rede feita com o Netkit:

Stp-ex1.png
pc1[type]=generic
pc2[type]=generic
sw[type]=switch

sw[eth0]=port0
sw[eth1]=port1

pc1[eth0]=port0:ip=192.168.0.1/24
pc2[eth0]=port1:ip=192.168.0.2/24

# ... a barbeiragem do usuário da rede no switch !
sw[eth2]=link-barbeiragem
sw[eth3]=link-barbeiragem


O que ocorreu ao tentar pingar de pc1 para pc2 ?

O problema dos ciclos (caminhos fechados) em uma rede local ethernet

A interligação acidental de duas portas de um switch cria um ciclo na rede local (loop). Mas isso pode ser feito também de forma intencional, pois em LANs grandes pode ser desejável ter enlaces redundantes, para evitar que a interrupção de um enlace isole parte da rede. A existência de interligações alternativas portanto é algo que pode ocorrer em uma rede local, seja por acidente ou com a finalidade de conferir algum grau de tolerância a falhas na infraestrutura da rede. Um caso em que uma rede possui um ciclo intencionalmente colocado pode ser visto na LAN abaixo:

LAN-anel-stp.png

sw1[type]=switch
sw2[type]=switch
sw3[type]=switch
pc1[type]=generic
pc2[type]=generic
pc3[type]=generic

# Ativação do STP nos switches
sw1[stp]=on
sw2[stp]=on
sw3[stp]=on

sw1[eth0]=sw1-sw2
sw1[eth1]=sw1-port1
sw1[eth2]=sw1-sw3

sw2[eth0]=sw1-sw2
sw2[eth1]=sw2-port1
sw2[eth2]=sw2-sw3

sw3[eth0]=sw1-sw3
sw3[eth1]=sw3-port1
sw3[eth2]=sw2-sw3

pc1[eth0]=sw1-port1:ip=192.168.0.1/24
pc2[eth0]=sw2-port1:ip=192.168.0.2/24
pc3[eth0]=sw3-port1:ip=192.168.0.3/24

Apesar de desejável em algumas situações, uma topologia de rede com caminhos fechados, como visto na figura acima, não pode ser instalada sem alguns cuidados. Uma rede como essa trancaria devido a um efeito chamado de tempestade de broadcasts (broadcast storm). Isso acontece porque, ao receber um quadro em broadcast, um switch sempre o retransmite por todas as demais portas. Para que a rede acima funcione como esperado, uma ou mais portas de switches precisarão ser desativadas de forma que o caminho fechado seja removido. Ter que fazer isso manualmente tira o sentido de ter tal configuração para tolerância a falhas (e não impede um "acidente" como aquele descrito no início desta secão), por isso foi criado o protocolo STP (Spanning Tree Protocol, definido na norma IEEE 802.1d) para realizar automaticamente essa tarefa.

Atividade

Vamos realizar um experimento para entender melhor como funciona o STP. Isso nos dará base para aplicá-lo no caso da rede da escola (o que faremos na pŕoxima aula).

Switches e STP (Spanning Tree Protocol) no Netkit

... ver também:

  • timers do STP (hello e max-age), que influenciam o tempo de convergência do protocolo

29/03: Acrescentando enlaces redundantes na rede da escola

Voltando à segmentação da rede do campus São José, vamos acrescentar alguns enlaces para conferir um grau de tolerância a falhas:


Ifsc-sj-simples.png Ier-seta.png Nova-rede-ifsc-sj.png


Dada a dimensão da rede, isso será realizado usando o Netkit. Sendo assim, implante a rede acima e ative o STP para tratar os caminhos fechados. Em seguida, experimente modificar alguns links para verificar se a rede continua funcionando.

30/03: Fazendo controle de acesso em redes locais


Controlando o acesso à rede da escola

A gerência de rede concluiu que deve-se controlar os acessos aos pontos da rede da escola. Com isso, somente usuários devidamente autenticados e autorizados poderão se comunicar usando os pontos de rede. A forma com que isso deve ser feito deve impedir inclusive que uma pessoa conecte um laptop a uma tomada de rede, e consiga acessar a rede. Além disso, o acesso pode ser negado ou concedido dependendo do tipo de usuário (aluno, funcionário, professor, visitante) e da localização do ponto de rede. O mecanismo de segurança capaz de fazer isso deve agir portanto diretamente nas portas de switches, habilitando-as ou bloqueando-as dependendo do usuário que tentar usar o equipamento nela conectado.

Padrão IEEE 802.1x


O padrão IEEE 802.1x define um framework para controle de acesso a redes locais IEEE 802, sendo usado tanto em redes cabeadas quanto sem-fio. O propósito dessa norma é criar mecanismos para identificar e autorizar ou não o acesso de um usuário à infraestrutura da rede. Esses mecanismos são implementados em três componentes que forma a estrutura de controle de acesso IEEE 802.1x, mostrada na figura abaixo:

Ieee-8021x.png

  • Supplicant: o cliente que deseja se autenticar. Implementado com um software (ex: wpa_supplicant, xsupplicant).
  • Autenticador: o equipamento que dá acesso à rede para o cliente, e onde é feito o bloqueio ou liberação do uso da rede. Implementado em switches e Access Points (no caso de redes sem-fio).
  • Servidor de Autenticação: o equipamento que verifica as credenciais fornecidas pelo supplicant, e informa ao autenticador se ele pode ou não acessar a rede. Implementado comumente em um servidor Radius.

A autenticação se faz com protocolos específicos definidos na norma IEEE 802.1x:

  • EAP (Extensible Authentication Protocol): protocolo para intercâmbio de informações de autenticação entre supplicant e servidor de autenticação.
  • EAPOL (EAP over LAN): protocolo para transportar as PDUs EAP entre supplicant e autenticador.

Ieee-802x-eap.png

Existem vários métodos EAP, que correspondem a diferentes mecanismos de autenticação. Assim, o método de autenticação pode ser escolhido de acordo com as necessidades de uma rede.

  • EAP-MD5: baseado em login e senha, usa um desafio MD5 para autenticar o usuário.
  • EAP-TLS: baseado em certificados digitais X.509, usados para autenticar a rede para o supplicant, e o supplicant para a rede.
  • EAP-TTLS: também baseado em certificados digitais, mas somente para autenticar a rede pro supplicant. O supplicant se autentica com algum outro método EAP mais simples, como EAP-MD5.
  • ... e muitos outros !


05/04: Revisão e Trabalho

... para a avaliação que está próxima !

Trabalho 1: projeto de uma rede local

O 1o trabalho trata de implantar um modelo para a rede da escola. Esse modelo deve incorporar as seguintes técnicas de redes locais vistas em aula:

  • Segmentação com uso de VLANs: as subredes a serem implantadas devem ser feitas usando segmentação lógica.
  • Proteção contra enlaces redundantes: a rede deve ser protegida contra ligações entre tomadas de rede ("curtos-circuitos" com cabos de rede). E se qualquer um dos switches cair ou ligação entre switches for rompida, os demais switches devem conseguir se comunicar.
  • Controle de acesso: usuários devem ser identificados e autorizados ao tentarem usar pontos de rede em qualquer um dos segmentos da rede. As seguintes restrições devem ser feitas:
    • Alunos: podem acessar somente a rede Pedagogica
    • Professores e funcionários: apenas redes Pedagogica ou Administrativa
    • Administradores da rede: todas as redes


A rede que será a base para o trabalho está mostrada abaixo. A rede da esquerda corresponde à topologia física, e a da direita representa a topologia lógica.

Ifsc-sj-simples.png Ier-seta.png Nova-rede-ifsc-sj.png


As subredes a serem criadas devem usar as seguintes faixas de endereços:

Segmento Descrição Subrede IP
Pedagogica Pontos das salas de aula e laboratórios de informática 172.18.32.0/20
Administrativa Pontos de setores administrativos 172.18.16.0/20
DMZ Servidores acessíveis de fora da escola (ex: Wiki, WWW) 200.135.37.64/26
BD Servidores que hospedam bancos de dados (ex: LDAP, MySQL) 172.18.240.0/24
LAN Demais pontos de rede 172.18.0.0/20


Para fins de demonstração, os seguintes usuários devem ser usados para fins de controle de acesso (as senhas ficam a seu critério):

Usuário Tipo
boi Administrador da rede
humberto Administrador da rede
joaozinho Aluno
cacilda Aluna
raimundo Professor
marocas Professora
manuel Funcionário
bilica Funcionária


A rede deve ser criada usando o Netkit. O professor avaliará o trabalho testando o modelo da rede, verificando se:

  1. Todos os computadores conseguem se comunicar.
  2. Se a rede resiste a enlaces redundantes.
  3. Se apesar da remoção de um link entre switches, ou mesmo a remoção de um switch, as demais partes da rede continuam funcionando.
  4. Se as restrições a usuários foram corretamente definidas (e estão funcionando).


A entrega do trabalho deve portanto ser composta de:

  1. Modelo da rede feito no Netkit.
  2. Relatório contendo uma descrição de como a rede foi implantada, diagrama da rede física e lógica, mapa das conexões de switches, e funcionalidades ativadas e configuradas nos switches. Esse relatório deve ser escrito de forma a possibilitar que uma pessoa de formação técnica consiga reproduzir seu trabalho, além de ser capaz de manter a rede.


Os grupos podem ser compostos de até 03 alunos (sem exceção !!!).


Prazo de entrega: 19/04

12/04: 1a avaliação

Na sala de aula.

13/04: Redes sem-fio

  • Ver transparências
  • Ver capítulo 15 do livro Comunicação de Dados e Redes de Computadores, 3a ed., de Behrouz Forouzan.
  • Ver capítulo 6 do livro Redes de Computadores e a Internet, 3a ed., de James Kurose.
  • Ver capítulo 4 (seção 4.4) do livro Redes de Computadores, 4a ed., de Andrew Tanenbaum.
  • Ver este livro on-line sobre redes IEEE 802.11. (precisa do gnochm ou chmsee para ser lido)

Introdução

Redes sem-fio se tornaram uma tecnologia largamente difundida e de uso corriqueiro, principalmente em sua versão para redes locais. Graças a ela, as pessoas não precisam usar cabos para ter acesso à rede, e podem se comunicar em qualquer localização dentro do alcance da rede sem-fio. Mesmo usuários em movimento podem se manter em comunicação pela rede sem-fio. Essas características atraentes da tecnologia fazem com que ela seja naturalmente desejável na rede da escola.

A rede do campus São José deve ser estendida para que seus usuários possam acessá-la via rede sem-fio, como se estivessem usando a subrede Pedagógica. Assim, a gerência da rede imaginou que a nova rede do campus ficaria da seguinte forma, após adicionar a rede sem-fio:

Nova-rede-ifsc-sj-wl.png


A implantação da rede sem-fio deve atender alguns requisitos levantados pela gerência de rede, os quais serão discutidos mais tarde. No entanto, antes de pensar nos detalhes a serem observados, devem-se conhecer as características de comunicação de dados por um canal sem-fio e os mecanismos inventados para efetuar esse tipo de comunicação.

Alguns usos de redes sem-fio

WLAN-comum.gif
Redes locais sem-fio


Wireless point to point.jpg
Enlaces ponto-a-ponto de média/longa distância



Wlan-train.png
Prover conectividade em ferrovias



Body-network.jpg
Redes de dispositivos acoplados ao corpo de uma pessoa



SensorWebImageForEnewsJuly2.jpg
Redes de sensores



V2v.jpg
Redes entre veículos (experimental)

Padrão IEEE 802.11

  • Ver transparências
  • Ver capítulo 15 do livro Comunicação de Dados e Redes de Computadores, 3a ed., de Behrouz Forouzan.
  • Ver capítulo 6 do livro Redes de Computadores e a Internet, 3a ed., de James Kurose.
  • Ver capítulo 4 (seção 4.4) do livro Redes de Computadores, 4a ed., de Andrew Tanenbaum.
  • Ver este livro on-line sobre redes IEEE 802.11. (precisa do gnochm ou chmsee para ser lido)


Dentre as várias tecnologias de comunicação sem-fio existentes, o padrão IEEE 802.11 para redes locais tem ampla utilização. Conhecido popularmente como Wi-Fi (um trocadilho com Hi-Fi, uma qualidade atribuída a aparelhos de som e que significa High-Fidelity), está presente praticamente em todos os lugares hoje em dia - desde escolas, empresas, aeroportos, supermercados, restaurantes, cafés e residências, e até mesmo em espaços abertos de cidades (ver Cidades Digitais). Muitos dos problemas existentes nesse tipo de rede (alguns resolvidos e outros não), e características de funcionamento, são comuns a outras tecnologias menos conhecidas, porém também importantes em suas áreas de aplicação. Por isso nosso estudo se concentrará nesse padrão de redes sem-fio, para conhecê-lo com razoável profundidade. Como consequência, além de entender como funciona uma rede IEEE 802.11, os conhecimentos obtidos habilitarão a compreensão de outras tecnologias de redes sem-fio.

  • Apresentaram-se as possíveis formas de organização de uma rede IEEE 802.11:
    • Rede infraestruturada: uso de uma estação central, que intermedia as transmissões das demais estações.

      Infrastructure-bss.png
    • Rede Ad-Hoc: estações se comunicam livremente com suas estações vizinhas.

      Adhoc-bss.png
    • Rede Mesh: estações se comunicam livremente, mesmo que existam múltiplos saltos (multihop).

      Mesh topology.gif

Atividade

Será feito um experimento para configurar, usar e verificar a vazão de uma rede local sem-fio IEEE 802.11. Também será investigado o tráfego nessa rede, usando o analisador de protocolo wireshark.

19/04: Redes sem-fio IEEE 802.11

  • Ver transparências
  • Ver capítulo 15 do livro Comunicação de Dados e Redes de Computadores, 3a ed., de Behrouz Forouzan.
  • Ver capítulo 6 do livro Redes de Computadores e a Internet, 3a ed., de James Kurose.
  • Ver capítulo 4 (seção 4.4) do livro Redes de Computadores, 4a ed., de Andrew Tanenbaum.
  • Ver este livro on-line sobre redes IEEE 802.11. (precisa do gnochm ou chmsee para ser lido)


MAC CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance)

O CSMA/CA definido na norma IEEE 802.11 implementa um acesso ao meio visando reduzir a chance de colisões. Numa rede sem-fio como essa, não é possível detectar colisões, portanto uma vez iniciada uma transmissão não pode ser interrompida. A detecção de colisões, e de outros erros que impeçam um quadro de ser recebido pelo destinatário, se faz indiretamente com quadros de reconhecimento (ACK). Cada quadro transmitido deve ser reconhecido pelo destinatário, como mostrado abaixo, para que a transmissão seja considerada com sucesso.

Wlan-ack.png
Envio de um quadro de dados, com subsequente reconhecimento (ACK)


O não recebimento de um ACK desencadeia uma retransmissão, de forma parecida com o procedimento de retransmissão do CSMA/CD ao detectar colisão. Antes de efetuar uma retransmissão, o MAC espera um tempo aleatório denominado backoff (recuo). Esse tempo é sorteado dentre um conjunto de possíveis valores que compõem a Janela de Contenção (Cw - Contention Window), representados no intervalo [0, Cw]. O valor de Cw varia de (15 para IEEE 802.11g e 31 para 802.11b) a (1023), e praticamente dobra a cada retransmissão de um mesmo quadro. A figura abaixo ilustra as janelas de contenção para retransmissões sucessivas.

Wlan-backoff.png
Backoff para retransmissões sucessivas

20/04: Correção da 1a avaliação

TAREFA: LEITURA DA SEMANA

Leiam o seguinte texto:

Na próxima aula (26/04) alguém será sorteado para apresentar um resumo e puxar uma discussão sobre o conteúdo desse texto. A apresentação deve ser feita em no máximo 10 minutos, e pode usar o projetor para ajudar na explanação.

OBS:

  1. Caso o sorteado não tenha preparado seu material, será penalizado com arredondamentos para baixo de conceitos de avaliações.
  2. O sorteio será repetido até que alguém que tenha se preparado faça a apresentação.
  3. Um sorteado que tenha faltado será tratado como no caso 1.


Dr-evil.jpg

26/04: Rede sem-fio IEEE 802.11 e o MAC CSMA/CA

  • Ver transparências
  • Ver capítulo 15 do livro Comunicação de Dados e Redes de Computadores, 3a ed., de Behrouz Forouzan.
  • Ver capítulo 6 do livro Redes de Computadores e a Internet, 3a ed., de James Kurose.
  • Ver capítulo 4 (seção 4.4) do livro Redes de Computadores, 4a ed., de Andrew Tanenbaum.
  • Ver este livro on-line sobre redes IEEE 802.11. (precisa do gnochm ou chmsee para ser lido)


Leitura adicional:




Uma diferença importante com relação ao CSMA/CD se refere ao caso em que uma estação tem um quadro para transmitir, mas encontra o meio ocupado. No CSMA/CD essa estação iria aguardar até que o meio se tornasse ocioso, e então transmitiria imediatamente o quadro. No CSMA/CA, porém, a estação faz obrigatoriamente um backoff assim que o meio se torna livre (usando como valor de Cw). Além disso, se durante a espera do backoff o meio voltar a ficar ocupado, o decremento do backoff é pausado até que o meio fique ocioso novamente. Esses procedimentos têm por objetivo reduzir a chance de colisão nessa situação. Se uma estação estiver aguardando o meio ficar ocioso, há uma boa chance de outra estação estar fazendo a mesma coisa. Se essas estações transmitissem assim que o meio se tornasse ocioso, fatalmente ocorreria uma colisão. Assim, com o CSMA/CA o acesso ao meio por um conjunto de estações ocorreria como mostrado na figura abaixo.

Csma-ca.png


Juntando tudo, pode-se descrever em alto-nível o algoritmo do CSMA/CA (simplificando alguns detalhes) com o fluxograma abaixo:


Fluxograma-csma-ca.png
Fluxograma para MAC CSMA/CA em modo contenção (função DCF). Esse fluxograma não mostra as esperas de intervalos entre quadros (IFS). Cw significa Janela de Contenção (Contention Window), e Cwmin é seu valor mínimo definido na norma (15 no caso do IEEE 802.11g, e 31 para IEEE 802.11b).


Um último detalhe sobre o CSMA/CA trata dos intervalos entre quadros (IFS - Inter Frame Space), que são tempos mínimos que um nodo deve esperar antes de transmitir um quadro, após o meio se tornar ocioso. Sua finalidade é priorizar o acesso ao meio para certos tipos de quadros, que têm urgência para serem enviados. Esse é o caso de quadros de confirmação (ACK) e CTS (Clear To Send). Um IFS menor corresponde a uma maior prioridade de transmissão de quadro. A figura abaixo ilustra os tipos de IFS:

Ifs-csma-ca.gif
Intervalos entre quadros

  • SIFS (Short Interframe Space): intervalo mais curto, usado antes do envio de quadros ACK e CTS.
  • PIFS (PCF Interframe Space): intervalo intermediário, usado quando em modo PCF (Point Coordination Function). O modo PCF implementa um tipo de acesso ao meio mestre-escravo. Raramente encontrado em equipamentos.
  • DIFS (Distributed Interframe Space): intervalo usual, aplicado no início de transmissões em geral (quadros de dados, associação, autenticação, RTS).


Exercício 8 da lista

Foi resolvido o primeiro diagrama do exercício 8 da lista 4:

Csma-ca-2012-11.png

Legenda:

  • Azul: transmissão de um quadro + recepção de ACK.
  • Verde: espera imposta após uma transmissão de quadro (duração: CWmin slots, sendo CWmin=15 no IEEE 802.11g).
  • Amarelo: backoff
  • Vermelho: DIFS

Resultados do experimento

  • Downstream: 7 fluxos unidirecionais simultâneos de 144 MB enviados do computador do professor (rede cabeada) para os dos alunos (rede sem-fio).
  • Upstream: 7 fluxos unidirecionais simultâneos de 144 MB enviados do computador dos alunos para o do professor.
  • Comandos usados (usaram-se dd e nc):
    • No computador que recebe o fluxo (X é o número do computador): nc -d -l 150X
    • No computador que inicia o fluxo: dd if=/dev/zero bs=1440 count=10000 | nc 192.168.1.X 150X


Downstream (kB/s) Upstream (kB/s)
756 234
334 262
278 233
251 244
241 243
235 240
218 269

Desempenho estimado do MAC CSMA/CA

  • Temporização: tempos envolvidos na operação do MAC
Wlan-timing.png Wlan-parametros.png
Parâmetros usados pelo MAC CSMA/CA

Deve-se usar a análise do desempenho do stop-and-wait para estimar qual a melhor utilização possível com CSMA/CA num cenário ideal. Tal cenário seria descrito assim:

  • apenas uma estação transmite quadros (fluxo unidirecional)
  • não ocorrem erros
  • os quadros de dados têm sempre tamanho máximo = 1534 bytes, com payload de 1500 bytes.
  • os quadros ACK têm 14 bytes
  • assume-se taxa nominal de 54 Mbps, com SIFS = 13 us, DIFS = 31 us, slot = 9 us e
  • há um tempo adicional de 26 us usado para preâmbulo e outros detalhes da camada física (PHY):
    • preâmbulo: 20 us
    • signal extension (trailer PHY): 6 us

Melhorias no padrão IEEE 802.11n

Ver este artigo da WiFi Alliance. A tabela abaixo sumariza as melhorias criadas nesse padrão.

80211n-melhorias.png

27/04: Redes sem-fio IEEE 802.11: formação de BSS. Sistemas de Distribuição

Autenticação e associação

Originalmente foi definido na norma IEEE 802.11 que uma estação precisa se autenticar e associar a um BSS para poder transmitir dados. Em sua forma mais simples, esses procedimentos demandam apenas quatro quadros de controle no total, sendo dois para cada operação. A sequência de autenticação em sua forma mais simples é denominada Autenticação aberta, mostrada abaixo:

80211-auth.png
Autenticação aberta


Como se pode ver, chamar essa operação de autenticação é forçar o uso desse termo porque o AP (que controla o BSS) não confere a identidade informada pela estação. Assim, outra forma de autenticação foi criada para conferir a informação passada pela estação, além de negociar chave de encriptação para ter o sigilo das comunicações. Esse novo método se chama Autenticação com chave compartilhada, sendo implementado pelo WEP (e lembre que isso é inseguro e não deve ser usado em redes reais ;-):

80211-shared-key-auth.png
Autenticação com chave compartilhada

Uma vez estando a estação em estado autenticado, deve ocorrer a associação com o AP. Na associação o AP registra a existência da estação de forma que o sistema de distribuição (DS, que interliga os AP) saiba em que AP se encontra essa estação e possa assim lhe encaminhar quadros. A norma IEEE 802.11 proíbe explicitamente a associação a mais de um AP simultaneamente.

80211-associate.png
Associação com AP

Sistemas de Distribuição

Em uma rede IEEE 802.11, vários BSS podem se combinar para formarem um ESS (Extended Station Set). A interligação entre os AP deve ser feita em nível de enlace, seja por uma rede cabeada ou por links sem-fio. Essa interligação é denominada Sistema de Distribuição, estando exemplificada na figura abaixo:


80211-ds.png


O sistema de distribuição funciona como uma ponte entre as WSTA, como mostrado na figura abaixo. Assim, se dois AP forem interligados, as WSTA que pertencem a seus BSS poderão se comunicar como se estivessem na mesma rede local.


80211-ds2.png

TAREFA: leitura da semana

Leiam este texto e se reparem para apresentá-lo na aula de 5a feira (03/05):

Na apresentação procurem interpretar o conteúdo do texto (explicá-lo com suas palavras), e extrair o máximo de informação relevante. Se necessário, pesquisem em outras fontes para esclarecer o que não entenderem, ou consultem seus professores. Vocês podem também usar o grupo de email de RCO2 (rco2@googlegroups.com) para discutirem entre si.

03/05: Sistemas de Distribuição

Foi criada uma rede sem-fio composta por três BSS, que formaram o ESS "redes2". Essa rede sem-fio estava em uma subrede separada da rede do laboratório, havendo um computador com papel de gateway. Duas configurações foram testadas:

  1. Os AP estarão interligados por um DS via rede cabeada

    Lab-ds-1.png

  2. Os AP estarão interligados por um WDS.

    Lab-ds-2.png

Em ambos os casos, foram feitos downloads de arquivos longos para estimar a vazão que pode ser obtida.

04/05: Redes Ad Hoc e Mesh

As redes Ad Hoc e Mesh não dependem a rigor de existir uma infraestrutura prestabelecida para que as estações possam se comunicar. Nessas formas de organização de redes sem-fio, as estações podem transmitir quadros diretamente entre si, e mesmo entre estações fora do alcance direto. Nesse caso, a transmissão de quadros ocorre em múltiplos saltos (multihop), e depende de mecanismos para descobrir caminhos dentro da rede sem-fio. A principal diferença entre redes ad hoc e mesh reside justamente em como se faz a descoberta de caminhos.

Redes Ad Hoc

Características:

  • Ausência de uma estação base (ou Access Point).
  • Cada estação pode se comunicar diretamente com qualquer outra estação em seu alcance.
  • Problemas dos nodos escondidos e expostos se manifestam intensamente.
  • Demandam roteamento especializado para a descoberta de caminhos, quando necessário fazer encaminhamento em múltiplos saltos.
    • Descoberta de caminhos: no caso de redes IEEE 802.11, depende de uso de tecnologia adicional e fora do escopo da rede sem-fio. Por exemplo, se as estações se comunicarem com IPv4 ou IPv6, podem-se usar protocolos de roteamento IP (ex: AODV, OLSR). Isso demanda a configuração adicional desses protocolos, e não garante uma integração plena com a rede sem-fio - quer dizer, esses protocolos de roteamento podem não conseguir escolher os melhores caminhos, pois podem não ter acesso a todas as informações sobre as qualidades de links entre as estações.

Adhoc1.jpg
Podem possibilitar a criação de uma rede local temporária em um ambiente previamente sem infraestrutura (AP)


Adhocnet.gif
Podem formar redes temporárias entre equipamentos móveis


Vanet.gif
Podem ser usadas como base para aplicações inovadoras, como redes veiculares

Redes Mesh

De forma geral, redes mesh são compostas por um conjunto de nodos capazes de descobrir caminhos dentro da rede, os quais são usados pelos demais nodos da rede para que possam se comunicar. Assim, os nodos roteadores formam uma malha cujos caminhos idealmente são compostos pelos enlaces de melhor qualidade. Apesar de não existirem estações base (i.e. pontos de acesso), essa rede provê uma certa infraestrutura para que nodos acessem a rede e se comuniquem. Além disso, assume-se que os nodos roteadores sejam estáticos ou possuam baixo grau de mobilidade, de forma que seus enlaces sejam duradouros. Essa forma de organização se apresenta em diferentes redes sem-fio, tais como redes metropolitanas e redes industriais. Recentemente, uma extensão ao padrão IEEE 802.11 vem sendo discutida para possibilitar a formação de redes mesh com esse tipo de rede.

O padrão IEEE 802.11s propõe mecanismos para o estabelecimento de redes mesh. No escopo de redes IEEE 802.11, estações capazes de formarem redes mesh (chamadas de mesh points) descobrem automaticamente suas estações vizinhas e as utilizam para estabelecerem caminhos para outras estações que estejam fora de alcance direto. Para isso, dois componentes importantes da tecnologia foram definidos:

  • Um estimador de qualidade de enlace para avaliar os enlaces entre estações, e assim poder estabelecer e usar os melhores caminhos dentro da rede.
  • Um ou mais protocolos de descoberta de caminhos (evita-se o termo roteamento, por estar associado uma função da camada de rede), sendo mandatório o HWMP. Há também o OLSR, que é opcional.

O kernel Linux possui uma implementação do IEEE 802.11s feita em software, explorando a capacidade de muitas interfaces de rede de delegarem as funções de gerenciamento do MAC para o device driver (isso é conhecido como SoftMAC). Assim, pode-se estabelecer e experimentar uma rede mesh IEEE 802.11s usando-se algumas ferramentas do Linux.


TAREFA: Leitura da semana

O texto desta semana trata de arquiteturas para WLAN corporativas.

Outro texto que pode ajudar a entender a questão segue abaixo:

10/05: Segurança em redes sem-fio IEEE 802.11

Uma rede sem-fio para o IFSC-SJ

A rede sem-fio do campus Sao Jose do IFSC esta sendo reformulada. A nova rede a ser implantada deve atender os seguintes requisitos:

  • Apresentar boa cobertura em toda a escola: em todas as localidades do campus, deve-se conseguir uma taxa nominal de ao menos 20 Mbps.
  • Os usuarios da rede sem-fio devem ter acesso via segmento Pegadogica.
  • Para acessar a rede sem-fio, os usuarios devem ser autenticados individualmente.
  • Todas as comunicacoes dos usuarios devem ser encriptadas.

Para servir de piloto, foram instalados tres pontos de acesso na rede, como se pode ver abaixo:

Ifsc-sj-wlan.png

Com o que ja estudamos, o que pode ser feito para atender os requisitos dessa rede sem-fio ?

Transição de BSS

Em redes IEEE 802.11 com mais de um AP, para ampliar a área de cobertura, estações que se movimentam podem precisar migrar de um AP para outro. Essa operação se chama transição de BSS (também conhecida como handover ou roaming).

Handover2.png

A transição se desencadeia quando o sinal do enlace com o AP atual tem sua qualidade abaixo de um determinado limiar. Isso faz com que um novo AP seja procurado (varredura, ou scanning). Ao escolher um novo AP, a estação precisa nele se autenticar e associar. A autenticação depende do método usado (aberto, WPA-PSK à esquerda, ou WPA-EAP à direita)

Auth-rsn1.png Auth-eap.png


Como se pode deduzir, a transição feita dessa forma não é imediata. Na verdade, ela pode demorar muitos segundos ! Esse atraso de transição pode influenciar negativamente nas comunicações em andamento, uma vez que a transição costuma ocorrer quando o sinal está com baixa qualidade (causando perdas de quadros), além da demora para se completar. Esforços vêm sendo feitos atualmente para reduzir o atraso de transição, e dentre eles a norma IEEE 802.11r propõe um mecanismo para acelerar a autenticação. Porém o atraso de varredura ainda está por melhorar ...

A qualidade do sinal depende da modulação usada (e da taxa de dados), assim o limiar entre um BSS e outro depende de como as estações medem a qualidade de sinal e quais as taxas mínimas aceitáveis. A figura abaixo ilustra possíveis alcances para diferentes taxas de dados.

80211-ranges-rates.png
Taxas em função da distância do AP (exemplo, pois depende das condições do ambiente e dos equipamentos)


Esta outra figura ilustra as taxas em função da distância para um cenário sem obstáculos, e assumindo alguns parâmetros típicos de equipamentos (ver o capítulo 23 do livro "802.11 Wireless Networks The Definitive Guide").

80211-ranges.png

Assim, a cobertura de uma área envolve um planejamento que leve em conta as taxas mínimas desejáveis e as características dos equipamentos (potências de transmissão e ganhos de antenas) e do ambiente (existência de obstáculos, reflexões, e fontes de ruído). Além disso, deve-se minimzar a interferência entre BSS vizinhos, o que pode ser feito escolhendo-se canais que não se sobreponham. A figura abaixo mostra conceitualmente como se podem escolher os canais dos AP para atingir esse objetivo.

80211-freq-planning.png


Desta forma, podem-se criar BSS para cobrir uma área e aproveitar melhor a capacidade do meio de transmissão.

80211-cobertura.png

Seguranca


Redes sem-fio oferecem muitos atrativos, como acesso ubíquo, ausência de cabeamento e suporte a usuários móveis. Mas também se sujeitam a uso indevido, uma vez que pessoas não-autorizadas no alcance do sinal do ponto de acesso podem tentar usá-la para se comunicarem. Em geral três questões fundamentais aparecem no que diz respeito à segurança em redes sem-fio:

  1. Acesso indevido: uso indevido da infraestrutura por pessoas não-autorizadas.
  2. Monitoramento do tráfego da rede: os quadros na rede sem-fio podem ser coletados e interpretados, com possível roubo ou revelação de informação sensível.
  3. Infiltração de equipamentos na rede: um ou mais pontos de acesso podem ser infiltrados na rede sem-fio (chamados de Rogue AP), fazendo com que pessoas os utilizem para se comunicarem. Assim, o tráfego dessas pessoas pode passar por outra rede, sendo passível de monitoramento.


Adicionalmente, este site lista 10 ameaças à segurança de redes sem-fio. E este outro apresenta 10 dicas para melhorar a segurança de uma rede sem-fio (apesar de ter sido escrito em 2007, isso ainda são válidas).


Por exemplo, redes em locais densamente ocupados (como edifícios) podem ser investigadas por alguém em busca de uma rede aberta ou fácil de ser invadida. Essa pessoa pode simplesmente querer usar o acesso à Internet disponível em alguma rede sem-fio, ou mesmo invadir os equipamentos existentes em tal rede. A figura abaixo mostra a técnica de WarDriving, em que uma pessoa investiga a existência de redes sem-fio a partir de um carro que trafega pelas ruas.

View from Wardriver Windshield.jpg

Existem inclusive símbolos (warchalking) usados para indicar em ruas e edifícios a existência de redes sem-fio abertas. Esta rápida explicação sobre warchalking foi obtida em um artigo sobre WarChalking:

 O warchalking foi criado pelo web designer Matt Jones que, enquanto almoçava com dois amigos, viu alguns estudantes
utilizando conexões wireless para trabalhar a partir de uma praça pública, como se fosse um escritório. Um dos amigos de 
Matt lembrou-se de uma “linguagem” de sinais utilizada por mendigos e viajantes com o objetivo de informar onde poderiam 
achar comida grátis, uma cama confortável ou até mesmo encrenca, e surgiu a idéia de demarcar a presença de redes wireless 
com sinais parecidos.


Os símbolos do warchalking são:

Warchalking2.jpg


Assim, uma rede sem-fio minimamente bem configurada deve usar mecanismos de segurança que impeçam ou dificultem seu uso indevido. Em um cenário usual, tal rede sem-fio poderia se apresentar como mostrado abaixo:

Wifi-security1.png


Para tratar essas questões, deve haver mecanismos de segurança que contemplem os seguintes requisitos:

  1. Autenticação de usuários: usuários da rede sem-fio devem se identificar (ou autenticar) na infra-estrutura dessa rede, de forma a se autorizarem ou não seus acessos.
  2. Sigilo das comunicações: o tráfego na rede sem-fio deve ser encriptado, para que não seja inteligível caso sejam capturados por usuários mal-intencionados que estejam monitorando a rede sem-fio.
  3. Autenticação dos pontos de acesso: pontos de acesso devem se identificar para os usuários, para evitar a infiltração de pontos de acesso indevidos na rede.

O primeiro mecanismo de segurança para redes IEEE 802.11 foi WEP (Wired Equivalent Privacy), que foi projetado para prover um acesso com mesmo nível de segurança que acesso cabeado. O acesso à rede é concedido a quem conhecer uma senha compartilhada, sendo que as comunicações entre usuários e ponto de acesso são encriptadas (cada usuário obtém uma chave exclusiva, que é gerada durante a negociação inicial com o AP). Na prática, WEP procura prover somente o serviço de sigilo, e nem isso faz bem feito. O seguinte fragmento de texto obtido na Wikipedia explica porque atualmente WEP não deve ser usado em hipótese alguma:

WEP is one of the least secure forms of security. A network that is secured with WEP has been cracked in 3 minutes 
by the FBI.[1] WEP is an old IEEE 802.11 standard from 1999 which was outdated in 2003 by WPA or 
Wi-Fi Protected Access.

Há outros mecanismos de segurança usados em redes IEEE 802.11 que contemplam todos os requisitos acima (WPA-EAP, WPA Enterprise), ou parcialmente (WPA-PSK ou WPA Personal), e que estão definidos no padrão IEEE 802.11i. WPA-EAP aproveita a infraestrutura IEEE 802.1x, junto com técnicas de encriptação entre estações sem-fio, para atender esses requisitos. Já WPA-PSK usa apenas as técnicas de encriptação, não havendo um controle de acesso baseado em usuário. Na figura abaixo se mostra uma pequena rede sem-fio que usa WPA-EAP.

Wifi-auth.jpeg

Além dos mecanismos WPA, definidos na norma IEEE 802.11i, outra forma de implantar controle de acesso em redes sem-fio se vale de um portal de captura. Quando um usuário não identificado acessa a rede, o acesso ao ponto de acesso é concedido mas ao tentar navegar na Web seu acesso é desviado para uma página predefinida. Nessa página o usuário deve se identificar (ex: com login e senha), e em caso de sucesso seu acesso à Internet é liberado. Essa técnica se vale de uma combinação de mecanismos (firewall com filtro IP, serviço Web, uso de programas para autenticação) para controlar o acesso dos usuários. No entanto, não provê sigilo das comunicações nem autenticação de pontos de acesso ao usuário. Sua atratividade reside na simplicidade de implantação e uso (não necessita de supplicant), sendo uma escolha comum em hot spots como aeroportos e cyber cafes. No Projeto Integrador 2009.2 as equipes implantaram uma infra-estrutura que usava essa técnica.

Vulnerabilidade também no WPA2 ???

O Maykon Chagas contribuiu com um artigo sobre um software chamado Reaver, que é capaz de quebrar a chave WPA-PSK ou WPA2-PSK de um ponto de acesso. Parece que realmente isso é possível, porém de acordo com este outro artigo existe uma precondição: o ponto de acesso precisa usar WPS (WiFi Protected Setup), um padrão criado para facilitar a configuração do acesso a redes WiFi com WPA2. Assim, se um ponto de acesso não possui suporte a WPS, ou ele estiver desativado, o método descrito não pode ser usado.

A introdução do artigo sobre WPS na Wikipedia explica o propósito desse padrão. De acordo com ele, busca-se evitar que seja preciso digitar longas senhas de acesso, algo necessário para que não sejam facilmente descobertas. Com isso, usuários poderiam ter o acesso facilitado à rede, tendo o benefício de um maior nível de segurança provido pela encriptação usada em WPA2-PSK. Porém o mecanismo implantado no WPS possui ao menos uma grave falha de projeto, que abriu uma brecha de segurança que possibilita descobrir a senha WPA2-PSK em poucas horas.

Wi-Fi Protected Setup (WPS; originally Wi-Fi Simple Config) is a computing standard that attempts to 
allow easy establishment of a secure wireless home network.

Created by the Wi-Fi Alliance and introduced in 2007, the goal of the protocol is to allow home users 
who know little of wireless security and may be intimidated by the available security options to set 
up the encryption method WPA2, as well as making it easy to add new devices to an existing network 
without entering long passphrases. Prior to the standard, several competing solutions were developed 
by different vendors to address the same need, including Broadcom's SecureEasySetup, Buffalo Inc.'s 
AOSS, Atheros's JumpStart, Intel's Smart Wireless Technology, and Microsoft's Windows Connect Now.[1]

WPS has been shown to easily fall to brute-force attacks.[2] A major security flaw was revealed in 
December 2011 that affects wireless routers with the WPS feature, which most recent models have 
enabled by default. The flaw allows a remote attacker to recover the WPS PIN and, with it, the 
network's WPA/WPA2 pre-shared key in a few hours.[3] Users have been urged to turn off the WPS 
feature,[4] although this may not be possible on some router models.[5]

Nesse mesmo artigo sobre WPS, uma seção explica o princípio do ataque:

In December 2011 researcher Stefan Viehböck reported a design and implementation flaw that makes 
brute-force attacks against PIN-based WPS feasible to perform on WPS-enabled Wi-Fi networks. A 
successful attack on WPS allows unauthorized parties to gain access to the network. The only 
effective workaround is to disable WPS.

The vulnerability centers around the acknowledgement messages sent between the registrar and 
enrollee when attempting to validate a PIN. The PIN, which is printed on the side of each 
WPS-enabled Wi-Fi router, is an eight digit number. Since the last digit is a checksum of 
the previous digits,[6] there are seven unknown digits in each PIN, yielding 107 = 10,000,000 possible combinations.

When an enrollee attempts to gain access using a PIN, the registrar reports the validity of 
the first and second halves of the PIN separately. Since the first half of the pin consists 
of four digits (10,000 possibilities) and the second half has only three active digits 
(1000 possibilities), at most 11,000 guesses are needed before the PIN is recovered. This 
is a reduction by four orders of magnitude from the number of PINs that would have to be 
tested absent the design flaw. As a result, a practical attack can be completed in just 
a few hours. The ease or difficulty of exploiting this flaw is implementation dependent, 
as Wi-Fi router manufacturers could defend against such attacks by slowing or disabling 
the WPS feature after several failed PIN validation attempts.

Esse fato só reforça o que discutimos em aula: à medida que o nível de segurança aumenta, os procedimentos de acesso se complicam. Pode-se emendar que atalhos que procurem atenuar o que diz essa regra apresentam um bom risco de prejudicarem o sistema de segurança.

11/05: Segurança de redes IEEE 802.11 e revisão

... continuando aula passada.

17/05: Revisão

18/05: 2a Avaliacao

TAREFA: Leitura da semana

Ler até a página 10 do seguinte texto:

...e preparar para apresentá-lo nesta 6a feira - 25/05.

24/05: Correção da avaliação e introdução a WAN

  • Capítulo 18 do livro Comunicação de Dados e Redes de Computadores, 3a ed., de Behrouz Forouzan.
  • Introdução a WAN: conceitos básicos (ver transparências)

25/05: Introdução a WAN

  • Capítulo 18 do livro Comunicação de Dados e Redes de Computadores, 4a ed., de Behrouz Forouzan.
  • Introdução a WAN: conceitos básicos (ver transparências)


O caso mais simples para acesso a uma rede WAN: enlaces ponto-a-ponto por linhas dedicadas.

PPP e HDLC

Detalhes sobre esses protocolos. Ver as transparências:

Enlaces ponto-a-ponto entre roteadores

Nesta aula serão configurados enlaces entre dois roteadores Cisco usando os protocolos PPP e HDLC. O objetivo é ter um contato com esse tipo de equipamento, e ver os protocolos em ação. Além disto, será feita uma medição de vazão (throughput) com cada um dos protocolos.

Rede-modems.png

31/05: NÃO HAVERÁ AULA DEVIDO AO FORUM MUNDIAL

Forum Mundial de Educação Profissional no IFSC

1/06: Tecnologias de acesso para WAN

  • Parte III e capítulos 10 e 11 do livro "Comunicação de Dados e Redes de Computadores, 4a ed.", de Behrouz Forouzan
  • Capítulo 3 do livro "Redes de Computadores" de Andrew Tanenbaum.

Um típico enlace WAN, do ponto de vista de uma rede de computadores de usuário, é representado por um enlace ponto-a-ponto, como pode ser visto na figura abaixo. Nele, dois roteadores se comunicam por um meio físico dedicado, usando um protocolo de enlace especializado. Como o meio é dedicado, não existem colisões, e por isso não é necessário um controle de acesso ao meio (MAC). Além disso, como somente esses dois roteadores estão envolvidos, não há necessidade de endereçamento no protocolo de enlace.

Rede-ier-wan.png

Dois protocolos de enlace ponto-a-ponto muito utilizados são:

  • PPP (Point-to-Point Protocol): proposto no início dos anos 90 pelo IETF (ver RFC 1661), e amplamente utilizado desde então. Originalmente muito usado em acesso discado, recentemente sua aplicação se concentra em enlaces por linhas dedicadas, enlaces sem-fio 3G, e uma versão modificada para acesso doméstico ADSL (PPPoE). Ver mais detalhes na seção 11.7 do livro Comunicação de Dados e Redes de Computadores, de Behrouz Forouzan.
  • HDLC (High-level Data Link Control): criado nos anos 70, foi largamente utilizado em enlaces ponto-a-ponto, porém atualmente foi substituído pelo PPP na maioria dos cenários em que era usado. Ainda se aplica a enlaces ponto-a-ponto em linhas dedicadas, enlaces por satélite e aplicações específicas (ver por exemplo este artigo sobre seu uso missões espaciais em um artigo da Nasa). Ver mais detalhes na seção 11.6 do livro Comunicação de Dados e Redes de Computadores, de Behrouz Forouzan.

Ambos protocolos foram criados para uso com comunicação serial síncrona (ver capítulo 4, seção 4.3 do livro Comunicação de Dados e Redes de Computadores, de Behrouz Forouzan). O PPP funciona também com comunicação serial assíncrona. Esse requisito explica vários detalhes de seus projetos, como será explicado logo abaixo.

Serviços da camada de enlace


Para ficar mais claro o que deve fazer um protocolo de enlace ponto-a-ponto, vamos listar os serviços típicos existentes na camada de enlace.

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

Atividade 1: enlaces PPP

Ppp-exp1.png
Rede do experimento


Esse experimento será feito usando o Netkit. Três roteadores estarão interligados por enlaces PPP. A interface mostrada no Netkit para os roteadores é muito parecida com a CLI de roteadores Cisco reais (graças ao software Quagga, que é usado em máquinas virtuais do Netkit que agem como roteadores). No entanto, as interfaces seriais de enlaces ponto-a-ponto no Quagga são identificadas pelos nomes ppp0, ppp1 e assim por diante (ao contrário de Serial 0 e Serial 1 usados no Cisco). Abaixo segue a configuração do Netkit que reproduz o experimento:

Configuração do experimento para o Netkit
# Os três roteadores
r1[type]=router
r2[type]=router
r3[type]=router

# O computador que fica na subrede da esquerda
pc1[type]=generic

# O computador que fica na subrede da direita
pc2[type]=generic

# Um computador que representa a Internet
internet[type]=generic

# Os enlaces ponto-a-ponto entre os roteadores
r1[ppp0]=linkEsquerdo:ip=10.0.0.1/30:debug=1
r1[ppp1]=linkDireito:ip=10.0.0.5/30:debug=1
r2[ppp0]=linkEsquerdo:ip=10.0.0.2/30:debug=1
r3[ppp0]=linkDireito:ip=10.0.0.6/30:debug=1

# a subrede do laboratório, que representa a Internet
r1[eth0]=lanExterna:ip=192.168.1.230/24
internet[eth0]=lanExterna:ip=192.168.1.1/24

# A subrede do lado esquerdo
r2[eth0]=lanEsquerda:ip=172.18.0.30/28
pc1[eth0]=lanEsquerda:ip=172.18.0.17/28

# A subrede do lado direito
r3[eth0]=lanDireita:ip=172.18.10.110/28
pc2[eth0]=lanDireita:ip=172.18.10.97/28

# As rotas ...
pc1[default_gateway]=172.18.0.30
pc2[default_gateway]=172.18.10.110
r2[default_gateway]=10.0.0.1
r3[default_gateway]=10.0.0.5
r1[route]=172.18.0.16/38:gateway=10.0.0.2
r1[route]=172.18.10.96/38:gateway=10.0.0.6
internet[route]=172.18.0.0/16:gateway=192.168.1.230

Com base nessa rede, as seguintes atividades serão realizadas:

  1. Observe as informações sobre as interfaces PPP nos roteadores, e compare com o que é mostrado para interfaces ethernet:
    r1# show interfaces ppp0
    
    ... ou ...
    r1# start-shell
    # ifconfig ppp0
    # ifconfig eth0
    
  2. Teste a comunicação pelos enlaces PPP. Por exemplo, no roteador r1 pode ser feito o seguinte:
    r1# ping 10.0.0.2
    r1# ping 10.0.0.6
    
  3. Compare o encapsulamento de datagramas IP na rede ethernet e no enlace PPP. Para isso use o wireshark, executando-o para a interface eth0 do roteador r1 e também para a interface ppp0. Para haver datagramas passando pelo roteador, deixe um ping em execução entre os computadores pc1 e internet.
  4. Simule um erro de transmissão pelo enlace PPP:
    1. Na máquina real faça o download dos arquivos que contêm quadros PPP especialmente criados para esse experimento. Descompacte esse arquivo dentro de lab/shared.
    2. Nos roteadores r1 e r2 execute o comando start-shell. Como ele se obtém acesso ao shell, visto que nos roteadores a interface é inicialmente fornecida por um software especial chamado Quagga.
    3. Note que existe um enlace PPP entre as máquinas virtuais. No roteador r1 deixe o tcpdump monitorando a interface ppp0 (ou use o wireshark):
      sh-3.1# tcpdump -i ppp0 -ln
      
    4. No roteador r2 será feita a injeção de quadros PPP no enlace. A ideia é transmitir quadros corretos e em seguida quadros com erros (i.e. com bits propositalmente modificados), e observar como o PPP no roteador r1 trata esses quadros.
    5. Injete o quadro correto em r2, observando o que mostra o tcpdump em r1:
      cd /hostlab/shared
      cat quadro.ok > /dev/ttyS0
      
    6. Agora injete o quadro com erros e veja o que acontece:
      cd /hostlab/shared
      cat quadro.erro > /dev/ttyS0
      
    7. O que se pode concluir quanto à recepção pelo PPP de quadros com erros de transmissão ?
  5. Como o PPP se comporta em um circuito sujeito a erros de transmissão ? Isso pode ser simulado no Netkit, bastando especificar a taxa de erro de bits (BER - Bit Error Rate) do enlace serial. Assim, mude o link entre os roteadores r1 e r2 para que fique da seguinte forma (i.e. com BER=):
    r1[ppp0]=linkEsquerdo:ip=10.0.0.1/30:debug=1:ber=0.00001
    r2[ppp0]=linkEsquerdo:ip=10.0.0.2/30:debug=1:ber=0.00001
    
    ... e após reiniciar a rede, teste fazer um download através desse enlace. Isso pode ser feito assim:
    1. Copie este arquivo para dentro de /hostlab/shared.
    2. Em internet, execute o seguinte:
      cd /hostlab/shared
      nc -l -p 8080 < demo.asis
      
    3. Em pc1 execute:
      wget http://192.168.1.1:8080/demo.asis
      
      ... e observe a taxa de transmissão obtida.
    4. Configure o link serial para não apresentar erros (remova o parâmetro ber=0.00001) e repita o experimento. O que você notou quanto a taxa de bits pelo link ?

TAREFA: Leitura da Semana

Leiam este texto sobre PPPoE (reparem que ele tem três páginas), e preparem-se para apresentá-lo na 6a feira (15/06).

14/06: Protocolos ponto-a-ponto: detecção e controle de erros

  • Ver capítulos 10 e 11 do livro Comunicação de Dados e Redes de Computadores, de Behrouz Forouzan.
  • Ver capítulo 5 do livro Redes de Computadores e a Internet, de James Kurose.
  • Ver capítulo 4 do livro Redes de Computadores, de Andrew Tanenbaum.
  • transparências

Na aula anterior fizemos um experimento em que se injetou um quadro corrompido em um enlace PPP. Ao chegar na outra ponta do enlace, esse quadro foi identificado como incorreto e consequentemente descartado. Com isso, se pode concluir que o protocolo PPP faz detecção de erros, porém não os corrige nem os recupera. Para entender isso, na aula de hoje serão discutidos os conceitos de detecção e controle de erros.

Experimento com CRC-16

O experimento com o gerador de CRC-16 do PPP pode ser facilmente realizado. 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.

PPP em um enlace ruidoso

Usando a rede feita no Netkit na aula passada será realizado um experimento com um enlace PPP em um meio ruidoso.

Configuração do experimento para o Netkit
# Os três roteadores
r1[type]=router
r2[type]=router
r3[type]=router

# O computador que fica na subrede da esquerda
pc1[type]=generic

# O computador que fica na subrede da direita
pc2[type]=generic

# Um computador que representa a Internet
internet[type]=generic

# Os enlaces ponto-a-ponto entre os roteadores
r1[ppp0]=linkEsquerdo:ip=10.0.0.1/30:debug=1
r1[ppp1]=linkDireito:ip=10.0.0.5/30:debug=1
r2[ppp0]=linkEsquerdo:ip=10.0.0.2/30:debug=1
r3[ppp0]=linkDireito:ip=10.0.0.6/30:debug=1

# a subrede do laboratório, que representa a Internet
r1[eth0]=lanExterna:ip=192.168.1.230/24
internet[eth0]=lanExterna:ip=192.168.1.1/24

# A subrede do lado esquerdo
r2[eth0]=lanEsquerda:ip=172.18.0.30/28
pc1[eth0]=lanEsquerda:ip=172.18.0.17/28

# A subrede do lado direito
r3[eth0]=lanDireita:ip=172.18.10.110/28
pc2[eth0]=lanDireita:ip=172.18.10.97/28

# As rotas ...
pc1[default_gateway]=172.18.0.30
pc2[default_gateway]=172.18.10.110
r2[default_gateway]=10.0.0.1
r3[default_gateway]=10.0.0.5
r1[route]=172.18.0.16/38:gateway=10.0.0.2
r1[route]=172.18.10.96/38:gateway=10.0.0.6
internet[route]=172.18.0.0/16:gateway=192.168.1.230
  1. Como o PPP se comporta em um circuito sujeito a erros de transmissão ? Isso pode ser simulado no Netkit, bastando especificar a taxa de erro de bits (BER - Bit Error Rate) do enlace serial. Assim, mude o link entre os roteadores r1 e r2 para que fique da seguinte forma (i.e. com BER=):
    r1[ppp0]=linkEsquerdo:ip=10.0.0.1/30:debug=1:ber=0.00001
    r2[ppp0]=linkEsquerdo:ip=10.0.0.2/30:debug=1:ber=0.00001
    
    ... e após reiniciar a rede, teste fazer um download através desse enlace. Isso pode ser feito assim:
    1. Copie este arquivo para dentro de /hostlab/shared.
    2. Em internet, execute o seguinte:
      cd /hostlab/shared
      nc -l -p 8080 < demo.asis
      
    3. Em pc1 execute:
      wget http://192.168.1.1:8080/demo.asis
      
      ... e observe a taxa de transmissão obtida.
    4. Configure o link serial para não apresentar erros (remova o parâmetro ber=0.00001) e repita o experimento. O que você notou quanto a taxa de bits pelo link ?

15/06: A parte física do enlace ponto-a-ponto

Ver capítulos 3, 4 e 5 do livro "Comunicação de dados e Redes de Computadores", de Berhouz Forouzan (cópia no xerox).

Ver transparências.


A camada física: camada mais baixa da arquitetura de redes

Osi-tcpip.png


Serviços da camada física:

Servicos-Camada-Fisica.png
(Adaptado do livro "Comunicação de Dados e Redes de Computadores, 3a ed.", de Berhouz Forouzan)

Modems

Modelo-comunicacao.png


Existem diversas tecnologias para criar enlaces ponto-a-ponto de longa distância. Inicialmente estudaremos enlaces criados com modems síncronos, por ser muito comum ainda de ser implantado. Esse tipo de enlace faz uso de pares metálicos tipicamente usados em redes telefônicas, e por isso foram a primeira solução usada em larga escala. Deve-se ter em mente que quando surgiu a necessidade de enlaces de dados de longa distância, a única opção que havia (e a mais barata, justamente por já existir) era a rede telefônica, como pode ser visto neste texto sobre história das redes. Assim, toda uma geração de equipamentos de comunicação de dados foi criada para usar o tipo de circuito provido em redes telefônicas, e o tipo de fiação nela utilizada.

Questão para pesquisa: atualmente como são implantados os circuitos de dados de longa distância, e como eles se relacionam com a rede telefônica ?

Rede-ier-wan.png

21/06: Modems

  • Realizar a experiência com modems síncronos, em que se configuram modems SHDSL (Manual modem DT2048 SHDSL).
  • Pesquisar qual a codificação usada no modem SHDSL (publicar aqui mesmo na wiki):
    • Taxas de bit suportadas
    • Frequência de portadora
    • Tipo de codificação usada (inclua um diagrama para exemplificar)
    • Níveis de tensão usados no sinal

22/06: Interfaces digitais

Durante a aula, se aproveitará a experiência da aula passada com modems SHDSL para investigar suas interfaces digitais V.35 e RS-232c.


Rede-ID.png

Atividade em aula

Vamos criar uma tabela com informações sobre os códigos de linha/modulações usados em diversas tecnologias. Devemos descobrir a técnica de modulação ou codificação, as taxas de bit suportadas, frequências de portadoras, níveis de sinal (amplitude), alcance de transmissão e tipo de meio de transmissão suportados. Além disso, deve-se identificar a aplicação de cada uma dessas tecnologias.

  • Interface digital V.35
  • Interface digital RS-232
  • PHY Ethernet 10 Mbps, 100 Mbps, 1 Gbps e 10 Gbps
  • Modems SHDSL
  • Modems aDSL
  • Modems VDSL
  • PLC (Power Line Communication)
  • CATV (links de dados via TV a cabo)
  • Modems V.92 (acesso discado)
  • CAN (um tipo de rede industrial)
  • HPNA (tecnologia para redes domésticas): ver artigo indicado pelo Davi.

Obs: veja os modems de alguns fabricantes:


Tecnologia Modulação/Codificação Taxa de bits Alcance (m) Meio físico Aplicação
CATV (Docsis 3.0)
SHDSL/SHDSL.bis
HDSL
ADSL2+
PLC/BPL
HPNA
V.92

28/06: WAN e MPLS


Ver também:

  • Capítulo 18 do livro Comunicação de Dados e Redes de Computadores, 3a ed., de Behrouz Forouzan.
  • Capítulos 12 a 15 do livro Comunicação entre Computadores e Tecnologias de Rede, de Michael Gallo e William Hancock.

MPLS: Multi Protocol Label Switching

Exemplos de serviços baseados em MPLS em operadoras:

MPLS é um mecanismo para redes de telecomunicações de alto desempenho que encaminha e transporta dados de um nó da rede a outro. Isso se faz por meio de links virtuais entre nós distantes um do outro, semelhante ao conceito de circuitos virtuais. Diversos protocolos podem ser transportados por MPLS, tais como IP e Ethernet (note que o primeiro é um protocolo de rede, mas o segundo é um "protocolo" de enlace). Assim, MPLS se apresenta como uma tecnologia de transporte de dados em redes de longa distância, como ilustrado na figura abaixo.

Mpls-network.jpg

Simplificadamente, um cabeçalho (shim header) é adicionado a cada PDU a ser transportada pela rede MPLS. O rótulo contém um número identificador chamado de rótulo (label, e similar ao VCI visto em circuitos virtuais), junto com alguns bits de controle. Os roteadores dentro da rede MPLS encaminham essas PDUs com base somente no conteúdo desse cabeçalho, comutando-os de acordo com os valores de rótulo (label switching). Note que MPLS não faz roteamento, e sim comutação de circuitos virtuais: os circuitos devem ser previamente estabelecidos para que o encaminhamento de PDUs entre origem e destino possa ser realizada. Desta forma, MPLS parece ser um protocolo que fica entre as camadas de rede e de enlace, como mostrado na figura a seguir.

Mpls protocolstack.jpg ----> MPLS D2.gif


O cabeçalho MPLS possui apenas 32 bits, como mostrado abaixo. O valor de rótulo ocupa 20 bits, o que possibilita pouco mais de 1 milhão de diferentes rótulos (). Há um campo Time To Live (ou simplesmente TTL) com 8 bits, com mesma finalidade que o campo homônimo existente em PDUS IPv4: evitar que um erro de configuração em um roteador faça com que PDUs fiquem circulando eternamente em um loop na rede. O valor desse campo TTL é decrementado por cada roteador que encaminhe a PDU e, se o valor chegar a 0, a PDU é descartada. O campo Exp com 3 bits foi pensado para codificar a classe de serviço da PDU, a qual pode ser usada por mecanismos de qualidade de serviço (QoS) existentes na rede. Por exemplo, o valor de Exp pode ser usado como prioridade da PDU em um determinado roteador dentro da rede MPLS. Por fim, o bit S (bottom of stack) informa se esse é o último cabeçalho MPLS na PDU, uma vez que podem-se empilhar dois ou mais desses cabeçalhos.


Mpls-label.png


A terminologia MPLS possui nomes próprios para diversos componentes da arquitetura. Como ocorre em outras tecnologias, existem conceitos conhecidos apresentados porém com nomes diferentes. A tabela abaixo descreve alguns termos importantes existentes no MPLS:


Termo Descrição
LSP Label Switching Path, o análogo a circuito virtual.
LSR Label Switching Router, ou roteador capaz de comutar PDUs MPLS.
LER Label Edge Router, ou roteador que faz a interface entre a rede MPLS (onde se encaminham PDUs exclusivamente com base nos rótulos), e a rede externa (onde não se usa MPLS). A rede externa pode ser qualquer outra rede, como IPv4, IPv6 ou mesmo LAN Ethernet. Note que LER é um tipo especial de LSR, e podem ser denominados também como LSR ingress (LSR de entrada na rede MPLS) e LSR egress (LSR de saída da rede MPLS).
LFIB Label Forwarding Information Base, ou o conjunto de informações existentes nos LSR usadas para fazer o encaminhamento das PDUS MPLS. Pode ser entendida como uma estrutura análoga à tabela de comutação de circuitos virtuais.


Usando os termos acima, podem-se descrever redes MPLS demonstrativas como mostrado a seguir. Na primeira rede há dois LSP: um vai do Host X ao Host Z e está identificado com PDUS em amarelo, e outro vai de Host X ao Host Y e tem PDUs em azul. O número dentro de cada PDU informa os valores de rótulo usados ao longo dos LSP. Assim como em circuitos virtuais em geral (e como em Frame Relay e ATM), os valores de rótulo podem ser modificados por cada roteador que os comute.

Mplsrouters.gif

Conceitos básicos sobre comutação de rótulos

A comutação de rótulos feita nos LSR é muito parecida com comutação de circuitos virtuais. Ao receber uma PDU MPLS, um LSR decide o que fazer com ela com base no número do rótulo e na interface de rede de onde ela foi recebida. Porém há um detalhe específico do MPLS: uma ou mais interfaces podem ser associadas em um labelspace MPLS, sendo esse labelspace usado para identificar de onde foi recebida uma PDU. Desta forma, um LSR na verdade decide o que fazer com uma PDU com base em seu rótulo e no seu labelspace. Dentro do LSR essa operação se chama ILM (Input Label Mapping).

ILM é a função que identifica uma PDU recebida e mapeia seu rótulo para um labelspace

Um caso especial trata de PDUs que entram na rede MPLS. Por exemplo, uma PDU IPv4, originada de uma rede externa, deve ser transportada pela rede MPLS. Nesse caso, o LER (roteador de borda) deve associar essa PDU a um rótulo MPLS e encaminhá-lo pela rede MPLS. A identificação de uma PDU externa à rede MPLS, com base nas informações dessa PDU, se chama FEC (Forwarding Equivalence Class).

Uma vez identificada uma PDU recebida, o LSR deve encaminhá-la de acordo com instruções predefinidas em sua LFIB. Dentro de sua LFIB essas instruções são chamadas de NHLFE (Next-Hop Label Forwarding Entry), e contêm a operação MPLS a ser realizada e a interface de saída por onde encaminhar a PDU. As operações MPLS possíveis estão descritas na tabela abaixo:


Operação Descrição
SWAP Troca o valor de rótulo. Essa operação deve ser usada para comutação dentro da rede MPLS. Mesmo quando o novo valor de rótulo for idêntico ao anterior essa operação deve ser realizada.
PUSH Adiciona um cabeçalho MPLS com um determinado valor de rótulo. Essa operação deve ser usada principalmente nos LER, quando uma PDU entra na rede MPLS.
POP Remove o cabeçalho MPLS. Essa operação deve ser usada principalmente nos LER, quando uma PDU sai da rede MPLS.


A comutação fica completa ao se juntarem o mapeamento de entrada (ILM) com as NHLFE, no caso de comutação dentro da rede MPLS. No caso de entrada de PDUs na rede MPLS, a operação se chama FTN (Fec-To-Nhlfe), que nada mais é que regras para associar os rótulos MPLS a essas PDUS. No exemplo da PDU IPv4, pode-se usar o endereço IPv4 de destino dessa PDU para escolher que rótulo MPLS deve ser usado. Isso está sumarizado na figura abaixo.

Mpls-lfib.png

29/06: MPLS - 1o experimento

Atividade 1: introdução

O exercício proposto em aula - fazer o LSP entre A2 e A1 passar por E5 ao invés de E3 - implica modificar a configuração dos roteadores E2, E3, E4 e E5:

Exercicio-mpls-1.png

  • E4: mudar a NHLFE para que o LSP A2->A1 vá para E5.
  • E5: fazer a comutação A2->A1 que antes ficava em E3.
  • E2: modificar o labelspace 0 para que contenha a interface eth3.
  • E3: removida a configuração da comutação A2->A1

05/07: Labelspaces e túneis

Atividade

Questão: para que serviria um túnel MPLS ?

Para casa

TRABALHO SOBRE MPLS

O trabalho envolve criar uma infraestrutura MPLS para uma pequena rede WAN composta por duas operadoras (Core e Edge1), como ilustrado pela figura abaixo:


Wan-2012-1.png


  • Prazo de entrega:12/07/2012
  • Equipes: até três alunos
  • Caso não seja entregue: a recuperação será uma avaliação prática e com duração de uma prova (2 aulas) sobre um problema semelhante a esse.

06/07: Túneis MPLS e início do trabalho

  • Concluir o experimento da aula passada sobre túneis.
  • Iniciar o trabalho.

Sobre avaliação de 12/07

A avaliação se concentrará em enlaces ponto-a-ponto (partes lógica e física), mas haverá uma questão sobre comutação de circuitos virtuais.

As listas de exercícios 6 e 7 cobrem enlaces ponto-a-ponto.

Sobre comutação de circuitos virtuais, vejam a 1a questão da avaliação feita semestre passado.

12/07: Apresentação do trabalho

13/07: Avaliação

Atividades de recuperação

  1. Resolvam DE FATO as listas de exercícios 6 e 7 cobrem enlaces ponto-a-ponto.
  2. Resolvam também o seguinte problema:

Seja a seguinte rede:

Recuperacao-ppp.png


Os links PPP possuem diferentes taxas de erro de bit (BER). O link 1 tem uma taxa de , e o link 2 não tem erros. Para definir essas taxas no Netkit, use o parâmetro ber ao declarar cada link PPP, como exemplificado abaixo:

# Link entre r1 e r2: BER=1e-6 e capacidade=128 kbps
r1[ppp0]=link1:ber=0.000001:rate=128000
r2[ppp0]=link1:ber=0.000001:rate=128000

Links PPP no Netkit


Implante essa rede usando o Netkit, e faça os seguintes experimentos:

a) Estime a taxa de bits que pode ser obtida para uma transmissão com TCP em cada um dos enlaces PPP.

b) Estime a taxa de perda de pacotes obtida em cada um dos enlaces PPP. Dica: use o nc para transferir um arquivo grande com UDP. Por exemplo, execute isto no computador transmissor:

nc -u IP_destino port_UDP < arquivo_a_ser_enviado

... e isto no receptor:

nc -l -u port_UDP > arquivo_recebido

OBS: O comportamento normal donc receptor é rodar indefinidamente. Assim, alguns segundos após o transmissor terminar de enviar o arquivo, você deve matar o nc receptor (use CTRL C).

c) Experimente usar o tcpdump ou wireshark nos roteadores para acompanhar o tráfego pelos links PPP. Observe em especial como os enlaces são estabelecidos (vejas os primeiros quadros trocados entre os roteadoers).

d) Experimente modificar a MTU em um link PPP. Isso pode ser feito assim:

ifconfig ppp0 mtu novo_valor_da_MTU

... e em seguida veja o que aconteceu com os tamanhos de quadros tanto dentro do link PPP quanto na LAN ethernet. Se quiser ver o tamanho real dos quadros PPP (quer dizer, incluindo as flags e bytes de escape), use o pppdump.