12
Camada de Transporte Redes de Computadores versão 1.1 – 21.Sep.02 Pág 6.1 © 1997–2000 Paulo Lício de Geus Camada de transporte às vezes uma camada de rede provê um serviço com conexão, mas não confiável; ter opção na camada de transporte é vantajoso… além disso, o modelo Internet prefere datagramas por baixo (para maior robustez) e escolha, na camada de transporte, do mecanismo apropri- ado (não confiável e rápido, ou confi- ável e lento) • serviços providos a camadas superiores orientado à conexão sem conexão • qualidade de serviço camada de transporte supre falta das inferiores • parâmetros-alvo (opções a negociar) atraso no estabelecimento de conexões estouro na temporização por conges- tionamento, falta de espaço em buffers ou tabelas etc probabilidade de falha no estabelecimento de conexão desempenho atraso de trânsito (propagação entre pares transporte) i.e. a taxa de erros que sobra após o serviço da camada de transporte, normalmente bem baixa… taxa de erro residual proteção contra leitura ou modificações dos dados em caso de congestionamento, cone- xões de maior prioridade são atendi- das primeiro… prioridade atendimento privilegiado capacidade de recuperação » camada de transporte terminar conexão por decisão própria » recuperação após detecção de problemas/congestionamento

Camada de transporte Camada de Transporte · – probabilidade de falha no estabelecimento de conexão ... – em IP tripla (endereço IP, serviço, nº de porta) serviço pode ser

Embed Size (px)

Citation preview

Camada de Transporte

d Pág 6.1

© 1997–2000 Paulo Lício de Geus

Camada de transporte

às vezes uma camada de rede provê um serviço com conexão, mas não confiável; ter opção na camada de transporte é vantajoso…

além disso, o modelo Internet prefere datagramas por baixo (para maior robustez) e escolha, na camada de transporte, do mecanismo apropri-ado (não confiável e rápido, ou confi-ável e lento)

• serviços providos a camadas superiores

estouro na temporização por conges-tionamento, falta de espaço em buffers ou tabelas etc

i.e. a taxa de erros que sobra após o serviço da camada de transporte, normalmente bem baixa…

em caso de congestionamento, cone-xões de maior prioridade são atendi-das primeiro…

Re

es de Computadores versão 1.1 – 21.Sep.02

– orientado à conexão

– sem conexão

qualidade de serviço

– camada de transporte supre falta das inferiores

parâmetros-alvo (opções a negociar)

– atraso no estabelecimento de conexões

– probabilidade de falha no estabelecimento de conexão

– desempenho

– atraso de trânsito (propagação entre pares transporte)

– taxa de erro residual

– proteção contra leitura ou modificações dos dados

– prioridade ➔ atendimento privilegiado

– capacidade de recuperação» camada de transporte terminar conexão por decisão própria

» recuperação após detecção de problemas/congestionamento

Camada de Transporte

d Pág 6.2

© 1997–2000 Paulo Lício de Geus

Funcionamento básico

TPDU = Transport Protocol Data Unit, unidade de dados do protocolo de transporteunidade de dados de enlace ➔ qua-drounidade de dados de rede ➔ pacoteunidade de dados de transporte ➔ sem nome específico…

exemplo de encapsulamento de uni-dades de dados: aplicação ftp, usando protocolo TCP (conexão con-fiável), levado por IP (datagrama), fisicamente levado por Ethernet (datagrama)

• primitivas de serviço

oo

I

TP

Re

D

es de Computadores versão 1.1 – 21.Sep.02

– serviço de datagramas não confiável

– conexão confiável ➔ seqüência de bits livre de erros

exemplo de um serviço simples primitiva TPDU enviada significadoLISTEN (nenhuma) bloqueia até um processo tentar conexã

CONNECT CONNECT REQ tenta ativamente estabelecer uma conexãSEND DATA envia informação

RECEIVE (nenhuma) bloqueia até chegar uma TPDU DATASCONNECT DISCONNECT REQ este lado quer liberar a conexão

Ethernet

IPTCP

F

Camada de Transporte

d Pág 6.3

© 1997–2000 Paulo Lício de Geus

Encapsulamento de pacotes

s

tocolo

stinobulo

ismo)

em

tecçã

o erro

(C

RC)

+

Ethernet

a

46s µs (12B)

n

dado

s

P

dado

s

sum

)

n

≤ 9,6 m 1500≤ ≤

40

Re

t

I

T

es de Computadores versão 1.1 – 21.Sep.02

apon

t. ur

gênc

ia

porta

des

tino

dado

s

porta

orig

em

end.

des

tino

janela

detec

ção

erro

(c

heck

sum

)

núm

ero

se

qüên

cia

offse

t dad

os +

fla

gs co

ntro

le

8 6 6 2 m 4

tipo p

ro

end.

de

preâ

m(si

ncron

end.

orig

dedado

s

linha ociosaenvelope do pacote de dadosdados do pacotepacote de dados

manhos dos campos em bytes

2 2

versã

o +

com

pr.

ca

beça

lho

1 1

tipo

serv

içoco

mpr

imen

to

flags

+ e

xtras

iden

tifica

ção

1 1 1 1de

sloca

men

totem

po d

e vid

apr

otoc

olo

2 4 4 x

x

detec

ção

erro

(ch

ecks

um)

end.

orig

emen

d. d

estin

oop

ciona

is

4 4 n2 2 2 2 2 2

CP

porta

des

tino

detec

ção

erro

(c

heck

porta

orig

em

com

prim

ento

2 2 2 2

UDP

s

Camada de Transporte

d Pág 6.4

© 1997–2000 Paulo Lício de Geus

Berkeley sockets

procedimento do servidor:• SOCKET ➔ retorna um descritor de arquivo• BIND ➔ socket recebe um nº de porta para ser conhecido de fora• LISTEN ➔ aloca espaço para enfi-leirar pedidos simultâneos de clientes• ACCEPT ➔ fica aguardando pedi-dos de conexãoprocedimento do cliente:• SOCKET ➔ retorna um descritor de arquivo• CONNECT ➔ bloqueia cliente enquanto conexão é estabelecidauso da conexão:• SEND e RECEIVE conforme neces-sário, por ambos os ladosliberação da conexão:• CLOSE (ambos os lados)

• primitivas para os Berkeley sockets

serviço pode ser TCP ou UDP

p

R

Re

C

es de Computadores versão 1.1 – 21.Sep.02

endereçamento

– caracterização de um par na communicação

– em IP ➔ tripla (endereço IP, serviço, nº de porta)

– porta de um serviço» mapeada a uma determinada aplicação ou processo

rimitiva significado

SOCKET cria um novo terminal de comunicação

BIND atribui um endereço local a um socket

LISTEN anuncia disposição p/ aceitar conexões; dá tamanho da fila

ACCEPT bloqueia o servidor até chegar uma tentativa de conexão

ONNECT tenta ativamente estabelecer uma conexão

SEND envia dados usando a conexão

ECEIVE recebe dados da conexão

CLOSE libera a conexão

Camada de Transporte

d Pág 6.5

© 1997–2000 Paulo Lício de Geus

Estab. e liberação de conexão

• decisões básicas na concepção do mecanismo

nº inicial de seqüência para cada conexão vai aumentando no decorrer do tempo, até rodar ao final da conta-gem

DR = Disconnect Request

Re

es de Computadores versão 1.1 – 21.Sep.02

– garantir tempo de vida finito aos pacotes» contador de “pulos” em cada pacote

» carimbo de tempo em cada pacote

– grande espaço de nºs de seqüência» re-uso de nºs após rodar no final da contagem

» TPDU antigo com mesma contagem da rodada anterior➔ nenhum pode estar “vivendo” ainda!

– implementação do carimbo de tempo» nº inicial de seqüência depende do tempo de contagem

liberação

– ambas as entidades enviam pedido (DR)

Camada de Transporte

d Pág 6.6

© 1997–2000 Paulo Lício de Geus

Three-way handshake

• procedimento correto máq. 1 máq. 2CR (seq = x)

ACK (seq = y, ack = x)

DATA (seq = x, ack = y)

. 1 máq. 2CR (seq = x)

ACK (seq = y, ack = x)

REJECT (ack = y)

. 1 máq. 2

ACK (seq = y, ack = x)

REJECT (ack = y)

CR (seq = x)

DATA (seq=x, ack=z)

Re

es de Computadores versão 1.1 – 21.Sep.02

» máq. 1 gera x

» máq. 2 gera y

» x e y vão sendo incrementados

» cada TPDU incluindo k bytes➔ faz nº de seq incrementar de k

duplicata antiga de CR

– máq. 2 responde normalmente» máq. 2 pensa que máq. 1 realmente quer conexão agora

» não é sua atribuição policiar os nºs “seq” dos outros…

– lembrar que máq. 2 já deve ter respondido antes…» usando ack = z, com z < y (quase sempre)

– máq. 1 já está na fase de dados» conclui que era uma resposta a uma duplicata e rejeita

» máq. 2 recebe a rejeição e também joga fora…

duplicata antiga de CR e do primeiro DATA» máq. 2 vai sendo enganada

porém máq. 1 está na mesma situação anterior e rejeita

» máq. 2 é obrigada a jogar fora a “nova conexão”…te

mpo

máq

tem

po

máq

tem

po

Camada de Transporte

d Pág 6.7

© 1997–2000 Paulo Lício de Geus

Controle de fluxo e buferização

• semelhanças e diferenças com camada de enlace

normalmente uma só…

muitos processos na mesma máquina utilizando uma série de serviços de outras máquinas, além de atender requisitantes de fora…

devido ao montante necessário…

reduz bastante as necessidades de buffers

ex: telnet (terminal remoto)

ex: ftp (transferência de arquivos)

i.e. tamanho de janela variável

não obrigar o uso de “carona” em tráfego reverso

desse modo pode-se garantir o uso completo da banda disponível e da capacidade do receptor…

Re

es de Computadores versão 1.1 – 21.Sep.02

– necessidade de janela deslizante ou similar

– enlace ➔ máquina tem poucas linhas de saída

– transporte ➔ máquina pode ter inúmeras conexões

política de uso/alocação de buffers

– buffers por conexão ➔ quase impraticáveis

– coleção de buffers compartilhada por todas as conexões

– eventualmente buffers dedicados são requisitados

– melhor solução ➔ alocação conforme a aplicação» tráfego de rajada ➔ alocação dinâmica

» tráfego de banda larga ➔ buffers dedicados

controle de fluxo, alternativas:

– dependente da alocação de buffers» usar TPDU’s independentes para informação de buferização

» retransmissões periódicas delas para evitar deadlock

– dependente da capacidade efetiva da sub-rede» heurística computa tamanho da janela no transmissor

Camada de Transporte

d Pág 6.8

© 1997–2000 Paulo Lício de Geus

Camada de transporte na Internet

TCP = Transmission Control Proto-colUDP é na prática o próprio data-grama IP em funcionamento; apenas isola o programador de detalhes da camada de rede

• TCP

WKP = Well-Known Ports; portas bem conhecidas…

não há como saber em quantos peda-ços a msg foi quebrada na transmis-são; a entrega é feita da maneira que a camada TCP achar melhor, i.e. os pedaços de envio podem ser maiores ou menores do que aqueles usados no repasse à camada (como o pro-grama escreveu na camada TCP: pedaços de 1K, 2K, etc)

Re

es de Computadores versão 1.1 – 21.Sep.02

– projetado e refinado para robustez (falhas variadas)

– aceita como entrada seqüências de dados» quebra-as em pedaços < 64 KB (mas normalmente < 1500 B)

– cada pedaço enviado em datagrama IP separado» temporizações, retransmissões e ordenação a cargo do TCP

características do serviço TCP

– sockets ➔ pontos de acesso de cada lado/máquina

– WKP ➔ portas de nº < 256» 23 ➔ TELNET, 21 ➔ FTP, 20 ➔ dados de FTP, 25 ➔ SMTP,

111 ➔ RPC da Sun, 119 ➔ NNTP, 123 ➔ NTP, 79 ➔ Finger

– conexão TCP» full-duplex, ponto-a-ponto, fronteira msgs não preservadas

– TCP aguarda mais dados antes de enviar TPDU» para otimizar o uso de TPDU’s (tráfego)

– urgent data

» flag que força TCP a enviar tudo na fila (ex: control-C)

» receptor é avisado da chegada urgente e atende logo…

Camada de Transporte

d Pág 6.9

© 1997–2000 Paulo Lício de Geus

TCP

• nº de reconehcimento especifica próximo byte esperado• tamanho do cabeçalho do TCP ➔ em palavras de 32 bits, necessário devido ao campo de opções (4 bits)• flag URG ➔ indica urgência de dados, os quais serão encontrados deslocados de “apontador_urgente” bytes a partir do nº de seqüência cor-rente• flag ACK ➔ indica a presença de um nº de reconhecimento válido• flag PSH ➔ método obsoleto de indicar urgência de dados• flag RST ➔ indica “morte” decre-tada de conexão em andamento ou rejeição de requisição de conexão• flag SYN ➔ início de conexãorequisição: fase 1 ➔ SYN=1, ACK=0resposta: fase 2 ➔ SYN=1, ACK=1confirmação: fase 3 ➔ SYN=0,ACK=1• flag FIN ➔ fim normal de conexão• tamanho de janela ➔ receptor pode regular fluxo do transmissor• checagem ➔ soma das palavras de 16 bits em complemento de 1 e com-plemento de 1 da soma• opções ➔ permite acordo sobre tamanho máximo da carga útil do TCP

• cabeçalho do protocolo TCP

tcl

Re

es de Computadores versão 1.1 – 21.Sep.02

porta de destino

tamanho da janela

número de reconhecimento

apontador urgente

opções (0 ou mais palavras de 32 bits)

32 bits

dados (opcional)

checagem

URG

ACK

PSH

RST

SYN

FIN

amanho abeça-ho TCP

porta de origemnúmero de seqüência

Camada de Transporte

d Pág 6.10

© 1997–2000 Paulo Lício de Geus

TCP

• estabelecimento de

os estados mencionados englobam tanto o servidor quanto o cliente

máq. 1 máq. 2

Re

es de Computadores versão 1.1 – 21.Sep.02

conexão

estados da máquina TCPte

mpo

SYN (seq = x)

SYN/ACK (seq = y, ack = x+1)

ACK (seq = x+1, ack = y+1)

estado descriçãoCLOSED nenhuma conexão ativa ou pendenteLISTEN servidor aguarda uma chamada

SYN RCVD um pedido de conexão chegouSYN SENT aplicação começou a abrir uma conexão

ESTABLISHED estado normal de transferência de dadosFIN WAIT 1 aplicação disse que terminouFIN WAIT 2 o outro lado concordou em liberarTIMED WAIT aguarde todos os pacotes “morrerem” (temporização)

CLOSING ambos os lados tentaram fechar simultaneamenteCLOSE WAIT o outro lado iniciou a liberaçãoLAST ACK aguarde todos os pacotes “morrerem” (temporização)

Camada de Transporte

d Pág 6.11

© 1997–2000 Paulo Lício de Geus

TCP

• controle de congestionamento

problemas de receptor lento são resolvidos por ela

Re

es de Computadores versão 1.1 – 21.Sep.02

– suposições válidas hoje» perda de pacotes por ruído é raro

» perdas devem ser atribuídas a congestionamento

– possibilidades de perdas de pacotes» receptor é lento (receptor descarta)

» rede é lenta (algum roteador intermediário descarta)

controle via janelas de transmissão e recepção

– janela concedida pelo receptor

– janela preventiva mantida pelo transmissor

Camada de Transporte

d Pág 6.12

© 1997–2000 Paulo Lício de Geus

TCP

• construção da janela preventiva (slow start)

notar que esse ajuste, além de expo-nencial (rapidamente alcança regime), é dinâmico: deve também satisfazer a janela do receptor, quando ela diminuiaté threshold crescimento é exponen-cial, depois disso passa a linear

Re

es de Computadores versão 1.1 – 21.Sep.02

– janela transmissão inicia igual ao máx. segmento em uso

– janela transmissão vai dobrando tamanho até que» ocorram temporizações, ou:

» alcance a janela concedida pelo receptor

– limitante adicional ➔ threshold (limiar, inicialmente 64K)

– após janela de transmissão alcançar threshold» janela de transmissão aumenta linearmente

» acréscimo do tamanho do máximo segmento

– se ocorrer temporização» threshold cai à metade do valor corrente da janela

» janela transmissão retorna ao tamanho do máximo segmento

» slow start é recomeçado

0 KB

10 KB

20 KB

30 KB

40 KB

50 KB