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



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

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

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

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

Χρ. Μπούρας Αναπληρωτής Καθηγητής Πανεπιστηµίου Πατρών Επιστηµονικός Υπεύθυνος ΕΜ6/ΕΑΙΤΥ

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

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

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

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

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

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

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

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

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

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

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

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Socket Application Programming Interface

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΤΟΥΣ

Δομημένος Προγραμματισμός (ΤΛ1006)

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

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

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

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

Προγραμματισμό για ΗΜΥ

Περιεχόµενα. I Βασικές Γνώσεις 1

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

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

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

HY-335a Project: microtcp, μία lightweight TCP βιβλιοθήκη. Deadline πρώτης ϕάσης : 19/11/ :59

Τεχνική Οδηγία. Επίλυση προβληµάτων µε DDNS Updates στα σχολικά εργαστήρια. Μάρτιος Σύνταξη: Τοµέας Εκπαιδευτικής Τεχνολογίας

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

B. Ενσωμάτωση Ιθαγενών Μεθόδων

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

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

Κεφάλαιο : Εισαγωγή στην C: (Διαλέξεις 3-4)

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

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

Παραδείγµατα δικτυακών τεχνολογιών. Ethernet Internet ATM

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Δίκτυα Επικοινωνιών ΙΙ: Πληροφορίες σχετικά με το μάθημα

ιαφάνειες παρουσίασης #5 (β)

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

Λιόλιου Γεωργία. ιατµηµατικό Πρόγραµµα Μεταπτυχιακών Σπουδών στα Πληροφοριακά Συστήµατα

Δυναμική δέσμευση και αποδέσμευση μνήμης. Προγραμματισμός II 1

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

οµές (structures) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πίνακες δοµών, δείκτες σε δοµές, και αυτοαναφορικές δοµές.

ΘΕΜΑΤΑ ΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ 2006 / 2007

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Κεφάλαιο : Εισαγωγή στην C. ( ιαλέξεις 3-4) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Η Γλώσσα C Μία Σφαιρική Ανασκόπηση

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

MusicOnCloud: Μια cloud-based υπηρεσία online streaming μουσικής

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

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

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

{ int pipe(int fd[ ]) close

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

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

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η διαχείριση διάταξης στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

υαδικό Σύστημα

Μάθημα 7: Διευθυνσιοδότηση σε Επίπεδο IP

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

Προγραμματισμός Δομές Δεδομένων

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

Προγραμματισμός Ι. Προεπεξεργαστής. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

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

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

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ. Βαθμός Ασφαλείας: Να διατηρηθεί μέχρι: Βαθμός Προτεραιότητας:

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

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

Προγραμματισμός Ι (ΗΥ120)

ΚΟΙΝΩΝΙΚΗ ΔΙΚΤΥΩΣΗ ΜΕΣΩ ΚΙΝΗΤΩΝ ΣΥΣΚΕΥΩΝ: ΧΡΗΣΗ ΔΕΚΤΗ GPS ΓΙΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΚΟΙΝΩΝΙΚΗΣ ΔΙΚΤΥΩΣΗΣ ΣΕ ΚΙΝΗΤΗ ΣΥΣΚΕΥΗ

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

Εισαγωγή στον δομημένο προγραμματισμό

Transcript:

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

Περιεχόµενα Αναφορά στις αλλαγές που επιφέρει το IPv6 στην ανάπτυξη δικτυακών εφαρµογών σελίδα 2 Αλλαγές στο socket API Ανάπτυξη εφαρµογών ανεξάρτητων του πρωτοκόλλου επιπέδου δικτύου Ενέργειες για τη µετάβαση των εφαρµογών στο IPv6 Παραδείγµατα case study (OpenH323)

Interoperability µεταξύ IPv4 και IPv6 εκδόσεων σε dual stack µηχανήµατα IPv4 server IPv6 server σελίδα 3 IPv4 client IPv6 client Επικοινωνούν µε IPv4 Μπορούν να επικοινωνήσουν εάν ο IPv6 client χρησιµοποιήσει µία IPv4-mapped IPv6 διεύθυνση Επικοινωνούν µε IPv4, ο server βλέπει την IPv4- mapped IPv6 διεύθυνση Επικοινωνούν µε IPv6

Βασικές διαφορές στις διευθύνσεις IPv4: Μήκος 32 bits Γραµµένες σε δεκαδικό σύστηµα Αποτελούνται από 4 αριθµούς µεταξύ 0 255 εν συντοµεύονται Η τελευταία ΙΡ του υποδικτύου είναι η broadcast Loopback 127.0.0.1 IPv6: Μήκος 128 bits Γραµµένες σε δεκαεξαδικό σύστηµα Συντοµεύονται (π.χ. 3FFE:B00::1) εν υπάρχουν broadcast διευθύνσεις Loopback ::1 ιακρίνονται ανάλογα µε scope (link-local, site-local, global) σελίδα 4

Βασική διαδικασία δικτυακής επικοινωνίας Server: socket bind listen accept read/write/recvfrom/sendto Client socket connect read/write/recvfrom/sendto Ίδια διαδικασία και για τα 2 ΙΡ πρωτόκολλα σελίδα 5

Αλλαγές στο socket API IPv4 typedef uint32_t in_addr_t; struct in_addr { in_addr_t s_addr; /* IPv4 διεύθυνση */ }; σελίδα 6 struct sockaddr_in { sa_family_t sin_family; /* AF_INET */ in_port_t sin_port; /* Port. */ struct in_addr sin_addr; /* Internet διεύθυνση */ }; /* Pad για το µέγεθος του `struct sockaddr'. */ unsigned char sin_zero[sizeof (struct sockaddr) - sizeof (sa_family_t) - sizeof (in_port_t) - sizeof (struct in_addr)];

Αλλαγές στο socket API IPv6 struct in6_addr { union { uint8_t u6_addr8[16]; uint16_t u6_addr16[8]; uint32_t u6_addr32[4]; } in6_u; σελίδα 7 #define s6_addr in6_u.u6_addr8 #define s6_addr16 in6_u.u6_addr16 #define s6_addr32 in6_u.u6_addr32 }; struct sockaddr_in6 { sa_family_t sin6_family; /* AF_INET6 */ in_port_t sin6_port; /* Transport layer port # */ uint32_t sin6_flowinfo; /* IPv6 πληροφορίες ροής */ struct in6_addr sin6_addr; /* IPv6 διεύθυνση */ uint32_t sin6_scope_id; /* IPv6 scope-id */ };

οµή ανεξάρτητη ΙΡ πρωτοκόλλου /* Αρκετά µεγάλη δοµή για να αποθηκεύει οποιονδήποτε τύπο διεύθυνσης (µε την ιστορική εξαίρεση του AF_UNIX). εσµεύονται 128 bytes */ #if ULONG_MAX > 0xffffffff # define ss_aligntype uint64_t #else # define ss_aligntype uint32_t #endif #define _SS_SIZE 128 #define _SS_PADSIZE (_SS_SIZE - (2 * sizeof ( ss_aligntype))) struct sockaddr_storage { sa_family_t ss_family; /* Οικογένεια πρωτοκόλλων */ ss_aligntype ss_align; /* Επιβολή της επιθυµητής στοίχισης */ char ss_padding[_ss_padsize]; }; σελίδα 8

Αλλαγές στον κώδικα ηµιουργία socket socket(pf_inet6, SOCK_STREAM, 0); /* TCP socket */ socket(pf_inet6, SOCK_DGRAM, 0); /* UDP socket */ Πέρασµα socket στον kernel struct sockaddr_in6 addr; socklen_t addrlen = sizeof(addr); /* γέµισµα της δοµής addr χρησιµοποιώντας µία IPv6 διεύθυνση πριν την κλήση της συνάρτησης */ bind(sockfd,(struct sockaddr *)&addr, addrlen); Πέρασµα socket από τον kernel στην εφαρµογή struct sockaddr_in6 addr; socklen_t addrlen = sizeof(addr); accept(sockfd,(struct sockaddr *)&addr, &addrlen); /* η δοµή addr περιέχει µία IPv6 διεύθυνση */ σελίδα 9

Συναρτήσεις µετατροπής διευθύνσεων IPv4 /* Από µορφή κειµένου σε δυαδική αναπαράσταση της IPv4 διεύθυνσης */ int inet_aton (const char *cp, struct in_addr *inp); in_addr_t inet_addr( const char *cp); σελίδα 10 /* Από δυαδική µορφή σε µορφή κειµένου της IPv4 διεύθυνσης */ char *inet_ntoa(struct in_addr in); IPv6 /* Από µορφή κειµένου σε δυαδική αναπαράσταση της IPv4/IPv6 διεύθυνσης */ int inet_pton(int family, const char *src, void *dst); /* Από δυαδική µορφή σε µορφή κειµένου της IPv4/IPv6 διεύθυνσης */ const char *inet_ntop(int family, const void *src, char *dst, size_t cnt);

Χρήση υπηρεσίας DNS struct addrinfo { int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ int ai_family; /* AF_UNSPEC, AF_INET, AF_INET6 */ int ai_socktype; /* SOCK_STREAM, SOCK_DGRAM... */ int ai_protocol; /* IPPROTO_IP, IPPROTO_IPV6 */ size_t ai_addrlen; /* µήκος του ai_addr */ struct sockaddr ai_addr; /* δοµή socket για τη διεύθυνση */ char ai_canonname; /* cannonical name */ struct addrinfo ai_next; /* η επόµενη addrinfo δοµή */ }; int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res); void freeaddrinfo(struct addrinfo *res); σελίδα 11

Προς τα πίσω συµβατότητα µε IPv4 ύο εκδόσεις του πηγαίου κώδικα, δύο εκτελέσιµα (συµβατό µόνο µε IPv4 εκτελέσιµο και συµβατό µόνο µε IPv6 εκτελέσιµο) Μία έκδοση του πηγαίου κώδικα, δύο εκτελέσιµα (συµβατό µόνο µε IPv4 εκτελέσιµο και συµβατό µόνο µε IPv6 εκτελέσιµο) Μία έκδοση του πηγαίου κώδικα, ένα εκτελέσιµο (ανεξάρτητο από την έκδοση του πρωτοκόλλου δικτύου) σελίδα 12

Μεθοδολογία 1. Μελέτη εξοικείωση µε κώδικα 2. ιάτρεξη του κώδικα µε αυτοµατοποιηµένο εργαλείο σελίδα 13 3. Εκτέλεση προφανών τροποποιήσεων 4. Εκτέλεση µη τετριµµένων τροποποιήσεων 5. Έλεγχος debugging κώδικα και δοκιµές 6. Ολοκλήρωση µετατροπής

Σηµαντικότερες µετατροπές Αλλαγή δοµών δεδοµένων sockaddr_in Αλλαγή σταθερών όπως INADDR_ANY σελίδα 14 Αλλαγή συναρτήσεων, π.χ. inet_ntoa Εξάλειψη hard-coded διευθύνσεων Αντικατάσταση ή διαγραφή IPv4-specific επιλογών, π.χ. TOS RFC 2732 (διευθύνσεις στα URL µε αγκύλες [])

Αυτοµατοποιηµένα εργαλεία ιαθέσιµα για πολλές πλατφόρµες: Checkv4 for Windows (Microsoft) Socket Scrubber for Solaris (Sun) IPv6 Porting Assistant for Tru64 Unix (Compaq) Κατάλληλα για κώδικα γραµµένο στις γλώσσες C\C++, ενώ για άλλες γλώσσες υπάρχει ακόµα µία έλλειψη σχετικών εργαλείων Χρήσιµα για project µε µεγάλη βάση source code Στις περισσότερες µη τετριµµένες περιπτώσεις πάντως η χρήση µόνο του εργαλείου δεν είναι αρκετή και ο προγραµµατιστής πρέπει να επέµβει σελίδα 15

Case Study OpenH323 Open-source project µε σκοπό την παροχή µιας βιβλιοθήκης για την υλοποίηση H.323 εφαρµογών OpenH323 library: παρέχει τη δυνατότητα για πολύ γρήγορη ανάπτυξη εφαρµογών που χρησιµοποιούν το H.323 πρωτόκολλο, καθώς αναλαµβάνει να υλοποιήσει τις χαµηλού επιπέδου λεπτοµέρειες και αφήνει για τους προγραµµατιστές των εφαρµογών τη λογική υψηλού επιπέδου. PWLib: open-source βιβλιοθήκη, ασχολείται µε την παροχή των βασικών λειτουργικοτήτων που υποστηρίζει ένα λειτουργικό σύστηµα (sockets, threads, I/O, GUI κ.λ.π.). Υποστηρίζει περισσότερα του ενός λειτουργικά συστήµατα (Windows και Unix). σελίδα 16

οµή OpenH323 Συνολικά περίπου 400 κλάσεις και ~1/2Μ γραµµές κώδικα σε C++ To porting έγινε στα πλαίσια του έργου 6NET Applications (videoconferencing client, MCU, gatekeeper, answering m achine,...) PWLib library (PSocket, PChannel, PProcess, PThread, PSound,...) Unix facilities (sockets, I/O, G U I, threads) OpenH323 library (H323Endpoint, H323Transport, H323Listener, H323Connection, H323Channel,...) MS Windows facilities (sockets, I/O, G UI, threads) σελίδα 17

Κυριότερα Προβλήµατα Έµµεσες αναφορές σε IPv4 διευθύνσεις (π.χ. loops) Μη πλήρης συµβατότητα Linux-Windows IPv6 υλοποιήσεων Μη πλήρης υποστήριξη RFCs από Windows experimental stack Μέγεθος κώδικα σελίδα 18

Πιστοποίηση ολοκλήρωσης High-level testing Low-level testing σελίδα 19 Comparative (Συγκριτικό ή back-to-back) testing

Συµπεράσµατα Ηεµπειρία µας έδειξε ότι η διαδικασία µετατροπής στο IPv6 θα είναι καθοριστική για την περαιτέρω αποδοχή του νέου πρωτοκόλλου. Ενώ για πολλές εφαρµογές αυτό θα είναι κάτι απλό, για εφαρµογές όπως το OpenH323 (µεγάλη βάση πηγαίου κώδικα µε πολλές low-level λειτουργίες) θα χρειαστεί αυξηµένη προσπάθεια. Η περαιτέρω ανάπτυξη και ωρίµανση αυτόµατων εργαλείων που βοηθούν στην εργασία αυτή είναι απαραίτητη, και πιθανότατα θα πρέπει να εστιαστεί: στην υποστήριξη περισσότερων γλωσσών πέρα από τις C\C++ στην βελτίωση του τρόπου λειτουργίας τους ώστε να µπορούν να βοηθήσουν τον προγραµµατιστή και σε πιο λεπτά θέµατα που ανακύπτουν κατά τη διάρκεια της µετατροπής του κώδικα µιας εφαρµογής. σελίδα 20

Βιβλιογραφία ηµοσιεύσεις (http://ru6.cti.gr/bouras) "The deployment of IPv6 in an IPv4 world and Transition Mechanisms, C. Bouras, P. Ganos, A. Karaliotas, Internet Research: Electronic Networking, Applications and Policy, Emerald, Volume 13, Number 2, 2003, pp. 86 93 "Issues for the Performance Monitoring of an Open Source H.323 Implementation Ported to IPv6 Enabled Networks with QoS Characteristics, C. Bouras, A. Gkamas, A. Karaliotas, D. Primpas, K. Stamos, The 2003 International Conference in Internet Computing, Las Vegas, Nevada, USA, June 23-26 2003, pp. 765 771 "From IPv4 to IPv6: The Case of OpenH323 Library", C. Bouras, A. Gkamas, K. Stamos, SAINT-2003, The 2003 International Symposium on Applications and the Internet, Workshop in IPv6 and Applications, Orlando, Florida, USA, January 27-31 2003, pp. 196-199 "Transition Strategies from IPv4 to IPv6: The case of GRNET", C. Bouras, P. Ganos, A. Karaliotas, 3rd International Network Conference-INC 2002, Plymouth, UK, July 16-18 2002, pp. 89-96 σελίδα 21

Βιβλιογραφία Εργασίες Παρουσιάσεις Από το IPv4 στο IPv6, Χρήστος Μπούρας, Κώστας Στάµος, http://ru6.cti.gr/ru6/ipv6/ipv6_transition.doc Μετατροπή (porting) του OpenH323 στο IPv6, Χρήστος Μπούρας, Κώστας Στάµος, http://ru6.cti.gr/ru6/ipv6/openh323_porting.doc Μελέτη και προτάσεις βελτιοποίησης απόδοσης των µηχανισµών που προτείνει το IPv6 για την εξάλειψη των περιορισµών του IPv4, Σιάχος Γιάννης, ιπλωµατική Εργασία Μεταπτυχιακού ιπλώµατος Ειδίκευσης, 2000, http://ru6.cti.gr/bouras/lessons/ergasies.html ΙPv6 και Εφαρµογές Πραγµατικού Χρόνου, Στάµος Κωνσταντίνος, ιπλωµατική Εργασία Μεταπτυχιακού ιπλώµατος Ειδίκευσης, 2003, http://ru6.cti.gr/bouras/lessons/ergasies.html Εισαγωγή στην IPv6 τεχνολογία, Χρήστος Μπούρας, http://ru6.cti.gr/ru6/ipv6/introduction_ipv6.ppt, Κώστας Στάµος, http://ru6.cti.gr/ru6/ipv6/ipv6_porting.ppt σελίδα 22

σελίδα 23 Ευχαριστώ πολύ Ερωτήσεις;