Post on 30-Nov-2018
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 1
Comunicação na Internet
Telemedicina e e-Saúde
2012/13
Pedro Brandão
Referências
Estes slides são baseados nos slides fornecidos com o livro “Computer Networking: A Top Down Approach 4th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2007”
o Tendo alterações por Prof Rui Prior e Pedro Brandão
Telesaude 12/13 - Com. na Internet - pbrandao 2
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 2
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - 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”
Telesaude 12/13 - 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 2012/2013
Comunicação na Internet 3
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 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
Telesaude 12/13 - Com. na Internet - pbrandao 2-5
Arquitecturas aplicacionais
Cliente-servidor
Peer-to-peer (P2P)
Híbridas de cliente-servidor e P2P
Telesaude 12/13 - Com. na Internet - pbrandao 2-6
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 4
Cliente – Servidor
servidor: o sempre ligado o endereço IP estático
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
diretamente com outros clientes
Telesaude 12/13 - Com. na Internet - pbrandao 7
cliente/servidor
Peer-to-peer Pura
ausência de servidores
terminais comunicam diretamente entre si
os pares podem não estar sempre ligados e mudar de endereço IP
Telesaude 12/13 - Com. na Internet - pbrandao 8
peer-to-peer
Muito escalável, mas difícil de gerir…
Telemedicina e e-Saúde 2012/2013
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 arquiteturas: Cliente-Servidor vs. Peer-to-Peer
Telesaude 12/13 - Com. na Internet - pbrandao 9
Arquitetura Híbrida
Exemplo: Instant messaging (MSN, ...)
omensagens de texto enviadas diretamente (P2P)
o serviço central de deteção de presença e localização
• o utilizador regista o seu endereço IP no servidor central quando se liga
• o utilizador contata o servidor central para descobrir os endereços IP dos amigos
Telesaude 12/13 - Com. na Internet - pbrandao 10
Telemedicina e e-Saúde 2012/2013
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
Telesaude 12/13 - Com. na Internet - pbrandao
As aplicações P2P funcionam simultaneamente como clientes e servidores
Cliente: processo que inicia ativamente a comunicação Servidor: processo que espera passivamente ser contatado
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
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
Telesaude 12/13 - Com. na Internet - pbrandao 12
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 7
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ínimo o Nem todas as aplicações necessitam
de tudo isto...
Telesaude 12/13 - Com. na Internet - pbrandao
Serviços de transporte usados pelas aplicações na Internet
13
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - Com. na Internet - pbrandao 14
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 8
HTTP: hypertext transfer protocol
Protocolo de camada de aplicação na web
modelo cliente/servidor
o cliente: browser que pede, recebe e mostra os objetos ao utilizador
o servidor: envia os objetos em resposta aos pedidos do browser
PC com Firefox
Servidor Apache
Mac com Safari
Telesaude 12/13 - Com. na Internet - pbrandao
HTTP — Panorama geral
15
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
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
Telesaude 12/13 - Com. na Internet - pbrandao 16
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 9
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/5.0
Connection: close
Accept-language: pt
linha de pedido
cabeçalhos
Linha vazia indica fim da mensagem
Telesaude 12/13 - Com. na Internet - pbrandao
(mudança de linha extra)
17
Exemplo
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 estado e correspondente
descrição)
cabeçalhos
linha vazia
dados (e.g., o ficheiro HTML
pedido)
Telesaude 12/13 - Com. na Internet - pbrandao
dados dados dados dados...
Mensagem HTTP de resposta
18
Exemplo
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 10
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 objeto 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
Telesaude 12/13 - Com. na Internet - pbrandao 19
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 servidor www.dcc.fc.up.pt. Tudo o que se escrever será enviado para 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 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
Telesaude 12/13 - Com. na Internet - pbrandao 20
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 11
Web caches (proxy server)
utilizador configura browser para usar o proxy
o browser envia todos os pedidos HTTP ao proxy
objeto está na cache: proxy devolve-o directamente
caso contrário, pede objeto ao servidor original, devolve-o ao browser e guarda cópia local
Telesaude 12/13 - Com. na Internet - pbrandao 21
cliente
Proxy
cliente servidor original
servidor original
objetivo: satisfazer pedidos dos clientes sem recorrer ao servidor original (maior rapidez e poupança de recursos de rede)
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - Com. na Internet - pbrandao 22
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 12
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
Telesaude 12/13 - Com. na Internet - pbrandao
servidor de e-mail
SMTP
SMTP
SMTP
fila de men- sagens a enviar
caixa de correio de um utilizador
servidor de e-mail
servidor de e-mail
agente de util.
agente de util.
agente de util.
agente de util.
agente de util.
agente de util.
23
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
Telesaude 12/13 - Com. na Internet - pbrandao
servidor de e-mail
servidor de e-mail
1
2 3 4 5 6
agente de util.
agente de util.
UA – User Agent
24
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 13
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
Telesaude 12/13 - Com. na Internet - pbrandao 25
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 email do emissor
SMTP SMTP protocolo de acesso
servidor de email do destinatário
Telesaude 12/13 - Com. na Internet - pbrandao 26
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 14
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - Com. na Internet - pbrandao 27
DNS: Domain Name System
Pessoas: múltiplos identificadores o 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
Telesaude 12/13 - Com. na Internet - pbrandao 28
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 15
Base de Dados Distribuída e Hierárquica O cliente precisa de obter o IP de www.amazon.com. 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
Telesaude 12/13 - Com. na Internet - pbrandao 29
Servidores DNS de raiz
Servidores DNS de com
Serv. DNS
cmu.edu
Serv. DNS
mit.edu Serv. DNS
google.com
Serv. DNS
amazon.com
Serv. DNS
pbs.org
Servidores DNS de org Servidores DNS de edu
máquina que faz o pedido
khao.dcc.fc.up.pt
www.mit.edu
servidor DNS de raiz
servidor DNS local dns.dcc.fc.up.pt
1
2 3
4
5
6
servidor DNS com autoridade ns.mit.edu
7 8
servidor DNS TLD
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
Telesaude 12/13 - Com. na Internet - pbrandao 30
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 16
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - Com. na Internet - pbrandao 31
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 rede
o receptor: reconstruir mensagens a partir dos segmentos e passá-las à camada de aplicação
Telesaude 12/13 - Com. na Internet - pbrandao
applicação transporte
rede lig. lógica lig. física
applicação transporte
rede lig. lógica lig. física
32
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 17
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
Telesaude 12/13 - Com. na Internet - pbrandao
applicação transporte
rede lig. lógica lig. física
rede lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
applicação transporte
rede lig. lógica lig. física
33
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 processos o 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
Telesaude 12/13 - Com. na Internet - pbrandao 34
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 18
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
P2 P3 P4 P1
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últiplos processos e adicionar cabe- çalhos (que depois são usados para desmultiplexar)
Multiplex. no emissor:
Telesaude 12/13 - Com. na Internet - pbrandao 35
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
Telesaude 12/13 - Com. na Internet - pbrandao
porta de orig. porta de dest.
32 bits
dados da aplicação
(mensagem)
outros campos do cabeçalho
formato dos segmentos TCP/UDP
36
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 19
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
Telesaude 12/13 - Com. na Internet - pbrandao
objetivo: detectar “erros” (e.g., bits invertidos) no segmento recebido
Pode haver erros não detectados, mas a
probabilidade é muito baixa…
37
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
Telesaude 12/13 - 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
38
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 20
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!
Telesaude 12/13 - Com. na Internet - pbrandao
porta de orig. porta de dest.
32 bits
tamanho soma de controlo
dados da aplicação
(mensagem)
formato dum segmento UDP
Mais sobre o UDP
39
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - Com. na Internet - pbrandao 40
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 21
Telesaude 12/13 - Com. na Internet - pbrandao
Princípios da transferência fiável
Processo emissor
Processo receptor
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
Processo emissor
dados
Processo receptor
dados
b) Implementação
Cam
ada
aplic
ação
Cam
ada
tran
spo
rte
41
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
Telesaude 12/13 - Com. na Internet - pbrandao 42
O emissor envia um pacote e espera pela resposta do receptor
stop and wait
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 22
stop-and-wait: ausência de perdas
Telesaude 12/13 - Com. na Internet - pbrandao 43
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
stop-and-wait: perda dum pacote
Telesaude 12/13 - Com. na Internet - pbrandao 44
emissor receptor
envia pkt0 pkt0
ACK0 pkt1 recebe ACK0, envia pkt1
recebe ACK1, envia pkt2
recebe pkt0, envia ACK0
recebe pkt1, envia ACK1
recebe pkt2, envia ACK2
pkt1
ACK1 pkt2
ACK2
...
X perdido
alarme, reenvia pkt1
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 23
stop-and-wait: perda dum ACK
Telesaude 12/13 - Com. na Internet - pbrandao 45
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
ACK1 X
perdido
recebe pkt1, detecta dup., envia ACK1 alarme, reenvia pkt1
stop-and-wait: alarme prematuro
Telesaude 12/13 - Com. na Internet - pbrandao 46
emissor receptor
envia pkt0 pkt0
ACK0 recebe 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
ACK1 pkt2 ACK1
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 24
transmissão do 1º bit do pacote, t = 0
emissor
receptor
RTT
trans. do último bit do pacote, t = L / R
chegada do primeiro bit chegada do último, envio do
ACK
chegada do ACK, envio do
pacote seguinte, t = RTT + L / R
Telesaude 12/13 - Com. na Internet - pbrandao
Operação do stop-and-wait
47
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:
Telesaude 12/13 - 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.027% 0.00027008.30
008.0
ms
ms
RLRTT
RLUemissor
48
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 25
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
Telesaude 12/13 - Com. na Internet - pbrandao
Pipelining: maior utilização
0.08% 0.0008008.30
008.033
ms
ms
RLRTT
RLUemissor
49
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 tempori-zador 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 pa-cotes individualmente
Emissor mantém um temporizador por cada pacote não confirmado o Se expirar, retransmite
apenas esse pacote
Telesaude 12/13 - Com. na Internet - pbrandao 50
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 26
Pipelining: Go-Back-N Emissor:
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 de tamanho N
já confirmados
enviados mas não confirmados
disponíveis mas não enviados
indisponíveis
Telesaude 12/13 - Com. na Internet - pbrandao 51
Go-Back-N em acção emissor receptor
envia pkt0
envia pkt2
recebe pkt0, envia ACK0
recebe pkt1, envia ACK1 X
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
alarme recebe pkt2, envia ACK2
recebe pkt3, envia ACK3
recebe pkt4, envia ACK4
recebe pkt5, envia ACK5
Demonstração GBN
Telesaude 12/13 - Com. na Internet - pbrandao 52
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 27
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - Com. na Internet - pbrandao 53
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
Telesaude 12/13 - Com. na Internet - pbrandao
TCP: Transmission Control Protocol
54
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 28
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
Telesaude 12/13 - Com. na Internet - pbrandao 55
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)
Telesaude 12/13 - Com. na Internet - pbrandao 56
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 29
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
Telesaude 12/13 - Com. na Internet - pbrandao
Terminal A Terminal B
Utilizador escreve ‘C’
terminal confirma recepção
do ‘C’ ecoado
terminal confirma recepção de ‘C’ e ecoa-o
tempo exemplo com terminal remoto
57
TCP: cenários de retransmissão
Terminal A
tempo alarme prematuro
Terminal B Terminal A
perda
perda de confirmação
Terminal B
X alar
me
tempo
(Seq
=92
alar
me)
Se
q=9
2 al
arm
e
SendBase = 100
SendBase = 120
SendBase = 120
SendBase = 100
Telesaude 12/13 - Com. na Internet - pbrandao 58
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 30
TCP: cenários de retransmissão
Terminal A
perda
confirmação cumulativa
Terminal B
X (ala
rme)
tempo
SendBase = 120
Telesaude 12/13 - Com. na Internet - pbrandao 59
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
Telesaude 12/13 - Com. na Internet - pbrandao 60
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 31
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - Com. na Internet - pbrandao 61
Congestionamento lin 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)
Telesaude 12/13 - Com. na Internet - pbrandao 62
Terminal A
lin : dados originais
Terminal B
lout
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 32
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
atr
aso
Telesaude 12/13 - Com. na Internet - pbrandao
Causas e consequências do congestionamento: cenário 1
63
Causas e consequências do congestionamento: cenário 2 um router, fila de capacidade limitada
retransmissão pelo emissor de pacotes perdidos
Telesaude 12/13 - Com. na Internet - pbrandao
espaço limitado na fila de espera
Terminal A lin : dados originais
Terminal B
lout
l'in : dados originais mais retransmissões
64
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 33
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)
Telesaude 12/13 - Com. na Internet - pbrandao 65
R/2
R/2 lin
lout
(A)
R/2
R/2 lin
lout
R/3
(B)
R/2
R/2 lin
lout
R/4
(C)
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 na fila de espera
Terminal A lin : dados originais
Terminal B lout
l'in : dados originais mais retransmissões
Telesaude 12/13 - Com. na Internet - pbrandao 66
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 34
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!
Telesaude 12/13 - Com. na Internet - pbrandao 67
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!
Telesaude 12/13 - Com. na Internet - pbrandao 68
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 35
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
Telesaude 12/13 - Com. na Internet - pbrandao 69
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion
window
tempo
janela
de c
ongestio
nam
ento
* MSS = tamanho máximo dum segmento
objetivo: 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 estrangulamento com capacidade R
Conexão TCP 2
Equidade no TCP
Telesaude 12/13 - Com. na Internet - pbrandao 70
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 36
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 linear perda: redução das janelas a metade
crescimento linear perda: redução das janelas a metade
Telesaude 12/13 - Com. na Internet - pbrandao 71
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - Com. na Internet - pbrandao 72
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 37
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
Telesaude 12/13 - Com. na Internet - pbrandao 73
aplicação transporte
rede lig. lógica lig. física
aplicação transporte
rede lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
rede
lig. lógica lig. física
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)
Telesaude 12/13 - Com. na Internet - pbrandao 74
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 38
1
2 3
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
Telesaude 12/13 - Com. na Internet - pbrandao 75
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
Telesaude 12/13 - Com. na Internet - pbrandao 76
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 em IPv6
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 39
A camada de rede na Internet
Telesaude 12/13 - Com. na Internet - pbrandao 2-77
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
camada de rede
Protocolos de encaminhamento • selecção de percursos • RIP, OSPF*, BGP
tabela de encaminhamento
* Também colocado na camada lógica
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - Com. na Internet - pbrandao 78
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 40
Endereçamento IP: introdução
Endereço IP: identifi- cador de 32 bits para interface de rede o os routers têm múltiplas
interfaces
o os terminais normalmente apenas uma
o um endereço IP por cada interface
Telesaude 12/13 - 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.2 223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 1 1
decimal binário
79
128 bits em IPv6
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
Telesaude 12/13 - 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.2 223.1.3.1
223.1.3.27
rede constituída por 3 sub-redes
subrede
80
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 41
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
Telesaude 12/13 - Com. na Internet - pbrandao
parte de subrede
parte do nó
81
Encaminhamento – Tabelas
Telesaude 12/13 - Com. na Internet - pbrandao 82
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.1 14.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
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 42
Sumário
Camada de aplicação o Princípios das aplicações
em rede 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 rede o objetivo e funções o Internet Protocol (IP) o NAT
Telesaude 12/13 - Com. na Internet - pbrandao 83
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.
Telesaude 12/13 - Com. na Internet - pbrandao 84
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 43
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
Telesaude 12/13 - Com. na Internet - pbrandao 85
192.168.100.0/24 192.168.100.0/24
195.170.3.45 193.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
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
Telesaude 12/13 - Com. na Internet - pbrandao 86
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 44
Telesaude 12/13 - Com. na Internet - pbrandao
192.168.100.0/24
195.31.30.45
193.34.56.205 internet
192.168.100.20
NAT router
DA: 195.31.30.45 :22 SA: 192.168.100.20 :2050
•Acrescentar entrada para porta 54053
192.168.100.25
DA: 195.31.30.45 :22 SA: 193.34.56.205 :54053
DA: 193.34.56.205 :54053 SA: 195.31.30.45 :22
DA: 192.168.100.20 :2050 SA: 195.31.30.45 :22
DA: 195.31.30.45 :22 SA: 192.168.100.25 :4560
DA: 195.31.30.45 :22 SA: 193.34.56.205 :64056
tcp 64056 22 195.31.30.45 4560 192.168.100.25
tcp 54053 22 195.31.30.45 2050 192.168.100.20
Protocolo Porta
NAT
Porta
Externa
Endereço
externo
Porta
privada
Endereço
Privado
• Consultar tabela para porta 54053
87
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
Telesaude 12/13 - Com. na Internet - pbrandao 2-88
Telemedicina e e-Saúde 2012/2013
Comunicação na Internet 45
Telesaude 12/13 - Com. na Internet - pbrandao 89
195.31.30.45
internet
192.168.100.20
NAT router
192.168.100.0/24
193.34.56.205
192.168.100.25
tcp 9080 80 192.168.100.25
tcp 7022 22 192.168.100.20
Protocolo Porta
NAT
Porta
Externa
Endereço
externo
Porta
privada
Endereço
Privado
DA: 193.34.56.205:7022 SA: 195.31.30.45 :6899
• Consultar tabela para porta 7022 DA: 192.168.100.20 :22
SA: 195.31.30.45 :6899
NAT: Objecções
Existem várias objecções à utilização de NAT: o Endereço IP não identifica univocamente uma
máquina. o Connectionless para connection-oriented: caixas
NAT têm de manter a informação sobre as conexões.
o Caixa NAT modifica a camada IP baseado na assunção da formatação da camada superior (quebra das regras de camadas protocolares).
o Problemas para as aplicações “Peer to Peer” Ver RFC 2993 – Architectural Implications of
NAT
Telesaude 12/13 - Com. na Internet - pbrandao 90