ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου...

29
1 Επίπεδο Μεταφοράς (Transport Layer) Περίληψη Ο ρόλος του επιπέδου μεταφοράς Τα στοιχεία του πρωτοκόλλου μεταφοράς Τα πρωτόκολλα μεταφοράς του Διαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) RTP (Real-time Transport Protocol) TCP (Transport Control Protocol) Άλλες μορφές του TCP Θέματα απόδοσης

Transcript of ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου...

Page 1: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

1

Επίπεδο Μεταφοράς(Transport Layer)

Περίληψη

Ο ρόλος του επιπέδου μεταφοράςΤα στοιχεία του πρωτοκόλλου μεταφοράςΤα πρωτόκολλα μεταφοράς του Διαδικτύου

UDP (User Datagram Protocol)RPC (Remote Procedure Call)RTP (Real-time Transport Protocol)TCP (Transport Control Protocol)Άλλες μορφές του TCP

Θέματα απόδοσης

Page 2: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

2

Υπηρεσίες IP: “Best-Effort”

Η υπηρεσία που τελικά προσφέρει το επίπεδο δικτύουέχει τα ακόλουθα χαρακτηριστικά

Πακέτα τελικά παραδίνονται εκτός σειράς (out-of-order)Μπορεί να παρουσιαστούν πακέτα περισσότερες από μια φορές(duplicates).

Τα πακέτα παραδίδονται μετά από αυθαίρετη καθυστέρηση.

Network Layer

Network Layer

NetworkData

Υπηρεσίες του Επιπέδου Μεταφοράς

Προσφέρει ότι και το επίπεδο Ζεύξης Δεδομένων!Εγγυάται την παράδοση των μηνυμάτωνΠαραδίδει τα μηνύματα με τη σωστή σειρά

Υποστηρίζει αυθαίρετο μέγεθος μηνυμάτωνΥποστηρίζει το συγχρονισμό μεταξύ τωνεπικοινωνούντωνΕπιτρέπει το έλεγχο της ροής προς το παραλήπτηΥποστηρίζει την πολυπλεξία πολλαπλών χρηστών

Γιατί τότε χρειάζεται το επίπεδο μεταφοράς;

Page 3: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

3

Γιατί Χρειάζεται το ΕπίπεδοΜεταφοράς;

“If all real networks were flawless and all had the same service primitives and were guaranteed never, ever to change, the transport layer might not be needed”

A. Tanenbaum

Network

Επίπεδο ζεύξης δεδομένων:

Η σύνδεση είναι γενικά «εύκολη»Δεν υπάρχει περίπτωση παράδοσης δεδομένων εκτός σειράςΠεριορισμένος αριθμός συνδέσεων

Έλεγχος Ροής και ΈλεγχοςΣυμφόρησης

Έλεγχος Ροής (Flow Control)

Έλεγχος Συμφόρησης (Congestion Control)Ελέγχει τη ροή του αποστολέα έτσι ώστε να μηστέλνει περισσότερα δεδομένα από όσα μπορεί ναμεταφέρει το δίκτυο

Page 4: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

4

Στοιχεία του Πρωτοκόλλου Μεταφοράς

Η σχέση τωνεπιπέδωνΔικτύου, Μεταφοράς καιΕφαρμογής.

TPDU: Transport Protocol Data Unit

Διευθύνσεις και Πολυπλεξία

Page 5: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

5

Διευθύνσεις και Πολυπλεξία

Μια διαδικασία «δημιουργείται»στον υπολογιστή 2 και προσκολλάτεστη διεύθυνση 1522.Μια διαδικασία στον υπολογιστή 1 από το TSAP 1208 ζητά να συνδεθείμε την 1522 του εξυπηρετητή 2.Αφού συνδεθούν (connect), αρχίζουν να ανταλλάζουν μηνύματαΑφού τελειώσουν «ελευθερώνουν»(release) την σύνδεση.

Διευθύνσεις και Πολυπλεξία

Πως ένα πρόγραμμαξέρει σε ποια διεύθυνσηνα συνδεθεί;

Σταθερές διευθύνσεις(TSAP), π.χ.,

http: port 80ftp: port 21telnet: port 23smtp: port 25

Δυναμικές Διευθύνσεις(Initial Connection Protocol)Name or directory server

Page 6: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

6

Δημιουργία Συνδέσεων (Connection Establishment)

Υπηρεσίες με ή χωρίς σύνδεσηΓια να επιτευχθεί μια σύνδεση μεταξύ δύο hosts,

Ο host 1 στέλνει το μήνυμα ότι θέλει να δημιουργήσει μιασύνδεση (connection request (CR ή SYN))Ο host 2 απαντά με την επαλήθευση (acknowledgement (ACK))O host 1 αρχίζει να στέλνει τα πρώτα δεδομένα (DATA).

Πρόβλημα: Τι θα συμβεί αν κάποια μηνύματα χαθούν, καθυστερήσουν ή φτάσουν περισσότερες από μία φορές(duplicates)

Π.χ., Σε μια συνδιαλλαγή με τράπεζα, ανοίγει μια σύνδεση, μετάγίνεται μεταφορά χρημάτων και τέλος κλείνει η σύνδεση. Τι θα συμβεί αν η ίδια συνδιαλλαγή ξαναεμφανιστεί (πως μπορείνα ξαναεμφανιστεί);

Δημιουργία Συνδέσεων (Connection establishment)

Ας υποθέσουμε πως υπάρχει μέγιστος χρόνος T μετάαπό τον οποίο ένα πακέτο δεν μπορεί να συνεχίσει ναυπάρχει.

Για να αποφευχθούν όσο το δυνατό περισσότεραπροβλήματα, χρησιμοποιείται το “three way handshake”για την δημιουργία οποιασδήποτε σύνδεσης. Ταχαρακτηριστικά της μεθόδου είναι

Ο αρχικός αύξων αριθμός (seq) είναι τυχαίος (low order bits from a clock)Ο Παραλήπτης διατηρεί τον δικό του αύξων αριθμό (ack)Κάποιοι αριθμοί είναι απαγορευμένοι για να αποφεύγονταιπροβλήματα όταν ένας υπολογιστής αρχικοποιηθεί (reset).

Page 7: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

7

Επίτευξη Σύνδεσης

Αποφυγή Προβλημάτων

Page 8: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

8

Συγχρονισμός μετά από Αρχικοποίηση

Ελευθέρωση Σύνδεσης

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

Χρήση πόρων (μνήμη) γιατην διατήρηση τηςκατάστασης κάθε σύνδεσης.

Page 9: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

9

Το Πρόβλημα των Δύο Στρατών

Ελευθέρωση Σύνδεσης (Connection Release)

Page 10: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

10

Ελευθέρωση Σύνδεσης (Connection Release)

Ενδιάμεση Μνήμη και Έλεγχος Ροής

Ίσα buffersΆνισα buffers

Κυκλικά buffers

Ο παραλήπτης συνεχώςενημερώνει τον αποστολέαγια το μέγεθος της ελεύθερηςενδιάμεσης μνήμης για νααποφευχθεί υπερχείλισμα(buffer overflow)

Page 11: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

11

Παράδειγμα

Επιτυχής αποστολή μηνύματος, … Απώλεια μηνύματος

Πολυπλεξία

Πολυπλεξία προς τα πάνω(Upward multiplexing)

Πολυπλεξία προς τα κάτω(downward multiplexing)

Page 12: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

12

Απλό Πρωτόκολλο Μεταφοράς

PrimitivesLN: LISTEN (Αναμονήσυνδέσεων)

ΠακέταCR: Call Request (Πρόθεσηδημιουργίας σύνδεσης)CA: Call Accepted(Απάντηση στο CA)CLRR: Clear Request (Τερματισμός σύνδεσης)CLRC: Clear Confirmation(Απάντηση στο CLRR)

CRT: Credit (ΔιαχείρισηΠαραθύρου)

ΚαταστάσειςIDLEAWAIT (Αναμονήεπαλήθευσης στο CR)PWAIT (Αναμονή Σύνδεσης)EST (established): Σύνδεσηέχει επιτευχθεί

REC: παραλαβή δεδομένωνDISC: προσπάθεια γιααποσύνδεση

Απλό Πρωτόκολλο Μεταφοράς

Page 13: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

13

Πρωτόκολλα Διαδικτύου

UDP (User Datagram Protocol)RPC (Remote Procedure Call)

TCP (Transport Control Protocol)Άλλες μορφές του TCP

Application process

TCPSend buffer

Transmit segments

Application process

TCPReceive buffer

Segments Segments Segments■ ■ ■

Writebytes

Readbytes

Byte streamsByte streams

Μετάδοση Byte Streams

Τα πρωτόκολλα UDP/TCP/… έχουν κάποιες ουρές(μνήμη) στην οποία οι εφαρμογές γράφουν ότιπληροφορία θέλουν να μεταδώσουν στον παραλήπτη.Τα πρωτόκολλα δεν χωρίζουν τα bytes σε μηνύματα.Πως αποφασίζει το πρωτόκολλο πότε να στείλει ταδεδομένα στο παραλήπτη;

Όταν μαζέψει αρκετά bytes (maximum segment size)Όταν το ζητήσει η εφαρμογή (push operation)Χρονόμετρο

Page 14: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

14

User Datagram Protocol (UDP)

Προσφέρει ελάχιστες υπηρεσίες

Ελάχιστο έλεγχο σφαλμάτων

Δεν υποστηρίζει`Έλεγχο ροής ή συμφόρησης

Επαναμετάδοση σε περίπτωση σφαλμάτωνΠαραλαβή δεδομένων στην σωστή σειρά

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

Επικεφαλίδα UDP

UDP Length (συμπεριλαμβανομένων και των 8 bytesτης επικεφαλίδας)Checksum (προαιρετικό): header, pseudoheader, data

Pseudoheader: IP source and destination addresses, protocol number and UDP Length

Page 15: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

15

Remote Procedure Call (RPC)

Εκτελεί μια διαδικασία (ρουτίνα) σε απομακρυσμένουπολογιστήΗ βασική ιδέα είναι να υπάρχει μια διαδικασία η οποίατρέχει σε απομακρυσμένο υπολογιστή αλλά να«φαίνεται» ότι τρέχει τοπικά.Τρέχει πάνω από UDP.

Real-Time Transport Protocol (RTP)

Πρωτόκολλο το οποίο χρησιμοποιείται για εφαρμογέςπραγματικού χρόνου (internet radio, internet telephony, music and video-on-demand, other multimedia). Τρέχει πάνω από το UDP

Πολυπλεξία διαφόρων πηγών σε ροή από UDP segmentsΠροσφέρει επιπρόσθετες υπηρεσίες

Page 16: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

16

Η Επικεφαλίδα RTP

P: PaddingX: Extension HeaderCC: Contributing SourcesM: Application specificPayload type: Encoding used

SeqNum: detects lost packetsTimestamp: Synchronization source identifier: multiplexing of sourcesContributing source: mixers

Transport Control Protocol (TCP)

Προσφέρει υπηρεσίες αξιόπιστης μεταφοράς ροών απόbytes.

Συνήθως χωρίζει τα δεδομένα σε segments με 1460 bytes (γιανα μην χρειάζεται να τεμαχιστούν από χαμηλότερα επίπεδα, π.χ., Ethernet μέγιστο πλαίσιο = 1500 bytes).

Υποστηρίζει πολυπλεξία χρησιμοποιώντας ports(TSAP).Όλες οι συνδέσεις του TCP είναι διπλής κατεύθυνσης(full duplex)Υποστηρίζει επείγοντα δεδομένα (Urgent data).

Page 17: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

17

Το Πρωτόκολλο TCP

Κάθε TCP byte έχει τον δικό του 32-bit αύξων αριθμό(sequence number).Διαφορετικός αύξων αριθμός χρησιμοποιείται για τιςεπαληθεύσεις (ACKs).TCP Segmets αποτελούνται από επικεφαλίδα με 20-bytes υποχρεωτικά καθώς και προαιρετικά πεδία. Χρησιμοποιεί τα πρωτόκολλα ολισθαίνοντος παραθύρου(sliding window: go back n, and selective repeat).Είναι σχεδιασμένο για να αποφεύγει αντίγραφα(duplicates) τα οποία έχουν καθυστερήσει πολύ ήκρυφτεί μέσα στο δίκτυο.

Η Επικεφαλίδα του TCP

Page 18: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

18

Η Επικεφαλίδα του TCP

TCP header length: Αριθμός των 32-bit words πουυπάρχουν στην επικεφαλίδα TCPFlags

URG: επείγοντα δεδομένα που αρχίζουν από το σημείο στοοποίο δείχνει το Urgent PointerACK: επαλήθευσηPSH: (push) Άμεση παράδοση στον παραλήπτηRST: Αρχικοποίηση της σύνδεσηςSYN: Αίτημα για δημιουργία νέας σύνδεσηςFIN: Αίτημα για κλείσιμο της σύνδεσης

Checksum: header, pseudoheader, dataPseudoheader: IP source and destination addresses, protocol number and UDP Length

Options: maximum TCP payload

Σύνδεση TCP

Page 19: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

19

Οι Καταστάσεις (states) του TCP

CLOSED: δεν υπάρχει ούτε αναμένεται σύνδεσηLISTEN: Ο εξυπηρετητής (server) αναμένει σύνδεσηSYN RCVD: Αίτημα για σύνδεση έχει παραληφθείSYN SENT: Αίτημα για νέα σύνδεση έχει σταλείESTABL: Η σύνδεση έχει επιτευχθεί και ανταλλάσσονται δεδομέναFIN WAIT 1: Η εφαρμογή έχει στείλει αίτημα αποσύνδεσηςFIN WAIT 2: Η άλλη πλευρά παρέλαβε το αίτημα αποσύνδεσηςTIMED WAIT: Περιμένει μέχρις ότου όλα τα πακέτα να φύγουναπό το δίκτυοCLOSING: Και οι δύο μεριές προσπαθούν να κλείσουν τησύνδεση ταυτόχρονα.CLOSE WAIT: Η άλλη μεριά ενεργοποίησε αποσύνδεσηLAST ACK: Περιμένει μέχρις ότου όλα τα πακέτα της σύνδεσης ναφύγουν από το δίκτυο

Μηχανή Πεπερασμένων Καταστάσεωνγια Σύνδεση και Αποσύνδεση TCP.

Page 20: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

20

Μετάδοση ΔεδομένωνΧρησιμοποιώντας Συνδέσεις TCP

Προβλήματα του TCP

Μετάδοση ενός Byte κάθε φοράΣύνδρομο Χαζού Παραθύρου (silly window syndrome).Επανάληψη του αύξοντος αριθμού (sequence number overflow)Απόδοση (keep the pipe full)

Page 21: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

21

Μετάδοση Ενός Byte Κάθε Φορά

Πρόβλημα στην απόδοση αφού αποστέλλονται 41-byte πακέτα με μόνο ένα byte πραγματικά δεδομένα!Λύση: Nagle’s Algorithm

Όταν φτάνουν δεδομένα 1 byte κάθε φορά, τότε

Αφού φτάσει η επαλήθευση, όλα τα bytes που έχουνσυσσωρευτεί στην μνήμη αποστέλλονται μαζί στο επόμενοπακέτο και όλα τα υπόλοιπα φυλάγονται στη μνήμη μέχρι ναεπιστρέψεί η επαλήθευση. Η πιο πάνω λύση δεν δουλεύει πάντα…

Τι συμβαίνει σε εφαρμογές που υπάρχουν δεδομένα πουδεν μπορούν να περιμένουν (π.χ., θέση του ποντικιού(mouse position)).

Σύνδρομο Χαζού Παραθύρου (silly window syndrome).

Clark’s Algorithm:

Η εφαρμογή στονπαραλήπτηδιαβάζει ταδεδομένα από τημνήμη ένα byteκάθε φορά.

Page 22: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

22

Επανάληψη του αύξοντος αριθμού(Sequence number wrap-around)

32-bit Αύξων ΑριθμόςΟ απαιτούμενος χρόνοςεπανάληψης του ίδιουαύξοντος αριθμού γιαδιάφορες ταχύτητεςμετάδοσης δίνεται στονπίνακα.Για υψηλές ταχύτητες, οχρόνος επανάληψης τουίδιου αύξων αριθμού είναιπολύ μικρός! Μικρότεροςαπό την μέγιστη ζωή ενόςπακέτου στο Διαδίκτυο.

28 secondsSTS-24 (1.2 Gbps)

55 secondsSTS-12 (622 Mbps)

4 minutesSTS-3 (155 Mbps)

6 minutesFDDI (100 Mbps)

13 minutesT3 (45 Mbps)

57 minutesEthernet (10 Mbps)

6.4 hoursT1 (1.5 Mbps)

Time Until Wrap Around

Bandwidth

Απόδοση – Μικρό μέγιστο παράθυρο(Keep the Pipe Full)

Το μέγιστο παράθυρο με16-bit πεδίο είναι 65536.Σε ένα δίκτυο με RTT περίπου 100ms, οαριθμός των bits πουχρειάζεται για να γεμίσειτο κανάλι σε διάφορεςταχύτητες μετάδοσηςδίνεται στον πίνακα.Για υψηλές ταχύτητες, οαποστολέας πρέπει ναπεριορίσει τον ρυθμόμετάδοσης με αποτέλεσματο κανάλι ναυποχρησιμοποιείται

14.8MBSTS-24 (1.2 Gbps)

7.4MBSTS-12 (622 Mbps)

1.8MBSTS-3 (155 Mbps)

1.2MBFDDI (100 Mbps)

549KBT3 (45 Mbps)

122KBEthernet (10 Mbps)

18KBT1 (1.5 Mbps)

Delay x Bandwidth

Bandwidth

Page 23: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

23

Επέκταση του TCP Χρησιμοποιώνταςτα Παιδία των Επιλογών

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

32-bit timestamp για να ξεχωρίζει τα πακέτα του κάθε «κύκλου»Πολλαπλάσιο της μικρότερης μονάδας δεδομένων (multiplier). Δηλαδή αντί ο αύξων αριθμός να μετρά bytes, μετρά 2 ή 4 ήπερισσότερα bytes.

Έλεγχος Συμφόρηση στο TCP (Congestion Control)

Το πρωτόκολλο έχει δύο αντιφατικούς στόχουςΝα ελέγξεί (μειώσει) τη συμφόρηση και τα χαμένα πακέτα.Να κάνει όσο το δυνατό καλύτερη χρήση των πόρων του δικτύουκαι να μεγιστοποιήσει τη «διεκπεραίωτική» ικανότητα (throughput)του δικτύου.

Για να πετύχει τους στόχους τουΜόλις ανιχνεύσει συμφόρηση τότε μειώνει το ρυθμό με τον οποίοαποστέλλει πακέτα.

Εάν δεν υπάρχει συμφόρηση τότε προσπαθεί να στείλειπερισσότερα πακέτα για να αυξήσει το throughput.

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

Το TCP διατηρεί μια μεταβλητή: congestionWindow (διαφορετικήαπό το flowWindow)Το ενεργό παράθυρο είναι πάντα το ελάχιστο των δύο.

Page 24: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

24

Φάσεις του Αλγορίθμου

Το παράθυρο αυξάνεται σε δύο φάσεις

Congestion Avoidance: Σε αυτή τη φάση τοπαράθυρο αυξάνεται γραμμικά με στόχο να αποφύγειτη συμφόρηση.Οι δύο φάσεις χωρίζονται από ένα threshold.

Εάν το παράθυρο είναι μικρότερο από το threshold τότεχρησιμοποιεί το slow startΕάν το παράθυρο είναι μεγαλύτερο από το threshold τότεχρησιμοποιεί το congestion avoidance

Slow Start vs. Congestion Avoidance

Congestion Avoidance:Για κάθε παράθυρο πουπαραλαμβάνεται επιτυχώς, τοπαράθυρο αυξάνεται κατά ένα

Α Β

Slow Start:Για κάθε επαλήθευση (ACK) που παραλαμβάνεται, τοπαράθυρο αυξάνεται κατά ένα.

Α Β

Page 25: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

25

Απώλεια Πακέτου

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

Απώλεια πακέτου ανιχνεύεται αφού λήξει το ανάλογοχρονόμετρο (timer).

Σε περίπτωση συμφόρησης:Threshold := congestionWindow/2

Η απόδοση του πρωτοκόλλου είναι πολύ ευαίσθητη στονκατάλληλο καθορισμό του χρονομέτρου (γιατί;)

Ο καθορισμός του χρονομέτρου είναι δύσκολο πρόβλημα (γιατί;)

Παράδειγμα του Παραθύρου του TCP

Page 26: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

26

Καθορισμός του Χρονομέτρου

Υπολογισμός του RTT

Το TCP εκτιμά το RTT χρησιμοποιώντας τον αλγόριθμο

όπουΜ είναι το τελευταίο δείγμα RTTα= 7/8

Το χρονόμετρο καθορίζεται σαν

Στο αρχικό TCP, β=2.Πρόβλημα: Δεν υπολογίζει την απόκλιση (variance) τηςκατανομής

Page 27: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

27

Υπολογισμός του RTT

Εκτίμηση της απόκλισης D (variance)

όπουΜ είναι το τελευταίο δείγμα RTTα= 7/8

Το χρονόμετρο καθορίζεται σαν

Πρόβλημα: Τι συμβαίνει όταν το δείγμα έχει σταλείπερισσότερες από μία φορές;Karn’s Algorithm: Πακέτα που έχουν σταλεί πέραν τηςμίας φοράς δεν υπολογίζονται στο RTT ή D

Εναλλακτικός Τρόπος ΑνίχνευσηςΑπωλειών Λόγω Συμφόρησης

Η απόδοση του αλγόριθμου «αποσυμφόρησης» του TCP βασίζεται σε μεγάλο βαθμό στην «ακρίβεια» τουχρονομέτρου.

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

Άλλες εκδόσεις του TCP έχουν επιπρόσθετους τρόπουςανίχνευσης απωλειών.

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

Page 28: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

28

TCP σε Ασύρματα Δίκτυα

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

Transactional TCP

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

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

Page 29: ΕπίπεδοΜεταφοράς (Transport Layer) · 13 ΠρωτόκολλαΔιαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) TCP (Transport Control Protocol)

29

Transactional TCP

TCP TTCP

Θέματα Απόδοσης

Προβλήματα ΑπόδοσηςΣυμφόρηση (φτάνουν περισσότερα πακέτα από όσα μπορεί ναπροοθήσει ο δρομολογητής)Μη ισοζυγισμένοι πόροι

Π.χ., gigabit γραμμή συνδεδεμένη με κάποιον αργό Η/ΥΣυγχρονισμός (synchronous overloads)

Ένα γεγονός προκαλεί μια άλλη σειρά από αλυσιδωτά προβλήματαΡύθμιση των πρωτοκόλλων (bandwidth-delay product)

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