introdução a redes de computadores - 6 - nível de transporte - tcp (p1)

36
Introdução a Redes de Computadores - Nível de Transporte - Protocolo TCP (parte 1) Prof. André Peres [email protected]

Upload: andre-peres

Post on 21-Jul-2015

95 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Introdução a Redes de Computadores

- Nível de Transporte -Protocolo TCP

(parte 1)

Prof. André [email protected]

Page 2: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Sobre este material

• Vídeos da apresentação em:Parte 1 - Nível de Transporte - Protocolo TCP

Parte 2 - Protocolo TCP (flags)

Parte 3 - Protocolo TCP (sequência)

Parte 4 - Protocolo TCP (parte 1 - prática)

Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-NãoComercial-SemDerivações 4.0 Internacional. Para ver uma

cópia desta licença, visite http://creativecommons.org/licenses/by-nc-nd/4.0/.

Page 3: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Referências

Redes de Computadores (impresso)

Redes de Computadores (e-book)

Redes de Computadores II (impresso)

Redes de Computadores II (e-book)

Redes de Computadores III (impresso)

Redes de Computadores III (e-book)

Page 4: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte

• TCP - Transmission Control Protocol (RFC 793)

• Orientado à conexão• Garante a chega dos pacotes

• em ordem• recebendo confirmações (ACK)• retransmitindo em caso de perda ou erro• controlando time-out• controlando duplicação de pacotes• controlando o fluxo de envio

Page 5: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

• Cabeçalho TCP:

Page 6: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

• Multiplexação de portas• Source Port → porta de origem• Destination Port → porta de destino

• Tamanho de cabeçalho• Header length

• Identificação de erros no destino• Checksum

Page 7: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

• Multiplexação de portas, tamanho de cabeçalho e controle de erros no destino

Page 8: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

• Controle de conexão• FLAG (1 bit) identificando início de conexão → SYN• FLAG (1 bit) indicando a finalização de conexão → FIN• FLAG (1 bit) de reconhecimento → ACK

Page 9: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

• Controle de Conexão

Page 10: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

Controle de Conexão• Estabelecimento de conexões (three-way handshake)

Page 11: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte

Controle de Conexão• Finalização de conexões (4 vias)

Page 12: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte

Controle de Conexão• Finalização de conexões (3 vias)

Page 13: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

• Controle de Conexão• Visão geral de uma conexão

Page 14: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

• Demais FLAGS e Urgent Pointer

Nível de Transporte - TCP

Page 15: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

• Demais FLAGS• ECN - Explicit Congestion Notification

• Quando um roteador identifica uma situação de congestionamento seta ECN = 1

• CWR - Congestion Window Reduced• Ao ser notificado com ECN=1, o TCP diminui o fluxo

de transmissão diminuindo o valor do Congestion Window e notifica o roteador setando CWR =1

Nível de Transporte - TCP

Page 16: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

• Demais FLAGS

• URG e Urgent Pointer• não são utilizados por aplicações modernas• cria prioridades de dados de aplicação• Urgent Pointer - especifica o volume (quantidade de

bytes) urgentes• quando URG = 1 o TCP irá entregar os dados urgentes

para a aplicação imediatamente• o TCP notifica a aplicação de que se tratam de dados

urgentes

Nível de Transporte - TCP

Page 17: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

• Demais FLAGS

• PSH - Push• notificação para entrega de dados para a aplicação• identifica o final de um fluxo de dados• ao receber PSH = 1 o TCP entrega os dados para a

aplicação• RST - Reset

• interrupção de conexão abrupta• indicação de problema na comunicação• ao receber RST = 1 o TCP encerra a conexão sem mais

nenhuma troca de pacotes

Nível de Transporte - TCP

Page 18: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

• Controle de Sequência• Sequence number (Número de sequência)• Acknowledgement number (Número de reconhecimento)

Nível de Transporte - TCP

Page 19: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

• Controle de Sequência• Sequence number (Número de sequência)

• 32 bits (0 - 4.294.967.296)• Incrementado quando:

• flag SYN=1• incrementado em 1

• flag FIN=1• incrementado em 1

• existem dados de aplicação• incrementado no número de bytes de

aplicação

Page 20: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

Controle de Sequência• Número de reconhecimento (Acknowledgement number)

• 32 bits (0 - 4.294.967.296)• indica o valor de sequence number esperado• reconhece o recebimento de todos os pacotes

anteriores

Page 21: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

Controle de Sequência

Page 22: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

Page 23: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

Page 24: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SeqNum = 0 | AckNum = 1 SYN/ACK

Page 25: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SeqNum = 0 | AckNum = 1 SYN/ACK

SeqNum = 1 | AckNum = 1 ACK

Page 26: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SeqNum = 0 | AckNum = 1 SYN/ACK

SeqNum = 1 | AckNum = 1 ACK

42 bytes aplicação SeqNum = 1 | AckNum = 1

Page 27: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SeqNum = 0 | AckNum = 1 SYN/ACK

SeqNum = 1 | AckNum = 1 ACK

42 bytes aplicação SeqNum = 1 | AckNum = 1

SeqNum = 1 | AckNum = 43

Page 28: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SeqNum = 0 | AckNum = 1 SYN/ACK

SeqNum = 1 | AckNum = 1 ACK

42 bytes aplicação SeqNum = 1 | AckNum = 1

SeqNum = 1 | AckNum = 43

2 bytes aplicação SeqNum = 43 | AckNum = 1

Page 29: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SeqNum = 0 | AckNum = 1 SYN/ACK

SeqNum = 1 | AckNum = 1 ACK

42 bytes aplicação SeqNum = 1 | AckNum = 1

SeqNum = 1 | AckNum = 43

2 bytes aplicação SeqNum = 43 | AckNum = 1

SeqNum = 1 | AckNum = 45

Page 30: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SeqNum = 0 | AckNum = 1 SYN/ACK

SeqNum = 1 | AckNum = 1 ACK

42 bytes aplicação SeqNum = 1 | AckNum = 1

SeqNum = 1 | AckNum = 43

2 bytes aplicação SeqNum = 43 | AckNum = 1

SeqNum = 1 | AckNum = 45

SeqNum = 1 | AckNum = 45350 bytes aplicação

Page 31: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SeqNum = 0 | AckNum = 1 SYN/ACK

SeqNum = 1 | AckNum = 1 ACK

42 bytes aplicação SeqNum = 1 | AckNum = 1

SeqNum = 1 | AckNum = 43

2 bytes aplicação SeqNum = 43 | AckNum = 1

SeqNum = 1 | AckNum = 45

SeqNum = 1 | AckNum = 45350 bytes aplicação

SeqNum = 45 | AckNum = 351

Page 32: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SeqNum = 0 | AckNum = 1 SYN/ACK

SeqNum = 1 | AckNum = 1 ACK

42 bytes aplicação SeqNum = 1 | AckNum = 1

SeqNum = 1 | AckNum = 43

2 bytes aplicação SeqNum = 43 | AckNum = 1

SeqNum = 1 | AckNum = 45

SeqNum = 1 | AckNum = 45350 bytes aplicação

SeqNum = 45 | AckNum = 351

SeqNum = 351 | AckNum = 45 FIN

Page 33: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SeqNum = 0 | AckNum = 1 SYN/ACK

SeqNum = 1 | AckNum = 1 ACK

42 bytes aplicação SeqNum = 1 | AckNum = 1

SeqNum = 1 | AckNum = 43

2 bytes aplicação SeqNum = 43 | AckNum = 1

SeqNum = 1 | AckNum = 45

SeqNum = 1 | AckNum = 45350 bytes aplicação

SeqNum = 45 | AckNum = 351

SeqNum = 351 | AckNum = 45 FIN

FIN/ACKSeqNum = 45 | AckNum = 352

Page 34: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

C S

SeqNum = 0 | AckNum = 0 SYN

SYN/ACK

ACK

SeqNum = 0 | AckNum = 1

SeqNum = 1 | AckNum = 1

42 bytes aplicação SeqNum = 1 | AckNum = 1

SeqNum = 1 | AckNum = 43

SeqNum = 43 | AckNum = 1 2 bytes aplicação

SeqNum = 1 | AckNum = 45

SeqNum = 1 | AckNum = 45350 bytes aplicação

SeqNum = 45 | AckNum = 351

SeqNum = 351 | AckNum = 45 FIN

SeqNum = 45 | AckNum = 352

SeqNum = 352 | AckNum = 46 ACK

FIN/ACK

Page 35: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

• Cálculo de tempo médio de envio/recebimento de pacotes• RTT (Round Trip Time)• Calculado durante o estabelecimento da conexão• Monitorado durante toda a conexão

Page 36: Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP (p1)

Nível de Transporte - TCP

• Exercício: captura e análise de cabeçalhos TCP