Transcript Slides

Informática para Ciências
e Engenharias
2013/14
Teórica 6
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
2
Redes de computadores
3
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.
4
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.
5
Relação Cliente Servidor

Em muitos casos, a relação é assimétrica
Por exemplo,
Browser
Pedido (request)
Programa
Cliente
Um servidor pode
servir vários
clientes em
simultâneo.
Programa
Servidor
Por exemplo,
Servidor Web
Resposta (response)
6
Relação Cliente Servidor
1. Cliente envia pedido
Programa
Cliente
4. Cliente
processa a resposta
Programa
Servidor
3. Servidor
envia a resposta
Recurso
2. Servidor
processa o pedido

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.
7
7
Relação Cliente Servidor

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.
8
8
Relação entre pares

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.
9
9
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.
10
Redes de computadores

LAN
•

WAN
•
•

Cobre um edifício, ou
edifícios próximos
Wide Area Network
Liga redes locais
Encaminhador
•
•
Router, gateway
máquina dedicada que
liga redes diferentes
(e.g. LAN a WAN)
11
Redes de computadores

Duas LAN ligadas por 3 encaminhadores
(routers).
Nó
Nó
Ethernet ou WiFi
Nó
Nó
Ethernet ou WiFI
Nó
Router
Ligação fibra óptica
Router
Nó
Ligação via satélite
Router
12
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
13
Protocolos Internet

Nível físico
• Sinais entre os nós da rede
• Modulação e conversão
• Fibra óptica, telefone, cabo, ethernet, ...
14
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, ...
15
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
16
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.
17
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.
18
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, ...
19
Protocolos Internet
20
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.
21
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
22
Top level domains
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
…
…
23
23
Domain Name System
Domínio raiz
Top-level
domains
cmu
cs
edu
gov
com
google
…
ibm
uk
pt
…
utl
unl
fe
fct
di
24
Protocolos Internet

Endereços simbólicos, exemplo
• nslookup (no command prompt ou consola)
~$ nslookup fct.unl.pt
...
Name:
fct.unl.pt
Address: 193.136.126.43
25
Nome do nó
asc.di.fct.unl.pt
Nome da
máquina
Organização
Top level domain
(TLD)
~$ nslookup asc.di.fct.unl.pt
...
asc.di.fct.unl.pt
canonical name = di78.di.fct.unl.pt.
Name:
di78.di.fct.unl.pt
Address: 193.136.122.78
26
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
27
Internet

Desta forma, a rede de redes pode crescer
28
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)
29
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
30
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.
31
World Wide Web
32
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.
33
World Wide Web

A Web (teia)
•

Protocolos da Web
•

Protocolos de aplicação que gerem a partilha da
informação.
Página Web
•

Documentos interligados e sofware para consultar e
manipular essa informação.
Documento com dados e, normalmente, ligações (link) a
outros documentos.
Link (elo)
•
Ligação entre duas páginas Web.
34
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
35
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
36
URL: Uniform Resource Locator

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).
http://asc.di.fct.unl.pt/~pm/index.html
Protocolo
Máquina
Ficheiro
Endereço IP:x.x.x.x
Nome DNS
/home/pm/public-html/index.html
37
37
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.
38
HTML
Código fonte da
página, HTML
39
HTML
Representação
da página pelo
browser
40
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>
41
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).
42
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.
43
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)
44
HTML

A tag pode ter também atributos
• informação adicional acerca do elemento.
• nome-do-atributo="valor"

Exemplo
• Imagem:
• <IMG
SRC="imagem.gif">
45
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>
46
Protocolo HTTP
Pedido
Browser
GET /index.html HTTP/1.1
Linhas com informação sobre o pedido e o browser
Linha em branco
Mais linhas opcionais
Servidor
Resposta
200 OK HTTP/1.1
Linhas com informação sobre a resposta e o servidor
Linha em branco
Pedidos e respostas são
Mais linhas opcionais
codificados em blocos de texto
<html>
…
</html>
47
World Wide Web
Utilizador especifica URL, o browser pede o recurso ao servidor, este envia
os dados com o texto, imagens, etc.
48
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.
49
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
50
Usar recursos remotos em MATLAB
51
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.
52
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.
53
Exemplo: Pauta
54
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
55
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
56
Exemplo

Assinaturas das funções
• Ler as notas
• function
notas=lenotas(url)
• function
• function
• function
pauta = calculapauta(notas)
nota = calculanota(notas)
res=arredonda(valor,casasDec)
• function
pauta = calculapautaurl(url)
• Da aula 4
• Juntar tudo
57
Exemplo

Converter string em números:
• str2num
octave:9> s='123'
s = 123
octave:10> s+1
ans =
50
51
52
octave:11> a=str2num(s)
a = 123
octave:12> a+1
ans = 124
octave:13> mStr='1,2,3;4,5,6;7,8,9'
mStr = 1,2,3;4,5,6;7,8,9
octave:14> m=str2num(mStr)
m =
1
4
7
2
5
8
3
6
9
58
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
59
Exemplo
60
Exemplo

Testar a função lenotas:
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.txt
ns = [](0x0)
octave-3.6.4.exe:4>ns=lenotas('http://ctp.di.fct.unl.pt/~mm/ice/teoricas/notasAC.txt')
ns =
5.0123e+004
5.0224e+004
5.1001e+004
1.2500e+001
8.1000e+000
7.7000e+000
1.4100e+001
1.0300e+001
4.4000e+000
1.6400e+001
5.5000e+000
1.5100e+001
9.9000e+000
8.2000e+000
1.2000e+001
61
Exemplo
62
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
63
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.
64
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
65
Cálculo de áreas por Monte Carlo
66
Estimar π

Círculo de raio 1, área = π
• quadrado área = 1
• quarto, área = π/4
1
67
Estimar π

Algoritmo (Monte Carlo)
• N pontos ao acaso
• contar d dentro
• π ~ (d/N)*4
1
68
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.
69
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)
70
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.
71
Ciclo principal para disparar N
pontos
72
Função rand simula
números aleatórios
(pseudo-aleatória)
0 <= rand < 1
octave:46> rand
ans = 0.30517
octave:47> rand
ans = 0.73012
octave:48> rand
ans = 0.76470
octave:49> rand
ans = 0.083024
73
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.
74
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).
75
Estimar π

Script de
testes
76
Estimar π

N=100
77
Estimar π

N=500
78
Estimar π

N=5000
79
Estimar π

N=25000
80
Estimar π

Mais pontos,
mais rigor:
81
Trabalho Prático 1
82
Trabalho Prático 1


Obter dados de um servidor (URL)
Processar os dados
• matrizes, cálculos, …


Gerar gráficos
Enunciado depois do teste
83
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.
84
Dúvidas
85