Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP
Πρωτόκολλα επικοινωνίας Ορισμός Σύνολα προσυμφωνημένων κανόνων που απαιτούνται για τον καθορισμό του τρόπου με τον οποίο επιτυγχάνεται η ανταλλαγή δεδομένων, και επομένως η επικοινωνία, μεταξύ δύο ή περισσότερων (υπολογιστικών) πόρων μέσω ενός δικτύου
Πρωτόκολλα επικοινωνίας Το πρόβλημα της επικοινωνίας μεταξύ δύο (ή περισσότερων) πόρων είναι συχνά αρκετά πολύπλοκο Προκειμένου για την αποδοτικότερη αντιμετώπιση του, υποδιαιρείται σε επιμέρους τμήματα Το κάθε τέτοιο τμήμα αφορά σε ένα συγκεκριμένο (και απλούστερο) κομμάτι του συνολικού προβλήματος
Πρωτόκολλα επικοινωνίας Παράδειγμα: Ένα επιμέρους τμήμα της διαδικασίας της επικοινωνίας είναι ο τρόπος με τον οποίο γίνεται η διευθυνσιοδότηση των επικοινωνούντων πόρων Ένα άλλο επιμέρους τμήμα της ίδιας διαδικασίας είναι ο τρόπος με τον οποίο κωδικοποιούνται τα bits για την αποστολή τους μέσω του καλωδίου δικτύωσης
Πρωτόκολλα επικοινωνίας Προκύπτει λοιπόν ότι: Ένα πρωτόκολλο επικοινωνίας δεν αποπειράται να καθορίσει συνολικά τον τρόπο με τον οποίο επιτυγχάνεται η επικοινωνία μεταξύ των πόρων Αντίθετα, είναι ένα σύνολο κανόνων που σκοπό έχει τον επακριβή καθορισμό των λειτουργιών εκείνων που ένα επιμέρους τμήμα πρέπει να επιτελεί
Πρωτόκολλα επικοινωνίας Έτσι για παράδειγμα Το πρωτόκολλο IP είναι υπεύθυνο για τον καθορισμό του τρόπου διευθυνσιοδότησης των επικοινωνούντων πόρων Το πρωτόκολλο IEEE 802.3 (Ethernet) καθορίζει (ανάμεσα σε άλλα) τον τρόπο με τον οποίο τα bits κωδικοποιούνται ούτως ώστε να αποσταλούν μέσω του καλωδίου δικτύωσης
Οικογένειες πρωτοκόλλων Προκύπτει λοιπόν ότι τα πρωτόκολλα αποπειρώνται να καθορίσουν συνεργατικά τον τρόπο με τον οποίο επιτυγχάνεται η επικοινωνία μεταξύ δύο (ή περισσότερων) πόρων Για το λόγο αυτό τα πρωτόκολλα σχεδιάζονται σε οικογένειες συλλογές πρωτοκόλλων τα οποία έχουν τη δυνατότητα να συνεργάζονται μεταξύ τους
Οικογένειες πρωτοκόλλων Σε μία οικογένεια πρωτοκόλλων, το κάθε πρωτόκολλο-μέλος ανάλογα με τη λειτουργία την οποία επιτελεί, κατατάσσεται σε ένα συγκεκριμένο λογικό επίπεδο ΟδιεθνήςοργανισμόςISO ορίζει μέσω του Open Systems Interconnection (OSI) 7 διαφορετικά λογικά επίπεδα
OSI
OSI
Σουίτα Πρωτοκόλλων Διαδικτύου TCP/IP Συλλογή (οικογένεια) πρωτοκόλλων η οποία ορίζει τον τρόπο με τον οποίο δύο πόροι ανταλλάσσουν δεδομένα μέσω του διαδικτύου Δεν αποτελείται μόνο από τα πρωτόκολλα TCP και IP Η συλλογή είναι οργανωμένη σε 4 ή 5 διαφορετικά στρώματα (ή επίπεδα)
Σουίτα TCP/IP Logic Link Control Media Access Control
Σουίτα TCP/IP Φυσικό επίπεδο: Κύρια λειτουργία αποστολή/παραλαβή bits μέσω του δικτύου Συμπεριλαμβάνει: Ορισμός τεχνικών χαρακτηριστικών δικτύου Ορισμός τρόπου αναπαράστασης bits βάσει φυσικών μεγεθών (modulation) Κωδικοποίηση γραμμής Συγχρονισμός bit, π.χ. σηματοδότηση έναρξης/τέλους Έλεγχος ροής
Σουίτα TCP/IP Πολυπλεξία Έλεγχος γραμμής και εντοπισμός σύγκρουσης Έλεγχος λαθών με την αποστολή επιπλέον bits Επίπεδο Πρόσβασης Δικτύου (Network Access layer) Κύρια λειτουργία ανταλλαγή δεδομένων μεταξύ πόρων του ιδίου τοπικού δικτύου Υποδιαιρείται σε δύο επιπλέον υπο-επίπεδα Το υπο-επίπεδο Ελέγχου Πρόσβασης Μέσων (Media Access Control)
Σουίτα TCP/IP Το υπο-επίπεδο Ελέγχου Λογικής Σύνδεσης (Logic Link Control) Υπο-επίπεδο Ελέγχου Πρόσβασης Μέσων Ενθυλακώνει τις φυσικές διευθύνσεις του αποστολέα και του παραλήπτη Καθορίζει το μέγεθος των πλαισίων (frames) δεδομένων Καθορίζει εάν το φυσικό επίπεδο μπορεί να αποστείλει δεδομένα στο δίκτυο
Σουίτα TCP/IP Υπο-επίπεδο Ελέγχου Λογικής Σύνδεσης Ασκεί έλεγχο ροής δεδομένων Ασκεί έλεγχο λαθών
Επίπεδο Διαδικτύου Κύρια λειτουργία η μεταβίβαση και παράδοση πακέτων δεδομένων στον προορισμό τους Λαμβάνει πακέτα από το ανώτερο επίπεδο Προσθέτει την επικεφαλίδα IP (ενθυλάκωση) Η επικεφαλίδα IP περιέχει πληροφορίες απαραίτητες για τη μεταβίβαση των πακέτων Παραδίδει τα ενθυλακωμένα πακέτα στο κατώτερο επίπεδο
Επικεφαλίδα ΙP 4 bits 8 bits 16 bits 24 bits 32 bits
Πεδίο Version 4 bits Η χρησιμοποιούμενη έκδοση του πρωτοκόλλου IP Τιμή 0100 Πεδίο IHL (Internet Header Length) 4 bits Το μήκος της κεφαλής (header) σε 32-bit λέξεις Ελάχιστο μήκος (αλλά και περισσότερο σύνηθες): 5
Πεδίο Type of Service 8 bits Συνήθως έχει την τιμή 0 Πλέον γνωστό ως DSCP (Differentiated Services Code Point) Επιτρέπει τον καθορισμό κατηγοριών μηνυμάτων διαφορετικής προτεραιότητας Το κάθε πακέτο ανάλογα με τον τύπο δεδομένων που μεταφέρει κατατάσσεται σε μία κλάση Έτσι γίνεται δυνατή η παροχή συγκεκριμένης ποιότητας υπηρεσίας (QoS)
Π.χ. πακέτα που μεταφέρουν φωνή ή video έχουν υψηλότερη προτεραιότητα από πακέτα που μεταφέρουν κοινά αρχεία κειμένου Προκειμένου να παρασχεθεί συγκεκριμένη ποιότητα υπηρεσίας τα πακέτα φωνής ή video πρέπει να φτάσουν στον προορισμό τους σε προκαθορισμένο χρονικό διάστημα Πεδίο Total Length 16 bits Το μήκος σε bytes του συνολικού πακέτου (επικεφαλίδα + δεδομένα)
Πεδίο Identification 16 bits Αναγνωριστικό προέλευσης πακέτου Όταν ένα πακέτο είναι πολύ μεγάλο κατακερματίζεται σε έναν αριθμό από μικρότερα πακέτα Το κάθε μικρότερο πακέτο ενθυλακώνεται ξεχωριστά (datagram) Όλα τα μικρότερα πακέτα που προέρχονται απότοίδιοαρχικόπακέτοφέρουντοίδιο αναγνωριστικό προέλευσης
Πεδίο Flags 3 bits Το πρώτο bit δε χρησιμοποιείται Το δεύτερο bit (DF Don t Fragment) δηλώνει το κατά πόσο μπορεί το datagram να κατακερματιστεί από τους δρομολογητές που μεσολαβούν κατά τη μετάβαση του στον τελικό προορισμό DF=0 επιτρέπεται ο κατακερματισμός DF=1 δεν επιτρέπεται ο κατακερματισμός
Ο κατακερματισμός μπορεί να μην επιτρέπεται λόγω αδυναμίας επανασύνδεσης του πακέτου από τον παραλήπτη Το τρίτο bit (MF More Fragments) δηλώνει το κατά πόσο ακολουθούν και άλλα τμήματα του κατακερματισμένου datagram ΜF=0 δεν ακολουθούν άλλα τμήματα ΜF=1 ακολουθούν κι άλλα τμήματα
Πεδίο Fragment offset 13bits Αριθμός ο οποίος προσδιορίζει τη θέση τμήματος ενός πακέτου μέσα στο αρχικό πακέτο σε περίπτωση κατακερματισμού Η απόσταση του τμήματος από την αρχή του πακέτου Μετριέται σε bytes Πεδίο Time to Live 8 bits Προσδιορίζει το χρόνο ζωής του datagram
Μετριέται σε αριθμό αλμάτων (hops) δρομολογητών Συνολικός αριθμός δρομολογητών από τους οποίους ένα πακέτο μπορεί διέλθει προτού φτάσει στον προορισμό του Μέγιστη τιμή 255 Σε κάθε διέλευση του πακέτου από ένα δρομολογητή μειώνεται η τιμή κατά ένα Εάν η τιμή τεθεί 0 πριν το πακέτο φτάσει στον προορισμό του, το πακέτο καταστρέφεται
Θεωρείται ότι το πακέτο έχει υπεισέλθει σε ένα ατέρμονο ταξίδι μέσα στο διαδίκτυο Πεδίο Protocol 8 bits Προσδιορίζει το πρωτόκολλο στο οποίο και θα παραδοθεί το πακέτο στον παραλήπτη Πεδίο Header Checksum 16 bits Χρησιμοποιείται για τον έλεγχο της ορθής μετάδοσης της επικεφαλίδας
Στοχεύει στον εντοπισμό σφαλμάτων που προέρχονται από την επεξεργασία των πακέτων από τις συσκευές ενός δικτύου (π.χ. μεσολαβούντες δρομολογητές, γέφυρες, κ.τ.λ.) Επαναπροσδιορίζεται σε κάθε δρομολογητή αφού ορισμένα πεδία της επικεφαλίδας αλλάζουν (π.χ. TTL) Πεδίο Source IP Address 32 bits H IP διεύθυνση του αποστολέα
Πεδίο Destination IP Address 32 bits H IP διεύθυνση του παραλήπτη Πεδίο IP Options Συνήθως δε χρησιμοποιείται η χρήση του αφορά σε διαγνωστικούς και διαχειριστικούς ελέγχους, π.χ. Tον καθορισμό συγκεκριμένης πορείας του πακέτου μέσα στο δίκτυο Την καταγραφή της πορείας του πακέτου μέσα στο δίκτυο
Παράδειγμα - data 00 d0 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 01 47 9b 9b cf 3a 04 9b cf 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 97 17 06 dc
Datagram Header 00 do 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 01 47 9b 9b cf 3a 04 9b cf 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 97 17 06 dc Data
00 do 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 01 47 9b 9b cf 3a 04 9b 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 version (4 bits): 4 IHL (4 bits): 5 97 17 06 dc cf
ToS (8 bits): 0 00 do 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 01 47 9b 9b cf 3a 04 9b cf 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 97 17 06 dc
Total Length (16 bits): 3c 00 do 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 01 47 9b 9b cf 3a 04 9b cf 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 97 17 06 dc
Identification (16 bits): 471f 00 do 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 01 47 9b 9b cf 3a 04 9b cf 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 97 17 06 dc
00 do 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 01 47 9b 9b cf 3a 04 9b 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 Flags (3 bits): 0 Fragment offset (13 bits): 0 68 69 97 17 06 dc cf
TTL (8 bits): 80 00 do 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 01 47 9b 9b cf 3a 04 9b cf 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 97 17 06 dc
Protocol (8 bits): 6 (TCP) 00 do 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 06 47 9b 9b cf 3a 04 9b cf 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 97 17 06 dc
Header Checksum (16 bits): 479b 00 do 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 06 47 9b 9b cf 3a 04 9b cf 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 97 17 06 dc
Source IP 00 do 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 06 47 9b 9b cf 3a 04 9b cf 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 97 17 06 dc
Destination IP 00 d0 06 99 18 28 00 02 b3 0b 86 15 08 00 45 00 00 3c 47 1f 00 00 80 06 47 9b 9b cf 3a 04 9b cf 3a 64 08 00 2c 5c 02 00 1f 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 97 17 06 dc
NAT Network Address Translation Μέθοδος η οποία επιτρέπει την απόδοση μίας μοναδικής IP διεύθυνσης σε ένα ολόκληρο τοπικό δίκτυο το οποίο συνδέεται στο Internet μέσω ενός δρομολογητή ΗμοναδικήαυτήIP διεύθυνση αποδίδεται στο δρομολογητή
NAT Εικονικές IP διευθύνσεις αποδίδονται στους υπόλοιπους πόρους του δικτύου Για να συνδεθεί ένας πόρος με έναν απομακρυσμένο διακομιστή προσδιορίζει: Την IP διεύθυνση του διακομιστή Π.χ. 140.25.43.35 Την οικεία IP διεύθυνση Π.χ. 192.168.1.35
NAT Το λεγόμενο port number τον αριθμό που αντιστοιχεί στo συγκεκριμένο πρωτόκολλο επιπέδου Εφαρμογής με το οποίο και θέλει να συνδεθεί στον απομακρυσμένο διακομιστή Π.χ. ο αριθμός80 αντιστοιχεί στο πρωτόκολλο http ενώ ο αριθμός 21 στο FTP Το οικείο port number - αντιστοιχεί στo συγκεκριμένο πρωτόκολλο επιπέδου Εφαρμογής το οποίο και προκαλεί τη σύνδεση Π.χ. 80
NAT Πριν ο δρομολογητής αποστείλει το πακέτο: Αντικαθιστά την εικονική IP διεύθυνση 192.168.1.35 του αποστολέα με τη δική του πραγματική IP π.χ. 193.1.1.224 Αντικαθιστά τo port number (80) του αποστολέα με έναν τυχαίο αριθμό (διάφορο από οποιοδήποτε καθιερωμένο port number) Π.χ. 57685
NAT Αντιστοιχίζει σε μια εσωτερική βάση τον αριθμό 57685 στο ζεύγος (192.168.1.35, 80) Το ζεύγος αυτό χαρακτηρίζει μοναδικά τον αποστολέα μέσα στο τοπικό δίκτυο Όταν ο απομακρυσμένος διακομιστής συνδεθεί θα αποστείλει δεδομένα στο ζεύγος (193.1.1.224, 57685)
NAT Ο δρομολογητής του δικτύου ο οποίος και θαλάβειαυτάταδεδομένααντιστοιχίζειτο 57685 στο ζεύγος (192.168.1.35, 80) Προωθεί τα δεδομένα στον κατάλληλο πόρο μέσα στο τοπικό δίκτυο