Profa. Débora C. Muchaluat Saade 1 Departamento de Ciência da Computação - UFF Nível de Transporte Portas, Protocolos UDP e TCP Profa. Débora Christina Muchaluat Saade [email protected]Disciplina : Redes de Computadores 3 Redes de Computadores Nível de Transporte 5 Redes de Computadores Camada de Transporte Aplicação Apresentação Sessão Transporte Rede Enlace Físico Rede Enlace Físico Rede Enlace Físico Aplicação Apresentação Sessão Transporte Rede Enlace Físico Host B Aplicação Apresentação Sessão Transporte Rede Enlace Físico Host A comunicação fim-a-fim 6 Redes de Computadores Camada de Transporte § Fornece meios para estabelecer, manter e liberar conexões de transporte no serviço orientado à conexão § Transporte de unidades de dados do serviço de transporte (SDUs ou mensagens) § Segmentação e blocagem § Detecção e correção de erros fim a fim § Sequenciação § Controle do fluxo de dados nas conexões de transporte § Multiplexação ou splitting Aplicação Apresentação Sessão Transporte Rede Enlace Físico 7 Redes de Computadores Services Provided to the Upper Layers The network, transport, and application layers. 8 Redes de Computadores Transport Service Primitives (2) The nesting of TPDUs, packets, and frames.
15
Embed
Nível de Transporte Portas, Protocolos UDP e TCP · 2017. 11. 28. · Profa. Débora C. Muchaluat Saade 3 32 Redes de Computadores Nível de Transporte na Arquitetura TCP/IP Portas
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
§ Fornece meios para estabelecer, manter e liberar conexões de transporte no serviço orientado à conexão
§ Transporte de unidades de dados do serviço de transporte (SDUs ou mensagens)
§ Segmentação e blocagem § Detecção e correção de erros fim a fim § Sequenciação § Controle do fluxo de dados nas conexões de
transporte § Multiplexação ou splitting
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace
Físico
7
Redes de Computadores
Services Provided to the Upper Layers
The network, transport, and application layers.
8
Redes de Computadores
Transport Service Primitives (2)
The nesting of TPDUs, packets, and frames.
Profa. Débora C. Muchaluat Saade 2
10
Redes de Computadores
Addressing
TSAPs, NSAPs and transport connections.
11
Redes de Computadores
Endereçamento
§ Associação do T-SAP ao SAP de rede • endereço hierárquico
– O endereço do SAP de rede pode ser um campo do endereço do SAP de transporte
• Endereço horizontal – Servidor de nomes
17
Redes de Computadores
Estabelecimento de Conexão Indevida
E1 E2
PC(1)
PC(2)
PC(2)
CC(2) CC(2)
D(1)
D(2) D(2)
PC(1)
CC(1) CC(1)
D(1)
PC - Pedido de Conexão CC - Confirmação da Conexão D - Dados
Timeout
18
Redes de Computadores
Estabelecimento de Conexões Utilizando Three-way Handshake
E1 E2
PC(a)
PC(a)
CC(b,a) CC(b,a)
D(a,b) D(a,b)
PC(i) = Pedido de conexão (seq=i) CC(j,i) = Confirmação de conexão (seq=j, ack=i) D(i,j) = Dados (seq=i, ack=j)
19
Redes de Computadores
R(j) = Rejeita conexão (ack=j) E1 E2
PC(a)
PC(b)
PC(b)
CC(c,b) CC(c,b)
D(b,c)
D(b,c) D(b,c)
PC(a)
CC(k,a) CC(k,a)
D(b,c) R(k)
R(k)
Timeout
Estabelecimento de Conexões Utilizando Three-way Handshake
22
Redes de Computadores
Protocolos de Transporte
§ Mesmas técnicas do nível de enlace agora aplicadas fim-a-fim
§ Controle de Fluxo
• Stop-and-Wait • Sliding Windows
§ Controle de Erro
• ARQ Automatic Repeat Request • Selective Repeat • Go Back N
Profa. Débora C. Muchaluat Saade 3
32
Redes de Computadores
Nível de Transporte na Arquitetura TCP/IP
Portas
33
Redes de Computadores
Inter-rede
Intra-rede Int. de adaptação
Dados encapsulados pelo datagrama IP
AP2 AP1
• Em geral, uma aplicação é o destinatário
final de uma mensagem
Identificação do destinatário final
§ Protocolo IP não possui um mecanismo próprio para endereçar mais de uma aplicação destino na mesma máquina • IP oferece um único SAP de rede • Solução: uma aplicação só acessa a rede via
camada de transporte
35
Redes de Computadores
Transporte TCP UDP
Inter-rede
Aplicação
Camada de Transporte
Função básica: multiplexação/ demultiplexação
36
Redes de Computadores
Multiplexação e Demultiplexação
Aplicação 1
IP
Aplicação 2
Porta 34 Porta 22
TCP/UDP Porta 126
37
Redes de Computadores
Identificação do destinatário final
§ Utilizar um esquema próprio para a camada de transporte e independente dos SOs • Camada de transporte fornece às aplicações um
conjunto de portas que dão acesso ao SC provido pelo IP
• Aplicação origem deve conhecer end. IP do host onde está a aplicação destino e porta a qual a aplicação está ligada
– (End. IP, Porta) em TCP/IP ⇔ T-SAP no OSI
38
Redes de Computadores
apl
apl
apl
apl
apl apl
apl
apl
apl
Aplicações Distribuídas
Endereçamento hierárquico em TCP/IP
G
Inter-rede
Rede B
Rede C
Rede A
H
H
H
H
H H
H
H
Profa. Débora C. Muchaluat Saade 4
39
Redes de Computadores
Portas
§ Identificadores numéricos de 16 bits (0 a 65535) § Antes de utilizar o UDP ou TCP, a aplicação deve
se associar a um número de porta (bind) • Identificação (End. IP, Porta) é comumente
chamada de socket • Berkeley sockets (Unix) e Winsock (Windows):
APIs que possibilitam a criação e uso de sockets em uma aplicação
UDP ou TCP 5 10 11 25 221 2430
40
Redes de Computadores
Protocolos de Transporte
§ Serviço sem conexão não confiável • Protocolo UDP
§ Serviço orientado a conexão confiável • Protocolo TCP
41
Redes de Computadores
Protocolo UDP
42
Redes de Computadores
Protocolo UDP (User Datagram Protocol)
§ Fornece serviço sem conexão fim-a-fim não confiável utilizando os serviços do protocolo IP diretamente
§ Permite a multiplexação/demultiplexação do SAP IP entre várias aplicações por meio de portas
§ Ideal para aplicações que não precisam de conexão • Menor tráfego e mais eficiência
43
Redes de Computadores
Formato da mensagem UDP
0 7 15 23 31
Octeto 1 Octeto 2 Octeto 3 Octeto 4
UDP SOURCE PORT UDP DESTINATION PORT UDP MESSAGE LENGTH UDP CHECKSUM
DATA . . .
46
Redes de Computadores
Porta 34 Porta 22
UDP Porta 126
Aplicação 1
IP
Aplicação 2
Multiplexação e demultiplexação UDP
§ Em um mesmo host, duas aplicações distintas podem usar a mesma porta (em tempos diferentes) • Portas UDP ⇔ Filas de
mensagens
§ Se a fila correspondente à porta estiver cheia, a mensagem UDP é descartada
§ Se uma mensagem UDP for endereçada a uma porta não utilizada no momento, a mesma é descartada e é gerada uma mensagem ICMP Port Unreachable
Profa. Débora C. Muchaluat Saade 5
47
Redes de Computadores
Uso de portas UDP
§ Aplicações devem entrar em acordo quanto às portas a serem utilizadas
§ Abordagem 1: • Números bem-conhecidos para serviços, atribuídos pela IANA
– Portas < 1024 (Well-Known Ports - WKPs)
• Geralmente utilizada por servidores – Exemplos:
53 DNS Server 69 TFTP 67/68 DHCP Server/Client
§ Abordagem 2: • Alocação dinâmica de portas (em geral, controlada de forma
aleatória pelo SO)
48
Redes de Computadores
Protocolo TCP
50
Redes de Computadores
Protocolo TCP (Transmission Control Protocol)
§ Multiplexação do SAP IP por meio de portas § Serviço orientado a conexão (circuito virtual) e confiável
• Sequenciação • Controle de fluxo e erro fim-a-fim
§ Transmissão de fluxos de bits • Menor unidade de transmissão: octeto
§ Desassociação da qtd. de dados enviados pela aplicação • Segmentação e blocagem
§ Conexão full-duplex • Fluxos independentes nas duas direções
52
Redes de Computadores
Conexão =
(139.82.17.10,22) + (139.82.55.3,2340) TCP
IP
TCP
IP
Porta 22 Porta 2340
Host 139.82.17.10 Host 139.82.55.3 Inter-rede
Multiplexação e demultiplexação TCP
§ Para o TCP, não basta associar uma porta a uma aplicação. É necessário o estabelecimento de uma conexão entre a aplicação origem e a aplicação destino • Uma conexão é identificada por um par de sockets • Uma porta pode ser compartilhada entre várias conexões em
E se o reconhecimento não chegar antes do timeout?
segmento a ser transmitido
2552 2001 SEQ ACK
900 WIN
...
Dados 1500 octetos
timeo
ut
Retransmissão
91
Redes de Computadores
Considerações a respeito da retransmissão
§ Novamente: reconhecimento especifica próximo OCTETO esperado pelo receptor • TCP não é obrigado a retransmitir o segmento
original. Ele pode transmitir um segmento resultante da união de dois ou mais segmentos consecutivos (repacketization), respeitando o tamanho máximo que um segmento pode ter
§ Configuração do timeout de retransmissão • Timeout pequeno: retransmissões desnecessárias • Timeout grande: baixo throughput
92
Redes de Computadores
Timeout e Retransmissão
§ Para acomodar as variações de atrasos que acontecem em um ambiente inter-rede, o TCP usa um algoritmo adaptativo de retransmissão que monitora os atrasos em cada conexão e ajusta seu parâmetro de timeout de acordo.
§ Variável básica para cálculo do timeout medida dinamicamente: • round trip time - tempo entre cada segmento
enviado e seu respectivo reconhecimento
93
Redes de Computadores
Definição do timeout de retransmissão
§ Variável básica: round-trip time (tempo entre cada segmento enviado e seu respectivo reconhecimento)
§ Exemplo de fórmula para cálculo adaptativo do RTT • RTT = (a * OLD_RTT) + ((1-a) * NEW_RTT_SAMPLE) • RTT inicial = 0 (RFC 1122)
§ Exemplo de fórmula para definição do timeout em função de RTT • Timeout = b x RTT
– b pode ser estático (2) ou obtido por outro algoritmo • Timeout inicial = 3 segundos • Timeout máximo = 240 segundos
§ Algoritmo de Jacobson (melhor resposta a altas variações de RTT) – usado pela maioria das implementações atuais do TCP • D = variância de RTT • D = yD + (1-y) | RTT – NEW_RTT_SAMPLE | • Timeout = RTT + 4D
94
Redes de Computadores
Cálculo do timeout
SEQ = 100
SEQ = 200
ACK = 300
SEQ = 300
SEQ = 400
Timeout = 3000 ms
NEW_RTT_SMP = 1000ms RTT = 500 ms
α = 0.5, β = 2 Tamanho dos segmentos = 100
Timeout = 1000 ms
ACK = 500 SEQ = 300
NEW_RTT_SMP = ?
Timeout esgotado
Ambiguidade de reconhecimento
95
Redes de Computadores
Ambiguidade de reconhecimento
§ Caso o reconhecimento do segmento chegue após a retransmissão do mesmo, como saber se o reconhecimento se refere ao segmento original ou a retransmissão para calcular o round trip time? • Solução: não considerar RTT de segmentos retransmitidos
– RTT pode permanecer indefinidamente inadequado
§ Algoritmo de Karn • Timer Backoff: toda vez que um segmento é retransmitido,
timeout é multiplicado por N (normalmente 2) • Quando é recebido o reconhecimento correspondente a um
segmento não retransmitido, RTT e Timeout são recalculados com base nos valores anteriores aos Backoffs
Profa. Débora C. Muchaluat Saade 12
96
Redes de Computadores
Algoritmo de Karn
SEQ = 100
SEQ = 200
ACK = 300
SEQ = 300
SEQ = 400
NEW_RTT_SMP = 1000ms RTT = 500 ms
SEQ = 500
ACK = 600
Timeout = 1000 ms
ACK = 500 SEQ = 300 Timeout = 2000 ms
Karn
NEW_RTT_SMP = 800 ms RTT = 650 ms
Timeout = 1300 ms
Timeout = 2000 ms
α = 0.5, β = 2 Tamanho dos segmentos = 100
97
Redes de Computadores
Considerações a respeito do controle de fluxo
§ Receptor informa WINDOW = 0 quando não consegue mais receber
§ Quando espaço é liberado, receptor envia atualização de janela com WINDOW > 0 • E se a atualização de janela for perdida ?
– Transmissor envia segmentos de um único octeto periodicamente (window probes) para testar tamanho da janela de recepção do receptor
• E se a aplicação receptora estiver lendo do buffer blocos de dados muito pequenos, em comparação com a taxa de envio do módulo TCP no transmissor ?
98
Redes de Computadores
Controle de fluxo
SEQ = 100
SEQ = 200
ACK = 300 WIN = 299
Apl. lê um octeto SEQ = 300
SEQ = 400
ACK = 500 WIN = 100
SEQ = 500
Tam
anho
dos
se
gmen
tos
= 10
0
... ACK = 600
WIN = 0
ACK = 300 WIN = 300
99
Redes de Computadores
Controle de fluxo (continuação)
SEQ = 500
Apl. lê um octeto
SEQ = 600
SEQ = 601
ACK = 601 WIN = 0
Apl. lê um octeto
ACK = 602 WIN = 0 ...
...
Tam
anho
dos
se
gmen
tos
= 1
Silly Window Syndrome
ACK = 600 WIN = 1
ACK = 600 WIN = 0
ACK = 601 WIN = 1
101
Redes de Computadores
Silly Window Syndrome
§ Solução no transmissor: algoritmo de Nagle • Quando uma aplicação gera novos dados a serem enviados em
uma conexão na qual dados anteriores foram transmitidos mas não reconhecidos, os novos dados são bufferizados, só sendo enviados quando:
– for possível completar um segmento de tamanho máximo OU
– os dados anteriores forem reconhecidos
103
Redes de Computadores
Silly Window Syndrome
§ Solução no receptor: solução de Clark • Só enviar uma atualização de janela informando WINDOW > 0
posteriormente a uma atualização de janela informando WINDOW = 0 quando buffer de recepção estiver com espaço livre igual a:
– pelo menos 50% do buffer OU
– espaço correspondente a um segmento de tamanho máximo
Profa. Débora C. Muchaluat Saade 13
104
Redes de Computadores
Colapso de congestionamento
Controle de congestionamento
§ Controle de fluxo do TCP é fim-a-fim, mas pode ocorrer congestionamento em qualquer roteador
§ Sliding Window não garante que o TCP contribua no controle de congestionamento • Roteadores na iminência de congestionamento • Aumento do RTT • Retransmissões devido a reconhecimentos atrasados • Aumento da carga nos roteadores congestionados
– Descarte de datagramas (dados e ACKs) em roteadores congestionados
105
Redes de Computadores
Colapso de congestionamento
§ Solução: TCP assume que grande parte das perdas de segmentos se deve a congestionamento
§ É associado ao transmissor uma janela de congestionamento, que limita a transmissão de segmentos • Janela de congestionamento inicial: 1 segmento • Vazão da conexão cresce com o aumento da janela de
congestionamento, que em condições normais mantém seu tamanho igual ao da janela de recepção do receptor
§ Em caso de retransmissão, a janela de congestionamento é reduzida ao seu tamanho inicial • Algoritmo de Karn é utilizado exponencialmente
106
Redes de Computadores
Como aumentar a vazão da conexão ?
§ Algoritmo de Slow Start • Para cada reconhecimento recebido (de um segmento não
retransmitido), a janela de congestionamento é aumentada de um segmento (de tamanho máximo)
§ Em condições “ideais”, o algoritmo de Slow Start pode levar a um crescimento exponencial da janela de congestionamento • Sobrecarga na rede pode reiniciar congestionamento • Solução: técnica de prevenção contra congestionamento
– Quando a janela de congestionamento atinge metade de seu tamanho anterior à última retransmissão, o TCP passa a aumentar a janela de congestionamento somente quando TODOS os segmentos internos à janela forem reconhecidos
107
Redes de Computadores
Slow Start
Tamanho dos segmentos = 1Kb Janela de Recepção = 64 Kb
0
8
16
24
32
40 1 3 5 7 9 11
13
15
17
19
21
23
25
Número da transmissão
Jane
la d
e co
nges
tiona
men
to
(Kby
tes)
108
Redes de Computadores
Slow Start
§ Algoritmo de Slow Start reduz drasticamente a vazão de uma conexão TCP
§ Melhoria: técnica de decréscimo multiplicativo • Em caso de retransmissão, a janela de congestionamento é
reduzida pela metade, até o mínimo de um segmento de tamanho máximo
109
Redes de Computadores
Slow Start + Decréscimo Multiplicativo
Tamanho dos segmentos = 1Kb Janela de Recepção = 64 Kb
0
8
16
24
32
40
1 3 5 7 9 11
13
15
17
19
21
23
25
Número da transmissão
Jane
la d
e co
nges
tiona
men
to
(Kby
tes)
Profa. Débora C. Muchaluat Saade 14
110
Redes de Computadores
• Após estouro de temporizador– CongWin é reduzida a 1 MSS; – Janela cresce exponencialmente: volta à partida lenta
– Até um limiar (ssthresh), depois cresce linearmente• Após 3 ACKs duplicados: duas possibilidades
– Similar quando há estouro do temporizador ou corta CongWin pela metade, se implementa a recuperação rápida
– A janela depois cresce linearmente
1. 3 ACKs duplicados indica que a rede é capaz de entregar alguns segmentos
2. Estouro de temporizador antes de 3 ACKs duplicados é mais “alarmante”
Controle de Congestionamento do TCP - Adaptações
111
Redes de Computadores
• Quando a CongWin está abaixo do limiar ssthresh– Transmissor está na fase de partida lenta– Janela cresce exponencialmente
• Quando a CongWin está acima do limiar ssthresh– Transmissor está na fase de prevenção de congestionamento– Janela cresce linearmente
• Quando chegam três ACKs duplicados– Limiar passa a ser CongWin/2 e CongWin = valor do limiar– Recuperação rápida
• Quando estoura o temporizador– Limiar é ajustado para CongWin/2 e CongWin = 1 MSS
Controle de Congestionamento do TCP - Resumo
112
Redes de Computadores
• Tahoe – Original (slow start, congestion avoidance, fast retransmit)