Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Γαβαλάς Δαμιανός dgavalas@aegean.gr
Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ) Διάλεξη #6: Επίπεδο Μεταφοράς (Transport layer). Πρωτόκολλα TCP κσι UDP. Εισαγωγή στο εργαλείο προσομοίωσης δικτύων OPNET Γαβαλάς Δαμιανός Εαρινό εξάμηνο
2
Περίληψη διάλεξης Είδη καθυστέρησης σε δίκτυα μεταγωγής πακέτων
Ο ρόλος του επιπέδου μεταφοράς Τα στοιχεία του πρωτοκόλλου μεταφοράς Τα πρωτόκολλα μεταφοράς του Διαδικτύου UDP (User Datagram Protocol) RPC (Remote Procedure Call) RTP (Real-time Transport Protocol) TCP (Transport Control Protocol) Άλλες μορφές του TCP Θέματα απόδοσης Εισαγωγή στο εργαλείο προσομοίωσης δικτύων OPNET
3
Επίπεδο Μεταφοράς (Transport Layer)
4
Το μοντέλο αναφοράς OSI (Open Systems Interconnection)
Τα πακέτα στο επίπεδο μεταφοράς ονομάζονται segments Τα πακέτα στο επίπεδο δικτύου ονομάζονται datagrams Τα πακέτα στο data link layer ονομάζονται πλαίσια (frames)
5
Υπηρεσίες IP: “Best-Effort”
Network Layer Network Data Η υπηρεσία που τελικά προσφέρει το επίπεδο δικτύου έχει τα ακόλουθα χαρακτηριστικά Πακέτα μπορεί να χαθούν Πακέτα τελικά παραδίνονται εκτός σειράς (out-of-order) Μπορεί να παρουσιαστούν πακέτα περισσότερες από μια φορές (duplicates) Τα πακέτα έχουν περιορισμένο μέγεθος Τα πακέτα παραδίδονται μετά από αυθαίρετη καθυστέρηση.
6
Υπηρεσίες του Επιπέδου Μεταφοράς
Προσφέρει σχεδόν ότι και το επίπεδο Ζεύξης Δεδομένων! Εγγυάται την παράδοση των μηνυμάτων Παραδίδει τα μηνύματα με τη σωστή σειρά Παραδίδει μόνο ένα αντίγραφο Υποστηρίζει αυθαίρετο μέγεθος μηνυμάτων Υποστηρίζει το συγχρονισμό μεταξύ των επικοινωνούντων Επιτρέπει το έλεγχο της ροής προς το παραλήπτη Υποστηρίζει την πολυπλεξία πολλαπλών χρηστών Γιατί τότε χρειάζεται το επίπεδο μεταφοράς;
7
Γιατί Χρειάζεται το Επίπεδο Μεταφοράς;
Network “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 Επίπεδο ζεύξης δεδομένων: Δεν υπάρχει ανάγκη για την χρήση διεύθυνσης Η σύνδεση είναι γενικά «εύκολη» Δεν υπάρχει περίπτωση παράδοσης δεδομένων εκτός σειράς Περιορισμένος αριθμός συνδέσεων
8
Έλεγχος Ροής και Έλεγχος Συμφόρησης
Έλεγχος Ροής (Flow Control) Ελέγχει τη ροή του αποστολέα έτσι ώστε να μη στέλνει περισσότερα δεδομένα από όσα μπορεί να παραλάβει ο παραλήπτης Έλεγχος Συμφόρησης (Congestion Control) Ελέγχει τη ροή του αποστολέα έτσι ώστε να μη στέλνει περισσότερα δεδομένα από όσα μπορεί να μεταφέρει το δίκτυο
9
Στοιχεία του Πρωτοκόλλου Μεταφοράς
Η σχέση των επιπέδων Δικτύου, Μεταφοράς και Εφαρμογής. TPDU: Transport Protocol Data Unit
10
Διευθύνσεις και Πολυπλεξία
Μια διεργασία (process) «δημιουργείται» στον υπολογιστή 2 και προσκολλάτε στη διεύθυνση (port) 1522. Μια διεργασία στον υπολογιστή 1 από το TSAP 1208 ζητά να συνδεθεί με την 1522 του εξυπηρετητή 2. Αφού συνδεθούν (connect), αρχίζουν να ανταλλάζουν μηνύματα Αφού τελειώσουν «ελευθερώνουν» (release) την σύνδεση. TSAP: Transport Service Access Point (port) NSAP: Network Service Access Point
11
Διευθύνσεις και Πολυπλεξία
Πως ένα πρόγραμμα ξέρει σε ποια διεύθυνση να συνδεθεί; Σταθερές διευθύνσεις (TSAP), π.χ., http: port 80 ftp: port 21 telnet: port 23 smtp: port 25 Δυναμικές Διευθύνσεις (Initial Connection Protocol) Name or directory server
12
Sockets (‘πρίζες’) και ports (θύρες)
Σε κάθε διεργασία (process) που τρέχει σε ένα Η/Υ αποδίδεται port number Κάθε port number μιας διεργασίας σε συνδυασμό με την IP διεύθυνση του Η/Υ συνιστούν το socket της διεργασίας Η χρήση των port numbers απλοποιεί τις TCP/IP επικοινωνίες και εξασφαλίζει ότι τα δεδομένα στέλνονται στη σωστή εφαρμογή (application)
13
Εγκαθίδρυση εικονικού κυκλώματος (virtual circuit) για την υπηρεσία Telnet
14
TCP ports (θύρες) Οι αριθμοί θυρών έχουν εύρος από 0 ως (216) και διαιρούνται από την IANA σε 3 τύπους: Γνωστά Ports, Καταγεγραμμένα (Registered) Ports, Δυναμικά και/ή Ιδιωτικά Ports Τα Γνωστά Ports έχουν εύρος από 0 ως 1023 και αποδίδονται σε διεργασίες στις οποίες έχουν πρόσβαση μόνο το λειτουργικό σύστημα ή ο διαχειριστής Τα Καταγεγραμμένα Ports έχουν εύρος από 1024 ως Σε αυτές έχουν πρόσβαση όλοι οι χρήστες του δικτύου και διεργασίες χωρίς ειδικά δικαιώματα διαχειριστή Τα Δυναμικά και/ή Ιδιωτικά Ports έχουν εύρος από ως και είναι ‘ανοικτά’ χωρίς περιορισμούς
15
Συνήθη TCP ports
16
Δημιουργία Συνδέσεων (Connection Establishment)
Υπηρεσίες με ή χωρίς σύνδεση Για να επιτευχθεί μια σύνδεση μεταξύ δύο hosts, Ο host 1 στέλνει το μήνυμα ότι θέλει να δημιουργήσει μια σύνδεση (connection request (CR ή SYN)) Ο host 2 απαντά με την επαλήθευση (acknowledgement (ACK)) O host 1 αρχίζει να στέλνει τα πρώτα δεδομένα (DATA). Πρόβλημα: Τι θα συμβεί αν κάποια μηνύματα χαθούν, καθυστερήσουν ή φτάσουν περισσότερες από μία φορές (duplicates) π.χ., Σε μια συνδιαλλαγή με τράπεζα, ανοίγει μια σύνδεση, μετά γίνεται μεταφορά χρημάτων και τέλος κλείνει η σύνδεση. Τι θα συμβεί αν η ίδια συνδιαλλαγή ξαναεμφανιστεί (πως μπορεί να ξαναεμφανιστεί); Πρόβλημα σε τραπεζική συναλλαγή: να πληρωθεί ένας λογαριασμός 2 φορές
17
Δημιουργία Συνδέσεων (Connection establishment)
Βάση του σχεδιασμού του δικτύου ή hop counter ή timestamp Για να αποφευχθούν όσο το δυνατό περισσότερα προβλήματα, χρησιμοποιείται το “three way handshake” (τριπλή χειραψία) για την δημιουργία οποιασδήποτε σύνδεσης. Τα χαρακτηριστικά της μεθόδου είναι Ο αρχικός αύξων αριθμός (seq) είναι τυχαίος (low order bits from a clock) Ο παραλήπτης διατηρεί τον δικό του αύξων αριθμό (ack) Κάποιοι αριθμοί είναι απαγορευμένοι για να αποφεύγονται προβλήματα όταν ένας υπολογιστής αρχικοποιηθεί (reset).
18
Επίτευξη Σύνδεσης CR: Connection Request
19
Αποφυγή Προβλημάτων Εμφάνιση παλιού αντιγράφου μιας αίτησης σύνδεσης
Στο (c) ‘περιφέρονται’ στο δίκτυο καθυστερημένη αίτηση σύνδεσης στην οποίο ο Host 2 απαντάει με επιβεβαίωση θεωρώντας την αίτηση έγκυρη. Ο Host 1 την απορρίπτει καθώς ξέρει ότι δεν έχει στείλει αίτηση σύνδεσης. Πριν όμως λάβει το REJECT, ο Host 2 λαμβάνει επιβεβαίωση αλλά για κάποιο πακέτο με sequence number z (o Host 2 περίμενε ACK για το πακέτο με sequence number y). Συνεπώς ο Host 2 απορρίπτει την επιβεβαίωση. Εμφάνιση παλιού αντιγράφου μιας αίτησης σύνδεσης Εμφάνιση παλιού αντιγράφου μιας αίτησης σύνδεσης και αντιγράφου επιβεβαίωσης
20
Συγχρονισμός μετά από Αρχικοποίηση
21
Το Πρόβλημα των Δύο Στρατών
Υπάρχει πρωτόκολλο που θα κάνει τους μπλε στρατούς να νικήσουν;
22
Ελευθέρωση Σύνδεσης Συντονισμός αποστολέα και παραλήπτη χρειάζεται και στην περίπτωση που θα ελευθερωθεί μια σύνδεση Μπορεί να χαθούν δεδομένα Χρήση πόρων (μνήμη) για την διατήρηση της κατάστασης κάθε σύνδεσης. CR: Connection request DR: Disconnect request
23
Ελευθέρωση Σύνδεσης (Connection Release)
(α) Όλα πήγαν καλά (β) Απώλεια της τελικής επιβεβαίωσης: η κατάσταση σώζεται από τον timer (η σύνδεση θα λυθεί)
24
Ελευθέρωση Σύνδεσης (Connection Release)
(γ) Απώλεια της απάντησης (δ) Απώλεια απάντησης και απώλεια επόμενων (DRs) Disconnect Requests
25
Πρωτόκολλα Διαδικτύου
UDP (User Datagram Protocol) RPC (Remote Procedure Call) RTP (Real-time Transport Protocol) TCP (Transport Control Protocol) Άλλες μορφές του TCP Application process TCP Send buffer Transmit segments Receive buffer Write bytes Read bytes Byte streams Segments ■ ■ ■
26
Μετάδοση Byte Streams Τα πρωτόκολλα UDP/TCP/… έχουν κάποιες ουρές (μνήμη) στην οποία οι εφαρμογές γράφουν ότι πληροφορία θέλουν να μεταδώσουν στον παραλήπτη. Τα πρωτόκολλα δεν χωρίζουν τα bytes σε μηνύματα. Πως αποφασίζει το πρωτόκολλο πότε να στείλει τα δεδομένα στο παραλήπτη; Όταν μαζέψει αρκετά bytes (maximum segment size) Όταν το ζητήσει η εφαρμογή (push operation) Χρονόμετρο
27
User Datagram Protocol (UDP)
Προσφέρει ελάχιστες υπηρεσίες Πολυπλεξία Ελάχιστο έλεγχο σφαλμάτων Δεν υποστηρίζει Έλεγχο ροής ή συμφόρησης Έλεγχο σφαλμάτων Επαναμετάδοση σε περίπτωση σφαλμάτων Παραλαβή δεδομένων στην σωστή σειρά Είναι απλό και ορισμένες εφαρμογές το χρησιμοποιούν για μετάδοση μη «ευαίσθητων» πληροφοριών, π.χ. φωνή ή video ή για ανταλλαγή «μικρών» μηνυμάτων.
28
Επικεφαλίδα UDP Πολυπλεξία (source and destination ports)
UDP Length (συμπεριλαμβανομένων και των 8 bytes της επικεφαλίδας) Checksum (προαιρετικό): header, pseudoheader, data Pseudoheader: IP διευθύνσεις προέλευσης και προορισμού, αριθμός πρωτοκόλλου και μήκος UDP
29
Remote Procedure Call (RPC)
Εκτελεί μια διεργασία (ρουτίνα) σε απομακρυσμένο υπολογιστή Η βασική ιδέα είναι να υπάρχει μια διαδικασία η οποία τρέχει σε απομακρυσμένο υπολογιστή αλλά να «φαίνεται» ότι τρέχει τοπικά. Τρέχει πάνω από UDP
30
Real-Time Transport Protocol (RTP)
Πρωτόκολλο το οποίο χρησιμοποιείται για εφαρμογές πραγματικού χρόνου (internet radio, internet telephony, music and video-on-demand, other multimedia). Τρέχει πάνω από το UDP Πολυπλεξία διαφόρων πηγών σε ροή από UDP segments Προσφέρει επιπρόσθετες υπηρεσίες
31
Transport Control Protocol (TCP)
Προσφέρει υπηρεσίες αξιόπιστης μεταφοράς ροών από bytes Συνήθως χωρίζει τα δεδομένα σε segments με 1460 bytes (για να μην χρειάζεται να τεμαχιστούν από χαμηλότερα επίπεδα, π.χ., Ethernet μέγιστο πλαίσιο = 1500 bytes) Είναι σχεδιασμένο για να προσαρμόζεται δυναμικά στις ιδιότητες του δικτύου Υποστηρίζει πολυπλεξία χρησιμοποιώντας ports (TSAP) Όλες οι συνδέσεις του TCP είναι διπλής κατεύθυνσης (full duplex) Υποστηρίζει επείγοντα δεδομένα (Urgent data)
32
Το Πρωτόκολλο TCP Κάθε TCP byte έχει τον δικό του 32-bit αύξων αριθμό (sequence number) Διαφορετικός αύξων αριθμός χρησιμοποιείται για τις επαληθεύσεις (ACKs) TCP Segmets αποτελούνται από επικεφαλίδα με 20-bytes υποχρεωτικά καθώς και προαιρετικά πεδία Χρησιμοποιεί τα πρωτόκολλα ολισθαίνοντος παραθύρου (sliding window: go back n, and selective repeat) Είναι σχεδιασμένο για να αποφεύγει αντίγραφα (duplicates) τα οποία έχουν καθυστερήσει πολύ ή κρυφτεί μέσα στο δίκτυο
33
Η Επικεφαλίδα του TCP
34
H επικεφαλίδα του TCP segment
Source port (θύρα προέλευσης) Destination port (θύρα προορισμού) Sequence number (αριθμός ακολουθίας) Acknowledgment number (ACK) (αριθμός επιβεβαίωσης): προσδιορίζει το επόμενο byte που αναμένεται και όχι το τελευταίο που παραλήφθηκε σωστά TCP header length: πόσες 32-bit λέξεις περιέχει η επικεφαλίδα του TCP segment. Χρειάζεται γιατί το πεδίο επιλογές (options) έχει μεταβλητό μήκος Reserved: δεσμευμένο για μελλοντική χρήση Flags Sliding-window size: πόσα bytes μπορούν να σταλούν (ξεκινώντας από το byte που επιβεβαιώνεται)
35
H επικεφαλίδα του TCP segment
Checksum (έλεγχος αθροίσματος) - Χρησιμοποιείται για να ελεγχθεί αν το TCP segment έχει αλλοιωθεί κατά τη μετάδοσή του Urgent pointer (δείκτης επειγόντων) – προσδιορίζει την απόσταση σε byte από το τρέχον sequence number στην οποία βρίσκονται τα επείγοντα δεδομένα Options (επιλογές) – Επιτρέπει προσθήκη βοηθητικών λειτουργιών, π.χ. για να προσδιορίσει κάθε Η/Υ το μέγιστο μέγεθος TCP φορτίου που μπορεί να δεχθεί (όσο μεγαλύτερο, τόσο πιο ‘αποσβένεται’ η επικεφαλίδα των 20 bytes) Padding (παραγέμισμα) – Επιπλέον μηδενικά ώστε η TCP επικεφαλίδα να έχει μήκος πολλαπλάσιο των 32 bits Data – Τα δεδομένα που ‘παραδίδονται’ από το επίπεδο μεταφοράς
36
TCP Segment Flags (‘σημαίες’)
URG: 1 αν ο urgent pointer είναι σε χρήση ACK: 1 όταν ο Acknowledgment number είναι έγκυρος, διαφορετικά το segment αυτό δεν επιβεβαιώνει κάποιο άλλο PSH: 1 αν τα δεδομένα του segment πρέπει να παραδοθούν άμεσα στο επίπεδο εφαρμογής με τη λήψη τους και όχι να αποθηκευθούν σε κάποιο buffer RST: 1 για την επαναφορά κάποιας σύνδεσης που έχει καταρρεύσει SYN: 1 για την εγκαθίδρυση συνδέσεων FIN: 1 για να καθορίσει ότι δεν υπάρχουν άλλα δεδομένα και ζητάει τον τερματισμό της σύνδεσης
37
TCP Segment
38
Σύνδεση TCP
39
Three-way handshake: Εγκαθίδρυση σύνδεσης
40
Three-way handshake: Τερματισμός σύνδεσης
41
Οι Καταστάσεις (states) του TCP
CLOSED: δεν υπάρχει ούτε αναμένεται σύνδεση LISTEN: Ο εξυπηρετητής (server) αναμένει σύνδεση SYN RCVD: Αίτημα για σύνδεση έχει παραληφθεί SYN SENT: Αίτημα για νέα σύνδεση έχει σταλεί ESTABL: Η σύνδεση έχει επιτευχθεί και ανταλλάσσονται δεδομένα FIN WAIT 1: Η εφαρμογή έχει στείλει αίτημα αποσύνδεσης FIN WAIT 2: Η άλλη πλευρά παρέλαβε το αίτημα αποσύνδεσης TIMED WAIT: Περιμένει μέχρις ότου όλα τα πακέτα να φύγουν από το δίκτυο CLOSING: Και οι δύο μεριές προσπαθούν να κλείσουν τη σύνδεση ταυτόχρονα. CLOSE WAIT: Η άλλη μεριά ενεργοποίησε αποσύνδεση LAST ACK: Περιμένει μέχρις ότου όλα τα πακέτα της σύνδεσης να φύγουν από το δίκτυο
42
Μηχανή Πεπερασμένων Καταστάσεων για Σύνδεση και Αποσύνδεση TCP
43
Μετάδοση Δεδομένων Χρησιμοποιώντας Συνδέσεις TCP
44
Έλεγχος ροής με την τεχνική Sliding Window
45
Έλεγχος ροής με την τεχνική Sliding Window
46
Προβλήματα του TCP Μετάδοση ενός Byte κάθε φορά
Σύνδρομο Χαζού Παραθύρου (silly window syndrome). Επανάληψη του αύξοντος αριθμού (sequence number overflow) Απόδοση (keep the pipe full)
47
Μετάδοση Ενός Byte Κάθε Φορά
Πρόβλημα στην απόδοση αφού αποστέλλονται 41-byte πακέτα με μόνο ένα byte πραγματικά δεδομένα! Λύση: Nagle’s Algorithm Όταν φτάνουν δεδομένα 1 byte κάθε φορά, τότε Απλά αποστέλλεται το πρώτο byte ενώ όλα τα υπόλοιπα φυλάγονται στην μνήμη μέχρι να φτάσει η επαλήθευση για το πρώτο byte. Αφού φτάσει η επαλήθευση, όλα τα bytes που έχουν συσσωρευτεί στην μνήμη αποστέλλονται μαζί στο επόμενο πακέτο και όλα τα υπόλοιπα φυλάγονται στη μνήμη μέχρι να επιστρέψεί η επαλήθευση. Η πιο πάνω λύση δεν δουλεύει πάντα… Τι συμβαίνει σε εφαρμογές που υπάρχουν δεδομένα που δεν μπορούν να περιμένουν (π.χ., θέση του ποντικιού (mouse position)).
48
Σύνδρομο Χαζού Παραθύρου (silly window syndrome).
Η εφαρμογή στον παραλήπτη διαβάζει τα δεδομένα από τη μνήμη ένα byte κάθε φορά. Clark’s Algorithm: Ο παραλήπτης δεν ενημερώνει τον αποστολέα για τυχόν ελεύθερη μνήμη εκτός αν ο αριθμός της ελεύθερης μνήμης υπερβαίνει κάποιο όριο.
49
Επανάληψη του αύξοντος αριθμού (Sequence number wrap-around)
32-bit Αύξων Αριθμός Ο απαιτούμενος χρόνος επανάληψης του ίδιου αύξοντος αριθμού για διάφορες ταχύτητες μετάδοσης δίνεται στον πίνακα. Για υψηλές ταχύτητες, ο χρόνος επανάληψης του ίδιου αύξων αριθμού είναι πολύ μικρός! Μικρότερος από την μέγιστη ζωή ενός πακέτου στο Διαδίκτυο. Πρόβλημα: Τα 32-bits είναι πολύ λίγα! Bandwidth Time Until Wrap Around T1 (1.5 Mbps) 6.4 hours Ethernet (10 Mbps) 57 minutes T3 (45 Mbps) 13 minutes FDDI (100 Mbps) 6 minutes STS-3 (155 Mbps) 4 minutes STS-12 (622 Mbps) 55 seconds STS-24 (1.2 Gbps) 28 seconds T-carrier is the generic designator for any of several digitally multiplexed telecommunications carrier systems A "T1" now seems to mean any data circuit that runs at the original Mbit/s line rate. T2 and T3 circuit channels carry multiple T1 channels multiplexed, resulting in transmission rates of up to Mbit/s. STS: κατηγορία πρωτοκόλλων που χρησιμοποιούνται σε ATM δίκτυα STS: Synchronous Transport Signal, το STS-n έχει bandwidth n * 51,84 Mbps
50
Απόδοση – Μικρό μέγιστο παράθυρο (Keep the Pipe Full)
Το μέγιστο παράθυρο με 16-bit πεδίο είναι Σε ένα δίκτυο με RTT περίπου 100ms, ο αριθμός των bits που χρειάζεται για να γεμίσει το κανάλι σε διάφορες ταχύτητες μετάδοσης δίνεται στον πίνακα. Για υψηλές ταχύτητες, ο αποστολέας πρέπει να περιορίσει τον ρυθμό μετάδοσης με αποτέλεσμα το κανάλι να υποχρησιμοποιείται Πρόβλημα: Τα 16-bits είναι πολύ λίγα! Bandwidth Delay x Bandwidth T1 (1.5 Mbps) 18KB Ethernet (10 Mbps) 122KB T3 (45 Mbps) 549KB FDDI (100 Mbps) 1.2MB STS-3 (155 Mbps) 1.8MB STS-12 (622 Mbps) 7.4MB STS-24 (1.2 Gbps) 14.8MB RTT: Round Trip delay Time
51
Έλεγχος Συμφόρηση στο TCP (Congestion Control)
Το πρωτόκολλο έχει δύο αντιφατικούς στόχους Να ελέγξεί (μειώσει) τη συμφόρηση και τα χαμένα πακέτα. Να κάνει όσο το δυνατό καλύτερη χρήση των πόρων του δικτύου και να μεγιστοποιήσει τη «διεκπεραίωτική» ικανότητα (throughput) του δικτύου. Για να πετύχει τους στόχους του Μόλις ανιχνεύσει συμφόρηση τότε μειώνει το ρυθμό με τον οποίο αποστέλλει πακέτα. Στο TCP απώλεια πακέτου συνεπάγεται συμφόρηση. Εάν δεν υπάρχει συμφόρηση τότε προσπαθεί να στείλει περισσότερα πακέτα για να αυξήσει το throughput. Για να υλοποιήσει τους στόχους του, ελέγχει δυναμικά το παράθυρο συμφόρησης. Το TCP διατηρεί μια μεταβλητή: congestionWindow (διαφορετική από το flowWindow) Το ενεργό παράθυρο είναι πάντα το ελάχιστο των δύο.
52
Φάσεις του Αλγορίθμου Το παράθυρο αυξάνεται σε δύο φάσεις
Slow start: Κατ’ αυτή τη φάση το παράθυρο αυξάνεται εκθετικά με στόχο να πετύχει καλύτερο throughput Congestion Avoidance: Σε αυτή τη φάση το παράθυρο αυξάνεται γραμμικά με στόχο να αποφύγει τη συμφόρηση. Οι δύο φάσεις χωρίζονται από ένα threshold. Εάν το παράθυρο είναι μικρότερο από το threshold τότε χρησιμοποιεί το slow start Εάν το παράθυρο είναι μεγαλύτερο από το threshold τότε χρησιμοποιεί το congestion avoidance
53
Slow Start vs. Congestion Avoidance
Για κάθε επαλήθευση (ACK) που παραλαμβάνεται, το παράθυρο διπλασιάζεται (εκθετική αύξηση) Congestion Avoidance: Για κάθε πακέτο που παραλαμβάνεται επιτυχώς, το παράθυρο αυξάνεται κατά ένα (γραμμική αύξηση) Α Β Α Β
54
Απώλεια Πακέτου Σε περίπτωση απώλειας πακέτου, τότε το TCP αυτόματα υποθέτει συμφόρηση και συνεπώς μειώνει το ρυθμό μετάδοσης Απώλεια πακέτου ανιχνεύεται αφού λήξει το ανάλογο χρονόμετρο (timer). Σε περίπτωση συμφόρησης: Threshold := congestionWindow/2 congestionWindow := 1 Η απόδοση του πρωτοκόλλου είναι πολύ ευαίσθητη στον κατάλληλο καθορισμό του χρονομέτρου (γιατί;) Ο καθορισμός του χρονομέτρου είναι δύσκολο πρόβλημα (γιατί;)
55
Παράδειγμα του Παραθύρου του TCP
Congestion avoidance Slow start Απώλεια πακέτου
56
Καθορισμός του Χρονομέτρου
Τ Τ Τ
57
Εναλλακτικός Τρόπος Ανίχνευσης Απωλειών Λόγω Συμφόρησης
Η απόδοση του αλγόριθμου «αποσυμφόρησης» του TCP βασίζεται σε μεγάλο βαθμό στην «ακρίβεια» του χρονομέτρου. Εάν θέσουμε το χρόνο συντηρητικά (μεγάλη καθυστέρηση), τότε η πηγή θα καθυστερεί υπερβολικά πριν αποκαταστήσει την επικοινωνία. Εάν θέσουμε το χρόνο πολύ μικρό, τότε θα έχουμε αχρείαστες επαναμεταδόσεις. Άλλες εκδόσεις του TCP έχουν επιπρόσθετους τρόπους ανίχνευσης απωλειών. Ο παραλήπτης κάθε φορά που λαμβάνει πακέτο έκτος σειράς, στέλνει επαλήθευση (ACK) με τον αριθμό του πακέτου που αναμένει. Ο αποστολέας, όταν παραλάβει n συνεχόμενες επαληθεύσεις του ίδιου πακέτου, τότε υπολογίζει πως το πακέτο έχει χαθεί και ξεκινά επαναμετάδοση καθώς και το μηχανισμό αποσυμφόρησης (υπάρχει εισήγηση για n=3). Ο αλγόριθμος χρησιμοποιεί επίσης το χρονόμετρο σαν επιπρόσθετη δικλίδα ασφαλείας.
58
Έλεγχος ροής με Sliding Window: επανεκπομπή χαμένων πακέτων
59
TCP σε Ασύρματα Δίκτυα Πρόβλημα: όταν η πηγή ανιχνεύσει απώλεια υποθέτει ότι προήλθε εξ αιτίας συμφόρησης, όμως σε ασύρματα δίκτυα οι απώλειες λόγο μετάδοσης είναι συχνό φαινόμενο!
60
Εισαγωγή στο εργαλείο προσομοίωσης δικτύων OPNET
61
OPNET Εργαλείο προσομοίωσης δικτύων (network simulation tool)
Γιατί χρειάζονται τα εργαλεία προσομοίωσης δικτύων; Προσμοιώνουν τον πραγματικό κόσμο στην οθόνη του υπολογιστή Για ακαδημαϊκούς σκοπούς Δυνατότητα σχεδιασμού δικτύων (network models) με ρεαλιστικά μέσα μετάδοσης, δικτυακές συσκευές, δικτυακά πρωτόκολλα Βοηθούν στην κατανόηση της λειτουργίας των δικτύων και των επιπτώσεων της αύξησης του αριθμού χρηστών ή της δικτυακής κίνησης (traffic) Επιλογή στατιστικών (από όλο το δίκτυο ή μια συγκεκριμένη συσκευή) που θα συλλεχθούν από την προσομοίωση «Τρέξιμο» προσομοίωσης, επισκόπηση και κατανόηση παραγόμενων στατιστικών Για τους διαχειριστές δικτύων Ποιο φθηνή λύση από το να αγοράσεις και να στήσεις ένα δίκτυο που θα αποδειχθεί μη λειτουργικό στην πράξη Ανάλυση απαιτήσεων χρηστών, εφαρμογών και (σε συνδυασμό με μια ανάλυση κόστους) προσομοίωση δικτυακών λύσεων και επιλογή εκείνης με το καλύτερο λόγο «value for money» Αντίστοιχα, προσομοίωση δικτυακών λύσεων για επέκταση (upgrade) υφιστάμενων λύσεων
62
OPNET Θα χρησιμοποιήσουμε τη (δωρεάν) έκδοση ΙΤ Guru Academic Edition 9.1 Μπορείτε να το κατεβάσετε και από τη διεύθυνση: (~46ΜΒ) Άλλα δημοφιλή εργαλεία προσομοίωσης NS-2 (Network Simulator-2), Δωρεάν Χρειάζεται προγραμματισμός στη script γλώσσα Perl Διαθέτει επεκτάσεις (extensions) που καλύπτουν και άλλα είδη δικτύων (wireless networks, sensor networks, mobile ad-hoc networks, …)
63
Μεθοδολογία Προσομοίωσης
Αναλυτική παρουσίαση της μεθοδολογίας που ακολουθείται Συνοπτική παρουσίαση της μεθοδολογίας που ακολουθείται
64
Που (σε ποιο φάκελο) αποθηκεύονται τα μοντέλα
Edit Preferences
65
Ρυθμίσεις στον Η/Υ όπου εγκαθιστούμε το OPNET
Πρέπει να προσθέσουμε μία μεταβλητή περιβάλλοντος (environmental variable) που θα δηλώνει τον φάκελο όπου το OPNET θα αναζητεί και θα αποθηκεύει αρχεία Control Panel Performance and maintenance System Advanced
66
Ρυθμίσεις στον Η/Υ όπου εγκαθιστούμε το OPNET
Θα πρέπει να ορίσετε τη μεταβλητή περιβάλλοντος opnet_user_home και να της δώσετε τιμή το φάκελο όπου θέλετε να αποθηκεύετε αρχεία Στο εργαστήριο Χατζηγιάννη: opnet_user_home=C:\opnet_files\
67
και μελέτης ενός δικτύου
1o Εργαστήριο OPNET: Διαδικασία σχεδίασης και μελέτης ενός δικτύου
68
Μικρής κλίμακας τοπικά δίκτυα
Η πρώτη εργαστηριακή άσκηση στο OPNET επικεντρώνει στην ανάπτυξη ενός δικτύου μικρής κλίμακας με τη χρήση του Project Editor O Project Editor επιτρέπει τη δημιουργία, προσομοίωση και ανάλυση της απόδοσης ενός δικτύου υπολογιστών Στο τέλος της άσκησης θα μπορείτε να: Δημιουργείτε μια δικτυακή τοπολογία Συλλέγετε στατιστικές μετρήσεις για την απόδοση του δικτύου Αναλύετε τις μετρήσεις αυτές
69
Διαδικασία σχεδίασης και μελέτης δικτύων υπολογιστών
Περιβάλλον – Τοπολογία δικτύου Συλλογή στατιστικών μετρήσεων Εκτέλεση της προσομοίωσης Επισκόπηση των αποτελεσμάτων Επέκταση του δικτύου
70
Δημιουργία νέου project
H σχεδίαση γίνεται στον Project Editor που εμφανίζεται εξ’ ορισμού με τη δημιουργία ενός project H δημιουργία ενός μοντέλου δικτύου (network model) προϋποθέτει τη δημιουργία ενός σεναρίου που ενσωματώνεται σε ένα project To project είναι ένα σύνολο από συσχετιζόμενα σενάρια που επιτρέπουν τη διερεύνηση μιας άλλης πλευράς του δικτύου Σε κάθε ένα από τα σενάρια αυτά εξετάζεται διαφορετική προσέγγιση του δικτύου Τα βασικά χαρακτηριστικά καθορίζονται μέσω του Startup Wizard
71
Νέο project – Startup Wizard
Καθορισμός της αρχικής τοπολογίας του δικτύου Καθορισμός της κλίμακας και του μεγέθους του δικτύου Επιλογή χάρτη για το υπόβαθρο (background) του δικτύου Συσχέτιση μιας παλέτας αντικειμένων με το σενάριο Ο Startup Wizard εμφανίζεται αυτόματα κατά τη δημιουργία ενός νέου project Δημιουργήστε ένα νέο project (File New Project)
72
Δημιουργία ενός δικτύου: Τοπολογία
Σχεδίαση στον Project Editor Δομικά στοιχεία δικτύου: Τοπολογία (network topology): διαδικτυακές συσκευές, συνδέσεις, κόμβοι, διακομιστές Κίνηση (traffic): πρωτόκολλα, εφαρμογές, τύποι χρηστών Υπάρχουν τρεις μέθοδοι για τη δημιουργία τοπολογίας δικτύου Εισαγωγή (import) τοπολογίας από εξωτερική πηγή δεδομένων (external source file) Τοποθέτηση κόμβων από την παλέτα αντικειμένων στο χώρο εργασίας (workspace) Δημιουργία νέας τοπολογίας με τη χρήση του Rapid configuration wizard (χρήση προκαθορισμένων μοντέλων)
73
Project Editor window
74
Project Editor buttons
75
Δημιουργία ενός δικτύου: Τοπολογία – Χρήση του Rapid Configuration wizard
Δημιουργεί ένα δίκτυο επιλέγοντας: Την τοπολογία του δικτύου Τους τύπους των κόμβων του δικτύου Κόμβος (node): συμβολίζει ένα πραγματικό δικτυακό αντικείμενο που μπορεί να μεταδίδει και να λαμβάνει δεδομένα Συνδέσεις (links): Επικοινωνιακό μέσο που διασυνδέει κόμβους μεταξύ τους.
76
Δημιουργία του δικτύου: Rapid Configuration wizard
Επιλέξτε Topology Rapid Configuration Star Προσδιορίστε τα node models και link models του δικτύου. Τα models ακολουθούν το παρακάτω σχήμα ονομασίας: <protocol1>_..._<protocoln>_<function>_<mod> <protocol> ορίζει το πρωτόκολλο(α) που υποστηρίζονται από το μοντέλο <function>: συντόμευση της γενικής λειτουργίας του μοντέλου <mod>: δείχνει το επίπεδο κληρονομικότητας (derivation) του μοντέλου
77
Δημιουργία του δικτύου: Rapid Configuration wizard
Center Node Model: 3C_SSII_1100_3300_4s_ae52_e48_ge3 Αυτός ο (κεντρικός) κόμβος είναι ένα switch της 3Com, τύπου SuperStack II 1100, με 4 slots (4s), 52 auto-sensing Ethernet ports (ae52), 48 Ethernet ports (e48) και 3 Gigabit Ethernet ports (ge3). Periphery Node Model: Sm_Int_wkstn, Number: 30 Αυτή η ρύθμιση παρέχει 30 Ethernet σταθμούς εργασίας (workstations) ως περιφερειακούς κόμβους Link Model: 10BaseT (φυσικό μέσο μετάδοσης) Προσδιορίστε επίσης τις συντεταγμένες όπου θα τοποθετηθεί το center (3Com Switch) καθώς και την ακτίνα στην οποία θα τοποθετηθούν οι περιφερειακές συσκευές Πατήστε «ΟΚ» για να σχεδιαστεί το δίκτυο στο χώρο του Project Editor
78
Δημιουργία του δικτύου: Rapid Configuration wizard
79
Δημιουργία του δικτύου: Rapid Configuration wizard
80
Δημιουργία του δικτύου: προσθήκη server
Θα χρησιμοποιήσουμε τη 2η μέθοδο δημιουργίας δικτυακών αντικειμένων: θα «τραβήξουμε» αντικείμενα από την παλέτα αντικειμένων (object palette) στο χώρο εργασίας (workspace) Αν δεν είναι ήδη ανοικτή, ανοίξτε την object palette με κλικ στο αντίστοιχο πλήκτρο Τραβήξτε το Sm_Int_server αντικείμενο στο workspace. Στη συνέχεια πρέπει να συνδέσουμε το server στο υπόλοιπο δίκτυο με ένα 10BaseT link Κάνετε κλικ στο 10BaseT link object στην παλέτα Κάνετε ένα κλικ στο server και ένα στο switch (στο κέντρο του star) ώστε να σχεδιασθεί ένα link που θα συνδέει τα δύο αντικείμενα
81
Δημιουργία του δικτύου: ορισμός traffic
Τέλος, πρέπει να προστεθούν αντικείμενα (configuration objects) για τον προσδιορισμό της δικτυακής κίνησης που προέρχεται από εφαρμογές (application traffic). Η κίνηση του δικτύου προστίθεται μέσω αντικειμένων διαμόρφωσης της παλέτας αντικειμένων Αντικείμενο καθορισμού εφαρμογών (application definition object): εφαρμογές που «τρέχουν» στο δίκτυο (π.χ. ) και συχνότητα με την οποία στέλνουν / ζητούν δεδομένα Αντικείμενο καθορισμού προφίλ χρηστών (profile definition objects): Είδος των εφαρμογών που χρησιμοποιεί (π.χ. light database access) Συχνότητα με την οποία καλεί τη συγκεκριμένη εφαρμογή
82
Δημιουργία του δικτύου: ορισμός traffic
Στα πλαίσια αυτής της άσκησης, εισάγουμε από την παλέτα αντικειμένων (object palette): ένα application definition object με τις προκαθορισμένες ρυθμίσεις (default configurations) των standard applications ένα profile definition object με ένα προφίλ που μοντελοποιεί πρόσβαση σε βάση δεδομένων
83
Profile definition object
Η δημιουργία του δικτύου έχει πλέον ολοκληρωθεί και είμαστε έτοιμοι για τη συλλογή στατιστικών
84
Δημιουργία του δικτύου: συλλογή στατιστικών
Μπορούμε να συλλέξουμε στατιστικά για μεμονωμένα αντικείμενα του δικτύου (object statistics) ή για ολόκληρο το δίκτυο (global statistics) Τα στατιστικά επιλέγονται για κάθε σενάριο ξεχωριστά και αφορούν μόνο το σενάριο για το οποίο έχουν επιλεχθεί Μας ενδιαφέρει να συλλέξουμε στατιστικά που θα απαντούν ερωτήματα όπως: Θα αντέξει ο server τον επιπλέον φόρτο από ένα δεύτερο δίκτυο; Η συνολική καθυστέρηση (total delay) στο δίκτυο θα είναι αποδεκτή όταν εγκατασταθεί το 2ο δίκτυο; Για να απαντηθούν αυτές οι ερωτήσεις πρέπει να έχουμε εικόνα της παρούσας κατάστασης του δικτύου (πριν επεκταθεί) Χρειαζόμαστε ένα object statistic (Server Load) και ένα global statistic (Ethernet delay)
85
Δημιουργία του δικτύου: συλλογή στατιστικών
To Server load είναι ένα βασικό στατιστικό που αντανακλά την απόδοση όλου του δικτύου Right-click στον server node (node_31) Choose Individual Statistics
86
Δημιουργία του δικτύου: συλλογή στατιστικών
Συλλογή στατιστικών για τη συνολική καθυστέρηση στο δίκτυο Right-click στον κενό χώρο του workspace Choose Individual Statistics
87
«Τρέξιμο» προσομοίωσης
Επιλέξτε Simulation Configure Discrete Event Simulation… ή κάνετε κλικ στο “configure / run simulation” πλήκτρο Πληκτρολογείστε Duration: 0,5 για να προσομοιώσετε μισή ώρα δικτυακής λειτουργίας Πατήστε ‘Run’ για να ξεκινήσει η προσομοίωση
88
«Τρέξιμο» προσομοίωσης
Όσο εκτελείται η προσομοίωση, ένα πλαίσιο διαλόγου ενημερώνει για την πρόοδο της προσομοίωσης Για πόσο χρόνο εκτελείται η προσομοίωση Προσομοιωμένος χρόνος δικτυακής λειτουργίας
89
Επισκόπηση αποτελεσμάτων
Right-click στον κενό χώρο του workspace View Results Στην κορύφωσή του (peak) ο φόρτος (load) του server είναι λιγότερο από 6000 bits/second Αφού το δίκτυο σταθεροποιηθεί, η μέγιστη καθυστέρηση είναι περίπου 0.4 msec Αυτές οι τιμές θα συγκριθούν με την εικόνα του δικτύου μετά την αναβάθμισή του
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.