ΚΕΦΑΛΑΙΟ 10. Δικτυακός προγραμματισμός Εισαγωγή

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΚΕΦΑΛΑΙΟ 10. Δικτυακός προγραμματισμός Εισαγωγή"

Transcript

1 ΚΕΦΑΛΑΙΟ 10 Δικτυακός προγραμματισμός Σύνοψη Σε αυτό το κεφάλαιο πραγματευόμαστε το δικτυακό προγραμματισμό μέσω της αφαίρεσης των sockets. Προαπαιτούμενη γνώση Η κατανόηση των εννοιών και παραδειγμάτων σε αυτό το κεφάλαιο απαιτεί βασική γνώση της γλώσσας Python, όπως παρουσιάστηκε στα Κεφάλαια 1-8 του παρόντος συγγράμματος Εισαγωγή Ο δικτυακός προγραμματισμός στηρίζεται στην αφαίρεση των sockets, η οποία επινοήθηκε στα πλαίσια του 4.2BSD Unix operating system, στις αρχές της δεκαετίας του `80 (McKusick, Bostic, Karels, & Quarterman, 1996). Η διεπαφή εφαρμογής-χρήστη (application-programmer interface ή API) των sockets τυποποιήθηκε μεταγενέστερα, εντός του προτύπου POSIX. Ένα socket ορίζει μια «θύρα» μέσω της οποίας μια διεργασία επικοινωνεί με μια άλλη (μέσω της αντίστοιχης «θύρας» σε εκείνη τη διεργασία) πάνω από ένα δίκτυο (Kurose & Ross, 2005). Σε αυτό το σύγγραμμα θα ασχοληθούμε με τρία είδη επικοινωνίας: 1. Επικοινωνία «ένας-προς-έναν» μεταξύ δύο sockets σε σύνδεση: Τα δύο sockets είναι σε σύνδεση από τη στιγμή που η σύνδεση δημιουργείται μέχρι τη στιγμή που τερματίζεται. Αυτού του είδους η επικοινωνία υλοποιείται με το πρωτόκολ- 254 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

2 λο TCP και κληρονομεί τις ιδιότητές του: αξιόπιστη ροή bytes (δε διατηρεί όρια μεταξύ μηνυμάτων) και εν σειρά. 2. Επικοινωνία «ένας-προς-έναν» μεταξύ δύο sockets χωρίς σύνδεση μεταξύ τους: Ένα socket μπορεί να στείλει και λάβει δεδομένα από οποιοδήποτε άλλο socket. Αυτού του είδους η επικοινωνία υλοποιείται από το πρωτόκολλο UDP και κληρονομεί τις ιδιότητές του: αναξιόπιστη, βάσει μηνυμάτων, χωρίς να εγγυάται ότι τα μηνύματα παραδίδονται με τη σειρά με την οποία στέλνονται. 3. Επικοινωνία «ένας-προς-πολλούς» μέσα σε μια ομάδα sockets: Ένα socket μπορεί να στείλει δεδομένα προς μια ομάδα από sockets, και να λάβει δεδομένα από οποιοδήποτε άλλο socket στην ομάδα. Αυτού του είδους η επικοινωνία υλοποιείται από το πρωτόκολλο IP multicast. Σε προγραμματιστικό επίπεδο προσομοιάζει την επικοινωνία τύπου (2) επικοινωνία χωρίς σύνδεση- με πρόσθετες διεπαφές για τη διαχείριση της ομάδας Τo module socket Το module socket παρέχει συναρτήσεις για τη βασική επικοινωνία μεταξύ δύο διεργασιών. Στην έναρξη μιας σύνδεσης οι δύο διεργασίες έχουν τους διακριτούς ρόλους του πελάτη (client) και του διακομιστή (server), με βάση το ποια ξεκινά ενεργά τη σύνδεση και ποια την αποδέχεται. Μετά το στήσιμο της σύνδεσης, το ρόλο του πελάτη έχει αυτός ο οποίος στέλνει αιτήσεις, ενώ ο διακομιστής είναι αυτός που επεξεργάζεται τις αιτήσεις στέλνοντας πίσω απαντήσεις σε αυτές (ωστόσο, οι διεργασίες μπορεί να αλλάζουν ρόλους κατά περίπτωση). Η χρήση του API των sockets τυπικά ακολουθεί την παρακάτω ροή: Οι δύο πλευρές δημιουργούν (η καθεμία από την πλευρά της) ένα αντικείμενο τύπου socket s. Ο διακομιστής προετοιμάζεται να δεχθεί συνδέσεις, καλώντας s.bind (συσχετίζοντας το socket του με κάποια πόρτα και προαιρετικά με κάποια IP διεύθυνση) και s.listen. Ο πελάτης στη συνέχεια προσπαθεί να συνδέσει το τοπικό socket με το απομακρυσμένο (σε διεργασία στο ίδιο ή άλλο μηχάνημα) καλώντας s.connect. Μια εισερχόμενη αίτηση για σύνδεση γίνεται δεκτή και ένα νέο socket δημιουργείται, όταν ο διακομιστής καλέσει s.accept. Σημειώστε ότι το αρχικό socket του 255 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

3 διακομιστή (υπό μια έννοια το «μητρικό» του συνδεμένου socket) συνεχίζει να είναι σε κατάσταση αναμονής και ακρόασης για νέες συνδέσεις και δε συνδέεται το ίδιο ποτέ με άλλα sockets. Όταν ένα socket συνδεθεί, μπορεί να χρησιμοποιηθεί για αποστολή και παραλαβή δεδομένων μέσω των συναρτήσεων send και recv αντίστοιχα. Η επικοινωνία πάνω από σύνδεση τερματίζεται με κλήση της συνάρτησης close και από τις δύο διεργασίες. Ο σκοπός αυτού του κεφαλαίου είναι να εισαγάγει τον αναγνώστη στη χρήση ενός βασικού συνόλου κλήσεων μέσω παραδειγμάτων Πελάτης και διακομιστής Echo με TCP sockets Σε αυτήν την ενότητα θα μελετήσουμε το παράδειγμα ενός απλού πελάτη ο οποίος στέλνει ένα string και ενός διακομιστή ο οποίος το επιστρέφει αυτούσιο (υλοποιώντας την «ηχώ» ή echo του) πάνω από μια σύνδεση TCP. Η Εικόνα 10.1 υποδεικνύει το διακομιστή που περιμένει («ακούει») για συνδέσεις στην πόρτα Η επιλογή του TCP γίνεται μέσω της σταθεράς SOCK_STREAM στην κλήση δημιουργίας του socket. Όταν συνδεθεί το socket, ο διακομιστής μπαίνει σε ατέρμονο βρόχο επιστρέφοντας ό,τι λαμβάνει πίσω στον πελάτη, τερματίζοντας τη σύνδεση από την πλευρά του, όταν και ο πελάτης τερματίσει τη σύνδεση από τη δική του (η γραμμή if not receiveddata: break, ικανοποιείται όταν κλείσιμο της σύνδεσης από τον πελάτη επιστρέφει null (end of stream) αποτέλεσμα στην κλήση του recv). Το όρισμα στο newsocket.recv είναι 8192, το οποίο είναι το πάνω όριο στο πόσα δεδομένα θα ληφθούν στην κλήση, ωστόσο η κλήση μπορεί να επιστρέψει με λιγότερα δεδομένα. Ο διακομιστής επιστρέφει για να δεχθεί την επόμενη σύνδεση κ.ο.κ. έως ότου ο πελάτης διακόψει τη ροή μέσω Ctrl-C από την κονσόλα. 256 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

4 Εικόνα 10.1 Διακομιστής TCP echo Το παράδειγμα της Εικόνας 10.2 υποδεικνύει έναν απλό TCP πελάτη που συνδέεται στην πόρτα 8888 στο μηχάνημα με IP διεύθυνση (θα μπορούσε να βρίσκεται και στο τοπικό μηχάνημα ή localhost), στέλνει μια ακολουθία από γραμμές δεδομένων (η κάθε γραμμή τερματίζεται με \n), και τυπώνει ό,τι λαμβάνει πίσω από το διακομιστή. 257 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

5 Εικόνα 10.2 Πελάτης TCP echo Στο εργαστήριο ανοίγετε δύο παράθυρα, ένα στο τοπικό μηχάνημα και ένα σε κάποιο απομακρυσμένο (π.χ. το γειτονικό μηχάνημα στο υπολογιστικό περιβάλλον ενός εργαστηρίου). Στο ένα από τα δύο τερματικά εκτελέστε το διακομιστή της Εικόνας Η πόρτα που θα χρησιμοποιήσουμε για το διακομιστή είναι η 8888 για τις ανάγκες αυτού του παραδείγματος, ωστόσο σε εργαστηριακό περιβάλλον υποθέτουμε ότι ο κάθε φοιτητής θέτει την πόρτα σε κάποιο προσωπικό αριθμό όπως π.χ. ο Αριθμός Μητρώου του. Για να ανακαλύψουμε τις IP διευθύνσεις των σταθμών εργασίας σε συστήματα Unix/Linux εκτελούμε την εντολή ifconfig (η οποία βρίσκεται, συνήθως, στο directory /sbin). Στο δεύτερο παράθυρο δοκιμάστε μερικές εκτελέσεις του παραδείγματος της Εικόνας 10.2 προς το διακομιστή. Πολλές φορές είναι χρήσιμο να μπορούμε να έχουμε μια άποψη της επικοινωνίας στο χαμηλότερο επίπεδο, όπως για παράδειγμα της ανταλλαγής TCP μηνυμάτων που υλοποιούν τη διεπαφή socket (Fall & Stevens, 1994). Για αυτόn το σκοπό μπορούμε να χρησιμοποιήσουμε ένα εργαλείο επισκόπησης της δικτυακής επικοινωνίας, όπως το wireshark (Wireshark, 2015). Σ αυτό το σύγγραμμα θα υποθέσουμε ότι ο αναγνώστης έχει εισαγωγική γνώστη της χρήσης του wireshark και θα εστι- 258 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

6 άσουμε στην εφαρμογή του στην επικοινωνία, όταν χρησιμοποιούμε τα παραδείγματα των Εικόνων 10.1 και Ξεκινούμε θέτοντας τις παρακάτω ρυθμίσεις: Φίλτρο tcp, Name resolution for transport layer OFF, Packet bytes OFF, Colorize packet list OFF. Το output του wireshark σε μια τυπική εκτέλεση των παραδειγμάτων των Εικόνων 10.1 και 10.2, φαίνεται στην Εικόνα Αρχικά παρατηρούμε την «τριπλή χειραψία» (3-way handshake) του TCP και τις παραμέτρους της διαπραγμάτευσης μεταξύ των δύο πλευρών (π.χ. το μέγιστο μήκος πακέτου ή maximum segment size (MSS) 1460 bytes, κλπ.). Στη συνέχεια παρατηρούμε την ανταλλαγή μηνυμάτων μεταφοράς δεδομένων της εφαρμογής και επιβεβαιώσεων (ACK), και στο τέλος έχουμε το κλείσιμο των συνδέσεων (FIN) και από τις δύο πλευρές. Εικόνα 10.3 Ανταλλαγή TCP πακέτων κατά τη διάρκεια μιας τυπικής επιτυχούς εκτέλεσης Αν η μία από τις δύο πλευρές τερματίσει (π.χ. με ctrl-c σε κάποια χρονική στιγμή) την εκτέλεση του client ή του server, τις περισσότερες φορές αυτό οδηγεί σε «καθαρό» τερματισμό και της άλλης πλευράς (π.χ. διαβάζοντας 0 bytes σε κάποιο recv και οδηγώντας τη ροή εκτέλεσης σε κάποιο close). 259 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

7 Eξαιρέσεις μπορούν να δημιουργηθούν υπό ειδικές συνθήκες, όπως το κλείσιμο της σύνδεσης, όταν δεν έχουν ακόμα διαβαστεί όλα τα εισερχόμενα bytes σε αυτήν την σύνδεση. Για να πειραματιστούμε με αυτήν την περίπτωση, κλείνουμε τη σύνδεση (ctrl-c) στον client, ενώ: Ο client έχει στείλει δεδομένα, o server τα έχει λάβει και έχει στείλει την απάντησή του. Ο client δεν έχει διαβάσει ακόμα την απάντηση (υπάρχουν bytes στο socket buffer του client). Ο server μπλοκάρει στο recv περιμένοντας την επόμενη αίτηση από τον client. Client Server connect sendall Kill process (B) accept recv recv block block sendall block Εικόνα 10.4 Περίπτωση παραγωγής εξαίρεσης. Η κατάρρευση του client παράγει reset, όταν υπάρχουν bytes προερχόμενα από τον server στο socket buffer, διαφορετικά κλείνει καθαρά η σύνδεση Ο server παίρνει εξαίρεση Connection reset by peer (104) βγάζοντάς τον από το recv και τερματίζοντας το πρόγραμμα. Στο παρακάτω wireshark dump παρατηρούμε (α) το στήσιμο της πρώτης σύνδεσης, (β) την αποστολή της πρώτης αίτησης (7 bytes) και το ACK του server, (γ) την απάντηση του server και το ACK του client, (δ) το RST πακέτο από τον client προς τον server, το οποίο μεταφέρει την 260 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

8 πληροφορία ότι τα τελευταία bytes από τον server προς τον client δε θα διαβαστούν ποτέ (αντικαθιστά το FIN που κανονικά θα έστελνε ο client). To RST εξαφανίζεται και αντικαθίσταται από ένα καθαρό κλείσιμο της σύνδεσης αν το Ctrl-C συμβεί, αφού διαβαστούν τα δεδομένα στον client. Εικόνα 10.5 Ανταλλαγή TCP πακέτων κατά τη διάρκεια μιας ανεπιτυχούς εκτέλεσης (ctrl-c στον client) 261 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

9 10.4 Πελάτης και διακομιστής Echo με UDP sockets Τα παραδείγματα των Εικόνων 10.6 και 10.7 υποδεικνύουν έναν πελάτη και διακομιστή echo που χρησιμοποιούν UDP (datagram) αντί για TCP (stream) sockets. Εικόνα 10.6 Διακομιστής echo με UDP Εικόνα 10.7 Πελάτης echo με UDP Δοκιμάστε μερικές εκτελέσεις των παραδειγμάτων των Εικόνων 10.6 και 10.7 σε διαφορετικά τερματικά, όπως κάναμε και στην περίπτωση του TCP. Σημειώστε μια σημαντική διαφορά στα χαρακτηριστικά αξιοπιστίας μεταξύ του UDP και του TCP. σε περίπτωση που το datagram το οποίο στέλνει ο πελάτης ή αυτό που επιστρέφει ο διακομιστής χαθούν, ο πελάτης δε λαμβάνει καμία ειδοποίηση. 262 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

10 Τα UDP sockets έχουν μια συνάφεια από άποψη χαρακτηριστικών αξιοπιστίας και διεπαφής εφαρμογής (API) με την πολυεκπομπή IP (multicast), η οποία είναι ένας μηχανισμός επικοινωνίας μεταξύ ενός αποστολέα και περισσοτέρων του ενός παραληπτών, με χρήση του πρωτοκόλλου IP. Η πολυεκπομπή, γενικότερα, είναι μια μορφή ομαδικής επικοινωνίας κατά την οποία κάθε μήνυμα που στέλνεται από τον αποστολέα, λαμβάνεται από όλα τα μέλη της ομάδας των παραληπτών. Η ομάδα των παραληπτών ταυτοποιείται μέσω ειδικών IP διευθύνσεων μεταξύ και ( /4). Μορφές πολυεκπομπής που προσφέρουν πρόσθετα χαρακτηριστικά όπως αξιοπιστία, σειριοποίηση μηνυμάτων (από έναν ή διαφορετικούς αποστολείς) κλπ. αποτελούν αντικείμενο μελέτης στην περιοχή των κατανεμημένων συστημάτων και μέρος της ύλης συγγραμμάτων, όπως το (Coulouris, Dollimore, & Kindberg, 2005). Τα Παραδείγματα των Εικόνων 10.8 και 10.9 υποδεικνύουν την προγραμματιστική χρήση της πολυεκπομπής IP μέσω της διεπαφής εφαρμογής sockets. Εικόνα 10.8 Παραλήπτης πολυεκπομπής UDP/IP 263 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

11 Εικόνα 10.9 Αποστολέας πολυεκπομπής UDP/IP Ένα πρόβλημα που, συνήθως, αντιμετωπίζουν διακομιστές οι οποίοι χειρίζονται, ταυτόχρονα, ένα μεγάλο αριθμό συνδέσεων, είναι το γεγονός ότι πολλές κλήσεις όπως accept, recv, send κλπ. ενδέχεται να μπλοκάρουν αν δεν είναι άμεσα ικανοποιήσιμες οι συνθήκες ή διαθέσιμοι οι πόροι που απαιτούνται για την επιτυχή λειτουργία τους. κατά αυτόν τον τρόπο εμποδίζεται και η συνολική πρόοδος του συστήματος, αν ο διακομιστής χρησιμοποιεί ένα και μοναδικό νήμα. Μια τέτοια κατάσταση μπορεί να αποφευχθεί με χρήση πολλαπλών νημάτων, ένα ανά socket, όπως περιγράφεται στο Κεφάλαιο 9. Παρά το πλεονέκτημα της απλότητας μιας τέτοιας προσέγγισης, καθώς αυξάνονται οι συνδέσεις, ανακαλύπτουμε ένα όριο στην κλιμακωσιμότητα, λόγω του αυξανόμενου κόστους διαχείρισης μεγάλου αριθμού νημάτων. Μια άλλη λύση είναι να θέτουμε τα sockets σε κατάσταση μη-μπλοκαρίσματος (χρησιμοποιώντας την κλήση setblocking()), ωστόσο αυτό προϋποθέτει ότι ο μικρός αριθμός νημάτων αναλώνεται στο να ελέγχει, συνεχώς, πότε οι συνθήκες θα επιτρέπουν την επιτυχή κλήση των συναρτήσεων. Ένας τρόπος να αποφύγουμε αυτό το κόστος είναι η χρήση της συνάρτησης select, η οποία επιτρέπει να προσαρμόσουμε τη ροή ελέγχου του προγράμματος στην εξέλιξη των γεγονότων δραστηριότητας των sockets Προγραμματισμός sockets με ροή ελέγχου οδηγούμενη από τα γεγονότα Η μέθοδος προγραμματισμού συστημάτων, σύμφωνα με την οποία η ροή ελέγχου ορίζεται από τα γεγονότα, ακολουθεί τη χρονική τους εξέλιξη, και η οποία εστιάζει 264 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

12 στο χειρισμό τους όταν αυτά συμβούν, έχει μακρά ιστορία. Ο προγραμματισμός συστημάτων σε χαμηλό επίπεδο (π.χ. στο όριο υλικού-λογισμικού) ακολουθεί παραδοσιακά αυτήν την πρακτική. Ο προγραμματισμός με ροή ελέγχου οδηγούμενη απο τα γεγονότα σε υψηλότερο επίπεδο έχει γνωρίσει επιτυχία σε αρκετές περιπτώσεις (Ousterhout, 1996). Ένα event-driven πρόγραμμα αποτελείται από έναν βρόχο γεγονότων (event loop) όπου το νήμα ελέγχου αναμένει ειδοποιήσεις για γεγονότα και τα χειρίζεται όταν συμβούν. Στο δικτυακό προγραμματισμό, τυπικά γεγονότα είναι «ένας πελάτης επιθυμεί τη δημιουργία σύνδεσης», «δεδομένα είναι διαθέσιμα για ανάγνωση σε κάποιο socket», ή «ένα socket έχει τώρα διαθέσιμους πόρους για την αποστολή δεδομένων». Το πρόγραμμα χειρίζεται κάθε γεγονός εκτελώντας ένα σχετικά σύντομο κομμάτι κώδικα. Στην πιο καθαρή μορφή τους, οι ρουτίνες χειρισμού γεγονότων πρέπει να εκτελούνται χωρίς διακοπή (non-preemptive) και γι αυτόν τον λόγο πρέπει να είναι σύντομες. Ο προγραμματισμός με βάση τα γεγονότα, απαιτεί τη χρήση εντολών/συναρτήσεων οι οποίες δεν μπλοκάρουν ώς το πέρας της λειτουργίας τους, αλλά αντ αυτού επιστρέφουν, αφού ξεκινήσουν τη διαδικασία εκτέλεσής τους και ενημερώνουν σε μεταγενέστερο χρόνο για το πέρας της εκτέλεσης της λειτουργίας. Αυτός ο τρόπος λειτουργίας αναφέρεται ως ασύγχρονος. Σε αυτό το κεφάλαιο θα εστιάσουμε στη ροή ελέγχου η οποία οδηγείται από τα γεγονότα, χωρίς την αυστηρή χρήση ασύγχρονων συναρτήσεων. Στο Κεφάλαιο 11 θα μελετήσουμε τον πλήρως ασύγχρονο τρόπο λειτουργίας αυτού του τρόπου προγραμματισμού, μέσω του πλαισίου Twisted Το module select Το module select παρέχει έναν μηχανισμό διαχείρισης γεγονότων τα οποία αφορούν μια ομάδα από sockets με τη γενική χρήση: select(inputs,outputs,excepts,timeout=none) 265 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

13 Οι λίστες inputs, outputs, και excepts περιέχουν αντικείμενα socket τα οποία αναμένουν γεγονότα εισόδου, εξόδου, και συνθήκες εξαίρεσης αντίστοιχα. Το timeout (τύπος float) είναι ο μέγιστος χρόνος αναμονής σε δευτερόλεπτα. Όταν το timeout είναι None, η κλήση μπλοκάρει, μέχρι να συμβεί ένα ή περισσότερα γεγονότα. Όταν το timeout είναι 0, το select επιστρέφει αμέσως, επιστρέφοντας τα γεγονότα που μπορούν να αναφερθούν τη στιγμή εκείνη. Το select επιστρέφει την πλειάδα (i,o,e). Το i είναι μια λίστα (ενδεχομένως, κενή) αντικειμένων που αναφέρουν γεγονότα εισόδου. Το o αντίστοιχα είναι μια λίστα (ενδεχομένως, κενή), αντικειμένων που αναφέρουν γεγονότα εξόδου. Τέλος e είναι μια λίστα (ενδεχομένως, κενή) αντικειμένων που αναφέρουν συνθήκες εξαίρεσης. Αν το timeout είναι None και η κλήση select επιστρέψει, τότε τουλάχιστον ένα από τα i, o, και e δεν είναι άδειο. Το παράδειγμα της Εικόνας χρησιμοποιεί το select για να υλοποιήσει τη λειτουργικότητα του διακομιστή του παραδείγματος της Εικόνας 10.1, με την πρόσθετη ικανότητα να μπορεί να εξυπηρετήσει ταυτόχρονα οποιοδήποτε αριθμό από πελάτες. Εκτελέστε το παράδειγμα της Εικόνας σε ένα από τα τερματικά και δοκιμάστε να συνδεθείτε στο διακομιστή από περισσότερους του ενός πελάτες (θα χρειαστείτε, ενδεχομένως, περισσότερα των δύο τερματικών σε αυτήν την εξάσκηση). Ο προγραμματισμός σε αυτό το επίπεδο είναι αρκετά περίπλοκος, όπως φαίνεται και από τη δομή του κώδικα της Εικόνας I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

14 Εικόνα Διακομιστής TCP echo που χρησιμοποιεί select 267 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

15 10.7 Επίλογος Σε αυτό το κεφάλαιο μελετήσαμε την αφαίρεση των sockets και την υλοποίησή της στο module select της Python. Είδαμε παραδείγματα προγραμματισμού πελάτη-διακομιστή με χρήση sockets πάνω απο TCP, UDP, και IP multicast και τρόπους με τους οποίους μπορούμε να ενδοσκοπήσουμε την επικοινωνία σε επίπεδο πρωτοκόλλου μεταφοράς με χρήση εργαλείων όπως το Wireshark. Στη συνέχεια μελετήσαμε το δικτυακό προγραμματισμό με βάση τα γεγονότα και τη διεπαφή select. Αυτή η γνώση επιτρέπει στον προγραμματιστή της Python να υλοποιήσει σημαντική λειτουργικότητα δικτυακού διακομιστή με περιορισμένη χρήση νημάτων, επιτυγχάνοντας καλύτερη κλιμακωσιμότητα συγκριτικά με τη χρήση πολλαπλών νημάτων, ένα ανά socket. Ωστόσο ο παραγόμενος κώδικας σε αυτήν την περίπτωση είναι αρκετά πολύπλοκος. Στο επόμενο κεφάλαιο θα μελετήσουμε το πλαίσιο προγραμματισμού (Twisted) το οποίο απλοποιεί σημαντικά τον ασύγχρονο δικτυακό προγραμματισμό, με βάση τη ροή γεγονότων. Βιβλιογραφία/Αναφορές Coulouris, G., Dollimore, J., & Kindberg, T. (2005). Distributed systems: Concepts and Design (4th Edition). Addison-Wesley Longman, Inc. Fall, K., & Stevens, R. (1994). TCP/IP Illustrated, Volume 1: The Protocols (Second Edition). Addison-Welsey Publishing Company. Kurose, J. F., & Ross, K. W. (2005). Computer Networking A Top-Down Approach Featuring the Internet. Pearson Education, Inc. McKusick, K., Bostic, K., Karels, M. J., & Quarterman, J. S. (1996). The Design and Implementation of the 4.4 BSD Operating System. Addison-Wesley Longman, Inc. Ousterhout, J. (1996). Why threads are a bad idea (for most purposes). In USENIX Winter Technical Conference. San Diego, CA. Wireshark. (2015). Wireshark Network Protocol Analyzer. Retrieved from wireshark.org/ 268 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

16 Κριτήρια αξιολόγησης Κριτήριο αξιολόγησης 1 (Βαθμός δυσκολίας: ) Ο αναγνώστης καλείται να πειραματιστεί με τα προγράμματα των Εικόνων 10.1 και 10.2 (TCP server, client) και με τη χρήση του wireshark στην πλευρά του client, αναπαράγοντας το output της Εικόνας Στη συνέχεια ο αναγνώστης καλείται να πειραματιστεί με περιπτώσεις διακοπής της διεργασίας (ctrl-c) στην πλευρά του client, αναπαράγοντας το output της Εικόνας Κριτήριο αξιολόγησης 2 (Βαθμός δυσκολίας: ) Η άσκηση αυτή σας ζητά να υλοποιήσετε ένα μηχανισμό πολυεκπομπής (multicasting) μεταξύ ενός αποστολέα και περισσοτέρων του ενός παραληπτών πάνω απο συνδέσεις TCP. Η πολυεκπομπή είναι μια μορφή ομαδικής επικοινωνίας κατά την οποία κάθε μήνυμα που στέλνεται απο τον αποστολέα λαμβάνεται απο όλα τα μέλη της ομάδας των παραληπτών. Ο αποστολέας γνωρίζει εκ των προτέρων τον αριθμό των παραληπτών (έστω Ν) και περιμένει τις αιτήσεις συνδέσεών τους. Μετά τη δημιουργία των Ν συνδέσεων προχωρά στην αποστολή ενός αριθμού μηνυμάτων, ενδεχομένως με κάποια χρονική καθυστέρηση μεταξύ τους, προς την ομάδα των παραληπτών. Ο αποστολέας θεωρεί ότι ένα μήνυμα το οποίο πολυεκπέμπει, έχει ληφθεί όταν λάβει επιβεβαιώσεις απο όλους τους παραλήπτες. Σε αυτήν την άσκηση υποθέστε ότι ο αποστολέας πολυεκπέμπει την ώρα της 269 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

17 ημέρας, ανά δευτερόλεπτο, προς τρεις (3) παραλήπτες. Εκτός της ώρας της ημέρας, κάθε μήνυμα του αποστολέα πρέπει να περιέχει και έναν αύξοντα αριθμό σειράς. Για τις υλοποιήσεις μπορείτε να επεκτείνετε τον κώδικα των Εικόνων 10.1 και Xρησιμοποιήστε τουλάχιστον δύο μηχανήματα για να εγκαταστήσετε και εκτελέσετε τα μέρη του συστήματός σας. Κριτήριο αξιολόγησης 3 (Βαθμός δυσκολίας: ) Η άσκηση αυτή σας ζητά να υλοποιήσετε ένα μηχανισμό πολυεκπομπής (multicasting) μεταξύ ενός αποστολέα και περισσοτέρων του ενός παραληπτών πάνω απο συνδέσεις TCP με χρήση του API select στον αποστολέα. Ο αποστολέας δε γνωρίζει εκ των προτέρων τον αριθμό των παραληπτών και έτσι θα πρέπει να χειρίζεται αιτήσεις συνδέσεων ταυτόχρονα με το χειρισμό των υπαρχουσών συνδέσεων. Ο αποστολέας θεωρεί ότι ένα μήνυμα το οποίο πολυεκπέμπει έχει ληφθεί, όταν λάβει επιβεβαιώσεις από όλους τους παραλήπτες. Υποθέστε ότι ο αποστολέας πολυεκπέμπει την ώρα της ημέρας, ανά 5 δευτερόλεπτα προς όσους παραλήπτες είναι διαθέσιμοι. Εκτός της ώρας της ημέρας, κάθε μήνυμα του αποστολέα πρέπει να περιέχει και έναν αύξοντα αριθμό σειράς. Για τις υλοποιήσεις μπορείτε να επεκτείνετε τον κώδικα των Εικόνων 10.2 και Xρησιμοποιήστε τουλάχιστον δύο μηχανήματα για να εγκαταστήσετε και εκτελέσετε τα μέρη του συστήματός σας. 270 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

18 271 I Κ. ΜΑΓΚΟΥΤΗΣ, Χ. ΝΙΚΟΛΑΟΥ, Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό με Python

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

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

Διαβάστε περισσότερα

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

Διαβάστε περισσότερα

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Απρίλιος 2016 Περίγραμμα παρουσίασης 1 Εισαγωγή 2 Δικτυακά

Διαβάστε περισσότερα

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

Εξοικείωση με τις εντολές ipconfig και ping Διαχείριση Δικτύων Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Ηπείρου Εργαστηριακή Άσκηση Εξοικείωση με τις εντολές ipconfig και ping Σημείωση : Η άσκηση αναφέρεται σε εντολές των Windows. Υπάρχουν παρόμοιες

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 11: Sockets Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

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

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός Εισαγωγή Επανάληψη ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Στερεάς Ελλάδας Δήλωση Οι διαφάνειες βασίζονται στα βιβλία: (1) Computer Networking: A Top Down Approach

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

Διαβάστε περισσότερα

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M. ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26 Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.: 43 Άσκηση 3 Μια αξιόπιστη multicast υπηρεσία επιτρέπει σε έναν

Διαβάστε περισσότερα

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

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

Διαβάστε περισσότερα

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

Διαβάστε περισσότερα

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2011-20112 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη 15 Δεκεμβρίου 2011 Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις 1. Θεωρήσετε

Διαβάστε περισσότερα

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

Διαβάστε περισσότερα

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

Διαβάστε περισσότερα

Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή

Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή Ζητήματα Σχεδίασης Λογισμικού Εξυπηρετητή Διαδικτυακός και Ταυτόχρονος Προγραμματισμός 1 Ταυτόχρονοι και Επαναληπτικοί Εξυπηρετητές Επαναληπτικός εξυπηρετητής: επεξεργάζεται μόνο μία αίτηση τη φορά. Ταυτόχρονος

Διαβάστε περισσότερα

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

Κεφάλαιο 7.3. Πρωτόκολλο TCP Κεφάλαιο 7.3 Πρωτόκολλο TCP Πρωτόκολλο TCP Το πρωτόκολλο Ελέγχου Μετάδοσης (Transmission Control Protocol, TCP) είναι το βασικό πρωτόκολο του Επιπέδου Μεταφοράς του μοντέλου TCP/IP. Παρέχει υπηρεσίες προσανατολισμένες

Διαβάστε περισσότερα

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

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Μέρος 1ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Εισαγωγή στην Τεχνολογία TCP/IP To TCP/IP σημαίνει Transmission Control Protocol / Internet Protocol και θα μπορούσε να θεωρηθεί ότι πρόκειται

Διαβάστε περισσότερα

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

Διαβάστε περισσότερα

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

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

Διαβάστε περισσότερα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Python Σύνοψη Σε αυτό το κεφάλαιο κάνουμε μια σύντομη εισαγωγή στην Python και στα εργαλεία λογισμικού που θα χρησιμοποιήσουμε στη συνέχεια του συγγράμματος. Προαπαιτούμενη γνώση

Διαβάστε περισσότερα

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

Εργαστήριο Δικτύων Υπολογιστών Εργαστήριο Δικτύων Υπολογιστών 2 η Διάλεξη: TCP/UDP Δικτυακά πρωτόκολλα / εφαρμογές Ports Unix δικτυακές εντολές Transmission Control Protocol - TCP Πρωτόκολλο Mεταφοράς RFC 793 [Postel 1981] Xρησιμοποιεί

Διαβάστε περισσότερα

Εργαστήριο Ethereal: ICMP

Εργαστήριο Ethereal: ICMP Εργαστήριο Ethereal: ICMP Έκδοση:1.0 2005 J.F. Kurose, K.W. Ross Μετάφραση - Απόδοση: Σ. Τσακιρίδου Computer Networking: A Top-Down Approach Featuring the Internet Στο εργαστήριο αυτό θα εξετάσουµε µερικά

Διαβάστε περισσότερα

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

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 1 / 38 Παράδειγμα Έστω ότι θέλουμε να αποστείλουμε ένα μήνυμα μέσω ηλεκτρονικού ταχυδρομείου. Αρχικά η εφαρμογή χρησιμοποιώντας τα πρωτόκολλα του επιπέδου εφαρμογής

Διαβάστε περισσότερα

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,

Διαβάστε περισσότερα

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

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας ίκτυα Η/Υ Μοντέλο TCP/IP Ενότητα E ρ. Ε. Μάγκος Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα πολλές πολλοί N A N

Διαβάστε περισσότερα

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

Διαβάστε περισσότερα

Εργαστήριο Ethereal: IP

Εργαστήριο Ethereal: IP Εργαστήριο Ethereal: IP Έκδοση:1.0 2005 J.F. Kurose, K.W. Ross Μετάφραση - Απόδοση: Σ. Τσακιρίδου Computer Networking: A Top-Down Approach Featuring the Internet Στο εργαστήριο αυτό θα εξετάσουµε το πρωτόκολλο

Διαβάστε περισσότερα

ΠΡΩΤΟΚΟΛΛΟ TCP/IP ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ

ΠΡΩΤΟΚΟΛΛΟ TCP/IP ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ ΠΡΩΤΟΚΟΛΛΟ TCP/IP ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ Εισαγωγή ΑRPANET (1969) Τεχνική Μεταγωγής Πακέτων INTERNETTING PROJECT (1973) Σύνδεση διαφορετικών δικτύων Πρωτόκολλα IP, TCP (Κανόνες Ανταλλαγής Δεδομένων) Προσθήκη

Διαβάστε περισσότερα

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Ενότητα 5: User Datagram Protocol - UDP

Δίκτυα Υπολογιστών Ενότητα 5: User Datagram Protocol - UDP Δίκτυα Υπολογιστών Ενότητα 5: User Datagram Protocol - UDP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

ιαδίκτυα & Ενδοδίκτυα Η/Υ

ιαδίκτυα & Ενδοδίκτυα Η/Υ ιαδίκτυα & Ενδοδίκτυα Η/Υ ΠΡΩΤΟΚΟΛΛΑ ΜΕΤΑΦΟΡΑΣ (Kεφ. 17) TCP Υπηρεσίες TCP Μορφή Επικεφαλίδας TCP Μηχανισµοί TCP Πολιτικές Υλοποίησης TCP Βιβλίο Μαθήµατος: Επικοινωνίες Υπολογιστών & εδοµένων, William

Διαβάστε περισσότερα

Πρωτόκολλο TCP Διάλεξη Ι

Πρωτόκολλο TCP Διάλεξη Ι Πρωτόκολλο TCP Διάλεξη Ι Εισαγωγή Οι υπηρεσίες μεταβίβασης δεδομένων ανάμεσα σε δύο επικοινωνούντες πόρους κατατάσσονται σε δύο κατηγορίες: Connectionless ή datagram Connection-oriented Οι υπηρεσίες της

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer)

Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer) Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Επισκόπηση του επιπέδου μεταφοράς Υπηρεσίες επιπέδου μεταφοράς Επίπεδο μεταφοράς έναντι επιπέδου

Διαβάστε περισσότερα

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη Deadline πρώτης ϕάσης : 13 Δεκεμβρίου 2016, 23:59 * Εμπνευσμένο και υλοποιημένο από το Μανώλη Σουρλίγκα :) Γενική περιγραϕή Στο οικοσύστημα του

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής ίκτυα Η/Υ Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα Μοντέλο TCP/IP πολλές πολλοί N A N B Ενότητα E PC A PC B PC D PC E E A E B

Διαβάστε περισσότερα

2η Προγραµµατιστική Εργασία

2η Προγραµµατιστική Εργασία Προγραµµατισµός ικτύων (Ε-01) 2η Προγραµµατιστική Εργασία Επέκταση ϐασικής ϐιβλιοθήκης δικτυακού προγραµµατισµού και χρήση της για την υλοποίηση παράλληλου εξυπηρετητή πρωτοκόλλου µεταφοράς αρχείων ιδάσκων

Διαβάστε περισσότερα

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

Εισαγωγή στο πως λειτουργεί το διαδίκτυο Εισαγωγή στο πως λειτουργεί το διαδίκτυο (και τι θα δούμε στο εργαστήριο δικτύων) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Διαδίκτυο - ένα δίκτυο δεδομένων Σημαντικό

Διαβάστε περισσότερα

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία Improving the performance of TCP in the case of packet reordering Στρατάκη Μαρία Γενικές Πληροφορίες για το TCP/IP TCP (Transmission Control Protocol) IP (Internet Protocol) Χωρίζουν τα δεδομένα σε τμήματα

Διαβάστε περισσότερα

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1 Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει

Διαβάστε περισσότερα

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες 4.1 Γενικά Σκοπός ενός δικτύου υπολογιστών είναι οι χρήστες να έχουν τη δυνατότητα να διαμοιράζονται πληροφορίες και συσκευές του δικτύου. Η σχεδίαση και η ανάπτυξη

Διαβάστε περισσότερα

Εγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service)

Εγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service) Socket *sopen(const int type, const int protocol, const char *host, const char *service) Στην περίπτωση ενός client, δημιουργεί μια νέα σύνδεση και κατασκευάζει μια δομή Socket που σχετίζεται με αυτή Σε

Διαβάστε περισσότερα

Δίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol

Δίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol Δίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 Μηχανισμοί πρωτοκόλλων προσανατολισμένων σε σύνδεση Λογική σύνδεση

Διαβάστε περισσότερα

Εργαστήριο Wireshark: TCP

Εργαστήριο Wireshark: TCP Εργαστήριο Wireshark: TCP Έκδοση: 2.0 2007 J.F. Kurose, K.W. Ross Μετάφραση - Απόδοση: Σ. Τσακιρίδου Computer Networking: A Top-Down Approach Featuring the Internet Στο εργαστήριο αυτό θα εξετάσουµε λεπτοµερώς

Διαβάστε περισσότερα

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1 Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 11: Διαδικασία Μετάδοσης Δεδομένων Εισαγωγή

ΚΕΦΑΛΑΙΟ 11: Διαδικασία Μετάδοσης Δεδομένων Εισαγωγή ΚΕΦΑΛΑΙΟ 11: Διαδικασία Μετάδοσης Δεδομένων 11.1. Εισαγωγή Η μετάδοση δεδομένων αναφέρεται στην μεταφορά κάποιας πληροφορίας από ένα σημείο σε κάποιο άλλο, αφού πρώτα έχει μετασχηματισθεί σε ένα ηλεκτρομαγνητικό

Διαβάστε περισσότερα

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP Ημερομηνία παράδοσης 2 εβδομάδες μετά την έναρξη της άσκησης 1. Γενικά για το TCP/IP Η ομάδα πρωτοκόλλων TCP/IP επιτρέπει σε υπολογιστές όλων των μεγεθών, από

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

Διαβάστε περισσότερα

Χρήση βασικών εργαλείων συλλογής πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου

Χρήση βασικών εργαλείων συλλογής πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ - ΕΜΠ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Επικοινωνιών, Ηλεκτρονικής & Συστημάτων Πληροφορικής Εργαστήριο Διαχείρισης & Βελτίστου Σχεδιασμού Δικτύων Τηλεματικής

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 9. Ταυτόχρονος προγραμματισμός και νήματα. 9.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 9. Ταυτόχρονος προγραμματισμός και νήματα. 9.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 9 Ταυτόχρονος προγραμματισμός και νήματα Σύνοψη Σε αυτό το κεφάλαιο πραγματευόμαστε τον ταυτόχρονο προγραμματισμό με τη χρήση νημάτων. Η έμφαση είναι στην κατανόηση βασικών λειτουργιών των νημάτων

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 3 Εκφράσεις, τελεστές, σχόλια Σύνοψη Στο κεφάλαιο αυτό εισάγουμε τον τρόπο τέλεσης πράξεων μεταξύ μεταβλητών και σταθερών, εκφράσεις μεταξύ αυτών καθώς και το σχολιασμό της λογικής ενός προγράμματος.

Διαβάστε περισσότερα

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

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26 1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26 Το δίκτυο ARPANET ήταν ένα δίκτυο μεταγωγής πακέτων που χρηματοδοτήθηκε από το υπουργείο άμυνας των Η.Π.Α. στα τέλη της δεκαετίας του '60. 2 / 26 Από την αρχή κύριος

Διαβάστε περισσότερα

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP. 7.4 Πρωτόκολλο UDP & Ερωτήσεις 1. ε ποιες περιπτώσεις χρησιμοποιείται το πρωτόκολλο UDP, εναλλακτικά του TCP; 2. ε τι είδους εφαρμογές χρησιμοποιείται συνήθως το πρωτόκολλο UDP; Να δώσετε παράδειγμα μιας

Διαβάστε περισσότερα

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

Δίκτυα Θεωρία Δίκτυα Θεωρία 2016-17 Κεφάλαιο 4 1. Γιατί η μεταφορά των δεδομένων δεν καλύπτεται επαρκώς από το Επίπεδο Δικτύου; Επειδή το επίπεδο δικτύου από τη φύση του είναι αναξιόπιστο, τα πακέτα φθάνουν καθυστερημένα,

Διαβάστε περισσότερα

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

Διαβάστε περισσότερα

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1 I. Παράδειγμα 1: Απόδοση TCP με παράθυρο αποστολέα = 1 a. Ο μηχανισμός όπως έχει περιγραφεί ως τώρα στέλνει μόνο ένα πακέτο και σταματάει να μεταδίδει έως ότου πάρει το ack του πακέτου αυτού (λειτουργία

Διαβάστε περισσότερα

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου Μ.Στεφανιδάκης Κατανεμημένα συστήματα ελέγχου Α Β διασυνδετικό δίκτυο Γ Δ Ε π.χ. οι επιμέρους

Διαβάστε περισσότερα

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.1.1. Γενικές Αρχές 1. Τι ονοµάζεται επικοινωνιακό υποδίκτυο και ποιο είναι το έργο του; Το σύνολο όλων των ενδιάµεσων κόµβων που εξασφαλίζουν την επικοινωνία µεταξύ

Διαβάστε περισσότερα

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1 I. Παράδειγμα 1: Απόδοση TCP με παράθυρο αποστολέα = 1 a. Ο μηχανισμός όπως έχει περιγραφεί ως τώρα στέλνει μόνο ένα πακέτο και σταματάει να μεταδίδει έως ότου πάρει το ack του πακέτου αυτού (λειτουργία

Διαβάστε περισσότερα

Επικοινωνία Client/Server

Επικοινωνία Client/Server Επικοινωνία Client/Server Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία - Client/Server 1 Μοντέλο Πελάτη-Εξυπηρετητή Βασική ιδέα: να δομηθεί το λειτουργικό σύστημα ως συνεργαζόμενες

Διαβάστε περισσότερα

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε

Διαβάστε περισσότερα

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4 1 Διαχείριση εργασιών fork(), exit(), exec() (βλ 2 ο Φροντ.) Επικοινωνία διεργασιών signals (βλ 2 ο Φροντ.) sockets και client/server,

Διαβάστε περισσότερα

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ Μάθημα 8ο Δικτύωση TCP/IP Μιχαηλίδης Παναγιώτης Περιεχόμενα Δικτύωση TCP/IP Τι είναι το TCP/IP; Επίπεδα, διευθύνσεις, ΝΑΤ Πρωτόκολλα: ARP, DHCP TCP/IP H πιο κοινή

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP

Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο Βασικές Υπηρεσίες Διαδικτύου Επικοινωνίες Δεδομένων Μάθημα 2 ο Μεταφορά αρχείων (File Transfer Protocol, FTP) user at host FTP user interface FTP client local file system file transfer FTP server remote

Διαβάστε περισσότερα

ΗΥ335 - Δίκτυα Υπολογιστών Χειμερινό εξάμηνο 2010-2011 Φροντιστήριο Ασκήσεις στο TCP

ΗΥ335 - Δίκτυα Υπολογιστών Χειμερινό εξάμηνο 2010-2011 Φροντιστήριο Ασκήσεις στο TCP ΗΥ335 - Δίκτυα Υπολογιστών Χειμερινό εξάμηνο 2010-2011 Φροντιστήριο Ασκήσεις στο TCP Άσκηση 1 η : Καθυστερήσεις Θεωρείστε μία σύνδεση μεταξύ δύο κόμβων Χ και Υ. Το εύρος ζώνης του συνδέσμου είναι 10Gbits/sec

Διαβάστε περισσότερα

Εργαστήριο Ethereal: TCP

Εργαστήριο Ethereal: TCP Εργαστήριο Ethereal: TCP Έκδοση:1.0 2005 J.F. Kurose, K.W. Ross Μετάφραση - Απόδοση: Σ. Τσακιρίδου Computer Networking: A Top-Down Approach Featuring the Internet Στο εργαστήριο αυτό θα εξετάσουµε λεπτοµερώς

Διαβάστε περισσότερα

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

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP Κεφάλαιο 7 Διαδικτύωση-Internet 7.2 Τεχνολογία TCP/IP Τι δηλώνει ο όρος «TCP/IP»; Ο όρος TCP/IP αναφέρεται σε μια ομάδα ομοειδών πρωτοκόλλων που χρησιμοποιούνται για την επικοινωνία των δικτύων υπολογιστών

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ασκήσεις. Κατανεμημένα Συστήματα Ασκήσεις 2016-2017 http://www.cslab.ece.ntua.gr/courses/distrib Άσκηση 1 3 διεργασίες, η P1, η P2 και η P3 στέλνουν μεταξύ τους multicast μηνύματα. Σε περίπτωση που θέλουμε να εξασφαλίσουμε:

Διαβάστε περισσότερα

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Ενότητα : Δίκτυα υπολογιστών - Βασικά εργαλεία δικτύων στο Linux. Όνομα Καθηγητή : Δημήτριος Λυμπερόπουλος, Σπύρος Δενάζης Τμήμα : Ηλεκτρολόγων Μηχανικών και Τεχνολογίας

Διαβάστε περισσότερα

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

7.2.2 Σχέση OSI και TCP/IP Κεφάλαιο 7 7.2.2 Σχέση OSI και TCP/IP Σελ. 226-230 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr ΕΣΠΕΡΙΝΟ ΕΠΑΛ Κομοτηνής http://diktya-epal-g.ggia.info/ Γνωστό μοντέλο OSI διασύνδεσης ανοικτών συστημάτων.

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) TEI Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) Ανάλυση Πρωτοκόλλων Τομέας Τηλεπικοινωνιών και Δικτύων Δρ. Αναστάσιος Πολίτης Καθηγητής Εφαρμογών anpol@teiser.gr

Διαβάστε περισσότερα

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1 Βασικά Θέματα Επικοινωνίας Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Πρωτόκολλο επικοινωνίας Η/Υ Προσδιορίζει τους κανόνες που διέπουν την επικοινωνία ανάμεσα στα εμπλεκόμενα μέρη τα μηνύματα και (εν μέρει)

Διαβάστε περισσότερα

Διάρθρωση. Δίκτυα Υπολογιστών Επικοινωνία από άκρο σε άκρο. Επικοινωνία από άκρο σε άκρο. Διάρθρωση

Διάρθρωση. Δίκτυα Υπολογιστών Επικοινωνία από άκρο σε άκρο. Επικοινωνία από άκρο σε άκρο. Διάρθρωση Δίκτυα Υπολογιστών Επικοινωνία από άκρο σε άκρο Ευάγγελος Παπαπέτρου Τμ Μηχ Η/Υ & Πληροφορικής, Παν Ιωαννίνων 1 Το Επίπεδο Μεταφοράς 2 Το πρωτόκολλο UDP 3 ΕΠαπαπέτρου (ΤμΜηχ Η/Υ & Πληροφορικής) ΠΛΥ606:

Διαβάστε περισσότερα

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο Project Phase 1 ΗΥ - 335α Χειμερινό εξάμηνο 2012-2013 Διδάσκουσα: Παπαδοπούλη Μαρία Υπεύθυνος βοηθός: Σουρλίγκας Μανώλης, surligas@csd.uoc.gr

Διαβάστε περισσότερα

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Προχωρημένα Θέματα Προγραμματισμού Δικτύων 1 Ελληνική ημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ενότητα 9: ΈλεγχοςΡοήςΚλειστούΒρόχου(1) Φώτης Βαρζιώτης 2 Ανοιχτά Τμήμα Μηχανικών Πληροφορικής ΤΕ

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Εισαγωγή στην Δικτύωση (Networking) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διευθύνσεις και Θύρες - Sockets και ServerSockets Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής

Διαβάστε περισσότερα

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

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Διαβάστε περισσότερα

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:03 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

Υποδοχείς (Sockets) Προγραμματισμός II 1

Υποδοχείς (Sockets) Προγραμματισμός II 1 Υποδοχείς (Sockets) Προγραμματισμός II 1 lalis@inf.uth.gr Υποδοχείς Ειδικές δομές διαδιεργασιακής επικοινωνίας Προσπελάζονται μέσω περιγραφέων αρχείων μπορεί να χρησιμοποιηθούν οι read, write, close μπορεί

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

(C) 2010 Pearson Education, Inc. All rights reserved.

(C) 2010 Pearson Education, Inc. All rights reserved. Connectionless transmission with datagrams. Connection-oriented transmission is like the telephone system You dial and are given a connection to the telephone of fthe person with whom you wish to communicate.

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 2 η : Λειτουργία Η/Υ Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Διοίκησης Επιχειρήσεων

Διαβάστε περισσότερα

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

Υπολογιστές και ίκτυα Η/Υ. Υπολογιστές και ίκτυα Η/Υ http://www.net.uom.gr Βιβλίο για ίκτυα Η/Υ Computer Networking, A Top-Down Approach Featuring the Internet, 2nd edition J. Kurose, K. Ross ρ. Παναγιώτης Ε. Φουληράς 2003/2004

Διαβάστε περισσότερα

Network Address Translation (NAT)

Network Address Translation (NAT) HY335Α Δίκτυα Υπολογιστών Xειμερινό Εξάμηνο 2016-2017 Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Network Address Translation (NAT) Network Layer Private IP Addresses Πρόβλημα: o χώρος των ΙΡ διευθύνσεων

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ηυιοθέτησητης τεχνολογίαςκαι αρχιτεκτονικής TCP/IP δεν έρχεται σε σύγκρουσηµε το µοντέλο του OSI και αυτό γιατί και τα δυο συστήµατααναπτύχθηκαν συγχρόνως. Παρόλα αυτά, υπάρχουν ορισµένες ουσιώδεις διαφορές

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr It seems very simple. It is very simple. But if you don t know what the key is its virtually indecipherable.

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης

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

Διαβάστε περισσότερα

Εργαστήριο Wireshark: DNS

Εργαστήριο Wireshark: DNS Εργαστήριο Wireshark: DNS Έκδοση:2.0 2007 J.F. Kurose, K.W. Ross Μετάφραση - Απόδοση: Σ. Τσακιρίδου Computer Networking: A Top-Down Approach Featuring the Internet Όπως περιγράφεται στην Ενότητα 2.5 του

Διαβάστε περισσότερα

ΜΗΧΑΝΙΣΜΟΙ ΠΟΙΟΤΗΤΑΣ ΥΠΗΡΕΣΙΑΣ ΣΕ ΔΙΚΤΥΑ

ΜΗΧΑΝΙΣΜΟΙ ΠΟΙΟΤΗΤΑΣ ΥΠΗΡΕΣΙΑΣ ΣΕ ΔΙΚΤΥΑ ΜΗΧΑΝΙΣΜΟΙ ΠΟΙΟΤΗΤΑΣ ΥΠΗΡΕΣΙΑΣ ΣΕ ΔΙΚΤΥΑ Ενότητα # 3: Integrated Services (IntServ) II Καθηγητής Χρήστος Ι. Μπούρας Τμήμα Μηχανικών Η/Υ & Πληροφορικής, Πανεπιστήμιο Πατρών email: bouras@cti.gr, site: http://ru6.cti.gr/ru6/bouras

Διαβάστε περισσότερα

Εργαστηριακή Άσκηση 7 Πρωτόκολλα TCP και UDP

Εργαστηριακή Άσκηση 7 Πρωτόκολλα TCP και UDP Εργαστηριακή Άσκηση 7 Πρωτόκολλα TCP και UDP Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξέταση των ιδιοτήτων των πρωτοκόλλων μεταφοράς TCP και UDP του Internet. Πληροφορίες για τα πρωτόκολλα αυτά

Διαβάστε περισσότερα

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1 Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο Κατανεμημένα Συστήματα lalis@inf.uth.gr Μοντέλο δικτύου Το δίκτυο δέχεται και επιστρέφει πακέτα κάθε πακέτο μεταφέρει έναν περιορισμένο αριθμό bytes

Διαβάστε περισσότερα

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ελληνική ημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ενότητα 7: Εισαγωγή στον έλεγχο ροής πακέτων δικτύου Φώτης Βαρζιώτης Ανοιχτά Ακαδημαϊκά Μαθήματα στο

Διαβάστε περισσότερα

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

6.2 Υπηρεσίες Διαδικτύου 6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,

Διαβάστε περισσότερα