JAVA MEDIA FRAMEWORK ADAPTIVE VOICE CHAT ΜΕΤΡΗΣΕΙΣ QoS



Σχετικά έγγραφα
Συνεχής ροή πολυµέσων

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

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

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

ΠΤΥΧΙΑΚΗ. Θέμα πτυχιακής: Voice over IP. Ονοματεπώνυμο: Κόκκαλη Αλεξάνδρα

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

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

Συστήματα Πολυμέσων. Ενότητα 17: Διανομή Πολυμέσων - Πρωτόκολλα πραγματικού χρόνου. Θρασύβουλος Γ. Τσιάτσος Τμήμα Πληροφορικής

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

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7]

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Ποιότητα μετάδοσης πολυμεσικού περιεχομένου στο διαδίκτυο

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

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

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η. Αρχές Δικτύων Επικοινωνιών

Θέματα Συστημάτων Πολυμέσων. Ενότητα #3: Ιδιότητες μέσων Διδάσκων: Γεώργιος K. Πολύζος Τμήμα: Μεταπτυχιακό Πρόγραμμα Σπουδών Επιστήμη των Υπολογιστών

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

Θέματα Συστημάτων Πολυμέσων. Ενότητα # 11: RTSP Διδάσκων: Γεώργιος K. Πολύζος Τμήμα: Μεταπτυχιακό Πρόγραμμα Σπουδών «Επιστήμη των Υπολογιστών»

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

Πολυμέσα σε Δίκτυα Κινητών Συσκευών

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

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

1.8 Το μοντέλο OSI 1 / 33

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

Εισαγωγή στο διαδίκτυο

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

Επαναληπτικές Ασκήσεις Μαθήματος

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

ΕΠΛ 012. Δίκτυα Τπολογιστών & Διαδίκτυο

ηµοτικό ιαδικτυακό Ραδιόφωνο και Τηλεόραση

Πληροφορική Μάθημα 9

Πρόγραμμα Πιστοποίησης Γνώσεων και Δεξιοτήτων H/Y ΕΝΟΤΗΤΑ 1: «ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ»

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Δίκτυα και Διαδίκτυο

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

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

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

Ροή πολυμέσων. Εισαγωγή Ροή από εξυπηρετητές ιστοσελίδων Ροή από εξυπηρετητές μέσων Το πρωτόκολλο RTSP

Νέες Επικοινωνιακές Τεχνολογίες

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

Μάθημα 6: Αρχιτεκτονική TCP/IP

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

Ενότητα 1. Εισαγωγή στις βασικές έννοιες των ικτύων ΗΥ

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Network Address Translation (NAT)

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ , Ελλάδα, Τηλ Φαξ

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

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

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

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον

Δικτύωση υπολογιστών

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

ΤΗΛΕΜΑΤΙΚΗ ΚΑΙ ΝΕΕΣ ΥΠΗΡΕΣΙΕΣ

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

Εισαγωγή στις τεχνολογίες μετάδοσης

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

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

Υπηρεσίες δικτύου και πρωτόκολλα για πολυμεσικές επικοινωνίες

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

ΜΑΘΗΜΑ 4 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ

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

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. α. Πριν εμφανιστεί η τεχνολογία ISDN οι υπηρεσίες φωνής, εικόνας και δεδομένων απαιτούσαν διαφορετικά δίκτυα.

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

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

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

Τι είναι το πρωτόκολλο Διαδικτύου (Internet Protocol, IP);

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

Πολυμέσα πάνω από κινητά δίκτυα

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

ηµοτικό ιαδικτυακό Ραδιόφωνο και Τηλεόραση

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

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

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

Η απάντηση αυτή λαμβάνει 5 μονάδες. Και αφού βέβαια ο εξεταζόμενος γράψει το γράμμα της σωστής απάντησης μόνο.

Εγγυημένη ποιότητα υπηρεσίας

Β1. Σε ένα τοπικό δίκτυο τοπολογίας Ethernet-TCP/IP το επίπεδο πρόσβασης δικτύου περιλαμβάνει:

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

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα

Λουκάς Ελευθέριος

ίκτυα ίκτυο υπολογιστών: Ένα σύνολο από υπολογιστικές συσκευές που συνδέονται µεταξύ τους για σκοπούς επικοινωνίας και χρήσης πόρων. Συνήθως, οι συσκε

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A

7.11 Πρωτόκολλα Εφαρµογής Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

ίκτυα - Internet Μάθηµα 3ο Ενότητα Β: Το Πρότυπο ΤCP/IP Eισαγωγή - Επικοινωνία µεταξύ δύο Υπολογιστών Παρασκευή 10 NOE 2006 ιευθύνσεις

ΝΤUA. Τεχνολογία Πολυμέσων

ΜΑΘΗΜΑ 4 ΔΙΚΤΥΑ (NETWORKS)

ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ Βελώνης Γεώργιος ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ. Μάθημα 5ο. Βελώνης Γεώργιος - 1ο Τ.Ε.Ε. Κατερίνης. Καθηγητής Πληροφορικής ΠΕ20 5-1

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

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

Το ηλεκτρονικό ταχυδρομείο: Aφορά στην αποστολή και λήψη μηνυμάτων με συγκεκριμένη δομή και με συγκεκριμένα πρωτόκολλα. Ο αποστολέας και ο παραλήπτης

Συνδεσιμότητα κινητού τηλεφώνου

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

6.1 Επεκτείνοντας το δίκτυο 6.2 Επιλεγόμενες τηλεφωνικές γραμμές modems Πλεονεκτήματα Μειονεκτήματα Βασική χρήση

Κάντε κλικ για έναρξη

Ο ΗΓΟΣ ΕΠΙΜΟΡΦΩΤΗ. ηµοτικό ιαδικτυακό Ραδιόφωνο και Τηλεόραση. Y4 ηµιουργία διαδικτυακής ραδιοφωνικής εκποµπής µε τα εργαλεία

Transcript:

2007 Σ Τ Ε Φ Α Ν Ο Σ Β Α Τ Σ Ι Κ Α Σ Δ Ι Π Λ Ω Μ Α Τ Ι Κ Η Ε Ρ Γ Α Σ Ι Α επίβλεψη καθ. Δημήτρης Μητράκος JAVA MEDIA FRAMEWORK ADAPTIVE VOICE CHAT ΜΕΤΡΗΣΕΙΣ QoS Στέφανος Βάτσικας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών

JAVA MEDIA STREAMING ADAPTIVE VOICE CHAT APPLICATION Περιεχόμενα 1. Εισαγωγή...3 2. Media Streaming...3 Τι είναι το Media Streaming...3 Τι είναι το πρωτόκολλο UDP...5 Η TCP/IP suite και το μοντέλο OSI...5 UDP και τεχνικές λεπτομέρειες...8 Διεθνή Πρότυπα Audio Streaming...10 3. Η εφαρμογή...15 Περιγραφή της εφαρμογής...15 Advanced Features...16 Γιατί JAVA;...16 Java Media Framework (JMF)...17 Η δομή του προγράμματος...17 4. Μετρήσεις Ποιότητας Επικοινωνίας...19 Γενικά 19 QoS Quality of Service...19 JMF και QoS : οι δυνατότητες...23 Οι μετρήσεις...26 Συμπεράσματα...64 5. Βιβλιογραφία, πηγές...65

1. Εισαγωγή Σκοπός της διπλωματικής αυτής εργασίας είναι η μελέτη της μετάδοσης οπτικοακουστικών δεδομένων και κυρίως της φωνής, μέσου του Διαδικτύου, καθώς και η ανάπτυξη μιας εφαρμογής Voice Chat με τη χρήση της γλώσσας προγραμματισμού Java. Επίσης, στα πλαίσια λειτουργίας της εφαρμογής ελέγχεται η ποιότητα της φωνητικής επικοινωνίας (Quality of Service ) και επιχειρείται η βελτίωσή της μέσω της αλλαγής των παραμέτρων της μετάδοσης του ήχου. Στη συνέχεια παρουσιάζεται η μελέτη για τη μετάδοση ήχου και εικόνας - Media Streaming - μέσω του Ιντερνετ. Περιλαμβάνεται μια γενική περιγραφή του media streaming, της χρήσης του, καθώς και των πρωτοκόλλων που χρησιμοποιούνται στην πράξη. Επίσης θα ακολουθήσει μια περιγραφή της εφαρμογής, της δομής της και της χρήσης της, καθώς και μια σύντομη επισκόπιση των τεχνολογιών που χρησιμοποιήθηκαν για την ανάπτυξη και λειτουργία της. Τέλος, παρατίθενται λεπτομέρειες για τον τρόπο αξιολόγησης της ποιότητας επικοινωνίας, τις δυνατότητες βελτίωσής της, καθώς και πραγματικές μετρήσεις της, κάτω από μια ποικιλία συνθηκών. 2. Media Streaming Τι είναι το Media Streaming Ο όρος media streaming είναι ένας καθαρά δικτυακός όρος, καθώς βρίσκει εφαρμογή αποκλειστικά σε δικτυακά περιβάλλοντα. Αναφέρεται στη μετάδοση ροής δεδομένων οπτικοακουστικού τύπου σε πραγματικό χρόνο. Το αρχείο, δηλαδή, που επιλέγει ο χρήστης να αναπαράγει δε χρειάζεται να αποθηκευτεί πρώτα τοπικά στον υπολογιστή του. Ο χρήστης απλά επιλέγει το αρχείο που επιθυμεί και η αναπαραγωγή ξεκινά σχεδόν αμέσως, χωρίς να πρέπει να «κατέβει» πρώτα ολόκληρο στη μνήμη του υπολογιστή του. Κύριος χώρος εφαρμογής της μετάδοσης ροής οπτικοακουστικών δεδομένων είναι φυσικά το Διαδίκτυο, αλλά θα ήταν παράλειψη να μην αναφερθεί κανείς στη δυνατότητα streaming δεδομένων τύπου media (ήχος, εικόνα, βίντεο, φωνή) διαμέσου οποιουδήποτε σχεδόν τύπου δικτύου. Εταιρικά τοπικά δίκτυα, μητροπολιτικά ασύρματα δίκτυα αλλά και οποιοδήποτε οικιακό τοπικό, ενσύρματο ή ασύρματο, δίκτυο είναι κατάλληλα για χρήση με τεχνολογίες media streaming.

Οι τεχνολογίες του media streaming μόνο τα τελευταία χρόνια γνώρισαν ανάπτυξη, και μάλιστα αλματώδη. Ο λόγος δεν είναι άλλος από τη διάθεση στο ευρύ κοινό γρήγορων συνδέσεων Ιντερνετ, καθώς και η ανάπτυξη απο μέρους των Internet Service Providers υποδομών κατάλληλων για το αυξημένο εύρος ζώνης (bandwidth) που απαιτούν οι εφαρμογές media streaming. Επίσης, η διάθεση πλέον σε προσιτές τιμές πληθώρας συσκευών με δυνατότητες σύλληψης εικόνας και βίντεο, όπως και η εμφάνιση ιστοσελίδων και δικτυακών εφαρμογών με πρωτοποριακές υπηρεσίες (π.χ. Youtube, Skype) έδωσαν αναμφισβήτητα ώθηση στο media streaming. Επίσης, τους τελευταίους μήνες παρατηρείται μια τάση ανάπτυξης μικρών «δικτύων», ειδικά για χρήση media streaming. Τα δίκτυα αυτά διαφέρουν από τα καθιερωμένα καθώς δεν αποτελούνται αποκλειστικά από υπολογιστές, αλλά από διάφορες συσκευές που διαθέτουν δυνατότητες αναπαραγωγής οπτικοακουστικού υλικού. Οι συσκευές αυτές είναι συνήθως κινητά τηλέφωνα, φορητά media players, παιχνιδοκονσόλες, ψηφιακές φωτογραφικές μηχανές και βιντεοκάμερες, τηλεοράσεις νέας γενιάς, ακόμη και οικιακά ηχοσυστήματα. Στις περιπτώσεις αυτές γίνεται αναπαραγωγή του αποθηκευμένου ψηφιακού υλικού (μουσική, φωτογραφίες, βίντεο, τηλεοπτικά προγράμματα) από τη συσκευή, στην οποία είναι αποθηκευμένο το υλικό, προς τη συσκευή που διαθέτει δυνατότητες αναπαραγωγής και απεικόνισής του. Για παράδειγμα, είναι δυνατό μουσική που είναι αποθηκευμένη σε έναν φορητό υπολογιστή να αναπαραχθεί ασύρματα μέσω του οικιακού ηχοσυστήματος. Ή ένα αρχείο βίντεο που είναι αποθηκευμένο σε κινητό τηλέφωνο να αναπαραχθεί στη μεγάλη οθόνη της τηλεόρασης του σπιτιού:

Στη συνέχεια παρουσιάζεται το πρωτόκολλο UDP που χρησιμοποιείται κατά κόρον στις εφαρμογές τύπου media streaming, καθώς και τα διάφορα πρωτόκολλα, πλαίσια και πρότυπα που χρησιμοποιούνται για τον ίδιο σκοπό. Τι είναι το πρωτόκολλο UDP Το πρωτόκολλο UDP (User Datagram Protocol) είναι ένα από τα βασικά πρωτόκολλα της Internet Protocol Suite (IP suite), η οποία έχει πλέον αντικατασταθεί από το Open Systems Interconnection Reference Model (OSI Model). Πρo της περιγραφής και ανάλυσης του UDP είναι σκόπιμο να προγηθεί μια σύντομη ανάλυση των IP suite και OSI Model. Η TCP/IP suite και το μοντέλο OSI Η Internet Protocol Suite είναι ένα σύνολο πρωτοκόλλων επικοινωνιών που απαρτίζουν ουσιαστικά το Διαδίκτυο και τα περισσότερα εμπορικά δίκτυα. Αποκαλείται πολλές φορές και ως η TCP/IP protocol suite, ονοματισμένη από τα δύο σημαντικότερα πρωτόκολλα που περιέχει: το Transmission Control Protocol (TCP) και το Internet Protocol (IP), τα οποία ήταν τα πρώτα πρωτόκολλα που καθορίστηκαν. Η Internet Protocol Suite μπορεί να θεωρηθεί ως ένα σύνολο τεσσάρων επιπέδων (layers) που το καθένα λύνει ένα σύνολο προβλημάτων που περιλαμβάνονται στη μετάδοση δεδομένων, και παρέχει μια, καθορισμένη με σαφήνεια, υπηρεσία στα πρωτόκολλα ανώτερου επιπέδου. Τα ανώτερα επίπεδα είναι πιο «κοντά» στον άνθρωπο-

χρήστη, ασχολούνται με πιο αφηρημένα στοιχεία και στηρίζονται στα χαμηλότερα επίπεδα για να μετατρέψουν τα στοιχεία αυτά στις φυσικές μορφές που μπορούν τελικά να μεταδοθούν μέσα από τα δίκτυα. Το OSI model δεν είναι παρά η εξέλιξη της IP suite. Αποτελείται από μια ιεραρχική δομή επτά επιπέδων που καθορίζει τις απαιτήσεις για την επικοινωνία μεταξύ δύο υπολογιστών. Το πρότυπο καθορίστηκε από το Διεθνή Οργανισμό για την Τυποποίηση στα πρότυπα του ISO 7498-1. Δημιουργήθηκε για να επιτρέψει την επικοινωνία μεταξύ των διαφορετικών πλατφόρμων που προέρχονται από διάφορους προμηθευτές. Το

OSI επιτρέπει δηλαδή σε όλα τα στοιχεία ενός δικτύου να συνεργάζονται, ανεξάρτητα από ποιος τα κατασκέυασε. Κάθε επίπεδο έχει την ιδιότητα ότι χρησιμοποιεί μόνο τις λειτουργίες του αμέσως κατώτερου επιπέδου και εξάγει πληροφορία και λειτουργία μόνο προς το αμέσως ανώτερό του επίπεδο. Σήμερα χρησιμοποιείται μόνο ένα υποσύνολο ολόκληρου του προτύπου OSI. Θεωρείται ότι ένα μεγάλο μέρος των προδιαγραφών του είναι πάρα πολύ περίπλοκο και ότι η πλήρης ενσωμάτωση και λειτουργία του καθυστερήσει πολύ, αν και υπάρχουν πολλοί άνθρωποι που το υποστηρίζουν έντονα. Στην επόμενη σελίδα φαίνεται ένας πίνακας που απεικονίζει συγκριτικά διάφορες «πολυ-επίπεδες» σουίτες δικτυακών επικοινωνιών που χρησιμοποιούνται:

UDP και τεχνικές λεπτομέρειες Επιστρέφοντας στην περιγραφή του πρωτοκόλλου UDP θα δούμε ότι αυτό χρησιμοποιείται από δικτυωμένους υπολογιστές για την αποστολή σύντομων μηνυμάτων, γνωστά ως datagrams. Προσφέρει μόνο μια ελάχιστη υπηρεσία μεταφορών : μη-εγγυημένη παράδοση πακέτων δεδομένων, και δίνει στις εφαρμογές που το χρησιμοποιούν άμεση πρόσβαση στην υπηρεσία datagram του επιπέδου IP. Το UDP διαφέρει σημαντικά από το πρωτόκολλο TCP. Ενώ το TCP διασφαλίζει ότι τα δεδομένα θα φτάσουν χωρίς

απώλειες στον προορισμό τους, το UDP απλά στέλνει και λαμβάνει πακέτα δεδομένων. Το UDP είναι ένα σχεδόν μηδενικό πρωτόκολλο, που οι μόνες υπηρεσίες που παρέχει είναι το checksumming των προς μετάδοση δεδομένων και της πολυπλεξίας των ports επικοινωνίας του υπολογιστή. Δε μπορεί να εγγυηθεί ότι τα δεδομένα θα φτάσουν στον παραλήπτη τους με τη σειρά που εστάλησαν, ούτε και ότι θα φτάσουν τελικά! Επίσης, από τη στιγμή που ο αποστολέας θα στείλει τα δεδομένα δεν γνωρίζει αν αυτά έχουν παραδοθεί, καθυστερήσει κάπου, μπερδευτεί ή χαθεί. Έτσι λοιπόν το UDP χρησιμοποιείται από τις εφαρμογές που δεν απαιτούν το επίπεδο υπηρεσίας του TCP ή που επιθυμούν να χρησιμοποιήσουν υπηρεσίες επικοινωνιών μη διαθέσιμες από το TCP (π.χ., πολλαπλής διανομής-multicast ή παράδοση ραδιοφωνικής μετάδοσης-broadcast). Επομένως, ένα πρόγραμμα που χρησιμοποιεί το πρωτόκολλο UDP πρέπει να ασχοληθεί αυτό με τα προβλήματα επικοινωνίας που μπορεί να προκύψουν: την αξιόπιστη παράδοση, το packetization και την επανασυναρμολόγηση, τον έλεγχο ροής, την αποφυγή συμφόρησης, κ.λπ. Επίσης. δεδομένου ότι το UDP στερείται μηχανισμών αποφυγής και ελέγχου δικτυακής συμφόρησης, απαιτούνται network-based μηχανισμοί για να ελαχιστοποιηθούν τα πιθανά προβλήματα κατάρρευσης δικτύου λόγω ανεξέλεγκτα υψηλών ρυθμών αποστολής πακέτων UDP. Με άλλα λόγια, δεδομένου ότι οι αποστολείς UDP δεν μπορούν να ανιχνεύσουν τη συμφόρηση, τα στοιχεία των δικτύων, όπως οι routers, πρέπει να χρησιμοποιούν τεχνικές packet queueing και απόρριψης πακέτων για να ελέγχουν την υπερβολική κίνηση πακέτων UDP στα δίκτυα. Το Datagram Congestion Control Protocol (DCCP) σχεδιάζεται ως μια μερική λύση σε αυτό το πιθανό πρόβλημα προσθέτοντας μηχανισμούς ελέγχου συμφόρησης σε ροές πακέτων UDP υψηλής ταχύτητας (πχ media streaming). Ακριβώς, όμως, για τους λόγους αυτούς το UDP είναι πιο γρήγορο και πιο αποδοτικό από άλλα πρωτόκολλα και προτιμάται σε εφαρμογές που ο χρόνος έχει σημασία ( time-sensitive ή real-time). Δηλαδή σε εφαρμογές όπου τα χρονικά πλαίσια είναι αυστηρά καθορισμένα και περιορισμένα και δεν υπάρχει χρόνος για επανεκπομπή πακέτων σε περίπτωση λάθους (πχ εσφαλμένη σειρά άφιξης ή απώλεια πακέτων). Επίσης είναι πολύ χρήσιμο σε servers που απαντούν συνεχώς σε τεράστιο πλήθος αιτημάτων επικοινωνίας απο απομακρυσμένους υπολογιστές (clients). Οι πιο συνηθισμένες εφαρμογές που χρησιμοποιούν το UDP περιλαμβάνουν το σύστημα διαχείρισης ονόματος περιοχών (DNS), το simple network management protocol (SNMP), το Dynamic Host Configuration Protocol (DHCP),το Routing Information Protocol (RIP), τις εφαρμογές media streaming, VoIP, το πρωτόκολλο μεταφοράς αρχείων (TFTP) και φυσικά τα online παιχνίδια! Η δομή των πακέτων UDP είναι αρκετά απλή:

SOURCE PORT (16 BITS) Ο αριθμός της θύρας του αποστολέα μέσω της οποίας έγινε η μετάδοση. Τίθεται μηδέν αν δεν χρησιμοποιείται. DESTINATION PORT (16 BITS) Ο αριθμός της θύρας του παραλήπτη, στην οποία στέλνονται τα δεδομένα. LENGTH (16 BITS) Το μέγεθος σε bytes του UDP header και των δεδομένων. Η ελάχιστη τιμή για αυτό το πεδίο είναι 8. CHECKSUM (16 BITS) Υπολογίζεται ως το 16μπιτο συμπλήρωμα-ως-προς-ένα του συμπληρώματος-ως-προς-ένα του αθροίσματος ενός ψευδο-header (όμοιον με τον IP header), του UDP header και των δεδομένων. Συμπληρώνεται με μηδενικά για να έχει μήκος 16 bits. Αν τεθεί ίσο με μηδέν τότε η λειτουργία checksuming απενεργοποιείται! Αν το checksum υπολογιστεί ίσο με μηδέν τότε στο πεδίο τίθεται η τιμή 0xFFFF. DATA Το πεδίο δεδομένων των πακέτων UDP. Δεν υπάρχει μέγιστο όριο στα δεδομένα που μεταφέρει ενα πακέτο UDP, συνηθίζεται όμως να είναι της τάξης των bytes. Ένα συνηθισμένο μέγεθος είναι 512bytes ή και λιγότερο. Έγκειται όμως στις εκάστοτε εφαρμογές που χρησιμοποιούν το UDP να ορίσουν το μέγεθος των πακέτων που μεταδίδουν και παραλαμβάνουν. Διεθνή Πρότυπα Audio Streaming Ο όρος streaming media (audio/video) αναφέρεται σε περιεχόμενο που «καταναλώνεται» κατά τη διάρκεια της αποστολής του. Δηλαδή δεν είναι απαραίτητο να «κατέβει» όλο το αρχείο στον τοπικό υπολογιστή ή κινητή συσκευή (PDA, κινητό...) προκειμένου να τα δούμε ή να το ακούσουμε. Αρκεί να συνδεθούμε σε έναν server που να μας στέλνει μια «ροή» δεδομένων. Πολύ διαδεδομένες εφαρμογές τύπου streaming είναι η τηλεσυνδιάσκεψη, το internet radio και voice over IP (VoIP). Η τελευαταία μάλιστα είναι πολύ δημοφιλής αυτή την εποχή, γίνεται πολύς ντόρος γύρω της και πολλές τηλεφωνικές εταιρίες την χρησιμοποιούν για να διεκπεραιώσουν τηλεφωνικές κλήσεις που γίνονται μεταξύ απλών τηλεφωνικών συσκευών και γραμμών! Επίσης, με τη διάδοση των ευρυζωνικών συνδέσεων και στη χώρα μας, πολλοί είναι πλέον αυτοί που χρησιμοπιούν VoIP προγράμματα (πχ Skype) για να μειώσουν αισθητά ή και να εκμηδενίσουν τα τηλεπικοινωνιακά τους κόστη. Υπό το πρίσμα αυτό λοιπόν παρουσιάζει εξαιρετικό ενδιαφέρον μια αναφορά στα διεθνή πρότυπα audio streaming που χρησιμοποιούνται σήμερα.

Γενικά, η χρήση διαφόρων προτύπων audio streaming δεν σημαίνει πως καθένα από αυτά χρησιμοποιεί και το δικό του πρωτόκολλο μεταφοράς δεδομένων. Τα πιο πολλά από αυτά είναι «χτισμένα» πάνω στα πρωτόκολλα TCP, UDP και HTTP. Αξίζει να σημειωθεί, όμως, ότι πρωτόκολλα και εφαρμογές που βασίζονται στο UDP αντιμετωπίζουν συχνά προβλήματα με τα firewalls. RTP Το Real-time Transport Protocol (RTP) καθορίζει ένα προτυποποιημένο τύπο πακέτων δεδομένων αποκλειστικά για μετάδοση ήχου και βίντεο μέσω του Διαδικτύου. Πρώτη φορά εμφανίστηκε το 1996. Το RTP δεν χρησιμοποιεί κάποια συγκεκριμένη θύρα UDP ή TCP. Ο μόνος κανόνας στον οποίο υπακούει είναι ότι οι επικοινωνίες UDP γίνονται σε θύρες (ports) με ζυγούς αριθμούς και οι TCP σε αυτές με περιττούς αριθμούς. Παρόλο που δεν είναι υποχρεωτικό συνήθως χρησιμοποιεί τις θύρες 16384 έως 32767. Το γεγονός όμως ότι χρησιμοποιεί μαι δυναμική γκάμα θυρών το δυσκολέυει να περνάει τα firewall. Για να αντιμετωπισθεί αυτό το πρόβλημα χρειάζεται συνήθως να στηθεί ένας STUN server. Το STUN (Simple Traversal of UDP over NATs) είναι ένα δικτυακό πρωτόκολλο που επιτρέπει σε clients πίσω από ΝΑΤ (ή πολλαπλά ΝΑΤs) τα βρούν τη δημόσια διεύθυνσή του, τον τύπο του ΝΑΤ και την τοπική διεύθυνση (θύρα) που αντιστοιχήθηκε από το ΝΑΤ σε μια ιντερνετική διεύθυνση. To RTP σχεδιάσθηκε αρχικά ως πρωτόκολλο multicast αλλά τελικά χρησιμοποιείται κυρίως σε unicast εφαρμογές. Συχνά χρησιμοποιείται σε συστήματα streaming media (σε συνδυασμό με το πρωτόκολλο RTSP), όπως επίσης και σε συστήματα τηλεδίασκεψης και push-to-talk (σε συνδυασμό με το H.323 ή το SIP). Το γεγονός αυτό το κάνει την βάση της VoIP «βιομηχανίας». Συνδέεται άμεσα με το RTCP και είναι χτισμένο πάνω στο πρωτόκολλο UDP (στο OSI model). RTCP Το Real-time Control Protocol είναι το «αδελφό» πρωτόκολλο του RTP. Παρέχει πληροφορίες ελέγχου για μια ροή δεδομένων τύπου RTP. Συνεργάζεται με το RTP για το «πακετάρισμα» και την διανομή δεδομένων πολυμέσων αλλά το ίδιο δεν ασχολείται με την μεταφορά αυτών. Χρησιμοποιείται για να εκπέμπει κατά διαστήματα πακέτα ελέγχου στους συμμετέχοντες σε μια σύνοδο πολυμέσων. Ο κύριος σκοπός του είναι να παρέχει πληροφορίες για την ποιότητα και επίδοση της επικοινωνίας που παρέχει το RTP. Συγκεντρώνει στατιστικά στοιχεία για την σύνδεση και τη μετάδοση των δεδομένων (πχ σταλμένα bytes, σταλμένα πακέτα, χαμένα πακέτα, θόρυβος γραμμής, ανάδραση και καθυστέρηση). Τα στοιχεία αυτά μπορούν να χρησιμοποιηθούν από την εκάστοτε εφαρμογή για να αυξηθεί η ποιότητα της επικοινωνίας με διάφορους τρόπους, όπως: περιορισμός ροής ή χρήση αλγορίθμου υψηλότερης συμπίεσης για τα πολυμεσικά δεδομένα. Γενικά δηλαδή το RTCP χρησιμοποιείται για αναφορά QoS (Quality of Service).

RTSP Το Real Time Streaming Protocol εμφανίστηκε το 1998 και είναι ένα πρωτόκολλο για χρήση σε συστήματα streaming media. Το βασικό του χαρακτηριστικό είναι ότι επιτρέπει τον απομακρυσμένο έλεγχο ενός media server με εντολές παρόμοιες με αυτές ενός βίντεο! Μερικοί RTSP servers χρησιμοποιούν το πρωτόκολλο μεταφοράς RTP, ενώ άλλοι το πρωτόκολλο RDT της RealNetworks. Οι εντολές που παρέχει το RTSP είναι: DESCRIBE (rtsp://...), SETUP, PLAY, PAUSE, RECORD και TEARDOWN. Οι εντολές αυτές αφορούν την περιγραφή του αρχείου προς μετάδοση, τον έλεγχο της αναπαραγωγής και τον τερματισμό της συνόδου με τον server. Οι αιτήσεις επικοινωνίας RTSP βασίζονται στο πρωτόκολλο HTTP. Δηλαδή ο client «μιλάει» στον server μέσω HTTP και TCP, ενώ ο server στον client σε RTP ή RDT. Σπανιότερα ο server χρειάζεται να στείλει κάποιο μήνυμα στον client και τότε το στέλνει και αυτός σε HTTP. RDT Το Real Data Transport είναι ένα ιδιόκτητο πρωτόκολλο μεταφοράς της RealNetworks. Δημιοργήθηκε κατά τη δεκαετία του 90 και χρησιμοποιείται κυρίως στο πρόγραμμα αναπαραγωγής δεδομένων ροής RealPlayer. Χρησιμοποιείται συνήθως σε συνδυασμό με κάποιο πρωτόκολλο ελέγχου όπως το RTSP, που παρουσιάστηκε προηγουμένως. Unicast Ο όρος αναφέρεται περισσότερο στον τρόπο μετάδοσης των δεδομένων ροής παρά σε ένα πρωτόκολλο μετάδοσης. Πρόκειται ουσιαστικά για την μετάδοση δεδομένων από έναν συγκεκριμένο server σε έναν συγκεκριμένο χρήστη, σε αντίθεση με την τεχνολογία multicast. Δηλαδή ο server στέλνει σε κάθε χρήστη ένα ξεχωριστό media stream. Αυτή η υλοποίηση είναι απλή αλλά μπορεί να οδηγήσει σε άσκοπα μεγάλη αύξηση της κίνησης σε ένα δίκτυο! Multicast Με τον όρο Multicast αναφερόμαστε στην μετάδοση πληροφορίας ταυτόχρονα σε ένα πλήθος παραληπτών. Η μετάδοση γίνεται με την πιο αποδοτική στρατηγική για την διανομή των πακέτων σε κάθε παραλήπτη και τη δημιουργία αντιγράφων μόνο όταν η διαδρομή προς τους παραλήπτες διασπάται, «χωρίζει». Δηλαδή μεταξύ δύο κόμβων ενός δικτύου διακινείται μόνο ένα media stream, κάτι που μειώνει την κίνηση του δικτύου σε σχέση τη την unicast μετάδοση. Τελικά σε κάθε παραλήπτη παραδίδεται από

ένα αντίγραφο των δεδομένων και αυτό μπορεί να έχει ως αποτέλεσμα την υπερβολική άυξηση του όγκου των δεδομένων που συνολικά διακινούνται. Πολλά δημοφιλή πρωτόκολλα πάντως, όπως το XMPP, δέχονται αυτό το μειονέκτημα και περιορίζουν το μέγιστο πλήθος των παραληπτών. Επίσης αξίζει να ανεφερθεί ότι απαίτηση της μετάδοσης streaming data μέσω multicast είναι αυτή να υποστηρίζεται τόσο από τους δρομολογητές των δικτύων, όσο και από τους servers. Μέχρι και το 2005 ελάχιστοι ήταν οι δρομολογητές που υποστηρίζαν multicast και πάρα πολλά τα firewall που δεν άφηναν τις μεταδόσεις multicast να περνάνε. Αναφερόμενοι στην μετάδοση multicast εννοούμε συνήθως IP multicast, δηλαδή την μετάδοση των δεδομένων πάνω από TCP/IP δίκτυα, με τη χρήση multicast διευθύνσεων (ουσιαστικά IP διευθύνσεις από 224.0.0.0 έως 239.255.255.255. Οι διευθύνσεις 224.0.0.0 έως 224.0.0.255 είναι αποκλειστικά για multicast μέσω τοπικού LAN δικτύου). Η τεχνολογία IP multicast δεν μπορεί προς το παρόν να διαχειριστεί αποστολή δεδομένων σε εκαταμμύρια χρήστες ή ομάδες χρηστών ταυτόχρονα και γι αυτό μέχρι στιγμής δεν έχουν εμφανιστεί εμπορικές εφαρμογές γενικής χρήσης που να την υλοποιούν. Η μετάδοση multicast υποστηρίζεται από και χρησιμοποιεί διάφορα πρωτόκολλα. Μερικά από αυτά αναφέρονται στη συνέχεια: Real-Time Transport Protocol (RTP) για πολυ-συμμετοχικές τηλεδιασκέψεις, Scalable Reliable Multicast (SRM), Uniform Reliable Group Communication Protocol (URGC), Multicast File Transfer Protocol (MFTP), Log-Based Receiver-reliable Multicast (LBRM) και STORM (STructure-Oriented Resilient Multicast). Με λίγη έρευνα στο web μπορεί να βρεθεί μεγάλη ποικιλία πρωτοκόλλων για μετάδοση multicast. Πολλοί μάλιστα προτείνουν τη μετάδοση ιστοσελίδων με multicast! Shoutcast Το SHOUTcast είναι μια πολύ-πλατφορμική τεχνολογία μετάδοσης streaming audio. Αναπτύχθηκε από την εταιρία Nullsoft και διατίθεται ελεύθερα στο διαδίκτυο (freeware). Χρησιμοποιεί κωδικοποιήση ήχου κατά MP3 και το πρωτόκολλο ΗΤΤP για την μετάδοση του ήχου, ενώ μπορεί να χρησιμοποιήσει και τεχνολογία multicast. Τρέχει σε Windows, FreeBSD, GNU/Linux, Mac OS X και Solaris. Για να ακούσει κάποιος μια ροή SHOUTcast στον υπολογιστή του αρκεί μέσω του browser να στείλε μια αίτηση GET σε κάποιον server που να μεταδίδει SHOUTcast. Είναι πολύ διαδεδομένο μεταξύ των «ερασιτεχνών» χρηστών του ιντερνετ, που το χρησιμοποιούν για να στήσουν με ευκολία τους προσωπικούς τους ραδιοφωνικούς σταθμούς (web radio). Επίσης χρησιμοποιείται ευρέως για τη ζωντανή μετάδοση διαφόρων εκδηλώσεων μέσω του διαδικτύου. H ροή ήχου που παράγεται μπορεί να αναπαραχθεί από μια μεγάλη ποικιλία μουσικών εφαρμογών, όπως τα δημοφιλή WinAmp, XMMS, Zing, Apple itunes, Windows Media Player, RealPlayer και Quicktime.

QuickTime Το Apple QuickTime είναι ένας ακόμη τρόπος μετάδοσης streaming audio. Πρόκειται για μια πολύ ευέλικτη εφαρμογή, που εμφανίζεται είτε ως standalone πρόγραμμα είτε ενσωμετώνεται με plug-ins σε δίαφορους browsers. Χρησιμοποιείται τόσο για δεδομένα ροής όσο και για απλά αρχεία εικόνας, ήχου κ.λ.π. Υποστηρίζει τα πρωτόκολλα HTTP, FTP για μετάδοση απο web servers και τα RSTP/RTP για μετάδοση δεδομένων από streaming servers. Υποστηρίζει όλα τα κύρια λειτουργικά συστήματα, καθώς και πολλές συσκευές χειρός (πχ PDAs, κινητά τηλέφωνα). Macromedia Flash Πρόκειται για έναν πολύ διαδεδομένο τρόπο media streaming, κυρίως για βίντεο, που χρησιμοποιείται ως επί το πλείστον σε web pages ως εισαγωγή ή για αναπαραγωγή αρχείων βίντεο. Χρησιμοποιεί ένα ιδίοκτητο πρωτόκολλο της Macromedia Inc., το RTMP. Πρόκειται για ένα κλειστού τύπου πρωτόκολλο, οπότε δεν υπάρχουν πολλές πληροφορίες διαθέσιμες για τη λειτουργία του. Η διανομή streams τύπου Flash μπορεί να γίνει από ειδικούς Flash Media Servers. Δεν χρησιμοποιείται συχνά για audio streaming. Microsoft Media Services Το πρωτόκολλο αυτό, το οποίο είναι γνωστό και ως NetShow, έχει αναπτυχθεί από την Microsoft και χρησιμοποιείται για τη μετάδοση ροών βίντεο και ήχου. Είναι πολύ διαδεδομένο σε διαδικτυακούς ραδιοφωνικούς σταθμούς και γενικά για διανομή μουσικής μέσω ίντερνετ. Βασίζεται στο πρωτόκολλο UDP, αλλά μπορεί να χρησιμοποιήσει και τα TCP και HTTP. Αρχικά δοκιμάζει τη μετάδοση μέσω UDP. Αν αποτύχει δοκιμάζει με TCP και, αν αποτύχει και αυτό, τότε δοκιμάζει με ΗΗΤΡ. Αξίζει επίσης να αναφερθεί ότι το πρωτόκολλο αυτό μπορεί να ενσωματώνει και την τεχνολογία DRM (Digital Rights Management) για την προστασία των πνευματικών δικαιωμάτων των δημιουργών! Το Microsoft Media διαχειρίζεται αρχεία τύπου.asf και.asx. Τα πρώτα (Advanced Streaming Format) είναι ειδικά σχεδιασμένα για μετάδοση αρχείων εικόνας/ήχου μέσω ιντερνετ, μπορούν να υποστούν μεγάλη συμπίεση, να μεταδοθούν ως συνεχείς ροές και να συμπιεστούν σε πολλά διαφορετικά μεγέθη ώστε να ταιριάξουν σε κάθε τύπου συνδεση με το διαδίκτυο. Τα δεύτερα (Advanced Stream Redirector) δεν είναι αρχεία ροής μέσων, αλλά αρχεία που περιέχουν μετα-πληροφορίες (απλά text αρχεία ουσιαστικά) σχετικά με το multimedia περιεχόμενο (.asf) που πρόκειται να μεταδοθεί. Matroska

Πρόκειται για μια νέα προσπάθεια που ξεκίνησε το 2002. Φιλοδοξεί να δημιουργήσει ένα open-source στάνταρ για μετάδοση ροών δεδομέμενων μέσω του διαδικτύου, που θα λειτουργεί δια-πλατφορμικά και αναπτύσσεται σε EBML (Extensible Binary Meta Language), ένα παράγωγο της γλώσσας XML. Για την μετάδοση των ροών θα χρησιμοποιεί RTP και ΗΗΤP πρωτόκολλα. Περισσότερες πληροφορίες για την προσπάθεια αυτή βρίσκονται στη σελίδα www.matroska.org. VoIP Με την ανάπτυξη που γνωρίζει τα τελευταία χρόνια η τηλεφωνία Voice-over-IP θα ήταν παράλειψη να μην ασχοληθούμε με την τεχνολογία που την υποστηρίζει. Ξεκινώντας πρέπει να ανεφερθεί ότι αυτή τη στιγμή υπάρχουν δύο διαφορετικού «τύπου» VoIP τηλεφωνία. Αυτή που βασίζεται στο πρωτόκολλο SIP (Session Initiation Protocol) και αυτή που βασίζεται στη σουΐτα πρωτοκόλλων Η.323. Αρχικά πιο δημοφιλές ήταν το Η.323 αλλά λόγω κάποιων μειονεκτημάτων που παρουσίαζε (μη ικανοποιητική «διάβαση» ΝΑΤ και firewalls, τουλάχιστον στον τελικό βρόχο, final loop, της επικοινωνίας ) η προτίμηση μετακινήθηκε προς το SIP. Έτσι λοιπόν το Η.323 συνεχίζει να χρησιμοποιείται, κυρίως όμως σε backbone δίκτυα φωνής τηλεπικοινωνιακών παρόχων και τηλεφωνικών εταιριών, όπου ο έλεγχος της κίνησης είναι αποκλειστική αρμοδιότητα του διαχειριστή του δικτύου. Πρόσφατες, όμως, εξελίξεις στο Η.323 επιλύουν τα περισσότερα προβλήματα με τα firewall και ΝΑΤ και ίσως επαναφέρουν το πρωτόκολλο στην κυρίαρχη θέση που είχε αρχικά. Όσον αφορά στο SIP, πρέπει να αναφερθεί ότι δεν είναι αυτό που μεταδίσει τα δεδομένα ροής, αλλά το RTP. To SIP απλά αναλαμβάνει τις διαδικασίες έναρξης και τερματισμού των κλήσεων. Το SIP χρησιμοποιεί τη θύρα TCP,UDP 5060 για να επικοινωνεί με τους SIP servers. Υπάρχουν επίσης αρκετά ακόμη VoIP πρωτόκολλα όπως τα Megaco (H.248), MGCP, Skinny Client Control Protocol (ιδιοκτησίας Cisco), MiNET (ιδιοκτησίας Mitel), CorNet-IP (ιδιοκτησίας Siemens), IAX (open source), Jajah και φυσικά τα πασίγνωστο πλέον και πολύ δημοφίλες Skype της ομώνυμης εταιρίας! 3. Η εφαρμογή Περιγραφή της εφαρμογής Η εφαρμογή που αναπτύχθηκε στα πλαίσια της διπλωματικής εργασίας είναι ένα πρόγραμμα φωνητικής επικοινωνίας (Voice Chat) σε πραγματικό χρόνο μεταξύ των χρηστών δύο υπολογιστών. Εκτός από την απλή real-time επικοινωνία έχουν ενσωματωθεί στο πρόγραμμα και κάποιες επιπλέον δυνατότητες, οι οποίες θα αναλυθούν στη συνέχεια.

Advanced Features Αυτόματη προσαρμογή της ποιότητας της επικοινωνίας, ανάλογα με το είδος και τη συμφόρηση της τηλεπικοινιακής σύνδεσης που χρησιμοποιείται Αποθήκευση της τρέχουσας συνομιλίας σε αρχείο, για μετέπειτα χρήση Χρήση αποθηκευμένου αρχείου ήχου, αντί για real-time ήχο από το μικρόφωνο του υπολογιστή Διενέργεια μετρήσεων Ποιότητας Επικοινωνίας (Quality Of Service) και απόθήκευσή των αποτελεσμάτων σε τοπικό αρχείο Γιατί JAVA; Η εφαρμογή έχει αναπτυχθεί εξ ολοκλήρου σε γλώσσα JAVA 2, έκδοση Standard Edition 6, update 1. Επίσης, μεγάλο τμήμα του κώδικα της εφαρμογής κάνει χρήση των βιβλιοθηκών του Java Media Framework (JMF), έκδοση 2.1.1e. Το JMF είναι μια πλατφόρμα επέκτασης της Java, που επιτρέπει και διευκολύνει τη χρήση οπτικοακουστικών μέσων από προγράμματα που έχουν γραφεί σε Java. Ο λόγος που επελέγη η γλώσσα προγραμματισμού Java είναι: Οι αυξημένες δυνατότητες διαχείρισης του hardware του υπολογιστή, χωρίς μάλιστα την απαίτηση για χρήση εξειδικευμένων και πολύπλοκων εντολών και κώδικα, Η εγγενής υποστήριξη πολυνηματικών εφαρμογών (multi-threading), Η ύπαρξη του JMF, που δίνει μεγάλες δυνατότητες διαχείρισης οπτικοακουστικών μέσων και ανάπτυξης media streaming εφαρμογών,

Και τέλος η συμβατότητά της με σχεδόν όλα τα λειτουργικά συστήματα Java Media Framework (JMF) To Java Media Framework API (JMF) είναι ένα πακέτο επέκτασης της Java, που δίνει τη δυνατότητα στον προγραμματιστή να δημιουργήσει εφαρμογές, οι οποίες θα διαχειρίζονται ήχο, βίντεο και γενικότερα timebased μέσα. To JMF περιλαμβάνει κλάσεις και μεθόδους για τη σύλληψη, αναπαραγωγή, μετάδοση και κωδικοποίηση πολλών τύπων αρχείων πολυμέσων. Πρόκειται για ένα προαιρετικό πακέτο, που δε περιέχεται στη βασική πλατφόρμα Standard Edition (J2SE) της Java 2, και μπορεί να εγκατασταθεί σε οποιοδήποτε σχεδόν λειτουργικό σύστημα: Windows Linux Solaris MacOS Υπάρχει και cross-platform έκδοση του JMF, έτσι ώστε οι εφαρμογές που αναπτύσσονται σε αυτό να τρέχουν σε οποιοδήποτε από τα υποστηριζόεμενα λειτουργικά συστήματα Οι απαιτήσεις του JMF από το υλικό του υπολογιστή είναι πολύ χαμηλές και επομένως μπορεί να «τρέξει» αποβλημάτιστα και σε παλαιότερης τεχνολογίας μηχανήματα: 166 MHz Pentium, 160 MHz PowerPC ή 166 MHz UltraSparc 32 MB RAM ή περισσότερο Προαιρετικά: κατάλληλη κάρτα ήχου για αναπαραγωγή ήχου, εάν είναι απαραίτητο. Για παράδειγμα μια SoundBlaster-συμβατή κάρτα για υπολογιστές που τρέχουν Windows και δεν έχουν ενσωματωμένη κάρτα ήχου, ή μια κάρτα ήχου Ultimedia, για υπολογιστές που τρέχουν AIX και δεν έχουν ενσωματωμένη κάρτα ήχου. Η δομή του προγράμματος Οι βασικές λειτουργίες της εφαρμογής είναι η σύλληψη και μετάδοση, η λήψη και η αναπαραγωγή του ήχου. Η φωνητική επικοινωνία είναι αμφίδρομη, κάτι που σημαίνει ότι το πρόγραμμα πρέπει ταυτόχρονα

να εκτελεί δύο θεμελιώδεις λειτουργίες: τη μετάδοση και τη λήψη της φωνής. Για το λόγο αυτό η εφαρμογή αναπτύχθηκε με βάση τη λογική των πολυνηματικών εφαρμογών. Υπάρχουν τρία νήματα (threads) που εκτελούν τις βασικές λειτουργίες της µετάδοσης, της λήψης και της αποθήκευσης του ήχου: TransmitThread( ) Εντοπίζονται οι συσκευές σύλληψης ήχου που είναι εγκατεστημένες στον υπολογιστή και επιλέγεται η πιο κατάλληλη από αυτές Ο ήχος συλλαμβάνεται από την επιλεγμένη συσκευή καταγραφής ήχου Κωδικοποιείται με τον επιθυμητό codec (μπορεί να είναι είτε ένας από τους ενσωματωμένους στο JMF, είτε κάποιος που έχει προστεθεί με κάποιο plug-in, είτε κάποιος κωδικοποιητής που έχει φτιάξει ο προγραμματιστής) Ο ήχος αποστέλεται στον επιλεγμένο υπολογιστή ReceiveThread( ) Λαμβάνεται ο ήχος από τον απομακρυσμένο υπολογιστή Αναπαράγεται από τα ηχεία του υπολογιστή SaveThread( ) Αποθηκεύει τον εισερχόµενο ήχο σε αρχείο στο σκληρό δίσκο του υπολογιστή Εκτός από τις παραπάνω βασικές λειτουργίες, τα δύο αυτά threads εκτελούν ταυτόχρονα και κάποιες «περιφερειακές»: Μετρούν τα χαρακτηριστικά της Ποιότητας Επικοινωνίας (Quality of Service) Προσαρμόζουν τα χαρακτηριστικά της μετάδοσης του ήχου, ανάλογα με τα αποτελέσματα των μετρήσεων

Αποθηκεύουν τα αποτελέσματα των μετρήσεων σε αρχεία κειμένου στο σκληρό δίσκο Δίνουν επίσης τη δυνατότητα στο χρήστη, αντί να συνομιλήσει ζωντανά, να αποστείλει στον συνομιλητή του μια προ-ηχογραφημένη συνομιλία ή ένα συμβατό αρχείο ήχου Επιτρέπουν την εγγραφή της συνομιλίας στο σκληρό δίσκο του υπολογιστή του χρήστη, για μετέπειτα χρήση. Το πρόγραμμα περιλαμβάνει όλες τις απαραίτητες κλάσεις, μεθόδους και μεταβλητές για την ομαλή, αποδοτική και απροβημάτιστη λειτουργία του. Επίσης γίνεται αποτελεσματική διαχείριση πιθανών λαθών και δυσλειτουργιών. 4. Μετρήσεις Ποιότητας Επικοινωνίας Γενικά Κάθε εφαρμογή, σε οποιονδήποτε τομέα και εάν εστιάζεται η λειτουργία της, κρίνεται από την ευκολία χρήσης της, τη πληρότητα, την αποτελεσματικότητα και την αποδοτικότητά της. Καθώς η πληρότητα και η ευκολία χρήσης θα κριθούν από το χρήστη, απομένει η αξιολόγηση της αποτελεσματικότητας και της αποδοσής της κάτω από μια ποικιλία συνθηκών. Στην αξιολόγηση της απόδοσης δικτυακών υπηρεσιών έχει καθιερωθεί ο όρος Quality of Service (QoS). Στη συνέχεια της αναφοράς παρουσιάζεται η έννοια του QoS γενικά, των δυνατοτήτων του Java Media Framework σχετικά με μετρήσεις QoS, καθώς και τα αποτελέσματα των μετρήσεων QoS που διενεργήθηκαν με τη χρήση της εφαρμογής Voice Chat. QoS Quality of Service Στον τομέα των ψηφιακών δικτύων επικοινωνίας, τα οποία διαχειρίζονται την κυκλοφορία πακέτων δεδομένων, ο όρος Quality of Service αφορά γενικά τη διαχείριση της κυκλοφορίας αυτής και πιο συγκεκριμένα τους μηχανισμούς ελέγχου των πόρων του δικτύου. Οι μηχανισμοί QoS μπορούν είτε να

δώσουν κλιμακωμένη προτεαιότητα σε συγκεκριμένους χρήστες ή πακέτα δεδομένων, είτε να εγγυηθούν συγκεκριμένη ποσότητα πόρων για κάποια ροή δεδομένων, ανάλογα με τις απαιτήσεις της εφαρμογής που τρέχει ο χρήστης ή την πολιτική του εκάστοτε Internet Service Provider (ISP). Οι εγγυήσεις που παρέχει το QoS είναι σημαντικές ιδιαίτερα στην περίπτωση που η χωρητικότητα του δικτύου είναι περιορισμένη, όπως για παράδειγμα στα δίκτυα κινητής τηλεφωνίας, αλλά και σε εφαρμογές που απαιτούν συγκεκριμένη, σταθερή ταχύτητα μετάδοσης (bitrate) και που επηρρεάζονται έντονα από καθυστερήσεις του δικτύου. Τέτοιες εφαγμογές είναι παραδείγματος χάριν οι εφαρμογές τύπου media streaming, voice over και IP IP- TV.