22
3: Camada de Transporte 3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: compreender os princípios atrás dos serviços da camada de transporte: multiplexação/ desmultiplexação controle de fluxo controle de congestionamento Sumário do Capítulo: serviços da camada de transporte multiplexação/desmultiplexação transporte sem conexão: UDP transporte orientado a conexão: TCP transferência confiável controle de fluxo gerenciamento de conexões principles de controle de congestionamento controle de congestionamento em TCP

3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

Embed Size (px)

Citation preview

Page 1: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-1

Capítulo 3: Camada de TransporteMetas do capítulo: compreender os

princípios atrás dos serviços da camada de transporte: multiplexação/

desmultiplexação controle de fluxo controle de

congestionamento

Sumário do Capítulo: serviços da camada de transporte multiplexação/desmultiplexação transporte sem conexão: UDP transporte orientado a conexão:

TCP transferência confiável controle de fluxo gerenciamento de conexões

principles de controle de congestionamento

controle de congestionamento em TCP

Page 2: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-2

Serviços e protocolos de transporte

provê comunicação lógica entre processos de aplicação executando em hospedeiros diferentes

protocolos de transporte executam em sistemas terminais

serviços das camadas de transporte X rede:

camada de rede : dados transferidos entre sistemas

camada de transporte: dados transferidos entre processos depende de, estende

serviços da camada de rede

aplicaçãotransporte

redeenlacefísica

redeenlacefísica

aplicaçãotransporte

redeenlacefísica

redeenlacefísica

redeenlacefísica

redeenlacefísica

redeenlacefísica

transporte lógico fim a fim

Page 3: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-3

Protocolos da camada de transporte

Serviços de transporte na Internet:

entrega confiável, ordenada, ponto a ponto (TCP) congestionamento controle de fluxo estabelecimento de

conexão (setup) entrega não confiável,

(“melhor esforço”), não ordenada, ponto a ponto ou multiponto: UDP

serviços não disponíveis: tempo-real garantias de banda multiponto confiável

aplicaçãotransporte

redeenlacefísica

redeenlacefísica

aplicaçãotransporte

redeenlacefísica

redeenlacefísica

redeenlacefísica

redeenlacefísica

redeenlacefísica

transporte lógico fim a fim

Page 4: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-4

aplicaçãotransporte

rede

MP2

aplicaçãotransporte

rede

Multiplexação/desmultiplexação

Lembrança: segmento - unidade de dados trocada entre entidades da camada de transporte = TPDU: transport

protocol data unit

receptor

HtHn

Desmultiplexação: entrega de segmentos recebidos para os processos da camada de apl corretos

segmento

segmento Maplicaçãotransporte

rede

P1M

M MP3 P4

cabeçalhode segmento

dados da camada de aplicação

Page 5: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-5

Multiplexação/desmultiplexação

multiplexação/desmultiplexação: baseadas em números de porta e

endereços IP de remetente e receptor números de porta de

remetente/receptor em cada segmento

lembrete: número de porta bem conhecido para aplicações específicas

juntar dados de múltiplosprocessos de apl, envelopandodados com cabeçalho (usado depois para desmultiplexação)

porta remetente porta receptor

32 bits

dados daaplicação

(mensagem)

outros campos do cabeçalho

formato de segmento TCP/UDP

Multiplexação:

Page 6: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-6

Multiplexação/desmultiplexação: exemplos

estação A

servidor B

porta orig.: xporta dest: 23

porta orig:23porta dest: x

uso de portas: apl. simples de telnet

cliente WWWestação A

servidor WWW B

Web clienthost C

IP orig: CIP dest: B

porta orig: xporta dest: 80

IP orig : CIP dest: B

porta orig: yporta dest: 80

uso de portas : servidor WWW

IP orig: AIP dest: B

porta orig: xporta dest:

80

Page 7: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-7

UDP: User Datagram Protocol [RFC 768]

Protocolo de transporte da Internet mínimo, “sem frescura”,

Serviço “melhor esforço”, segmentos UDP podem ser: perdidos entregues à aplicação fora

de ordem do remesso sem conexão:

não há “setup” UDP entre remetente, receptor

tratamento independente de cada segmento UDP

Por quê existe um UDP? elimina estabelecimento de

conexão (o que pode causar retardo)

simples: não se mantém “estado” da conexão no remetente/receptor

pequeno cabeçalho de segmento

sem controle de congestionamento: UDP pode transmitir o mais rápido possível

Page 8: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-8

Mais sobre UDP

muito utilizado para apls. de meios contínuos (voz, vídeo) tolerantes de perdas sensíveis à taxa de

transmissão

outros usos de UDP (por quê?): DNS (nomes) SNMP (gerenciamento)

transferência confiável com UDP: incluir confiabilidade na camada de aplicação recuperação de erro

específica à apl.!

porta origem porta dest.

32 bits

Dados de aplicação

(mensagem)

UDP segment format

comprimento checksum

Comprimento embytes do

segmento UDP,incluindo cabeçalho

Page 9: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-9

Checksum UDP

Remetente: trata conteúdo do segmento

como sequência de inteiros de 16-bits

campo checksum zerado checksum: soma (adição

usando complemento de 1) do conteúdo do segmento

remetente coloca complemento do valor da soma no campo checksum de UDP

Receiver: computa checksum do

segmento recebido verifica se checksum

computado é zero: NÃO - erro detectado SIM - nenhum erro

detectado. Mas ainda pode ter erros? Veja depois ….

Meta: detecta “erro” (e.g., bits invertidos) no segmento transmitido

Page 10: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-10

TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581

transmissão full duplex: fluxo de dados bi-

direcional na mesma conexão

MSS: tamanho máximo de segmento

orientado a conexão: handshaking (troca de

msgs de controle) inicia estado de remetente, receptor antes de trocar dados

fluxo controlado: receptor não será afogado

ponto a ponto: 1 remetente, 1 receptor

fluxo de bytes, ordenados, confiável: não estruturado em msgs

dutado: tam. da janela ajustado por

controle de fluxo e congestionamento do TCP

buffers de envio e recepção

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Page 11: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-11

TCP: estrutura do segmento

no. porta origemno. porta dest

32 bits

dados daaplicação

(tam. variável)

número de seqüêncianúmero de

reconhecimentojanela receptor

ptr dados urg.checksum

FSRPAUtam.cab.

semuso

Opções (tam. variável)

URG: dados urgentes (pouco usados)

ACK: no. ACKválido

PSH: envia dados já(pouco usado)

RST, SYN, FIN:gestão de conexão

(comandos deestabelecimento,

liberação)

no. bytes rcpt queraceitar

contagem de dadospor bytes (não segmentos!)

checksum Internet

(como UDP)

Page 12: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-13

TCP: números de Seq. e ACKsNos. de seq.:

“número”dentro do fluxo de bytes do primeiro byte de dados do segmento

ACKs: no. de seq do próx.

byte esperado do outro lado

ACK cumulativoP: como receptor trata

segmentos fora da ordem? R: espec do TCP

omissa - deixado ao implementador

Estação A Estação B

Seq=42, ACK=79, data = ‘C’

Seq=79, ACK=43, data = ‘C’

Seq=43, ACK=80

Usuáriotecla‘C’

A reconhecechegada

do ‘C’ecoado

B reconhecechegada de

‘C’, ecoa‘C’ de volta

tempocenário simples de telnet

Page 13: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-14

TCP geração de ACKs [RFCs 1122, 2581]

Evento

chegada de segmento em ordemsem lacunas,anteriores já reconhecidos

chegada de segmento em ordemsem lacunas,um ACK retardado pendente

chegada de segmento fora de ordem, com no. de seq. maiorque esperado -> lacuna

chegada de segmento que preenche a lacuna parcial oucompletamente

Ação do receptor TCP

ACK retardado. Espera até 500msp/ próx. segmento. Se não chegarsegmento, envia ACK

envia imediatamente um únicoACK cumulativo

envia ACK duplicado, indicando no. de seq.do próximo byte esperado

ACK imediato se segmento noinício da lacuna

Page 14: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-15

HTTP request

HTTP response

HTTP response

HTTP response

TCP

TCP

TCP

TCP

TCPTCP

TCP

TCP

TCPEstabelecimento

da Conexão(3 Way Hand-shake)

Transmissão dos Dados com

Manutenção daConexão

Encerramentoda Conexão

Syn

Ack, Syn

Ack

Ack

Ack

Ack

Fyn

Fyn

Controle de fluxo através da técnicado Janelamento !!!

Cliente Servidor

TCP em ação: Tráfego http

Page 15: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-16

Syn

Ack, Syn

Ack

Ack

Ack

Ack

Fyn

Fyn

PO: 2031, PD: 80, Seq: 100, Ack: 0, Janela: 3

PO:80, PD: 2031, Seq: 25, Ack: 101, Janela: 3

PO: 2031, PD: 80, Seq: 101, Ack: 26, Janela: 3

PO: 2031, PD: 80, Seq: 102, Ack: 26, Janela: 3 PO:80, PD: 2031, Seq: 26, Ack: 103, Janela: 3 PO:80, PD: 2031, Seq: 27, Ack: 103, Janela: 3 PO:80, PD: 2031, Seq: 28, Ack: 103, Janela: 3 PO:80, PD: 2031, Seq: 29, Ack: 103, Janela: 3

PO: 2031, PD: 80, Seq: 103, Ack: 30, Janela: 3

PO:80, PD: 2031, Seq: 31, Ack: 104, Janela: 3 PO:80, PD: 2031, Seq: 32, Ack: 104, Janela: 3

PO:80, PD: 2031, Seq: 30, Ack: 104, Janela: 3

PO: 2031, PD: 80, Seq: 104, Ack: 33, Janela: 3

PO:80, PD: 2031, Seq: 34, Ack: 105, Janela: 3 PO:80, PD: 2031, Seq: 35, Ack: 105, Janela: 3

PO:80, PD: 2031, Seq: 33, Ack: 105, Janela: 3

PO: 2031, PD: 80, Seq: 105, Ack: 36, Janela: 3

PO:80, PD: 2031, Seq: 36, Ack: 106, Janela: 3

PO: 2031, PD: 80, Seq: 106, Ack: 37, Janela: 3

Cliente Servidor

TCP em ação: Tráfego http(cont)

Page 16: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-17

TCP: cenários de retransmissão

Estação A

Seq=92, 8 bytes de dados

ACK=100

perda

tem

pori

zaçã

o

tempo cenário doACK perdido

Estação B

X

Seq=92, 8 bytes de dados

ACK=100

Host A

Seq=100, 20 bytes de dados

ACK=100

Tem

p.p

/ Seq=

92

temporização prematura,ACKs cumulativos

Host B

Seq=92, 8 bytes de dados

ACK=120

Seq=92, 8 bytes de dados

Tem

p.

p/

Seq=

100

ACK=120

tempo

Page 17: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-18

remetente não esgotaria buffers do receptor por

transmitir muito, ou muito rápidamente

controle de fluxo

TCP: Controle de Fluxoreceptor: explicitamente

avisa o remetente da quantidade de espaço livre disponível (muda dinamicamente) campo RcvWindow

no segmento TCP remetente: mantém a

quantidade de dados transmitidos, porém ainda não reconhecidos, menor que o valor mais recente de RcvWindow

buffering pelo receptor

RcvBuffer = tamanho do Buffer de recepção

RcvWindow = espaço vazio no Buffer

Page 18: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-19

TCP: Gerenciamento de Conexões

Lembrete: Remetente, receptor TCP estabelecem “conexão” antes de trocar segmentos de dados

inicializam variáveis TCP: nos. de seq. buffers, info s/ controle de

fluxo (p.ex. RcvWindow) cliente: iniciador de conexão Socket clientSocket = new

Socket("hostname","port number"); servidor: contactado por cliente Socket connectionSocket =

welcomeSocket.accept();

Inicialização em 3 tempos:

Passo 1: sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no. inicial de seq

Passo 2: sistema servidor recebe SYN, responde com segmento de controle SYNACK

reconhece SYN recebido aloca buffers especifica no. inicial de seq.

servidor-> receptor

Page 19: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-20

TCP: Gerenciamento de Conexões (cont.)

Encerrando uma conexão:

cliente fecha soquete: clientSocket.close();

Passo 1: sistema cliente envia segmento de controle FIN ao servidor

Passo 2: servidor recebe FIN, responde com ACK. Encerra a conexão, enviando FIN.

cliente

FIN

servidor

ACK

ACK

FIN

fechar

fechar

fechada

esp

era

te

mpori

zada

Page 20: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-21

TCP: Gerenciamento de Conexões (cont.)

Passo 3: cliente recebe FIN, responde com ACK.

Entre em “espera temporizada” - responderá com ACK a FINs recebidos

Step 4: servidor, recebe ACK. Conexão encerrada.

Note: com pequena modificação, consegue tratar de FINs simultâneos.

cliente

FIN

servidor

ACK

ACK

FIN

fechando

fechando

fechada

esp

era

tem

pori

zada

fechada

Page 21: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-22

Princípios de Controle de Congestionamento

Congestionamento: informalmente: “muitas fontes enviando muitos

dados muito rapidamente para a rede poder tratar”

differente de controle de fluxo! manifestações:

perda de pacotes (esgotamento de buffers em roteadores)

longos atrasos (enfileiramento nos buffers dos roteadores)

um dos 10 problemas mais importantes em redes!

Page 22: 3: Camada de Transporte3b-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-23

Capítulo 3: Sumário

Princípios atrás dos serviços da camada de transporte: multiplexação/

desmultiplexação transferência confiável de

dados controle de fluxo

instanciação e implementação na Internet UDP TCP

Próximo capítulo: saímos da “borda” da

rede (camadas de aplicação e transporte)

entramos no “núcleo”da rede