36
26/4/2013 1 Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes [email protected] Camada de transporte 3.1 Serviços da camada de transporte 32 Multiplexação e demultiplexação 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado à conexão: UDP 3.4 Princípios de transferência confiável de dados 3.5 Transporte orientado à conexão: TCP Estrutura do segmento Transferência confiável de dados Controle de fluxo G i t d ã 2 Gerenciamento de conexão 3.6 Princípios de controle de congestionamento 3.7 Controle de congestionamento do TCP

Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

1

Redes de Computadores

Parte V: Camada de Transporte

Professor: Reinaldo [email protected]

Camada de transporte

• 3.1 Serviços da camada de transporte

• 3 2 Multiplexação e demultiplexação• 3.2 Multiplexação e demultiplexação

• 3.3 Transporte não orientado à conexão: UDP

• 3.4 Princípios de transferência confiável de dados

• 3.5 Transporte orientado à conexão: TCP• Estrutura do segmento• Transferência confiável de dados• Controle de fluxo

G i t d ã

2

• Gerenciamento de conexão

• 3.6 Princípios de controle de congestionamento

• 3.7 Controle de congestionamento do TCP

Page 2: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

2

• Fornecem comunicação lógica entre processos de aplicação em diferenteshospedeiros

Protocolos e serviços de transporte

hospedeiros

• Os protocolos de transporte sãoexecutados nos sistemas finais• Lado emissor: quebra as mensagensda aplicação em segmentos e enviapara a camada de rede• Lado receptor: remonta os

3

psegmentos em mensagens e passapara a camada de aplicação

• Há mais de um protocolo de transporte disponível para as aplicações• Internet: TCP e UDP

• TCP:

Confiável garante ordem de entrega

Protocolos da camada de transporte da Internet

Controle de congestionamento

Controle de fluxo

Orientado à conexão

• UDP:Não confiável, não garante ordemna entrega

4

Extensão do “melhor esforço” do IP

• Serviços não disponíveis: Garantia a atrasos

Garantia de banda

Por quê?

Page 3: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

3

Principais funções

Controle de erros

Controle de fluxo

Multiplexação de aplicações

Nem todas as camadas de transporte implementam o j t d imesmo conjunto de serviços

TCP - Controle de congestionamento

UDP - apenas multiplexação

• 3.1 Serviços da camada de transporte

• 3 2 Multiplexação e demultiplexação

Camada de transporte

• 3.2 Multiplexação e demultiplexação

• 3.3 Transporte não orientado à conexão: UDP

• 3.4 Princípios de transferência confiável de dados

• 3.5 Transporte orientado à conexão: TCP• Estrutura do segmento• Transferência confiável de dados• Controle de fluxo

G i t d ã

6

• Gerenciamento de conexão

• 3.6 Princípios de controle de congestionamento

• 3.7 Controle de congestionamento do TCP

Page 4: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

4

Identificação da aplicação no host

Como cada máquina é identificada unicamente na Internet?

Como a entidade de rede (IP) identifica qual o protocolo de transporte está sendo utilizado ?

Dentro do host, como a entidade de transporte (TCP,UDP) sabe para qual aplicação entregar o pacote ?

Como uma aplicação do cliente sabe qual é a aplicação dentro do servidor remoto para poder enviar pacotes?

Identificação da aplicação no host

porta20348

porta10340 t

Internet

TCP

host 0 13 re apartnet br inter net

ssh.cin.ufpe.br150.161.2.106procololo = 6

porta = 22

porta15398

20348porta20345

protocolo = 6

UDP

10340

protocolo = 17

porta6970

www.uol.com.br200.221.8.18procololo = 6

porta = 80

host-0-13.re.apartnet.br.inter.net200.199.75.13

servidor DNS200.185.56.49protocol = 17

porta = 53

www.bbc.co.uk212.58.224.61protocolo = 17porta = 44585

Page 5: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

5

Identificação da aplicação no host

HTTP server X porta=80porta=80

HTTP server Yporta=80

Pacote IP

TCP

Pacote IP

As aplicações não confundem os pacotes que chegam ?

Pilha de Protocolos, na prática

Aplicação Aplicação Aplicação

Porta 1 Porta 2 Porta N

Transporte

Rede Sist

ema

Ope

raci

onalUDP TCP

IP, IPX, ICMP, ARP, ...

Driver da Interface de Rede

Interface de Rede

Rede (hub, switch, router, ...)

Page 6: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

6

Pilha de Protocolos, na práticaBrowser Browser FTP Server SNMP agent FTP client Web Server

Porta 4251 Porta 21 Porta 161 Porta 3245 Porta 80Porta 3245

UDP TCP

Transporte

Rede

IP

HO

ST A

W

indo

ws 2

000

Driver da Interface de Rede

Transporte

Rede

HO

ST B

L

inux

Driver da Interface de Rede

UDP TCP

IP

Porta 4251 Porta 21 Porta 161 Porta 3245 Porta 80Porta 3245

Interface de Rede

Rede (hub, switch, router, ...)

Interface de Rede

Outro host

Endereço IP origem, Endereço IP destino, Porta origem, Porta destino, ProtocoloO TCP/IP sabe para qual aplicação entregar o pacote olhando a TUPLA:

Identificação da aplicação no host

HTTP server X porta=80porta=80

HTTP server Yporta=80

PORTA=4756

Pacote IP

PORTA=4756

PORTA=4943

TCP

PORTA=5623

Pacote IP

Pacote informa a aplicação através da PORTA

Endereço IP origemEndereço IP destinoPorta origemPorta destinoProtocolo

PACOTE IP

Page 7: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

7

Identificação de aplicaçõesComo cada máquina é identificada unicamente na Internet ?

Número IPComo a entidade de rede (IP) identifica qual o protocolo de transporte está sendo utilizado ?

Tipo de protocolo está indicado no cabeçalho IPDentro do host, como a entidade de transporte identifica qual aplicação está sendo utilizada ?

Cada aplicação tem uma “Porta” única no hostPorta é identificada no pacote IPp

Como uma aplicação cliente sabe qual a porta de uma aplicação servidora para poder enviar pacotes?

Alguns serviços têm números de portas já convencionadas (portas “bem conhecidas”)

Números de portas

1-255 reservadas para serviços padrãoportas “bem conhecidas”portas bem conhecidas

256-1023 reservado para serviços Unix1-1023 Somente podem ser usadas

por usuários privilegiados(super-usuário)

1024-4999 Usadas por processos desistema e de usuário

5000- Usadas somente por processosde usuário

Page 8: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

8

Algumas Portas Bem Conhecidas

21 FTP22 SSH

110 POP3135-139 NetBIOS Services22 SSH

23 Telnet25 SMTP53 DNS69 TFTP79 Finger80 HTTP

135 139 NetBIOS Services161-162 SNMP443 HTTPS (HTTP+SSL)995 POP3S (POP3+SSL)1433 MS-SQL Server2049 NFS3006 MySQL

80 HTTP88 KERBEROS

y6000 X Windows

Detalhes em www.iana.org/assignments/port-numbers

Demultiplexação no hospedeiro receptor:Multiplexação no hospedeiro emissor:

entrega os segmentos coleta dados de múltiplos sockets,

Demultiplexação/Multiplexação

g grecebidos ao socket correto

p ,envelopa os dados com cabeçalho (usado depois para demultiplexação)

Page 9: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

9

• Computador recebe datagramas IP• Cada datagrama possui endereço IP

Demultiplexação/Multiplexação

de origem e IP de destino• Cada datagrama carrega 1 segmentoda camada de transporte• Cada segmento possui números de porta de origem e destino (lembre-se: números de porta bem conhecidospara aplicações específicas)

• O hospedeiro usa endereços IP e números de porta para direcionar o segmento ao socket apropriado

• Socket UDP identificado por dois valores:(endereço IP de destino, número da porta de destino)

Demultiplexação/Multiplexação

• Quando o hospedeiro recebe o segmento UDP:• Verifica o número da porta de destino no segmento• Direciona o segmento UDP para o socket com este número de porta

• Datagramas com IP de origem diferentes e/ou portas de origem diferentes são direcionados para o mesmo socket

Page 10: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

10

Demultiplexação/Multiplexação

P2 P1P1P3

SP: 6428DP: 9157

SP: 9157

SP: 6428DP: 5775

SP: 5775

clienteIP: B

clienteIP: A

servidorIP: C

SP: 9157DP: 6428

SP: 5775DP: 6428

• Socket TCP identificado por 4 valores: • Endereço IP de origem

d d

Demultiplexação/Multiplexação

• End. porta de origem• Endereço IP de destino• End. porta de destino

• Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado

d d d á k l â

3 - 20

• Hospedeiro servidor pode suportar vários sockets TCP simultâneos:• Cada socket é identificado pelos seus próprios 4 valores• Servidores possuem sockets diferentes para cada cliente conectado

Page 11: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

11

Demultiplexação/Multiplexação

P1 P1P2P4

SP: 9157 SP: 9157

P5 P6 P3

SP: 5775DP: 80

D-IP: CS-IP: B

3 - 21

clienteIP: B

clienteIP: A

servidorIP: C

SP: 9157DP: 80

SP: 9157DP: 80

D-IP: CS-IP: AD-IP: C

S-IP: B

Demultiplexação/Multiplexação

P1 P1P2

SP: 9157 SP: 9157

P4 P3

SP: 5775DP: 80

D-IP: CS-IP: B

3 - 22

clienteIP: B

clienteIP: A

servidorIP: C

SP: 9157DP: 80

SP: 9157DP: 80

D-IP: CS-IP: AD-IP: C

S-IP: B

Page 12: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

12

• 3.1 Serviços da camada de transporte

• 3 2 Multiplexação e demultiplexação

Camada de transporte

• 3.2 Multiplexação e demultiplexação

• 3.3 Transporte não orientado à conexão: UDP

• 3.4 Princípios de transferência confiável de dados

• 3.5 Transporte orientado à conexão: TCP• Estrutura do segmento• Transferência confiável de dados• Controle de fluxo

G i t d ã• Gerenciamento de conexão

• 3.6 Princípios de controle de congestionamento

• 3.7 Controle de congestionamento do TCP

• Protocolo de transporte da Internet “sem gorduras”, “sem frescuras”• Serviço “best effort”, segmentos UDP podem ser:

UDP: User Datagram Protocol

ç , g p• Perdidos• Entregues fora de ordem para a aplicação

• Sem conexão:• Não há apresentação entre o UDP transmissor e o receptor• Cada segmento UDP é tratado de forma independente dos outros

Por que existe um UDP?Não há estabelecimento de conexão (que possa resultar em atrasos)• Não há estabelecimento de conexão (que possa resultar em atrasos)

• Simples: não há estado de conexão nem no transmissor, nem no receptor

• Cabeçalho de segmento reduzido• Não há controle de congestionamento: UDP pode enviar segmentos

tão rápido quanto desejado (e possível)

Page 13: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

13

• Muito usado por aplicações de multimídia contínua (streaming)

UDP: User Datagram Protocol

(streaming) • Tolerantes à perda• Sensíveis à taxa

• Outros usos do UDP (por quê?):• DNS• SNMP

• Transferência confiável sobre UDP: acrescentar UDP: acrescentar confiabilidade na camada de aplicação• Recuperação de erro

específica de cada aplicação

UDP Checksum

Objetivo: detectar “erros” (ex.: bits trocados) no segmento transmitidoTransmissor:• Trata o conteúdo do segmento como seqüência de inteiros de 16 bits• Checksum: soma (complemento de 1 da soma) do conteúdo do segmento• Transmissor coloca o valor do checksum no campo de checksum do UDP

Receptor:• Computa o checksum do segmento recebido• Verifica se o checksum calculado é igual ao valor do campo checksum:• NÃO - erro detectado• SIM - não há erros. Mas talvez haja erros apesar disso? Mas depois…

Page 14: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

14

• 3.1 Serviços da camada de transporte

• 3.2 Multiplexação e demultiplexação

Camada de transporte

3.2 Multiplexação e demultiplexação

• 3.3 Transporte não orientado à conexão: UDP

• 3.4 Princípios de transferência confiável de dados

• 3.5 Transporte orientado à conexão: TCP• Estrutura do segmento• Transferência confiável de dados• Controle de fluxo• Gerenciamento de conexão• Gerenciamento de conexão

• 3.6 Princípios de controle de congestionamento

• 3.7 Controle de congestionamento do TCP

• Importante nascamadas de aplicação

Princícios de transferência confiável de dados

camadas de aplicação, transporte e enlace

• Características dos canais não confiáveisdeterminarão a complexidade dos protocolos confiáveisde transferência de d d ( dt)dados (rdt)

Page 15: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

15

• Canal subjacente pode trocar valores dos bits num pacote• Checksum para detectar erros de bits

Transferência confiável usando um canal com erro de bits

• A questão: como recuperar esses erros:• Reconhecimentos (ACKs): receptor avisa explicitamente ao

transmissor que o pacote foi recebido corretamente• Reconhecimentos negativos (NAKs): receptor avisa

explicitamente ao transmissor que o pacote tem erros• Transmissor reenvia o pacote quando da recepção de um NAK

• Mecanismos necessários:• Detecção de erros• Retorno do receptor: mensagens de controle

(ACK, NAK) rcvr->sender

O que acontece se o ACK/NAK é corrompido ou perdido?• Transmissor não sabe o que aconteceu no receptor!

Transferência confiável usando um canal com erro de bits e perdas

q p• Transmissor deve esperar durante um tempo razoável pelo

ACK e se não recebe-lo deve retransmitir a informação

• Não pode apenas retransmitir: possível duplicata

Tratando duplicatas:• Transmissor acrescenta número de seqüência em cada• Transmissor acrescenta número de seqüência em cada

pacote• Transmissor reenvia o último pacote se ACK/NAK for

perdido• Receptor descarta (não passa para a aplicação) pacotes

duplicados

Page 16: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

16

Conhecidos como algoritmos ou protocolos Automatic Repeat Request (ARQ)

Estratégias de Retransmissão

epeat equest ( Q)

Questões de projeto:Como o receptor requisita uma retransmissão?Como a fonte sabe quando retransmitir?

Desempenho e exatidãoDesempenho e exatidão

Para simplificar as explicações assumiremos comunicaçõesdo tipo ponto-a-ponto

Mesmas soluções adotadas pela camada de enlace:• Verificação de erros (checksum)

Estratégias de Retransmissão

ç ( )

• Retransmissão

• Temporização

• Número de sequência

• Pipelining

• Janela deslizante

Page 17: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

17

• Serviços da camada de transporte

M lti l ã d lti l ã

Camada de transporte

• Multiplexação e demultiplexação

• Transporte não-orientado à conexão: UDP

• Princípios de transferência confiável de dados

• Transporte orientado à conexão: TCP• Estrutura do segmento• Transferência confiável de dados• Controle de fluxo• Gerenciamento de conexão

• Controle de congestionamento do TCP

O Protocolo TCP• Ponto-a-ponto:• Um transmissor, um receptor

• Confiável, seqüencial byte stream:, q y• Não há contornos de mensagens

• Pipelined: (transmissão de vários pacotessem confirmação)• Controle de congestionamento e de

fluxo definem tamanho da janela• Buffers de transmissão e de recepção• Dados full-duplex:• Transmissão bidirecional na mesma

conexãoMSS i i• MSS: maximum segment size

• Orientado à conexão: • Apresentação (troca de mensagens de

controle) inicia o estado do transmissore do receptor antes da troca de dados

• Controle de fluxo:• Transmissor não esgota a capacidade do

receptor

Page 18: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

18

URG: dados urgentes

Estrutura do segmento TCP

Estrutura do Segmento TCP

URG: dados urgentes (pouco usados)

ACK: campo de ACKé válido

PSH: produz envio dedados (pouco usado)

RST SYN FIN:

número de bytes receptor estápronto para

contagem porbytes de dados(não segmentos!)

RST, SYN, FIN:estabelec. de conexão

(comandos de criação e término)

pronto para aceitar

Internetchecksum

(como no UDP)

Números de seqüência:ú

Número de seqüência e ACKs do TCPNúmero de Sequência e ACKs no TCP

• 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?segmentos fora de ordem?

• A especificação do TCP não define, fica a critério do implementador

Page 19: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

19

P.: como escolher o valor da temporização do TCP?• Maior que o RTT

N RTT i

TCP Round Trip Time e temporização

• Nota: RTT varia• Muito curto: temporização prematura• Retransmissões desnecessárias

• Muito longo: a reação à perda de segmento fica lentaP.: Como estimar o RTT?• SampleRTT: tempo medido da transmissão de um segmento até a

respectiva confirmação• Ignora retransmissões e segmentos reconhecidos de forma g gcumulativa

• SampleRTT varia de forma rápida, é desejável um amortecedor paraa estimativa do RTT • Usar várias medidas recentes, não apenas o último SampleRTTobtido

Exemplos de estimativa do RTT

Page 20: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

20

• Serviços da camada de transporte

• Multiplexação e demultiplexação

Camada de transporte

• Transporte não-orientado à conexão: UDP

• Princípios de transferência confiável de dados

• Transporte orientado à conexão: TCP• Estrutura do segmento• Transferência confiável de dados• Controle de fluxo• Gerenciamento de conexão

• Controle de congestionamento do TCP

• TCP cria serviços de trasferência confiável de dados em cima do serviço não-confiável do IP

TCP: transferência de dados confiável

serviço não confiável do IP

• Transmissão de vários segmentos em paralelo (Pipelined segments)

• ACKs cumulativos

• TCP usa tempo de retransmissão simples

• Retransmissões são disparadas por:• Eventos de tempo de confirmação• ACKs duplicados

Page 21: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

21

TCP: cenários de retransmissão

Cenário com perdado ACK

Temporização prematura,ACKs cumulativos

TCP: cenários de retransmissão

Cenário de ACK cumulativo

Page 22: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

22

Evento no receptor

Segmento chega em ordem

Ação do receptor TCP

ACK retardado Espera até 500 ms

Geração de ACK [RFC 1122, RFC 2581]

Segmento chega em ordem, não há lacunas,segmentos anteriores jáaceitosSegmento chega em ordem, não há lacunas,um ACK atrasado pendenteSegmento chega fora de ordem

ACK retardado. Espera até 500 mspelo próximo segmento. Se não chegar, envia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando número ordem,número de seqüência chegoumaior: gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Envia ACK duplicado, indicando número de seqüência do próximo byte esperado

Reconhece imediatamente se o segmento começa na borda inferior do gap

• Com freqüência, o tempo de expiração é relativamente longo: d d d

Retransmissão rápida

• Longo atraso antes de reenviar um pacote perdido

• Detecta segmentos perdidos por meio de ACKs duplicados• Transmissor freqüentemente envia muitos segmentos• Se o segmento é perdido, haverá muitos ACKs duplicados

• Se o transmissor recebe 3 ACKs para o mesmo dado, ele supõeque o segmento após o dado confirmado foi perdido:• Retransmissão rápida: reenvia o segmento antes de o temporizador expirar

Page 23: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

23

• Serviços da camada de transporte

• Multiplexação e demultiplexação

Camada de transporte

Multiplexação e demultiplexação

• Transporte não orientado à conexão: UDP

• Princípios de transferência confiável de dados

• Transporte orientado à conexão: TCP• Estrutura do segmento• Transferência confiável de dados• Controle de fluxo• Gerenciamento de conexão• Gerenciamento de conexão

• Controle de congestionamento do TCP

• Lado receptor da conexão TCP possui um buffer de recepção:

Controle de fluxoTransmissor não deve esgotar

b ff d ã

TCP: controle de fluxo

possui um buffer de recepção:

• Serviço de speed-matching: encontra a taxa de envio adequada à taxa de vazão da aplicação receptora

os buffers de recepçãoenviando dados rápido demais

• Processos de aplicação podem ser lentos para ler o buffer

Page 24: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

24

• Receptor informa a área disponível incluindo valor

Controle de fluxo TCP: como funciona

disponível incluindo valorRcvWindow nos segmentos

• Transmissor limita os dados não confinados ao RcvWindow

• Garantia contra overflow no buffer do receptor

• Serviços da camada de transporte

• Multiplexação e demultiplexação

Camada de transporte

• Transporte não orientado à conexão: UDP

• Princípios de transferência confiável de dados

• Transporte orientado à conexão: TCP• Estrutura do segmento• Transferência confiável de dados• Controle de fluxo• Gerenciamento de conexão

• Controle de congestionamento do TCP

Page 25: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

25

O Protocolo TCP

Estabelecimento de ConexãoProtocoloProtocolo

Passo 1: o cliente envia um segmento SYN especificando a porta do servidor ao qual deseja se conectar e seu número de sequência inicialPasso 2: o servidor responde enviando outro segmento SYN com o ACK do segmento recebido e o seu próprio número de sequênciaPasso 3: o cliente retorna um ACK e a conexão se estabelece

O tamanho máximo de segmento (MSS) que cada lado se propõe a aceitar também é definido no momento do estabelecimento da conexãoPode acontecer um “half open”

TCP – Como Funciona

ServerClient Status: LISTENING

TEM

PO

Page 26: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

26

TCP – Como Funciona

ServerClient Status: SYN_RECV

SYN Conexão solicitada pelo cliente

TEM

PO

TCP – Como Funciona

ServerClient Status: SYN_RECV

SYN-ACK

SYNServidor aloca recursos (memória)Para a “potencial” conexãoe liga relógio de TIMEOUT

TEM

PO

Page 27: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

27

TCP – Como Funciona

ServerClient Status: ESTABILISHED

SYN-ACK

SYN

TEM

PO

ACK

(DATA)Cliente confirma o pedido de conexãoE inicia envio de dados.

TCP – Como Funciona

ServerClient Status: ESTABILISHED

SYN-ACK

SYN

TEM

PO

ACKTHREE WAY HANDSHAKE

Page 28: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

28

O Protocolo TCP

Término de ConexãoC d di ã d ã é dCada direção da conexão é encerrada independentementeProtocolo

Passo 1: o cliente envia um segmento FINPasso 2: o servidor retorna um FIN e um ACK para o cliente

FIN

ACKTempo

FIN

Cliente Servidor

Passo 3: o cliente envia um ACK e a conexão se encerra

É possível efetuar um “half close”, mantendo-se apenas uma conexão simplex

ACK

FIN

TCP – Como Funciona

ServerClient Status: STABLISHED Status: CLOSED

SYN-ACK

SYN

TEM

PO

ACK

(DATA)(DATA)

(DATA)

Após troca de informação, um dos lados solicita fim da conexão e o outro lado confirma.

FIN

FIN-ACK

ACK

Page 29: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

29

• Serviços da camada de transporte

• Multiplexação e demultiplexação

Camada de transporte

• Transporte não orientado à conexão: UDP

• Princípios de transferência confiável de dados

• Transporte orientado à conexão: TCP• Estrutura do segmento• Transferência confiável de dados• Controle de fluxo• Gerenciamento de conexão

• Controle de congestionamento do TCP

Janela de Congestionamento

Uma conexão TCP controla sua taxa de transmissão limitando o seu número de segmentos que podem serlimitando o seu número de segmentos que podem ser transmitidos sem que uma confirmação seja recebida

Esse número é chamado o tamanho da janela do TCP (w)

Uma conexão TCP começa com um pequeno valor de w e então o incrementa arriscando que exista mais largura de b d di í lbanda disponível

Isso continua a ocorrer até que algum segmento seja perdido

Nesse momento, a conexão TCP reduz w para um valor seguro, e então continua a arriscar o crescimento

Page 30: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

30

Controle de Congestionamento

O controle é feito através de duas variáveis adicionadas em cada lado da conexão:adicionadas em cada lado da conexão:

Janela de CongestionamentoJanela do TCP explicada anteriormente

LimiarServe para controlar o crescimento da janela de congestionamentocongestionamento

Graficamente ...

Page 31: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

31

Controle de Congestionamento TCP

0,6 K 5,7 K

5,0 K 5,2 K

5,1 K 5,5 K

Janela do Receptor

O número máximo de segmentos não confirmados é dado pelo mínimo entre os tamanhos das janelasé dado pelo mínimo entre os tamanhos das janelas de congestionamento e do receptor.

Ou seja, mesmo que haja mais largura de banda, o receptor também pode ser um gargalo.

Page 32: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

32

Evolução de uma Conexão TCP

No início, a janela de congestionamento tem o tamanho de um segmento. g

Tal segmento tem o tamanho do maior segmento suportado.

O primeiro segmento é enviado e então é esperado seu reconhecimento.

Se o mesmo chegar antes que ocorra o timeout, o transmissor duplica o tamanho da janela de

ti t i d i tcongestionamento e envia dois segmentos. Se esses dois segmentos também forem reconhecidos antes de seus timeouts, o transmissor duplica novamente sua janela, enviando agora quatro segmentos.

Evolução de uma Conexão TCP

Esse processo continua até que: Hospedeiro A Hospedeiro B

O tamanho da janela de congestionamento seja maior que o limiar, ou maior que o tamanho da janela do receptor;Ocorra algum timeouts antes da confirmação

RTT

confirmação.

tempo

Page 33: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

33

Duas Fases dessa Evolução

A primeira fase, em que a janela de congestionamento cresce exponencialmente écongestionamento cresce exponencialmente é chamada de inicialização lenta (slow start), pelo fato de começar com um segmento

A taxa de transmissão começa pequena porém cresce muito rapidamente

Graficamente ...

SLOW START

Page 34: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

34

Duas Fases dessa Evolução

Uma vez ultrapassado o limiar, e a janela do receptor ainda não seja um limitante o crescimentoreceptor ainda não seja um limitante, o crescimento da janela passa a ser linear.

Essa segunda fase é chamada de prevenção de congestionamento (congestion avoidance).

Sua duração também depende da não ocorrência timeouts, e da aceitação do fluxo por parte do receptor.

Graficamente ...

CONGESTION AVOIDANCE

Page 35: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

35

E quando ocorrer um problema?

Evolução de uma Conexão TCP

Na ocorrência de um timeout o TCP irá configurar:O valor do limiar passa a ser a metade do tamanho atual da pjanela de congestionamentoO tamanho da janela de congestionamento volta ser do tamanho de um segmento O tamanho da janela de congestionamento volta a crescer exponencialmente

Caso ocorram 3 ACKs duplicados:Caso ocorram 3 ACKs duplicados:O valor do limiar é ajustado para metade tamanho atual da janela de congestionamentoO tamanho da janela de congestionamento passa igual aovalor do limiar (metade da janela de congestionamento atual)O tamanho da janela de congestionamento cresce linearmente

Page 36: Redes de Computadoresreinaldo/computer_networks_files/05_CAMADA... · Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes ... Tipo de protocolo está indicado

26/4/2013

36

Resumo

Quando o tamanho da janela de congestionamento está abaixo do limiar, seu crescimento é exponencial

Quando este tamanho está acima do limiar, o crescimento é linear

Todas as vezes que ocorrer um timeout, o limiar é modificado para a metade do tamanho da janela e o tamanho da janela passa a ser 1

A rede não consegue entregar nenhum dos pacotesA rede não consegue entregar nenhum dos pacotes (“congestionamento pesado”)

Quando ocorrem ACKs repetidos a janela cai pela metadeA rede ainda é capaz de entregar alguns pacotes (“congestionamento leve”)

Graficamente ...