TCP/IP Basics

Από Κοινότητα Ελεύθερου Λογισμικού ΕΜΠ
Μετάβαση σε: πλοήγηση, αναζήτηση

Το παρόν άρθρο είναι το πρώτο από μια σειρά άρθρων για το TCP/IP.


Μερικά βασικά στοιχεία της σουίτας TCP/IP και άλλων πρωτοκόλλων που είναι απαραίτητα για την ενασχόληση με τα δίκτυα υπολογιστών. Περιγράφονται οι έννοιες των MAC Address, Transmission Control Protocol (TCP), Internet Protocol (IP), DNS, Routing, DHCP και ICMP.


Για την πληρέστερη ενημέρωσή του ο αναγνώστης παραπέμπεται στο πρότυπο OSI και την αντιστοιχία των layers που το απαρτίζουν με αυτά της σουίτας TCP/IP. Εδώ η παρουσίαση περιορίζεται στα βασικά και ως εκ τούτου είναι αρκετά επιφανειακή, ώστε να βοηθήσει τον αναγνώστη να αποκτήσει εύκολα και γρήγορα μία σφαιρική εικόνα των σύγχρονων δικτύων.

Σημείωση 2ης, αναθεωρημένης, έκδοσης: Η έκδοση του κειμένου αυτού αναθεωρήθηκε το 2011 ώστε να διορθωθούν ασάφειες, μικρά λάθη και να καλύψει σε λίγο μεγαλύτερο βάθος το πρωτόκολλο IPv4.

Στο δεύτερο μέρος θα ασχοληθούμε με ένα κάπως μικρότερο σε έκταση κομμάτι, αλλά ιδιαίτερα σημαντικό. Το subnetting. TCP/IP Basics (Part II).

H σουίτα πρωτοκόλλου TCP/IP

Το TCP/IP είναι ένα σύνολο πρωτοκόλλων που ονομάζουμε σουίτα και αφορούν στη δικτύωση των υπολογιστών. Δεν πρόκειται δηλαδή για ένα πρωτόκολλο, αλλά για πολλά, τα οποία όταν συνδυαστούν αποτελούν την πεμπτουσία των σύγχρονων δικτύων υπολογιστών. Τα βασικότερα είναι Transmission Control Protocol (TCP) και το Internet Protocol (IP). Το πρώτο περιγράφει το πώς γίνεται η μετάδοση της πληροφορίας, ενώ το δεύτερο το τρόπο με τον οποίο γίνεται η διευθυνσιοδότηση των συσκευών (hosts) σε ένα δίκτυο. Όπως είπαμε παραπάνω, υπάρχουν και άλλα πρωτόκολλα που απαρτίζουν τη σουίτα TCP/IP, αλλά αυτά τα δύο είναι με διαφορά τα σημαντικότερα. Για αυτόν το λόγο το όνομα της σουίτας προκύπτει από αυτά τα δύο πρωτόκολλα.

MAC Address

Η MAC Address ή αλλιώς Hardware Address είναι ένας 48bit αριθμός ο οποίος για κάθε κάρτα δικτύου είναι μοναδικός. Είναι κάτι σαν το serial number της κάρτας.

Οι αριθμοί αυτοί μπορεί να είναι μοναδικοί σε ολόκληρο τον κόσμο και ορίζονται από τον κάθε κατασκευαστή καρτών και συσκευών δικτύων. Σε αυτή την περίπτωση, η MAC Address αποθηκεύεται στην συσκευή από τον ίδιο τον κατασκευαστή της και δεν μπορεί να αλλάξει ποτέ. Εναλλακτικά, η MAC Address μπορεί να οριστεί από τον χρήστη, αλλά τότε θα πρέπει με δική του μέριμνα ο αριθμός αυτός να είναι μοναδικός στο δίκτυο που θα χρησιμοποιηθεί η συσκευή.

Σημείωση: Για να δει κανείς την MAC Address της κάρτας δικτύου του στο linux, εκτελεί την εντολή ip a, συντομογραφία της εντολής ip address show. Συνήθως η κάρτα δικτύου ονομάζεται eth0. Στην από κάτω γραμμή του eth0, γράφει link/ether και δίπλα έχει 12 ψηφία/αριθμούς χωριζόμενα με άνω και κάτω τελεία. Αυτή είναι η MAC Address της κάρτας. Σε Windows, από Command Prompt πληκτρολογούμε ipconfig /all και με αντίστοιχο τρόπο βλέπουμε το νούμερο που είναι δίπλα στην ένδειξη Physical address.

Ο ρόλος της MAC address είναι η αναγνώριση του κάθε υπολογιστή με μονοσήμαντο τρόπο σε ένα δίκτυο σε φυσικό επίπεδο (physical layer - TCP/IP Layer 2). Η πληροφορία όταν μεταφέρεται μέσω ενός δικτύου, μία διαδικασία που ονομάζεται encapsulation (ενθυλάκωση) αναλαμβάνει να ενσωματώσει κάθε ένα από τα κομμάτια της σε ένα frame. Το κάθε frame περιέχει, μεταξύ άλλων πληροφοριών, τη MAC address του αποστολέα και αυτή του παραλήπτη. Με αυτό τον τρόπο, Layer-2 συσκευές (πχ switches) μπορούν να στέλνουν την πληροφορία στον σωστό υπολογιστή του δικτύου.

Η MAC address χρησιμοποιείται από το Layer-2 πρωτόκολλο Ethernet, ενώ η ενθυλάκωση σε αυτό το επίπεδο δημιουργεί frames (πλαίσια). Ενθυλάκωση λαμβάνει χώρα και σε άλλα επίπεδα, όπως αυτό του network και του transfer. Λεπτομέρειες μπορεί κανείς να αναζητήσει στο net σχετικά με τα layers της σουίτας TCP/IP.

Internet Protocol και διευθυνσιοδότηση

Η MAC Address, όπως είπαμε παραπάνω, μας δίνει την δυνατότητα να ορίσουμε μονοσήμαντα έναν υπολογιστή ή μία συσκευή σε ένα δίκτυο. Για να υπάρξει επικοινωνία μεταξύ υπολογιστών σε διαφορετικά δίκτυα χρησιμοποιούμε ένα ακόμα layer, το network layer. Όπως η MAC address ορίζει μονοσήμαντα έναν υπολογιστή σε ένα δίκτυο σε Layer-2 (πχ Ethernet) έτσι η IP διεύθυνση ορίζει μονοσήμαντα έναν υπολογιστή σε ένα δίκτυο σε Layer-3 (ή network layer). Το κατεξοχήν πρωτόκολλο του Layer-3 είναι το Internet Protocol.

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

Η έκδοση του IP που χρησιμοποιείται ευρύτατα αυτή τη στιγμή είναι η 4. Εδώ και αρκετά χρόνια (πριν το 2000) γίνεται προσπάθεια να διευρυνθεί η χρήση της 6ης έκδοσης, αλλά μέχρι σήμερα η υιοθέτησή της είναι ιδιαίτερα περιορισμένη. Έτσι, όταν αναφερόμαστε στον όρο IP, εννοούμε IPv4, ενώ αν είναι να αναφερθούμε στην νεότερη έκδοση λέμε ρητά IPv6. Σε αυτό το άρθρο θα ασχοληθούμε κυρίως με το IPv4.

Το Internet Protocol λοιπόν ορίζει ότι μία συσκευή σε ένα δίκτυο έχει μία διεύθυνση του τύπου w.z.y.x . Αυτή η διεύθυνση ορίζεται από τον χρήστη και μπορεί να αλλάξει κατά βούληση. Όμως, όπως και με την MAC Address, η κάθε διεύθυνση IP οφείλει να είναι μοναδική σε κάθε δίκτυο.

Τα w, z, y, x είναι αριθμοί των 8 bit, δηλαδή μπορούν να πάρουν τιμές από 0 έως 255 ή, μιλώντας σε bits, από 00000000 έως 11111111. Μία IP διεύθυνση χωρίζεται σε δύο τμήματα:

  • Τα πρώτα n bits αποτελούν τα network bits
  • Τα υπόλοιπα 32-n bits αποτελούν τα host bits

Το πόσα bits ανήκουν στα network bits και πόσα στα host bits, δηλαδή επί της ουσίας τον αριθμό n, καθορίζονται από τη μάσκα υποδικτύου (subnet mask). Η subnet mask έχει ίδιο μήκος (32 bits) και ίδια μορφή με την IP διεύθυνση. Τα πρώτα n bits έχουν όλα τιμή 1, ενώ τα υπόλοιπα τιμή 0. Με αυτό τον τρόπο καθορίζεται ο αριθμός n και συνεπώς το σημείο στο οποίο σταματούν τα network bits της IP διεύθυνσης και αρχίζουν τα host bits.

Όταν όλα τα host bits μιας IP διεύθυνσης είναι ίσα με 0, τότε αυτή η διεύθυνση είναι μία διεύθυνση δικτύου. Αν όλα τα host bits είναι ίσα με 1, τότε η διεύθυνση λέγεται broadcast address

Κάθε φορά που αναφέρουμε μία διεύθυνση IP, θα πρέπει να αναφέρουμε και τη subnet mask, η οποία ακολουθεί την διεύθυνση μετά από το σύμβολο / και αναγράφεται είτε σε πλήρη μορφή είτε απλά με τον αριθμό n. Ακολουθούν μερικά παραδείγματα για την κατανόηση των παραπάνω.

Παράδειγμα 1: 192.168.0.1/24

Η IP διεύθυνση σε δεκαδική μορφή είναι η 192.168.0.1 .

Σε μορφή bits η IP διεύθυνση είναι η 11000000.10101000.00000000.00000001 . (αν δεν είστε εξοικειωμένοι με το δυαδικό σύστημα ήρθε η ώρα να εξοικειωθείτε!!!)

Σε μορφή bits η μάσκα υποδικτύου είναι η 11111111.11111111.11111111.00000000 (παρατηρούμε ότι έχουμε n=24 bits ίσα με 1)

Εφαρμόζοντας τη μάσκα υποδικτύου στην IP διεύθυνση προκύπτει ότι τα 24 πρώτα bits, δηλαδή το 11000000.10101000.00000000 , είναι τα network bits ενώ τα υπόλοιπα 8, .00000001 , είναι τα host bits.

Θέτοντας ίσα με 0 όλα τα host bits προκύπτει η IP διεύθυνση του δικτύου στο οποίο ανήκει η παραπάνω διεύθυνση: 11000000.10101000.00000000.00000000/11111111.11111111.11111111.00000000 ή πιο απλά 192.168.0.0/255.255.255.0 ή ακόμα πιο απλά 192.168.0.0/24.

Θέτοντας ίσα με 1 όλα τα host bits προκύπτει η broadcast address του δικτύου: 11000000.10101000.00000000.11111111/11111111.11111111.11111111.00000000 ή πιο απλά 192.168.0.255/255.255.255.0 ή ακόμα πιο απλά 192.168.0.255/24.

Παρατηρούμε, ότι λόγω της 24άρας μάσκας υποδικτύου υπάρχουν συνολικά 2^8 - 2 = 254 διαφορετικές διευθύνσεις για τους hosts, από 192.168.0.1/24 έως 192.168.0.254/24 .

Παράδειγμα 2: 85.21.1.17/7

Η IP διεύθυνση σε δεκαδική μορφή είναι η 85.21.1.17 .

Σε μορφή bits η IP διεύθυνση είναι η 01010101.00010101.00000001.00010001 .

Σε μορφή bits η μάσκα υποδικτύου είναι η 11111110.00000000.00000000.00000000 (παρατηρούμε ότι έχουμε n=7 bits ίσα με 1)

Εφαρμόζοντας τη μάσκα υποδικτύου στην IP διεύθυνση προκύπτει ότι τα 7 πρώτα bits, δηλαδή το 0101010 , είναι τα network bits ενώ τα υπόλοιπα 25, 1.00010101.00000001.00010001 , είναι τα host bits.

Θέτοντας ίσα με 0 όλα τα host bits προκύπτει η IP διεύθυνση του δικτύου στο οποίο ανήκει η παραπάνω διεύθυνση: 01010100.00000000.00000000.00000000/11111110.00000000.00000000.00000000 ή πιο απλά 84.0.0.0/254.0.0.0 ή ακόμα πιο απλά 84.0.0.0/7.

Θέτοντας ίσα με 1 όλα τα host bits προκύπτει η broadcast address του δικτύου: 01010101.11111111.11111111.11111111/11111110.00000000.00000000.00000000 ή πιο απλά 85.255.255.255/254.0.0.0 ή ακόμα πιο απλά 85.255.255.255/7.

Παρατηρούμε, ότι λόγω της 7άρας μάσκας υποδικτύου υπάρχουν συνολικά 2^25 - 2 = 33,554,430 διαφορετικές διευθύνσεις για τους hosts, από 84.0.0.1/7 έως 85.255.255.254/7 .


Παράδειγμα 3: 85.21.1.17/30

Η IP διεύθυνση σε δεκαδική μορφή είναι η 85.21.1.17 .

Σε μορφή bits η IP διεύθυνση είναι η 01010101.00010101.00000001.00010001 .

Σε μορφή bits η μάσκα υποδικτύου είναι η 11111111.11111111.11111111.11111100 .

Εφαρμόζοντας τη μάσκα υποδικτύου στην IP διεύθυνση προκύπτει ότι τα 30 πρώτα bits, δηλαδή το 01010101.00010101.00000001.000100 , είναι τα network bits ενώ τα υπόλοιπα 2, 01 , είναι τα host bits.

Θέτοντας ίσα με 0 όλα τα host bits προκύπτει η IP διεύθυνση του δικτύου στο οποίο ανήκει η παραπάνω διεύθυνση: 01010101.00010101.00000001.00010000/11111111.11111111.11111111.11111100 ή πιο απλά 85.21.1.16/255.255.255.252 ή ακόμα πιο απλά 85.21.1.16/30.

Θέτοντας ίσα με 1 όλα τα host bits προκύπτει η broadcast address του δικτύου: 01010101.00010101.00000001.00010011/11111111.11111111.11111111.11111100 ή πιο απλά 85.21.1.19/255.255.255.252 ή ακόμα πιο απλά 85.21.1.19/30.

Παρατηρούμε, ότι λόγω της 30άρας μάσκας υποδικτύου υπάρχουν συνολικά 2^2 - 2 = 2 μόλις διαφορετικές διευθύνσεις για τους hosts, η 85.21.1.17/30 και η 85.21.1.18/30!!

Επίσης, παρατηρούμε ότι παρότι η IP διεύθυνση είναι ίδια με το παράδειγμα 2, η διαφορετική subnet mask αλλάζει εντελώς τα δεδομένα (διεύθυνση δικτύου, broadcast address, πλήθος hosts)!

Η παραπάνω προσέγγιση με τη χρήση της μάσκας υποδικτύου είναι η σύγχρονη και ονομάζεται classless subnetting. Παλαιότερα, δεν υπήρχε η χρήση subnet masks παρά απλές κλάσεις δικτύων. Όταν η μάσκα ήταν 24άρα είχαμε κλάση C, όταν η μάσκα ήταν 16άρα είχαμε κλάση B και όταν η μάσκα ήταν 8άρα είχαμε κλάση A. Ενδιάμεσες μάσκες δεν υπήρχαν. Αν και θα σκεφτείτε ότι τα πράγματα ήταν λιγότερο μπερδεμένα τότε (είναι λίγο πονοκέφαλος η subnet mask και το δυαδικό σύστημα) η αλήθεια είναι ότι το classfull addressing αποτελούσε μεγάλη σπατάλη διευθύνσεων. Πράγματι, ένα σχετικά μικρό δίκτυο 300 Η/Υ (σκεφτείτε ότι το ΕΜΠ έχει χιλιάδες) δεν θα μπορούσε να εξυπηρετηθεί με ένα Class C δίκτυο (254 διευθύνσεις) και θα χρειαζόταν ένα Class B δίκτυο (65,534 διευθύνσεις)!! Δηλαδή, πάνω από 65,000 διευθύνσεις πάνε χαμένες!! Στην περίπτωση που κάποιος χρειαζόταν 70,000 διευθύνσεις θα έπρεπε να πάρει ένα Class A δίκτυο, κάνοντας σπατάλη πάνω από 16,700,000 διευθύνσεις!!! Οι όροι Class A, Class B και Class C διατηρούνται μέχρι σήμερα για να περιγράψουν τα αντίστοιχα δίκτυα, αλλά στο routing χρησιμοποιείται αποκλειστικά το classless subnetting.

Τέλος, υπάρχουν κάποιες δεσμευμένες διευθύνσεις για τις ανάγκες των τοπικών δικτύων, του multicasting, κλπ. Γενικά, οι διευθύνσεις που δεν μπορούν να δρομολογηθούν στο Internet και έχουν αποκλειστικά τοπική σημασία είναι οι εξής:

  • 10.0.0.0/8 έως 10.255.255.255/8
  • 172.16.0.0/16 έως 172.31.255.255/16
  • 192.168.0.0/24 έως 192.168.255.255/24

Επιπλέον:

  • 127.0.0.0/32 έως 127.255.255.255/32 (loopback address που θα δούμε αμέσως παρακάτω)
  • 0.0.0.0/0 reserved wildcard address
  • 255.255.255.255 reserved global broadcast address

Σημείωση 1: Για περισσότερες πληροφορίες πάνω στο subnetting ο αναγνώστης παραπέμπεται στο άρθρο μας με τίτλο TCP/IP Basics (Part II).

Σημείωση 2: Για να δει κανείς την IP Address στο Linux χρησιμοποιεί ως root την εντολή ifconfig. Στην δεύτερη γραμμή δίπλα από κάθε network interface (πχ eth0) η IP Address αναφέρεται ως inet addr. Στα Windows, χρησιμοποιούμε την εντολή ipconfig από Command Prompt. Οι ίδιες εντολές χρησιμοποιούνται και για τον ορισμό διαφορετικής διεύθυνσης από αυτή που έχει ήδη οριστεί. Το πώς γίνεται αυτό, σας το αφήνω να το βρείτε με λίγο ψάξιμο στο net σαν άσκηση! ;) Προσοχή όμως, γιατί αν βάλετε μία μη έγκυρη διεύθυνση για το δίκτυό σας, μπορεί να χάσετε την πρόσβαση στις υπόλοιπες συσκευές του δικτύου σας ή και να χάσετε προσωρινά την πρόσβαση στο Internet!

Το loopback interface

Κάθε υπολογιστής, ανεξαρτήτως της διεύθυνσης που έχει η κάρτα δικτύου του, έχει μία ακόμα διεύθυνση. Αυτή είναι η 127.0.0.1 και είναι ίδια για όλους τους υπολογιστές. Αυτή η διεύθυνση αντιστοιχεί σε μία "εικονική" κάρτα δικτύου που ονομάζεται loopback. Θα καταλάβετε αμέσως την χρησιμότητα του loopback και της διεύθυνσης 127.0.0.1 αν σκεφτείτε το εξής παράδειγμα. Υπάρχει μία λέξη στο ελληνικό λεξικό και είναι η "εγώ". Όταν πω την λέξη "εγώ" εννοώ τον εαυτό μου. Αν όμως την πεις εσύ, δεν εννοείς εμένα, αλλά τον εαυτό σου. Όποιος λέει "εγώ" εννοεί τον εαυτό του. Όλοι λοιπόν λεγόμαστε "εγώ" αλλά όποιος την λέει εννοεί κάθε φορά ένα διαφορετικό άτομο από ότι όταν την λέμε εμείς. Τον εαυτό του.

Έτσι λοιπόν, όταν ένας υπολογιστής θέλει να αναφερθεί στον εαυτό του, απευθύνεται στην διεύθυνση 127.0.0.1 . Βέβαια, μπορεί να αναφερθεί στην εκάστοτε IP Address που του έχει δοθεί, αλλά τότε θα ήταν σαν αντί να λέγαμε την λέξη "εγώ" να λέγαμε το ονοματεπώνυμό μας. Το "εγώ" όμως είναι πάντα η ίδια λέξη για όλους, είναι μικρή και εύχρηστη. Το ίδιο ισχύει και για το 127.0.0.1 και το loopback interface.

Είναι προφανές ότι η διεύθυνση 127.0.0.1 δεν μπορεί να οριστεί ως IP Address μιας κάρτας δικτύου.

Σημείωση: Αντί της 127.0.0.1 μπορεί να χρησιμοποιηθεί οποιαδήποτε διεύθυνση στο εύρος 127.0.0.0/32 έως 127.255.255.255/32 . Επιβεβαιώστε το με ping σε μία τυχαία διεύθυνση που ανήκει στο παραπάνω range.

Routing και Default gateway

Το routing ή ελληνιστί η δρομολόγηση, είναι η διαδικασία κατά την οποία ένας υπολογιστής ενός δικτύου Α επικοινωνεί με έναν υπολογιστή ενός άλλου δικτύου Β. Σε αυτό το σημείο πρέπει να πούμε ότι κάθε υπολογιστής από μόνος του είναι σε θέση να επικοινωνεί μέσω της διεύθυνσης IP με οποιονδήποτε υπολογιστή υπάρχει στο ίδιο δίκτυο με αυτόν. Για να επικοινωνήσει με έναν υπολογιστή σε ένα άλλο δίκτυο, απαιτείται η ύπαρξη ενός άλλου υπολογιστή που θα παίζει τον ρόλο του ενδιάμεσου μεταξύ των δύο δικτύων. Αυτό ο υπολογιστής, που στο εξής θα τον ονομάζουμε router, διαθέτει δύο κάρτες δικτύου. Μία για το δίκτυο Α και μία για το Β. Κάθε κάρτα έχει μία διεύθυνση IP που είναι έγκυρη στο δίκτυο στο οποίο ανήκει.

Έστω λοιπόν ότι ο router έχει την μία κάρτα (eth0) στο δίκτυο Α με IP Address 192.168.0.1 και subnet mask 255.255.255.0 (δηλαδή διεύθυνση δικτύου 192.168.0.0/24) και την άλλη κάρτα (eth1) στο δίκτυο Β με IP Address 10.0.0.1 και subnet mask 255.255.255.0 (δηλαδή διεύθυνση δικτύου 10.0.0.0/24). Ο router λοιπόν γνωρίζει τόσο τους υπολογιστές του δικτύου Α όσο και του Β. Δηλαδή μπορεί να επικοινωνήσει με όλους τους υπολογιστές των δικτύων Α και Β.

Έστω τώρα ένας υπολογιστής του δικτύου Α με διεύθυνση 192.168.0.2/24 θέλει να επικοινωνήσει με τον υπολογιστή του δικτύου Β με διεύθυνση 10.0.0.15/24 . Δεν ξέρει όμως πώς θα επικοινωνήσει μαζί του, αφού ανήκουν σε διαφορετικά δίκτυα. Υπάρχει λοιπόν μία παράμετρος του IP που ονομάζεται Default gateway. Αυτή δεν είναι παρά μία διεύθυνση IP που αντιστοιχεί στον υπολογιστή που παίζει τον ρόλο του ενδιάμεσου των δύο δικτύων, δηλαδή το router.

Ο υπολογιστής λοιπόν του δικτύου Α με IP διεύθυνση 192.168.0.2 όταν είναι να επικοινωνήσει με οποιαδήποτε διεύθυνση που δεν ανήκει στο δικό του δίκτυο, απευθύνεται στον υπολογιστή που έχει την διεύθυνση που έχει οριστεί ως Default gateway. Στην περίπτωσή μας, αυτός είναι ο router και έχει διεύθυνση 192.168.0.1 από την πλευρά του δικτύου Α. Ο υπολογιστής λοιπόν στέλνει το μήνυμά του στον router με διεύθυνση προορισμού 10.0.0.15 . Ο router θα αναλάβει να μεταφέρει το μήνυμα από το δίκτυο Α στο δίκτυο Β και συγκεκριμένα στον παραλήπτη με διεύθυνση 10.0.0.15 . Έτσι, ο router γεφυρώνει δύο ή και περισσότερα δίκτυα μεταξύ τους.

Για την ακρίβεια, ο router ενεργοποιεί τον μηχανισμό του routing όταν τα network bit της διεύθυνσης αποστολέα διαφέρουν έστω και κατά ένα με αυτά των network bits της διεύθυνσης προορισμού. Οι "κομπιουτεράδες" ονομάζουμε αυτή τη σύγκριση πράξη XOR η οποία πρέπει να φέρνει αποτέλεσμα 0 ώστε να ενεργοποιηθεί το routing.

Αν δεν έχουν γίνει σωστές ρυθμίσεις στον υπολογιστή μας τότε ο router δεν θα είναι σε θέση να μας βοηθήσει. Πχ αν ο υπολογιστής που στέλνει το μήνυμα έχει ρυθμιστεί έτσι ώστε ως Default gateway να έχει την τιμή 192.168.0.6 τότε ο router δεν θα λάμβανε ποτέ το αίτημα του υπολογιστή για προώθηση στον παραλήπτη του άλλου δικτύου.

Επίσης, αν στο παραπάνω παράδειγμα ο υπολογιστής του δικτύου Α είχε ζητήσει την διεύθυνση 212.205.45.70 τότε τι θα συνέβαινε; Ο router θα λάμβανε το αίτημα του υπολογιστή, θα κοιτούσε την διεύθυνση του παραλήπτη και τότε θα διαπίστωνε ότι πρόκειται για μία διεύθυνση η οποία του είναι παντελώς άγνωστη. Τότε ο router θα επέστρεφε στον υπολογιστή ένα μήνυμα σφάλματος που θα έλεγε ότι ο παραλήπτης δεν μπορεί να βρεθεί.

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

Σημείωση 1: Ο router δεν είναι κατ' ανάγκη ένας υπολογιστής με την μορφή ενός PC ή laptop, παρότι κάλλιστα θα μπορούσε ένα PC να παίξει τον ρόλο του router. Συνήθως στην αγορά χρησιμοποιούνται μικροί υπολογιστές, που χωρούν σε μικρές συσκευασίες τις οποίες ούτε πάει το μυαλό σου ότι πρόκειται για υπολογιστή. Τα γνωστά σε όλους μας DSL Routers είναι τέτοιοι υπολογιστές, οι οποίοι εκτός από ότι είναι δρομολογητές έχουν ενσωματωμένο DSL modem, switch 4 θυρών και access point. Φυσικά, υπάρχουν routers χωρίς ενσωματωμένα modem, άλλα με μικρότερες και άλλα με μεγαλύτερες δυνατότητες και μπορούν να συνδέσουν μεταξύ τους από 2 έως δεκάδες δίκτυα και να εξυπηρετήσουν εκατομμύρια αιτήσεις ανά δευτερόλεπτο. Τα DSL routers που χρησιμοποιούμε συνδέουν δύο δίκτυα μεταξύ τους. Το ένα είναι το τοπικό δίκτυο που βρίσκεται ο υπολογιστής μας (συνήθως είναι C-class και πολλές φορές απαρτίζεται από μονάχα έναν υπολογιστή, το PC μας) και το άλλο είναι το Internet, το οποίο από μόνο του είναι ένα γιγάντιο δίκτυο.

Σημείωση 2: Ένας router μπορεί να έχει και αυτός κάτι σαν default gateway. Δηλαδή, αν δεν ξέρει άμεσα μία διεύθυνση που του ζητείται, τότε προωθεί το μήνυμα σε έναν άλλο router. Αυτό κάνουν οι DSL routers που έχουμε σπίτια μας. Όλα τα αιτήματά μας προς το Internet τα προωθούν στον router του ISP μας. Κάθε αναπήδηση του μηνύματος από έναν router σε έναν άλλο ονομάζεται hop.

Σημείωση 3: Με τις εντολές route τόσο σε Linux όσο και Windows αντίστοιχα μπορούμε τόσο να δούμε, όσο και να ορίσουμε το Default gateway του υπολογιστή μας.

Σημείωση 4: Όπως ειπώθηκε πιο πάνω, τον ρόλο του router μπορεί να τον παίξει και ένα PC. Απαιτείται όμως κατάλληλο λογισμικό. Το linux έχει ενσωματωμένες πλήρεις τέτοιες δυνατότητες, καθώς επίσης και οι τελευταίες εκδόσεις των Windows με μειωμένες όμως λειτουργίες και δυνατότητες.

DHCP

IP διευθύνσεις, subnet masks, Default gateways... Πολλά ακούγονται και ένα λάθος να κάνεις το δίκτυο απλά δεν "παίζει". Δεν υπάρχει ευκολότερος τρόπος να ορίζονται όλα αυτά αυτόματα;

Φυσικά και υπάρχει και ονομάζεται DHCP, που σημαίνει Dynamic Host Configuration Protocol. Μέσω αυτού του πρωτοκόλλου, ένας υπολογιστής του δικτύου, που ονομάζεται DHCP server, μπορεί να δέχεται αιτήματα αυτόματης διευθυνσιοδότησης από τους υπόλοιπους υπολογιστές του δικτύου. Έτσι, όχι μόνο γλιτώνουμε κόπο, αλλά πετυχαίνουμε κεντρική διαχείριση των διευθύνσεων του δικτύου (πχ μπορούμε να κάνουμε reserve μία IP διεύθυνση για συγκεκριμένο μηχάνημα μέσω της MAC Address που είπαμε ότι είναι μοναδική), να αποφύγουμε τυχόν λάθη όπως η απόδοση της ίδιας IP διεύθυνσης σε δύο μηχανήματα, κλπ.

Για να καταλάβει κανείς το όφελος του DHCP, ας πάρουμε το παράδειγμα μιας εταιρίας με 40 υπολογιστές σε ένα δίκτυο όπου ο router απαιτείται να αλλάξει IP διεύθυνση. Χωρίς DHCP θα έπρεπε να πάμε σε 40 υπολογιστές έναν προς ένα για να ορίσουμε την διεύθυνση του νέου router ως Default gateway. Με το DHCP, αλλάζουμε την ρύθμιση στον server και την επόμενη μέρα που θα ανοίξουν οι χρήστες τους υπολογιστές, χωρίς καν να υποψιαστούν το παραμικρό, ο DHCP server θα τους αποδώσει ως Default gateway την διεύθυνση του νέου router.

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

ICMP protocol

Το πρωτόκολλο Internet Control Message Protocol (ICMP) είναι ένα ακόμα μικρό (αλλά πολύ χρήσιμο) κομμάτι της σουίτας TCP/IP, το οποίο επιτρέπει την μεταφορά μηνυμάτων, κυρίως σφάλματος, σε ένα δίκτυο. Πχ όταν ο router σε παραπάνω παράδειγμα δεν μπορούσε να βρει μία διεύθυνση, έδωσε την απάντηση host unreachable στον υπολογιστή που έκανε το αίτημα, μέσω του πρωτοκόλλου ICMP.

Το ICMP μας αφορά γιατί έχει, μεταξύ άλλων, δύο πολύ χρήσιμες εντολές. Όχι, δεν πρόκειται για τις ifconfig και ipconfig. Αρκετά με αυτές! Είναι οι εντολές ping (linux και Windows) και traceroute (στο linux) και tracert (στα Windows).

Με την ping, στέλνουμε μέσω του ICMP λίγα πακέτα δεδομένων σε έναν υπολογιστή τα οποία ζητάμε να μας επιστρέψει. Είναι όπως στο παιχνίδι ping-pong όπου πετάμε το μπαλάκι για να το πάρουμε πίσω από τον αντίπαλο. Με αυτή την εντολή ελέγχουμε δύο σημαντικούς παραμέτρους που αφορούν τόσο τον υπολογιστή που στέλνουμε τα πακέτα (συνηθίζεται να λέμε ότι "τον κάνουμε ping") όσο και το δίκτυό μας. Καταρχάς, αν ο υπολογιστής μας επιστρέψει τα δεδομένα, αυτό σημαίνει ότι η διεύθυνση που γράψαμε αντιστοιχεί όντως σε έναν υπολογιστή, αυτός ο υπολογιστής είναι προσβάσιμος από τον δικό μας υπολογιστή (είτε άμεσα είτε μέσω κάποιου router) και επίσης αυτός ο υπολογιστής τρέχει κάποιο λειτουργικό και τέλος πάντων δεν έχει "κολλήσει" ή έχει σβήσει. Με άλλα λόγια είναι προσβάσιμος και "ζωντανός" (alive). Η δεύτερη παράμετρος αφορά το δίκτυό μας. Ανάλογα με τον χρόνο που θα κάνει να μας επιστραφεί η απάντηση (συνήθως μερικά msec), αποκτάμε μία εικόνα για την απόκριση που έχουμε στην επικοινωνία μας με αυτόν τον υπολογιστή. Αν πχ θέλουμε να παίξουμε ένα δικτυακό παιχνίδι και αυτός ο υπολογιστής αργεί να μας απαντήσει, τότε θα έχουμε καθυστέρηση (lag) και δεν θα ευχαριστηθούμε το gaming.

Η δεύτερη εντολή είναι η traceroute (ή tracert για τα Windows). Με αυτή βλέπουμε όλα τα hops, δηλαδή όλες τις αναπηδήσεις από router σε router, που κάνει ένα πακέτο για να φτάσει από εμάς στον υπολογιστή με τη δοσμένη IP διεύθυνση. Αν πχ έχουμε σύνδεση με κάποιον πάροχο (ISP) και γενικά παρατηρούμε ότι η σύνδεση με τον Internet είναι αργή, μπορούμε να κάνουμε ένα traceroute για να δούμε από πού περνάνε τα πακέτα μας και πόσα hops απέχουμε από τον επιθυμητό υπολογιστή (host). Αν απέχουμε πολλά hops ή τα πακέτα μας περνάνε πρώτα από όλες τις χώρες του κόσμου για να φτάσουν στον προορισμό τους, τότε ίσως ήρθε η ώρα να αλλάξουμε ISP!! :p

Η traceroute είναι από τις πιο ενδιαφέρουσες εντολές και ειδικά στην αρχή που τις χρησιμοποιεί κανείς έχουν ιδιαίτερη πλάκα. Είναι πραγματικά περίεργη η αίσθηση να βλέπεις ότι σε ελάχιστα msec η πληροφορία σου μεταφέρεται από την Αθήνα στο Λονδίνο και από εκεί στη Νέα Υόρκη για να φτάσεις τελικά στον προορισμό σου, που βρίσκεται κάπου στον Μανχάταν! Δοκιμάστε το.

Η σύνταξη της ping και της traceroute είναι ιδιαίτερα απλή. Σας εμπιστεύομαι απόλυτα ότι θα βρείτε μόνοι σας πώς να τις χρησιμοποιήσετε!

TCP ports

Εντάξει, μάθαμε πώς επικοινωνεί ένας υπολογιστής με έναν άλλο. Αλλά πώς έχω πρόσβαση στις διάφορες υπηρεσίες ενός υπολογιστή μέσω του TCP/IP;

Ας υποθέσουμε ότι σε ένα δίκτυο έχουμε έναν υπολογιστή Α και έναν Β. Ο B τρέχει ένα πρόγραμμα peer-to-peer και έναν Instant Messenger. Έστω ότι ο Α θέλει να στείλει ένα μήνυμα στον Instant Messenger. Πώς θα ξέρει το TCP/IP το μήνυμα του Α προς τον Β σε ποια εφαρμογή του υπολογιστή Β απευθύνεται; Εδώ έρχονται να δώσουν την απάντηση τα ports ή, στα ελληνικά οι θύρες.

Κάθε υπολογιστής, εκτός από την διεύθυνση που είναι μοναδική στο δίκτυό του διαθέτει και μία σειρά από θύρες, που είναι αριθμημένες από το 0 έως το 65,535. Κάθε μήνυμα προς αυτόν, σύμφωνα πάντα με το TCP/IP πρωτόκολλο, οφείλει να έχει, εκτός από την διεύθυνση του παραλήπτη, και τον αριθμό της θύρας. Σε κάθε υπολογιστή, κάθε δικτυακό πρόγραμμα λέμε ότι "ακούει" σε μία ή περισσότερες θύρες. Στο παράδειγμά μας, ο υπολογιστής Β έστω ότι έχει ορίσει τον Instant Messenger να "ακούει" στην θύρα 5190 και την peer-to-peer εφαρμογή στη θύρα 411, τότε ο υπολογιστής Α δεν έχει παρά να στείλει ένα μήνυμα στον Β με αριθμό θύρας 5190. Έτσι, το μήνυμα θα το "ακούσει" ο Instant Messenger και όχι η peer-to-peer εφαρμογή.

Επειδή όμως δεν είναι κανείς να μάγος να ψυχανεμίζεται τον αριθμό της θύρας που έχει ορίσει ο καθένας να ακούει η κάθε εφαρμογή του, έχει θεσπιστεί μία λίστα από την Αρχή Ορισμού Διαδικτυακών Αριθμών (IANA) με τα λεγόμενα "WELL KNOWN PORT NUMBERS", η οποία είναι η από κοινού αποδεκτή λίστα αριθμών ports για κάθε εφαρμογή. Φυσικά υπάρχουν και άλλες θύρες που δεν είναι και τόσο ευρέως αποδεκτές. Τέλος, μπορεί ένας προγραμματιστής να φτιάξει ένα πρόγραμμα που να ακούει σε όποια πόρτα θέλει αυτός, ή να ορίσετε ως χρήστες ένα πρόγραμμα να "ακούει" σε συγκεκριμένες θύρες της αρεσκείας σας, αλλά το πιθανότερο είναι ότι κανένας δεν θα καταφέρει να επικοινωνήσει μαζί σας, εκτός και αν έχετε βγάλει κάπου μια ανακοίνωση που να λέει ότι το τάδε πρόγραμμα δεν το έχετε ρυθμίσει να ακούει στην κλασσική θύρα, αλλά σε μία άλλη τιμή.

Το πρωτόκολλο Transmission Control Protocol (TCP) αφορά το Layer-4 της σουίτας TCP/IP (transfer layer) και εκτός των παραπάνω παρέχει και άλλες λειτουργίες, όπως ο τεμαχισμός της πληροφορίας σε segments και η σωστή επανασυναρμολόγησή του από τον παραλήπτη. Επιπλέον, παρέχει μηχανισμούς εγγύησης ότι όλα τα segments μεταδόθηκαν σωστά και, αν όχι, φροντίζει για την επαναμεταφορά τους. Εγγυάται δηλαδή σε ένα βαθμό τη σωστή μεταφορά της πληροφορίας. Δεν είναι όμως το μόνο πρωτόκολλο του Layer-4. Υπάρχει και το User Datagram Protocol (UDP), το οποίο είναι πιο απλό και γρήγορο αλλά δεν παρέχει εγγύηση ότι η πληροφορία μεταδόθηκε γνωστά. Τα TCP και UDP port numbers αποτελούν features των δύο αυτών πρωτοκόλλων.

NAT

Το NAT είναι (Network Address Translation) είναι ένα υποσύνολο του TCP/IP που σκοπό έχει την διάφανη διασύνδεση δύο δικτύων.

Έστω ότι έχουμε τον υπολογιστή Α με IP διεύθυνση 10.0.0.2 και τον Β υπολογιστή με IP διεύθυνση 192.168.0.2. Προφανώς τα δύο μηχανήματα είναι σε διαφορετικά δίκτυα. Τα δύο αυτά δίκτυα συνδέονται με έναν router με διευθύνσεις 10.0.0.1 και 192.168.0.1 στα δύο δίκτυα αντίστοιχα. Κανονικά και αν δεν έχει οριστεί αλλιώς, αν ο Α προσπαθήσει να επικοινωνήσει με τον Β μέσω του router, τότε ο Β θα λάβει το μήνυμα στο οποίο θα αναγράφεται ότι αποστολέας ήταν ο "10.0.0.2". Αν όμως ο router χρησιμοποιήσει το πρωτόκολλο NAT, το μήνυμα πριν παραδοθεί στον Β θα τροποποιηθεί έτσι ώστε να φαίνεται ότι αποστολέας ήταν ο router, δηλαδή το μήνυμα θα έχει πλέον ως διεύθυνση αποστολέα την τιμή "192.168.0.1" που είναι η διεύθυνση του router από την πλευρά του δικτύου του υπολογιστή Β. Ο Β δεν θα καταλάβει ποτέ ότι το μήνυμα προέρχεται από έναν υπολογιστή που βρίσκεται σε ένα διπλανό δίκτυο. Όταν ο Β απαντήσει στον router, ο router θυμάται ότι η απάντηση δεν είναι για τον ίδιο, αλλά θα πρέπει να την προωθήσει στον Α, οπότε και το κάνει. Αυτό λέγεται IP Masquerading και είναι ένα από τα "κολπάκια" που μπορεί να κάνει το NAT.

Το NAT Masquerading είναι αυτό που έχει δώσει τόσο μεγάλη παράταση ζωής στο IPv4. Οι λίγες διευθύνσεις που διαθέτει το IPv4 δεν θα μπορούσαν να καλύψουν τις ανάγκες όλων των υπολογιστών του Internet. Γιαυτό στα εσωτερικά δίκτυα δίνουμε πλέον τοπικές διευθύνσεις και με την τεχνική NAT μπορούμε να δρομολογούμε τα εξερχόμενα IP packets στο Internet. Θυμηθείτε ότι οι τοπικές διευθύνσεις IP δεν μπορούν να δρομολογηθούν στο Internet, οπότε η τεχνική NAT είναι απαραίτητη για να δοθεί πρόσβαση Internet σε ένα τοπικό δίκτυο.

Εκτός του NAT Masquerading (ή NAT Overload) το NAT διαθέτει και άλλες λειτουργίες, όπως το Static NAT, που μας επιτρέπει να έχουμε πρόσβαση από το Internet προς μία υπηρεσία που παρέχει ένας υπολογιστής του τοπικού δικτύου. Υπάρχει στο wiki μας σχετικό άρθρο που τα εξηγεί πιο αναλυτικά.

DNS

Τόση ώρα μιλάμε για δίκτυα, Internet, κλπ και ως διευθύνσεις χρησιμοποιούμε μόνο τις IP διευθύνσεις. Οι αριθμοί όμως όσο εύκολοι μπορεί να φαίνονται σε έναν υπολογιστή, τόσο δυσκολομνημόνευτοι είναι για τους ανθρώπους. Γιαυτό επινοήθηκε το Domain Name System.

Το DNS είναι ένα σύστημα αντιστοίχισης μίας IP διεύθυνσης σε μία άλλη διεύθυνση με γράμματα και αριθμούς η οποία είναι για τον άνθρωπο πολύ πιο εύχρηστη. Φυσικά έχει και αυτή τους δικούς της κανόνες.

Καθώς όλοι λίγο πολύ είναι εξοικειωμένοι με τις URLs από την εμπειρία του browsing, δεν θα επεκταθώ ιδιαίτερα στους κανόνες που το διέπουν. Γενικά, ένα όνομα ή μία διεύθυνση DNS χωρίζεται σε κάποια τμήματα που αριθμούνται από δεξιά προς τα αριστερά. Πχ το foss.ntua.gr έχει ως πρώτο τμήμα το "gr". Το πρώτο τμήμα δηλώνει το είδος του ονόματος. Το gr σημαίνει ότι είναι ελληνικό ή ότι απευθύνεται σε Έλληνες. Αν ήταν uk, θα σήμαινε το αντίστοιχο για την Αγγλία και τους Άγγλους. Το com παραπέμπει σε εμπορικό όνομα (commercial), το org σε οργανισμούς (organisation), το gov σε κυβερνητικούς οργανισμούς (government), κλπ. Το δεύτερο μέρος, το "ntua" στην προκειμένη περίπτωση αποτελεί το όνομα του κατόχου του ονόματος, είτε είναι επιχείρηση, είτε οργανισμός, είτε δήμος, είτε φυσικό πρόσωπο, είτε οτιδήποτε άλλο. Το πρώτο με το δεύτερο μέρος μιας DNS διεύθυνσης ή ονόματος αποτελεί αυτό που ονομάζουμε Registered Domain Name. Είναι δηλαδή το όνομα που έχει κατοχυρώσει ο κάτοχος του Domain όταν αγόρασε το δικαίωμα της χρήσης του από τον αρμόδιο φορέα. Το foss.ntua.gr αποτελεί το Domain Name.

Όπως και με τους routers, έτσι και οι DNS Servers μπορούν να φτιάχνουν ένα δίκτυο μεταξύ τους. Αν ένας DNS Server λάβει μία αίτηση αντιστοίχισης ενός DNS ονόματος σε IP διεύθυνση και δεν ξέρει άμεσα ο ίδιος την απάντηση, θα προωθήσει το αίτημα στον DNS Server που είναι πιθανότερο να γνωρίζει. Αν και αυτός δεν γνωρίζει, θα προωθήσει με την σειρά του το αίτημα σε κάποιον άλλο DNS Server, κ.ο.κ. μέχρι να βρεθεί κάποιος που να ξέρει και η απάντηση να γυρίσει "τρενάκι" πίσω στον υπολογιστή που έκανε αρχικά το αίτημα. Από εκεί και πέρα, ο υπολογιστής έχει στα χέρια του την IP διεύθυνση που αντιστοιχεί στο DNS όνομα που ζήτησε ο χρήστης και πλέον τα ηνία αναλαμβάνει ο router.

Αν ο DNS Server δεν είναι σωστά ρυθμισμένος ώστε να προωθεί στον σωστό "συνάδελφο" DNS Server τα αιτήματα που δεν ξέρει να απαντήσει ο ίδιος, το τρενάκι μπορεί να γίνει πολύ μακρύ. Ως συνέπεια, καθυστερούν τα αιτήματα του χρήστη και παράλληλα υπερφορτώνονται άσκοπα οι γραμμές του δικτύου προκαλώντας πρόβλημα και σε άλλους χρήστες. Το "στήσιμο" ενός DSN Server απαιτεί ειδικό λογισμικό (φυσικά και το linux διαθέτει πολύ καλό DNS server). Η σωστή εγκατάσταση ενός απλού τέτοιου συστήματος μπορεί να είναι εύκολη υπόθεση, αλλά σε περίπτωση που υπάρχουν πολλές συνδέσεις και υπάρχει ανάγκη εξυπηρέτησης πολλών χρηστών και πολλών DNS ονομάτων, τότε κάθε άλλο παρά απλή υπόθεση είναι.


Σημείωση: Το Linux και τα Windows διαθέτουν το εργαλείο nslookup, το οποίο δεν χρειάζεται να τρέξετε ως root ή Administrator. Στο Linux η εντολή αυτή τείνει να αντικατασταθεί από την νεότερη host. Ψάξτε στο net για την χρήση αυτών των εντολών.

Συμπεράσματα

Ίσως κάποιος να κουράστηκε διαβάζοντας όλα αυτά και να αναρωτιέται πώς ένα τέτοιο κείμενο έχει ως τίτλο την λέξη Basics. Στην πραγματικότητα όμως το TCP/IP είναι πολύ μεγαλύτερο και θα χρειάζονται χιλιάδες σελίδες για να περιγραφούν όλα τα features του με παραδείγματα και σε πλήρη έκταση. Θεωρώ ότι όποιος έχει κατανοήσει αυτά που γράφονται εδώ είναι σε θέση να καταλάβει τα βασικά που αφορούν τα δίκτυα TCP/IP και με αρκετό διάβασμα και πρακτική εξάσκηση να μάθει πολύ περισσότερα.

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

Το Linux, ως ένα λειτουργικό που έχει γεννηθεί μέσα από το μεγαλύτερο δίκτυο στον κόσμο, το Internet, είναι πλήρως εναρμονισμένο με το TCP/IP και αποτελεί τόσο ένα άριστο playground για οποιονδήποτε έχει την όρεξη να μάθει και να πειραματιστεί πάνω σε αυτόν τον τομέα όσο και μία αξιόπιστη και συμφέρουσα πλατφόρμα για όποιον θέλει να παρέχει δικτυακές υπηρεσίες υψηλότατου επιπέδου. Φυσικά, πέρα από τις πολύ μεγάλες δυνατότητες, ως ελεύθερο λογισμικό, έχει ένα άρτιο documentation προσβάσιμο από τον καθένα που έχει σύνδεση Internet. Τέλος, δεν μπλέκει τον χρήστη με χαζούς Wizzards που "τα κάνουν όλα αυτόματα με μαγικό τρόπο", αλλά τον αναγκάζει να "λερώσει" ο ίδιος τα χέρια του και να μάθει μέσα από την ίδια του την προσπάθεια. Η ανταμοιβή όμως, όπως πάντα, είναι η γνώση!

Enjoy! ;)

Σύνδεσμοι

- TCP/IP στη Wikipedia

- Ένα καλό εισαγωγικό άρθρο στα αγγλικά

- Το μοντέλο OSI

- NAT σε Linux

- Συγκριτικό DNS Server

- On-line εργαλεία network

- Η manual page του ifconfig για το linux

- Η manual page του ping για το linux

- Η manual page του traceroute για το linux

- Wireshark, η συνέχεια του Ethereal. Πολύ καλό και GPLed Network Monitoring Tool.


Originally created by finrod - Oct 2011

Για την Κοινότητα Ελ.Λογισμικού ΕΜΠ