Camada de Transporte

Propaganda
Arquitetura TCP/IP
Aplicação
Transporte
Rede
Enlace
Física
Camada de Transporte
●
●
●
●
Fornece serviço diretamente aos processos
Não é implementada em roteadores
Fornece meio de transporte lógico
Processos em hosts diferentes utilizam
conexão lógica da camada de transporte
● PDU da camada é o Segmento
Camada de Transporte
● Camada de Rede identifica o host
● Camada de transporte identifica o processo
ou usuário do host
● Permite que diversos aplicativos enviem
dados a partir de um único host
● Sistemas Operacionais são multi-tarefas
Camada de Transporte
Camada de Transporte
● Multiplexação
○
○
Reunir dados provinientes de diferentes processos
de aplicação
Transmissor
● Demultiplexação
○
○
Entrega dos segmentos para a aplicação
Receptor
● Utiliza números de porta e endereço IP
● Exemplo
Camada de Transporte
● Arquitetura TCP/IP basicamente 2
protocolos
○
○
TCP
UDP
UDP
● User Datagrama Protocol
● Serviço não confiável
○
○
Segmentos podem não chegar
Segmentos podem chegar fora de ordem
● Não orientado a conexão
○
○
Cada segmento tratado independente
Não há apresentação entre o transmissor e o
receptor
UDP
● Protocolo simples
● Mínimas funções da camada de transporte
● Basicamente detecção de erro e entrega os
dados para o processo correto
● Aplicação fala quase diretamente o IP
● Pouco acrescenta a camada de rede
● Então porque utilizar?
UDP
● Entrega de forma mais rápida, sem
estabelecimento de sessão
● Sem controle de congestionamento
● Sem estado de conexão
● Cabeçalho pequeno
UDP
● Estrutura do segmento
UDP
● Estrutura do segmento
○
Source port
■ Porta de origem da aplicação
○ Destination Port
■ Porta de destino da aplicação
○ UDP length
■ Tamanho total do segmento em bytes
○ UDP checksum
■ Campo opcional
■ Complemento de 1 da soma de todas as
palavras
UDP
● Utilização
○
○
○
○
Aplicações cliente x servidor
Um consulta para uma resposta
Aplicações de mídia
Aplicações tolerantes a falha
TCP
● Transmission Control protocol
● Serviço confiável
○
Garante que os dados serão entregues na forma
que foram enviados
● Orientado a conexão
○
Conexões nos sistemas finais
● Controle de fluxo
○
Transmissor não esgota a capacidade do receptor
TCP
● Controle de congestionamento
○
Transmissor não esgota recursos da rede
● Gerencia timers
○
Necessita de timers para executar o trabalho
● Mais complexo que o UDP
● Principal protocolo
● Utilizado pela maioria das aplicações
TCP
● Recebe fluxo da aplicação e divide em
partes
○
Com frequência, temos 1460 para que ele possa
caber em um quadro ethernet
● Camada de rede aceita cada parte como um
segmento distinto
● Destino restaura o fluxo original
TCP
● Destino retorna um segmento com número
de confirmação com o número da próxima
sequência a receber
● Se expirar o timer, o segmento será
retransmitido
TCP
● Serviço TCP utiliza o conceito de socket
○
○
Endereço IP + Número da porta
Portas abaixo de 1024 - Portas bem conhecidas
● O serviço TCP necessita estabelecimento
de sessão
● Fluxo
○
○
○
Estabelecimento de sessão
Transferência de dados
Término da conexão
TCP
● Conexões são identificadas por socket
○
○
○
○
Endereço IP de origem
Porta de origem
Endereço IP de destino
Porta de destino
● Conexões são full-duplex
● Analogia ao endereço de um edifício
TCP
● Segmento
TCP
● Source Port (16 bits)
○
Porta de origem
● Destination Port (16 bits)
○
Porta de destino
● Sequence number (32 bits)
○
Identifica a posição no fluxo de bytes do segmento
enviado pelo transmissor.
● Acknowledgement number (32 bits)
○
Confirmação de recebimento
TCP
● TCP header length (4 bits)
○
Quantas palavras de 32 bits existem no cabeçalho
● Flags 1 bit: URG, ACK, PSH, RST, SYN e
FIN
TCP
● URG
○
Indica o deslocamento para dados urgentes
● ACK
○
Indica se contém confirmação
● PSH
○
○
Informa para não retardar a conexão
Pouco utilizado
● RST, SYN e FIN
○
○
Gerenciamento de conexão
Veremos com mais detalhes
TCP
● Windows size (16 bits)
○
Controle de fluxo
● Checksum (16 bits)
○
Total de verificação
● Options (máximo 40 byts)
○
Opções futuras
● Data
○
Dados transportados
TCP
● Transferência confiável
○
○
○
Garante que a cadeia de dados que o processo lê
de seu buffer
■ Não está corrompida
■ Não tem lacunas
■ Não possui duplicação
■ Está ordenada
Exatamente como foi transmitida
Campos: Sequence number e Ack number
TCP
● Gerenciamento da conexão
○
○
○
○
○
Gerencia o estabelecimento de conexão entre o
transmissor e o receptor
Campos: RST,SYN e FIN
RST
■ Recusa uma tentativa de conexão
SYN
■ Inicia uma conexão
FIN
■ Finaliza uma conexão
TCP
● Estabelecimento de conexão
○
○
○
○
Passo 1: Cliente inicia conexão com SYN=1 e ack=0
Passo 2: Servidor responde com SYN=1 e ack=1
Passo 3: Cliente responde com SYNC=1 e ack=1
Famoso: 3-way handshake
TCP
TCP
● Término de conexão
○
○
○
○
Passo 1: host 1 envia FIN ao host 2
Passo 2: host 2 responde FIN para host 1 com ACK
Passo 3: host 2 envia FIN ao host 1
Passo 4: host 1 responde FIN para host 2 com ACK
TCP
TCP
● Controle de fluxo
○
Evitar que o transmissor esgote a capacidade do
receptor
○ No estabelecimento de sessão é alocado um buffer
de recepção e informado ao par
○ Em toda confirmação é enviado o espaço disponível
no buffer (janela)
○ Campos: Windows size
■ Indica quantos bytes podem ser enviados
TCP
● Controle de congestionamento
○
○
○
○
Quando a carga oferecida a qualquer rede é maior
que a capacidade, tem-se um congestionamento
Sintomas:
■ Perda de pacotes
■ Atrasos grandes
Pode ser piorado se a camada de transporte
retransmite dados
Pode causar colapso
TCP
● Controle de congestionamento
○
TCP utiliza quantidade de pacotes perdidos como
uma medida de congestionamento
○ Reduz a taxa de transmissão quando esse número
aumenta
○ A maioria dos timeouts se deve a congestionamento
e não por erros de transmissão
TCP
● Controle de congestionamento X Controle
de fluxo
TCP
● Gerenciamento de timers
○
○
○
Utiliza um timer de retransmissão
Quando um segmento é enviado um timer é ativado
Se o segmento for confirmado antes do timer ele
será interrompido
○ Se o timer expirar antes, um novo segmento sera
retransmitido e um novo timer iniciado
○ Definição baseada no RTT
○ Tempo de viagem de ida e volta
○ Cada conexão mantém um RTT
■ Valor curto
■ Valor longo
Download