Introdução a Redes de
Computadores
- Nível de Transporte -
Protocolo TCP
(parte 1)
Prof. André Peres
andre.peres@poa.ifrs....
Sobre este material
• Vídeos da apresentação em:
Parte 1 - Nível de Transporte - Protocolo TCP
Parte 2 - Protocolo TCP (fl...
Referências
Redes de Computadores
(impresso)
Redes de Computadores
(e-book)
Redes de Computadores II
(impresso)
Redes de C...
Nível de Transporte
• TCP - Transmission Control Protocol (RFC 793)
• Orientado à conexão
• Garante a chega dos pacotes
• ...
Nível de Transporte - TCP
• Cabeçalho TCP:
Nível de Transporte - TCP
• Multiplexação de portas
• Source Port → porta de origem
• Destination Port → porta de destino
...
Nível de Transporte - TCP
• Multiplexação de portas, tamanho de cabeçalho e controle
de erros no destino
Nível de Transporte - TCP
• Controle de conexão
• FLAG (1 bit) identificando início de conexão → SYN
• FLAG (1 bit) indica...
Nível de Transporte - TCP
• Controle de Conexão
Nível de Transporte - TCP
Controle de Conexão
• Estabelecimento de conexões (three-way handshake)
Nível de Transporte
Controle de Conexão
• Finalização de conexões (4 vias)
Nível de Transporte
Controle de Conexão
• Finalização de conexões (3 vias)
Nível de Transporte - TCP
• Controle de Conexão
• Visão geral de uma conexão
• Demais FLAGS e Urgent Pointer
Nível de Transporte - TCP
• Demais FLAGS
• ECN - Explicit Congestion Notification
• Quando um roteador identifica uma situação de
congestionamento s...
• Demais FLAGS
• URG e Urgent Pointer
• não são utilizados por aplicações modernas
• cria prioridades de dados de aplicaçã...
• Demais FLAGS
• PSH - Push
• notificação para entrega de dados para a aplicação
• identifica o final de um fluxo de dados...
• Controle de Sequência
• Sequence number (Número de sequência)
• Acknowledgement number (Número de reconhecimento)
Nível ...
Nível de Transporte - TCP
• Controle de Sequência
• Sequence number (Número de sequência)
• 32 bits (0 - 4.294.967.296)
• ...
Nível de Transporte - TCP
Controle de Sequência
• Número de reconhecimento (Acknowledgement number)
• 32 bits (0 - 4.294.9...
Nível de Transporte - TCP
Controle de Sequência
Nível de Transporte - TCP
C S
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SeqNum = 0 | AckNum = 1 SYN/ACK
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SeqNum = 0 | AckNum = 1 SYN/ACK
SeqNum = 1 | AckNum = 1 ACK
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SeqNum = 0 | AckNum = 1 SYN/ACK
SeqNum = 1 | AckNum = 1 ACK
42 b...
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SeqNum = 0 | AckNum = 1 SYN/ACK
SeqNum = 1 | AckNum = 1 ACK
42 b...
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SeqNum = 0 | AckNum = 1 SYN/ACK
SeqNum = 1 | AckNum = 1 ACK
42 b...
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SeqNum = 0 | AckNum = 1 SYN/ACK
SeqNum = 1 | AckNum = 1 ACK
42 b...
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SeqNum = 0 | AckNum = 1 SYN/ACK
SeqNum = 1 | AckNum = 1 ACK
42 b...
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SeqNum = 0 | AckNum = 1 SYN/ACK
SeqNum = 1 | AckNum = 1 ACK
42 b...
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SeqNum = 0 | AckNum = 1 SYN/ACK
SeqNum = 1 | AckNum = 1 ACK
42 b...
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SeqNum = 0 | AckNum = 1 SYN/ACK
SeqNum = 1 | AckNum = 1 ACK
42 b...
Nível de Transporte - TCP
C S
SeqNum = 0 | AckNum = 0 SYN
SYN/ACK
ACK
SeqNum = 0 | AckNum = 1
SeqNum = 1 | AckNum = 1
42 b...
Nível de Transporte - TCP
• Cálculo de tempo médio de envio/recebimento de pacotes
• RTT (Round Trip Time)
• Calculado dur...
Nível de Transporte - TCP
• Exercício: captura e análise de cabeçalhos TCP
Próximos SlideShares
Carregando em…5
×

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

339 visualizações

Publicada em

Introdução a Redes de Computadores - 6 - Nível de Transporte - TCP
parte 1

Publicada em: Educação
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
339
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
18
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. Introdução a Redes de Computadores - Nível de Transporte - Protocolo TCP (parte 1) Prof. André Peres andre.peres@poa.ifrs.edu.br
  2. 2. 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/.
  3. 3. 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)
  4. 4. 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
  5. 5. Nível de Transporte - TCP • Cabeçalho TCP:
  6. 6. 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
  7. 7. Nível de Transporte - TCP • Multiplexação de portas, tamanho de cabeçalho e controle de erros no destino
  8. 8. 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
  9. 9. Nível de Transporte - TCP • Controle de Conexão
  10. 10. Nível de Transporte - TCP Controle de Conexão • Estabelecimento de conexões (three-way handshake)
  11. 11. Nível de Transporte Controle de Conexão • Finalização de conexões (4 vias)
  12. 12. Nível de Transporte Controle de Conexão • Finalização de conexões (3 vias)
  13. 13. Nível de Transporte - TCP • Controle de Conexão • Visão geral de uma conexão
  14. 14. • Demais FLAGS e Urgent Pointer Nível de Transporte - TCP
  15. 15. • 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
  16. 16. • 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
  17. 17. • 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
  18. 18. • Controle de Sequência • Sequence number (Número de sequência) • Acknowledgement number (Número de reconhecimento) Nível de Transporte - TCP
  19. 19. 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
  20. 20. 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
  21. 21. Nível de Transporte - TCP Controle de Sequência
  22. 22. Nível de Transporte - TCP C S
  23. 23. Nível de Transporte - TCP C S SeqNum = 0 | AckNum = 0 SYN
  24. 24. Nível de Transporte - TCP C S SeqNum = 0 | AckNum = 0 SYN SeqNum = 0 | AckNum = 1 SYN/ACK
  25. 25. Nível de Transporte - TCP C S SeqNum = 0 | AckNum = 0 SYN SeqNum = 0 | AckNum = 1 SYN/ACK SeqNum = 1 | AckNum = 1 ACK
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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 = 45 350 bytes aplicação
  31. 31. 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 = 45 350 bytes aplicação SeqNum = 45 | AckNum = 351
  32. 32. 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 = 45 350 bytes aplicação SeqNum = 45 | AckNum = 351 SeqNum = 351 | AckNum = 45 FIN
  33. 33. 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 = 45 350 bytes aplicação SeqNum = 45 | AckNum = 351 SeqNum = 351 | AckNum = 45 FIN FIN/ACK SeqNum = 45 | AckNum = 352
  34. 34. 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 = 45 350 bytes aplicação SeqNum = 45 | AckNum = 351 SeqNum = 351 | AckNum = 45 FIN SeqNum = 45 | AckNum = 352 SeqNum = 352 | AckNum = 46 ACK FIN/ACK
  35. 35. 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
  36. 36. Nível de Transporte - TCP • Exercício: captura e análise de cabeçalhos TCP

×