Computer Networks
Diomidis Spinellis
Department of Management Science and Technology
Athens University of Economics and Business
Athens, Greece
dds@aueb.gr
Εισαγωγή, το μοντέλο αναφοράς OSI
Φυσικό επίπεδο
- Θεωρία πληροφορίας
- Μέσα μεταφοράς
- Μαγνητικά
- Συνεστραμένο καλώδιο
- Ομοαξονικό καλώδιο
- Οπτική ίνα
- Ασύρματη μεταφορά οπτικής επαφής
- Δορυφορική επικοινωνία
- Αναλογική μετάδοση
- Το τηλεφωνικό δίκτυο
- MODEM
- RS-232
- Ψηφιακή μετάδοση
- Πολυπλεξία (multiplexing)
- Πακέτα και συνδέσεις
- Ψηφιακά δίκτυα
- ISDN
- GSM / UMTS
- ATM
- SONET
Επίπεδο σύνδεσης
Επίπεδο δικτύου
Επίπεδο μεταφοράς
Επίπεδο συνόδου
Επίπεδο παρουσίασης
- Εμφάνιση δεδομένων
- Συμπίεση
- Ασφάλεια
Επίπεδο εφαρμογής
Τα πρωτόκολλα του Internet
Εφαρμογή
Το επίπεδο εφαρμογής στο Internet καλύπτει τα επίπεδα
εφαρμογής και παρουσίασης του OSI.
Τα πιο συχνά πρωτόκολλα που χρησιμοποιούνται από τους
χρήστες είναι:
- Telnet
- χρήση από απόσταση
- FTP
- μεταφορά αρχείων
- SMTP
- μεταφορά email
- POP/IMAP
- ανάγνωση email
- HTTP/HTML
- πρόσβαση στο Web
Μια σειρά από πρωτόκολλα στο επίπεδο αυτό υποστηρίζουν τη λειτουργία και
τη διαχείριση του δικτύου:
- DNS
- Κατανεμημένος κατάλογος ονομάτων
- SNMP
- Διαχείριση από απόσταση
- BOOTP
- Αρχικό φόρτωμα κώδικα
- RARP
- Αντίστροφη μετατροπή διευθύνσεων
Μεταφορά
Στο επίπεδο της μεταφοράς χρησιμοποιούνται δύο πρωτόκολλα:
- TCP
- Transmission Control Protocol
- UDP
- User Datagram Protoco
Δίκτυο
Στο επίπεδο του δικτύου το Internet Protocol (IP) μαζί με το
Internet Control Message Protocol εξασφαλίζουν τη μεταφορά δεδομένων
από τον αποστολέα στον παραλήπτη.
Το παρακάτω σχήμα παριστάνει τη σχέση ανάμεσα στα διάφορα πρωτόκολλα
του internet:
+------+ +-----+ +-----+ +-----+
|Telnet| | FTP | | TFTP| ... | ... |
+------+ +-----+ +-----+ +-----+
| | | |
+-----+ +-----+ +-----+
| TCP | | UDP | ... | ... |
+-----+ +-----+ +-----+
| | |
+--------------------------+----+
| Internet Protocol & ICMP |
+--------------------------+----+
|
+---------------------------+
| Local Network Protocol |
+---------------------------+
Σημείωση: Τα σχήματα της ενότητας αυτής προέρχονται από τα έντυπα RFC που
αναφέρονται στη βιβλιογραφία.
IP
Πακέτα στο επίπεδο του δικτύου internet έχουν την παρακάτω μορφή:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Οι διευθύνσεις αποστολέα και παραλήπτη περιγράφονται με 32 bit
που παριστάνονται για ευκολία με 4 δεκαδικούς αριθμούς (π.χ. 192.168.135.4).
Ένας αρχικός αριθμός από bit (π.χ. 24) παριστάνει το δίκτυο στο οποίο
ανήκει ένας συγκεκρικένος υπολογιστής, ενώ τα υπόλοιπα ξεχωρίζουν τον
υπολογιστή από τους υπόλοιπους στο ίδιο δίκτυο.
TCP
Το πρωτόκολλο TCP (Transmission Control Protocol) επιτρέπει τη σύνδεση
δύο διεργασιών και τη μεταξύ τους επικοινωνία.
Το TCP θεωρεί ότι το δίκτυο στο οποίο βασίζεται παρέχει τη δυνατότητα μεταφοράς
πακέτων χωρίς εγγυήσεις σχετικά με τη σειρά που θα παραδοθούν,
την απώλεια πακέτων ή τη διπλή παράδοσή τους.
Πάνω από ένα τέτοιο δίκτυο το TCP παρέχει αξιόπιστη μεταφορά δεδομένων.
Οι βασικές υπηρεσίες που παρέχει το TCP είναι οι παρακάτω:
- Μεταφορά δεδομένων
- Αξιοπιστία
- Έλεγχο ροής
- Πολυπλεξία
- Συνδέσεις
- Προτεραιότητα
Η μορφή της επικεφαλίδας του TCP είναι η παρακάτω:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | |U|A|P|R|S|F| |
| Offset| Reserved |R|C|S|S|Y|I| Window |
| | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Τα bit URG...FIN έχουν τους παρακάτω ρόλους:
- URG
- Το πεδίο Urgent Pointer περιέχει δεδομένα
- ACK
- Το πεδίο Acknowledgment περιέχει δεδομένα
- PSH
- Λειτουργία Push
- RST
- Επαναρύθμιση της σύνδεσης
- SYN
- Συγχρονισμός των αριθμών της σειράς
- FIN
- Δεν υπάρχουν άλλα δεδομένα από τον αποστολέα
Αρχιτεκτονική του παγκόσμιου ιστού
- Ο παγκόσμιος ιστός (world wide web)
είναι υλοποιημένες σύμφωνα με το μοντέλο
πελάτη-υπηρέτη (client-server).
- Υπηρέτες ακούν για εντολές του πρωτοκόλλου HTTP
στη θύρα TCP 80 και απαντούν ανάλογα με το περιεχόμενο της εντολής.
- Οι απαντήσεις είναι συνήθως υπερκείμενο (hypertext)
δομημένο σύμφωνα με το πρότυπο HTML.
- Παραπομπές σε άλλες σελίδες ή περιεχόμενο γίνονται με την
τυποποιημένη χρήση των Uniform Resource Locators (URL).
- Τόσο ο πελάτης, όσο και ο υπηρέτης μπορούν να προσαρμόσουν
δυναμικά το περιεχόμενο μιας σελίδας.
Προσδιορισμός στοιχείων με URI
Ο προσδιορισμός στοιχείων στο Web
γίνεται με τη χρήση των Uniform Resource Locators.
Διακρίνονται σε απόλυτα (π.χ. http://www.amazon.com) και σχετικά
(π.χ. info.gif).
Αποτελούνται από
- το πρωτόκολλο,
- τον προσδιορισμό του μηχανήματος που περιέχει το περιεχόμενο,
- τον προσδιορισμό της διαδρομής και
- το αρχείο.
Η χρήση τους επιτρέπει τον προσδιορισμό άλλων σελίδων τοπικά, σε άλλα
μηχανήματα, καθώς και ερωτήσεων:
http://www.dmst.aueb.gr/dds/
index.html
http://sourceforge.net/softwaremap/trove_list.php?form_cat=187&discrim=165
Το πρωτόκολλο HTTP
Το πρωτόκολλο HTTP υποστηρίζει τις παρακάτω μεθόδους επικοινωνίας:
- GET
- HEAD
- POST
- PUT
- DELETE
- TRACE
Παράδειγμα:
GET /pub/WWW/TheProject.html HTTP/1.1
Host: www.w3.org
Ενεργό περιεχόμενο
Υπάρχουν διάφορες τεχνολογίες για να εμφανίσουμε
ενεργό περιεχόμενο (active content)
στο Web όπως:
- CGI
- Active Server Pages (Microsoft)
- Java Server Pages (Java)
- Servlets (Java)
- PHP (Apache/Unix)
Προγράμματα που χρησιμοποιούν τις τεχνολογίες αυτές δημιουργούν δυναμικά
τις σελίδες HTML ανάλογα με τα στοιχεία του χρήστη.
Αναζήτηση πληροφοριών στον παγκόσμιο ιστό
Οι σελίδες στον παγκόσμιο ιστό μετριούνται σε εκατομμύρια.
Για την αποδοτική χρήση τους χρησιμοποιούμε διάφορες προσεγγίσεις.
Βιβλιογραφία
- Α. Λυπιτάκης
Ο σύγχρονος κόσμος των υπολογιστών. σ. 145-172
1997.
- Ε. Παπαθανασίου
Στοιχεία υπολογιστικών συστημάτων. Κεφάλαιο 8.
Εκδόσεις Μπένου 1998.
- Andrew S. Tanenbaum
Δίκτυα Υπολογιστών. Τρίτη Έκδοση.
Παπασωτηρίου, 2000.
- T. Berners-Lee and D. Connolly.
RFC 1866: Hypertext Markup
Language — 2.0, November 1995.
Available online.
- T. Berners-Lee,
L. Masinter, and M. McCahill.
RFC 1738: Uniform Resource
Locators (URL), December 1994.
Available online.
- R. Braden.
RFC 1122: Requirements for
Internet hosts — communication layers, October 1989.
Available online.
- R. Braden.
RFC 1123: Requirements for
Internet hosts — application and support, October 1989.
Available online.
- J. Glenn Brookshear.
Computer Science, pages 141–166.
Addison-Wesley, sixth edition, 2000.
- J. Glenn Brookshear.
Computer Science, pages 135–170.
Addison-Wesley, 8th edition, 2004.
- Douglas E. Comer and
David L. Stevens.
Internetworking with TCP/IP, volume II: Design, Implementation and
Internals.
Prentice-Hall, 1991.
- Douglas E. Comer and
David L. Stevens.
Internetworking with TCP/IP, volume III: Client-Server Programming and
Applications (BSD Socket Version.
Prentice-Hall, 1993.
- Douglas E. Comer.
Internetworking with TCP/IP, volume I: Principles, Protocols and
Architecture.
Prentice-Hall, second edition, 1991.
- D. Eastlake and
C. Kaufman.
RFC 2065: Domain Name System
security extensions, January 1997.
Available online.
- R. Fielding,
J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee, et al.
RFC 2068: Hypertext transfer
protocol — HTTP/1.1, January 1997.
Available online.
- B. Fraser.
RFC 2196: Site security
handbook, September 1997.
Available online.
- Stefanos
Gritzalis and Diomidis Spinellis.
Addressing threats and security issues in World Wide Web
technology.
In Proceedings CMS '97 3rd IFIP TC6/TC11 International joint working
Conference on Communications and Multimedia Security, pages 33–46,
Athens, Greece, September 1997. IFIP, Chapman & Hall.
- Fred Halsall.
Data Communications, Computer Networks and OSI.
Addison-Wesley, second edition, 1988.
- E. Krol.
RFC 1118: Hitchhikers guide to
the Internet, September 1989.
Available online.
- J. Postel.
RFC 768: User Datagram
Protocol, August 1980.
Available online.
- J. Postel.
RFC 774: Internet protocol
handbook: Table of contents, October 1980.
Available online.
- J. Postel.
RFC 791: Internet
protocol, September 1981.
Available online.
- J. Postel.
RFC 792: Internet control
message protocol, September 1981.
Available online.
- J. Postel.
RFC 793: Transmission Control
Protocol, September 1981.
Available online.
- Marshall T. Rose.
The
Open Book: A Practical Perspective on OSI.
Prentice Hall, 1989.
- Aviel D. Rubin, Daniel
Geer, and Marcus J. Ranum.
Web
Security Sourcebook.
John Wiley & Sons, 1997.
- W. Richard Stevens.
UNIX
Network Programming.
Prentice Hall, 1990.
- Andrew S. Tanenbaum.
Computer Networks.
Prentice-Hall, second edition, 1988.