You are on page 1of 340

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

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

Μαρία Παπαδοπούλη

Τμήμα Επιστήμης Υπολογιστών


Πανεπιστήμιο Κρήτης

Σκοποί
• Εκμάθηση βασικών
– Αρχών σχεδίασης
– Φαινομένων μετάδοσης σημάτων, προβλημάτων, προκλήσεων
– Πρωτοκόλλων
– Εφαρμογών
– Αρχιτεκτονικών
• Όχι μόνο “πώς” λειτουργούν τα δίκτυα υπολογιστών, αλλά και “γιατί”
λειτουργούν με τον συγκεκριμένο τρόπο

• Κατανόηση δικτύων με πρακτικές ασκήσεις και πειράματα,


προγραμματιστικές εργασίες, θεωρητικές/στατιστικές ασκήσεις,
φροντιστήρια/εργαστήρια
5
Ύλη μαθήματος: θέματα που
καλύπτοντα 1
– Σήματα, μεταδόσεις σημάτων
– Δικτυακές αρχιτεκτονικές, στοίβα TCP/IP,
διαστρωμάτωση
– Εφαρμογές δικτύων
– Διεπαφές προγραμματισμού δικτύων (π.χ.,
sockets)
– Μεταφορά δεδομένων
– Συμφόρηση δικτύων

Ύλη μαθήματος: θέματα που


καλύπτοντα 2
– Δρομολόγηση
– Πρωτόκολλα ξεύξης δεδομένων
– Διευθυνσιοδότηση
– Τοπικά δίκτυα
– Ασύρματα δίκτυα
– Ασφάλεια δικτύων
– Διαχείριση δικτύων
Περιεχόμενα
• Εισαγωγή στα δίκτυα επικοινωνιών και
στις υπηρεσίες που παρέχουν
• Φυσικό επίπεδο
• Επίπεδο σύνδεσης δεδομένων
• Τοπικά δίκτυα
• Επίπεδο δικτύου και μεταφοράς
• Υψηλότερα επίπεδα
• Νέες τάσεις και προχωρημένα θέματα

Παραδείγματα Δικτύων
• Αερομεταφορών
• Βιολογικά
• Κοινωνικά
• Ερευνητών
• Υπολογιστών
Δίκτυα αερομεταφορών

Δίκτυα Ερευνητών

Slide from Constantine Dovrolis’s lecture (net-science-overview)


High school dating:
Data drawn from Peter S. Bearman, James Moody, and Katherine Stovel
visualized by Mark Newman

Slide from Constantine Dovrolis’s lecture (net-science-overview)

C. elegans
neuronal net

Slide from Constantine Dovrolis’s lecture (net-science-overview)


Internet

https://www.youtube.com/watch?v=i5oe63pOhLI&list=PL46CCA2DED66B87BB&index
=2

Χάρτης του υποθαλάσσιου


δικτύου οπτικών ινών
Χάρτης του υποθαλάσσιου
δικτύου οπτικών ινών

Απο το www.grnet.gr
H διεθνής διασύνδεση του
ΕΔΕΤ
στο Πανευρωπαϊκό Δίκτυο
GEANT
αναβαθμίστηκε το 2006
σε 2x10Gbps

Ολοι οι κόμβοι βασίζονται


σε δρομολογητές ταχυτήτων
Gbps και διασυνδέονται
μεταξύ τους με ένα δίκτυο
ταχυτήτων 2.5Gbps από τον
ΟΤΕ

Showing the major Internet


Service Providers (ISPs)
Γνωστές διαδικτυακές
συσκευές

Δικτυακή κορνίζα
www.ceiva.com Διαδικτυακή τοστιέρα που
κάνει πρόγνωση καιρού

Διαδικτυακά τηλέφωνα
Ο μικρότερος εξυπηρετητής του κόσμου
http://www-ccs.cs.umass.edu/~shri/iPic.html

Thanks to David Miller from AT&T


Info “Half-Life” &
“Inconvenience Threshold”

Thanks to David Miller from AT&T

Τεχνολογίες μέσα σε περίπου


30 χρόνια
Άλλες τεχνολογίες που χρειάστηκαν περίπου ίδιο χρόνο
εισαγωγής (“εισχώρησης”) στην κοινωνία:
– Αεροπλάνα: 1903-1938 (Stratoliner)
– Αυτοκίνητα: 1876-1908 (μοντέλο-T)
– Αναλογικά τηλέφωνα: 1876-1915 (διηπειρωτική τηλεφωνία)
– Σιδηρόδρομοι: 1820-1960 (διηπειρωτικοί σιδηρόδρομοι)
Διαδίκτυο/ευρυζωνικό δίκτυο
(broadband)
μία από τις πιο γρήγορες εφαρμογές που εισάχθηκαν ποτέ

Σημαντικές τεχνολογίες
“ The most profound technologies are those that
disappear. They weave themselves into the fabric of
everyday life until they are indistinguishable from it."

Mark Weiser, 1991


Δίκτυο Πανεπιστημίου Κρήτης

Μηνιαία στατιστικά στοιχεία


(δρομολογητή)
Τι είναι ένα Δίκτυο
Επικοινωνίας;
• Σύνολο κόμβων που διασυνδέονται με σκοπό
– την ανταλλαγή πληροφορίας
– την παροχή μιας υπηρεσίας
– την συνεργασία μεταξύ συσκευών/χρηστών

Πώς να ζωγραφίσομε ένα


δίκτυο

Πολλές ερωτήσεις:
•Μέσω ποιάς τεχνολογίας πραγματοποιείται η επικοινωνία ?
•Τι ακριβώς είναι η ζεύξη?

•Πώς στέλνομε δεδομένα?


•Πότε μιλάμε? Σε τι “format” στέλνομε τα δεδομένα?
Τι είναι ένα δίκτυο;
• Συλλογή από κόμβους και ζεύξεις που τους
συνδέουν
• Αυτό είναι αόριστο. Γιατί; Θεωρείστε διαφορετικά δίκτυα:
– Διαδίκτυο
– Τηλεφωνικό δίκτυο
– Το σπίτι σας
– Κινητά τηλέφωνα
– Δίκτυα αισθητήρων
• Επικεντρωνόμαστε στο διαδίκτυο λαμβάνοντας υπόψιν
και τα κοινά σημεία με τα άλλα δίκτυα

Δίκτυα ως γράφοι
• Τα δίκτυα μπορούν να αναπαρασταθούν ως κατευθυνόμενοι ή μη-
κατευθυνόμενοι γράφοι: όταν δύο κόμβοι μπορούν να επικοινωνήσουν
άμεσα (δίχως τη βοήθεια κάποιου τρίτου), ενώνονται με μία ακμή

1 2 3 4 5 6

• Οι κόμβοι και οι ακμές μπορούν να αποκτήσουν ένα βάρος που θα


«ποσοτικοποιήσει» μία παράμετρο που σχετίζεται με τους κόμβους ή
τη μεταξύ τους επικοινωνία 2.5
7.3 3.3 12.7
5.4

8.1
2.5
Vertex-Weighted Edge-Weighted
Δίκτυα ως γράφοι
(συνέχεια)
• Ένα δίκτυο μπορεί να είναι συνδεδεμένο (απεικονίζεται ως ένα
ενιαίο τμήμα) ή αποσυνδεδεμένο (απεικονίζεται με αρκετά
ασύνδετα τμήματα).

συνδεδεμένο αποσυνδεδεμένο
• Δίκτυα χωρίς βρόχους αποκαλούνται δέντρα. Όσο
περισσότερους βρόχους έχει κάποιο δίκτυο, τόσο
πολυπλοκότερο είναι.
Δέντρα:

κυκλικοί γράφοι
(βρόχοι):

Δίκτυα ως γράφοι (συνέχεια)


Μερικοί βασικοί τύποι γράφων

Γραμμικός

Αστέρας

Κυκλικός

Πλήρης Γράφος
Bonchev
Διμερής Γράφος
(Bipartite Graph)
Τι είναι το Διαδίκτυο;
• Ένας τρόπος για ηλεκτρονικούς υπολογιστές
με διαφορετικά λειτουργικά συστήματα που
βρίσκονται σε διαφορετικές ηπείρους να
επικοινωνήσουν ...
• Δύο τρόποι περιγραφής του διαδικτύου:
– Μέσω των στοιχείων που το συνθέτουν:
Ποιά είναι τα ηλεκτρομηχανολογικά και λογισμικά μέρη του;
– Μέσω των υπηρεσιών του:
Τι υπηρεσίες παρέχει στις διάφορες εφαρμογές;

Στοιχεία που το συνθέτουν το


Διαδίκτυο
• Εκατομμύρια συνδεδεμένων υπολογιστικών συσκευών τερματικά
συστήματα (hosts)

π.χ. Υπολογιστές, σταθμοί εργασίας, εξυπηρετητές,


PDAs, τηλέφωνα
• Τρέχουν εφαρμογές διαδικτύου
• Ζεύξεις επικοινωνίας
πχ Οπτικές, γραμμές χαλκού, ραδιοκυμματικές,
δορυφορικές
 Μεταδίδουν σε διαφορετικούς ρυθμούς
(bandwidths) που μετρώνται σε bits/sec
Στοιχεία που συνθέτουν το
Διαδίκτυο

Internet Service Provider (ISP)

Σύνολο από κόμβους οι οποίοι


διασυνδέονται για την
ανταλλαγή
πληροφορίας

Βασικά δομικά στοιχεία ενός


δικτύου
• Κόμβοι: υπολογιστές, εξειδικευμένες συσκευές

– Σταθμοί (τερματικά συστήματα)


– Δρομολογητές (μεταγωγείς)

 Οι κόμβοι τρέχουν πρωτόκολλα

• Πρωτόκολλα δικτύων: ορίζουν τους κανόνες


επικοινωνίας (format) και ελέγχουν την
ανταλλαγή δεδομένων
Βασικά δομικά στοιχεία
(συνέχεια)
• Σύνδεσμοι
– χάλκινα καλώδια
– ομοαξονικά καλώδια (σπάνια πλέον)
– οπτικές ίνες
– ασύρματες ζεύξεις
• Τρόποι σύνδεσης
– σημείο-προς-σημείο (point-to-point)

– πολλαπλή πρόσβαση (multiple access)


Τι είναι δίκτυο επικοινωνίας;


• Ένα δίκτυο μπορεί να οριστεί αναδρομικά
ως:
• δύο ή περισσότεροι κόμβοι  δύο ή περισσότερα
που συνδέονται με συνδέσμους, ή δίκτυα που συνδέονται με
δύο ή περισσότερους
συνδέσμους

Ιεραρχική δομή (Hierarchical


structure)
Στοιχεία που συνθέτουν το
Διαδίκτυο 1
• Δρομολογητές:
προωθούν πακέτα (ομάδες) από δεδομένα
μέσω του δικτύου
• Πρωτόκολλα:
Περιγράφουν την αποστολή, παραλαβή
μηνυμάτων, τρόπο επικοινωνίας
– TCP, IP, HTTP, FTP, RTSP, RTP, SIP

Στοιχεία που συνθέτουν το


Διαδίκτυο 2
• Διαδίκτυο: “δίκτυο από δίκτυα”
– Χαλαρά ιεραρχημένο
– Internet Service Providers-ISPs
– Δημόσιο Διαδίκτυο-ιδιωτικό
• Διαδικασία για δημιουργία πρότυπων
Διαδικτύου:
– RFC : Request for Comments
– IETF : Internet Engineering Task Force
1η σειρά ασκήσεων: Το δίκτυο
ως ένας γράφος
1. Επιλέξετε ένα δίκτυο υπολογιστών
2. Με ένα μαθηματικό τρόπο αυστηρό αναπαραστήσετε το ως γράφο.
3. Διακρίνετε σημαντικές ιδιότητες/στοιχεία του
4. Ποιά από αυτά παραμένουν σταθερά στο χρόνο, και στο χώρο, και τι
αλλάζουν
5. Υπολογίσετε τις τιμές από μερικές από αυτές τις ιδιότητες του
6. Σχολιάσετε πως περιμένετε οι ιδιότητες του αυτές να επηρεάζουν την
απόδοση του δικτύου

7. Σκεφτείτε άλλους τύπους δικτύων.


8. Μπορείτε να επιλέξετε ένα άλλο τύπο δικτύων που να συνδυάζει τόσο
εφαρμογές/υπολογιστές όσο και την κοινωνικότητα των χρηστών τους?

Παρεχόμενες υπηρεσίες στο


Διαδίκτυο
• Υποδομή επικοινωνιών που καθιστά δυνατές
κατανεμμημένες εφαρμογές που τρέχουν στα
τερματικά συστήματα να επικοινωνούν μεταξύ
τους
– Web
– Email
– Remote login
– Instant messaging
– Audio & video streaming
–…
Τύποι υπηρεσιών που
παρέχονται από το Διαδίκτυο
1. Με σύνδεση (connection-oriented)
– Εγγυάται ότι τα δεδομένα που μεταδίδονται από
τον αποστολέα στον παραλήπτη θα φτάσουν τελικά

Τύποι υπηρεσιών που


παρέχονται από το Διαδίκτυο
1. Χωρίς σύνδεση (connectionless)
– Δεν εγγυάται ότι τα δεδομένα θα φτάσουν
στον προορισμό τους
• Οι κατανεμημένες εφαρμογές συνήθως
χρησιμοποιούν ή τη μία είτε την άλλη
 Πολύ δύσκολο για μία υπηρεσία να
υποσχεθεί την ακριβή ώρα που θα
χρειαστεί για την παράδοση των
δεδομένων
49
Πρωτόκολλα Διαδικτύου
• Τα πρωτόκολλα στην καθημερινή ζωή αποτελούν κανόνες με τους
οποίους δύο ή περισσότερα άτομα επικοινωνούν για να παρέχουν
μία υπηρεσία ή να διεκπεραιώσουν μια εργασία

• Ένα πρωτόκολλο είναι ένα σύνολο κανόνων με τους οποίους τα


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

 Κάθε επικοινωνία στο Διαδίκτυο καθορίζεται από πρωτόκολλα

Τι είναι το πρωτόκολλο;

Ερώτηση: Άλλα ανθρώπινα πρωτόκολλα;


Παραδείγματα πρωτοκόλλων
στο διαδίκτυο
1. Τα πρωτόκολλα στους δρομολογητές καθορίζουν τη διαδρομή
των πακέτων από τον αποστολέα στον παραλήπτη
2. Τα πρωτόκολλα ελέγχου συμφόρησης ελέγχουν το ρυθμό με
τον οποίο τα πακέτα στέλνονται μεταξύ του αποστολέα και
του παραλήπτη
3. Τα πρωτόκολλα του «φυσικού μέσου» ελέγχουν τη ροή των bits
στη γραμμή που ενώνει δύο φυσικά συνδεδεμένους υπολογιστές
4. Τα πρωτόκολλα στο MAC ενός broadcast ασύρματου μέσου
καθορίζουν πότε η συσκευή θα μεταδώσει

Στόχοι στο σχεδιασμό δικτύων 1


• Ασφάλεια (security)
• Ευκολία στην δημιουργία/ανάπτυξη χρήσιμων
εφαρμογών/υπηρεσιών
• Δυνατότητα προσαρμογής (adaptivity)
• Δυνατότητα για «αυτοματοποιημένη» διαχείριση
• Δικαιοσύνη προς τους χρήστες του δικτύου/υπηρεσιών
Στόχοι στο σχεδιασμό δικτύων 2
• Ασφάλεια (security)
• Ευκολία στην δημιουργία/ανάπτυξη χρήσιμων
εφαρμογών/υπηρεσιών
• Δυνατότητα προσαρμογής (adaptivity)
• Δυνατότητα για «αυτοματοποιημένη» διαχείριση
• Δικαιοσύνη προς τους χρήστες του δικτύου/υπηρεσιών

Γιατί χρειαζόμαστε δίκτυα


επικοινωνίας;
Γιατί χρειαζόμαστε δίκτυα
επικοινωνίας;

Δίκτυα τηλεπικοινωνιών
• Τηλεφωνικό δίκτυο
• Κινητά δίκτυα
• Δίκτυο υπολογιστών (π.χ. Διαδίκτυο – Internet)
• Διαφοροποίηση ως προς:
– γεωγκάλυψη
– ραφική ταχύτητα
– φυσικό μέσο/τεχνολογία
– υπηρεσίες και εφαρμογές
• Ένα μοναδικό δίκτυο που να υποστηρίζει όλες τις υπηρεσίες ήταν ο στόχος
για πολύ καιρό…
 ... και μετά εμφανίστηκε το Διαδίκτυο…
Τύποι δικτύων υπολογιστών με
βάση το εύρος κάλυψης
• Δίκτυα τοπικής περιοχής
Local Area Networks (LAN)
 Μικρή γεωγραφική κάλυψη, υψηλή ταχύτητα

• Δίκτυα μητροπολιτικής περιοχής


Metropolitan Area Networks (MAN)
 Αστική κάλυψη, μέτριες έως υψηλές ταχύτητες

• Δίκτυα ευρείας περιοχής


Wide Area Networks (WAN)
 Ευρεία κάλυψη, μικρές έως μεσαίες ταχύτητες

Local Area Networks (LANs)


Πλεονεκτήματα της “τοπικότητας”:
 Χαμηλότερο κόστος
 Μικρή απόσταση  ταχύτερες ζεύξεις, χαμηλή λανθάνουσα
καθυστέρηση (latency)
– Λιγότερο πιεστικό στοιχείο η αποδοτικότητα
 Ένας τομέας διαχείρισης (management domain)
– Λιγότερο πολύπλοκη διαχείριση, ασφάλεια & τιμολόγηση
 Μεγαλύτερη ομοιογένεια
Standard for LANs

 Παραδείγματα:
 Ethernet (IEEE802.3)
 Token ring, FDDI
 WiFi (IEEE802.11)
Ethernet
• Αναπτύχθηκε αρχικά στο Xerox PARC
μεταξύ1973-1975
Ethernet RJ45 connector

Βασίστηκε στην ιδέα της


επικοινωνίας υπολογιστών
διαμέσου
ενός μεριζόμενου
ομοαξονικού καλωδίου
που λειτουργεί ως μέσο
ευρυεκπομπικής
μετάδοσης (broadcast
transmission medium)

Ενσύρματα LAN
• Ο συνδυασμός τύπων Ethernet
συνεστραμμένου ζεύγους για τη σύνδεση
τερματικών σταθμών στο δίκτυο μαζί με τις
οπτικές ίνες για τα backbones είναι η πιο
δημοφιλής επιλογή για ενσύρματα LANs
• Χρησιμοποιείται από το 1980
αντικαθιστώντας το token ring, FDDI και
ARCNET
Wide-Area Networks 1
Η απόσταση δυσκολεύει τα πράγματα:
 Υψηλότερες καθυστερήσεις και
κόστος  Απαιτείται αποδοτικότητα
• Μεγαλύτερο μέγεθος  Απαιτείται
κλιμακοθετησιμότητα (scalability)
• Ετερογένεια
– Τύποι κίνησης
– Ανάγκες τερματικών, απαιτήσεις
εφαρμογών

Wide-Area Networks 2
• Διοικητική ανομοιογένεια 
Δυσκολότερη διαχείριση

Ας δούμε ένα χαρακτηριστικό


παράδειγμα:
“Το Διαδίκτυο 1”
• Δια-δίκτυο: ένα δίκτυο δικτύων
– Σύνολο δικτύων που συνδέονται μεταξύ τους
– Τα δίκτυα συνδέονται με χρήση δρομολογητών που
υποστηρίζουν επικοινωνία ιεραρχικού τύπου
– Συχνά απαιτούνται άλλες ειδικές συσκευές στα σύνορα για
ασφάλεια, λογιστική διαχείριση,...

“Το Διαδίκτυο 2”
• Internet: το διασυνδεδεμένο σύνολο δικτύων
των Παρόχων Υπηρεσιών Διαδικτύου (ISPs)
που παρέχει υπηρεσίες επικοινωνίας
δεδομένων
– Περίπου 17,000 διαφορετικά δίκτυα συγκροτούν το Διαδίκτυο

Για να διαλειτουργούν (inter-operate), πρέπει


όλα τα συμμετέχοντα δίκτυα να ακολουθούν ένα
σύνολο κοινών κανόνων
Χαρακτηριστικά των
επιπέδων
• Κάθε επίπεδο στηρίζεται στις υπηρεσίες του
επιπέδου από κάτω του και εξάγει υπηρεσίες
στο επίπεδο από πάνω του
• Η διεπαφή καθορίζει την αλληλεπίδραση
• Κρύβει την υλοποίηση
 Τα επίπεδα μπορούν να αλλάξουν χωρίς
να επηρεάσουν άλλα επίπεδα (black box)

Μοντέλο OSI (Seven Layer


Model)
• Open Systems Interconnection Basic
Reference Model

• Aφηρημένη περιγραφή για τις πολυεπίπεδες


επικοινωνίες και τον σχεδιασμό
πρωτοκόλλων δικτύων υπολογιστών
• Διαχωρισμός της αρχιτεκτονικής δικτύου σε 7
επίπεδα (από την κορυφή προς τα κάτω):

Εφαρμογών (Application) οτιδήποτε άλλο


Παρουσίασης (Presentation) σειρά bytes,
ασφάλεια
Διαχωρισμός της
αρχιτεκτονικής δικτύου
• (από την κορυφή προς τα κάτω):
Εφαρμογών (Application) οτιδήποτε άλλο
Παρουσίασης (Presentation) σειρά bytes, ασφάλεια
Συνόδου (Session) πώς να συσχετίζεις ροές
μεταξύ τουs
Μεταφοράς (Transport) πώς να στέλνεις πακέτα
από άκρη σε άκρη
Δικτύου (Network) πώς να δρομολογείς
πακέτα
Ζεύξης Δεδομένων (Data-link) πώς να μεταδίδεις frames
Φυσικό (Physical) πώς να μεταδίδεις bits

OSI model (συνέχεια)


• To OSI είναι “ιστορικό” μοντέλο
 Το Internet χρησιμοποιεί την TCP/IP
στοίβα

 Πολλοί αρχάριοι κάνουν το λάθος να


προσπαθούν να κατατάξουν κάθε
πρωτόκολλο που μελετούν σε ένα από τα
7 επίπεδα
Επίπεδα OSI και θέσεις

Randy Katz’s lecture slides CS268 Fall’08

Μοντέλο επιπέδων
Διαδικτύου (Στοίβα TCP/IP)
Στοίβα πρωτοκόλλων Διαδικτύου
(Internet) εφαρμογής
μεταφοράς
Επίπεδο 5 δικτύου
Επίπεδο 4 ζεύξης
Επίπεδο 3 φυσικό
Επίπεδο 2
Επίπεδο 1

• Κάθε επίπεδο χρησιμοποιεί τις λειτουργίες του επιπέδου από κάτω


• Καθε επίπεδο μεταφέρει λειτουργικότητα στο επίπεδο από πάνω
• Αυτή η συμπεριφορά ονομάζεται «Στοίβα Πρωτοκόλλων»
κοινώς, ή «Στοίβα TCP/IP»
Η κλεψύδρα του
πρωτοκόλλου του διαδικτύου

διαστρωμάτωση

Γιατί η αρχιτεκτονική της


κλεψύδρας;
• Γιατί χρειάζεται η διαδικτυακή διαστρωμάτωση;
– Δημιουργία μεγαλύτερου δικτύου
– Διεθνής διευθυνσιοδότηση
– Δημιουργία δικτύων έτσι ώστε να απομονωθούν τα πρωτόκολλα
από τις λεπτομέρειες/αλλαγές των δίκτύων
• Γιατί ένα μοναδικό πρωτόκολλο δικτύου;
– Μεγιστοποίηση της διαλειτουργικότητας (interoperability)
– Ελαχιστοποίηση του αριθμού των διεπαφών υπηρεσιών
• Γιατί ένα στενό πρωτόκολλο δικτύου;
– Λιγότερη κοινή λειτουργία δικτύων για την μεγιστοποιήση του
αριθμού χρησιμοποιήσιμων δικτύων
Ενθυλάκωση

Επίπεδο εφαρμογής
• Υλοποιεί τις κατανεμημένες εφαρμογές
– 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) στους δύο
επικοινωνούντες κόμβους

TCP: Transmission Control


Protocol [RFC 793]
• Αξιόπιστο, μεταφορά πακέτων σε σειρά
 Χαμένα δεδομένα: επιβεβαιώσεις και επανεκπομπές
• Έλεγχος ροής
 Ο αποστολέας δεν κατακλύζει τον δέκτη
• Έλεγχος συμφόρησης
 Ο αποστολέας μειώνει το ρυθμό αποστολής,
όταν το δίκτυο έχει συμφόρηση
UDP: User Datagram Protocol
[RFC 768]
• Χωρίς-σύνδεση υπηρεσία του Διαδικτύου
 Δεν χρησιμοποιεί handshaking
 Αναξιόπιστη μεταφορά δεδομένων
 Δεν κάνει έλεγχο ροής
 Δεν κάνει έλεγχο συμφόρησης
 Λιτή και απέριττη υπηρεσία

TCP έναντι UDP


Εφαρμογές που χρησιμοποιούν TCP:
• HTTP (WWW), FTP (μεταφορά αρχείων),
Telnet (απομακρυσμένο login), SMTP
(email)
Εφαρμογές που χρησιμοποιούν UDP:
• Streaming media, τηλεδιασκέψεις, DNS,
τηλεφωνία μέσω Διαδικτύου
Πώς θα διαλέγατε μεταξύ TCP και UDP;
Νέες εφαρμογές
• Με μεγάλες απαιτήσεις σε εύρος ζώνης (bandwidth)
– Δίκτυα βασισμένα στην πραγματικότητα
– Κάμερες (ασφαλείας)
– Εύρεση πληροφορίας σε 3D
– Εύρεση/ανάκτηση contextual-based data
– Virtual & augmented reality εφαρμογές
• Τα κατανεμημένα παιχνίδια συχνά απαιτούν μόνο μικρού
εύρους ζώνης πληροφορίες ελέγχου
– Συνδυασμός υπολογισμού, επικοινωνίας και αποθήκευσης
Το κόστος αποθήκευσης έχει μειωθεί πιο ραγδαία από
ότι το κόστος επικοινωνίας

Επίπεδο δικτύου
• Καθορίζει τη διαδρομή που θα πάρει ένα
πακέτο μέσω των δρομολογητών για να
φτάσει τον προορισμό του
• Internet Protocol (IP)
 Καμία εγγύηση εάν και πότε θα φτάσει
εκεί
– Συμφόρηση μπορεί να προκληθεί στους
δρομολογητές λόγω περιορισμένου μεγέθους
buffer
– Όταν υπάρχει συμφόρηση οι δρομολογητές
«πετούν» πακέτα
Επίπεδο ζεύξης
• Χειρίζεται μεταφορές δεδομένων μεταξύ
γειτονικών στοιχείων του δικτύου
• Καθορίζεται από την τεχνολογία της ζεύξης
επικοινωνίας των γειτονικών στοιχείων
• Παραδείγματα:
– Ethernet (ΙΕΕΕ802.3)
– Wireless LAN (e.g., ΙΕΕΕ802.11)

Φυσικά μέσα (γενικά)

• Bit: διαδίδεται μεταξύ ζεύγους πομπού – δέκτη


• Φυσική ζεύξη: μεταξύ πομπού και δέκτη
• Οδηγούμενα μέσα:
– Σήματα διαδίδονται σε στερεά μέσα: χαλκός, οπτική ίνα,
ομοαξονικό καλώδιο

 Μη οδηγούμενα μέσα:
– Σήματα διαδίδονται ελεύθερα π.χ ραδιοκύματα
• Ας μιλήσομε για τις μεταδόσεις
στο φυσικό μέσο ...

Μοντέλο επιπέδων
Διαδικτύου (Στοίβα TCP/IP)
Στοίβα πρωτοκόλλων Διαδικτύου
εφαρμογής
μεταφοράς
Επίπεδο 5
δικτύου
Επίπεδο 4
ζεύξης
Επίπεδο 3
Επίπεδο 2 φυσικό
Επίπεδο 1

Χειρίζεται την μεταφορά της ακολουθίας των bits


ξεχωριστά κατά μήκος της ζεύξης
Φυσικό επίπεδο 1
• Χειρίζεται τη μεταφορά της ακολουθίας των
bits ξεχωριστά κατά μήκος της ζεύξης
Η ζεύξη παραδίδει bits αφού πρώτα τα μετατρέψει σε σήματα τα οποία
διαδίδονται μέσω ενός καναλιού

 Σήμα καλείται η υπέρθεση ηλεκτρομαγνητικών κυμάτων

Φυσικό επίπεδο 2
 Τα bits στέλνονται διαδίδοντας ηλεκτρομαγνητικά κύματα ή οπτικούς
παλμούς κατα μήκος του φυσικού μέσου
– Συνεστραμμένο χάλκινο καλώδιο (twisted pair
copper wire)
– Ομοαξονικό καλώδιο (coaxial cable)
– Επίγειο φάσμα ραδιοσυχνοτήτων
– Δορυφορικό φάσμα ραδιοσυχνοτήτων
Μετάδοση ΄Ηχου
• Ενα κύμα που διαδίδεται στον χώρο με τον
χρόνο ...
(πολύ απλά) “Μεταβολή πίεσης στον αέρα”

• Το μικρόφωνο μετατρέπει μεταβολή πίεσης σε


ηλεκτρικό σήμα
• Γίνεται δειγματοληψία και μετατροπή του
ηλεκτρικού σήματος σε αριθμούς ...

Ηλεκτρομαγνητικά κύματα
Έχουν δύο σημαντικές ιδιότητες:

1. Διαδίδονται
Μετακινούνται δηλαδή απο το ένα μέρος στο
άλλο,
όπως από ένα πομπό σε ένα δέκτη

2. Περιέχουν ενέργεια η οποία μπορεί να


χρησιμοποιηθεί για τη μεταφορά μηνυμάτων
Ηλεκτρομαγνητικά κύματα
(συνέχεια)
• Το Ηλεκτρομαγνητικό κύμα μπορεί να
θεωρηθεί ως μια
ροή φωτονίων
• Φωτόνιο: μικρή ριπή ηλεκτρομαγνητικής
ενέργειας
Η ενέργεια μεταφέρεται από φωτόνια
 Το φαινόμενο διάδοσης προκαλείται από τις αλληλεπιδράσεις
ενός ταλαντούμενου ηλεκτρικού πεδίου και ενός
ταλαντούμενου μαγνητικού πεδίου τα οποία ωθούν το ένα
το άλλο στο κενό ή σε ένα άλλο μέσο διάδοσης

Βασικές αρχές
Ένα μεταβαλλόμενο μαγνητικό πεδίο παράγει ένα
μεταβαλλόμενο ηλεκτρικό πεδίο (Faraday)

Σε ένα ηλεκτρομαγνητικό κύμα, ένα μεταβαλλόμενο


πεδίο επάγει ένα μεταβαλλόμενο ηλεκτρικό πεδίο,
το οποίο με τη σειρά του δημιουργεί ένα
μεταβαλλόμενο μαγνητικό πεδίο κ.ο.κ ...
προκαλώντας έτσι τη διάδοση του κύματος (Maxwell)
Ηλεκτρομαγνητικό κύμα
(συνέχεια 1)
• Περιγράφεται από τη συχνότητα: αριθμός
ταλαντώσεων των ηλεκτρικών και
μαγνητικών πεδίων στην μονάδα του
χρόνου
1Hertz αντιστοιχεί σε μια πλήρη
ταλάντωση ανά δευτερόλεπτο
και το μήκος κύματος: λόγος ταχύτητας
διάδοσης προς συχνότητα

Ηλεκτρομαγνητικό κύμα
(συνέχεια 2)

 Τα δίκτυα επικοινωνιών μεταδίδουν πληροφορία μέσω


ηλεκτρομαγνητικών κυμάτων

Τα ηλεκτρόνια στα σύρματα ή στο καλώδιο μίας γραμμής


χαλκού
αλληλοεπιδρούν με το ηλεκτρομαγνητικό κύμα και το
οδηγούν
Βασικά στοιχεία ηλεκτρικού
ρεύματος
• Η ροή φορτίου ονομάζεται ηλεκτρικό ρεύμα και είναι ο ρυθμός με
τον οποίο τα ηλεκτρικά φορτία διέρχονται διαμέσου ενός αγωγού
• Τα φορτισμένα σωματίδια μπορούν να είναι είτε θετικά είτε
αρνητικά
• Για τη ροή φορτίου, απαιτείται μία ώθηση (μία δύναμη) η οποία
παρέχεται από την τάση ή διαφορά δυναμικού
• Το φορτίο κινείται από το υψηλό δυναμικό (περιοχή υψηλής
δυναμικής ενέργειας) προς το χαμηλό δυναμικό (περιοχή χαμηλής
δυναμικής ενέργειας
 Αν υπάρχει διαφορά δυναμικού μεταξύ δύο περιοχών και εμείς
τις συνδέσουμε (αγώγιμα), θα υπάρξει ροή φορτίου
 Το φορτίο συνεχίζει να κινείται μέχρι η δύναμη που ασκείται
πάνω του να μειωθεί σε κάποια ελάχιστη τιμή ή έως ότου το
δυναμικό εξισωθεί

Βασικά στοιχεία ηλεκτρικής


τάσης 1
• Η τάση θα έπρεπε να καλείται ορθότερα
«διαφορά δυναμικού»
• Είναι στην πραγματικότητα η ηλεκτρεγερτική
δύναμη (emf) (η κινητήριος δύναμη των
ηλεκτρονίων στον ηλεκτρισμό)
 Η διαφορά δυναμικού είναι υπεύθυνη για την
άπωση και την έλξη των ηλεκτρονίων ή για το
ηλεκτρικό ρεύμα διαμέσου ενός κυκλώματος
Βασικά στοιχεία ηλεκτρικής
τάσης 2

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


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

Βασικά στοιχεία ηλεκτρικής


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

• Εκφράζεται σε μονάδες που ονομάζονται volts, σύντμηση


του voltage

 Ως ένα volt ορίζεται η πίεση που απαιτείται για τη διέλευση


ρεύματος ενός ampere διαμέσου μίας αντίστασης ενός ohm
Έννοιες πεδίου χρόνου:
Αναλογικά & ψηφιακά σήματα
 Μέγιστο εύρος (A) - Μέγιστη τιμή ή δύναμη του σήματος με την πάροδο
του χρόνου. Συνήθως μετριέται σε volts
 Συχνότητα (f ): Ρυθμός (rate), σε cycles/sec ή Hertz (Hz) στους
οποίους το σήμα επαναλαμβάνεται
 Φάση (φ) – Μέτρο της σχετικής θέσης στο χρόνο εντός μίας
περιόδου του σήματος
 γενικό κύμα ημιτόνου s(t ) = A sin(2πft + φ)

 Οποιοδήποτε ηλεκτρομαγνητικό σήμα μπορεί να αποδειχθεί ότι αποτελείται


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

Ηλεκτρομαγνητικό φάσμα

 (meters) = 300 / freq in MHz


Προτυποποίηση διαδικτύου 1
 International Telecommunications Union (ITU)
– Οργάνωση συνθήκης Ηνωμένων Εθνών
– Πρότυπα μετάδοσης (π.χ. modem: V.90)
– Παραδοσιακές τηλεφωνικές υπηρεσίες, fax

Προτυποποίηση διαδικτύου 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 switching)


 αποθήκευση-και-προώθηση (store-and-forward
μηνυμάτων
– Διαδίκτυο (Internet)

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)

Δίκτυα μεταγωγής κυκλωμάτων


(circuit switched)
Η πηγή αρχικά δημιουργεί μία σύνδεση προς τον προορισμό
(κύκλωμα)
• Κάθε δρομολογητής ή μεταγωγέας κατά μήκος της διαδρομής
μπορεί να δεσμεύσει κάποιο εύρος ζώνης για τη ροή δεδομένων
• Η πηγή στέλνει τα δεδομένα διαμέσου του κυκλώματος
• Δεν υπάρχει λόγος να συμπεριλαμβάνεται στα δεδομένα η
διεύθυνσης προορισμού, αφού οι δρομολογητές γνωρίζουν τη
διαδρομή
• Η σύνδεση «καταστρέφεται»

Source Destination

Με κόκκινο συμβολίζομε την σύνδεση (circuit)


Δίκτυα μεταγωγής
κυκλωμάτων (συνέχεια)
• Τι συμβαίνει στην περίπτωση πολλών
συνδέσεων?
– Πολλά καλώδια (π.χ., τα καλώδια 200-ζευγών)
• Μία πρακτικότερη προσέγγιση είναι να
πολυπλέξουμε πολλαπλά κυκλώματα επί
ενός “γρήγορου” καλωδίου
– Μπορούμε να επωφεληθούμε από τις τεχνολογικές εξελίξεις
– Λιγότερα καλώδια
– Πολυπλεξία

Δίκτυα μεταγωγής
κυκλωμάτων (συνέχεια)
 Τα κυκλώματα έχουν μερικές πολύ ελκυστικές ιδιότητες
– Γρήγορη και απλή μεταφορά δεδομένων
 άπαξ και δημιουργηθεί το κύκλωμα
– Προβλέψιμες επιδόσεις(π.χ. εγγυημένο εύρος ζώνης)
εφόσον το κύκλωμα παρέχει απομόνωση από άλλους χρήστες
 Αλλά έχουν και κάποια «κουσούρια»
– Τι συμβαίνει με τη ριπαία κίνηση (bursty traffic)?
 Το κύκλωμα είναι ανενεργό για σημαντικές χρονικές
περιόδους
– Τι συμβαίνει με τους χρήστες που έχουν διαφορετικές
ανάγκες σε εύρος ζώνης?
• Πρέπει να χρησιμοποιήσουν πολλαπλά κυκλώματα?
• Εναλλακτική λύση: Μεταγωγή πακέτων….
Δίκτυα μεταγωγής πακέτων
(packet switching)
Οι διαδρομές επιλέγονται δυναμικά
– μεταφορά πακέτων (packets–datagrams)
– αξιόπιστη ή μη αξιόπιστη επικοινωνία
με σύνδεση (connection-oriented) ή χωρίς σύνδεση
(connectionless)

 Είναι best-effort προσέγγιση:


δεν δίνει εγγύηση για την ποιότητα υπηρεσίας

H AT&T είχε πει οτι δεν μπορούν να χτιστούν ...

Δίκτυα μεταγωγής πακέτων


(packet switching) 1
• Η πηγή στέλνει την πληροφορία ως
αυτοδύναμα (self-contained) πακέτα που
έχουν διεύθυνση
– Η πηγή ίσως πρέπει να διασπάσει ένα μήνυμα σε πολλά

Analogy: a letter in surface mail


Δίκτυα μεταγωγής πακέτων
(packet switching) 2
• Κάθε πακέτο ταξιδεύει ανεξάρτητα προς τον
προορισμό
– Οι δρομολογητές και οι μεταγωγείς χρησιμοποιούν τη διεύθυνση
στα πακέτα για να καθορίσουν πώς αυτά θα προωθηθούν

Analogy: a letter in surface mail

Πως φτάνει ένα πακέτο στον


τελικό προορισμό;
H: Σταθμοί (Hosts)
Μεταγωγή αυτοδύναμων πακέτων
R: Δρομολογητές (Routers)
Ο σταθμός στέλνει το πακέτο
στον κοντινότερο
H R
δρομολογητή
R H
H R

R
Ένας δρομολογητής προωθεί
το πακέτο στον επόμενο R
κοντινότερο δρομολογητή

H R
R

R
H
Δίκτυα μεταγωγής πακέτων 1
• Σημαντικές δομές:
1. Πακέτα
2. Σταθμοί (end stations/systems)
3. Δρομολογητές

 Οι περισσότεροι δρομολογητές χρησιμοποιούν


τη μετάδοση με αποθήκευση & προώθηση
(store-and-forward)

Δίκτυα μεταγωγής πακέτων 2

 Μετάδοση με αποθήκευση & προώθηση


(ορισμός) ο δρομολογητής θα πρέπει να λάβει
ολόκληρο το
πακέτο πριν ξεκινήσει τη μετάδοση του πρώτου
bit του πακέτου
στο outbound link
Μετάδοση με αποθήκευση &
προώθηση (store-and-forward)
• Μια μετάδοση με αποθήκευση και
προώθηση απο τον Α στον Γ μεσω του Β
ειναι αποδοτικοτερη εάν η μεταδοση απο
τον Β στο Γ μπορει να ξεκινησει πριν
ολοκληρωθεί αυτην από τον Α στον Β

Τα μηνυματα πρεπει να κατατμηθούν σε


σχετικά μικρά πακέτα
Πλεονεκτήματα ?

Παράδειγμα
Έστω ότι
• Για την μετάδοση ενός μεγάλου μηνύματος
μέσω μιας άμεσης ζεύξης χρειάζεται D ms
• Για την μετάδοση ενός μικρού πακέτου μέσω
μιας άμεσης ζεύξης χρειάζεται d ms
• Υπάρχουν Ν ενδιάμεσοι κόμβοι
Παράδειγμα (συνέχεια)

 Υπολογίσετε τον χρόνο που χρειάζεται η


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

Μετάδοση με store-and-
forward (συνέχεια)
Η μείωση του χρόνου παράδοσης που
επιτυγχάνεται με την μεταγωγή πακέτων με
αποθήκευση και προώθηση καλείται κέρδος
σωληναγώγησης (pipelining gain)

• Το κέρδος μεγαλώνει όσο αυξάνεται ο αριθμός


των ενδιάμεσων κόμβων στο μονοπάτι
Host Γ
(route)
Host A

Host B
Δρομολόγηση (Routing)
• Ποιος επιλέγει τις διαδρομές?
– Ένας άνθρωπος: Στατική δρομολόγηση
– Συγκεντρωτική (centralized) δρομολόγηση (telenet, περίπου στα 1980)
– Κατανεμημένη (distributed) δρομολόγηση (Internet, ad hoc networks)

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


χρησιμοποιείται κάποιο Πρωτόκολλο
Δρομολόγησης
– Χρησιμοποιούνται πολλά διαφορετικά
πρωτόκολλα
– Εντός οργανισμών: RIP, OSPF
– Μεταξύ οργανισμών: BGP

Και μερικά ακόμα ζητήματα ...


• Πώς ξέρει ένας δρομολογητής ποιος είναι ο
επόμενος κοντινότερος στο τελικό προορισμό;

• Προβλήματα κατά την μετάδοση:


– μπορεί να συμβεί λάθος σε ένα πακέτο
πχ εξαιτίας παρεμβολών στη μετάδοση ή θορύβου

– μπορεί να χαθεί ένα πακέτο


– τα πακέτα μπορεί να φτάσουν με διαφορετική σειρά
– μερικοί σύνδεσμοι/κόμβοι μπορεί να είναι αργοί
(συμφόρηση)
Είδη πολυπλεξίας
Πολυπλεξία με
 διαίρεση χρόνου -Time Division Multiplexing (TDM)

 διαίρεση συχνότητας - Frequency Division Multiplexing (FDM)

 στατιστική πολυπλεξία - Statistical Multiplexing

L1 R1

L2 R2

Switch 1 Switch 2
L3 R3

 διαίρεση κωδίκων - Code Division Multiple Access (CDMA)

Πολυπλεξία σε Δίκτυα Μεταγωγής


Κυκλώματος
Ένα κύκλωμα σε μία ζεύξη μπορεί να υλοποιηθεί με
frequency-division multiplexing (FDM) ή time-division
multiplexing (TDM)

Frequency Division Multiple Access:


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

Time Division Multiple Access:


• Κάθε κύκλωμα δεσμεύει όλο το bandwidth περιοδικά με
διάρκεια μικρών χρονικών περιόδων
Πολυπλεξία με διαίρεση
συχνότητας
Ισχύς
Διαμόρφωση Συντονισμένο
στο κανάλι 1 ς στο κανάλι 1
Συχνότητα
Σήμα 1 L1 R1 Σήμα 1

Σήμα N LN RN Σήμα N
Διαμόρφωσ Ισχύς Συντονισμένο
η στο κανάλι ς στο κανάλι
N N
Συχνότητα

Πολυπλεξία σε Δίκτυα
Μεταγωγής Κυκλώματος
Πολλαπλή πρόσβαση διαίρεσης συχνότητας
(Frequency division multiple access)

 Τα κινητά τηλέφωνα πρώτης γενιάς τη χρησιμοποιούσαν για την


κατανομή των ασύρματων καναλιών
 Κάθε χρήστης χρησιμοποιούσε κατά αποκλειστικότητα ένα κανάλι
 Χρησιμοποιούνταν ζώνες φύλαξης (guard bands) για να διασφαλιστεί ότι
η «διαρροή φάσματος» (spectral leakage) από κάποιον χρήστη δε θα
προκαλούσε προβλήματα σε χρήστες των διπλανών καναλιών

Band 1 Guard Band 2 Guard Band 3


band band

Frequency
Πολυπλεξία με διαίρεση χρόνου

Πλαίσιο (Frame)
Σήμα 1 1 N-1 N 1 N-1 N
… …
Σήμα 2
Χρόνος
Χρονο-
θυρίδα
Σήμα N
Διαμόρφωσ ισχύς
η στο κανάλι
N

Πολυπλεξία σε Δίκτυα
Μεταγωγής Κυκλώματος
Παράδειγμα:
FDM 4 χρήστες
συχνότητα

χρόνος
συχνότητα

TDM

χρόνος
Πολυπλεξία σε Δίκτυα
Μεταγωγής Κυκλώματος
Παραδείγματα:

 το FM ραδιόφωνο χρησιμοποιεί το FDM για να μοιραστούν οι


σταθμοί της microwave μπάντας συχνοτήτων

 το τηλέφωνο, η μπάντα συχνοτήτων έχει πλάτος 4kHz (4,000


κύκλοι το δευτερόλεπτο)
Το πλάτος της μπάντας λέγεται bandwidth

Στην τηλεφωνία έχουμε κυρίως TDM

Πολυπλεξία σε Δίκτυα
Μεταγωγής Κυκλώματος
 FDM:
 προσαρμόζει το σήμα στα χαρακτηριστικά του μέσου

 παράδειγμα: μετάδοση τηλεόρασης

 TDM:
 κατάλληλο για σύγχρονη επικοινωνία

 παράδειγμα: σταθερή τηλεφωνία, κινητή τηλεφωνία (GSM)

 Κι οι δύο τεχνικές δεσμεύουν πόρους (συχνότητα ή


χρονοθυρίδες) με στατικό τρόπο
 Λόγω της στατικής δέσμευσης δεν είναι αποδοτικές για
εκρηκτική κίνηση (bursty traffic)
Στατιστική πολυπλεξία
(statistical multiplexing)
 Διαίρεση χρόνου «κατ’ αίτηση»
 Χρονοπρογραμματισμός συνδέσμου ανά πακέτο

 Πακέτα από διαφορετικές πηγές εναλλάσσονται στον σύνδεσμο

 Ζητήματα:

 Τα πακέτα χρειάζονται ετικέτες (labels) ή διευθύνσεις (addresses)

 Απαιτείται η ενταμίευση πακέτων


 Μπορεί να συμβεί υπερχείλιση ενταμιευτών σε καταστάσεις
συμφόρησης

Μεταγωγή Πακέτων:
Στατιστική Πολυπλεξία

Η ακολουθία πακέτων παράγεται από τις πηγές Α και Β με τυχαίο


τρόπο → στατιστική πολυπλεξία

Στο TDM δίνεται σε κάθε κόμβο η ίδια χρονοθυρίδα (slot) στο


περιστρεφόμενο πλαίσιο TDM
Πολλαπλή Πρόσβαση
Διαίρεσης Κώδικα (CDMA)
 Στο CDMA ορίζεται σε κάθε κόμβο ένας διαφορετικός κώδικας
 Οι κώδικες είναι ορθογώνιοι μεταξύ τους (δηλ. το εσωτερικό
γινόμενο μεταξύ οποιωνδήποτε δύο κωδίκων είναι 0)
 Κάθε κόμβος χρησιμοποιεί το δικό του μοναδικό κώδικα για να
κωδικοποιήσει τα bits των δεδομένων που στέλνει
 Οι κόμβοι μπορούν να εκπέμπουν ταυτόχρονα
 Πολλαπλοί κόμβοι σε κάθε κανάλι
 Οι αντίστοιχοι προς αυτούς δέκτες
 Λαμβάνουν σωστά τα κωδικοποιημένα bits δεδομένων ενός
πομπού
– Θεωρώντας ότι ο δέκτης γνωρίζει τον κώδικα του πομπού,
παρά τις παρεμβαλλόμενες μεταδόσεις άλλων κόμβων

Παράδειγμα CDMA

Sender

Data d0=1 Zi,m=di*cm


bits
d1=-1

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 (συνέχεια)

 Όταν δεν υπάρχουν παρεμβάλλοντες πομποί


 Ο δέκτης

– Λαμβάνει τα κωδικοποιημένα bits


– Ανακτά τα αρχικά bit δεδομένων, di, υπολογίζοντας το

M
1
di= —
M
ΣZ
m=1
i,m*cm

• Τα παρεμβάλλοντα εκπεμπόμενα δυαδικά σήματα είναι


προσθετικά

Σύντομη ιστορία των δικτύων


...
Ιστορία των δικτύων
Οι δικτυακές εφαρμογές αντικαθιστούν τις
“μη δικτυακές”:

– Ταχυδρομείο και ενδοεταιρικά mail, fax →


email, IM
– Μεταδόσεις: τηλεόραση, ράδιο
– Διαδραστική επικοινωνία μέσω φωνής, video
→ VOIP
– Πρόσβαση πληροφοριών → web, P2P
– Πρόσβαση δίσκων → iSCSI, Fiberchannel-
over-IP

Βασικές ιστορικές στιγμές του


Διαδικτύου
• 1962: Ο Paul Baran (Rand Corporation) προτείνει την μεταγωγή πακέτων
• 1969: Το Defense Advanced Research Projects Agency των ΗΠΑ
χρηματοδοτεί ένα πρόγραμμα σε δίκτυα μεταγωγής πακέτων
Δημιουργείται το ARPANET με τέσσερεις κόμβους

• 1974: Οι Vint Cerf και Bob Kahn δημοσιεύουν τους βασικούς μηχανισμούς
του Transmission Control Protocol (TCP)
• 1982: Η ιεραρχία πρωτοκόλλων TCP/IP ορίζεται για το ARPANET

• 1984: Σύστημα καταλόγου ονομάτων (Domain Name System)


• 1986: Δημιουργείται το NSFNET (56 Kbps)

• 1992: Ο Tim Berners-Lee (CERN) σχεδιάζει τον Παγκόσμιο Ιστό (World


Wide Web)
Εξέλιξη διαδικτύου & δικτύων
στον χρόνο

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

• διαίρεση κωδίκων - Code Division Multiple Access (CDMA)

Μεταγωγή Κυκλωμάτων: FDM και


TDM
Παράδειγμα:
FDM 4 χρήστες
συχνότητα

χρόνος
συχνότητα

TDM

χρόνος
Πολυπλεξία με διαίρεση
συχνότητας
Ισχύς
Διαμόρφωση Συντονισμένος
στο κανάλι 1 στο κανάλι 1
Συχνότητα
Σήμα 1 L1 R1 Σήμα 1

Σήμα N LN RN Σήμα N
Διαμόρφωση Ισχύς Συντονισμένος
στο κανάλι N στο κανάλι N

Συχνότητα

Πολυπλεξία με διαίρεση χρόνου


Πλαίσιο (Frame)

Σήμα 1 1 N-1 N 1 N-1 N


… …
Σήμα 2
Χρόνος
Χρονο-
θυρίδα

Σήμα N
Διαμόρφωση ισχύς
στο κανάλι N
Στατιστική πολυπλεξία (statistical
multiplexing)
• Διαίρεση χρόνου «κατ’ αίτηση»
• Χρονοπρογραμματισμός συνδέσμου ανά πακέτο
• Πακέτα από διαφορετικές πηγές εναλλάσσονται στον σύνδεσμο
• Ζητήματα:
• Τα πακέτα χρειάζονται ετικέτες (labels) ή διευθύνσεις (addresses)
•  Απαιτείται η ενταμίευση πακέτων
•  Μπορεί να συμβεί υπερχείλιση ενταμιευτών σε καταστάσεις
συμφόρησης

Πολυπλεξία FDM και TDM


• FDM:
– προσαρμόζει το σήμα στα χαρακτηριστικά του μέσου
– παράδειγμα: μετάδοση τηλεόρασης

• TDM:
– κατάλληλο για σύγχρονη επικοινωνία
– παράδειγμα: σταθερή τηλεφωνία, κινητή τηλεφωνία (GSM)

• Κι οι δύο τεχνικές δεσμεύουν πόρους (συχνότητα ή


χρονοθυρίδες) με στατικό τρόπο
• Λόγω της στατικής δέσμευσης δεν είναι
αποδοτικές για εκρηκτική κίνηση (bursty traffic)
Μεταγωγή Πακέτων: Στατιστική
Πολυπλεξία

Η ακολουθία πακέτων παράγεται από τις πηγές Α και


Β με τυχαίο τρόπο → στατιστική πολυπλεξία

Στο TDM δίνεται σε κάθε κόμβο η ίδια χρονοθυρίδα

Πολλαπλή Πρόσβαση Διαίρεσης Κώδικα (CDMA) 1


• Στο CDMA ορίζεται σε κάθε κόμβο ένας διαφορετικός
κώδικας
• Οι κώδικες είναι ορθογώνιοι μεταξύ τους (δηλ. το
εσωτερικό γινόμενο μεταξύ οποιωνδήποτε δύο
κωδίκων είναι 0)
• Κάθε κόμβος χρησιμοποιεί το δικό του μοναδικό
κώδικα για να κωδικοποιήσει τα bits των δεδομένων
που στέλνει
Πολλαπλή Πρόσβαση Διαίρεσης Κώδικα (CDMA) 2
• Οι κόμβοι μπορούν να εκπέμπουν ταυτόχρονα
• Πολλαπλοί κόμβοι σε κάθε κανάλι
• Οι αντίστοιχοι προς αυτούς δέκτες
– Λαμβάνουν σωστά τα κωδικοποιημένα bits δεδομένων ενός πομπού
• Θεωρώντας ότι ο δέκτης γνωρίζει τον κώδικα του πομπού,
παρά τις παρεμβαλλόμενες μεταδόσεις άλλων κόμβων

Παράδειγμα CDMA
Sender

Data d0=1 Zi,m=di*cm


bits
d1=-1

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 (συνέχεια)

• Όταν δεν υπάρχουν παρεμβάλλοντες πομποί


– Ο δέκτης
• Λαμβάνει τα κωδικοποιημένα bits
• Ανακτά τα αρχικά bit δεδομένων, di, υπολογίζοντας το

M
1
di= — S Zi,m*cm
M m=1

• Τα παρεμβάλλοντα εκπεμπόμενα δυαδικά σήματα είναι προσθετικά

Ταξινόμηση δικτύων επικοινωνίας


βάσει του τρόπου ανταλλαγής δεδομένων
Δίκτυα επικοινωνίας
(Communication Networks)

Δίκτυα μεταγωγής Δίκτυα εκπομπής


(Switched networks) (Broadcast networks)

Δίκτυα μεταγωγής Δίκτυα μεταγωγής πακέτων


κυκλωμάτων (Packet switched
(Circuit switched networks)
networks)

Datagram Δίκτυα μεταγωγής


FDM TDM Networks εικονικών κυκλωμάτων
(Virtual circuit networks)
Internet
Πυρήνας Δικτύου: Μεταγωγή
Κυκλωμάτων
Οι δικτυακοί πόροι (π.χ bandwidth) διαιρούνται σε
«κομμάτια»
• Τα κομμάτια απονέμονται στις κλήσεις
• Πόροι δε χρησιμοποιούνται όταν η πηγή είναι
αδρανής

Διαίρεση bandwidth σε «κομμάτια»


• Διαίρεση συχνότητας
• Διαίρεση χρόνου

Παράδειγμα
Πόσο χρόνο θα πάρει για να σταλεί ένα αρχείο των
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 κύκλωμα

 Κάθε κύκλωμα έχει ρυθμό μετάδοσης 1.536 Mbps/24 = 64 Kbps


 Χρειάζεται 640000bits/64Kbps = 10 s για να μεταδώσει το αρχείο
Προσθέτοντας 500 ms για να δημιουργηθεί το κύκλωμα: 10 s + 500
ms = 10.5 s συνολικά για να μεταδοθεί το αρχείο.
 Ο χρόνος μετάδοσης ειναι ανεξάρτητος από τον # συνδέσμων.

Άλλο ένα παράδειγμα


 Πόσο χρόνο θα πάρει για να σταλεί ένα αρχείο των
640000 bits από τον κόμβο Α στον κόμβο Β πάνω
από ένα δίκτυο μεταγωγής κυκλωμάτων;
– Όλοι οι σύνδεσμοι είναι στα 1.536 Mbps
– Κάθε σύνδεσμος χρησιμοποιεί το FDM με 24 κανάλια
(συχνότητες)
– Χρειάζονται 500 msec για να δημιουργηθεί ένα end-to-
end κύκλωμα
Άλλο ένα αριθμητικό παράδειγμα
Πόσο χρόνο θα πάρει για να σταλεί ένα αρχείο των
640000 bits από τον κόμβο Α στον κόμβο Β πάνω
από ένα δίκτυο μεταγωγής κυκλωμάτων;
– Όλοι οι σύνδεσμοι είναι στα 1.536 Mbps
– Κάθε σύνδεσμος χρησιμοποιεί το FDM με 24 κανάλια
(συχνότητες)
– Χρειάζονται 500 msec για να δημιουργηθεί ένα end-to-
end κύκλωμα

Οι υπολογισμοί είναι οι ίδιοι με το προηγούμενο παράδειγμα.

Πυρήνας Δικτύου: Μεταγωγή


Πακέτων
Κάθε ροή δεδομένων • Ανταγωνισμός για τους
πόρους
διαιρείται σε πακέτα • Η συνολική ζήτηση πόρων ενδέχεται
• Τα πακέτα των χρηστών Α, Β να υπερβαίνει τους διαθέσιμους
μοιράζονται τους δικτυακούς πόρους
πόρους • Συμφόρηση: πακέτα περιμένουν τη
• Κάθε πακέτο χρησιμοποιεί όλο το σειρά τους για μετάδοση στην ουρά
bandwidth της ζεύξης • Αποθήκευση και προώθηση:
μεταφορά κατά άλματα
• Πόροι χρησιμοποιούνται μόνο
• (hop by hop):
όταν χρειάζεται
• Μετάδοση στη ζεύξη
Διαίρεση bandwidth σε «κομμάτια» • Αναμονή στην επόμενη ζεύξη
Δέσμευση πόρων
Μεταγωγή πακέτων έναντι
μεταγωγής κυκλωμάτων 1
Η μεταγωγή πακέτων επιτρέπει σε περισσότερους
χρήστες να χρησιμοποιούν το δίκτυο
 Παράδειγμα
• Κάθε χρήστης:
• 100 kbps όταν «ενεργός»
• Ενεργός 10% του χρόνου

• Μεταγωγή κυκλώματος: 10 χρήστες


• Μεταγωγή πακέτων:
• Με 35 χρήστες, πιθανότητα > 10 ενεργοί χρήστες ταυτόχρονα: πολύ
μικρή
• Με ≤ 10 χρήστες, συνολικό bandwidth που χρειάστηκε ≤1 Μbps
•  ίδια απόδοση, καμία καθυστέρηση με πάνω από 3Χ των χρηστών

Μεταγωγή πακέτων έναντι


μεταγωγής κυκλωμάτων 2
Μεταγωγή πακέτων:
• Ιδανική για δεδομένα που χαρακτηρίζονται από
σποραδικότητα (bursty)
– Διαμοιρασμός πόρων
– Απλούστερη: δεν απαιτεί εγκαθίδρυση σύνδεσης

• Υπερβολική συμφόρηση: καθυστέρηση & απώλειες


πακέτων
– Απαιτούνται πρωτόκολλα για την αξιόπιστη μεταφορά
δεδομένων, έλεγχο συμφόρησης
Μεταγωγή πακέτων έναντι
μεταγωγής κυκλωμάτων 2 συνέχεια
•  τρόπος να συμπεριφερθεί όπως η μεταγωγή
κυκλωμάτων;
 Εφαρμογές audio/video απαιτούν εγγυήσεις ως προς το
bandwidth, jitter → Quality of Service (QoS)
 Θα το εξετάσομε αργότερα …

Δίκτυα μεταγωγής πακέτων:


προώθηση
• Στόχος: μετακίνηση πακέτων από την πηγή στον προορισμό μέσω δρομολογητών
– Αλγόριθμοι δρομολόγησης (routing algorithms): αλγόριθμοι επιλογής διαδρομής
μεταξύ πηγής – προορισμού (κεφάλαιο 4)
• Δίκτυο αυτοδύναμων πακέτων (datagrams)
– Η διεύθυνση προορισμού που περιέχεται στο πακέτο προσδιορίζει τον επόμενο
κόμβο
 Οι διαδρομές ενδέχεται να μεταβληθούν κατά τη διάρκεια μιας συνεδρίας
• Δίκτυο εικονικών κυκλωμάτων (virtual circuits)
– Κάθε πακέτο «ετικέτα» (ID εικονικού κυκλώματος), η ετικέτα προσδιορίζει τον επόμενο
κόμβο
Η διαδρομή προσδιορίζεται κατά την εγκαθίδρυση κλήσης, παραμένει αμετάβλητη
κατά τη διάρκεια της κλήσης
– Οι δρομολογητές διατηρούν πληροφορία για την κατάσταση κάθε κλήσης
Μεταγωγή (switching)

• Δίκτυο επικοινωνίας: διασύνδεση κόμβων


• Μεταγωγή: προώθηση δεδομένων από τον
σύνδεσμο εισόδου στον σύνδεσμο εξόδου
ενός κόμβου

Μεταγωγή κυκλωμάτων (circuit


switching)
μεταγωγείς

... ...

• Μεταγωγείς και σύνδεσμοι συμμετέχουν στην


δημιουργία κυκλωμάτων από-άκρο-σε-άκρο (end-
to-end)
• Τα κυκλώματα δεσμεύονται για τους χρήστες μόνο
για την διάρκεια της επικοινωνίας
Μεταγωγή πακέτων (packet
switching)
μεταγωγέας /
σταθμός δρομολογητής

• Τα μηνύματα διαιρούνται σε πακέτα (τεμαχισμός - fragmentation)


• Κάθε πακέτα περιέχει τα δεδομένα του χρήστη και πληροφορία ελέγχου
(π.χ. διευθύνσεις)
• Ένας κόμβος λαμβάνει τα πακέτα, τα αποθηκεύει προσωρινά, και τα
προωθεί στον επόμενο κόμβο (store-and-forward)

Ας θεωρήσομε τώρα ένα δίκτυο μεταγωγής


πακέτων και ας συζητήσομε τις διάφορες
καθυστερήσεις και απώλειες των πακέτων …
Τέσσερεις πηγές καθυστέρησης σε
ένα δρομολογητή
1. Επεξεργασία στον • 2. Αναμονή στην ουρά:
κόμβο: • Χρόνος αναμονής στη ζεύξη εξόδου
Εξαρτάται από το βαθμό συμφόρησης
– Εξέταση του header

του δρομολογητή
– Προσδιορισμός ζεύξης • Τάξεως microseconds ~milliseconds
εξόδου
– Έλεγχος σφαλμάτων
bits
– Τάξεως microseconds

Τέσσερεις πηγές καθυστέρησης σε ένα δρομολογητή


• 3. Καθυστέρηση μετάδοσης • 4. Καθυστέρηση διάδοσης
– R: bandwidth ζεύξης (bps) • D: μήκος φυσικής ζεύξης
– L: μήκος πακέτου (bits) • S: ταχύτητα διάδοσης μέσου (~
– Χρόνος μετάδοσης πακέτου: L/R 2-3 x 108 m/sec)
– Τάξεως microseconds με milliseconds • Χρόνος διάδοσης πακέτου D/S
 Αντιστοιχεί στην προώθηση όλων των bits • Τάξεως microseconds με
του πακέτου στη ζεύξη milliseconds
•  Ένα bit, αφού προωθηθεί
προς τη ζεύξη, πρέπει να
διαδοθεί ως το δρομολογητή
Καθυστέρηση στον κόμβο

Καθυστέρηση κόμβου είναι η καθυστέρηση σε ένα


δρομολογητή
• dproc = καθυστέρηση επεξεργασίας (processing
delay)
– Συνήθως μερικά microseconds ή λιγότερο
• dqueue = καθυστέρηση αναμονής ουράς (queuing
delay)
– Εξαρτάται από τη συμφόρηση

Καθυστέρηση Διάδοσης έναντι


Καθυστέρησης Μετάδοσης
 Πολύ σημαντική διαφορά!
• Καθυστέρηση μετάδοσης: Ο χρόνος που απαιτείται ώστε ο δρομολογητής
να προωθήσει το πακέτο
– Συνάρτηση του μήκους πακέτου & του ρυθμού μετάδοσης της ζεύξης
ΔΕΝ έχει να κάνει με την απόσταση μεταξύ των δύο δρομολογητών
• Καθυστέρηση διάδοσης: ο χρόνος που χρειάζεται ένα bit για να διαδοθεί
από τον ένα δρομολογητή στον επόμενο
• Σχετίζεται με την απόσταση μεταξύ των δύο δρομολογητών
ΔΕΝ έχει να κάνει με το μήκος πακέτου ή το ρυθμό μετάδοσης της
ζεύξης
Αναλογία/παράδειγμα με μία
φάλαγγα οχημάτων 1

Υποθέσεις προβλήματος
• όχημα  bit, φάλαγγα  πακέτο
• Όλα τα αυτοκίνητα της φάλαγας πρέπει να φτάσουν
@ πρώτα διόδια πριν το πρώτο αυτοκίνητο ξεκινήσει
για τα δεύτερα διόδια

Αναλογία/παράδειγμα με μία
φάλαγγα οχημάτων 2

• Οχήματα «οδεύουν» με ταχύτητα 100 km/hr 


χρόνος διάδοσης
• Κάθε όχημα κάνει 12 sec στα διόδια χρόνος
μετάδοσης
• Δεν υπάρχουν άλλα οχήματα  καμία άλλη κίνηση &
καθυστερήσεις στην ζεύξη
Πόσος χρόνος για να φθάσει η φάλαγγα @ δεύτερα
διόδια;
Αναλογία/παράδειγμα με μία
φάλαγγα οχημάτων 3

Πόσος χρόνος για να φθάσει η φάλαγγα στα
δεύτερα διόδια;

• Συνολικός χρόνος διέλευσης από τα διόδια για όλα


τα οχήματα = 12 (λεπτά το κάθε ένα στα διόδια)
*10 (αυτοκίνητα)= 120 sec = 2min
• Χρόνος διαδρομής για το τελευταίο όχημα από τα
πρώτα διόδια στα δεύτερα: 100km (απόσταση S) /
100km/hr (ταχύτητα D) = 1 hr

Αναλογία (Φάλαγγα οχημάτων)

 Συνολικός χρόνος διέλευσης από


• Τα οχήματα τώρα «οδεύουν» με τα διόδια για όλα τα οχήματα =
ταχύτητα 1000 km/hr 1*10 = 10 min
• Χρόνος στα διόδια ανά όχημα: 1 min  Χρόνος διαδρομής από τα πρώτα
διόδια σε δεύτερα:
 Θα φτάσουν τα οχήματα @ δεύτερα 100km/(1000km/hr) = 6 min
διόδια πριν όλα τα οχήματα  Μετά από 7 λεπτά, το πρώτο
εξυπηρετηθούν @ πρώτα διόδιά; όχημα θα είναι στα δεύτερα διόδια
και 3 οχήματα θα είναι ακόμα στα
πρώτα...
Αναλογία (Φάλαγγα οχημάτων)

 Συνολικός χρόνος διέλευσης από


• Τα οχήματα τώρα «οδεύουν» με τα διόδια για όλα τα οχήματα =
ταχύτητα 1000 km/hr 1*10 = 10 min
• Χρόνος στα διόδια ανά όχημα 1  Χρόνος διαδρομής από τα πρώτα
min διόδια σε δεύτερα:
100km/(1000km/hr) = 6 min
• Ε: Θα φτάσουν τα οχήματα στα
δεύτερα διόδια πριν όλα τα οχήματα  Στο 7 λεπτό το πρώτο όχημα θα
εξυπηρετηθούν στα πρώτα διόδιά; είναι στα δεύτερα διόδια και 3
οχήματα θα είναι ακόμα στα
 ΝΑΙ, το πρώτο bit του πακέτου
πρώτα.
μπορεί να φτάσει στον δεύτερο
δρομολογητή πριν το πακέτο έχει
σταλεί ολόκληρο από τον πρώτο
δρομολογητή

• Αυτή η κατάσταση συμβαίνει επίσης σε δίκτυα


μεταγωγής πακέτων:

Το πρώτο bit ενός πακέτου μπορεί να φτάσει σε


ένα δρομολογητή ενώ πολλά από τα υπόλοιπα
bits του πακέτου ακόμη περιμένουν να
μεταδοθούν από τον προηγούμενο δρομολογητή
Καθυστέρηση διάδοσης &
Sender μετάδοσης Απόσταση sender, receiver
Receiver
Ταχύτητα διάδοσης
bit

Propagation delay
καθυστέρηση διάδοσης

Λήφθηκε το πρώτο bit


Καθυστέρηση μετάδοσης
Λήφθηκε το τελευταίο bit
Ορίζοντας χρόνου

Bandwidth του link


Μέγεθος του πακέτου

Μερικοί ακόμη όροι


• Ακραίος δρομολογητής (edge router): Ο
πρώτος δρομολογητής σε μια διαδρομή από
ένα ακραίο σύστημα (end system) σε
οποιοδήποτε άλλο μακρινό ακραίο σύστημα
Διατερματική καθυστέρηση (End-
to-end delay) 1
• Έστω N-1 δρομολογητές μεταξύ του αρχικού και του τελικού host
• Πακέτο μήκους L
• Το δίκτυο είναι ασυμφόρητο (uncongested)  Καθυστέρηση αναμονής
στην ουρά dqueue=0
• Η καθυστέρηση επεξεργασίας σε κάθε δρομολογητή και στον αρχικό host
είναι dproc, ο ρυθμός μετάδοσης από κάθε δρομολογητή και από τον
αρχικό host είναι R bits/sec και η καθυστέρηση διάδοσης σε κάθε ζεύξη
είναι dprop.

Διατερματική καθυστέρηση (End-


to-end delay) 2
• Οι καθυστερήσεις κόμβων αθροίζονται και δίνουν τη διατερματική
καθυστέρηση:

dend-to-end = N* (dproc +dtrans+dprop), όπου


dtrans=L/R

 Γενικεύστε τον παραπάνω τύπο στην περίπτωση που υπάρχουν


ετερογενείς ζεύξεις ή διαφορετικές καθυστερήσεις στα διάφορα τμήματα
του δικτύου
Απώλειες πακέτων 1
• Η ουρά (buffer) στη ζεύξη εξόδου έχει πεπερασμένη
χωρητικότητα
Όταν ένα πακέτο βρίσκει την ουρά γεμάτη, το
πακέτο απορρίπτεται (χάνεται)
 Επίσης, το πακέτο μπορεί να μη ληφθεί σωστά, σε

περιπτώσεις:
• ταυτόχρονων μεταδόσεων σε μία ζεύξη
• παρεμβολών και θορύβου
• χαμηλής έντασης σήματος στον παραλήπτη
• πολλών λαθών

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

Μαρία Παπαδοπούλη

Σκοποί ενότητας
... Ερωτήσεις από τα προηγούμενα lectures ...
• Επίπεδο ζεύξης
• Ανίχνευση και διόρθωση λαθών
• Τυχαία πολλάπλή πρόσβαση στο κανάλι
• MAC διευθύνσεις

Βασισμένο κυρίως στο Κεφ. 5 βιβλίου Kurose


Μοντέλο επιπέδων Διαδικτύου
(Στοίβα TCP/IP)
εφαρμογής Υλοποιεί τις κατανεμημένες εφαρμογές

μεταφοράς Yπεύθυνο για τη μεταφορά δεδομένων από τον ένα


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

Μοντέλο επιπέδων Διαδικτύου


(Στοίβα TCP/IP)
εφαρμογής Μήνυμα Payload (data)

μεταφοράς
Τμήμα H1 Payload (data)
δικτύου
Datagram H2 H1 Payload (data)
ζεύξης
frame H3 H2 H1 Payload (data)
φυσικό

Ένα τερματικό κόμβος (end-node) που στέλνει δεδομένα (πηγή):

 Καθε επίπεδο: Ενθυλάκωση


Λαμβάνει δεδομένα από το ανώτερο επίπεδο

Προσθέτει επικεφαλίδα και δημιουργεί νέα μονάδα δεδομένων


Προωθεί την νέα μονάδα στο επόμενο επίπεδο
Ενθυλάκωση

Επίπεδο ζεύξης
• Χειρίζεται μεταφορές δεδομένων μεταξύ γειτονικών στοιχείων του
δικτύου

 δηλαδή τη μεταφορά του πάνω από μία ζεύξη


 ενώ το επίπεδο δικτύου χειρίζεται την end-to-end (από τον αποστολέα
στον παραλήπτη) μεταφορά του πακέτου
• Καθορίζεται από την τεχνολογία της ζεύξης επικοινωνίας των γειτονικών
στοιχείων
• Παραδείγματα:
– Ethernet (ΙΕΕΕ802.3)
– Wireless LAN (e.g., ΙΕΕΕ802.11)
Επίπεδο ζεύξης: εισαγωγικά
σχόλια
Τα datagrams μεταφέρονται από διαφορετικά πρωτόκολλα ζεύξης μέσω
διαφορετικών ζεύξεων (links):
Π.χ., Ethernet στην πρώτη ζεύξη, ΙΕΕΕ802.11 στη δεύτερη ζεύξη, …
Κάθε πρωτόκολλο ζεύξης δεδομένων παρέχει διαφορετικές υπηρεσίες

 Παράδειγμα-αναλογία από τις μεταφορές


• Ταξίδι από Manhattan στο Μύρτος-Κρήτης
 τραίνο: από το Manhattan στο JFK
 αεροπλάνο: από το JFK στην Αθήνα
 καράβι: από την Αθήνα στο Ηράκλειο
 Λεωφορείο: από το Ηράκλειο στον Μύρτο
• τουρίστας= datagram
• τμήμα μεταφοράς = ζεύξη επικοινωνίας
• τρόπος μεταφοράς= πρωτόκολλο επιπέδου ζεύξης
• ταξιδιωτικός πράκτορας = αλγόριθμος δρομολόγησης

Χρήσιμη Ορολογία στο Επίπεδο



Zεύξης
Κόμβους (nodes) θα ονομάζομε τα hosts (τερματικά) & τους routers
(δρομολογητές)
• Ζεύξεις (links): κανάλια επικοινωνίας που ενώνουν/συνδέουν γειτονικούς
κόμβους

frames επιπέδου ζεύξης

• Ο κόμβος που στέλνει:


1. Ενθυλακώνει το datagram σε ένα frame επιπέδου ζεύξης, και
2. μεταδίδει το frame μέσω της ζεύξης
• Ο κόμβος που λαμβάνει:
1. λαμβάνει το frame, και
2. αποσπά το datagram
Επίπεδο ζεύξης: εισαγωγή
Πρωτόκολλα ζεύξεις διαφορετικών τεχνολογιών
μπορεί να διαφέρουν μεταξύ τους

“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 …

•Μετάδοση (broadcast) (διαμοιραζόμενο μέσο)


Εχει πολλαπλούς sending και receiving κόμβους
 Ο οποιοσδήποτε μπορεί να στείλει ένα frame
 Ολοι οι υπόλοιποι το λαμβάνουν
traditional Ethernet (ΙΕΕΕ802.3)
upstream HFC
ΙΕΕΕ802.11 wireless LAN
Επικοινωνία προσαρμοστών
(adapters)
datagram
link layer protocol receiving
sending node
node
frame frame
adapter adapter

• Το επίπεδο ζεύξης υλοποιείται σε έναν adapter ( NIC)


πχ Ethernet, PCMCI, IEEE802.11 κάρτες
• Ο adapter είναι ημιαυτόνομος
Αποστέλλουσα πλευρά: • Επίπεδο ζεύξης και φυσικό επίπεδο
 Ενθυλακώνει το datagram σε ένα frame
 Προσθέτει bits ελέγχου λαθών, ελέγχου ροής, κτλ.
Κάτω από τον έλεγχο
του τοπικού κόμβου
Λαμβάνουσα πλευρά: Μοιράζεται με αυτόν
 Κοιτάει για λάθη, έλεγχο ροής, κτλ. ενέργεια & διαύλους
 Αποσπά το datagram, και το προωθεί στον λαμβάνοντα κόμβο
 Δεν διακόπτει τον πατρικό/τοπικό κόμβο (node) όταν λαμβάνει
datagram που προορίζεται για άλλο κόμβο

Προσαρμοστές (adapters)
O adapter περιλαμβάνει RAM, DSP (Digital Signal Processing) chips, δίαυλους(bus), διεπαφή
ζεύξης & μοιράζεται την ενέργεια & τους δίαυλους με τον πατρικό κόμβο
Node I/O Bus

Bus Link Network Link


Interface Interface

Adaptor card Errors may occur

Node

Είναι υπεύθυνο για την επικοινωνία με τον πατρικό κόμβο του adapter.
Μεταφέρει δεδομένα & πληροφορίες ελέγχου μεταξύ adapter-πατρικού κόμβου

Υλοποιεί το πρωτόκολλο επιπέδου ζεύξης


Παρέχει πλαισίωση (framing), αποπλαισίωση (deframing), ανίχνευση & διόρθωση λαθών,
και μηχανισμό τυχαίας πρόσβασης
Υπηρεσίες στο Επίπεδο ζεύξης 1
• Πλαισίωση, πρόσβαση ζεύξης (framing, link access):

 Ενθυλάκωση του datagram του επιπέδου δικτύου σε


frame, προσθήκη επικεφαλίδας (header), ουράς (trailer)
 Πρόσβαση στο κανάλι, αν είναι μέσο διαμοιραζόμενης
πρόσβασης
 Οι “MAC” διευθύνσεις των επικεφαλίδων frames
χρησιμοποιούνται
για να προσδιορίσουν την πηγή και τον προορισμό
 διαφορετικό από την διεύθυνση ΙP!

Υπηρεσίες στο Επίπεδο ζεύξης 2


• Αξιόπιστη μετάδοση πακέτων μεταξύ γειτονικών κόμβων

– Σπάνια χρησιμοποιείται σε ζεύξεις με χαμηλές


πιθανότητες λάθους (πχ fiber)
 Όμως χρησιμοποιείται σε ασύρματες ζεύξεις που
χαρακτηρίζονται
από υψηλά ποσοστά λαθών
 Παρόμοιο θέμα αξιόπιστης μετάδοσης υπάρχει & στο
επίπεδο δικτύου
(UDP, TCP)
Υπηρεσίες επιπέδου ζεύξης
(περισσότερα) 1
• Έλεγχος ροής (flow control):

– Έλεγχος ρυθμού μεταξύ γειτονικών κόμβων αποστολέων


& παραληπτών
• Ανίχνευση λαθών (error detection):

– Λάθη προκαλούνται από εξασθένηση του σήματος,


θόρυβο
– Ο παραλήπτης ανακαλύπτει την ύπαρξη λαθών:
• Στέλνει σήμα στον αποστολέα για επαναποστολή ή απορρίπτει
το frame
• Υπάρχει πιθανότητα να έχομε στον δέκτη πακέτο με
undetected errors & το πακέτο να προωθηθεί στο επίπεδο
δικτύου

Υπηρεσίες επιπέδου ζεύξης


(περισσότερα) 2
• Διόρθωση λαθών (error correction):

– Ο παραλήπτης βρίσκει και διορθώνει τα λανθασμένα


bit χωρίς να καταφύγει στην επαναποστολή
• Ημιαμφίδρομο (half-duplex) και πλήρως αμφίδρομο (full-duplex)

– Με το ημιαμφίδρομο, οι κόμβοι και στις δύο άκρες της


ζεύξης μπορούν να μεταδίδουν, αλλά όχι ταυτόχρονα
Ανίχνευση λαθών
• Μπορούμε να μειώσομε τη πιθανότητα μη-ανίχνευσης λαθών
χρησιμοποιώντας πιο έξυπνους αλγορίθμους
Ωστόσο έτσι μπορεί να αυξήσομε τη καθυστέρηση της προώθησης των πακέτων
λόγω αυξημένων υπολογισμών, και τη μετάδοση περισσοτέρων bits

 Από την άλλη έτσι μπορεί να αποφύγομε τα retransmissions


τα οποία επίσης αυξάνουν την καθυστέρηση της προώθησης
των
πακέτων και τη μετάδοση περισσοτέρων bits

• Τεχνικές

• Έλεγχοι ισοτιμίας (parity checks)


• Άθροισμα ελέγχου (checksumming, συνήθως στο επίπεδο

Ανίχνευση Λάθους
EDC= Error Detection and Correction bits (redundancy)
D = Data, προστατεύεται από τον έλεγχο λαθών, μπορεί να
περιλαμβάνει τμήματα της επικεφαλίδας

• Η ανίχνευση λαθών δεν είναι 100% αξιόπιστη!


• Το πρωτόκολλο μπορεί να χάσει κάποια λάθη, αλλά σπάνια
• μεγαλύτερο EDC τμήμα έχει σαν αποτέλεσμα καλύτερη ανίχνευση
και διόρθωση
Έλεγχοι ισοτιμίας
Απλούστερο: χρήση ενός μoναδικού bit ισοτιμίας
(single parity bit)
• Εστω ότι d bits πληροφορίας στέλνονται
• Σε ένα even-parity μοντέλο, ο αποστολέας στέλνει
ένα επιπρόσθετο bit και επιλέγει την τιμή του ώστε
ο συνολικός αριθμός 1s των d+1 bits είναι άρτιος
 Ο δέκτης απλά ελέγχει των αριθμό των 1 και το
parity bit
και μπορεί να ξέρει αν ένας περιττός αριθμός λαθών
έχει συμβεί

Έλεγχος ισοτιμίας

Μοναδικό Bit Ισοτιμίας: Δισδιάστατο Bit Ισοτιμίας:


Ανιχνέυει λάθη ενός μόνο bit Ανιχνεύει και διορθώνει λάθη σε ένα μόνο bit

Δεν
διορθώνουν
το
λάθος

0 0

 Προσοχή: δείτε αν διορθώνονται περισσότερα λάθη


και σε ποιές περιπτώσεις
Περίπτωση πολλαπλών λαθών
(Parity checks)
 Εάν το λάθος σε ένα bit συμβαίνει ανεξάρτητα από τι γίνεται στα
διπλανά του bits τότε η πιθανότητα πολλαπλών λαθών σε ένα πακέτο
είναι πολύ μικρή

 Γιατί ???
 Ωστόσο εμπειρικές μελέτες με μετρήσεις σε πραγματικά δίκτυα
δείχνουν ότι τα λάθη στα bits γίνονται σε bursts (έχουν “εκρηκτικό” pattern)
δηλαδή υπάρχουν γειτονικά bits που έχουν λάθη

 Επομένως ένας πιο robust μηχανισμός πρέπει να χρησιμοποιηθεί


 και ευτυχώς χρησιμοποιείται στην πράξη!

Forward error correction (FEC)


μηχανισμοί
• Μηχανισμοί στον δέκτη για ανίχνευση και
διόρθωση λάθους
• Τυπικά χρησιμοποιούνται σε audio storage &
playback devices (πχ audio CDs)
• Στα δίκτυα βοηθούν γιατί ελαττώνουν τον αριθμό
των retransmissions που πρέπει να γίνουν
Μέθοδοι αθροίσματος ελέγχου
(checksumming) 1
Σε αυτές τις τεχνικές, τα d bits δεδομένων
μεταχειρίζονται σαν μία ακολουθία από k-bit
ακεραίους
Internet checksum:
• Άθροισε αυτούς τους k-bit ακεραίους, και
• Χρησιμοποίησε το παραγόμενο άθροισμα ως bits
ανίχνευσης λαθών (e.g., k=16)

Μέθοδοι αθροίσματος ελέγχου


(checksumming) 2
 TCP & UDP: Τα checksums υπολογίζονται με βάση όλα
τα πεδία (επικεφαλίδα & δεδομένα)
– Σε άλλα πρωτόκολλα: Ένα checksum υπολογίζεται για
την επικεφαλίδα και ένα άλλο checksum υπολογίζεται
για ολόκληρο το πακέτο
 Μικρή επιβάρυνση αλλά και μικρή προστασία
Έλεγχος κυκλικού πλεονασμού-
Cyclic Redundancy Check (CRC) 1
Επίσης αποκαλούνται πολυωνυμικοί κώδικες
• Θεωρείστε ένα κομμάτι δεδομένων d-bit, το οποίο ο αποστολέας θέλει να στείλει
στον παραλήπτη
• Ο αποστολές & παραλήπτης συμφωνούν σε μία γεννήτρια G, δηλαδή μια
ακολουθία από (r+1) bits

Για ένα δοθέν κομμάτι δεδομένων D, ο αποστολέας θα

 επιλέξει r επιπρόσθετα bits R


 τα προσθέσει στο τέλος του D
έτσι ώστε το σχήμα των (d+r) bits που προκύπτει, να διαιρείται ακριβώς από τη
γεννήτρια G χρησιμοποιώντας modulο-2 αριθμητική

Έλεγχος κυκλικού πλεονασμού-


Cyclic Redundancy Check (CRC) 2

Ο παραλήπτης θα κάνει το u=(d+r)/G

• Εάν u  0, ο παραλήπτης γνωρίζει ότι έγινε ένα λάθος


• Αλλιώς τα δεδομένα εκλαμβάνονται ως σωστά
Checksumming: Έλεγχος κυκλικού
πλεονασμού
• Θεώρησε τα bits δεδομένων D, ως ένα δυαδικό αριθμό
• Επέλεξε την γεννήτρια G των (r+1) bits (θα θεωρηθεί γνωστή στον παραλήπτη)
• Επέλεξε τώρα r CRC bits R, έτσι ώστε

– Το <D,R> είναι ακριβώς διαιρέσιμο από το G (modulo 2)


– Ο παραλήπτης γνωρίζει το G, διαιρεί το <D,R> με το G
Εάν το υπόλοιπο είναι μη μηδενικό: λάθος ανακαλύφθηκε!
Μπορεί να ανακαλύψει n συνεχόμενα λανθασμένα bits
(όπου n< r+1 bits)

• Ευρέως χρησιμοποιούμενο στην πράξη (IEEE link layer, ΑΤΜ protocols)

Συστήματα πολλαπλής
πρόσβασης (multiple access) 1

• Συστήματα πολλαπλής πρόσβασης (multiple


access)
• Οι κόμβοι συνδέονται σε κοινό κανάλι
επικοινωνίας
Συστήματα πολλαπλής
πρόσβασης (multiple access) 2

• Συγκρούσεις συμβαίνουν όταν δύο ή


περισσότεροι σταθμοί αποφασίσουν να στείλουν
πακέτα ταυτόχρονα
• Έλεγχος πρόσβασης (access control): περιορίζει τη
μείωση της απόδοσης λόγω συγκρούσεων και
κενών περιόδων

Υπενθύμιση: Σύγκρουση σε ένα δέκτη συμβαίνει όταν frames «μπερδεύονται» μεταξύ


τους καθώς μεταδίδονται σε κοινό κανάλι και λαμβάνονται από το δέκτη

Πρωτόκολλα πολλαπλής
πρόσβασης
• Μοναδικό διαμοιραζόμενο κανάλι μετάδοσης
• Δύο ή περισσότερες ταυτόχρονες μεταδόσεις από τους κόμβους:
παρεμβολές
σύγκρουση εάν ο κόμβος λαμβάνει δύο ή περισσότερα σήματα την ίδια
στιγμή

Πρωτόκολλο πολλαπλής πρόσβασης (multiple access protocol)


• Κατανεμημένος αλγόριθμος που ορίζει το πως οι κόμβοι μοιράζονται το
κανάλι, π.χ., καθορίζει πότε ένας κόμβος μπορεί να μεταδώσει
• Η επικοινωνία για τον διαμοιρασμό του καναλιού πρέπει να
χρησιμοποιήσει το ίδιο το κανάλι!
Δεν υπάρχει out-of-band κανάλι για συντονισμό
Ανενεργό πρωτόκολλο πολλαπλής
πρόσβασης
Κανάλι μετάδοσης ρυθμού R bps
1. Όταν ένας μόνο κόμβος θέλει να μεταδώσει,
μπορεί να στείλει με ρυθμό R (Αποτελεσματικό:
υψηλός ρυθμός)
2. Όταν M κόμβοι θέλουν να μεταδώσουν,ο καθένας
μπορέι να στείλει με μέσο ρυθμό R/M (Δίκαιο)
3. Εντελώς αποκεντροποιημένο:
• Δεν υπάρχει ειδικός κόμβος για να συντονίζει τις μεταδόσεις
• Κανένας συγχρονισμός ρολογιών, σχισμών

4. Απλό

Πρωτόκολλα MAC: ταξινόμηση


1. Κατανομή Καναλιού
• χωρισμός καναλιού σε μικρότερα «τμήματα» (χρονικές σχισμές,
συχνότητα, code)
• δέσμευση τμήματος από τον κόμβο για αποκλειστική χρήση
Παραδείγματα: TDMA, FDMA, CDMA

2. Τυχαία Πρόσβαση
• το κανάλι δεν χωρίζεται, επιτρέπονται συγκρούσεις
• “ανάκαμψη” από τις συγκρούσεις

3. “Παίρνοντας σειρά προτεραιότητας”


οι κόμβοι παίρνουν την σειρά τους, αλλά κόμβοι που έχουν
περισσότερα να στείλουν μπορούν να πάρουν σειρά για
περισσότερη ώρα
Κριτήρια Αξιολόγησης
Πρωτοκόλλων Πρόσβασης
• Αποδοτικότητα είναι ο long-run λόγος του χρόνου κατά τον οποίο τα
πλαίσια μεταδίδονται στο κανάλι χωρίς συγκρούσεις υπό συνθήκες
κορεσμού

• Ποσοστό της χωρητικότητας του καναλιού που μένει αναξιοποίητη στο


χρόνο

• Δικαιοσύνη μεταξύ των συσκευών που το χρησιμοποιούν

• Πολυπλοκότητα
• Απαιτήσεις σε συγχρονισμό μεταξύ των συσκευών
• Extra control μηνύματα που χρειάζονται να μεταδοθούν για το
συντονισμό μεταξύ των κόμβων (protocol overhead)

MAC πρωτόκολλα κατανομής του καναλιού: TDMA

TDMA: time division multiple access


• πρόσβαση στο κανάλι σε «γύρους»
• κάθε σταθμός παίρνει μία σχισμή σταθερού μήκους (μήκος = χρόνος μετάδοσης
πακέτου) σε κάθε γύρο
• η μη χρησιμοποιούμενες σχισμές παραμένουν ανενεργές
• παράδειγμα: 6-σταθμών LAN, 1,3,4 έχουν πακέτα, ανενεργές οι σχισμές 2,5,6
MAC πρωτόκολλα κατανομής του
καναλιού: FDMA
FDMA: frequency division multiple access
• το φάσμα του καναλιού χωρίζεται σε ζώνες συχνοτήτων
• σε κάθε σταθμό δίνεται συγεκριμένη ζώνη συχνότητας
• ο αχρησιμοποιήτος χρόνος μετάδοσης στις ζώνες συχνοτήτων μένει
ανενεργός
• παράδειγμα: 6-σταθμοί LAN, 1,3,4 έχουν πακέτα pkt, οι ζώνες συχνοτήτων
2,5,6 είναι ανενεργές
frequency bands

Πρωτόκολλα Τυχαίας Προσπέλασης


(Random Access)
1. Όταν ένας κόμβος έχει πακέτο να στείλει
• Μεταδίδει στον πλήρη ρυθμό του καναλιού R
• κανένας εκ των προτέρων συντονισμός μεταξύ των κόμβων
Δύο οι περισσότεροι κόμβοι μεταδίδουν  «σύγκρουση»
το MAC πρωτόκολλο τυχαίας πρόσβασης καθορίζει:
• Πως να ανιχνευθούν οι συγκρούσεις
• Πως να ανακάμψει από τις συγκρούσεις (π.χ., μέσω καθυστερημένης
αναμετάδοσης)
Παραδείγματα από MAC πρωτόκολλα τυχαίας πρόσβασης:
• slotted ALOHA
• ALOHA
• CSMA, CSMA/CD, CSMA/CA
ALOHA με σχισμές (slotted
Υποθέσεις
ALOHA)
Λειτουργία
• όλα τα frames έχουν ίδιο μέγεθος • Όταν ένας κόμβος παραλαμβάνει
• ο χρόνος χωρίζεται σε σχισμές ίσου ένα νέο frame, το μεταδίδει στην
μεγέθους, τον χρόνο για τη μετάδοση επόμενη σχισμή
ενός frame • Αν δεν έγινε σύγκρουση, ο κόμβος
• οι κόμβοι ξεκινούν να μεταδίδουν μπορεί να στείλει νέο frame στην
frames μόνο στην αρχή των σχισμών επόμενη σχισμή
• οι κόμβοι είναι συγχρονισμένοι • Σε περίπτωση σύγκρουσης, ο
• Εάν 2 ή περισσότεροι κόμβοι κόμβος ξαναμεταδίδει το frame σε
μεταδίδουν σε μία σχισμή, όλοι οι κάθε επόμενη σχισμή με
κόμβοι ανιχνεύουν την σύγκρουση πιθανότητα p έως ότου πετύχει

Slotted ALOHA

πλεονεκτήματα Μειονεκτήματα
• μοναδικός ενεργός κόμβος μπορεί • συγκρούσεις  χάσιμο σχισμών
συνεχώς να μεταδίδει με τον πλήρη  ανενεργές σχισμές
ρυθμό του καναλιού
• αποκεντροποιημένο: μόνο οι  Οι κόμβοι μπορεί να είναι σε θέση να
σχισμές στους κόμβους χρειάζεται ανιχνεύσουν την σύγκρουση
να είναι συγχρονισμένες σε λιγότερο χρόνο από αυτόν που
χρειάζεται για να μεταδώσουν το
• απλό πακέτο
 Συγχρονισμός ρολογιού
Αποδοτικότητα του Slotted
Aloha σε βάθος χρόνου

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


σχισμών όταν υπάρχουν πολλοί κόμβοι, καθένας με πολλά frames να
στείλουν
ασυμπτωτική συμπεριφορά
• Υποθέστε ότι υπάρχουν N κόμβοι με πολλά frames να στείλουν, και καθένας
μεταδίδει σε μία σχισμή με πιθανότητα p
• Η πιθανότητα ότι ο κόμβος 1 έχει επιτυχία σε μία σχισμή = p(1-p)N-1
• Η πιθανότητα ότι οποιοσδήποτε κόμβος έχει επιτυχία = Np(1-p)N-1

Για μέγιστη αποδοτικότητα εκφράζεται ως πρόβλημα βελτιστοποίησης


Βρείτε το p* το οποίο
μεγιστοποιεί το Np(1-p)N-1

• Για μεγάλα Ν: παίρνουμε το όριο του Np*(1-p*)N-1 (όσο το Ν πάει στο άπειρο)  1/e = .37

Στην καλύτερη περίπτωση: το κανάλι χρησιμοποιείται για χρήσιμες


μετάδόσεις το 37% του χρόνου!

Slotted ALOHA
• Παρόμοια ανάλυση δείχνει οτι το 37% των slots
έμειναν αδειανά
 Σκεφτείτε λοιπόν την απογοήτευση ενός network
administrator που χρησιμοποιεί ένα 100Mbps
slotted ALOHA σύστημα και ενώ το κανάλι έχει τη
δυνατότητα να μεταδόσει ένα frame
χρησιμοποιώντας όλο το channel rate (100Mbps)
σε μεγάλο βάθος χρόνου το επιτυχημένο
throughput του καναλιού είναι λιγότερο από
37Mbps
Καθαρό (unslotted) ALOHA (pure
ALOHA) 1
• Απλούστερο, καθόλου συγχρονισμός
• Όταν ένα frame φτάνει:

Άμεση μετάδοση

• Αν μία σύγκρουση ανιχνευτεί κατά τη διάρκεια μίας μετάδοσης (ανεπιτυχής


μετάδοση):
1. Ολοκλήρωση της μετάδοσης
2. Αμέσως μετά την ολοκλήρωση της ανεπιτυχούς μετάδοσης:
Μετάδοση ξανά του frame με πιθανότητα p

Καθαρό (unslotted) ALOHA (pure


ALOHA) 2
• αλλιώς,
2. αναμονή ίση με το χρόνο μετάδοσης ενός frame
3. Μετά από αυτή την αναμονή, ο κόμβος
3. Μεταδίδει το frame με πιθανότητα p
αλλιώς, παραμένει ανενεργός ξανά για χρόνο ίσο με το χρόνο μετάδοσης ενός
frame
Καθαρό (unslotted) ALOHA (pure
ALOHA)
• unslotted Aloha: Απλούστερο, καθόλου συγχρονισμός

• Όταν ένα frame φτάνει γίνεται άμεση μετάδοση


• Η πιθανότητα σύγκρουσης αυξάνεται:
Το frame που στάλθηκε την στιγμή t0 συγκρούεται με άλλα frames που στάλθηκαν τα
διαστήματα (t0-τ, t0] & [t0, t0+τ)
Υπόθεση:
Μονάδα χρόνου τ είναι το frame transmission

Ο κόμβος ξεκινάει τη μετάδοση τη χρονική στιγμή t0

Αποδοτικότητα του Pure Aloha


Πιθανότητα ( “επιτυχία ενός συγκεκριμένου κόμβου” ) =
Πιθανότητα( “ο κόμβος να μεταδώσει τη χρονική στιγμή t0” ) *
Πιθανότητα( “κανένας άλλος κόμβος δεν μεταδίδει τις χρονικές στιγμές [t0-τ, t0] ”) *
Πιθανότητα( “κανένας άλλος κόμβος δεν μεταδίδει τις χρονικές στιγμές [t0, t0+τ] ”) =
= p . (1-p)N-1 . (1-p)N-1 = p . (1-p)2(N-1)

… Διαλέγοντας το ιδανικό p και αφήνοντας το n -> άπειρο ...

= 1/(2e) = .18

Ακόμα χειρότερη !
Ανεπάρκεια του ALOHA
Τόσο στο slotted όσο και στο pure ALOHA,
η απόφαση ενός κόμβου να μεταδώσει λαμβάνεται
ανεξάρτητα από τους άλλους κόμβους που είναι
προσαρτημένοι στο κανάλι μετάδοσης
• Ένας κόμβος δεν δίνει καμία σημασία στο εάν ένας
άλλος κόμβος τυχαίνει να μεταδίδει όταν ξεκινάει
να μεταδίδει
ούτε σταματάει να μεταδίδει εάν ένας άλλος
κόμβος ξεκινήσει να δημιουργεί παρεμβολές στην
μετάδοσή του

Σημαντικοί κανόνες στη μετάδοση


πλαισίων στην αναμετάδοση 1
 “Αισθανόμενος” τον φορέα (Carrier sensing) (“άκου πριν μιλήσεις”)
• Ένας κόμβος “ακούει” το κανάλι πριν στείλει
• Εάν υπάρχει μετάδοση στο κανάλι:
• ένας κόμβος περιμένει για ένα τυχαίο χρονικό
διάστημα (“backs off”) και μετά αισθάνεται ξανά το
κανάλι
• Εάν ένα κανάλι αισθανθεί να μην έχει κίνηση, τότε
ξεκινάει η μετάδοση του πλαισίου
Σημαντικοί κανόνες στη μετάδοση
πλαισίων στην αναμετάδοση 2
 Εντοπισμός σύγκρουσης (Collision detection) (“Εάν κάποιος άλλος αρχίζει να
μιλάει την ίδια ώρα, σταμάτα να μιλάς”)

• Ένας κόμβος που μεταδίδει ακούει το κανάλι καθώς


μεταδίδει
• Εάν εντοπίσει ότι κάποιος άλλος κόμβος μεταδίδει ένα
πλαίσιο που προκαλεί παρεμβολές:
σταματάει να μεταδίδει και χρησιμοποιεί κάποιο
πρωτόκολλο για να προσδιορίσει πότε θα προσπαθήσει
ξανά να μεταδόσει

Carrier Sense Multiple Access:


Συγκρούσεις
Διάταξη του χώρου των κόμβων

συγκρούσεις μπορούν
ακόμα να συμβούν:
η καθυστέρηση διάδοσης
σημαίνει ότι δύο κόμβοι μπορεί
να μην ακούν την μετάδοση του
άλλου
σύγκρουση:
ο χρόνος μετάδοσης ολόκληρου του
πακέτου σπαταλήθηκε
σημείωση:
ο ρόλος της απόστασης και της
καθυστέρησης διάδοσης στο καθορισμό
της πιθανότητας σύγκρουσης
Εντοπισμός σύγκρουσης
 Έντοπισμός σύγκρουσης
(“εάν κάποιος άλλος αρχίσει να μιλάει την ίδια ώρα, σταμάτα να μιλάς”)
• Ένας κόμβος που μεταδίδει ακούει το κανάλι καθώς
μεταδίδει
• Εάν εντοπίσει ότι κάποιος άλλος adapter μεταδίδει ένα
πλαίσιο που προκαλεί παρεμβολές:
σταματάει να μεταδίδει και χρησιμοποιεί κάποιο
πρωτόκολλο για να προσδιορίσει πότε θα προσπαθήσει
ξανά να μεταδώσει
Το Ethernet χρησιμοποιεί τον εντοπισμό σύγκρουσης!

Έλεγχος πολλαπλής πρόσβασης


(συνέχεια)
Παίρνοντας σειρά (taking turns) – Polling-based μηχανισμοί
Υπάρχει ένας master node που ρωτά τον κάθε άλλο κόμβο εάν έχει να στείλει
δεδομένα (poll)
• Του στέλνει μήνυμα λέγοντας του ότι μπορεί να μεταδώσει μέχρι
ένα μέγιστο αριθμό frames
• Το κάνει αυτό διαδοχικά για τον κάθε ένα κόμβο (“round-robin”)
Master node

poll


Node 1 Node 2 Node k
Έλεγχος πολλαπλής πρόσβασης
(συνέχεια)
Έλεγχος πρόσβασης με κουπόνι
• ένα κουπόνι μεταδίδεται κυκλικά μεταξύ των κόμβων
• ο κόμβος που διαθέτει το κουπόνι μπορεί να μεταδώσει
• θα πρέπει να ελέγχεται αν το κουπόνι έχει χαθεί, και τυχόν άδικη
συμπεριφορά κάποιου κόμβου
• Δακτύλιος: οι κόμβοι συνδέονται σε διάταξη δακτυλίου

Έλεγχος πολλαπλής πρόσβασης


(Multiple Access Control)
• TDM, FDM: δεν είναι αποδοτικό
• Ethernet: βασίζεται στο Carrier Sense Multiple
Access/Collision Detect (CSMA/CD)
o περίμενε μέχρι το κανάλι να είναι κενό, τότε στείλε πακέτο
o σταμάτησε τη μετάδοση αν συμβεί σύγκρουση
o περίμενε τυχαίο χρόνο μετά την σύγκρουση

• ALOHA: λιγότερο “ευγενικό” από το Ethernet


o μετέδωσε όταν ένα πακέτο είναι έτοιμο
o περίμενε τυχαίο χρόνο μετά την σύγκρουση
CSMA/CD: Ethernet’s Multiple
Access Protocol
• Ένας adaptor μπορεί να ξεκινήσει τη μετάδοση
οποιαδήποτε χρονική στιγμή
(δηλαδή δεν χρησιμοποιούνται slots – δεν γίνεται “διακριτοποίηση” του χρόνου)

• Ποτέ όμως δεν μεταδίδει ένα frame, αν «ακούει»


κάποια άλλη μετάδοση στο κανάλι
 that is, it uses carrier sensing

CSMA/CD: Ethernet’s Multiple


Access Protocol
• Σταματάει την μετάδοση, μόλις «ακούσει» κάποια
άλλη μετάδοση στο κανάλι
 that is, it uses collision detection

• Πριν προσπαθήσει να ξανα-μεταδώσει ο adapter


περιμένει ένα τυχαίο χρονικό διάστημα που είναι
συνήθως μικρό σε σχέση με τον χρόνο που
απαιτείται για την μετάδοση του frame
Ethernet: Αναξιόπιστο, υπηρεσία
χωρίς-σύνδεση
• Χωρίς-σύνδεση
Δεν γίνεται χειραψία μεταξύ αποστολέα και παραλήπτη
• Αναξιόπιστο
Ο παραλήπτης δεν στέλνει acks ή nacks στον αποστόλέα
o η ροή datagrams που στέλνονται στο επίπεδο δικτύου μπορεί να έχει απώλειες
πακέτων
o Οι απώλειες πακέτων μπορούν να αντιμετωπιστούν, αν η εφαρμογή χρησιμοποιεί TCP
o αλλιώς, η εφαρμογή θα δει τις «δει»

Δομή πλαισίου Ethernet


Ο αποστέλων adapter τοποθετεί το IλP
δεδομενόγραμμα (ή πακέτο κάποιου άλλου
πρωτοκόλλου Επιπέδου Δικτύου) στο Ethernet
πλαίσιο
8bytes 6bytes 6bytes 46-1500bytes 4bytes

Συγχρονισμός Διόρθωση λαθών


Ο adapter “ξέρει” πότε ένα πλαίσιο τελειώνει εντοπίζοντας την απουσία ρεύματος
Οι Ethernet adapters μετράνε την τάση πριν και κατά τη διάρκεια της μετάδοσης
Preamble:
• 7 bytes με το μοτίβο 10101010 ακολουθούμενο από ένα byte με το μοτίβο 10101011
• χρησιμοποιείται για να συγχρονίζει τις τιμές του ρολογιού του παραλήπτη και του
αποστολέα
Δομή πλαισίου Ethernet
Addresses: 6 bytes (περισσότερα)
• Εάν ο adapter λάβει ένα πλαίσιο με μία διεύθυνση προορισμού που να ταιριάζει, ή με
μια διεύθυνση εκπομπής (broadcast) (πχ ARP πακέτο), περνάει δεδομένα του πλαισίου
στο πρωτόκολλο Επιπέδου Δικτύου
• Αλλιώς, ο adapter πετάει το πλαίσιο
Type: προσδιορίζει το πρωτόκολλο υψηλότερου επιπέδου (κυρίως IP αλλά και άλλα
μπορούν να υποστηρίζονται όπως Novell IPX και AppleTalk)
CRC: ελέγχεται στον παραλήπτη, αν εντοπιστεί κάποιο λάθος, το πλαίσιο απλά
απορρίπτεται

Ethernet CSMA/CD αλγόριθμος


1. Ο adapter λαμβάνει το δεδομενόγραμμα από το επίπεδο δικτύου & δημιουργεί ένα
πλαίσιο (frame)
2A. Αν ο adapter αισθανθεί ότι δεν υπάρχει κίνηση στο κανάλι, αρχίζει να μεταδίδει το
πλαίσιο
2B. Αν αισθανθεί ότι το κανάλι είναι απασχολημένο, περιμένει μέχρι να γίνει διαθέσιμο
& μετά μεταδίδει
3A. Αν ο adapter μεταδίδει ένα ολόκληρο πλαίσιο χωρίς να εντοπίσει μια άλλη
μετάδοση,
 ο adapter τέλειωσε με το πλαίσιο !
3B. Αν ο adapter εντοπίσει μια άλλη μετάδοση καθώς μεταδίδει,
 εγκαταλείπει & στέλνει ένα σήμα συμφόρησης
4. Αφού εγκαταλείψει, ο adapter μπαίνει στον εκθετικό backoff:
μετά την m-ιοστή σύκρουση, επιλέγει ένα K τυχαία από {0,1, 2,…, 2m-1}
 Ο κόμβος περιμένει K * 512(time interval) bit-φορές και
επιστρέφει στο Βήμα 2.
Αποδοτικότητα του CSMA/CD
Tprop = μέγιστος χρόνος διάδοσης μεταξύ 2 κόμβων σε ένα LAN
ttrans = χρόνος για να μεταδοθεί ένα πλαίσιο με μέγιστο μέγεθος

Αποδοτικότητα είναι ο long-run λόγος του χρόνου κατά τον οποίο τα πλαίσια
μεταδίδονται στο κανάλι χωρίς συγκρούσεις υπό συνθήκες κορεσμού

1
αποδοτικότητα 
1  5t prop / ttrans

• Η αποδοτικότητα πάει προς το 1 όταν το tprop πηγαίνει στο 0


• Πηγαίνει στο 1 όταν ttrans πηγαίνει στο άπειρο
• Πολύ καλύτερο από το ALOHA, αλλά ακόμα αποκεντρωμένο, απλό και
φτηνό

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 αντιμετωπίζει την πρώτη
σύγκρουση, δεν έχει ιδέα πόσοι κόμβοι
αναμειγνύονται με την σύγκρουση

Διαδικασία εκθετικού backoff 2

• Αυξάνοντας το μέγεθος του set μετά από κάθε


σύγκρουση με τον παραπάνω τρόπο, ο adapter
αυξάνει την πιθανότητα να επιλέξει ένα
μεγαλύτερο K
Ο adapter προσαρμόζεται πιο ομαλά ….
Ethernet- Τεχνολογίες
“κυρίαρχη” ενσύρματη LAN τεχνολογία:
• φτηνά $20 για 100Mbps!
• πρώτη LAN τεχνολογία που χρησιμοποιήθηκε ευρέως
• Απλούστερο, φτηνότερο από τα token LANs και ATM
• Ταχύτητες: 10 Mbps – 10 Gbps
• Μπορεί να τρέξει πάνω από ομοαξονικό καλώδιο, συνεστραμμένο ζεύγος
χάλκινου καλωδίου ή οπτικές ίνες

δημιουργός του CSMA/CD


& Ethernet LAN

Metcalfe’s Ethernet
sketch

200m: μέγιστη απόσταση μεταξύ δύο κόμβων χωρίς αναμεταδότες ανάμεσα

10Base2 Ethernet
10Mbps κόμβος
Τα μεταδιδόμενα πλαίσια Bus τοπολογία
ταξιδεύουν και στις δύο
κατευθύνσεις
Terminator

Tee connector Λεπτό ομοαξωνικό καλώδιο (coaxial cable)


Οι κόμβοι συνδέονται μέσω των adapters τους γραμμικά
Όταν ένα πλαίσιο περνά από ένα tee connector:
ένα αντίγραφο του προωθείται προς τη μία κατεύθυνση
κι ένα άλλο προς την άλλη

Όπως προχωρούν προς τον 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 διεύθυνσή του?

• ARP Πίνακας: Αντιστοιχίσεις ΙP/MAC


διευθύνσεων για κάποιους LAN
κόμβους
237.196.7.78
1A-2F-BB-76-09-AD
• < IP διεύθυνση, MAC διεύθυνση,TTL>
237.196.7.23 237.196.7.14 • TTL (Time To Live):
LAN ο χρόνος μετά από τον
71-65-F7-2B-08-53
58-23-D7-FA-20-B0
οποίο η αντιστοίχηση
237.196.7.88
0C-C4-11-6F-E3-98 μιας διεύθυνσης θα
ξεχαστεί (τυπικά 20
λεπτά)

LAN Διευθύνσεις και ARP


Κάθε κόμβος στο LAN έχει μοναδική LAN διεύθυνση
= κόμβος
1A-2F-BB-76-09-AD

Broadcast διεύθυνση = FF-FF-FF-FF-FF-FF

LAN
(ενσύρματο
ή ασύρματο)
71-65-F7-2B-08-53
58-23-D7-FA-20-B0

0C-C4-11-6F-E3-98

ARP: address resolution protocol


Το ARP επιλύει μια IP διεύθυνση σε μία LAN διεύθυνση
Αλλά μόνο για τους κόμβους στο ίδιο LAN
LAN Διεύθυνση
• Η κατανομή (allocation) των MAC διευθύνσεων διαχειρίζεται από IEEE
• Ο κατασκευαστής αγοράζει ένα μέρος από τον χώρο των MAC διευθύνσεων
(για να διασφαλίσει την μοναδικότητα)
• Αντιστοιχία:
(a) MAC διεύθυνση: αριθμός ταυτότητας
(b) IP διεύθυνση: αριθμός του σταθερού τηλεφώνου

• MAC flat διεύθυνση


 μπορεί να μεταφέρει κάρτες LAN από ένα LAN σε ένα άλλο χωρίς να
αλλάζει την MAC διεύθυνση
• IP ιεραρχική διεύθυνση ΔΕΝ ΕΙΝΑΙ φορητή
 εξαρτάται από το IP υποδίκτυο (subnet) στο οποίο βρίσκεται ο κόμβος

ARP πρωτόκολλο: Ίδιο LAN


(δίκτυο)
• Ο A θέλει να στείλει ένα • Ο A σώζει (caches) το ζεύγος
δεδομενόγραμμα στον B, & η διεύθυνση διευθύνσεων IP-σε-MAC στον ARP πίνακά
του Β δεν είναι στον του μέχρι η πληροφορία να παλιώσει
(times out)
ARP πίνακα του Α
soft state: πληροφορία που λήγει
• Ο A εκπέμπει ένα πακέτο ερωτήματος (φεύγει) αν δεν ανανεωθεί
(query) ARP, που περιέχει την IP
διεύθυνση του B
• Το ARP είναι “plug-and-play”:
Όλοι οι κόμβοι σε αυτό το LAN λαμβάνουν οι κόμβοι δημιουργούν τους ARP
το ARP packet πίνακές τους χωρίς την παρέμβαση του
διαχειριστή του δικτύου

• O B λαμβάνει το ARP πακέτο


απαντάει στον A με την MAC
διεύθυνσή του
• το πλαίσιο στέλνεται στην MAC
διεύθυνση του Α (unicast)
Μια άλλη αντιστοιχία μεταξύ
Επιπέδου Δικτύου & MAC
• Το DNS είναι αντίστοιχο με το ARP
• Το DNS επιλύει ονόματα κόμβων (hostnames) σε IP
διευθύνσεις
 Όμως, το DNS επιλύει ονόματα κόμβων για
κόμβους οπουδήποτε στο Internet
ενώ
το ARP επιλύει IP διευθύνσεις μόνο για κόμβους
στο ίδιο LAN

MAC Διευθύνσεις
Ή LAN ή φυσικές ή Ethernet διευθύνσεις
(άλλα ονόματα με τα οποία θα τις συναντήσετε)

 χρησιμοποιείται για να βάζει πλαίσια από ένα interface σε ένα


άλλο interface φυσικά συνεδεμένο (ίδιο δίκτυο)
– 48-bit MAC διεύθυνση (για τα περισσότερα LANs) τοποθετημενη μέσα στη ROM
του adapter

 32-bit IP διεύθυνση:
– διεύθυνση επιπέδου δικτύου
– χρησιμοποιείται για να βάζει δεδομενογράμματα στο IP
υποδίκτυο του προορισμού
Γιατί κάποια επίπεδα έχουν την
δικιά τους διεύθυνση? 1
• Ονόματα κόμβων για το επίπεδο εφαρμογής
• IP διευθύνσεις για το επίπεδο δικτύου
• MAC διευθύνσεις για το MAC επίπεδο

Αν διευθύνσεις επιπέδου δικτύου χρησιμοποιόντουσαν από adapters 


η διεύθυνση επιπέδου δικτύου θα έπρεπε να αποθηκευθεί στην RAM του
adapter

Γιατί κάποια επίπεδα έχουν την


δικιά τους διεύθυνση? 2
 Ξαναρυθμίζονται κάθε φορά που η συσκευή μετακινείται
 Οι adapters δεν θα υποστήριζαν εύκολα διαφορετικά πρωτόκολλα
επιπέδου δικτύου …

Αν δεν υπήρχε καμία διεύθυνση στους adapters & έπρεπε ο καθένας να


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

περιττές διακοπές (interruptions) για κάθε πλαίσιο!


Τοπολογία Αστεριού (Star
topology)
• Η τοπολογία του Διαύλου (Bus topology) ήταν δημοφιλής στα μέσα των ΄90s
• Πιο δημοφιλής τώρα είναι η τοπολογία αστεριού (star topology)
• Επιλογές σύνδεσης: hub ή switch

hub or
switch

Hubs
 Απλούστερος τρόπος να συνδέσουμε LANs

Άμεση, σημείο-σε-σημείο σύνδεση

2 ζεύγη συνεστραμμένου ζεύγους χάλκινου καλωδίου

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 συνεχίζουν
ομαλά τη λειτουργία τους

Example Backbone hub


Campus-wide LAN

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

εάν το καθένα LAN segment είναι 10Mbps

Διασύνδεση με 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
πολλαπλών βαθμίδων

Bridges (or layer-2 switches)


• Layer-2 (MAC επιπέδου) συσκευή που

1. Εξετάζει την MAC διεύθυνση προορισμού του


πλαισίου, και
2. Προσπαθεί να προωθήσει το πλαίσιο στη ζεύξη που
οδηγεί στον προορισμό
 Όχι σε όλες τις ζεύξεις (όπως το hub)
Bridges (or layer-2 switches)
• Επιτρέπει διατμηματική επικοινωνία διατηρώντας απομονωμένους τομείς
συγκρούσεων (isolated collision domains) για κάθε τμήμα

Μπορεί να διασυνδέει διαφορετικές LAN τεχνολογίες, περιλαμβάνοντας το


10Mbps, 100Mbps Ethernet
• Κανένα όριο στο πόσο μεγάλο ένα LAN μπορεί να είναι, όταν τα bridges
χρησιμοποιούνται για να διασυνδέουν LAN τμήματα
 είναι δυνατό να χτιστεί ένα LAN που γεφυρώνει όλη την Γη χρησιμοποιώντας
bridges (θεωρητικά)

Γέφυρα (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

Η ιδιότητα του self-learning της


γέφυρας
Κάθε πίνακας της γέφυρας κατασκευάζεται αυτόματα, δυναμικά και αυτόνομα,
χωρίς καμία επέμβαση από τον network administrator ή
κάποιο πρωτόκολλο παραμετροποίησης/ρύθμισης (configuration)!

• Ο πίνακας της γέφυρας είναι αρχικά κενός


• Όταν ένα πλαίσιο καταφθάνει σε μία από τις διασυνδέσεις & η διεύθυνση
προορισμού του πλαισίου δε βρίσκεται στον πίνακα, τότε η γέφυρα προωθεί
αντίγραφα του πλαισίου στους output buffers, που προηγούνται όλων των άλλων
διασυνδέσεων.
• Σε κάθε μία από αυτές τις άλλες διασυνδέσεις, το πλαίσιο μεταδίδεται μέσα στο
LAN τμήμα χρησιμοποιώντας CSMA/CD
Η ιδιότητα του self-learning της γέφυρας (con’td)
• Για κάθε πλαίσιο που λαμβάνεται, η γέφυρα αποθηκεύει στον πίνακα της τη
διεύθυνση LAN την source address του πλαισίου, την διασύνδεση από την οποία
φτάνει το πλαίσιο, την τρέχουσα ώρα.
Με αυτό τον τρόπο, η γέφυρα καταγράφει στον πίνακα της το LAN τμήμα, στο οποίο
ο αποστολέας βρίσκεται.
Εάν κάθε κόμβος στο LAN στείλει ένα πλαίσιο, τότε κάθε κόμβος θα έχει καταγραφεί
στον πίνακα …

• Όταν ένα πλαίσιο φτάνει στις διασυνδέσεις & η διεύθυνση προορισμού του
πλαισίου είναι στον πίνακα, τότε η γέφυρα προωθεί το πλαίσιο στην κατάλληλη
διασύνδεση
• Η γέφυρα διαγράφει μία διεύθυνση από τον πίνακα αν δεν έχει ληφθεί κανένα
πλαίσιο με αύτη τη διεύθυνση σαν διεύθυνση προέλευσης μετά από κάποιο
χρονικό διάστημα (aging time)

Το καλυπτόμενο δέντρο στις


γέφυρες
 Για την αποφυγή των κυκλικών διαδρομών και του πολλαπλασιασμού των
πλαισίων:
οι γέφυρες χρησιμοποιούν ένα πρωτόκολλο καλυπτόμενου δέντρου (spanning tree
protocol)
Στο πρωτόκολλο αυτό, οι γέφυρες επικοινωνούν μεταξύ τους μέσω των LANs
για να καθορίσουν ένα καλυπτόμενο δέντρο (spanning tree), δηλαδή ένα υποσύνολο
της αρχικής τοπολογίας χωρίς loops

Μετά που οι γέφυρες καθορίσουν ένα καλυπτόμενο δέντρο:


• οι γέφυρες αποσυνδέουν εικονικά τις κατάλληλες διασυνδέσεις
για να δημιουργήσουν το καλυπτόμενο δέντρο από την αρχική τοπολογία.
Εάν αργότερα, μία από τις ζεύξεις στο καλυπτόμενο δέντρο αποτύχει:
• οι γέφυρες μπορούν αυτόματα να επανασυνδέσουν τις διασυνδέσεις,
• να τρέξουν τον αλγόριθμο του καλυπτόμενου δέντρου ξανά, και να καθορίσουν
ένα νέο σύνολο διασυνδέσεων, που πρέπει να αποσυνδεθούν εικονικά
Switches
In general:
When a packet arrives at a switch:
It really arrives on an inbound link, and leaves the switch on an outbound link

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

Switches: αποκλειστική πρόσβαση


• Το switch έχει πολλά interfaces
A
• Οι κόμβοι έχουν άμεση σύνδεση στο switch
• Full duplex C’ B
δηλ. μπορεί ταυτόχρονα να στείλει & να λάβει
στο ίδιο network interface
switch
Χωρίς συγκρούσεις
Switching: A-στο-A’ και B-στο-B’ ταυτόχρονα
C
χωρίς συγκρούσεις
Τα switches έχουν πολύ περισσότερα network B’ A’
interfaces από ότι τα bridges (π.χ., 12 vs. 2-4) !!!!
Διαφορά από τα bridges! Switches operate in full-duplex
mode unlike bridges!
Παρατηρείστε επίσης τη διαφορά τους με τις
shared LAN συνδέσεις!!!!
Εδώ ο κάθε κόμβος έχει ΑΠΟΚΛΕΙΣΤΙΚΗ ΠΡΟΣΒΑΣΗ
Switches: αποκλειστική πρόσβαση
Ένα ζευγάρι από twisted pair cooper wire (πχ 10BaseT, 100BaseT)
Το ένα καλώδιο για τις μεταδόσεις από τον πομπό Α προς το switch
& το άλλο καλώδιο για τις μεταδόσεις από το switch στο Α
Δεν υπάρχει λοιπόν πιθανότητα σύγκρουσης
A Επίσης τα switches έχουν
store-and-forward policy:
C’ B μεταδίδουν μόνο ένα frame κάθε φορά
Τα downstream & upstream connections
λειτουργούν σαν direct point-to-point

switch

 Δεν χρειάζεται λοιπόν


collision detection & carrier sensing!!!!
C
(προσέξτε αυτή τη διαφορά
από τα shared LANs)
B’ A’

Τα bridges & switches είναι store-and-forward, σε αντίθεση με τα hubs

Παράδειγμα
Υποθέστε ότι:

Ο 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 απαντάει πίσω με ένα


πλαίσιο στον C address interface
switch
A 1
B 1
E 2
hub hub hub G 3
A
I C 1

D F
B C G H
E

1. το Switch λαμβάνει το πλαίσιο από τον D


2. σημειώνει στο πίνακα του bridge ότι ο D είναι στο interface 2
3. επειδή ο C είναι στον πίνακα, το switch προωθεί το πλαίσιο μόνο
στο interface 1
4. το πλαίσιο λαμβάνεται από τον C
Δρομολογώντας σε ένα άλλο
LAN
παράδειγμα: στέλνεται δεδομενόγραμμα από τον Α στον Β μέσω του R
υποθέστε ότι ο A ξέρει την IP διεύθυνση του B

R
B
A

• Δύο ARP πίνακες στον δρομολογητή, o ένας για κάθε IP δίκτυο (LAN)

Ένας δρομολογητής έχει πολλές IP διευθύνσεις και interfaces.


Κάθε interface έχει μία IP διεύθυνση και ένα ARP κομμάτι !!!
1. A creates datagram with source A, destination B
2. A uses ARP to get R’s MAC address for 111.111.111.110
3. A creates link-layer frame with R's MAC address as destination, the frame contains A-to-
B IP datagram
4. A’s adapter sends frame
5. R’s adapter receives frame
6. R decapsulates IP datagram from Ethernet frame, sees its destined to B
7. R uses ARP to get B’s MAC address
8. R creates frame containing A-to-B IP datagram sends to B
A

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 επίπεδα

Γενικοί Μηχανισμοί Επιπέδου


• Δρομολόγηση (routing)
Δικτύου
Καθορισμός του μονοπατιού για την αποστολή (δρομολόγηση) ενός πακέτου, από
την πηγή/αποστολέα end-host στον τελικό παραλήπτη/προορισμό end-host
Οι αλγόριθμοι λέγονται αλγόριθμοι δρομολόγησης (routing algorithms)

• Προώθηση (forwarding)
Όταν ένα πακέτο φτάνει στην διεπαφή “εισόδου” (input) του δρομολογητή κι αυτός
πρέπει να το προωθήσει στη σωστή διεπαφή εξόδου (output link)
• Call setup
Χρειάζονται οι δρομολογητές σε ένα επιλεγμένο μονοπάτι από την πηγή-
αποστολέα στον παραλήπτη/τελικό προορισμό να συμμετέχουν σε ένα
«handshake» πριν την αποστολή των πακέτων της εφαρμογής
VC setup, Data transfer & VC teardown
Προσοχή: το Call setup ΔΕΝ υπάρχει
στο Διαδίκτυο (Internet) !
Επισκόπηση της αρχιτεκτονικής του
δρομολογητή
Δύο σημαντικές λειτουργίες του δρομολογητή:
• Τρέχει αλγορίθμους/πρωτόκολλα δρομολόγησης (πχ RIP, OSPF, BGP)
• Προωθεί τα datagrams από την εισερχόμενη στην εξερχόμενη
σύνδεση

Network Layer 4-7

Network Layer 4-8


Παράδειγμα: το επίπεδο δικτύου στο
Διαδίκτυο
Λειτουργίες του επιπέδου δικτύου host και δρομολογητές:
This image cannot currently be display ed.

Επίπεδο μεταφοράς: TCP, UDP

Πρωτόκολλα δρομολόγησης IP πρωτόκολλο


•Επιλογή διαδρομής •Συμβάσεις διευθυνσιοδότησης
•Μορφή datagram
Επίπεδο •RIP, OSPF, BGP
•Συμβάσεις χειρισμού πακέτων
Δικτύου Πίνακας
ICMP πρωτόκολλο
προώθησης
•Ανταλλαγή μηνυμάτων λάθους
•“σηματοδοσία” δρομολογητών

Επίπεδο ζεύξης

Φυσικό επίπεδο

πχ έλλειψη κάποιας υπηρεσίας από έναν server,


απουσία ενός υπολογιστή από το δίκτυο Network Layer 4-9

Επίπεδο δικτύου
• Πρωτόκολλα επιπέδου δικτύου σε κάθε 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

Network Layer 4-10


Αλληλεπίδραση μεταξύ δρομολόγησης
& προώθησης
Αλγόριθμος
δρομολόγησης

Τοπικός πίνακας προώθ.


Τιμή Εξερχόμενη
επικεφαλίδας ζεύξη
0100 3
0101 2
0111 2
1001 1

Η τιμή στην
επικεφαλίδα του
πακέτου που
φτάνει 0111 1

3 2

Πως μοιάζει ένας δρομολογητής


Cisco GSR 12416 Juniper M160
19”
19”

Capacity: 160Gb/s Capacity: 80Gb/s


Power: 4.2kW Power: 2.6kW

6ft 3ft

2ft 2.5ft

Slide by Nick McKeown 1ft = 0.3 meters


Big, Fast Routers: Why Bother?
• Faster link bandwidths
• Increasing demands
• Larger network size (hosts, routers, users)
• More cost effective

13

IP Routers
Aποτελούνται από
• Διεπαφές εισόδου interfaces όπου τα πακέτα φτάνουν
• Διεπαφές εξόδου από όπου τα πακέτα
προωθούνται στο δίκτυο Router
• τρόπος σύνδεσης των διεπαφών εισόδου και εξόδου

5 7

Υλοποιεί: 4
8
•Προώθηση πακέτων στο
κατάλληλο output interface 6

11
•Χειρισμό των πόρων εύρους 2
10

ζώνης & πινάκων χώρου 13

3 12
1

Θα το ακούσετε κι ως level-3 switch Network Layer 4-14


Γενική αρχιτεκτονική ενός
δρομολογητή
Οι διεπαφές εισόδου & εξόδου συνδέονται μέσω μιας διασύνδεσης

input interface output interface

Inter-
connect

Network Layer 4-15

Λειτουργίες θύρας εισόδου

φυσικό επίπεδο:
Λήψη σε επίπεδο bit
επίπεδο ζεύξης
δεδομένων: Aποκεντρικοποιημένo switching:
π.χ., Ethernet Με βάση τον προορισμό του datagram, ψάχνει για την θύρα
(βλ. Κεφ. 5) εξόδου χρησιμοποιώντας τον πίνακα προώθησης στη
μνήμη της θύρας εισόδου
Στόχος: να ολοκληρωθεί η επεξεργασία της θύρας εισόδου
στην ταχύτητα της γραμμής
 queuing: όταν τα datagrams φτάνουν γρηγορότερα από το
ρυθμό προώθησης στο switch
Network Layer 4-16
Λειτουργίες Θύρας Εξόδου

Αποθήκευση (buffering ) χρειάζεται όταν τα datagrams φτάνουν από το


fabric γρηγορότερα από τον ρυθμό μετάδοσης
Η προγραμματιστική μέθοδος επιλέγει ανάμεσα στα datagrams της
ουράς για μετάδοση

Network Layer 4-17

Επισκόπηση της αρχιτεκτονικής του


δρομολογητή
Δύο σημαντικές λειτουργίες του δρομολογητή:
• Τρέχει αλγορίθμους/πρωτόκολλα δρομολόγησης (πχ RIP, OSPF, BGP)
• Προωθεί τα datagrams από την εισερχόμενη στην εξερχόμενη
σύνδεση

Network Layer 4-18


Γενική αρχιτεκτονική ενός

δρομολογητή
Οι διεπαφές εισόδου & εξόδου συνδέονται μέσω μιας διασύνδεσης
• Η διασύνδεση μπορεί να υλοποιηθεί μέσω
1. Κοινής μνήμης
δρομολογητές χαμηλής χωρητικότητας, π.χ., PC-based δρομολογητές
2. Διαμοιραζόμενος δίαυλος (shared bus)
Δρομολογητές μεσαίας χωρητικότητας
3. Σημείο-προς-σημείο (switched) δίαυλος
Δρομολογητές υψηλής χωρητικότητας

input interface output interface

Inter-
connect

Network Layer 4-19

Βασικοί τύποι τεχνολογίας


δρομολογητών

Διακόπτης (transistor)
Καλώδιο
Μεγαλύτερος
παραλληλισμός
Τρείς ταυτόχρονες ροές
δεδομένων

Network Layer 4-20


Multiple crossbar switches in parallel
to form a switch core for boosting
performance

Network Layer 4-21

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

Line Line Line


Interface Interface Interface
MAC MAC MAC

Τυπικά < 0.5Gbps συνολική χωρητικότητα


 Περιορίζεται από τον ρυθμό της διαμοιραζόμενης μνήμης

(* Slide by Nick McKeown) Network Layer 4-23

Switching μέσω ενός διαύλου


(bus)

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

Moves forwarding decisions local to card to


reduce CPU pain
Line Line Line
Card Card Card
Τυπικά < 5Gb/s συνολική χωρητικότητα
Buffer Buffer Buffer
Memory Memory Memory
 Περιορίζεται από τον
Fwding Fwding Fwding
διαμοιραζόμενο δίαυλο Cache Cache Cache
MAC MAC MAC

(* Slide by Nick McKeown) Network Layer 4-25

What a Router Line Card Looks Like


1-Port OC48 (2.5 Gb/s)
(for Juniper M40)

4-Port 10 GigE
(for Cisco CRS-1)

10in

2in

Power: about 150 Watts 21in 26


Σημείο-προς-σημείο Switch (3η
γενιά)

Switched Backplane

Line CPU Line


Card Card Card
Local Local
Buffer Routing Buffer
Memory Table Memory
Fwding Fwding
Table Table

MAC MAC

Tυπικά < 50Gbps συνολική χωρητικότητα


(*Slide by Nick McKeown) Network Layer 4-27

Switched Backplane
• Every input port has a connection to every output port

• During each timeslot, each input connected to zero or one outputs

Advantage: Exploits parallelism


Disadvantage: Need scheduling algorithm

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

• Goal: Maximal matching

Traffic Demands Bipartite Match


S * (n)  arg max( L (n)  S (n))
T

L11(n) S (n)

Maximum
Weight Match
LN1(n)

29

Point-to-Point Switch - Διασύνδεση (Interconnect)


Point-to-point switch επιτρέπει παράλληλες μεταφορές πακέτων μεταξύ οποιοδήποτε
δύο ζευγών input-output interfaces αρκεί να μην περιλαμβάνουν κοινό interface
τα δύο αυτά ζεύγη

 Στόχος: σχεδιασμός ενός προγράμματος μετάδοσης των πακέτων που να


• Παρέχει ποιότητα υπηρεσιών (quality of service)
• Βελτιστοποιεί το throughput του δρομολογητή
Προκλήσεις:
• Αντιμετώπιση του προβλήματος μπλοκαρίσματος στην αρχή της ουράς (head-
of-line blocking) στις εισόδους
• Επίλυση input/output speedups contention
• Αποφυγή του “πετάματος” (drop) των πακέτων στην έξοδο λόγω υπερχείλισης
(όταν ειναι δυνατό)

 Σημείωση: τα πακέτα είναι κατακερματισμένα σε κελιά (cells) σταθερού μεγέθους


στις εισόδους & επανασυναρμολογούνται στις εξόδους
Network Layer 4-30
Μπλοκάρισμα της αρχής της ουράς
(Head-of-line Blocking)
Το κελί στην κεφαλή μίας ουράς εισόδου δεν μπορεί να μεταφερθεί,
και έτσι μπλοκάρει τα επόμενα κελιά

Δεν μπορεί να μεταφερθεί επειδή


μπλοκάρεται από το 1ο κελί

Input 1 Output 1

Input 2 Output 2

Input 3 Δεν μπορεί να Output 3


μεταφερθεί
επειδεί ο buffer
εξόδου
υπερχειλίζει

Network Layer 4-31

Αναμονή στην ουρά της θύρας


εξόδου

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

Network Layer 4-32


Router buffer
The performance of a router is affected by the size of router buffer
and the memory bandwidth

Network Layer 4-33

Switching μέσω ενός δικτύου


διασύνδεσης
• Ξεπερνάει τους περιορισμούς στο bandwidth του διaύλου
• Άλλα δίκτυα διασύνδεσης σχεδιάστηκαν αρχικά για να συνδέουν
επεξεργαστές μέσα σε πολυεπεξεργαστές
• Ανεπτυγμένος σχεδιασμός: με τη διάσπαση του datagram σε κελιά
σταθερού μεγέθους, τα κελιά γίνονται switch μέσω του fabric
πχ Cisco 12000: switches Gbps μέσω του δικτύου διασύνδεσης

Network Layer 4-34


Βασικές Λειτουργίες του Επιπέδου
Δικτύου
Προώθηση (forwarding): προωθεί τα πακέτα από το input του δρομολογητή
στο κατάλληλο output
Δρομολόγηση (routing): καθορίζει το μονοπάτι που θα πάρουν τα πακέτα
από τον αποστολέα στον παραλήπτη

Αλγόριθμοι δρομολόγησης

 δρομολόγηση: διαδικασία σχεδιασμού/οργάνωσης του ταξιδιού απο τον


αποστολέα στον παραλήπτη

 Προώθηση: διαδικασία μίας μετάβασης από τον ένα σταθμό στον άλλο

Network Layer 4-35

Εγκαθίδρυση σύνδεσης
• Η 3η πιο σημαντική λειτουργία σε κάποιες αρχιτεκτονικές δικτύου:
ATM, frame relay, X.25
• Πριν σταλούν τα datagrams , οι δύο hosts & οι παρεμβαλλόμενοι
δρομολογητές εγκαθιδρύουν μία εικονική σύνδεση
Συμμετοχή των δρομολογητών
• Υπηρεσία σύνδεσης σε επίπεδο δικτύου και μεταφοράς:
Δίκτυο: μεταξύ των δύο hosts
Μεταφορά: μεταξύ των δύο διεργασιών

Network Layer 4-36


Μοντέλο υπηρεσίας δικτύου
Q: Τι μοντέλο υπηρεσίας για το “κανάλι” που μεταφέρει datagrams από τον
αποστολέα στον παραλήπτη?

Παράδειγμα υπηρεσιών για κάθε Παράδειγμα υπηρεσιών για μία ροή από
datagram: datagrams:
• Εγγυημένη παράδοση • Πράδοση των datagrams σε σειρά
• Εγγυημένη παράδοση με • Εγγυημένο ελάχιστο bandwidth για τη
καθυστέρηση <40 msec ροή
• Περιορισμοί σε αλλαγές και κενά
μεταξύ των πακέτων

Network Layer 4-37

Μοντέλα υπηρεσιών επιπέδου


δικτύου:
Εγγυάται ?
Αρχιτεκτονική Μοντέλο Ένδειξη
δικτύου υπηρεσίας Bandwidth Απώλεια Σειρά Χρονισμός συμφόρησης

Όχι (υποννοείται
Διαδίκτυο Βέλτιστης κανένα όχι όχι όχι
από απώλεια)
προσπάθειας
ATM CBR Σταθερός ναι ναι ναι καμία
ρυθμός συμφόρηση
ATM VBR Εγγυημένος ναι ναι ναι καμία
ρυθμός συμφόρηση
ATM ABR Εγγυημένο όχι ναι όχι ναι
ελάχιστο
ATM UBR κανένα όχι ναι όχι όχι

Network Layer 4-38


Υπηρεσία σύνδεσης και ασυνδεσιστρεφής
υπηρεσία επιπέδου δικτύου
Δίκτυο από αυτοδύναμα πακέτα (datagram) παρέχει ασυνδεσιστρεφή
υπηρεσία επιπέδου δικτύου
Δίκτυο ιδεατών κυκλωμάτων (VC) παρέχει υπηρεσία σύνδεσης επιπέδου
δικτύου
Ανάλογο με την υπηρεσία επιπέδου μεταφοράς, αλλά:
• Υπηρεσία: από host-σε-host
• Καμία επιλογή: το δίκτυο παρέχει ή το ένα ή το άλλο
• Υλοποίηση: στον πυρήνα

Network Layer 4-39

Ιδεατά κυκλώματα (virtual circuits)


“source-to-dest μονοπάτι συμπεριφέρεται όπως μια τηλεφωνική
σύνδεση (circuit)”

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


μεταφορά
• Κάθε πακέτο έχει έναν VC identifier (όχι διεύθυνση host προορισμού)
• Κάθε δρομολογητής στο μονοπάτι πηγής-προορισμού διατηρεί κατάσταση για
κάθε σύνδεση που περνάει από αυτόν
• ζεύξεις, πόροι δρομολογητών (bandwidth, buffers) μπορούν να απονεμηθούν
στο VC

Network Layer 4-40


VC υλοποίηση
Ένα VC αποτελείται από:
1. Μονοπάτι από την πηγή στον προορισμό
2. VC αριθμούς, ένας αριθμός για κάθε ζεύξη κατά μήκος του
μονοπατιού
3. Εγραφές στους πίνακες προώθησης των δρομολογητών κατά
μήκος του μονοπατιού

• Το πακέτο που ανήκει στο VC μεταφέρει έναν VC αριθμό


• Ο VC αριθμός πρέπει μα αλλάζει σε κάθε ζεύξη
Ο νέος VC αριθμός προέρχεται από τον πίνακα προώθησης

Network Layer 4-41

Πίνακας προώθησης
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
… … … …

Οι δρομολογητές διατηρούν πληροφορία για την κατάσταση της


σύνδεσης!
Network Layer 4-42
Ιδεατά κυκλώματα: πρωτόκολλα
σηματοδοσίας
• χρησιμοποιούνται για εγκαθίδρυση, διατήρηση και τερματισμό των
VC
• Χρησιμοποιούνται στο ATM, frame-relay, X.25
 Δεν χρησιμοποιούνται στο σημερινό διαδίκτυο (Internet)

application 6. Παραλαβή δεδομένων application


transport 5. Έναρξη ροής δεδομένων 3. Αποδοχή κλήσης transport
network 4. Σύνδεση κλήσης 2. Εισερχόμενη κλήση
1. Έναρξη κλήσης network
data link
data link
physical
physical

Network Layer 4-43

Δίκτυα αυτοδύναμων πακέτων


(datagram networks)
• Καμία εγκαθίδρυση κλήσης στο επίπεδο δικτύου
• δρομολογητές: καμία κατάσταση για τις συνδέσεις από άκρη σε άκρη
• Δεν υπάρχει η έννοια της σύνδεσης στο επίπεδο δικτύου
• Τα πακέτα προωθούνται με βάση τη διεύθυνση του host προορισμού
 Τα πακέτα μεταξύ του ίδιου ζευγαριού πηγής-προορισμού μπορεί να
πάρουν διαφορετικά μονοπάτια

application
application
transport
transport
network
1. Send data network
data link 2. Receive data
data link
physical
physical

Network Layer 4-44


Δίκτυο ιδεατών κυκλωμάτων ή
αυτοδύναμων πακέτων
Διαδίκτυο ATM
• Ανταλλάγή δεδομένων μεταξύ υπολογιστών • Εξελίχθηκε από το τηλεφωνικό δίκτυο
 «ελαστική» υπηρεσία, χωρίς αυστηρές • Ανθρώπινη συνομιλία:
απαιτήσεις χρονισμού  Αυστηρές απαιτήσεις
• “ευφυή” τερματικά συστήματα (computers) χρονισμού και αξιοπιστίας
• Μπορούν να προσαρμόζονται, να Ανάγκη για εγγυημένη
ελέγχουν, να επανέρχονται από λάθη υπηρεσία
• Απλότητα στο εσωτερικό του δικτύου • “χαζά” τερματικά συστήματα
πολυπλοκότητα “άκρα”
• Τηλεφωνα
• Πολλοί τύποι ζεύξεων
• Πολυπλοκότητα μέσα στο
• Διαφορετικά χαρακτηριστικά
δίκτυο
• Δύσκολα έχουμε ομοιόμορφη υπηρεσία

Προσέξετε τους όρους: “τερματικά συστήματα”, “άκρη”, ελαστική υπηρεσία


Network Layer 4-45

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

Lookups Must be Fast

Year Line 40B


Cisco CRS-1 1-Port OC-768C
packets (Line rate: 42.1 Gb/s)
(Mpkt/s)
1997 622Mb/s 1.94 OC-12
1999 2.5Gb/s 7.81 OC-48
2001 10Gb/s 31.25 OC-192
2003 40Gb/s 125 OC-768

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

Faster Lookup: Alternatives


• Caching
• Packet trains exhibit temporal locality
• Many packets to same destination
• Cisco Express Forwarding

50
4 δις δυνατές καταχωρήσεις
Πίνακας προώθησης
Διευθύνσεις προορισμού Διεπαφή ζεύξης

11001000 00010111 00010000 00000000


ως 0
11001000 00010111 00010111 11111111

11001000 00010111 00011000 00000000


ως 1
11001000 00010111 00011000 11111111

11001000 00010111 00011001 00000000


ως 2
11001000 00010111 00011111 11111111

αλλιώς 3
Network Layer 4-51

Longest prefix matching


Prefix Match Διεπαφή ζεύξης
11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
otherwise 3

Παραδείγματα

DA: 11001000 00010111 00010110 10100001 Ποιά διεπαφή?

DA: 11001000 00010111 00011000 10101010 Ποια διεπαφή?

Network Layer 4-52


Complexity at the end-hosts

Υψηλότερα επίπεδα υλοποιούν πιο


πολύπλοκες λειτουργίες oπως προώθηση Application
πακέτων
με σωστή σειρά, έλεγχος συμφόρησης,
αξιόπιστη μεταφορά πακέτων Transport

Απλό &
minimalistic Network (IP)
service model
Διατηρεί ελάχιστη
πληροφορία Link
της κατάστασης (state)
των
μεταδόσεων/πακέτων Physical
(πχ πακέτα που χάθηκαν
ή με λάθη)

Oι sender & receiver κρατούν τέτοια πληροφορία Network Layer 4-53

Ενθυλάκωση

Network Layer 4-54


Το επίπεδο δικτύου στο
Διαδίκτυο
Λειτουργίες του επιπέδου δικτύου host και δρομολογητές:
This image cannot currently be display ed.

Επίπεδο μεταφοράς: TCP, UDP

Πρωτόκολλα δρομολόγησης IP πρωτόκολλο


•Επιλογή διαδρομής •Συμβάσεις διευθυνσιοδότησης
•Μορφή datagram
Επίπεδο •RIP, OSPF, BGP
•Συμβάσεις χειρισμού πακέτων
Δικτύου Πίνακας
ICMP πρωτόκολλο
προώθησης
•Ανταλλαγή μηνυμάτων λάθους
•“σηματοδοσία” δρομολογητών

Επίπεδο ζεύξης

Φυσικό επίπεδο

πχ έλλειψη κάποιας υπηρεσίας από έναν server,


απουσία ενός υπολογιστή από το δίκτυο
Network Layer 4-55

Διάταξη 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

• μεγάλα IP δεδομενογράμματα χωρίζονται


(“τεμαχίζονται”) μέσα στο δίκτυο
• Ένα δεδομενόγραμμα σπάει σε μικρότερα
• “συναρμολογούνται” μόνο στον τελικό προορισμό
• Τα bits της IP επικεφαλίδας χρησιμοποιούνται
για να αναγνωρίσουν, κομμάτια σε σειρά
συναρμολόγηση
τεμαχισμός:
in: ένα μεγάλο δεδομενόγραμμα
out: 3 μικρότερα δεδομενογράμματα

Network Layer 4-57

IP Τεμαχισμός & Συναρμολόγηση


length ID fragflag offset
Παράδειγμα =4000 =x =0 =0
• 4000 byte
Ένα μεγάλο δεδομενόγραμμα γίνεται
δεδομενόγραμμα μερικά μικρότερα δεδομενογράμματα
• MTU = 1500 bytes
length ID fragflag offset
=1500 =x =1 =0
1480 bytes στο
πεδίο δεδομένων length ID fragflag offset
=1500 =x =1 =185
offset =
1480/8 length ID fragflag offset
=1040 =x =0 =370

Network Layer 4-58


IP διευθυνσιοδότηση: εισαγωγή
IP διεύθυνση: 32-bit ταυτότητα για τη 223.1.1.1
διεπαφή host/δρομολογητή 223.1.2.1
διεπαφή: σύνδεση μεταξύ 223.1.1.2
223.1.1.4 223.1.2.9
host/δρομολογητή & φυσικής ζεύξης
Οι δρομολογητές γενικά έχουν 223.1.1.3 223.1.3.27
223.1.2.2

πολλές διεπαφές
 Αλλά και ένα host μπορεί να
έχει πολλές διεπαφές (πχ 223.1.3.1 223.1.3.2

IEEE802.11, Bluetooth, Ethernet)

IP διευθύνσεις σχετίζονται με κάθε


223.1.1.1 = 11011111 00000001 00000001 00000001
διεπαφή
223 1 1 1

Network Layer 4-59

Υποδίκτυα (subnets)
223.1.1.1

223.1.2.1
223.1.1.2
223.1.1.4 223.1.2.9

IP διεύθυνση: 223.1.1.3 223.1.3.27


223.1.2.2

• τμήμα υποδικτύου: bits υψηλότερης σειράς


• τμήμα host: bits χαμηλότερης σειράς subnet

223.1.3.1 223.1.3.2

 Τι είναι υποδίκτυο ? δίκτυο που αποτελείται από 3 υποδίκτυα


• διεπαφές συσκευών με ίδιο τμήμα υποδικτύου της IP διεύθυνσης
• μπορούν να φτάσουν φυσικά η μία την άλλη χωρίς να παρεμβάλλεται
κάποιος δρομολογητής
Network Layer 4-60
Υποδίκτυα 223.1.1.0/24
223.1.2.0/24

Συνταγή
 Για να καθορίσεις τα υποδίκτυα, αποσύνδεσε
κάθε διεπαφή από το host του ή τον
δρομολογητή, δημιουργώντας “νησιά” από
απομονωμένα δίκτυα

Κάθε απομονωμένο δίκτυο ονομάζεται 223.1.3.0/24


υποδίκτυο
Subnet mask: /24

Network Layer 4-61

Υποδίκτυα 223.1.1.2

Πόσα είναι? 223.1.1.1 223.1.1.4

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

223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2

Network Layer 4-62


IP διευθυνσιοδότηση: CIDR
CIDR: Classless InterDomain Routing
– Τμήμα υποδικτύου διεύθυνσης αυθαίρετου μεγέθους
– διάταξη διεύθυνσης: a.b.c.d/x, οπου x έιναι ο αριθμός των bits στο
τμήμα υποδικτύου της διεύθυνσης

τμημα τμήμα
υποδικτύου host
11001000 00010111 00010000 00000000
200.23.16.0/23
Network Layer 4-63

IP διευθύνσεις: πώς να πάρετε


μία?
 Πως το host παίρνει IP διεύθυνση?

• hard-coded (δεν αλλάζει) από τον admin συστήματος σε αρχείο


– Wintel: control-panel->network->configuration->tcp/ip-
>properties
– UNIX: /etc/rc.config
• Dynamic Host Configuration Protocol (DHCP): δυναμικά παίρνει
διεύθυνση από τον εξυπηρετητή
 “plug-and-play” (το βάζεις και παίζει)
Network Layer 4-64
IP διευθύνσεις: πώς να πάρετε
μία?
Q: πώς το δίκτυο παίρνει το τμήμα υποδικτύου μιας
IP διεύθυνσης?
A: παίρνει το δεσμευμένο τμήμα από τον χώρο
διευθύνσεων του παροχέα του (ISP)
ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20

Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23


Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ….. …. ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Network Layer 4-65

Ιεραρχική διευθυνσιοδότηση: συνάθροιση


διαδρομής (route aggregation)
Η ιεραρχική δοευθυνσιοδότηση επιτρέπει την αποτελεσματική διάδοσητων πληροφοριών
δρομολόγησης:

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

“Στείλε μου οτιδήποτε


με διευθύνσεις που
Organization 2 ξεκινούν από
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Στείλε μου οτιδήποτε
ISPs-R-Us
με διευθύνσεις που
Organization 1 ξεκινούν από
199.31.0.0/16
200.23.18.0/23
ή 200.23.18.0/23”

Network Layer 4-67

IP διευθυνσιοδότηση: τελευταία
λόγια…
Q: Πώς ένας παροχέας παίρνει ένα block από διευθύνσεις?
A: ICANN: Internet Corporation for Assigned Names & Numbers
• δεσμεύει διευθύνσεις
• ελέγχει το DNS
• αναθέτει ονόματα σε περιοχές (domains), επιλύει συγκρούσεις

Network Layer 4-68


Αφηρημένη έννοια του γράφου
5

v 3 w
2 5
u 2 z
1
3
1
x y 2
Graph: G = (N,E) 1

N = σύνολο δρομολογητών = {u, v, w, x, y, z }

E = σύνολο ζεύξεων ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }

Παρατήρηση: Η αφηρημένη έννοια του γράφου είναι χρήσιμη σε άλλα ευρύτερα πλαίσια
δικτύων

Παράδειγμα: P2P, όπου N είναι το σύνολο των peers και E σύνολο των TCP συνδέσεων

Network Layer 4-69

Αφηρημένη έννοια του γράφου:


κόστος
5 • c(x,x’) = κόστος ζεύξης (x,x’)
v 3 w
5 - πχ, c(w,z) = 5
2
u 2 z
3
1 • το κόστος θα μπορούσε να είναι
1 πάντα 1, η αντιστρόφως ανάλογο
x y 2
του bandwidth, ή αντιστρόφως
1
ανάλογο της συμφόρησης

Κόστος μονοπατιού (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)

Ερώτηση: Ποιο είναι το μονοπάτι ελάχιστου κόστους μεταξύ u και z ?

Αλγόριθμος δρομολόγησης: αλγόριθμος που βρίσκει


το μονοπάτι ελάχιστου κόστους
Network Layer 4-70
Αλγόριθμοι δρομολόγησης
• Dynamic αλγόριθμοι: άλλαξε τα μονοπάτια δρομολόγησης καθώς το
φορτίο κίνησης του δικτύου ή η τοπολογία αλλάζει
• Μπορεί να τρέξει είτε
 περιοδικά είτε
 σε άμεση απάντηση στις αλλαγές τοπολογίας & κόστος ζεύξης
 Ευάλωτοι σε προβλήματα όπως βρόχοι δρομολόγησης & μεταπτώσεις στις
διαδρομές

• Ευαίσθητοι στον φόρτο : το κόστος ζεύξης ποικίλει δυναμικά για να


αντικατοπτρίσει το τρέχον επίπεδο συμφόρησης στην υποκείμενη ζεύξη

 Οι σημερινοί αλγόριθμοι δρομολόγησης του Διαδικτύου (πχ, RIP, OSPF,


BGP) δεν είναι ευαίσθητοι στο φόρτο κίνησης
Network Layer 4-71

Ταξινόμηση Αλγορίθμων
Δρομολόγησης
Updates

Dynamic
Φόρτος

Static

Global Decentralized Information

Network Layer 4-72


Ταξινόμηση Αλγορίθμων
Δρομολόγησης
Αντιπαράθεση: Δρομολόγηση με Καθολική vs. Τοπική πληροφορίας

Πλήρη (καθολική) (Global) εικόνα του δικτύου:


• Όλοι οι δρομολογητές γνωρίζουν πλήρως την τοπολογία και πληροφορίες
για το κόστος των ζεύξεων
• “κατάστασης ζεύξης” (link state) αλγόριθμοι
Τοπική εικόνα του δικτύου (Decentralized):
• Ο δρομολογητής ξέρει τους φυσικά συνδεμένους γείτονες, και το κόστος
ζεύξης προς τους γείτονες
• Επαναληπτική διεργασία υπολογισμών, ανταλλαγή πληροφοριών με τους
γείτονες
• Κεντρικοποιημένος
• “Διανύσματος απόστασης(distance vector)” αλγόριθμοι
Network Layer 4-73

Ταξινόμηση Αλγορίθμων
Δρομολόγησης
Αντιπαράθεση: Static vs. dynamic?
Στατικοί (Static): οι διαδρομές αλλάζουν αργά με τον χρόνο
Δυναμικοί (Dynamic): οι διαδρομές αλλάζουν πιο γρήγορα
• Περιοδική ενημέρωση
• σε απάντηση στις αλλαγές κόστους ζεύξης

Network Layer 4-74


Router Design
• Many trade-offs: power, $$$, throughput, reliability, flexibility
• Move towards distributed architectures
• Line-cards have forwarding tables
• Switched fabric between cards
• Separate Network processor for “slow path” & control
• Important bottlenecks on fast path
• Longest prefix match
• Cross-bar scheduling
• Beware: lots of feature creep

75

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

Μαρία Παπαδοπούλη
Σκοποί ενότητας
... Ερωτήσεις από τα προηγούμενα lectures ...

Αλγόριθμοι δρομολόγησης
• Κατάστασης Ζεύξεων (Link state)
• Διανυσμάτων Απόστασης (Distance Vector)
• Ιεραρχικής Δρομολόγησης (Hierarchical routing)

Network layer
• transport segment from application
transport

sending to receiving host network


data link
physical

• on sending side network


data link
network
data link
network
encapsulates segments into data link
physical
physical physical

network network
datagrams data link
physical
data link
physical

• on rcving side, delivers network network


segments to transport layer data link
physical
network
data link
physical
data link
• network layer protocols in physical
application
every host, router network
data link
transport
network
network
physical data link
• router examines header network
data link
data link
physical
physical
physical
fields in all IP datagrams
passing through it

Network Layer 4-5


Interplay between routing and
forwarding
routing algorithm

local forwarding table


header value output link
0100 3
0101 2
0111 2
1001 1

value in arriving
packet’s header
0111 1

3 2

Network Layer 4-6

Forwarding table
4 billion
possible entries
Destination Address Range Link Interface

11001000 00010111 00010000 00000000


through 0
11001000 00010111 00010111 11111111

11001000 00010111 00011000 00000000


through 1
11001000 00010111 00011000 11111111

11001000 00010111 00011001 00000000


through 2
11001000 00010111 00011111 11111111

otherwise 3

Network Layer 4-7


Longest prefix matching
Prefix Match Link Interface
11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
otherwise 3

Examples

DA: 11001000 00010111 00010110 10100001 Which interface?

DA: 11001000 00010111 00011000 10101010 Which interface?

Network Layer 4-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

upper layer protocol 32 bit destination IP address


to deliver payload to E.g. timestamp,
Options (if any)
record route
how much overhead data taken, specify
with TCP? (variable length, list of routers
• 20 bytes of TCP typically a TCP to visit.
or UDP segment)
• 20 bytes of IP
• = 40 bytes + app
layer overhead
Network Layer 4-9
IP Fragmentation & Reassembly
• network links have MTU
(max.transfer size) - largest possible
link-level frame
• different link types  different MTUs
• large IP datagram divided fragmentation:
in: one large datagram
(“fragmented”) within net
out: 3 smaller datagrams

one datagram becomes several


datagrams reassembly
“reassembled” only at final
destination
• IP header bits used to identify,
order related fragments

Network Layer 4-10

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

IP addresses associated with each interface


223.1.1.1 = 11011111 00000001 00000001 00000001

223 1 1 1

Network Layer 4-11


Subnets
223.1.1.1
IP address:
• subnet part (high order bits) 223.1.2.1
223.1.1.2
• host part (low order bits) 223.1.1.4 223.1.2.9

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

network consisting of 3 subnets

Network Layer 4-12

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?

• hard-coded by system admin in a file


• Windows: control-panel->network->configuration-
>tcp/ip->properties
• UNIX: /etc/rc.config
• DHCP: Dynamic Host Configuration Protocol: dynamically get
address from as server
• “plug-and-play”
Network Layer 4-14

IP addresses: how to get one?


Q: How does network get subnet part of IP addr?
A: gets allocated portion of its provider ISP’s address
space

ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20

Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23


Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... ….. …. ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Network Layer 4-15


IP addressing: the last word...
Q: How does an ISP get block of addresses?
A: ICANN: Internet Corporation for Assigned
Names and Numbers
• allocates addresses
• manages DNS
• assigns domain names, resolves disputes

Network Layer 4-16

Περίληψη Router

Η ιστορία μας μέχρι τώρα …


o Οι IP διευθύνσεις αντανακλούν τη δομή του Internet
όπως οι τηλεφωνικοί αριθμοί

o Οι IP επικεφαλίδες πακέτων “φέρουν” αυτή τη πληροφορία


o Όταν το πακέτο φτάνει στον δρομολογητή αυτός
• Eξετάζει την επικεφαλίδα για να προσδιορίσει τον προορισμό
• Ψάχνει στον πίνακα για να προσδιορίσει τον επόμενο κόμβο
στο μονοπάτι
• Στέλνει το πακέτο στην κατάλληλη θύρα
Σημερινή διάλεξη
Πως δημιουργείται ο πίνακας δρομολόγησης
Network Layer 4-17
Αναπαράσταση γράφου
(Graph abstraction)
5

v 3 w
2 5
u 2 z
1
3
1
x y 2
Γράφος: G = (N,E) 1

N = σύνολο δρομολογητών = {u, v, w, x, y, z }

E = σύνολο ζεύξεων = { (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }

Network Layer 4-18

Αναπαράσταση γράφου: κόστη


• c(x,x’) = κόστος ζεύξης (x,x’)
- π.χ., c(w,z) = 5

5 Το κόστος mporei na είναι:


v 3 w Se oles tis akmes 1, ή
2 5 αντιστρόφως ανάλογο του εύρους ζώνης, ή
u z ανάλογο της συμφόρησης
2 1
3
1
x y 2
1

Κόστος μονοπατιού (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)

Ερώτηση: Ποιό είναι το μονοπάτι με το μικρότερο κόστος μεταξύ των u και z;

Αλγόριθμος δρομολόγησης: αλγόριθμος που βρίσκει το μονοπάτι


με το ελάχιστο κόστος Network Layer 4-19
Αλγόριθμοι δρομολόγησης
• Δυναμικοί αλγόριθμοι: αλλάζουν τα μονοπάτια δρομολόγησης καθώς ο
φόρτος κίνησης του δικτύου ή η τοπολογία του αλλάζουν
• Μπορεί να τρέχουν
 περιοδικά ή
 σε άμεση απάντηση αλλαγών στην τοπολογία και στα κόστη των
ζεύξεων
 Επιρρεπή σε προβλήματα όπως επαναλήψεις διαδρομών ή διακυμάνσεις
στις διαδρομές

• Ευαίσθητα στον φόρτο: τα κόστη των ζεύξεων αλλάζουν δραματικά για να


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

 Οι σημερινοί αλγόριθμοι δρομολόγησης (π.χ.,


Network Layer
RIP, OSPF, BGP) δεν
4-20

Ταξινόμηση Αλγορίθμων
Δρομολόγησης
Updates

Dynamic
Load

Static
Local
Global
Information

Network Layer 4-21


Ταξινόμηση Αλγορίθμων
Δρομολόγησης
 Αντιπαράθεση καθολικής & τοπικής πληροφορίας

Καθολική:
• Όλοι οι δρομολογητές έχουν πλήρη εικόνα της τοπολογίας & κόστους
ζεύξεων
• Αλγόριθμοι κατάστασης ζεύξης (link-state)
Τοπική:
• Ο δρομολογητής ξέρει τους φυσικά-συνδεδεμένους γείτονες του, κόστη
ζεύξεων προς τους γείτονες
• Επαναληπτική διαδικασία υπολογισμού και ανταλλαγής πληροφορίας με
τους γείτονες
• Αλγόριθμοι πίνακα αποστάσεων (distance-vector)

Network Layer 4-22

Ταξινόμηση Αλγορίθμων
Δρομολόγησης
Αντιπαράθεση στατικών & δυναμικών αλγορίθμων
Στατικοί: οι διαδρομές αλλάζουν αργά με την πάροδο του χρόνου
Δυναμικοί: οι διαδρομές αλλάζουν πιο γρήγορα
• Περιοδική ενημέρωση
• Ως απάντηση σε αλλαγές κόστους ζεύξεων

Network Layer 4-23


Τρόποι υπολογισμού συντομότερων
Κεντρικοποιημένοι μονοπατιών
• Συλλογή δομής γράφου σε ένα μέρος
• Χρήση τυπικού αλγορίθμου γράφου
• Διάδοση πινάκων δρομολόγησης
Και οι 2 χρησιμοποιούνται στις μέρες μας

Κατάστασης ζεύξεων (Link-state) OSPF


• Κάθε κόμβος συλλέγει την πλήρη δομή του γράφου
• Καθένας υπολογίζει τα συντομότερα μονοπάτια
• Καθένας παράγει το δικό του πίνακα δρομολόγησης
RIP (ένα από τα παλιότερα πρωτόκολλα
δρομολόγησης τον χρησιμοποιεί)
Διανυσμάτων απόστασης (Distance-vector)
• Κανένας δεν έχει αντίγραφο του γράφου
• Οι κόμβοι δημιουργούν τους δικούς τους πίνακες επαναληπτικά
• Ο καθένας στέλνει πληροφορίες για τον πίνακά του στους γείτονες
Network Layer 4-24

Να θυμάστε για τους link-state &


distance-vector:
• Δρομολόγηση κατάστασης ζεύξεων (link state):
ένας κόμβος προσπαθεί να φτιάξει μία πλήρη εικόνα του
δικτύου με το να “φωνάζει” (“πλημμυρίζει”)

• Διανυσμάτων απόστασης (distance vector):


Ένας κόμβος ενδιαφέρεται μόνο για τους γείτονές του και
παίρνει τοπική πληροφορία
Δεν υπάρχει καθολική θεώρηση του δικτύου
Network Layer 4-25
Πρωτόκολλο κατάστασης ζεύξεων
(link-state)
Κάθε κόμβος παίρνει ένα πλήρες αντίγραφο του γράφου
Κάθε κόμβος “πλημμυρίζει” το δίκτυο με δεδομένα σχετικά με τις
εξερχόμενες ζεύξεις του

Κάθε κόμβος υπολογίζει τις διαδρομές προς κάθε άλλον κόμβο


• Χρησιμοποιώντας τον αλγόριθμο μοναδικής πηγής, ελαχίστου
μονοπατιού
• Η διαδικασία γίνεται όποτε χρειάζεται
• Όταν οι συνδέσεις κόβονται/επανεμφανίζονται

Network Layer 4-26

Αποστολή καταστάσεων ζεύξεων


“πλημμυρίζοντας” το δίκτυο
X A X A
Ο X θέλει να στείλει πληροφορία
C B D C B D
Στέλνει σε όλες τις εξερχόμενες ζεύξεις
(a) (b)
Όταν ο κόμβος Y λαμβάνει πληροφορία από
τον Z X A X A
Στέλνει σε όλες τις ζεύξεις εκτός από την Z
C B D C B D
(c) (d)

 Η μέθοδος της “πλημμύρας” είναι ένα συνηθισμένο πρωτόκολλο για την διάδοση
πληροφορίας στο δίκτυο (περιοδικά ή μετά από γεγονότα)
Network Layer 4-27
Ένας αλγόριθμος κατάστασης
ζεύξεων (link state )
 O αλγόριθμος του Dijkstra Συμβολισμός:
• Η τοπολογία του δικτύου και τα κόστη • Κόμβος πηγής: s
των ζεύξεων είναι γνωστά σε όλους τους
κόμβους • “” : μονοπάτι, “→”: ζεύξη
• c(x,y): κόστος ζεύξης x →y;
•  Πετυχαίνεται μέσω μετάδοσης της
κατάστασης των ζεύξεων = ∞ αν δεν είναι άμεσοι γείτονες
• Όλοι οι κόμβοι έχουν τις ίδιες • D(v): τωρινό κόστος μονοπατιού
πληροφορίες sv
• Υπολογίζει τα μονοπάτια ελαχίστου • p(v): προηγούμενος κόμβος στο
κόστους από έναν κόμβο (“πηγή”) προς • μονοπάτι sv
όλους τους άλλους • N’: {κόμβοι των οποίων το
• Δίνει τον πίνακα προώθησης για μονοπάτι ελαχίστου κόστους είναι
αυτόν τον κόμβο
γνωστό}
• επαναληπτικός: ύστερα από k
επαναλήψεις, γνωρίζει τα μονοπάτια
Network Layer
ελαχίστου κόστους προς k προορισμούς 4-28

Αλγόριθμος του Dijsktra


1 Initialization (Αρχικοποίηση):
2 N' = {u}
3 for all nodes v
4 if v adjacent to u then
5 D(v) = c(u,v)
6 else D(v) = ∞
7
8 Loop
9 find w not in N' such that D(w) is a minimum
10 add w to N'
11 update D(v) for all v adjacent to w and not in N‘ :
12 D(v) = min( D(v), D(w) + c(w,v) )

/* new cost to v is either old cost to v or known


shortest path cost to w plus cost from w to v */
13 until all nodes in N'
Network Layer 4-29
Αλγόριθμος του Dijsktra:
παράδειγμα
Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz

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

Συζήτηση για τον αλγόριθμου του


Dijkstra
Αλγοριθμική πολυπλοκότητα: n κόμβοι
• Σε κάθε επανάληψη: χρειάζεται να ελέγξει όλους τους κόμβους w, που δεν
ανήκουν στο σύνολο N
• n(n+1)/2 συγκρίσεις  O(n2)
 Πιο αποδοτικές υλοποιήσεις είναι πιθανές: O(nlogn)
Πιθανές παραλλαγές:
π.χ., κόστος ζεύξης = ποσότητα μεταφερόμενης κίνησης

Network Layer 4-31


Oscillation
A A A A
1 1+e 2+e 0 0 2+e 2+e
D 0
B D B D B D B
0 0 1+e 1 0 0 1+e 1
0 C e 0 0 1 e
C C 1+e 0 C
1 1
e …υπολογίζεται ξανά … υπολογίζεται ξανά …υπολογίζεται ξανά
αρχικά
η δρομολόγηση

•Not all routers run simultaneously the algorithm


•Introduce randomization purposefully into the period between execution instants of the
algorithm at each node

Δρομολόγηση κατάστασης ζεύξεων:


ένας κόμβος προσπαθεί να πάρει μία πλήρη εικόνα του
δικτύου με το να “φωνάζει” (“πλημμυρίζει”)

Διανύσματα-απόστασης (distance vector):


Ένας κόμβος ενδιαφέρεται μόνο για τους γείτονές του και
παίρνει τοπική πληροφορία
Δεν υπάρχει καθολική θεώρηση του δικτύου
Network Layer 4-33
Αλγόριθμος διανυσμάτων απόστασης
(Distance-vector)
Βασική ιδέα:
1. Κάθε κόμβος περιοδικά στέλνει τις δικές του εκτιμήσεις διανυσμάτων
απόστασης στους γείτονές του
2. Όταν ένας κόμβος x λαμβάνει μία νέα εκτίμηση διανυσμάτων απόστασης
από τον γείτονα v:
ενημερώνει τon δικό του πίνακα διανυσμάτων απόστασης (DV)
χρησιμοποιώντας την B-F εξίσωση:
Dx(y) ← minv{ c(x,v) + Dv(y) } for each node y ∊ N

Dx(y) = εκτίμηση ελαχίστου κόστους από x  y


Ο κόμβος x διατηρεί το Dx = [ Dx(y) : y є N ]

Network Layer 4-34

Αλγόριθμος διανυσμάτων
απόστασης (Distance-Vector)
 Bellman-Ford εξίσωση (δυναμικός προγραμματισμός)

Ορίζομε Dx(y) := κόστος τους μονοπατιού με το ελάχιστο κόστος από τον


x στον y

Τότε
v
Dx(y) = min {c(x,v) + Dv(y) }

Οπου η ελάχιστη τιμή ελέγχεται για όλους τους γείτονες v του x

Network Layer 4-35


Μέθοδος διανυσμάτων απόστασης
Initial Table for A
Dest Cost Next Hop E C
3 1
A 0 A
F 1
B 4 B 2
C  – 6
1
D  – 3 D
A 4
E 2 E
B
F 6 F

Ιδέα
• Σε οποιαδήποτε στιγμή, έχουμε το κόστος/επόμενο κόμβο από το καλύτερο
γνωστό μονοπάτι προς τον προορισμό
• Χρήση  κόστους όταν κανένα μονοπάτι δεν είναι γνωστό
Αρχικά: Υπάρχουν μόνο εγγραφές για τους άμεσα συνδεδεμένους γείτονες
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
Ο κόμβος που πετυχαίνει το ελάχιστο είναι ο επόμενος στο
ελάχιστο μονοπάτι ➜ πίνακας προώθησης

Network Layer 4-37


Ενημέρωση του πίνακα διανυσμάτων απόστασης

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)
# Βρέθηκε καλύτερο μονοπάτι

return d,z # Ενημερωμένο κόστος/επόμενος κόμβος

Else

return d(x,y), nexthop(x,y) # Υπάρχον κόστος/επόμενος κόμβος

Αλγόριθμος διανυσμάτων
απόστασης
• 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 ]

Network Layer 4-39


Αλγόριθμοι διανυσμάτων
απόστασης (cont’d)
Επαναληπτικοί, ασύγχρονοι:
Κάθε τοπική επανάληψη προκαλείται από: Κάθε κόμβος:
• Τοπική αλλαγή κόστους ζεύξης
• Μήνυμα ενημέρωσης πίνακα περιμένει για αλλαγή σε
διανυσμάτων απόστασης (DV) από τοπικό κόστος ζεύξης ή μήνυμα
από γείτονα
κάποιον γείτονα

Κατανεμημένος: υπολογίζει ξανά εκτιμήσεις


Κάθε κόμβος ειδοποιεί τους γείτονες
μόνο όταν ο πίνακας διανυσμάτων
απόστασης (DV) αλλάζει Εάν ο πίνακας διανυσμάτων
απόστασης (DV) προς
– Οι γείτονες τότε ειδοποιούν τους οποινδήποτε προορισμό έχει
γείτονές τους εάν είναι απαραίτητο αλλάξει, ειδοποιεί τους
γείτονες

Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dx(z) = min{c(x,y) +


= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
node x table = min{2+1 , 7+0} = 3
cost to cost to cost to
x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3
from

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

Network Layer 4-43


Πίνακας Διανυσμάτων Απόστασης:
αλλαγές στα κόστη των ζεύξεων
Για τον κάθε κόμβο, σημειώνουμε με «κύκλο» το κόστος για το πιο γρήγορο μονοπάτι
(για τον κάθε ένα προορισμό)
Αλλαγές στα κόστη των ζεύξεων:
 Τα καλά νέα ταξιδεύουν γρήγορα 60
Y
 Τα κακά νέα ταξιδεύουν αργά – Πρόβλημα 4 1
«μετρήματος ως το άπειρο!» X Z
50

Ο αλγόριθμος
συνεχίζει!

Network Layer 4-44

Πίνακας Διανυσμάτων Απόστασης:


αλλαγές στα κόστη των ζεύξεων
60
Αλλαγές στα κόστη των ζεύξεων: y
4 1
 Τα καλά νέα ταξιδεύουν γρήγορα x z
 Τα κακά νέα ταξιδεύουν αργά – 50
Πρόβλημα «μετρήματος ως το άπειρο!»
 44 επαναλήψεις προτού ο αλγόριθμος σταθεροποιηθεί

Network Layer 4-45


Σύγκριση των LS & DV
αλγορίθμων
Πολυπλοκότητα μηνυμάτων
• LS: με ν κόμβους, E ζεύξεις, O(nE) μηνύματα στέλνονται
• DV: ανταλλαγές μεταξύ των γειτόνων μόνο
ο χρόνος σύγκλισης ποικίλει

Ταχύτητα σύγκλισης
• LS: ένας O(n2) αλγόριθμος απαιτεί O(nE) μηνύματα
– Μπορεί να έχει διακυμάνσεις
• DV: ο χρόνο σύγκλισης ποικίλει
– Μπορεί να υπάρχουν κύκλοι στη δρομολόγηση
– Πρόβλημα μετρήματος ως το άπειρο

Network Layer 4-46

LS εναντίον DV αλγορίθμων
Σταθερότητα: τι συμβαίνει εάν ένας δρομολογητής δεν λειτουργεί

LS:
– Ο κόμβος μπορεί να διαφημίσει ένα λανθασμένο κόστος ζεύξης
– Κάθε κόμβος υπολογίζει μόνο τον δικό του πίνακα
DV:
– Ένας DV κόμβος μπορεί να διαφημίσει λανθασμένο κόστος μονοπατιού
– Ο πίνακας κάθε κόμβου χρησιμοποιείται και από άλλους
 Το λάθος διαδίδεται στο δίκτυο

Network Layer 4-47


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

Μαρία Παπαδοπούλη

Σκοποί ενότητας
... Ερωτήσεις από τα προηγούμενα 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

Κριτήρια απόδοσης ενός



πρωτοκόλλου δικτύων
Αλγοριθμική πολυπλοκότητα
Καθυστέρησεις (πχ χρόνος για να υπολογιστεί το αποτέλεσμα)
Απαιτήσεις σε ενέργεια & υπολογιστική δύναμη
• Αριθμός μηνυμάτων
Απαιτήσεις σε ενέργεια
Χρόνος για να υπολογιστεί το αποτέλεσμα ή να καταλήξουν οι συσκευές που κάνουν τους
υπολογισμούς (στην περίπτωση ενος distributed αλγορίθμου) στο ίδιο αποτέλεσμα (“time
of convergence”)

Network Layer 4-6


Κριτήρια απόδοσης ενός
πρωτοκόλλου δικτύων 2
• Kλιμακοθετησιμότητα (scalability)
Τι γίνεται όταν αυξάνεται ο αριθμός των συσκευών που συμμετέχουν (πχ μεγαλώνει το
δίκτυο)
• Ευρωστία (robustness, fault tolerance)
Πόσο ευάλωτο είναι σε διάφορες επιθέσεις
Πώς αλλάζει η απόδοση του δικτύου όταν αυξάνονται οι επιθέσεις ή ο αριθμός των
συσκευών που αντιμετωπίζουν κάποιο πρόβλημα
• Ακρίβεια στους υπολογισμούς

Network Layer 4-7

Σύγκριση των LS & DV


αλγορίθμων
Πολυπλοκότητα Μηνύματος
• LS: με n κόμβους, E ζεύξεις, O(nE) μηνύματα στέλνονται
• DV: ανταλλάσσονται μεταξύ γειτόνων μόνο
convergence time ποικίλει

Speed of Convergence
• LS: O(n2) αλγόριθμος απαιτεί O(nE) μηνύματα
– μπορεί να έχει διακυμάνσεις
• DV: convergence time ποικίλει
– Μπορεί να υπάρξουν βρόχοι δρομολόγησης
– count-to-infinity πρόβλημα

Network Layer 4-8


LS vs. DV αλγόριθμοι (συνέχεια)
o Robustness: τι γίνεται αν δεν λειτουργεί σωστά ο δρομολογητής?

o LS:
o ο κόμβος μπορεί να διαδίδει λάθος κόστος ζεύξεως
o Καθε κόμβος υπολογίζει το δικό του table
o DV:
o DV κόμβος μπορεί να διαδίδει λάθος κόστος μονοπατιού
o το table κάθε κόμβου χρησιμοποιείται από άλλους
o  Λάθος διάδοσης μέσω δικτύου

Network Layer 4-9

Ιεραρχική δρομολόγηση
 Η μελέτη μας για την δρομολόγηση (μέχρι τώρα) έχει απλοποιήσει
πολλά:
 όλοι οι δρομολογητές ίδιοι
 το δίκτυο έχει ”επίπεδη” δομή (δεν υπάρχει κάποια “ιεραρχία”)

  … στην πραγματικότητα δεν είναι έτσι:


 Internet: δίκτυα από δίκτυα!!! (επομένως ΔΕΝ έχει“επίπεδη” δομή
Κλιμακωσιμότητα με 200 εκατομμύρια προορισμούς:
δεν μπορούν όλοι να αποθηκευτούν στα routing tables!
• Οι ανταλλαγές routing tables θα πλημμύριζαν τις ζεύξεις!
Διαχειριστική αυτονομία
Ο administrator κάθε δικτύου μπορεί να θέλει:
• ελέγξει την δρομολόγηση στο δικό του δίκτυο
• κρύψει στοιχεία της εσωτερικής οργάνωσης του δικτύου
• χρησιμοποιήσει όποιον αλγ. δρομολόγησης επιλέγει
Network Layer 4-10
Αυτόνομα Συστήματα (AS)
intra-AS vs. inter-AS δρομολόγηση
Ομαδοποίηση δρομολογητών σε περιοχές “autonomous systems” (AS)

• Δρομολογητές στο ίδιο AS τρέχουν το ίδιο πρωτόκολλο δρομολόγησης


“intra-AS” πρωτόκολλο δρομολόγησης
• Δρομολογητές σε διαφορετικά AS μπορεί να τρέχουν διαφορετικά
inter-AS πρωτόκολλα δρομολόγησης
• Η inter-AS δρομολόγηση χρησιμοποιεί κριτήρια «πολιτικής» για την εύρεση
μονοπατιών και όχι απόδοσης όπως γίνεται στα intra-AS
• Μέσα σε ένα AS το θέμα της κλιμάκωσης έχει μικρότερη σημασία
(ενώ στην απόδοση δίνεται έμφαση)

Ένας Gateway δρομολογητής συνδέεται με ζεύξη με δρομολογητή ενός άλλου


AS
Network Layer 4-11

Παράδειγμα πολιτικής δρομολόγησης


ενός πρωτοκόλλου inter-AS

• Τα Α, Β, 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 πρωτόκολλα δρομολόγησης:

• RIP: Routing Information Protocol

• OSPF: Open Shortest Path First

• IGRP: Interior Gateway Routing Protocol (Cisco proprietary)

Network Layer 4-15

RIP ( Routing Information


Protocol)
 Distance Vector (Διάνυσμα απόστασης) αλγόριθμος
• Κάθε ζεύξη έχει κόστος 1
• Περιλήφθηκε στο BSD-UNIX Distribution in 1982
 Ευρέως υλοποιημένο
• Μονάδα απόστασης: # των hops (max = 15 hops)
Από τον δρομολογητή A στα υποδίκτυα:

u προορισμός hops
v
u 1
A B w v 2
w 2
x 3
x y 3
z C D z 2
y

Network Layer 4-16


Διεργασίες - RIP Table
• Τα RIP routing tables ελέγχονται από μία διεργασία επιπέδου εφαρμογής
(!) που λέγεται route-d
• Οι ανακοινώσεις που στέλνονται μέσα στα UDP πακέτα,
επαναλαμβάνονται περιοδικά

routed routed

Transprt Transprt
(UDP) (UDP)
network forwarding forwarding network
(IP) table table (IP)
link link
physical physical

Network Layer 4-17

RIP advertisements
• RIP δαίμονας ανακοινώνει περιοδικά τα διανύσματα απόστασης
 ζητάει από τους γείτονες του το routing table τους
• Διανύσματα απόστασης ανταλλάσσονται μεταξύ γειτόνων κάθε 30 sec
μέσω Μηνύματος Απάντησης (επίσης λέγεται advertisement)

• Κάθε advertisement: απαριθμεί μέχρι και 25 υποδικτύων προορισμού


μέσα στο AS
• Κάθε δρομολογητής ακούει για ενημερώσεις μέσω UDP στην port 520

Network Layer 4-18


RIP Ενημερώσεις
Αρχικά
• Όταν ο δρομολογητής ξεκινάει, ζητάει ένα αντίγραφο του table κάθε γείτονα
• Το χρησιμοποιεί επαναληπτικά για να δημιουργήσει το δικό του table

Περιοδικά
• Κάθε 30 sec, ο δρομολογητής στέλνει αντίγραφο του table σε κάθε γείτονα
• Αυτοί το χρησιμοποιούν επαναληπτικά για να ανανεώσουν τα tables τους
Καθώς επίσης:
• Κάθε φορά που μία εγγραφή αλλάζει, στέλνει ένα αντίγραφο της εγγραφής στους
γείτονες
• Το χρησιμοποιούν οι γείτονες να ανανεώσουν τα tables τους

Network Layer 4-19

“Up-to-date” RIP/Έλεγχος
διακυμάνσεων
Χρονομετρητής διαδρομής
Κάθε διαδρομή έχει ένα όριο timeout (πχ 180 seconds)
• Τερματίζει όταν δεν έχει δεχτεί ενημέρωση από το επόμενο next hop
για κάποιο χρόνο
• Αν δεν ενημερωθεί, ορίζεται στο άπειρο

• Soft-state ανανέωση  σημαντική έννοια!!!

• Όταν ο δρομολογητής ή μια ζεύξη “αποτυγχάνει”, μπορεί να πάρει


λεπτά
για να σταθεροποιηθεί

20
RIP: Αποτυχία ζεύξης και
αποκατάσταση
Αν κανένα advertisement δεν έχει ακουστεί μετά από κάποιο χρόνο (πχ 180 sec)  η
σχετική «γραμμή» στον πίνακα δρομολόγησης με τον γείτονα αυτό «ακυρώνεται»,
και επομένως και οι διαδρομές μέσω αυτού
• καινούρια advertisements στέλνονται στους γείτονες
• Οι γείτονες στέλνουν με τη σειρά τους καινούρια advertisements αν τα
tables έχουν αλλάξει
• Η πληροφορία αποτυχίας μιας ζεύξης γρήγορα διαδίδεται σε όλο το
δίκτυο
• poison reverse χρησιμοποιείται για να αποτρέψει ping-pong
βρόχους/loops (άπειρη απόσταση = 16 hops)

Network Layer 4-21

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
…. …. ....

Network Layer 4-22


RIP: Παράδειγμα
Dest Next hops
w - 1 Advertisement from A to D
x - 1
z C 4
…. … ...
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 BA 75
x -- 1
…. …. ....
Network Layer 4-23

Experiment with routing tables

At a UNIX system, run the command:

netstat –rn

to view the routing table at that hot/router

Understand what is each column (e.g., destination, gateway,


flags, ref, use, interface)

What is the loopback interface?


the default route?

Network Layer 4-24


OSPF (Open Shortest Path First)
• “open”: δημόσια διαθέσιμο (IETF standard)

 Περισσότερο διαδεδομένο από το RIP


• Χρησιμοποιεί αλγόριθμο link-state (Dijkstra algorithm)
• Διασπορά LS πακέτων

•  Τοπολογικός χάρτης σε κάθε κόμβο


• Ένα OSPF advertisement περιλαμβάνει μία καταχώρηση για κάθε γειτονικό
δρομολογητή
• Τα advertisements διαδίδονται σε ολόκληρο το AS (μέσω ενός
πρωτοκόλλου «πλημμυρίσματος»/flooding)
• Περιλαμβάνονται στα μηνύματα OSPF άμεσα πάνω από IP (παρά TCP ή
UDP)
Network Layer 4-25

OSPF – ενημερώσεις κατάστασης


ζεύξης
• Περιοδικές ενημερώσεις κατάστασης ζεύξης από τον κάθε
δρομολογητή
 προσθέτει ευρωστία !
• Όταν η κατάσταση της ζεύξης αλλάξει (“event-driven”)
αλλαγές: στο κόστος, κατάσταση up/down, συνθήκες κίνησης
• Εντοπίζεται από συνδεμένο κόμβο

Network Layer 4-26


OSPF “προηγμένα” χαρακτηριστικά
(όχι στο RIP)
Ασφάλεια:
όλα τα OSPF μηνύματα πιστοποιούνται (για να αποτραπούν “κακόβουλες”
εισβολές)

 μόνο έμπιστοι δρομολογητές παίρνουν μέρος στο OSPF


• Πολλαπλά ίδιου κόστους μονοπάτια επιτρέπονται
(σε αντίθεση: μόνο ένα μονοπάτι στο RIP)
• Για κάθε ζεύξη, πολλαπλές μονάδες κόστους για διαφορετικό TOS
(π.χ., κόστος δορυφορικής ζεύξης είναι “χαμηλό” για best effort;
υψηλό για πραγματικό χρόνο)

Network Layer 4-27

OSPF “προηγμένα” χαρακτηριστικά


(όχι στο RIP)

• Ενσωματωμένη uni- and multicast υποστήριξη:


Multicast OSPF (MOSPF) χρησιμοποιεί ίδια βάση τοπολογίας
όπως ο OSPF
• Ιεραρχικός OSPF σε μεγάλα domains (πολύ σημαντική λειτουργία!)

Network Layer 4-28


Ιεραρχικό OSPF

Network Layer 4-29

Ιεραρχικό OSPF
• Δυο επιπέδων ιεραρχία: τοπική περιοχή & backbone
advertisements κατάστασης ζεύξης μόνο τοπικά
κάθε κόμβος έχει λεπτομερή τοπολογία της τοπικής
περιοχής, μόνο ξέρει κατεύθυνση (μικρότερο μονοπάτι)
σε δίκτυα σε άλλες περιοχές
• Δρομολογητές ορίων περιοχής: “συνοψίζει” αποστάσεις προς
δίκτυα στη δικιά του περιοχή, το ανακοινώνει σε δρομολογητές
ορίων άλλων περιοχών
• Backbone δρομολογητές: τρέχουν OSPF δρομολόγηση περιορισμένη
στο backbone
• Boundary δρομολογητές: συνδέονται σε άλλα AS’s
Network Layer 4-30
Ιεραρχική Οργάνωση του Ίντερνετ
Ενισχύει την κλιμακωσιμότητα (scalability) του Internet
• Οι δρομολογητές είναι ομαδοποιημένοι σε αυτόνομα συστήματα (AS)
 Μέσα στο κάθε AS, όλοι οι δρομολογητές τρέχουν το ίδιο πρωτόκολλο
δρομολόγησης

• Ειδικοί δρομολογητές (gateway routers) σε κάθε AS είναι υπεύθυνοι για τη


δρομολόγηση μεταξύ Ass

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

Internet inter-AS routing: BGP


BGP (Border Gateway Protocol): το de facto standard
• Το BGP προσφέρει σε κάθε AS ένα μέσο για να:
1. αποκτήσει πληροφορίες προσέγγισης υποδικτύου (subnet
reachability) από γειτονικά AS.
2. διαδώσει τις πληροφορίες προσέγγισης σε όλους τους δρομολογητές
εντός του AS.
3. καθορίσει «καλές» διαδρομές προς υποδίκτυα βασιζόμενος στις
πληροφορίες και την πολιτική προσιτότητας.
• Επιτρέπει σε ένα υποδίκτυο τη δημοσιοποίηση της ύπαρξής του στο
υπόλοιπο Internet: «Είμαι (κι εγώ) εδώ!»
Τα βασικά του BGP
• Ζεύγη δρομολογητών (BGP peers) ανταλλάσσουν πληροφορίες
δρομολόγησης πάνω από ημι-μόνιμες TCP συνδέσεις, τα BGP sessions
• Τα BGP sessions δεν αντιστοιχούν σε φυσικές ζεύξεις:
• Όταν ο AS2 δημοσιεύει ένα πρόθεμα (prefix) στον AS1, o AS2 υπόσχεται ότι
θα προωθήσει οποιοδήποτε πακέτο προορίζεται για αυτό το πρόθεμα
πλησιέστερα προς αυτό.
Ο AS2 μπορεί να συσσωρεύσει προθέματα στη δημοσίευσή του.

Διανέμοντας τις πληροφορίες


προσιτότητας
• Κατά το eBGP session μεταξύ των 3α και 1c, ο AS3 στέλνει πληροφορίες
προσέγγισης στον AS1.
• Ο 1c τότε, χρησιμοποιώντας το iBGP , μπορεί να διανείμει την πληροφορία
αυτή σε όλους τους δρομολογητές εντός του AS1.
• Στη συνέχεια, ο 1b μπορεί να επαναδημοσιεύσει την πληροφορία αυτή στον
AS2 μέσω του eBGP session μεταξύ των 1b και 2a.
• Μόλις κάποιος δρομολογητής ενημερωθεί για ένα καινούριο πρόθεμα,
δημιουργεί μία εγγραφή για αυτό στον πίνακα προώθησης (forwarding table)
Γιατί υπάρχουν διαφορετικά Inter-AS &
Intra-AS πρωτόκολλα δρομολόγησης;
Πολιτική (μεταξύ των άλλων και τρόπος διαχείρισης & ελέγχου)
Μεταξύ των AS, κυριαρχούν τα ζητήματα “πολιτικής”
π..χ, κάποιο AS μπορεί να θέλει να ελέγχει ποιά είναι η διακινούμενη κίνηση μεταξύ
άλλων AS που καλύπτει
Έκταση/κλιμακωσιμότητα
• Η ικανότητα ενός αλγορίθμου δρομολόγησης και των δομών δεδομένων του να
υφίστανται κλιμάκωση για τη διαχείριση της δρομολόγησης προς/μεταξύ μεγάλου
αριθμού δικτύων είναι ζωτικής σημασίας στην inter-AS δρομολόγηση
• Λιγότερο σημαντικό στην intra-AS δρομολόγηση
• Όταν κάποιο AS γίνεται πολύ μεγάλο, υπάρχει πάντα η δυνατότητα να διαιρεθεί σε δύο
AS μεταξύ των οποίων θα πραγματοποιείται inter-AS δρομολόγηση (π.χ., ιεραρχικό
OSPF)

Γιατί υπάρχουν διαφορετικά Inter-AS &


Intra-AS πρωτόκολλα δρομολόγησης;
Επίδοση
• Μεταξύ των AS, δεν υπάρχει καν η έννοια κόστους (εκτός του AS hop count) σε σχέση
με τις διαδρομές
• Εντός ενός μοναδικού AS, τα ζητήματα πολιτικής είναι λιγότερο σημαντικά,
επιτρέποντας μεγαλύτερη εστίαση στο επίπεδο επιδόσεων της δρομολόγησης
Τα μηνύματα του BGP
• Τα μηνύματα του BGP ανταλλάσσονται χρησιμοποιώντας TCP

Είδη μηνυμάτων:
• OPEN: δημιουργεί μία TCP σύνδεση με peer και αυθεντικοποιεί τον
αποστολέα
• UPDATE: δημοσιεύει νέα διαδρομή ή αποσύρει παλιά
• KEEPALIVE: διατηρεί ενεργή τη σύνδεση σε περίπτωση απουσίας UPDATES.
Επίσης, αποτελεί ACK στην αίτηση δημιουργίας σύνδεσης (OPEN message)
• NOTIFICATION: δηλώνει σφάλματα σε προηγούμενο μήνυμα. Χρησιμοποιείται,
επίσης, για τον τερματισμό της σύνδεσης.

Η πολιτική δρομολόγησης του BGP

• Τα Α, Β, C είναι δίκτυα-πάροχοι
• Τα Χ, W, Y είναι δίκτυα-πελάτες (των παρόχων)
• Το Χ είναι dual-homed: είναι συνδεδεμένο με δύο δίκτυα
• Το Χ δεν επιθυμεί τη δρομολόγηση πακέτων από το Β προς το C μέσω
του ίδιου (του Χ)…
• …οπότε δεν θα δημοσιεύσει στο Β κάποια διαδρομή προς το C
IP Addressing
Classless Interdomain Routing

Network part of an IP address can be any number of bits long


a.b.c.d/x

where x indicates the number of leading bits in the 32-bit


quantity that constitutes the network portion of the address

•The first x bits specify the organization’s network address


and are common to the IP addresses of all hosts in an
organization
•The remaining indicate the specific host in the organization

Network Layer 4-39

Πώς γίνεται η δρομολόγηση μεταξύ


των backbone ISPs;
• Δεν υπάρχουν επίσημα standards
Εμπειρικός κανόνας:
Οποιαδήποτε κίνηση διαμέσου ενός ISP backbone
δικτύου πρέπει να πηγάζει ή/και να προορίζεται προς
ένα δίκτυο-πελάτη του συγκεκριμένου ISP
 Αποθαρρύνονται οι ‘free-riders’

• Μεμονωμένες ομότιμες συμφωνίες (συχνά εμπιστευτικές) μεταξύ


δύο ISPs
Moving a Datagram …
How does a host transport an IP datagram to another host ?
IP in a host first consults its internal IP forwarding table and finds an
entry whose network address matches the leading bits in the IP
address of destination
 The forwarding table shows the number of hops to the network of
that destination
• If the number of hops = 1
the destination is on the very same network to which the source
host itself is attached, thus,
there is no need for any intervening routers
Else
source & destination are in different networks, thus an intervening
router is necessarily be involved Network Layer 4-41

Moving a Datagram … (cont’d)


If the number_of_hops_to_network = 1

the destination is on the very same network to which the sending


host itself is attached, thus, there is no need for any intervening
routers

• 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

Network Layer 4-42


Moving a datagram (cont’d)
• If the number_of_hops > 1, it indicates that the sending host &
destination are in different networks ->
an intervening router is necessarily be involved

• 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

Network Layer 4-43

Ο στοχασμός της ημέρας

"... οι πιό ματαιόδοξοι των ανθρώπων είναι όσοι περιφρονούν αυτά


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

Network Layer 4-44


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

Μαρία Παπαδοπούλη

Σκοποί ενότητας
• Revisiting
• layers
• encapsulation
• decapsulation
• packet

Βασισμένο κυρίως στο Κεφ. 5 βιβλίου Kurose


Μοντέλο επιπέδων Διαδικτύου
(Στοίβα TCP/IP) Μήνυμα Payload (data)
εφαρμογής
Τμήμα (segment) H1 Payload (data)
μεταφοράς
δικτύου (IP) Datagram H2 H1 Payload (data)

ζεύξης H3 H2 H1 Payload (data)


frame
φυσικό

Ενθυλάκωση (encapsulation)
 @ Καθε επίπεδο:

Λαμβάνει δεδομένα από το ανώτερο επίπεδο

Προσθέτει επικεφαλίδα και δημιουργεί νέα μονάδα δεδομένων

Προωθεί την νέα μονάδα στο επόμενο επίπεδο


@ the receiver: the “reverse” process (decapsulation)

Ενθυλάκωση
Brief Review on Network layer
• transport segment from application
transport

sending to receiving host network


data link
physical

• on sending side network


data link
network
data link

encapsulates segments into


network physical
physical
data link
physical network
datagrams
network
data link data link
physical physical

• on rcving side, delivers network network


segments to transport layer data link
physical
network
data link
physical

• network layer protocols in data link


physical
application
every host, router network
data link
transport
network
network
data link
• router examines header network physical data link
physical
data link physical

fields in all IP datagrams


physical

passing through it

Network Layer 4-7

TCP/UDP Segment
32 bits
source port # dest port #

άλλα πεδία επικεφαλίδας

δεδομένα εφαρμογής
(μήνυμα)

Δεδομένα εφαρμογής για το 1st segment Δεδομένα για το ν-ιοστό segment

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

upper layer protocol 32 bit destination IP address


to deliver payload to E.g. timestamp,
Options (if any)
record route
how much overhead with data taken, specify
TCP? (variable length, list of routers
• 20 bytes of TCP typically a TCP to visit.
or UDP segment)
• 20 bytes of IP
• = 40 bytes + app layer
overhead
Network Layer 4-9

Υπενθύμιση: Ethernet Frame (πλαίσιο)


Ο αποστέλλων adapter “βάζει” το IP δεδομενόγραμμα (ή πακέτο
κάποιου άλλου πρωτοκόλλου Επιπέδου Δικτύου) στο Ethernet
πλαίσιο
6bytes 46-1500bytes
8bytes 6bytes 4bytes

Διόρθωση λαθών
Συγχρονισμός

MAC addresses of neighbors


in the link Ο adapter “ξέρει” πότε ένα πλαίσιο τελειώνει
εντοπίζοντας την απουσία ρεύματος
Preamble: Οι Ethernet adapters μετράνε την τάση πριν και κατά τη
διάρκεια της μετάδοσης
• 7 bytes με το μοτίβο 10101010 ακολουθούμενο από ένα byte με το μοτίβο 10101011
• χρησιμοποιείται για να συγχρονίζει τις τιμές του ρολογιού του παραλήπτη και του
αποστολέα
Κεφ. 3: Επίπεδο μεταφοράς

Στόχος μας είναι η κατανόηση των:


Αρχές πίσω από τις υπηρεσίες του επιπέδου μεταφοράς:
• Πολυπλεξία/αποπολυπλεξία
• Αξιόπιστη μεταφορά δεδομένων
• Έλεγχος ροής (flow control)
• Έλεγχος συμφόρησης (congestion control)

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


• UDP: ασυνδεσιστρεφής μεταφορά
• TCP: συνδεσιστρεφής μεταφορά
& έλεγχος συμφόρησης & ροής

Επίπεδο μεταφοράς 11

Υπηρεσίες και πρωτόκολλα επιπέδου


μεταφοράς
• παρέχουν επικοινωνία με τη μορφή “λογικής” σύνδεσης μεταξύ των
διεργασιών που δημιουργούν οι εφαρμογές που τρέχουν σε διαφορετικούς hosts
• Πρωτόκολλα μεταφοράς τρέχουν σε τερματικά συστήματα
o Αποστέλλουσα πλευρά: application
Χωρίζει τα μηνύματα της εφαρμογής σε transport
network

τμήματα (segments) και τα προωθεί στο data link


physical
network
data link
network
επίπεδο δικτύου data link
physical
physical
o Λαμβάνουσα πλευρά: network
data link
Επανασυναρμολογεί τα segments μηνύματα physical network
data link
και τα προωθεί στο επίπεδο εφαρμογών physical

 Πάνω από ένα πρωτόκολλα μεταφοράς network


data link

διαθέσιμα στις εφαρμογές physical

– Internet: TCP & UDP application


transport
network
data link
physical

Επίπεδο μεταφοράς 12
Επίπεδο μεταφοράς vs. δικτύου
Επίπεδο δικτύου:
“επικοινωνία” μεταξύ hosts
Το IP πρωτόκολλο δεν εγγυάται αξιόπιστη μετάδοση των πακέτων και λήψη τους σύμφωνα με
τη σειρά που στάλθηκαν , ούτε ότι δεν θα υπάρξουν λάθη σε bits των πακέτων

Επίπεδο μεταφοράς:
“λογική” επικοινωνία μεταξύ διεργασιών
Βασίζεται και επεκτείνει τις υπηρεσίες επιπέδου δικτύου
Ανάλογα με το πρωτόκολλο θα «προσφέρει» κάποιου είδους «εγγυήσεις»
για τη ροή των πακέτων που στέλνονται μεταξύ δύο διεργασιών μέσω δικτύου

Επίπεδο μεταφοράς 13

Διαδικτυακά πρωτόκολλα επιπέδου


μεταφοράς
UDP: Αναξιόπιστη, χωρίς εγγύηση στη σειρά
παράδοσης των πακέτων
 Δεν βελτιώνει τον “best-effort” χαρακτήρα του
IP!!!! application
transport
network
data link network
physical data link
TCP: Αξιόπιστη, με εγγύηση στη σειρά network
data link
physical

παράδοσης των πακέτων physical


network
data link
• Έλεγχος συμφόρησης physical network
data link
• Έλεγχος ροής physical

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

transport transport transport

network network network

link link link

physical physical physical

host 2 host 3
host 1
Επίπεδο μεταφοράς 15

Πώς δουλεύει η αποπολυπλεξία


(demultiplexing)
Το host λαμβάνει IP datagrams
• Κάθε datagram έχει IP διεύθυνση “πηγής”, IP διεύθυνση “προορισμού”
 Κάθε datagram “μεταφέρει” 1 segment επιπέδου μεταφοράς
• Κάθε segment έχει αριθμό θύρας (port) της πηγής και προορισμού
32 bits
 Η συσκευή χρησιμοποιεί source port # dest port #
IP διευθύνσεις & αριθμούς θυρών
για να κατευθύνει το segment
άλλα πεδία επικεφαλίδας
στο κατάλληλο socket
δεδομένα
εφαρμογής
(μήνυμα)

Μορφή TCP/UDP segment


Επίπεδο μεταφοράς 16
Aποπολυπλεξία χωρίς “σύνδεση”
(connectionless demultiplexing )
• Δημιουργεί sockets με αριθμούς θυρών:
DatagramSocket mySocket1 = new DatagramSocket(99111);
DatagramSocket mySocket2 = new DatagramSocket(99222);

 UDP socket χαρακτηρίζεται από τα παρακάτω δύο πεδία:


IP διεύθυνση προορισμού, αριθμός θύρας προορισμού
• Οταν ένας host λαμβάνει ένα UDP segment:
• Ελέγχει τον αριθμό θύρας προορισμού στο segment
• Κατευθύνει το UDP segment στο socket με βάση αυτό τον αριθμό θύρας
 IP datagrams με διαφορετική IP διεύθυνση πηγής ή/και αριθμό θύρας
πηγής κατευθύνονται στο ίδιο socket

Επίπεδο μεταφοράς 17

Aποπολυπλεξία χωρίς σύνδεση


(συνέχεια)
DatagramSocket serverSocket = new DatagramSocket(6428);

P2 P3 P1
P1

SP: 6428 SP: 6428


DP: 9157 DP: 5775

SP: 9157 SP: 5775


client DP: 6428 DP: 6428 Client
server
IP: A IP: C IP:B

Η θύρα πηγής (SP) παρέχει “διεύθυνση επιστροφής”

Επίπεδο μεταφοράς 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

SP: 9157 SP: 9157


client DP: 80 DP: 80 Client
server
IP: A S-IP: A IP: C S-IP: B IP:B
D-IP:C D-IP:C

Επίπεδο μεταφοράς 20
Αποπολυπλεξία με σύνδεση:
Threaded Web Server

P1 P4 P2 P1P3

SP: 5775
DP: 80
S-IP: B
D-IP:C

SP: 9157 SP: 9157


client DP: 80 DP: 80 Client
server
IP: A S-IP: A IP: C S-IP: B IP:B
D-IP:C D-IP:C

Επίπεδο μεταφοράς 21

UDP: User Datagram Protocol [RFC


768]
• Μινιμαλιστικό πρωτόκολλο μεταφοράς του
Διαδικτύου
• Υπηρεσία “καλύτερης δυνατής προσπάθειας” Τι εξυπηρετεί το UDP?
(best-effort service),
 Δεν χρειάζεται να προηγηθεί
τα UDP segments μπορεί να:
εγκατάσταση σύνδεσης (που προσθέτει
 χαθούν καθυστέρηση)
 παραληφθούν από την εφαρμογή με
 απλό: δεν διατηρεί “κατάσταση” στους
λάθος σειρά
sender, receiver
 ασυνδεσιστρεφές:
 Μικρή επικεφαλίδα segment
 Δεν γίνεται χειραψία (handshaking)
μεταξύ UDP sender, receiver  Δεν παρέχει έλεγχο συμφόρησης: το
UDP μπορεί να στείλει δεδομένα όσο
γρήγορα μπορεί
Κάθε UDP segment το χειρίζεται το UDP
ανεξάρτητα από τα άλλα

Επίπεδο μεταφοράς 22
Περισσότερες πληροφορίες για το
UDP
Συχνά χρησιμοποιείται για πολυμεσικές εφαρμογές συνεχούς ροής
(streaming multimedia apps)
• Ανοχή σε απώλειες
32 bits
• Ευαισθησία στο ρυθμό μήκος, σε bytes του
UDP segment, μαζί με source port # dest port #
την επικεφαλίδα length checksum

Άλλες χρήσεις του UDP


• DNS
• SNMP
δεδομένα
εφαρμογής
Αξιόπιστη μεταφορά πάνω από UDP: (μήνυμα)
Προστίθεται η αξιοπιστία στο επίπεδο εφαρμογής
 Ανάκαμψη από λάθη με βάση την εφαρμογή!
Μορφή UDP segment
Επίπεδο μεταφοράς 23

Domain Name Server (DNS)


o Τρέχει στο επίπεδο εφαρμογής
o Η εφαρμογή DNS τρέχει σε ένα host. Όταν θέλει να στείλει ένα αίτημα-ερώτηση
(query)
• Φτιάχνει ένα μήνυμα query και το “περνά” στο UDP
• Δεν γίνεται κάποιο handshake με το UDP που τρέχει στον παραλήπτη που
είναι μία άλλη συσκευή στο δίκτυο
• Το UDP προσθέτει μια επικεφαλίδα στο μήνυμα και προωθεί το μήνυμα στο
επίπεδο δικτύου
• To DNS στον querying host περιμένει την απάντηση στο query που έστειλε
• Εάν δεν λάβει απάντηση (γιατί είτε το query είτε η απάντηση χάθηκαν) τότε
στέλνει το query σε άλλο name server ή ειδοποιεί την εφαρμογή ότι δε έχει
λάβει απάντηση

Επίπεδο μεταφοράς 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

Παράδειγμα Internet Checksum


 Σημείωση
Όταν προσθέτουμε αριθμούς ένα κρατούμενο από το πιο
σημαντικό bit πρέπει να προστεθεί στο αποτέλεσμα
Παράδειγμα: πρόσθεση δύο ακεραίων 16-bit

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
Αρχές αξιόπιστης μεταφοράς
δεδομένων
Σημαντικό στα επίπεδα εφαρμογής, μεταφοράς και ζεύξης

 top-10 λίστα με σημαντικά θέματα δικτύου!

 Τα χαρακτηριστικά του μη αξιόπιστου καναλιού θα προσδιορίσουν την


πολυπλοκότητα του πρωτοκόλλου αξιόπιστης μεταφοράς δεδομένων
Επίπεδο μεταφοράς 27

Συμφόρηση (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

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


1. End-to-end congestion control
TCP takes this approach since IP does NOT provide feedback to the end system
regarding network congestion

2. Network-assisted congestion control


Οι δρομολογητές στέλνουν άμεση πληροφόρηση στον αποστολέα, για παράδειγμα
με τους παρακάτω τρόπους:
• a bit indicating congestion at a link or
• an explicit control message

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
Αυτό χρησιμοποιείται τώρα στο Διαδίκτυο

2. Network-assisted congestion control:


Οι δρομολογητές πληροφορούν τη συσκευή του χρήστη (end system)
Single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM)
• Explicit rate sender should send at
•  Problem: makes routers complicated

Congestion Control and Avoidance


A mechanism which:
• Uses network resources efficiently
• Preserves fair network resource allocation
• Prevents or avoids collapse

Congestion collapse is not just a theory


Has been frequently observed in many networks

Transport Layer 4-32


TCP: Επισκόπηση (1/4) RFCs: 793, 1122, 1323,2018, 2581
Σημαντικά χαρακτηριστικά του TCP
• σημείο-προς-σημείο: • Πλήρως αμφίδρομα δεδομένα:
Ένας αποστολέας, ένας παραλήπτη Ροή δεδομένων και προς τις δύο
(σε αντίθεση με το multicasting) κατευθύνσεις στην ίδια “σύνδεση”
MSS: maximum segment size
• αξιόπιστο, σε σειρά ροή των byte:
Η εφαρμογή από επάνω θα “παραλάβει” τα (μέγιστο μέγεθος του segment)
πακέτα στη σωστή σειρά
• “συνδεσιστρεφές”: χειραψία
• pipelined: (ανταλλαγή μηνυμάτων ελέγχου)
Ο TCP έλεγχος συμφόρησης & ροής θέτουν αρχικοποιούν την κατάσταση του αποστολέα
το μέγεθος παραθύρου και του παραλήπτη, πριν την ανταλλαγή
Πολλά πακέτα μπορούν να έχουν σταλθεί δεδομένων
“ταυτόχρονα” και να μην έχουν γίνει ACKed

• Buffers αποστολής & παραλαβής!!! • Ελεγχόμενη ροή:


• Ο αποστολέας δεν θα “κατακλύσει” τον
socket
application
writes data
application
reads data
παραλήπτη
socket
door door
TCP TCP
send buffer
segment
receive buffer Επίπεδο μεταφοράς 33

TCP seq. #’s and ACKs


Seq. #’s:
byte stream “number” of first byte in segment’s data

ACKs:
• seq # of next byte
που αναμένεται από την άλλη πλευρά
• Υπάρχουν και τα cumulative ACK

Q: πώς χειρίζεται ο παραλήπτης πακέτα που έρχονται σε λανθασμένη σειρά?


A: TCP δεν προσδιορίζει τον τρόπο.
Το αφήνει στον προγραμματιστή που υλοποιεί τη συγκεκριμένη έκδοση
TCP seq. #’s and ACKs
Seq. #’s:
Host A Host B
byte stream “number” of first byte in
segment’s data User
types
ACKs: ‘C’ host ACKs
• seq # of next byte
receipt of
που αναμένεται από την άλλη ‘C’, echoes
πλευρά back ‘C’
• Υπάρχουν και τα cumulative
ACK host ACKs
Q: πώς χειρίζεται ο παραλήπτης receipt
of echoed
πακέτα που έρχονται σε
‘C’
λανθασμένη σειρά?
A: TCP δεν προσδιορίζει τον time
τρόπο. Το αφήνει στον simple telnet scenario
προγραμματιστή που υλοποιεί
τη συγκεκριμένη έκδοση

TCP: Επισκόπηση (2/4)


ΟιTCP έλεγχοι συμφόρησης & ροής θέτουν το μέγεθος παραθύρου
Πολλά πακέτα μπορούν να σταλθούν “ταυτόχρονα” και να μην
γίνουν ACKed μέσα σε ένα χρονικό διάστημα
Buffers αποστολής & παραλαβής

Ελεγχόμενη ροή: αποστολέας δεν θα “κατακλύσει” τον παραλήπτη


LastByteSent - LastByteAcked <= min (CongWin, RcvWindow)

Παράμετροι που πρσδιορίζονται…

Ποιά είναι η επίδραση μικρών τιμών στα CongWin & RcvWindow?


Πώς επηρεάζουν τον ρυθμό αποστολής των δεδομένων ?
Επίπεδο μεταφοράς 36
TCP: Επισκόπηση
ΟιTCP έλεγχοι συμφόρησης & ροής θέτουν το μέγεθος παραθύρου
Πολλά πακέτα μπορούν να έχουν σταλθεί “ταυτόχρονα” και να μην έχουν
γίνει ACKed

Ελεγχόμενη ροή: αποστολέας δεν θα “κατακλύσει” τον παραλήπτη


Ο αποστολέας ελέγχει το παρακάτω:
LastByteSent - LastByteAcked <= min (CongWin, RcvWindow)

Η ροή αποστολής ελέγχεται από αυτές τις δύο παραμέτρους

αναλύει «δικτυακά» δεδομένα, προσπαθεί να συμπεράνει για τις δικτυακές


συνθήκες, και αποφασίζει για τις τιμές αυτών των παραμέτρων.

Ερώτηση: πώς καθορίζει την κατάσταση του δικτύου?


Προσπαθεί να τη μαντεύσει μετρώντας τις απώλειες των πακέτων
& καθυστερήσεις!!! Επίπεδο μεταφοράς 37

TCP: Επισκόπηση (4/4)

Three important concepts:


• Additive-increase, multiplicative-decrease
• Slow start
• Reaction to timeouts

Επίπεδο μεταφοράς 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

Sequence Number Space


Το TCP βλέπει τα δεδομένα σαν μια ροή δεδομένων, σειρά από bytes
Ο αποστολέας στέλνει τα πακέτα σύμφωνα με τη σειρά αυτή
Ο παραλήπτης θα προσπαθήσει να την “ξαναδημιουργήσει”
Κάθε byte στη ροή των bytes είναι αριθμημένο
• 32 bit τιμή
• Κάνει wrap around
• Η αρχική τιμή επιλέγεται τη στιγμή εκκίνησης
Το TCP διασπάει τη ροή δεδομένων σε πακέτα
Το μέγεθος πακέτου περιορίζεται από το μέγιστο μέγεθος segment (MSS)
 Κάθε πακέτο έχει ένα sequence number (αριθμό σειράς)
Προσδιορίζει που βρίσκεται στη ροή δεδομένων
13450 14950 16050 17550

packet 8 packet 9 packet 10


Επίπεδο μεταφοράς 40
Σημαντικές έννοιες του TCP
• Σημαντική παράμετρος: το Παράθυρο συμφόρησης (Congestion window)
 Δυναμική ρύθμιση του μεγέθους του κατά τη διάρκεια της μετάδοσης
των πακέτων της ροής (αdaptation of its size)
• Υπάρχει κι άλλη μια παράμετρος που λέγεται Threshold
Και δείχνει πότε σταματά η slow start φάση & ξεκινά η congestion
avoidance φάση
• Timeouts
 not receiving the ACK of a packet within a time interval
Estimating RTT
• Συμπεραίνει τις απώλειες των πακέτων (Inferring packet loss)
• Slow start
• Fast retransmission
Transport Layer 4-41

TCP seq. #’s and ACKs (1/2)


Seq. #’s:
«Αριθμός» ροής byte του πρώτου byte στα δεδομένα του segment

ACKs:
• seq # του επόμενου byte που αναμένεται από την άλλη πλευρά
• συσσωρευτικό (cumulative) ACK

Επίπεδο μεταφοράς 42
TCP seq. #’s and ACKs (2/2)
Q: Πώς διαχειρίζεται ο παραλήπτης segments που φτάνουν με λάθος
σειρά

A: Δεν περιγράφεται στις «προδιαγραφές» TCP – επιλέγεται κατά


βούληση σε κάθε υλοποίηση
Ο παραλήπτης έχει τις παρακάτω δύο γενικές επιλογές:
1. αμέσως “πετά” τα segments που έφτασαν με λάθος σειρά, ή
2. “κρατά” τα segments που ήρθαν με λάθος σειρά και περιμένει τα
λάβει πακέτα με τα bytes που “χάθηκαν/δεν έφτασαν” ώστε να
καλύψει τα κενά

Επίπεδο μεταφοράς 43

TCP σύνδεση: χειραψία σε 3


βήματα
Βήμα 1: ο client host στέλνει τοTCP SYN segment στον server
• Προσδιορίζει τον αρχικό αριθμό σειράς (seq #)
• Δεν περιέχει δεδομένα
Βήμα 2: ο server host λαμβάνει το SYN, απαντάει με SYNACK segment
Ο server δεσμεύει buffers !
Προσδιορίζει τον αρχικό αριθμό σειράς
Βήμα 3: ο client λαμβάνει SYNACK, απαντάει με ACK segment, που
μπορεί να περιέχει και δεδομένα

Επίπεδο μεταφοράς 44
Εγκαθίδρυση σύνδεσης: χειραψία σε 3
βήματα
• Κάθε πλευρά ειδοποιεί την άλλη για τον
αρχικό αριθμό σειράς (seq #) που θα
SYN: SeqC
χρησιμοποιήσει για την αποστολή
Γιατί να μην επιλέξουμε απλά το 0;
• Πρέπει να αποφύγει την ACK: SeqC+1
επικάλυψη με προηγούμενο SYN: SeqS
πακέτο
• Θέματα ασφάλειας ACK: SeqS+1
• Κάθε πλευρά επιβεβαιώνει τον αριθμό
σειράς της άλλης
SYN-ACK: αριθμός σειράς επιβεβαίωσης + 1
• Μπορεί να συνδυάσει το δεύτερο SYN με Client Server
το πρώτο ACK
Επίπεδο μεταφοράς 45

Διαχείριση TCP σύνδεσης


Υπενθύμιση: Βήμα 1: ο client host στέλνει τοTCP SYN segment στον
Οι TCP sender & receiver εγκαθιδρύουν server
σύνδεση πριν ανταλλάξουν segments • Προσδιορίζει τον αρχικό αριθμό σειράς (seq
δεδομένων #)
• καθόλου δεδομένα
• αρχικοποίηση μεταβλητών τουTCP : Βήμα 2: ο server host λαμβάνει το SYN, απαντάει με
seq. #s SYNACK segment
Buffers & πληροφορίες ελέγχου ροής • Ο server δεσμέυει buffers
(e.g. RcvWindow)
• Προσδιορίζει τον αρχικό αριθμό σειράς
• client: ξεκινάει τη σύνδεση Βήμα 3: ο client λαμβάνει SYNACK, απαντάει με ACK
Socket clientSocket = new segment, που μπορεί να περιέχει και δεδομένα
Socket("hostname","port number");

• server: αποδέχεται επικοινωνία από τον


client
Socket connectionSocket =
welcomeSocket.accept();

Επίπεδο μεταφοράς 46
Διαχείριση TCP σύνδεσης
(συνέχεια)
Κλείσιμο μίας σύνδεσης: client server

Ο client κλείνει το socket: close


clientSocket.close();
Βήμα 1: το τερματικό σύστημα του client στέλνει
TCP FIN segment ελέγχου στον server close

Βήμα 2: το τερματικό σύστημα του server λαμβάνει


το FIN, απαντάει με ACK. Κλείνει την σύνδεση,
στέλνει FIN

timed wait
closed

Επίπεδο μεταφοράς 47

Διαχείριση TCP σύνδεσης


(συνέχεια)
Βήμα 3: ο client λαμβάνει το FIN, απαντάει client server
με ACK
closing
Μπαίνει σε χρονισμένη αναμονή -
θα απαντήσει με ACK στα FINs που
λαμβάνει
closing
Βήμα 4: ο server, λαμβάνει το ACK.
Η σύνδεση έκλεισε.
timed wait

Σημείωση: με μικρές μετατροπές, μπορεί


να γίνει διαχείριση ταυτόχρονων FINs. closed

closed

Επίπεδο μεταφοράς 48
Διαχείριση TCP
σύνδεσης(συνέχεια)

Κύκλος ζωής
TCP server

Κύκλος ζωής
TCP client

Επίπεδο μεταφοράς 49

Παράδειγμα εγκαθίδρυσης TCP


σύνδεσης 1
09:23:33.042318 IP 128.2.222.198.3123 > 192.216.219.96.80:
S
4019802004:4019802004(0) win 65535 <mss
1260,nop,nop,sackOK> (DF)

09:23:33.118329 IP 192.216.219.96.80 > 128.2.222.198.3123:


S
3428951569:3428951569(0) ack 4019802005 win 5840 <mss
1460,nop,nop,sackOK> (DF)

09:23:33.118405 IP 128.2.222.198.3123 > 192.216.219.96.80:


. ack
3428951570 win 65535 (DF)

Επίπεδο μεταφοράς 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

Παράδειγμα κλεισίματος TCP


σύνδεσης 1
09:54:17.585396 IP 128.2.222.198.4474 >
128.2.210.194.6616: F
1489294581:1489294581(0) ack 1909787689 win 65434 (DF)

09:54:17.585732 IP 128.2.210.194.6616 >


128.2.222.198.4474: F
1909787689:1909787689(0) ack 1489294582 win 5840 (DF)

09:54:17.585764 IP 128.2.222.198.4474 >


128.2.210.194.6616: . ack
1909787690 win 65434 (DF)

Επίπεδο μεταφοράς 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

rcv ACK of FIN rcv ACK of FIN

TIME WAIT CLOSED


rcv FIN Timeout=2msl
snd ACK delete TCB

Επίπεδο μεταφοράς 56
TCP Timeout
• Μηχανισμός που καθορίζει πόσο να περιμένει ο αποστολέας μέχρι
να ξαναστείλει το πακέτο
• Ο timer (εάν ήδη δεν “τρέχει” για κάποιο άλλο segment) ξεκινά όταν
το segment “παραδίδεται” στο IP επίπεδο
• Όταν ο timer λήξει, το segment ξαναστέλνεται και το TCP ξεκινά ξανά
τον timer

 Το TCP του sender διατηρεί πληροφορία για το παλιότερο


unacknowledged byte

Επίπεδο μεταφοράς 57

Sliding window of TCP


Το TCP είναι ένα πρωτόκολλο κυλιόμενου παραθύρου (sliding window
Αποστολέας:
Για μέγεθος παραθύρου n, μπορεί να στείλει έως και n bytes χωρίς
να λάβει επιβεβαίωση

Όταν τα δεδομένα επιβεβαιωθούν τότε το παράθυρο


μετακινείται προς τα μπρος
Παραλήπτης:
Στο κάθε πακέτο “σημειώνεται” το μέγεθος παραθύρου, δηλαδή ο
αριθμός των bytes για τα οποία έχει χώρο o παραλήπτης

Επίπεδο μεταφοράς 58
Έλεγχος ροής με παράθυρο
Aποστέλλουσα πλευρά

window

Στάλθηκαν και Στάλθηκαν


Δεν στάλθηκαν
επιβεβαιώθηκαν αλλά δεν
ακόμα
επιβεβαιώθηκαν

Επόμενα για αποστολή

Επίπεδο μεταφοράς 59

Μηχανισμός γρήγορης
επαναποστολής
 To TCP χρησιμοποιεί τα sequence numbers για να βρει ποια πακέτα
έχουν χαθεί

Η παραλαβή 3 ομοίων ACKs για ένα συγκεκριμένο segment παίζει το


ρόλο ενός “έμμεσου” NACK (negative ACK – αρνητικής
επιβεβαίωσης) για το segment που ακολουθεί, προκαλώντας την
επαναποστολή του segment πριν γίνει timeout

Επίπεδο μεταφοράς 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

επιβεβαιωμένα σταλμένα πρόκειται εκτός παραθύρου


να σταλούν
Επίπεδο μεταφοράς 61

Έλεγχος ροής με παράθυρο


λαμβάνουσα πλευρά
Τι πρέπει να κάνει ο παραλήπτης;
New

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

TCP Round Trip Time και


Timeout
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT

• Μ.Ο. με εκθετικά βάρη (exponential weighted moving average)


• Η επίδραση των παλαιότερων δειγμάτων φθίνει εκθετικά
• Τυπική τιμή:  = 0.125

Επίπεδο μεταφοράς 64
TCP Round Trip Time και
Timeout
Θέτοντας το timeout
• EstimtedRTT συν “περιθώριο ασφαλείας”
• Μεγάλη μεταβλητότητα στο EstimatedRTT -> μεγαλύτερο περιθώριο ασφαλείας
• Πρώτα υπολογίζεται η τυπική απόκλιση του SampleRTT από το EstimatedRTT:

DevRTT = ( 1 -  )* DevRTT +
 * | SampleRTT – EstimatedRTT |

(τυπικά,  = 0.25)

Μετά η τιμή του χρονικού διαστήματος τίθεται σε:

TimeoutInterval = EstimatedRTT + 4 * DevRTT

Επίπεδο μεταφοράς 65

TCP reliable data transfer

• TCP creates service on top of IP’s unreliable service


• pipelined segments (e.g., sending several segments, back-to-back)
• cumulative acks
• TCP uses single retransmission timer

• retransmissions are triggered by:


o timeout events
o duplicate acks
TCP sender events:
data received from application:
• Create segment with seq #
• seq # is byte-stream number of first data byte in segment
• start timer if not already running
• (think of timer as for oldest unacked segment)
• expiration interval: TimeOutInterval

TCP sender events:

timeout:
• retransmit segment that caused timeout
• restart timer

ACK packet received:


If acknowledges previously unacked segments
• update what is known to be acked
• start timer if there are outstanding segments
NextSeqNum = InitialSeqNum
SendBase = InitialSeqNum

loop (forever) { TCP


switch(event)
event: data received from application above sender
create TCP segment with sequence number («βασικός
NextSeqNum
if (timer currently not running) αλγόριθμος»)
start timer
pass segment to IP
NextSeqNum = NextSeqNum + length(data)
event: timer timeout Comment:
retransmit not-yet-acknowledged segment with • SendBase-1:τελευταίο
smallest sequence number byte για το οποίο
start timer επιβεβαιώθηκε
event: ACK received, with ACK field value of y συσσωρευτικά
if (y > SendBase) { η λήψη του
SendBase = y
if (there are currently not-yet-acknowledged
segments) NextSeqNum-1:
start timer το τελευταίο
} Byte που μεταδόθηκε
} /* end of loop forever */ συσωρευτικά

TCP Round Trip Time and


Timeout
Q: how to set TCP timeout Q: how to estimate RTT?
• SampleRTT: μέτρησε τον χρόνο από την
value?
μετάδοση του segment μέχρι τη λήψη του
• longer than RTT ACK
 but RTT varies! o Αγνόησε τις επαναμεταδόσεις
• too short: premature timeout • SampleRTT will vary, want estimated
RTT “smoother”
 unnecessary
o average several recent measurements,
retransmissions not just current SampleRTT
• too long: slow reaction to
segment loss
TCP Round Trip Time and
Timeout
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT

 Exponential weighted moving average


 influence of past sample decreases exponentially fast
 typical value:  = 0.125

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)

SampleRTT Estimated RTT

Transport Layer 4-72


TCP: retransmission scenarios
Host A Host B Host A Host B

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

TCP retransmission scenarios


(more)
Host A Host B
timeout

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

timeout or 3 DUP ACKs

But how much should a sender reduce its congestion window ?


LastByteSent- LastByteAcked ≤ min {Congestion Window, Receive Window}

congestion flow control


Observa on: Large Conges on Windows → Large Number of
Transport Layer 4-75
non-ACKed packets trx → Large Sending Rate

Κεντρικά χαρακτηριστικά του ελέγχου


συμφόρησης του TCP (congestion control)

1. Γραμμική αύξηση, πολλαπλασιαστική μείωση (additive increase,


multiplicative decrease):
Increase transmission rate (window size), probing for usable bandwidth,
until loss occurs
• additive increase: increase Congestion Window by 1 MSS every
RTT, until loss detected
• multiplicative decrease: cut Congestion Window in half after loss

1. Slow start
2. Reaction to timeout events
time

Transport Layer 4-76


TCP congestion control:additive increase,
multiplicative decrease (AIMD)
Approach: increase transmission rate (window size), probing for
usable bandwidth until loss occurs
congestion avoidance

 additive increase: increase Congestion Window by 1 MSS


every RTT until loss detected
multiplicative decrease: cut Congestion Window in half
after loss
congestion
Using the additive increase window
congestion window

It probes the network to 24 Kbytes

Check if the congestion has


Been alleviated 16 Kbytes
size

8 Kbytes

time
Saw tooth time

behavior: probing for bandwidth Transport Layer

How fast the window size of the sender


increases affects the TCP sending rate
Additive Increase Exponential Increase

Host A Host B Host A Host B


Source Destination
RTT

time

Transport Layer 4-78


Αποφυγή συμφόρησης (Congestion
Avoidance)
Η γραμμική αύξηση του παραθύρου τουTCP
congestion control λέγεται φάση αποφυγής
συμφόρησης
Source Destination

Add one packet


each RTT

Transport Layer 4-79

TCP Congestion Control – key ideas

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
(για απλότητα ας «αγνοήσουμε» προς
στιγμή τον έλεγχο ροής)
Roughly:
CongWin
rate = Bytes/sec
RTT three mechanisms:
• AIMD
Congestion Window is dynamic, function • slow start
of perceived network congestion • conservative after timeout events

Observation: Large Congestion Windows → Large Sending Rates


in the slides, sometimes we talk about increase/decrease of the rate and
other times about increase/decrease of CongWindow
TCP Slow Start (1/3)
Όταν ξεκινά η σύνδεση το CongestionWindow είναι 1 MSS
επειδή το congestion window είναι πολύ μικρό λέγεται “slow start”
• Example: MSS = 500 bytes & RTT = 200 msec
• initial rate = 20 kbps
note: Ωστόσο το διαθέσιμο bandwidth μπορεί να είναι >>MSS/RTT
 Γι αυτό το λόγο αυξάνουμε γρήγορα το ρυθμό μετάδοσης
Δηλαδή τον αυξάνουμε εκθετικά
Μέχρι όμως την πρώτη απώλεια πακέτου

The increase (CongestionWindow++) takes place at the reception of


1 ACK …

 why the rate increases exponentially fast?

Example of TCP Slow start (2/3)


1. TCP sends the first segment and waits for the ACK
2. If this segment is acked before a loss event,
• the TCP sender increases the congestion window by 1 MSS, and
• sends out two maximum-sized segments.
3. If these segments are acked before loss events,
• the sender increase the congestion window by 1 MSS for each of
the ACK segments,
(giving a congestion window of 4 MSSS), and
• sends out 4 maximum sized segments.

The value of CongWindow effectively doubles every RTT during the


slow-start phase.

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

done by incrementing CongWin for


every ACK received

Summary: initial rate is slow but


ramps up exponentially fast
time

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 !!!!

Δικαιολόγηση:

3 dup ACKs (duplicate acknowledgements) δείχνουν μια πιο ήπια κατάσταση


συμφόρησης από ότι η περίπτωση του timeout
Γιατί στην πρώτη περίπτωση καταφέρνει ο παραλήπτης και λαμβάνει κάποια
segments

timeout indicates a more alarming congestion scenario

Refinement: inferring loss


• Μετά από τη λήψη 3 dup ACKs:
• Congestion window (cwnd) is cut in half
Και μετά αυξάνεται γραμμικά
• Αλλά μετά από timeout:
• Το congestion window (cwnd) γίνεται 1 MSS
• Αυξάνει εκθετικά μέχρι ένα threshold (που είναι ίσο με το μισό
όσο ήταν πριν το timeout), και μετά αυξάνει γραμμικά

Philosophy:

 3 dup ACKs indicates network capable of delivering some segments


 timeout indicates a “more alarming” congestion scenario
Reaction to Congestion Events

 Distinguish the approach based on the type of event: timeout or 3-DUP-


ACKs
In the case of 3-DUP-ACKs:
– Congestion window / 2 and then increase linearly
In the case of timeout:

 The sender enters the slow-start phase!!!


– Congestion window = 1MSS
– exponential increase until the congestion window reaches half the value it
had before the timeout, and then
– continue with linear increase (as in the case of 3-DUP-ACK)
Transport Layer 4-87

TCP Congestion Control


Threshold: determines the window size at which the
slow start will end and the congestion avoidance will begin

• When CongWin <= Threshold:


sender in slow-start phase, congest. window grows exponentially
• When CongWin > Threshold:
sender in congestion-avoidance phase, congest. window grows linearly
• When triple duplicate ACK occurs:
• Threshold=CongWin/2 Congestion Avoidance
• CongWin=Threshold phase

• When timeout occurs:


• Threshold=CongWin/2
Slow start phase
• CongWin= 1 MSS
Transport Layer 4-88
TCP CongestionControl: details
sender limits transmission:
LastByteSent-LastByteAcked  cnwd

cwnd
roughly, rate = Bytes/sec
RTT

cwnd is dynamic, function of perceived network congestion

How does sender perceive congestion?


• loss event = timeout or 3 duplicate acks
• TCP sender reduces rate (cwnd) after loss event
three mechanisms:
• AIMD
• slow start
• conservative after timeout events

Host A Host B

X
timeout

time

Resending a segment after triple duplicate ACK


Transport Layer
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
}

a duplicate ACK for fast retransmit


already ACKed segment

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 Flow Control: Send Side

window

Sent and acked Sent but not acked Not yet sent

Next to be sent

Transport Layer
Window Flow Control: Receive Side

What should receiver do?

New

Receive buffer

Acked but not Not yet


delivered to user acked

window
Transport Layer

TCP Flow Control


Receive side of TCP connection has a receive buffer:
flow control
sender won’t overflow
receiver’s buffer by
transmitting too much,
too fast

speed-matching service: matching the send rate to the receiving app’s


drain rate
 app process may be slow at reading from buffer
TCP Flow control: how it works

receiver advertises spare room by including value of RcvWindow in segments


sender limits unACKed data to RcvWindow
– guarantees receive buffer doesn’t overflow

suppose TCP receiver discards out-of-order segments)


spare room in buffer
RcvWindow = RcvBuffer - [LastByteRcvd - LastByteRead]

TCP congestion control: summary

 Sender:
• Reduces the sending rate via reducing the congestion window, when
a loss event occurs
• Increase the sending rate, when congestion is reduced

timeout or 3 DUP ACKs

But how much should a sender reduce its congestion window ?


LastByteSent- LastByteAcked ≤ min {Congestion Window, Receive Window}

congestion flow control


Observa on: Large Conges on Windows → Large Number of
Transport Layer 4-98
non-ACKed packets trx → Large Sending Rate
Δίκτυα Υπολογιστών

Μαρία Παπαδοπούλη

Σκοποί ενότητας
• κατανόηση των θεμελιωδών αρχών του 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

 Τα sources ανταγωνίζονται για τους πόρους του δικτύου, αλλά


δεν έχουν γνώση των πόρων του δικτύου (state of resource)
 δεν ξέρουν την ύπαρξη η μία της άλλης
 Με αποτέλεσμα:
 Πακέτα να χάνονται (λόγω buffer overflow στους δρομολογητές)
 Μεγάλες καθυστερήσεις (αναμονή στις ουρές των buffers στους δρομολογητές)
 throughput μικρότερο από το bottleneck link (1.5Mbps για την
παραπάνω τοπολογία)  κατάρρευση λόγω συμφόρησης

TCP 7

Κατάρρευση λόγω συμφόρησης


(Congestion Collapse)
 Ορισμός: Αύξηση στο φόρτο δικτύου οδηγεί σε μείωση της χρήσιμης
δουλειάς που γίνεται
 Πολλές πιθανές αιτίες
 Πλαστές επαναμεταδόσεις πακέτων βρίσκονται ακόμα σε εξέλιξη
• Κλασική κατάρρευση λόγω συμφόρησης
• Πώς μπορεί να συμβεί αυτό με τη διατήρηση των πακέτων
• Λύση: καλύτεροι timers και TCP έλεγχος συμφόρησης
 Μη παραδοθέντα πακέτα
• Τα πακέτα καταναλώνουν πόρους και γίνονται drop κάπου αλλού
στο δίκτυο
• Λύση: έλεγχος συμφόρησης για ΌΛΗ την κίνηση

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 segment


URG: επείγοντa
δεδομένα 32 bits
(γενικά δεν source port # dest port # Μέτρηση με βάση
χρησιμοποιείται) τα bytes των
sequence number δεδομένων
ACK: ACK #
έγκυρο acknowledgement number (όχι τα segments!)
head not
PSH: σπρώξε data τώρα len used
UA P R S F Receive window
# bytes
(γενικά δεν checksum Urg data pnter που ο παραλήπτης
χρησιμοποιείται)
RST, SYN, FIN: διατίθεται να
Επιλογές(variable length) παραλάβει
Εγκατάσταση σύνδεσης
(εντολές εγκατάστασης,
τερματισμού)
Δεδομένα εφαρμογής
Internet (μεταβλητό μήκος)
checksum
(όπως στο UDP)

TCP 10
Sequence Number Space
Το TCP βλέπει τα δεδομένα σαν μια ροή δεδομένων, σειρά από bytes
Ο αποστολέας στέλνει τα πακέτα σύμφωνα με τη σειρά αυτή
Ο παραλήπτης θα προσπαθήσει να την “ξαναδημιουργήσει”

κάθε byte στη ροή των bytes είναι αριθμημένο


32 bit τιμή

 Κάνει wrap around
 Η αρχική τιμή επιλέγεται τη στιγμή εκκίνησης
 Το TCP διασπάει τη ροή δεδομένων σε πακέτα
 Το μέγεθος πακέτου περιορίζεται από το μέγιστο μέγεθος segment (MSS)
 Κάθε πακέτο έχει ένα sequence number (αριθμό σειράς)
 Προσδιορίζει που βρίσκεται στη ροή δεδομένων

13450 14950 16050 17550

packet 8 packet 9 packet 10


TCP 11

TCP σύνδεση: χειραψία σε 3


βήματα
Βήμα 1: ο client host στέλνει τοTCP SYN segment στον server
 Προσδιορίζει τον αρχικό αριθμό σειράς (seq #)
 καθόλου δεδομένα
Βήμα 2: ο server host λαμβάνει το SYN, απαντάει με SYNACK segment
 Ο server δεσμεύει buffers
 Προσδιορίζει τον αρχικό αριθμό σειράς
Βήμα 3: ο client λαμβάνει SYNACK, απαντάει με ACK segment, που μπορεί να
περιέχει και δεδομένα

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 σύνδεσης


Βήμα 1: ο client host στέλνει τοTCP SYN segment στον server
Υπενθύμιση:
 Προσδιορίζει τον αρχικό αριθμό σειράς (seq #)
Οι TCP sender, receiver εγκαθιδρύουν  καθόλου δεδομένα
σύνδεση πριν ανταλλάξουν segments Βήμα 2: ο server host λαμβάνει το SYN, απαντάει με SYNACK segment
δεδομένων  Ο server δεσμέυει buffers
 Προσδιορίζει τον αρχικό αριθμό σειράς
 αρχικοποίηση μεταβλητών τουTCP : Βήμα 3: ο client λαμβάνει SYNACK, απαντάει με ACK segment, που
μπορεί να περιέχει και δεδομένα
 seq. #s
 buffers, πληροφορίες ελέγχου ροής
(e.g. RcvWindow)

 client: ξεκινάει τη σύνδεση


Socket clientSocket = new
Socket("hostname","port number");

 server: αποδέχεται επικοινωνία από τον


client
Socket connectionSocket =
welcomeSocket.accept();

TCP 14
Διαχείριση TCP
σύνδεσης(συνέχεια)
Κλείσιμο μίας σύνδεσης: client server

Ο client κλείνει το socket: close


clientSocket.close();
Βήμα 1: το τερματικό σύστημα του client στέλνει
TCP FIN segment ελέγχου στον server close

Βήμα 2: ο server λαμβάνει το FIN, απαντάει με ACK.


Κλείνει την σύνδεση, στέλνει FIN

timed wait
closed

TCP 15

Διαχείριση TCP
σύνδεσης(συνέχεια)
Βήμα 3: ο client λαμβάνει το FIN, απαντάει client server
με ACK
closing
 Μπαίνει σε χρονισμένη αναμονή -
θα απαντήσει με ACK στα FINs που
λαμβάνει
closing
Βήμα 4: ο server, λαμβάνει το ACK. Η
σύνδεση έκλεισε.
Σημείωση: με μικρές μετατροπές, μπορεί
timed wait

να γίνει διαχείριση ταυτόχρονων FINs. closed

closed

TCP 16
Κλείσιμο σύνδεσης
 Οποιαδήποτε πλευρά μπορεί να
ξεκινήσει το κλείσιμο της σύνδεσης A B
 Στέλνει FIN σήμα FIN, SeqA
 “Δε θα στείλω άλλα δεδομένα”
 Η άλλη πλευρά μπορεί να συνεχίσει να ACK, SeqA+1
στέλνει δεδομένα Data
 «Ημι-ανοιχτή» σύνδεση ACK
 Πρέπει να συνεχίσει να επιβεβαιώνει
 Επιβεβαίωση του FIN
FIN, SeqB
 Επιβεβαίωση με sequence number + 1
ACK, SeqB+1

TCP 17

Υπολογισμός του Round-trip time &


του timeout
 Μηχανισμός που καθορίζει πόσο να περιμένει ο αποστολέας μέχρι να
ξαναστείλει το πακέτο
 Ο timer (εάν ήδη δεν “τρέχει” για κάποιο άλλο segment) ξεκινά όταν το
segment “παραδίδεται” στο IP επίπεδο
 Όταν ο timer λήξει, το segment ξαναστέλνεται και το TCP ξεκινά ξανά τον
timer

 Το TCP του sender διατηρεί πληροφορία για το παλιότερο unacknowledged


byte

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

επιβεβαιωμένα σταλμένα πρόκειται εκτός παραθύρου


να σταλούν
TCP 21

Έλεγχος ροής με παράθυρο:


λαμβάνουσα πλευρά
Τι πρέπει να κάνει ο παραλήπτης;

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 only acknowledges bytes up to the first missing byte in the


stream

Q: how receiver handles out-of-order segments


A: TCP spec doesn’t say - up to implementor
Ο παραλήπτης έχει τις παρακάτω δύο γενικές επιλογές
– αμέσως “πετά” τα segments που έφτασαν με λάθος σειρά, ή
– “κρατά” τα segments που ήρθα με λάθος σειρά και περιμένει τα λάβει πακέτα με τα bytes που
“χάθηκαν/δεν έφτασαν” να καλύψουν τα κενά
TCP 25

TCP seq. #’s and ACKs


Seq. #’s:
– byte stream “number” of first byte Host A Host B
in segment’s data
ACKs: User
types
– seq # of next byte expected from ‘C’
other side host ACKs
receipt of
– cumulative ACK
‘C’, echoes
Q: how receiver handles out-of-order back ‘C’
segments
A: TCP spec doesn’t say host ACKs
- up to implementor receipt
of echoed
Ο παραλήπτης:
‘C’
– αμέσως “πετά” τα segments που
έφτασαν με λάθος σειρά, ή
– “κρατά” τα segments που ήρθα με λάθος time
σειρά και περιμένει τα λάβει πακέτα με simple telnet scenario
τα bytes που “χάθηκαν/δεν έφτασαν” να
καλύψουν τα κενά
TCP 26
TCP Round Trip Time and
Timeout
Q: how to set TCP timeout value?
• longer than RTT
 but RTT varies
• too short  premature timeout
 unnecessary retransmissions
• too long: slow reaction to segment loss

Q: how to estimate RTT?


• SampleRTT: measured time from segment transmission until ACK receipt
Αγνοεί segments που έχουν φτάσει με retransmissions
• SampleRTT will vary, want estimated RTT “smoother”
– average several recent measurements, not just current SampleRTT

TCP 27

TCP Round Trip Time and


Timeout
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT

 Exponential weighted moving average


 influence of past sample decreases exponentially fast
 typical value:  = 0.125

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)

SampleRTT Estimated RTT

TCP 29

TCP Round Trip Time and


Timeout
Setting the timeout
• EstimtedRTT plus “safety margin”
– large variation in EstimatedRTT -> larger safety margin
• first estimate of how much SampleRTT deviates from EstimatedRTT:

DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|

(typically,  = 0.25)

Then set timeout interval:

TimeoutInterval = EstimatedRTT + 4*DevRTT

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

TCP sender events:


Data received from application:
• Δημιουργεί segment με seq #
seq # is byte-stream αριθμός του πρώτου data byte στο segment
• Αρχίζει τον timer, εάν δεν “τρέχει” ήδη
Ο timer κάθε φορά αντιστοιχεί στο παλιότερο unacked segment

 Υπάρχει μονάχα ένας 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

loop (forever) { TCP


sender
switch(event)

event: data received from application above


create TCP segment with sequence number NextSeqNum
if (timer currently not running)
(simplified)
start timer
pass segment to IP Comment:
NextSeqNum = NextSeqNum + length(data)

event: timer timeout • SendBase-1: last


retransmit not-yet-acknowledged segment with cumulatively
smallest sequence number ack’ed byte
start timer
Example:
event: ACK received, with ACK field value of y • SendBase-1 = 71;
if (y > SendBase) { y= 73, so the rcvr
SendBase = y
wants 73+ ;
if (there are currently not-yet-acknowledged segments)
start timer y > SendBase, so
} that new data is
acked
} /* end of loop forever */
TCP 33

TCP: retransmission scenarios


Host A Host B Host A Host B
Seq=92 timeout
timeout

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 ACK generation [RFC 1122, RFC


2581]
Event at Receiver TCP Receiver action
Arrival of in-order segment with Delayed ACK. Wait up to 500ms
expected seq #. All data up to for next segment. If no next segment,
expected seq # already ACKed send ACK

Arrival of in-order segment with Immediately send single cumulative


expected seq #. One other ACK, ACKing both in-order segments
segment has ACK pending

Arrival of out-of-order segment Immediately send duplicate ACK,


higher-than-expect seq. # . indicating seq. # of next expected byte
Gap detected

Arrival of segment that Immediately send ACK, provided that


partially or completely fills gap segment startsat lower end of gap

TCP 36
Να θυμάστε
• TCP acks είναι cumulative !

 Ενα segment που έχει ληφθεί σωστά αλλά σε λάθος σειρά δεν γίνεται
ACKed από τον παραλήπτη
• TCP sender διατηρεί μονάχα την πληροφορία:
– segment # με τον μικρότερο αριθμό που έχει στείλει αλλά δεν έχει γίνει
ACKed ακόμη (sendBase), καθώς και
– sequence # του επόμενου byte που θα πρέπει να σταλεί (NextSeqNum)

TCP 37

Παρατήρηση σχετικά με τα Timeout


Διαστήματα
– Τα timer expiration συμβαίνουν συνήθως εξαιτίας της
συμφόρησης του δικτύου
– Πολλά πακέτα που φτάνουν σε ζεύξεις στο μονοπάτι
μεταξύ του sender & receiver χάνονται ή έχουν μεγάλες
καθυστερήσεις στις ουρές των δρομολογητών λόγω
συμφόρησης
 Εάν οι senders συνεχίσουν να ξαναστέλνουν τα πακέτα
“σταθερά”, η συμφόρηση μπορεί να χειροτερεύσει
– Με την εκθετική αύξηση με κάθε retransmission του
sender, ο TCP sender προσπαθεί “ευγενικά” να περιμένει
όλο και μεγαλύτερο διάστημα
TCP 38
 Οι περισσότερες TCP υλοποιήσεις το υποστηρίζουν
Διπλασιάζοντας το Timeout
Διάστημα
Κάθε φορά που το TCP retransmits διπλασιάζει το επόμενο timeout
διάστημα αντί να θέτει την τιμή απο τον υπολογισμό των
lastEstimatedRTT & DevRTT
– έχομε δηλαδή εκθετική αύξηση του timer μετά από κάθε
retransmission

 Οταν ένα από τα παρακάτω γεγονόταν συμβούν:


– Νεα δεδομένα προωθούνται απο την εφαρμογή για τον σχηματισμό
segment
– Παραλαβή ενός ACK
Ο timer παίρνει τιμή βάσει των lastEstimatedRTT και DevRTT
 Οι περισσότερες TCP υλοποιήσεις το υποστηρίζουν
TCP 39

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 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
}

a duplicate ACK for fast retransmit


already ACKed segment

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

Receiver TCP has a receive buffer


@ Receiver

TCP 43

TCP Flow Control (2/3)


flow control
sender won’t overflow
Receiver TCP has a receive buffer: receiver’s buffer by
transmitting too much, too fast

• speed-matching service: matching


the send rate to the receiving
application’s drain rate

 application process may be slow at reading from buffer

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

(Suppose TCP receiver discards out-of-order segments)


• spare room in buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
TCP 45

Buffer @ Receiver becomes full


• The sender will be notified with the RcvWindow value (=0) in the ACK
messages
• The receiver will keep processing the received segments and forward them
to the application …
Eventually there will be space at its buffer …

 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”

 Διαφορετικό από τον έλεγχο ροής (flow control) !!!


Εκδηλώνεται με:
– lost packets (buffer overflow at routers)
– long delays (queuing in router buffers)

 a top-10 problem! TCP 47

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

Host A lin : original lout


data
l'in : original data, plus
retransmitted data

Host B finite shared output


link buffers

TCP 49

Causes/costs of congestion:
scenario 2

Μαντεύει αν ο buffer ειναι Retrx οταν ξέρει Πρώιμα timeouts


γεμάτος ή οχι ότι το πακέτο Κάθε πακέτο
R/2 R/2 θα χαθεί R/2 στέλνεται
(κατά μέσο όρο) 2
R/3
φορές
lout

lout

lout

R/4

R/2 R/2 R/2


lin lin lin
Original data + retransmissions
a. b. c.
 “costs” of congestion:
 more work (retransmissions) for given “goodput”
 unneeded retransmissions: link carries multiple copies of packet
TCP 50
Causes/costs of congestion:
scenario 3
• 4 senders Q: what happens as lin
• multihop paths and l increase ?
• timeout/retransmit in

Host A lout
lin : original data
l'in : original data, plus
retransmitted data

finite shared output


link buffers

Host B

TCP 51

Causes/costs of congestion:
scenario 3 H l
o
o
s
u
t
A t

H
o
s
t
B

Another “cost” of congestion:


 when packet dropped, any “transmission capacity used for that
packet at each of the upstream routers to forward that packet to the
point at which it is dropped was wasted!
TCP 52
Γενικοί τρόποι αντιμετώπισης
συμφόρησης
Two broad approaches towards congestion control:

 Network-assisted congestion control:


• routers provide feedback to end systems
– single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM)
– explicit rate sender should send at
end-to-end: τα 2 hosts που συμμετέχουν παρακολουθούν και ρυθμίζουν το ρυθμό κίνησης τους

 End-to-end congestion control:


• no explicit feedback from network
• congestion inferred from end-system observed loss, delay
• approach taken by TCP

IP does not provide explicit feedback to the end systems


TCP 53

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, όταν η συμφόρηση μειώνεται

timeout ή 3 όμοια ACKs

But how much should a sender reduce its congestion window ?


LastByteSent- LastByteAcked ≤ min {Congestion Window, Receive
Window}
συμφόρηση
flow control
Observa on: Large Conges on Windows → LargeTCP
Number of
55
non-ACKed packets trx → Large Sending Rate

3 κεντρικά σημεία του TCP congestion


control
1. Additive increase, multiplicative decrease:
Increase transmission rate (window size), probing for usable bandwidth,
until loss occurs
 additive increase: increase Congestion Window by 1 MSS every
RTT until loss detected
 multiplicative decrease: cut Congestion Window in half after loss

1. Slow start
2. Reaction to timeout events

time

TCP 56
TCP congestion control: additive increase,
multiplicative decrease (AIMD)
Λέγεται και congestion avoidance

 Approach: increase transmission rate (window size), probing


for usable bandwidth until loss occurs
 additive increase: increase Congestion Window by 1 MSS
every RTT until loss detected
 multiplicative decrease: cut Congestion Window in half
after loss congestion
window
congestion window size

24 Kbytes
Με την γραμμική αύξηση
“διστακτικά” ελέγχει κατα πόσο
η συμφόρηση έχει ελαττωθεί 16 Kbytes

8 Kbytes

time
time

Saw tooth
TCP
behavior: probing for bandwidth 57

Προσθετική αύξηση της AIMD


Πώς ακριβώς λειτουργεί η προσθετική αύξηση:

Κάθε φορά που ο TCP sender στέλνει με επιτυχία πακέτα


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

προσθέτει το ισοδύναμο του ενός πακέτου στο CongWin

Προσέξετε ότι στην πράξη το TCP αυξάνει ελαφρώς το μέγεθος


του CongWin με την άφιξη κάθε ACK.
Συγκεκριμένα, το CongWin αυξάνεται με το κάθε ACK κατά
MSS * MSS/CongWin
TCP 58
Congestion Avoidance
• Η φάση της γραμμικής αύξησης του TCP
congestion control protocol λέγεται και φάση
αποφυγής συμφόρησης

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

Observation: Large Congestion Windows → Large Sending Rates


in the slides, sometimes we talk about increase/decrease of the rate and
other times about increase/decrease of CongWindow TCP 61

TCP Slow Start (1/3)


• When connection begins: CongestionWindow = 1 MSS
congestion window is very small (hence the name “slow start”)
– Example: MSS = 500 bytes & RTT = 200 msec
– initial rate = 20 kbps
note: Διαθέσιμο bandwidth μπορεί να είναι >> MSS/RTT

 Οπότε γρήγορα θέλομε να το αυξήσομε ώστε να φτάσομε το bandwidth


που μπορούμε να πετύχομε

 When connection begins:


increase rate exponentially fast until first loss event

Η αύξηση (CongestionWindow++) γίνεται κάθε φορά που λαμβάνεται


1 ACK …

 why the rate increases exponentially fast?


Example of TCP Slow start (2/3)
1. TCP sends the first segment and waits for the ACK
2. If this segment is acked before a loss event,
• the TCP sender increases the congestion window by 1 MSS, and
• sends out two maximum-sized segments.
3. If these segments are acked before loss events,
• the sender increase the congestion window by 1 MSS for each of
the ACK segments,
(giving a congestion window of 4 MSSS), and
• sends out 4 maximum sized segments.

The value of CongWindow effectively doubles every RTT during the


slow-start phase.
TCP 63

TCP Slow Start (3/3)


• When connection begins, increase Host A Host B
rate exponentially until first loss
event:
RTT

double CongWin every RTT

done by incrementing CongWin for


every ACK received

Summary: initial rate is slow but


ramps up exponentially fast
time

TCP 64
Refinement: inferring loss
 Διαφοροποιείται η αντίδραση εάν είναι timeout ή 3 όμοια ACKs

Philosophy:

3 dup ACKs (duplicate acknowledgements) indicate network capable of


delivering some segments

timeout indicates a more alarming congestion scenario

TCP 65

Αντίδραση σε γεγονότα
συμφόρησης
 Διαφοροποιείται η αντίδραση εάν είναι timeout ή 3-όμοια-ACKs
• Εάν είναι 3-όμοια-ACKs:
– Congestion window διαιρείται δια 2 και μετά αυξάνεται γραμμικά
• Εάν όμως συμβεί timeout:

 Ο sender μπαίνει σε slow-start φάση!!!


– Congestion window = 1MSS
– μετά αυξάνεται εκθετικά μέχρι να φτάσει το μισό της τιμής που είχει πριν το
timeout,
και μετά από αυτό το σημείο
– αυξάνεται γραμμικά (όπως θα γινόταν 66)
TCPμετά από ένα 3-όμοια-ACKs γεγονός
TCP Congestion Control
Determines the window size at which the
slow start will end and the congestion avoidance will begin

• When CongWin <= Threshold:


sender in slow-start phase, window grows exponentially
• When CongWin > Threshold:
sender is in congestion-avoidance phase, window grows linearly
• When triple duplicate ACK occurs:
– Threshold=CongWin/2

– CongWin=Threshold
• When timeout occurs:
– Threshold=CongWin/2
– CongWin= 1 MSS
TCP 67

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

Μαρία Παπαδοπούλη
Σκοποί ενότητας
• Δημιουργία μιας δικτυακής εφαρμογής

Δημιουργώντας μια δικτυακή


εφαρμογή
Γράφουμε προγράμματα τα οποία:
Τρέχουν σε διαφορετικά τερματικά συστήματα
και επικοινωνούν μέσω δικτύου
Π.χ., το λογισμικό του web server επικοινωνεί με το λογισμικό του browser
application
transport
Η εφαρμογή στα τερματικά συστήματα network
data link
physical
επιτρέπει τη ραγδαία ανάπτυξη
και διάδοση εφαρμογών

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

Υβριδικό client-server και P2P


Skype
• Εφαρμογή διαδικτυακής τηλεφωνίας
• Εύρεση διεύθυνσης απομακρυσμένου προσώπου: κεντρικοποιημένος server(s)
• Η σύνδεση από client σε client είναι άμεση (όχι μέσω server)
Άμεση ανταλλαγή μυνημάτων (instant messaging)
Η συνομιλία μεταξύ δύο χρηστών είναι P2P
Εντοπισμός παρουσίας/θέσης κεντρικοποιημένη:
• Ο χρήστης καταχωρεί την IP διεύθυνσή του με κεντρικό server όταν μπαίνει online
• Ο χρήστης επικοινωνεί με τον κεντρικό server για να βρει τις IP διευθύνσεις των
επαφών του

Επίπεδο εφαρμογής 9
Διεργασίες που επικοινωνούν
Διεργασία: πρόγραμμα που τρέχει σε ένα host
Στον ίδιο host:
Διεργασία client:
δύο διεργασίες επικοινωνούν μεταξύ τους η διεργασία που ξεκινάει
με διαδεργασιακή επικοινωνία (inter- την επικοινωνία
process communication) (ορίζεται στο OS) Διεργασία server :
η διεργασία που περιμένει
για επικοινωνία
 Διεργασίες σε διαφορετικούς hosts
επικοινωνούν με την ανταλλαγή μηνυμάτων

 Σημείωση: εφαρμογές με P2P αρχιτεκτονικές έχουν διεργασίες client


& server

Επίπεδο εφαρμογής 10

Διεργασία στον δέκτη

Ο sender προσδιορίζει τη διεργασία στη συσκευή του


δέκτη χρησιμοποιώντας τα παρακάτω δύο στοιχεία:
όνομα ή διεύθυνση της συσκευής
IP address

προσδιορίζει μοναδικά το network interface του δέκτη


μοναδικότητα στο Internet
ένα identifier που προσδιορίζει την διεργασία στον
δέκτη
Port number

Επίπεδο εφαρμογής 11
Υπενθύμιση: Sockets
Το socket είναι η διεπαφή μεταξύ του επιπέδου εφαρμογής & επιπέδου μεταφοράς
μέσα σε μία συσκευή καθώς επίσης μεταξύ της εφαρμογής & δικτύου

Διεργασίες στέλνουν/λαμβάνουν
μηνύματα προς/από socket
Socket μοιάζει με μια “θύρα” host ή host ή
• Η αποστέλουσσα διεργασία server server
στέλνει το μήνυμα έξω από την
“θύρα” Ελέγχεται από το
σχεδιαστή της
• Η αποστέλλουσα διεργασία διεργασία εφαρμογής διεργασία
υποθέτει υποδομή μεταφοράς socket socket
πίσω από την “θύρα” που φέρνει TCP με
TCP με
το μήνυμα στο socket της buffers, Internet buffers,
λαμβάνουσας διεργασίας μεταβλητές μεταβλητές

API - επιλέγει: Ελέγχεται


• Το πρωτόκολλο μεταφοράς από το OS

• τιμές σε παραμέτρους Επίπεδο εφαρμογής 12

Διευθυνσιοδότηση διεργασιών
Για να λάβει μηνύματα η διεργασία  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

Τι υπηρεσία μεταφοράς χρειάζεται μία εφαρμογή;


Απώλεια δεδομένων Εύρος ζώνης
• Κάποιες εφαρμογές (π.χ., ήχου) Κάποιες εφαρμογές (π.χ., πολυμεσικές)
μπορούν να ανεχθούν κάποιες απαιτούν κάποιο ελάχιστο εύρος
ζώνης για να είναι αποτελεσματικές
απώλειες
Οι “ελαστικές εφαρμογές”
• Άλλες εφαρμογές (π.χ., μεταφορά χρησιμοποιούν
αρχείων, telnet) απαιτούν 100% οποιοδήποτε εύρος ζώνης είναι
αξιόπιστη μεταφορά δεδομένων διαθέσιμο

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

Επίπεδο εφαρμογής 15
Απαιτήσεις υπηρεσίας μεταφοράς για
συνήθεις εφαρμογές
Quality of Service (QoS) metrics
Απώλεια Ευαισθησία σε
Εφαρμογή δεδομένων Εύρος ζώνης καθυστερήσεις

Μεταφορά αρχείων Καμία απώλεια ελαστική όχι


e-mail Καμία απώλεια ελαστική όχι
Έγγραφα Web Καμία απώλεια ελαστική όχι
φωνή/video Ανοχή σε ήχος: 5kbps-1Mbps ναι, της τάξης
πραγματικού χρόνου απώλειες video:10kbps-5Mbps των100 msec
Ανοχή σε
Αποθηκευμένη φωνή/video απώλειες Όπως πριν ναι, μερικά secs
Ανοχή σε ναι, της τάξης των
Διαδραστικά παιχνίδια απώλειες Λίγα kbps πάνω 100 msec
Άμεση ανταλλαγή
μηνυμάτων Καμία απώλεια ελαστική Ναι και όχι

Ωστόσο τι επίδραση έχουν οι QoS μετρικές στην ποιότητα της


υπηρεσίας όπως την αντιλαμβάνεται ένας χρήστης (QoE)?
Επίπεδο εφαρμογής 16

Υπενθύμιση:Πρωτόκολλα μεταφοράς
υπηρεσιών στο Internet
TCP υπηρεσία:
• Συνδεσιστρεφής: απαιτείται εγκαθίδρυση μεταξύ διεργασιών των client & server
• Αξιόπιστη μεταφορά μεταξύ διεργασιών των sender & receiver
• Έλεγχος ροής: ο sender δεν κατακλύζει τον receiver
• Έλεγχος συμφόρησης: μειώνει την ροή του sender στην περίπτωση υπερφόρτωσης
του δικτύου
• Δεν παρέχει χρονικές ή ελάχιστου bandwidth εγγυήσεις

UDP υπηρεσία:
• Αναξιόπιστη μεταφορά δεδομένων μεταξύ της αποστέλλουσας και της
λάμβάνουσας διεργασίας
• Δεν παρέχει: εγκαθίδρυση σύνδεσης, αξιοπιστία, έλεγχος ροής, έλεγχος
συμφόρησης, χρονισμός, ή εγγύηση εύρους ζώνης (data rate)

Επίπεδο εφαρμογής
Q: Γιατί υπάρχει τότε η UDP σύνδεση? 17
Εφαρμογές διαδικτύου: πρωτόκολλα
εφαρμογής, μεταφοράς
Πρωτόκολλο Πρωτόκολλο
Εφαρμογή επιπέδου εφαρμογής μεταφοράς

e-mail SMTP [RFC 2821] TCP


Απομακρυσμένη
προσπέλαση τερματικού Telnet [RFC 854] TCP
Web HTTP [RFC 2616] TCP
Μεταφορά αρχείων FTP [RFC 959] TCP
Ιδιοταγές
Πολυμέσα συνεχούς ροής (π.χ. RealNetworks) TCP ή UDP
ιδιοταγές
Διαδικτυακή τηλεφωνία (π.χ., Vonage,Dialpad) συνήθως UDP

Επίπεδο εφαρμογής 18

Web και HTTP


Ορολογία
• Μία ιστοσελίδα αποτελείται από αντικείμενα (objects)
• Ένα οbject μπορεί να είναι: HTML file, JPEG image, Java applet, audio file,…
• Μία ιστοσελίδα αποτελείται από base HTML-file που περιλαμβάνουν
μερικά referenced objects

Κάθε object γίνεται addressable από ένα URL


Παράδειγμα URL:
www.someschool.edu/someDept/pic.gif

host name path name


Path name: shows from where (in the RAM or disk) to retrieve
Επίπεδο εφαρμογής
the object 19
HTTP overview
HTTP: hypertext transfer protocol
PC running
Explorer
• Πρωτόκολλο του Web επιπέδου εφαρμογής
• client/server model
• client: browser που ζητά, λαμβάνει,
“εμφανίζει” Web objects
• server: Web server στέλνει objects ως Server
running
απάντηση σε αιτήματα που λαμβάνει Apache Web
server
HTTP 1.0: RFC 1945
HTTP 1.1: RFC 2068 Mac running
Navigator

Επίπεδο εφαρμογής 20

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 σύνδεσης

Επίπεδο εφαρμογής 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 δεν διατηρεί πληροφορία σχετικά με την κατάσταση του συστήματος


(είναι “stateless”)
Ο server δεν διατηρεί πληροφορίες από παλιότερα αιτήματα των clients (requests)

 Πρωτόκολλα που διατηρούν καταστάσεις του συστήματος (“state”) είναι


περίπλοκα !
• Στην περίπτωση που το ιστορικό των παλαιότερων καταστάσεων πρέπει να
διατηρείται, εάν οι server/client καταρρεύσουν, τότε η εικόνα που έχουν για την
κατάσταση τους μπορεί να διαφέρει και το πρωτόκολλο πρέπει να εξασφαλίσει
μια “κοινή” εικόνα
Επίπεδο εφαρμογής 22

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

1a. HTTP client ξεκινάει μια TCP σύνδεση στον


HTTP server (διεργασία)
@ www.someSchool.edu στο port 80 1b. HTTP server στο host
www.someSchool.edu περιμένει για TCP
σύνδεση στο port 80,
“δέχεται” τη σύνδεση, ενημερώνοντας τον
2. HTTP client στέλνει HTTP μήνυμα client
αιτήματος (περιλαμβάνοντας το
URL) στο socket της TCP σύνδεσης. 3. HTTP server λαμβάνει το μήνυμα
Το μύνυμα υποδεικνύει ότι ο client αιτήματος, κατασκευάζει ένα μήνυμα
ζητάει το αντικείμενο απάντησης περιλαμβάνοντας το
someDepartment/home.index ζητούμενο αντικείμενο, & στέλνει τι
μήνυμα στο socket

time
Επίπεδο εφαρμογής 24

Nonpersistent HTTP (συνέχεια)


4. HTTP server κλείνει TCP σύνδεση
5. HTTP client λαμβάνει το μήνυμα
απάντησης που περιέχει το html
αρχείο, και το δείχνει. Αναλύοντας
το html αρχείο, βρίσκει 10
αναφερόμεναr jpeg αντικείμενα
time 6. Τα βήματα 1-5 επαναλαμβάνονται
για κάθε ένα από τα 10 jpeg
αντικείμενα

 In this example, 11 TCP connections will be created!

Επίπεδο εφαρμογής 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

 This can place a serious burden on the Web server


Furthermore, each object suffers a delivery delay of 2RTTs:
• one RTT to establish the TCP connection, and
• one RTT to request and receive the object

Επίπεδο εφαρμογής 26

Non-Persistent HTTP: Χρόνος


απόκρισης
Ορισμός του RRT:
Συνολικός χρόνος που απαιτείται για την
αποστολή ενός μικρού πακέτου από τον
client στον server και αμέσως μετά από τον
ξεκινάει TCP
server στον client. σύνδεση
RTT
Χρόνος απόκρισης: ζητάει
αρχείο
• ένα RTT για να ξεκινήσει την TCP σύνδεση χρόνος
RTT
• ένα RTT για το HTTP αίτημα και για τα μετάδοσης
πρώτα bytes τής HTTP απάντησης να λήψη
επιστρέψει αρχείου
• Χρόνος για να μεταδοθεί το αρχείο
σύνολο = 2RTT + χρόνος μετάδοσης time time

Note: RTT includes packet propagation delays, packet queuing delays in intermediate routes and
switches, and packet processing delays Επίπεδο εφαρμογής 27
Persistent HTTP

Nonpersistent HTTP : Persistent χωρίς pipelining:


 απαιτεί 2 RTTs ανά αντικείμενα • ο client εκδίδει νέο αίτημα μόνο όταν
• OS overhead για κάθε TCP σύνδεση η προηγούμενη απάντηση ληφθεί
• browsers συχνά ανοίγουν  1 RTT για κάθε αναφερόμενο αντικείμενο
παράλληλες TCP συνδέσεις για να
φέρουν αναφερόμενα αντικείμενα Persistent με pipelining:
• default στο HTTP/1.1
Persistent HTTP • ο client στέλνει αιτήματα μόλις
• ο server αφήνει τη σύνδεση ανοιχτή αντιμετωπίσει ένα αναφερόμενο
μετά την αποστολή της απάντησης αντικείμενο
• τα επακόλουθα HTTP μηνύματα 1 RTT για όλα τα αναφερόμενα
μεταξύ ίδιου client/server αντικείμενα
στέλνονται πάνω από την ανοιχτή
σύνδεση

Επίπεδο εφαρμογής 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

HTTP μήνυμα μηνύματος: γενικό


format

Επίπεδο εφαρμογής 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

Carriage return, (extra carriage return, line feed)


line feed
indicates end In this example, no persistent connection
of message
2: Application Layer 32

Μοντελοποίηση Καθυστέρησης
Συμβολισμοί, παραδοχές:
• Θεωρείστε μία ζεύξη μεταξύ του 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

Persistent HTTP with pipeling:


• 2 RTT to request and receive base HTML file
• 1 RTT to request and receive M images
• Response time = (M+1)O/R + 3RTT + sum of idle times

Επίπεδο εφαρμογής 34

Uploading form input


Post method:
Still the user requests a URL method:
Web page • Uses GET method
 Used when the user fills out a • Input is uploaded in URL field of
form (e.g., user provides request line:
search words to a search
engine)
www.somesite.com/animalsearch?monkeys&banana

• Web page often includes form


input
• Input is uploaded to server in
entity body
2: Application Layer 35
Method types
HTTP/1.0 HTTP/1.1
• GET • GET, POST, HEAD
• POST • PUT
• HEAD uploads file in entity body to path
specified in URL field
• asks server to leave requested object
out of response • DELETE
• Used for debugging deletes file specified in the URL field

2: Application Layer 36

HTTP response message


status line
(protocol
status code HTTP/1.1 200 OK
status phrase) Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
header
Last-Modified: Mon, 22 Jun 1998 …...
lines
Content-Length: 6821
Content-Type: text/html

data, e.g., data data data data data ...


requested
HTML file Indicates when the object was created or last updated
Critical in caching (proxies)

Number of bytes in the object being sent


2: Application Layer 37
HTTP response status codes
In first line in server->client response message.
A few sample codes:
200 OK
request succeeded, requested object later in this message
301 Moved Permanently
requested object moved, new location specified later in this message
(Location:)
400 Bad Request
request message not understood by server
404 Not Found
requested document not found on this server
505 HTTP Version Not Supported
401 Authorization Required
the user needs to provide2: Application
a user Layername/password
38

HTTP & statefullness


• Simplified HTTP servers are stateless
• Often desirable for a web site to identify users because the server
wishes to restrict user access or to serve content as a function of
user identity

Mechanisms to achieve that:

• 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

Cookies: keeping “state” (cont.)


There is an identification number for a web site
the browser consults this identification number

client server

Cookie file server


usual http request msg
creates ID
ebay: 8734 usual http response +
1678 for user
Set-cookie: 1678
Cookie file
amazon: 1678 usual http request msg
ebay: 8734 cookie: 1678 cookie-
specific
usual http response msg action
one week later:

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

Web caches - proxy server


Goal: satisfy client request without involving origin server

• user sets browser: Web accesses via origin


cache server

• browser sends all HTTP requests to Proxy


cache server
 object in cache: cache returns objectclient
 else cache requests object from
origin server, then returns object to
client

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)

Why Web caching?


• Reduce response time for client request
• Reduce traffic on an institution’s access link
• Internet dense with caches enables “poor” content providers to effectively deliver
content (but so does P2P file sharing)

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

Caching example (cont)


origin
servers
Install cache
suppose hit rate is .4 public
Internet
Consequence
• 40% requests will be satisfied almost
immediately
• 60% requests satisfied by origin server 1.5 Mbps
• utilization of access link reduced to access link
60%, resulting in negligible delays
institutional
(say 10 msec)
network
• total avg delay = Internet delay + 10 Mbps LAN
access delay + LAN delay = .6*(2.01)
secs + .4*milliseconds < 1.4 secs

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

Το DNS μεταφράζει (αντιστοιχεί) το hostname σε IP address

Application-layer protocol όπου οι DNS name servers επικοινωνούν για να


εκτελέσουν τη «μετάφραση» του hostname σε IP address
50

DNS: problems w/ centralized


architecture
• A single point of failure
• Μεγαλύτερος φόρτος από DNS queries
Θα πρέπει να εξυπηρετεί όλα τα DNS queries που δημιουργούνται από
εκατοντάδες χιλιάδες συσκευές
• Μεγαλύτερες καθυστερήσεις
Απόσταση από μια κεντρικοποιημένη database που συνεισφέρει σε
μεγαλύτερες καθυστερήσεις λόγω της μεγάλης απόστασης της από τα hosts
• Αυξημένο κόστος συντήρησης
θα έχομε μια τεράστια database για ολόκληρο το Internet
Υπάρχουν και authentication & authorization θέματα όταν επιτρέπουμε
οποιοδήποτε χρήστη να «εγγράφει» ένα host με την κεντρικοποιημένη
database
Επίπεδο εφαρμογής 51
Αρχιτεκτονική του DNS
• Κατανεμημένη database από name servers σε ιεραρχική δομή
• Application-layer protocol όπου οι name servers επικοινωνούν για να
εκτελέσουν τη «μετάφραση» του hostname σε IP address
• Το πρωτόκολλο προσδιορίζει τον τρόπο επικοινωνίας
• μεταξύ των hosts που στέλνουν queries και των name servers που απαντούν
 Χρησιμοποιεί κυρίως UDP

Επίπεδο εφαρμογής 52

Αρχιτεκτονική του DNS


Local name servers
• Each ISP (e.g., university, company, residential ISP) has a local name server
(default name server)
• When a host issues a DNS query message, the message is first sent to the host’s
local name server
• The IP address of the local server is typically configured by hand in a host
e.g., Run in the same LAN as the client host
Root name servers
When a local name server cannot immediately satisfy a query, the local name
server behaves as a DNS client and queries one of the root name servers
Authoritative name servers
• A name server in the host’s local ISP
• (def.) a name server is authoritative if it always has a DNS record that translates
the host’s hostname to that host’s IP Επίπεδο
addressεφαρμογής
53
Επίπεδο εφαρμογής 54

Επίπεδο εφαρμογής 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.

DNS recursor consults three name servers to resolve the address


A

www.wikipedia.org.

Επίπεδο εφαρμογής 60

Another Example on DNS (cont’d)


The process entails:
1 > A network host is configured with an initial cache of the known addresses
of the root names servers.

Such a file is updated periodically by an administrator from a reliable source.

2 > A query to one of the root servers to find the server authoritative
for the top-level domain

3 > A query to the obtained TLD server for the address of a


DNS server authoritative for the second-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

DNS: caching and updating records


(2/5)
Οnce (any) name server learns mapping, it caches mapping
1. cache entries timeout (disappear) after some time
2. TLD servers typically cached in local name servers
• Thus root name servers not often visited
update/notify mechanisms under design by IETF
RFC 2136
http://www.ietf.org/html.charters/dnsind-charter.html

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

DNS protocol, messages (4/5)


DNS protocol : query and reply messages, both with same
message format
msg header
฀ identification: 16 bit # for
query, reply to query uses
same #
฀ flags:
 query or reply
 recursion desired
 recursion available
 reply is authoritative

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

DNS: load distribution


• To DNS βοηθά στην κατανομή φόρτου σε «αντίγραφα» των servers
(replicated servers)
• Ένα δημοφιλές site μπορεί να διατηρεί μια «φάρμα» από servers, το
καθένα με διαφορετική IP address
• DNS γνωρίζει το σύνολο αυτών των IP addresses
• Όταν ο DNS client στέλνει μια query για ένα όνομα που αντιστοιχεί σε ένα
σύνολο διευθύνσεων, o DNS server απαντά στέλνοντας όλες τις IP
addresses, αλλά αλλάζοντας τη σειρά τους
• Ο client συνήθως στέλνει το TCP connection στην πρώτη IP address και με
αυτό τον τρόπο κατανέμεται το φορτίο σε όλους τους replicated servers

Επίπεδο εφαρμογής 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

Electronic Mail outgoing


message queue
user mailbox
user
Three major components: agent
• user agents mail
user
server
• mail servers agent
• simple mail transfer protocol: SMTP SMTP
mail
server user
User Agent SMTP agent
a.k.a. “mail reader”
SMTP
composing, editing, reading mail user
messages mail
server agent
e.g., Eudora, Outlook, elm, Netscape
Messenger user
agent
outgoing, incoming messages stored on
user
server agent

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

Electronic Mail: SMTP [RFC 2821]


• uses TCP to reliably transfer email message from client to server port 25
• direct transfer: sending server to receiving server
• three phases of transfer
– handshaking (greeting)
– transfer of messages
– closure
• command/response interaction
• commands: ASCII text
• response: status code and phrase
messages must be in 7-bit ASCII

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

Sample SMTP interaction


S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection

2: Application Layer 73
Try SMTP interaction for
yourself:
• telnet servername 25
• see 220 reply from server

• enter HELO, MAIL FROM, RCPT TO, DATA, QUIT commands


above lets you send email without using email client (reader)

2: Application Layer 74

SMTP: final words


• SMTP uses persistent connections Comparison with HTTP:
• SMTP requires message (header
• HTTP: pull
& body) to be in 7-bit ASCII
• SMTP: push
• SMTP server uses CRLF.CRLF
to determine end of message • both have ASCII
command/response interaction,
status codes

• HTTP: each object encapsulated


in its own response msg
• SMTP: multiple objects sent in
multipart msg

2: Application Layer 75

You might also like