o nível de rede

66
Nível 3 1 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

Upload: jaxon

Post on 22-Feb-2016

37 views

Category:

Documents


0 download

DESCRIPTION

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; - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: O Nível de Rede

Nível 3 1

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.

Page 2: O Nível de Rede

Nível 3 2

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.

Comutação de pacotes Store-and-forward

Page 3: O Nível de Rede

Nível 3 3

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 estabelece-se 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 serviço com conexão.

Page 4: O Nível de Rede

Nível 3 4

Sem conexãoPacotes 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.

Page 5: O Nível de Rede

Nível 3 5

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.

Page 6: O Nível de Rede

Nível 3 6

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.

Page 7: O Nível de Rede

Nível 3 7

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.

Page 8: O Nível de Rede

Nível 3 8

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.

Page 9: O Nível de Rede

Nível 3 9

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.

Page 10: O Nível de Rede

Nível 3 10

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);

Page 11: O Nível de Rede

Nível 3 11

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 indicama rota inversa armazenada.

Page 12: O Nível de Rede

Nível 3 12

Manutenção de rotasPeriodicamente, 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.

Page 13: O Nível de Rede

Nível 3 13

CongestionamentoCongestionamento: Quantidade de pacotes presente na sub-

rede é 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;• usar técnicas para lidar com congestionamento qdo ocorre.

Page 14: O Nível de Rede

Nível 3 14

ColapsoThroughput (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).

Page 15: O Nível de Rede

Nível 3 15

Soluções para congestionamento

Ajustar as rotas de acordo com padrões de tráfego: causam oscilação nas tabelas de rotas (não é normalmente utilizado). Idéia: dividir o tráfego por vários caminhos.

Escala de meses: Aumentar recursos

Diminuir a carga: recusa novos acessos

Na iminência do congestionamento (monitorar parâmetros), a rede solicita que as fontes atrasem ou a rede atrasa o tráfego.

Escolher que pacotes descartar.

Em diferentes escalas de tempo:

Page 16: O Nível de Rede

Nível 3 16

Controle de TráfegoAo 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.

Page 17: O Nível de Rede

Nível 3 17

Corte de CargaQue 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).

Page 18: O Nível de Rede

Nível 3 18

Qualidade de ServiçoAlgumas 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.

Page 19: O Nível de Rede

Nível 3 19

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

Page 20: O Nível de Rede

Nível 3 20

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 => necessidade de fragmentação :WiFi/Eth

Page 21: O Nível de Rede

Nível 3 21

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 de endereço), então...

Page 22: O Nível de Rede

Nível 3 22

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.

Page 23: O Nível de Rede

Nível 3 23

Fragmentação

(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

Cada rede impõe um tamanho máximo a seus pacotes: Ethernet:1.500B; WiFi: 2.272B; IP: 65.515B

Page 24: O Nível de Rede

Nível 3 24

A Camada de Rede da Internet

Internet: coleção interconectada de muitas redesIP (Internet Protocol) a camada de rede da Internet

Page 25: O Nível de Rede

Nível 3 25

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 – Classe de Serviço; 2 bits - Notificação de congestionamento (ECN);

Page 26: O Nível de Rede

Nível 3 26

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;

Page 27: O Nível de Rede

Nível 3 27

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 vida indefinida para um pacote;

Page 28: O Nível de Rede

Nível 3 28

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 AddressOptions:Permite incluir informação não presente no projeto original.

Page 29: O Nível de Rede

Nível 3 29

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

datagrama a múltiplos hosts.

Page 30: O Nível de Rede

Nível 3 30

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.

Page 31: O Nível de Rede

Nível 3 31

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...

Page 32: O Nível de Rede

Nível 3 32

CIDR:Classless InterDomain Routing

Para diminuir o tamanho das tabelas de rotas combinam-se 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.

Page 33: O Nível de Rede

Nível 3 33

Agregação de prefixos IPCada 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.

Page 34: O Nível de Rede

Nível 3 34

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)

Page 35: O Nível de Rede

NAT – Network Address TranslationTé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 porta de origem. Nível 3 35

Page 36: O Nível de Rede

Nível Transporte 36

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?

– Que ação tomar em caso de congestionamento?

Nível Transporte

Page 37: O Nível de Rede

Nível Transporte 37

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.

Page 38: O Nível de Rede

Nível Transporte 38

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.

Page 39: O Nível de Rede

Nível Transporte 39

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-port-

numbers/service-names-port-numbers.xml

Page 40: O Nível de Rede

Nível Transporte 40

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

RFC6335The 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 . Dynamic Ports are not assigned. ”

Page 41: O Nível de Rede

Nível Transporte 41

Estabelecendo conexão no N4 (1)

Handshake de 3 vias em

cenário normal

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.

Page 42: O Nível de Rede

Nível Transporte42

Estabelecendo conexão no N4 (2)

Antigo CR aparece

duplicadoCR e ACK duplicados

Host 1 percebe que é duplicata: Segundo ACK x

Host 2 percebe que é duplicata: ACK z novamente

Seq=z, Ack=x

Seq=z, Ack=x

Seq=x, Ack=z

Seq=x

Seq=x

Page 43: O Nível de Rede

Nível Transporte43

Encerrando conexão no N4 (1)

Encerramento abrupto com perda de dados

Caso normal com Handshake de 3 vias

Page 44: O Nível de Rede

Nível Transporte44

Encerrando conexão no N4 (2)ACK final perdido

Resposta perdida

Resposta e DR seguintes perdidos

Page 45: O Nível de Rede

Controle de Congestionamento

Nível Transporte45

(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 portanto é responsabilidade conjunta destas camadas.

Page 46: O Nível de Rede

Controle de Congestionamento

Nível Transporte46

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.

Page 47: O Nível de Rede

Uma boa alocação:Imparcialidade max-min (Fairness)

Nível Transporte47

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.

Page 48: O Nível de Rede

Uma boa alocação: Convergência

Nível Transporte48

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.

Page 49: O Nível de Rede

Regulando a velocidade do fluxo

Nível Transporte49

(a) O limite é o receptor de pequena capacidade;(b) O limite é a rede interna.Controle de fluxo ajuda no controle de congestionamento

Page 50: O Nível de Rede

Regulando: Feedback

Nível Transporte50

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

Page 51: O Nível de Rede

Problemas da Rede sem Fio

Nível Transporte51

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).

Page 52: O Nível de Rede

Protocolo de Controle da InternetUser Data Protocol - UDP

Nível Transporte52

• 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

Page 53: O Nível de Rede

Nível Transporte53

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.

Page 54: O Nível de Rede

Nível Transporte 54

Protocolo de Controle da InternetTransmission 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.

Page 55: O Nível de Rede

Nível Transporte 55

O segmento TCP

• O cabeçalho de um segmento TCP:

Page 56: O Nível de Rede

Nível Transporte 56

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);

Page 57: O Nível de Rede

Nível Transporte57

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.

Page 58: O Nível de Rede

Nível Transporte 58

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.

Page 59: O Nível de Rede

Nível Transporte

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.

Número de sequência inicial=1

Número de confirrmação=2001

Número de sequência=4001

2001 3001 4001 5001 6001 700110011

Tam Janela=6000

Dados recebidosSegmento corrente

Page 60: O Nível de Rede

Nível Transporte 60

Gerenciamento de Janelas no TCP

Page 61: O Nível de Rede

Nível Transporte 61

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 após fechar conexão, todos os pacotes foram entregues.

Page 62: O Nível de Rede

Nível Transporte 62

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 caminho.

Page 63: O Nível de Rede

Nível Transporte 63

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

Page 64: O Nível de Rede

Nível Transporte64

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.

Page 65: O Nível de Rede

Nível Transporte 65

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.

Page 66: O Nível de Rede

Nível Transporte66

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