comunicação na internet - fcuppbrandao/aulas/0910/telemed/slides/redes-2.pdf · telemedicina e...
TRANSCRIPT
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 1
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 “ComputerNetworking: A Top Down Approach 4th edition. Jim Kurose, Keith RossAddison-Wesley, April 2007”
Telemed 09/10 - Com. na Internet - pbrandao 2
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 2
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 3
Pilha protocolar da Internet(revisão) aplicação: aplicações em rede
transporte: transferência de dados entre processos
rede: encaminhamento dos datagramas entre a origem e o destino
ligação lógica: transferência de dados entre elementos de rede adjacentes
ligação física: bits no “cabo”
Telemed 09/10 - Com. na Internet - pbrandao 4
Física
Lógica
Rede
Transporte
Aplicação
Ethernet, 802.11, etc
Ethernet, 802.11 (WiFi), etc
IP, ICMP, IGMP, etc
TCP, UDP, etc
FTP, SMTP, HTTP, etc
Exemplos
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 3
Protocolo de aplicação define
Tipos de mensagens trocadaso e.g., pedido, resposta
Sintaxe das mensagenso que campos contêm e como se
separam os campos
Semântica das mensagenso significado da informação
contida nos diferentes campos
Regras de como e quando devem os processos responder às mensagens
Protocolos abertos:
possibilitam interope-raçã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
Telemed 09/10 - Com. na Internet - pbrandao2-5
Arquitecturas aplicacionais
Cliente-servidor
Peer-to-peer (P2P)
Híbridas de cliente-servidor e P2P
Telemed 09/10 - Com. na Internet - pbrandao 2-6
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 4
Cliente – Servidor
servidor: o sempre ligadoo endereço IP estático
cliente:o comunica com o servidoro não precisa de estar
sempre ligadoo pode ter endereço IP
dinâmicoo não comunica
directamente com outros clientes
Telemed 09/10 - Com. na Internet - pbrandao 7
cliente/servidor
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
Telemed 09/10 - Com. na Internet - pbrandao 8
peer-to-peer
Muito escalável, mas difícil de gerir…
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 5
0
0,5
1
1,5
2
2,5
3
3,5
0 5 10 15 20 25 30 35
Te
mp
o d
e d
istr
ibuiç
ão d
o fic
he
iro
Número de nós que pretendem o ficheiro
P2P
Client-Server
Comparação de arquitecturas:Cliente-Servidor vs. Peer-to-Peer
Telemed 09/10 - Com. na Internet - pbrandao 9
Arquitectura Híbrida
Exemplo: Instant messaging (MSN, ...)
omensagens 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
Telemed 09/10 - Com. na Internet - pbrandao 10
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 6
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
Telemed 09/10 - Com. na Internet - pbrandao
As aplicações P2P funcionam simultaneamente como clientes e servidores
Cliente: processo que inicia activamente a comunicação
Servidor: processo que espera passivamente ser contactado
11
Endereçamento de processos para poder receber
mensagens, um processodeve 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 paraidentificar de forma unívocao 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 daporta associado ao processo no terminal
Exemplos de portas:
Servidor web: 80 Servidor de email: 25
para enviar um pedido HTTP aoservidor web www.dcc.fc.up.pt:
Endereço IP:193.136.39.12
Porta: 80
Telemed 09/10 - Com. na Internet - pbrandao 12
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 7
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 portaassociado ao processo no terminal
Exemplos de portas:o Servidor web: 80o Servidor de email: 25
para enviar um pedido HTTP ao servidor webwww.dcc.fc.up.pt:o Endereço IP: 193.136.39.12o Porta: 80
Telemed 09/10 - Com. na Internet - pbrandao 13
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 rede 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ínimoo Nem todas as aplicações necessitam
de tudo isto...
Telemed 09/10 - Com. na Internet - pbrandao
Serviços de transporte usados pelas aplicações na Internet
14
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 8
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 15
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 comFirefox
ServidorApache
Mac comSafari
Telemed 09/10 - Com. na Internet - pbrandao
HTTP — Panorama geral
16
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 9
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 incon-sistentes e ter que ser ressincronizadas
aparte
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
Telemed 09/10 - Com. na Internet - pbrandao 17
Mensagem HTTP de pedido
dois tipos de mensagens HTTP: pedido e resposta
Pedido HTTP:o Texto simples (formato humanamente legível)
GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
User-agent: Mozilla/4.0
Connection: close
Accept-language: pt
linha de pedido
cabeçalhos
Linha vazia indica fim da mensagem
Telemed 09/10 - Com. na Internet - pbrandao
(mudança de linha extra)
18
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 10
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 de estado(código de estadoe correspondente
descrição)
cabeçalhos
linha vazia
dados (e.g., o ficheiro HTML
pedido)
Telemed 09/10 - Com. na Internet - pbrandao
dados dados dados dados...
Mensagem HTTP de resposta
19
Códigos de estado nas respostas HTTP
Enviados na primeira linha da resposta do servidorAlguns 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
Telemed 09/10 - Com. na Internet - pbrandao 20
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 11
Experimentar o HTTP à mão
1. Fazer telnet para um servidor web
Abre conexão TCP para a porta 80(porta HTTP padrão) no servidorwww.dcc.fc.up.pt.Tudo o que se escrever será enviadopara a porta 80 do www.dcc.fc.up.pt
telnet www.dcc.fc.up.pt 80
2. Escrever o pedido HTTP
GET /~pbrandao/index.html HTTP/1.1
Host: www.dcc.fc.up.pt
Ao escrever isto (carregar 2xno enter), vai-se enviar esteum pedido GET (básico mascompleto) ao servidor HTTP
3. Observar a mensagem de resposta devolvida peloservidor HTTP
Telemed 09/10 - Com. na Internet - pbrandao 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
Telemed 09/10 - Com. na Internet - pbrandao 22
cliente
Proxy
clienteservidororiginal
servidororiginal
Objectivo: satisfazer pedidos dos clientes sem recorrer ao servidor original (maior rapideze poupança de recursos de rede)
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 12
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 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
mensagenso “cliente”: servidor que
envia a mensagemo “servidor”: servidor que
recebe a mensagem
Telemed 09/10 - Com. na Internet - pbrandao
servidorde e-mail
SMTP
SMTP
SMTP
fila de men-sagens a enviar
caixa de correiode um utilizador
servidorde e-mail
servidorde e-mail
agentede util.
agentede util.
agentede util.
agentede util.
agentede util.
agentede util.
24
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 13
Cenário: Alice envia mensagem ao Bob
1) No UA, a Alice escreve o texto da mensagem e o endereço do destinatário [email protected]
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
Telemed 09/10 - Com. na Internet - pbrandao
servidorde e-mail
servidorde e-mail
1
2 3 4 56
agentede util.
agentede util.
UA – User Agent
25
Exemplo de comunicação SMTPS: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <[email protected]>
S: 250 [email protected]... Sender ok
C: RCPT TO: <[email protected]>
S: 250 [email protected] ... 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
Telemed 09/10 - Com. na Internet - pbrandao 26
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 14
Protocolos de acesso ao e-mail
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.
servidor de emaildo emissor
SMTP SMTP protocolode acesso
servidor de emaildo destinatário
Telemed 09/10 - Com. na Internet - pbrandao 27
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 28
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 15
DNS: Domain Name System
Pessoas: múltiplos identificadoreso Nos 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 extremi-dades da rede
Telemed 09/10 - Com. na Internet - pbrandao 29
Base de Dados Distribuída e HierárquicaO 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
Telemed 09/10 - Com. na Internet - pbrandao 30
Servidores DNS de raiz
Servidores DNS de com
Serv. DNS
cmu.edu
Serv. DNS
mit.eduServ. DNS
google.com
Serv. DNS
amazon.com
Serv. DNS
pbs.org
Servidores DNS de org Servidores DNS de edu
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 16
máquina que faz o pedidokhedo.dcc.fc.up.pt
www.mit.edu
servidor DNS de raiz
servidor DNS localdns.dcc.fc.up.pt
1
23
4
5
6
servidor DNS com autoridadens.mit.edu
78
servidor DNS TLD
Exemplo deresolução de nome
Máquina em dcc.fc.up.ptquer 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
Telemed 09/10 - Com. na Internet - pbrandao 31
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 32
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 17
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 terminaiso emissor: partir
mensagens de aplicação em segmentos, que passa à camada de rede
o receptor: reconstruir mensagens a partir dos segmentos e passá-las à camada de aplicação
Telemed 09/10 - Com. na Internet - pbrandao
applicaçãotransporte
redelig. lógicalig. física
applicaçãotransporte
redelig. lógicalig. física
33
Protocolos de transporte na Internet
entrega fiável e ordenada: TCPo estabelecimento de conexões
o controlo de congestionamento
o controlo de fluxo
entrega não fiável e sem garantia de ordem: UDPo 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
Telemed 09/10 - Com. na Internet - pbrandao
applicaçãotransporte
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
applicaçãotransporte
redelig. lógicalig. física
34
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 18
Camada de transporte vs. camada de rede camada de rede:
comunicação lógica entre máquinas
camada de transporte:comunicação lógica entre processoso usa o serviço da camada de
rede 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 rede = serviço dos CTT
protocolo de transporte = encarregados pela distribuição interna do correio
Telemed 09/10 - Com. na Internet - pbrandao 35
Multiplexagem/desmultiplexagem
applicação
transporte
rede
lig. lógica
lig. física
P1 applicação
transporte
rede
lig. lógica
lig. física
applicação
transporte
rede
lig. lógica
lig. física
P2P3 P4P1
máquina 1 máquina 2 máquina 3
= processo= socket
entrega dos segmentos rece-bidos ao processo correcto
Desmultiplex. no receptor:recolher dados de múltiplosprocessos e adicionar cabe-çalhos (que depois são usadospara desmultiplexar)
Multiplex. no emissor:
Telemed 09/10 - Com. na Internet - pbrandao 36
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 19
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
Telemed 09/10 - Com. na Internet - pbrandao
porta de orig. porta de dest.
32 bits
dados daaplicação
(mensagem)
outros camposdo cabeçalho
formato dos segmentosTCP/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:
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
Telemed 09/10 - Com. na Internet - pbrandao
Objectivo: detectar “erros” (e.g., bits invertidos) no segmento recebido
Pode haver erros não detectados, mas a
probabilidade é muito baixa…
38
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 20
UDP: User Datagram Protocol [RFC 768]
protocolo de transporte extremamente simples
serviço “melhor esforço”; os segmentos UDP podem:o perder-seo ser entregues à aplicação
fora de ordem sem conexões:
o cada segmento UDP é tratado de forma independente
Telemed 09/10 - Com. na Internet - pbrandao
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
frequentemente usado em aplicações multimédiao tolerantes a perdaso sensíveis ao débito ou atraso
outros usos para o UDPo DNS
transferência fiável sobre UDPo a fiabilidade tem que ser
implementada na camada de aplicação
o recuperação de erros específica da aplicação!
Telemed 09/10 - Com. na Internet - pbrandao
porta de orig. porta de dest.
32 bits
tamanho soma de controlo
dados daaplicação
(mensagem)
formato dum segmento UDP
Mais sobre o UDP
40
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 21
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 41
Telemed 09/10 - Com. na Internet - pbrandao
Princípios da transferência fiável
Processoemissor
Processoreceptor
Canal fiável
dados dados
a) serviço fornecido
Canal não-fiável
Protocolo de transferência de
dados fiável (emissor)
Protocolo de transf. de dados fiável
(receptor)
dados dados
pacote pacote
Processoemissor
dados
Processoreceptor
dados
b) Implementação
Cam
ada
aplic
ação
Cam
ada
tran
spo
rte
42
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 22
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 rede 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
Telemed 09/10 - Com. na Internet - pbrandao 43
O emissor envia um pacotee espera pela resposta doreceptor
stop and wait
stop-and-wait: ausência de perdas
Telemed 09/10 - Com. na Internet - pbrandao 44
emissor receptor
envia pkt0 pkt0
ACK0pkt1
ACK1
recebe ACK0, envia pkt1
recebe ACK1, envia pkt2 pkt2
ACK2
...
recebe pkt0, envia ACK0
recebe pkt1, envia ACK1
recebe pkt2, envia ACK2
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 23
stop-and-wait: perda dum pacote
Telemed 09/10 - Com. na Internet - pbrandao 45
emissor receptor
envia pkt0 pkt0
ACK0pkt1recebe ACK0, envia pkt1
recebe ACK1, envia pkt2
recebe pkt0, envia ACK0
recebe pkt1, envia ACK1
recebe pkt2, envia ACK2
pkt1
ACK1pkt2
ACK2
...
Xperdido
alarme, reenvia pkt1
stop-and-wait: perda dum ACK
Telemed 09/10 - Com. na Internet - pbrandao 46
emissor receptor
envia pkt0 pkt0
ACK0
pkt1
ACK1
recebe ACK0, envia pkt1
recebe ACK1, envia pkt2 pkt2
ACK2
...
recebe pkt0, envia ACK0
recebe pkt1, envia ACK1
recebe pkt2, envia ACK2
pkt1
ACK1X
perdido
recebe pkt1, detecta dup., envia ACK1alarme, reenvia pkt1
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 24
stop-and-wait: alarme prematuro
Telemed 09/10 - Com. na Internet - pbrandao 47
emissor receptor
envia pkt0 pkt0
ACK0recebe ACK0, envia pkt1
recebe ACK1, envia pkt2
recebe pkt0, envia ACK0
recebe pkt1, detecta dup., envia ACK1
recebe pkt2, envia ACK2
pkt1
ACK2
alarme, reenvia pkt1
pkt1
ACK1
recebe pkt1, envia ACK1
ACK1
recebe ACK1 (dup.), ignora-o
recebe ACK2, envia pkt3 pkt3
ACK3
...
recebe pkt3, envia ACK3
ACK1pkt2ACK1
transmissão do 1º bit do pacote, t = 0
emissor receptor
RTT
trans. do último bit do pacote, t = L / R
chegada do primeiro bitchegada do último, envio do ACK
chegada do ACK, envio do
pacote seguinte, t = RTT + L / R
Telemed 09/10 - Com. na Internet - pbrandao
0.00027008.30
008.0
ms
ms
RLRTT
RLUemissor
Operação do stop-and-wait
48
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 25
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:
Telemed 09/10 - Com. na Internet - pbrandao
Uemissor: utilização – fracção do tempo em que o emissor efectivamente está a transmitir
1KB pacote a cada 30 ms débito 33kB/s quando R= 1 Gbps o protocolo de rede limita o uso dos recursos físicos!!!
s 8bps10
bits80009
R
Ldtrans
Desempenho do stop-and-wait
0.00027008.30
008.0
ms
ms
RLRTT
RLUemissor
49
Utilização triplicou!
transmissão do 1º bit do pacote, t = 0
emissor receptor
RTT
trans. do último bit do pacote, t = L / R
chegada do 1º bit do 1º pacoteúltimo bit do 1º pacote, envio do ACK
chegada do ACK, envio do
pacote seguinte, t = RTT + L / R
último bit do 2º pacote, envio do ACKúltimo bit do 3º pacote, envio do ACK
Telemed 09/10 - Com. na Internet - pbrandao
Pipelining: maior utilização
0.0008008.30
008.033
ms
ms
RLRTT
RLUemissor
50
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 26
Protocolos com PipeliningGo-back-N: Emissor pode ter até N
pacotes em trânsito (sem receber ACK)
Receptor envia ACKscumulativoso Não envia ACK se houver
um “buraco”
Emissor tem tempori-zador para o pacote mais antigo ainda não confirmadoo Se expirar, retransmite esse
e todos os subsequentes
Selective Repeat:
Emissor pode ser até N pacotes em trânsito (sem receber ACK)
Receptor confirma pa-cotes individualmente
Emissor mantém um temporizador por cada pacote não confirmadoo Se expirar, retransmite
apenas esse pacote
Telemed 09/10 - Com. na Internet - pbrandao 51
Pipelining: Go-Back-NEmissor:
número de sequência no cabeçalho
“janela” de até N pacotes consecutivos não confirmados
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
base próx. nº de seq.
janela detamanho N
já confirmados
enviados mas nãoconfirmados
disponíveis masnão enviados
indisponíveis
Telemed 09/10 - Com. na Internet - pbrandao 52
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 27
Go-Back-N em acçãoemissor receptor
envia pkt0
envia pkt2
recebe pkt0, envia ACK0
recebe pkt1, envia ACK1X
envia pkt1
envia pkt3(espera)
recebe ACK 0, envia pkt4
recebe ACK1, envia pkt5
recebe pkt3, ignora-o, envia ACK1
reenvia pkt2
reenvia pkt3
reenvia pkt4
reenvia pkt5
recebe pkt4, ignora-o, envia ACK1
recebe pkt5, ignora-o, envia ACK1
alarmerecebe pkt2, envia ACK2
recebe pkt3, envia ACK3
recebe pkt4, envia ACK4
recebe pkt5, envia ACK5
Demonstração GBN
Telemed 09/10 - Com. na Internet - pbrandao 53
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 54
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 28
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 rede
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
Telemed 09/10 - Com. na Internet - pbrandao
TCP: Transmission Control Protocol
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
Telemed 09/10 - Com. na Internet - pbrandao 56
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 29
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)
Telemed 09/10 - Com. na Internet - pbrandao 57
TCP: nos 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
Telemed 09/10 - Com. na Internet - pbrandao
Terminal A Terminal B
Utilizadorescreve ‘C’
terminalconfirmarecepção
do ‘C’ ecoado
terminalconfirmarecepçãode ‘C’ eecoa-o
tempoexemplo com terminal remoto
58
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 30
TCP: cenários de retransmissão
Terminal A
tempoalarme prematuro
Terminal BTerminal A
perda
perda de confirmação
Terminal B
Xalar
me
tempo(S
eq=9
2 al
arm
e)Se
q=9
2 a
larm
e
SendBase= 100
SendBase = 120
SendBase = 120
SendBase = 100
Telemed 09/10 - Com. na Internet - pbrandao 59
TCP: cenários de retransmissão
Terminal A
perda
confirmação cumulativa
Terminal B
X(ala
rme)
tempo
SendBase = 120
Telemed 09/10 - Com. na Internet - pbrandao 60
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 31
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
adaptar a taxa de envio à de consumo por parte da aplicação
para evitar extravasar o buffer do receptor
controlo de fluxo
dados
do IP
aplicação
(processo)espaço
livre
dados rece-bidos e ain-da não con-
sumidos
janela do receptor
buffer do receptor
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
Telemed 09/10 - Com. na Internet - pbrandao 61
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 62
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 32
Congestionamentolin débito a que a aplicação envia os dados
(sem cabeçalhos nem retransmissões)lout goodput
o Os dados que a aplicação recebe por unidade de tempo (não contanto com cabeçalhos nem retransmissões)
Telemed 09/10 - Com. na Internet - pbrandao 63
Terminal A
lin : dados originais
Terminal B
lout
dois emissores, dois receptores
um router, fila com capacidade ilimitada
sem retransmissões
atrasos enormes por causa do congestionamento
capacidade máxima atingível
espaço ilimitado na fila de espera
Terminal A
lin : dados originais
Terminal B
lout
atraso
Telemed 09/10 - Com. na Internet - pbrandao
Causas e consequências do congestionamento: cenário 1
64
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 33
Causas e consequências do congestionamento: cenário 2 um router, fila de capacidade limitada
retransmissão pelo emissor de pacotes perdidos
Telemed 09/10 - Com. na Internet - pbrandao
espaço limitadona fila de espera
Terminal A lin : dados originais
Terminal B
lout
l'in : dados originaismais retransmissões
65
Causas e consequências do congestionamento: cenário 2 Omnisciente: lin = lout
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 = lout
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 lout
o Ex.: cada pacote é transmitido, em média, duas vezes (C)
Telemed 09/10 - Com. na Internet - pbrandao 66
R/2
R/2lin
lout
R/2
R/2lin
lout
R/2
R/2lin
lout
R/4
R/3
(A) (B) (C)
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 34
Q: o que acontece quando
lin e l’in aumentam?
Causas e consequências do congestionamento: cenário 3 quatro emissors
caminhos com + que 1 salto
retransmissões por tem-porizador
espaço limitado nafila de espera
Terminal Alin : dados originais
Terminal B lout
l'in : dados originaismais retransmissões
Telemed 09/10 - Com. na Internet - pbrandao 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!
Telemed 09/10 - Com. na Internet - pbrandao 68
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 35
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 rede
oNão tem nada que ver com o controlo de fluxo!
Telemed 09/10 - Com. na Internet - pbrandao 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 perdao multiplicative decrease: reduzir CongWin a metade quando
ocorre uma perda
Telemed 09/10 - Com. na Internet - pbrandao 70
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion
window
tempo
janela
de c
ongestio
nam
ento
* MSS = tamanho máximo dum segmento
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 36
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
ligação de estrangulamentocom capacidade R
Conexão TCP 2
Equidade no TCP
Telemed 09/10 - Com. na Internet - pbrandao 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
R
distribuição equitativa da capacidade
Débito da conexão 1
crescimento linearperda: redução das janelas a metade
crescimento linearperda: redução das janelas a metade
Telemed 09/10 - Com. na Internet - pbrandao 72
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 37
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 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 rede em todos os terminais e routers
o router examina os cabeçalhos de todos os datagramas IP que o atravessam
Telemed 09/10 - Com. na Internet - pbrandao 74
aplicaçãotransporte
redelig. lógicalig. física
aplicaçãotransporte
redelig. lógicalig. física
redelig. lógicalig. física rede
lig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. física
redelig. lógicalig. físicarede
lig. lógicalig. física
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 38
Duas funções-chave da camada de rede
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)
Telemed 09/10 - Com. na Internet - pbrandao 75
1
23
0111
valor no cabeçalho
do pacote que chega
algoritmo de
encaminhamento
tabela local de encam.
valor no cab. lig. saída
0100
0101
0111
1001
3
2
2
1
Interacção entre encaminhamento e reenvio
Telemed 09/10 - Com. na Internet - pbrandao 76
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 39
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ênticoo Usar entrada com prefixo mais longo (mais específica) de
entre as que encaixam
Telemed 09/10 - Com. na Internet - pbrandao 77
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
Que interface?
Que interface?DA: 11001000 00010111 00011000 10101010
DA: 11001000 00010111 00010110 10100001
3,4 x 1038 emIPv6
A camada de rede na Internet
Telemed 09/10 - Com. na Internet - pbrandao 2-78
Funções da camada de rede nos routers e terminais:
Protocolo IP• endereçamento• formato dos datagramas• tratamento dos pacotes
Protocolo ICMP• relatórios de erro• “sinalização” entre routers
camadada de transporte: TCP, UDP
camada de ligação lógica
camada de ligação física
camadade rede
Protocolos de encaminhamento• selecção de percursos• RIP, OSPF*, BGP
tabela deencaminhamento
* Também colocado na camada lógica
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 40
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 79
Endereçamento IP: introdução
Endereço IP: identifi-cador de 32 bits para interface de redeo os routers têm múltiplas
interfaces
o os terminais normalmente apenas uma
o um endereço IP por cada interface
Telemed 09/10 - Com. na Internet - pbrandao
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 11
decimal binário
80
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 41
Sub-redes
Endereço IP:o parte de subrede (bits mais
significativos)
o parte de nó (bits menos significativos)
O que é uma subrede?o conjunto de interfaces com a
mesma parte de subrede do endereço IP
o nós podem atingir-se fisicamente sem necessidade de intervenção de um router
Telemed 09/10 - Com. na Internet - pbrandao
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
rede constituída por 3 sub-redes
subrede
81
Endereçamento IP: CIDR
CIDR: Classless InterDomain Routing
o parte de subrede de comprimento arbitrário
o formato: a.b.c.d/x, onde x é o nº de bits na parte de subrede
11001000 00010111 00010000 00000000
200.23.16.0/23
Telemed 09/10 - Com. na Internet - pbrandao
parte desubrede
parte donó
82
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 42
Encaminhamento – Tabelas
Arq. de Redes - Pedro Brandão 2005/06 83
Net 1
R1
Net 2
R2
Net 3
R3
Net 4
Net 5
Destino Next Hop
Net 1 R1
Net 2 Entrega directa
Net 3 Entrega directa
Net 4 R3
Net 5 R1
14.0.0.0
R1
145.12.0.0
R2
192.170.1.0
R3
192.170.20.0
81.0.0.0
145.12.0.114.0.0.1
81.0.0.1
145.12.0.7 192.170.1.1 192.170.1.7 192.170.20.1
Destino Máscara Next Hop
14.0.0.0 255.0.0.0 145.12.0.1
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
Sumário
Camada de aplicaçãoo Princípios das aplicações
em redeo Web e HTTPo Correio electrónicoo Serviço de nomes
Camada de transporteo Serviços da camada de
transporteo Transferência fiávelo TCPo Controlo de
congestionamento
Camada de redeo Objectivo e funçõeso Internet Protocol (IP)o NAT
Telemed 09/10 - Com. na Internet - pbrandao 84
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 43
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.
Telemed 09/10 - Com. na Internet - pbrandao 85
Utilização Endereços privados não são permitidos na
internet. Routers não fazem encaminhamento destes IPso 10.0.0.0 – 10.255.255.255 /8o 172.16.0.0 – 172.31.255.255 /12o 192.168.0.0 - 192.168.255.255 /24
Telemed 09/10 - Com. na Internet - pbrandao 86
192.168.100.0/24 192.168.100.0/24
195.170.3.45193.34.56.200
internet
Datagramas com origem (ou destino) nesta rede têm o
endereço de origem (destino) na gama 192.168.100.0/24 Todos os datagrams que
saem da rede local têm o mesmo endereço IP de origem: 193.34.56.200
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 44
Vantagens
Utilização de endereços privados nas Intranets
Possibilidade de fusão entre redes com endereços duplicados
Podem mudar-se os endereços na rede local sem necessidade de notificar o mundo exterior
Facilidade de mudança de ISP
Os nós na rede 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
Telemed 09/10 - Com. na Internet - pbrandao 87
Telemed 09/10 - Com. na Internet - pbrandao
192.168.100.0/24
195.31.30.45
193.34.56.205internet
192.168.100.20
NAT router
DA: 195.31.30.45 :22SA: 192.168.100.20 :2050
•Acrescentar entrada para porta 54053
192.168.100.25
DA: 195.31.30.45 :22SA: 193.34.56.205 :54053
DA: 193.34.56.205 :54053SA: 195.31.30.45 :22
DA: 192.168.100.20 :2050SA: 195.31.30.45 :22
DA: 195.31.30.45 :22SA: 192.168.100.25 :4560
DA: 195.31.30.45 :22SA: 193.34.56.205 :64056
tcp6405622195.31.30.454560192.168.100.25
tcp5405322195.31.30.452050192.168.100.20
ProtocoloPorta
NAT
Porta
Externa
Endereço
externo
Porta
privada
Endereço
Privado
• Consultar tabela para porta 54053
88
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 45
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
Telemed 09/10 - Com. na Internet - pbrandao 2-89
Telemed 09/10 - Com. na Internet - pbrandao 90
195.31.30.45
internet
192.168.100.20
NAT router
192.168.100.0/24
193.34.56.205
192.168.100.25
tcp908080192.168.100.25
tcp702222192.168.100.20
ProtocoloPorta
NAT
Porta
Externa
Endereço
externo
Porta
privada
Endereço
Privado
DA: 193.34.56.205:7022SA: 195.31.30.45 :6899
• Consultar tabela paraporta 7022DA: 192.168.100.20 :22
SA: 195.31.30.45 :6899
Telemedicina e e-Saúde 2009/2010
Comunicação na Internet 46
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
Telemed 09/10 - Com. na Internet - pbrandao 91
FIM DACOMUNICAÇÃO NA INTERNET
Telemed 09/10 - Com. na Internet - pbrandao