85
Informática para Ciências e Engenharias 2013/14 Teórica 6

Informática para Ciências e Engenharias 2013/14iceb.ssdi.di.fct.unl.pt/1314/b/files/ICE-B-T06.pdf · 5 Redes de computadores Numa transferência intervêm dois computadores e a

  • Upload
    lamhanh

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Informática para Ciências e Engenharias

2013/14

Teórica 6

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

3

Redes de computadores

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, ...

20

Protocolos Internet

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

28

Internet

Desta forma, a rede de redes pode crescer

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.

32

World Wide Web

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.

39

HTML

Código fonte da página, HTML

40

HTML

Representação da página 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

51

Usar recursos remotos em MATLAB

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.

54

Exemplo: Pauta

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

60

Exemplo

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:

62

Exemplo

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

66

Cálculo de áreas por Monte Carlo

67

Estimar π

Círculo de raio 1, área = π• quadrado área = 1

• quarto, área = π/4

1

68

Estimar π

Algoritmo (Monte Carlo)• N pontos ao acaso

• contar d dentro

• π ~ (d/N)*4

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.

72

Ciclo principal para disparar N pontos

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).

76

Estimar π

Script de testes

77

Estimar π

N=100

78

Estimar π

N=500

79

Estimar π

N=5000

80

Estimar π

N=25000

81

Estimar π

Mais pontos, mais rigor:

82

Trabalho Prático 1

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.

85

Dúvidas