R d d C
t d
F
RGS
Redes de Computadores
c
a
-U
F
Nível de Transporte
o
rmáti
c
d
e Inf
o
tituto
d
Ins
t
Aula 20
Trabalho sob a Licença Atribuição-SemDerivações-SemDerivados 3.0 Brasil Creative Commons.Para visualizar uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/3.0/br/
Nível de transporte
p
Protocolo nível de apresentação Protocolo nível de aplicação
Aplicação Aplicação
Protocolo nível de sessão Protocolo nível de apresentação
Sessão Apresentação Sessão Apresentação U FRGS P t l í l d d Protocolo nível de transporte
Transporte Transporte rmática -U .0 6.17 Enlace Protocolo nível de enlace
Protocolo nível de rede
Enlace Rede Rede u to de Info . Carissimi -1 5 Enlace
Protocolo nível de físico Físico Enlace Físico Instit u Redes de Computadores 2 (c) A
Introdução
ç
Motivação
Complexidade das redes (diversidade e quantidade de dispositivos)
H t id d di iti l t l i
Heterogeneidade dispositivos, enlaces e tecnologias
Objetivo:
Tornar complexidade transparente aos processos de aplicação
U
FRGS
Tornar complexidade transparente aos processos de aplicação Esconder detalhes e fornecer uma visão simplificada Fornecer comunicação lógica entre processos de aplicação
rmática
-U
.0
6.17
ç g p p ç
Camada de rede oferece comunicação lógica entre hospedeiros
u to de Info . Carissimi -1 5 Pi Pj Instit u (c) A
Contexto dos protocolos de transporte na Internet
p
p
Usuários (processos)(p )
do Serviço de transporte
(fim a fim)
Protocolo nível de transporte
Transporte Transporte U FRGS Rede Rede rmática -U .0 6.17 Fí i Enlace Físico Enlace u to de Info . Carissimi -1 5 Físico Físico Rede Instit u (c) A
Principais pontos
p
p
Serviços são oferecidos pela camada de transporte
Orientados a conexãoNã i t d ã
Não orientado a conexão
Construídos sobre recursos abstratos (virtuais)
Entidade de transporte (TSAP)U
FRGS
Entidade de transporte (TSAP)
Canal lógico (noções de conexão ou de ponto de comunicação)
Serviços da entidade de transporte são
rmática
-U
.0
6.17
Serviços da entidade de transporte são
Executados nos sistemas finais Disponibilizados às camadas superiores através de chamadas de sistema
u to de Info . Carissimi -1 5
Ex.: no TCP/IP corresponde a chamadas de funções da interface de
sockets
Instit
u
Redes de Computadores 5
(c) A
Principais Serviços (modelo OSI)
p
ç (
)
Encapsulamento e desencapsulamento
Multiplexação e demultiplexação
Controle de fluxo
Controle de erro
U FRGS
Controle de congestionamento
Orientados a conexão e não orientados a conexão
rmática -U .0 6.17
Segurança
Qualidade de serviço
u to de Info . Carissimi -1 5 Instit u Redes de Computadores 6 (c) AEncapsulamento e desencapsulamento
p
p
Inserção/retirada de informações de controle da camada de transporte
Ex.: número de sequência, controle de fluxo e de erro
Considera fragmentação e remontagem
U FRGS Pi 5 Pj 5 Protocolo camada 5* rmática -U .0 6.17 4 4 Carga útil (payload) T-PDU u to de Info . Carissimi -1 5
cabeçalho Canal lógico
*L b d d l TCP/IP d i
Instit
u
Redes de Computadores 7
(c) A
*Lembrando que no modelo TCP/IP a camada superior ao transporte é a camada de aplicação (7)
Multiplexação e demultiplexação
p
ç
p
ç
Multiplexação
Uma única entidade recebe dados de
Demultiplexação
Uma única entidade encaminha dados
P1 P P
várias origens (muitos para um)
P1 P2 Pn
para mais de um destino (um para muitos)
U FRGS 1 P2 Pn 1 2 n rmática -U .0 6.17 Camada 4 Camada 4 u to de Info . Carissimi -1 5
As entidades de transporte são identificadas por
S ( S ) TCP (Proto 06), UDP (Proto 17) → Para IP
Instit
u
Redes de Computadores 8
Controle de fluxo
Objetivo é evitar a perda de dados do lado consumidor (destino)
Comunicação é uma relação produtor-consumidor
Emissor produz dados que são consumidos pelo destino Problema: taxa de produção maior que a taxa de consumo
F
d
t
U FRGS
Formas de entrega:
Pushing Pulling rmática -U .0 6.17 1 2 2 1 solicita Controle de fluxo u to de Info . Carissimi -1 5Produtor 1 Consumidor Produtor 2 Consumidor envia envia explícito implicito Instit u Redes de Computadores 9 (c) A explícito implicito
Na prática....
p
P1 P2 Produtor Consumidor Consumidor Produtor PULL PUSH PUSH * * solicitação(1) (2) U FRGS Transporte 4 4 Transporte Produtor Consumidor PUSH Dados armazenados em rmática -U .0 6.17Dados são armazenados em buffer (controle de fluxo)
Controle de fluxo buffer (bloqueio ou erro no
processo) u to de Info . Carissimi -1 5
*Sistema operacional com a noção de chamadas de sistema realiza um tipo de controle de fluxo
)
Instit
u
Redes de Computadores 10
(c) A
realiza um tipo de controle de fluxo.
Controle de erro
O controle de erro necessita identificar
Quais T-PDUs devem ser reenviadas (erro ou perda), estão duplicados ou estão fora de ordem
estão fora de ordem
Responsável por
Detectar e descartar T-PDUs com erro
U
FRGS
Detectar e descartar T PDUs com erro
Identificar T-PDUs faltantes e solicitar seu reenvio (ou reenvio por timeout) Reconhecer T-PDUs duplicadas e descartá-las
rmática
-U
Armazenar T-PDUs de forma a garantir a entrega na ordem, sem erros, sem duplicação para o destino final (processo de aplicação)
B
d
ú
d
ê i
fi
õ
.0
6.17
u
to de
Info
Baseado em número de sequência e em confirmações
. Carissimi -1 5 Instit u (c) A
Números de sequência
q
Identificam T-PDUs
TPDU-s são numerados sequencialmente na sua origem
P ibilid d d id tifi d “l ” ú d ê i d id Possibilidade de identificador “lacunas” nos números de sequência devido a
perdas e chegada fora de ordem
Possibilidade de detectar duplicação ao receber duas T-PDUs com o mesmo
U FRGS p ç número rmática -U .0 6.17
Questão associada: quantos bits se usa para o número de sequência?
Evitar confusão entre um “novo zero” e a retransmissão de um “velho zero”
u to de Info . Carissimi -1 5 Instit u (c) A
Confirmação
ç
Controle de erros é feito através de confirmações
Positivas: quando uma T-PDU foi recebida corretamenteN ti d T PDU ã f i bid t t
Negativas: quando uma T-PDU não foi recebida corretamente
Confirmações são associadas a números de sequência
A õ b T PDU
U
FRGS
Ações sobre T-PDUs
Recebidas sem erros: se tudo OK, confirma sua recepção correta Se duplicada: descarta e confirma sua recepção
rmática
-U Se duplicada: descarta e confirma sua recepção
Se fora de ordem: ordena e confirma a recepção das T-PDUs ordenadas Se faltando: armazena e espera chegar a que falta
.0
6.17
u
to de
Info Recebidas com erro: são descartadas no destino e reenviadas por pedidos
explícitos ou por timeout
. Carissimi -1 5 Instit u Redes de Computadores 13 (c) A
Segurança
g
ç
Mecanismos de segurança
Autenticação C t l d ( t i ã ) Controle de acesso (autorização) Confidencialidade
Os serviços/protocolos são classificados em seguros e inseguros
U
FRGS
Os serviços/protocolos são classificados em seguros e inseguros
rmática -U .0 6.17 u to de Info . Carissimi -1 5 Instit u Redes de Computadores 14 (c) A
Qualidade de serviço (QoS)
Q
ç (Q )
Serviços que permitem definição de parâmetros de funcionamento
Vazão, latência, variação do atraso (jitter), taxa de perda etc
Normalmente são parâmetros das camadas inferiores que são
mapeados na camada de transporte
Se não são ofertados pela camada N 1 não há como uma camada N fazer
U
FRGS
Se não são ofertados pela camada N-1, não há como uma camada N fazer garantias para uma camada superior N+1
rmática -U .0 6.17 u to de Info . Carissimi -1 5 Instit u Redes de Computadores 15 (c) A
Estudo de casos: protocolos Internet
p
Protocolo UDP
Não possui controle de fluxo, nem faz controle de erro
Há d t ã d d t i di id l
Há apenas detecção de erro em um datagrama individual
Protocolo TCP
Realiza controle de fluxo (esquema de créditos)
U
FRGS
Realiza controle de fluxo (esquema de créditos)
Realiza controle de erro via confirmações positivas e transmissões por timeout Mecanismos baseados em números de sequência
rmática
-U q
Tanto o TCP quanto o UDP
são protocolos inseguros.0
6.17
u
to de
Info não oferecem mecanismos de QoS
. Carissimi -1 5 Instit u Redes de Computadores 16 (c) A
Modelo de T-PDUs
Orientado a mensagem
Os dados são delimitados em T-PDUs independentes
Sequência contínua (byte stream)
Não há delimitação de T-PDUsT PDU ã i t l i d independentes
Modelo usado na camada de transporte da Internet (UDP)
T-PDUs são inter-relacionadas Modelo empregado na camada de
transporte da Internet (TCP)
U
FRGS
T-PDU é denominada de datagrama T-PDU é denominada de segmentop ( )
rmática -U .0 6.17 Pi Rede Pj Pi Rede Pj u to de Info . Carissimi -1 5
Nro send = nro recv Nro send ≠ nro recv
Instit
u
Redes de Computadores 17
(c) A
Multiplexação e demultiplexação: O conceito de porta
p
ç
p
ç
p
É um número de 16 bits utilizado como identificador Existem três tipos de portas [RFC 6335]
Bem conhecidas (well know ports ou system ports): 1 a 1023
Porta 20 21 Protocolo TCP TCP Aplicação FTP-data
FTP-control Bem conhecidas (well know ports ou system ports): 1 a 1023
Registered ports ou user ports): 1024 a 49151
Listadas para coordenar o uso de serviços não padrão
25 53 80 110 TCP TCP/UDP TCP TCP SMTP DNS HTTP POP3 U FRGS
Dynamics and/or private ports: 49152 a 65535 Portas podem estar em um de três estados
Assigned reserved ou unassigned (dynamic ports)
110 161 UDPTCP SNMPPOP3 rmática -U .0 6.17
Assigned, reserved ou unassigned (dynamic ports)
http://www.iana.org/assignments/port-numbers
Portas TCP são independentes de Portas UDP IP TCP UDP u to de Info . Carissimi -1 5
Porta 100 (TCP) ≠ Porta 100 (UDP), mas se convenciona “alocar” as duas simultaneamente para um mesmo protocolo
Internet Protocol Interface de rede Instit u Redes de Computadores 18
(c) A Conceito de portas é como o TCP e o UDP multiplexam
e demultiplexam seu uso pela camada de aplicação.
Formato do datagrama UDP
g
S P t D ti ti P t 32 bits IP Header DATA DATA Tr a
Source Port Destination Port length Checksum DATA DATA asnferênci a U FRGS a Cabeçalho IP Cabeçalho 802.3 rmática -U .0 6.17
Data Cabeçalho IPCabeçalho UDP
u to de Info . Carissimi -1 5
Área de dados UDP
Instit
u
(c) A PDU – Protocol Data Unit
Área de dados 802.3Área de dados IP
Área de dados UDP
Formato do segmento TCP
g
32 bit
Controle de erro e fluxo Garantia de entrega e de ordem
Gerenciamento da conexão Source Port Destination Port
32 bits
IP Header
Urgent pointer Ack
Gerenciamento da conexão Source Port Destination Port
Hlen Flags Window Sequence Number Acknowledgment Number Ack Push Rst Syn U FRGS
Hlen Flags Window Checksum Urgent Pointer
Options+padding Syn Fin Cabeçalho TCP Cabeçalho IP Cabeçalho 802.3 rmática -U .0 6.17 Data u to de Info . Carissimi -1 5
PDU – Protocol Data Unit Á d d d 802 3 Área de dados IP Área de dados TCP Instit u (c) A
PDU – Protocol Data Unit Área de dados 802.3
Controle de fluxo do TCP
Baseado em um esquema de crédito (genérico)
Variação de janela deslizante onde os buffers de transmissão e recepção são de tamanho variável (blocos múltiplos de bytes = segmentos TCP)
de tamanho variável (blocos múltiplos de bytes = segmentos TCP) Emissor tem crédito para enviar até n bytes ao destino
Segmento ao ser aceito (processado), o destino renova a quantidade de
U
FRGS
g (p ), q
créditos por um valor c (0 < c ≤ n) Créditos podem ser renegociados
T h d j l é i d t b l i t d ã (M i
rmática
-U
.0
6.17
Tamanho da janela é negociado no estabelecimento da conexão (Maximum
Segment Size – MSS). (valor default é 536 bytes para Ethernet)
Confirmações (ACKs) servem para renovar os créditos
u to de Info . Carissimi -1 5 ç ( ) p Instit u Redes de Computadores 21 (c) A
Janela de transmissão e recepção no TCP
pç
Sistema de créditos
Capacidade de buffer no receptor
J l d t i ã ã
Janelas de transmissão e recepção
Próximo a ser lido Recebidos, mas
ainda não lidos SendWindow = SndBuffer – [NextByteSend – LastByteWrite]
U
FRGS
Último byte escrito
ainda não lidos
rmática
-U
.0
6.17 Próximo a ser
E it i d
Último byte recebido
R Wi d R B ff [L tB t R d L tB t R d] u to de Info . Carissimi -1 5 enviado Escritos mas ainda
não enviados
RecvWindow = RcvBuffer – [LastByteRcvd – LastByteRead]
C édit Q tid d d b t í l d bid
Instit
u
Redes de Computadores 22
(c) A Créditos = Quantidade de bytes possível de ser recebida
Controle de sequência no TCP
q
Garante a recepção dos dados na ordem da emissão e sem
duplicação
C d b t
i d
i
ú
d
ê i
i d
Cada byte enviado possui um número de sequência associado
O segmento TCP é identificado pelo número de sequência do seu
primeiro byte
U FRGSprimeiro byte
399 rmática -U .0 6.17 150 151 198 199 SN=150 SN=200 Próximo a receber SN=400 OU u to de Info . Carissimi -1 5 Segmento 150 Próximo a receber Segmento 200 SN=150 SN=400 Instit u Redes de Computadores 23 (c) AConfirmação positiva (ACK)
ç
p
(
)
Baseado no valor no campo acknowledge number (ACK)
Indica o número de sequência dos bytes já processados pela aplicaçãoI f t i ó i b t bid
Informa ao transmissor o próximo byte a ser recebido TCP não faz confirmação negativa
U FRGS 150 151 198 199 200 201 348 349 350 351 448 449 SN=150 SN=200 SN 350 rmática -U .0 6.17 ACK=200 SN=150 SN=200 SN=350 ACK=350 ACK=450 SN=150 Questão paralela: u to de Info . Carissimi -1 5 ACK=200 SN=200 Questão paralela:
Como TCP sabe o tamanho da área de dados? Tamanho T-PDU (informado no IP) – Tamanho
Instit
u
Redes de Computadores 24
(c) A ACK=350
Tamanho T PDU (informado no IP) Tamanho do cabeçalho TCP
Controle de erros
Objetivo:garantir o recebimento correto dos segmentos
Sem erros, na ordem, sem duplicação
Baseado em:
Baseado em:
Confirmação positiva (ACK), similar ao go-back N, ou seletiva (SACK) RFC 2018, permite o reconhecimento seletivo (similar ao selective repeat)
U
FRGS
p ( p )
Retransmissão por time-out
Ações nos segmentos TCP com problemas
rmática
-U
.0
6.17
Recebidos com erro ou duplicados são descartados Perdidos são retransmitidos por time-out
Fora de ordem são armazenados em buffer até ser possível reordenar
u
to de
Info
. Carissimi
-1
5 Fora de ordem são armazenados em buffer até ser possível reordenar
Instit
u
Redes de Computadores 25
(c) A
Retransmissão
O protocolo TCP emprega timeout por segmentos
Processo origem dispara um timeout para cada segmento enviado
S t é t itid d i ã b fi ã t
Segmento é retransmitido quando a origem não recebe a confirmação antes da expiração do temporizador
Tratamento da duplicação é feito pelo sequence number
U
FRGS
Tratamento da duplicação é feito pelo sequence number
Destino espera segmento com número x, qualquer segmento com número inferior é considerado duplicado e é descartado
rmática -U .0 6.17 u to de Info . Carissimi -1 5 Instit u Redes de Computadores 26 (c) A
Controle de fluxo e congestionamento no TCP
g
O controle de fluxo evita a perda de dados no receptor final, porém
pode haver sobrecarga (overflow) em buffers dos sistemas intermediáriost l d fl é fi fi ( TCP) ti t i controle de fluxo é fim a fim (como o TCP), o congestionamento seria um
problema do IP (por tratar de intermediários)
Como o IP não faz controle de congestionamento, o TCP faz no seu lugar
U
FRGS
g , g
Estratégia de detecção
Ocorrência de dois eventos: expiração de time-out e quatro ACKs iguais
rmática
-U
.0
6.17
Time-out: considera que perda ocorreu devido a congestionamento ACKs iguais: implica que segmento está faltando, porém três segmentos
posteriores foram recebidos
u
to de
Info
. Carissimi
-1
5 posteriores foram recebidos
Instit
u
(c) A
Controle de congestionamento no TCP
g
Baseado em uma nova janela (congestionamento)
Tamanho da janela = MIN (janela de recepção; janela de congestionamento)
Janela de congestionamento (cwnd – congestion window)
Inicia com cwnd = 1 * MSS (Maximum Segment Size) Para cada ACK cwnd = cwnd + 1*MSS
U
FRGS
Para cada ACK, cwnd = cwnd + 1*MSS
Algoritmo denominado de partida lenta (slow start)
Há ainda algoritmos
rmática
-U
Há ainda algoritmos
Prevenção de congestionamento (congestion avoidance) Recuperação rápida (fast recovery)
.0 6.17 u to de Info . Carissimi -1 5
Detalhes desse funcionamento na disciplina de protocolos!!
Instit
u
Leituras complementares
p
Stallings, W. Data and Computer Communications (6
thedition),
Prentice Hall 1999.
C ít l 15 ã 15 3 15 4 Capítulo 15, seção 15.3, 15.4
Tanenbaum, A. Redes de Computadores (4
aedição), Campus,
2000
U
FRGS
2000.
Capítulo 6, seção 6.1, 6.2 e 6.3
Carissimi A ; Rochol J; Granville L Z; Redes de Computadores
rmática
-U
.0
6.17
Carissimi, A.; Rochol, J; Granville, L.Z; Redes de Computadores.
Série Livros Didáticos. Bookman 2009.
Capítulo 6, seções 6.1 a 6.3 u to de Info . Carissimi -1 5 Instit u Redes de Computadores 29 (c) A