Afonso Praça caos!design
Redes e Internet Breve introdução
Baseado em slides extraídos do material dos professores Jim Kurose e Keith Ross relativos ao livro “Redes de Computadores e a Internet – Uma abordagem top-down”, terceira edição.
Porque precisamos de uma rede?
Porque precisamos de uma rede? A internet ĂŠ uma rede de redes
O que é a Internet?
. Milhões de elementos de computação interligados: . Executando aplicações distribuídas . Enlaces de comunicação fibra, cobre, rádio, satélite • Roteadores: decidem por onde enviar os pacotes recebidos • Protocolos: são padrões de comunicação para troca de informações. ex.: TCP, IP, HTTP, FTP
Endereçamento IP
Endereço IP: identificador de 32 bits para interfaces de roteadores e computadores (hosts) • Interface: conexão entre roteador ou computador (host) e enlace físico • Roteador tem tipicamente múltiplas interfaces
223.1.1.1 = 11011111 00000001 00000001 00000001
Endereçamento IP • Endereço IP: • Parte da sub-rede (bits de ordem superior) • Part do computador (host) (bits de ordem inferior) • O que é um sub-rede? • Interfaces de dispositivo com a mesma parte de sub-rede do endereço IP . Podem alcançar fisicamente uns aos outros sem intervenção de roteador
rede consistindo de 3 sub-redes
DNS
. O servidor DNS traduz nomes para endereรงos IPs e endereรงos IP para seus respectivos nomes.
O que ĂŠ um protocolo? Um protocolo humano e um protocolo de rede de computadores:
Uma visão mais de perto da estrutura da rede:
• Borda da rede: aplicações e hospedeiros • Núcleo da rede: roteadores rede de redes • Redes de acesso, meio físico: enlaces dez comunicação
As bordas da rede • Sistemas finais (hospedeiros): • Executam programas de aplicação • Ex.: Web, e-mail • Modelo cliente/servidor • O cliente toma a iniciativa enviando pedidos que são respondidos por servidores • Ex.: Web client (browser)/ server; e-mail client/server • Modelo peer-to-peer: • Mínimo (ou nenhum) uso de servidores dedicados • Ex.: Gnutella, KaZaA
O núcleo da rede . Malha de roteadores interconectados • A questão fundamental: como os dados são transferidos através da rede? • Comutação de circuitos: usa um canal dedicado para cada conexão. ex.: rede telefônica • Comutação de pacotes: dados são enviados em “blocos” discretos
Comutação de circuitos
. Recursos fim-a-fim são reservados por “chamada” • Taxa de transmissão, capacidade dos comutadores • Recursos dedicados: não há compartilhamento • Exige estabelecimento de conexão
Comutação de pacotes . Fluxo de dados dividido em pacotes • Cada pacote usa toda a banda disponível ao ser transmitido • Recursos são usados na medida do necessário Contenção de recursos: • A demanda agregada por recursos pode exceder a capacidade disponível • Congestionamento: filas de pacotes, espera para uso do link • Armazena e reenvia: pacotes se movem um “salto” por vez
Núcleo da rede: comutação de pacotes
Estrutura da Internet: rede de redes
O modelo em camadas
Convivendo com sistemas complexos: . Padronizar o relacionamento das partes de um sistema complexo . Modularização facilita a manutenção e atualização do sistema . As mudanças na implementação de uma camada são transparentes para o resto do sistema
Pilha de protocolos da Internet • Aplicação: suporta as aplicações de rede FTP, SMTP, HTTP • Transporte: transferência de dados hospedeiro-hospedeiro • TCP, UDP • Rede: roteamento de datagramas da origem ao destino • IP, protocolos de roteamento • Enlace: transferência de dados entre elementos vizinhos da rede • PPP, Ethernet • Física: bits “nos fios dos canais”
Encapsulamento
Requisitos de transporte de aplicação comuns
Aplicação file transfer e-mail real-time áudio/vídeo stored áudio/video jogos interativos e-business
Perdas
Banda
Sensível ao atraso
sem perdas sem perdas tolerante
elástica elástica aúdio: 5 Kb-1 Mb vídeo:10 Kb-5 Mb igual à anterior kbps elástica
não não sim, 100’s mseg
tolerante tolerante sem perda
sim, segundos sim, 100’s mseg sim
Serviços dos protocolos de transporte da Internet Serviço TCP: • Orientado à conexão: conexão requerida entre processos cliente e servidor • Transporte confiável entre os processor de envio e recepção • Controle de fluxo: o transmissor não sobrecarrega o receptor • Controle de congestionamento: protege a rede do excesso de tráfego . Não oferece: garantias de temporização e de banda mínima
Serviço UDP: • Transferência de dados não confiável entre os processos transmissor e receptor • Não oferece: estabelecimento de conexão, confiabilidade, controle de fluxo e de congestionamento, garantia de temporização e de banda mínima.
Exemplo de protocolo de aplicação: HTTP
HTTP: hypertext transfer protocol • Protocolo da camada de aplicação da Web Modelo cliente/servidor • Cliente: browser que solicita, recebe e apresenta objetos da Web • Servidor: envia objetos em resposta a pedido
Visão geral do HTTP Utiliza TCP: • Cliente inicia conexão TCP (cria socket) para o servidor na porta 80 • Servidor aceita uma conexão TCP do cliente • mensagens HTTP (mensagens do protocolo de camada de aplicação) são trocadas entre o browser (cliente HTTP) e o servidor Web (servidor HTTP) • A conexão TCP é fechada HTTP é “stateless” • O servidor não mantém informação sobre os pedidos passados pelos clientes Protocolos que mantêm informações de “estado” são complexos! • Histórico do passado (estado) deve ser mantido • Se o servidor/cliente quebra, suas visões de “estado” podem ser inconsistentes, devendo ser reconciliadas
HTTP Usuário entra com a URL:
www.someSchool.edu/someDepartment/home.index 1a. Cliente HTTP inicia conexão TCP ao servidor HTTP (processo) em www.someSchool.edu. Porta 80
2. Cliente HTTP envia HTTP request message (contendo a URL) para o socket da conexão TCP
Tempo
1b. Servidor HTTP no hospedeiro www.someSchool.edu esperando pela conexão TCP na porta 80. “Aceita” conexão, notificando o cliente 3. Servidor HTTP recebe mensagem de pedido, forma response message contendo o objeto solicitado (someDepartment/home.index), envia mensagem para o socket
Afonso Praรงa caos!design