Mudanças entre as edições de "RCO1110233-2016-1"
(→Aulas) |
(→Notas) |
||
(11 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 25: | Linha 25: | ||
!scope="col"| Final | !scope="col"| Final | ||
|- | |- | ||
− | | | + | | Andreza Garcia || 6,7 || 7,0 || 8,5 || OK || X |
|- | |- | ||
− | | | + | | Vitor Pereira || 6,5 || 3,5 (4,0) || 3,5 (10,0) || NOK || X |
|- | |- | ||
− | | | + | | Kleiton Figueiredo || 7,0 || 7,5 || 8,5 || OK || X |
|- | |- | ||
− | | | + | | Giordano Duarte || 6,5 || 5,0 (4,0) || 3,5 (7,0) || NOK || X |
+ | |- | ||
+ | | Mike Domingues || 9,0 || 7,5 || 10,0 || OK || X | ||
+ | |- | ||
+ | | Márcio Lopes || 0,5 (1,0) || 5,5 (2,0) || 2,0 (1,0) || NOK || X | ||
+ | |- | ||
+ | | Higino da Silva Neto || 8,0 || 9,0 || 5,0 (10,0) || NOK || X | ||
+ | |- | ||
+ | | Felipe de Souza || 10,0 || 9,5 || 10,0 || OK || X | ||
|} | |} | ||
F: faltou<br /> | F: faltou<br /> | ||
Linha 413: | Linha 421: | ||
==02/06/16: Camada de Transporte== | ==02/06/16: Camada de Transporte== | ||
− | * | + | * Vista de prova - Avaliação Camada de Aplicação |
+ | * Listas de exercícios 5 e 6 | ||
+ | |||
+ | == Atividade em Laboratório (Redes II)== | ||
+ | |||
+ | <!-- Realizar experimentos para mostrar as características de uma comunicação com TCP. Nesse primeiro momento não se entra a fundo nos seus mecanismos, tampouco na estrutura de cabeçalho. Deve-se porém evidenciar seu comportamento quanto a: | ||
+ | * Estabelecimento de conexão | ||
+ | * Vazão dependente da capacidade disponível na rede | ||
+ | * Compartilhamento de banda entre diversas streams TCP simultâneas | ||
+ | * Tratamento de erros: o que acontece se segmentos TCP forem perdidos | ||
+ | Um problema pode ser apresentado ao final, de forma que a turma tente resolvê-lo experimentalmente. | ||
+ | --> | ||
+ | |||
+ | As atividades de hoje buscarão mostrar as características básicas de comunicações com protocolos de transporte. | ||
+ | |||
+ | === Aplicações e protocolos de transporte === | ||
+ | |||
+ | Faça uma rápida pesquisa e descubra que protocolos de transporte (e que ports) são usados por estas aplicações: | ||
+ | * SSH | ||
+ | * FTP | ||
+ | * BitTorrent | ||
+ | * emule | ||
+ | * WINS | ||
+ | * Compartilhamento de arquivos do Windows | ||
+ | * Windows Terminal Service | ||
+ | * NFS | ||
+ | * Openvpn | ||
+ | * RADIUS | ||
+ | * DHCP | ||
+ | * SNMP | ||
+ | * NTP | ||
+ | * LDAP | ||
+ | * Mysql | ||
+ | * Postgresql | ||
+ | * Oracle RDBMS | ||
+ | * Syslog | ||
+ | * CUPS | ||
+ | |||
+ | Que protocolo de transporte predomina nesse conjunto ? | ||
+ | |||
+ | === Tipos de protocolos de transporte: TCP x UDP === | ||
+ | |||
+ | Nestes experimentos, serão evidenciadas diferenças entre os protocolos TCP e UDP. | ||
+ | |||
+ | ==== Experimento 1 ==== | ||
+ | |||
+ | Ambos protocolos de transporte podem ser usados por aplicações que precisem se comunicar. Porém cada um deles têm certas propriedades, então a escolha precisa ser feita dependendo do tipo de comunicação a ser feita pela aplicação. Por exemplo, o que aconteceria se um arquivo fosse transferido de um computador a outro com ambos protocolos ? | ||
+ | |||
+ | # Abra um terminal e execute o seguinte comando para fazer o download de um arquivo a ser usado no experimento: <syntaxhighlight lang=bash> | ||
+ | wget http://tele.sj.ifsc.edu.br/~tisemp/RES/ubuntu.iso | ||
+ | </syntaxhighlight> | ||
+ | # Observe o tamanho do arquivo transferido ... ele deve ter exatamente 832569344 bytes (cerca de 832 MB). Você pode fazer isso com o comando ''ls -l ubuntu.iso'', ou executando o gerenciador de arquivos e visualizando as propriedades desse arquivo. | ||
+ | # Escolha um colega para fazer o experimento, em que o arquivo será transferido de um computador para o outro. | ||
+ | # A primeira transferência será feita usando o protocolo TCP da seguinte forma: | ||
+ | #* No computador receptor execute: <syntaxhighlight lang=bash> | ||
+ | nc -l 5555 > arquivo | ||
+ | </syntaxhighlight> | ||
+ | #* No computador transmissor execute (''X'' é o número do seu computador, visível em sua etiqueta): <syntaxhighlight lang=bash> | ||
+ | time nc 192.168.1.X 5555 < ubuntu.iso | ||
+ | </syntaxhighlight> | ||
+ | #* Quando completar a transferência, verifique o tamanho do arquivo recebido. Ele é igual ao arquivo original? E quanto tempo levou para transmiti-lo ? | ||
+ | # A segunda transferência será feita usando o protocolo UDP: | ||
+ | #* No computador receptor faça o download [http://tele.sj.ifsc.edu.br/~tisemp/RES/receptor deste programa]. Em seguida acrescente a ele permissão de execução (''chmod +x receptor''). | ||
+ | #* No computador receptor execute: <syntaxhighlight lang=bash> | ||
+ | ./receptor 5555 > arquivo | ||
+ | </syntaxhighlight> | ||
+ | #* No computador transmissor faça o download [http://tele.sj.ifsc.edu.br/~tisemp/RES/transmissor deste programa]. Em seguida acrescente a ele permissão de execução (''chmod +x transmissor''). | ||
+ | #* No computador transmissor execute (''X'' é o número do seu computador, visível em sua etiqueta): <syntaxhighlight lang=bash> | ||
+ | ./transmissor 192.168.1.X 5555 < ubuntu.iso | ||
+ | </syntaxhighlight> | ||
+ | #* Quando completar a transferência, verifique o tamanho do arquivo recebido. Ele é igual ao arquivo original ? E quanto tempo levou para transmiti-lo ? | ||
+ | # Compare as transferências feitas com TCP e UDP. O que eles têm em comum ? Que diferenças lhe pareceram mais pronunciadas ? Como isso deve afetar as aplicações que usam esses protocolos ? | ||
+ | |||
+ | ==== Experimento 2 ==== | ||
+ | |||
+ | Transferências usando cada um desses protocolos podem apresentar características bem distintas. Neste segundo experimento, serão feitas transferências simultâneas de arquivos a partir de um mesmo servidor, comparando-se o resultado obtido com TCP e UDP. Essas transferência ocorrerão entre os computadores do laboratório e um servidor externo ao laboratório, como mostrado na figura abaixo: | ||
− | ==09/06/16: Camada de Transporte== | + | [[imagem:Res-Exp2-transporte.png]] |
− | * | + | |
+ | # Abra um terminal em seu computador, e nele execute este comando: <syntaxhighlight lang=bash> | ||
+ | wget http://tele.sj.ifsc.edu.br/~tisemp/RES/ubuntu.iso | ||
+ | </syntaxhighlight> | ||
+ | # Observe a taxa de transferência (velocidade do download) obtida. Que valores ela apresenta ? Quanto tempo levou para o arquivo ser transferido ? | ||
+ | # Após todos terem copiado o arquivo, o professor irá se logar em um dos computadores do laboratório e repetir a transferência. Porém desta vez ele irá fazê-la sozinho. Que taxas ele obteve, e quanto tempo levou ? | ||
+ | # O professor irá repetir a transferência novamente, mas desta vez ele irá pedir que um aluno também a inicie logo em seguida. Qual foi a taxa obtida por ambos ? | ||
+ | # Finalmente, o professor irá repetir a transferência porém com mais dois alunos fazendo-a ao mesmo tempo. Que se pode concluir quanto a taxa de transferência obtida ? | ||
+ | # Para poder fazer uma comparação, as transferências serão feitas novamente porém usando UDP como protocolo de transporte. Para isso siga estes passos: | ||
+ | ## Abra dois terminais. Em um deles execute este comando: <syntaxhighlight lang=bash> | ||
+ | watch -n 1 ls -l arquivo | ||
+ | </syntaxhighlight> ... e no outro execute: <syntaxhighlight lang=bash> | ||
+ | ./receptor 5555 > arquivo | ||
+ | </syntaxhighlight> | ||
+ | ## Como se comparam as transferências usando TCP e UDP ? | ||
+ | |||
+ | ==09/06/16: Camada de Transporte (Laboratório Redes II)== | ||
+ | * Protocolos Dutados: Volta-N e Retransmissão Seletiva | ||
+ | * Controle de Fluxo, congestionamento; | ||
+ | * Resolução de Exercícios | ||
==16/06/16: Avaliação 2 (sala 03)== | ==16/06/16: Avaliação 2 (sala 03)== | ||
* Avaliação Camada de Transporte | * Avaliação Camada de Transporte | ||
− | + | ** '''Duração: 19h - 20h:30m''' | |
− | * '''Duração: 19h - 20h:30m''' | + | * Introdução a Camada de Rede |
+ | * Resolução de Lista de Exercícios | ||
==23/06/16: Camada de Rede== | ==23/06/16: Camada de Rede== | ||
− | * | + | * Vista da Avaliação da Camada de Transporte (A2) |
+ | * Endereçamento IP: Classful e Classless (CIDR) | ||
+ | * Segmentação de Redes IP | ||
+ | * Resolução de Exercícios | ||
==30/06/16: Camada de Rede== | ==30/06/16: Camada de Rede== |
Edição atual tal como às 16h12min de 25 de julho de 2016
Semestre 2016-1 - Prof. Tiago Semprebom | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2016-1 - Prof. Tiago Semprebom TecTel: Redes de Computadores - 2016-1 - Prof. Tiago SemprebomProfessorProfessor: Tiago Semprebom
Plano de EnsinoNotas
F: faltou Curiosidades
Materiais de aulaSlides
Listas de exercícios
ApostilasAulas24/03/16: Apresentação da disciplina
31/03/16: Introdução à Redes de Computadores
07/04/16: Comutação por Circuitos, Comutação de Pacotes, Lab01: Ferramentas básicas de redes
Nesta atividade serão vistos algumas ferramentas utilizadas para obter informações relacionadas às configurações de uma rede de computadores.
21/04/16: Feriado Nacional (Tiradentes)
28/04/16: Camada de Aplicação05/05/16: Camada de Aplicação
Na arquitetura de redes da Internet, são as aplicações que se comunicam, gerando dados no transmissor e consumindo-os no receptor. Aplicações residem em equipamentos de rede, e se comunicam através da rede usando os serviços das camadas inferiores Aplicações são processos que se comunicam através da rede (lembre que processos são programas em execução). Exemplos de aplicações são navegadores web (Firefox, Chrome) e bate-papo (Skype, GTalk). A comunicação pode ser feita de diferentes formas, de acordo com o modelo de comunicação adotado pela aplicação em questão. O modelo de comunicação define o papel de cada participante da comunicação, e por consequência acaba determinando como a comunicação acontece (quem a inicia, quando se transmitem e recebem mensagens). Três modelos conhecidos são:
Cada aplicação usa diretamente os serviços da camada de transporte, e indiretamente os de camadas inferiores. Assim, para uma aplicação é a camada de transporte que envia e recebe suas mensagens. Como visto na aula passada, um serviço importante da camada de transporte é classificar e separar os pacotes recebidos de acordo com a aplicação que deve recebê-los, e para isso usa-se um número chamado de porta. O número de porta pode ser entendido como um endereçador de aplicações dentro de um mesmo host. Vimos também que a camada de transporte na Internet apresenta dois protocolos, e ambos usam números de porta para separar os pacotes de acordo com a comunicação que os contém:
O estudo das aplicações da Internet inicia com WWW, que foi responsável por popularizar a Internet nos anos 90 e ainda é a aplicação mais difundida e acessada. WWW e protocolo HTTPWWW (World Wide Web) é um sistema de documentos em hipermidia que são ligados e acessados na Internet (FONTE: Wikipedia). Tendo início em 1990 como uma aplicação experimental desenvolvida por Tim Berners-Lee, que então trabalhava no CERN, na Suíça, em pouco tempo caiu no gosto de demais usuários e se difundiu. WWW se tornou tão popular que para muitos passou a ser sinônimo de Internet (equivocadamente). Por trás da sua rápida aceitação há um protocolo de aplicação simples e funcional, além claro do modelo de informação em hipermidia que agradou as pessoas. Se o WWW é um sistema de documentoshipermidia online mantido de forma distribuída na Internet, o protocolo HTTP (Hypertext Transfer Protocol) é o protocolo usado para acessá-los. Esse protocolo segue o modelo cliente-servidor, e as comunicações são feitas com mensagens de pedido e resposta. Um cliente (navegador web) envia uma mensagem HTTP de pedido a um servidor web, que a responde com uma mensagem de resposta contendo o conteúdo solicitado. O protocolo HTTP usa o protocolo TCP para transmitir suas mensagens. Mensagens de pedido HTTPMensagens HTTP de pedido possuem a seguinte estrutura: Método URI HTTP/versão_do_protocolo
Cabeçalho1: valor do cabeçalho1
Cabeçalho2: valor do cabeçalho2
Cabeçalho3: valor do cabeçalho3
CabeçalhoN: valor do cabeçalhoN
corpo da mensagem
A primeira linha usa o campo método para indicar o tipo de pedido a ser realizado. O método HTTP pode ser entendido como um comando a ser realizado pelo servidor. Os métodos mais comuns são:
O campo URI (Uniform Resource Indicator) identifica o documento que o servidor deve acessar. Ele se aparenta com um caminho de arquivo (pathname), porém possui algumas extensões para poder enviar informação adicional. Os cabeçalhos servem para complementar o pedido, informando ao servidor mais detalhes sobre o que está sendo requisitado. Por fim, o corpo da mensagem é opcional, podendo conter dados a serem enviados ao servidor quando necessário. Tendo entendido os componentes de um pedido HTTP, segue abaixo um exemplo de uma requisição real (note que ela não possui corpo de mensagem): GET /wiki/ HTTP/1.1
Host: wiki.sj.ifsc.edu.br
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: wiki2010UserID=614; wiki2010UserName=Msobral; wiki2010Token=4ed97239498a2fc74596b0f0a62331b5; wiki2010_session=f4e6b1hl4ctlkbpe5gc5gkosi4
Connection: keep-alive
If-Modified-Since: Mon, 20 May 2013 00:38:20 GMT
Mensagens de resposta HTTPMensagens HTTP de resposta possuem a seguinte estrutura: HTTP/versão_do_protocolo status info
Cabeçalho1: valor do cabeçalho1
Cabeçalho2: valor do cabeçalho2
Cabeçalho3: valor do cabeçalho3
CabeçalhoN: valor do cabeçalhoN
corpo da mensagem
A linha inicial informa o resultado do atendimento do pedido (se teve sucesso ou não), contendo um código numérico de status seguido de uma breve descrição. Os códigos numéricos e info mais comuns são:
Após a linha inicial há os cabeçalhos, usados da mesma forma que em pedidos HTTP. Por fim, pode haver o corpo da mensagem (opcional). Um exemplo de mensagem de resposta segue abaixo: HTTP/1.1 200 OK
Date: Thu, 23 May 2013 20:43:31 GMT
Server: Apache
Last-Modified: Fri, 10 May 2013 14:09:58 GMT
ETag: "757236-40-4dc5db8df272a"
Accept-Ranges: bytes
Content-Length: 64
Vary: Accept-Encoding
Connection: close
Content-Type: text/plain; charset=UTF-8
Este é um pequeno arquivo de teste, sem informação útil ...
Atividade Prática1. Instale o servidor WWW Apache 2.
sudo apt-get install apache2
2. Verifique a configuração do apache
3. Crie uma página WEB no servidor instalado e acesse-a.
<html>
<head>
<title>Página de teste...</title>
</head>
<body>
<p>Página Teste!</p>
</body>
</html>
4. Acesse as páginas instaladas nos computadores de seus colegas utilizando seus IPs
5. Instale o wireshark e capture os pacotes de comunicação HTTP, identificando as mensagens GET e suas respostas, como exposto acima. sudo apt-get install wireshark
12/05/16: Camada de AplicaçãoExperimento 1: Comunicação de dadosA 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:
Neste experimento, vamos interagir com um servidor web e identificar esses cinco componentes.
Experimento 2: transmissão de mensagens de aplicaçãoNeste experimento, serão observadas as mensagens transmitidas entre um navegador e um servidor web, e com base nelas devem ser identificados:
Experimento 3: pacotes que passeiam pela redeNeste experimento, deve-se evidenciar a transmissão de pacotes desde o transmissor até o receptor, que pode estar em outra rede. Como já foi discutido, para que isso seja possível deve haver uma forma de transmitir esses pacotes para dispositivos intermediários na rede, que os encaminham para seus destinos. Quer dizer, os pacotes devem ser roteados até seu receptor.
Para pensar
Considerações finaisOs experimentos realizados buscaram introduzir alguns mecanismos envolvidos na comunicação através de uma rede de computadores. Tais mecanismos são implementados por alguns protocolos, lembrando que um protocolo especifica o formato dos pacotes transmitidos e as regras de comunicação para intercâmbio desses pacotes. Durante os experimentos, teve-se contato com alguns protocolos importantes envolvidos em comunicações na Internet, assim como algumas das principais informações definidas e usadas por esses protocolos. A visualização da hierarquia em que operam esses protocolos buscou mostrar o modelo de camadas da Internet, que define como deve funcionar um sistema que se comunica nesse tipo de rede. Para pensar:
19/05/16: Avaliação 1 (sala 03)
26/05/16: Feriado nacional
02/06/16: Camada de Transporte
Atividade em Laboratório (Redes II)As atividades de hoje buscarão mostrar as características básicas de comunicações com protocolos de transporte. Aplicações e protocolos de transporteFaça uma rápida pesquisa e descubra que protocolos de transporte (e que ports) são usados por estas aplicações:
Que protocolo de transporte predomina nesse conjunto ? Tipos de protocolos de transporte: TCP x UDPNestes experimentos, serão evidenciadas diferenças entre os protocolos TCP e UDP. Experimento 1Ambos protocolos de transporte podem ser usados por aplicações que precisem se comunicar. Porém cada um deles têm certas propriedades, então a escolha precisa ser feita dependendo do tipo de comunicação a ser feita pela aplicação. Por exemplo, o que aconteceria se um arquivo fosse transferido de um computador a outro com ambos protocolos ?
Experimento 2Transferências usando cada um desses protocolos podem apresentar características bem distintas. Neste segundo experimento, serão feitas transferências simultâneas de arquivos a partir de um mesmo servidor, comparando-se o resultado obtido com TCP e UDP. Essas transferência ocorrerão entre os computadores do laboratório e um servidor externo ao laboratório, como mostrado na figura abaixo:
09/06/16: Camada de Transporte (Laboratório Redes II)
16/06/16: Avaliação 2 (sala 03)
23/06/16: Camada de Rede
30/06/16: Camada de Rede07/07/16: Camada de Rede14/07/16: Avaliação 3 (sala 03)
21/07/16: Encerramento da disciplina
|