Sei sulla pagina 1di 48

Curso Superior em Redes de

Computadores
Camada de Transporte

Prof. Sales Filho <salesfilho@cefetrn.br>


Objetivo
 Apresentar as características da camada
de transporte da arquitetura TCP/IP
 Apresentar os serviços fornecidos pela
camada de transporte
 Estudar os protocolos da camada de
transporte
 Serviço de datagramas
 Serviço de circuito virtual

2
Camada de transporte
 Objetivo
 Prover a comunicação fim-a-fim entre os
processos de aplicação
 Funcionalidades
 Serviço de datagrama
 Serviço de circuito virtual
 Identificação de processos

3
Serviço de datagrama
 Característica
 Serviço não confiável
 Não garante a entrega dos datagramas
 Pode perder e retardar datagramas
 Provê apenas a detecção de erros, garantindo a
integridade dos dados
 Serviço sem conexão
 Datagramas são individuais e independentes
 Seqüência dos datagramas não é assegurada

4
Serviço de circuito virtual
 Característica
 Serviço orientado a fluxo
 Divide o fluxo de dados eem seguimentos
 Serviço confiável
 Garante a entrega do fluxo de dados na seqüência
correta e sem erros
 Prevê controle de erro, seqüência e fluxo
 Serviço orientado à conexão
 Negocia parâmetros operacionais na abertura da
conexão
 Conexões full-duplex

5
Identificação de processos
 Portas
 Número inteiro positivo que representa um ponto
de comunicação
 Processos são associados à portas
 Par (endereço IP, Porta) identifica unicamente
cada ponto de comunicação

P1 P2 P2
Aplicação

Transporte
Porta 25 Porta 53 Porta 161 Porta 162
6
Composição
 Protocolos
 UDP (User Datagram Protocol)
 Provê o serviço de datagramas não confiável e
sem conexão
 Pode ser visto como uma extensão do
protocolo IP que entrega datagramas entre
processos
 TCP (Transfer Control Protocol)
 Provêo serviço de circuito virtual confiável e
orientado à conexão

7
Protocolo UDP
 Fundamentos
 Define a unidade de dados do serviço de
datagramas, denominada datagrama UDP
 Especifica o formato e a função dos campos
 Multiplexa mensagens geradas nos processos na
camada de rede
 Encapsula datagramas UDP em datagramas IP
 Demultiplexa datagramas UDP para os respectivos
processos destino
 Extrai mensagens dos datagramas UDP

8
Protocolo UDP
 Formato do datagrama
 Cada datagrama é tratado de forma
individual e independente
 Pode ser enviados por diferentes rotas

0 16 31
Source port Destination port
Length Checksum

Data

9
Protocolo UDP
Source port Destination port

Campos do datagrama
Length Checksum

Data
 Length
 Tamanho total do datagrama em bytes (cabeçalho +
dados)
 Checksum
 Assegura a integridade do datagrama
 Inclui o cabeçalho e os dados
 Detecção de erros é opcional
 Data
 Dados do datagrama

10
Protocolo UDP
 Cálculo do Checksum
 Considera um pseudocabeçalho
 Assegura que a entrega é realizada à estação e ao
processo destino
 Pode incluir um byte pad (0)
 Torna par o tamanho do datagrama
 Não são transmitidos com o datagrama
0 8 16 31
Source IP address
Destination IP address
00000000 Protocol Length

17 11
Protocolo TCP
 Fundamentos
 Define a unidade de dados do serviço de circuito
virtual, denominada seguimento TCP
 Especifica o formato e a função dos campos
 Multiplexa mensagens geradas pelos processos no
serviço da camada de rede
 Encapsula segmentos em datagramas IP
 Demultiplexa segmentos para os respectivos
processos destino
 Extrai mensagens dos segmentos

12
Protocolo TCP
 Fundamentos
 Adota uma abordagem baseada em fluxo de
dados (data stream)
 Trata o fluxo de dados como uma cadeia contínua de
bytes
 Decide como agrupar bytes em segmentos
 Adota uma abordagem orientada à conexão full-
duplex
 Estabelecimento da conexão
 Transferência de dados
 Fechamento da conexão

13
Protocolo TCP
 Fundamentos
 Definemecanismos integrados de controle
de erro e seqüência
 Asseguram a entrega do fluxo de dados na
seqüência correta e sem erros
 Define mecanismo de controle de fluxo
 Regula e compatibiliza a taxa de transmissão
das unidades envolvidas
 Evita descarte de segmentos por falta de
recursos da estação destino

14
Protocolo TCP
 Formato do segmento TCP
0 4 10 16 24 31

Source port Destination port

Sequence number

Acknowledgement number

Hlen Reserved Code bits Window

Checksum Urgent point

Options Pad

Data

15
Protocolo TCP
 Campos do segmento
 Hlen
 Tamanho do cabeçalho em unidades de 4 bytes
 Reserved
 Reservado para uso futuro (Não utilizado)
 Checksum
 Assegura a integridade do segmento
 Considera um pseudocabeçalho e pode incluir
um pad (0)

16
Protocolo TCP
 Campos do segmento
 Code bits
 Indica propósito e conteúdo do segmento
 URG: Dados urgentes
 ACK: reconhecimento
 PSH: mecanismo de push
 RST: abordo de conexão (reset)
 SYN: Abertura de conexão
 FIN: fechamento de conexão

0 5 0 1 2 3 4 5

Code bits URG ACK PSH RST SYN FIN


17
Protocolo TCP
 Campos do segmento
 Options
 Lista variável de informações opcionais
 MSS – Maximum Segment Size
 Torna o tamanho do cabeçalho variável
 Padding
 Bits 0 que tornam o segmento múltiplo de 32 bits
 Data
 Dados do segmento

18
Protocolo TCP
 Portas
 Source port
 Porta associada ao processo de origem
 Destination port
 Porta associada ao processo de destino
 Endpoint
 Definido pelo par (Endereço IP, porta)
 Identifica de forma única cada porta ou ponto de
comunicação na inter-rede
 Também conhecido como Socket

19
Protocolo TCP
 Conexão
 Cada conexão é identificada por um par de endpoints
 Também conhecida como Socket pair
 Várias conexões por estação

172.16.1.5 192.168.10.1 10.1.1.1

P1 P2 P3 P4

Porta 5000 Porta 80 Porta 25 Porta 1800

(172.16.1.5, 5000) e (192.168.10.1, 80) (192.168.10.1, 80) e (10.1.1.1, 1800)


20
Protocolo TCP
 Conexão
 Cada endpoint local pode participar de diversas conexões
com endpoints remotos
 Compartilhamento de endpoints
 O Sistema Operacional deve garantir que o par de
endpoint da conexão é único

172.16.1.5 192.168.10.1 10.1.1.1

P1 P2 P5 P4

Porta 5000 Porta 80 Porta 80 Porta 2000

(172.16.1.5, 5000) e (192.168.10.1, 80) (192.168.10.1, 80) e (10.1.1.1, 2000) 21


Protocolo TCP
 Demultiplexação de mensagens
 Segmentos recebidos são associados às
conexões, não apenas as portas
 Avalia o par de endpoints da conexão
 Portas origem e destino são obtidas do segmento
recebido
 Endereço IP origem e destino são obtidos do datagrama
IP
 Cada conexão possui um buffer de transmissão e
um Buffer de recepção em cada extremidade

22
Protocolo TCP
 Controle de seqüência
 Fluxo
de dados é tratado como uma
seqüência de bytes
 Cadabyte possui um número de seqüência
 Numeração nem sempre começa em 0 (zero)
 Negociado no estabelecimento da conexão
 Campo Sequence number
 Indicao número de seqüência do primeiro byte
de dados contido no seguimento

150 151 ... 198 199 200 201 ... 348 349 350 351 ... 448 449
Segmento 150 Segmento 200 Segmento 350 23
Protocolo TCP
 Controle de seqüência
Números de seqüência:
 Número do primeiro byte
nos segmentos de dados
ACKs:
 Número do próximo byte

esperado do outro lado


ACK cumulativo

P.: Como o receptor trata


segmentos fora de ordem?
 A especificação do TCP não
define, fica a critério do
implementador
24
Protocolo TCP
 Controle de erros
 Reconhecimento positivo
 Destino retorna uma mensagem indicando o correto
recebimento do segmento
 Reconhecimento pode pegar carona no segmento de
dados do fluxo inverso
 Reconhecimento cumulativo
 Diversos segmentos consecutivos podem ser
reconhecidos em uma única mensagem

150 151 ... 198 199 200 201 ... 348 349 350 351 ... 448 449
Segmento 150 Segmento 200 Segmento 350 25
Protocolo TCP

 Controle de erros
 Acknowledgment number
 Indica o número de sequência do próximo byte qu
espera receber
 Indica o correto recebimento dos bytes com núme
seqüência anterior
 Bit ACK do Code Bits deve ser ativado

150 151 ... 198 199 200 201 ... 348 349 350 351 ... 448 449

Seq. number 150 Seq. number 200 Seq. number 350

ACK number 200 ACK number 350 ACK number 450 26


Protocolo TCP
 Controle de erros
 Realizado através de Retransmissão
 Origem adota um temporizador para cada
segmento enviado
 Segmento é retransmitido quando a origem não
recebe o reconhecimento (ack) antes de
expirar o temporizador
 Temporizador é reativado em cada
retransmissão

27
Protocolo TCP
 Controle de erros - Cenários

Cenário com perda Temporização prematura,


28
do ACK ACKs cumulativos
Protocolo TCP
 Controle de erros - Cenários

Cenário de ACK cumulativo

29
Protocolo TCP
 Controle de fluxo
 Objetivo
 Transmissor não deve esgotar os buffers de recepção
enviando dados rápido demais
 Implementação
 Janela deslizante
 Entidades negociam o número de bytes adicionais que
podem ser recebidos a partir do último reconhecimento
 Destino define o tamanho de sua janela de recepção
em cada segmento
 Origem atualiza o tamanho de sua janela de
transmissão a cada reconhecimento
 Reconhecimento deslocam a janela de transmissão da
origem para o primeiro byte sem reconhecimento

30
Protocolo TCP - Controle de
fluxo
 lado receptor da conexão TCP
Controle de fluxo
possui um buffer de recepção:
Transmissor não deve esgotar
os buffers de recepção
enviando dados rápido demais

 Serviço de speed-matching:
encontra a taxa de envio
adequada à taxa de vazão da
aplicação receptora
 Processos de aplicação podem
ser lentos para ler o buffer

31
Protocolo TCP - Controle de
fluxo
 Receptor informa a área
disponível incluindo valor
RcvWindow nos segmentos
 Transmissor limita os dados não
confimados ao RcvWindow
 Garantia contra overflow no
buffer do receptor

(suponha que o receptor TCP descarte segmentos fora de ordem)


 Espaço disponível no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]

32
Protocolo TCP
 Controle de fluxo
 Campo Window
 Sinaliza
o tamanho da janela de recepção da
entidade em cada segmento enviado
 Applet on-line
 http://wps.aw.com/br_kurose_redes_3/40/102
71/2629597.cw/index.html

33
Protocolo TCP
 Processo de estabelecimento de conexões

34
Protocolo TCP
 Estabelecimento de conexões
 Three way handshake
 Negocia e sincroniza o valor inicial dos números
de seqüência em ambas as direções
 Baseado na arquitetura cliente-servidor
 O servidor deve está com a porta aberta em
estado de escuta (Listening)

35
Protocolo TCP
 Estabelecimento de conexões

36
Protocolo TCP
 Transmissão de dados
 Entrega de dados “fora-de-banda”
 Campo Urgent Point
 o transmissor transmite o dado urgente na área de dados e seta o
bit URG (campo Codebits), indicando a posição no segmento onde
o dado urgente terminou
 O receptor deve notificar a aplicação sobre a chegada do dado
urgente tão logo quanto possível
 Mecanismo de Push
 Aplicação avisa ao TCP para enviar o dado imediatamente
 Força a geração de um segmento com os dados já presentes
no Buffer
 Não aguarda o preenchimento do Buffer
 Segmentos gerados pelo mecanismo de PUSH são marcados
com o flag PSH no campo codebits

37
Protocolo TCP
 Fechamento de conexão (Liberação ordenada)
 Ocorre separadamente em cada direção da conexão

38
Protocolo TCP
 Fechamento de conexão (Término abrupto)

39
Protocolo TCP
 Estados das conexões

Estados do cliente Estados do servidor


40
Protocolo TCP
 Atividade prática
• Utilizando o simulador, monte a uma estrutura contendo
um servidor web e dois clientes, conforme exemplo abaixo
Servidor Web
(192.168.0.1, 80)

Realize as configurações
de endereçamento
adequadas para a perfeita
comunicação entre os
clientes e o servidor

Cliente Web
(192.168.0.100, X)

41
Protocolo TCP
 Atividade prática
• Configure o servidor web conforme exemplo abaixo

A página index.html será


carregada automaticamente
no web browser do cliente
quando não especificada
nenhum outro parâmetro.

42
Protocolo TCP
 Atividade prática
• Teste o acesso utilizando o web browser do cliente PC0

Conteúdo da página
“index.html” contida no
servidor

Observe que não foi preciso


colocar o nome da página

43
Protocolo TCP
 Atividade prática SIMULADA
• No modo de simulação, configure os filtros de protocolos
para TCP, ICMP, HTTP
• Inicie a simulação, o objetivo é identifica hree way
handshake durante o estabelecimento e fechamento da
conexão, bem como a análise dos números de seqüência,
bits SYN, ACK, FIN contidos nos segmentos TCP

44
Protocolo TCP
 Atividades de laboratório utilizando o analisador de
protocolos wireshark, antigo projeto ethereal.

 Obtenha e instale o arquivo instalador do wireshark em:


 http://www.cefetrn.br/~salesfilho/files/wireshark-setup-1.0.5.exe

 Obtenha o arquivo de captura para análise:


http://www.cefetrn.br/~salesfilho/files/Trace_TCP_HTTP.pcap

 Abra o arquivo no Wireshark e responda as perguntas que se


seguem

45
Protocolo TCP
 Tela do Wireshark

 Pacotes
capturados

 Detalhes das
camadas de
protocolos
 Conteúdo em
formato bruto
46
Protocolo TCP
 ATIVIDADE
 1) Qual o IP da entidade servidora e da entidade cliente
2) Em quais linhas da captura estão os fragmentos TCP que
estabelecem a conexão ? (Three way handshake)
3) Identifique os números de seqüência da entidade cliente, explicitando
seus valores.
4) Por que o número de seqüência do cliente varia MUITO menos que o
número de seqüência do servidor?
5) Qual é a porta de origem e de destino da conexão visto do lado do
servidor ?
 6) Identifique os fragmentos em que é encerrada a conexão.
7) Qual é o protocolo (e versão) de camada de aplicação utilizado na
comunicação ?
 8) Reproduza a captura baixando o seguinte arquivo:
 http://www.cefetrn.br/~salesfilho/files/rfc793.txt
47
Referências
 Comer, Douglas E., Interligação de Redes Com Tcp/ip
 James F. Kurose, Redes de Computadores e a
Internet
 Escola Superior de Redes, Arquitetura e Protocolos de
Redes TCP/IP

48

Potrebbero piacerti anche