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

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

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

Transcript

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

2 Δήλωση Οι διαφάνειες βασίζονται στα βιβλία: (1) Δικτυακός, Douglas E. Comer, David L. Stevens, Εκδόσεις ΙΩΝ, 2005 (2) Unix Network Programming, W. Richard Stevens, Prentice-Hall, 1994

3 Δήλωση (συνέχεια) Για τη δημιουργία των διαφανειών χρησιμοποιήθηκε υλικό των μαθημάτων: (1) Κατανεμημένα Συστήματα, Σπύρος Λάλης & Αλέξανδρος Καρυπίδης, ΤΜΗΥΤΔ, Πανεπιστήμιο Θεσσαλίας (2) Εργαστήριο Δικτύων Υπολογιστών, Ε. Βαρβαρίγος & Κ. Βλάχος, ΤΜΗΥΠ, Πανεπιστήμιο Πατρών

4 Στόχοι της Ενότητας Η παρουσίαση αρχιτεκτονικών επικοινωνίας διεργασιών σε διαδίκτυο Η παρουσίαση των υποδοχών (POSIX sockets API) για τον προγραμματισμό δικτυακών εφαρμογών Η παρουσίαση βημάτων για την ανάπτυξη πελατών και εξυπηρετητών με χρήση των πρωτοκόλλων TCP και UDP 4

5 Εισαγωγή Υποδοχές και Θύρες (sockets and ports) Γνωστές Εφαρμογές πελάτη-εξυπηρετητή http (World Wide Web (WWW)), web client/server FTP real audio, real video Εφαρμογές peer-to-peer (p2p) 5

6 Περιβάλλον Πελάτη-Εξυπηρετητή (Client-Server Environment) 6

7 Γενική Αρχιτεκτονική Πελάτη- Εξυπηρετητή 7

8 Αρχιτεκτονική Πελάτη- Εξυπηρετητή Βάσης Δεδομένων 8

9 Κλάσεις Αρχιτεκτονικής Πελάτη-Εξυπηρετητή 9

10 Αρχιτεκτονική Πελάτη- Εξυπηρετητή 3 Επιπέδων (3-tier) 10

11 Ενδιάμεσο Λογισμικό (Middleware) I Τυποποιημένες διεπαφές και πρωτόκολλα μεταξύ πελατών και βάσεων δεδομένων Κρύβει την πολυπλοκότητα των πηγών δεδομένων από τον τελικό χρήστη Συμβατό με ένα εύρος επιλογών πελάτη και εξυπηρετητή Όλες οι εφαρμογές λειτουργούν πάνω από μια ομοιόμορφη διεπαφή προγραμματισμού εφαρμογών 11

12 Middleware II 12

13 Λογική Άποψη του Middleware 13

14 Μηχανισμοί Middleware Ενδιάμεσο Λογισμικό με Μηνύματα (Message- Oriented Middleware) Κλήσεις Απομακρυσμένης Διαδικασίας (Remote Procedure Calls RPC) Object Request Brokers ORBs 14

15 Υποδοχές (Sockets) Προγραμματιστική διεπαφή η οποία: Παρέχει συναρτήσεις για τη δημιουργία και καταστροφή υποδοχών Παρέχει συναρτήσεις για την αίτηση σύνδεσης και την αποδοχή σύνδεσης υποδοχών Παρέχει συναρτήσεις για την αποστολή και λήψη δεδομένων μέσω των υποδοχών Επιχειρεί να αποκρύψει τις λεπτομέρειες της υλοποίησης του δικτύου 15

16 Υποδοχές 16

17 Υποδοχές και Θύρες 17

18 Υποδοχές και Πολύπλεξη 18

19 Επικοινωνία Stream / Datagram Επικοινωνία Ροής (SOCK_STREAM): προσανατολισμένο σε σύνδεση (connection oriented) πρωτόκολλο μεταφοράς: TCP (παρέχει αξιόπιστη μεταφορά δεδομένων) Επικοινωνία Datagram (SOCK_DGRAM): χωρίς σύνδεση (connectionless) πρωτόκολλο μεταφοράς: UDP (μη αξιόπιστη μεταφορά) χρησιμοποιείται συνήθως σε εφαρμογές που απαιτούν υψηλές ταχύτητες μετάδοσης µε μικρά τμήματα πληροφορίας χωρίς ανάγκη απόλυτης αξιοπιστίας (επαφίεται στην εφαρμογή) 19

20 TCP: Παροχή Αξιόπιστης Υπηρεσίας στις Εφαρμογές Υπηρεσία με Σύνδεση (Connection- Oriented Service) ή Επικοινωνία Ροής (Stream)

21 Αλληλεπίδραση Πελάτη Εξυπηρετητή στο TCP μέσω Υποδοχών 21

22 Σύνοψη λειτουργιών και κλήσεων συστήματος 22

23 Κλήσεις συστήματος για επικοινωνία υποδοχών TCP Εξυπηρετητής: δημιουργία τελικού σημείου (socket()) δέσμευση σε διεύθυνση (bind()) προσδιορισμός μεγέθους ουράς (listen()) αναμονή για σύνδεση (accept()) μεταφορά δεδομένων (read(), write()) Πελάτης: δημιουργία τελικού σημείου (socket()) σύνδεση με τον εξυπηρετητή (connect()) μεταφορά δεδομένων (write(), read()) 23

24 Πελάτης TCP Βήματα πελάτη για τη σύνδεση: δημιουργεί μια υποδοχή δεσμεύει την υποδοχή στην επιθυμητή τοπική δικτυακή διεύθυνση (προαιρετικό) Συνήθως υπάρχει μόνο μια κάρτα δικτύου / διεύθυνση Γενικά το ΛΣ μπορεί να επιλέγει αυτόματα Υπάρχουν περιπτώσεις που απαιτείται (firewalls) ζητά από το ΛΣ να συνδέσει την υποδοχή με κάποια υποδοχή στη διεύθυνση αποδέκτη (τη διεύθυνση αποδέκτη την παρέχει ο πελάτης) 24

25 Δομή για την αποθήκευση τελικού σημείου στο Internet struct sockaddr_in {/*struct to hold an address*/ }; u_char sin_len; /*total length */ u_short sin_family; /*type of address */ u_short sin_port; /*protocol port number */ struct in_addr sin_addr; /*IP address (declared to be u_long on some systems */ char sin_zero[8]; /*unused (set to zero) */ Η δομή για την αναπαράσταση διευθύνσεων στην οικογένεια πρωτοκόλλων TCP/IP 25

26 Κλήση Συστήματος socket() retcode = socket ( family, type, protocol ); family int type int protocol int Οικογένεια πρωτοκόλλων ή διευθύνσεων (PF_INET για TCP/IP) Τύπος υπηρεσίας (SOCK_STREAM για TCP ή SOCK_DGRAM για UDP) Αριθμός πρωτοκόλλου που θα χρησιμοποιηθεί ή 0 για χρήση του καθορισμένου πρωτοκόλλου για συγκεκριμένο family και type 26

27 Δημιουργία Υποδοχής TCP int main(int argc, char *argv[]) { int sock, ret; sock = socket (PF_INET, SOCK_STREAM, 0); if (sock == -1) { // error check perror ("Failed to create socket"); return -1; } } PF_INET: Protocol Family Internet, SOCK_STREAM: Υποδοχή TCP. Επιστρέφει έναν ακέραιο (sock) που είναι ο περιγραφέας της υποδοχής (socket descriptor) 27

28 connect() int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen); sockfd int serv_addr &sock_addr addrlen int Ο τοπικός περιγραφέας υποδοχής που θα συνδεθεί Η διεύθυνση τελικού σημείου του εξυπηρετητή με την οποία θα συνδεθεί ο περιγραφέας Το μέγεθος (σε bytes) της διεύθυνσης 28

29 Σύνδεση με διεργασία εξυπηρετητή struct sockaddr_in address; address.sin_family = AF_INET; address.sin_addr.s_addr = htonl(inaddr_loopback); address.sin_port = htons(15000); ret = connect (sock, (struct sockaddr *) &address, sizeof(address)); Σύνδεση με τη διεργασία εξυπηρετητή στη διεύθυνση address 29

30 Δομή δεδομένων για τήρηση διευθύνσεων ΙΡ IPv4 sockaddr_in length AF_INET αριθμός θύρας (16bit) διεύθυνση ΙΡ (32 bit) IPv6 sockaddr_in6 length AF_INET6 αριθμός θύρας (16bit) ετικέτα ροής (32 bit) (unused) διεύθυνση ΙΡv6 (128 bit) μέγεθος: 16 bytes 30 μέγεθος: 24 bytes

31 Δημιουργία σύνδεσης (κλήσεις συστήματος) socket() connect() (μπλοκάρει) client server socket(), bind(), listen(), accept() (μπλοκάρει) επιστρέφει η connect() αποστολή αίτησης χρόνος 31 χρόνος επιστρέφει η accept() ανάγνωση δεδομένων αποστολή απόκρισης

32 Διάταξη των bytes στο Δίκτυο και τον Κόμβο Ι Το TCP/IP αναπαριστά τους δυαδικούς ακέραιους που χρησιμοποιούνται στις επικεφαλίδες των πρωτοκόλλων με πρώτο το πιο σημαντικό byte (network byte order) s και l για λειτουργία με ακέραιους 16 και 32 bit H χρήση κατάλληλων ρουτινών μετατροπής κάνει τον κώδικα μεταφέρσιμο (ανεξάρτητα από τη διάταξη των bytes στο τοπικό μηχάνημα) 32

33 Διάταξη των bytes στο Δίκτυο και τον Κόμβο ΙΙ #include <netinet.h> uint16_t htons(uint16_t hostshort) Host to Network Short uint32_t htonl(uint32_t hostlong) Host to Network Long uint16_t ntohs(uint16_t netshort) Network to Host Short uint32_t ntohl(uint32_t netlong) Network to Host Long 33

34 Αναπαράσταση Διευθύνσεων I include <sys/socket.h> include <netinet/in.h> include <arpa/inet.h> char *inet_ntoa(struct in_addr in); int inet_aton(const char *cp, struct in_addr *inp); in_addr_t inet_addr(const char *cp); 34

35 Αναπαράσταση Διευθύνσεων II Οι συναρτήσεις αυτές μετατρέπουν από μια δομή in_addr σε δεκαδικό συμβολισμό με τελείες και αντίστροφα n = network, a = ASCII (για ιστορικούς λόγους). Οι λειτουργίες και τα ορίσματα είναι προφανή Η συνάρτηση inet_addr() είναι παλαιότερη και κάνει ότι και η inet_aton() 35

36 Εξυπηρετητής TCP Βήματα εξυπηρετητή για τη σύνδεση: δημιουργεί μια υποδοχή δεσμεύει την υποδοχή στην επιθυμητή τοπική δικτυακή διεύθυνση τελικού σημείου ζητά από το ΛΣ να ακούει για συνδέσεις εισέρχεται σε κατάσταση όπου αναμένει διαρκώς (σύγχρονα ή ασύγχρονα) να του παραδώσει μια σύνδεση το ΛΣ 36

37 Δημιουργία Υποδοχής TCP int main(int argc, char *argv[]) { int serversocket; serversocket = socket (PF_INET, SOCK_STREAM, 0); if (serversocket == -1) { // error check perror ("Failed to create socket"); return -1; } } PF_INET: Protocol Family Internet, SOCK_STREAM: Υποδοχή TCP 37

38 Δέσμευση Πρέπει να ορίσουμε τη διεύθυνση στην οποία θα αναμένουμε συνδέσεις Στο TCP/IP το ουσιαστικό ζητούμενο είναι η δημιουργία τελικού σημείου επικοινωνίας (endpoint) που αποτελείται από διεύθυνση ΙΡ και αριθμό θύρας πρωτοκόλλου Οι πελάτες πρέπει να γνωρίζουν τη διεύθυνση αυτή για να μπορέσουν να συνδεθούν Το ΛΣ δεν επιτρέπει σε άλλο πρόγραμμα να δεσμεύσει τη διεύθυνση αυτή 38

39 Διεύθυνση Αναμονής Σύνδεσης struct sockaddr_in address; address.sin_family = AF_INET; address.sin_addr.s_addr = htonl (INADDR_ANY); address.sin_port = htons (15000); Δημιουργία Τελικού Σημείου Εξυπηρετητή sin_family: πρέπει να είναι αντίστοιχο του socket family sin_addr: ακέραιος 32bit. Αντιστοιχεί σε ένα μοναδικό μηχάνημα sin_port: ακέραιος 16bit. Αντιστοιχεί σε ένα μοναδικό πρόγραμμα στον εξυπηρετητή 39

40 Δέσμευση Υποδοχής στη Διεύθυνση Αναμονής (bind()) retcode = bind ( socket, localaddr, addrlen ); socket int localaddr &sockaddr addrlen int Περιγραφέας υποδοχής που δημιουργείται από τη socket() Η διεύθυνση μιας δομής που προσδιορίζει μια διεύθυνση IP και τον αριθμό θύρας πρωτοκόλλου Μέγεθος του δεύτερου ορίσματος σε bytes 40

41 bind() ret = bind (serversocket, (struct sockaddr *) &address, sizeof (address)); if (ret == -1) { // error check } perror ("Failed to bind socket"); return -1; Δέσμευση Υποδοχής σε Τοπική Διεύθυνση 41

42 Τοποθέτηση σε Παθητική Κατάσταση retcode = listen( socket, queuelen ); socket int Ένας περιγραφέας υποδοχής που έχει δημιουργηθεί από την κλήση socket() queuelen int Το μέγεθος της ουράς των εισερχόμενων αιτήσεων σύνδεσης (εξ ορισμού 5) 42

43 listen() ret = listen (serversocket, 10); if (ret == -1) { // error check } perror ("Failed to start listening on socket"); return -1; Τοποθέτηση υποδοχής εξυπηρετητή σε παθητική κατάσταση (δηλ. κατάσταση αναμονής αιτήσεων μέσω της υποδοχής, με μέγιστο μέγεθος ουράς 10 αιτήσεις) 43

44 accept() I int accept( int s, struct sockaddr *addr, socklen_t *addrlen ); Η accept() δέχεται ως ορίσματα: την υποδοχή που αναμένει για αιτήσεις σύνδεσης μια δομή διεύθυνσης που συμπληρώνει με τα στοιχεία του πελάτη τη διεύθυνση ακεραίου (socklen_t) που: αρχικά έχει το μέγεθος της δομής διεύθυνσης στην επιστροφή έχει το μέγεθος που χρησιμοποιήθηκε 44

45 accept() II int accept(int s, struct sockaddr *addr, socklen_t *addrlen); Επιστρέφει μια νέα υποδοχή! Η αρχική συνεχίζει να χρησιμοποιείται για την αναμονή αιτήσεων και τη δημιουργία συνδέσεων Η νέα χρησιμοποιείται για την ανταλλαγή δεδομένων για τη συγκεκριμένη σύνδεση 45

46 Αποδοχή Σύνδεσης struct sockaddr_in remoteaddress; int addresslength, clientsocket; addresslength = sizeof (remoteaddress); clientsocket = accept (serversocket, (struct sockaddr *) &remoteaddress, &addresslength); if (clientsocket == -1) { // error check perror ("Error while accepting connection"); return -1; } printf ("Connection has been established\n"); Παραδίδεται η πρώτη αίτηση σύνδεσης από την ουρά. Η δομή remoteaddress και η addresslength περιέχουν τη διεύθυνση τελικού σημείου του πελάτη 46

47 accept() ΙII Από την στιγμή που η accept() επιστρέφει τη νέα υποδοχή, η σύνδεση µε τον πελάτη έχει εγκατασταθεί Μέχρι να ξανακληθεί η accept(), o εξυπηρετητής δεν ικανοποιεί αιτήσεις Οι κλήσεις που γίνονται όσο ο εξυπηρετητής δεν βρίσκεται στην accept() τοποθετούνται σε μια ουρά (εξορισμού μεγέθους 5 μπορεί να αλλάξει µε την listen()) 47

48 accept() ΙV Ο συνήθης τρόπος επεξεργασίας της αίτησης από τον εξυπηρετητή είναι µε fork() Με την fork() ο πελάτης επικοινωνεί µε έναν «αφοσιωµένο» σε αυτόν αντίγραφο του εξυπηρετητή Ο «αρχικός» εξυπηρετητής επιστρέφει για να συνεχίσει να αναμένει για νέες αιτήσεις σύνδεσης (επιστροφή στην accept()) 48

49 Δημιουργία Σύνδεσης (κλήσεις συστήματος) socket() connect() (μπλοκάρει) client server socket(), bind(), listen(), accept() (μπλοκάρει) επιστρέφει η connect() αποστολή αίτησης χρόνος 49 χρόνος επιστρέφει η accept() ανάγνωση αίτησης αποστολή απόκρισης

50 Η κλήση fork() I πελάτης connect() Αρχικά ανοικτή μόνο η υποδοχή αναμονής αιτήσεων για σύνδεση accept(): επιστρέφει την υποδοχή που θα χρησιμοποιηθεί για την ανταλλαγή δεδομένων με τον πελάτη εξυπηρετητής serversock accept() clientsock fork() εξυπηρετητής (παιδί) serversock clientsock fork(): Δημιουργεί αντίγραφο διεργασίας και επιστρέφει 0 στο παιδί. Τα παιδιά κληρονομούν από τη διεργασία γονέα, ανοικτά αρχεία, υποδοχές, πρόγραμμα και δεδομένα 50

51 Η κλήση fork() II πελάτης connect() εξυπηρετητής serversock Η διεργασία γονέας κλείνει τον περιγραφέα υποδοχής που αφορά στη σύνδεση που δημιουργήθηκε και επιστρέφει στην αναμονή για αιτήσεις Η διεργασία παιδί κλείνει την υποδοχή αναμονής συνδέσεων και αρχίζει να εξυπηρετεί την αίτηση 51 fork() εξυπηρετητής (παιδί) clientsock

52 Πολυνηματικές και Μονονηματικές Διεργασίες Ο χειρισμός των αιτήσεων μπορεί να γίνει είτε επαναληπτικά είτε ταυτόχρονα και από μονονηματικές ή πολυνηματικές διεργασίες Στο Linux χρησιμοποιείται και η κλήση συστήματος clone() που υποστηρίζει μια ενδιάμεση μορφή μεταξύ νήματος και διεργασίας Η pthread_create() χρησιμοποιείται για τη δημιουργία νημάτων POSIX 52

53 Ανάλυση (resolve) ενός ονόματος #include <netdb.h> struct hostent *gethostbyname(const char *hostname); struct hostent { char *h_name; /*official host name */ char **h_aliases; /*other aliases */ int h_addrtype; /*address type */ int h_length; /*address length */ char **h_addr_list; /*list of addresses */ }; #define h_addr h_addr_list[0] 53

54 Η δομή hostent 54

55 Αντιστοίχηση Ονόματος με Διεύθυνση ΙΡ struct hostent *hptr; struct sockaddr_in peeraddr; char *examplenam = "merlin.cs.purdue.edu"; (ή char *examplenam = argv[1];) if (hptr = gethostbyname (examplenam )) { /* IP address is now in hptr ->h_addr */ } else { /* error in name - handle it */ } peeraddr.sin_family = AF_INET; peeraddr.sin_addr.s_addr = ((struct in_addr *) (hptr->h_addr))->s_addr; 55

56 Αναζήτηση Προκαθορισμένης Θύρας I #include <netdb.h> struct servent *getservbyname(const char *servname, const char *protoname); struct servent { char *s_name; /*official service name */ char **s_aliases; /*other aliases */ int s_port; /*port for this service */ char *s_proto; /*protocol to use */ }; #include <netdb.h> struct servent *getservbyport(int port, const char *protoname); 56

57 Αναζήτηση Προκαθορισμένης Θύρας II struct servent *sptr; if (sptr = getservbyname ("smtp","tcp" )) { /* port number is now in sptr ->s_port */ } else { /* error occurred - handle it */ } peeraddr.sin_port = sptr->s_port; Η χρήση συναρτήσεων όπως οι παραπάνω, οδηγεί σε μεγαλύτερη μεταφερσιμότητα, λειτουργικότητα και γενικότητα στην πλευρά του πελάτη, αφού είναι εφικτό το πέρασμα παραμέτρων 57

58 Αποστολή και Λήψη Δεδομένων σε Υποδοχές TCP Γίνεται όπως η ανάγνωση/εγγραφή σε αρχεία με χρήση των συναρτήσεων Ε/Ε: read()/write() Επίσης, μπορούν να χρησιμοποιηθούν οι συναρτήσεις: send()/recv() Η λειτουργικότητα είναι αντίστοιχη 58

59 Ενδιάμεση Αποθήκευση (TCP Buffers) Το ΛΣ παρέχει μια περιοχή ενδιάμεσης αποθήκευσης (TCP buffer) Τα πακέτα, με την άφιξή τους τοποθετούνται στον TCP buffer Η read() παραδίδει τα δεδομένα στη διεργασία Ανάλογη λειτουργικότητα με την listen() και την ουρά εισερχόμενων συνδέσεων 59

60 send() / recv() count = send(sock, buf, buflen, flags) int count, sock, buflen, flags; char *buf; count = recv(sock, buf, buflen, flags) int count, sock, buflen, flags; char *buf; 60

61 Αξιόπιστη Υπηρεσία Η send() μπλοκάρει αν ο παραλήπτης δεν μπορεί να λάβει τα δεδομένα με το ρυθμό που στέλνονται (έλεγχος ροής) Ο buffer του ΛΣ χρησιμοποιείται για την παράδοση των δεδομένων στην εφαρμογή με τη σειρά που εστάλησαν Ο buffer έχει κάθε φορά συγκεκριμένο παράθυρο λήψης (έλεγχος ροής) 61

62 Ανάγνωση από Σύνδεση TCP Το TCP κατά την παραλαβή δε διατηρεί την ομαδοποίηση με την οποία εστάλησαν τα δεδομένα (πρωτόκολλο ροής χαρακτήρων) Κάθε πρόγραμμα που διαβάζει δεδομένα από μια σύνδεση TCP πρέπει να είναι έτοιμο να δεχθεί τα δεδομένα σε διαφορετικά τμήματα από αυτά που εστάλησαν Γενικά, το πλήθος των αναγνώσεων μπορεί να μην είναι ίσο με το πλήθος των εγγραφών 62

63 Κώδικας Ανταλλαγής Δεδομένων σε Σύνδεση TCP I /* Example code segment */ #define BLEN 120 /*Buffer length to use*/ char *req = "request of some sort"; char buf [BLEN] ; /*Buffer for answer*/ char *bptr; /* Pointer to Buffer*/ int n; /*Number of bytes read*/ int buflen; /*space left in buffer*/ bptr = buf; buflen= BLEN; 63

64 Κώδικας Ανταλλαγής Δεδομένων σε Σύνδεση TCP II /*Send request*/ send(s, req, strlen(req), 0); /*Read response (may come in many pieces)*/ while ((n=recv(s, bptr, buflen, 0)>0) { bptr += n; buflen-=n; } 64

65 Ανάγνωση με Διακοπές Η ανάγνωση μπορεί να γίνεται με διακοπές: λόγω άφιξης σήματος επειδή η υποδοχή ορίστηκε O_NONBLOCK η μεταβλητή errno σε αυτή την περίπτωση λαμβάνει τιμή EINTR ή EAGAIN αντίστοιχα Ο κώδικας θα πρέπει να είναι γραμμένος έτσι ώστε να διαχωρίζει αυτές τις περιπτώσεις από περιπτώσεις λαθών 65

66 Τερματισμός Σύνδεσης Όταν τα προγράμματα τελειώσουν την ανταλλαγή δεδομένων, πρέπει να τερματίζουν τη σύνδεση (απελευθέρωση περιγραφέα, δομών δεδομένων για την υποδοχή, buffer ΛΣ) Το ΛΣ: ενημερώνει με ειδικά πακέτα (FIN) το άλλο άκρο ώστε να γνωρίζει ότι πλέον η σύνδεση είναι άκυρη απελευθερώνει τους πόρους που υποστηρίζουν τη λειτουργία της σύνδεσης 66

67 close() int close(int sock); Ίδια ακριβώς χρήση και στα δυο άκρα Δεδομένα που έχει στείλει το άλλο πρόγραμμα πριν κλείσει τη σύνδεση, παραδίδονται από την ενδιάμεση αποθήκευση του ΛΣ Μετά από μια κλήση στην close() ο περιγραφέας αχρηστεύεται 67

68 Μερικός Τερματισμός shutdown() errcode = shutdown ( sock, direction ); Ο πελάτης δηλώνει ότι δε θα μεταφέρει δεδομένα (προς κάποια κατεύθυνση) και δεν αποδεσμεύει την υποδοχή Η εφαρμογή εξυπηρετητή λαμβάνει ένα σήμα end-of-file Ο εξυπηρετητής θα κλείσει τη σύνδεση μετά την τελευταία απόκριση Ιδιαίτερα χρήσιμο για πρωτόκολλα που ανταλλάσσουν αυθαίρετα μεγάλες ποσότητες δεδομένων 68

69 UDP: Μη Αξιόπιστη Υπηρεσία στις Εφαρμογές Υπηρεσία Χωρίς Σύνδεση (Connectionless Service) ή Επικοινωνία Δεδομενογραφημάτων (Datagram)

70 Αλληλεπίδραση Πελάτη Εξυπηρετητή στο UDP μέσω Υποδοχών 70

71 Σύνοψη Λειτουργιών και Κλήσεων Συστήματος 71

72 Κλήσεις συστήματος για επικοινωνία υποδοχών UDP Εξυπηρετητής: δημιουργία τελικού σημείου (socket()) δέσμευση διεύθυνσης (bind(), όπως στο TCP) ανταλλαγή δεδομένων (sendto(), recvfrom()) Πελάτης: δημιουργία τελικού σημείου (socket()) ανταλλαγή δεδομένων (sendto(), recvfrom()) 72

73 Χαρακτηριστικά του UDP Χωρίς σύνδεση (datagram-based) πιθανή άφιξη των πακέτων με διαφορετική σειρά η παράδοση των δεδομένων στον παραλήπτη δεν είναι εγγυημένη Χωρίς έλεγχο ροής Αποθήκευση ολόκληρων πακέτων (δεν είναι εφικτή η ανάγνωση μέρους του πακέτου) Μέγιστο μέγεθος πακέτου τα 64ΚΒ (επικεφαλίδα + φορτίο (payload)) 73

74 Χωρίς Σύνδεση Μέσα από την ίδια υποδοχή UDP ένα πρόγραμμα μπορεί: να στείλει πακέτα σε οποιοδήποτε άλλο πρόγραμμα στο Internet να λάβει πακέτα από οποιοδήποτε άλλο πρόγραμμα στο Internet Συγκρίνετε με το TCP όπου: οι υποδοχές συνδέονται σε ζεύγη ανταλλαγή δεδομένων υπάρχει μόνο μεταξύ συνδεδεμένων ζευγών 74

75 Χώρος Θυρών TCP και UDP Η επικεφαλίδα του ΙΡ περιέχει το πρωτόκολλο επιπέδου μεταφοράς για το οποίο προορίζεται ένα πακέτο Οι χώροι διευθύνσεων τελικού σημείου (θύρες) UDP και TCP είναι διαφορετικοί (μια υποδοχή TCP με αριθμό θύρας Χ μπορεί να συνυπάρχει στο ίδιο σύστημα με μια υποδοχή UDP με αριθμό θύρας Χ) Τα πακέτα TCP με αριθμό θύρας Χ θα παραδοθούν σε διαφορετική διεργασία από τα πακέτα UDP με αριθμό θύρας X 75

76 Δημιουργία Πακέτων Σχηματισμός πακέτων: Στο TCP γίνεται από το ΛΣ διαδοχικές send() μπορεί να ενωθούν στο ίδιο πακέτο μεγάλες send() μπορεί να σπάσουν σε > 1 πακέτα Στο UDP ελέγχεται από τον προγραμματιστή κάθε sendto() μπαίνει σε ένα πακέτο κλήση στη sendto() με δεδομένα > 64K επιστρέφει λάθος 76

77 Ανάγνωση Δεδομένων Ο τρόπος δημιουργίας πακέτων επηρεάζει τον τρόπο ανάγνωσης δεδομένων: TCP η recv() λειτουργεί πάνω σε μια ροή (stream) εισερχόμενων bytes της ενδιάμεσης αποθήκευσης του ΛΣ, που δεν έχει καμιά σχέση με τη δημιουργία πακέτων UDP κάθε recvfrom() παραλαμβάνει ακριβώς ένα πακέτο αν στην recvfrom() δεν υπάρχει αρκετός χώρος στο σημείο όπου τοποθετούνται τα εισερχόμενα δεδομένα, τα bytes του πακέτου αποκόπτονται 77

78 Δημιουργία Υποδοχής UDP int main(int argc, char *argv[]) { int sock; sock = socket (PF_INET, SOCK_DGRAM, 0); if (sock == -1) { // error check perror ("Failed to create socket"); return -1; } } PF_INET: Protocol Family Internet, SOCK_DGRAM: Υποδοχή UDP. Επιστρέφει έναν ακέραιο (sock) που είναι ο περιγραφέας της υποδοχής (socket descriptor) 78

79 Αποστολή και Λήψη Δεδομένων count = sendto(sock, buf, buflen, flags, to, tolen) int count, sock, buflen, flags, tolen; char *buf; struct sockaddr *to; count = recvfrom(sock, buf, buflen, flags, from, fromlen) int count, sock, buflen, flags, *fromlen; char *buf; struct sockaddr *from; 79

80 sendto() sock int Ένας περιγραφέας υποδοχής buff &char Ένας δείκτης στο μήνυμα buflen int flags int Bits ελέγχου to Το μέγεθος του μηνύματος σε bytes &sockaddr Δείκτης στη δομή της διεύθυνσης tolen int Το μέγεθος της διεύθυνσης 80

81 recvfrom() sock int Ένας περιγραφέας υποδοχής buff &char Η προσωρινή μνήμη που θα μπει το μήνυμα buflen int Μέγεθος της προσωρινής μνήμης flags int Bits ελέγχου from &sockaddr Θα τοποθετηθεί η διεύθυνση του αποστολέα fromlen &int Επιστρέφει το μέγεθος του from 81

82 connect() Εφόσον αποστέλλουμε συνεχώς σε συγκεκριμένο παραλήπτη μπορούμε να τον παγιώσουμε με τη χρήση της connect() Η connect() στο UDP δε δημιουργεί σύνδεση Η υποδοχή έχει έναν προκαθορισμένο αποδέκτη (χρησιμοποιείται η send()) Μπορεί κανείς να στείλει και σε άλλους αποδέκτες καλώντας την sendto() αντί για την send() 82

83 Παράδειγμα int main(int argc, char *argv[]) { int sock, ret; struct sockaddr_in recvadr; recvadr.sin_family = AF_INET; inet_aton ( , &recvadr.sin_addr); recvadr.sin_port = htons (15000); connect (sock, &recvadr, sizeof (recvadr)); send (sock, data, DATASIZE, 0); send (sock, moredata, DATASIZE, 0); } Αφού χρησιμοποιηθεί η connect() δεν απαιτείται ο προσδιορισμός παραλήπτη στη send() 83

84 Σήματα (Signals) Signal id default SIGKILL 9 Terminate SIGALRM 14 Terminate SIGSYS 12 Core SIGCHLD 20 Ignore 84

85 Σήματα Μπορούμε να καθορίσουμε επακριβώς την συμπεριφορά μίας διεργασίας, ύστερα από την λήψη ενός σήματος εκτέλεση μίας συνάρτησης (signal handler) καμία ενέργεια (SIG_IGN) προκαθορισμένη συμπεριφορά (SIG_DFL) Τα σήματα SIGKILL και SIGSTOP δεν μπορούν ούτε να αγνοηθούν ούτε να «πιαστούν» από μία συνάρτηση (signal handler) 85

86 waitpid() 86

87 Χειρισμός κλήσεων συστήματος που διακόπτονται Όταν μια κλήση συστήματος που μπλοκάρει (π.χ. accept()) διακοπεί από ένα σήμα, μετά την επιστροφή από το χειριστή σήματος η κλήση συστήματος θέτει τη μεταβλητή errno ίση με EINTR Ο πυρήνας δεν είναι βέβαιο ότι θα επανεκιννήσει την κλήση συστήματος Θα πρέπει ο προγραμματιστής να φροντίζει για την επανεκκίνηση της κλήσης συστήματος 87

88 Χειρισμός κλήσεων συστήματος που διακόπτονται for ( ; ; ) { clilen = sizeof(cliaddr); if ((connfd = accept(listenfd, (sockaddr *)&cliaddr, &clilen)) < 0) { } if (errno == EINTR) continue; else perror( accept error ); 88

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

Ζητήματα Σχεδίασης Λογισμικού Πελάτη Ζητήματα Σχεδίασης Λογισμικού Πελάτη Διαδικτυακός και Ταυτόχρονος Προγραμματισμός 1 Αναγνώριση Τοποθεσίας Εξυπηρετητή Για την αναγνώριση της διεύθυνσης και της θύρας ενός εξυπηρετητή ο πελάτης μπορεί να

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

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

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

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

Δίκτυα Επικοινωνιών ΙΙ: 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, μη αξιόπιστο,

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

Επικοινωνία Διεργασιών στο Internet με POSIX Sockets

Επικοινωνία Διεργασιών στο Internet με POSIX Sockets Επικοινωνία Διεργασιών στο Internet με POSIX Sockets ΣΤ Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Στερεάς Ελλάδας plam@inf.teilam.gr, 2016 Δήλωση Οι διαφάνειες βασίζονται

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

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming TCP Sockets Δίκτυα Επικοινωνιών ΙΙ: Network Programming TCP Sockets Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 Δικτυακός Προγραμματισμός Βασικές Έννοιες: IP addresses,

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

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

Εργαστήριο Δικτύων Υπολογιστών Εργαστήριο Δικτύων Υπολογιστών 3 η Διάλεξη: Δικτυακός Προγραμματισμός Unix Socket programming Μοντέλο client-server O βασικός τύπος δικτυακών εφαρμογών είναι client - server H σχέση server και client μπορεί

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

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

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

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

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

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

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

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

4 η ιάλεξη: Signals UDP Sockets Εργαστήριο ικτύων Υπολογιστών 4 η ιάλεξη: ικτυακός Προγραμματισμός Signals UDP Sockets TCP sockets και signals Όταν σε ένα TCP server κάνουμε fork (γεννάμε διεργασίες-παιδιά servers για να εξυπηρετήσουμε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Socket Application Programming Interface

Socket Application Programming Interface Socket Application Programming Interface Εισαγωγή Το socket είναι ένας τύπος διεπαφής μεταξύ των προγραμμάτων εφαρμογής και του λογισμικού πρωτοκόλλων Είναι ευρέως διαθέσιμο για να διασφαλίζεται η μεταφερσιμότητα

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

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

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

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

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

Επικοινωνία Client/Server Υποδοχές Επικοινωνία Client/Server Υποδοχές Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία με Υποδοχές 1 Ορισμός των Υποδοχών (sockets) Τα sockets προσφέρουν μια γενικευμένη ικανότητα

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

Εγχειρίδιο Συναρτήσεων. 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 που σχετίζεται με αυτή Σε

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

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

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

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

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

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

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 1999-2000 ΜΑΘΗΜΑ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ : Θ. ΑΠΟΣΤΟΛΟΠΟΥΛΟΣ ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΗΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ CLIENT-SERVER(πελάτη-εξυπηρετητή)

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

{ int pipe(int fd[ ]) close

{ int pipe(int fd[ ]) close 104 { { { { { { 105 pipe { int pipe(int fd[ ]) { fd[0] fd[1] {, -,,, write read { close { pipe 0-1 106 pipe /* File: pipe_demo.c */ #include /* For printf */ #define READ 0 /* Read end of pipe

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

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

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

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

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.1.1. Γενικές Αρχές 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 και θα μπορούσε να θεωρηθεί ότι πρόκειται

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

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

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

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

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1 ικτύωσησε Java ιευθύνσεις IP Υποδοχές ρεύµατος Σειριακοποίηση αντικειµένων Υποδοχές δεδοµενογραφηµάτων Υποδοχές πολυεκποµπής Οµοιόµορφοι Εντοπιστές Πόρων Κατανεµηµένα Συστήµατα 08-1 Υποδοχές σε C ικτύωσησε

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

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

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

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

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

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

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

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

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

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

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

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ - ΑΣΚΗΣΕΙΣ 1. Για να διεκπεραιωθεί η μεταφορά των πακέτων από την πηγή στον προορισμό μεταξύ των κόμβων του επικοινωνιακού υποδικτύου απαιτείται η

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

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

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

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

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

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

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

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

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 lalis@inf.uth.gr Συνεργασία ανάμεσα σε διεργασίες Για ασφάλεια/ανεξαρτησία, το ΛΣ εξασφαλίζει πλήρη απομόνωση ανάμεσα στις

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

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

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

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

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

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

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

Κ. Στάµος Μηχανικός Η/Υ και Πληροφορικής, Πανεπιστήµιο Πατρών Μηχανικός Έρευνας και Ανάπτυξης, ΕΜ6/ΕΑΙΤΥ

Κ. Στάµος Μηχανικός Η/Υ και Πληροφορικής, Πανεπιστήµιο Πατρών Μηχανικός Έρευνας και Ανάπτυξης, ΕΜ6/ΕΑΙΤΥ σελίδα 1 Κ. Στάµος Μηχανικός Η/Υ και Πληροφορικής, Πανεπιστήµιο Πατρών Μηχανικός Έρευνας και Ανάπτυξης, ΕΜ6/ΕΑΙΤΥ Περιεχόµενα Αναφορά στις αλλαγές που επιφέρει το IPv6 στην ανάπτυξη δικτυακών εφαρµογών

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κατανεμημένα Συστήματα Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου

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

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

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

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

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 Από την αρχή κύριος

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

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

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

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

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

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

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

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP Πρωτόκολλα επικοινωνίας Ορισμός Σύνολα προσυμφωνημένων κανόνων που απαιτούνται για τον καθορισμό του τρόπου με τον οποίο επιτυγχάνεται η ανταλλαγή δεδομένων, και επομένως

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

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 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 υπηρεσία επιτρέπει σε έναν

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Περιεχόμενα ενότητας Διεργασίες Κλήσεις δημιουργίας και τερματισμού διεργασιών Επικοινωνία διεργασιών μέσω

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

Network Address Translation (NAT)

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

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

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

Δίκτυα Θεωρία Δίκτυα Θεωρία 2016-17 Κεφάλαιο 1 1. Ποια είναι τα επίπεδα που χρησιμοποιεί το μοντέλο αναφοράς για τη Διασύνδεση Ανοικτών Συστημάτων (OSI); i. Φυσικό Επίπεδο ii. επίπεδο Ζεύξης ή Σύνδεσης Δεδομένων iii.

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Δεδομένα και ερμηνεία (ξανά) Τα δεδομένα στον Η/Υ έχουν δυαδική μορφή (bytes) Η ερμηνεία των bytes εξαρτάται από το πρόγραμμα που παράγει/καταναλώνει τα δεδομένα Μια δημοφιλής

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

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Γ Τάξη ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑ.Λ. ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ Κωνσταντοπούλου Μ., Χρυσοστόμου Γ.

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Γ Τάξη ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑ.Λ. ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ Κωνσταντοπούλου Μ., Χρυσοστόμου Γ. ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Γ Τάξη ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑ.Λ. ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ Κωνσταντοπούλου Μ., Χρυσοστόμου Γ. Υποδείξεις απαντήσεων/λύσεων στις ερωτήσεις, ασκήσεις και δραστηριότητες του τετραδίου μαθητή, Κεφ.1

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

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper. Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Sun RPC MPI «Sun RPC & MPI» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Κλήση

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

Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κατανεμημένα Συστήματα Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

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

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

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

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

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

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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

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

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

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

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

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

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

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

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ / ΕΠΑΛ(Α & Β ΟΜΑΔΑ) ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 11/12/2011 ΑΠΑΝΤΗΣΕΙΣ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ / ΕΠΑΛ(Α & Β ΟΜΑΔΑ) ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 11/12/2011 ΑΠΑΝΤΗΣΕΙΣ ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ / ΕΠΑΛ(Α & Β ΟΜΑΔΑ) ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 11/12/2011 ΘΕΜΑ 1 ΑΠΑΝΤΗΣΕΙΣ Α. Να χαρακτηρίσετε κάθε μία από τις παρακάτω προτάσεις με Σωστό (Σ) ή Λάθος (Λ). 1. Στο μοντέλο

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου ΚΕΦΑΛΑΙΟ 1.7 Πρωτόκολλα και Αρχιτεκτονική Δικτύου Επικοινωνία δύο σταθμών Ύπαρξη διαδρομής Αποκατάσταση σύνδεσης Ο σταθμός-πηγή πρέπει να ξέρει πότε ο σταθμός-προορισμός είναι έτοιμος να λάβει δεδομένα.

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

Προγραµµατισµός ικτύων Ε-01

Προγραµµατισµός ικτύων Ε-01 Προγραµµατισµός ικτύων Ε-01 3η ιάλεξη ιδάσκων: Νίκος Ντάρµος [http://www.cs.uoi.gr/~ntarmos/courses/networkprogramming/] Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων Στο σηµερινό µάθηµα...

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

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

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

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

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed

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

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7.4 Πρωτόκολλο Μέχρι τώρα περιγράψαμε συνδέσεις, που χρησιμοποιούν το πρωτόκολλο TCP. Θυμηθείτε, ότι το TCP είναι υπεύθυνο για το τεμαχισμό των μηνυμάτων σε τμήματα και την επανασύνδεση τους στον προορισμό.

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

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

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

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

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

Τεχνολογίες ιαδικτύου Τεχνολογίες ιαδικτύου Εισαγωγή Αρχιτεκτονική, Πρωτόκολλα και Πρότυπα Βασικών Υπηρεσιών Ιστορικά Στοιχεία ARPANET Ο «παππούς» των δικτύων Αναπτύχθηκε από την DARPA στα τέλη του 60 Το 83 διασπάται σε MILNET

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

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

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

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

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

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

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

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος 09 1 http://creativecommons.org/licenses/by-nc-nd/3.

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος 09 1 http://creativecommons.org/licenses/by-nc-nd/3. Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET Εφαρµογές - Ιούλιος 09 1 Εισαγωγή στην τεχνολογία TCP/IP Τεχνολογία TCP/IP TCP/IP Πρωτόκολλα TCP/IP ή τεχνολογία TCP/IP ή τεχνολογία ιαδικτύου (Internet)( ιαδίκτυο

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

Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1

Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1 Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1 lalis@inf.uth.gr Ουρά μηνυμάτων Αποθήκη μηνυμάτων στην μνήμη του λειτουργικού Περιορισμένος αριθμός / όγκος μηνυμάτων Κάθε μήνυμα είναι

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

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

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

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

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

Προγραμματισμός συστημάτων UNIX/POSIX Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί

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

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

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

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

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

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση. ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ / Γ- ΕΠΑ.Λ. ΗΜΕΡΟΜΗΝΙΑ: 21-02- 2016 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι. ΜΙΧΑΛΕΑΚΟΣ-Α.ΚΑΤΡΑΚΗ ΘΕΜΑ Α. A1. Να γράψετε το γράμμα καθεμιάς από τις παρακάτω προτάσεις και δίπλα τη

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

Προγραµµατισµός ικτύων Ε-01

Προγραµµατισµός ικτύων Ε-01 Προγραµµατισµός ικτύων Ε-01 4η ιάλεξη ιδάσκων: Νίκος Ντάρµος [http://www.cs.uoi.gr/~ntarmos/courses/networkprogramming/] Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων Στο σηµερινό µάθηµα...

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

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 διασύνδεσης ανοικτών συστημάτων.

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

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

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

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

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

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

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

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

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

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

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο 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

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

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 1 / 32 Σε έναν κόμβο ο οποίος επιθυμεί να αποστείλει δεδομένα σε κάποιον

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

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

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

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

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ Ερωτήσεις 7.3 Πρωτόκολλο TCP 1. Τι είναι το τµήµα (segment) στο πρωτόκολλο TCP; Από ποια µέρη αποτελείται; 2. Για ποιο σκοπό χρησιµοποιείται ο Αριθµός ειράς στην επικεφαλίδα ενός segment TCP; 3. την περίπτωση

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

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο Πρωτόκολλα Διαδικτύου Μέρος 2ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Internet Protocol (IP) Στο επίπεδο δικτύου της τεχνολογίας TCP/IP, συναντάμε το πρωτόκολλο IP. Η λειτουργία του IP βασίζεται αποκλειστικά

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

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 lalis@inf.uth.gr Τι είναι ένας αγωγός; Μηχανισμός/συσκευή επικοινωνίας διεργασιών Μετάδοση μιας ροής από bytes (μονής κατεύθυνσης) First-in-first-out (FIFO):

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

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ Δίκτυα Υπολογιστών Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές Γενικά Τα αρχεία των διαλέξεων του μαθήματος μπορείτε να βρείτε στο: http://eclass.gunet.gr/

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

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

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET Κεφάλαιο 4: Τεχνικές Μετάδοσης ΜΕΤΑΓΩΓΗ Τεχνική µεταγωγής ονομάζεται ο τρόπος µε τον οποίο αποκαθίσταται η επικοινωνία ανάµεσα σε δύο κόµβους με σκοπό την

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

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

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Βασικοί Τύποι Πίνακες (μέρος 1) Συμβολοσειρές Ο Προεπεξεργαστής Τελευταία ενημέρωση: Σεπτέμβριος 2016 Εισαγωγή - 2 short:

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

ΑΤΜ PROJECT ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 2011-2012. Άννα Τριανταφύλλου ΑΕΜ : 456. επιβλέπων καθηγητής: Μηνάς Δασυγένης

ΑΤΜ PROJECT ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ 2011-2012. Άννα Τριανταφύλλου ΑΕΜ : 456. επιβλέπων καθηγητής: Μηνάς Δασυγένης Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΑΤΜ PROJECT Άννα Τριανταφύλλου ΑΕΜ : 456 επιβλέπων καθηγητής: Μηνάς Δασυγένης Περιεχόμενα 1. 2. 3.

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Σύνοψη Ορίστηκε από τον Dennis Ritchie το 1975 Μέρος του προτύπου ANSI C Λειτουργίες εισόδου/εξόδου υψηλού επίπεδου και ανεξάρτητες λειτουργικού συστήματος Υποστήριξη για

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

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

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Ερωτήσεις Ασκήσεις Επικοινωνίες Δεδομένων Μάθημα 3 ο Ερωτήσεις 1. Τι είναι το intranet και ποια τα πλεονεκτήματα που προσφέρει; 2. Τι δηλώνει ο όρος «TCP/IP»; 3. Να αναφέρετε τα πρωτόκολλα

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

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

Εισαγωγή στο TCP/IP. Π. Γαλάτης Εισαγωγή στο TCP/IP Π. Γαλάτης H σουίτα πρωτοκόλλου TCP/IP Το TCP/IP είναι ένα σύνολο πρωτοκόλλων που ονομάζουμε σουίτα και αφορούν στη δικτύωση των υπολογιστών. Transmission Control Protocol (TCP) μετάδοση

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

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

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & Άνοιγμα αρχείου μέσα από τo SPIM, διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη (Διάλεξη 3) 1 Μετατροπή χαρακτήρων ASCII σε ακέραιο Ο πιο κάτω κώδικας

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

Διεργασίες και Νήματα (2/2)

Διεργασίες και Νήματα (2/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (2/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Νήματα

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