Comunicação na Internet Telemedicina e e-saúde 2009/10 Pedro Brandão Referências Estes slides são baseados nos slides de TeleMedicina e e-saúde 08/09 do Prof. Rui Prior Por sua vez ele baseou-se nos slides fornecidos com o livro Computer Networking: A Top Down Approach 4th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2007 2 Comunicação na Internet 1
Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 3 Pilha protocolar da Internet (revisão) aplicação: aplicações em transporte: transferência de dados entre processos : encaminhamento dos datagramas entre a origem e o destino ligação lógica: transferência de dados entre elementos de adjacentes ligação física: bits no cabo Aplicação Transporte Rede Lógica Física Exemplos FTP, SMTP, HTTP, etc TCP, UDP, etc IP, ICMP, IGMP, etc Ethernet, 802.11 (WiFi), etc Ethernet, 802.11, etc 4 Comunicação na Internet 2
Protocolo de aplicação define Tipos de mensagens trocadas o e.g., pedido, resposta Sintaxe das mensagens o que campos contêm e como se separam os campos Semântica das mensagens o significado da informação contida nos diferentes campos Regras de como e quando devem os processos responder às mensagens Protocolos abertos: possibilitam interoperação entre sistemas e.g., HTTP, SMTP definidos em RFCs Protocolos fechados: só tem aceso a eles quem o dententor dos direitos decidir e.g., Skype 2-5 Arquitecturas aplicacionais Cliente-servidor Peer-to-peer (P2P) Híbridas de cliente-servidor e P2P 2-6 Comunicação na Internet 3
Cliente Servidor servidor: o sempre ligado o endereço IP estático cliente/servidor cliente: o comunica com o servidor o não precisa de estar sempre ligado o pode ter endereço IP dinâmico o não comunica directamente com outros clientes 7 Peer-to-peer Pura ausência de servidores terminais comunicam directamente entre si os pares podem não estar sempre ligados e mudar de endereço IP peer-to-peer Muito escalável, mas difícil de gerir 8 Comunicação na Internet 4
Tempo de distribuição do ficheiro Comparação de arquitecturas: Cliente-Servidor vs. Peer-to-Peer 3,5 3 P2P Client-Server 2,5 2 1,5 1 0,5 0 0 5 10 15 20 25 30 35 Número de nós que pretendem o ficheiro 9 Arquitectura Híbrida Exemplo: Instant messaging (MSN,...) o mensagens de texto enviadas directamente (P2P) o serviço central de detecção de presença e localização o utilizador regista o seu endereço IP no servidor central quando se liga o utilizador contacta o servidor central para descobrir os endereços IP dos amigos 10 Comunicação na Internet 5
Comunicação entre processos Processo: instância dum programa a correr numa máquina processos em máquinas diferentes comunicam através da troca de mensagens Cliente: processo que inicia activamente a comunicação Servidor: processo que espera passivamente ser contactado As aplicações P2P funcionam simultaneamente como clientes e servidores 11 Endereçamento de processos para poder receber mensagens, um processo deve ter um identificador (endereço) cada terminal tem um endereço IP de 32 bits Questão: será o endereço IP do terminal suficiente para identificar de forma unívoca o processo? o Resposta: não, porque há múltiplos processos a correr no mesmo terminal o identificador inclui tanto o endereço IP como o número da porta associado ao processo no terminal Exemplos de portas: Servidor web: 80 Servidor de email: 25 para enviar um pedido HTTP ao servidor web www.dcc.fc.up.pt: Endereço IP: 193.136.39.12 Porta: 80 12 Comunicação na Internet 6
Endereçamento de processos para poder receber mensagens, um processo deve ter um identificador (endereço) cada terminal tem um endereço IP de 32 bits Q?: será o endereço IP do terminal suficiente para identificar de forma unívoca o processo? o não, porque há múltiplos processos a correr no mesmo terminal o identificador inclui tanto o endereço IP como o número da porta associado ao processo no terminal Exemplos de portas: o Servidor web: 80 o Servidor de email: 25 para enviar um pedido HTTP ao servidor web www.dcc.fc.up.pt: o Endereço IP: 193.136.39.12 o Porta: 80 13 Serviços de transporte usados pelas aplicações na Internet Serviço TCP: orientado às conexões: exige o estabelecimento prévio de conexão entre emissor e receptor transporte fiável entre os processos emissor e receptor controlo de fluxo: o emissor não envia mais rápido do que o receptor consegue processar controlo de congestionamento: redução de débito quando a está sobrecarregada não tem garantias de atraso máximo nem de débito mínimo Serviço UDP: transporte não fiável entre os processos emissor e receptor delineação de mensagens: um datagrama UDP corresponde a uma mensagem não tem estabelecimento prévio de conexões, fiabilidade, controlo de fluxo, controlo de congestionamento, garantias de atraso máximo ou de débito mínimo o Nem todas as aplicações necessitam de tudo isto... 14 Comunicação na Internet 7
Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 15 HTTP Panorama geral HTTP: hypertext transfer protocol Protocolo de camada de aplicação na web modelo cliente/servidor o cliente: browser que pede, recebe e mostra os objectos ao utilizador o servidor: envia os objectos em resposta aos pedidos do browser PC com Firefox Mac com Safari Servidor Apache 16 Comunicação na Internet 8
HTTP Panorama geral (cont.) Usa o TCP: o cliente inicia a conexão TCP para a porta 80 do servidor o servidor aceita a conexão TCP do cliente são trocadas mensagens HTTP (camada de aplicação) entre o browser (cliente HTTP) e o servidor web (servidor HTTP) a conexão TCP é fechada Sem estado o servidor não mantém qualquer informação (estado) sobre os pedidos anteriores do cliente aparte Protocolos com manutenção de estado são complexos! memória para estado se o servidor ou o cliente falham, as suas visões do estado podem ficar inconsistentes e ter que ser ressincronizadas 17 Mensagem HTTP de pedido dois tipos de mensagens HTTP: pedido e resposta Pedido HTTP: o Texto simples (formato humanamente legível) linha de pedido Linha vazia indica fim da mensagem cabeçalhos GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language: pt (mudança de linha extra) 18 Comunicação na Internet 9
Mensagem HTTP de resposta linha de estado (código de estado e correspondente descrição) cabeçalhos HTTP/1.1 200 OK Connection: close 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 linha vazia dados dados dados dados... dados (e.g., o ficheiro HTML pedido) 19 Códigos de estado nas respostas HTTP Enviados na primeira linha da resposta do servidor Alguns códigos: 200 OK o sucesso, o obejcto pedido vai mais abaixo na mensagem 301 Moved Permanently o o objecto foi mudado para outro URL, especificado mais abaixo no cabeçalho Location: 400 Bad Request o o servidor não entendeu o pedido 404 Not Found o o recurso pedido não existe no servidor 505 HTTP Version Not Supported 20 Comunicação na Internet 10
Experimentar o HTTP à mão 1. Fazer telnet para um servidor web telnet www.dcc.fc.up.pt 80 Abre conexão TCP para a porta 80 (porta HTTP padrão) no servidor www.dcc.fc.up.pt. Tudo o que se escrever será enviado para a porta 80 do www.dcc.fc.up.pt 2. Escrever o pedido HTTP GET /~pbrandao/index.html HTTP/1.1 Host: www.dcc.fc.up.pt Ao escrever isto (carregar 2x no enter), vai-se enviar este um pedido GET (básico mas completo) ao servidor HTTP 3. Observar a mensagem de resposta devolvida pelo servidor HTTP 21 Web caches (proxy server) utilizador configura browser para usar o proxy o browser envia todos os pedidos HTTP ao proxy objecto está na cache: proxy devolve-o directamente caso contrário, pede objecto ao servidor original, devolve-o ao browser e guarda cópia local cliente Proxy cliente Objectivo: satisfazer pedidos dos clientes sem recorrer ao servidor original (maior rapidez e poupança de recursos de ) servidor original 22 servidor original Comunicação na Internet 11
Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 23 Correio Electrónico (e-mail) Agente de utilizador programa usado para ler e escrever e-mail Servidores de E-mail caixa de correio contém mensagens recebidas fila de mensagens para mensagens a enviar protocolo SMTP para enviar as mensagens o cliente : servidor que envia a mensagem o servidor : servidor que recebe a mensagem servidor de e-mail SMTP servidor de e-mail agente de util. agente de util. SMTP SMTP agente de util. servidor de e-mail fila de mensagens a enviar caixa de correio de um utilizador agente de util. agente de util. agente de util. 24 Comunicação na Internet 12
Cenário: Alice envia mensagem ao Bob 1) No UA, a Alice escreve o texto da mensagem e o endereço do destinatário bob@someschool.edu 2) O UA da Alice envia a mensagem para o servidor dela; a mensagem é colocada na fila de saída 3) O lado cliente do SMTP da Alice abre uma conexão para o servidor de e-mail do Bob 4) A mensagem é enviada através dessa conexão TCP 5) O servidor de e-mail do Bob põe a mensagem na caixa de correio dele 6) Posteriormente, o Bob usa o seu UA para ler a mensagem UA User Agent 1 agente de util. servidor de e-mail 2 3 4 servidor de e-mail 5 6 agente de util. 25 Exemplo de comunicação SMTP S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection 26 Comunicação na Internet 13
Protocolos de acesso ao e-mail SMTP SMTP protocolo de acesso servidor de email do emissor servidor de email do destinatário SMTP: entrega mensagens no servidor do destinatário Protocolo de acesso: buscar e-mail à caixa de correio no servidor o POP3: Post Office Protocol, versão 3 download de mensagens o IMAP: Internet Mail Access Protocol mais complexo manipulação de mensagens armazenadas no servidor o HTTP: Gmail, Hotmail, etc. 27 Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 28 Comunicação na Internet 14
DNS: Domain Name System Pessoas: múltiplos identificadores o N os BI, NIF, passaporte Máquinas na Internet: o endereço IP (32 bits), usado no encaminhamento de datagramas (e.g., 194.117.24.35) o nome, usado por humanos (e.g. www.google.pt) Q: como se faz a tradução entre nome e endereço IP? Domain Name System: base de dados distribuída implementada como uma hierarquia de servidores de nomes os protocolos de aplicação, para comunicar, resolvem os nomes (tradução nome/endereço) o serviço fundamental na Internet, implementado como protocolo de aplicação o complexidade nas extremidades da 29 Base de Dados Distribuída e Hierárquica O cliente precisa de obter o IP de www.amazon.com. 1ª aproximação: pergunta a um servidor de raiz, que lhe indica os servidores DNS de com pergunta a um servidor de com, que lhe indica os servidores DNS de amazon.com pergunta a um servidor de amazon.com, que lhe responde com o endereço IP de www.amazon.com Servidores DNS de raiz Servidores DNS de com Servidores DNS de org Servidores DNS de edu Serv. DNS google.com Serv. DNS amazon.com Serv. DNS pbs.org Serv. DNS cmu.edu Serv. DNS mit.edu 30 Comunicação na Internet 15
Exemplo de resolução de nome Máquina em dcc.fc.up.pt quer o endereço de www.mit.edu Faz pergunta (recursiva) ao servidor DNS local Este faz perguntas (iterativas) descendo na hierarquia O servidor contactado dá referência doutro(s) servidor(es) a contactar servidor DNS local dns.dcc.fc.up.pt 1 2 8 servidor DNS de raiz 3 4 servidor DNS com autoridade ns.mit.edu máquina que faz o pedido khedo.dcc.fc.up.pt 5 7 servidor DNS TLD 6 www.mit.edu 31 Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 32 Comunicação na Internet 16
Serviços e protocolos de transporte fornecer um canal lógico de comunicação entre processos a correr em máquinas diferentes protocolo de transporte a correr nos terminais o emissor: partir mensagens de aplicação em segmentos, que passa à camada de o receptor: reconstruir mensagens a partir dos segmentos e passá-las à camada de aplicação applicação transporte applicação transporte 33 Protocolos de transporte na Internet entrega fiável e ordenada: TCP o estabelecimento de conexões o controlo de congestionamento o controlo de fluxo entrega não fiável e sem garantia de ordem: UDP o extensão simples do modelo melhor esforço do IP serviços indisponíveis: o garantia de atraso máximo o garantia de débito mínimo applicação transporte applicação transporte 34 Comunicação na Internet 17
Camada de transporte vs. camada de camada de : comunicação lógica entre máquinas camada de transporte: comunicação lógica entre processos o usa o serviço da camada de e, sobre ele, implementa um serviço de valor acrescentado Analogia: correio entre empresas processos = funcionários mensagens = cartas máquinas = edifícios protocolo de = serviço dos CTT protocolo de transporte = encarregados pela distribuição interna do correio 35 Multiplexagem/desmultiplexagem Desmultiplex. no receptor: entrega dos segmentos recebidos ao processo correcto = socket = processo Multiplex. no emissor: recolher dados de múltiplos processos e adicionar cabeçalhos (que depois são usados para desmultiplexar) applicação P3 P1 P1 applicação P2 P4 applicação transporte transporte transporte máquina 1 máquina 2 máquina 3 36 Comunicação na Internet 18
Como funciona a desmultiplexagem? a máquina recebe datagramas IP o cada datagrama contém endereços IP de origem e de destino o cada datagrama transporta um segmento da camada de transporte o cada segmento tem indicação das portas de origem e de destino a máquina usa os endereços IP e as portas de origem e de destino para enviar o segmento para o processo apropriado porta de orig. 32 bits outros campos do cabeçalho dados da aplicação (mensagem) porta de dest. formato dos segmentos TCP/UDP 37 Controlo de erros: soma de controlo Emissor: trata o conteúdo do segmento como uma sequência de inteiros de 16 bits soma de controlo: adição dos inteiros que constituem o segmento (colocando zeros no próprio campo) coloca o valor calculado no respectivo campo do cabeçalho Receptor: Objectivo: detectar erros (e.g., bits invertidos) no segmento recebido calcula soma de controlo do segmento recebido compara o valor calculado com o recebido: o diferentes erro detectado o iguais não foram detectados erros Pode haver erros não detectados, mas a probabilidade é muito baixa 38 Comunicação na Internet 19
UDP: User Datagram Protocol [RFC 768] protocolo de transporte extremamente simples serviço melhor esforço ; os segmentos UDP podem: o perder-se o ser entregues à aplicação fora de ordem sem conexões: o cada segmento UDP é tratado de forma independente Porque existe o UDP? sem conexões poupa o atraso de as estabelecer simples: sem manutenção de estado no emissor e no receptor cabeçalho pequeno sem controlo de congestionamento: aplicações UDP podem enviar dados à cadência que necessitem 39 Mais sobre o UDP frequentemente usado em aplicações multimédia o tolerantes a perdas o sensíveis ao débito ou atraso outros usos para o UDP o DNS transferência fiável sobre UDP o a fiabilidade tem que ser implementada na camada de aplicação o recuperação de erros específica da aplicação! porta de orig. tamanho 32 bits dados da aplicação (mensagem) porta de dest. soma de controlo formato dum segmento UDP 40 Comunicação na Internet 20
Camada transporte Camada aplicação Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 41 Princípios da transferência fiável Processo emissor dados Processo receptor dados Processo emissor dados Processo receptor dados Canal fiável dados Protocolo de transferência de dados fiável (emissor) dados Protocolo de transf. de dados fiável (receptor) pacote pacote Canal não-fiável a) serviço fornecido b) Implementação 42 Comunicação na Internet 21
Transferência fiável: problemas e soluções Pacotes podem perder-se Receptor confirma (ACK) a recepção de cada segmento Se não receber confirmação num dado tempo, o emissor retransmite o segmento Pacotes podem conter erros Detectados através de somas de controlo Pacotes com erros ignorados (tratamento igual ao dos pacotes perdidos) Recepção de duplicados (gerados pela ou retransmissões por perda de ACKs) Segmentos são numerados ACK identifica o número do último segmento recebido Também resolve o problema do reordenamento stop and wait O emissor envia um pacote e espera pela resposta do receptor 43 stop-and-wait: ausência de perdas envia pkt0 recebe ACK0, envia pkt1 recebe ACK1, envia pkt2 emissor pkt0 ACK0 pkt1 ACK1 pkt2 ACK2... receptor recebe pkt0, envia ACK0 recebe pkt1, envia ACK1 recebe pkt2, envia ACK2 44 Comunicação na Internet 22
stop-and-wait: perda dum pacote envia pkt0 recebe ACK0, envia pkt1 emissor pkt0 receptor ACK0 pkt1 X perdido recebe pkt0, envia ACK0 alarme, reenvia pkt1 recebe ACK1, envia pkt2 pkt1 ACK1 pkt2 ACK2... recebe pkt1, envia ACK1 recebe pkt2, envia ACK2 45 stop-and-wait: perda dum ACK envia pkt0 recebe ACK0, envia pkt1 emissor pkt0 ACK0 pkt1 ACK1 X perdido alarme, reenvia pkt1 pkt1 ACK1 recebe ACK1, envia pkt2 pkt2 ACK2... receptor recebe pkt0, envia ACK0 recebe pkt1, envia ACK1 recebe pkt1, detecta dup., envia ACK1 recebe pkt2, envia ACK2 46 Comunicação na Internet 23
stop-and-wait: alarme prematuro emissor receptor envia pkt0 pkt0 ACK0 recebe pkt0, envia ACK0 recebe ACK0, envia pkt1 pkt1 recebe pkt1, envia ACK1 ACK1 alarme, reenvia pkt1 recebe ACK1, envia pkt2 recebe ACK1 (dup.), ignora-o recebe ACK2, envia pkt3 pkt1 pkt2ack1 ACK2 pkt3 ACK3... recebe pkt1, detecta dup., envia ACK1 recebe pkt2, envia ACK2 recebe pkt3, envia ACK3 47 Operação do stop-and-wait transmissão do 1º bit do pacote, t = 0 trans. do último bit do pacote, t = L / R emissor receptor RTT chegada do primeiro bit chegada do último, envio do ACK chegada do ACK, envio do pacote seguinte, t = RTT + L / R U emissor L R RTT L R 0.008ms 0.00027 30.008ms 48 Comunicação na Internet 24
Desempenho do stop-and-wait stop-and-wait funciona, mas com desempenho péssimo ex.: ligação de 1 Gbps com 15 ms de atraso de propagação e pacotes de 8000 bits: L 8000bits d trans 8 s R 9 10 bps U emissor : utilização fracção do tempo em que o emissor efectivamente está a transmitir L R 0.008ms U emissor 0.00027 RTT L R 30.008ms 1KB pacote a cada 30 ms débito 33kB/s quando R= 1 Gbps o protocolo de limita o uso dos recursos físicos!!! 49 Pipelining: maior utilização transmissão do 1º bit do pacote, t = 0 trans. do último bit do pacote, t = L / R emissor receptor RTT chegada do ACK, envio do pacote seguinte, t = RTT + L / R chegada do 1º bit do 1º pacote último bit do 1º pacote, envio do ACK último bit do 2º pacote, envio do ACK último bit do 3º pacote, envio do ACK Utilização triplicou! U emissor 3 L R RTT L R 3 0.008ms 0.0008 30.008ms 50 Comunicação na Internet 25
Protocolos com Pipelining Go-back-N: Emissor pode ter até N pacotes em trânsito (sem receber ACK) Receptor envia ACKs cumulativos o Não envia ACK se houver um buraco Emissor tem temporizador para o pacote mais antigo ainda não confirmado o Se expirar, retransmite esse e todos os subsequentes Selective Repeat: Emissor pode ser até N pacotes em trânsito (sem receber ACK) Receptor confirma pacotes individualmente Emissor mantém um temporizador por cada pacote não confirmado o Se expirar, retransmite apenas esse pacote 51 Pipelining: Go-Back-N Emissor: número de sequência no cabeçalho janela de até N pacotes consecutivos não confirmados base próx. nº de seq. já confirmados disponíveis mas não enviados janela de tamanho N enviados mas não confirmados indisponíveis ACK(n): confirma a recepção de todos os pacotes até ao n (inclusive) confirmação cumulativa emissor pode receber ACKs duplicados alarme(n): retransmite pacote n e todos os enviados posteriormente a recepção de um ACK novo (não duplicado) faz reiniciar o temporizador 52 Comunicação na Internet 26
Go-Back-N em acção emissor envia pkt0 envia pkt1 envia pkt2 envia pkt3 (espera) recebe ACK 0, envia pkt4 recebe ACK1, envia pkt5 X receptor recebe pkt0, envia ACK0 recebe pkt1, envia ACK1 recebe pkt3, ignora-o, envia ACK1 recebe pkt4, ignora-o, envia ACK1 recebe pkt5, ignora-o, envia ACK1 alarme reenvia pkt2 reenvia pkt3 reenvia pkt4 reenvia pkt5 Demonstração GBN recebe pkt2, envia ACK2 recebe pkt3, envia ACK3 recebe pkt4, envia ACK4 recebe pkt5, envia ACK5 53 Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 54 Comunicação na Internet 27
TCP: Transmission Control Protocol orientado a conexões: o estabelecimento da conexão inicializa estado do emissor e receptor antes da troca de dados controlo de fluxo: o emissor não sobrecarrega o receptor controlo de congestionamento: o emissor não sobrecarrega a ponto-a-ponto: o um emissor, um receptor sequência de bytes fiável: o sem delimitação de mensagens pipelined: o mecanismos de controlo de fluxo e congestionamento determinam o tamanho da janela conexão bidireccional: o fluxo de dados nos dois sentidos na mesma conexão 55 TCP: Estabelecimento de conexão É necessária a troca de 3 segmentos TCP para estabelecer uma conexão Flags SYN e SYN+ACK Estabelecimento dos números de sequência iniciais 56 Comunicação na Internet 28
TCP: Terminação de conexão É necessária a troca de 4 segmentos TCP para fechar uma conexão Fluxo bidireccional 2 operações de fecho (para cada sentido) 57 TCP: n os de sequência e ACKs Número de sequência: número do primeiro byte de dados do segmento ACK: número do próximo byte esperado do outro lado ACKs cumulativos Utilizador escreve C terminal confirma recepção do C ecoado Terminal A Terminal B terminal confirma recepção de C e ecoa-o tempo exemplo com terminal remoto 58 Comunicação na Internet 29
alarme (alarme) TCP: cenários de retransmissão Terminal A Terminal B Terminal A Terminal B (Seq=92 alarme) Seq=92 alarme X perda SendBase = 100 SendBase = 120 SendBase = 100 tempo SendBase = 120 alarme prematuro perda de confirmação tempo 59 TCP: cenários de retransmissão Terminal A Terminal B X perda SendBase = 120 tempo confirmação cumulativa 60 Comunicação na Internet 30
Controlo de fluxo no TCP Dados recebidos são armazenados num espaço próprio (buffer) até serem consumidos pela aplicação Aplicação pode consumi-los lentamente controlo de fluxo adaptar a taxa de envio à de consumo por parte da aplicação para evitar extravasar o buffer do receptor dados do IP janela do receptor espaço livre buffer do receptor dados recebidos e ainda não consumidos aplicação (processo) Controlo de fluxo no TCP Receptor anuncia o espaço livre de que dispõe (janela de recepção) Emissor limita a quantidade de dados em trânsito a essa janela 61 Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 62 Comunicação na Internet 31
atraso Congestionamento l in débito a que a aplicação envia os dados (sem cabeçalhos nem retransmissões) l out goodput o Os dados que a aplicação recebe por unidade de tempo (não contanto com cabeçalhos nem retransmissões) Terminal A l in : dados originais l out Terminal B 63 Causas e consequências do congestionamento: cenário 1 dois emissores, dois receptores um router, fila com capacidade ilimitada sem retransmissões Terminal B Terminal A lin : dados originais espaço ilimitado na fila de espera l out atrasos enormes por causa do congestionamento capacidade máxima atingível 64 Comunicação na Internet 32
Causas e consequências do congestionamento: cenário 2 um router, fila de capacidade limitada retransmissão pelo emissor de pacotes perdidos Terminal A lin : dados originais l' in : dados originais mais retransmissões l out Terminal B espaço limitado na fila de espera 65 Causas e consequências do congestionamento: cenário 2 Omnisciente: l in = l out o emissor adivinha se o router tem espaço na fila de espera e só transmite se tiver (A) retransmissões perfeitas (apenas quando há perdas): l in = l out o emissor só retransmite pacotes que realmente se perderam (aprox. temporizador muito longo) (B) retransmissões desnecessárias de pacotes atrasados tornam, em relação ao caso perfeito, l in maior para o mesmo l out o Ex.: cada pacote é transmitido, em média, duas vezes (C) R/2 R/2 R/2 R/3 l out l out l out R/4 R/2 R/2 R/2 l in l in l (A) (B) in (C) 66 Comunicação na Internet 33
Causas e consequências do congestionamento: cenário 3 quatro emissors caminhos com + que 1 salto retransmissões por temporizador Terminal A Q: o que acontece quando l in e l in aumentam? lin : dados originais l' in : dados originais mais retransmissões espaço limitado na fila de espera Terminal B l out 67 Causas e consequências do congestionamento: cenário 3 Mais uma consequência do congestionamento: Quando se perde um pacote, a capacidade utilizada a montante para o transmitir foi desperdiçada! 68 Comunicação na Internet 34
janela de congestionamento Controlo de Congestionamento Sintomas de congestionamento: Q? oatrasos elevados (filas de espera nos routers) opacotes perdidos (extravasamento das filas) Controlo de congestionamento: adaptar a taxa de emissão à capacidade disponível na o Não tem nada que ver com o controlo de fluxo! 69 Controlo de Congestionamento no TCP: additive increase, multiplicative decrease (AIMD) Princípio: aumentar a taxa de transmissão gradualmente até à ocorrência de perdas apalpar terreno o additive increase: aumentar a janela de congestionamento (CongWin) em 1 MSS* por RTT até ocorrer perda o multiplicative decrease: reduzir CongWin a metade quando ocorre uma perda congestion window 24 Kbytes 16 Kbytes 8 Kbytes * MSS = tamanho máximo dum segmento tempo 70 time Comunicação na Internet 35
Equidade no TCP Objectivo: se uma ligação de estrangulamento com capacidade R é partilhado por K sessões TCP, cada uma deve, idealmente, ter débito médio R/K Conexão TCP 1 Conexão TCP 2 ligação de estrangulamento com capacidade R 71 Porque razão é o TCP justo? Duas sessões a competir pela capacidade da ligação: Crescimento linear nas duas conexões recta com declive 1 Decrescimento multiplicativo reduz o débito proporcionalmente R distribuição equitativa da capacidade perda: redução das janelas a metade crescimento linear perda: redução das janelas a metade crescimento linear Débito da conexão 1 R 72 Comunicação na Internet 36
Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 73 Camada de Rede transportar segmentos da máquina de origem para a de destino encapsula os segmentos em datagramas no lado do emissor no receptor, entrega segmentos à camada de transporte protocolos da camada de em todos os terminais e routers o router examina os cabeçalhos de todos os datagramas IP que o atravessam aplicação transporte aplicação transporte 74 Comunicação na Internet 37
Duas funções-chave da camada de reenvio: passagem dos pacotes da entrada do router para a saída adequada encaminhamento: determinação da rota seguida pelos pacotes da origem ao destino o algoritmos de encaminhamento Analogia: encaminhamento: planeamento de uma viagem da origem ao destino reenvio: processo de passagem por um ponto de ligação (e.g., do metro para o autocarro) 75 Interacção entre encaminhamento e reenvio algoritmo de encaminhamento tabela local de encam. valor no cab. lig. saída 0100 0101 0111 1001 3 2 2 1 valor no cabeçalho do pacote que chega 0111 3 2 1 76 Comunicação na Internet 38
Encaixe do prefixo mais longo 4 mil milhões de endereços possíveis no IPv4 o Impraticável manter tabela com todos Solução: agrupar destinos com prefixo idêntico o Usar entrada com prefixo mais longo (mais específica) de entre as que encaixam Encaixe do prefixo Interface de saída 11001000 00010111 00010 0 11001000 00010111 00011000 1 11001000 00010111 00011 2 senão (prefixo vazio) 3 Exemplos DA: 11001000 00010111 00010110 10100001 DA: 11001000 00010111 00011000 10101010 Que interface? Que interface? 3,4 x 10 38 em IPv6 77 A camada de na Internet Funções da camada de nos routers e terminais: camadada de transporte: TCP, UDP camada de Protocolos de encaminhamento selecção de percursos RIP, OSPF*, BGP tabela de encaminhamento Protocolo IP endereçamento formato dos datagramas tratamento dos pacotes Protocolo ICMP relatórios de erro sinalização entre routers camada de ligação lógica camada de ligação física * Também colocado na camada lógica 2-78 Comunicação na Internet 39
Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 79 Endereçamento IP: introdução Endereço IP: identificador de 32 bits para interface de o os routers têm múltiplas interfaces o os terminais normalmente apenas uma o um endereço IP por cada interface decimal 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.1.3 223.1.3.1 223.1.3.27 binário 223.1.2.2 223.1.3.2 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1 80 Comunicação na Internet 40
Sub-s Endereço IP: o parte de sub (bits mais significativos) o parte de nó (bits menos significativos) O que é uma sub? o conjunto de interfaces com a mesma parte de sub do endereço IP o nós podem atingir-se fisicamente sem necessidade de intervenção de um router 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 223.1.2.2 223.1.1.3 223.1.3.27 sub 223.1.3.1 223.1.3.2 constituída por 3 sub-s 81 Endereçamento IP: CIDR CIDR: Classless InterDomain Routing o parte de sub de comprimento arbitrário o formato: a.b.c.d/x, onde x é o nº de bits na parte de sub parte de sub 11001000 00010111 00010000 00000000 200.23.16.0/23 parte do nó 82 Comunicação na Internet 41
Encaminhamento Tabelas Net 1 Net 2 R2 Net 3 Net 4 R1 Destino Net 1 Next Hop R1 R3 Net 2 Entrega directa Net 5 Net 3 Entrega directa Net 4 R3 Net 5 R1 14.0.0. 0 14.0.0.1 145.12.0.1 145.12.0.7 192.170.1.1 192.170.1.7 192.170.20.1 R2 192.170.20.0 145.12.0.0 192.170.1.0 R1 81.0.0.1 Destino Máscara Next Hop R3 14.0.0.0 255.0.0.0 145.12.0.1 81.0.0.0 145.12.0.0 255.255.0.0 Entrega directa 192.170.1.0 255.255.255.0 Entrega directa 192.170.20.0 255.255.255.0 192.170.1.7 81.0.0.0 255.0.0.0 145.12.0.1 Arq. de Redes - Pedro Brandão 2005/06 83 Sumário Camada de aplicação o Princípios das aplicações em o Web e HTTP o Correio electrónico o Serviço de nomes Camada de transporte o Serviços da camada de transporte o Transferência fiável o TCP o Controlo de congestionamento Camada de o Objectivo e funções o Internet Protocol (IP) o NAT 84 Comunicação na Internet 42
NAT: Motivação Escassez de endereços IPs o Pequenas / médias empresas com ligação ADSL, cabo querem IPs para as suas máquinas (também utilizadores domésticos). o Cada um pode ter mais do que uma máquina por trás. 85 Utilização Endereços privados não são permitidos na internet. Routers não fazem encaminhamento destes IPs o 10.0.0.0 10.255.255.255 /8 o 172.16.0.0 172.31.255.255 /12 o 192.168.0.0-192.168.255.255 /24 Datagramas com origem (ou destino) nesta têm o endereço de origem (destino) na gama 193.34.56.200 internet 192.168.100.0/24 Todos os datagrams que saem da local têm o 195.170.3.45 192.168.100.0/24 mesmo endereço IP de origem: 193.34.56.200 192.168.100.0/24 86 Comunicação na Internet 43
Vantagens Utilização de endereços privados nas Intranets Possibilidade de fusão entre s com endereços duplicados Podem mudar-se os endereços na local sem necessidade de notificar o mundo exterior Facilidade de mudança de ISP Os nós na local não são directamente endereçáveis a partir do exterior, o que pode ser uma vantagem do ponto de vista da segurança 87 Endereço Privado Porta privada Endereço externo Porta Externa Porta NAT Protocolo 192.168.100.20 2050 195.31.30.45 22 54053 tcp 192.168.100.25 4560 195.31.30.45 22 64056 tcp DA: 192.168.100.20 :2050 SA: 195.31.30.45 :22 Consultar tabela para porta 54053 193.34.56.205 NAT router Acrescentar entrada para porta 54053 internet DA: 195.31.30.45 :22 SA: 193.34.56.205 :54053 DA: 195.31.30.45 :22 SA: 193.34.56.205 :64056 192.168.100.0/24 192.168.100.25 DA: 195.31.30.45 :22 SA: 192.168.100.25 :4560 DA: 195.31.30.45 :22 SA: 192.168.100.20 :2050 192.168.100.20 195.31.30.45 DA: 193.34.56.205 :54053 SA: 195.31.30.45 :22 88 Comunicação na Internet 44
Problema da travessia do NAT um cliente quer ligar-se ao servidor com o endereço 192.168.100.20 o o endereço 192.168.100.20 é local à LAN (o cliente não pode usá-lo como endereço de destino) o apenas visível externamente o endereço NAT: 193.34.56.205 uma solução possível: configuração estática no router NAT para encaminhar conexões iniciadas de fora para uma dada porta para o servidor 2-89 Endereço Privado Porta privada Endereço externo Porta Externa Porta NAT Protocolo 192.168.100.20 22 7022 tcp 192.168.100.25 80 9080 tcp DA: 192.168.100.20 :22 SA: 195.31.30.45 :6899 Consultar tabela para porta 7022 193.34.56.205 NAT router internet 192.168.100.0/24 DA: 193.34.56.205:7022 SA: 195.31.30.45 :6899 192.168.100.25 192.168.100.20 195.31.30.45 90 Comunicação na Internet 45
NAT: Objecções Existem várias objecções à utilização de NAT: Endereço IP não identifica univocamente uma máquina. Connectionless para connection-oriented: caixas NAT têm de manter a informação sobre as conexões. Caixa NAT modifica a camada IP baseado na assunção da formatação da camada superior (quebra das regras de camadas protocolares). Problemas para as aplicações Peer to Peer Ver RFC 2993 Architectural Implications of NAT 91 FIM DA COMUNICAÇÃO NA INTERNET Comunicação na Internet 46