31
Administração e Gerenciam ento de Redes - SCE 238 1 Redes de Computadores Transmission Control Protocol - TCP

Redes de Computadores

  • Upload
    beth

  • View
    29

  • Download
    0

Embed Size (px)

DESCRIPTION

Redes de Computadores. Transmission Control Protocol - TCP. O modelo TCP/IP. Aplicativo. TCP,UDP. Transporte. IP. Internet. Interface de Rede. Comunicação vista pelo TCP. O Serviço de Transporte. - PowerPoint PPT Presentation

Citation preview

Page 1: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

1

Redes de Computadores

Transmission Control Protocol - TCP

Page 2: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

2

O modelo TCP/IP

Aplicativo

Transporte

Internet

Interface deRede

IP

TCP,UDP

Page 3: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

3

Comunicação vista pelo TCP

Page 4: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

4

O Serviço de Transporte

• Recebe dados da camada de aplicativos e os divide em unidades menores para a camada internet (IP).– multiplexação/demultiplexação

• Orientado à conexão (ponto a ponto)

• Controle de Fluxo (congestionamento)

• Confiabilidade (tratar erros)

Page 5: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

5

Transporte X Data Link

• Controle de Erros

• Controle de Fluxo

• Seqüenciamento de Pacotes

Page 6: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

6

Roteador

Meio Físico

Roteador SubRede

Host Host

a) Ambiente do Data Link b) Ambiente da camada de transporte

• Dissimilaridades– Endereçamento– Conexão– Capacidade de armazenamento (buffering)

Page 7: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

7

Estabelecendo uma conexão

• Requisição de conexão conexão aceita

• Não é tão simples: Pacotes– perdidos– armazenados (por roteadores)– duplicados

Page 8: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

8

Formato de um segmento TCP

Page 9: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

9

De onde vem a confiabiliade ?

• Técnica de Reconhecimento com Retransmissão: (Aknowledgement with Retransmission)– Receptor comunica-se com emissor enviando

uma msg ACK (aknowledgement) ao receber dados.

– Emissor mantém registro de cada pacote enviado e mantém um timer p/ retransmissão

Page 10: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

10

Reconhecimento c/ retransmissão

Eventos no Emissor Eventos no Receptor

Envia pacote 1

Recebe ACK 1Envia Pacote 2

Recebe ACK 2

Recebe Pacote 1Envia ACK 1

Recebe Pacote 2Envia ACK 2

Msgs na Rede

Page 11: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

11

Pacote perdido ou corrompidoEventos no Emissor Eventos no Receptor

Envia pacote 1Inicia Timer

ACK deveria chegar

Recebe ACK 1Cancela timer

Pacote deveria chegarACK deveria ser enviado

Recebe Pacote 1Envia ACK 1

Msgs na Rede

Tempo espira

Retransmite Pac. 1Inicia Timer

Pacote perdido

Page 12: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

12

Pacotes duplicados

• Origem de pacotes duplicados– Gerados por camadas inferiores de rede– Atrasos (delays) na rede

• Solução– Atribuir a cada pacote um nro de seqüência– exigir do receptor que “lembre” qual nro de

seqüência recebeu

Page 13: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

13

Segmentos, Streams e Nros de seqüência

• TCP enxerga fluxo de dados (data stream) – sequência de octetos (bytes)– Agrupados em Segmentos– Cada segmento viaja dentro de um datagrama

IP

• Transporte utiliza janelas deslizantes– melhor eficiência (maior throughput)– controle de fluxo (buferização)

Page 14: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

14

Janelas Deslizantes

• No TCP, as janelas deslizantes operam ao nível de octetos (não segmentos ou pacotes)

• Octetos são numerados seqüencialmente

• conceitualmente, a cada octeto é atribuído um nro de seqüência.

• Emissor mantém 3 ponteiros sobre a janela para cada conexão.

Page 15: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

15

Janela Deslizante

1 2 3 4 5 6 7 8 9 10 11 ...

Octetos enviados ereconhecidos

Octetos enviados enão reconhecidos

Octetos não enviadosmas que serão sem delay

Somente enviados apósmovimentação da janela

Page 16: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

16

Three-way handshake

• Procedimento usado para estabelecer conexão

• normalmente iniciado por um TCP e atendido por outro TCP

• Por que 3?– a escolha do nro inicial de seqüência (ISN) não

está atrelada a um clock global de rede.

Page 17: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

17

Eventos no Emissor Eventos no Receptor

Envia SYN seq = x

Recebe SYN +ACK Envia ACK y + 1

Recebe segmento SYNEnvia SYN seq = y, ACK x +1

Recebe ACK

Msgs na Rede

Obs: Se SYN está presente: nro de seqüência é ISN O primeiro octeto de dados será ISN+1.

Handshake: abrindo conexão

Page 18: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

18

Seleção do 1º nro de sequência (ISN)

• Aleatório: clock fictício de 32 bits incrementado a cada 4 microsegundos

• ciclo de 4.55 horas

• tempo máximo de vida de um segmento (MSL) < 4,55– ISN será único.

Page 19: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

19

Conexão antigaTCP A TCP B

1. FECHADA LISTEN

2. SYN-ENV. --> <SEQ=100><CTL=SYN> ...

3. (duplicate) ... <SEQ=90><CTL=SYN> --> SYN-RECEB.

4. SYN-ENV. <-- <SEQ=300><ACK=91><CTL=SYN,ACK> <-- SYN-RECEIVED

5. SYN-ENV. --> <SEQ=91><CTL=RST> --> LISTEN 6. ... <SEQ=100><CTL=SYN> --> SYN-RECEB.

7. SYN-ENV. <-- <SEQ=400><ACK=101><CTL=SYN,ACK> <-- SYN-RECEB.

8. ESTAB. --> <SEQ=101><ACK=401><CTL=ACK> --> ESTAB.

Page 20: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

20

Fechando uma conexão

• Conexão TCP: full duplex– contém 2 streams independentes de dados– O TCP que recebe pedido de fechamento, passa

a não aceitar mais dados– O TCP que iniciou o fechamento, pode ainda

receber dados.

Page 21: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

21

Fechando conexão

Eventos no Emissor Eventos no Receptor

Aplicativo fecha conexãoEnvia FIN seq = x

Recebe SYN +ACK Envia ACK y + 1

Recebe segmento SYNEnvia ACK x +1

(informa aplicativo)

Recebe ACK

Msgs na Rede

Aplicativo fecha conexãoEnvia FIN seq = y, ACK x + 1

Recebe ACK

Page 22: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

22

O que é uma janela ?Controle de Congestão

• Janela enviada em cada segmento indica faixa de nro de sequências que o emissor da janela está preparado para receber.

• Tam. relacionado ao buffer da conexão

Page 23: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

23

Page 24: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

24

Aplicativo passa 2K

Aplicativo passa 2K

Emissor pode env. 2K

2K

cheio

2K

2K

vazio0 4K

1K

Emissor Receptor

2K seq=0

ACK=2048 WIN=2048

2K seq=2048

ACK=4096 WIN=0

ACK=4096 WIN=2048

1K seq=4096

Emissor bloqueado

Aplicativo lê 2K

Page 25: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

25

Observações

• Emissor não tem que transmitir assim que dados chegam do aplicativo

• Receptor não tem que retransmitir ACKs imediatamente. (pode esperar o buffer encher)

Page 26: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

26

Formato de um segmento TCP

Page 27: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

27

Tamanho máximo segmento

• Header TCP: 20 bytes

• Header IP: 20 bytes

• Max: – 65535 - 20 - 20 = 65495 bytes de dados

Page 28: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

28

Conteúdo do Segmento 1

• Sequence Number: nro do primeiro octeto no segmento (exceto SYN)

• Aknowledgement: nro do octeto que o emissor espera receber.

• Hlen: comprimento do cabeçalho

• Reserved: não usado (projeto bem feito!)

Page 29: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

29

Conteúdo do Segmento 2

• Code Bits: propósito/objetivo do segmento

URG

ACK

PSH

RST

SYN

FIN

• URG: indica dado urgente sendo transmitido• ACK: Se 0, desprezar nro de aknowledgement• PSH: transmite segmento sem bufferizar• RST: resetar conexão (queda do host, rejeitar

segmento)

Page 30: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

30

Code Bits 2.1

• URG: indica dado urgente sendo transmitido• ACK: Se 0, desprezar nro de aknowledgement• PSH: transmite segmento sem bufferizar• RST: resetar conexão (queda do host, rejeitar

segmento)• SYN: estabelecer conexões (SYN=1)• FIN: liberar uma conexão

– SYN e FIN tem nros de sequência.

Page 31: Redes de Computadores

Administração e Gerenciamento de Redes - SCE 238

31

Conteúdo do Segmento 3

• Window: quantos octetos podem ser mandados começando a partir do byte no campo aknowledgement number.– window = 0: receptor precisa de “descanso”.

• Checksum: cabeçalho+dados

• Options: funções extras– Especificar valor inicial da janela– se ausente, usar default (536+20=556 octetos)