o que é uma pdu?
• É uma camada de protocolo. Existem 7 PDU (Aplicação, apresentação, sessão, transporte, rede, enlace, física).
UDP x TCP
1: Introdução 3
Borda da rede: serviço orientado a conexão
Objetivo: transferência de dados entre sistemas.
• handshaking: setup (prepara para) transferência de dados– Alô, alô protocolo humano de
telefone– setup “estado” em dois hosts
se comunicando• TCP - Transmission Control
Protocol – Serviço orientado a conexões
da Internet
serviço TCP [RFC 793]• confiável, transferência de dados
ordenada byte-stream– perdas: acknowledgements
(reconhecimentos) e retransmissões
• controle de fluxo: – emissor não pode “oprimir”o
receptor• controle de congestão
– emissores “reduzem a taxa de envio” qdo a rede está congestionada
1: Introdução 4
Borda da rede: serviço sem conexão
Objetivo: transferência de dados entre sistemas finais– mesmo que o anterior!
• UDP - User Datagram Protocol [RFC 768]: serviço sem conexão da Internet– transferência de dados não-
confiável– sem controle de fluxo– sem controle de congestão
Aplics usando TCP: • HTTP (WWW), FTP (transf. arq.),
Telnet (login remoto), SMTP (email)
Aplics usando UDP:• streaming media,
teleconferencing, Internet telephony
2: Camada de aplicação 5
Serviços do protocolo de transporte da Internet
serviço TCP:• orientado a conexão: necessário
setup entre cliente e servidor• transporte confiável entre
processos emissor e receptor• controle de fluxo: emissor não
“inunda” receptor• controle de congestão: reduz taxa
do emissor quando rede está sobrecarregada
• não fornece: garantias de tempo, e largura de banda mínima
serviço UDP:• transferência de dados não
confiável entre processos emissor e receptor
• não fornece: setup de conexão, confiabilidade, controle de fluxo, controle de congestão, garantias de tempo e de largura de banda
2: Camada de aplicação 6
Internet aplics.: protocolos de aplic. e transporte
Aplicação
e-mailacesso a terminal remoto
Web transferência de arq.multimídia streaming
servidor de arq. remotoInternet telefonia
Protocolo da camadade aplicação
smtp [RFC 821]telnet [RFC 854]http [RFC 2068]ftp [RFC 959]proprietário(ex. RealNetorks)NFSproprietário(ex., Vocaltec)
Protocolo transporte subjacente
TCPTCPTCPTCPTCP ou UDP
TCP ou UDPtipicamente UDP
3: Camada de Transporte 7
UDP: User Datagram Protocol [RFC 768]
• Protocolo de transporte da Internet mínimo, “sem frescura”,
• Serviço “melhor esforço”, segmentos UDP podem ser:– perdidos– entregues à aplicação fora de
ordem do envio• sem conexão:
– não há “setup” UDP entre remetente, receptor
– tratamento independente de cada segmento UDP
Por quê existe um UDP?• elimina estabelecimento de
conexão (o que pode causar retardo)
• simples: não se mantém “estado” da conexão no remetente/receptor
• pequeno cabeçalho de segmento
• sem controle de congestionamento: UDP pode transmitir o mais rápido possível
Camadas de protocolos
1: Introdução 9
“Camadas” de protocolosRedes são complexas! • muitas “peças”:
– hosts– roteadores– vários tipos de links– aplicações– protocolos– hardware, software
Questão: Existe alguma esperança em organizar a estrutura de rede?
Ou pelo menos a discussão sobre redes?
1: Introdução 10
Por que usar camadas?Para lidar com sistemas complexos:• estrutura explícita permite identificar o relacionamento
entre peças do sistema complexo– modelo de referência em camadas facilita discussão
• modularização facilita manutenção e atualização do sistema– mudança na implementação de serviços de camadas
transparentes para o resto do sistema
• uso de camadas pode ser prejudicial?
1: Introdução 11
Ilustração da Comunicação no Modelo OSI
Apresentação
Sessão
Transporte
Rede
Enlace
Física
Apresentação
Sessão
Transporte
Rede
Enlace
Física
protocolo de aplicação
protocolo de apresentação
protocolo de sessão
protocolo de transporte
protocolo de rede
DADOS
processo receptor
meio de transmissão de dados
Aplicação
processo emissor
DADOS AH
DADOS PH
DADOS SH
DADOS TH
DADOS NH
DADOS DH
BITS
Aplicação
1: Introdução 12
Pilha de protocolos da Internet• aplicação: suporta aplicações de rede
– ftp, smtp, http• transporte: transferência de dados entre hosts
– tcp, udp• rede: roteamento de datagramas da origem para
destino– ip, protocolos de roteamento
• enlace: transferência de dados entre elementos de rede “vizinhos”– ppp, ethernet
• física: bits “no fio”
aplicação
transporte
rede
enlace
física
1: Introdução 13
Camadas: comunicação lógica
aplicaçãotransporte
redeenlacefísica
aplicaçãotransporte
redeenlacefísica aplicação
transporterede
enlacefísica
aplicaçãotransporte
redeenlacefísica
redeenlacefísica
Cada camada:• distribuída• “entidades”
implementam funções de camadas em cada nó
• entidades executam ações, trocam mensagens com seus pares
1: Introdução 14
Camadas: comunicação logica
aplicaçãotransport
redeenlacefísica
aplicaçãotransporte
redeenlacefísica aplicação
transporterede
enlacefísica
aplicaçãotransport
redeenlacefísica
redeenlacefísica
dados
dadosE.g.: transporte• pega dados da aplic.• adiciona endereço,
informação de confiabilidade p/ formar “datagrama”
• envia datagrama para seu par
• espera confirmação de recepção de seu par
• analogia: correio
dados
transporte
transporte
ack
1: Introdução 15
Camadas: comunicação física
aplicaçãotransporte
redeenlacefísica
aplicaçãotransporte
redeenlacefísica aplicação
transporterede
enlacefísica
aplicaçãotransporte
redeenlacefísica
redeenlacefísica
dados
dados
1: Introdução 16
Protocolo em camadas e dados
Cada camada recebe dados da camada acima• adiciona cabeçalho de informação para criar nova unidade
de dados• passa nova unidade de dados para camada abaixo
aplicaçãotransporte
redeenlacefísica
aplicaçãotransporte
redeenlacefísica
origem destino
MMMM
HtHtHnHtHnHl
MMMM
HtHtHnHtHnHl
mensagemsegmentodatagramaframe
Volta N e retransmissão seletiva
3: Camada de Transporte 18
Protocolos “dutados” (pipelined)Dutagem (pipelining): remetente admite múltiplos pacotes
“em trânsito”, ainda não reconhecidos– faixa de números de seqüência deve ser aumentada– buffers no remetente e/ou no receptor
• Duas formas genéricas de protocolos dutados: volta-N, retransmissão seletiva
3: Camada de Transporte 19
Volta-NRemetente:• no. de seq. de k-bits no cabeçalho do pacote• admite “janela” de até N pacotes consecutivos não reconhecidos
• ACK(n): reconhece todos pacotes, até e inclusive no. de seq n - “ACK cumulativo”o pode receber ACKs duplicados (veja receptor)
• temporizador para todos pacotes em trânsito• timeout(n): retransmite pacote n e todos os pacotes com no.
de seq maiores na janela
3: Camada de Transporte 20
Volta-N: remetente
3: Camada de Transporte 21
Volta-N: receptor
receptor simples:• usa apenas ACK: sempre envia ACK para pacote recebido
bem com o maior no. de seq. em-ordem– pode gerar ACKs duplicados– só precisa se lembrar do expectedseqnum
• pacote fora de ordem: – descarta (não armazena) -> receptor não usa buffers!– manda ACK de pacote com maior no. de seq em-ordem
expectedseqnum=expectedseqnum+1
3: Camada de Transporte 22
Volta-Nem ação
janela de 4
3: Camada de Transporte 23
Retransmissão seletiva
• receptor reconhece individualmente todos os pacotes recebidos corretamente– armazena pacotes no buffer, conforme precisa, para posterior
entrega em-ordem à camada superior
• remetente apenas re-envia pacotes para os quais ACK não recebido– temporizador de remetente para cada pacote sem ACK
• janela do remetente– N nos. de seq consecutivos – outra vez limita nos. de seq de pacotes enviados, mas ainda não
reconhecidos
3: Camada de Transporte 24
Retransmissão seletiva: janelas de remetente, receptor
3: Camada de Transporte 25
Retransmissão seletiva
dados de cima:• se próx. no. de seq na janela,
envia pacote
timeout(n):• reenvia pacote n, reiniciar
temporizador
ACK(n) em [sendbase,sendbase+N]:
• marca pacote n “recebido”• se n for menor pacote não
reconhecido, avança base da janela ao próx. no. de seq não reconhecido
pacote n em [rcvbase, rcvbase+N-1]
• envia ACK(n)• fora de ordem: bufferiza• em ordem: entrega (tb.
entrega pacotes em ordem no buffer), avança janela p/ próxima pacote ainda não recebido
pacote n em [rcvbase-N,rcvbase-1]
• ACK(n)senão: • ignora
receptorremetente
Informação cabeçalho
3: Camada de Transporte 27
Mais sobre UDP• muito utilizado para apls. de meios
contínuos (voz, vídeo)– tolerantes de perdas– sensíveis à taxa de transmissão
• outros usos de UDP (por quê?):– DNS (nomes)– SNMP (gerenciamento)
• transferência confiável com UDP: incluir confiabilidade na camada de aplicação– recuperação de erro específica
à apl.!
porta origem porta dest.32 bits
Dados de aplicação
(mensagem)
Formato do segmento UDP
comprimento checksum
Comprimento embytes do
segmento UDP,incluindo cabeçalho
3: Camada de Transporte 28
TCP: estrutura do segmento
no. porta origemno. porta dest 32 bits
dados daaplicação
(tam. variável)
número de seqüêncianúmero de
reconhecimentojanela receptorptr dados urg.checksum
FSRPAUtam.cab.
semuso
Opções (tam. variável)
URG: dados urgentes (pouco usados)
ACK: no. ACKválido
PSH: envia dados já(pouco usado)
RST, SYN, FIN:gestão de conexão
(comandos deestabelecimento,
liberação)
no. bytes rcpt queraceitar
contagem de dadospor bytes (não segmentos!)
checksum Internet
(como UDP)
algoritmo de Dijkstra
estado de enlace x vetor de distancia
4: Camada de Rede 30
Classificação de Algoritmos de Roteamento
Informação global ou descentralizada?Global:• todos roteadores têm info. completa de topologia, custos dos enlaces• algoritmos “estado de enlaces”
Decentralizada: • roteador conhece vizinhos diretos e custos até eles• processo iterativo de cálculo, troca de info. com vizinhos• algoritmos “vetor de distâncias”
4: Camada de Rede 31
Um algoritmo de roteamento de “estado de enlaces” (EE)
Algoritmo de Dijkstra• topologia da rede, custos dos enlaces
conhecidos por todos os nós– realizado através de “difusão do
estado dos enlaces” – todos os nós têm mesma info.
• calcula caminhos de menor custo de um nó (“origem”) para todos os demais– gera tabela de rotas para aquele
nó• iterativo: depois de k iterações,
sabemos menor custo p/ k destinos
Notação:• c(i,j): custo do enlace do nó i
ao nó j. custo é infinito se não forem vizinhos diretos
• D(V): valor corrente do custo do caminho da origem ao destino V
• p(V): nó antecessor no caminho da origem ao nó V, imediatamente antes de V
• N: conjunto de nós cujo caminho de menor custo já foi determinado
4: Camada de Rede 32
O algoritmo de Dijkstra
1 Inicialização: 2 N = {A} 3 para todos os nós V 4 se V for adjacente ao nó A 5 então D(V) = c(A,V) 6 senão D(V) = infinito 7 8 Repete9 determina W não contido em N tal que D(W) é o mínimo 10 adiciona W ao conjunto N 11 atualiza D(V) para todo V adjacente ao nó W e ainda não em N: 12 D(V) = min( D(V), D(W) + c(W,V) ) 13 /* novo custo ao nó V ou é o custo velho a V ou o custo do 14 menor caminho ao nó W, mais o custo de W a V */ 15 até que todos nós estejam em N
4: Camada de Rede 33
Algoritmo de Dijkstra: exemplo
Passo0
N inicialA
D(B),p(B)2,A
D(C),p(C)5,A
D(D),p(D)1,A
D(E),p(E)infinito
D(F),p(F)infinito
A
ED
CB
F2
21 3
1
12
53
5
4: Camada de Rede 34
Algoritmo de Dijkstra: exemplo
Passo01
N inicialA
AD
D(B),p(B)2,A2,A
D(C),p(C)5,A4,D
D(D),p(D)1,A
D(E),p(E)infinito
2,D
D(F),p(F)infinitoinfinito
A
ED
CB
F2
21 3
1
12
53
5
4: Camada de Rede 35
Algoritmo de Dijkstra: exemplo
Passo012
N inicialA
ADADE
D(B),p(B)2,A2,A2,A
D(C),p(C)5,A4,D3,E
D(D),p(D)1,A
D(E),p(E)infinito
2,D
D(F),p(F)infinitoinfinito
4,E
A
ED
CB
F2
21 3
1
12
53
5
4: Camada de Rede 36
Algoritmo de Dijkstra: exemplo
Passo0123
N inicialA
ADADE
ADEB
D(B),p(B)2,A2,A2,A
D(C),p(C)5,A4,D3,E3,E
D(D),p(D)1,A
D(E),p(E)infinito
2,D
D(F),p(F)infinitoinfinito
4,E4,E
A
ED
CB
F2
21 3
1
12
53
5
4: Camada de Rede 37
Algoritmo de Dijkstra: exemplo
Passo01234
N inicialA
ADADE
ADEBADEBC
D(B),p(B)2,A2,A2,A
D(C),p(C)5,A4,D3,E3,E
D(D),p(D)1,A
D(E),p(E)infinito
2,D
D(F),p(F)infinitoinfinito
4,E4,E4,E
A
ED
CB
F2
21 3
1
12
53
5
4: Camada de Rede 38
Algoritmo de Dijkstra: exemplo
Passo012345
N inicialA
ADADE
ADEBADEBC
ADEBCF
D(B),p(B)2,A2,A2,A
D(C),p(C)5,A4,D3,E3,E
D(D),p(D)1,A
D(E),p(E)infinito
2,D
D(F),p(F)infinitoinfinito
4,E4,E4,E
A
ED
CB
F2
21 3
1
12
53
5
4: Camada de Rede 39
Iterativo, assíncrono: cada iteração local causada por:
mudança do custo do enlace local mensagem do vizinho: mudança de
caminho de menor custo para algum destino
Distribuído: cada nó avisa a seus vizinhos apenas quando muda seu caminho
de menor custo para qualquer destino
os vizinhos então avisam a seus vizinhos, se for necessário
espera (mudança no custo de mensagem do vizinho)
recalcula tabela de distâncias
se mudou o caminho de menor custo para qq. destino, avisa vizinhos
Cada nó:
Um algoritmo de roteamento de “vetor de distâncias” (VD)
4: Camada de Rede 40
Algoritmo Vetor de Distâncias: exemplo
X Z12
7
Y
4: Camada de Rede 41
Tabela de distâncias gera tabela de rotas
D ()
A
B
C
D
A
1
7
6
4
B
14
8
9
11
D
5
5
4
2
Ecusto ao destino via
dest
ino
A
B
C
D
A,1
D,5
D,4
D,4
enlace de saídaa usar, custo
dest
ino
Tabela de distâncias Tabela de rotas
Endereçamento IP
4: Camada de Rede 43
Endereçamento IP: introdução• endereço IP: ident. de
32-bits para interface de estação, roteador
• interface: conexão entre estação, roteador e enlace físico– roteador típico tem
múltiplas interfaces– estação pode ter
múltiplas interfaces– endereço IP associado à
interface, não à estação ou roteador
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
4: Camada de Rede 44
Endereçamento IP• endereço IP:
– parte de rede (bits de mais alta ordem)
– parte de estação (bits de mais baixa ordem)
• O que é uma rede IP? (da perspectiva do endereço IP)– interfaces de dispositivos
com a mesma parte de rede nos seus endereços IP
– podem alcançar um ao outro sem passar por um roteador
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
Esta rede consiste de 3 redes IP(para endereços IP começando com 223, os primeiros 24 bits são a parte de rede)
LAN
4: Camada de Rede 45
Endereçamento IPComo achar as redes?• desassociar cada
interface do seu roteador, estação
• criar “ilhas” de redes isoladas
223.1.1.1
223.1.1.3
223.1.1.4
223.1.2.2223.1.2.1
223.1.2.6
223.1.3.2223.1.3.1
223.1.3.27
223.1.1.2
223.1.7.0
223.1.7.1223.1.8.0223.1.8.1
223.1.9.1
223.1.9.2
Sistema interligadoconsistindo de
seis redes
4: Camada de Rede 46
Endereços IP
0rede estação
10 rede estação
110 rede estação
1110 endereço multiponto
A
B
C
D
classe1.0.0.0 to127.255.255.255128.0.0.0 to191.255.255.255192.0.0.0 to223.255.255.255224.0.0.0 to239.255.255.255
32 bits
dada a noção de “rede”, vamos reexaminar endereços IP:endereçamento “baseado em classes”:
4: Camada de Rede 47
parte deestação
Endereçamento IP: CIDR• Endereçamento baseado em classes:
– uso ineficiente e esgotamento do espaço de endereços– p.ex., rede da classe B aloca endereços para 65K estações, mesmo se
houver apenas 2K estações nessa rede
• CIDR: Classless InterDomain Routing– parte de rede do endereço de comprimento arbitrário– formato de endereço: a.b.c.d/x, onde x é no. de bits na parte de rede
do endereço
11001000 00010111 00010000 00000000
partede rede
200.23.16.0/23
4: Camada de Rede 48
Endereços IP: como conseguir um?
Rede (parte de rede):• conseguir alocação a partir do espaço de
endereços do seu provedor IPBloco do 11001000 00010111 00010000 00000000 200.23.16.0/20 provedorOrganização 0 11001000 00010111 00010000 00000000 200.23.16.0/23
Organização 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organização 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. ….
Organização 7 11001000 00010111 00011110 00000000 200.23.30.0/23
4: Camada de Rede 49
Enviando um datagrama da origem ao destino
datagrama IP:
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
A
BE
aamposmisc
end. IPorigem
end. IP dest dados
datagrama permanece inalterado, enquanto passa da origem ao destino
campos de endereços de interesse aqui
rede dest. próx. rot. Nenlaces223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2
tabela de rotas em A
4: Camada de Rede 50
Enviando um datagrama da origem ao destino
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
A
BE
Supomos um datagrama IP originando em A, e endereçado a B:
procura endereço de rede de B
descobre que B é da mesma rede que A
camada de enlace remeterá datagrama diretamente para B num quadro da camada de enlace B e A estão diretamente
ligados
rede dest. próx. rot. Nenlaces223.1.1 1......
camposdiv. 223.1.1.1223.1.1.3dados
tabela de rotas em A
4: Camada de Rede 51
Enviando um datagrama da origem ao destino
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
A
BE
rede dest. próx. rot. Nenlaces......223.1.2 223.1.1.4 2
OrigemA, destino E: procura endereço de rede de
E E numa rede diferente
A, E não ligados diretamente
tabela de rotas: próximo roteador na rota para E é 223.1.1.4
camada de enlace envia datagrama ao roteador 223.1.1.4 num quadro da camada de enlace
datagrama chega a 223.1.1.4 continua…
camposdiv. 223.1.1.1223.1.2.2dados
tabela de rotas em A
4: Camada de Rede 52
Enviando um datagrama da origem ao destino
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
A
BE
Chegando a 223.1.1.4, destinado a 223.1.2.2
procura endereço de rede de E
E fica na mesma rede que a interface 223.1.2.9 do roteador roteador, E estão
diretamente ligados camada de enlace envia
datagrama p/ 223.1.2.2 dentro de quadro de camada de enlace via interface 223.1.2.9
datagrama chega a 223.1.2.2!!! (oba!)
camposdiv. 223.1.1.1223.1.2.2dados dest. rot. Nenl. interface
...223.1.2 - 1 223.1.2.9...
rede próx.
4: Camada de Rede 53
Formato do datagrama IP
ver comprimento
32 bits
dados (comprimento variável,
tipicamente um segmento TCP ou UDP)
ident. 16-bitschecksum Internet
sobre-vidaendereço IP de origem 32 bits
número da versão do protocolo IP
comprimento docabeçalho (bytes)
número máximode enlaces restantes
(decrementado a cada roteador)
parafragmentação/remontagem
comprimento total do datagrama(bytes)
protocolo da camadasuperior ao qual
entregar os dados
comp.cab
tipo deserviço
“tipo” dos dados (DS) bits início do fragmento
camadasuperior
endereço IP de destino 32 bitsOpções (se tiver) p.ex. temporizador,
registrar rotaseguida, especificarlista de roteadoresa visitar.
fragmentação de rede
4: Camada de Rede 55
IP: Fragmentação & Remontagem• cada enlace de rede tem MTU
(max.transmission unit) - maior tamanho possível de quadro neste enlace.– tipos diferentes de enlace têm
MTUs diferentes• datagrama IP muito grande
dividido (“fragmentado”) dentro da rede– um datagrama vira vários
datagramas– “remontado” apenas no
destino final– bits do cabeçalho IP usados
para identificar, ordenar fragmentos relacionados
fragmentação: entrada: um datagrama
grandesaída: 3 datagramas
menores
remontagem
4: Camada de Rede 56
IP: Fragmentação & Remontagem
ID=x
início=0
bit_frag=0
compr=4000
ID=x
início=0
bit_frag=1
compr=1500
ID=x
início=1480
bit_frag=1
compr=1500
ID=x
início=2960
bit_frag=0
compr=1040
um datagrama grande viravários datagramas menores
Sistemas autonomos
4: Camada de Rede 58
Roteamento na Internet• A Internet Global consiste de Sistemas Autonônomos (SAs)
interligados entre si:– SA Folha: empresa– SA de Trânsito: provedor
• Roteamento em dois níveis: – Intra-SA: administrador é responsável pela escolha– Inter-SA: padrão único
4: Camada de Rede 59
Roteamento Intra-SA
• Também conhecido como Interior Gateway Protocols (IGP) (protocolos de roteamento interno)
• Os IGPs mais comuns são:
– RIP: Routing Information Protocol
– OSPF: Open Shortest Path First
– IGRP: Interior Gateway Routing Protocol (proprietário da Cisco)
4: Camada de Rede 60
RIP (Routing Information Protocol)
• Algoritmo vetor de distâncias (comunicação apenas com nós vizinhos)
• Incluído na distribuição do BSD-UNIX em 1982• Métrica de distância: # de enlaces• Vetores de distâncias: trocados a cada 30 seg via Mensagem
de Resposta (tb chamada de anúncio)
4: Camada de Rede 61
RIP (Routing Information Protocol)
Rede Destino Próximo Roteador No. de enlaces ao destino w A 2
y B 2 z B 7
x -- 1…. …. ....
w x y
z
A
C
D B
Tabela de rotas em D
...
4: Camada de Rede 62
OSPF (Open Shortest Path First)
• “open” (aberto): publicamente disponível• Usa algoritmo do Estado de Enlaces
– disseminação de pacotes EE– Mapa da topologia a cada nó– Cálculo de rotas usando o algoritmo de Dijkstra
• Anúncio de OSPF inclui uma entrada por roteador vizinho• Anúncios disseminados para SA inteiro (via inundação)
• Usado na UFSC !!!
4: Camada de Rede 63
Roteamento Inter-SA
4: Camada de Rede 64
Roteamento inter-SA na Internet: BGP
• BGP (Border Gateway Protocol): o padrão de fato• Protocolo Vetor de Caminhos :
– semelhante ao protocolo de Vetor de Distâncias
– cada Border Gateway (roteador de fronteira) difunde aos vizinhos (pares) caminho inteiro (i.é., seqüência de SAs) ao destino
– p.ex., roteador de fronteira X pode enviar seu caminho ao destino Z:
Path (X,Z) = X,Y1,Y2,Y3,…,Z
4: Camada de Rede 65
Roteamento inter-SA na Internet: BGP
Supomos: roteador X envia seu caminho para roteador para W• W pode ou não selecionar o caminho oferecido por X
– razões de custo, políticas (não roteia via o SA de um concorrente), evitar ciclos.
• Se W seleciona caminho anunciado por X, então:Caminho (W,Z) = W, Caminho (X,Z)
• Note: X pode controlar tráfego de chegada através do controle dos seus anúncios de rotas aos seus pares:– p.ex., se não quero receber tráfego para Z -> não
anuncia rotas para Z• mensagens BGP trocadas usando TCP.
4: Camada de Rede 66
Por quê há diferenças entre roteamento Intra- e Inter-SA?
Políticas: • Inter-SA: administração quer controle sobre como tráfego
roteado, quem transita através da sua rede. • Intra-AS: administração única, logo são desnecessárias
decisões políticas
Escalabilidade:• roteamento hierárquico economiza tamanho de tabela de
rotas, reduz tráfego de atualização
Desempenho: • Intra-AS: pode focar em desempenho• Inter-AS: políticas podem ser mais importantes do que
desempenho
4: Camada de Rede 67
Sumário de Arquitetura de RoteadoresDuas funções chave de roteadores:
• usam algoritmos/protocolos de roteamento (RIP, OSPF, BGP)
• comutam datagramas do enlace de entrada para a saída
CRC
Verificação de Redundância Cíclica
• encara os bits de dados, D, como um número binário• escolhe um padrão gerador de r+1 bits, G • objetivo: escolhe r CRC bits, R, tal que
– <D,R> é divisível de forma exata por G (módulo 2) – receptor conhece G, divide <D,R> por G. Se o resto é diferente de zero:
erro detectado!– pode detectar todos os erros em seqüência (burst errors) com
comprimento menor que r+1 bits• largamente usado na prática (ATM, HDCL)
padrão de bits
fórmulamatemática
bits de dados a enviar
Exemplo de CRCCálculo do código do
checksum polinomial G:
1 0 0 1 1x4 + x+1
Aritmética polinomial ignora “vai-um” (carries/borrows) da adição e subtração.
Operações são idênticas ao Ou Exclusivo:
10011011 11110000+ 11001010 - 10100110 ------------ ------------ 01010001 01010110
• Bit rate X baud rate• Manchester
• Baseband X broadband• 3 tipos de modulação possivel (fase,
amplitude e frenquencia)
Banda Base X Banda Larga• Baseband (banda base):
-Suporte de transmissão usado por um único canal, que ocupa todo o espectro de freqüências
• Broadband (banda larga):
-Suporte de comunicação dividido em múltiplos canais, com sinais modulados
-Requer MODEM (modulador / demodulador) => caro
1: Introdução 73
Chaveamento de circuitos: FDMA e TDMA
FDMA
freqüência
tempo
TDMA
freqüência
tempo
4 usuários
Exemplo:
Bit-rate X Baud-rate
• Taxa de transmissão (bit rate): número de bits transmitidos por segundo, expressa em bps (bits per second).
• Taxa de sinalização (baud rate): número de intervalos de sinalização (mudanças de amplitude) por segundo do sinal, expressa em bauds.
• Se usarmos uma amplitude para 0 e outra para 1, então baudrate = bitrate.
• Se utilizarmos um nível de amplitude para 2 bits (dibits), então baudrate = bitrate/2.
• Se usarmos um nível de amplitude para 3 bits (tribits), então baudrate = bitrate/3.
• Para codificar n bits agrupados em um mesmo nível de amplitude, são necessários 2n amplitudes.
Bit-rate X Baud-rate
• Relação entre baudrate e bitrate:– n = número de bits representados por cada nível de amplitude.– L = número de níveis de amplitude necessários = 2n
– bitrate = log2 L . baudrate
• Exemplos:
• Isto explica como um modem capaz de gerar apenas 9.600 intervalos de sinalização por segundo (9.600 baud) pode transmitir 28.800 bps: ele opera com tribits, ou seja, 3 bits codificados em 8 níveis de tensão.
Baudrate n L Bitrate 9.600 Bauds 1 2 9.600 bps 9.600 Bauds 2 (dibit) 4 19.200 bps 9.600 Bauds 3 (tribit) 8 28.800 bps
Modulação (broadband)
Banda base
Broadband
• Possível combinar técnicas– Ex. QAM-16 (Quadrature Amplitude Modulation) combina 4 amplitudes e 4 fases,
permitindo 16 valores por transição do sinal. Ou seja, 4 bits por baud (24 = 16); bitrate = 4 * baud rate
amplitude
fase
freqüência
Codificação e Sincronização de Bits (Baseband)
1
0
tempo de subida tempo de descida
tempo bit instante de amostragem
- transmissão serial de dados requer sincronização entre emissor e receptor => receptor tem que amostrar sinal na mesma freqüência em que este foi gerado- freqüência do sinal define o “tempo bit” (intervalo de sinalização)- amostragem deve ocorrer aprox. no meio do tempo bit
Codificação e sincronização de bits
- sinal de sincronização pode ser enviado em fio separado daquele que envia a mensagem => funciona bem, permite altas freqüências de transmissão, mas mais caro- requer cabo com 4 fios => 2 para dados e 2 para sinal de sincronização
Codificação e sincronização de bits
- outra opção: codificar na própria mensagem sinais que geram sincronização- transições (flancos) facilmente detectáveis eletronicamente- outras formas de codificação de bits foram criadas para este fim:
- Codificação RZ (Return to Zero): +12V
-12V
0V
1 1 0 0 1
tempo bit
Codificação e Sincronização de Bits
(a)
+12V
-12V
tempo bit
Lógico 1
(b)
+12V
-12V
tempo bit
Lógico 0
trem de sinais(c)
1 1 1 0 0 1
- Codificação Manchester :
Obs.: baudrate = 2 x bitrate!
Codificação Manchester de Banda Básica
• Banda básica significa que não se usa modulação de portadora; ao invés disto, bits são codificados usando codificação Manchester e transmitidos diretamente, modificando a voltagem de sinal de corrente contínua
• Codificação Manchester garante que ocorra uma transição de voltagem a cada intervalo de bit, ajudando sincronização entre relógios do remetente e receptor
Codificação e Sincronização de Bits - Codificação Manchester diferencial
1 0 0 1 1 1 0 1
tempo bit
Controle de congestionamento
3: Camada de Transporte 84
Princípios de Controle de Congestionamento
Congestionamento:• informalmente: “muitas fontes enviando muitos dados
muito rapidamente para a rede poder tratar”• diferente de controle de fluxo!• manifestações:
– perda de pacotes (esgotamento de buffers em roteadores)
– longos atrasos (enfileiramento nos buffers dos roteadores)
• um dos 10 problemas mais importantes em redes!
3: Camada de Transporte 85
Causas/custos de congestionamento:• Mesmo se roteadores com fila infinita:• grandes retardos qdo. congestionada• vazão máxima do enlace alcançável
• Um roteador, buffers finitos• retransmissão pelo remetente de pacote perdido
• Emissores “mágicos” que só retransmitem qdo pacotes perdidos?
• Um roteador, buffers finitos• retransmissão pelo remetente de pacote perdido
Outro “custo” de congestionamento: • quando pacote é descartado, qq. capacidade de
transmissão já usada (antes do descarte) para esse pacote foi desperdiçada!
3: Camada de Transporte 86
Abordagens de controle de congestionamento
Controle de congestionamento fim a fim :
• não tem realimentação explícita pela rede
• congestionamento inferido das perdas, retardo observados pelo sistema terminal
• abordagem usada pelo TCP
Controle de congestionamento com apoio da rede:
• roteadores realimentam os sistemas terminais– bit único indicando
congestionamento (SNA, DECbit, ATM)
– taxa explícita p/ envio pelo remetente
Duas abordagens amplas para controle de congestionamento:
3: Camada de Transporte 87
TCP: Controle de Congestionamento• controle fim a fim (sem apoio da rede)• taxa de transmissão limitada pela tamanho da janela de
congestionamento, Congwin:
• w segmentos, cada um c/ MSS bytes, enviados por RTT:
Vazão (throughput) = w * MSS
RTT Bytes/sec
Congwin
3: Camada de Transporte 88
TCP: Controle de Congestionamento
• duas “fases”– partida lenta– evitar congestionamento
• variáveis importantes:o Congwino threshold: define limiar
entre fases de partida lenta, controle de congestionamento
• “sondagem” para banda utilizável: – idealmente: transmitir o
mais rápido possível (Congwin o máximo possível) sem perder pacotes
– aumentar Congwin até perder pacotes (congestionamento)
– perdas: diminui Congwin, depois volta a à sondagem (aumento) novamente
3: Camada de Transporte 89
TCP: Partida lenta
• aumento exponencial (por RTT) no tamanho da janela (não muito lenta!)
• evento de perda: temporizador
inicializa: Congwin = 1for (cada segmento c/ ACK) Congwin++until (evento de perda OR CongWin > threshold)
Estação A
um segmento
RTT
Estação B
tempo
dois segmentos
quqtro segmentos
Algoritmo Partida Lenta
3: Camada de Transporte 90
TCP: Evitar Congestionamento
/* partida lenta acabou */ /* Congwin > threshold */Until (event de perda) { cada w segmentos reconhecidos: Congwin++ }threshold = Congwin/2Congwin = 1faça partida lenta
1
Evitar congestionamento
Top Related