Professional Documents
Culture Documents
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
Δίκτυα Υπολογιστών
Μαρία Παπαδοπούλη
Σκοποί
• Εκμάθηση βασικών
– Αρχών σχεδίασης
– Φαινομένων μετάδοσης σημάτων, προβλημάτων, προκλήσεων
– Πρωτοκόλλων
– Εφαρμογών
– Αρχιτεκτονικών
• Όχι μόνο “πώς” λειτουργούν τα δίκτυα υπολογιστών, αλλά και “γιατί”
λειτουργούν με τον συγκεκριμένο τρόπο
Παραδείγματα Δικτύων
• Αερομεταφορών
• Βιολογικά
• Κοινωνικά
• Ερευνητών
• Υπολογιστών
Δίκτυα αερομεταφορών
Δίκτυα Ερευνητών
C. elegans
neuronal net
https://www.youtube.com/watch?v=i5oe63pOhLI&list=PL46CCA2DED66B87BB&index
=2
Απο το www.grnet.gr
H διεθνής διασύνδεση του
ΕΔΕΤ
στο Πανευρωπαϊκό Δίκτυο
GEANT
αναβαθμίστηκε το 2006
σε 2x10Gbps
Δικτυακή κορνίζα
www.ceiva.com Διαδικτυακή τοστιέρα που
κάνει πρόγνωση καιρού
Διαδικτυακά τηλέφωνα
Ο μικρότερος εξυπηρετητής του κόσμου
http://www-ccs.cs.umass.edu/~shri/iPic.html
Σημαντικές τεχνολογίες
“ The most profound technologies are those that
disappear. They weave themselves into the fabric of
everyday life until they are indistinguishable from it."
Πολλές ερωτήσεις:
•Μέσω ποιάς τεχνολογίας πραγματοποιείται η επικοινωνία ?
•Τι ακριβώς είναι η ζεύξη?
Δίκτυα ως γράφοι
• Τα δίκτυα μπορούν να αναπαρασταθούν ως κατευθυνόμενοι ή μη-
κατευθυνόμενοι γράφοι: όταν δύο κόμβοι μπορούν να επικοινωνήσουν
άμεσα (δίχως τη βοήθεια κάποιου τρίτου), ενώνονται με μία ακμή
1 2 3 4 5 6
8.1
2.5
Vertex-Weighted Edge-Weighted
Δίκτυα ως γράφοι
(συνέχεια)
• Ένα δίκτυο μπορεί να είναι συνδεδεμένο (απεικονίζεται ως ένα
ενιαίο τμήμα) ή αποσυνδεδεμένο (απεικονίζεται με αρκετά
ασύνδετα τμήματα).
συνδεδεμένο αποσυνδεδεμένο
• Δίκτυα χωρίς βρόχους αποκαλούνται δέντρα. Όσο
περισσότερους βρόχους έχει κάποιο δίκτυο, τόσο
πολυπλοκότερο είναι.
Δέντρα:
κυκλικοί γράφοι
(βρόχοι):
Γραμμικός
Αστέρας
Κυκλικός
Πλήρης Γράφος
Bonchev
Διμερής Γράφος
(Bipartite Graph)
Τι είναι το Διαδίκτυο;
• Ένας τρόπος για ηλεκτρονικούς υπολογιστές
με διαφορετικά λειτουργικά συστήματα που
βρίσκονται σε διαφορετικές ηπείρους να
επικοινωνήσουν ...
• Δύο τρόποι περιγραφής του διαδικτύου:
– Μέσω των στοιχείων που το συνθέτουν:
Ποιά είναι τα ηλεκτρομηχανολογικά και λογισμικά μέρη του;
– Μέσω των υπηρεσιών του:
Τι υπηρεσίες παρέχει στις διάφορες εφαρμογές;
Τι είναι το πρωτόκολλο;
Δίκτυα τηλεπικοινωνιών
• Τηλεφωνικό δίκτυο
• Κινητά δίκτυα
• Δίκτυο υπολογιστών (π.χ. Διαδίκτυο – Internet)
• Διαφοροποίηση ως προς:
– γεωγκάλυψη
– ραφική ταχύτητα
– φυσικό μέσο/τεχνολογία
– υπηρεσίες και εφαρμογές
• Ένα μοναδικό δίκτυο που να υποστηρίζει όλες τις υπηρεσίες ήταν ο στόχος
για πολύ καιρό…
... και μετά εμφανίστηκε το Διαδίκτυο…
Τύποι δικτύων υπολογιστών με
βάση το εύρος κάλυψης
• Δίκτυα τοπικής περιοχής
Local Area Networks (LAN)
Μικρή γεωγραφική κάλυψη, υψηλή ταχύτητα
Παραδείγματα:
Ethernet (IEEE802.3)
Token ring, FDDI
WiFi (IEEE802.11)
Ethernet
• Αναπτύχθηκε αρχικά στο Xerox PARC
μεταξύ1973-1975
Ethernet RJ45 connector
Ενσύρματα LAN
• Ο συνδυασμός τύπων Ethernet
συνεστραμμένου ζεύγους για τη σύνδεση
τερματικών σταθμών στο δίκτυο μαζί με τις
οπτικές ίνες για τα backbones είναι η πιο
δημοφιλής επιλογή για ενσύρματα LANs
• Χρησιμοποιείται από το 1980
αντικαθιστώντας το token ring, FDDI και
ARCNET
Wide-Area Networks 1
Η απόσταση δυσκολεύει τα πράγματα:
Υψηλότερες καθυστερήσεις και
κόστος Απαιτείται αποδοτικότητα
• Μεγαλύτερο μέγεθος Απαιτείται
κλιμακοθετησιμότητα (scalability)
• Ετερογένεια
– Τύποι κίνησης
– Ανάγκες τερματικών, απαιτήσεις
εφαρμογών
Wide-Area Networks 2
• Διοικητική ανομοιογένεια
Δυσκολότερη διαχείριση
“Το Διαδίκτυο 2”
• Internet: το διασυνδεδεμένο σύνολο δικτύων
των Παρόχων Υπηρεσιών Διαδικτύου (ISPs)
που παρέχει υπηρεσίες επικοινωνίας
δεδομένων
– Περίπου 17,000 διαφορετικά δίκτυα συγκροτούν το Διαδίκτυο
Μοντέλο επιπέδων
Διαδικτύου (Στοίβα TCP/IP)
Στοίβα πρωτοκόλλων Διαδικτύου
(Internet) εφαρμογής
μεταφοράς
Επίπεδο 5 δικτύου
Επίπεδο 4 ζεύξης
Επίπεδο 3 φυσικό
Επίπεδο 2
Επίπεδο 1
διαστρωμάτωση
Επίπεδο εφαρμογής
• Υλοποιεί τις κατανεμημένες εφαρμογές
– File Transfer Protocol (FTP)
– Send Mail Transport Protocol (SMTP)
– HTTP
...
• Οδηγεί τις καινοτομίες σε άλλα επίπεδα
Επίπεδο μεταφοράς
• Είναι υπεύθυνο για τη μεταφορά δεδομένων
από τον ένα κόμβο στον άλλο
– Έφτασαν τα δεδομένα εκεί;
– Τι πρέπει να γίνει όταν τα δεδομένα φτάσουν εκεί;
• Τροφοδοτεί το επίπεδο εφαρμογής με ένα
socket API (connect, send, receive)
Επίπεδο μεταφοράς 2
• Όταν τα δεδομένα φτάσουν στον προορισμό
από το δίκτυο, αποφασίζει ποιά διεργασία
εφαρμογής θα τα λάβουν
• Οι εφαρμογές συνήθως χρησιμοποιούν ένα
από τα παρακάτω:
– TCP
– UDP
TCP: Transmission Control
Protocol [RFC 793]
• Με-σύνδεση υπηρεσία του Διαδικτύου
• Handshaking: προετοιμασία για την μεταφορά
δεδομένων
– Εφάμιλλο του ανθρώπινου πρωτοκόλλου “-Γεια!, -
Γεια και σε σένα!”
– Ορισμός κατάστασης (state) στους δύο
επικοινωνούντες κόμβους
Επίπεδο δικτύου
• Καθορίζει τη διαδρομή που θα πάρει ένα
πακέτο μέσω των δρομολογητών για να
φτάσει τον προορισμό του
• Internet Protocol (IP)
Καμία εγγύηση εάν και πότε θα φτάσει
εκεί
– Συμφόρηση μπορεί να προκληθεί στους
δρομολογητές λόγω περιορισμένου μεγέθους
buffer
– Όταν υπάρχει συμφόρηση οι δρομολογητές
«πετούν» πακέτα
Επίπεδο ζεύξης
• Χειρίζεται μεταφορές δεδομένων μεταξύ
γειτονικών στοιχείων του δικτύου
• Καθορίζεται από την τεχνολογία της ζεύξης
επικοινωνίας των γειτονικών στοιχείων
• Παραδείγματα:
– Ethernet (ΙΕΕΕ802.3)
– Wireless LAN (e.g., ΙΕΕΕ802.11)
Μη οδηγούμενα μέσα:
– Σήματα διαδίδονται ελεύθερα π.χ ραδιοκύματα
• Ας μιλήσομε για τις μεταδόσεις
στο φυσικό μέσο ...
Μοντέλο επιπέδων
Διαδικτύου (Στοίβα TCP/IP)
Στοίβα πρωτοκόλλων Διαδικτύου
εφαρμογής
μεταφοράς
Επίπεδο 5
δικτύου
Επίπεδο 4
ζεύξης
Επίπεδο 3
Επίπεδο 2 φυσικό
Επίπεδο 1
Φυσικό επίπεδο 2
Τα bits στέλνονται διαδίδοντας ηλεκτρομαγνητικά κύματα ή οπτικούς
παλμούς κατα μήκος του φυσικού μέσου
– Συνεστραμμένο χάλκινο καλώδιο (twisted pair
copper wire)
– Ομοαξονικό καλώδιο (coaxial cable)
– Επίγειο φάσμα ραδιοσυχνοτήτων
– Δορυφορικό φάσμα ραδιοσυχνοτήτων
Μετάδοση ΄Ηχου
• Ενα κύμα που διαδίδεται στον χώρο με τον
χρόνο ...
(πολύ απλά) “Μεταβολή πίεσης στον αέρα”
Ηλεκτρομαγνητικά κύματα
Έχουν δύο σημαντικές ιδιότητες:
1. Διαδίδονται
Μετακινούνται δηλαδή απο το ένα μέρος στο
άλλο,
όπως από ένα πομπό σε ένα δέκτη
Βασικές αρχές
Ένα μεταβαλλόμενο μαγνητικό πεδίο παράγει ένα
μεταβαλλόμενο ηλεκτρικό πεδίο (Faraday)
Ηλεκτρομαγνητικό κύμα
(συνέχεια 2)
Ηλεκτρομαγνητικό φάσμα
Προτυποποίηση διαδικτύου 2
Internet Engineering Task Force (IETF)
– Πυρήνας: πρωτόκολλο διαδικτύου, μεταφοράς
(TCP)
– Εφαρμογές: email, HTTP, FTP, SSH, NFS, VoIP
– Οχι: HTML, APIs
• W3C
– HTML, XML, schema, SOAP, semantic web,…
• OASIS
– Χρήση XML για ειδικές εφαρμογές
• Πολλοί άλλοι οργανισμοί
Θεμελιώδεις τεχνικές
μετάδοσης
• Μεταγωγή κυκλωμάτων (circuit switching)
μεταφορά (συνεχής) ακολουθίας από bits
παραδοσιακό τηλεφωνικό δίκτυο
Packet
Μεταγωγή κυκλωμάτων
• Δέσμευση (reservation) των πόρων του
«μονοπατιού» που συνδέει τα δύο συστήματα
που επικοινωνούν (end systems)
• Δεσμεύονται πόροι (πχ buffers, link bandwidth),
ώστε το δίκτυο να μπορεί να δώσει εγγυήσεις
για την ποιότητα υπηρεσίας
• Η δέσμευση γίνεται πριν ξεκινήσει η
επικοινωνία των δυό συστημάτων και υφίσταται
για όλη τη διάρκεια της
Δίκτυα μεταγωγής κυκλωμάτων
(circuit switched)
Δημόσιο τηλεφωνικό δίκτυο
Public Switched Telephone Network
(PSTN)
– επικοινωνία με σύνδεση (connection-oriented)
– αξιόπιστο (reliable)
– ένας-προς-έναν (one-to-one) ή περιορισμένη επικοινωνία
ένας-προς-πολλούς (one-to-many)
– η διαδρομή (route) καθορίζεται στη φάση δημιουργίας
της κλήσης (call setup time)
Source Destination
Δίκτυα μεταγωγής
κυκλωμάτων (συνέχεια)
Τα κυκλώματα έχουν μερικές πολύ ελκυστικές ιδιότητες
– Γρήγορη και απλή μεταφορά δεδομένων
άπαξ και δημιουργηθεί το κύκλωμα
– Προβλέψιμες επιδόσεις(π.χ. εγγυημένο εύρος ζώνης)
εφόσον το κύκλωμα παρέχει απομόνωση από άλλους χρήστες
Αλλά έχουν και κάποια «κουσούρια»
– Τι συμβαίνει με τη ριπαία κίνηση (bursty traffic)?
Το κύκλωμα είναι ανενεργό για σημαντικές χρονικές
περιόδους
– Τι συμβαίνει με τους χρήστες που έχουν διαφορετικές
ανάγκες σε εύρος ζώνης?
• Πρέπει να χρησιμοποιήσουν πολλαπλά κυκλώματα?
• Εναλλακτική λύση: Μεταγωγή πακέτων….
Δίκτυα μεταγωγής πακέτων
(packet switching)
Οι διαδρομές επιλέγονται δυναμικά
– μεταφορά πακέτων (packets–datagrams)
– αξιόπιστη ή μη αξιόπιστη επικοινωνία
με σύνδεση (connection-oriented) ή χωρίς σύνδεση
(connectionless)
R
Ένας δρομολογητής προωθεί
το πακέτο στον επόμενο R
κοντινότερο δρομολογητή
H R
R
R
H
Δίκτυα μεταγωγής πακέτων 1
• Σημαντικές δομές:
1. Πακέτα
2. Σταθμοί (end stations/systems)
3. Δρομολογητές
Παράδειγμα
Έστω ότι
• Για την μετάδοση ενός μεγάλου μηνύματος
μέσω μιας άμεσης ζεύξης χρειάζεται D ms
• Για την μετάδοση ενός μικρού πακέτου μέσω
μιας άμεσης ζεύξης χρειάζεται d ms
• Υπάρχουν Ν ενδιάμεσοι κόμβοι
Παράδειγμα (συνέχεια)
Μετάδοση με store-and-
forward (συνέχεια)
Η μείωση του χρόνου παράδοσης που
επιτυγχάνεται με την μεταγωγή πακέτων με
αποθήκευση και προώθηση καλείται κέρδος
σωληναγώγησης (pipelining gain)
Host B
Δρομολόγηση (Routing)
• Ποιος επιλέγει τις διαδρομές?
– Ένας άνθρωπος: Στατική δρομολόγηση
– Συγκεντρωτική (centralized) δρομολόγηση (telenet, περίπου στα 1980)
– Κατανεμημένη (distributed) δρομολόγηση (Internet, ad hoc networks)
L1 R1
L2 R2
Switch 1 Switch 2
L3 R3
Σήμα N LN RN Σήμα N
Διαμόρφωσ Ισχύς Συντονισμένο
η στο κανάλι ς στο κανάλι
N N
Συχνότητα
Πολυπλεξία σε Δίκτυα
Μεταγωγής Κυκλώματος
Πολλαπλή πρόσβαση διαίρεσης συχνότητας
(Frequency division multiple access)
Frequency
Πολυπλεξία με διαίρεση χρόνου
Πλαίσιο (Frame)
Σήμα 1 1 N-1 N 1 N-1 N
… …
Σήμα 2
Χρόνος
Χρονο-
θυρίδα
Σήμα N
Διαμόρφωσ ισχύς
η στο κανάλι
N
Πολυπλεξία σε Δίκτυα
Μεταγωγής Κυκλώματος
Παράδειγμα:
FDM 4 χρήστες
συχνότητα
χρόνος
συχνότητα
TDM
χρόνος
Πολυπλεξία σε Δίκτυα
Μεταγωγής Κυκλώματος
Παραδείγματα:
Πολυπλεξία σε Δίκτυα
Μεταγωγής Κυκλώματος
FDM:
προσαρμόζει το σήμα στα χαρακτηριστικά του μέσου
TDM:
κατάλληλο για σύγχρονη επικοινωνία
Ζητήματα:
Μεταγωγή Πακέτων:
Στατιστική Πολυπλεξία
Παράδειγμα CDMA
Sender
Spread 1 1 1 1 111 1
code
-1 -1-1-1 -1 -1-1-1
Time slot 1 Time slot 0
1 111111 1
Channel output -1-1-1 -1 -1 -1-1-1
Παράδειγμα CDMA (συνέχεια)
M
1
di= —
M
ΣZ
m=1
i,m*cm
• 1974: Οι Vint Cerf και Bob Kahn δημοσιεύουν τους βασικούς μηχανισμούς
του Transmission Control Protocol (TCP)
• 1982: Η ιεραρχία πρωτοκόλλων TCP/IP ορίζεται για το ARPANET
NSFNET (1990)
Internet (1998)
• Απαιτεί περισσότερη
λειτουργικότητα από τα
υποκείμενα δίκτυα
Η κρίση της μέσης ηλικίας
“Η αρχιτεκτονική πολυπλοκότητα
είναι σαν το λίπος του σώματος”
• Φυσική τάση να το αποκτάμε όσο μεγαλώνουμε …
• Είναι εύκολο να το αυξήσεις και δύσκολο να το ξεφορτωθείς ...
– Ο σχεδιασμός ενός απλού πρωτοκόλλου απαιτεί προσπάθεια ...
• Είναι υγιές να έχεις λίγο από αυτό αλλά όχι πάρα πολύ ...
• Το να το έχεις στη μέση μπορεί να είναι χειρότερο από ότι
αλλού
• Κάτι νεότερο και λεπτότερο, θα αποδειχτεί καλύτερο
– Η αρχιτεκτονική πολυπλοκότητα οδηγεί σε μειωμένη ευκινησία
– Nεότερα και λιγότερο πολύπλοκα συστήματα τείνουν να αντικαθιστούν
τα παλιότερα και περισσότερο σύνθετα ανεξαρτήτως του βάρους (θέση
στην αγορά) του παλιού συστήματος...
• Μερικές φορές ο διαχωρισμός είναι ένας καλός τρόπος να
αρχίσουμε ...
• Τα μακροπρόθεσμα αποτελέσματα απαιτούν διαρκή άσκηση
...
Αιτίες πολυπλοκότητας
• Πολυπλοκότητα
– Διαφορά υλοποίησης & χρόνου εκτέλεσης
– Διαφορά συστήματος-πρωτοκόλλου
• Βελτιώσεις μετά το γεγονός
– Ασφάλεια
– Διάσχηση ΝΑΤ
– Διεθνοποίηση (e.g DNS)
• Λάθος επίπεδο
– Πολυεκπομπές, ασφάλεια πρωτοκόλλου διαδικτύου
• Επιλογές
– Πολλά πρωτόκολλα μεταφοράς, IPv4, IPv6
– Πολλά ειδικά πρωτόκολλα, IMAP, POP, SMTP
• “Χειρωνακτική” διαμόρφωση
Εξέλιξη δικτύου 1
• Τύποι που έχουν εξερευνηθεί πλήρως,
βασισμένοι σε
– κελιά/πακέτα
– μηνύματα (μονάδες δεδομένων εφαρμογής)
– συνεδρίες (κυκλώματα)—session based
Εξέλιξη δικτύου 2
• Αντικατάσταση εξειδικευμένων δικτύων
– Δημιουργία ενσωματωμένων συστημάτων:
• Απαραίτητο κόστος (επεξεργαστή και δικτύου) < 7 euro
• Αυτοκίνητα
• Βιομηχανικός (κατασκευαστικός) έλεγχος
• Εμπορικά κτίρια (φωτισμός, HVAC,ασφάλεια; τώρα
LONworks)
• Απομακρυσμένος έλεγχος, διακόπτες φωτός
• Αντικατάσταση των κλειδιών με βιομετρικά
Ο στοχασμός της ημέρας
Oι μορφωμένοι άνθρωποι κατά τον Σωκράτη είναι αυτοί
που ικανοποιούν όλα τα παρακάτω:
• ελέγχουν δυσάρεστες καταστάσεις , αντί να ελέγχονται από
αυτές...
• αντιμετωπίζουν όλα τα γεγονότα με γενναιότητα & λογική..
• είναι έντιμοι σε όλες τους τις συνδιαλλαγές..
• αντιμετωπίζουν γεγονότα δυσάρεστα & ανθρώπους
αντιπαθείς καλοπροαίρετα..
• ελέγχουν τις απολαύσεις τους..
• δεν νικήθηκαν από τις ατυχίες & τις αποτυχίες τους..
• δεν έχουν φθαρεί από τις επιτυχίες και την δόξα τους...
Δίκτυα Υπολογιστών
Μαρία Παπαδοπούλη
Σκοποί ενότητας
• Είδη πολυπλεξίας
• Μεταγωγή
• Καθυστερήσεις και απώλειες πακέτων σε
δίκτυο
Είδη πολυπλεξίας
• Πολυπλεξία με
• διαίρεση χρόνου -Time Division Multiplexing (TDM)
• διαίρεση συχνότητας - Frequency Division Multiplexing (FDM)
• στατιστική πολυπλεξία - Statistical Multiplexing
L1 R1
L2 R2
Switch 1 Switch 2
L3 R3
χρόνος
συχνότητα
TDM
χρόνος
Πολυπλεξία με διαίρεση
συχνότητας
Ισχύς
Διαμόρφωση Συντονισμένος
στο κανάλι 1 στο κανάλι 1
Συχνότητα
Σήμα 1 L1 R1 Σήμα 1
Σήμα N LN RN Σήμα N
Διαμόρφωση Ισχύς Συντονισμένος
στο κανάλι N στο κανάλι N
Συχνότητα
Σήμα N
Διαμόρφωση ισχύς
στο κανάλι N
Στατιστική πολυπλεξία (statistical
multiplexing)
• Διαίρεση χρόνου «κατ’ αίτηση»
• Χρονοπρογραμματισμός συνδέσμου ανά πακέτο
• Πακέτα από διαφορετικές πηγές εναλλάσσονται στον σύνδεσμο
• Ζητήματα:
• Τα πακέτα χρειάζονται ετικέτες (labels) ή διευθύνσεις (addresses)
• Απαιτείται η ενταμίευση πακέτων
• Μπορεί να συμβεί υπερχείλιση ενταμιευτών σε καταστάσεις
συμφόρησης
• TDM:
– κατάλληλο για σύγχρονη επικοινωνία
– παράδειγμα: σταθερή τηλεφωνία, κινητή τηλεφωνία (GSM)
Παράδειγμα CDMA
Sender
Spread 1 1 1 1 111 1
code
-1 -1-1-1 -1 -1-1-1
Time slot 1 Time slot 0
1 111111 1
Channel output -1-1-1 -1 -1 -1-1-1
Παράδειγμα CDMA (συνέχεια)
M
1
di= — S Zi,m*cm
M m=1
Παράδειγμα
Πόσο χρόνο θα πάρει για να σταλεί ένα αρχείο των
640,000 bits από τον κόμβο Α στον κόμβο Β πάνω
από ένα δίκτυο μεταγωγής κυκλωμάτων;
– Όλοι οι σύνδεσμοι είναι στα 1.536 Mbps
– Κάθε σύνδεσμος χρησιμοποιεί το TDM με 24 θυρίδες το
δευτερόλεπτο
– Χρειάζονται 500 ms για να δημιουργηθεί ένα end-to-end
κύκλωμα
Παράδειγμα
Πόσο χρόνο θα πάρει για να σταλεί ένα αρχείο των 640,000 bits από τον κόμβο Α
στον κόμβο Β πάνω από ένα δίκτυο μεταγωγής κυκλωμάτων;
– Όλοι οι σύνδεσμοι έχουν χωρητικότητα 1,536 Mbps
– Κάθε σύνδεσμος χρησιμοποιεί το TDM με 24 θυρίδες/δευτερόλεπτο
– Χρειάζονται 500 ms για να δημιουργηθεί ένα end-to-end κύκλωμα
... ...
Υποθέσεις προβλήματος
• όχημα bit, φάλαγγα πακέτο
• Όλα τα αυτοκίνητα της φάλαγας πρέπει να φτάσουν
@ πρώτα διόδια πριν το πρώτο αυτοκίνητο ξεκινήσει
για τα δεύτερα διόδια
Αναλογία/παράδειγμα με μία
φάλαγγα οχημάτων 2
Propagation delay
καθυστέρηση διάδοσης
περιπτώσεις:
• ταυτόχρονων μεταδόσεων σε μία ζεύξη
• παρεμβολών και θορύβου
• χαμηλής έντασης σήματος στον παραλήπτη
• πολλών λαθών
Απώλειες πακέτων 2
• Ένα πακέτο που χάνεται μπορεί να
επαναμεταδοθεί από προηγούμενο κόμβο, από
άκρο σε άκρο ή μπορεί να μην επαναμεταδοθεί
καθόλου
Δίκτυα Υπολογιστών
Μαρία Παπαδοπούλη
Σκοποί ενότητας
... Ερωτήσεις από τα προηγούμενα lectures ...
• Επίπεδο ζεύξης
• Ανίχνευση και διόρθωση λαθών
• Τυχαία πολλάπλή πρόσβαση στο κανάλι
• MAC διευθύνσεις
μεταφοράς
Τμήμα H1 Payload (data)
δικτύου
Datagram H2 H1 Payload (data)
ζεύξης
frame H3 H2 H1 Payload (data)
φυσικό
Επίπεδο ζεύξης
• Χειρίζεται μεταφορές δεδομένων μεταξύ γειτονικών στοιχείων του
δικτύου
“link”
MP1
Είδη ζεύξεων
• Μονόδρομη (simplex): Επιτρέπει μετάδοση σε μία
κατεύθυνση μόνο
• Ημιαμφίδρομη (half-duplex): επιτρέπει μετάδοση
σε οποιαδήποτε κατεύθυνση αλλά όχι ταυτόχρονα
• Πλήρως αμφίδρομη (full duplex): επιτρέπει
ταυτόχρονη μετάδοση και στις δύο κατευθύνσεις
Επίπεδο ζεύξης: δυο τύποι
ζεύξεων
• Σημείο σε σημείο (Point-to-Point)
• Μετάδοση (διαμοιραζόμενο καλώδιο ή
μέσο)
Τύποι ζεύξεων
• Σημείο προς σημείο ζεύξη (point-to-point)
Αποτελούνται από ένα μοναδικό sender στο ένα
άκρο της ζεύξης και από ένα μοναδικό receiver στο
άλλο άκρο της
PPP για dial-up πρόσβαση
Σημείο προς σημείο ζεύξη μεταξύ Ethernet switch and host
Το MAC protocol είναι απλό (ή και “σχεδόν ανύπαρκτο”): sender can send a
frame whenever the link is idle …
Προσαρμοστές (adapters)
O adapter περιλαμβάνει RAM, DSP (Digital Signal Processing) chips, δίαυλους(bus), διεπαφή
ζεύξης & μοιράζεται την ενέργεια & τους δίαυλους με τον πατρικό κόμβο
Node I/O Bus
Node
Είναι υπεύθυνο για την επικοινωνία με τον πατρικό κόμβο του adapter.
Μεταφέρει δεδομένα & πληροφορίες ελέγχου μεταξύ adapter-πατρικού κόμβου
• Τεχνικές
Ανίχνευση Λάθους
EDC= Error Detection and Correction bits (redundancy)
D = Data, προστατεύεται από τον έλεγχο λαθών, μπορεί να
περιλαμβάνει τμήματα της επικεφαλίδας
Έλεγχος ισοτιμίας
Δεν
διορθώνουν
το
λάθος
0 0
Γιατί ???
Ωστόσο εμπειρικές μελέτες με μετρήσεις σε πραγματικά δίκτυα
δείχνουν ότι τα λάθη στα bits γίνονται σε bursts (έχουν “εκρηκτικό” pattern)
δηλαδή υπάρχουν γειτονικά bits που έχουν λάθη
Συστήματα πολλαπλής
πρόσβασης (multiple access) 1
…
Πρωτόκολλα πολλαπλής
πρόσβασης
• Μοναδικό διαμοιραζόμενο κανάλι μετάδοσης
• Δύο ή περισσότερες ταυτόχρονες μεταδόσεις από τους κόμβους:
παρεμβολές
σύγκρουση εάν ο κόμβος λαμβάνει δύο ή περισσότερα σήματα την ίδια
στιγμή
4. Απλό
2. Τυχαία Πρόσβαση
• το κανάλι δεν χωρίζεται, επιτρέπονται συγκρούσεις
• “ανάκαμψη” από τις συγκρούσεις
• Πολυπλοκότητα
• Απαιτήσεις σε συγχρονισμό μεταξύ των συσκευών
• Extra control μηνύματα που χρειάζονται να μεταδοθούν για το
συντονισμό μεταξύ των κόμβων (protocol overhead)
Slotted ALOHA
πλεονεκτήματα Μειονεκτήματα
• μοναδικός ενεργός κόμβος μπορεί • συγκρούσεις χάσιμο σχισμών
συνεχώς να μεταδίδει με τον πλήρη ανενεργές σχισμές
ρυθμό του καναλιού
• αποκεντροποιημένο: μόνο οι Οι κόμβοι μπορεί να είναι σε θέση να
σχισμές στους κόμβους χρειάζεται ανιχνεύσουν την σύγκρουση
να είναι συγχρονισμένες σε λιγότερο χρόνο από αυτόν που
χρειάζεται για να μεταδώσουν το
• απλό πακέτο
Συγχρονισμός ρολογιού
Αποδοτικότητα του Slotted
Aloha σε βάθος χρόνου
• Για μεγάλα Ν: παίρνουμε το όριο του Np*(1-p*)N-1 (όσο το Ν πάει στο άπειρο) 1/e = .37
Slotted ALOHA
• Παρόμοια ανάλυση δείχνει οτι το 37% των slots
έμειναν αδειανά
Σκεφτείτε λοιπόν την απογοήτευση ενός network
administrator που χρησιμοποιεί ένα 100Mbps
slotted ALOHA σύστημα και ενώ το κανάλι έχει τη
δυνατότητα να μεταδόσει ένα frame
χρησιμοποιώντας όλο το channel rate (100Mbps)
σε μεγάλο βάθος χρόνου το επιτυχημένο
throughput του καναλιού είναι λιγότερο από
37Mbps
Καθαρό (unslotted) ALOHA (pure
ALOHA) 1
• Απλούστερο, καθόλου συγχρονισμός
• Όταν ένα frame φτάνει:
Άμεση μετάδοση
= 1/(2e) = .18
Ακόμα χειρότερη !
Ανεπάρκεια του ALOHA
Τόσο στο slotted όσο και στο pure ALOHA,
η απόφαση ενός κόμβου να μεταδώσει λαμβάνεται
ανεξάρτητα από τους άλλους κόμβους που είναι
προσαρτημένοι στο κανάλι μετάδοσης
• Ένας κόμβος δεν δίνει καμία σημασία στο εάν ένας
άλλος κόμβος τυχαίνει να μεταδίδει όταν ξεκινάει
να μεταδίδει
ούτε σταματάει να μεταδίδει εάν ένας άλλος
κόμβος ξεκινήσει να δημιουργεί παρεμβολές στην
μετάδοσή του
συγκρούσεις μπορούν
ακόμα να συμβούν:
η καθυστέρηση διάδοσης
σημαίνει ότι δύο κόμβοι μπορεί
να μην ακούν την μετάδοση του
άλλου
σύγκρουση:
ο χρόνος μετάδοσης ολόκληρου του
πακέτου σπαταλήθηκε
σημείωση:
ο ρόλος της απόστασης και της
καθυστέρησης διάδοσης στο καθορισμό
της πιθανότητας σύγκρουσης
Εντοπισμός σύγκρουσης
Έντοπισμός σύγκρουσης
(“εάν κάποιος άλλος αρχίσει να μιλάει την ίδια ώρα, σταμάτα να μιλάς”)
• Ένας κόμβος που μεταδίδει ακούει το κανάλι καθώς
μεταδίδει
• Εάν εντοπίσει ότι κάποιος άλλος adapter μεταδίδει ένα
πλαίσιο που προκαλεί παρεμβολές:
σταματάει να μεταδίδει και χρησιμοποιεί κάποιο
πρωτόκολλο για να προσδιορίσει πότε θα προσπαθήσει
ξανά να μεταδώσει
Το Ethernet χρησιμοποιεί τον εντοπισμό σύγκρουσης!
poll
…
Node 1 Node 2 Node k
Έλεγχος πολλαπλής πρόσβασης
(συνέχεια)
Έλεγχος πρόσβασης με κουπόνι
• ένα κουπόνι μεταδίδεται κυκλικά μεταξύ των κόμβων
• ο κόμβος που διαθέτει το κουπόνι μπορεί να μεταδώσει
• θα πρέπει να ελέγχεται αν το κουπόνι έχει χαθεί, και τυχόν άδικη
συμπεριφορά κάποιου κόμβου
• Δακτύλιος: οι κόμβοι συνδέονται σε διάταξη δακτυλίου
Αποδοτικότητα είναι ο long-run λόγος του χρόνου κατά τον οποίο τα πλαίσια
μεταδίδονται στο κανάλι χωρίς συγκρούσεις υπό συνθήκες κορεσμού
1
αποδοτικότητα
1 5t prop / ttrans
Ethernet’s CSMA/CD
(περισσότερα)
Σήμα συμφόρησης (Jam Signal): βεβαιώσου Εκθετικός Backoff:
ότι όλοι οι άλλοι μεταδότες είναι • Στόχος: προσάρμοσε τις προσπάθειες
ενήμεροι για την σύγκρουση, 48 bits αναμετάδοσης στον εκτιμώμενο τρέχοντα
Χρόνος Bit (Bit time): .1 microsec για 10 φόρτο
Mbps Ethernet, • βαρύς φόρτος: ο τυχαίος χρόνος αναμονής θα
για K=1023, χρονος αναμονής είναι είναι μεγαλύτερος
περίπου 50 msec • πρώτη σύγκρουση: διάλεξε K από {0,1}, η
καθυστέρηση είναι K· 512 bit φορές
μετάδοσης
• μετά τη δεύτερη σύγκρουση: διάλεξε K από
{0,1,2,3}…
• μετά από δέκα συγκρούσεις, διάλεξε K από
{0,1,2,3,4,…,1023}
Διαδικασία εκθετικού backoff 1
• Μικρός # adapters με “παράλληλες» μεταδόσεις
πιθανότητα επιλογής μικρού χρονικού διαστήματος
backoff αναμονής
• Μεγάλος # adapters με παράλληλες
πιθανότητα επιλογής μεγαλύτερου χρονικού
διαστήματος backoff αναμονής
Όταν ο adapter αντιμετωπίζει την πρώτη
σύγκρουση, δεν έχει ιδέα πόσοι κόμβοι
αναμειγνύονται με την σύγκρουση
Metcalfe’s Ethernet
sketch
10Base2 Ethernet
10Mbps κόμβος
Τα μεταδιδόμενα πλαίσια Bus τοπολογία
ταξιδεύουν και στις δύο
κατευθύνσεις
Terminator
Όπως προχωρούν προς τον terminator “αφήνουν” ένα αντίγραφο του πλαισίου
σε κάθε adapter που συναντούν
Στην πραγματικότητα: το κάθε bit που περνά μπροστά από ένα adapter
η ενέργεια του bit “διαχέεται” και στον adapter
Όταν φτάσει στον terminator η ενέργεια απορροφάται ...
10BaseT και 100BaseT
• Ρυθμός 10/100 Mbps
• 100BaseT λέγεται και “fast ethernet” (υψηλής
ποιότητας, συνεστραμμένα ζεύγη από καλώδια με
πολλές στροφές)
• “T” υποδηλώνει Twisted Pair
• Οι κόμβοι συνδέονται με ένα : “τοπολογία
Αστεριού”; 100m μέγιστη απόσταση μεταξύ
κόμβων και hub
twisted pair
hub
Gigabit Ethernet
Τοπολογία Αστεριού
Προσφέρει δεδομένα ρυθμού 1Gbps
Λειτουργεί πάνω από οπτική ίνα
Συμβατό με 10BaseT &100BaseT, επιτρέποντας εύκολη ενσωμάτωση με την
υπάρχουσα εγκατεστημένη βάση του εξοπλισμού Ethernet
Επιτρέπει σημείο-σε-σημείο (point-to-point) (χρησιμοποιεί switches) και
διαμοιραζόμενα κανάλια εκπομπής (χρησιμοποιεί hubs)
CSMA/CD για διαμοιραζόμενα κανάλια εκπομπής
(για αποδεκτή αποδοτικότητα η μέγιστη απόσταση μεταξύ των κόμβων πρέπει να
περιοριστεί)
Full duplex λειτουργία και στις δύο κατευθύνσεις για κανάλια σημείο-σε-σημείο
ARP: Address Resolution Protocol
Ερώτηση: πώς θα καθορίσουμε • Κάθε IP κόμβος (Host, Router) στο
την MAC διεύθυνση του B LAN έχει έναν ARP πίνακα
ξέροντας την ΙP διεύθυνσή του?
LAN
(ενσύρματο
ή ασύρματο)
71-65-F7-2B-08-53
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
MAC Διευθύνσεις
Ή LAN ή φυσικές ή Ethernet διευθύνσεις
(άλλα ονόματα με τα οποία θα τις συναντήσετε)
32-bit IP διεύθυνση:
– διεύθυνση επιπέδου δικτύου
– χρησιμοποιείται για να βάζει δεδομενογράμματα στο IP
υποδίκτυο του προορισμού
Γιατί κάποια επίπεδα έχουν την
δικιά τους διεύθυνση? 1
• Ονόματα κόμβων για το επίπεδο εφαρμογής
• IP διευθύνσεις για το επίπεδο δικτύου
• MAC διευθύνσεις για το MAC επίπεδο
hub or
switch
Hubs
Απλούστερος τρόπος να συνδέσουμε LANs
hub
Ένα hub έχει πολλές ζεύξεις
Κάθε ζεύξη αντιστοιχεί σε μία διεπαφή στο hub
Το hub είναι μια συσκευή φυσικού επιπέδου
Hubs
Τα Hubs είναι συσκευές φυσικού επιπέδου:
“χειρίζονται” bits και όχι frames
Είναι repeaters:
– Όταν ένα bit έρχεται από μία ζεύξη, το hub το εκπέμπει σε
όλες τις ζεύξεις
– Παρέχουν και πρόσθετη λειτουργικότητα διαχείρισης δικτύου
Λαμβάνει bits από μία ζεύξη και απλά εκπέμπει αυτά τα bits προς
όλες τις άλλες ζεύξεις
– Στον ίδιο ρυθμό
– Xωρίς buffering των πλαισίων
– Χωρίς CSMA/CD στο hub (τα bits τα προωθεί δίχως να ακούσει το κανάλι)
οι adapters εντοπίζουν συγκρούσεις
Διασύνδεση με hubs 1
• Κάθε τμήμα ενός LAN αποτελείται από υπολογιστές
υπηρεσίας, που συνδέονται με ένα hub.
• Τα επιμέρους τμήματα του LAN συνδέονται μεταξύ τους και
αυτά με ένα hub(backbone hub)(σχεδίαση hub πολλαπλών
βαθμίδων)
• Επεκτείνει την μέγιστη απόσταση μεταξύ κόμβων
• Αλλά ξεχωριστοί τμηματικοί τομείς συγκρούσεων (collision domains) γίνονται ένας
μεγάλος τομέας συγκρούσεων
Διασύνδεση με hubs 2
Εάν δύο ή περισσότεροι
Multi-tier κόμβοι από τα παρακάτω
design backbone hub LAN τμήματα μεταδώσουν
one ταυτόχρονα, θα έχουμε
tier σύγκρουση!!!!
LAN segment
hub
hu hub
b
Διασύνδεση με hubs
(πλεονεκτήματα)
• Επεκτείνει το LAN
• Προσφέρει ευγενική υποβάθμιση (graceful degradation):
Εάν ένα LAN τμήμα (που έχει ένα hub) δεν δουλεύει σωστά, το backbone hub
θα το ανιχνεύσει & θα αποσυνδέσει το hub αυτό από το υπόλοιπο LAN. Τα
άλλα hubs που είναι συνδεμένα με αυτό το backbone hub συνεχίζουν
ομαλά τη λειτουργία τους
hub
hub hub
departamental
Διασύνδεση με hubs
(μειονεκτήματα)
Οι συγκρούσεις σε ένα LAN τμήμα (segment) θα
επηρεάσουν την απόδοση των άλλων LAN τμημάτων
(segments) που είναι συνδεμένα με το ίδιο backbone
hub
Μέγιστο συνολικό throughput 30Mbps Μέγιστο συνολικό throughput 10Mbps
Backbone hub
hub
hub
h hub
hub
u
b
hub
Διασύνδεση με hubs
(μειονεκτήματα) 1
Το κάθε LAN segment πρέπει να είναι της ίδιας
τεχνολογίας & ρυθμού με τα άλλα hubs για να
μπορούν να συνδεθούν σε ένα backbone hub
π.χ. 10BaseΤ και 100BaseT(διαφορετικές
τεχνολογίες)
Διασύνδεση με hubs
(μειονεκτήματα) 2
H κάθε Ethernet τεχνολογία (πχ 10Base2, 10BaseT,
100BaseT) περιορίζει τα παρακάτω:
• Mέγιστο αριθμό κόμβων σε ένα collision domain
• Μέγιστη απόσταση δύο κόμβων σε ένα collision
domain
• Μέγιστο αριθμό tiers σε ένα multi-tier design
=>Περιορισμός στον συνολικό αριθμό υπολογιστών
υπηρεσίας, που συνδέονται σε ένα LAN πολλαπλών
βαθμίδων και γεωγραφικής εμβέλειας του LAN
πολλαπλών βαθμίδων
Γέφυρα (bridge)
Οι γέφυρες εφαρμόζουν CSMA/CD
bridge
εάν “ακούσουν” transmission
1 δεν μεταδίδουν
2 3
Επίσης μπαίνουν σε
exponential backoff
10BaseT hub hub
όταν διαπιστώσουν
hub σύγκρουση
ενώ μεταδίδουν
Δύο σημαντικές λειτουργίες:
• Filtering
Προσδιορίζει αν ένα πλαίσιο πρέπει να προωθηθεί σε ένα άλλο interface ή απλά να απορριφθεί
• Forwarding
Προσδιορίζει τα interface(s) στα οποία ένα πλαίσιο πρέπει να κατευθυνθεί & κατευθύνει αυτό το
πλαίσιο σε αυτό το interface
Για τις λειτουργίες filtering & forwarding οι γέφυρες χρησιμοποιούν τη MAC διεύθυνση προορισμού
Γέφυρα
Το φιλτράρισμα (filtering) και η προώθηση (forwarding) γίνονται με ένα πίνακα γέφυρας
Περιέχει καταχωρήσεις για:
• address (διεύθυνση LAN)
address interface
• interface (διασύνδεση γέφυρας που οδηγεί στον κόμβο)
• Ώρα (χρόνος που η καταχώρηση για τον κόμβο A 1
τοποθετήθηκε στον πίνακα) B 1
bridge
E 2
1 G 3
2 3
hub
10BaseT hub hub
A
G
B
E
• Όταν ένα πλαίσιο φτάνει στις διασυνδέσεις & η διεύθυνση προορισμού του
πλαισίου είναι στον πίνακα, τότε η γέφυρα προωθεί το πλαίσιο στην κατάλληλη
διασύνδεση
• Η γέφυρα διαγράφει μία διεύθυνση από τον πίνακα αν δεν έχει ληφθεί κανένα
πλαίσιο με αύτη τη διεύθυνση σαν διεύθυνση προέλευσης μετά από κάποιο
χρονικό διάστημα (aging time)
Store-and-forward:
The packet is first gathered & stored in its entirety before the switch begins to
transmit it on the outbound link
In the case that the output buffer becomes empty before the whole packet has arrived
to the switch, this gathering generates a store-and-forward delay at the switch
Cut-through:
If the buffer becomes empty before the entire packet has arrived, the switch can start
to transmit the front of the packet while the back of the packet continues to arrive.
Before transmitting the packet on the outbound link, the portion of the packet that
contains the destination address must first arrive
switch
Παράδειγμα
Υποθέστε ότι:
Ο host A μπορεί να στείλει ένα αρχείο στον A’ ενώ ο B στέλνει ένα αρχείο στο B’ &
ο C στέλνει ένα αρχείο στο C’
Εάν ο κάθε host έχει μία 10Mbps adapter card, τότε το συνολικό throughput
κατά την διάρκεια των τριών αυτών ταυτόχρονων μεταφορών αρχείων είναι 30Mbps
A
C’ B
switch
B’ A’
Institutional δίκτυο
mail server
Προς εξωτερικό
δίκτυο
router web server
switch
IP subnet
hub
hub hub
Παράδειγμα Switch
D F
B C G H
E
R
B
A
• Δύο ARP πίνακες στον δρομολογητή, o ένας για κάθε IP δίκτυο (LAN)
R
B
Δίκτυα Υπολογιστών
Μαρία Παπαδοπούλη
Σκοποί ενότητας
Κατανόηση των βασικών αρχών σχεδιασμού του :
• network layer service μοντέλο
• Δρομολόγηση (routing) & προώθηση (forwarding)
• Πως δουλεύει ένας δρομολογητής (router)
• Δρομολόγηση (επιλογή μονοπατιού)
• Επίδραση των μεγάλων μεγεθών στην απόδοση των
αλγορίθμων δρομολόγησης
Αρχείο (Επίπεδο εφαρμογής) Application
Segments (Transport layer, TCP/UDP)
.και λίγο
Transport από αυτό
Datagrams (Επίπεδο δικτύου, IP)
Frames (Επίπεδο MAC, Ethernet)
Σήμερα
Network (IP)
αρχίζομε αυτό !
Link Εχομε
καλύψει
τα 2
Physical επίπεδα
• Προώθηση (forwarding)
Όταν ένα πακέτο φτάνει στην διεπαφή “εισόδου” (input) του δρομολογητή κι αυτός
πρέπει να το προωθήσει στη σωστή διεπαφή εξόδου (output link)
• Call setup
Χρειάζονται οι δρομολογητές σε ένα επιλεγμένο μονοπάτι από την πηγή-
αποστολέα στον παραλήπτη/τελικό προορισμό να συμμετέχουν σε ένα
«handshake» πριν την αποστολή των πακέτων της εφαρμογής
VC setup, Data transfer & VC teardown
Προσοχή: το Call setup ΔΕΝ υπάρχει
στο Διαδίκτυο (Internet) !
Επισκόπηση της αρχιτεκτονικής του
δρομολογητή
Δύο σημαντικές λειτουργίες του δρομολογητή:
• Τρέχει αλγορίθμους/πρωτόκολλα δρομολόγησης (πχ RIP, OSPF, BGP)
• Προωθεί τα datagrams από την εισερχόμενη στην εξερχόμενη
σύνδεση
Επίπεδο ζεύξης
Φυσικό επίπεδο
Επίπεδο δικτύου
• Πρωτόκολλα επιπέδου δικτύου σε κάθε host, και δρομολογητή
• Ο δρομολογητής εξετάζει τα πεδία επικεφαλίδας σε όλα τα IP datagrams που
περνάνε από αυτόν
application
transport
network
data link network
physical data link
network network
data link physical data link
physical physical
network
Αρχείο (Επίπεδο εφαρμογής) data link
physical network
data link
Τμήματα (επίπεδο μεταφοράς, TCP/UDP) physical
network
network
data link
Datagrams (Επίπεδο δικτύου, IP) data link
physical
physical
network
data link application
Frames (Επίπεδο MAC, Ethernet) physical transport
network
data link
physical
Η τιμή στην
επικεφαλίδα του
πακέτου που
φτάνει 0111 1
3 2
6ft 3ft
2ft 2.5ft
13
IP Routers
Aποτελούνται από
• Διεπαφές εισόδου interfaces όπου τα πακέτα φτάνουν
• Διεπαφές εξόδου από όπου τα πακέτα
προωθούνται στο δίκτυο Router
• τρόπος σύνδεσης των διεπαφών εισόδου και εξόδου
5 7
Υλοποιεί: 4
8
•Προώθηση πακέτων στο
κατάλληλο output interface 6
11
•Χειρισμό των πόρων εύρους 2
10
3 12
1
Inter-
connect
φυσικό επίπεδο:
Λήψη σε επίπεδο bit
επίπεδο ζεύξης
δεδομένων: Aποκεντρικοποιημένo switching:
π.χ., Ethernet Με βάση τον προορισμό του datagram, ψάχνει για την θύρα
(βλ. Κεφ. 5) εξόδου χρησιμοποιώντας τον πίνακα προώθησης στη
μνήμη της θύρας εισόδου
Στόχος: να ολοκληρωθεί η επεξεργασία της θύρας εισόδου
στην ταχύτητα της γραμμής
queuing: όταν τα datagrams φτάνουν γρηγορότερα από το
ρυθμό προώθησης στο switch
Network Layer 4-16
Λειτουργίες Θύρας Εξόδου
Inter-
connect
Διακόπτης (transistor)
Καλώδιο
Μεγαλύτερος
παραλληλισμός
Τρείς ταυτόχρονες ροές
δεδομένων
Switching Memory
Δρομολογητές πρώτης γενιάς
Παραδοσιακοί υπολογιστές με το switching κάτω από τον άμεσο
έλεγχο της CPU
Το πακέτο αντιγράφεται στη μνήμη του συστήματος
• η ταχύτητα μειώνεται από το bandwidth της μνήμης: 2 περάσματα από
το δίαυλο ανά datagram Memory
Input Output
Port Port
System Bus
Κάθε χρονική στιγμή μία input port μπορεί να γράψει στη μνήμη & την επόμενη στιγμή
μία άλλη input port μπορεί να γράψει ή μια output port να διαβάσει
Network Layer 4-22
Διαμοιραζόμενη μνήμη (1η γενιά)
Shared Backplane Route Buffer
CPU Table Memory
To datagram από την θύρα εισόδου της μνήμης θύρα εξόδου της μνήμης
μέσω ενός διαμοιραζόμενου διαύλου
bus contention: Η ταχύτητα του switching περιορίζεται από το bandwidth
του διαύλου
1 Gbps bus, Cisco 1900: επαρκής ταχύτητα για access & enterprise routers (όχι
τοπικούς ή backbone)
Κάθε χρονική στιγμή μία θύρα εισόδου μπορεί να γράψει στο bus & την επόμενη
στιγμή μία άλλη θύρα εισόδου μπορεί να γράψει ή μια θύρα εξόδου να
διαβάσει
Network Layer 4-24
Διαμοιραζόμενος δίαυλος (shared
bus) (2η γενιά)
Bypasses memory bus with direct transfer Route Buffer
CPU Table Memory
over bus between line cards
4-Port 10 GigE
(for Cisco CRS-1)
10in
2in
Switched Backplane
MAC MAC
Switched Backplane
• Every input port has a connection to every output port
28
Crossbar Switching
• In each timeslot, one-to-one mapping between inputs and outputs
• Crossbar constraint: If input I is connected to output j, no other input
connected to j, no other output connected to input I
L11(n) S (n)
Maximum
Weight Match
LN1(n)
29
Input 1 Output 1
Input 2 Output 2
Αποθήκευση όταν ο ρυθμός άφιξης μέσω του switch ξεπερνάει την ταχύτητα
της γραμμής εξόδου
Αναμονή στην ουρά (καθυστέρηση) και απώλειες λόγω υπερχείλησης του
buffer εξόδου!
Αλγόριθμοι δρομολόγησης
Προώθηση: διαδικασία μίας μετάβασης από τον ένα σταθμό στον άλλο
Εγκαθίδρυση σύνδεσης
• Η 3η πιο σημαντική λειτουργία σε κάποιες αρχιτεκτονικές δικτύου:
ATM, frame relay, X.25
• Πριν σταλούν τα datagrams , οι δύο hosts & οι παρεμβαλλόμενοι
δρομολογητές εγκαθιδρύουν μία εικονική σύνδεση
Συμμετοχή των δρομολογητών
• Υπηρεσία σύνδεσης σε επίπεδο δικτύου και μεταφοράς:
Δίκτυο: μεταξύ των δύο hosts
Μεταφορά: μεταξύ των δύο διεργασιών
Παράδειγμα υπηρεσιών για κάθε Παράδειγμα υπηρεσιών για μία ροή από
datagram: datagrams:
• Εγγυημένη παράδοση • Πράδοση των datagrams σε σειρά
• Εγγυημένη παράδοση με • Εγγυημένο ελάχιστο bandwidth για τη
καθυστέρηση <40 msec ροή
• Περιορισμοί σε αλλαγές και κενά
μεταξύ των πακέτων
Όχι (υποννοείται
Διαδίκτυο Βέλτιστης κανένα όχι όχι όχι
από απώλεια)
προσπάθειας
ATM CBR Σταθερός ναι ναι ναι καμία
ρυθμός συμφόρηση
ATM VBR Εγγυημένος ναι ναι ναι καμία
ρυθμός συμφόρηση
ATM ABR Εγγυημένο όχι ναι όχι ναι
ελάχιστο
ATM UBR κανένα όχι ναι όχι όχι
Πίνακας προώθησης
VC number
12 22 32
1 3
2
interface
number
Πίνακας προώθησης για τον δρομολογητή:
εισερχόμενο interface εισερχόμενος VC # εξερχόμενο interface εξερχόμενος VC #
1 12 3 22
2 63 1 18
3 7 2 17
1 97 3 87
… … … …
application
application
transport
transport
network
1. Send data network
data link 2. Receive data
data link
physical
physical
IP Address Lookup
Challenges:
1. Longest-prefix match (not exact).
2. Tables are large and growing.
3. Lookups must be fast.
46
Address Tables are Large
47
48
IP Address Lookup: Binary Tries
0 1 Example Prefixes:
a) 00001
b) 00010
c) 00011
d) 001
g e) 0101
d f
f) 011
g) 100
h i h) 1010
e
i) 1100
abc j) 11110000
j
49
50
4 δις δυνατές καταχωρήσεις
Πίνακας προώθησης
Διευθύνσεις προορισμού Διεπαφή ζεύξης
αλλιώς 3
Network Layer 4-51
Παραδείγματα
Απλό &
minimalistic Network (IP)
service model
Διατηρεί ελάχιστη
πληροφορία Link
της κατάστασης (state)
των
μεταδόσεων/πακέτων Physical
(πχ πακέτα που χάθηκαν
ή με λάθη)
Ενθυλάκωση
Επίπεδο ζεύξης
Φυσικό επίπεδο
Διάταξη IP δεδομενογράμματος
αριθμός έκδοσης
IP πρωτοκόλλου 32 bits συνολικό μέγεθος
μέγεθος επικεφαλίδας head. type of δεδομενογράμματος
(bytes) ver μέγεθος (bytes)
len service για
Τύπος δεδομένων fragment Τεμαχισμός/
16-bit identifier flgs
offset συναρμολόγηση
Μέγιστος αριθμός time to upper Internet
εναπομείνοντων hops live layer checksum
(μειώνετε σε κάθε
δρομολογητή) 32 bit IP διέυθυνση πηγής
Υψηλότερο επίπεδο 32 bit IP διεύθυνση προορισμού
πρωτόκολλο που θα
Επιλογές (αν υπάρχουν) πχ timestamp,
παραδοθεί το payload
καταγραφή
Πόση επιβάρυνση με TCP? διαδρομής που
• 20 bytes TCP δεδομένα πάρθηκε,
(μεταβλητό μέγεθος, τυπικά ένα προσδιορισμός
• 20 bytes IP τμήμα TCP ή UDP) λίστας από
• = 40 bytes + δρομολογητές να
επιβάρυνση ανώτερου επισκεφθεί
επιπέδου
Network Layer 4-56
IP Τεμαχισμός & Συναρμολόγηση
• Οι ζεύξεις δικτύου έχουν MTU (μέγιστο μέγεθος μεταφοράς): μεγαλύτερο πιθανό πλαίσιο
επιπέδου ζεύξης
διαφορετικοί τύποι ζεύξης, διαφορετικά MTUs
πολλές διεπαφές
Αλλά και ένα host μπορεί να
έχει πολλές διεπαφές (πχ 223.1.3.1 223.1.3.2
Υποδίκτυα (subnets)
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4 223.1.2.9
223.1.3.1 223.1.3.2
Συνταγή
Για να καθορίσεις τα υποδίκτυα, αποσύνδεσε
κάθε διεπαφή από το host του ή τον
δρομολογητή, δημιουργώντας “νησιά” από
απομονωμένα δίκτυα
Υποδίκτυα 223.1.1.2
223.1.1.3
223.1.9.2 223.1.7.0
223.1.9.1 223.1.7.1
223.1.8.1 223.1.8.0
223.1.2.6 223.1.3.27
τμημα τμήμα
υποδικτύου host
11001000 00010111 00010000 00000000
200.23.16.0/23
Network Layer 4-63
Organization 0
200.23.16.0/23
“Στείλε μου οτιδήποτε
Organization 1
με διευθύνσεις που
200.23.18.0/23 ξεκινούν από
Organization 2 200.23.16.0/20”
200.23.20.0/23 .
. Fly-By-Night-ISP
. . Internet
.
Organization 7 .
200.23.30.0/23
“Στείλε μου οτιδήποτε
ISPs-R-Us με διευθύνσεις που
ξεκινούν από
199.31.0.0/16”
Network Layer 4-66
Ιεραρχική διευθυνσιοδότηση: περισσότερες
συγκεκριμένες διαδρομές
ISPs-R-Us έχει μία πιο συγκεκριμένη διαδρομη προς Organization 1
Organization 0
200.23.16.0/23
IP διευθυνσιοδότηση: τελευταία
λόγια…
Q: Πώς ένας παροχέας παίρνει ένα block από διευθύνσεις?
A: ICANN: Internet Corporation for Assigned Names & Numbers
• δεσμεύει διευθύνσεις
• ελέγχει το DNS
• αναθέτει ονόματα σε περιοχές (domains), επιλύει συγκρούσεις
v 3 w
2 5
u 2 z
1
3
1
x y 2
Graph: G = (N,E) 1
E = σύνολο ζεύξεων ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Παρατήρηση: Η αφηρημένη έννοια του γράφου είναι χρήσιμη σε άλλα ευρύτερα πλαίσια
δικτύων
Παράδειγμα: P2P, όπου N είναι το σύνολο των peers και E σύνολο των TCP συνδέσεων
Ταξινόμηση Αλγορίθμων
Δρομολόγησης
Updates
Dynamic
Φόρτος
Static
Ταξινόμηση Αλγορίθμων
Δρομολόγησης
Αντιπαράθεση: Static vs. dynamic?
Στατικοί (Static): οι διαδρομές αλλάζουν αργά με τον χρόνο
Δυναμικοί (Dynamic): οι διαδρομές αλλάζουν πιο γρήγορα
• Περιοδική ενημέρωση
• σε απάντηση στις αλλαγές κόστους ζεύξης
75
Δίκτυα Υπολογιστών
Μαρία Παπαδοπούλη
Σκοποί ενότητας
... Ερωτήσεις από τα προηγούμενα lectures ...
Αλγόριθμοι δρομολόγησης
• Κατάστασης Ζεύξεων (Link state)
• Διανυσμάτων Απόστασης (Distance Vector)
• Ιεραρχικής Δρομολόγησης (Hierarchical routing)
Network layer
• transport segment from application
transport
network network
datagrams data link
physical
data link
physical
value in arriving
packet’s header
0111 1
3 2
Forwarding table
4 billion
possible entries
Destination Address Range Link Interface
otherwise 3
Examples
IP datagram format
IP protocol version
number 32 bits total datagram
header length head. type of length (bytes)
(bytes) ver length
len service for
“type” of data fragment fragmentation/
16-bit identifier flgs
offset reassembly
max number time to upper header
remaining hops live layer checksum
(decremented at
each router) 32 bit source IP address
IP Addressing: introduction
IP address: 32-bit identifier 223.1.1.1
for the network interface of 223.1.2.1
223.1.1.2
a host or router 223.1.1.4 223.1.2.9
223.1.2.2
223.1.1.3 223.1.3.27
interface: connection between host/router
& physical link
223.1.3.1 223.1.3.2
router’s typically have multiple interfaces
223 1 1 1
223.1.2.2
223.1.1.3 223.1.3.27
What’s a subnet ?
• device interfaces with same subnet part subnet
of IP address
223.1.3.2
• can physically reach each other without 223.1.3.1
intervening router
IP addressing: CIDR
CIDR: Classless InterDomain Routing
• subnet portion of address of arbitrary length
• address format: a.b.c.d/x, where x is # bits in
subnet portion of address
subnet host
part part
11001000 00010111 00010000 00000000
200.23.16.0/23
Network Layer 4-13
IP addresses: how to get one?
Q: How does a host get IP address?
Περίληψη Router
v 3 w
2 5
u 2 z
1
3
1
x y 2
Γράφος: G = (N,E) 1
E = σύνολο ζεύξεων = { (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
Ταξινόμηση Αλγορίθμων
Δρομολόγησης
Updates
Dynamic
Load
Static
Local
Global
Information
Καθολική:
• Όλοι οι δρομολογητές έχουν πλήρη εικόνα της τοπολογίας & κόστους
ζεύξεων
• Αλγόριθμοι κατάστασης ζεύξης (link-state)
Τοπική:
• Ο δρομολογητής ξέρει τους φυσικά-συνδεδεμένους γείτονες του, κόστη
ζεύξεων προς τους γείτονες
• Επαναληπτική διαδικασία υπολογισμού και ανταλλαγής πληροφορίας με
τους γείτονες
• Αλγόριθμοι πίνακα αποστάσεων (distance-vector)
Ταξινόμηση Αλγορίθμων
Δρομολόγησης
Αντιπαράθεση στατικών & δυναμικών αλγορίθμων
Στατικοί: οι διαδρομές αλλάζουν αργά με την πάροδο του χρόνου
Δυναμικοί: οι διαδρομές αλλάζουν πιο γρήγορα
• Περιοδική ενημέρωση
• Ως απάντηση σε αλλαγές κόστους ζεύξεων
Η μέθοδος της “πλημμύρας” είναι ένα συνηθισμένο πρωτόκολλο για την διάδοση
πληροφορίας στο δίκτυο (περιοδικά ή μετά από γεγονότα)
Network Layer 4-27
Ένας αλγόριθμος κατάστασης
ζεύξεων (link state )
O αλγόριθμος του Dijkstra Συμβολισμός:
• Η τοπολογία του δικτύου και τα κόστη • Κόμβος πηγής: s
των ζεύξεων είναι γνωστά σε όλους τους
κόμβους • “” : μονοπάτι, “→”: ζεύξη
• c(x,y): κόστος ζεύξης x →y;
• Πετυχαίνεται μέσω μετάδοσης της
κατάστασης των ζεύξεων = ∞ αν δεν είναι άμεσοι γείτονες
• Όλοι οι κόμβοι έχουν τις ίδιες • D(v): τωρινό κόστος μονοπατιού
πληροφορίες sv
• Υπολογίζει τα μονοπάτια ελαχίστου • p(v): προηγούμενος κόμβος στο
κόστους από έναν κόμβο (“πηγή”) προς • μονοπάτι sv
όλους τους άλλους • N’: {κόμβοι των οποίων το
• Δίνει τον πίνακα προώθησης για μονοπάτι ελαχίστου κόστους είναι
αυτόν τον κόμβο
γνωστό}
• επαναληπτικός: ύστερα από k
επαναλήψεις, γνωρίζει τα μονοπάτια
Network Layer
ελαχίστου κόστους προς k προορισμούς 4-28
v 3 w
2 5
u 2 z
1
3
1
x y 2
1
Η διαδικασία εκτελείται από τον κάθε δρομολογητή στο δίκτυο
Network Layer
Use of global information about the network topology & costs 4-30
Αλγόριθμος διανυσμάτων
απόστασης (Distance-Vector)
Bellman-Ford εξίσωση (δυναμικός προγραμματισμός)
Τότε
v
Dx(y) = min {c(x,v) + Dv(y) }
Ιδέα
• Σε οποιαδήποτε στιγμή, έχουμε το κόστος/επόμενο κόμβο από το καλύτερο
γνωστό μονοπάτι προς τον προορισμό
• Χρήση κόστους όταν κανένα μονοπάτι δεν είναι γνωστό
Αρχικά: Υπάρχουν μόνο εγγραφές για τους άμεσα συνδεδεμένους γείτονες
Network Layer 4-36
Bellman-Ford example
5 Ξεκάθαρα, dv(z) = 5, dx(z) = 3, dw(z) = 3
v 3 w
2 5
u 2 z Η B-F εξίσωση λέει:
1
3
1 du(z) = min { c(u,v) + dv(z),
x y 2
1 c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
Ο κόμβος που πετυχαίνει το ελάχιστο είναι ο επόμενος στο
ελάχιστο μονοπάτι ➜ πίνακας προώθησης
z
d(z,y)
c(x,z)
y
x
d(x,y)
Update(x,y,z)
d c(x,z) + d(z,y) # Κόστος μονοπατιού από τον x στον y με 1ο κόμβο τον z
if d < d(x,y)
# Βρέθηκε καλύτερο μονοπάτι
Else
Αλγόριθμος διανυσμάτων
απόστασης
• Dx(y) = εκτίμηση του ελαχίστου κόστους από τον x y
• Διάνυσμα απόστασης: Dx = [Dx(y): y є N ]
• Ο κόμβος x γνωρίζει το κόστος x→y : c(x,v)
Ο κόμβος x διατηρεί
• Dx = [ Dx(y) : y є N ]
και επίσης τους πίνακες διανυσμάτων απόστασης (DV) των γειτόνων του
• Για κάθε γείτονα v: Dv = [Dv(y): y є N ]
from
from
y ∞∞ ∞ y 2 0 1 y 2 0 1
z ∞∞ ∞ z 7 1 0 z 3 1 0
node y table
cost to cost to cost to
x y z x y z x y z y
2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
from
from
from
y 2 0 1 y 2 0 1 y 2 0 1 7
z ∞∞ ∞ z 7 1 0 z 3 1 0
node z table
cost to cost to cost to
x y z x y z x y z
x ∞∞ ∞ x 0 2 7 x 0 2 3
from
from
from
y ∞∞ ∞ y 2 0 1 y 2 0 1
z 7 1 0 z 3 1 0 z 3 1 0
Network Layer
time 4-41
Πίνακας Διανυσμάτων Απόστασης:
αλλαγές στα κόστη των ζεύξεων
Αλλαγές στα κόστη των ζεύξεων:
1
• Ο κόμβος εντοπίζει τοπική αλλαγή στο κόστος μιας ζεύξης y
• Ενημερώνει τις πληροφορίες δρομολόγησης και υπολογίζει 4 1
x z
ξανά τον πίνακα διανυσμάτων αποστάσης 50
• Εάν ο πίνακας διανυσμάτων αποστάσης (DV) αλλάξει, ειδοποιεί
τους γείτονες
Τη στιγμή t0: ο y εντοπίζει αλλαγή σε κόστος ζεύξης, ενημερώνει τον πίνακά του
“good και ειδοποιεί τους γείτονές του
news
Τη στγμη t1: ο z λαμβάνει το μήνυμα του y και ενημερώνει τον πίνακά του.
travels Υπολογίζει ένα νέο ελάχιστο κόστος προς τον x και στέλνει στους γείτονές του τον
fast” DV.
Τη στιγμή t2, ο y λαμβάνει την ενημέρωση τουz και ενημερώνει τον πίνακα
απόστασης του.
Τα ελάχιστα κόστη του y δεν αλλάζουν και για αυτό ο y δεν στέλνει κανένα
μήνυμα στον z. Network Layer 4-42
Παράδειγμα (συνέχεια)1 y
4 1
Συμβολισμός: DY: ο πίνακας που διατηρεί ο κόμβος Y
x z
Προορισμός (κόμβος X)
50
σε κύκλο: η τελική επιλογή του κόμβου Y για να φτάσει στον προορισμό του
Κόστος του μονοπατιού (6) για τον Y για να φτάσει τον X μέσω του Z
neighbor
Y detects
Ο αλγόριθμος
συνεχίζει!
Ταχύτητα σύγκλισης
• LS: ένας O(n2) αλγόριθμος απαιτεί O(nE) μηνύματα
– Μπορεί να έχει διακυμάνσεις
• DV: ο χρόνο σύγκλισης ποικίλει
– Μπορεί να υπάρχουν κύκλοι στη δρομολόγηση
– Πρόβλημα μετρήματος ως το άπειρο
LS εναντίον DV αλγορίθμων
Σταθερότητα: τι συμβαίνει εάν ένας δρομολογητής δεν λειτουργεί
LS:
– Ο κόμβος μπορεί να διαφημίσει ένα λανθασμένο κόστος ζεύξης
– Κάθε κόμβος υπολογίζει μόνο τον δικό του πίνακα
DV:
– Ένας DV κόμβος μπορεί να διαφημίσει λανθασμένο κόστος μονοπατιού
– Ο πίνακας κάθε κόμβου χρησιμοποιείται και από άλλους
Το λάθος διαδίδεται στο δίκτυο
Μαρία Παπαδοπούλη
Σκοποί ενότητας
... Ερωτήσεις από τα προηγούμενα lectures ...
• Αλγόριθμοι δρομολόγησης (συνέχεια από το
προηγούμενο lecture)
• Link state
• Διάνυσμα απόστασης (Distance Vector)
• Πλημμύρα (flooding)
• Ιεραρχική δρομολόγηση (Hierarchical routing)
• Δρομολόγηση στο Internet
• RIP
• OSPF
• BGP Βασισμένο κυρίως στο Κεφ. 4 του βιβλίου των Kurose/Ross
Network Layer 4-4
Μια μικρή ανασκόπηση στους
δρομολογητές
• Το όριο μεταξύ του host και της φυσικής ζεύξης ονομάζεται
διεπαφή (interface or network interface card)
• Ένας δρομολογητής έχει πολλαπλές διεπαφές (μία για κάθε ένα από τις
ζεύξεις του)
Μία IP διεύθυνση σχετίζεται με μία διεπαφή (NIC) & όχι με ένα “host”
(that may have several NICs) ή με έναν δρομολογητή που περιέχει την
διεπαφή
IP διεύθυνση είναι καθολικά μοναδική
(ένα μέρος της αναγνωρίζει το δίκτυο)
• Δουλειά δρομολογητή: να λαμβάνει πακέτα σε μία “εισερχόμενη” ζεύξη &
να τα προωθεί σε κάποια “εξερχόμενο” ζεύξη
Network Layer 4-5
Speed of Convergence
• LS: O(n2) αλγόριθμος απαιτεί O(nE) μηνύματα
– μπορεί να έχει διακυμάνσεις
• DV: convergence time ποικίλει
– Μπορεί να υπάρξουν βρόχοι δρομολόγησης
– count-to-infinity πρόβλημα
o LS:
o ο κόμβος μπορεί να διαδίδει λάθος κόστος ζεύξεως
o Καθε κόμβος υπολογίζει το δικό του table
o DV:
o DV κόμβος μπορεί να διαδίδει λάθος κόστος μονοπατιού
o το table κάθε κόμβου χρησιμοποιείται από άλλους
o Λάθος διάδοσης μέσω δικτύου
Ιεραρχική δρομολόγηση
Η μελέτη μας για την δρομολόγηση (μέχρι τώρα) έχει απλοποιήσει
πολλά:
όλοι οι δρομολογητές ίδιοι
το δίκτυο έχει ”επίπεδη” δομή (δεν υπάρχει κάποια “ιεραρχία”)
• Τα Α, Β, C είναι δίκτυα-πάροχοι
• Τα Χ, W, Y είναι δίκτυα-πελάτες (των παρόχων)
• Το Χ είναι dual-homed: είναι συνδεδεμένο με δύο δίκτυα
• Το Χ δεν επιθυμεί τη δρομολόγηση πακέτων από το Β προς το C μέσω
του ίδιου (του Χ)…
• …οπότε δεν θα δημοσιεύσει στο Β κάποια διαδρομή προς το C
Διασυνδεμένα AS
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1 • Forwarding table είναι ρυθμισμένο
και από intra- & inter-AS
αλγόριθμους δρομολόγησης
Intra-AS Inter-AS • Intra-AS βάζει entries για
Routing
algorithm
Routing
algorithm
εσωτερικούς προορισμούς
• Inter-AS βάζει entries για
Forwarding
table εξωτερικούς προορισμούς
The inter-AS routing takes place independently from the intra-AP routing
Network Layer 4-13
Καθήκον Inter-AS
Υποθέστε έναν δρομολογητή μέσα AS1 χρειάζεται:
στο AS1 να λαμβάνει ένα πακέτο το 1. να μάθει ποιοι προορισμοί είναι
οποιο προορίζεται για προορισμο προσεγγίσιμοι μέσω AS2 & ποιοι
εκτός του AS1 μέσω AS3
• Ο δρομολογητής πρέπει να 2. Για να διαδώσει αυτή τη πληροφορία
προωθήσει το πακέτο προς
σε όλους τους δρομολογητές στο AS1
έναν από τους gateway
δρομολογητές, αλλά σε ποιον?
Δουλειά της inter-AS δρομολόγησης!
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
Network Layer 4-14
Intra-AS Δρομολόγηση
Επίσης γνωστό ως Interior Gateway Protocols (IGP)
Πιο διαδεδομένα intra-AS πρωτόκολλα δρομολόγησης:
u προορισμός hops
v
u 1
A B w v 2
w 2
x 3
x y 3
z C D z 2
y
routed routed
Transprt Transprt
(UDP) (UDP)
network forwarding forwarding network
(IP) table table (IP)
link link
physical physical
RIP advertisements
• RIP δαίμονας ανακοινώνει περιοδικά τα διανύσματα απόστασης
ζητάει από τους γείτονες του το routing table τους
• Διανύσματα απόστασης ανταλλάσσονται μεταξύ γειτόνων κάθε 30 sec
μέσω Μηνύματος Απάντησης (επίσης λέγεται advertisement)
Περιοδικά
• Κάθε 30 sec, ο δρομολογητής στέλνει αντίγραφο του table σε κάθε γείτονα
• Αυτοί το χρησιμοποιούν επαναληπτικά για να ανανεώσουν τα tables τους
Καθώς επίσης:
• Κάθε φορά που μία εγγραφή αλλάζει, στέλνει ένα αντίγραφο της εγγραφής στους
γείτονες
• Το χρησιμοποιούν οι γείτονες να ανανεώσουν τα tables τους
“Up-to-date” RIP/Έλεγχος
διακυμάνσεων
Χρονομετρητής διαδρομής
Κάθε διαδρομή έχει ένα όριο timeout (πχ 180 seconds)
• Τερματίζει όταν δεν έχει δεχτεί ενημέρωση από το επόμενο next hop
για κάποιο χρόνο
• Αν δεν ενημερωθεί, ορίζεται στο άπειρο
20
RIP: Αποτυχία ζεύξης και
αποκατάσταση
Αν κανένα advertisement δεν έχει ακουστεί μετά από κάποιο χρόνο (πχ 180 sec) η
σχετική «γραμμή» στον πίνακα δρομολόγησης με τον γείτονα αυτό «ακυρώνεται»,
και επομένως και οι διαδρομές μέσω αυτού
• καινούρια advertisements στέλνονται στους γείτονες
• Οι γείτονες στέλνουν με τη σειρά τους καινούρια advertisements αν τα
tables έχουν αλλάξει
• Η πληροφορία αποτυχίας μιας ζεύξης γρήγορα διαδίδεται σε όλο το
δίκτυο
• poison reverse χρησιμοποιείται για να αποτρέψει ping-pong
βρόχους/loops (άπειρη απόσταση = 16 hops)
RIP: Παράδειγμα
z
w x y
A D B
Routing table in D C
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Routing table in D C
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z BA 75
x -- 1
…. …. ....
Network Layer 4-23
netstat –rn
Ιεραρχικό OSPF
• Δυο επιπέδων ιεραρχία: τοπική περιοχή & backbone
advertisements κατάστασης ζεύξης μόνο τοπικά
κάθε κόμβος έχει λεπτομερή τοπολογία της τοπικής
περιοχής, μόνο ξέρει κατεύθυνση (μικρότερο μονοπάτι)
σε δίκτυα σε άλλες περιοχές
• Δρομολογητές ορίων περιοχής: “συνοψίζει” αποστάσεις προς
δίκτυα στη δικιά του περιοχή, το ανακοινώνει σε δρομολογητές
ορίων άλλων περιοχών
• Backbone δρομολογητές: τρέχουν OSPF δρομολόγηση περιορισμένη
στο backbone
• Boundary δρομολογητές: συνδέονται σε άλλα AS’s
Network Layer 4-30
Ιεραρχική Οργάνωση του Ίντερνετ
Ενισχύει την κλιμακωσιμότητα (scalability) του Internet
• Οι δρομολογητές είναι ομαδοποιημένοι σε αυτόνομα συστήματα (AS)
Μέσα στο κάθε AS, όλοι οι δρομολογητές τρέχουν το ίδιο πρωτόκολλο
δρομολόγησης
Το πρόβλημα της κλιμάκωσης λύνεται με το να έχομε τον κάθε δρομολογητή σε ένα
AS να γνωρίζει μονάχα τους δρομολογητές του AS στο οποίο ανήκει και τις gateway
δρομολογητές του.
Είδη μηνυμάτων:
• OPEN: δημιουργεί μία TCP σύνδεση με peer και αυθεντικοποιεί τον
αποστολέα
• UPDATE: δημοσιεύει νέα διαδρομή ή αποσύρει παλιά
• KEEPALIVE: διατηρεί ενεργή τη σύνδεση σε περίπτωση απουσίας UPDATES.
Επίσης, αποτελεί ACK στην αίτηση δημιουργίας σύνδεσης (OPEN message)
• NOTIFICATION: δηλώνει σφάλματα σε προηγούμενο μήνυμα. Χρησιμοποιείται,
επίσης, για τον τερματισμό της σύνδεσης.
• Τα Α, Β, C είναι δίκτυα-πάροχοι
• Τα Χ, W, Y είναι δίκτυα-πελάτες (των παρόχων)
• Το Χ είναι dual-homed: είναι συνδεδεμένο με δύο δίκτυα
• Το Χ δεν επιθυμεί τη δρομολόγηση πακέτων από το Β προς το C μέσω
του ίδιου (του Χ)…
• …οπότε δεν θα δημοσιεύσει στο Β κάποια διαδρομή προς το C
IP Addressing
Classless Interdomain Routing
• The sending host then passes the IP datagram to the link-layer for
the interface, which then has the responsibility of moving the
datagram to host B
• The sending host consults its IP forwarding table and finds an entry
whose network address matches the leading bits in the IP address of
destination
• The forwarding table indicates to the sending host that in order to
send the datagram to the destination, it should first send the
datagram to the router interface to which A’s own interface is
directly connected
Μαρία Παπαδοπούλη
Σκοποί ενότητας
• Revisiting
• layers
• encapsulation
• decapsulation
• packet
Ενθυλάκωση (encapsulation)
@ Καθε επίπεδο:
Ενθυλάκωση
Brief Review on Network layer
• transport segment from application
transport
passing through it
TCP/UDP Segment
32 bits
source port # dest port #
δεδομένα εφαρμογής
(μήνυμα)
File
Επίπεδο μεταφοράς 8
Υπενθύμιση: IP datagram format
IP protocol version
number 32 bits total datagram
header length head. type of length (bytes)
(bytes) ver length
len service for
“type” of data fragment fragmentation/
16-bit identifier flgs
offset reassembly
max number time to upper header
remaining hops live layer checksum
(decremented at
each router) 32 bit source IP address
Διόρθωση λαθών
Συγχρονισμός
Επίπεδο μεταφοράς 11
Επίπεδο μεταφοράς 12
Επίπεδο μεταφοράς vs. δικτύου
Επίπεδο δικτύου:
“επικοινωνία” μεταξύ hosts
Το IP πρωτόκολλο δεν εγγυάται αξιόπιστη μετάδοση των πακέτων και λήψη τους σύμφωνα με
τη σειρά που στάλθηκαν , ούτε ότι δεν θα υπάρξουν λάθη σε bits των πακέτων
Επίπεδο μεταφοράς:
“λογική” επικοινωνία μεταξύ διεργασιών
Βασίζεται και επεκτείνει τις υπηρεσίες επιπέδου δικτύου
Ανάλογα με το πρωτόκολλο θα «προσφέρει» κάποιου είδους «εγγυήσεις»
για τη ροή των πακέτων που στέλνονται μεταξύ δύο διεργασιών μέσω δικτύου
Επίπεδο μεταφοράς 13
network
• Εγκαθίδρυση σύνδεσης data link
physical
application
Προσοχή: Το διαδίκτυο ΔΕΝ δίνει εγγυήσεις transport
network
καθυστέρησης ή bandwidth data link
physical
Επίπεδο μεταφοράς 14
Πολυπλεξία/αποπολυπλεξία
(multiplexing/demultiplexing)
Αποπολυπλεξία στο λαμβάνοντα host: Πολυπλεξία στον αποστέλλοντα host:
Μεταφέροντας τα segments που έχουν Μαζεύοντας δεδομένα από πολλαπλά
ληφθεί στο σωστό socket sockets, προσθέτοντας επικεφαλίδα
(που αργότερα χρησιμοποιείται για
demultiplexing)
= socket = process
application P3 P1
P1 application P2 P4 application
host 2 host 3
host 1
Επίπεδο μεταφοράς 15
Επίπεδο μεταφοράς 17
P2 P3 P1
P1
Επίπεδο μεταφοράς 18
Αποπολυπλεξία με σύνδεση
(Connection-oriented demultiplexing )
Το TCP socket χαρακτηρίζεται από τα παρακάτω 4 πεδία:
• source IP address
• source port number
• dest IP address
• dest port number
Ο παραλήπτης χρησιμοποιεί και τα 4 πεδία για να προωθήσει το
segment στο κατάλληλο socket
Ένας server host μπορεί να υποστηρίξει πολλαπλά TCP sockets ταυτόχρονα:
κάθε socket χαρακτηρίζεται από μια μοναδική τετράδα πεδίων
• Web servers έχουν διαφορετικά sockets για κάθε client που συνδέεται
Μάλιστα οι non-persistent HTTP έχουν διαφορετικά sockets για κάθε αίτημα
Επίπεδο μεταφοράς 19
Αποπολυπλεξία με σύνδεση
(συνέχεια)
P1 P4 P5 P6 P2 P1P3
SP: 5775
DP: 80
S-IP: B
D-IP:C
Επίπεδο μεταφοράς 20
Αποπολυπλεξία με σύνδεση:
Threaded Web Server
P1 P4 P2 P1P3
SP: 5775
DP: 80
S-IP: B
D-IP:C
Επίπεδο μεταφοράς 21
Επίπεδο μεταφοράς 22
Περισσότερες πληροφορίες για το
UDP
Συχνά χρησιμοποιείται για πολυμεσικές εφαρμογές συνεχούς ροής
(streaming multimedia apps)
• Ανοχή σε απώλειες
32 bits
• Ευαισθησία στο ρυθμό μήκος, σε bytes του
UDP segment, μαζί με source port # dest port #
την επικεφαλίδα length checksum
Επίπεδο μεταφοράς 24
UDP checksum
Στόχος: ανίχνευση λαθών (π.χ. ανεστραμμένα bits) στο μεταδιδόμενο segment
Αίτια λαθών: θόρυβος και παρεμβολές στη σύνδεση (δηλαδή χαμηλό SNR) ή πρόβλημα στο δρομολογητή
Αφού τα χαμηλότερα επίπεδα έχουν ανίχνευση λαθών γιατί γίνεται από το UDP?
Δεν υπάρχει εγγύηση ότι όλες οι συνδέσεις (links) μεταξύ αποστολέα & παραλήπτη
χρησιμοποιούν πρωτόκολλο ανίχνευσης λάθους
Αποστολέας: Παραλήπτης:
• Χειρίζεται τα περιεχόμενα του • Υπολογίζει το checksum του λαμβανόμενου
segment ως ακολουθία ακεραίων segment
• 16-bit • Ελέγχει εάν η υπολογισθείσα τιμή του checksum
• checksum: ισούται με την τιμή στο πεδίο checksum:
• συμπλήρωμα ως προς 1 του o NO – ανίχνευση λάθους
αθροίσματος των περιεχομένων του o YES – καμία ανίχνευση σφάλματος
segment Aλλά μήπως υπάρχουν λάθη παρά
• Βάζει την τιμή του checksum στο
όλα αυτά;
πεδίο checksum του UDP Επίπεδο μεταφοράς 25
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
wraparound 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
sum 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
Επίπεδο μεταφοράς 26
Αρχές αξιόπιστης μεταφοράς
δεδομένων
Σημαντικό στα επίπεδα εφαρμογής, μεταφοράς και ζεύξης
Συμφόρηση (congestion)
10 Mbps bottleneck link
1.5 Mbps
100 Mbps
Οι χρήστες παράγουν φόρτο κίνησης και ανταγωνίζονται για τους πόρους του δικτύου,
αλλά
• δεν έχουν γνώση των πόρων του δικτύου (state of resource)
• δεν ξέρουν την ύπαρξη ο ένας του άλλου
Με αποτέλεσμα:
• Πακέτα να χάνονται (λόγω buffer overflow στους δρομολογητές)
• Μεγάλες καθυστερήσεις (αναμονή στις ουρές των buffers στους δρομολογητές)
• throughput μικρότερο από το bottleneck link (1.5Mbps για την
• παραπάνω τοπολογία) κατάρρευση λόγω συμφόρησης
Επίπεδο μεταφοράς 28
Κατάρρευση λόγω συμφόρησης
(Congestion Collapse)
Ορισμός: Αύξηση στο φόρτο δικτύου οδηγεί σε μείωση της χρήσιμης
δουλειάς που γίνεται (transmission of data)
• Πολλές πιθανές αιτίες
o επαναμεταδόσεις πακέτων βρίσκονται ακόμα σε εξέλιξη
• “κατάρρευση” λόγω συμφόρησης
• Πώς μπορεί να συμβεί αυτό με τη διατήρηση των πακέτων?
Λύση: καλύτεροι timers και TCP έλεγχος συμφόρησης
o Μη παραδοθέντα πακέτα
• Τα πακέτα καταναλώνουν πόρους και γίνονται drop κάπου αλλού
στο δίκτυο
Λύση: έλεγχος συμφόρησης για ΌΛΗ την κίνηση
Επίπεδο μεταφοράς 29
In ATM, the router can inform the sender explicitly of the transmission rate, this
router can support on an outgoing link
Στο σημερινό Διαδίκτυο ακολουθείται η end-to-end congestion.
Γενικές Προσεγγίσεις Ελέγχου
Συμφόρησης
1. End-end congestion control:
Η συσκευή του χρήστη (end system) δεν παίρνει άμεσο feedback (πληροφορία)
από το δίκτυο
Προβλέπει/συμπεραίνει την συμφόρηση από τις διάφορες μετρήσεις που κάνει
η συσκευή του χρήστη (end-system) από τις καθυστερήσεις ή τις απώλειες
πακέτων
Approach taken by TCP
Αυτό χρησιμοποιείται τώρα στο Διαδίκτυο
ACKs:
• seq # of next byte
που αναμένεται από την άλλη πλευρά
• Υπάρχουν και τα cumulative ACK
Επίπεδο μεταφοράς 38
Δομή TCP segment
URG: επείγοντa
δεδομένα 32 bits
(γενικά δεν source port # dest port # Μέτρηση με βάση
χρησιμοποιείται) τα bytes των
sequence number δεδομένων
ACK: ACK #
έγγυρο acknowledgement number (όχι τα segments!)
head not
PSH: σπρώξε data τώρα UAP R S F
len used
Receive window
# bytes
(γενικά δεν checksum Urg data pnter που ο παραλήπτης
χρησιμοποιείται)
RST, SYN, FIN: διατίθεται να
Επιλογές(variable length) παραλάβει
Εγκατάσταση σύνδεσης
(εντολές εγκατάστασης,
τερματισμού)
Δεδομένα εφαρμογής
Internet (μεταβλητό μήκος)
checksum
(όπως στο UDP)
Επίπεδο μεταφοράς 39
ACKs:
• seq # του επόμενου byte που αναμένεται από την άλλη πλευρά
• συσσωρευτικό (cumulative) ACK
Επίπεδο μεταφοράς 42
TCP seq. #’s and ACKs (2/2)
Q: Πώς διαχειρίζεται ο παραλήπτης segments που φτάνουν με λάθος
σειρά
Επίπεδο μεταφοράς 43
Επίπεδο μεταφοράς 44
Εγκαθίδρυση σύνδεσης: χειραψία σε 3
βήματα
• Κάθε πλευρά ειδοποιεί την άλλη για τον
αρχικό αριθμό σειράς (seq #) που θα
SYN: SeqC
χρησιμοποιήσει για την αποστολή
Γιατί να μην επιλέξουμε απλά το 0;
• Πρέπει να αποφύγει την ACK: SeqC+1
επικάλυψη με προηγούμενο SYN: SeqS
πακέτο
• Θέματα ασφάλειας ACK: SeqS+1
• Κάθε πλευρά επιβεβαιώνει τον αριθμό
σειράς της άλλης
SYN-ACK: αριθμός σειράς επιβεβαίωσης + 1
• Μπορεί να συνδυάσει το δεύτερο SYN με Client Server
το πρώτο ACK
Επίπεδο μεταφοράς 45
Επίπεδο μεταφοράς 46
Διαχείριση TCP σύνδεσης
(συνέχεια)
Κλείσιμο μίας σύνδεσης: client server
timed wait
closed
Επίπεδο μεταφοράς 47
closed
Επίπεδο μεταφοράς 48
Διαχείριση TCP
σύνδεσης(συνέχεια)
Κύκλος ζωής
TCP server
Κύκλος ζωής
TCP client
Επίπεδο μεταφοράς 49
Επίπεδο μεταφοράς 50
Παράδειγμα εγκαθίδρυσης TCP
σύνδεσης 2
Client SYN
– SeqC: Seq. #4019802004, window 65535, max. seg. 1260
Server SYN-ACK+SYN
– λαμβάνει: #4019802005 (= SeqC+1)
– SeqS: Seq. #3428951569, window 5840, max. seg. 1460
Client SYN-ACK
– λαμβάνει: #3428951570 (= SeqS+1)
Επίπεδο μεταφοράς 51
Διάγραμμα κατάστασηςTCP:
εγκαθίδρυσης σύνδεσης
Client
CLOSED active OPEN
Server create TCB
passive OPEN CLOSE Snd SYN
create TCB delete TCB
LISTEN CLOSE
delete TCB
rcv SYN SEND
snd SYN ACK snd SYN
SYN rcv SYN SYN
RCVD snd ACK SENT
rcv ACK of SYN Rcv SYN, ACK
Snd ACK
CLOSE
Send FIN ESTAB
Επίπεδο μεταφοράς 52
Κλείσιμο σύνδεσης
• Οποιαδήποτε πλευρά μπορεί να
ξεκινήσει το κλείσιμο της σύνδεσης A B
Στέλνει FIN FIN, SeqA
“Δε θα στείλω άλλα δεδομένα”
ACK, SeqA+1
• Η άλλη πλευρά μπορεί να συνεχίσει να
Data
στέλνει δεδομένα
ACK
«Ημι-ανοιχτή» σύνδεση
Πρέπει να συνεχίσει να επιβεβαιώνει
FIN, SeqB
• Επιβεβαίωση του FIN ACK, SeqB+1
Επιβεβαίωση με sequence number + 1
Επίπεδο μεταφοράς 53
Επίπεδο μεταφοράς 54
Παράδειγμα κλεισίματος TCP
σύνδεσης 2
Session
Echo client on 128.2.222.198, server on 128.2.210.194
Client FIN
SeqC: 1489294581
Server ACK + FIN
• Ack: 1489294582 (= SeqC+1)
• SeqS: 1909787689
Client ACK
Ack: 1909787690 (= SeqS+1)
Επίπεδο μεταφοράς 55
Διάγραμμα κατάστασης:Κλείσιμο
σύνδεσης
CLOSE
Active CloseESTAB
send FIN
CLOSE rcv FIN Passive Close
send FIN send ACK
FIN CLOSE
WAIT-1 WAIT
rcv FIN
ACK snd ACK CLOSE
rcv FIN+ACK snd FIN
FIN WAIT-2 snd ACK CLOSING LAST-ACK
Επίπεδο μεταφοράς 56
TCP Timeout
• Μηχανισμός που καθορίζει πόσο να περιμένει ο αποστολέας μέχρι
να ξαναστείλει το πακέτο
• Ο timer (εάν ήδη δεν “τρέχει” για κάποιο άλλο segment) ξεκινά όταν
το segment “παραδίδεται” στο IP επίπεδο
• Όταν ο timer λήξει, το segment ξαναστέλνεται και το TCP ξεκινά ξανά
τον timer
Επίπεδο μεταφοράς 57
Επίπεδο μεταφοράς 58
Έλεγχος ροής με παράθυρο
Aποστέλλουσα πλευρά
window
Επίπεδο μεταφοράς 59
Μηχανισμός γρήγορης
επαναποστολής
To TCP χρησιμοποιεί τα sequence numbers για να βρει ποια πακέτα
έχουν χαθεί
Επίπεδο μεταφοράς 60
Έλεγχος ροής με παράθυρο:
αποστέλουσσα πλευρά
Packet Sent Packet Received
Source Port Dest. Port Source Port Dest. Port
Sequence Number Sequence Number
Acknowledgment Acknowledgment
HL/Flags Window HL/Flags Window
D. Checksum Urgent Pointer D. Checksum Urgent Pointer
Options… Options...
App write
Buffer παραλήπτη
window
Επίπεδο μεταφοράς 62
TCP Round Trip Time και
Timeout
Q: πώς να θέσουμε την τιμή του TCP timeout?
Θα πρέπει να είναι μεγαλύτερο από το round-trip-time (RTT)
ναι, αλλά το RTT ποικίλλει!
Αν είναι πολύ μικρό … πρόωρο timeout, που δημιουργεί
επαναποστολές που δεν είναι απαραίτητες!
Πολύ μεγάλο? αργή και μικρή αντίδραση στην απώλεια segment !!!
Q: πώς να υπολογίσουμε το RTT?
SampleRTT: ο χρόνος που μετρήθηκε από την αποστολή του segment ως
την παραλαβή του ACK
Αγνοεί segments που έχουν φτάσει με επαναποστολές
SampleRTT θα ποικίλλει, θέλουμε “ομαλότερο” το υπολογισμένο RTT
Βρίσκουμε το μέσο όρο από τις πρόσφατες μετρήσεις
όχι μόνο το τωρινό SampleRTT
Επίπεδο μεταφοράς 63
Επίπεδο μεταφοράς 64
TCP Round Trip Time και
Timeout
Θέτοντας το timeout
• EstimtedRTT συν “περιθώριο ασφαλείας”
• Μεγάλη μεταβλητότητα στο EstimatedRTT -> μεγαλύτερο περιθώριο ασφαλείας
• Πρώτα υπολογίζεται η τυπική απόκλιση του SampleRTT από το EstimatedRTT:
DevRTT = ( 1 - )* DevRTT +
* | SampleRTT – EstimatedRTT |
(τυπικά, = 0.25)
Επίπεδο μεταφοράς 65
timeout:
• retransmit segment that caused timeout
• restart timer
350
300
250
RTT (milliseconds)
200
150
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
Seq=92 timeout
timeout
X
loss
Sendbase
= 100
SendBase
Seq=92 timeout
= 120
SendBase
SendBase
= 100
= 120 premature timeout
time time
lost ACK scenario
Transport Layer
X
loss
SendBase
= 120
time
Cumulative ACK scenario
Transport Layer
TCP congestion control: control of
sending rate
Sender:
• Reduces the sending rate via reducing the congestion window, when
a loss event occurs
• Increase the sending rate, when congestion is reduced
1. Slow start
2. Reaction to timeout events
time
8 Kbytes
time
Saw tooth time
time
Transport Layer
TCP Slow Start (3/3)
When connection begins, increase Host A Host B
rate exponentially until first loss
event:
RTT
double CongWin every RTT
Fast Retransmit
• time-out period often relatively long:
long delay before resending lost packet
• detect lost segments via duplicate ACKs
sender often sends many segments back-to-back
if segment is lost, there will likely be many duplicate ACKs
if sender receives 3 ACKs for the same data, it supposes that segment
after ACKed data was lost:
fast retransmit: resend segment before timer expires
TCP Reno supports Fast Retransmit while TCP Tahoe does not.
Προσοχή: διαφορετικές περιπτώσεις
απώλειας πακέτου
Διαφορετική αντίδραση αν έχουμε timeout και διαφορετική αν έχουμε 3
DUPACKs !!!!
Δικαιολόγηση:
Philosophy:
cwnd
roughly, rate = Bytes/sec
RTT
Host A Host B
X
timeout
time
Chapter 3 outline
3.1 Transport-layer services • 3.5 Connection-oriented
3.2 Multiplexing and transport: TCP
demultiplexing – segment structure
– reliable data transfer
3.3 Connectionless transport:
– flow control
UDP
– connection management
3.6 Principles of congestion
control
3.7 TCP congestion control
TCP Flow Control
• TCP is a sliding window protocol
– For window size n, can send up to n bytes without
receiving an acknowledgement
– When the data is acknowledged then the window slides
forward
• Each packet advertises a window size
– Indicates number of bytes the receiver has space for
• Original TCP always sent entire window
– Congestion control now limits this
Transport Layer 4-93
window
Sent and acked Sent but not acked Not yet sent
Next to be sent
Transport Layer
Window Flow Control: Receive Side
New
Receive buffer
window
Transport Layer
Sender:
• Reduces the sending rate via reducing the congestion window, when
a loss event occurs
• Increase the sending rate, when congestion is reduced
Μαρία Παπαδοπούλη
Σκοποί ενότητας
• κατανόηση των θεμελιωδών αρχών του TCP:
– Αξιόπιστη μεταφορά δεδομένων
– Έλεγχος ροής
– Έλεγχος συμφόρησης
Διαδικτυακά πρωτόκολλα επιπέδου
μεταφοράς
Αναξιόπιστη, χωρίς εγγύηση στη σειρά
παράδοσης των πακέτων: UDP
Δε βελτιώνει τον “best-effort” χαρακτήρα του IP.
Αξιόπιστη, με εγγύηση στη σειρά application
transport
network
παράδοσης των πακέτων: TCP data link
physical
network
data link
Έλεγχος συμφόρησης network
data link
physical
physical
Έλεγχος ροής network
data link
Εγκαθίδρυση σύνδεσης physical network
data link
Μη διαθέσιμες υπηρεσίες :
physical
network
Εγγυήσεις καθυστέρησης data link
physical
Εγγυήσεις bandwidth
application
transport
network
data link
physical
TCP 5
TCP
Το TCP socket χαρακτηρίζεται από 4 πεδία:
– source IP address
– source port number
– dest IP address
– dest port number
Ο παραλήπτης χρησιμοποιεί και τα 4 πεδία για να προωθήσει το
segment στο κατάλληλο socket
• Ένας server host μπορεί να υποστηρίξει πολλαπλά ταυτόχρονα
(“παράλληλα στον χρόνο”) TCP sockets:
κάθε socket χαρακτηρίζεται από τη δική του 4-άδα
• Οι Web servers έχουν διαφορετικά sockets για κάθε client που συνδέεται
– non-persistent HTTP έχουν διαφορετικά sockets για κάθε αίτημα
TCP 6
Συμφόρηση (congestion)
10 Mbps bottleneck link
1.5 Mbps
100 Mbps
TCP 7
TCP 8
TCP: Επισκόπηση RFCs: 793, 1122, 1323, 2018, 2581
σημείο-προς-σημείο:
Πλήρως αμφίδρομα δεδομένα:
Ένας αποστολέας, ένας παραλήπτης
(σε αντίθεση με το multicasting) Ροή δεδομένων και προς τις δύο
κατευθύνσεις στην ίδια σύνδεση
αξιόπιστο, σε σειρά ροή των byte:
MSS: maximum segment size
Η εφαρμογή από επάνω θα “παραλάβει” τα
πακέτα στη σωστή σειρά (μέγιστο μέγεθος του segment)
pipelined: συνδεσιστρεφές:
Ο TCP έλεγχος συμφόρησης & ροής θέτουν χειραψία (ανταλλαγή μηνυμάτων
το μέγεθος παραθύρου ελέγχου) αρχικοποιούν την κατάσταση
Πολλά πακέτα μπορούν να έχουν σταλθεί του αποστολέα και του παραλήπτη πριν
παράλληλα και να μην έχουν γίνει ACKed την ανταλλαγή δεδομένων
Buffers αποστολής & παραλαβής
Ελεγχόμενη ροή:
Ο αποστολέας δεν θα «κατακλύσει» τον
application application παραλήπτη
writes data reads data
socket socket
door door
TCP TCP
send buffer receive buffer
segment
TCP 9
TCP 10
Sequence Number Space
Το TCP βλέπει τα δεδομένα σαν μια ροή δεδομένων, σειρά από bytes
Ο αποστολέας στέλνει τα πακέτα σύμφωνα με τη σειρά αυτή
Ο παραλήπτης θα προσπαθήσει να την “ξαναδημιουργήσει”
TCP 12
Εγκαθίδρυση σύνδεσης: χειραψία σε
3 βήματα
Κάθε πλευρά ειδοποιεί την άλλη για τον
αρχικό αριθμό σειράς (seq #) που θα SYN: SeqC
χρησιμοποιήσει για την αποστολή
Γιατί να μην επιλέξουμε απλά το 0;
• Πρέπει να αποφύγει την επικάλυψη με
προηγούμενο πακέτο ACK: SeqC+1
• Θέματα ασφάλειας SYN: SeqS
Κάθε πλευρά επιβεβαιώνει τον αριθμό
σειράς της άλλης
ACK: SeqS+1
SYN-ACK: αριθμός σειράς επιβεβαίωσης +
1
Μπορεί να συνδυάσει το δεύτερο SYN με
το πρώτοACK
Client Server
TCP 13
TCP 14
Διαχείριση TCP
σύνδεσης(συνέχεια)
Κλείσιμο μίας σύνδεσης: client server
timed wait
closed
TCP 15
Διαχείριση TCP
σύνδεσης(συνέχεια)
Βήμα 3: ο client λαμβάνει το FIN, απαντάει client server
με ACK
closing
Μπαίνει σε χρονισμένη αναμονή -
θα απαντήσει με ACK στα FINs που
λαμβάνει
closing
Βήμα 4: ο server, λαμβάνει το ACK. Η
σύνδεση έκλεισε.
Σημείωση: με μικρές μετατροπές, μπορεί
timed wait
closed
TCP 16
Κλείσιμο σύνδεσης
Οποιαδήποτε πλευρά μπορεί να
ξεκινήσει το κλείσιμο της σύνδεσης A B
Στέλνει FIN σήμα FIN, SeqA
“Δε θα στείλω άλλα δεδομένα”
Η άλλη πλευρά μπορεί να συνεχίσει να ACK, SeqA+1
στέλνει δεδομένα Data
«Ημι-ανοιχτή» σύνδεση ACK
Πρέπει να συνεχίσει να επιβεβαιώνει
Επιβεβαίωση του FIN
FIN, SeqB
Επιβεβαίωση με sequence number + 1
ACK, SeqB+1
TCP 17
TCP 18
Έλεγχος ροής του TCP
Το TCP είναι ένα πρωτόκολλο κυλιόμενου παραθύρου (sliding window )
Για μέγεθος παραθύρου n, μπορεί να στείλει έως και n bytes χωρίς να λάβει
επιβεβαίωση
Όταν τα δεδομένα επιβεβαιωθούν τότε το παράθυρο μετακινείται προς τα
μπρος
Κάθε πακέτο δημοσιεύει ένα μέγεθος παραθύρου
Προσδιορίζει τον αριθμό των bytes για τα οποία έχει χώρο
Το οriginal TCP στέλνει πάντα ολόκληρο το παράθυρο
Ο έλεγχος συμφόρησης τώρα το περιορίζει αυτό
TCP 19
window
TCP 20
Έλεγχος ροής με παράθυρο:
αποστέλουσσα πλευρά
Packet Sent Packet Received
Source Port Dest. Port Source Port Dest. Port
Sequence Number Sequence Number
Acknowledgment Acknowledgment
HL/Flags Window HL/Flags Window
D. Checksum Urgent Pointer D. Checksum Urgent Pointer
Options… Options...
App write
New
Buffer παραλήπτη
window
TCP 22
Ερωτήσεις για τον έλεγχο ροής
• What happens if window is 0?
Receiver updates window when application reads data
– What if this update is lost?
• TCP Persist state
Sender periodically sends 1 byte packets
– Receiver responds with ACK even if it can’t store the
packet
– Σε κάποια στιγμή το Receive Window του Receiver θα
είναι ≠0, θα φανεί στο ACK και ο Sender θα ξέρει ότι
μπορεί να στείλει δεδομένα
TCP 23
Performance Considerations
• The window size can be controlled by receiving application
– Can change the socket buffer size from a default (e.g. 8Kbytes) to a
maximum value (e.g. 64 Kbytes)
• The window size field in the TCP header limits the window that the receiver
can advertise
TCP 24
TCP seq. #’s and ACKs
Seq. #’s:
byte stream “number” of first byte in segment’s data
ACKs:
– seq # of next byte expected from other side
– cumulative ACK
TCP 27
TCP 28
Example RTT estimation:
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
350
300
250
RTT (milliseconds)
200
150
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
TCP 29
DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
(typically, = 0.25)
TCP 30
TCP reliable data transfer
• TCP creates rdt service on top of Retransmissions are triggered by:
IP’s unreliable service timeout events
• Pipelined segments duplicate acks
• Cumulative acks Initially consider simplified TCP sender:
• TCP uses single retransmission ignore duplicate acks
timer ignore flow control, congestion control
TCP 31
Υπάρχει μονάχα ένας timer για το κάθε TCP flow στο host
• expiration interval: TimeOutInterval
Timer expired: Timeout event:
• Ξαναστέλνει το segment not-yet-acked-with-the-smallest-sequence-number
• Ξανα-αρχινά το timer
Ack received:
• Εάν acknowledges παλιότερα unacked segments
– Ενημέρωσε τους buffers/παραμέτρους για το τι ειναι γνωστό να έχει γίνει acked
– Αρχισε το timer εάν υπάρχουν outstanding segments
TCP 32
NextSeqNum = InitialSeqNum
SendBase = InitialSeqNum
X
loss
Sendbase
= 100
Seq=92 timeout
SendBase
= 120
SendBase
= 100 SendBase
= 120
time time
lost ACK scenario premature timeout scenario
TCP 34
TCP retransmission scenarios
(more)
Host A Host B
timeout
X
loss
SendBase
= 120 Host A does not resend
either of the two segments
time
Cumulative ACK scenario
TCP 35
TCP 36
Να θυμάστε
• TCP acks είναι cumulative !
Ενα segment που έχει ληφθεί σωστά αλλά σε λάθος σειρά δεν γίνεται
ACKed από τον παραλήπτη
• TCP sender διατηρεί μονάχα την πληροφορία:
– segment # με τον μικρότερο αριθμό που έχει στείλει αλλά δεν έχει γίνει
ACKed ακόμη (sendBase), καθώς και
– sequence # του επόμενου byte που θα πρέπει να σταλεί (NextSeqNum)
TCP 37
Fast Retransmit
Time-out period often relatively long:
– long delay before resending lost packet
If sender receives 3 ACKs for the same data, it supposes that segment
after ACKed data was lost:
TCP 40
Fast retransmit algorithm:
event: ACK received, with ACK field value of y
if (y > SendBase) {
SendBase = y
if (there are currently not-yet-acknowledged segments)
start timer
}
else {
increment count of dup ACKs received for y
if (count of dup ACKs received for y = 3) {
resend segment with sequence number y
}
TCP 41
Chapter 3 outline
• 3.1 Transport-layer services • 3.5 Connection-oriented
• 3.2 Multiplexing and transport: TCP
demultiplexing – segment structure
– reliable data transfer
• 3.3 Connectionless
– flow control
transport: UDP
– connection management
• 3.4 Principles of reliable
data transfer • 3.6 Principles of congestion
control
• 3.7 TCP congestion control
TCP 42
TCP Flow control (1/3)
• Receiver advertises spare room (ReceiveWindow in segments)
• Sender limits unACKed data to Receive Window
– guarantees receive buffer doesn’t overflow
TCP 43
TCP 44
TCP Flow control (3/3)
• Receiver advertises spare room by
including value of Receive
Window in segments
• Sender limits unACKed data to
Receive Window
– guarantees receive buffer
doesn’t overflow
How the sender will be informed when there is empty space at the
receiver buffer?
• TCP requires the sender to keep sending messages of 1Byte when the
receiver’s RcvWindow=0
• These segments will be ACKed and eventually they will contain nonzero
RcvWindow value! TCP 46
Βασικά για τον Ελεγχο
Συμφόρησης
Συμφόρηση:
• informally: “too many sources sending too much data too fast
for network to handle”
Causes/costs of congestion:
scenario 1 Host A
lin : original data lout
• 2 senders, 2 receivers
• 1 router με buffer απείρου
μεγέθους Host B unlimited shared
output link buffers
• no retransmission
Per-connection throughput:
Number of bytes/second @ receiver
Αλλά αυτό είναι πρόβλημα!
• large queuing delays
when congested!!!!
Πολύ ωραία! • maximum achievable
μέγιστο throughput throughput!!!
TCP 48
Connection sending rate
Causes/costs of congestion:
scenario 2
• 1 router, με περιορισμένου μεγέθους buffer
• sender retransmission of lost packet
TCP 49
Causes/costs of congestion:
scenario 2
lout
lout
R/4
Host A lout
lin : original data
l'in : original data, plus
retransmitted data
Host B
TCP 51
Causes/costs of congestion:
scenario 3 H l
o
o
s
u
t
A t
H
o
s
t
B
Chapter 3 outline
• 3.1 Transport-layer services • 3.5 Connection-oriented
• 3.2 Multiplexing and demultiplexing transport: TCP
• 3.3 Connectionless transport: UDP – segment structure
– reliable data transfer
• 3.4 Principles of reliable data transfer
– flow control
– connection management
• 3.6 Principles of congestion
control
• 3.7 TCP congestion control
TCP 54
TCP congestion control:έλεγχος στο sending rate
Ο αποστολέας:
• Μειώνει το sending rate με το να ελαττώνει το congestion window
όταν ένα loss event εμφανίζεται
• Και αυξάνει το sending rate, όταν η συμφόρηση μειώνεται
1. Slow start
2. Reaction to timeout events
time
TCP 56
TCP congestion control: additive increase,
multiplicative decrease (AIMD)
Λέγεται και congestion avoidance
24 Kbytes
Με την γραμμική αύξηση
“διστακτικά” ελέγχει κατα πόσο
η συμφόρηση έχει ελαττωθεί 16 Kbytes
8 Kbytes
time
time
Saw tooth
TCP
behavior: probing for bandwidth 57
TCP 59
AIMD: παρατηρήσεις
Γιατί έχομε γραμμική αύξηση και όχι εκθετική αύξηση?
• Ο sender είναι πρόθυμος να μειώσει το μέγεθος του παραθύρου
συμφόρησης με αρκετά μεγαλύτερο ρυθμό απ’ ότι είναι πρόθυμος να το
αυξήσει
• Έχει αποδειχτεί ότι η μέθοδο AIMD αποτελεί απαραίτητη συνθήκη έτσι
ώστε οι μηχανισμοί ελέγχου συμφόρησης να είναι σταθεροί.
• Ένας διαισθητικός λόγος για την επιθετική μείωση και τη συντηρητική
αύξηση του μεγέθους του παραθύρου είναι ότι οι συνέπειες ενός
παραθύρου με μεγάλο μέγεθος είναι πολύ χειρότερες από τις αντίστοιχες
ενός παραθύρου με μικρό μέγεθος.
• πχ, όταν το μέγεθος του παραθύρου είναι πολύ μεγάλο, τα πακέτα που
απορρίπτονται θα αναμεταδοθούν προκαλώντας ακόμα χειρότερη
συμφόρηση.
TCP
Επομένως η έξοδος από αυτή την κατάσταση έχει ιδιαίτερη σημασία. 60
TCP Congestion Control:
παρατηρήσεις
• sender limits transmission: How does sender perceive congestion?
LastByteSent-LastByteAcked • loss event = timeout or 3 duplicate acks
CongWin • TCP sender reduces rate (Congestion
Window) after loss event
(ignoring flow control here)
• Roughly:
CongWin
rate = Bytes/sec
RTT three mechanisms:
• Congestion Window is dynamic, – AIMD
function of perceived network congestion – slow start
– conservative after timeout events
TCP 64
Refinement: inferring loss
Διαφοροποιείται η αντίδραση εάν είναι timeout ή 3 όμοια ACKs
Philosophy:
TCP 65
Αντίδραση σε γεγονότα
συμφόρησης
Διαφοροποιείται η αντίδραση εάν είναι timeout ή 3-όμοια-ACKs
• Εάν είναι 3-όμοια-ACKs:
– Congestion window διαιρείται δια 2 και μετά αυξάνεται γραμμικά
• Εάν όμως συμβεί timeout:
– CongWin=Threshold
• When timeout occurs:
– Threshold=CongWin/2
– CongWin= 1 MSS
TCP 67
Δίκτυα Υπολογιστών
Μαρία Παπαδοπούλη
Σκοποί ενότητας
• Δημιουργία μιας δικτυακής εφαρμογής
application
application transport
transport network
network data link
data link physical
physical
Επίπεδο εφαρμογής 5
Γενικές αρχιτεκτονικές
εφαρμογών
• Πελάτη-εξυπηρετητή (client-server)
• Διομότιμο σύστημα (peer-to-peer P2P)
• Υβριδικό του πελάτη-εξυπηρετητή και του
διομότιμου συτήματος
Επίπεδο εφαρμογής 6
Client-server αρχιτεκτονική
server:
• Συνεχής διαθεσιμότητα (always-on host)
• Μόνιμη IP διεύθυνση
• Ομάδα από servers (server farms) για κλιμάκωση
(scaling)
• clients:
• Επικοινωνούν με τον server
• Πιθανότατα χωρίς συνεχή σύνδεση
• Πιθανότατα με δυναμικές IP addresses (που
λαμβάνουν από έναν DCHP server)
• Δεν επικοινωνούν άμεσα ο ένας client με τον
άλλον
Επίπεδο εφαρμογής 7
Καθαρή P2P αρχιτεκτονική
• Δεν υπάρχει server που να είναι συνεχώς διαθέσιμος
• Τερματικά συστήματα επικοινωνούν το ένα με το άλλο
• Οι peers έχουν διακοπτόμενη σύνδεση στο Ιντερνετ και οι IP διευθύνσεις
τους μπορεί να αλλάζουν
• Παράδειγμα: Gnutella
Επίπεδο εφαρμογής 8
Επίπεδο εφαρμογής 9
Διεργασίες που επικοινωνούν
Διεργασία: πρόγραμμα που τρέχει σε ένα host
Στον ίδιο host:
Διεργασία client:
δύο διεργασίες επικοινωνούν μεταξύ τους η διεργασία που ξεκινάει
με διαδεργασιακή επικοινωνία (inter- την επικοινωνία
process communication) (ορίζεται στο OS) Διεργασία server :
η διεργασία που περιμένει
για επικοινωνία
Διεργασίες σε διαφορετικούς hosts
επικοινωνούν με την ανταλλαγή μηνυμάτων
Επίπεδο εφαρμογής 10
Επίπεδο εφαρμογής 11
Υπενθύμιση: Sockets
Το socket είναι η διεπαφή μεταξύ του επιπέδου εφαρμογής & επιπέδου μεταφοράς
μέσα σε μία συσκευή καθώς επίσης μεταξύ της εφαρμογής & δικτύου
Διεργασίες στέλνουν/λαμβάνουν
μηνύματα προς/από socket
Socket μοιάζει με μια “θύρα” host ή host ή
• Η αποστέλουσσα διεργασία server server
στέλνει το μήνυμα έξω από την
“θύρα” Ελέγχεται από το
σχεδιαστή της
• Η αποστέλλουσα διεργασία διεργασία εφαρμογής διεργασία
υποθέτει υποδομή μεταφοράς socket socket
πίσω από την “θύρα” που φέρνει TCP με
TCP με
το μήνυμα στο socket της buffers, Internet buffers,
λαμβάνουσας διεργασίας μεταβλητές μεταβλητές
Διευθυνσιοδότηση διεργασιών
Για να λάβει μηνύματα η διεργασία O identifier
περιέχει IP διεύθυνση &
πρέπει να έχει έναν identifier
αριθμούς θυρών (port numbers) της
Ο host έχει μία μοναδική 32-bit IP διεργασίας στο host
διεύθυνση
Παραδείγματα αριθμών θυρών:
• HTTP server: 80
Αρκεί η IP διεύθυνση του host στον • Mail server: 25
οποίο τρέχει η διεργασία για τον
προσδιοριμσό της διεργασίας;
Aπάντηση: ΌΧΙ, πολλές διεργασίες Για να στείλουμε ένα HTTP μήνυμα στον
μπορεί να τρέχουν στον ίδιο gaia.cs.umass.edu web server:
host • IP διεύθυνση: 128.119.245.12
• Αριθμός θύρας: 80
Επίπεδο εφαρμογής 13
Πρωτόκολλα επιπέδου
εφαρμογής
• Τύποι μηνυμάτων που ανταλλάσσονται Πρωτόκολλα/standards:
π.χ., αίτηση, απάντηση • Περιγράφονται σε RFCs
• Σύνταξη μηνύματος: • Απαιτείται
Τι πεδία υπάρχουν στο μήνυμα και πως διαλειτουργικότητα
αυτά διαχωρίζονται
• π.χ., HTTP, SMTP
• Σημασιολογία μηνύματος
Σημασία της πληροφορίας στα πεδία
• Κανόνες για το πότε και πώς οι
διεργασίες στέλνουν & απαντούν σε
μηνύματα
Επίπεδο εφαρμογής 14
Χρονισμός
Κάποιες εφαρμογές (π.χ., διαδικτυακή τηλεφωνία, διαδραστικά παιχνίδια)
απαιτούν χαμηλή καθυστέρηση για να είναι αποτελεσματικές
Επίπεδο εφαρμογής 15
Απαιτήσεις υπηρεσίας μεταφοράς για
συνήθεις εφαρμογές
Quality of Service (QoS) metrics
Απώλεια Ευαισθησία σε
Εφαρμογή δεδομένων Εύρος ζώνης καθυστερήσεις
Υπενθύμιση:Πρωτόκολλα μεταφοράς
υπηρεσιών στο Internet
TCP υπηρεσία:
• Συνδεσιστρεφής: απαιτείται εγκαθίδρυση μεταξύ διεργασιών των client & server
• Αξιόπιστη μεταφορά μεταξύ διεργασιών των sender & receiver
• Έλεγχος ροής: ο sender δεν κατακλύζει τον receiver
• Έλεγχος συμφόρησης: μειώνει την ροή του sender στην περίπτωση υπερφόρτωσης
του δικτύου
• Δεν παρέχει χρονικές ή ελάχιστου bandwidth εγγυήσεις
UDP υπηρεσία:
• Αναξιόπιστη μεταφορά δεδομένων μεταξύ της αποστέλλουσας και της
λάμβάνουσας διεργασίας
• Δεν παρέχει: εγκαθίδρυση σύνδεσης, αξιοπιστία, έλεγχος ροής, έλεγχος
συμφόρησης, χρονισμός, ή εγγύηση εύρους ζώνης (data rate)
Επίπεδο εφαρμογής
Q: Γιατί υπάρχει τότε η UDP σύνδεση? 17
Εφαρμογές διαδικτύου: πρωτόκολλα
εφαρμογής, μεταφοράς
Πρωτόκολλο Πρωτόκολλο
Εφαρμογή επιπέδου εφαρμογής μεταφοράς
Επίπεδο εφαρμογής 18
Επίπεδο εφαρμογής 20
Ο client:
ξεκινά μία TCP σύνδεση: δημιουργεί socket στο server, port 80
Ο server:
δέχεται τη TCP σύνδεση από τον client
Επίπεδο εφαρμογής 21
HTTP overview (συνέχεια)
Χρήση του TCP:
• Ο client ξεκινά μία TCP σύνδεση (δημιουργεί socket) στο server, port 80
• Ο server δέχεται τη TCP σύνδεση από τον client
• Ανταλλαγή HTTP μηνυμάτων (application-layer protocol messages) μεταξύ browser (HTTP
client) & Web server (HTTP server)
• Κλείσιμο TCP connection
HTTP συνδέσεις
Nonpersistent HTTP
• Το πολύ ένα αντικείμενο στέλνεται πάνω από μία TCP σύνδεση
• HTTP/1.0 χρησιμοποιεί nonpersistent HTTP
Persistent HTTP
Πολλαπλά αντικείμενα μπορούν να σταλούν πάνω από μία TCP σύνδεση μεταξύ
client & server
HTTP/1.1 χρησιμοποιεί persistent συνδέσεις σε default κατάσταση
Επίπεδο εφαρμογής 23
Nonpersistent HTTP
Υποθέστε ο user βάζει το URL (περιέχει κείμενο, αναφορές σε 10 jpeg εικόνες)
www.someSchool.edu/someDepartment/home.index
time
Επίπεδο εφαρμογής 24
Επίπεδο εφαρμογής 25
Non-Persistent HTTP Connection
• A brand-new TCP connection must be established & maintained for each
requested object
For each of these connections: TCP buffers must be allocated & TCP variables
must be kept in both the client and server
Επίπεδο εφαρμογής 26
Note: RTT includes packet propagation delays, packet queuing delays in intermediate routes and
switches, and packet processing delays Επίπεδο εφαρμογής 27
Persistent HTTP
Επίπεδο εφαρμογής 28
Persistent HTTP
• An entire web page (in the previous example, the base HTML file and
ten images) can be sent over a single persistent TCP connection
• Moreover multiple web pages residing on the same server can be sent
from the server to the same client over a single persistent TCP
connection
• Typically the HTTP server close a connection when it isn’t used for a
certain time ( a configurable timeout interval)
• With persistent HTTP with pipelining, it is possible for only one RTT
to be expended for all the referenced objects, rather than one RTT per
referenced object when pipelining isn’t used
Επίπεδο εφαρμογής 29
HTTP μήνυμα αιτήματος
• δύο τύποι ΗTTP μηνυμάτων: αίτημα, απάντηση
• HTTP μήνυμα αιτήματος:
ASCII (format που διαβάζονται από τον άνθρωπο)
γραμμή αιτήματος
(GET, POST, GET /somedir/page.html HTTP/1.1
HEAD εντολές) Host: www.someschool.edu
User-agent: Mozilla/4.0
Γραμμές Connection: close
επικεφαλίδων Accept-language:fr
Carriage return,
line feed (extra carriage return, line feed)
indicates end
of message
Επίπεδο εφαρμογής 30
Επίπεδο εφαρμογής 31
HTTP request message
• two types of HTTP messages: request, response
• HTTP request message:
ASCII (human-readable format)
request line
(GET, POST, GET /somedir/page.html HTTP/1.1
HEAD commands) Host: www.someschool.edu
User-agent: Mozilla/4.0
header Connection: close
lines Accept-language:fr
Μοντελοποίηση Καθυστέρησης
Συμβολισμοί, παραδοχές:
• Θεωρείστε μία ζεύξη μεταξύ του client
Q: Πόσος χρόνος απαιτείται για τη και του server ρυθμού R
λήψη ενός αντικειμένου από • S: MSS (bits)
έναν Web server μετά της • O: μέγεθος object (bits)
αποστολή μίας αίτησης; • Δεν υφίστανται επαναποστολές(δεν
υπάρχουν απώλειες (loss) ή αλλοιώσεις
(corruption))
Εκτός από την συμφόρηση, η Μέγεθος παραθύρου:
καθυστέρηση επηρεάζεται από: • Καταρχήν, θεωρείστε σταθερό
• την εγκαθίδρυση της TCP σύνδεσης παράθυρο συμφόρησης, W segments
• την καθυστέρηση αποστολής • Στη συνέχεια, δυναμικό παράθυρο,
δεδομένων μοντελοποιώντας την αργή εκκίνηση.
• αργή εκκίνηση
Επίπεδο εφαρμογής 33
Μοντελοποίηση HTTP Καθυστέρησης
Assume Web page consists of:
• 1 base HTML page (of size O bits)
• M images (each of size O bits)
Non-persistent HTTP:
• M+1 TCP connections in series
• Response time = (M+1)O/R + (M+1)2RTT + sum of idle times
Επίπεδο εφαρμογής 34
2: Application Layer 36
• Authorization
• Cookies
Επίπεδο εφαρμογής 39
User-server state: cookies
Many major Web sites use cookies
Four components:
1) cookie header line of HTTP response message
2) cookie header line in HTTP request message
3) cookie file kept on user’s host, managed by user’s browser
4) back-end database @ Web site
Example:
• Susan access Internet always from same PC
• She visits a specific e-commerce site for first time
• When initial HTTP requests arrives at site, site creates a unique ID and
creates an entry in backend database for ID
2: Application Layer 40
client server
Cookie file
usual http request msg
cookie-
amazon: 1678 cookie: 1678
ebay: 8734 spectific
usual http response msg action
2: Application Layer 41
Cookies (continued) aside
What cookies can bring: Cookies and privacy:
• authorization
• cookies permit sites to learn a lot about
• shopping carts you
• recommendations • you may supply name and e-mail to
sites
• user session state (Web e-mail) • search engines use redirection &
cookies to learn yet more
• advertising companies obtain info
across sites
• Price discrimination (ethical and
Cookies are controversial! economical issues)
Privacy & Economical issues • Value of user profile
• Data privacy vs. gains from
revealing/providing user profile
2: Application Layer 42
HTTP Content
• Data carried in HTTP response messages are objects from web pages,
that is, HTML files, GIFs, JPEGs, java applets, XML files
• XML files are structured data often used in electronic commerce
applications (and not only)
• HTTP is also used as the file transfer protocol for peer-to-peer
applications, streaming stored audio and video content
Επίπεδο εφαρμογής 43
Caching
• Caches can reduce object-retrieval delays
• Caches can decrease the amount of Web traffic sent over the Internet
• Caches introduces a problem: a cache may be stale!
• To ensure that all objects passed to the web browser are up-to-date:
Conditional GET
• Request message uses GET method
• Request message includes an If-Modified-Since header line
• Check with the Last-modified & If-Modified-Since fields
• The web server sends the object only if the object has been modified
since the specified date
Επίπεδο εφαρμογής 44
client origin
server
2: Application Layer 45
More about Web caching
• Cache acts as both client and server
• Typically cache is installed by ISP (university, company, residential ISP)
2: Application Layer 46
Caching example
origin
Assumptions
servers
• average object size = 100,000 bits
public
• avg. request rate from institution’s Internet
browsers to origin servers = 15/sec
• delay from institutional router to any
origin server and back to router = 2 sec
1.5 Mbps
Consequences access link
• utilization on LAN = 15% institutional
• utilization on access link = 100% network
10 Mbps LAN
• total delay = Internet delay + access delay +
LAN delay
= 2 sec + minutes + milliseconds
institutional
cache
2: Application Layer 47
Caching example (cont)
origin
Possible solution
servers
• increase bandwidth of access link to, say, 10
Mbps public
Internet
Consequences
• utilization on LAN = 15%
• utilization on access link = 15%
10 Mbps
• Total delay = Internet delay + access delay + LAN access link
delay
institutional
• = 2 sec + msecs + msecs
network
• often a costly upgrade 10 Mbps LAN
institutional
cache
2 48
institutional
cache
2: Application Layer 49
DNS:The Internet’s Directory Service
Hostnames are identifiers of hosts
eg,www.yahoo.com,calliope.ics.forth.gr
However
• they do not provide information about the network location of the host
• Difficult to be processed by routers
Hosts can be also identified by IP addresses
1. Αποτελείται από 4 bytes
2. Έχει αυστηρή ιεραρχική δομή
3. Αποκαλύπτει πληροφορία για τη θέση του host στο Internet
Επίπεδο εφαρμογής 52
Επίπεδο εφαρμογής 55
Επίπεδο εφαρμογής 56
Επίπεδο εφαρμογής 57
Επίπεδο εφαρμογής 58
Επίπεδο εφαρμογής 59
Another Example on DNS
Domain name resolvers determine the appropriate domain name servers
responsible for the domain name in question by a sequence of queries
starting with the right-most (top-level) domain label.
www.wikipedia.org.
Επίπεδο εφαρμογής 60
2 > A query to one of the root servers to find the server authoritative
for the top-level domain
4 > Repetition of the previous step to process each domain name label
in sequence,
until the final step which returns the IP address of the host sought.
Επίπεδο εφαρμογής 61
DNS: λειτουργία (1/5)
• Χρησιμοποιείται από πολλά πρωτόκολλα στο application layer
• O browser “βρίσκει” το hostname (e.g., www.someschool.edu) στο URL
και «προωθεί» το hostname στο DNS client που τρέχει στο τοπικό
μηχάνημα.
• Ο DNS client στέλνει ένα DNS query που περιέχει το hostname σε ένα DNS
server
• Ο DNS client θα λάβει τελικά μια απάντηση που περιέχει το IP address για
το hostname
• O browser θα ανοίξει μετά μια TCP σύνδεση στη διεργασία του HTTP
server που βρίσκεται σε αυτή την IP διεύθυνση
• To DNS συνεισφέρει με μια καθυστέρηση …
• H IP address μπορεί να βρίσκεται cached σε γειτονικό DNS name server, το
οποίο θα ελαττώσει την συνολική μέση καθυστέρηση
Επίπεδο εφαρμογής λόγω του DNS
62
2: Application Layer 63
DNS records (3/5)
DNS: distributed db storing resource records (RR)
RR format: (name, value, type, ttl)
Type=A Type=CNAME
name is hostname name is alias name for some
value is IP address “canonical” (the real) name
www.ibm.com is really
Type=NS servereast.backup2.ibm.com
value is canonical name
– name is domain (e.g. foo.com)
– value is hostname of
authoritative name server for this Type=MX
domain value is name of mailserver
associated with name
2: Application Layer 64
2: Application Layer 65
DNS protocol, messages (5/5)
Name, type fields
for a query
RRs in response
to query
records for
authoritative servers
additional “helpful”
info that may be used
2: Application Layer 66
Επίπεδο εφαρμογής 67
DNS: recursive & iterative queries
• When a host or name server A makes a recursive query to a name server B,
then name server B obtains the requested mapping on behalf of A and then
forwards the mapping to A
• The DNS protocol also allows for iterative queries at any step in the chain
between requesting host and authoritative name server
• When a name server A makes an iterative query to name server B, if name
server B does not have the requested mapping, it immediately sends a DNS
reply to A that contains the IP address of the next name server in the chain,
say name server C
• DNS caching is used to improve delay performance
Επίπεδο εφαρμογής 68
2: Application Layer 69
Electronic Mail: mail servers
user
Mail Servers agent
• mailbox contains incoming messages mail
user
for user server
agent
• message queue of outgoing (to be SMTP
sent) mail messages mail
server user
• SMTP protocol between mail servers SMTP agent
to send email messages
– client: sending mail server SMTP
user
– “server”: receiving mail server mail
agent
server
user
agent
user
agent
2: Application Layer 70
2: Application Layer 71
Scenario: Alice sends message to
Bob
1) Alice uses UA to compose message 4) SMTP client sends Alice’s message over the
and “to” bob@someschool.edu TCP connection
2) Alice’s UA sends message to her mail 5) Bob’s mail server places the message in
server; message placed in message Bob’s mailbox
queue 6) Bob invokes his user agent to read message
3) Client side of SMTP opens TCP
connection with Bob’s mail server
1 mail
mail
server user
user server
2 agent
agent 3 6
4 5
2: Application Layer 72
2: Application Layer 73
Try SMTP interaction for
yourself:
• telnet servername 25
• see 220 reply from server
2: Application Layer 74
2: Application Layer 75