Upload
lamhanh
View
214
Download
0
Embed Size (px)
Citation preview
2
Na aula de hoje...
Introdução às redes de computadores e à Internet:• Redes de computadores e seus protocolos
• Obtenção de dados da Internet usando MATLAB/Octave.
Revisão: for, if, matrizes, gráficos• Cálculo de áreas por Monte Carlo
4
Redes de computadores
Um conjunto de computadores pode ser interligado com o objectivo de trocar informação e partilhar recursos, transferindo dados entre si.• Exemplo: pesquisa no Google
• enviamos os termos a pesquisar, usamos os recursos do motor de pesquisa, obtemos de volta o resultado.
5
Redes de computadores
Numa transferência intervêm dois computadores e a rede.• Nó emissor : produz uma sequência de bytes
(mensagem)
• Nó receptor : recebe essa sequência de bytes
• A rede, a infraestrutura que inclui• Meios de interligação: cabos, atmosfera, …
• Computadores dedicados a encaminhar a mensagem do nó emissor ao nó receptor.
6
Relação Cliente Servidor
ProgramaCliente
ProgramaServidor
Pedido (request)
Resposta (response)
Um servidor podeservir vários clientes em simultâneo.
Por exemplo,Browser
Por exemplo,Servidor Web
Em muitos casos, a relação é assimétrica
7
Relação Cliente Servidor
7
O servidor gere um recurso e fornece um serviço aos clientes manipulando esse recurso.
Um servidor Web pode gerir recursos com dados ou programas que executa por conta dos clientes.
• Um Servidor FTP ou de email funciona de forma análoga.
3. Servidor envia a resposta
Recurso
2. Servidorprocessa o pedido4. Cliente
processa a resposta
1. Cliente envia pedido
ProgramaCliente
ProgramaServidor
8
Relação Cliente Servidor
8
Exemplo• O browser pede uma página de um blog
• O servidor do blog recebe o pedido, obtém o conteúdo da base de dados • Texto, comentários, imagens, etc
• O servidor envia essa informação, devidamente estruturada
• O browser processa a informação e apresenta a página.
9
Relação entre pares
9
Ligação peer-to-peer • (par-a-par, P2P)
• Neste tipo de relação, todos os participantes funcionam como clientes e como servidores
• O esforço é partilhado, não exigindo servidores com capacidades especiais
• Napster foi o primeiro exemplo notório (mas era centralizado)
• BitTorrent é um dos mais conhecidos, e pode ser descentralizado.
10
Redes de computadores
Nos nós terminais• Placa ethernet
• sinais por cabo
• Placa Wi-Fi• sinais por ondas rádio
Rede local• LAN, Local Area Network
• ~1km; os computadores estão ligados directamente.
11
Redes de computadores
LAN
• Cobre um edifício, ou edifícios próximos
WAN
• Wide Area Network
• Liga redes locais
Encaminhador
• Router, gateway
• máquina dedicada que liga redes diferentes (e.g. LAN a WAN)
12
Redes de computadores
1212
Nó Nó
Nó Router
Nó Nó
Router Nó
Router
Ethernet ou WiFI
Ethernet ou WiFi
Ligação via satélite
Ligação fibra óptica
Duas LAN ligadas por 3 encaminhadores (routers).
13
Redes de computadores
Poder enviar sinais não basta. É preciso saber
• Remetente e destinatário
• Controlar o tráfego
• Como interpretar o conteúdo, etc.
Ou seja, é preciso protocolos
14
Protocolos Internet
Nível físico• Sinais entre os nós da rede
• Modulação e conversão• Fibra óptica, telefone, cabo, ethernet, ...
15
Protocolos Internet
Nível físico Nível da ligação
• Transmissão de conjuntos de bits entre nós da rede• Correcção de erros, gestão de filas de espera, ...
16
Protocolos Internet
Nível físico Nível da ligação Nível IP (Internet Protocol)
• Gere os pacotes de bytes, endereçamento e reencaminhamento• A informação é dividida em pacotes (sequências
de bytes), encaminhados individualmente ao destino.
• Cada máquina tem um endereço e cada pacote tem o endereço do destinatário
17
Protocolos Internet
Internet Protocol (IP)• o protocolo IP (versão 4) especifica um endereço
único com 32 bits para cada máquina• (128 bits no IPv6)
• mas permite redes privadas• e.g. em cada casa o router doméstico cria uma rede com
os endereços 192.168.0.(0 – 255), e o ISP fornece um outro endereço para toda essa rede.
18
Protocolos Internet
Nível físico Nível da ligação Nível IP (Internet Protocol) Nível de transporte (TCP).
• Gere o transporte de dados, encarregando-se da gestão de pacotes, detecção e recuperação de erros, etc.
19
Protocolos Internet
Nível físico Nível da ligação Nível IP (Internet Protocol) Nível de transporte (TCP). Nível da aplicação
• Protocolos destinados a gerir a comunicação entre aplicações ou com o utilizador.
• E.g HTTP, DNS, ...
21
Protocolos Internet
Normalmente não vemos endereços IP Usamos endereços simbólicos
• Strings associadas aos endereços IP• e.g. www.google.com
• O DNS (Domain Name System) é um sistema hierárquico de servidores que mapeia os endereços simbólicos em endereços IP.
22
Top level domains
Top Level Domain Utilização
biz Negócios
com Comercial (EUA)
edu Educação (EUA)
info Informação
gov Governo (EUA)
mil Militar (EUA)
net Rede
org Sem fins lucrativos
23
Top level domains
23
Fora dos Estados o TLD é o código (com 2 letras) do país.
País TLD
pt Portugal
uk Reino Unido
es Espanha
fr França
nz Nova Zelândia
cn China
… …
24
Domain Name System
Domínio raiz
Top-level domains edu gov com …
uk pt …
utl unlcmu
csfe fct
di
google ibm
25
Protocolos Internet
Endereços simbólicos, exemplo• nslookup (no command prompt ou consola)
~$ nslookup fct.unl.pt...Name: fct.unl.ptAddress: 193.136.126.43
26
Nome do nó
asc.di.fct.unl.pt
Top level domain (TLD)
OrganizaçãoNome da máquina
~$ nslookup asc.di.fct.unl.pt...asc.di.fct.unl.pt canonical name = di78.di.fct.unl.pt.Name: di78.di.fct.unl.ptAddress: 193.136.122.78
27
Internet
Reenvio de pacotes• O remetente envia cada pacote ao router na sua
rede.
• Cada router reenvia os pacotes ao router que (estima) está mais próximo do destinatário• Pelo endereço IP e tempos de transmissão
• Este processo é dinâmico, permitindo gerir o tráfego e contornar falhas pontuais na rede.
• Eventualmente, o pacote chega a um router que o envia ao destinatário
29
Programas servidores
Nos servidores há programas que esperam por pedidos (programas servidores)• São executados em background, sem interacção
directa com utilizadores (deamons)
• Aguardam pedidos dirigidos a portas específicas• Uma porta é um endereço dentro da própria máquina
• Exemplos• Servidor Web (porta 80)
• Servidor File Transfer Protocol (FTP, portas 20 e 21)
30
Programas servidores
Exemplos:• Servidor Web (porta 80)
• Recursos: ficheiros, programas, páginas dinâmicas
• Serviços: obter ficheiros e executar programas CGI a pedido do cliente.
• Servidor FTP (portas 20 e 21)• Recursos: ficheiros
• Serviços: leitura e escrita de ficheiros
• Servidor de Mail (porta 25, SMTP)• Recursos: ficheiro spool de email.
• Serviços: armazena as mensagens no ficheiro spool
31
Programas clientes
Exemplos:• Browser, ftp, ssh,
Encontra o programa servidor• Pelo endereço da máquina onde o programa
servidor está a ser executado
• Pela porta associada ao protocolo e serviço
• e.g. O browser contacta a máquina com aquele endereço IP na porta 80 para o protocolo HTTP.
33
World Wide Web
1989• Tim Berners-Lee (no CERN) escreve uma
proposta para desenvolver um sistema distribuído de hiper-texto. Ligar uma “web of notes with links” para ajudar os físicos do CERN a partilhar informação em grandes projectos.
1990• Tim B-L escreve um browser com interface
gráfica.
34
World Wide Web
A Web (teia)
• Documentos interligados e sofware para consultar e manipular essa informação.
Protocolos da Web
• Protocolos de aplicação que gerem a partilha da informação.
Página Web
• Documento com dados e, normalmente, ligações (link) a outros documentos.
Link (elo)
• Ligação entre duas páginas Web.
35
World Wide Web
Site Web
• Conjunto de páginas Web relacionadas e, geralmente, armazenadas na mesma máquina.
Servidor Web - servidor
• Programa, na máquina que aloja a informação, que responde a pedidos de acesso às páginas Web.
Browser Web - cliente
• Ferramenta que pede páginas Web e as mostra.
• Indica a localização desse recurso ao servidor: URL
36
World Wide Web
A Web não é a Internet• a Internet inclui muito mais do que a Web
• a Web existe sobre a Internet
Três elementos centrais da Web são• Uniform Resource Locator
• (ou endereço Web)
• HTML• linguagem das páginas Web
• HTTP• Hypertext Transfer Protocol
37
URL: Uniform Resource Locator
http://asc.di.fct.unl.pt/~pm/index.htmlProtocolo Máquina
Endereço IP:x.x.x.xNome DNS
Ficheiro
/home/pm/public-html/index.html
37
Forma normalizada de especificar a localização de um recurso na Web.• Protocolo (pode ser omitido);
• Nome da máquina;
• Recurso (e.g. um ficheiro no servidor).
38
HTML
Hypertext Markup Language (HTML)• Linguagem usada para criar páginas Web.
• é uma markup language porque usa marcas (tags) para anotar a informação.
Tags (marcas)• Especificam a interpretação do conteúdo
• A forma concreta como a informação é mostrada no ecrã é decidida pelo browser.
41
HTML
Marcas (tags)• Colocadas entre os símbolos < e >
• A marca final distingue-se da inicial pela </..>
Elementos• Os elementos da página são definidos por uma
marca inicial e final ladeando o conteúdo.
• e.g. <TITLE>Título</TITLE>
• Ou podem ser vazios: <BR>
42
HTML
Exemplos• <P> ... </P> especifica um parágrafo separado.
• <BR> indica uma mudança de linha.
• <CENTER> ... </CENTER> centra o conteúdo.
• <I> … </I> conteúdo em itálico.
• <B> … </B> conteúdo em negrito (bold).
• <HR> insere um separador horizontal a toda a largura da página (mudança de contexto).
43
HTML
Exemplos• <UL> … </UL> define uma lista de itens.
• <LI>…</LI> define um item.
• <H1> … </H1> Formatação do texto no estilo H1 –relevo máximo (dimensão das letras …).
• …
• <H8> … </H8> Formatação do texto no estilo H8 – relevo mínimo.
44
HTML
Nota:• No standard HTML5 a ênfase é na semântica
e não no aspecto visual.
• Várias tags foram delegadas para folhas de estilo (e.g. CENTER) ou têm significado diferente (e.g. HR)
45
HTML
A tag pode ter também atributos• informação adicional acerca do elemento.
• nome-do-atributo="valor"
Exemplo• Imagem:
• <IMG SRC="imagem.gif">
46
HTML
Links (hiper-ligação)• Tag A (âncora)
Exemplo<A HREF = "http://ssdi.di.fct.unl.pt/ice/b/praticas.html"> página das práticas de ICE-B</A>
47
Protocolo HTTP
Browser Servidor
Pedido
Resposta
GET /index.html HTTP/1.1Linhas com informação sobre o pedido e o browserLinha em brancoMais linhas opcionais
200 OK HTTP/1.1Linhas com informação sobre a resposta e o servidorLinha em brancoMais linhas opcionais<html>…</html>
Pedidos e respostas são codificados em blocos de texto
48
World Wide Web
Utilizador especifica URL, o browser pede o recurso ao servidor, este envia os dados com o texto, imagens, etc.
49
Conteúdo estático
O conteúdo pode ser estático • é enviado um ficheiro que existe no servidor
• Exemplos: ficheiros HTML, imagens, audio clips.
• URLs para conteúdos estáticos:• http://www.cs.cmu.edu:80/index.html
• http://www.cs.cmu.edu/index.html
• http://www.cs.cmu.edu
• Identificam o ficheiro index.html gerido pelo servidor em www.cs.cmu.edu à escuta na porta 80.
50
Conteúdo dinâmico
O conteúdo pode ser dinâmico• Quando é pedido um recurso dinâmico, o servidor
executa um programa que o gera no momento.• Por exemplo, páginas de um blog, Facebook, etc
52
Acesso a recursos remotos
O MATLAB (e Octave) inclui funções para aceder a recursos pelo URL[conteudo, sucesso] = urlread( url )
• A função urlread acede ao URL url e retorna:• na string conteudo o conteúdo obtido;
• no booleano sucesso o valor true (1), se a operação teve sucesso, e o valor false (0), se a operação não teve sucesso.
53
Acesso a recursos remotos
[nComp,sucesso]=urlwrite(url,nomeFich)
• A função urlwrite acede ao URL url, grava o conteúdo no ficheiro nomeFich e retorna:• na string nComp o nome completo do ficheiro local,
incluíndo o caminho;
• no booleano sucesso o valor true (1), se a operação teve sucesso, e o valor false (0), se a operação não teve sucesso.
55
Exemplo: pauta
As notas dos trabalhos e testes estão num servidor:• http://ctp.di.fct.unl.pt/~mm/ice/teoricas/notasAC.txt
50123 12.5 14.1 16.4 9.9;50224 8.1 10.3 5.5 8.2;51001 7.7 4.4 15.1 12.0
56
Exemplo
Compreender o problema Caracterizar:
• Entrada: URL
• Saída: pauta com as avaliações
Tarefas• Obter os dados remotos (urlread) e converter numa
matriz (Já vamos ver como...)
• Calcular a pauta
• Já resolvemos este problema na aula 4
57
Exemplo
Assinaturas das funções• Ler as notas
• function notas=lenotas(url)• Da aula 4
• function pauta = calculapauta(notas)• function nota = calculanota(notas)• function res=arredonda(valor,casasDec)
• Juntar tudo• function pauta = calculapautaurl(url)
58
Exemplo
Converter string em números:• str2num
octave:11> a=str2num(s)a = 123octave:12> a+1ans = 124octave:13> mStr='1,2,3;4,5,6;7,8,9'mStr = 1,2,3;4,5,6;7,8,9octave:14> m=str2num(mStr)m =
1 2 3 4 5 6 7 8 9
octave:9> s='123's = 123octave:10> s+1ans =
50 51 52
59
Exemplo
Os dados no servidor são fáceis de converter:
50123 12.5 14.1 16.4 9.9;50224 8.1 10.3 5.5 8.2;51001 7.7 4.4 15.1 12.0
61
Exemplo
octave-3.6.4.exe:3>ns=lenotas('http://ctp.di.fct.unl.pt/~mm/ice/teoricas/notasA.txt')Falhou a leitura do URL http://ctp.di.fct.unl.pt/~mm/ice/teoricas/notasA.txtns = [](0x0)octave-3.6.4.exe:4>ns=lenotas('http://ctp.di.fct.unl.pt/~mm/ice/teoricas/notasAC.txt')ns =
5.0123e+004 1.2500e+001 1.4100e+001 1.6400e+001 9.9000e+000 5.0224e+004 8.1000e+000 1.0300e+001 5.5000e+000 8.2000e+000 5.1001e+004 7.7000e+000 4.4000e+000 1.5100e+001 1.2000e+001
Testar a função lenotas:
63
Exemplo
Testar calculapautaurl:> url='http://ctp.di.fct.unl.pt/~mm/ice/teoricas/notasAC.txt'
> pauta=calculapautaurl(url)
pauta =
50123 13
50224 7
51001 -1
64
Nota: http:// ou file://
O URL pode ser usado para designar um ficheiro local• Nesse caso o protocolo não será http mas
sim file.
65
Nota: http:// ou file://
Por exemplo, guardamos notasAC.txt na pasta de trabalho:
octave:11> url='file://notasAC.txt';octave:12> pauta=calculapautaurl(url)pauta = 50123 13 50224 7 51001 -1
69
Calculo de áreas por MC
Em geral• N pontos ao acaso numa região conhecida
que inclua a região de interesse• pseudo aleatórios
• contar quantos incidem na área de interesse
• a área de interesse será essa fracção, aproximadamente, da área conhecida
• funciona melhor quanto maior for N e quanto maior for a fracção na área de interesse.
70
Calculo de áreas por MC
Função estimapi• recebe o número de pontos a gerar para a
estimativa
• devolve • o valor estimado de pi
• duas matrizes com os pontos (x,y) que calharam dentro e fora da área de interesse, para o gráfico.
Assinatura da função:function [res, ptsDentro, ptsFora] = estimapi(N)
71
Cria os vectores de saída (no máximo N linhas) e os contadores que indicam quantos pontos e em que linha vamos, em cada caso.
73
Função rand simula números aleatórios(pseudo-aleatória)0 <= rand < 1
octave:46> randans = 0.30517octave:47> randans = 0.73012octave:48> randans = 0.76470octave:49> randans = 0.083024
74
O ponto gerado a cada iteração conta dentro se a distância à origem não ultrapassar a unidade, fora se ultrapassar.Incrementando as variáveis ixDentro e ixFora mantemos a contagem e o índice do ponto na matriz respectiva.
75
O resultado, a estimativa de π, é o quádruplo da área estimada pela proporção de pontos dentro.
É preciso também redimensionar as matrizes dos pontos de acordo com o número efectivo de pontos (N linhas era o máximo possível, para evitar redimensionar as matrizes muitas vezes durante o ciclo).
83
Trabalho Prático 1
Obter dados de um servidor (URL) Processar os dados
• matrizes, cálculos, …
Gerar gráficos Enunciado depois do teste
84
Trabalho Prático 1
Aulas práticas• Apoio nas próximas semanas
Entregas• Versão intermédia, 27 de Abril
• não conta para nota
• para “ensaiar” e para seguirmos o progresso
• Versão final • Limite: 4 de Maio, recomendado: ~2 de Maio
• esta é que conta.