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

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

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

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

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

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

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

HY335 4ο Φροντιστήριο

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

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

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

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

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

Δικτυακός προγραμματισμός

ιαδικτυακές Εφαρµογές

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

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

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

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

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

4 η ιάλεξη: Signals UDP Sockets

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πρόβλεμα Online Gaming με modem Thomson και Speedtouch

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

ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4

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

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

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

Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4. Λειτουργικά Συστήματα- Φροντιστήριο 2

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

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

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

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

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

Προγραμματισμός συστημάτων UNIX/POSIX

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1

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

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

Ζητήματα Σχεδίασης Λογισμικού Πελάτη

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

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

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

Επικοινωνία Client/Server Υποδοχές

Εγκατάσταση λογαριασμού ηλεκτρονικού ταχυδρομείου στο MICROSOFT OUTLOOK

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

Network Address Translation (NAT)

Socket Application Programming Interface

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

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

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

Δικτυακός Προγραμματισμός (Sockets Programming) Εργαστήριο Γ Εξάμηνο, Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας

{ int pipe(int fd[ ]) close

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

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

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

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.

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

ECE Operating Systems and Networking Laboratory

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

Topic 5: Sockets. *Ευχαριστίες στους Jim Kurose, Keith Ross, Τάκη Σταµατόπουλο, Αλέξη ελή, και Αντώνη ελιγιαννάκη

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1

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

ΕΓΚΑΤΑΣΤΑΣΗ ΣΥΝ ΕΣΗΣ DIAL-UP ΣΕ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ WINDOWS XP

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

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

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

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

Στρατηγικές Ασφάλειας

Προγραμματισμός συστημάτων UNIX/POSIX. Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes)

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

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

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

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

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

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

7.2 Τεχνολογία TCP/IP

Επικοινωνία Client/Server Υποδοχές (Παραδείγματα)

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

Hancock. Ζωγραφάκης Ιωάννης Εξαρχάκος Νικόλαος. ΕΠΛ 428 Προγραμματισμός Συστημάτων

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

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

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

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

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

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

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

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΗΛΕΚΤΡΟΝΙΚΕΣ ΥΠΗΡΕΣΙΕΣ

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

Επίπεδο δικτύου IP διευθυνσιοδότηση

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ 1 στα Δίκτυα Υπολογιστών

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

Προετοιμασία σύνδεσης του modem. Εγκατάσταση του Modem

Προγραμματισμός συστημάτων UNIX/POSIX

Transcript:

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

Διαχείριση εργασιών fork(), exit(), exec() (βλ 2 ο Φροντ.) Επικοινωνία διεργασιών signals (βλ 2 ο Φροντ.) sockets και client/server, shared memory Συγχρονισμός διεργασιών semaphores - 2 -

Θεωρούµε ότι: Μία διεργασία διαχειρίζεται τις κοινές πληροφορίες την ονοµάζουµε εξυπηρετητή (server) Μια διεργασία ϑέλει να αποκτήσει πρόσβαση στις πληροφορίες την ονοµάζουµε πελάτη (client) Όταν ο πελάτης ζητάει µια πληροφορία από τον εξυπηρετητή λέµε ότι κάνει µια αίτηση Μια διεργασία-πελάτης µπορεί να κάνει αιτήσεις σε διαφορετικές διεργασίες-εξυπηρετητές Μια διεργασία-εξυπηρετητής µπορεί να δέχεται αιτήσεις από διαφορετικές διεργασίες-πελάτες Μια διεργασία µπορεί να είναι ταυτόχρονα πελάτης και εξυπηρέτητής Το σχήµα µας επιτρέπει να υλοποιήσουµε ένα µεγάλο εύρος λειτουργιών Απόδοση/ Ευελιξία Αφαιρετικότητα - 3 -

Ο καθιερωµένος τρόπος επικοινωνίας είναι µε µηνύµατα Ορίστηκε αρχικά για τα συστήµατα UNIX (Xerox PARC- 70s) αλλά πλέον υποστηρίζεται από όλα τα λειτουργικά συστήµατα (εφαρμογές: WWW, Email, Network printing κτλ) Μοιάζει µε τον χειρισµό αρχείων ένα κανάλι επικοινωνίας λειτουργεί σαν ένα αρχείο στο δίσκο Μια ενέργεια write µετατρέπεται σε send Μια ενέργεια read µετατρέπεται σε receive Μπορεί να υλοποιήσει είτε σύγχρονες είτε ασύγχρονες µεταφορές δεδοµένων Υποστηρίζει TCP και UDP UDP -- σαν ταχυδροµείο (σύντομα μυνήματα, ασύγχρονη επικοινωνία, μη αξιόπιστο, datagram sockets) TCP -- σαν κλήση σε τηλέφωνο (σύγχρονη και αξιόπιστη επικοινωνία, stream sockets) - 4 -

ύο διεργασίες που εκτελούνται στην ίδια υπολογιστική µονάδα µπορούν να χρησιµοποιήσουν µια απλουστευµένη έκδοση των sockets, γνωστά και ως pipes Εύκολα µπορούµε να τα µετατρέψουµε σε socket που λειτουργούν σε TCP/IP δίκτυα Το socket αποκτά την µορφή ενός εικονικού αρχείου Ενα socket name µπορεί να ελέγχεται από το πολύ µια διεργασία Μια διεργασία µπορεί να ελέγχει πολλά socket names Οι αποστολείς πρέπει να ξέρουν το όνοµα του socket στο οποίο ακούει ο παραλήπτης Οποια διεργασία γνωρίζει το όνοµα του socket µπορεί να στείλει µηνύµατα Συνήθως είναι γνωστό εκ των προτέρων - 5 -

Για να χειριστούµε ένα socket δουλεύουµε µε socket descriptors (σε αντιστοιχία με τα files descriptors) Η αρχικοποίηση ενός socket descriptor (sd) γίνεται ως εξής: sd = socket(format, type, protocol); ηµιουργεί ένα νέο sd, format: AF_UNIX (local socket) ή AF_INET(6) για network sockets με υποστήριξη ή όχι IPv6. type: πχ stream, datagram ή raw, protocol: πχ TCP ή UDP Ο πελάτης για να συνδεθεί µε τον εξυπηρέτη χρησιµοποιεί την κλήση συστήµατος connect connect(sd, address, length); Η αποστολή µηνυµάτων γίνεται µε την χρήση της write write(sd, "hello", 5); Ουσιαστικά δηλαδή συμπεριφερόμαστε στα sockets σαν κανονικά αρχεία. - 6 -

Ο εξυπηρέτης πρέπει να συνδέσει το sd µε ένα local port του ΛΣ ως εξής: bind(sd, address, length); Το πεδίο address ορίζει το local port που ακούει η διεργασία δηλαδή το όνοµα του εικονικού αρχείου Το πεδίο length είναι το µήκος του πεδίου address Για να δεχθεί µια νέα σύνδεση χρησιµοποιεί την κλήση συστήµατος listen ως εξής: listen(sd, qlength); Ο εξυπηρέτης δέχεται τις κλήσεις σειριακά άρα οι κλήσεις τοποθετούνται σε µία ουρά έως ότου η διεργασία τις εξυπηρετήσει Η παράµετρος qlength ορίζει το µέγεθος της ουράς - 7 -

- 8 -

#include <sys/types.h> #include <sys/socket.h> main() { int sd, ns, fromlen; struct sockaddr sockaddr; char buf[256]; sd = socket(af_unix, SOCK_STREAM, 0); // bind name -- don t include null char bind(sd, "sockname", sizeof("sockname")-1); // listen for new connections (blocks) listen(sd, 1);... - 9 -

... for(;;) { // new connection established ns = accept(sd, &sockaddr, &fromlen); // wait for message (blocks) read(ns, buf, sizeof(buf)); printf("server read %s \n, buf); // send message write(ns, "OK", 2); // close connection & wait for next close(ns); } } - 10 -

#include <sys/types.h> #include <sys/socket.h> main() { int sd; char buf[256]; sd = socket(af_unix, SOCK_STREAM, 0); // connect to name -- don t include null char connect(sd, "sockname", sizeof("sockname")-1);... - 11 -

... // send message write(sd, "hello", 5); // wait for message (blocks) read(sd, buf, sizeof(buf)); printf("client read %s \n, buf); // close connection close(sd); exit(0); } - 12 -

20 & 21: FTP 22: SSH 23: Telnet 25: SMTP (Email) 53: DNS 80: HTTP (WWW) 110: POP3 κτλ «A port number is a 16-bit unsigned integer, thus ranging from 1 to 65535 (port number 0 is reserved and can't be used). A process associates its input or output channels via sockets (transport protocol, a port number and an address). This process is known as binding, and enables sending and receiving data via the network. The OS s networking software has the task of transmitting outgoing data from all application ports onto the network, and forwarding arriving network packets to a process by matching the packet's IP address and port number. Only one process may bind to a specific IP address and port combination using the same transport protocol. - 13 -

Πρόβλημα του δείπνου των Φιλοσόφων (Dijkstra, 1965) Deadlock Starvation Λύσεις: Resource hierarchy solution (Dijkstra s original solution), Arbitary solutions (semaphors, Dijkstra 1965) Δυαδικός semaphor=mutex - 14 -