Redes de Computadores




   Camada de Transporte
Camada de transporte

• Ela é o núcleo de toda a hierarquia de
  protocolos;
• Sua função é promover uma transferência de
  dados confiável e econômica;
Serviço oferecido
Primitivas do serviço de
               transporte
Para permitir que os usuários tenham acesso ao
 serviço de transporte, a camada de transporte
 deve oferecer algumas operações a programas
 aplicativos.


O que é uma primitiva?
Primitivas do serviço de
        transporte
TPDU (Transport Protocol Data Unit)
Soquetes de Berkeley (no UNIX)
Elementos de protocolos de
            transporte
Embora pareça que a camada de transporte
 implementa as mesmas interfaces da camada
 de enlace, isso fica só na aparência.
Na camada de enlace de dados, dois roteadores
 se comunicam diretamente através de um
 canal físico, enquanto na camada de
 transporte esse canal físico é substituído
 pela sub-rede inteira.
Elementos de protocolos de
        transporte
Endereçamento
Protocolo de conexão inicial
Estabelecimento de conexões

Estabelecer uma conexão parece uma tarefa
 fácil mas, na verdade, trata-se de um
 procedimento complicado.
O problema é que a rede pode perder,
 armazenar e duplicar pacotes de início de
 conexão.
Estabelecimento de conexões

O ponto crucial do problema é a existência de
 duplicatas atrasadas.
• Uma alternativa possível é usar endereço s de
  transporte descartáveis (imagem anterior);
• Outra possibilidade é atribuir a cada conexão um
  identificador de conexão;
• O método descrito a seguir foi proposto por Tomlinson
  (1975);
Solução de Tomlinson

Tomlinson propôs que cada host fosse equipado
  com um relógio;
Cada relógio assume a forma de um contador
 binário incrementado em intervalos regulares;
Problema
Problema
Encerramento de conexões

• Encerrar uma conexão é mais fácil do que
  estabelecê-la.
• No entanto, nesse procedimento há mais
  armadilhas do que se poderia esperar.
Encerramento de conexões
Controle de fluxo e uso de
              buffers
Depois de examinar o estabelecimento e o
 encerramento de conexões;
O controle de fluxo é semelhante a da camada
 de enlace com algumas características
 próprias da camada de transporte.
(a) Buffers de tamanho fixo encadeados. (b)
  Buffers de tamanho variável encadeados. (c)
  Um grande buffer circular por conexão.
Multiplexação
Recuperação de desastres

Se os hosts e roteadores estiverem sujeitos a
 interrupções em seu funcionamento, a
 recuperação dessas panes se tornará uma
 questão muito importante.
Os protocolos de transporte da
          Internet: UDP
O conjunto de protocolos da Internet ad mite um
 protocolo de transporte sem conexões, o UDP
 (User Datagram Protocol).
O UDP oferece um meio para as aplicações
 enviarem datagramas IP encapsulados sem
 que seja necessário estabelecer uma conexão.
Os protocolos de transporte da
        Internet: UDP
Chamada de procedimentos
            remotos
Essa técnica é conhecida como RPC (chamada
 de procedimento remoto) e se tornou a base
 para muitas aplicações de redes.
Tradicionalmente, o procedimento chamador é
  conhecido como cliente, e o procedimento
  chamado é conhecido como servidor; também
  usaremos esses nomes aqui.
Chamada de procedimentos
            remotos
A idéia por trás da RPC é tornar uma chamada
  de procedimento remoto o mais semelhante
  possível a uma chamada local.
Chamada de procedimentos
        remotos
RTP (Real-time Transport Protocol)

A posição do RTP na pilha de protocolos é um
  pouco estranha. Decidiu-se que ele deveria
  ser inserido no espaço do usuário e, desse
  modo, ser (normalmente) executado sobre o
  UDP.
RTP (Real-time Transport Protocol)
Os protocolos de transporte da
           Internet: TCP
O TCP (Transmission Control Protocol) foi projetado
 especificamente para oferecer um fluxo de
 bytes fim a fim confiável em uma inter-rede não
 confiável.
O modelo de serviço do TCP

O serviço TCP é obtido quando tanto o
 transmissor quanto o receptor criam pontos
 extremos chamados soquetes.
O modelo de serviço do TCP
O modelo de serviço do TCP
O protocolo TCP
O estabelecimento de conexões
               TCP
As conexões são estabelecidas no TCP por meio
 do handshake de três vias.
Para estabelecer uma conexão, um lado servidor
 aguarda passivamente por uma conexão de
 entrada, executando as primitivas LISTEN e
 ACCEPT através da especificação de uma
 determinada origem ou de ninguém em
 particular.
O estabelecimento de conexões
               TCP
O outro lado — digamos, o cliente — executa
 uma primitiva CONNECT, especificando o
 endereço IP e a porta à qual deseja se
 conectar.
O estabelecimento de conexões
             TCP
Modelagem do gerenciamento
      de conexões do TCP
Os estados usados na máquina de estados
 finitos para o gerenciamento de uma conexão
 TCP.
Controle de congestionamento
              do TCP
O primeiro passo para gerenciar o
 congestionamento é detectá-lo;
Hoje em dia, a perda de pacotes devido a erros
 de transmissão é relativamente rara, porque
 a maioria dos troncos de longa distância é de
 fibra.
Gerenciamento do Buffer
Gerenciamento de timers do
              TCP
O TCP utiliza vários timers para realizar o
 trabalho.
Timer de Retransmissão

Quando um segmento é enviado, um timer é
 ativado;
Se chegar a confirmação de transmissão o timer
 é interrompido;
Se não chegar a confirmação o segmento é
 retransmitido.
Problema

• Qual deve ser o intervalo de timeout?


• Pense na camada de enlace vs camada de
  transporte.
Tempo Timeout

O TCP encontra um ambiente radicalmente
 distinto se comparado com o ambiente da
 camada de enlace;
Determinar um tempo de ida e volta não é uma
 tarefa fácil;
Timeout mais curo ocorrerá restransmissão
  desnecessária;
Timeout mais elevado comprometerá a
  execução;
TCP e UDP sem fios

Na teoria, os protocolos de transporte deveriam
 ser independentes da tecnologia da camada de
 rede em que se baseiam.
Na prática a maioria das implementações do
 TCP foram otimizadas com todo o cuidado, de
 acordo com as suposições que são
 verdadeiras para as redes fisicamente
 conectadas.
Perca de Pacote

Supõe que o timeout ocorre devido a
 congestionamento, e não a perca de pacotes;
O algoritmo de roteamento quando não recebe
 confirmação reduz o ritmo (afinal a idéia de
 Jacobson é reduzir o envio para reduzir o
 congestionamento);
Para perca de pacotes o ideal é enviar
 novamente, porém se reduzir a taxa de envio
 piora.
Redes Mistas

Com frequência, o caminho entre o transmissor e
 o receptor não é homogêneo. Pode ser
 formado por linhas físicas associadas a redes
 sem fio.
Solução Bakne

• A solução proposta por Bakne (1995), é
  denominada TCP indireto, consiste em dividir a
  conexão TCP em duas conexões separadas.
TCP transacional

Para RPC a aplicação requer obrigatoriamente o
 TCP por vários motivos, tais como:
  – Controle do fluxo;
  – Sequenciamento de mensagens grandes;
  – Garantia da entrega;
TCP transacional

• A pergunta que surge de imediato:
• Existe algum modo de combinar a eficiência da
  RPC usando o UDP com a confiabilidade do
  TCP?
TCP transacional

• A idéia central aqui é modificar ligeiramente a
       ̈
  sequência normal de configuração da conexão,
  a fim de permitir a transferência de dados
  durante a configuração.
TCP transacional
Questões de Desempenho

1. Problemas de desempenho.
2. Medição do desempenho da rede.
3. Projeto de um sistema para proporcionar um
  desempenho melhor.
4. Processamento rápido de TPDUs.
5. Protocolos para as futuras redes de alto
  desempenho.
Problema de Desempenho

Afetam o desempenho:
• Congestionamento causado por sobrecarga;
• Desequilíbrio nos recursos estruturais;
• Um pacote enviado com parâmetros errados (por
  exemplo TPDU) por difusão;
• Após uma falha elétrica todas as máquinas ligam em
  paralelo.
Medição do desempenho da
               rede
1. Medir os parâmetros relevantes e o
  desempenho da rede.
2. Tentar entender o que está acontecendo.
3. Alterar um parâmetro.
Medição do desempenho da
               rede
Medição do desempenho da rede
Armadilhas que voce deve evitar:
Certifique-se de que o tamanho da amostra é
 grande o bastante;
Certifique-se de que as amostras são
 representativas;
Tenha cuidado ao usar o clock do computador;
Medição do desempenho da
               rede
Certifique-se de que nenhum evento inesperado
 está ocorrendo durante os testes;
O uso de caches pode arruinar as medições;
Entenda o que está medindo;
Tenha cuidado para não extrapolar os resultados.
Referência

• Referência

Redes de Computadores Capítulo 6 - Camada de Transporte

  • 1.
    Redes de Computadores Camada de Transporte
  • 2.
    Camada de transporte •Ela é o núcleo de toda a hierarquia de protocolos; • Sua função é promover uma transferência de dados confiável e econômica;
  • 3.
  • 4.
    Primitivas do serviçode transporte Para permitir que os usuários tenham acesso ao serviço de transporte, a camada de transporte deve oferecer algumas operações a programas aplicativos. O que é uma primitiva?
  • 5.
  • 6.
  • 7.
  • 8.
    Elementos de protocolosde transporte Embora pareça que a camada de transporte implementa as mesmas interfaces da camada de enlace, isso fica só na aparência. Na camada de enlace de dados, dois roteadores se comunicam diretamente através de um canal físico, enquanto na camada de transporte esse canal físico é substituído pela sub-rede inteira.
  • 9.
  • 10.
  • 11.
  • 12.
    Estabelecimento de conexões Estabeleceruma conexão parece uma tarefa fácil mas, na verdade, trata-se de um procedimento complicado. O problema é que a rede pode perder, armazenar e duplicar pacotes de início de conexão.
  • 13.
    Estabelecimento de conexões Oponto crucial do problema é a existência de duplicatas atrasadas. • Uma alternativa possível é usar endereço s de transporte descartáveis (imagem anterior); • Outra possibilidade é atribuir a cada conexão um identificador de conexão; • O método descrito a seguir foi proposto por Tomlinson (1975);
  • 14.
    Solução de Tomlinson Tomlinsonpropôs que cada host fosse equipado com um relógio; Cada relógio assume a forma de um contador binário incrementado em intervalos regulares;
  • 15.
  • 16.
  • 17.
    Encerramento de conexões •Encerrar uma conexão é mais fácil do que estabelecê-la. • No entanto, nesse procedimento há mais armadilhas do que se poderia esperar.
  • 18.
  • 19.
    Controle de fluxoe uso de buffers Depois de examinar o estabelecimento e o encerramento de conexões; O controle de fluxo é semelhante a da camada de enlace com algumas características próprias da camada de transporte.
  • 20.
    (a) Buffers detamanho fixo encadeados. (b) Buffers de tamanho variável encadeados. (c) Um grande buffer circular por conexão.
  • 21.
  • 22.
    Recuperação de desastres Seos hosts e roteadores estiverem sujeitos a interrupções em seu funcionamento, a recuperação dessas panes se tornará uma questão muito importante.
  • 23.
    Os protocolos detransporte da Internet: UDP O conjunto de protocolos da Internet ad mite um protocolo de transporte sem conexões, o UDP (User Datagram Protocol). O UDP oferece um meio para as aplicações enviarem datagramas IP encapsulados sem que seja necessário estabelecer uma conexão.
  • 24.
    Os protocolos detransporte da Internet: UDP
  • 25.
    Chamada de procedimentos remotos Essa técnica é conhecida como RPC (chamada de procedimento remoto) e se tornou a base para muitas aplicações de redes. Tradicionalmente, o procedimento chamador é conhecido como cliente, e o procedimento chamado é conhecido como servidor; também usaremos esses nomes aqui.
  • 26.
    Chamada de procedimentos remotos A idéia por trás da RPC é tornar uma chamada de procedimento remoto o mais semelhante possível a uma chamada local.
  • 27.
  • 28.
    RTP (Real-time TransportProtocol) A posição do RTP na pilha de protocolos é um pouco estranha. Decidiu-se que ele deveria ser inserido no espaço do usuário e, desse modo, ser (normalmente) executado sobre o UDP.
  • 29.
  • 30.
    Os protocolos detransporte da Internet: TCP O TCP (Transmission Control Protocol) foi projetado especificamente para oferecer um fluxo de bytes fim a fim confiável em uma inter-rede não confiável.
  • 31.
    O modelo deserviço do TCP O serviço TCP é obtido quando tanto o transmissor quanto o receptor criam pontos extremos chamados soquetes.
  • 32.
    O modelo deserviço do TCP
  • 33.
    O modelo deserviço do TCP
  • 34.
  • 35.
    O estabelecimento deconexões TCP As conexões são estabelecidas no TCP por meio do handshake de três vias. Para estabelecer uma conexão, um lado servidor aguarda passivamente por uma conexão de entrada, executando as primitivas LISTEN e ACCEPT através da especificação de uma determinada origem ou de ninguém em particular.
  • 36.
    O estabelecimento deconexões TCP O outro lado — digamos, o cliente — executa uma primitiva CONNECT, especificando o endereço IP e a porta à qual deseja se conectar.
  • 37.
    O estabelecimento deconexões TCP
  • 38.
    Modelagem do gerenciamento de conexões do TCP Os estados usados na máquina de estados finitos para o gerenciamento de uma conexão TCP.
  • 40.
    Controle de congestionamento do TCP O primeiro passo para gerenciar o congestionamento é detectá-lo; Hoje em dia, a perda de pacotes devido a erros de transmissão é relativamente rara, porque a maioria dos troncos de longa distância é de fibra.
  • 42.
  • 43.
    Gerenciamento de timersdo TCP O TCP utiliza vários timers para realizar o trabalho.
  • 44.
    Timer de Retransmissão Quandoum segmento é enviado, um timer é ativado; Se chegar a confirmação de transmissão o timer é interrompido; Se não chegar a confirmação o segmento é retransmitido.
  • 45.
    Problema • Qual deveser o intervalo de timeout? • Pense na camada de enlace vs camada de transporte.
  • 46.
    Tempo Timeout O TCPencontra um ambiente radicalmente distinto se comparado com o ambiente da camada de enlace; Determinar um tempo de ida e volta não é uma tarefa fácil; Timeout mais curo ocorrerá restransmissão desnecessária; Timeout mais elevado comprometerá a execução;
  • 47.
    TCP e UDPsem fios Na teoria, os protocolos de transporte deveriam ser independentes da tecnologia da camada de rede em que se baseiam. Na prática a maioria das implementações do TCP foram otimizadas com todo o cuidado, de acordo com as suposições que são verdadeiras para as redes fisicamente conectadas.
  • 48.
    Perca de Pacote Supõeque o timeout ocorre devido a congestionamento, e não a perca de pacotes; O algoritmo de roteamento quando não recebe confirmação reduz o ritmo (afinal a idéia de Jacobson é reduzir o envio para reduzir o congestionamento); Para perca de pacotes o ideal é enviar novamente, porém se reduzir a taxa de envio piora.
  • 49.
    Redes Mistas Com frequência,o caminho entre o transmissor e o receptor não é homogêneo. Pode ser formado por linhas físicas associadas a redes sem fio.
  • 50.
    Solução Bakne • Asolução proposta por Bakne (1995), é denominada TCP indireto, consiste em dividir a conexão TCP em duas conexões separadas.
  • 51.
    TCP transacional Para RPCa aplicação requer obrigatoriamente o TCP por vários motivos, tais como: – Controle do fluxo; – Sequenciamento de mensagens grandes; – Garantia da entrega;
  • 52.
    TCP transacional • Apergunta que surge de imediato: • Existe algum modo de combinar a eficiência da RPC usando o UDP com a confiabilidade do TCP?
  • 53.
    TCP transacional • Aidéia central aqui é modificar ligeiramente a ̈ sequência normal de configuração da conexão, a fim de permitir a transferência de dados durante a configuração.
  • 54.
  • 55.
    Questões de Desempenho 1.Problemas de desempenho. 2. Medição do desempenho da rede. 3. Projeto de um sistema para proporcionar um desempenho melhor. 4. Processamento rápido de TPDUs. 5. Protocolos para as futuras redes de alto desempenho.
  • 56.
    Problema de Desempenho Afetamo desempenho: • Congestionamento causado por sobrecarga; • Desequilíbrio nos recursos estruturais; • Um pacote enviado com parâmetros errados (por exemplo TPDU) por difusão; • Após uma falha elétrica todas as máquinas ligam em paralelo.
  • 57.
    Medição do desempenhoda rede 1. Medir os parâmetros relevantes e o desempenho da rede. 2. Tentar entender o que está acontecendo. 3. Alterar um parâmetro.
  • 58.
    Medição do desempenhoda rede Medição do desempenho da rede Armadilhas que voce deve evitar: Certifique-se de que o tamanho da amostra é grande o bastante; Certifique-se de que as amostras são representativas; Tenha cuidado ao usar o clock do computador;
  • 59.
    Medição do desempenhoda rede Certifique-se de que nenhum evento inesperado está ocorrendo durante os testes; O uso de caches pode arruinar as medições; Entenda o que está medindo; Tenha cuidado para não extrapolar os resultados.
  • 60.