ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

...ασύγχρονα μαθήματα Δικτύων

ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

Δημοσίευσηαπό Star_Light » 08 Αύγ 2011, 20:47

Μέρος 1ο

================================================================================================================
Σε αυτή την παρουσίαση θα καλύψουμε τα βασικά χαρακτηριστικά και λειτουργίες του ενος επιπέδου πιο πάνω απο το φυσικό του επιπέδου ζεύξης δεδομένων (για το μοντέλο OSI) / επιπέδου πρόσβασης δικτύου για το TCP/IP. Έχει επισημανθεί στα εισαγωγικά που έχουμε κανει οτι μιλώντας αυστηρά το TCP/IP και το OSI δεν ειναι συμβατά μεταξυ τους. Το TCP/IP είχε ηδη αρχίσει να εξελίσσεται οταν είχε εμφανιστεί η αρχιτεκτονική OSI παρολαυτα τα 2 μοντέλα είχαν παρόμοιους στόχους και υπήρχε αλληλεπίδραση μεταξυ των σχεδιαστών αυτων των προτυπων και ετσι τελικα μπόρεσαν να αποκτήσουν μια συμβατότητα. Αυτο σε περίπτωση που προκύψουν διχογνωμίες σχετικα με τις ονομασίες σε κάποια συζήτηση. Πιο συνηθισμένο παντως ειναι το terminology OSI. Βεβαια σε αυτες τις παρουσιάσεις εγω θα αναφερθώ στα επίπεδα του TCP/IP και οχι του OSI (Το οποιο έχει 7 και οχι 5 οπως το TCP/IP) To επίπεδο πρόσβασης δικτύου έχει να κάνει με το φυσικό δίκτυο και επιτελεί όλες εκείνες τις λειτουργίες για την προετοιμασία των δεδομένων για αυτο. Πάμε ομως να δούμε ολα αυτα με πιο πολλες λεπτομέρειες.

ΠΕΡΙΕΧΟΜΕΝΑ ΟΔΗΓΟΥ :

Spoiler: show
1. ΤΟ ΦΥΣΙΚΟ ΔΙΚΤΥΟ

1.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ENOΣ ΦΥΣΙΚΟΥ ΔΙΚΤΥΟΥ
1.2 ΦΥΣΙΚΗ ΤΟΠΟΛΟΓΙΑ Vs ΛΟΓΙΚΗ ΤΟΠΟΛΟΓΙΑ
1.3 ΤΕΧΝΟΛΟΓΙΕΣ LAN / ΤΟ ETHERNET

-Τι είναι το Ethernet
-Η μέθοδος CSMA/CD
-Παραδείγματα

1.4 ΤΑ ΥΠΟΕΠΙΠΕΔΑ ΤΟΥ DL LAYER
-Τα υποπεπίπεδα MAC/LLC
-Παραδείγματα

2.1 ΔΙΕΥΘΥΝΣΙΟΔΟΤΗΣΗ
-Πως?
-"Ανατομία" μιας MAC διεύθυνσης

2.2 ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΠΕΔΟΥ
-Το πρωτόκολλο ARP (Τί είναι & γιατί ειναι σημαντικό)
-Απλό Παράδειγμα υλοποίησης

2.3 "ΑΝΑΤΟΜΙΑ" ΕΝΟΣ ΠΑΚΕΤΟΥ
-Δομή & σύνθεση
-Bit Stuffing

2.4 ΥΠΟΔΙΚΤΥΩΣΗ
-Aνάγκη
-ΙP διευθυνσεις / Κλάσεις && Προκαθορισμένες Μάσκες -μια γρήγορη ματία-
-Παράδειγμα

2.5 ΝΑΤ (NETWORK ADDRESS TRANSLATION)


3. ΠΡΑΚΤΙΚΗ ΑΠΟ ΤΟ ΤΕΡΜΑΤΙΚΟ (Linux system)
-Εντολές


ΠΕΡΙΕΧΟΜΕΝΑ ΝΗΜΑΤΟΣ :

Σελ. 2 -> Μετατροπές Αριθμών (Δυαδικό Σύστημα)
Σελ. 3 -> Μέρος 3ο + Άσκηση 1
Σελ. 12 -> Άσκηση 2 (Εκφώνηση)
Σελ. 16 -> Άσκηση 3 (Εκφώνηση)
Σελ. 18 -> Λύσεις Ακσήσεων 2 & 3 + Άσκηση 4 (Εκφώνηση)
Σελ. 23 -> Εργασία με το Nmap + Άσκηση 5 (Εκφώνηση)
Σελ. 25 -> Λύση της Άσκησης 5

================================================================================================================

1.1 Πιο πανω στα εισαγωγικά ανέφερα τον χαρακτηρισμό "φυσικο" δίκτυο και φυσικα είχα τους λόγους μου :D . Καταρχην θα πρέπει να έχουμε υποψιν μας οτι το επίπεδο πρόσβασης δικτύου ειναι το πιο περίεργο και δύσκολο. Γιατί? (Α)

Ακολουθεί :
ΓΕΝΙΚΗ ΑΠΑΝΤΗΣΗ
Διοτι υπάρχουν πολλοι διαφορετικοί τύποι φυσικών δικτύων.

Mια πιο ακριβής απάντηση θα δοθεί παρακάτω (Προς το παρόν κρατήστε την κρατούμενο :lol: :lol: :lol: )

Καταρχήν πριν προχωρήσω θα πρεπει για να προλάβω παρερμηνείες να ξεκαθαρίσω οτι πλεον δεν μιλαμε για το φυσικό επίπεδο αλλα για το φυσικό δίκτυο. Και για να μην μπερδευτούμε εννοω το τοπικό μας δίκτυο δηλαδη ειτε πρόκεται για το απλο του σπιτιού μας... ειτε για πιο "πολυπλοκο" οπως καποιο σε ένα Internet Cafe για παραδειγμα το οποιο αποτελείται απο περισσότερους του ενος / δυο .... 10 :D υπολογιστών. Και παμε τωρα να ξεκαθαρίσουμε λιγο τις έννοιες.... (τουλαχιστον συμφωνα με την δική μου εκτίμηση οποιος έχει διαφορετική αποψη μπορει να την παραθέσει και να την συζητήσουμε). Καταρχην οι 2 κύριοι τύποι δικτύων ειναι Μεταγωγής Πακέτου & Μεταγωγής Κυκλώματος επειδη αν αρχισω να εξηγώ για αυτες τις 2 θα ξεφύγουμε και ο σκοπός μου ειναι αλλος θα πω απλα πως η 1Η προσδιορίζει το Internet ενω η δεύτερη το τηλεφωνικό δίκτυο (κύκλωμα / εφοσον ζήτησες τους πόρους τους δεσμέυεις ως το τελος) περα απο αυτο ομως τα δίκτυα μπορουν να ταξινομηθούν με πολλούς τρόπους έτσι ακριβώς λοιπον και μια αρχιτεκτονική μπορει να είναι πολλά διαφορετικά πράγματα.

Μερικές φορες μια αρχιτεκτονική δικτύου μπορεί να αναφερθεί ως τύπος LAN ή και ως τοπολογία LAN , για τις τοπολογίες τα έχουμε πει και στα εισαγωγικά και θα πουμε και μερικα ακομη πραγματα στην ακριβώς επόμενη παράγραφο. Σε αυτο το σημείο θελω να τονίσω πως μια αρχιτεκτονική ενος δικτύου και δή φυσικού <=> τοπικού δεν ειναι τίποτε αλλο παρα η σχεδίαση του επιπέδου πρόσβασης δικτύου. Με μια πρόταση η αρχιτεκτονική του φυσικού μας δικτύου αναφέρεται αφενος στην τοπολογία(διαύλου/δακτυλίου κτλπ) και αφετέρου στις προδιαγραφές που αφορούν το μέσο πρόσβασης. Αυτο θέλει λιγο εξήγηση και ενα παράδειγμα :!: :!: :!:

Έστω λοιπον μια αρχιτεκτονική δικτύου Ethernet (αρκετα γνωστή σε οσους έχουμε Internet). Οι προδιαγραφές μπορούν να περιλαμβάνουν ορισμένα θέματα όπως : Τύπος καλωδίωσης , Μέθοδος πρόσβασης( την οποία θα αναπτύξω πιο κατω που θα αναφερω την τεχνολογία του Ethernet) , κανόνες καλωδίωσης (οπ τελικά ακόμη και τα καλώδια έχουν πρωτόκολλα βάση τα οποία γίνεται η επικοινωνία και πλεον αρχίζει να γίνεται ολο και πιο κατανοητός αυτος ο όρος σε βάθος). Φυσικα ολα αυτα για καλή μας τύχη είναι αόρατα απο τον μέσο χρήστη και τις πιο πολλές αν οχι όλες τις φορές απαιτούνται απλα και μονο μερικά απλα και σύντομα βήματα διαμόρφωσης!

Κλείνοντας αυτη την παράγραφο θα επανέλθω στην παραπάνω ερώτηση (Α) (την οποία είχαμε θέσει ως κρατούμενο) . Με λιγα λογια λοιπον αναφέραμε ενα τοπικό/φυσικό δίκτυο το οποίο θα διαθέτει ένα φυσικό μέσο μετάδοσης (κανάλι) / πρωτόκολλα επικοινωνίας , την τοπολογία (που πανω κατω αποτελεί την αρχιτεκτονική + τις προδιαγραφές :) ) και τους τερματικούς κόμβους (τους υπολογιστές μας μεσα στο LAN) . Όλα αυτα λοιπον ειναι πόροι οι οποίοι μπορούν να διαφέρουν ανα υποδίκτυο κάνοντας τα περίεργα , δύσκολα και λιγότερο ομοιόμορφα και αυτη ειναι η ακριβής απάντηση στο παραπανω ερώτημα. To πιο απλο παράδειγμα που μπορεί να σκεφτεί κάποιος εδω είναι το Ethernet (πρότυπο 802.3) ή σε κάποιο άλλο τοπικό δίκτυο μπορεί να χρησιμοποιείται το Token Ring(πρότυπο 802.5) σαν LAN technology & αρχιτεκτονική. Η ανομοιομορφία στα τοπικά δίκτυα μεταξύ τους μπορεί να γίνει κατανοητή και απο το γεγονός οτι μόνο το πρότυπο 802.3 ορίζει 5 εκδοχές (10BASE5 , 10BASE2 , 1BASE5 , 10BASE-T & 10BROAD36) όπου σε αυτές τις κωδικές ονομασίες ο 1ος αριθμός δηλώνει τον ρυθμό μετάδοσης σε megabits (ανα δευτερόλεπτο) η λέξη BASE δηλώνει το baseband δηλαδη την βασική ζώνη εκπομπής απο όλους τους κόμβους και ο τελευταίος ειναι το μέγιστο μήκος ενος τμήματος δικτύου ως πολλαπλάσιο των 100 μέτρων. Πχ το 10BASE5 χαρακτηρίζει ένα δίκτυο βασικής ζώνης των 10Mbps με τμήματα 500 μέτρων το πολύ.

Επομένως και συνοψίζοντας μέσα σε μια πρόταση όλο το βαθύτερο νόημα των παραπάνω θα πρέπει να γνωρίζουμε οτι ναι μεν ενα τοπικό δίκτυο μπορεί να είναι ανομοιόμορφο ώς προς τα άλλα (ανα τον κόσμο :P ) αλλά μέσα στο ίδιο το τοπικό δίκτυο όλα πχ τα NIC => Network interface controller (η κάρτα δικτύου μας επι της ουσίας) θα πρέπει να είναι ίδιας αρχιτεκτονικής πχ είτε όλες θα είναι Ethernet κάρτες είτε Token ring ,
δεν μπορείς δηλαδή να αναμείξεις Ethernet + Token ring στο ίδιο φυσικό δίκτυο μπορείς όμως να τα διασυνδέσεις! Πως? Μέσω της υποδικτύωσης που θα δούμε και πιο κάτω
;)

1.2

Στα εισαγωγικά είχαμε πει οτι στην ουσία μια τοπολογία (φυσική) ειναι απλα μια διάταξη των μηχανημάτων μεσα σε ενα δίκτυο. Είχα δωσει κάποιες γνωστές τοπολογίες και είχαμε μιλησει για αυτες. Κάθε τοπικό δίκτυο - υποδίκτυο διαθέτει μια τοπολογία η οποία οπως αναφέρθηκε και πιο πανω προσδιορίζει και χαρακτηρίζει και την αρχιτεκτονική του. Μια τοπολογία λοιπον ειναι ο τρόπος με τον οποίο οι συσκευές διατάσσονται ωστε να επικοινωνήσουν μεταξυ τους (ένα πρότυπο διάταξης των διασυνδέσεων των κόμβων). Είπα παραπάνω πως μια τοπολογία μπορεί να διαφέρει απο υποδίκτυο σε υποδίκτυο οπως και οι τεχνολογίες δικτύωσης - προδιαγραφές (πχ δίκτυα ΑΤΜ Vs Token Ring Vs Ethernet etc...). Μια τοπολογία λοιπον δεν ειναι τιποτε αλλο απο μια φυσική δομή του δικτύου. Μια λογική τοπολογία σε αντίθεση τωρα ειναι ο τρόπος με τον οποίο τα σήματα (τα οποία είδαμε εκτενέστερα στην προηγουμενη παρουσίαση για το 1ο επίπεδο της στοιβας TCP/IP) ενεργούν μεσα στο μέσο.

Πιο απλά ο τρόπος με τον οποίο τα δεδομένα διέρχονται μεσω του δικτύου απο την μια συσκευή στην άλλη χωρις να λαμβάνεται υπόψιν η φυσική τοπολογία (διασύνδεση) των συσκευών (τερματικά /σταθμοί εργασίας / προσωπικοί υπολογιστές) . Μια φυσική τοπολογία δεν σχετίζεται αναγκαία με μια λογική τοπολογία. Έστω οτι έχουμε twisted pair Ethernet ( http://en.wikipedia.org/wiki/Ethernet_over_twisted_pair ) αυτο αποτελεί μια λογική τοπολογία διαύλου για παράδειγμα η οποία μπορεί να βρίσκεται μεσα σε μια φυσική διάταξη τοπολογίας αστέρα. Επομένως μπορούμε να αντιληφθούμε την διαφορά αναμεσα στις 2 έννοιες καθώς η φυσική τοπολογία εξετάζει το ΠΩΣ οι συσκευές είναι συνδεδεμένες μεταξυ των καλωδίων που μεταφέρουν δεδομένα και πακέτα ενω η λογική στο ΠΩΣ μεταφέρονται τα δεδομένα μεσω του δικτύου.

1.3


Φτάσαμε και στο Ethernet λοιπον :D. Τι ακριβώς ειναι το ethernet??? Μπορείτε να ακούσετε το ethernet να προσδιορίζεται ως τεχνολογία / αρχιτεκτονική / δίκτυο κτλπ... ολα αυτα ειναι σωστά εν μέρει αλλα σε συνθήκες πιο ελεύθερης συζήτησης και επεξηγήσεων. Πιο αυστηρά το ethernet αποτελεί πρωτόκολλο. Ως εδω ελπιζω να έχουμε καταλαβει την έννοια αυτη διοτι θα χρησιμοποιείται συνέχεια απο εδω και στο εξης. ΑΝ κάποιος δεν εχει καταλαβει μπορεί να ανατρέξει παλι στα εισαγωγικά και αν παρολαυτα υπάρχουν και μετα ακομη απορίες μπορει να μπεί και να τις διατυπώσει εδω ωστε να τις συζητήσουμε. To ethernet λοιπον ειναι ενα πρωτόκολλο ενσύρματης δικτύωσης για τοπικά δίκτυα. Ωστοσο βεβαια και για να είμαστε και πιο ακριβείς το ethernet δεν προσδιορίζει μονο τα ενσύρματα δίκτυα αλλα και τα ασύρματα. Γιατι? Πανω - κατω υπάρχει ενα κολπάκι το οποιο οι περισσότεροι θα το έχουν καταλάβει (οσοι εν παση περιπτώση ασχολούνται ενεργά με την πληροφορική) οποιαδήποτε τεχνολογία ή πρωτόκολλο ή εντολή στον προγραμματισμο αλλα και οπουδήποτε αλλου περιγράφεται απο το ονομα της. Αυτο ειναι και το κυριοτερο προσδιοριστικο... λογικο ε? :D Τελοςπαντων το ethernet αποτελείται απο τις λέξεις ether (αιθέρας) + net (network) δίκτυο δηλαδη που βασίζεται στο μέσο μετάδοσης του αιθέρα κατι που αυτομάτως σημαίνει ασύρματη επικοινωνία! Επομενως καποιες φορες μπορεί (σίγουρα) θα το δούμε και ετσι. Αυτος ειναι ο προφανής λόγος αλλα ο πιο επίσημος ειναι οτι το πρότυπο 802.11 (που έχει θεσπιστεί για τα ασύρματα) έχει μεγάλη ομοιότητα και συμβατότητα με το πρότυπο ΙΕΕΕ 802.3 (ενσύρματο ethernet).

1.4
Ως τωρα κάποιος ο οποίος θα έχει φανταστεί την δομή περίπου ενος τοπικού δικτύου (με μια τοπολογία διαύλου) ισως να αναρωτιέται ηδη πως ακριβώς θα χειρίζονται το μέσο στο οποίο θα είναι συνδεδεμένοι περισσοτεροι του ενός υπολογιστές - τερματικά του δικτύου. Μια βασική ερώτηση εδω ειναι

Πότε θα εκπέμπει ο ένας? Και πότε ο άλλος? Τι συμβαίνει κατα την περίπτωση στην οποία θα εκπέμψουν 2 μαζι ή και περισσότεροι???
Αν οι υπολογιστές είχανε μιλιά ισως να έλεγαν "αναθεμα την ώρα και την στιγμή που μοιραζόμασταν το ίδιο μέσο μετάδοσης" :lol:

Eπιπλέον σε αυτο το σημείο το επίπεδο Πρόσβασης Δικτύου μας επιφυλάσσει μια έκπληξη :lol: :lol: , ουσιαστικά "σπάει" σε 2 υποεπίπεδα τα 2 αυτα ειναι το μεν ένα το MAC και το αλλο το LLC. Η ρύθμιση πρόσβασης στο μέσο είναι δουλειά του υποεπιπέδου MAC

Αλλα για να επανέλθουμε στην αρχική ερώτηση σε αυτη την περίπτωση ναι υπάρχει κάποιο πρόβλημα. Αλλα το ethernet έχει προνοήσει για αυτό.Και ακομη πιο συγκεκριμένα το πρωτόκολλο MAC του ethernet (CSMA-CD) η οποία ειναι μια μέθοδο πρόσβασης Carrier Sense Multiple Access with Collision Detect => CSMA/CD μια μέθοδος πρόσβασης οπως είπαμε και παραπάνω αποτελεί μια προδιαγραφή του τοπικού δικτύου.Το παραδοσιακό ethernet θα δουλέψει καλα σε μικρό μεχρι μεσαίο φόρτο εργασιών αλλα σε μεγάλο φόρτο θα υποφέρει απο μεγαααάλες συγκρούσεις ή καλύτερα μεγάλους ρυθμούς συγκρούσεων.Σε πιο καινούργια δίκτυα Ethernet την κίνηση διαχειρίζονται και διαφορες άλλες συσκευές πχ διακόπτες ωστε να ελαχιστοποιηθούν οι συγκρούσεις και έτσι το δίκτυο να λειτουργεί πιο ομαλά. Τις λειτουργίες λοιπον αυτων των υπο-επιπέδων θα τις δούμε και παρακατω , ωστόσο σε αυτο το σημείο θα πρέπει να εξηγήσω τι ακριβώς ειναι το κάθε ενα επίπεδο με την χρήση ενος παραδείγματος.

Το πρωτόκολλο λειτουργίας λοιπον του CSMA/CD θα έχεις ως εξης :
========================================================================================================
ΠΑΡΑΔΕΙΓΜΑ 1


1. O Yπολογιστής Α που θέλει να μεταδώσει παρακολουθεί την γραμμη για να δεί αν κάποιος άλλος ΥΠολογιστης Β μεταδίδει και αν γενικότερα η γραμμή ειναι ελεύθερη αυτο ονομάζεται Carrier Sense (εντοπισμός φορέα) και ουσιαστικά αποτελεί την πρωτη συνιστώσα της παραπάνω ονοματοδοσίας (CSMA/CD)

Spoiler: show
Κώδικας: Επιλογή όλων


if(line!=busy)

transmit(data);

else

wait(x); //x => random time space



2. Στην περίπτωση τωρα που οι 2 υπολογιστές Α & Β αρχίσουν να μεταδίδουν ταυτόχρονα θα καταλάβουν το πρόβλημα και θα σταματήσουν ωστε να ξαναεκπέμψουν μετα απο ένα τυχαίο χρονικό διάστημα (εντοπισμός σύγκρουσης) που ουσιαστικά αποτελεί την δεύτερη συνιστώσα (CD=> Collision Detect)


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

===============================================================================================================
ΠΑΡΑΔΕΙΓΜΑ 2

Έστω οτι βρίσκεστε στο εργαστήριο της σχολής σας και εκει υπάρχει ενα τοπικό δίκτυο , ο υπολογιστής που κάθεσαι και χρησιμοποιείς ειναι συσχετισμένος και με μια MAC διευθυνση (για τις οποιες θα μιλήσουμε παρακατω) προς το παρον κρατήστε πως ειναι συσχετισμένος με μια τέτοια διεύθυνση (η οποία παρεπιπτόντως δεν εχει καμία απολυτως σχέση με την IP -θα τα εξηγήσω πιο κατω ομως-) , αν ενας φίλος σου θελήσει να σου στείλει κάποιο πακέτο , έστω ενα mail τότε αυτο το πακέτο θα ακουστεί απο όλους τους υπολογιστές στο δίκτυο (μιας και είναι συνδεδεμένοι ολοι και μοιράζονται το κοινό μέσο) αλλα θα το συγκρατήσει μονο εκείνος ο ΗΥ ο οποίος θα "ακούσει" την MAC του. Και στην προκειμένη περίπτωση εσυ του οποίου είσαι ο παραλήπτης.

Ωστόσο εδω υπάρχει ενα μυστικό! => Το άν θα ακούσουν όλοι ή όχι είναι και θέμα της συσκεύης που χρησιμοποιείται στο δίκτυο αν δηλαδη είναι διανομέας (hub -όλα τα τμήματα ενος LAN μπορούν να δούν όλα τα πακέτα) ή διακόπτης είχαμε μιλήσει στα εισαγωγικά και για αυτα τα 2 και είχα δώσει την βασική διαφορά που διέπει αυτες τις 2 συσκευές. Κατα τα άλλα η προώθηση στον destination υπολογιστή είτε την ακούν όλοι (hub) είτε όχι (διακόπτης - προώθηση με βάση τον υπολογιστή προορισμού) είναι δουλειά αυτου του υπο-επιπέδου.

Προς το παρόν λοιπον ας σας μείνει οτι σε αυτο το σημείο και μέσα στο τοπικό δίκτυο η δρομολόγηση - προώθηση γίνεται αποκλειστικά με βαση την MAC διευθυνση . Και σε πιο κατω παραγράφους θα δουμε τι συμβαίνει οταν αυτη η MAC δεν υπάρχει στον πίνακα προώθησης και ποιο πρωτόκολλο χρησιμοποείται ωστε να ανακτηθεί αυτη και να υλοποιηθεί η επικοινωνία μεταξυ των συσκευών/συστημάτων μεσα στο ίδιο το υποδίκτυο ή και σε διαφορετικά.

Π.Σ Είχα τονίσει επίσης πως οι διανομείς μπορεί να χρησιμοποιούνται ως φθηνές συσκεύες αλλα ειναι επικύνδινες ως προς την ασφάλεια (μιας και ακούνε ολοι) , ο καθένας μπορεί να βάλει εναν sniffer και να υποκλέψει δεδομένα τα οποια πληρούν φυσικα το κριτήριο του οτι ΔΕΝ ειναι κρυπτογραφημενα.

================================================================================================================

Στο άλλο υπο-επίπεδο LLC ουσιαστικά διενεργείται έλεγχος λαθών. Έλεγχος λαθών στα πλαίσια που μεταδίδονται στο τοπικό δίκτυο (γενικά τα πακέτα σε αυτό το επίπεδο ονομάζονται πλαίσια) , αυτος ο έλεγχος γίνεται με βάση ένα άθροισμα ελέγχου το οποίο υπάρχει ηδη μέσα στο πλαίσιο απο τον αποστολέα (ο αποστολέας μέσω ενος αλγορίθμου γνωστου και ως CRC => Cyclic Redundancy Check υπολογίζει το checksum και βάζει την τιμή του μέσα στο πλαίσιο που θα μεταδόσει) στην συνέχεια ο δέκτης υπολογίζει το checksum και το συγκρίνει με το πρότυπο (αυτο δηλαδη που υπάρχει ηδη μεσα στο πακέτο) αν οι τιμές δεν ταιριάζουν τοτε κάποιο πρόβλημα θα προέκυψε κατα την μετάδοση οποτε και το πλαίσιο επαναμεταδίδεται

2.1

Και σιγα σιγα μπαίνουμε στα ωραία :D . Σε αυτο το σημείο ήρθε η ώρα να γίνει λόγος για την διευθυνσιοδότηση σε αυτο το επίπεδο του TCP/IP - OSI πειτε το οπως θέλετε εκτος και αν πέσετε σε αυστηρή συζήτηση και γύρω απο τα RFC :lol: :lol: . Σε αυτο το σήμειο που βρισκόμαστε η διευθυνσιοδότηση είναι φυσική . Τι σημαίνει ομως φυσική διευθυνσιοδότηση ... σημαίνει πως οι διευθύνσεις είναι φυσικές - MAC διευθύνσεις είναι οι διευθύνσεις υλικού. Ωραία και γιατι λέγονται διευθύνσεις υλικού? Θα ρωτούσε κάποιος απαιτητικός αναγνώστης και πολυ καλα θα έκανε :) διοτι οπως εχω αναφέρει και στα εισαγωγικά μερος Β' στο 4 ενα υλικό δηλαδη μια κάρτα δικτύου διαθέτει μια φυσική διεύθυνση συμφωνα με την οποία λαμβάνει δεδομένα. Και γιατι αυτες οι διευθύνσεις λέγονται MAC? Επειδή η ευθύνη της φυσικής διευθυνσιοδότησης οπως ακριβως ανέφερα και πιο πάνω ειναι του υπο-επιπέδου MAC => Medium Access Control. Η φυσική διεύθυνση του υλικού σας συνήθως έρχεται προδιαμορφωμένη απο το εργοστάσιο.

Και πάμε να ξεκαθαρίσουμε και κατι άλλο τωρα το οποιο κατα καιρούς έχει δημιουργήσει σύγχυση και προσωπικα για μενα ειναι τελείως λάθος. Το ερώτημα αυτο έχει ως εξής. Η MAC βγαίνει εκτος τοπικού δικτύου? (νομίζω κάπου την είδα :lol: :lol: :lol: ).

ΑΠΑΝΤΗΣΗ => ΟΧΙ :!: Η MAC δεν βγαίνει και δεν ειναι προορισμένη για να βγαίνει εκτος του τοπικου μας δικτύου(ίντερνετ). Για ποιο λόγο? Για τον λογο του οτι μια ευέλικτη και αρθρωτή αρχιτεκτονική οπως αυτη του TCP/IP θέλει τα ανώτερα επίπεδα (για τα οποία λογος θα γίνει σε επόμενες παρουσιάσεις) να παραμένουν ανεξάρτητα απο τις φυσικές λεπτομέρειες. Για παράδειγμα η κρυπτογράφηση ας πουμε μιας φυσικής MAC διεύθυνσης σε υψηλότερα επίπεδα θα υποβάθμιζε κατι τετοιο.

Μιας και καλύψαμε το πώς γίνεται η διευθυνσιοδότηση (πολυ βασικά βεβαια) πάμε να προσεγγίσουμε την διεύθυνση που χρησιμοποιείται .
Αυτη λοιπόν η διεύθυνση είναι σε δεκαεξαδική μορφή ( ( hexadecimal ) -βασικά δεν ειναι ακριβώς έτσι επειδή οι βασικές διευθύνσεις υλικού αποθηκεύονται στο δυαδικό σε κάθε υπολογιστή απλα εκεινο που πραγματικά συμβαίνει ειναι οτι η αναπαράσταση της MAC στην οθόνη επιλέγεται να είναι σε 16-δική τιμή . Αφού ξεκαθαρίστηκε αυτο λοιπόν πρεπει επίσης να πω πως το 16-δικο σύστημα δεν ειναι μονο για φυσικές διευθύνσεις ή διευθύνσεις υλικού αλλα αποτελεί γενικότερου σκοπού σύστημα αναπαράστασης -μια διεύθυνση μνήμης μπορεί να εμφανιστεί και σε δυαδικό , οκταδικό , δεκαδικό κτλπ. όπως είπαμε και πιο πάνω και πάμε τωρα να εξετάσουμε το 16-δικό σύστημα ( που απο εδω και περα θα το γράφω ετσι) . Το 16-δικό είναι ενα σύστημα του οποίου η βάση (Radix) είναι το 16. Και γενικότερα αριθμείται όπως παρακάτω :

ΠΙΝΑΚΑΣ 1 :
Κώδικας: Επιλογή όλων
0 1 2 3 4 5 6 7 8 9 A(10) B(11) C(12) D(13) E(14) F(15)


Οι παρενθέσεις δίπλα απο τα A / B / C / D / E /F αντιπροσωπεύουν το γνωστό και καθημερινά χρησιμοποιούμενο δεκαδικό σύστημα. Πώς τωρα θα μπορέσω να μετατρέψω έναν αριθμό απο το δεκαεξαδικό στο δεκαδικό? Έστω ο 2ΑF3 στο σύστημα με R=16 τοτε θα έχω :

Spoiler: show
Κώδικας: Επιλογή όλων

Καταρχήν η αρίθμηση των θέσεων (για να μην χάσω τις δυνάμεις του 16 θα ξεκινήσει απο τα δεξιά προς τα αριστερά! Και απο το 0)
Δηλαδη => 2(θέση 3) Α(θέση 2 ) F (θέση 1) 3 (θέση 0)
και
Έστω x o ζητούμενος δεκαδικός αριθμός

τοτε θα είναι

x= 2 * 16^3 + A*16^2 + F * 16^1 + 3 * 16^0     // Οι θέσεις μπαίνουν σαν εκθέτες οπως θα καταλάβατε της βάσης
                                                                   // Aν το εξεταζόμενο Radix ηταν 2 (δυαδικο δηλαδη) αντι του 16 θα έμπαινε το 2.

=> x= 2 * 16^3 + 10 * 16^2 + 15 * 16^1 + 3 * 16^0  // Oι τιμές στα A - F έχουν μπεί με βάση τον πίνακα 1 και είναι 10 και 15 αντίστοιχα

=> x = 8192 + 2560 + 240 + 3 = 10995  σε Radix = 10 (δεκαδικό δηλαδη)


Γενικά το 16-δικο σύστημα ειναι πιο human - friendly και σε γενικές γραμμες προτιμάται κατα πολυ περισσοτερο απο το δυαδικό και φαντάζομαι ολοι μπορουμε να νιωσουμε τον λόγο αν έρθουμε αντιμέτωποι με μια τεράστια δυαδική ακολουθία :lol: :lol: :lol: πάμε τώρα να εξετάσουμε την ανατομία μιας MAC :D To standard format για MAC- 48 (48 bit MAC διευθυνση) συμφωνα με την IEEE 802 είναι 6 groups των 2 16-δικων ψηφίων (16-δική αναπαράσταση) που κάθε ενα απο αυτα τα groups χωρίζεται με (:) η MAC έχει επεκτασιμότητα κατι που την καθιστά χρησιμοποιήσιμη και σε άλλες τεχνολογίες οπως (το κλασικό μας ethernet) , τα 802.11 wireless networks , Bluetooth κτλπ. συμφωνα λοιπον με τα οσα είπαμε η "ανατομία" / σύνθεση / σύσταση / δομή οπως θέλετε πείτε το είναι η ακόλουθη :

Κώδικας: Επιλογή όλων
xx:xx:xx:xx:xx:xx


Σε κάθε x απο τα παραπάνω (δεκαεξαδικό ψηφίο) αντιστοιχουν 4 bits ή nibbles .Δηλαδη κάθε ομάδα (xx) αποτελείται απο 1 byte. Το 1 byte έχει τιμές οι οποίες μπορούν να κυμαίνονται απο 0-255 μεσα σε αυτο το ευρος "ζώνης" κυμαίνεται δηλαδη διοτι 2^8=256 αλλα οπως ειπαμε και πιο πάνω ειναι σημαντικό να μην ξεχνάει κανείς πως η αρίθμηση ξεκινά απο το 0. Σε 16-δικο αυτο μεταφράζεται σε εύρος τιμών απο 00...FF γιατι? Γιατί αν μετατρέψεις το 255 σε δυαδικό αυτο δίνει 8 άσσους. ΠΟυ σύμφωνα και με τον πίνακα εδω
http://en.wikipedia.org/wiki/Hexadecimal μας δίνει το FF.

Συνεχίζεται σε επόμενο ποστ....

Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Μη εμπορική χρήση-Παρόμοια διανομή 3.0 Ελλάδα
Τελευταία επεξεργασία από Star_Light και 12 Οκτ 2011, 03:46, έχει επεξεργασθεί 53 φορά/ες συνολικά
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

Δημοσίευσηαπό Star_Light » 09 Αύγ 2011, 17:38

στο σημείο αυτο και μιας και ακομα ο οδηγος εχει λιγο δρομο και δεν εχει τελειωσει θελω να μου πειτε οσοι τον διαβαζετε τι σας βολευει πιο πολυ....
να τον συνεχισω σαν μακρυνάρι ή να τον σπάσω σε άλλο ποστ ? :)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

Δημοσίευσηαπό stamatiou » 09 Αύγ 2011, 20:01

Εγώ πάντως έχω ήδη μερικές ερωτήσεις:
Spoiler: show
1. Τι είναι το υποδικτυο;
2. Τι είναι τα δίκτυα FDDI;
3. Δηλαδή την ο στόχος της τοπολογίας είναι σαν του πρωτοκόλλου αλλά στο φυσικό μέσο;
4. Μπορείς να ξαναεξηγήσεις τη διαφορά μεταξύ της φυσικής και της λογικής τοπολογίας :oops:;
5. Τώρα όσα μαθαίναμε μέχρι τώρα ήταν για το OSI ή το TCP/IP;
6. Αυτό το μάθημα αναφέρεται στο OSI ή το TCP/IP;
7. Όταν στέλνουμε ένα mail γράφουμε το mail του παραλήπτη όχι τη MAC διεύθυνσή του αλλά παρόλα αυτά θα ελέγξει αν ο παραλήπτης είναι συνδεδεμένος στο συγκεκρυμένο LAN;
8. Δεν κατάλαβα καθόλου το δεκαεξαδικό σύστημα, κανένα link;
9. Τι είναι η IEEE 802;

Όσο για τον οδηγό αν είναι μακρύς ψηφίζω να χωριστέι σε 2 post :D
1Γνώσεις→Linux: Αρχάριος┃Προγραμματισμός:Αρχάριος┃Αγγλικά:Μέτριος
2Λειτουργικό→Arch Linxu 32bit
3Προδιαγραφές→2x AMD AthlonX2 DualCore QL-66 ‖ RAM 1751 MiB ‖ Hewlett-Packard 308C - Hewlett-Packard Compaq 615
4Κάρτες γραφικών:ATI RS780M/RS780MN [Radeon HD 3200 Graphics][1002:9612]
5Δίκτυα:eth0:Marvell 88E8042 PCI-E Fast Ethernet Controller [11ab:4357] (rev 10)⋮eth1: Broadcom BCM4312 802.11b/g LP-PHY [14e4:4315](rev 01)
Πρωσοπική Ιστοσελίδα: http://giwrg98.co.cc
Άβαταρ μέλους
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

Δημοσίευσηαπό Star_Light » 09 Αύγ 2011, 20:04

stamatiou έγραψε:Εγώ πάντως έχω ήδη μερικές ερωτήσεις:
Spoiler: show
1. Τι είναι το υποδικτυο;
2. Τι είναι τα δίκτυα FDDI;
3. Δηλαδή την ο στόχος της τοπολογίας είναι σαν του πρωτοκόλλου αλλά στο φυσικό μέσο;
4. Μπορείς να ξαναεξηγήσεις τη διαφορά μεταξύ της φυσικής και της λογικής τοπολογίας :oops:;
5. Τώρα όσα μαθαίναμε μέχρι τώρα ήταν για το OSI ή το TCP/IP;
6. Αυτό το μάθημα αναφέρεται στο OSI ή το TCP/IP;
7. Όταν στέλνουμε ένα mail γράφουμε το mail του παραλήπτη όχι τη MAC διεύθυνσή του αλλά παρόλα αυτά θα ελέγξει αν ο παραλήπτης είναι συνδεδεμένος στο συγκεκρυμένο LAN;
8. Δεν κατάλαβα καθόλου το δεκαεξαδικό σύστημα, κανένα link;
9. Τι είναι η IEEE 802;

Όσο για τον οδηγό αν είναι μακρύς ψηφίζω να χωριστέι σε 2 post :D


κατσε να ολοκληρωσω τον οδηγο και θα τις δουμε... :D
Δεν καταλαβες καθολου το 16-δικο συστημα??? :|
γιατι???? ετσι οπως το εδειξα πηγαινει τι ακριβως δεν καταλαβες δηλαδη????
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

Δημοσίευσηαπό stamatiou » 09 Αύγ 2011, 20:20

Star_Light έγραψε:
stamatiou έγραψε:Εγώ πάντως έχω ήδη μερικές ερωτήσεις:
Spoiler: show
1. Τι είναι το υποδικτυο;
2. Τι είναι τα δίκτυα FDDI;
3. Δηλαδή την ο στόχος της τοπολογίας είναι σαν του πρωτοκόλλου αλλά στο φυσικό μέσο;
4. Μπορείς να ξαναεξηγήσεις τη διαφορά μεταξύ της φυσικής και της λογικής τοπολογίας :oops:;
5. Τώρα όσα μαθαίναμε μέχρι τώρα ήταν για το OSI ή το TCP/IP;
6. Αυτό το μάθημα αναφέρεται στο OSI ή το TCP/IP;
7. Όταν στέλνουμε ένα mail γράφουμε το mail του παραλήπτη όχι τη MAC διεύθυνσή του αλλά παρόλα αυτά θα ελέγξει αν ο παραλήπτης είναι συνδεδεμένος στο συγκεκρυμένο LAN;
8. Δεν κατάλαβα καθόλου το δεκαεξαδικό σύστημα, κανένα link;
9. Τι είναι η IEEE 802;

Όσο για τον οδηγό αν είναι μακρύς ψηφίζω να χωριστέι σε 2 post :D


κατσε να ολοκληρωσω τον οδηγο και θα τις δουμε... :D
Δεν καταλαβες καθολου το 16-δικο συστημα??? :|
γιατι???? ετσι οπως το εδειξα πηγαινει τι ακριβως δεν καταλαβες δηλαδη????

Οκ, τώρα που τα ξαναδιάβασα κάτι κατάλαβα... Όμως εκεί στο 2^8=256 τι αντιπροσωπεύουν το 2 και το 8;
1Γνώσεις→Linux: Αρχάριος┃Προγραμματισμός:Αρχάριος┃Αγγλικά:Μέτριος
2Λειτουργικό→Arch Linxu 32bit
3Προδιαγραφές→2x AMD AthlonX2 DualCore QL-66 ‖ RAM 1751 MiB ‖ Hewlett-Packard 308C - Hewlett-Packard Compaq 615
4Κάρτες γραφικών:ATI RS780M/RS780MN [Radeon HD 3200 Graphics][1002:9612]
5Δίκτυα:eth0:Marvell 88E8042 PCI-E Fast Ethernet Controller [11ab:4357] (rev 10)⋮eth1: Broadcom BCM4312 802.11b/g LP-PHY [14e4:4315](rev 01)
Πρωσοπική Ιστοσελίδα: http://giwrg98.co.cc
Άβαταρ μέλους
stamatiou
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 947
Εγγραφή: 25 Ιουν 2010, 20:23
Εκτύπωση

Re: ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

Δημοσίευσηαπό Star_Light » 09 Αύγ 2011, 20:22

Kαι δεν σε ρωταω αποτομα... απλα εχω την εντυπωση πως το εξηγησα καλα... παρολαυτα κοιταξε
επειδη πρεπει να συγκεντρωθω τωρα να συμπεριλαβω καποια βασικα πραγματα μεσα και να τον ολοκληρωσω
συγκεντρωσε οποιαδηποτε απορια εχεις και εσυ και οι υπολοιποι και θα τις δουμε μολις τον ολοκληρωσω
γιατι δεν θελω να γραψω καμια μπουρδα μεσα!!!

Και να εχετε και εσεις τα ματια σας 14 ... γνωριζω μεν ως ενα βαθμο το αντικειμενο αλλα δεν ειμαι και με πολυετια
και εμπειροτατος διαχειριστης δικτυων :D απλα να ειστε και εσεις προσεκτικοι οταν τον διαβαζετε. ;)

α και μια ακομη επισημανση... θελω πριν με ρωτησετε κατι θελω να εχουμε διαβασει τον οδηγο καλα!!!!
Οχι γιατι δεν θελω να λυνω αποριες... ισα ισα... απλα ειναι πιο καλο για εσας ;)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

Δημοσίευσηαπό Star_Light » 09 Αύγ 2011, 20:24

stamatiou έγραψε:Οκ, τώρα που τα ξαναδιάβασα κάτι κατάλαβα... Όμως εκεί στο 2^8=256 τι αντιπροσωπεύουν το 2 και το 8;


Λοιπον το 8 έχει να κάνει με το byte ενα byte ειναι 8 bit.
Kαι το 2 ειναι οι 2 πιθανες τιμες που μπορει να παρει οταν ειναι σε δυαδικο (0,1)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

Δημοσίευσηαπό Star_Light » 09 Αύγ 2011, 23:48

Μέρος 2ο

================================================================================================================

Λοιπον ξεκινάω ένα καινούργιο ποστ για την συνέχεια του οδηγού ελπίζοντας πως θα διευκολύνει οσους τον διαβάσουν.
Συνεχίζουμε απο το 2.2 των περιεχομένων που αναφέρεται στα πρωτόκολλα αυτου του επιπέδου... φυσικά εδω θα γίνει λόγος μονο για το ARP και οχι και για το RARP που ειναι το αντιστροφό του. Πανω - κατω πιστεύω οποιος καταλάβει πως δουλεύει το ARP δεν θα αντιμετωπίσει σοβαρο θέμα και στην κατανόηση του RARP αν θέλει να το ψάξει περαιτέρω μονος του. Πάμε λοιπον

2.2

Eκείνο που μας ενδιαφέρει πρωτίστως σε ενα υποδίκτυο σύμφωνα και με τα όσα έχουν προαναφερθεί είναι η φυσική διεύθυνση. Για αυτη την διεύθυνση γίνεται όλη η "φασαρία" μιας και με βάση αυτη την διεύθυνση οι υπολογιστές επικοινωνούν μέσα στο τοπικό δίκτυο.Ένας υπολογιστής πρέπει να ξέρει την φυσικη διεύθυνση της κάρτας δικτύου του υπολογιστή στον οποίο θέλει να στείλει δεδομένα. Για να απεικονισθούν επομένως οι IP διευθύνσεις οι οποίες έρχονται απο το Network Layer ή και γενικοτερα οι IP των υπολογιστών του φυσικού δικτύου στις αντίστοιχες φυσικές χρησιμποιείται ενα πρωτόκολλο το οποιο ονομάζεται ARP και επειδή οπως έχουμε ξαναπει του καθενός το όνομα στην Πληροφορική ειτε αυτο ειναι τεχνολογία , είτε ειναι πρωτόκολλο(καλη ωρα) είτε ειναι εντολη και στον προγραμματισμό ειτε το οτιδήποτε ειναι ουσιαστικά κατι που περιγράφει την λειτουργία του για αυτο αν νεω είμαστε εξικοιωμένοι με κάποια πράγματα ξαφνικα δούμε κατι καινουργιο καλο ειναι να μην ψαρώσουμε :D . Επομενως ARP => Address Resolution Protocol , πρωτόκολλο ανάλυσης διευθύνσεων.

ΕΡΩΤΗΣΗ 1 -> Ποια όμως ειναι η λειτουργία-δουλεία του & γιατι θεωρείται τοσο σημαντικό?

Η κυρια λειτουργία του ειναι να απεικονίζει διευθύνσεις 3ου επιπέδου (δηλαδη επιπέδου δικτύου σε διευθύνσεις 2ου επιπέδου δηλαδη επιπέδου πρόσβασης δικτύου. Απο IP->MAC και διατηρεί αυτες τια αντιστοιχίες σε εναν πίνακα (για καθε υπολογιστή) του τοπικού δικτύου που ονομάζεται ARP cache δεν θα μπορούσαμε να κάνουμε αυτη τη διαδικασία χειροκίνητα οταν προστίθονται νέες συσκευές στο δίκτυο γιατι θα αποτελούσε μεγάλη φασαρία, απο οσο πρόσεξα υπάρχει γενικά μια μικρή διχογνωμία στο αν το ARP ειναι πρωτόκολλο 3ου ή 2ου επιπέδου (σε ενα βιβλίο που έχω εγω επισημαίνει πως ειναι επιπέδου Internet) ενώ στην τεκμηρίωση της Wikipedia για το OSI model το βάζει στο 2ο επίπεδο. Τελοςπαντων δεν θα μας απασχολήσει τοσο αυτο οσο το να καταλάβουμε ακριβως τι δουλειά κάνει και με τι πραγματεύεται. ;) Επίσης έχουμε πει πως η δρομολόγηση σε αυτο το επίπεδο γίνεται με βάση τις φυσικές διευθύνσεις και αυτο δεν γίνεται για χάρη γούστου ούτε επειδη έτσι το όρισε απλα καποιος και πρέπει ολοι μετα να το ακολουθούμε "τυφλα". Καταρχήν για να γίνει η δρομολόγηση χρειάζονται διευθύνσεις και αν υποθέσουμε οτι οι μόνες διευθύνσεις που γνωρίζουμε ειναι οι IP διευθύνσεις βγάζοντας τελειως τις MAC (αρα και το πρωτόκολλο ARP) απο το παιχνίδι τοτε τι θα γινότανε? Τοτε εκεινο που θα γινότανε λοιπον θα ηταν το οτι (εφοσον) δεν θα υπήρχε το πρωτόκολλο ARP το κάθε μηχάνημα θα έπρεπε να παραλάβει το πακέτο απο το φυσικό μέσο και να το επεξεργαστεί ως...... το επίπεδο δικτύου κατι που σημαίνει περιττό κόστος και extra CPU processing για να μεταδόσει και να αναλύσει την IP!!!! Για να διαπιστώσει αν η IP διεύθυνση ταυτίζεται με την δική του. Επειδή λοιπον κατι τετοιο αποτελεί περιττη επεξεργασία ξαναβάζουμε το ARP στο παιχνίδι για να διαπιστώσουμε άμεσα αν κάποιο πακέτο μας ανήκει.(Έχει εμας σαν τελικό προορισμό).

ΕΡΩΤΗΣΗ 2 -> Γιατι ο πίνακας ARP (ARP cache) θεωρείται αναγκαίος?

O πίνακας αυτος πάλι δεν υπάρχει για χάρη γούστου ή σε στυλ ξέρεις πρέπει να έχεις εναν πίνακα ARP :D . Σε αυτο το σημείο πρέπει να τονίσω πως μια απο τις καλύτερες πηγές για να διαβάσει κάποιος για δίκτυα είναι στα έγγραφα RFC. Τα έγγραφα αυτα ουσιαστικά περιέχουν το μεγαλύτερο μέρος της τεκμηρίωσης του TCP/IP , η βιβλιοθήκη των RFC εγγράφων ουσιαστικά περιλαμβάνει αναφορές απο ομάδες εργασίας κτλπ. Μπορεί κάποιος να τα παραλληλίσει με την τεκμηρίωση ας πούμε του GCC για τις βασικές βιβλιοθήκες της C. Σε αυτον εδω το συνδεσμο λοιπον -> http://tools.ietf.org/html/rfc1180 τονίζει στην παράγραφο 4 οτι δεν μπορεί να χρησιμοποιήσεις εναν standard αλγόριθμο (δεν υπάρχει κάποιος τέτοιος) για να μεταφράσεις ( με την εννοια του αντιστοιχίσεις εδω μια IP σε μια MAC) δεν υπάρχει δηλαδη κάποια στανταρ σύνδεση μεταξύ τους :) , για αυτο το λογο ακριβώς μπορεί κάποιος να καταλάβει το πόσο σημαντική είναι η παρουσία αυτου του πίνακα στις επικοινωνίες εντος του τοπικού δικτύου. Επίσης κρατά τις αντιστοιχίσεις μεταξύ IP και MAC διευθύνσεων ωστε όταν χρειαστεί να στείλει κάτι σε έναν υπολογιστή μιας συγκεκριμένης IP να κοιτάξει τον πίνακα ωστε να δεί σε ποια MAC αντιστοιχεί αυτη η IP.

Πάμε τωρα να δούμε ενα πολυ απλό παράδειγμα (το βασίκο) για το πώς γίνεται η επικοινωνία μεσω του ARP (θα μπορούσα να συμπεριλάβω και παραδείγματα για την επικοινωνία μεταξύ 2 host οι οποίοι βρίσκονται σε διαφορετικά υποδίκτυα και επικοινωνούν μεσω ενος δρομολογητή αλλα το παράδειγμα αυτο ειναι πιο "προχωρημένο" και είτε μπορω να το προσθέσω στο μέλλον είτε μπορείτε να το ψάξετε και μόνοι σας αφου καταλάβετε τα βασικά ή και όχι ομως ανάλογα τον καθένα :) ) Προς το παρον θα δούμε ενα απλο παράδειγμα το οποίο αναφέρεται σε 2 host οι οποίοι βρίσκονται στο ιδιο τοπικό δίκτυο (και έτσι δεν χρειάζονται τον δρομολογητή για να επικοινωνήσουν -μπορούν να το κάνουν απευθείας).

Aς υποθέσουμε λοιπον οτι 2 υπολογιστές Α & Β με IP διευθύνσεις 128.6.4.100 & 128.6.4.12 αντίστοιχα θέλουν να επικοινωνήσουν μεταξυ τους.
Τα βήματα θα είναι τα ακόλουθα :

===============================================================================================================

ΒΗΜΑ 1


Αρχικά θα γίνει έλεγχος αν οι 2 βρίσκονται στο ίδιο δίκτυο (πράγμα που συμβαίνει λογω της κλασης C την οποια θα εξηγήσουμε παρακάτω) οποτε και μπορούν να επικοινωνήσουν απευθείας μεσω του τοπικού δικτύου (ethernet).

ΒΗΜΑ 2

O υπολογιστής Α θα εξετάσει τον ARP cache του για να δει αν υπάρχει για την συγκεκριμένη διεύθυνση του Β καταχώρηση για την φυσική διεύθυνση. Αν υπάρχει θα ανακτήσει απο εκει απευθείας την φυσικη διεύθυνση και η επικοινωνια θα ειναι δυνατη με τον Β στα πλαίσια του τοπικού δικτύου (ξανατονίζω η επικοινωνία στο τοπικό γίνεται μεσω των MAC). Σε αντίθετη περίπτωση προχωράμε στο βήμα 3

ΒΗΜΑ 3

O Α χρειάζεται τοτε να δημιουργήσει ενα ARP request το οποιο είναι ενα IP packet (για αυτο και παραπάνω είπαμε πως θα δείτε αυτο το πρωτόκολλο σαν πρωτόκολλο επιπέδου Internet κατα τα αλλα η δουλειά που κάνει ειναι για ενα φυσικό-τοπικό δίκτυο είτε για το ίδιο είτε για διαφορετικό -επικοινωνία υπολογιστών που ανήκουν σε διαφορετικά υποδίκτυα). Aυτο το ερώτημα θα γίνει broadcast (κατι που σημαίνει πως θα το ακούσουν ολοι οι υπολογιστές του τοπικού δικτύου) αλλα θα απαντηθεί απο τον υπολογιστή ο οποίος θα αναγνωρίσει την IP διευθυνσή του. Στο ARP reply που θα ακολουθήσει ο Β θα δώσει την φυσικη του διεύθυνση στον Α και στην συνέχεια

ΒΗΜΑ 4

o Α θα ανανεώσει τον ARP cache του με την αντιστοίχηση της IPβ -> MACβ (του Β δηλαδη) , αν ομως αυτη η εγγραφή δεν χρησιμοποιηθεί για κάποιο μεγάλο συνήθως χρονικό διάστημα αυτόματα διαγράφεται.

ΠΡΟΣΟΧΗ!!! Τα παραπάνω αποτελούν έναν αλγόριθμο ως προς την παρουσίαση του πρωτοκόλλου ARP / δεν έχουν καμια σχέση με αλγόριθμο ο οποίος αντιστοιχεί IP's σε MAC's (οχι Macdonalds :lol: :lol: )

===============================================================================================================

EΡΩΤΗΣΗ 3 -> Ποια η μορφή των πακέτων ARP request & ARP reply του παραπάνω παραδείγματος?


Έστω λοιπον οι IPα=128.6.4.100 IPβ=128.6.4.12 καθως και MACα = 06:00:30:00:4F:C2 οι διευθύνσεις IPv4 των Α & Β καθως και η MAC του Α αντίστοιχα
η μορφή των πακέτων αίτησης και απάντησης του ARP θα έχει την εξής μορφή :

Spoiler: show
Κώδικας: Επιλογή όλων


ARP request A->B

====================================================

IP αποστολέα  : 128.6.4.100

MAC αποστολέα : 06:00:30:00:4F:C2

IP προορισμού : 128.6.4.12

MAC προορισμού :    X   ?     (Ζητούμενο)   // Τα πακέτα ARP έχουν και άλλα πεδία τα οποία δεν βάζω εδω για λόγους απλότητας


====================================================

ΑRP reply  B->A

====================================================

IP αποστολέα : 128.6.4.12  //Πλέον ο αποστολέας ειναι ο Β  :)

MAC αποστολέα : 06:00:39:00:25:A5 // Αυτό που ζητούσαμε

IP προορισμού : 128.6.4.100

MAC προορισμού : 06:00:30:00:4F:C2

====================================================




ΑΚριβώς αυτη η εγγραφή (Βήμα 4) =>

Spoiler: show
Κώδικας: Επιλογή όλων

            IP              MAC
       128.6.4.12      06:00:39:00:25:A5


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

Ας υποθέσουμε τωρα οτι ο δρομολογητής R δεν γνωρίζει την MAC του Α ωστε να προωθήσει το μήνυμα- πακέτο. Πρίν στείλει το πακέτο θα στείλει ενα ARP μήνυμα. Και έχουμε και λέμε (πάλι) :lol:

BHMA 1
O R λοιπον παίρνει πρέφα :D οτι δεν γνωρίζει την MAC του Α και κατ επέκτασην ο πίνακας δεν έχει εγγραφή. Κάνει λοιπον ένα ARP μήνυμα - πακέτο broadcast.

ΒΗΜΑ 2
Ένα broadcast το ακούνε όλοι αλλα φυσικά θα απαντήσει εκείνος που θα αναγνωρίσει την IP του ενω οι άλλοι το απορρίπτουν και έτσι λοιπον δίνει την MAC του οπως ακριβώς και στο ΒΗΜΑ 3 σε πιο πάνω παράδειγμα με τους 2 υπολογιστές μεσα στο ίδιο τοπικό.

ΒΗΜΑ 3

Τέλος γίνεται ενημέρωση του πίνακα με την αντίστοιχη εγγραφή.

Nα θυμάστε οτι ο δρομολογητής δεν είχε καμία άλλη εναλλακτική ως προς την επικοινωνία του με τον Β πέρα απο την χρησιμοποιήση της IP του Β ακριβώς και μέχρι να γίνει η επίλυση.

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

2.3 Πάμε τωρα να δούμε την σύνθεση / δομή που θα έχει ενα πακέτο (frame) το οποίο μεταδίδεται σε αυτο το επίπεδο.

Spoiler: show
Κώδικας: Επιλογή όλων

=========+====================+====================+=========+=========+======
1.FLAG    2.ΔΙΕΥΘΥΝΣΗ ΠΑΡΑΛΗΠΤΗ 3.ΔΙΕΥΘΥΝΣΗ ΑΠΟΣΤΟΛΕΑ 4.ΜΗΚΟΣ  5.DATA   6.CRC       
=========+====================+====================+=========+=========+======



Λοιπον ελπίζω να ειναι κατανοητή η δομή του παραπάνω πλαισίου που ταξιδεύει μεσα απο το καλωδιο του EThernet που εχουμε στο σπίτι μας. Πάμε να πούμε 2-3 πράγματα επιγγραματικά ομως για καθενα απο αυτά. Καταρχην

1. FLAG => Είναι μια σημαία , δηλαδή μια σειρά απο bit τα οποία σημειώνουν την αρχή του πλαισίου.

2.ΔΙΕΥΘΥΝΣΗ ΠΑΡΑΛΗΠΤΗ => Η διεύθυνση του παραλήπτη (για τον οποίο προορίζεται το πλαίσιο) και μαλιστα η φυσική διεύθυνση του παραλήπτη.

3. ΔΙΕΥΘΥΝΣΗ ΑΠΟΣΤΟΛΕΑ => To ιδιο με πάνω αλλα το αντίστροφο :D η φυσική διεύθυνση αυτου που στέλνει το πλαίσιο.

4. ΜΗΚΟΣ => Ένα πεδίο το οποίο υπάρχει για να δείχνει το μέγεθος του πεδίου των δεδομένων.

5. DATA => Tα δεδομένα που μεταδίδονται με το πλαίσιο.

και τέλος

6. CRC => ΠΟυ οπως είπαμε και στην παράγραφο με τα υπο-επίπεδα χρησιμοποιείται για το άθροισμα ελέγχου και τον έλεγχο λαθών γενικότερα μπορεί να το δείτε και σαν Frame Check Sequence καπου αλλού ή σε κάποιο βιβλίο ειναι ακριβώς το ίδιο πράγμα διοτι χρησιμοποιείται ακριβως για τον ίδιο σκοπό. Στο σημείο ομως αυτο πιστεύω πως δεν θα είχε νόημα (ιδιαίτερο η όλη παράγραφος) αν δεν μιλούσα για την λειτουργία/τεχνική του Bit Stuffing η οποία ειναι μια γενικότερη λειτουργία του DLL :) (Data Link Layer) , πάμε να πούμε μερικά πραγματα λοιπον γύρω απο αυτο και στην συνέχεια να δώσω και παράδειγμα.

Ουσιαστικά το bit stuffing ειναι μια διαδικασία πλαισίωσης. Με λίγα λογια οριοθετούμε το πλαίσιο ωστε να γνωρίζει ο δέκτης που αρχίζει και που τελειώνει. Πάμε να δούμε ενα βασικό παράδειγμα :

Spoiler: show
Κώδικας: Επιλογή όλων
Έστω η κωδικοποίηση :

x1: 00111   x2: 11110
x3: 10010   x4: 10011
x5: 11110

και θέλουμε να μεταδώσουμε την x1x2x3x4x5 ακολουθία

Βήμα 1o => Οριοθετούμε το πλαίσιο (και σε αρχή και σε τέλος)

αυτο γίνεται ξεκινώντας με τα FLAGS σε αρχή και τέλος πχ

01111110 ........ 01111110  // Tα FLAGS αυτα ορίζονται απο το πρωτόκολλο HDLC

Βήμα 2ο => ανάμεσα τωρα(απο τις οριοθετήσεις) θα βάλουμε την  ακολουθία που πρόκειται να μεταδοθεί

=> Flagαρχής->01111110  x1->00111 x2->11110 x3->10010 x4->10011 x5->11110 Flagτελους->01111110

Βήμα 3ο (Ακολουθεί η εξηγησή του) => Παίζουμε με bit stuffing.


δηλαδη απλά έβαλα ανάμεσα στα 2 flags (αρχής και τέλους) την ακολουθία που πρέπει να μεταδώσω δεν έκανα τιποτε αλλο.

Υπάρχουν όμως μερικά προβληματάκια στα παραπάνω. Καταρχήν το πρωτόκολλο HDLC (High Level Data Link Control έχει προκαθορισμένα flags για να οριοθετεί το πλαίσιο. Τα flags αυτα (τέλους + αρχής) ουσιαστικά ειναι ίδια και περιγράφονται απο το byte -> 01111110 , μπορεί να εμφανισθεί οποιαδήποτε ακολουθία απο bit στα δεδομένα αλλα θέλουμε να αποφύγουμε το παραπάνω byte flag για να μην νομίσει ο δέκτης προώρα οτι το πακέτο τελειώνει και έτσι δεν λάβει το σωστό πακέτο. Πέρα απο το παραπάνω πρόβλημα το οποίο μεταξυ μας δεν ειναι πρόβλημα αλλα προβλημα αρχίζει να γίνεται μολις εμφανίζεται το byte flag μέσα στα δεδομένα μας και αυτο φυσικά διορθώνεται με το bit stuffing δηλαδη μετα απο 5 άσσους βάζεις ενα "0" . Πέρα απο αυτό υπάρχει και ενα άλλο πρόβλημα. Το πρωτόκολλο HDLC το οποίο ειναι ενα πρωτόκολλο προσανατολισμένο σε δυαδικά ψηφία ορίζει και μια ακολουθία τερματισμού όταν υπάρξει λάθος στο πακέτο , η ακολουθία αυτή είναι -> 0 και 7 άσσοι -> 01111111. Και αυτη η περίπτωση θα αντιμετωπισθεί με bit stuffing ΑΛΛΑ αν το bit stuffing μπει μετα τον 6 άσσο πέφτουμε πάνω στο flag byte που ορίζει το HDLC επομένως η προσθήκη του "0" θα γίνει πάλι απο τον 5 άσσο και μετα (ακριβως μετα τον 5ο άσσο). ΣΥμφωνα λοιπον με όσα γράφτηκαν η ζητούμενη ακολουθία θα είναι :

Spoiler: show
Κώδικας: Επιλογή όλων

FLAG αρχής -> 01111110 x1-> 00111 x2-> 11"0"11 x3->01001 x4->01001 x5-> 1111"0"10 FLAGτελους-> 01111110


Τέλος ο δέκτης ο οποίος γνωρίζει το πρωτόκολλο αφαιρεί το "0" που ακολουθείται απο 5 ψηφία (αφαίρεση της προσθήκης) ωστε να ανακτήσει το αρχικό πακέτο. Μπορεί κάποιος να αναρωτηθεί αν θα αλλοιωθεί η πληροφορία με αυτον τον τρόπο. Όχι διοτι η δουλειά αυτη γίνεται μονο για λόγους πλαισίωσης και για λόγους που αναφέρθηκαν και πιο πανω , αν προσέξετε άλλωστε πχ στο x5 τμημα της δεδομένης μεταδιδόμενης ακολουθίας μολις ο δέκτης βγάλει το "0" θα μείνουν οι άσσοι και γενικότερα η "δομη" του τμήματος οπως πριν. Αυτο που λεω μπορει να φαίνεται αυτονόητο αλλα καμια φορα χρειάζεται να το σκεφτεί κάποιος για να μην μπερδευτεί φυσικα αν δεν χρειάζεται σε κάποιον μπορει να το αγνοήσει. :)

2.4

* H παρουσίαση του 2.4 θα γίνει σε επόμενο ποστ για να μικρύνουμε λιγο το μέγεθος του οδηγου Βλέπε Σελ.2 *

2.5

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

Για εγκυκλοπαιδικους λόγους το NAT είναι μια τεχνολογία η οποία αναπτύχθηκε απο την Cisco . To ΝΑΤ ουσιαστικά προσφέρει (οπως αλλωστε το λέει και το ονομα του) την υπηρεσία της μετάφρασης των διευθύνσεων του δικτύου. Έχουμε ξανατονίσει την σχέση μεταξύ ονόματος και λειτουργίας στην ΠΛηροφορική (αλλα και οχι μονο) ένα βήμα για να προσεγγίσουμε κατι το οποίο δεν γνωρίζουμε καθολου χωρις να "ψαρώσουμε" ειναι να σκεφτούμε το ονομά του. :) Πάμε ομως να δούμε και ενα παράδειγμα για να καταλάβουμε καλυτερα την συγκεκριμένη προδιαγραφή. Έστω μια συσκευή ΝΑΤ με κάποια IP.
και 3 υπολογιστές Α , Β , Γ στο τοπικό δίκτυο (πίσω απο αυτην την συσκευή) με αντίστοιχες IP διευθύνσεις 192.168.32.10 , 192.168.32.12 . 192.168.32.15 Καταρχήν πισω απο την συσκευή το τοπικό δίκτυο μπορει να χρησιμοποιήσει οποιονδήποτε χώρο διευθύνσεων οπως θα έχετε καταλάβει ως τωρα αλλα και απο το παραδειγμά μας.

ΕΡΩΤΗΣΗ 1 => Με ποιά IP διεύθυνση θα συνδεθεί στο Ίντερνετ ο υπολογιστής Α? Με ποιά ο Β και με ποιά ο Γ?

Αυτό εξαρτάται απο το NAT table της συσκευής. :)

Εικόνα

To NAT στην ουσία αντιστοιχεί IP διευθύνσεις απο αυτο το ιδιωτικό εύρος.
Ειδικά στο SNAT (Static NAT) ο ΗΥ με IP 192.168.32.10 πάντα θα μεταφράζεται σε 213.18.123.110
O πίνακας του ΝΑΤ αποτελείται απο 2 καταχωρήσεις. Μετάφραση εσωτερικών και εξωτερικών διευθύνσεων επομενως γινεται αντιληπτό πως η κάθε καταχώρηση έχει 2 μέρη την τοπική και την παγκόσμια διεύθυνση.

ΜΙα συσκευή NAT έχει αρκετά πλεονεκτήματα ενα απο τα οποία έχει να κάνει με την ασφάλεια επειδή ουσιαστικά μπορεί να εμποδίσει μια εξωτερική επίθεση να μάθει πληροφορίες για το εσωτερικό δίκτυο. Μια πρώτη γραμμή άμυνας λοιπον και περιμετρικά ενος δικτύου είναι αυτο ακριβώς.
Στο έξω ίντερνετ η συσκευή NAT δείχνει σαν κάθε υπολογιστής συνδεδεμένος στο ίντερνετ. Επομένως η συσκευή ΝΑΤ ειναι ουσιαστικά ενας μεσάζων μεταξύ του Ιντερνετ και του τοπικού δικτύου. Πράγμα που περιορίζει τις διευθύνσεις που απαιτούνται απο μια εταιρεία , μονο η ίδια η συσκευή ΝΑΤ όπως είδαμε και παραπάνω μπορει να είναι προσπελάσιμη απο το Ίντερνετ. Η διαμόρφωση λοιπον λιγότερων διευθύνσεων μαζι με την ασφάλεια που προσφέρουν οι συσκευές ΝΑΤ τις έχουν κανει αρκετα δημοφιλείς σε τοπικά και εταιρικά δίκτυα.

Ώστοσο η ασφάλεια δεν υπάρχει παντοτε 100% και αυτος είναι ενας βασικός κανόνας ασφάλειας ακομη και οι πολυ ασφαλείς συσκευές ΝΑΤ μπορούν να παραβιαστούν.


3

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

Spoiler: show
Κώδικας: Επιλογή όλων
arp / ifconfig


οι περισσότεροι που είστε αρκετό καιρό χρήστες κάποιας διανομής linux θα τις γνωρίζετε αρκετά καλα. Στο σημείο αυτο και μονο!!! Για όσους έχουν τα Windows σαν dual boot να πω πως η αντίστοιχη εντολή της ifconfig στα παράθυρα ειναι η /ipconfig.

Για την εντολή arp μπορεί κάποιος να ανατρέξει και στο manual της

Κώδικας: Επιλογή όλων
http://www.kernel.org/doc/man-pages/online/pages/man7/arp.7.html


Ωστόσο αν θέλουμε να δούμε τι flags μπορεί να πάρει θα δώσουμε απο το τερματικό την παρακάτω εντολή

Spoiler: show
Κώδικας: Επιλογή όλων
kostas@kostas-SSL:~$ arp --help
Usage:
  arp [-vn]  [<HW>] [-i <if>] [-a] [<hostname>]             <-Display ARP cache
  arp [-v]          [-i <if>] -d  <host> [pub]               <-Delete ARP entry
  arp [-vnD] [<HW>] [-i <if>] -f  [<filename>]            <-Add entry from file
  arp [-v]   [<HW>] [-i <if>] -s  <host> <hwaddr> [temp]            <-Add entry
  arp [-v]   [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub          <-''-
            -a                 display (all) hosts in alternative (BSD) style
        -s, --set                set a new ARP entry

....
[spoiler]

Ειναι το output της εντολής που έδωσα. (Ένα μέρος του για την ακρίβεια) Το οποίο μας δείχνει μερικά flags που μπορούμε να δώσουμε
σαν ορίσματα στην εντολή αναλογα με το τι θέλουμε να κάνουμε κάθε φορα.

Άν δώσουμε την εντολή λοιπόν με το όρισμα --all
τοτε θα μας δείξει το ARP cache για το οποίo λόγος έχει γίνει στην 2.2 παράγραφο . Πάμε λοιπον να δώσω αυτη την εντολή απο το δικο μου
τερματικό :

[spoiler]
Κώδικας: Επιλογή όλων
  kostas@kostas-SSL:~$ arp --all
oxygen.lan (192.168.1.254) at 00:1d:1e:01:43:4d [ether] on eth0


Θα μου δείξει λοιπον οπως έχουμε εξηγήσει και πιο πάνω οτι αυτη τη στιγμή στο ARP cache του υπολογιστή μου βρίσκεται το entry IP/MAC
του ρουτερ μου (μονο το ρουτερ εχω συνδεδεμένο με τον υπολογιστή μου στο τοπικό μου δίκτυο και κανεναν αλλον υπολογιστή) , επομένως υπάρχει αυτη η εγγραφή. Παρόμοια μπορώ να δώσω την arp και με όρισμα --set

Spoiler: show
Κώδικας: Επιλογή όλων

kostas@kostas-SSL:~$ arp --set
arp: need host name
kostas@kostas-SSL:~$



Εδώ βέβαια έπρεπε να δώσω και ενα hostname. Eδω ουσιαστικά θα πρόσθετα ενα μόνιμο στοιχείο στο ARP cache με μη αυτόματο τρόπο.Το οποίο θα παρέμενε μόνιμα σε κάθε επανεκκίνηση του υπολογιστή μου.


Πάμε τώρα να δούμε και μια άλλη εντολή η οποία χρησιμοποιείται και αυτη για να μας δώσει πληροφορίες για το τοπικό μας δίκτυο καθως και για την διαμόρφωση του διαδικτυακού μας interface. Η εντολή αυτη οπως πολλοι θα καταλάβατε ειναι η ifconfig

ΑΠο το τερματικό για βοήθεια μπορώ να δώσω τις :

Spoiler: show
Κώδικας: Επιλογή όλων

kostas@kostas-SSL:~$ man ifconfig
kostas@kostas-SSL:~$
kostas@kostas-SSL:~$ ifconfig --help


οπως δηλαδη και πριν μια για το manual που παρέχει γενικότερη τεκμηρίωση και μια για τα flags συγκεκριμενα που χρησιμοποιεί η εντολή. Αν δωσω την εντολή μονη της (χωρίς ορίσματα)

Spoiler: show
Κώδικας: Επιλογή όλων
kostas@kostas-SSL:~$ ifconfig
eth0      1->Link encap:Ethernet  2->HWaddr 1c:6f:63:4b:b1:10 
          3->inet addr:192.168.1.90  4->Bcast:192.168.1.255  5->Mask:255.255.255.0
          inet6 addr: fe80::1e6f:65ff:fe4b:b110/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  6->MTU:1500  Metric:1
          RX packets:18068 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16308 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:18816320 (18.8 MB)  TX bytes:4125726 (4.1 MB)
          Interrupt:42 Base address:0xe000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:720 (720.0 B)  TX bytes:720 (720.0 B)


Στο 1-> Μου δείχνει οτι ουσιαστικα το δίκτυο μου ειναι ενα Ethernet δίκτυο
στο 2-> Έχει την MAC διεύθυνση του υπολογιστη μου του προσαρμογέα του δικτύου μου
στο 3-> Έχει την IP διεύθυνση του προσαρμογέα στο 4-> την διεύθυνση broadcast (πακέτο τέτοιας διεύθυνσης μέσα σε ένα δίκτυο οπως έχουμε πει και οταν έλεγα για το ARP μεταδίδεται και προορίζεται για όλους τους υπολογιστές μεσα στο τοπικό)
και τελος στο 5-> είναι η προκαθορισμένη μάσκα για δίκτυα κλάσης C. Επίσης στο 2ο interface (το κυρίως ειναι το eth0) μου εχει και το lo (το οποίο ειναι για εσωτερικούς ελέγχους του TCP/IP στο συστημά μας και για το οποίο θα μιλήσουμε σε επόμενη παρουσίαση. Και τέλος το 6-> MTU στο οποίο θα παραμείνω λιγο για να δώσω μια συνοπτική εξήγηση.

MTU

Καταρχήν στα δίκτυα είναι πολυ σημαντικό το μέγεθος του πλαισίου ή του πακέτου γενικότερα για την μετάδοση των δεδομένων σε οποιοδήποτε δίκτυο.
Για αυτο τον λογο λοιπον υπάρχουν ορισμένοι συγκεκριμένοι κανόνες που "μανατζάρουν" αυτο το μέγεθος των data packets. Αυτο γίνεται κυρίως μέσω μια τεχνικής στα δίκτυα των τηλεπικοινωνιών την οποία ονομάζουμε κατακερματισμό το ισοδυναμο αγγλικο terminology για αυτον τον ορο ειναι το fragmentation . Μεσω λοιπον του fragmentation μπορεις να μανατζάρεις και να ελένξεις το μέγεθος ενος πακέτου γλιτώνοντας έτσι απο συμφόρηση μέσα στο δίκτυο αλλα και καθυστερήσεις στην μετάδοση 2 σοβαρούς παράγοντες οι οποίοι επηρεάζουν το QoS (Quality of service) την ποιοτητα δηλαδη της υπηρεσίας που υπόσχεται το εκάστοτε δίκτυο στον πελάτη του. Το πως θα γίνει τωρα αυτη η διαδικασία (κατακερματισμός) φαίνεται στο IP datagram , το IP datagram ειναι απλα το πακέτο του επιπέδου δικτύου. Το ίδιο πακέτο στο επιπεδο που βρισκόμαστε ("ξαλαφρωμενο" βέβαια απο το IP Header) έχουμε δει οτι λέγεται frame δηλαδη πλαίσιο. Στο IP datagram λοιπον υπάρχουν πεδία που υποδεικνύουν δυνατότητες σχετικές με τον κατακερματισμό αυτες τις δυνατότητες θα τις δούμε σε επόμενη παρουσίαση.

Τώρα ! Το MTU σημαίνει μέγιστη μονάδα μετάδοσης => Maximum Trasfer (ή και Transmission) μπορειτε να το δείτε Unit -οτι ακριβως λεει και το ονομα του δηλαδη- τυπικό παράδειγμα σε μένα είναι το 1500 bytes MTU κατι που σημαίνει πως δεδομένα με μήκος μεγαλύτερο απο 1500 κατατέμνονται σε μικρότερο πακέτα τα οποία στέλνονται διαδοχικά (λογω της διαδικασίας του fragmentation) στην γραμμή επικοινωνίας.


Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Μη εμπορική χρήση-Παρόμοια διανομή 3.0 Ελλάδα
Τελευταία επεξεργασία από Star_Light και 27 Σεπ 2011, 17:34, έχει επεξεργασθεί 27 φορά/ες συνολικά
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

Δημοσίευσηαπό Star_Light » 10 Αύγ 2011, 01:27

@stamatiou επειδη καπου ειδα οτι εχεις αποριες με τα bitwise operator
και γενικα με τους χειρισμους των μπιτ μπορεις να δεις και εδω

http://www.cs.uoi.gr/~lagaris/ITC/Intro ... sld001.htm

γενικα ψαξε και λιγο μονος σου τις μετατροπες για να εξοικειωθεις περισσοτερο και να καταλαβεις καλυτερα και αυτα που λεμε εδω.
Kαι αν εχεις αποριες ενω διαβαζεις ταυτοχρονα πες τις και εδω να τις κοιταξουμε.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: ΜΑΘΗΜΑ Νο2 ΕΠΙΠΕΔΟ ΠΡΟΣΒΑΣΗΣ ΔΙΚΤΥΟΥ

Δημοσίευσηαπό Star_Light » 10 Αύγ 2011, 14:37

EDIT => 2.3 , 2.5 , 3

Mενει μονο το 2.4
Τελευταία επεξεργασία από Star_Light και 10 Αύγ 2011, 22:26, έχει επεξεργασθεί 1 φορά/ες συνολικά
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Επόμενο

Επιστροφή στο Μαθήματα Δικτύων