O documento discute as camadas de transporte em redes de computadores, incluindo os protocolos TCP e UDP. Ele explica como as conexões são estabelecidas e encerradas na camada de transporte e como o controle de fluxo e congestionamento são gerenciados. Também aborda questões como chamadas de procedimento remoto, medição de desempenho de rede e protocolos para redes de alto desempenho.
4. 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?
8. 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.
12. 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.
13. 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);
14. 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;
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.
19. 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.
20. (a) Buffers de tamanho fixo encadeados. (b)
Buffers de tamanho variável encadeados. (c)
Um grande buffer circular por conexão.
22. 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.
23. 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.
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.
28. 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.
30. 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.
31. O modelo de serviço do TCP
O serviço TCP é obtido quando tanto o
transmissor quanto o receptor criam pontos
extremos chamados soquetes.
35. 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.
36. 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.
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.
39.
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.
44. 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.
45. Problema
• Qual deve ser o intervalo de timeout?
• Pense na camada de enlace vs camada de
transporte.
46. 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;
47. 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.
48. 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.
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
• A solução proposta por Bakne (1995), é
denominada TCP indireto, consiste em dividir a
conexão TCP em duas conexões separadas.
51. 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;
52. 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?
53. 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.
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
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.
57. 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.
58. 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;
59. 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.