Your SlideShare is downloading. ×
SCTP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

SCTP

1,558
views

Published on

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,558
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
93
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. SCTP Stream Control Transmission Protocol Gruppo 9 Destro Carlo 798286 1 2 3 4 5 6 7 8 9 10 11 12
  • 2. INDICE 1. SCTP, questo sconosciuto 2. Struttura dei pacchetti 3. Stati di un’associazione 4. INIT chunk 5. Multihoming 6. Path heartbeat 7. Multistreming 8. Flow congestion & flow control 9. Performance 10. Conclusioni S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 3. SCTP, QUESTO SCONOSCIUTO S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 4. SCTP, QUESTO SCONOSCIUTO S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 5. SCTP, QUESTO SCONOSCIUTO  23 novembre 1998 nasce SIGTRAN (SIGnalin TRANsport) S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 6. SCTP, QUESTO SCONOSCIUTO  23 novembre 1998 nasce SIGTRAN (SIGnalin TRANsport)  inizialmente MDTP, dopo 9 versioni diventa SCTP S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 7. SCTP, QUESTO SCONOSCIUTO  23 novembre 1998 nasce SIGTRAN (SIGnalin TRANsport)  inizialmente MDTP, dopo 9 versioni diventa SCTP  SCTP è un nuovo protocollo IP, allo stesso livello di UDP e TCP S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 8. SCTP, QUESTO SCONOSCIUTO  23 novembre 1998 nasce SIGTRAN (SIGnalin TRANsport)  inizialmente MDTP, dopo 9 versioni diventa SCTP  SCTP è un nuovo protocollo IP, allo stesso livello di UDP e TCP  come TCP offre un trasporto sicuro ed ordinato dei dati attraverso la rete S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 9. SCTP, QUESTO SCONOSCIUTO  23 novembre 1998 nasce SIGTRAN (SIGnalin TRANsport)  inizialmente MDTP, dopo 9 versioni diventa SCTP  SCTP è un nuovo protocollo IP, allo stesso livello di UDP e TCP  come TCP offre un trasporto sicuro ed ordinato dei dati attraverso la rete  diversamente da TCP garantisce alcune funzioni critiche per il trasporto di segnali telefonici (come la reattività e la persistenza di più canali di back-up) S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 10. STRUTTURA DEI PACCHETTI S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 11. STRUTTURA DEI PACCHETTI COMMON HEADER  compreso in ogni datagram  source port: per multiplexing dall’upper-user  destination port: per demultiplexing all’upper-user  verification tag: per confermare l’autenticità del sender  checksum: calcolato con Adler-32 per individuare datagram corrotti S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 12. STRUTTURA DEI PACCHETTI S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 13. STRUTTURA DEI PACCHETTI CHUNK  “vagone” che compone il “treno” datagram  chunk type: definisce come interpretare il contenuto del chunk  chunk flags: in base al chunk type passano dei parametri al receiver  chunk length: lunghezza complessiva del chunk  fixed fields: dati trasportati S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 14. STRUTTURA DEI PACCHETTI S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 15. STRUTTURA DEI PACCHETTI PARAMETER / CAUSE  type/code: definisce come interpretare i dati trasportati  length: lunghezza  value: dati trasportati S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 16. STATI DI UNA ASSOCIAZIONE S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 17. STATI DI UNA ASSOCIAZIONE ESTABLISHMENT (4-way handshake) S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 18. STATI DI UNA ASSOCIAZIONE ESTABLISHMENT (4-way handshake)  A richiede l’associazzione allegando il proprio VerificationTag (random) S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 19. STATI DI UNA ASSOCIAZIONE ESTABLISHMENT (4-way handshake)  A richiede l’associazzione allegando il proprio VerificationTag (random)  B risponde ripetendo il VerificationTag di A, generando il proprio VerificationTag e allegando un Cookie [hash(MAC), timestamp, lifespan e altre info per la connessione] S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 20. STATI DI UNA ASSOCIAZIONE ESTABLISHMENT (4-way handshake)  A richiede l’associazzione allegando il proprio VerificationTag (random)  B risponde ripetendo il VerificationTag di A, generando il proprio VerificationTag e allegando un Cookie [hash(MAC), timestamp, lifespan e altre info per la connessione]  A rimanda a B il Cookie [e può iniziare a spedire dati] S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 21. STATI DI UNA ASSOCIAZIONE ESTABLISHMENT (4-way handshake)  A richiede l’associazzione allegando il proprio VerificationTag (random)  B risponde ripetendo il VerificationTag di A, generando il proprio VerificationTag e allegando un Cookie [hash(MAC), timestamp, lifespan e altre info per la connessione]  A rimanda a B il Cookie [e può iniziare a spedire dati]  B controlla che il Cookie sia proprio quello che aveva generato poco prima; in caso di successo risponde con un Cookie- Ack [e può iniziare a spedire dati] S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 22. STATI DI UNA ASSOCIAZIONE SHUTDOWN (3-way) A B A invia il chunk SHUTDOWN e smette di  inviare dati B risponde con lo SHUTDOWN-ACK e smette  di inviare dati A risponde con lo SHUTDOWN-COMPLETION e cancella i dati relativi all’associazione  B cancella i dati relativi all’associazione  S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 23. INIT CHUNK S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 24. INIT CHUNK S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 25. INIT CHUNK INIT chunk attualmente nessun flag lunghezza chunk primo Verification Tag dell’associazione buffer minimo garantito per l’associazione numero di streams in entrata/uscita valore di partenza della SequenceNumber IPv4 disponibili nel sender IPv6 disponibili nel sender tipi di IP supportati (IPv4, IPv6, host) possibile sviluppo futuro di SCTP S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 26. MULTIHOMING S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 27. MULTIHOMING S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 28. MULTIHOMING Connection oriented  unica connessione S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 29. MULTIHOMING Connection oriented  unica connessione S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 30. MULTIHOMING Connection oriented  unica connessione Association oriented  multiple connessioni  IPv4 e IPv6  Fault Tolerance  Load Balancing [in futuro] S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 31. PATH HEARTBEAT S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 32. PATH HEARTBEAT ?? Come sapere se le connessioni di back-up sono ancora attive dopo l’Handshake?? S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 33. PATH HEARTBEAT ?? Come sapere se le connessioni di back-up sono ancora attive dopo l’Handshake?? Soluzione: le testo continuamente! S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 34. PATH HEARTBEAT ?? Come sapere se le connessioni di back-up sono ancora attive dopo l’Handshake?? Soluzione: le testo continuamente! HEARTBEAT chunk attualmente nessun flag lunghezza chunk } stato attuale dell’associazione timestamp S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 35. PATH HEARTBEAT ?? Come sapere se le connessioni di back-up sono ancora attive dopo l’Handshake?? Soluzione: le testo continuamente! HEARTBEAT chunk attualmente nessun flag lunghezza chunk } stato attuale dell’associazione timestamp Considerazioni  sfrutta timestamp per calcolare RTT e disponibilità del peer  definisce l’indirizzo non valido in base a HB.counter  tiene aggiornato l’upper-user sul numero di indirzzi di backup disponibili S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 36. MULTISTREAMING S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 37. MULTISTREAMING Una associazione N streams!  invio parallelo di dati  invio ordinato dei messaggi  invio non ordinato dei messaggi  no Head-of-Line blocking S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 38. MULTISTREAMING Una associazione N streams!  invio parallelo di dati  invio ordinato dei messaggi  invio non ordinato dei messaggi  no Head-of-Line blocking S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 39. MULTISTREAMING Una associazione N streams!  invio parallelo di dati  invio ordinato dei messaggi  invio non ordinato dei messaggi  no Head-of-Line blocking S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 40. FLOW CONGESTION & FLOW CONTROL S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 41. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND (Congestion Control Window) CWND (Slow Start Threshold) SSTHRESH S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 42. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND Slow Start Congestion Avoidance (Congestion Control Window) CWND Fast-Retrasmit on Gap Reports (Slow Start Threshold) SSTHRESH Fast-Recovery S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 43. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND Slow Start Congestion Avoidance (Congestion Control Window) CWND Fast-Retrasmit on Gap Reports (Slow Start Threshold) SSTHRESH Fast-Recovery S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 44. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND Slow Start Congestion Avoidance (Congestion Control Window) CWND Fast-Retrasmit on Gap Reports (Slow Start Threshold) SSTHRESH Fast-Recovery SACK chunk S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 45. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND Slow Start Congestion Avoidance (Congestion Control Window) CWND Fast-Retrasmit on Gap Reports (Slow Start Threshold) SSTHRESH Fast-Recovery SACK chunk attualmente nessun flag S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 46. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND Slow Start Congestion Avoidance (Congestion Control Window) CWND Fast-Retrasmit on Gap Reports (Slow Start Threshold) SSTHRESH Fast-Recovery SACK chunk attualmente nessun flag lunghezza chunk S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 47. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND Slow Start Congestion Avoidance (Congestion Control Window) CWND Fast-Retrasmit on Gap Reports (Slow Start Threshold) SSTHRESH Fast-Recovery SACK chunk attualmente nessun flag lunghezza chunk ultimo byte ricevuto in ordine S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 48. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND Slow Start Congestion Avoidance (Congestion Control Window) CWND Fast-Retrasmit on Gap Reports (Slow Start Threshold) SSTHRESH Fast-Recovery SACK chunk attualmente nessun flag lunghezza chunk ultimo byte ricevuto in ordine buffer minimo garantito per l’associazione S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 49. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND Slow Start Congestion Avoidance (Congestion Control Window) CWND Fast-Retrasmit on Gap Reports (Slow Start Threshold) SSTHRESH Fast-Recovery SACK chunk attualmente nessun flag lunghezza chunk ultimo byte ricevuto in ordine buffer minimo garantito per l’associazione cardinalità S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 50. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND Slow Start Congestion Avoidance (Congestion Control Window) CWND Fast-Retrasmit on Gap Reports (Slow Start Threshold) SSTHRESH Fast-Recovery SACK chunk attualmente nessun flag lunghezza chunk ultimo byte ricevuto in ordine buffer minimo garantito per l’associazione cardinalità dati non ancora ricevuti S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 51. FLOW CONGESTION & FLOW CONTROL (Receiver Advertised Window) RWND Slow Start Congestion Avoidance (Congestion Control Window) CWND Fast-Retrasmit on Gap Reports (Slow Start Threshold) SSTHRESH Fast-Recovery SACK chunk attualmente nessun flag lunghezza chunk ultimo byte ricevuto in ordine buffer minimo garantito per l’associazione cardinalità dati non ancora ricevuti TSN ricevuti più volte S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 52. PERFORMANCE S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 53. PERFORMANCE S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 54. PERFORMANCE S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 55. PERFORMANCE S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 56. PERFORMANCE Analisi  SCTP = 5% TCP bandwidth  Sebbene la banda di TCP cadesse per periodi lunghi, resta comunque più performante di STCP S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 57. PERFORMANCE Analisi  SCTP = 5% TCP bandwidth  Sebbene la banda di TCP cadesse per periodi lunghi, resta comunque più performante di STCP Possibili cause  SCTP è ancora un protocollo molto giovane se confrontato con TCP  si è lavorato molto sullo stack TCP di Linux  finora l’obiettivo principale per SCTP era renderlo completo e sicuro S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 58. CONCLUSIONI S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 59. CONCLUSIONI  SCTP si sta imponendo come terzo grande protocollo di trasporto assieme a TCP e UDP S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 60. CONCLUSIONI  SCTP si sta imponendo come terzo grande protocollo di trasporto assieme a TCP e UDP  non è ancora pronto per sostituire TCP, ma al momento è il miglior candidato per farlo S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 61. CONCLUSIONI  SCTP si sta imponendo come terzo grande protocollo di trasporto assieme a TCP e UDP  non è ancora pronto per sostituire TCP, ma al momento è il miglior candidato per farlo  la sua facile estensibilità lo rende velocemente adattabile a molti nuovi scenari S CT P 1 2 3 4 5 6 7 8 9 10 11 12
  • 62. CONCLUSIONI  SCTP si sta imponendo come terzo grande protocollo di trasporto assieme a TCP e UDP  non è ancora pronto per sostituire TCP, ma al momento è il miglior candidato per farlo  la sua facile estensibilità lo rende velocemente adattabile a molti nuovi scenari  SCTP è attualmente implementato nativamente su Linux, Solaris, FreeBSD, MAC OS X, IBM AIX, Cisco IOS, HP-UX e su sistemi NOKIA e SIEMENS. Disponibili diverse implementazioni open-source e proprietarie per la maggior parte dei sistemi operativi. S CT P 1 2 3 4 5 6 7 8 9 10 11 12