Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα...

90
Κάντε κλικ για να ξεκινήσετε Δίκτυα Υπολογιστών Ενότητα 4: Μετάδοση δεδομένων από το στρώμα μεταφοράς Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα

Transcript of Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα...

Page 1: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Κάντε κλικ για να ξεκινήσετε

Δίκτυα Υπολογιστών

Ενότητα 4: Μετάδοση δεδομένων

από το στρώμα μεταφοράς

Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ

Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά

Τεχνολογικού Τομέα

Page 2: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Άδειες Χρήσης

• Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

• Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

2

Page 3: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Χρηματοδότηση

• Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

• Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού.

• Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

3

Page 4: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Ευχαριστίες

• Στην ανάπτυξη του υλικού βοήθησαν οι συνεργάτες του εργαστηρίου Δημήτρης Κόγιας, Μάνος Μιχαηλίδης και οι φοιτητές Λάζαρος Τουμανίδης, Στέφανος Μπογδάνης, Γιώργος Μπελτάος, Γιώργος Τσούκας.

4

Page 5: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Βιβλιογραφία

• James F. Kurose - Keith W. Ross, Δικτύωση Υπολογιστών, εκδ. Γκιούρδας. • Tanenbaum, Wetherall, Δίκτυα Υπολογιστών, Εκδ. Κλειδάριθμος. • Douglas E. Comer, Δίκτυα και διαδίκτυα υπολογιστών και εφαρμογές τους

στο Internet, Κλειδάριθμος. • Monteiro, J. M., Cruz, R. S., Patrikakis, C. Z., Papaoulakis, N. C., Calafate, C.

T., & Nunes, M. S. (2013). Peer-to-Peer Video Streaming. In R. Farrugia, & C. Debono (Eds.), Multimedia Networking and Coding (pp. 254-313). Hershey, PA: Information Science Reference. doi:10.4018/978-1-4666-2660-7.ch010.

• Charalampos Z. Patrikakis, Angelos- Christos Anadiotis, Penetrating with DDoS Attacks, (διαθέσιμο στο διαδίκτυο: http://pentestmag.com), PenTest Magazine, vol2 no 5, Aug 2012, pp [16-22].

• Pendegraft, N. (2003). The TCP/IP Game. In T. McGill (Ed.), Current Issues in IT Education (pp. 117-124). Hershey, PA: IRM Press. doi:10.4018/978-1-93177-753-7.ch009. Τμήμα των σημειώσεων είναι βασισμένο σε συνοδευτικό υλικό του βιβλίου των

James F. Kurose - Keith W. Ross, Computer Networking, Pearson publications

5

Page 6: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Περιεχόμενα

6

4.1 Επιδόσεις δικτύου δεδομένων σε επίπεδο μεταφοράς.

4.2 Επίπεδο μεταφοράς δεδομένων (Βασικές αρχές λειτουργίας πρωτοκόλλων μεταφοράς δεδομένων).

4.4 Έλεγχος ροής και συμφόρησης στο TCP (Έλεγχος ροής ανάμεσα στα δύο άκρα, slow start, congestion avoidance, fast retransmit, fast recovery).

4.3 Πρωτόκολλα μεταφοράς διαδικτύου (Transport Control Protocol, User Datagram Protocol)

Page 7: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Προσδοκώμενα Αποτελέσματα

7

Στην ενότητα αυτή θα μάθετε για:

Βασικές αρχές λειτουργίας του στρώματος μεταφοράς στο διαδίκτυο,

Αξιόπιστη και επιβεβαιωμένη μεταφορά δεδομένων, TCP, UDP,

Τα sockets, Τον έλεγχο ροής και συμφόρησης.

Page 8: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

8

4.1 Επιδόσεις δικτύου δεδομένων σε επίπεδο μεταφοράς

Page 9: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Όροι

• Bitrate – (Bandwidth): Ρυθμαπόδοση (Εύρος ζώνης) – Η μέγιστη ταχύτητα αποστολής δεδομένων από τον αποστολέα

– Υπολογίζεται συνήθως σε bits per second (bps)

• Throughput: Απόδοση (=data transferred/time) – Η μέγιστη δυνατότητα ροής δεδομένων ανάμεσα στις δύο άκρες της σύνδεσης, με

συνυπολογισμό της επιβάρυνσης των επιπλέον πληροφοριών του δικτύου

– Υπολογίζεται σε bits ή Bytes per second (bps/Bps)

• Goodput: Πραγματική απόδοση (=throughput – overhead/time) – Η πραγματική απόδοση, που αντιστοιχεί στη μεταφορά μόνο των χρήσιμων δεδομένων

για την εφαρμογή

– Υπολογίζεται με αφαίρεση του χρόνου που χρειάστηκε για τη μεταφορά των επιπλέον πληροφοριών του δικτύου, από το συνολικό χρόνο μεταφοράς δεδομένων πάνω από το δίκτυο

– Υπολογίζεται σε bits ή Bytes per second (bps/Bps)

• Overhead: Επιβάρυνση πληροφοριών πρωτοκόλλων δικτύου (=δεδομένα για μετάδοση επικεφαλίδων + δεδομένα για αναμετάδοση πληροφορίας)

– Επιπλέον πληροφορίες που μεταδόθηκαν στο δίκτυο, για τις ανάγκες των πρωτοκόλλων επικοινωνίας και για αναμετάδοση πληροφοριών

– Υπολογίζεται σε bits ή Bytes

9

Page 10: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Όροι

• Processing delay – Dnod: Καθυστέρηση κομβικής επεξεργασίας – Έλεγχος λαθών σε επίπεδο bit – Καθορισμός ζεύξης εξόδου

• Queuing delay – Dque: Καθυστέρηση αναμονής σε ουρά – Χρόνος αναμονής στη ζεύξη εξόδου για μετάδοση – Εξαρτάται από το επίπεδο συμφόρησης στον δρομολογητή

• Transmission delay – Dtrans: Καθυστέρηση μετάδοσης (=μήκος πακέτου/bitrate) – Χρόνος για να σταλούν bits μέσα στη ζεύξη

• Propagation delay – Dprop: Καθυστέρηση διάδοσης (=μήκος ζεύξης/ταχύτητα διάδοσης στο μέσο) – Χρόνος διάδοσης μέσα στο μέσο

• Round Trip Time –RTT: Χρόνος απόκρισης – Ο χρόνος που κάνει ένα πακέτο πρακτικά μηδενικού μήκους για να φθάσει από

τη μία άκρη της σύνδεσης και πίσω – Συνήθως μετριέται σε milliseconds (ms)

10

Page 11: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Υπολογισμός επιδόσεων

• Η θεωρητική μέγιστη ταχύτητα επικοινωνίας (bitrate) είναι αυτή που μπορεί να υποστηρίξει ο αποστολέας.

• Περιορισμοί από δίκτυο και κόμβους, και από πρωτόκολλα και επαναμεταδόσεις.

• Εισαγωγή επιπλέον δεδομένων και καθυστερήσεων.

• Συμψηφισμός καθυστερήσεων σε επίπεδο δικτύου για υπολογισμό επιδόσεων (RTT).

11

Page 12: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Παράδειγμα υπολογισμού επιδόσεων

• Έστω ότι έχουμε την επικοινωνία δύο τερματικών (Α– Β)πάνω από το δίκτυο, με τα εξής χαρακτηριστικά: – Bitrate της σύνδεσης του τερματικού Α στο δίκτυο : 10Mbps – Μέσο RTT ανάμεσα στα δύο τερματικά 20 ms – Overhead ανά πακέτο: 40 Βytes – Μέγεθος μηνύματος εφαρμογής 1ΚΒ – Μηχανισμό ελέγχου ροής ο οποίος βασισμένος στην τεχνική του Pipelining:

• Διπλασιάζει το πλήθος των πακέτων σε κάθε μετάδοση κάθε φορά που παίρνουμε επιβεβαίωση λήψης

• Εάν διαγνώσει πρόβλημα, ρίχνει τη μετάδοση στο ένα πακέτο και ξεκινά από την αρχή

• Παραδοχές: – Μηδενικός χρόνος μετάδοσης του ACK – Μηδενικές απώλειες πληροφορίας και στις δύο κατευθύνσεις – 1K = 1000, 1M = 1000000, 1 Byte = 8 bits – Όταν μεταδοθούν πάνω από 6 πακέτα μαζί, φτάνουμε στο όριο της

σύνδεσης, και έτσι πρέπει να ξεκινήσουμε πάλι από το ένα πακέτο στην επόμενη μετάδοση (στους υπολογισμούς μας θα αγνοήσουμε τον όγκο της επαναμεταδιδόμενης πληροφορίας για λόγους απλοποίησης των αποτελεσμάτων)

• Θα υπολογίσουμε τις επιδόσεις του δικτύου για μετάδοση αρχείου 28ΚΒ = 224Κb

12

Page 13: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Παράδειγμα υπολογισμού επιδόσεων

• Για κάθε πακέτο το οποίο στέλνουμε στο δίκτυο από το τερματικό A προς το Β, έχουμε: – Δεδομένα = 1ΚΒ = 1000 Χ 8 bits = 8000 bits. – Επιπλέον έχουμε την προσθήκη του overhead: 40 X 8 bits = 320 bits – Συνολικά λοιπόν, για κάθε μήνυμα του 1ΚΒ, μεταδίδουμε 8000+320=

8320 bits.

• Ο χρόνος μετάδοσης Dtrans του κάθε πακέτου είναι 8320 bits / 10000000 bps = 0,832 ms.

• Ο χρόνος μέσα στον οποίο θα λάβουμε επιβεβαίωση είναι ίσος με RTT = 20ms.

• Άρα ο συνολικός χρόνος για τη μετάδοση του ενός πακέτου είναι 20ms + 0,832 ms = 20,832 ms.

13

Page 14: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Παράδειγμα υπολογισμού επιδόσεων

• Συνυπολογισμός του μηχανισμού ελέγχου ροής:

– Αφού στη μετάδοση πάνω από 6 πακέτων τη φορά φτάνω στο όριο της σύνδεσης, θα έχω μετάδοση της μορφής: 1pct, 2pcts, 4pcts, 8pcts, 1pct, 2pcts, . . .

– Η τελευταία μετάδοση θα στείλει μόνο όσα πακέτα χρειάζεται για να ολοκληρωθεί το αρχείο.

• Ετοιμάζω τον πίνακα περιγραφής της μετάδοσης

14

Γύρος μετάδοσης

Μεταδιδόμενα πακέτα

Μεταδιδόμενα δεδομένα (bits)

Σύνολο δεδομένων του αρχείου που μεταδόθηκαν (bits)

1 1 8320 8000

2 2 16640 8000+16000=24000

3 4 33280 24000+32000=56000

4 8 66560 56000+64000=120000

5 1 8320 120000+8000=128000

6 2 16640 128000+16000=144000

7 4 33280 144000+32000=176000

8 6 49920 224000=176000+48000 (=6pkts)

Ξανά από την

αρχή

Σύνολο: 232960 bits

Page 15: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Παράδειγμα υπολογισμού επιδόσεων

• Throughput: 232960 bits / 183,296 ms = 1,271 Mbps

• Goodput: 224000 bits / 183,296 ms = 1,222 Mbps

15

Γύρος μετάδοσης

Μεταδιδόμενα πακέτα

Μεταδιδόμενα δεδομένα (bits)

Σύνολο δεδομένων του αρχείου που μεταδόθηκαν (bits)

Dtrans Dtotal

1 1 8320 8000 0,832 ms 20,832 ms

2 2 16640 8000+16000=24000 1,664 ms 21,664 ms

3 4 33280 24000+32000=56000 3,328 ms 23,328 ms

4 8 66560 56000+64000=120000 6,656 ms 26,656 ms

5 1 8320 120000+8000=128000 0,832 ms 20,832 ms

6 2 16640 128000+16000=144000 1,664 ms 21,664 ms

7 4 33280 144000+32000=176000 3,328 ms 23,328 ms

8 6 49920 224000=176000+48000 (=6pkts) 4,992 ms 24,992 ms

Σύνολο: 232960 bits 183,296 ms

Υπο

λογι

σμ

ός

χρό

νων

Page 16: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Πρακτικός υπολογισμός επιδόσεων

• Framework for TCP Throughput Testing – RFC6349

• Μέγεθος ελάχιστου απαιτούμενου παραθύρου TCP RWND (minimum required TCP RWND size) – Bandwidth-Delay Product (BDP) = Bandwidth (bps) X RTT (sec)

– Minimum required TCP RWND = BDP / 8

16

Link Speed

(Mbps)

RTT

(ms)

BDP

(bits)

Minimum Required TCP RWND

(KBytes)

1,536 20,00 30,720 3,84

1,536 50,00 76,800 9,60

1,536 153,600 19,20 100,00

44,210 10,00 442,100 55,26

44,210 15,00 663,150 82,89

44,210 25,00 1,105,250 138,16

100,000 1,00 100,000 12,50

100,000 2,00 200,000 25,00

100,000 5,00 500,000 62,50

1,000,000 0,10 100,000 12,50

1,000,000 0,50 500,000 62,50

1,000,000 1,00 1,000,000 125,00

10,000,000 0,05 500,000 62,50

10,000,000 0,30 3,000,000 375,00

Page 17: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Σύνοψη

• Μελετήσαμε:

– Βασικούς όρους που θα χρειαστούμε.

– Παραδείγματα υπολογισμού επιδόσεων.

17

Page 18: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Βασικές αρχές λειτουργίας πρωτοκόλλων μεταφοράς δεδομένων

18

4.2 Επίπεδο μεταφοράς δεδομένων

Page 19: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Υπηρεσίες πρωτοκόλλων μεταφοράς

• Λογική επικοινωνία μεταξύ διαδικασιών/εφαρμογών που τρέχουν σε διαφορετικά τερματικά.

• Εφαρμογή σε επικοινωνία από άκρο σε άκρο (end to end). – Μόνο τα τερματικά συστήματα χρειάζεται να έχουν τα

αντίστοιχα πρωτόκολλα.

• Αντίθετα, το επίπεδο δικτύου υποστηρίζει τη μεταφορά πληροφοριών ανάμεσα σε τερματικά (και όχι διεργασίες).

• Χρησιμοποιεί τις υπηρεσίες του επιπέδου δικτύου όσον αφορά στην επικοινωνία των τερματικών συσκευών, και τις επεκτείνει με επιπλέον λειτουργίες ώστε να εξυπηρετήσει την εκτέλεση διαφορετικών εφαρμογών και διεργασιών πάνω σε αυτά, οι οποίες μπορούν να επικοινωνούν παράλληλα.

19

Page 20: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Πρωτόκολλα επιπέδου μεταφοράς στο διαδίκτυο

• Αξιόπιστη μεταφορά με εγγυήσεις παράδοσης σε σωστή σειρά των δεδομένων: TCP

• Δυνατότητα για: – Έλεγχο συμφόρησης

– Έλεγχο ροής

– Διαχείριση σύνδεσης (εγκατάσταση- απεγκατάσταση)

• Μη υποστήριξη: – Εγγυήσεων εύρους ζώνης

– Εγγυήσεων χρονισμού

– Πολυεκπομπής

• Αναξιόπιστη (“best-effort”) μεταφορά, χωρίς εγγυήσεις παράδοσης δεδομένων σε σωστή σειρά: UDP

• Χωρίς χρήση σύνδεσης.

• Χωρίς δυνατότητα ελέγχου ροής πληροφορίας και έλεγχο συμφόρησης.

• Δυνατότητα και για πολυεκπομπή (unicast + multicast).

20

Δύο βασικά πρωτόκολλα τα οποία υλοποιούν διαφορετικού τύπου υπηρεσίες

Page 21: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

application transport network

M P2

application transport network

Πολυπλεξία/Αποπολυπλεξία

21

παραλήπτης

H t

H n

Αποπολυπλεξία (Demultiplexing) • Δυνατότητα παράδοσης

λαμβανόμενων segments στις αντίστοιχες διαδικασίες επιπέδου εφαρμογής

• Μεταβίβαση των segments στο σωστό Socket

segment

segment M

application transport network

P1 M

M M

P3 P4

επικεφαλίδα segment

μήνυμα επιπέδου εφαρμογής

αποστολέας αποστολέας

Πολυπλεξία (Multiplexing) • Δυνατότητα σε πολλές διεργασίες να

μεταδίδουν μηνύματα πάνω από το ίδιο επίπεδο μεταφοράς

• Συλλογή δεδομένων από πολλαπλά sockets, μετάδοση πάνω από το πρωτόκολλο μεταφοράς, με χρήση κατάλληλης επικεφαλίδας

Page 22: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Πολυπλεξία/Αποπολυπλεξία

Μηχανισμός βασισμένος:

• Στη χρήση αριθμών πόρτας (port numbers) και στις διευθύνσεις IP του αποστολέα και του παραλήπτη:

– Χρήση αριθμού πόρτας αποστολέα (source port) και παραλήπτη (destination port) σε κάθε segment.

– Χρήση προκαθορισμένων (μη δεσμευτικών) αριθμών πόρτας για συγκεκριμένες εφαρμογές και πρωτόκολλα (περιγράφονται στα αντίστοιχα RFCs).

• Και στα δύο πρωτόκολλα (TCP-UDP), η ύπαρξη πεδίων source + destination port στην επικεφαλίδα του segment είναι υποχρεωτική.

22

Page 23: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Πολυπλεξία/Αποπολυπλεξία: παράδειγμα

23

Source (IP: C/Port: yyyyy) Dest (IP: B/Port: 80)

Source (IP: A/Port: xxxxx) Dest (IP: B/Port: 80)

Source (IP: B/Port: 80) Dest (IP: C/Port: yyyyy)

Source (IP: Β/Port: 80) Dest (IP: Α/Port: xxxxx)

Ένας υπολογιστής λαμβάνει κάποιο datagram

Κάθε datagram έχει διευθύνσεις source IP address, και destination IP address

Κάθε datagram μεταφέρει 1 segment επιπέδου μεταφοράς

Κάθε segment έχει αριθμούς source port και destination port

Ο υπολογιστής χρησιμοποιεί τo συνδυασμό IP address, port για να στείλει το segment στο αντίστοιχο socket

Page 24: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Αποπολυπλεξία σε ασυνδεσιστρεφή επικοινωνία

24

Client IP:B

P2

client IP: A

P1 P1 P3

server IP: C

SP: 6428

DP: 9157

SP: 9157

DP: 6428

SP: 6428

DP: 5775

SP: 5775

DP: 6428

Datagrams με διαφορετικές source IP addresses και/ή source ports κατευθύνονται στο ίδιο socket

Ένα UDP segment κατευθύνεται στο socket το οποίο αντιστοιχεί στο destination port number

Source Port : παρέχει “διεύθυνση επιστροφής”

Page 25: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Client IP:B

P1

client IP: A

P1 P2 P4

server IP: C

SP: 9157

DP: 80

SP: 9157

DP: 80

P5 P6 P3

D-IP:C

S-IP: A

D-IP:C

S-IP: B

SP: 5775

DP: 80

D-IP:C

S-IP: B

Αποπολυπλεξία σε συνδεσιστρεφή επικοινωνία

25

Χρήση 4δας για ορισμό TCP socket:

Source IP, Source port

Dest IP, Dest port

Δυνατότητα για παράλληλη εξυπηρέτηση πολλών παράλληλων TCP sockets στον ίδιο εξυπηρετητή, για την ίδια εφαρμογή.

Διαφορετικό socket για κάθε συνδεδεμένο client (τι συμβαίνει με την περίπτωση του HTTP;)

Page 26: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Άθροισμα ελέγχου (checksum)

Αποστολέας: • Μεταχειρίζεται τα περιεχόμενα

του segment ως ακολουθία από ακέραιους των 16-bits.

• Συμπλήρωμα ως προς 1 των περιεχομένων του segment.

• Ο αποστολέας βάζει την τιμή του αθροίσματος ελέγχου στο αντίστοιχο πεδίο της UDP επικεφαλίδας.

Παραλήπτης:

• Υπολογίζει το άθροισμα ελέγχου του λαμβανόμενου segment.

• Εξετάζει εάν το άθροισμα ελέγχου που υπολογίζεται ισούται με την τιμή του αντίστοιχου πεδίου:

– ΟΧΙ – ανιχνεύθηκε σφάλμα

– ΝΑΙ – δεν ανιχνεύθηκε σφάλμα. Μπορεί να υπάρχουν σφάλματα παρ’ όλα αυτά;

26

Στόχος: ανίχνευση “σφαλμάτων” π.χ., αντεστραμμένα (flipped) bits, στο segment που μεταδίδεται

Page 27: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Υπολογισμός Internet Checksum (παράδειγμα)

27

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

αναδίπλωση

άθροισμα

checksum

+ 1

συμπλήρωμα κατά 1

Page 28: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Μετάδοση και μηχανισμοί επιβεβαίωσης

28

Μετάδοση χωρίς απώλειες Μετάδοση με απώλειες

(στο μεταδιδόμενο πακέτο δεδομένων)

Αποστολέας Παραλήπτης Αποστολέας Παραλήπτης

. . .

Packet 1

Timeout

Page 29: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Μετάδοση και μηχανισμοί επιβεβαίωσης

29

Μετάδοση με απώλειες (στην επιβεβαίωση)

Αποστολέας Παραλήπτης

Timeout

ACK 1

Επαναμετάδοση

Πρώιμη λήξη χρονιστή

Αποστολέας Παραλήπτης

Timeout

Επαναμετάδοση

Page 30: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

A B

Χρόνος Μετάδοσης + Χρόνος Διάδοσης

Δημιουργία ACK

+ Χρόνος Διάδοσης L/Ρυθμό L/Ρυθμό + RTT

Χρήσιμο

Συνολικά

Μετάδοση με χρήση ACK

30

Page 31: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Υπολογισμός ρυθμού μετάδοσης

• Στην περίπτωση επιβεβαιωμένης μετάδοσης, ο πραγματικός ρυθμός μετάδοσης είναι πολύ μικρότερος από το μέγιστο δυνατό.

• Ο λόγος είναι ότι η μετάδοση του επόμενου πακέτου εξαρτάται και από το χρόνο επιβεβαίωσης του προηγούμενου (ή των προηγούμενων).

– U sender= κλάσμα του συνολικού χρόνου που ο αποστολέας είναι απασχολημένος με αποστολή.

31

U sender

= .008

30.008 = 0.00027

microsec

onds

L / R

RTT + L / R =

RTT=30 msec, 1KB pkt κάθε 30 msec -> 33kB/sec ρυθμός σε1 Gbps link

ms8bps10

bits80009

R

Ld trans

Παράδειγμα: 1 Gbps link, καθυστέρηση διάδοσης (Dprop) 15 ms, πακέτα των 1KB και επιβεβαίωση ανά πακέτο, και χωρίς να υπολογίζουμε υπόλοιπες καθυστερήσεις:

Πραγματικός ρυθμός μετάδοσης

Mbps

sdRTT

LR

trans

effect 27,0008,30

bits8000

Page 32: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Pipelining

• O αποστολέας μπορεί να στείλει αρκετά πακέτα παράλληλα, χωρίς να περιμένει επιβεβαίωση για το καθένα – Το εύρος των αριθμών σειράς πρέπει να αυξηθεί (δε μας αρκεί η

αρίθμηση 0 και 1 για τα πακέτα).

– Χρειάζεται αποθήκευση και στα δύο άκρα.

• Δύο περιπτώσεις μηχανισμών επανεκπομπής:

– go-Back-N (επιστροφή πίσω κατά Ν).

– selective repeat (επιλεκτική επανεκπομπή).

32

Page 33: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

A B

Χρόνος Μετάδοσης + Χρόνος Διάδοσης

Δημιουργία ACK

L/Ρυθμό + RTT

+ Χρόνος Μετάδοσης

L/Ρυθμό + L/Ρυθμό Χρήσιμο

Συνολικά

Μετάδοση με χρήση ACK (χρήση pipelining)

33

Page 34: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Pipelining: αύξηση ποσοστού χρήσης του δικτύου

34

Μετάδοση 1ου bit πακέτου, t = 0

RTT

Μετάδοση τελευταίου bit, t = L / R

Λήψη 1ου bit πακέτου Λήψη τελευτ. bit 1ου πακ., αποστολή ACK

Λήψη ACK, αποστολή επόμενου πακέτου

t = RTT + L / R

U sender

= .024

30.008 = 0.0008

microsecon

ds

3 * L / R

RTT + L / R =

Τριπλασιασμός ποσοστού χρήσης του δικτύου!

Λήψη τελευτ. bit 2ου πακ., αποστολή ACK Λήψη τελευτ. bit 3ου πακ., αποστολή ACK

Page 35: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Πρωτόκολλα τύπου Pipelined

Go-back-N • Ο αποστολέας μπορεί να

έχει έως N μη επιβεβαιωμένα.

• Ο δέκτης απλώς μεταδίδει συγκεντρωτικά acks. – Αλλιώς πρέπει να αναζητηθεί το

κενό.

• Ο αποστολέας θέτει χρονιστή για το πιο παλιό πακέτο. – Έαν λήξει ο χρονιστής, γίνεται

επανεκπομπή όλων των μη επιβεβαιωμένων.

Επιλεκτική επανάληψη • Ο αποστολέας μπορεί να

έχει έως N μη επιβεβαιωμένα πακέτα στη σειρά (pipeline).

• Ο δέκτης στέλνει μεμονωμένα ack για κάθε πακέτο.

• Ο αποστολέας διαθέτει χρονιστή για κάθε πακέτο. – Όταν αυτός λήξει, τότε έχουμε

επανεκπομπή μόνο του μη επιβεβαιωμένου πακέτου.

35

Page 36: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Go-Back-N

36

• Ύπαρξη παραθύρου στον αποστολέα, το οποίο κρατά έως Ν (σε σειρά) πακέτα τα οποία δεν έχουν ληφθεί επιβεβαιωμένα από τον παραλήπτη.

• Αριθμός σειράς πακέτων στην επικεφαλίδα του πακέτου.

Χρήση συγκεντρωτικού ACK αντί για επιβεβαίωση κάθε πακέτου.

ACK(n): Επιβεβαιώνει όλα τα πακέτα μέχρι και το n ιοστό- “συγκεντρωτικό ACK”.

Χρήση timer για κάθε πακέτο το οποίο μεταδίδεται.

Πιθανότητα λήψης περισσότερων του ενός ACK για ένα πακέτο, και δυνατότητα μετάφρασης του τι συμβαίνει στο δίκτυο ανάλογα με αυτό.

Με τη λήξη του timer για ένα πακέτο (timeout(n)), γίνεται επανεκπομπή του πακέτου και όλων των πακέτων με αριθμό σειράς μεγαλύτερο του n, τα οποία βρίσκονται στο παράθυρο.

Page 37: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Αποστολέας Παραλήπτης

Timeout

Packet 2

Με τη λήξη του χρονιστή για το πακέτο 2, έχουμε επαναμετάδοση όλων των πακέτων που μεταδόθηκαν μετά από αυτό, μαζί με το ίδιο.

Α λήψη μιας διπλής (ή τριπλής επιβεβαίωσης μπορεί να μας δώσει ένδειξη για το ότι υπάρχει πρόβλημα.

Τα πακέτα που λήφθηκαν εκτός σειράς μπορούν να αχρηστευθούν, αφού θα επαναμεταδοθούν

Go-Back-N: Παράδειγμα χρήσης

37

Page 38: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Επιλεκτική Επανάληψη (Selective Repeat)

• Ο παραλήπτης αναγνωρίζει χωριστά όλα τα πακέτα που ελήφθησαν σωστά.

– Αποθηκεύει προσωρινά τα πακέτα, όπως απαιτείται, για την ενδεχόμενη, σε σειρά παράδοση στο ανώτερο επίπεδο.

• Ο αποστολέας ξαναστέλνει μόνο τα πακέτα για τα οποία δεν έλαβε επιβεβαίωση.

– Ύπαρξη χρονιστή στον αποστολέα (sender timer) για κάθε πακέτο που στέλνει.

• Παράθυρο σε αποστολέα και παραλήπτη. – Συγχρονισμός παραθύρων.

– Περιορισμός του πλήθους των πακέτων τα οποία έχουν σταλεί και δεν έχουν επιβεβαιωθεί.

38

Page 39: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Επιλεκτική επανεκπομπή

39

Page 40: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Λειτουργία αποστολέα-παραλήπτη

40

• Με τη λήξη δεδομένων από το παραπάνω επίπεδο, εάν υπάρχει επόμενο διαθέσιμο νούμερο σειράς είναι στο παράθυρο, γίνεται αποστολή με έναρξη του αντίστοιχου timer(n).

• Με τη λήξη χρονιστή για πακέτο n: timeout(n), γίνεται επαναποστολή του πακέτου, και επανεκκίνηση του timer.

• Με τη λήψη ACK(n): – Αν το n είναι μέσα στο

[sendbase,sendbase+N], το πακέτο n καταγράφεται ως επιβεβαιωμένο

– Αν n το μικρότερο, μη επιβεβαιωμένο, πακέτο, προχωράει το παράθυρο.

• Με τη λήψη ενός πακέτου n, εάν αυτό είναι μέσα στο [rcvbase, rcvbase+N-1], τότε γίνεται αποστολή ACK(n), και: – Αν το πακέτο είναι εκτός σειράς,

τότε αποθηκεύεται. – Αν το πακέτο είναι σε σειρά:

έλεγχος για διανομή στο παραπάνω επίπεδο όλων των αποθηκευμένων πακέτων σε σειρά από το πρώτο διαθέσιμο στο παράθυρο.

– Μεταφορά του παραθύρου ώστε η αρχή του να δείχνει στο πρώτο μη επιβεβαιωθέν πακέτο.

Αποστολέας Παραλήπτης

Page 41: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Επιλεκτική επανεκπομπή (selective repeat)

41

0 1 2 3 4 5 6 7 8 9

Αποστολέας Παραλήπτης

Timeout

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

Page 42: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Σύνοψη

• Μελετήσαμε:

– Πρωτόκολλα του Επιπέδου Μεταφοράς

– Πολυπλεξία/ Αποπολυπλεξία

– Μεταδόσεις και μηχανισμούς επιβεβαίωσης

– Πρωτόκολλα τύπου pipelined:

• Go-Back-N

• Επιλεκτική Επανάληψη

42

Page 43: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Transport Control Protocol, User Datagram Protocol

43

4.3 Πρωτόκολλα μεταφοράς διαδικτύου

Page 44: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

UDP: User Datagram Protocol - RFC 768

• Το πιο απλό πρωτόκολλο μεταφοράς του Internet.

• Υπηρεσία “best effort”.

• Τα UDP segments μπορεί να: – Χαθούν.

– παραδοθούν εκτός σειράς στην εφαρμογή.

• Ασυνδεσιστρεφές – χωρίς προηγούμενη

επικοινωνία μεταξύ αποστολέα και παραλήπτη.

– κάθε UDP segment αντιμετωπίζεται ανεξάρτητα από τα άλλα.

Πλεονεκτήματα: • Μείωση καθυστερήσεων από

εγκατάσταση σύνδεσης.

• Απλοποίηση λειτουργίας λόγω της μη ανάγκης για κατάσταση σύνδεσης ανάμεσα σε αποστολέα και παραλήπτη.

• ελαφρύ: μικρή επικεφαλίδα.

• Δυνατότητα για αποστολή δεδομένων από εφαρμογή κατά βούληση, χωρίς ρύθμιση για έλεγχο συμφόρησης ή ροής.

44

Page 45: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Χρήση του UDP

• Κατάλληλο για εφαρμογές οι οποίες είναι: – Ανεκτικές στην απώλεια δεδομένων.

– Ευαίσθητες όσον αφορά το ρυθμό λήψης δεδομένων.

• Επιπλέον χρησιμοποιείται σε εφαρμογές όπου θέλουμε να ελαχιστοποιήσουμε το overhead του επιπέδου μεταφοράς: – DNS

– SNMP

• Συχνά χρησιμοποιείται σε εφαρμογές πολυμέσων συνεχούς ροής (streaming multimedia).

• Δυνατότητα αξιόπιστης μεταφοράς δεδομένων πάνω από UDP: αξιόπιστη μεταφορά στο επίπεδο εφαρμογής.

45

Page 46: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Δομή UDP segment

46 Πηγή: http://nmap.org/book/tcpip-ref.html

Page 47: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

TCP: (RFCs: 793, 1122, 1323, 2018, 2581)

• Μετάδοση δεδομένων full duplex: διπλοκατευθυντική ροή δεδομένων στην ίδια σύνδεση

• Συνδεσιστρεφές (connection-oriented):

– Χειραψία (ανταλλαγή μηνυμάτων ελέγχου) για αρχικοποίηση κατάστασης αποστολέα, παραλήπτη πριν την ανταλλαγή δεδομένων

– Διαδικασία τερματισμού σύνδεσης

• Ελεγχόμενη ροή: – Ο αποστολέας δεν θα πλημμυρίσει

τον παραλήπτη – Ο αποστολέας θα περιορίσει το

ρυθμό του σε περίπτωση συμφόρησης στο δίκτυo

– Χρήση για μεταφορά δεδομένων από σημείο σε σημείο (point-to-point: ένας αποστολέας, ένας παραλήπτης) και από άκρο σε άκρο (end to end).

• Αξιόπιστη, σε σειρά, μετάδοση δεδομένων.

• Ενταμιευτές σε αποστολέα και παραλήπτη.

• Έλεγχος συμφόρησης και ροής ορίζει μέγεθος παραθύρου αποστολής.

47

Page 48: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

48

Δο

μή

TCP

segmen

t

Πηγή: http://nmap.org/book/tcpip-ref.html

Page 49: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

TCP: Αποστολή αριθμημένων segments και επιβεβαιώσεις

49

Seq. #’s:

– Δείχνει στον αριθμό του πρώτου byte στο segment

ACKs:

– Αριθμός του seq # του επόμενου byte που αναμένεται

– Συγκεντρωτικά ACKs

Ο χρήστης Πληκτρολογεί ‘C’

Η πλευρά Α επιβεβαιώνει

το ‘C’ που έλαβε ως απάντηση

Η πλευρά Β επιβεβαιώνει τη λήψη του ‘C’, στέλνοντας πίσω ‘C’

Ένα απλό σενάριο telnet

Πλευρά Α Πλευρά Β

Page 50: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

TCP Round Trip Time (RTT) και Timeout

Ρύθμιση του χρονιστή για την αποστολή segments:

• Ο χρόνος πρέπει να είναι μεγαλύτερος από το RTT

• Το RTT δεν είναι σταθερό

• Εάν είναι μικρότερος: – πρόωρη λήξη (timeout)

– Ανεπιθύμητες επανεκπομπές

• Εάν είναι πολύ μεγαλύτερος: – Αργή αντίδραση σε προβλήματα

απώλειας segments

Yπολογισμός RTT

• SampleRTT : η τιμή που μετράμε από τη μετάδοση του segment μέχρι τη λήψη του ACK

• Αγνοούνται οι επανεκπομπές

• Το SampleRTT μεταβάλλεται, έτσι ανάγκη για κανονικοποίηση του RTT

• Μέσος όρος από αρκετές πρόσφατες μετρήσεις και όχι το τελευταίο SampleRTT

50

Page 51: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

TCP Round Trip Time καιTimeout

EstimatedRTT = (1- α) * EstimatedRTT + α * SampleRTT

• Η επίδραση των παλαιών δειγμάτων μειώνεται εκθετικά (exponential weighted moving average)

• Τυπική τιμή του α: 0.125

51

RTT: gaia.cs.umass.edu to fantasia.eurecom.fr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

time (seconnds)

RT

T (

mil

lise

con

ds)

SampleRTT Estimated RTT

Page 52: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

TCP Round Trip Time και Timeout

• Υπολογισμός του timeout: EstimatedRTT συν ένα περιθώριο ασφάλειας.

• Μεγάλη διακύμανση στο EstimatedRTT -> μεγάλύτερο περιθώριο ασφάλειας.

• DevRTT: Εκτίμηση του πόσο το SampleRTT αποκλίνει από το EstimatedRTT: – DevRTT = (1-β) * DevRTT + β *|SampleRTT-EstimatedRTT|

– (τυπικά, β = 0.25)

• TimeoutInterval = EstimatedRTT + 4*DevRTT

52

Page 53: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Αξιόπιστη μεταφορά δεδομένων στο TCP

• TCP παρέχει υπηρεσία αξιόπιστης μεταφοράς δεδομένων πάνω από την αναξιόπιστη υπηρεσία μεταφοράς δεδομένων του IP.

• pipelined segments.

• Αθροιστικά acks.

• Το TCP χρησιμοποιεί μοναδικό χρονιστή επανεκπομπής.

• Οι επανεκπομπές προκαλούνται από : – Λήξη χρονιστή (timeout)

– Διπλά acks

• Ας θεωρήσουμε έναν απλοποιημένο αποστολέα TCP και : – Ας αγνοήσουμε τα διπλά

acks

– Ας αγνοήσουμε και τον έλεγχο ροής και τον έλεγχο συμφόρησης

53

Page 54: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Λειτουργία αποστολέα στο TCP

Λήψη δεδομένων από επίπεδο εφαρμογής:

• Δημιουργία segment με seq # (αριθμός τύπου byte-stream number) που αντιστοιχεί στο πρώτο data byte στο segment.

• Εκκίνηση του χρονιστή (εάν δεν τρέχει ήδη) για το πιο παλιά απεσταλμένο segment.

• Χρόνος λήξης: ΤimeOutInterval

Timeout:

• Eπανεκπομπή του segment που προκάλεσε το timeout.

• Επανεκκίνηση του χρονιστή.

Λήψη Ack :

• Αν αναφέρεται σε προηγούμενα μη επιβεβαιωμένα segments, επιβεβαίωση όσων μπορούν να επιβεβαιωθούν.

• Επανεκκίνηση χρονιστή εάν απομένουν και άλλα.

54

Page 55: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

TCP: σενάρια επανεκπομπής

55

Επιβεβαιωμένα 90 Bytes

Πλευρά Α Πλευρά Β

Timeout

Επιβεβαιωμένα 90 Bytes

Επιβεβαιωμένα 100 Bytes

Χαμένη επιβεβαίωση

Page 56: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

TCP: σενάρια επανεκπομπής

56

Επιβεβαιωμένα 90 Bytes

Πρόωρο timeout

Πλευρά Α Πλευρά Β

Seq

90

Tim

eou

t Επιβεβαιωμένα 100 Bytes

Επιβεβαιωμένα 115 Bytes

Επιβεβαιωμένα 115 Bytes Seq

90

Tim

eou

t

Page 57: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

TCP: σενάρια επανεκπομπής

57

Επιβεβαιωμένα 90 Bytes

Συγκεντρωτικό ACK

Πλευρά Α Πλευρά Β

Seq

90

Tim

eou

t Επιβεβαιωμένα 115 Bytes

Timeout

Page 58: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Δημιουργία TCP ACK: Συμπεριφορά του δέκτη

58

Λήψη segment σε σωστή σειρά

με αναμενόμενο seq # και με όλα τα

δεδομένα μέχρι το seq # είναι

επιβεβαιωμένα

Λήψη segment σε σωστή σειρά

με αναμενόμενο seq #. Ένα άλλο

segment όμως έχει ACK να εκκρεμεί

Λήψη segment εκτός σειράς με seq #

μεγαλύτερο από το αναμενόμενο.

Λήψη segment το οποίο γεμίζει

μέρος κενού ή όλο το κενό

Καθυστέρηση για αποστολή ACK και

αναμονή μέχρι 500ms για επόμενο

segment. Αν δεν έρθει, αποστολή ACK

Άμεση αποστολή ενός συγκεντρωτικού

ACK για όλα τα σε σειρά ληφθέντα

segments

Άμεση αποστολή διπλού ACK,

αναφέροντας το seq. # του επόμενου

αναμενόμενου byte

Άμεση αποστολή ACK, εφόσον το

segment ξεκινά από την αρχή του κενού

Γεγονός Ενέργεια

Page 59: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Γρήγορη επανεκπομπή

• Η περίοδος του time-out συνήθως είναι μεγάλη, άρα μεγάλη καθυστέρηση στην επανεκπομπή.

• Αναγνώριση χαμένων segments μέσω διπλών ACKs. – Ο αποστολέας συνήθως

στέλνει πολλά segments το ένα πίσω από το άλλο.

– Αν το segment χαθεί, τότε συνήθως έρχονται διπλά ACKs.

• Αν ο αποστολέας λάβει 3 αντίγραφα από ACK για τα ίδια δεδομένα, υποθέτει ότι το segment μετά τα επιβεβαιωμένα δεδομένα χάθηκε.

• Γρήγορη επανεκπομπή του segment, πριν τη λήξη του χρονιστή.

59

Page 60: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Επαναποστολή μετά από τριπλό αντίγραφο ACK

60

Timeout

Πλευρά Α Πλευρά Β

Page 61: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Διαχείριση σύνδεσης TCP (εγκατάσταση)

• Ο εξυπηρετητής αναμένει κάποια σύνδεση σε συγκεκριμένη πόρτα

• O πελάτης ξεκινά μια σύνδεση με το εξυπηρετητή πριν ξεκινήσει να ανταλλάσσει τμήματα δεδομένων

• Αρχικοποιεί τις μεταβλητές που σχετίζονται με τη μετάδοση: – seq. #s – buffers, πληροφορίες ελέγχου

ροής (π.χ. RcvWindow)

• Χειραψία τριών σταδίων

• Βήμα 1: ο υπολογιστής πελάτης στέλνει τμήμα TCP SYN στον εξυπηρετητή όπου:

– καθορίζει το αρχικό seq # του

– δε στέλνει ακόμα δεδομένα

• Βήμα 2: ο εξυπηρετητής λαμβάνει το SYN, και απαντάει με τμήμα του SYNACK, όπου:

– ορίζει τους buffers

– καθορίζει το αρχικό seq. # του

• Βήμα 3: ο πελάτης λαμβάνει το SYNACK και απαντά με τμήμα ACK , το οποίο:

– μπορεί να περιλαμβάνει δεδομένα

61

Page 62: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Χειραψία 3 σταδίων (3 way handshaking)

62

Αποστολή TCP SYN με επιλογή αρχικού

seq num (x)

Επιλοή αρχικού seq num (y) Και αποστολή TCP SYNACK Σε απάντηση του SYN

Λήψη SYNACK(x) Αποστολή ACK (για το SYNACK) Εδώ ο client μπορεί να αρχίσει

να στέλνει δεδομένα

Λήψη ACK(y) και έναρξη ανταλλαγής δεδομένων

Client

Server

Page 63: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Διαχείριση σύνδεσης TCP (τερματισμός)

• Ο πελάτης ξεκινά τη διαδικασία τερματισμού της σύνδεσης.

• Στέλνει ένα μήνυμα ελέγχου με FIN bit = 1.

• Η λήψη του FIN προκαλεί την αποστολή ενός μηνύματος ελέγχου ACK.

• Επιπλέον, μπορεί να σταλεί και μήνυμα FIN.

• Δυνατότητα για παράλληλη αποστολή FIN και από τις δύο πλευρές.

63

Page 64: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Διαχείριση σύνδεσης TCP (τερματισμός)

• Βήμα 1: ο πελάτης στέλνει μήνυμα ελέγχου TCP FIN στον εξυπηρετητή

• Βήμα 2: ο εξυπηρετητής λαμβάνει το FIN, και απαντάει με ACK. Κλείνει τη σύνδεση, ενώ παράλληλα στέλνει μήνυμα ελέγχου FIN.

• Βήμα 3: ο πελάτης λαμβάνει το FIN, και απαντά με ACK. Ξεκινά ένα χρονιστή, στη λήξη του οποίου θα κλείσει τη σύνδεση. Εάν έως τότε λάβει FIN, θα απαντήσει με ACK

• Βήμα 4: ο εξυπηρετητής, λαμβάνει το ACK. Η σύνδεση κλείνει.

• Βήμα 5: Ο χρονιστής στο πελάτη λήγει και ο πελάτης κλείνει τη σύνδεση

64

Τερματισμός

Τερματισμός

Client

Server

2*m

ax s

egm

ent

lif

etim

e

Έναρξη διαδικασίας τερματισμού

σύνδεσης

Μπορεί μόνο να λάβει μηνύματα και

να επιβεβαιώσει

Αναμονή για τερματισμό server

Μπορεί ακόμα να στείλει δεδομένα

Δεν μπορεί να στείλει δεδομένα

Ενημέρωση για τερματισμό

Page 65: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Διαχείριση Σύνδεσης στο TCP (client)

65

Page 66: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Διαχείριση Σύνδεσης στο TCP (server)

66

Page 67: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Χειρισμός επιβεβαιώσεων και επαναποστολής segments στο TCP

67

• Seq #: – Βyte stream.

– Αριθμός του πρώτου byte στο segment.

• ACKs: – seq # του επόμενουbyte που

αναμένεται.

– Συγκεντρωτικά ACKs.

• Το πρωτόκολλο δεν ορίζει τι γίνεται με τα segments που λαμβάνονται εκτός σειράς

source port # dest port #

sequence number

acknowledgement number

checksum

rwnd

urg pointer

Εξερχόμενο segment (παραλήπτης)

Επιβεβαιωμένα Απεσταλμένα, μη

επιβεβαιωμένα

Διαθέσιμα προς

αποστολή

Μη διαθέσιμα

ακόμα

window size N

Παράθυρο αποστολέα

source port # dest port #

sequence number

acknowledgement number

checksum

rwnd

urg pointer

Εξερχόμενο segment (αποστολέας)

Page 68: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Σύνοψη

• Μελετήσαμε:

– Τα πρωτόκολλα TCP- UDP

– Το TCP Round Trip Time και Timeout.

– Την Αξιόπιστη μεταφορά δεδομένων στο TCP με επαναποστολή πακέτων

• Σενάρια

– Στάδια διαχείρισης μιας TCP σύνδεσης (3-way handshake).

68

Page 69: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Έλεγχος ροής ανάμεσα στα δύο άκρα, slow start, congestion avoidance, fast retransmit, fast recovery

69

4.4 Έλεγχος ροής και συμφόρησης στο TCP

Page 70: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Έλεγχος ροής TCP

• Η διαδικασία της εφαρμογής μπορεί να διαβάζει αργά.

• Ο δέκτης της TCP σύνδεσης έχει έναν receive buffer.

• Υπηρεσία συγχρονισμού: συντονίζει το ρυθμό αποστολής, με το ρυθμό αδειάσματος του buffer στο δέκτη.

70

Page 71: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Έλεγχος ροής TCP (λειτουργία)

• Ελεύθερος χώρος στο buffer: RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead]

(τα segments εκτός σειράς αγνοούνται)

• Ο δέκτης διαφημίζει το διαθέσιμο χώρο, συμπεριλαμβάνοντας την τιμή του RcvWindow στα segments.

• Ο αποστολέας περιορίζει τα με επιβεβαιωμένα δεδομένα στο RcvWindow.

• Έτσι έχουμε την εγγύηση ότι ο receive buffer δε θα γεμίσει.

71

Page 72: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Αρχές Ελέγχου Συμφόρησης

• Συμφόρηση: συμβαίνει όταν πάρα πολλές πηγές στέλνουν μεγάλο όγκο δεδομένων και με μεγάλο ρυθμό, ώστε το δίκτυο να μη μπορεί να τα διαχειριστεί.

• Δεν έχει σχέση με τη ροή των δεδομένων από άκρο σε άκρο, άρα και με τον έλεγχο ροής που αναφέρθηκε.

• Τρόποι εμφάνισης: – Χαμένα πακέτα (υπερχείλιση buffer στους διακομιστές).

– Μεγάλες καθυστερήσεις (αναμονή στην ουρά για δρομολογητές buffers).

72

Page 73: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Προσεγγίσεις για έλεγχο συμφόρησης

Έλεγχος συμφόρησης από άκρο σε άκρο: • Χωρίς πληροφόρηση από το

δίκτυο.

• Συμφόρηση ως συμπέρασμα των παρατηρούμενων απωλειών στο τελικό σύστημα, και των καθυστερήσεων.

• Προσέγγιση που υιοθετεί το TCP.

Έλεγχος συμφόρησης υποστηριζόμενος από το δίκτυο: • Οι διακομιστές παρέχουν

αναφορά στα τελικά συστήματα.

• Μοναδιαίο bit υποδεικνύει συμφόρηση (SNA, DECbit, TCP/IP ECN, ATM).

• Σαφής ρυθμός με τον οποίο πρέπει να συμμορφωθεί ο αποστολέας.

73

Δύο διαδεδομένες προσεγγίσεις για τον έλεγχο συμφόρησης:

Page 74: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Λογική λειτουργίας ελέγχου συμφόρησης στο TCP

74

τελευταίο επιβεβαιωμένο byte

Απεσταλμένα και μη επιβεβαιωμένα

bytes

cwnd

Παράθυρο αποστολέα

rate ~ ~ cwnd

RTT bytes/sec

τελευταίο Απεσταλμένο byte

• Ο αποστολέας περιορίζει τη μετάδοσή του μέσω ρύθμισης του cwnd ανάλογα με το πώς αντιλαμβάνεται τη συμφόρηση στο δίκτυο.

• LastByteSent- LastByteAcked <= cwnd. • Μηχανισμός ελέγχου ρυθμού αποστολής:

• αποστολή cwnd bytes, • Αναμονή RTT για επιβεβαίωση (ACKS),

• Επόμενη αποστολή

Page 75: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Έλεγχος συμφόρησης στο TCP (Additive increase, multiplicative decrease)

8 Kbytes

16 Kbytes

24 Kbytes

time

congestion

window

75

Λογική πίσω από το μηχανισμό: αύξηση ρυθμού μετάδοσης (μέγεθος παραθύρου), έλεγχος για διαθέσιμο εύρος, μέχρι να υπάρξει απώλεια

Ο αποστολέας, αυξάνει σιγά σιγά τη δυνατότητα αποστολής του κάθε φορά, ψάχνοντας να βρει τα όριά του όσον αφορά το μέγιστο υποστηριζόμενο ρυθμό μετάδοσης (usable bandwidth)

Αυτό γίνεται με σταδιακή αύξηση κατά 1 MSS του congestion window (cwnd) σε κάθε γύρο αποστολής (άρα κάθε RTT), μέχρι να διαγνώσει κάποια απώλεια. Αυτή οδηγεί σε μία συμπεριφορά η οποία χαρακτηρίζεται ως additive increase.

Μόλις διαγνωσθεί απώλεια, τότε το congestion window (cwnd) μειώνεται στο μισό. Αυτή οδηγεί σε μία συμπεριφορά η οποία χαρακτηρίζεται ως multiplicative decrease.

Εάν κάνουμε το γράφημα της αλλαγής του cwnd, θα δούμε ότι μοιάζει με πριόνι, όπου οι μύτες αντιστοιχούν στα σημεία όπου εμφανίστηκε πρόβλημα, λόγω υπέρβασης του υποστηριζόμενου ρυθμού μετάδοσης.

(cwnd)

Page 76: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Αργή Εκκίνηση (Slow start)

• Εάν η πηγή που μεταδίδει τα δεδομένα αρχίζει να στέλνει segments με μεγάλο ρυθμό, έστω και εάν ο δέκτης από την άλλη πλευρά μπορεί να τα δεχτεί, η κατάσταση του δικτύου δεν εγγυάται ότι θα φθάσουν όλα στον προορισμό τους, λόγω της κατάστασης των ουρών στους ενδιάμεσους δρομολογητές.

• Γι΄ αυτό το λόγο προτάθηκε το slow start το οποίο λειτουργεί στη βάση της παρακολούθησης του ρυθμού με τον οποίο νέα πακέτα μπορούν να εισαχθούν στο δίκτυο, υπολογίζοντας το ρυθμό λήψης των επιβεβαιώσεων και αντιδρώντας σε αυτόν.

• Αυξάνει κατά ένα τον αριθμό των segments που θα φύγουν μαζί στην επόμενη αποστολή για κάθε ACK που θα λάβει. Δηλαδή σε συνθήκες μη συμφόρησης, διπλασιάζει το ρυθμό των segments της επόμενης αποστολής, (για κάθε ACK το οποίο λαμβάνει μεταδίδει δύο segments).

• Θεωρητικά αυτό οδηγεί σε εκθετική αύξηση του ρυθμού αποστολής (αν και στην πράξη μια και η απέναντι πλευρά μπορεί να καθυστερήσει την αποστολή ACK, στέλνοντας ένα ACK για κάθε δύο segments που λαμβάνει, οπότε ο πραγματικός ρυθμός αύξησης είναι μικρότερος).

• Κάποια στιγμή οι ενδιάμεσοι δρομολογητές θα φθάσουν στα όριά τους και θα χαθoύν πακέτα, οπότε και ο αποστολέας θα ειδοποιηθεί γι’ αυτό, ώστε να αλλάξει πολιτική αποστολής segments.

76

Page 77: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Αργή Εκκίνηση (Slow start) εν συντομία

• Όταν ξεκινά η σύνδεση, ο ρυθμός μετάδοσης αυξάνεται εκθετικά μέχρι το πρώτο γεγονός απώλειας:

• Αρχικά cwnd = 1 MSS

• Το cwnd διπλασιάζεται κάθε RTT.

• Αύξηση του cwnd για κάθε ACK που λαμβάνεται.

• Αποτέλεσμα: ο αρχικός ρυθμός είναι αργός αλλά κλιμακώνεται εκθετικά γρήγορα.

77

RT

T

Host B Host A

Page 78: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Αποφυγή Συμφόρησης (Congestion avoidance)

• Μετά από τη κατάσταση του slow start, και εφόσον δεν υπάρχει ένδειξη για συμφόρηση, ο αποστολέας εισέρχεται στην κατάσταση του Congestion avoidance.

• Αυτό συμβαίνει όταν ο ρυθμός αποστολής των segments φτάσει στο ssthreshold (= ή το μισό του cwnd πριν την αναφορά του τελευταίου προβλήματος, ή εάν είμαστε στην αρχή 65535 bytes).

• Κατά την κατάσταση του congestion avoidance, το cwnd αυξάνεται κατά segsize*segsize/cwnd κάθε φορά που λαμβάνεται ένα ACK, όπου: – segsize είναι το μέγεθος του segment σε bytes. – cwnd είναι το μέγιστο πλήθος δεδομένων των segments που μπορούν

να μεταδοθούν, είναι και αυτό υπολογισμένο σε bytes.

• Ο ρυθμός αύξησης είναι τώρα γραμμικός (σε κάθε γύρο, το πολύ να σταλεί ένα παραπάνω segment σε σχέση με τον προηγούμενο, ανεξάρτητα από το πόσα ACKs λήφθηκαν μέσα στο τελευταίο RTT.

78

Page 79: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Γρήγορη Αναμετάδοση (Fast retransmit)

• Στην περίπτωση που κάποιο segment φθάσει εκτός σειράς, τότε έχουμε την αποστολή διπλού ACK (επανεπιβεβαίωση του τελευταίου segment το οποίο λήφθηκε με σωστή σειρά).

• Η απέναντι πλευρά καταλαβαίνει με αυτό τον τρόπο ότι κάποιο segment λήφθηκε εκτός σειράς. Δε γνωρίζει όμως τι συμβαίνει (αλλαγή σειράς παράδοσης ή απώλεια segment);

• Αναμονή και για άλλα διπλά ACKs. – Εάν αυτά είναι ένα ή δύο, τότε απλά χάθηκε κάποιο segment, ή έγινε λήψη

εκτός σειράς.

– Εάν είναι τρία ή περισσότερα, τότε είναι μια ισχυρή ένδειξη για απώλεια segment και ο αποστολέας προχωρά σε αποστολή του υποτιθέμενα χαμένου segment, χωρίς να περιμένει τη λήξη του αντίστοιχου χρονιστή.

79

Page 80: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Host B Host A

tim

eout

Γρήγορη Αναμετάδοση Λειτουργία

80

Page 81: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Γρήγορη Ανάκαμψη (Fast recovery)

• Μετά από την κατάσταση της γρήγορης αναμετάδοσης, αντί για αργή εκκίνηση, ο αποστολέας εισέρχεται στην κατάσταση της γρήγορης ανάκαμψης.

• Αυτό επιτρέπει την αποτελεσματική αντίδραση σε καταστάσεις μέτριας συμφόρησης.

• Η λήψη επιβεβαιώσεων από τον παραλήπτη δείχνει ότι υπάρχει επικοινωνία ανάμεσα στα δύο άκρα (με προβλήματα, αλλά δεν έχει διακοπεί εντελώς). Οπότε δεν υπάρχει λόγος για δραστικά μέτρα μείωσης του ρυθμού.

• Η γρήγορη ανάκαμψη επιτρέπει μια ήπια αντίδραση η οποία μπορεί να αντιμετωπίσει το πρόβλημα, χωρίς να μειώσει κατά πολύ το ρυθμό της επικοινωνίας των δυο άκρων.

81

Page 82: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Co

nge

stio

n w

ind

ow

(i

n s

egm

ents

)

Transmission round

2

8

12 10

6

4

14

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

16

Triple Duplicate ACK

ssthresh

ssthresh

0

Slow Start

Congestion Avoidance

ssthresh

Time Out

TCP Tahoe

82

Page 83: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Co

nge

stio

n w

ind

ow

(i

n s

egm

ents

)

Transmission round

2

8

12 10

6

4

14

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

16

Time Out

Triple Duplicate ACK

ssthresh

ssthresh

ssthresh

0

Slow Start

Congestion Avoidance

Fast Recovery

TCP Reno

83

Page 84: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Δίκαιος διαμοιρασμός πόρων ανάμεσα σε συνδέσεις TCP

Το TCP επιτυγχάνει τη δίκαιη χρήση των δικτυακών πόρων όσον αφορά το ρυθμό μετάδοσης.

Ακόμα και εάν κάποιος έχει καταλάβει όλο το διαθέσιμο ρυθμό μετάδοσης, όταν εμφανιστεί κάποιος άλλος (φυσικά και οι δύο πρέπει να χρησιμοποιούν TCP), ο οποίος θέλει να κάνει χρήση των πόρων, τότε ο πρώτος θα υποχωρήσει σταδιακά, έτσι ώστε να μοιραστούν τους πόρους.

Σε βάθος χρόνου, όλοι θα έχουν το αντίστοιχο μερίδιο χρήσης των πόρων του δικτύου για μετάδοση δεδομένων.

Αυτό μπορεί να δημιουργήσει προβλήματα όμως σε εφαρμογές, μια και δεν μπορούν να ελέγξουν οι ίδιες το ρυθμό αποστολής δεδομένων (π.χ. πολυμέσα, όπου αυτό θα ήταν επιθυμητό).

Το UDP από την άλλη, δεν έχει τέτοιο μηχανισμό.

Τέλος σε επίπεδο εφαρμογής, μπορείς να ξεγελάσεις το TCP (παράλληλες αιτήσεις πάνω από http).

84

Page 85: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Αυτορρύθμιση και δίκαια διανομή πόρων ανάμεσα σε συνδέσεις TCP

• Στόχος: Εάν K συνδέσεις TCP μοιράζονται την ίδια γραμμή επικοινωνίας μεγίστου Bitrate R, η καθεμιά πρέπει να έχει μέσο ρυθμό ίσο με R/K.

• Παράδειγμα: Δύο ανταγωνιστικές σύνοδοι πάνω από TCP:

– Η προσθετική αύξηση δίνει κλίση 1, όπως η ταχύτητα αυξάνει.

– Η πολλαπλασιαστική μείωση γίνεται ανάλογα με το ρυθμό μετάδοσης.

85

R

R

Ισοδύναμος διαμοιρασμός εύρους

Ταχύτητα Σύνδεσης 1

Αποφυγή συμφόρησης: προσθετική αύξηση απώλεια: μείωση παραθύρου με παράγοντα 2

απώλεια: μείωση παραθύρου με παράγοντα 2 Αποφυγή συμφόρησης: προσθετική αύξηση

Page 86: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Αυτορρύθμιση και δίκαια διανομή πόρων ανάμεσα σε συνδέσεις (γενικότερα)

Χρήση του UDP • Οι εφαρμογές πολυμέσων

συχνά δεν χρησιμοποιούν TCP, επειδή δε θέλουν ο ρυθμός μετάδοσης να εξαρτάται από τον έλεγχο συμφόρησης.

• Αντίθετα χρησιμοποιούν UDP, ώστε να μπορούν να αντλούν πληροφορία audio/video από το δίκτυο με σταθερό ρυθμό, ανεχόμενοι την απώλεια πακέτων.

• Το UDP δεν αυτοπεριορίζεται, και σε μία σύνδεση παράλληλα με TCP, θα τείνει να καταλάβει το διαθέσιμο εύρος.

Παράλληλες συνδέσεις TCP • Τίποτα δεν εμποδίζει μία

εφαρμογή από το να ανοίγει παράλληλες συνδέσεις μεταξύ δύο τερματικών.

• Οι φυλλομετρητές δικτύου το κάνουν αυτό.

• Αυτό μπορεί να οδηγήσει σε ανισόρροπη κατανομή πόρων (υπέρ αυτού που έχει περισσότερες συνδέσεις ανοικτές).

86

Page 87: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Μέση τιμή του TCP throughput

• Μέση τιμή του TCP througput ως συνάρτηση του window size και του RTT, σε βάθος χρόνου

• Αγνοούμε το slow start και υποθέτουμε ότι έχουμε πάντα δεδομένα να στείλουμε

• W: μέγεθος παραθύρου σε bytes, τη στιγμή που έχουμε απώλειες (έχουμε γθάσει στα όρια της δυνατότητας μετάδοσης από άκρο σε άκρο)

– Αφού το cwin κυμαίνεται ανάμεσα σε W/2 W,

– Μέση τιμή του TCP throughput = 3/4W για κάθε RTT RTT

87

W

W/2

avg TCP thrοugput = 3 4

W RTT

bytes/sec

Page 88: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Σύνοψη

• Μελετήσαμε:

– Τον έλεγχο ροής στο TCP.

– Τη λειτουργία του ελέγχου συμφόρησης με τεχνικές όπως:

• Αργή εκκίνηση

• Fast Retransmit

• TCP Tahoe

• TCP Reno

88

Page 89: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Σε αυτή την ενότητα μιλήσαμε για:

89

4.1 Επιδόσεις δικτύου δεδομένων σε επίπεδο μεταφοράς.

4.2 Επίπεδο μεταφοράς δεδομένων (Βασικές αρχές λειτουργίας πρωτοκόλλων μεταφοράς δεδομένων).

4.4 Έλεγχος ροής και συμφόρησης στο TCP (Έλεγχος ροής ανάμεσα στα δύο άκρα, slow start, congestion avoidance, fast retransmit, fast recovery).

4.3 Πρωτόκολλα μεταφοράς διαδικτύου (Transport Control Protocol, User Datagram Protocol)

Page 90: Ενόη α 4: Μεάδοση δεδομένων ΔΗΟΡΑΤΙΑ από ο σ ρώμα μεαφοράςeclass.teipir.gr/openeclass/modules/document/file.php/ENGI100/01... · Βασικές

Δίκτυα Υπολογιστών

Ενότητα 4: Μετάδοση δεδομένων

από το στρώμα μεταφοράς

Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ

Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα