O Nível de Rede
• Obtém pacotes na origem e faz chegar ao destino final.
Realiza saltos em pontos intermediários (roteadores).
Contrasta com o nível de enlace que apenas faz os
quadros chegarem de uma máquina a outra adjacente.
• Objetivos:
– Serviços independentes da tecnologia da sub-rede;
– Poupar o Nível de Transporte dos detalhes das
topologias, do número e tipo de sub-redes presentes;
– Endereçamento disponível ao Nível de Transporte deve
ter um plano uniforme através das LANs e WANs.
Nível 3
1
Comutação de pacotes
Store-and-forward
Um host com um pacote a enviar, o transmite ao
roteador mais próximo que espera o pacote inteiro
chegar, confere o checksum e encaminha para o
próximo roteador. Assim sucessivamente até chegar ao
host de destino.
Nível 3
2
Serviços oferecidos ao Transporte
• Sem conexão: deixa ao nível 4 a complexidade –
confiabilidade delegada às pontas (abordagem defendida
pela comunidade Internet).
Pacotes independentes chamados datagramas.
• Orientado a conexão: antes do envio de dados estabelecese a conexão com o par – simplifica o nível 4, pois o nível 3
já apresenta serviço confiável (abordagem defendida pelas
companhias telefônicas).
• No protocolo IP (Internet Protocol) o serviço de Rede é
sem conexão – alivia os roteadores; a medida que as
garantias de qualidade de serviço tornam-se importantes, a
Internet evolui, adquirindo propriedades associadas ao
Nível 3
3
serviço com conexão.
Sem conexão
Pacotes injetados individualmente na rede independentes
uns dos outros. Decisão de rota a cada pacote (Rede de
datagramas).
Ex: Uma msg longa enviada de H1 a H2 foi quebrada em 4
partes. No envio da msg 4, havia alteração na tabela de
rotas de A.
Nível 3
4
Com conexão
• Decisão de rota tomada no estabelecimento do circuito.
Sub-rede de circuito virtual (cv).
• Ex: H1 conecta-se com H2 (cv=1) e a seguir H3 quer
conectar-se a H2: A atribui outro identificador para a
segunda conexão (cv=2). Operação chamada troca de
rótulos. Ex. de protocolo assim: MPLS (MultiProtocol Label
Switching) insere um cabeçalho com rótulo no pacote IP.
Nível 3
5
Algoritmos de Roteamento
Um roteador tem 2 processos em seu interior:
Processo 1: Encaminhamento - trata pacote que chega,
procura linha de saída consultando tabelas.
Processo 2: Algoritmo de roteamento – Preenche e
atualiza as tabelas de rotas.
Nível 3
6
Classes de Algoritmos
• Não adaptativos – Estáticos
A decisão do roteamento não se baseia em tráfego e
topologia correntes. A rota é previamente determinada,
off-line e carregada nos roteadores na inicialização da
rede. (Útil quando a escolha é óbvia).
• Adaptativos – Dinâmicos
As decisões refletem alterações na topologia ou
tráfego. Obtêm informações da rede e tomam a
decisão baseado em alguma métrica – distância,
número de saltos, tempo estimado de trânsito.
Nível 3
7
Algoritmos estáticos
• Shortest Path Routing (O caminho mais curto):
considera a rede como um grafo e computa o menor
caminho entre 2 nós - utilizar alguma métrica para
rotular o caminho, (distância geográfica=>atraso, custo
da comunicação, largura de banda...)
•
Flooding (Inundação): pacotes de entrada
encaminhados em todas as linhas de saída. Busca
todos os caminhos em paralelo. Para aplicações
especiais - ignorando o overhead do flood, é o
algoritmo que tem o menor delay. Manter algum
controle para evitar repetições infinitas.
Nível 3
8
Roteamento de Estado de Enlace
(Link State Routing)
Algoritmo empregado no OSPF (Open Shortest Path
First). O roteamento é dividido em 5 partes:
1. Descobrir seus vizinhos e aprender seus
endereços de rede;
2. Medir o retardo ou custo até cada vizinho;
3. Criar um pacote que informe tudo o que
acabou de aprender;
4. Enviar esse pacote a todos os outros
roteadores;
5. Calcular o caminho mais curto até cada um
dos outros roteadores.
Nível 3
9
Roteamento em redes Ad Hoc (1)
Problema maior que roteamento para hosts móveis: Hosts e
roteadores são móveis!
• MANETs (Mobile Ad hoc Networks).
• Alg de roteamento: AODV (Ad hoc On-demand Distance
Vector) considera limitadas largura de banda e bateria.
• Cada nó precisa manter uma tabela de vetor de distância
classificada por destino com o vizinho a enviar pacotes
para alcançar o destino.
• Quando um nó quer alcançar outro, neste momento vai
descobrir a rota (on-demand). Emite um pacote ROUTE
REQUEST (flooding);
Nível 3
10
Roteamento em redes Ad Hoc (2)
a) A quer transmitir um pacote para o nó I, emite um pacote
ROUTE REQUEST alcançado por B e D;
b) B e D retransmitem, alcançando C, F e G. Os pacotes tem
número de sequencia para manter o controle de cópias. (D
recebeu de A e B e não faz flood 2 vezes);
c) E e H recebem e inundam (I recebe 2 vezes de G e H);
d) Quando I recebe, responde (ROUTE REPLY) que segue
pelo caminho inverso. Cada nó deve lembrar quem enviou
a solicitação.
As setas indicam
a rota inversa
armazenada.
Nível 3
11
Manutenção de rotas
Periodicamente, cada nó transmite por broadcast uma msg
Hello que os vizinhos respondem. Se não houver resposta,
o nó elimina a entrada correspondente da tabela.
Se G sair do ar, D elimina as entradas para G e I; D notifica A
que elimina sua entrada para I.
Vizinhos ativos contam para vizinhos ativos recursivamente
até que todas as rotas dos nós que dependem do que saiu
sejam eliminadas de todas as tabelas de rotas.
Nível 3
12
Congestionamento
Congestionamento: Quantidade de pacotes presente na subrede é tão grande que a sub-rede não consegue entregar
todos => a fila explode => pacotes são descartados
=> pacotes devem ser retransmitidos => o desempenho é
degradado.
É uma questão global, diferente do controle de fluxo que é
uma questão entre transmissor e receptor.
Estratégias empregadas:
• o nível de transporte deve reduzir a carga e/ou;
• usar técnicas para evitar congestionamento;
Nível
3
13
• usar técnicas para lidar com
congestionamento
qdo ocorre.
Colapso
Throughput (Vazão): Velocidade média da transferência,
incluindo overhead dos protocolos e pacotes retransmitidos
por erros ou conflitos;
Goodput: taxa com que pacotes úteis são entregues pela
rede; pode ser medido como tamanho dos dados
transmitidos pelo tempo que leva para transmitir (throughput
a nível de aplicação).
Nível 3
14
Soluções para congestionamento
Em diferentes escalas de tempo:
Diminuir a
Escolher que
carga: recusa
pacotes descartar.
novos acessos
Ajustar as rotas de acordo
Na iminência do
com padrões de tráfego:
congestionamento
causam oscilação nas
(monitorar parâmetros),
tabelas de rotas (não é
a rede solicita que as
normalmente utilizado).
fontes atrasem ou a
Idéia: dividir o tráfego por
rede atrasa o tráfego.
15
vários caminhos.
Nível 3
Escala de meses:
Aumentar recursos
Controle de Tráfego
Ao monitorar, por exemplo, o atraso de fila, pode-se
determinar a proximidade de congestionamento.
O esquema mais usado na Internet é marcar um pacote
para sinalizar esta situação. O destino do pacote, quando
enviar uma resposta (no nível TCP), informa o transmissor
para que ele reduza suas transmissões.
Notificação Explícita de Congestionamento – ECN (Explicit
Congestion Notification) – bit do cabeçalho IP.
Nível 3
16
Corte de Carga
Que pacotes descartar?
• Depende do tipo de aplicação usando a rede: as
aplicações deveriam marcar a importância dos pacotes.
Ex: Transferência de arquivo prefere manter pacotes
antigos; mídia em tempo real prefere pacotes novos...
• Hosts percebem sempre perda de pacotes, e nem sempre
recebem ECN (ou não recebem em tempo):
O roteador pode tomar a iniciativa de descartar
aleatoriamente uma pequena fração de pacotes antes do
buffer encher. Os transmissores mais rápidos receberão
mais rapidamente a informação, sem envio de um sinal
explícito: Detecção Aleatória Prematura - RED (Random
Early Detection).
Nível 3
17
Qualidade de Serviço
Algumas aplicações exigem throughput mínimo e uma
latência máxima => oferecer Qualidade para os Serviços.
Fluxo: Sequência de pacotes de uma origem a um destino.
Necessidades de cada fluxo:
– Largura de Banda (Throughput);
– Atraso (Delay);
– Flutuação (Jitter): algumas aplicações são sensíveis
a pacotes com intervalos irregulares de chegada;
– Perda (Drop): uma certa porcentagem de pacotes
descartados pode ser admitida em certas
aplicações.
Nível 3
18
Rigidez de Requisitos
Aplicações podem tentar ocultar os problemas da rede;
ex: para problema de flutuação, manter um buffer.
Onde está médio, entenda: pode irritar, mas não
inviabiliza o serviço
Nível 3
19
Conectar redes - 1
• Camada comum acima que oculta as diferenças das redes;
foi separada nos protocolos TCP e IP de Cerf e Kahn :
Turing Award (2004) – Nobel de Computação.
a)Uma Rede com 3 tipos de rede: WiFi, MPLS (MultiProtocol
Label Switching) e Ethernet;
b)Processamento dos protocolos
Nível 3=> necessidade de
20
fragmentação :WiFi/Eth
Conectar redes - 2
• Bridges poderiam fazer esta tradução de um tipo de LAN
para outra, mas as diferenças são tantas que não é mais
comum utilizá-las para isto.
• Hoje, bridges conectam LANs iguais, e roteadores
conectam LANs diferentes: Problemas difíceis de
contornar como tamanho de pacotes diferentes, já tem
um esquema de fragmentação na camada de rede que
pode ser usado.
• O roteador tem habilidade também para lidar com vários
protocolos de rede (IPx, AppleTalk), porém hoje são mais
relevantes IPv4 e IPv6 que não são compatíveis.
• Traduzir pacotes IPv4 para IPv6 e vice-versa pode ser
difícil (128 bits para 32 bits Nível
de 3endereço), então...
21
Tunelamento
Se a rede de origem é do mesmo tipo da rede de destino,
mas há uma rede diferente entre elas, encapsular os dados
das pontas dentro de pacotes transportados pela rede
intermediária.
Nível 3
22
Fragmentação
Cada rede impõe um tamanho máximo a seus pacotes:
Ethernet:1.500B; WiFi: 2.272B; IP: 65.515B
(a) Pacote original
contendo 10 bytes de
dados
(b) Fragmentos após
passarem por uma rede
que admite 8 bytes de
dados
(c) Fragmentos após
passarem por uma rede
que admite 5 bytes de
dados
Nível 3
23
A Camada de Rede da Internet
Internet: coleção interconectada de muitas redes
IP (Internet Protocol) a camada de rede da Internet
Nível 3
24
O cabeçalho IPv4 - 1
Version: versão do protocolo sendo usado; atualmente há
transição entre IPv4 e IPv6;
IHL: Header Lenght – quantas palavras de 32 bits há no
cabeçalho, pois este não tem tamanho constante; a parte
fixa tem 20 bytes.
Serviços Diferenciados: 6 bits
Nível 3– Classe de Serviço; 2 bits
25 Notificação de congestionamento (ECN);
O cabeçalho IPv4 - 2
Tamanho Total: Inclui cabeçalho e dados. Até 64Kbytes
(Em redes Ethernet o máximo é 1500 bytes.
Identificação: Número identificando a qual pacote este
fragmento pertence.
DF : D´ont fragment: para descoberta da MTU;
Nível 3
26
O cabeçalho IPv4 - 3
MF : More Fragments – para informar que seguem mais
fragmentos – o último fragmento tem este bit desligado;
Deslocamento de fragmento: onde este fragmento se
encaixa no pacote corrente; Múltiplos de 8 bytes.
Time to Live: Iniciado com 255, é decrementado a cada
hop; quando atinge zero o fragmento
é descartado. Evita 27
Nível 3
vida indefinida para um pacote;
O cabeçalho IPv4 - 4
Protocol: Que protocolo de transporte é usado (TCP/UDP);
Header checksum: Deve ser recomputado em cada
roteador, pois no mínimo mudou o campo time to live;
Source Address e Destination Address
Options:Permite incluir informação não presente no projeto
Nível 3
28
original.
Classes de endereços IP
Definidas inicialmente na Internet (antes de 1993) e não
mais utilizadas:
•
•
•
•
Classe A – 126 redes com 16 milhões de hosts cada;
Classe B – 16.382 redes (214) com 64k (216) hosts cada;
Classe C – 2 milhões de redes (221) com 254 hosts cada.
Classe D – Endereços multicast – para encaminhar um
Nível 3
29
datagrama a múltiplos hosts.
Máscaras de Rede
O tamanho do prefixo corresponde a uma máscara de
sub-rede, com 1s na parte destinada a rede.
Os prefixos são manipulados pelos roteadores que não
precisam conter todos os endereços alcançáveis, mas
apenas todas as redes alcançáveis.
Nível 3
30
Subdivisão de Redes
• É possível subdividir a rede para uso interno, para
melhor organização e aproveitamento do espaço de
endereçamento:
• Suponha uma universidade dona do espaço:
128.208.0.0/16; deixou metade dos endereços para a
CC, ¼ dos endereços para a EE e 1/8 dos endereços
para Artes; esta subdivisão não precisa ser conhecida
externamente.
EE:
1000 0000 1101 0000 00xx....
CC:
1000 0000 1101 0000 1xxx....
Artes:
1000 0000 1101 0000 011x...
Nível 3
31
CIDR:Classless InterDomain Routing
Para diminuir o tamanho das tabelas de rotas combinamse pequenos prefixos em um único prefixo maior
(agregação de rota). O maior prefixo é a super-rede.
Exemplo: A partir de 194.24.0.0 há 8192 (=213) ends em
um bloco disponível. Cambridge solicitou 2048 (=211)
endereços; Oxford solicitou 4096 (=212) endereços;
Edinburgh solicitou 1024 (=210) endereços.
O maior prefixo neste caso é 194.24.0.0/19 que contém o
bloco todo incluindo a porção disponível.
Nível 3
32
Agregação de prefixos IP
Cada faixa atribuída deve ser conhecida pelos
roteadores? Não necessariamente: o roteador de
Londres que conhece as 3 redes, agrega os 3 prefixos
em um: 194.24.0.0/19, que é passado para Nova York.
NY reduziu 3 entradas para uma.
Nível 3
33
Maior prefixo combinado
Se São Francisco solicitou 1024 endereços e foi alocado
o bloco que ainda estava disponível dentro de 194.24.0.0
(194.24.12.0/22), os pacotes devem ser enviados na
direção da rota mais específica, ou do maior prefixo
combinado. Tente o casamento com o maior prefixo
primeiro. (Há algoritmos sofisticados para encontrar a
saída)
Nível 3
34
NAT – Network Address Translation
Técnica contra esgotamento de endereços IP:
• Atribuir a cada empresa um único endereço IP válido;
internamente utilizam-se IPs privativos. Na saída do
pacote ocorre conversão para o IP válido.
• Intervalos privativos: (Classe A) 10.0.0.0 ,
(Classe B)172.16.0.0 e (Classe C) 192.168.0.0
Problema: quando o pacote volta endereçado ao IP válido,
como saber para quem devolver a resposta? Manipular
Nível 3
35
porta de origem.
Nível Transporte

Fornece aos níveis superiores serviço eficiente e confiável
entre máquina de origem e destino, independente das
redes utilizadas. Torna camadas superiores imunes à
tecnologia e imperfeições da sub-rede.

Questões típicas:
– Como controlar várias sessões transferindo dados? É
possível várias conexões de transporte em uma de
rede? E uma conexão de transporte com várias
conexões de rede?
–
Como retomar uma sessão interrompida?
–
Transporte
Que ação tomar em Nível
caso
de congestionamento?
36
Porque distingui-lo do N3?
• O nível 3 está presente nos roteadores. E se o
roteador travar? E se o nível 3 perder pacotes?
• É possível que o nível 4 solicite nova conexão de rede
com a entidade remota. Pergunta ao remoto onde
parou e retoma do ponto interrompido.
• A questão é a qualidade de serviço.
• As aplicações utilizam um conjunto padrão de
primitivas que funcionam em várias redes.
Nível Transporte
37
Tipos de Serviço
Similar ao nível de rede, oferece 2 tipos de serviço:
• Orientado a conexão: Estabelece conexão, transfere
dados, libera conexão.
• Sem conexão: Envia pacotes independentes.
 Segmento é o termo empregado para designar as
mensagens trocadas entre entidades de transporte.
Nível Transporte
38
Endereço de Transporte
• É preciso que uma aplicação em uma máquina faça
referência à aplicação com a qual deseja se comunicar
em outra máquina.
• No TCP/IP o endereço de transporte é a porta, e o
endereço de rede é o endereço IP.
• Como um processo sabe que porta está associada a
que serviço? Os endereços estáveis já são
conhecidos. IANA – Internet Assigned Numbers
Authority controla recursos dos protocolos.
• Vide /etc/services ou
http://www.iana.org/assignments/service-names-portnumbers/service-names-port-numbers.xml
Nível Transporte
39
IANA – Internet Assigned Numbers
Authority
O texto abaixo foi adaptado de www.iana.org
“ The port numbers are divided into three ranges:
– System Ports (Well Known): from 0 through 1023.
– User Ports (Registered ): from 1024 through 49151
– Dynamic and/or Private Ports: from 49152 through
65535.
The difference uses of these ranges is described in
RFC6335
The System Ports are assigned by the IETF process for
standards-track protocols (and on most systems can only
be used by system (or root) processes ). The User Ports
are assigned by IANA using the “Expert Review” process .
Nível Transporte ”
40
Dynamic Ports are not assigned.
Estabelecendo conexão no N4 (1)
Que tal: CR para pedir e ACK para aceitar?
Problema: a rede pode perder, atrasar, corromper ou duplicar
pacotes (retransmissões). Os casos comuns devem ser
implementados para obter um bom desempenho, mas o
protocolo deve lidar com os casos incomuns também.
Handshake de
3 vias em
cenário normal
Nível Transporte
41
Estabelecendo conexão no N4 (2)
Seq=x
Antigo CR
aparece
duplicado
Seq=z, Ack=x
Seq=x
Host 1 percebe
que é duplicata:
Segundo ACK x
42
CR e ACK
duplicados
Seq=z, Ack=x
Seq=x, Ack=z
Host 2 percebe que é
duplicata: ACK z novamente
Nível Transporte
Encerrando conexão no N4 (1)
Encerramento abrupto
com perda de dados
43
Caso normal com
Handshake de 3 vias
Nível Transporte
Encerrando conexão no N4 (2)
ACK final perdido
Resposta e DR seguintes perdidos
Resposta perdida
44
Nível Transporte
Controle de Congestionamento
(a) Goodput x carga
(b) Atraso correspondente
• Embora congestionamento ocorra nos roteadores,
portanto detectado pela camada de rede, é causado pelo
tráfego enviado para a rede pela camada de transporte e
45 portanto é responsabilidade conjunta destas
Nível
Transporte
camadas.
Controle de Congestionamento
Onde trabalhar no transporte:
• Encontrar uma boa alocação de banda que ofereça
bom desempenho, evite congestionamento, seja justa
entre entidades concorrentes;
• Regular a velocidade do fluxo;
• Considerar a diferença das Redes sem Fio - embora
na teoria camada de transporte seja independente da
camada de enlace, na prática é preciso considerar as
diferenças com e sem fio.
46
Nível Transporte
Uma boa alocação:
Imparcialidade max-min (Fairness)
A alocação é imparcial max-min se a largura de banda dada
a um fluxo não puder ser aumentada sem diminuir a
largura de banda dada a outro fluxo.
Rede com 4 fluxos: A,B,C,D. Cada enlace tem capacidade =.
B recebe 1/3 entre R4 e R5 e continua com 1/3 entre R2 e
R3 (1/2 não resolveria o gargalo). Para dar mais para B,
deveria reduzir C ou D (ou ambos).
Problema: Necessário conhecimento global da rede.
47
Nível Transporte
Uma boa alocação: Convergência
Conexões vem e vão: convergir para o ponto de operação
ideal e acompanhar ao longo do tempo.
Ex: No início o Fluxo 1 tem toda largura de banda. Em t=1
divide a banda na metade com Fluxo 2. Em t=4 o Fluxo 3
precisa apenas de 0,2 e os fluxos 1 e 2 ficam com 0,4
cada. Quando o Fluxo 2 termina, o Fluxo 1 abocanha 0,8.
48
Nível Transporte
Regulando a velocidade do fluxo
49
(a) O limite é o receptor de pequena capacidade;
(b) O limite é a rede interna.
Controle de fluxo ajuda no controle de congestionamento
Nível Transporte
Regulando: Feedback
Diferentes protocolos de controle de congestionamento
podem dar retorno sobre as condições da transmissão
de forma explícita ou implícita – precisa ou imprecisa:
TCP
50
Nível Transporte
Problemas da Rede sem Fio
Na Teoria: protocolos de transporte são independentes das
tecnologias de rede e enlace.
Na prática: problemas com redes sem fio. TCP usa perda
de pacote como sinal de congestionamento, mas redes
sem Fio perdem pacotes por erro não
congestionamento… Pior ainda se os nós se movem e a
qualidade do enlace varia.
Cada nível faz o que pode: Enlace tenta retransmitir sem
sinalizar nível superior; transporte aplica controle de
congestionamento. Há muita pesquisa para desenvolver
um Transporte para redes sem fio e como comunicar
informações entre os níveis (abordagens cross-layer).
51
Nível Transporte
Protocolo de Controle da Internet
User Data Protocol - UDP
• Permite envio de dados sem estabelecimento prévio de
conexão, sem técnica de verificação que o dado atingiu
a outra ponta.
• Muito utilizado em aplicações que tem como modelo –
um pedido, uma resposta – não necessitando do
overhead do estabelecimento de conexão.
• A própria resposta é o reconhecimento do pedido. Se a
resposta não chegar, simplesmente pergunta
novamente.
• Exemplo de aplicação que usa UDP: DNS
52
Nível Transporte
Segmento UDP
O segmento UDP consiste de um cabeçalho de 8
bytes, seguido pela carga útil.
O simples cabeçalho UDP contém 8 bytes:
Comprimento UDP: inclui cabeçalho e dados.
Checksum: opcional.
53
Nível Transporte
Protocolo de Controle da Internet
Transmission Control Protocol - TCP
Protocolo confiável de transporte da Internet,
orientado a conexão.
Projetado para prover um fluxo de bytes fim-afim
confiável entre processos sobre uma inter-rede não
confiável.
O nível 3 da Internet, IP, não garante que os pacotes
sejam entregues apropriadamente.
O TCP controla temporizações e retransmite pacotes
quando necessário. As conexões são full-duplex e
ponto-a-ponto.
Nível Transporte
54
O segmento TCP
• O cabeçalho de um segmento TCP:
Nível Transporte
55
O cabeçalho TCP - 1
• Número de confirmação: próximo byte esperado.
• Comprimento cabec: número de palavras de 32 bits no
cabeçalho. (pode variar devido a opções).
• Flags:
– ECE (ECN-Echo): Receptor sinaliza congestionamento ao
transmissor : reduza velocidade (recebeu pacote com ECN no IP);
– CWR: (Congestion Window Reduced) Transmissor sinaliza que
reduziu janela (receptor pode parar de enviar ECE);
– URG: Quando a aplicação é interrompida (ex CTRL-C), insere-se
informação de controle da aplicação nos dados e liga-se o URG. No
destino, interrompe-se a aplicação para entregar os dados urgentes.
– ACK: Se ligado, o número de reconhecimento é válido.
– PSH: Se ligado indica para entregar dados imediatamente (não
buferizar, o que poderia ser feito por eficiência);
Nível Transporte
56
O cabeçalho TCP - 2
• Flags:
– RST: Se ligado indica para reiniciar a conexão: há problemas;
– SYN: Se ligado indica solicitação de conexão..
– FIN: Se ligado, indica fim da conexão.
• Tam Janela: Quantos bytes podem ser enviados. O
receptor controla o fluxo de bytes do transmissor
alterando este campo. Janela zero significa “pare de
mandar até que receba valor não zero”.
• Checksum: Para confiabilidade extrema.
• Urgent Pointer: Deslocamento em bytes a partir do
número de sequência onde estão os dados urgentes.
• Options: Permite adicionar facilidades extras como
negociar tamanho máximo do segmento TCP.
57
Nível Transporte
Estabelecimento de conexão TCP
(a) Caso comum no estabelecimento de uma conexão TCP.
(b) Estabelecendo conexões TCP simultâneas nas mesmas
portas: é possível perceber que se trata da mesma conexão.
Nível Transporte
58
Janela Deslizante do TCP
O mecanismo de janela utiliza duas informações:
• Número de confirmação: próximo número de seqüência
que o remoto espera receber.
• Tamanho da janela: Número de bytes que o remoto pode
aceitar.
Tam Janela=6000
Segmento
corrente
Dados recebidos
1
1001
Número de
sequência inicial=1
2001
3001
4001
Número de
confirrmação=2001
Nível Transporte
5001
6001
Número de
sequência=4001
7001
Gerenciamento de Janelas no TCP
Nível Transporte
60
Vários Timers do TCP
•Timer de Retransmissão: determinar tempo de ida e volta
para o destino não é fácil e erros comprometem a eficiência.
Utiliza-se algoritmos dinâmicos que ajustam o intervalo de
timeout com base na contínua avaliação do desempenho.
•Timer de persistência: Rx envia confirmação com tamanho
da janela = 0 (para o Tx). Se uma nova mensagem com tam.
Jan # 0 se perde, ambos ficam aguardando. Ao estourar este
timer, o Tx envia teste ao Rx que responde com o tamanho
da janela atual. Se ainda zero, ativa timer novamente.
•Timer Keepalive: se conexão inativa por um tempo, um
lado pergunta o estado do outro.
•Timer no encerramento de conexão: para garantir que
Nívelos
Transporte
após fechar conexão, todos
pacotes foram entregues.61
Evitando Congestionamento
• Cada transmissor mantém duas janelas:
– Janela fornecida pelo receptor;
– Janela de Congestionamento.
• O número de bytes que pode ser transmitido é o valor
mínimo entre as duas janelas.
• Em 1986 aconteceu o primeiro colapso de
congestionamento. Observou-se , naquele contexto, que
perda de pacote era um sinal de congestionamento (se
fosse erro, a camada de enlace já teria retransmitido)
• Clock ACK: tempo usado pelo TCP para nivelar o tráfego
entre os enlaces que deve atravessar: os pacotes de
ACK chegam em ritmo ditado pelo enlace mais lento do
Nível Transporte
62
caminho.
Partida “Lenta”
• No início da conexão, Jan. cong = tam do segmento na
conexão. Cada segmento confirmado antes do estouro
da temporização, permite o envio de mais dois.
Partida lenta de uma Jan.
cong. inicial de um segmento
Nível Transporte
63
TCP Tahoe
• No início da conexão, Jan.cong = tam do segmento. Se
confirmado antes de timeout, duplica janela de
congestionamento.
• Quando o crescimento atinge um Limiar, passa a ser
linear e não mais exponencial. (Limiar inicial=64KB).
• Continua crescendo até ocorrer um timeout, ou atingir a
janela do receptor.
• Quando há um timeout: Limiar = metade da jan. cong.
atual, e jan.cong. volta a ter o tamanho de um segmento.
• Começa o processo de crescimento exponencial
novamente para determinar o que a rede é capaz de
gerenciar.
64
Nível Transporte
Exemplo do TCP Tahoe
Tamanho máximo do segmento = 1024 bytes.
Limiar inicial = 64KB, houve timeout, limiar caiu para 32KB.
Transmissão 13 teve timeout, quando a Jan. Cong. estava
com 40KB. Limiar passa a ser de 20KB, Jan. Cong=1
segmento.
Nível Transporte
65
TCP Reno
Curva Dente de Serra.
Implementação utilizada por 20 anos. Hoje há inúmeras
variações e propostas de melhorias. Aumento aditivo (1
segmento a mais), diminuição multiplicativa (metade) - AIMD
66
Nível Transporte
Download

Nível 3 e 4