ΚΕΦΑΛΑΙΟ 10. Δικτυακός προγραμματισμός Εισαγωγή
|
|
- Κλαύδιος Γερμανού
- 7 χρόνια πριν
- Προβολές:
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 Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται
Διαβάστε περισσότεραΠρογραμματισμός με BSD Sockets σε περιβάλλον Linux
Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Απρίλιος 2016 Περίγραμμα παρουσίασης 1 Εισαγωγή 2 Δικτυακά
Διαβάστε περισσότεραΕξοικείωση με τις εντολές ipconfig και ping
Διαχείριση Δικτύων Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Ηπείρου Εργαστηριακή Άσκηση Εξοικείωση με τις εντολές ipconfig και ping Σημείωση : Η άσκηση αναφέρεται σε εντολές των Windows. Υπάρχουν παρόμοιες
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών
Διαβάστε περισσότεραΕιδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 11: Sockets Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΕισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. Σ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.: 43 Άσκηση 3 Μια αξιόπιστη multicast υπηρεσία επιτρέπει σε έναν
Διαβάστε περισσότεραΒασικές έννοιες. Κατανεμημένα Συστήματα 1
Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα
Διαβάστε περισσότεραΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη
ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013
Διαβάστε περισσότεραΤρίτη Πρόοδος [110 μονάδες] Απαντήσεις
ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2011-20112 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη 15 Δεκεμβρίου 2011 Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις 1. Θεωρήσετε
Διαβάστε περισσότεραΔίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας
Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία
Διαβάστε περισσότεραΣύντομη παρουσίαση των εργαλείων/εντολών 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 Πρωτόκολλο TCP Το πρωτόκολλο Ελέγχου Μετάδοσης (Transmission Control Protocol, TCP) είναι το βασικό πρωτόκολο του Επιπέδου Μεταφοράς του μοντέλου TCP/IP. Παρέχει υπηρεσίες προσανατολισμένες
Διαβάστε περισσότεραΠρωτόκολλα Διαδικτύου
Πρωτόκολλα Διαδικτύου Μέρος 1ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Εισαγωγή στην Τεχνολογία TCP/IP To TCP/IP σημαίνει Transmission Control Protocol / Internet Protocol και θα μπορούσε να θεωρηθεί ότι πρόκειται
Διαβάστε περισσότεραΕπικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1
Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο
Διαβάστε περισσότεραΒασικές έννοιες. Κατανεμημένα Συστήματα 1
Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα
Διαβάστε περισσότεραΗ Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα
Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 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 Έκδοση: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 - Δομή πακέτου 1 / 38 Παράδειγμα Έστω ότι θέλουμε να αποστείλουμε ένα μήνυμα μέσω ηλεκτρονικού ταχυδρομείου. Αρχικά η εφαρμογή χρησιμοποιώντας τα πρωτόκολλα του επιπέδου εφαρμογής
Διαβάστε περισσότεραΔίκτυα Επικοινωνιών ΙΙ: 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 για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):
Διαβάστε περισσότεραΙόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας
Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας ίκτυα Η/Υ Μοντέλο TCP/IP Ενότητα E ρ. Ε. Μάγκος Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα πολλές πολλοί N A N
Διαβάστε περισσότεραΕπικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1
Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο
Διαβάστε περισσότεραΕργαστήριο 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 ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ Εισαγωγή ΑRPANET (1969) Τεχνική Μεταγωγής Πακέτων INTERNETTING PROJECT (1973) Σύνδεση διαφορετικών δικτύων Πρωτόκολλα IP, TCP (Κανόνες Ανταλλαγής Δεδομένων) Προσθήκη
Διαβάστε περισσότεραΕπικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών
Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,
Διαβάστε περισσότεραΔίκτυα Υπολογιστών Ενότητα 5: User Datagram Protocol - UDP
Δίκτυα Υπολογιστών Ενότητα 5: User Datagram Protocol - UDP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραιαδίκτυα & Ενδοδίκτυα Η/Υ
ιαδίκτυα & Ενδοδίκτυα Η/Υ ΠΡΩΤΟΚΟΛΛΑ ΜΕΤΑΦΟΡΑΣ (Kεφ. 17) TCP Υπηρεσίες TCP Μορφή Επικεφαλίδας TCP Μηχανισµοί TCP Πολιτικές Υλοποίησης TCP Βιβλίο Μαθήµατος: Επικοινωνίες Υπολογιστών & εδοµένων, William
Διαβάστε περισσότεραΠρωτόκολλο TCP Διάλεξη Ι
Πρωτόκολλο TCP Διάλεξη Ι Εισαγωγή Οι υπηρεσίες μεταβίβασης δεδομένων ανάμεσα σε δύο επικοινωνούντες πόρους κατατάσσονται σε δύο κατηγορίες: Connectionless ή datagram Connection-oriented Οι υπηρεσίες της
Διαβάστε περισσότεραΔίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer)
Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Επισκόπηση του επιπέδου μεταφοράς Υπηρεσίες επιπέδου μεταφοράς Επίπεδο μεταφοράς έναντι επιπέδου
Διαβάστε περισσότεραHY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη
HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη Deadline πρώτης ϕάσης : 13 Δεκεμβρίου 2016, 23:59 * Εμπνευσμένο και υλοποιημένο από το Μανώλη Σουρλίγκα :) Γενική περιγραϕή Στο οικοσύστημα του
Διαβάστε περισσότεραΙόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο 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η Προγραµµατιστική Εργασία
Προγραµµατισµός ικτύων (Ε-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 Στρατάκη Μαρία Γενικές Πληροφορίες για το TCP/IP TCP (Transmission Control Protocol) IP (Internet Protocol) Χωρίζουν τα δεδομένα σε τμήματα
Διαβάστε περισσότεραΕπικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1
Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει
Διαβάστε περισσότεραΜάθημα 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) Στην περίπτωση ενός client, δημιουργεί μια νέα σύνδεση και κατασκευάζει μια δομή Socket που σχετίζεται με αυτή Σε
Διαβάστε περισσότεραΔίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol
Δίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 Μηχανισμοί πρωτοκόλλων προσανατολισμένων σε σύνδεση Λογική σύνδεση
Διαβάστε περισσότεραΕργαστήριο Wireshark: TCP
Εργαστήριο Wireshark: TCP Έκδοση: 2.0 2007 J.F. Kurose, K.W. Ross Μετάφραση - Απόδοση: Σ. Τσακιρίδου Computer Networking: A Top-Down Approach Featuring the Internet Στο εργαστήριο αυτό θα εξετάσουµε λεπτοµερώς
Διαβάστε περισσότεραΕπικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1
Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 11: Διαδικασία Μετάδοσης Δεδομένων Εισαγωγή
ΚΕΦΑΛΑΙΟ 11: Διαδικασία Μετάδοσης Δεδομένων 11.1. Εισαγωγή Η μετάδοση δεδομένων αναφέρεται στην μεταφορά κάποιας πληροφορίας από ένα σημείο σε κάποιο άλλο, αφού πρώτα έχει μετασχηματισθεί σε ένα ηλεκτρομαγνητικό
Διαβάστε περισσότεραΆσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP
Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP Ημερομηνία παράδοσης 2 εβδομάδες μετά την έναρξη της άσκησης 1. Γενικά για το TCP/IP Η ομάδα πρωτοκόλλων TCP/IP επιτρέπει σε υπολογιστές όλων των μεγεθών, από
Διαβάστε περισσότεραΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές
ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.
Διαβάστε περισσότεραΧρήση βασικών εργαλείων συλλογής πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ - ΕΜΠ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧ. ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Επικοινωνιών, Ηλεκτρονικής & Συστημάτων Πληροφορικής Εργαστήριο Διαχείρισης & Βελτίστου Σχεδιασμού Δικτύων Τηλεματικής
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 9. Ταυτόχρονος προγραμματισμός και νήματα. 9.1 Εισαγωγή
ΚΕΦΑΛΑΙΟ 9 Ταυτόχρονος προγραμματισμός και νήματα Σύνοψη Σε αυτό το κεφάλαιο πραγματευόμαστε τον ταυτόχρονο προγραμματισμό με τη χρήση νημάτων. Η έμφαση είναι στην κατανόηση βασικών λειτουργιών των νημάτων
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή
ΚΕΦΑΛΑΙΟ 3 Εκφράσεις, τελεστές, σχόλια Σύνοψη Στο κεφάλαιο αυτό εισάγουμε τον τρόπο τέλεσης πράξεων μεταξύ μεταβλητών και σταθερών, εκφράσεις μεταξύ αυτών καθώς και το σχολιασμό της λογικής ενός προγράμματος.
Διαβάστε περισσότερα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 & Ερωτήσεις 1. ε ποιες περιπτώσεις χρησιμοποιείται το πρωτόκολλο UDP, εναλλακτικά του TCP; 2. ε τι είδους εφαρμογές χρησιμοποιείται συνήθως το πρωτόκολλο UDP; Να δώσετε παράδειγμα μιας
Διαβάστε περισσότεραΔίκτυα Θεωρία
Δίκτυα Θεωρία 2016-17 Κεφάλαιο 4 1. Γιατί η μεταφορά των δεδομένων δεν καλύπτεται επαρκώς από το Επίπεδο Δικτύου; Επειδή το επίπεδο δικτύου από τη φύση του είναι αναξιόπιστο, τα πακέτα φθάνουν καθυστερημένα,
Διαβάστε περισσότεραΓενικά (για τις γραπτές εξετάσεις)
Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε
Διαβάστε περισσότεραΣχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1
I. Παράδειγμα 1: Απόδοση TCP με παράθυρο αποστολέα = 1 a. Ο μηχανισμός όπως έχει περιγραφεί ως τώρα στέλνει μόνο ένα πακέτο και σταματάει να μεταδίδει έως ότου πάρει το ack του πακέτου αυτού (λειτουργία
Διαβάστε περισσότεραSNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ
Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΠρωτόκολλα Διαδικτύου. Άγγελος Ρούσκας Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς
Πρωτόκολλα Διαδικτύου Άγγελος Ρούσκας Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σκοπός του μαθήματος Στόχος του μαθήματος είναι να παρουσιάσει αρχιτεκτονικές και πρωτόκολλα που χρησιμοποιούνται στο
Διαβάστε περισσότεραΚατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου
Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου Μ.Στεφανιδάκης Κατανεμημένα συστήματα ελέγχου Α Β διασυνδετικό δίκτυο Γ Δ Ε π.χ. οι επιμέρους
Διαβάστε περισσότεραΓενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ
Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.1.1. Γενικές Αρχές 1. Τι ονοµάζεται επικοινωνιακό υποδίκτυο και ποιο είναι το έργο του; Το σύνολο όλων των ενδιάµεσων κόµβων που εξασφαλίζουν την επικοινωνία µεταξύ
Διαβάστε περισσότεραΣχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1
I. Παράδειγμα 1: Απόδοση TCP με παράθυρο αποστολέα = 1 a. Ο μηχανισμός όπως έχει περιγραφεί ως τώρα στέλνει μόνο ένα πακέτο και σταματάει να μεταδίδει έως ότου πάρει το ack του πακέτου αυτού (λειτουργία
Διαβάστε περισσότεραΕπικοινωνία Client/Server
Επικοινωνία Client/Server Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία - Client/Server 1 Μοντέλο Πελάτη-Εξυπηρετητή Βασική ιδέα: να δομηθεί το λειτουργικό σύστημα ως συνεργαζόμενες
Διαβάστε περισσότεραHY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο
HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε
Διαβάστε περισσότεραΝτίρλης Νικόλαος- ΕΤΥ 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 Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΒασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 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 Άσκηση 1 η : Καθυστερήσεις Θεωρείστε μία σύνδεση μεταξύ δύο κόμβων Χ και Υ. Το εύρος ζώνης του συνδέσμου είναι 10Gbits/sec
Διαβάστε περισσότεραΕργαστήριο 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 Τι δηλώνει ο όρος «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 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 Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΔίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)
TEI Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) Ανάλυση Πρωτοκόλλων Τομέας Τηλεπικοινωνιών και Δικτύων Δρ. Αναστάσιος Πολίτης Καθηγητής Εφαρμογών anpol@teiser.gr
Διαβάστε περισσότεραΒασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1
Βασικά Θέματα Επικοινωνίας Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Πρωτόκολλο επικοινωνίας Η/Υ Προσδιορίζει τους κανόνες που διέπουν την επικοινωνία ανάμεσα στα εμπλεκόμενα μέρη τα μηνύματα και (εν μέρει)
Διαβάστε περισσότεραΔιάρθρωση. Δίκτυα Υπολογιστών Επικοινωνία από άκρο σε άκρο. Επικοινωνία από άκρο σε άκρο. Διάρθρωση
Δίκτυα Υπολογιστών Επικοινωνία από άκρο σε άκρο Ευάγγελος Παπαπέτρου Τμ Μηχ Η/Υ & Πληροφορικής, Παν Ιωαννίνων 1 Το Επίπεδο Μεταφοράς 2 Το πρωτόκολλο UDP 3 ΕΠαπαπέτρου (ΤμΜηχ Η/Υ & Πληροφορικής) ΠΛΥ606:
Διαβάστε περισσότερα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 lalis@inf.uth.gr Υποδοχείς Ειδικές δομές διαδιεργασιακής επικοινωνίας Προσπελάζονται μέσω περιγραφέων αρχείων μπορεί να χρησιμοποιηθούν οι read, write, close μπορεί
Διαβάστε περισσότεραΔίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης
Δίκτυα Υπολογιστών Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Αρχές δικτυακών εφαρμογών Αρχιτεκτονικές Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη
Διαβάστε περισσότεραΔίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης
Δίκτυα Υπολογιστών Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Αρχές δικτυακών εφαρμογών. Αρχιτεκτονικές. Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη
Διαβάστε περισσότερα(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)
HY335Α Δίκτυα Υπολογιστών Xειμερινό Εξάμηνο 2016-2017 Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Network Address Translation (NAT) Network Layer Private IP Addresses Πρόβλημα: o χώρος των ΙΡ διευθύνσεων
Διαβάστε περισσότεραΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ
Ηυιοθέτησητης τεχνολογίαςκαι αρχιτεκτονικής TCP/IP δεν έρχεται σε σύγκρουσηµε το µοντέλο του OSI και αυτό γιατί και τα δυο συστήµατααναπτύχθηκαν συγχρόνως. Παρόλα αυτά, υπάρχουν ορισµένες ουσιώδεις διαφορές
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 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 Έκδοση: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 Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξέταση των ιδιοτήτων των πρωτοκόλλων μεταφοράς TCP και UDP του Internet. Πληροφορίες για τα πρωτόκολλα αυτά
Διαβάστε περισσότεραΑξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1
Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο Κατανεμημένα Συστήματα lalis@inf.uth.gr Μοντέλο δικτύου Το δίκτυο δέχεται και επιστρέφει πακέτα κάθε πακέτο μεταφέρει έναν περιορισμένο αριθμό bytes
Διαβάστε περισσότεραΠροχωρημένα Θέματα Προγραμματισμού Δικτύων
Ελληνική ημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ενότητα 7: Εισαγωγή στον έλεγχο ροής πακέτων δικτύου Φώτης Βαρζιώτης Ανοιχτά Ακαδημαϊκά Μαθήματα στο
Διαβάστε περισσότερα6.2 Υπηρεσίες Διαδικτύου
6.2 Υπηρεσίες Διαδικτύου 1 / 34 Όλες οι υπηρεσίες στο Διαδίκτυο, όπως και πολλές εφαρμογές λογισμικού, στηρίζονται στο μοντέλο Πελάτη Εξυπηρετητή. 2 / 34 Σύμφωνα με αυτό το μοντέλο ο Εξυπηρετητής οργανώνει,
Διαβάστε περισσότερα