Abstract on Wireless Sensor Network and Routing Protocol.
Protocol CSMA/CA - MAC Layer
Protocol Direct Diffusion + GEAR for forwarding msgs in ad-hoc network
Abstract on Wireless Sensor Network and Routing Protocol.
Protocol CSMA/CA - MAC Layer
Protocol Direct Diffusion + GEAR for forwarding msgs in ad-hoc network
The document discusses strategies for engaging donors online. It defines engaged donors as those who take actions like donating, attending events, volunteering, and recruiting others. Engaged donors build relationships and are more cost-effective than acquiring new donors. The document provides tips for engaging donors online such as listening to them on social media, making donations easy, and giving donors what they want like impact stories and details about the organization. Examples of successful nonprofit websites and tools for engagement are also presented.
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
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
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
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
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
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
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
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
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
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