Camada de Transporte
Camada de Transporte
Camada de Transporte
Rede de computadores
Nota.:
Redes de Computadores 2
Capítulo 6 – Nível de transporte
Redes de Computadores 3
Nível de transporte
Redes de Computadores 4
Introdução
• Objetivo:
• Funcionalidades:
– Multiplexação e demultiplexação
Redes de Computadores 5
Contexto do protocolo de transporte
Usuários (processos)
do
Serviço de transporte
(fim a fim)
Rede Rede
Enlace Enlace
Físico Físico
Rede
Redes de Computadores 6
Multiplexação e demultiplexação
Camada de transporte
Demultiplexação da camada de Multiplexação da camada de
rede para a camada de transporte rede pela camada de transporte
Camada de rede
Redes de Computadores 7
Demultiplexação na Internet
Redes de Computadores 8
O conceito de porta
• É um número de 16 bits utilizado como
identificador
Porta Protocolo Aplicação • Existem dois tipos de portas
20 TCP FTP-data
– Bem conhecidas (well know ports): 1 a 1.023
21 TCP FTP-control
25 TCP SMTP – Efêmeras (ephemeral ports)
53 TCP/UDP DNS • Registered ports: 1.024 a 49.151
80 TCP HTTP • Dynamics and/or private ports: 49.152 a
110 TCP POP3 65.535
161 UDP SNMP • http://www.iana.org/assignments/port-
numbers
• Uma aplicação é completamente identificada por:
TCP UDP
– Endereço IP
– Protocolo (TCP ou UDP)
IP
Internet Protocol – Número de porta
• Portas TCP são independentes de Portas UDP
Interface de – Porta 100 (TCP) ≠ Porta 100 (UDP), mas se
rede convenciona “alocar” as duas
simultaneamente para um mesmo protocolo
Redes de Computadores 9
Serviço não orientado à conexão
Redes de Computadores 10
User Datagram Protocol (UDP)
Redes de Computadores 11
Formato do datagrama UDP
32 bits
IP Header DATA
Trasnferência
Source Port Destination Port DATA
Length Checksum
DATA
Cabeçalho 802.3
Cabeçalho IP
Cabeçalho UDP
Data
Redes de Computadores 13
Serviço orientado a conexão
• Serviço confiável
• Três objetivos:
– Garantir que o correspondente existe
– Negociar parâmetros (e.g.: tamanho de T-PDUs, créditos, QoS,
início do número de sequência, etc.)
– Reservar recursos nas entidades de transporte envolvidas (e.g.:
buffers, identificadores de conexão)
• Consiste na troca de T-PDUs de controle (SYN, FIN)
– Diferentes estados (CLOSED, ESTAB, LISTEN)
• Entidades de transporte podem:
– Esperar passivamente por pedido de abertura de conexão
– Iniciar ativamente um pedido de abertura de conexão
Redes de Computadores 15
Estabelecimento de conexões: cenários
Sistema A Sistema B
SYN funciona como solicitação
(cliente/servidor) (cliente/servidor)
de abertura de conexão e como
confirmação de um pedido de CLOSED CLOSED
conexão
SYN (Active open) SYN SYN Active open
Active open
LISTEN SYN
ATENÇÃO: não considera erros, (Passive open)
nem atrasos! (a completar) ESTAB SYN
ESTAB
Redes de Computadores 16
Diagrama básico de estados de conexão
Redes de Computadores 17
Encerramento de uma conexão
Redes de Computadores 18
Encerramento simétrico e assimétrico
Simétrico Assimétrico
FIN
FIN*
FIN
CLOSE
WAIT FIN WAIT
CLOSED
FIN DATA
Redes de Computadores 19
Transmission Control Protocol (TCP)
Redes de Computadores 20
Serviços oferecidos pelo TCP a aplicativos
Redes de Computadores 21
Segmento TCP
Data
Redes de Computadores 22
Os campos mais simples primeiro: hlen, flags...
• Hlen
– Fornece o tamanho do cabeçalho TCP em múltiplos de 4 bytes
(palavra)
• Tipicamente assume o valor 5 (20 bytes), exceto quando há
options
• Flags
– Indica o propósito e o tipo do segmento
• URG: segmento transporta dados urgentes
• ACK: segmento transporta uma confirmação positiva
• PSH: mecanismo push foi adotado no envio do segmento
• RST: a conexão deve ser imediatamente abortada (reset)
• SYN: segmento transporta requisição de abertura de conexão
• FIN: segmento transporta requisição de encerramento da
conexão
Redes de Computadores 23
...checksum, options e padding
• Checksum
– Verificação da integridade dos dados (complemento de 1 em 16
bits)
– Calculado sobre um pseudocabeçalho (IP destino, IP fonte, campo
protocolo, tamanho da TPDU e a constante zero), o cabeçalho TCP
e os dados
• Options
– Lista variável de informações e parâmetros para o TCP
– Usado principalmente para definir o tamanho máximo de um
segmento (MSS)
• Padding
– Usado para “arrendondar” o número de bytes do cabeçalho para
este ter sempre um número inteiro de palavras de 32 bits.
Redes de Computadores 24
Conexão TCP
SYN
Estabelecimento
SYN/ACK
ACK
Transferência
acknowledgement number,
window e urgent pointer são DATA/ACK
usados nos mecanismos de Aula de hoje
ACK
controle de erro e de fluxo
(ordenamento). FIN
Encerramento
ACK
FIN
ACK
Redes de Computadores 25
TCP: Controle de seqüência
• Objetivo:
– Garantir que dados são recebidos na ordem em que foram
emitidos (e sem duplicação)
• O protocolo TCP faz isso através de um número de sequência
– Número inicial é negociado durante o estabelecimento da conexão
– Cada byte possui um número de sequência
– Indica sempre o primeiro byte de dados contido no segmento
– É o número que está no campo sequence number (SN)
• Usado para manter ordenamento e detectar duplicação
150 151 198 199 200 201 348 349 350 351 448 449
Segmento 150 Segmento 200 Segmento 350
Redes de Computadores 26
TCP: Controle de erros
• Objetivo:
– Garantir o recebimento correto de T-PDUs
• No protocolo TCP é baseado em
– Confirmação positiva (ACK)
• Destino envia mensagem acusando correto recebimento de um
segmento
• Confirmação (ACK) pode ser enviada em pigbacking com o
fluxo de dados no sentido inverso
– Confirmação acumulativa
• Diversos segmentos consecutivos podem ser confirmados por
uma única mensagem
– Retransmissão por timeout
Redes de Computadores 27
TCP: Confirmação positiva
150 151 198 199 200 201 348 349 350 351 448 449
SN=150 SN=200 SN=350
Redes de Computadores 28
TCP: Retransmissão
Redes de Computadores 29
TCP: Controle de fluxo
Redes de Computadores 30
Campo window: controle de fluxo
Redes de Computadores 31
Transferência de dados
Redes de Computadores 32
Sessão TCP: abertura e encerramento
Redes de Computadores 33
Sessão TCP: controle de fluxo
Redes de Computadores 34
Introdução
• TCP é um protocolo orientado à conexão
– Abertura de conexão são negociados parâmetros, entre eles o
número de sequência do segmento
• Problemas: erros acontecem e há atrasos na rede
– Pedidos de abertura podem ser perdidos ou chegarem atrasados
– Como diferenciar segmentos de uma conexão i daqueles de uma
conexão i+1
SYN
SYN
SN = 1
SN=1, ACK=101
SN = 101, ACK = 50
Redes de Computadores 35
Conexão na presença de erros: problemas
• Estabelecimento da conexão
– Baseado em dois TPDUs SYN (two way handshake)
• Perda de qualquer um dos SYN provoca retransmissão (tratar
duplicados)
– Sistema se ressincroniza
• Chegada atrasada da T-PDU SYN provoca interpretação erradas
de conexão
• Transferência de dados: controle de fluxo e de erro
– TPDUs ainda válidos de conexões anteriores chegando atrasadas
• Encerramento da conexão
– Chegada de pedidos de encerramento atrasados
– Encerramento feito antes de receber todos os segmentos de dados
Redes de Computadores 36
Problema: segmentos de conexões anteriores
• Solução:
– Iniciar cada conexão com um
número de seqüência a partir do
último da conexão mais recente
– TPDUs SYN incluem números
de seqüência
– SYN i
Redes de Computadores 37
Mais problemas: atraso na T-PDU de controle
• T-PDU que chega atrasado é um T-PDU SYN i
Redes de Computadores 38
Three-way handshake
Redes de Computadores 39
Estabelecimento de conexão
Host 1 Host 2
Redes de Computadores 40
Three Way Handshake: Exemplos
Redes de Computadores 41
Ainda problemas: Encerramento de conexão
PERDA !!!
(SN=i; m)
Espera dados chegarem antes (FIN i+m+1)
de encerrar a conexão.
Redes de Computadores 42
Encerramento de conexão (cont.)
FIN seq =x
Recebe FIN seq = x
Envia ACK = x+1
Recebe ACK = x + 1
...
Envia FIN seq = y ACK = x+1
Recebe FIN seq=y ACK=x+1
Envia ACK=y+1
Recebe ACK=y+1
Redes de Computadores 43
Recuperação de falhas (crash recovery)
CRASH CRASH
Timeout (SN=i, m) (SN=i, m)
Timeout
REBOOT
(SN=i, m)
Timeout
(SN=i, m)
Timeout (SN=i, m)
(RST i)
REBOOT
Reseta a meia conexão por excesso de Reseta a meia conexão por receber
retransmissões comando de reset (RST)
Redes de Computadores 44
Visão da camada de transporte pela camada aplicação
Redes de Computadores 45
Interface de socket
• Define uma interface entre a aplicação e as entidades de transporte
Redes de Computadores 46
Endpoints
• Endpoint local
– Criado, por default, com o endereço IP especial 0.0.0.0 e uma
porta arbitrária
– Pode ser atribuído uma porta e endereço IP específicos
• Tipicamente, servidor configura porta específica e cliente usa
uma porta selecionada pelo sistema operacional
– Pode participar de várias comunicações com endpoints remotos
distintos
• Endpoint remoto
– Criado, por default, com endereço IP especial 0.0.0.0 e porta ANY
(*)
– Pode ser atribuído um endereço IP e uma porta específica
• Cliente (UDP ou TCP) deve especificar endereço IP e a porta
do servidor
• Servidor UDP pode configurar um endereço IP e porta
específica
• Servidor TCP usa a associação default
Redes de Computadores 47
Estados de um socket
closed established
Redes de Computadores 48
Interface de sockets
Redes de Computadores 49
Clientes e servidores UDP
Servidor UDP
Comunicação
Cliente UDP
Redes de Computadores 50
Clientes e servidores TCP
Servidor TCP
Sincronização Comunicação
Cliente TCP
Redes de Computadores 51
Servidores iterativo e concorrente
Redes de Computadores 52
Servidor iterativo
Servidor TCP
Socket original
Novo socket
Redes de Computadores 53
Servidor concorrente
Servidor TCP
Redes de Computadores 54
Funcionamento de sockets: lado servidor
• Socket (único) que atende o serviço
– Sempre em estado listen (processam segmentos SYN)
– Endpoint local possui o endereço especial 0.0.0.0 e porta específica
do servidor
– Endpoint remoto possui o endereço especial 0.0.0.0 e a porta ANY (*)
• Sockets criados para atender requisições dos clientes
– Estado established (processam segmentos de dados)
– Endpoints locais possuem o endereço IP e porta específica do
servidor
– Endpoints remotos possuem os endereços IP e as portas dos
respectivos clientes
Redes de Computadores 55
Gerenciamento de conexões TCP
• Fila de requisições
Redes de Computadores 56