Δίκτυα Υπολογιστών Επίπεδο Εφαρμογής Ιωάννης Κορίνθιος Δρ. Ηλεκτρολόγος Μηχανικός ΕΜΠ

Σχετικά έγγραφα
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Κεφάλαιο 6ο ΕΠΙΠΕΔΟ ΕΦΑΡΜΟΓΗΣ. Εισαγωγή

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Δίκτυα Υπολογιστών Επίπεδο εφαρμογής To Σύστημα Ονομασίας Τομέων DNS

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ

Επίπεδο δικτύου IP Forwading κτλ

Ιόνιο Πανεπιστήµιο. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα Θ. Υπηρεσίες Internet. ρ. Ε. Μάγκος

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151)

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

Υπολογιστές και ίκτυα Η/Υ.

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Προγραμματισμός Ιστοσελίδων (Web Design)

Τεχνολογίες ιαδικτύου

Δίκτυα Θεωρία

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

Δίκτυα Η/Υ στην Επιχείρηση

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

ΔΙΚΤΥΑ. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

Client server Peer-to-peer (Οµότιµα ίκτυα)

Πρόσκληση 10: Προηγμένες Τηλεματικές Υπηρεσίες Τ.Ε.Ι. Ηπείρου Δίκτυο Τ.Ε.Ι. Ηπείρου ΙΙ

Βασικές Έννοιες Web Εφαρμογών

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Εργαστήριο Δικτύων Υπολογιστών

Επαναληπτικές Ασκήσεις Μαθήματος

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Πρωτόκολλα Διαδικτύου

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Περί δικτύων. Δρ. Ματθαίος Πατρινόπουλος

Network Address Translation (NAT)

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 1: Εισαγωγή. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Φύλλο Κατανόησης 1.8

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία Domain Name Service

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

Ανδρέας Παπαζώης. Τμ. Διοίκησης Επιχειρήσεων

6.2 Υπηρεσίες Διαδικτύου

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος

Περιεχόμενα. Πρόλογος... xiii

Ενότητα 1. Εισαγωγή στις βασικές έννοιες των ικτύων ΗΥ

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

Εισαγωγή στο DNS lookup

α. Το μέγιστο μήκος δεδομένων του ωφέλιμου φορτίου του πλαισίου Ethernet είναι 1500 οκτάδες. ΣΩΣΤΟ

Εισαγωγή στην Πληροφορική

7.2.2 Σχέση OSI και TCP/IP

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7]

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

ΜΑΘΗΜΑ: ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Δίκτυα Υπολογιστών I

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

Διάλεξη 7 η - Networks

ΕΠΛ 012. Δίκτυα Τπολογιστών & Διαδίκτυο

Εισαγωγή στο TCP/IP. Π. Γαλάτης

Εξοικείωση με τις εντολές ipconfig και ping

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

Πρωτόκολλα Διαδικτύου. Άγγελος Ρούσκας Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς

Κεφάλαιο 13 Εφαρμογές Διαδικτύου

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία Ηλεκτρονικού Ταχυδρομείου - SMTP

To λεξικό του Internet

ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 15/03/2014 Συμπληρωματικές Διαφάνειες

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Διαχείριση Δικτύων Εργαστήριο (Διαφάνειες)

Β1. Σε ένα τοπικό δίκτυο τοπολογίας Ethernet-TCP/IP το επίπεδο πρόσβασης δικτύου περιλαμβάνει:

Εισαγωγή στο πως λειτουργεί το διαδίκτυο

Κεφάλαιο 2 Επίπεδο Εφαρμογής

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

1.2.1 Το μοντέλο αναφοράς για τη Διασύνδεση Ανοικτών Συστημάτων (OSI) 1 / 19

Ενότητα 1: HTTP, Clients και Servers. (Web, το θεμέλιο του Σημασιολογικού Ιστού)

Εισαγωγή στο διαδίκτυο

Θέματα Προγραμματισμού Διαδικτύου Εισαγωγή - Πρωτόκολλα

ΗΜΥ Εργαστηριακή Άσκηση 2

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

World Wide Web: Ο παγκόσµιος ιστός Πληροφοριών

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Δίκτυα Υπολογιστών. Δρ. Παναγιώτης Κολιός ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Δίκτυα Θεωρία

ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2018 Β ΦΑΣΗ

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

Transcript:

Επίπεδο Εφαρμογής Ιωάννης Κορίνθιος Δρ. Ηλεκτρολόγος Μηχανικός ΕΜΠ Σελ 1

Ιεραρχίες Πρωτοκόλλων σελ 2

Ιεραρχίες Πρωτοκόλλων Πρωτόκολλο είναι ένα σύνολο κανόνων που απαιτούνται για να επιτύχουμε την ανταλλαγή δεδομένων, και επομένως τη επικοινωνία, μεταξύ δύο ή περισσότερων απομακρυσμένων οντοτήτων μέσω ενός δικτύου. Για τον καλύτερο σχεδιασμό και την απλοποίηση της επικοινωνίας υπάρχει κατανομή των απαιτούμενων λειτουργιών σε επίπεδα (στρώματα/layers) πρωτοκόλλων. Ε την κατανομή αυτή δημιουργείται μια ιεραρχία πρωτοκόλλων (Protocol Hierarchy). Κάθε επίπεδο εκτελεί συγκεκριμένες λειτουργίες, χρησιμοποιεί τις υπηρεσίες του αμέσως κατώτερου επιπέδου και παρέχει τις υπηρεσίες του στο αμέσως ανώτερο επίπεδο. Κάθε επίπεδο επικοινωνεί (νοητά) μέσω ενός πρωτοκόλλου με ομότιμο (peer) επίπεδο. σελ 3

Ιεραρχίες Πρωτοκόλλων (Μοντέλο OSI) Το μοντέλο OSI είναι η περισσότερο καλά δομημένη αρχιτεκτονική (ιεραρχία) πρωτοκόλλων. Στην πράξη το μοντέλο OSI έχει υποσκελιστεί από την ιεραρχία πρωτοκόλλων που εφαρμόστηκε de facto στο Διαδίκτυο. Η ιεραρχία αυτή ονομάζεται Στοίβα Πρωτοκόλλων του IP/TCP (IP/TCP Protocol Stack) από τα δύο δημοφιλέστερα πρωτόκολλα του διαδικτύου το Internet Protocol (IP) και το Transmission Control Protocol (TCP). σελ 4

Ο Ρόλος των Επιπέδων στην ιεραρχία OSI Φυσικό Επίπεδο (Physical Layer): Μετάδοση bits σε ένα κανάλι επικοινωνίας. Επίπεδο Σύνδεσης Δεδομένων ή Επίπεδο Ζεύξης (Data Link Layer): Η κύρια αποστολή του επιπέδου είναι να μετασχηματίσει το μέσο μετάδοσης σε μια γραμμή χωρίς σφάλματα μετάδοσης. Επίσης χειρίζεται θέματα πρόσβασης στο κανάλι επικοινωνίας αν υπάρχει κοινό μέσο. Επίπεδο Δικτύου (Network Layer): Μία βασική λειτουργία είναι η δρομολόγηση πακέτων από την αφετηρία στον προορισμό τους. Το επίπεδο δικτύου φροντίζει για την απόκρυψη των ιδιαίτερων χαρακτηριστικών του υποδικτύου, ώστε να παρέχεται στα ανώτερα επίπεδα ένας ενιαίος τρόπος χρήσης του δικτύου. Επίπεδο Μεταφοράς (Transport Layer): Η βασική λειτουργία του επιπέδου είναι η αποδοχή δεδομένων από τα ανώτερα επίπεδα ή διάσπαση αυτών σε μικρότερες μονάδες εάν χρειαστεί, η μεταφορά τους στο επίπεδο δικτύου και η διασφάλιση ότι όλα τα τμήματα φτάνουν σωστά στην άλλη πλευρά (από-άκρη-σε-άκρη/ end-toend). Επίπεδο Συνόδου (Session Layer): Το επίπεδο συνόδου επιτρέπει σε χρήστες διαφορετικών μηχανημάτων να εγκαθιστούν συνόδους μεταξύ τους. Μια σύνοδος, μπορεί να χρησιμοποιηθεί για να μεταφέρει ένα αρχείο μεταξύ δύο μηχανών παρέχοντας συγχρονισμό στη μεταφορά (μετά από μια διακοπή, για παράδειγμα). Μία από τις υπηρεσίες που παρέχει το επίπεδο συνόδου είναι η δυνατότητα διαχείρισης ελέγχου ενός διαλόγου. Επίπεδο Παρουσίασης (Presentation Layer): Ενώ όλα τα κατώτερα επίπεδα ενδιαφέρονται μόνο για την αξιόπιστη μετακίνηση bits από το ένα μέρος στο άλλο, το επίπεδο παρουσίασης ενδιαφέρεται για το συντακτικό και τη σημασιολογία των πληροφοριών που μεταδίδονται. Επίπεδο Εφαρμογής (Application Layer): Το επίπεδο εφαρμογής μπορεί ανάλογα με τις ανάγκες του χρήστη να περιέχει μια ποικιλία πρωτοκόλλων που υλοποιούν διάφορες κατανεμημένες λειτουργίες (π.χ. http, ftp, e- mail κλπ). σελ 5

Πρωτόκολλα Επιπέδου Εφαρμογής σελ 6

To Επίπεδο Εφαρμογής στο Διαδίκτυο Το Διαδίκτυο υιοθετεί ένα μοντέλο επικοινωνίας με 5 επίπεδα. Σε σχέση με το μοντέλο OSI παραλείπονται τα επίπεδα Συνόδου (Session) και Παρουσίασης (Presentation) με την αντίστοιχη λειτουργικότητα (εφόσον είναι αναγκαία) να ανατίθεται στο Επίπεδο Εφαρμογής (Application). Η βασική λειτουργία του Επίπεδου Εφαρμογής (Application Layer) είναι η ανταλλαγή δεδομένων μεταξύ δικτυακών εφαρμογών από-άκρη-σε-άκρη (end-toend). Πρόκειται για μια λογική σχέση που επιτρέπει στις εφαρμογές να ανταλλάσουν δεδομένα. σελ 7

Λειτουργίες και Πρωτόκολλα Επιπέδου Εφαρμογής Ένα πρωτόκολλο επιπέδου εφαρμογής καθορίζει: Τους τύπους των επιτρεπόμενων ανταλλασσόμενων μηνυμάτων Το συντακτικό των μηνυμάτων Τη δομή και τα επιτρεπόμενα πεδία Σημασιολογία των μηνυμάτων Τη σημασία της πληροφορίας στα πεδία Τους κανόνες για τον τρόπο με τον οποίο οι εφαρμογές ανταλλάσσουν μηνύματα Υπάρχουν δύο κατηγορίες πρωτοκόλλων επιπέδου εφαρμογής: Τα Δημόσια πρωτόκολλα (Public protocols), που είναι ορισμένα λεπτομερώς από διεθνείς οργανισμούς (π.χ. την IETF) με στόχο την επίτευξη της διαλειτουργικότητας (π.χ. http, ftp, DNS κλπ) Τα Ειδικά Πρωτόκολλα (proprietary protocols) που συνήθως ορίζονται για μια συγκεκριμένη εφαρμογή και πολύ συχνά οι λεπτομέρειες της λειτουργίας τους δεν είναι γνωστές (π.χ. Skype ) σελ 8

Ενδεικτικές Εφαρμογές World Wide Web e-mail instant messaging remote login file sharing / downloading multi-user gaming streaming video/audio voice IP telephony real-time video/audio conferencing σελ 9

Απαιτήσεις Εφαρμογών και Επίπεδο Μεταφοράς Οι απαιτήσεις ποιότητας υπηρεσίας των δικτυακών εφαρμογών είναι αρκετά διαφορετικές και η ποικιλία τους μεγάλη. Το επίπεδο εφαρμογής μπορεί ανάλογα με τις ανάγκες του να επιλέγει το πρωτόκολλο επιπέδου μεταφοράς που θα χρησιμοποιήσει (TCP ή UDP). Η επιλογή αυτή δεν είναι προδιαγεγραμμένη, όμως στην πράξη τα περισσότερα πρωτόκολλα επιπέδου εφαρμογής χρησιμοποιούν το TCP για να μεταφέρουν τα δεδομένα τους. Απαιτήσεις Εφαρμογών Χρήση Επιπέδου Μεταφοράς σελ 10

Επικοινωνία Δικτυακών Εφαρμογών To Πρωτόκολλο Επιπέδου Εφαρμογής είναι στην πράξη κομμάτι της Διαδικασίας Εφαρμογής (Application Process) και έχει αναπτυχθεί συνήθως από μια εταιρεία, ένα οργανισμό ή ένα προγραμματιστή. Παράδειγμα: Το http (HyperText Transfer Protocol) που χρησιμοποιείται για την ανταλλαγή δεδομένων στο WWW είναι ενσωματωμένο στον φυλλομετρητή (browser) που χρησιμοποιούμε (π.χ. Chrome, Firefox, Edge) Το Πρωτόκολλο Επιπέδου Μεταφοράς (π.χ. TCP, UDP) καθώς και τα πρωτόκολλα των κατώτερων επίπεδων (π.χ. IP) συνήθως αποτελούν κομμάτι του λειτουργικού συστήματος (Operating System) του host. Τα δύο αυτά προγράμματα επικοινωνούν με τη χρήση μιας διεπαφής που ονομάζεται Socket ή API (APplication Interface). To API κατά την επικοινωνία έχει τις εξής δυνατότητες: επιλογή του πρωτοκόλλου μεταφοράς (πχ. TCP ή UDP) δυνατότητα ρύθμισης μερικών παραμέτρων (π.χ. max buffer size και max segment size) σελ 11

Αρχιτεκτονικές Δικτυακών Εφαρμογών Αρχιτεκτονική Πελάτη-Εξυπηρετητή (Client-server): Υπάρχει ένας Host, που ονομάζεται εξυπηρετητής (Server) και που εξυπηρετεί αιτήσεις προερχόμενες από πολλούς άλλους Hosts, που ονομάζονται πελάτες (Clients). Παράδειγμα: Web client / Web server Αρχιτεκτονική Peer-to-peer (P2P): Yπάρχει άμεση επικοινωνία μεταξύ ζευγών περιστασιακά συνδεομένων μεταξύ τους Hosts, που ονομάζονται ομότιμοι (peers). Παράδειγμα: Gnutella Υβριδική Αρχιτεκτονική: Συνδυάζει στοιχεία από τις δύο παραπάνω αρχιτεκτονικές. Παράδειγμα: Skype σελ 12

Θέματα Διευθυνσιοδότησης Εφαρμογών Προκειμένου να διευθυνσιοδοτηθεί με μοναδικό τρόπο μια απομακρυσμένη εφαρμογή χρειάζονται δύο στοιχεία της: Την Διεύθυνση IP του host Τον Αριθμό Θύρας (Port Number) που αντιστοιχεί στην συγκεκριμένη εφαρμογή Στην πράξη η Διεύθυνση IP σε συνδυασμό με τον αριθμό θύρας ορίζουν επακριβώς ένα socket (API), το σημείο δηλαδή που η εφαρμογή λαμβάνει υπηρεσίες. Για παράδειγμα, για να επικοινωνήσουμε με ένα web server χρειάζεται: H IP διεύθυνση του στη μορφή π.χ. 130.43.0.229 (32-bit, IPv4 address) O Αριθμός Θύρας, που για την επικοινωνία με web server είναι 80. σελ 13

Διευθυνσιοδότηση (Παράδειγμα) Η χρήση των Αριθμών Θύρας Πηγής και Προορισμού στην περίπτωση που δύο clients από δύο διαφορετικούς host προσπαθούν να προσπελάσουν ένα Web server αναδεικνύεται στο συγκεκριμένο παράδειγμα. O Host C έχει συγχρόνως επικοινωνία με τον ίδιο Server B από δύο ανεξάρτητες διεργασίες. O Host A έχει πρόσβαση στο Server B από μια διεργασία. Έχουμε επικεντρώσει στη μια κατεύθυνση και παρατηρούμε ότι η Θύρα Προορισμού σε όλες τις περιπτώσεις είναι η ίδια εφόσον μιλάμε για web service (Θύρα 80). Ο συνδυασμός Διεύθυνση IP (Πηγής/Προορισμού) και Θύρα (Πηγής/Προορισμού) οδηγεί σε μοναδικότητα της επικοινωνίας. Ο Εξυπηρετητής (Server) έχει ενεργοποιήσει μια διεργασία (process) για κάθε πελάτη (client). σελ 14

World Wide Web και HTTP ( HyperText Transfer Protocol) σελ 15

Ιστοσελίδες Μια ιστοσελίδα (web page) αποτελείται από αντικείμενα (objects) Στην ουσία μια ιστοσελίδα αποτελείται από ένα βασικό αρχείο HTML (HyperText Markup Language) που εμπεριέχει διάφορα αντικείμενα, για παράδειγμα εικόνες JPEG, Java applets, αρχεία audio ή video κλπ. H HTML είναι μια γλώσσα σήμανσης (markup language), η οποία χρησιμοποιείται για τη δημιουργία ιστοσελίδων. Επιτρέπει την ενσωμάτωση εικόνων και άλλων αντικειμένων μέσα στη σελίδα Μπορεί να χρησιμοποιηθεί για να εμφανίσει διαδραστικές φόρμες. Κάθε αντικείμενο διευθυνσιοδοτείται με ένα URL (Uniform Resource Locator) Για παράδειγμα: Έστω ότι θέλουμε να προσπελάσουμε την ιστοσελίδα www.uth.gr/cs/pic.gif όπου, www.uth.gr, είναι το όνομα του Host που αντιστοιχεί σε μια διεύθυνση IP και /cs/pic.gif, είναι το όνομα της διαδρομής (path) σελ 16

HTTP (HyperText Transfer Protocol) To HTTP είναι το πρωτόκολλο επιπέδου εφαρμογής του Web To HTTP ακολουθεί το μοντέλο client/server (πελάτη/εξυπηρετητή) Ο client είναι κάποιος από τους διαθέσιμους browser (Firefox, Chrome, Edge κλπ) βρίσκεται σε ένα Host που αποστέλλει την αίτηση (HTTP Request), λαμβάνει την απάντηση (HTTP Response), και αναλαμβάνει να απεικονίσει τα Web αντικείμενα Ο Web server φιλοξενεί την ιστοσελίδα και απαντώντας σε αιτήσεις επιστρέφει τα αντικείμενα που ζητάει ο client. Το HTTP χρησιμοποιεί τυπικά το TCP σαν αξιόπιστο μηχανισμό μεταφοράς. O client αρχίζει την επικοινωνία ζητώντας μια σύνδεση TCP προς τον server χρησιμοποιώντας την πόρτα 80, που είναι η πόρτα όπου ένας web server αναμένει http requests. Ο server την αποδέχεται την TCP σύνδεση και έτσι αρχίζει η επικοινωνία στο επίπεδο εφαρμογής δηλαδή η ανταλλαγή http μηνυμάτων (http request/response) To HTTP είναι ένα απλό στο σχεδιασμό του πρωτόκολλο που δεν διατηρεί πληροφορία κατάστασης (State) για προηγούμενες requests/responses. σελ 17

Επίμονο (persistent) και μη-επίμονο (non-persistent) HTTP Υπάρχουν δύο τρόποι λειτουργίας του HTTP που σχετίζονται με το αν το HTTP χρησιμοποιεί μια TCP σύνδεση για να μεταφέρει περισσότερες από μια HTTP requests/responses Το HTTP με μη επίμονη σύνδεση (non-persistent connection) Το HTTP με επίμονη σύνδεση (persistent connection ή keep alive) σελ 18

HTTP με μη-επίμονη σύνδεση Ας υποθέσουμε ότι θέλουμε να μεταφέρουμε μια ιστοσελίδα από ένα server σε ένα client χρησιμοποιώντας μηεπίμονη (non-persistent) TCP σύνδεση. Επίσης, ας υποθέσουμε ότι η ιστοσελίδα αποτελείται από το βασικό HTML αρχείο και έχει επίσης 10 JPEG εικόνες. Τέλος, ας υποθέσουμε ότι το URL για το βασικό αρχείο HTML είναι: http://www.uth.edu/cs/home.index Στην περίπτωση μας θα συμβούν τα παρακάτω: 1) HTTP client θα ζητήσει την εγκατάσταση μιας TCP σύνδεσης προς τον web server με το όνομα www.uth.gr στην πόρτα 80. Σαν αποτέλεσμα αυτής της ενέργειας θα δημιουργηθούν τόσο στον client, όσο και στον server από μια socket, που θα σχετιστούν με την σύνδεση TCP που θα εγκατασταθεί από άκρη-σε-άκρη (από τον client στον server). 2) HTTP client στέλνει ένα μήνυμα HTTP request προς τον server μέσω της socket και κατά συνέπεια μέσω της σύνδεσης TCP. Το μήνυμα συμπεριλαμβάνει το path name /cs/home.index. 3) HTTP server λαμβάνει το μήνυμα request μέσω της socket, ανασύρει το αντικείμενο /cs/home.index από τη μνήμη, τοποθετεί το αντικείμενο στο μήνυμα HTTP response και το στέλνει πίσω στον client μέσω της socket. 4) HTTP server υποδεικνύει στο TCP να κλείσει την σύνδεση. Φυσικά το TCP περιμένει, ώσπου να ολοκληρωθούν επιτυχώς οι διαδικασίες του, δηλαδή ώσπου να λάβει ACK από την άλλη πλευρά, πριν να κλείσει την σύνδεση. 5) HTTP client λαμβάνει το μήνυμα response. Ολοκληρώνονται οι διαδικασίες του TCP και η σύνδεση κλείνει. Το HTTP response μήνυμα δείχνει ότι το αντικείμενο στο μήνυμα message είναι ένα αρχείο HTML. Ο client ανασύρει το αρχείο the HTML και βρίσκει αναφορές για τα 10 JPEG αντικείμενα. 6) Τα προηγούμενα βήματα επαναλαμβάνονται συμπεριλαμβανομένης της εγκατάστασης της σύνδεσης TCP ξεχωριστά για καθένα από τα JPEG αντικείμενα. σελ 19

Ανάλυση Καθυστέρησης σε HTTP με μη-επίμονη σύνδεση 1ο Βήμα είναι η εγκατάσταση της TCP σύνδεσης. Καθυστέρηση: 1 Round Trip Time (RTT) 2o Βήμα η αίτηση για το αρχείο Καθυστέρηση :1 Round Trip Time (RTT) 3ο Βήμα η μεταφορά του αρχείου Καθυστέρηση: Εξαρτάται από το ρυθμό μετάδοσης Τα παραπάνω βήματα εκτελούνται για κάθε αντικείμενο της ιστοσελίδας ξεχωριστά. Συνολική Καθυστέρηση (για κάθε αντικείμενο) 2RTT + Χρόνος Μεταφοράς Αντικειμένου Συνολική Καθυστέρηση (για n αντικείμενα που περιέχει η σελίδα) n*(2*rtt mean ) + n * (Μέσος Χρόνος Μεταφοράς Αντικειμένου) σελ 20

HTTP με επίμονη σύνδεση Στην περίπτωση HTTP με επίμονη σύνδεση, η σύνδεση TCP παραμένει ενεργή μετά τη λήψη της πρώτης HTTP response σε μια HTTP request. Αυτό έχει σαν αποστέλλονται οι πιθανές επόμενες requests προς τον ίδιο server πάνω από την ίδια TCP σύνδεση. Στο HTTP με επίμονη ΤCP σύνδεση υπάρχουν δύο υπο-περιπτώσεις: HTTP χωρίς συνεχή παροχή (no pipelining) Στην περίπτωση αυτή νέα HTTP requests στέλνονται μόνο αφού έχει παραληφθεί το προηγούμενο HTTP response HTTP με συνεχή παροχή (pipelining) Στην περίπτωση αυτή τα HTTP requests μπορούν να αποστέλλονται συνεχώς χωρίς απαραίτητα να έχουν παραληφθεί τα προηγούμενα HTTP responses. Είναι φανερό ότι το HTTP με επίμονη σύνδεση και ιδιαίτερα αυτό με συνεχή παροχή βελτιώνει την συνολική απόκριση και επίδοση, όπως αυτή γίνεται κατανοητή από ένα χρήστη της υπηρεσίας web. Σαν αποτέλεσμα το default mode είναι το HTTP με επίμονη σύνδεση και συνεχή παροχή (persistent with pipelining). σελ 21

HTTP Request Message To HTTP έχει δύο τύπους μηνυμάτων: HTTP Request HTTP Response Τα μηνύματα είναι σε μορφή ASCII. HTTP Request Message GET /cs/page.html HTTP/1.1 Host: www.uth.gr Connection: close User-agent: Mozilla/5.0 Accept-language: fr Request Line που περιέχει 1) την Μέθοδο, GET ή PUT ή POST ή HEAD ή DELETE (συνήθως η GET) 2) Το URL 3) Tη version του HTTP Host Line που περιέχει τον Host Connection Line που σηματοδοτεί αν η σύνδεση είναι persistent ή όχι (όπως εδώ). User-agent Line που ορίζει τον τύπο του client για λόγους συμβατότητας. Language line που ορίζει την γλώσσα του αντικειμένου που προτιμά ο client. σελ 22

HTTP Request Message To entity body είναι άδειο στο GET αλλά χρησιμοποιείται στο POST σελ 23

Συμπληρώνοντας Φόρμες Μέθοδος POST Οι Ιστοσελίδες περιέχουν συχνά φόρμες στις οποίες συμπληρώνουμε στοιχεία Παράδειγμα τα search engines Με τη χρήση της μεθόδου Post τα δεδομένα που συμπληρώνουμε στην φόρμα προωθούνται στον server μέσα στο πεδίο entity body. Μέθοδος GET Είναι όμως δυνατή και η χρήση της μεθόδου GET σε φόρμες. Με τη χρήση της μεθόδου GET τα δεδομένα που συμπληρώνουμε στη φόρμα μπαίνουν στο πεδίο URL του request μετά από τον χαρακτήρα (?) Υπάρχει περιορισμός στο πλήθος των δεδομένων, που μπορούν να μεταφερθούν κατά αυτό τον τρόπο. Ο περιορισμός εξαρτάται από τον browser. Παράδειγμα: www.google.com/search?obama&visit&greece σελ 24

Άλλες Μέθοδοι Μέθοδος HEAD Παρόμοια με την GET αλλά το response δεν περιέχει το αποτέλεσμα (δηλαδή το αντικείμενο) αλλά μόνο το Header. Χρησιμοποιείται συχνά για λόγους debugging. Μέθοδος PUT Επιτρέπει στον χρήστη να ανεβάσει ένα αντικείμενο σε συγκεκριμένη διαδρομή (directory) ενός server Χρησιμοποιείται από εφαρμογές που χρειάζεται να ανεβάσουν αντικείμενα σε Web servers Μέθοδος DELETE Επιτρέπει στον χρήστη ή σε μια εφαρμογή να απαλείψει ένα αντικείμενο από έναν Web server σελ 25

HTTP Response Message HTTP/1.1 200 OK Connection: close Date: Tue, 15 Dec 2015 15:44:04 GMT Server: Apache/2.2.3 (CentOS) Last-Modified: Tue, 09 Aug 2015 15:11:03 GMT Content-Length: 6821 Content-Type: text/html (data data data data data...) HTTP Response Message Status Line που περιέχει 1) Tη version του HTTP 2) Κωδικός Κατάστασης 3) Φράση Για παράδειγμα, το ΟΚ σημαίνει ότι βρέθηκε το αντικείμενο και αποστέλλεται Connection Line που σηματοδοτεί ότι ο Server κλείσει την TCP σύνδεση αμέσως μετά. Date Line με την ημερομηνία και την ώρα που στάλθηκε το response. Server Line με την χαρακτηριστικά του server. Last-Modified που ορίζει πότε το αντικείμενο δημιουργήθηκε ή άλλαξε για τελευταία φορά. Content-Length line που ορίζει το μέγεθος του αντικειμένου σε bytes. Content-type line που ορίζει το είδος του αντικειμένου. σελ 26

HTTP Response Message Περιέχει το αντικείμενο σελ 27

Παραδείγματα Κωδικών 200 OK Επιστρέφεται σε περίπτωση επιτυχίας. Το αντικείμενο ακολουθεί μέσα στο μήνυμα 301 Moved Permanently το αντικείμενο μετακινήθηκε, η νέα θέση καθορίζεται στο location line στο ίδιο μήνυμα 400 Bad Request Επιστρέφεται εφόσον το μήνυμα αίτησης δεν γίνει κατανοητό από τον server 404 Not Found Επιστρέφεται εφόσον το αντικείμενο δεν υπάρχει στον server 505 HTTP Version Not Supported Επιστρέφεται εφόσον ο server δεν υποστηρίζει την HTTP version. σελ 28

Cookies Ένα HTTP cookie (web cookie, Internet cookie, ή απλά cookie) είναι ένα μικρό αρχείο δεδομένων που αποστέλλεται από μια ιστοσελίδα και φυλάσσεται στο web browser του χρήστη. Όποτε ο χρήστης επισκέπτεται την ιστοσελίδα, ο web browser στέλνει το cookie πίσω στο server ειδοποιώντας με τον τρόπο αυτό την ιστοσελίδα για προηγούμενες ενέργειες. Τα Cookies έχουν σχεδιαστεί, έτσι ώστε οι ιστοσελίδες να αποκτούν πληροφορία για την κατάσταση (state) του χρήστη (π.χ. τα αντικείμενα που προστέθηκαν σε μια shopping list) ή για να κρατούν πληροφορία για τις δραστηριότητες κατά το browsing (π.χ. αν έκανε login ή ποιές ιστοσελίδες επισκέφτηκε κλπ). Τα cookies μπορούν επίσης να κρατήσουν πληροφορία για passwords και περιεχόμενο που ο χρήστης έβαλε σε μια φόρμα (π.χ. credit card number ή διεύθυνση του). Τα cookies συνεισφέρουν θετικά στην εμπειρία του e-shopping και του browsing, γενικότερα όμως αποτελούν δυνητικά σοβαρή απειλή για την ιδιωτικότητα. σελ 29

Παράδειγμα χρήσης Cookies σελ 30

Domain Name System (DNS) σελ 31

Διευθύνσεις, Ονόματα και ρόλος του DNS Οι διευθύνσεις IP περιέχουν την πληροφορία που χρησιμοποιείται για τη δρομολόγηση Αποτελούνται από 32 bytes (IPv4) και απεικονίζονται με dotted δεκαδική μορφή (π.χ. 172.16.254.1) Προσδιορίζουν διεπαφές (Interfaces) υπολογιστών ή δρομολογητών. Κάθε host ή router διαθέτει τόσες διευθύνσεις IP όσα και οι διεπαφές του με το διαδίκτυο (Φυσικά Interface) Τα ονόματα είναι αλφαριθμητικά με στόχο να γίνονται κατανοητά από ανθρώπους (π.χ. www.google.com κλπ) Το Σύστημα Ονομασίας Περιοχών (Domain Name System, DNS) είναι μια κατανεμημένη βάση δεδομένων στο διαδίκτυο που επιτρέπει τη μετάφραση ανάμεσα σε ονόματα και διευθύνσεις IP. Πρόκειται για μια παγκόσμια, κατανεμημένη, επεκτάσιμη και αξιόπιστη βάση δεδομένων. Στην πράξη το DNS είναι κάτι σαν τηλεφωνικός κατάλογος του Διαδικτύου. σελ 32

Domain Name System (DNS) Το DNS είναι: Μια Κατανεμημένη Βάση Δεδομένων, η οποία υλοποιείται μέσω μιας ιεραρχίας εξυπηρετητών. Οι DNS Servers είναι συνήθως UNIX υπολογιστές που χρησιμοποιούν το λογισμικό Berkeley Internet Name Domain (BIND). Ένα πρωτόκολλο επιπέδου εφαρμογής που επιτρέπει σε hosts να απευθύνουν ερωτήσεις (queries) στην κατανεμημένη βάση δεδομένων DNS με στόχο την μετατροπή ονομάτων σε διευθύνσεις (resolution/ανάλυση). Το πρωτόκολλο DNS χρησιμοποιεί την πόρτα 53 και το UDP σαν μηχανισμό μεταφοράς. Το DNS πρωτόκολλο είναι τύπου client-server O client στο DNS λέγεται Resolver (Αναλυτής) Το DNS ορίζεται στα RFCs 1034 & 1035 σελ 33

Ιεραρχία των Ονομάτων Τα ονόματα στο www είναι κατηγοριοποιημένα σε διαφορετικές περιοχές (domains) Αυτά αναλύονται σε υπο-περιοχές (sub-domains) που μπορεί να παρασταθούν μ ένα δέντρο Στην κορυφή υπάρχουν τα Top Level Domains (TLDs) που υποδιαιρούνται στα generic TLDs (com, org, net, edu, gov κλπ) και τα country-code TLDs (uk, fr, ca, jp, gr κλπ) Ένα όνομα αποτελείται από ετικέτες που χωρίζονται με τελείες (π.χ. www.google.com). Κάθε ετικέτα έχει μήκος μέχρι 63 χαρακτήρες και το συνολικό όνομα μπορεί να έχει μέχρι 255 χαρακτήρες. σελ 34

Ιεραρχία των Servers του DNS H Ιεραρχία των DNS Servers περιλαμβάνει: Root DNS servers Υπάρχουν 13 root DNS servers, οι περισσότεροι εκ των οποίων βρίσκονται στην Β. Αμερική. Οι βασικοί λόγοι που υπάρχουν πολλαπλοί Root DNS Server είναι: Να αποφευχθεί ένα σημείο αστοχίας (Single-Point-of-Failure) Να υπάρξει διαμοιρασμός του φορτίου (load balancing) Να διευκολυνθεί η συντήρηση Top-level domain (TLD) servers Οι servers αυτοί είναι υπεύθυνοι για τα generic TLDs (com, org, net, edu, gov κλπ) και τα country-code TLDs (uk, fr, ca, jp, gr κλπ). Authoritative DNS servers Κάθε οργανισμός με host που είναι προσβάσιμοι από το Internet (π.χ. Web servers, mail servers) πρέπει να ενημερώνει τα DNS αρχεία που δίνουν την αντιστοίχιση των προσβάσιμων ονομάτων που διαχειρίζεται σε διευθύνσεις IP. Ένας authoritative DNS server φιλοξενεί τις ενημερωμένες DNS εγγραφές. Ο server αυτός μπορεί να ανήκει στον οργανισμό ή να ανήκει σε κάποιο πάροχο της υπηρεσίας αυτής. Τα πανεπιστήμια και οι μεγάλες εταιρείες συνήθως υλοποιούν και ενημερώνουν δικούς τους Πρωτεύοντες (primary) and Δευτερεύοντες (secondary/backup) authoritative DNS servers. σελ 35

Root DNS Servers Οι 13 root DNS servers απεικονίζονται στο χάρτη. Υπάρχουν 13 servers εξαιτίας της χρήσης του UDP και των 512 bytes που είναι το μέγιστο μήκος του πακέτου UDP, ώστε να μην συμβεί κατάτμηση των πακέτων (fragmentation). σελ 36

Τοπικός DNS Server Ένας Τοπικός DNS Server (Default Name Server) δεν ανήκει στην ιεραρχία των DNS servers αλλά έχει σημαντικό ρόλο στην αρχιτεκτονική του DNS. Κάθε οργανισμός, εταιρεία, πάροχος έχει ένα Τοπικό DNS Server. Όταν ένας host συνδέεται στο δίκτυο του παρόχου, τότε ο πάροχος δίνει μια λίστα με ένα τουλάχιστον ή περισσότερους DNS servers (μέσω του Dynamic Host Configuration Protocol, DHCP). Όταν ένας host αποστέλλει μια DNS αναζήτηση (query), τότε η αναζήτηση αυτή αποστέλλεται στον Τοπικό DNS Server, ο οποίος δρα σαν ενδιάμεσος, προωθώντας την αναζήτηση (αν χρειάζεται) προς την ιεραρχία των DNS servers. Η προώθηση των αναζητήσεων γίνεται με δύο δυνατούς τρόπους: Επαναληπτική Αναζήτηση (Iterative Query) Αναδρομικής Αναζήτηση (Recursive Query) σελ 37

Επαναληπτική Αναζήτηση (Iterative Query) Ο host cis.poly.edu ανακαλύπτει την IP Διεύθυνση του gaia.cs.umass.edu με επαναληπτική αναζήτηση σελ 38

Αναδρομικής Αναζήτηση (Recursive Query) Ο host cis.poly.edu ανακαλύπτει την IP Διεύθυνση του gaia.cs.umass.edu με αναδρομική αναζήτηση σελ 39

Εγγραφές DNS Οι εγγραφές στην κατανεμημένη βάση δεδομένων του DNS ονομάζονται RR (Resource Records - Εγγραφές Πόρων) Τα resource records αποθηκεύονται σε αρχεία στους servers. Τα resource records είναι της μορφής (Όνομα, Τιμή, Τύπος, Χρόνος Ζωής) Όνομα (Name): Hostname, domain name ή alias ανάλογα με τον τύπο. Τιμή (Value): IP Διεύθυνση, hostname ή canonical name ανάλογα με τον τύπο Τύπος (Type): Type=A: Τότε το όνομα είναι το hostname (π.χ. www.google.com) και η τιμή είναι η IP Διεύθυνση. Άρα, το record αυτό δίνει την ζητούμενη μετάφραση από όνομα σε διεύθυνση. Type=NS: τότε το όνομα είναι ένα domain (π.χ. google.com) και τιμή είναι το hostname ενός Authoritative DNS Server, o οποίος θα αναλάβει να κάνει το resolution για το συγκεκριμένο όνομα. Type=CNAME: τότε το όνομα είναι ένα alias (ψευδώνυμο) και τιμή το κανονικό όνομα (canonical name) του host. Type=MX: τότε το όνομα είναι ένα alias (ψευδώνυμο) ενός e-mail server και τιμή το κανονικό όνομα (canonical name) του e-mail server. Χρόνος ζωής (TTL) Ο χρόνος ζωής εξυπηρετεί την τοπική αποθήκευση των ονομάτων. Όταν ένας (οποιοσδήποτε) εξυπηρετητής μάθει μια αντιστοίχιση, μπορεί να την αποθηκεύσει τοπικά για το διάστημα του χρόνου ζωής. Αποφεύγονται έτσι περιττές αναζητήσεις και επίσης επιταχύνεται η διαδικασία. Η τιμή 0 στο χρόνο ζωής σημαίνει ότι τα αποτελέσματα της αναζήτησης δεν πρέπει να αποθηκεύονται τοπικά. σελ 40

Μηνύματα DNS Identification (Tαυτότητα): αριθμός 16 bit για την ερώτηση, τίθεται από τον αποστολέα, η απάντηση χρησιμοποιεί τον ίδιο αριθμό, βοηθάει να υπάρξει αντιστοίχιση μεταξύ ερώτησης και απάντησης. Flags (Σημαίες): Query/Reply (Ερώτηση/Απάντηση) Authoritative answer (Επίσημη Απάντηση) Response truncated (<512 byte) Recursion Desirable (επιθυμητή αναδρομή για query) Recursion Available (διαθέσιμη αναδρομή για reply) σελ 41

Ευχαριστώ! σελ 42