Introdução às Redes de Computadores e à Internet J. Legatheaux Martins Departamento de Informática da Faculdade de Ciências e Tecnologia da UNL
Nota prévia A apresentação utiliza algumas das figuras do livro James F. Kurose and Keith W. Ross, "Computer Networking - A Top-Down Approach Featuring the Internet, Addison Wesley Longman, Inc., 3rd Edition, 2005 Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 2
Objectivos da lição Perceber o que são as redes de computadores e ter uma primeira ideia sobre como funcionam e de para que servem A aproximação é descritiva e usa a Internet como exemplo O serviço WWW e a troca de ficheiros são usados como exemplo da arquitectura interna e do funcionamento dos serviços Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 3
Organização da lição O que é uma rede de computadores A periferia e o centro da rede Desempenho (performance): perca de pacotes, tempos de propagação, de transmissão, etc. Internet: Backbones, NAPs, ISPs, a Internet em Portugal O serviço WWW e o protocolo HTTP Troca P2P de ficheiros Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 4
O que é uma rede de computadores? Computador Rede ( Network Cloud ) Uma rede de computadores é uma Infra-estrutura de troca de mensagens entre os computadores que lhe estão ligados, permitindo o acesso a recursos remotos e a utilização de aplicações distribuídas Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 5
Exemplo de uma rede local - LAN Servidor de base de dados N x Estações de trabalho Servidor de disco Servidor de impressão Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 6
Exemplo de uma WAN host host circuito de dados router host router Router (encaminhador, comutador de pacotes), switch (comutador), packet switch, etc. são outros tantos termos utilizados para designar o equipamento de encaminhamento Site, host, worksation, station, estação, end system, computador são termos utilizados para designar os computadores ligados à rede router host host host Communication links, canais de comunicação Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 7
A Internet é uma Rede de redes (LAN, WAN) Milhões de computadores interligados: pc s workstations, servidores PDA s, torradeiras A executarem aplicações de rede Canais de comunicação Baseados em fibra, cobre, radio, satélite routers: encaminham pacotes (pedaços de informação ou mensagens) de dados através da rede router ISP local company network servidor workstation móvel ISP regional Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 8
Serviços prestados pela Rede Uma infra-estrutura de comunicações que permite as aplicações distribuídas funcionarem WWW Correio electrónico Jogos Comércio electrónico Acesso a bases de dados,... Serviços prestados pela rede às aplicações Serviço de comunicação fiável ou orientado conexão ( connection-oriented ) Serviço de comunicação baseado em datagramas ( connectionless ) Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 9
O que é um Protocolo Um protocolo de comunicações define o formato de todas as mensagens trocadas entre entidades na rede, a sua ordem relativa, e as acções a executar após a recepção e a emissão dessas mensagens. Também define o comportamento perante falhas. time TCP connection req. TCP connection reply. Get //asc.di.fct.unl.pt/rc <file> Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 10
Distribuição de funcionalidades A periferia da rede: computadores e aplicações O core da rede: routers network of networks Redes de acesso e meios físicos de transmissão: canais de comunicação Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 11
A periferia da rede Computadores ou end systems Executam os programas aplicação e.g., WWW, correio electrónico Utilizando os serviços da rede Modelo cliente/servidor Os clientes solicitam serviços aos servidores e.g., WWW cliente (browser)/ servidor; e-mail cliente/servidor Modelo peer-peer (par a par): Interacção simétrica entre hosts e.g.: tele-conferência Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 12
O Core (centro ou miolo) da Rede Malha de routers interligados Como é a informação transferida? Comutação de pacotes ( packetswitching ): dados envidados pela rede em pedaços independentes (ditos pacotes ). Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 13
Como funciona a comutação de pacotes A 10 Mbs Ethernet statistical multiplexing C B queue of packets waiting for output link 1.5 Mbs D 45 Mbs E Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 14
Meios de acesso à Rede Como ligar os sistemas da periferia ao interior da rede? Redes para acesso residencial Redes para acesso institucional (escola, empresa,...) Redes de acesso móveis Aspectos a considerar: Capacidade (bits por segundo) da rede de acesso Dedicada ou partilhada? Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 15
Origens do tempo de trânsito A transmission propagation B nodal processing queueing Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 16
Queueing delay Intensidade de tráfego = Dp.M/Vt ou La/R Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 17
Perca de pacotes (packet loss) Se a intensidade do tráfego é tal que as filas de espera enchem, o router descarta pacotes (estes pacotes são destruídos) Uma fila de espera demasiado grande pode ser contraproducente Também os erros dos canais poderão conduzir à perca de pacotes Os pacotes perdidos têm de ser transmitidos de novo Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 18
Protocolos na Internet (TCP/IP) Aplicação SNMP NCS tftp dns telnet smtp http ftp... Transporte UDP TCP outros Nível Rede IP ICMP Níveis data link e físico Ethernet Token Ring Satélite Rádio Linha Assínc. etc. Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 19
Estrutura da Internet Organização quase hierárquica International backbone providers (IBPs) e.g. BBN/GTE, Sprint, AT&T, IBM, UUNet/WorldCom, Qwest, Ebone, Estão interligados directa e também indirectamente nos Network Access Point (NAPs) ISPs regionais Estão ligados aos IBPs ou aos NAPs ISP locais Estão ligados aos ISPs regionais NAP IBP B IBP A ISPs regionais ISPs locais ISP locais ISPs regionais NAP Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 20
Exemplo (fictício) de um Backbone IP Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 21
PIX Portuguese Internet Exchange Routers dos ISPs Telepac ONI Switchs ethernet Novis FCCN...... Vodafone Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 22
Os ISPs em Portugal Os maiores têm um backbone nacional (PT/Telepac, ONI, Novis,...) Alguns utilizam o backbone de outros ( IOL,...) Alguns têm ligações internacionais próprias (PT/Marconi, ONI, Novis,...) Alguns são regionais, actuando só numa cidade Aqueles que não têm ligações internacionais compram a conectividade internacional aos que a têm Quase todos os ISPs de âmbito nacional têm ligação ao PIX ou interligam directamente os seus backbones nacionais O PIX é mantido pela FCCN (ISP das escolas e I&D) Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 23
Evolução da Internet (1) 1961 1972 aparecem as redes de pacotes 1972 a ARPAnet tem 15 nós 1973 Invenção da tecnologia Ethernet 1974 Estabelecimento dos princípios da Internet 1979 - a ARPAnet tem 200 nós Fim dos anos 70 Redes proprietárias (DecNet, SNA,...) 1983 TCP/IP começa a generalizar-se (Berkeley UNIX) 198... SMTP, DNS, TCP congestion control,... 1988 100.000 hosts ligados às diferentes redes da Internet Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 24
Evolução da Internet (2) 1990 A NSFnet abre-se ao tráfego não académico 1990 Invenção do WWW na Europa 1994 Mosaic, Netscape 1995 Fim da NSFnet, a Internet torna-se comercial 2000 Mais de 100.000.000 hosts ligados 2000 Mais de 150.000.000 utilizadores 2001 Vários backbones IP internacionais a 2.5 Gbps Tráfego de dados iguala ou ultrapassa o tráfego de voz a nível mundial. Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 25
Evolução da Internet em Portugal Antes de 1990 Ligações limitadas só para e-mail 1990 Backbone IP da FCCN com linhas de 64 Kbps e algumas de velocidade inferior 1990 Primeira ligação IP internacional da FCCN via a EUnet a 64 Kbps 1990 e 1991 O domínio.pt começa a receber registos de sub-domínios 1991 a 1994 Acesso limitado de algumas empresas 1994 Seminário Portugal na Internet 1994 a 1996 Aparecem os primeiros ISPs comerciais 1999 Os ISPs nacionais pioneiros são comprados pelas Telcos 2000 Mercado dominado por empresas de Telecomunicações de grande dimensão para as quais a Internet é apenas um departamento Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 26
Princípios orientadores do TCP/IP Em 1984 V. Cerf e R. Kahn estabeleceram os princípios orientadores da arquitectura da Internet, concebida como uma interligação de redes (internetworking) Esses princípios são: Modelo de serviço baseado em best effort (IP) Routers sem estado, ou melhor, todo o estado é soft state Controlo descentralizado Dois tipos de serviços de transporte com e sem garantias implementados pela periferia (TCP e UDP) A rede é simples a periferia é inteligente e colabora com a rede para evitar a saturação Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 27
Aplicações distribuídas Aplicação: processos distribuídos que comunicam através de mensagens Executam nos hosts em user space Comunicam através de protocolos do nível aplicação Usam os serviços do nível de transporte Protocolos Aplicacionais Definem as mensagens trocadas pelas aplicações e a sua semântica Não são senão uma parte da aplicação application transport network data link physical application transport network data link physical application transport network data link physical Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 28
O paradigma cliente servidor application transport network data link physical request reply application transport network data link physical Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 29
Transportes e suas características TCP Orientado conexão (exige conexão prévia) Transporte fiável de uma sequência de octetos ( bytes ) Controlo de fluxo Controlo de saturação Não dá garantias de banda nem de latência UDP Serviço datagramas sem conexão (não exige conexão prévia) Não fiável ( best effort ) Não tem garantias de banda, latência, controlo de fluxo ou saturação Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 30
O serviço WWW Um serviço de acesso e gestão de informação multimedia para a Internet Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 31
O protocolo HTTP http: hypertext transfer protocol Protocolo do nível aplicação cliente/servidor cliente: browser envia pedidos, recebe, interpreta e mostra os objectos servidor: o servidor Web envia os objectos em resposta aos pedidos http1.0: RFC 1945 http1.1: RFC 2068 PC running Explorer Mac running Navigator http request http response http request http response Server running NCSA Web server Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 32
Mais sobre o protocolo HTTP http: usa o transporte TCP: O cliente abre uma conexão TCP para a porta 80 do servidor O servidor aceita a conexão do cliente O servidor e o cliente trocam mensagens HTTP A conexão TCP é fechada Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 33
Como funciona o HTTP O que se passa quando é solicitado a um browser que aceda a um recurso especificado por um URL, como por exemplo: http://www.w3.org/index.html 1) O browser faz o parsing do URL 2) Solicita ao DNS o endereço do servidor (www.w3.org) 3) O DNS responde com 18.23.0.23 por exemplo 4) O browser abre uma conexão TCP para o porto 80 de 18.23.0.23 5) Envia então o comando: GET /toto.html seguido de uma linha em branco 6) O servidor responde com esse documento 7) O browser lê o documento através do canal TCP 8) O browser fecha a conexão 9) O browser começa a interpretação do documento e abre novas conexões para ir buscar as imagens indicadas no mesmo Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 34
As mensagens do cliente HTTP request line (GET, POST, HEAD,...) header lines Carriage return, line feed indicam o fim da mensagem GET /somedir/page.html HTTP/1.0 User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (extra carriage return, line feed) Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 35
A mensagem de resposta status line (protocol status code status phrase) data, e.g., requested html file header lines HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html data data data data data... Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 36
Arquitecturas P2P Conjuntos de hosts (peers) arbitrários comunicam entre si Peers (pares, parceiros, ) nem sempre estão ligados e podem trocar de endereço IP de cada vez que estão ligados Muito escalável Mas difícil de gerir Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 37
Partilha e transferência de ficheiros P2P Exemplo: Alice executa um cliente P2P no seu computador Cada vez que se liga à Internet muda de endereço IP Vai à procura de Hey Jude A aplicação mostra uma lista de parceiros com a canção Hey Jude A Alice escolhe um deles. O ficheiro é copiado por HTTP Outros utilizadores podem depois copiar a cópia da Alice O sistema da Alice é um cliente e um servidor (volátil) de HTTP Todos os parceiros são servidores, o que é muito escalável! Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 38
Sistema P2P baseado num directório centralizado Directório centralizado João 1 peers 1 Solução Napster original Quando um parceiro se liga informa o sistema central do seu endereço IP e do conteúdo do seu repositório de ficheiros 2 1 1 3 Alice Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 39
Problemas da aproximação centralizada Ponto de falha único Estrangulamento (Performance bottleneck) Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 40
Query por inundação (flooding) Gnutella: Completamente distribuído: sem servidor central Protocolo do domínio público Muitas implementações do protocolo disponíveis Baseado na noção de rede sobreposta (overlay network) O arco entre o parceiro X e o parceiro Y materializado por uma conexão TCP Todos os parceiros e as ligações formam o grafo da rede Os arcos são ligações não físicas Cada parceiro liga-se a entre meia e uma dúzia de parceiros Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 41
Protocolo Gnutella File transfer: HTTP A pergunta (query) é enviada aos parceiros Os parceiros redirigem a mensagem se não conhecem a resposta A resposta (QueryHit) vem pelo caminho inverso Query QueryHit Query QueryHit Query QueryHit Query Escalabilidade baseada em inundação limitada Query Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 42
Gnutella: entrada na rede (join) 1. O parceiro X que entra usa uma lista de candidatos para encontrar parceiros iniciais 2. X tenta estabelecer conexões TCP sequencialmente com os parceiros da lista até obter uma conexão com um (Y) 3. X envia mensagens Ping para Y; Y redirige as mensagens Ping para os seus parceiros. 4. Todos os parceiros que recebem mensagens Ping respondem com mensagens Pong. 5. X recebe muitas mensagens Pong e pode estabelecer conexões TCP adicionais. Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 43
Melhoramentos: KaZaA Cada parceiro é líder de um grupo ou dependente de um líder. Abre uma ligação TCP para o seu líder. Os líderes abrem conexões entre si. Cada líder regista o conteúdo dos repositórios dos seus dependentes ordinary peer group-leader peer neighoring relationships in overlay network Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 44
Outras opções de Kazaa Limitação de uploads simultâneos Pedidos diferidos Incentivos através de prioridades Downloads paralelos Material de suporte às aulas de Seminário de Informática de J. Legatheaux Martins Copyright DI FCT/ UNL Redes de Computadores / 45