Δίκτυα δεδομένων, το διαδίκτυο, εφαρμογές
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
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.spinellis.gr/
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
Περιγραφή σελίδων με HTML
H HTML είναι μια εφαρμογή της SGML για την περιγραφή σελίδων στο Web.
Περιοχές του κειμένου σημειώνονται με ετικέτες (tags).
Κάθε ετικέτα περιλαμβάνει το όνομά της και παραμέτρους.
Οι ετικέτες γράφονται ως εξής:
<όνομα ετικέτας παράμετροι>
Μια περιοχή του κειμένου μπορεί να σημειωθεί ως εξής:
<ετικέτα>
περιοχή που σημειώνεται
</ετικέτα>
Βασικές ετικέτες που υποστηρίζει η HTML είναι οι παρακάτω:
- HTML
- περιγραφή ολόκληρης σελίδας
- HEAD
- επικεφαλίδα της σελίδας
- BODY
- κείμενο της σελίδας
- H1-H6
- επικεφαλίδες του κειμένου
- P
- αλλαγή παραγράφου
- UL
- λίστα με τελείες
- OL
- αριθμημένη λίστας
- LI
- στοιχείο λίστας
- BR
- αλλαγή γραμμής
- HR
- οριζόντια γραμμή
- IMG
- εικόνα
- A
- (anchor) σημείο πρόσβασης από ή σε υπερκείμενο
- PRE
- προστοιχειοθετημένο κείμενο
- DL, DT, DD
- λίστα περιγραφών, περιγραφές
- I
- πλάγιοι χαρακτήρες
- B
- έντονοι χαρακτήρες
Παράδειγμα σελίδας:
<!doctype html public "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<TITLE>Τίτλος της σελίδας</title>
<META NAME="GENERATOR" CONTENT="thread.pl">
<META NAME="AUTHOR" CONTENT="Diomidis Spinellis">
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-7">
<LINK REV="made" HREF="mailto:dspin@aegean.gr">
<LINK REL="ToC" HREF=".././web/index.htm">
<LINK REV="Subdocument" HREF=".././web/index.htm">
<LINK REL="previous" HREF=".././web/http.htm">
<LINK REL="next" HREF=".././web/cgi.htm">
</HEAD>
<BODY> <H1>Επικεφαλίδα πρώτου επιπέδου</H1><HR>
Κείμενο που περιέχει ένα σημείο κατάληξης υπερκειμένου
<a name="G42"> (<em>με έντονο κείμενο</em>)</a>
και μια λίστα:
<ul>
<li> στοιχείο 1
<li> στοιχείο 2
</ul>
<p>
Νέα παράγραφος με ένωση υπερκειμένου στο
<A HREF="http://www.aueb.gr">Οικονομικό Πανεπιστήμιο Αθηνών</A>
<HR>
</BODY>
</HTML>
Ενεργό περιεχόμενο
Υπάρχουν διάφορες τεχνολογίες για να εμφανίσουμε
ενεργό περιεχόμενο (active content)
στο Web όπως:
- CGI
- Active Server Pages (Microsoft)
- Java Server Pages (Java)
- Servlets (Java)
- PHP (Apache/Unix)
Προγράμματα που χρησιμοποιούν τις τεχνολογίες αυτές δημιουργούν δυναμικά
τις σελίδες HTML ανάλογα με τα στοιχεία του χρήστη.
Αναζήτηση πληροφοριών στον παγκόσμιο ιστό
Οι σελίδες στον παγκόσμιο ιστό μετριούνται σε εκατομμύρια.
Για την αποδοτική χρήση τους χρησιμοποιούμε διάφορες προσεγγίσεις.
Ασκήσεις
Δίκτυα δεδομένων
- Ποια είναι τα επίπεδα του προτύπου OSI;
Γράψτε ένα παράδειγμα τεχνολογίας για το κάθε επίπεδο.
- Πως μετατρέπεται ένα όνομα όπως www.slashdot.org σε διεύθυνση του Internet;
- Σε τι διαφέρει το πρότυπο HTTP από το πρότυπο HTML;
- Πως μπορεί η ίδια σελίδα του ιστού (π.χ. http://www.amazon.com) να εμφανίζεται με διαφορετικά στοιχεία σε διαφορετικούς χρήστες;
- Εκτιμήστε τον αριθμό των μηχανημάτων και των σελίδων web που υπάρχουν
σήμερα στο Internet.
Ξεκινήστε από στοιχεία που ξέρετε για εσάς, τους συμφοιτητές σας και τη σχολή.
Εργαστηριακή άσκηση
Κατασκευάστε την προσωπική σας σελίδα σε HTML
- Φορτώστε τη σελίδα αυτή στον Internet Explorer και δώστε την εντολή
View - Source για να δείτε το περιεχόμενό της.
- Φυλάξτε τη σελίδα αυτή στον προσωπικό σας φάκελα με την εντολή
File - Save As.
- Ξεκινήστε το πρόγραμμα Notepad (Start - Programs - Accessories - Notepad).
- Φορτώστε τη σελίδα που φυλάξατε στο προηγούμενο βήμα (File - Open).
- Αλλάξτε στοιχεία της σελίδας έτσι ώστε να μοιάζει με το πως θα θέλατε
να είναι η προσωπική σας σελίδα.
Προσθέστε λίγα λόγια για τον εαυτό σας,
τους δικούς σας δεσμούς (http://www.slashdot.org) υπερκειμένου
ή και εικόνες από αγαπημένες σας δραστηριότητες.
Μπορείτε να αναζητήσετε φωτογραφίες με τη μηχανή αναζήτησης
Google (http://www.google.com).
Μπορείτε να διαβάσετε πληροφορίες για τις εντολές της HTML
από τον τόπο
http://www.w3schools.com/html/ (http://www.w3schools.com/html/)
ή
το αντίστοιχο πρότυπο (http://www.ietf.org/rfc/rfc1866.txt)
καθώς και από άλλους τόπους στο διαδίκτυο.
Μην αλλάξετε στοιχεία που δεν ξέρετε τι κάνουν.
- Φυλάξτε τη νέα σελίδα με την εντολή File - Save.
- Φορτώστε τη σελίδα στον Internet Explorer με την εντολή
File - Open - Browse.
- Όταν κάνετε αλλαγές στη σελίδα μπορείτε να τις δείτε στον
Explorer με την εντολή View - Refresh.
Καλή διασκέδαση!
Βιβλιογραφία
- Α. Λυπιτάκης
Ο σύγχρονος κόσμος των υπολογιστών. σ. 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.
- 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.