Mudanças entre as edições de "RES-2013-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 427: Linha 427:
 
#* que informações mantidas nesses protocolos possibilitam identificar o navegador e o servidor web.
 
#* que informações mantidas nesses protocolos possibilitam identificar o navegador e o servidor web.
 
# Cada protocolo transmite e recebe pacotes com um determinado formato, composto por cabeçalho e dados carregados (''payload''). Identifique nos pacotes recebidos que partes correspondem a cabeçalho e dados carregados.
 
# Cada protocolo transmite e recebe pacotes com um determinado formato, composto por cabeçalho e dados carregados (''payload''). Identifique nos pacotes recebidos que partes correspondem a cabeçalho e dados carregados.
# '''DESAFIO:''' imagine que foram capturados pacotes em uma rede, em que se monitoram as comunicações de uma determinada pessoa sob investigação. O investigador deve analisar esses pacotes em busca de arquivos que tenham sido transmitidos. Os pacotes capturados foram salvos em um arquivo de captura do wireshark, o qual se encontra aqui:<br><br>[http://tele.sj.ifsc.edu.br/~msobral/res/captura.log captura.log]<br><br>Verifique se existem arquivos transmitidos dentro desses pacotes, e, caso afirmativo, extraia-os e visualize seus conteúdos. Para cada arquivo encontrado, informe:
+
# '''DESAFIO:''' imagine que foram capturados pacotes em uma rede, em que se monitoram as comunicações de uma determinada pessoa sob investigação. O investigador deve analisar esses pacotes em busca de arquivos que tenham sido transmitidos. Os pacotes capturados foram salvos em um arquivo de captura do wireshark, o qual se encontra aqui:<br><br>[http://tele.sj.ifsc.edu.br/~msobral/res/captura.log captura.log]<br><br>Para visualizar os pacotes, use o menu ''File->Open'' do wireshark. Verifique se existem arquivos transmitidos dentro desses pacotes, e, caso afirmativo, extraia-os e visualize seus conteúdos. Para cada arquivo encontrado, informe:
 
#* qual o protocolo de aplicação usado para transmiti-lo
 
#* qual o protocolo de aplicação usado para transmiti-lo
 
#* que computador foi usado para acessá-los, e qual servidor foi acessado.
 
#* que computador foi usado para acessá-los, e qual servidor foi acessado.
  
 
= 18/05: Laboratório: investigando o modelo de comunicação da rede (cont.) =
 
= 18/05: Laboratório: investigando o modelo de comunicação da rede (cont.) =

Edição das 16h49min de 17 de maio de 2013

Redes de Computadores: Diário de Aula 2013-1

Professor: Marcelo Maia Sobral (Facebook2.png Facebook)
Lista de email (forum): res-ifsc@googlegroups.com
Encontros: 5a feira/20:40, 6a feira/18:30
Atendimento paralelo: 2a de 8:20 às 9:10 h, 4a de 13:30 a 14:30


Ementa

Compreender a infraestrutura da internet e suas conexões. Entender a arquitetura da internet e seu conjunto de protocolos TCP-IP. Compreender e utilizar aplicações da camada de Aplicação: HTTP, FTP, SMTP, SSH e DNS. Entender as funcionalidades dos protocolos UDP e TCP. Compreender os serviços da camada de Rede e os protocolos: IP, ICMP, ARP, Ipv6, NAT e DHCP. Utilizar aplicativos de rede (ping, traceroute, netstat) e analisadores de pacotes (tcpdump). Compreender o paradigma (modelo) Cliente/Servidor, através de uma aplicação de Socket TCP e UDP.

Cronograma

AULA DATA Descriçao
1 09/05/2013 Apresentação da ementa. Introdução a Redes de Computadores. História das Redes de computadores.
2 10/5/2013 Laboratório: usando uma rede de computadores e reconhecendo seus componentes.
3 16/5/2013 Arquitetura de redes: como elementos de rede se comunicam: emissor, receptor e meio de transporte; protocolos. Estrutura em camadas. Comutação de circuitos x pacotes. Detalhes da aplicação X detalhes da comunicação.
4 17/5/2013 Laboratório: acesso a serviços simples (HTTP, SMTP, SIP) e visualização da respectiva comunicação. Identificação das regras de comunicação em protocolos simples (semântica), e da representação da informação por esses protocolos (sintaxe).
5 18/5/2013 Laboratório: acesso a serviços simples (HTTP, SMTP, SIP) e visualização da respectiva comunicação. Identificação das regras de comunicação em protocolos simples (semântica), e da representação da informação por esses protocolos (sintaxe).
6 23/5/2013
7 24/5/2013
8 06/06/2013
9 07/06/2013
10 13/06/2013
11 14/06/2013
12 20/06/2013
13 21/06/2013
14 27/06/2013
15 28/06/2013
16 04/07/2013
17 05/07/2013
18 11/07/2013
19 12/07/2013
20 18/07/2013
21 19/07/2013
22 25/07/2013
23 26/07/2013
24 27/07/2013

Bibliografia

  • Evandro Cantu. Redes de computadores e internet, 1996.
  • FOROUZAN, Behrouz A.; FEGAN, Sophia Chung. Comunicação de dados e redes de computadores. Tradução de Ariovaldo Griesi. 4. ed. São Paulo: McGraw-Hill, 2008. 1134 p., il. ISBN 9788586804885.
  • KUROSE, James F; ROSS, Keith W. Redes de computadores e a Internet: uma abordagem top-down. 5. ed. São Paulo: Pearson Addison Wesley, 2010. 614 p. ISBN 9788588639973.
  • STALLINGS, William. Redes e sistemas de comunicação de dados. Rio de Janeiro: Elsevier, 2005. 449 p. ISBN 9788535217315.
  • TANENBAUM, Andrew S. Redes de computadores. 5. ed. São Paulo: Pearson Prentice Hall, 2011. 582 p. ISBN 9788576059240.

Material de apoio

Listas de exercícios

Transparências utilizadas durantes as aulas

Curiosidades

Avaliações

Aluno 1a prova 2a prova 3a prova FINAL

Obs: D* = não fez a avaliação.

Softwares

03/05: Apresentação da disciplina

Redes de computadores são conjuntos de equipamentos interligados de forma a poderem se comunicar. A rede mais famosa atualmente é a Internet, porém já existiram outros tipos de redes (se bem que nenhuma se disseminou e popularizou como a Internet). Antes de estudarmos o funcionamento das redes e da Internet em particular, alguns conceitos elementares precisam ser vistos.

Comunicação de dados

Comunicação dados pode ser entendida como troca de informação entre dois dispositivos através de algum meio de comunicação. A comunicação ocorre no âmbito de um sistema de telecomunicações, composto por equipamentos (hardware) e programas (softwares). Um sistema básico de comunicação de dados se constitui de cinco componentes:


Rede-intro-1.png


  1. A mensagem: a informação a ser transmitida. O conteúdo da mensagem, seja um texto, música, video, ou qualquer outro tipo de informação, é representada por conjuntos de bits (dígitos binários).
  2. Transmissor: dispositivo que transmite a mensagem.
  3. Receptor: dispositivo que recebe a mensagem.
  4. Meio de comunicação: caminho físico por onde viaja a mensagem do transmissor até o receptor.
  5. Protocolo: conjunto de regras que governa a comunicação de dados.

Redes de computadores

Uma rede é um conjunto de equipamentos conectados por enlaces de comunicação (também conhecidos por links), o que posibilita que eles transmitam e recebam mensagens uns dos outros. Diferentes tecnologias de comunicação existem para interligar equipamentos, tais como Ethernet, Wifi, Frame-RElay, ATM, ADSL, Docsis, e muitas outras (isso é assunto de Instalação de Equipamentos de Rede na 3a fase). Existem muitas formas de interligar equipamentos em uma rede, o que se denomina topologia. Algumas topologias elementares são mostradas abaixo:


Topologia Exemplo
Estrela Lan-Star.png
Anel Lan-Ring.png
Barramento Lan-Bus.png
Árvore Lan-Tree.png


Os exemplos acima exemplificam pequenas redes, que possuem poucos computadores. Redes maiores, como a rede da escola e de todo o IFSC, e ainda maiores como a Internet, são compostas de muitas redes menores interligadas. Assim, não é simples classificar a topologia de uma grande rede (talvez nem faça sentido ;-).

Internet-map.png
Uma representação artística das interligações na Internet


Histórico sobre o surgimento das redes de computadores e a Internet

Atividade

  1. Identifique os componentes de uma comunicação de dados em alguma comunicação que se possa fazer a partir de seu computador (ex: navegar na web, fazer chamadas com Skype, enviar mensagens de correio eletrônico, ...).
  2. Qual a topologia da rede do laboratório ? Faça um desenho dessa topologia.
  3. Qual a topologia da rede em sua casa ou local de trabalho ? Faça um desenho dessa topologia.
  4. Quais as diferenças entre as primeiras redes (compostas por mainframes e terminais) e a Internet ?

04/05: Rede de computadores e seus componentes (laboratório)

Na aula de hoje faremos alguns pequenos experimentos para identificar os componentes de uma comunicação de dados e de uma rede de computadores. Em seguida, observaremos que dados são transmitidos e recebidos por algumas aplicações de rede conhecidas.

Experimento 1: identificando os elementos de uma rede de computadores

  1. Vamos fazer um diagrama da rede de computadores do laboratório, e de parte da rede da escola.
  2. Vamos identificar os equipamentos que a compõem e como estão interligados (isso é, sua topologia), assim como o meio de comunicação utilizado.
  3. Em seguida, vamos discutir o papel desses equipamentos dentro da rede. Com isso, teremos uma noção geral de como as comunicações ocorrem dentro da rede.


Rede-ifsc-sj.png

Experimento 2: identificando os componentes de um sistema de comunicação de dados em uma aplicação muito simples

Neste experimento, cada aluno vai se comunicar com uma aplicação muito simples que roda no computador do professor.

  1. Abra um terminal de texto no Linux (menu Aplicativos->Acessórios->Terminal).
    • Execute este comando:
      telnet 192.168.1.1 8888
      
    • Digite qualquer coisa e tecle ENTER. O que aconteceu ?
    • Repita o passo anterior algumas vezes. O que você conclui sobre o que faz essa aplicação ?
    • Digite tchau e tecle ENTER.
  2. Quais os componentes do sistema de comunicação de dados ? E que equipamentos da rede estiveram envolvidos nessa comunicação ?

Experimento 3: identificando os componentes de um sistema de comunicação de dados

Na aula anterior, foi visto que um sistema de comunicação de dados possui a grosso modo cinco componentes: transmissor, receptor, meio de comunicação, mensagem e protocolos. Neste experimento, vamos interagir com um servidor web e identificar esses cinco componentes.

  1. Usando um navegador, acesse os seguintes links:
  2. Vamos repetir o acesso aos links acima, porém sem usar o navegador. A ideia é que nós façamos o papel de navegador. Isso deve ser feito com os seguintes passos:
    • Abra um terminal de texto no Linux (menu Aplicativos->Acessórios->Terminal).
    • Execute este comando:
      telnet tele.sj.ifsc.edu.br 80
      
    • Após aparecer esta linha:
      Trying 200.135.37.75...
      Connected to integrado.sj.ifsc.edu.br.
      Escape character is '^]'.
      
      digite o seguinte:
      GET /~msobral/res/arquivo.txt HTTP/1.0
      
      e em seguida tecle ENTER duas vezes.
    • Agora execute o seguinte para acessar o outro link:
      telnet tele.sj.ifsc.edu.br 80
      
    • Após aparecer esta linha:
      Trying 200.135.37.75...
      Connected to integrado.sj.ifsc.edu.br.
      Escape character is '^]'.
      
      digite o seguinte:
      GET /~msobral/res/teste.html HTTP/1.0
      
      e em seguida tecle ENTER duas vezes.
    • Compare o resultado das execuções desses comandos com o que se viu no navegador. Qual a diferença em cada caso ?
    • Identifique os componentes do sistema de comunicação de dados nesse acesso direto.

Experimento 4: o que de fato é transmitido ?

A comunicação dentro de uma rede de computadores no fim resulta em mensagens viajando de um equipamento para outro através do meio de comunicação. Cada mensagem é composta por um conjunto de bits, que representam a informação transmitida de acordo com alguma convenção ou codificação. Será que é possível ver esses bits de alguma maneira, enquanto eles viajam pela rede ? Neste experimento teremos um primeiro contato com a visualização de mensagens em transmissão.

Cada equipamento que faz parte da rede possui pelo menos uma interface de rede, que é um dispositivo responsável por enviar e receber mensagens pelo meio de comunicação. Quer dizer, interfaces fazem a ligação entre o equipamento e um meio de comunicação. Assim, se quisermos ver as mensagens transmitidas, devemos tentar observá-las quando passam pela interface de rede.

Existe mais de um programa capaz de mostrar as mensagens que passam por uma interface de rede. Dentre eles, o mais conhecido se chama wireshark. Neste experimento vamos utilizá-lo para ter uma ideia de como se apresentam essas mensagens. No entanto, hoje não iremos nos preocupar em explicar todas as características dessas mensagens (e são muitas !). Nosso objetivo é somente visualizá-las e constatar que elas são conjuntos de bits (ou bytes). Ao final, espera-se que muitas dúvidas surjam, porém essas serão esclarecidas à medida que a disciplina progredir.

Então eis o experimento:

  1. Abra um terminal de texto no Linux (menu Aplicativos->Acessórios->Terminal).
  2. Execute este comando:
    sudo wireshark
    
  3. Na tela do wireshark, mostrada abaixo, em Capture selecione eth0.
    Wireshark-intro.png
  4. Observe na tela do wireshark a quantidade de mensagens capturada. Essa tela deve ser parecida com a figura abaixo:
    Wireshark-list.png
  5. Selecione uma das mensagens e observe seu conteúdo, que deve aparecer no painel inferior da tela. Como ela se apresenta de acordo com o wireshark ?

Para pensar

  1. Faça uma comparação entre o que vimos sobre comunicação de dados e redes de computadores e o sistema de Correios.
  2. Enumere tudo o que acredita ser necessário existir para que uma rede de computadores possa funcionar. Quer dizer, pense em todos os mecanismos que devem existir nos sistemas de comunicação de dados que constituem uma rede de computadores.

16/05: Um modelo para o funcionamento de uma rede

  • Capítulo 2 do livro Comunicação de Dados e Redes de Computadores, 4a ed., de Behrouz Forouzan.
  • Capítulo 1 do livro Redes de Computadores e a Internet, 5a ed., de James Kurose.


Vimos na semana passada que a comunicação entre dispositivos pode ser representada por um sistema de comunicação e dados composto por transmissor, receptor, mensagem, meio de comunicação e protocolo. Se tal modelo for extrapolado para uma rede de computadores, um conjunto de necessidades adicionais surgirão. Para iniciar, vamos olhar para uma possível rede de computadores:

Res-Rede-intro.png

Nessa rede, um computador pode se comunicar com qualquer outro computador. Levando em conta o que estudamos sobre sistemas de comunicação de dados, considere os seguintes casos:

  • Imagine uma mensagem saindo de PC6 destinada a PC1: o que seria necessário existir na rede para que isso fosse possível ?
  • E se PC6 precisar transmitir uma mensagem para PC2 ?
  • E se PC6 precisar transmitir duas mensagens para PC3, as quais devem ser processadas por programas diferentes existentes em PC3 (ex: uma mensagem de correio eletrônico, e outra WWW) ?

O resultado desse exercício deve listar funcionalidades necessárias para que equipamentos se comuniquem em uma rede. Se levarmos isso mais adiante, veremos que é possível organizá-los de uma forma que simplifique sua implementação e seu funcionamento. A ideia é estruturar essas fucionalidades em um modelo de camadas. Para entender como isso pode ser feito, podemos comparar uma rede de computadores com um sistema de correios.


Res-camadas1.png

Sistema de correios representado por um modelo de camadas
(obtido do cap. 2 do livro
Comunicação de Dados e Redes de Computadores de Behrouz Forouzan)

As atividades do lado do emissor são:

  • Camada Superior: o emissor escreve a carta; coloca a carta num envelope; escreve os endereços do remetente e do destinatário e deposita a carta numa caixa de correio.
  • Camada Intermediária: a carta é recolhida por um carteiro que a entrega a um posto do correio mais próximo.
  • Camada Inferior: a carta é classificada pelo correio; em seguida, algum tipo de transporte é acionado para levar a carta ao destino.


Ao longo do caminho: a carta pode ser repassada ao destino pelo próprio posto que a recebeu ou pode ser reenviada a um posto central, para que de lá seja encaminhada ao destino. Além disso, o transporte pode ser feito de avião, carro, trem, navio, ou uma combinação desses meios.


As atividades do lado do receptor são:

  • Camada Inferior: a carta é entregue ao posto local do correio pelo agente que a transportou.
  • Camada Intermediária: a carta é classificada e enviada para a caixa de correio do receptor.
  • Camada Superior: o receptor pega o envelope na caixa de correio, abre o envelope e lê a carta.

O conceito importante a notar nesse exemplo, e que aparece também em redes de computadores, é a hierarquia com que as atividades são desempenhadas. Em resumo, cada camada usa serviços da camada de baixo e fornece serviços para a camada de cima. Desta forma, é possível delimitar exatamente o que deve ser feito em cada nível do sistema.

Atividade: estruturando as funcionalidades de rede em camadas

Baseando-se no exemplo do sistema de Correios, estruture as funcionalidades (ou serviços) necessárias para a comunicação em uma rede de computadores. Pense em quantas camadas poderiam ser definidas para esse modelo aplicado a redes.

Modelo de Camadas da Internet

A Internet é uma rede imensa, que tem alcance mundial. Em sua concepção, foi pensado um modelo de 5 camadas para definir as funcionalidades de rede que devem existir nos dispositivos de rede. Assim, se todos os equipamentos implementarem essas funcionalidades de acordo com esse modelo, eles serão capazes de se comunicarem. O modelo em questão está desenhado abaixo:


Res-camadas2.png
Modelo em 5 camadas para as funcionalidades de rede da Internet


Cada camada possui um papel principal. Isso será estudado com mais detalhes nas próximas aulas, porém a grosso modo pode-se defini-las assim:

  • Aplicação: representa os programas que se comunicam. Cuida de representar os dados a serem transmitidos e as regras de comunicação (isso é, o protocolo) específicas desses programas.
  • Transporte: distribui aos programas a que são destinadas as mensagens que chegam a um dispositivo. Também cuida de verificar se as mensagens forem de fato entregues aos programas destinos.
  • Rede: identifica e escolhe caminhos dentro da rede para que as mensagens cheguem a seus destinos.
  • Enlace: transmite mensagens entre dispositivos que estão ligados por um meio de comunicação.
  • Física: faz a tradução entre os dados (bits) das mensagens e algum tipo de sinal que vai se propagar pelo meio de comunicação.


Dentro dos equipamentos de rede essas cinco camadas vão operar de forma a tornar possível a comunicação entre eles. Assim, nos emissores as mensagens fluem das camadas superiores para as inferiores, e nos receptores elas fluem em sentido contrário. Olhando uma rede exemplo, pode-se imaginar o fluxo dessas mensagens como mostrado nesta figura:


CamadasTCP.png


Cada camada apresenta um ou mais protocolos que cuidam de um ou mais aspectos da comunicação na rede. Todos esses protocolos trabalham com o conceito de mensagem, que já foi usado informalmente em vários lugares aqui na disciplina. Coloquialmente, mensagens de protocolos em redes de computadores são denominadas pacotes (packets). Esse termo pacote tem relação com a ideia de que eles servem para carregar dados que serão transmitidos através da rede. Na verdade, esses pacotes possuem uma estrutura composta por um cabeçalho e dados carregados (ou payload), como mostrado abaixo:


Res-Pacote.png


Se cada protocolo possui seu formato de pacote, e cada camada tem seus próprios protocolos, então os pacotes de uma camada superior são tratados como dados carregados por um protocolo de uma camada imediatamente inferior. Quer dizer, os pacotes gerados por um protocolo em uma camada, ao serem repassados para a camada abaixo, são encapsulados dentro de pacotes do protocolo dessa camada inferior. Esse importante conceito se chama encapsulamento, e é fundamental para entender o funcionamento do modelo de camadas da Internet.

Encapsulamento

Como já mencionado anteriormente, os protocolos da Internet se organizam na forma de camadas. Pacotes de uma camada são inseridos em um pacote de uma camada inferior e tratados de forma transparente por esta camada.

Vamos analisar o encapsulamento com este exemplo e com este exemplo.

Encapsulamento.png

Fonte Wikimedia [1]

Atividade

  1. Compare o modelo de comunicação em rede que foi imaginado na atividade anterior com o modelo em camadas da Internet. Que semelhanças e diferenças existem ? Há algo que se tenha pensado que não esteja contemplado no modelo da Internet ?
  2. Identifique protocolos da Internet e relacione-os com a camada em que operam. Discuta o que faz cada um desses protocolos.
  3. Identifique em que camadas atuam equipamentos de rede típicos, tais como:
    • Roteadores
    • Switches ethernet
    • Conversores de midia (ex: fibra ótica para par-trançado)
    • Pontos de acesso para redes sem-fio
    • Modems digitais (usado para links WAN dedicados)
    • Servidores de rede
    • Laptops e desktops
    • Smartphones

17/05: Laboratório: investigando o modelo de comunicação da rede

Experimento 1: observando a transmissão de mensagens de aplicação

Neste experimento, serão observadas as mensagens transmitidas entre um navegador e um servidor web, e com base nelas devem ser identificados:

  • os protocolos envolvidos e suas respectivas camadas dentro do modelo da Internet.
  • os encapsulamentos realizados por esses protocolos.
  • as informações que possibilitam identificar univocamente o navegador e o servidor web durante sua comunicação.
  1. Execute o wireshark em seu computador: abra um terminal em Aplicativos->Terminal e execute
    sudo wireshark
    
  2. Na tela do wireshark, ative a captura na interface de rede eth0 (ela está listada no lado esquerdo).
  3. Usando um navegador, acesse o link http://tele.sj.ifsc.edu.br/~msobral/res/arquivo.txt.
  4. Interrompa a captura no wireshark, clicando no menu Capture->Stop.
  5. Na tela do wireshark, escreva http na caixa de edição Filter, e em seguida clique em Apply.
  6. Selecione o primeiro pacote da lista. Em seguida, clique no menu Analyze->Follow TCP Stream. Uma tela se abrirá, e nela você poderá observar os dados transmitidos pelo navegador (em vermelho) e pelo servidor web (em azul). Esses são os dados da conversação ... todo o resto são informações de outros protocolos usadas para realizar a comunicação.
  7. Voltando à lista de pacotes mostrada pelo wireshark, observe a sequência de pacotes. Com base nela identifique:
    • os protocolos envolvidos
    • em que camada cada um deles atua
    • que informações mantidas nesses protocolos possibilitam identificar o navegador e o servidor web.
  8. Cada protocolo transmite e recebe pacotes com um determinado formato, composto por cabeçalho e dados carregados (payload). Identifique nos pacotes recebidos que partes correspondem a cabeçalho e dados carregados.
  9. DESAFIO: imagine que foram capturados pacotes em uma rede, em que se monitoram as comunicações de uma determinada pessoa sob investigação. O investigador deve analisar esses pacotes em busca de arquivos que tenham sido transmitidos. Os pacotes capturados foram salvos em um arquivo de captura do wireshark, o qual se encontra aqui:

    captura.log

    Para visualizar os pacotes, use o menu File->Open do wireshark. Verifique se existem arquivos transmitidos dentro desses pacotes, e, caso afirmativo, extraia-os e visualize seus conteúdos. Para cada arquivo encontrado, informe:
    • qual o protocolo de aplicação usado para transmiti-lo
    • que computador foi usado para acessá-los, e qual servidor foi acessado.

18/05: Laboratório: investigando o modelo de comunicação da rede (cont.)