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



Σχετικά έγγραφα
ΠΡΟΤΥΠΗ ΥΛΟΠΟΙΗΣΗ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΠΑΡΑΜΕΤΡΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΕΞΙΣΟΡΡΟΠΗΣΗΣ ΦΟΡΤΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝΤΑ SIP

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

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

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

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

Network Address Translation (NAT)

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

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

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

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

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

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

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

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

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

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

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

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

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

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

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

Συνεχής ροή πολυµέσων

1.5.1 ΓΕΦΥΡΑ (BRIDGE) Εικόνα Επίπεδα λειτουργίας επαναλήπτη, γέφυρας, δρομολογητή και πύλης ως προς το μοντέλο OSI.

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

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

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

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

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

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

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

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

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

Voip Εφαρμογές και Ποιότητα Υπηρεσιών. Κεφαλέας Νικόλαος Μανικάκης Ιωάννης

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

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

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

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

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

Επίπεδο Δικτύου: Διαδικτύωση

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

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

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

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

Δίκτυα Υπολογιστών I

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

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

Συμφωνία Διασύνδεσης - MyTelco Ltd. Υπόδειγμα Προσφοράς Διασύνδεσης και Παροχέα. Παράρτημα 4 Τεχνικά Πρότυπα

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

Τηλεφωνία. Νοήμον Δίκτυο

Η ΤΑΥΤΟΤΗΤΑ ΜΑΣ. Αναλαμβάνουμε τη μελέτη, εγκατάσταση και υποστήριξη όλων των τηλεπικοινωνιακών συστημάτων VοIP.

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

α. Συνόδου β. Μεταφοράς γ. Δικτύου δ. Διασύνδεσης δεδομένων ε. Φυσικού Επιπέδου (Μονάδες 5)

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

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

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

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου

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

Φύλλο Κατανόησης 1.8

Δίκτυα ATM. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 21-1

ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ (INTERNETWORKING)

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

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

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

Δίκτυα ΙΙ Τομέας Πληροφορικής,

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

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

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

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

Διαδίκτυα και το Διαδίκτυο (Internetworking and the Internet)

Δίκτυα Επικοινωνιών ΙΙ: ATM

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

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Εισαγωγή Πρότυπο τριών Διαστάσεων Λειτουργίας Μοντέλο Διαχείρισης FCAPS Το Δίκτυο του Ε.Μ.Π. Περιβάλλον Εργαστηριακών Ασκήσεων

Εισαγωγή στην Πληροφορική

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

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

Υποστήριξη Κινητικότητας στο Internet. Σαράντης Πασκαλής Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών

Δίκτυα Ευρείας Περιοχής. Επικοινωνίες Δεδομένων Μάθημα 10 ο

SOS Ερωτήσεις Δίκτυα Υπολογιστών ΙΙ

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

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

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

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

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

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

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

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

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 9: MPLS

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

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

Τηλεφωνία. Νοήμον Δίκτυο

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

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

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

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου

ΜΕΡΟΣ 1 ΥΠΗΡΕΣΙΕΣ ΔΙΑΣΥΝΔΕΣΗΣ

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

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

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

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

Transcript:

ΠΡΟΤΥΠΗ ΥΛΟΠΟΙΗΣΗ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΠΑΡΑΜΕΤΡΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΕΞΙΣΟΡΡΟΠΗΣΗΣ ΦΟΡΤΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝΤΑ SIP Η Διπλωματική Εργασία παρουσιάστηκε ενώπιον του Διδακτικού Προσωπικού του Πανεπιστημίου Αιγαίου Σε Μερική Εκπλήρωση των Απαιτήσεων για το Δίπλωμα του Μηχανικού Πληροφοριακών και Επικοινωνιακών Συστημάτων των Κεχαγιά Βασίλη Μπάκα Ευάγγελο ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2008 ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Η ΤΡΙΜΕΛΗΣ ΕΠΙΤΡΟΠΗ ΔΙΔΑΣΚΟΝΤΩΝ ΕΓΚΡΙΝΕΙ ΤΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΩΝ ΚΕΧΑΓΙΑ ΒΑΣΙΛΗ ΜΠΑΚΑ ΕΥΑΓΓΕΛΟ: Καμπουράκης Γεώργιος, Επιβλέπων Ημερομηνία 30/6/2008 Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Γκρίτζαλης Στέφανος, Μέλος Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Κωνσταντίνου Ελισάβετ, Μέλος Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2008 ii

ΠΕΡΙΛΗΨΗ Η υπηρεσία Voice over IP (VoIP) χρησιμοποιεί το πρωτόκολλο του Διαδικτύου (Internet Protocol) για να μεταφέρει τηλεφωνικές συνομιλίες, μετατρέποντας τη φωνή σε πακέτα δεδομένων. Παράλληλα, η υπηρεσία Voice over IP αποτελεί μέρος των υπηρεσιών μετάδοσης σε πραγματικό χρόνο, η οποία τείνει να αντικαταστήσει τη συμβατική τεχνολογία του τηλεφώνου ανατρέποντας τα δεδομένα και τις τιμές των τηλεφωνικών υπηρεσιών παγκοσμίως. Στόχος της συγκεκριμένης εργασίας είναι η δημιουργία και η εκτίμηση της απόδοσης (performance evaluation) μιας πρότυπης αρχιτεκτονικής εξισορρόπησης φόρτου εργασίας (load balancing architecture) ειδικά για SIP εξυπηρετητές (Servers). Το Session Initiation Protocol (SIP) είναι ένα από τα αναδυόμενα πρωτόκολλα αρχικοποίησης σύνδεσης για την παροχή τηλεπικοινωνιακών υπηρεσιών διαμέσου του Διαδικτύου. Είναι επίσης γνωστό πως το συγκεκριμένο πρωτόκολλο δε χρησιμοποιεί ειδικά διαμορφωμένους μηχανισμούς ασφάλειας για να ικανοποιήσει τις απαιτήσεις ασφάλειας που δημιουργούνται, αλλά αξιοποιεί ήδη υπάρχοντες γνωστούς μηχανισμούς ασφάλειας, όπως τα πρωτόκολλα SSL, IPsec και ο μηχανισμός S/MIME. Με βάση το σενάριο της εργασίας, όταν ένας SIP πελάτης αιτείται την αρχικοποίησης μιας κλήσης SIP, μια δικτυακή οντότητα που καλείται SIP Balancer, εκτελεί μια διαδικασία επιλογής του περισσότερου προτιμητέου SIP server για να την εξυπηρετήσει, βασιζόμενος: 1) Στα διαθέσιμα DNS SRV records των SIP servers 2) Σε διάφορες μετρήσιμες παραμέτρους φόρτου εργασίας (workload metrics), οι οποίες συλλέγονται από τους υπάρχοντες SIP proxy servers που λειτουργούν στο συγκεκριμένο υποδίκτυο. Οι παράμετροι αυτοί μπορεί να είναι: ο φόρτος του κάθε SIP server (memory consumption, overall workload, κλπ), οι κλήσεις που εξυπηρετεί, η δικτυακή απόστασή του, και τα συνολικά χαρακτηριστικά του υλικού του. Στην παρούσα διπλωματική καταγράφονται και αναλύονται όλα τα θέματα που σχετίζονται με τη μελέτη, το σχεδιασμό και την ανάπτυξη της υπηρεσίας διαμοιρασμού φορτίου και περιγράφεται λεπτομερώς η λύση που υιοθετήθηκε και υλοποιήθηκε. Αρχικά, γίνεται μία αναφορά στα γενικότερα συστήματα εξισσορόπησης φόρτου που υπάρχουν σε διάφορες υπηρεσίες. Στην συνέχεια περιγράφεται η υπηρεσία VoIP και το πρωτόκολλο SIP. Ακολούθως αναλύονται γενικότερα σχήματα εξισσορόπησης φόρτου καθώς και του μοντέλου που υλοποιήθηκε. Εξετάζεται διεξοδικά ο λόγος υιοθέτησης αυτού του μοντέλου, τα προβλήματα που παρουσιάστηκαν και οι τρόποι με τους οποίους αντιμετωπίστηκαν. Επιπλέον παρουσιάζεται ο SER (Sip Express Router) και οι επιμέρους λειτουργίες του και παραθέτετε ο κώδικας και οι μετρήσεις απόδοσης και ποιότητας της υλοποιημένης υπηρεσίας. Τέλος παρουσιάζονται όλες οι απαραίτητες ρυθμίσεις που έλαβαν χώρα στον Balancer αλλά και στους SIP Proxy ενώ επεξηγούνται οι τροποποιήσεις στην συνολική αρχιτεκτονική του συστήματος. iii

Κεχαγιάς Βασίλης Μπάκας Ευάγγελος Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ 2008 iv

ABSTRACT The Voice over Ip Service, (VoIP) uses the Internet Protocol to transfer telephone calls, turning speech into packets of data. Moreover the VoIP service is part of the real-time transfer services, which tends to replace the conventional telephone technology, setting new standards (amid very low price calls), in global telephony services. The purpose of this project is the creation and performance evaluation of a new load balancing architecture for SIP servers. The Session Initiation Protocol (SIP) is one of the upcoming protocols regarding the initiation of the connection which will provide telecommunication services through the internet. This protocol does not use any specially designed security mechanisms in order to suffice the security requirements but instead takes advantage of well known security mechanisms such as SSL, IPsec, S/MIME. According to this project s scenario, when a SIP client requests the initiation of a SIP call, a network entity called SIP balancer, runs a selection routine to specify the most appropriate SIP server for our call, based on: 1) The available DNS SRV records of the SIP servers 2) In a variety of countable work-load parameters (workload metrics), which are collected from the existing and operating SIP proxy servers. These parameters are the load in each SIP server (memory consumption, overall workload, etc), the calls currently serviced and its overall characteristics. In this project we recorded and analyzed all the subjects related to the study, the design and the development of this service, while thoroughly describing the selected and implemented solution. Initially there is a mention in the general load balancing systems to be found in different services. To continue with, the protocols of VoIP and SIP are described. Next we analyze the general load balancing schemes along with the model we implemented. We concentrate to the reasons we implement this model, the problems that occurred and the solutions we come up with. We present the SER (Sip Express Router) along with its functions. We have also included the source code plus the efficiency and quality measurements of our service implementation. Finally we describe all the necessary adjustments both to balancer and SIP Proxy and the architecture differences between this solution and the default. Kexagias Basilis Mpakas Vagelis Department of Information and Communication Systems Engineering UNIVERSITY OF THE AEGEAN 2008 v

ΕΥΧΑΡΙΣΤΙΕΣ - ΑΦΙΕΡΩΣΕΙΣ Ευχαριστούμε ιδιαίτερα τον επιβλέποντα της διπλωματικής μας εργασίας κ. Καμπουράκη Γεώργιο, Λέκτορα του Τμήματος Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων του Πανεπιστημίου Αιγαίου για την υποστήριξη, την καθοδήγηση και τη συνεχή συνεργασία κατά τη διάρκεια της εκπόνησης της διπλωματικής εργασίας. Ευχαριστίες οφείλονται στον καλό μας συνάδελφο κ. Γενειατάκη Δημήτρη, ο οποίος μας προσέφερε τη βοήθειά του σε τμήματα της εργασίας στα οποία είχε εξειδικευμένες γνώσεις. Τέλος, θα θέλαμε να ευχαριστήσουμε τους γονείς μας για την καθοδήγηση, την υπομονή και την συμπαράστασή τους, καθ όλη την διάρκεια των σπουδών μας. Το μεγαλύτερο μερίδιο της επιτυχούς ολοκλήρωσης της φοίτησης μας, οφείλεται σε εκείνους. vi

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΠΕΡΙΛΗΨΗ...iii ABSTRACT...v ΕΥΧΑΡΙΣΤΙΕΣ - ΑΦΙΕΡΩΣΕΙΣ...vi ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ...vii ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ...ix ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ...x ΚΕΦΑΛΑΙΟ 1 - Εισαγωγή...11 1.1 Διαδικτυακές Υπηρεσίες...11 1.2 Διατήρηση Πληροφοριών...13 1.3 Χαρακτηριστικά των Load Balancer...14 ΚΕΦΑΛΑΙΟ 2 - Εισαγωγή στο VOIP...16 2.1 Πρωτόκολλα...18 2.1.1 SIP...18 2.1.2 Session Description Protocol SDP (Πρωτόκολλο Περιγραφής Συνόδου)...62 2.1.3 H.323...72 2.1.4 Real-Time Transport Protocol RTP...86 2.2 To VoIP στην πράξη...91 2.3 ΕNUM...94 2.3.1 Χρήσεις του ENUM...97 ΚΕΦΑΛΑΙΟ 3 - Σχήματα Load Balancing...99 3.1 Ανάλυση Τεχνολογιών Εξισορρόπησης Φόρτου...99 3.1.1 Εξέλιξη...100 3.2 Πρόσθετες Τεχνολογίες Εξισορρόπησης Φόρτου...101 3.3 Αλγόριθμοι Εξισορρόπησης Φόρτου...102 3.4 Αρχιτεκτονική και Στοιχεία Δικτύου...103 3.5 Συνάρτηση Αξιολόγησης...107 ΚΕΦΑΛΑΙΟ 4 - SIP Express Router SER...109 4.1 Γενική Αρχιτεκτονική...109 4.2 Στόχοι και Λειτουργική Αρχιτεκτονική...111 4.2.1 Υποστήριξη Βασικών SIP Υπηρεσιών...112 4.2.2 Προγραμματισμός και Διεπαφή Δημιουργίας Υπηρεσιών...112 4.2.3 Υποστήριξη Υπηρεσιών...114 4.2.4 Αυθεντικοποίηση, Εξουσιοδότηση και Χρέωση...115 4.2.5 Πύλες Εφαρμογών...116 4.2.6 Εφαρμογές Ενοποιημένων Μηνυμάτων...117 vii

4.3 Τεχνική Περιγραφή...117 ΚΕΦΑΛΑΙΟ 5 - Πηγαίος Κώδικας και Τεκμηρίωση...118 5.1 Λειτουργίες του Προγράμματος...118 5.2 SER Balancer...118 5.3 SER Proxy...124 ΚΕΦΑΛΑΙΟ 6 - Μετρήσεις Απόδοσης και Ποιότητας...136 6.1 Περιγραφή Σεναρίων...136 6.2 Μεθοδολογία...137 6.3 Αποτελέσματα και Συμπεράσματα...139 ΒΙΒΛΙΟΓΡΑΦΙΑ...143 ΠΑΡΑΡΤΗΜΑ I - Ser Configuration Files...147 Π.1 SER Balancer...147 Π.2 SER Proxy...151 ΠΑΡΑΡΤΗΜΑ II - Υλοποίηση της Συνάρτησης Count_calls()...156 ΠΑΡΑΡΤΗΜΑ III - Παράρτημα Ακρωνυμίων...160 viii

ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ Πίνακας 2-1: Υποχρεωτικές κεφαλίδες για το αίτημα INVITE...50 Πίνακας 2-2: Παραδείγματα για την κεφαλίδα From...52 Πίνακας 2-3: Παραδείγματα για την κεφαλίδα From...53 Πίνακας 2-4: Παραδείγματα για την κεφαλίδα Το...54 Πίνακας 2-5: Παραδείγματα για την κεφαλίδα Via...55 Πίνακας 2-6: Παραδείγματα για την κεφαλίδα Contact...58 Πίνακας 2-7: Ετικέτες χαρακτηριστικών γνωρισμάτων...59 Πίνακας 2-8: Κλάσεις αποκρίσεων SIP...61 Πίνακας 2-9: Λίστα πεδίων SDP στην απαιτούμενη σειρά...64 Πίνακας 2-10: Τιμές των ιδιοτήτων...70 Πίνακας 2-11: Οικογένεια προτύπων Η.32x της ITU...73 Πίνακας 2-12: Πρωτόκολλα που σχετίζονται με το Η.323...75 Πίνακας 2-13: Τύποι πακέτων RTCP...88 Πίνακας 2-14: RTP/AVP Audio and Video...89 Πίνακας 2-15: Βασικά βήματα για την εγκατάσταση μια κλήσης VoIP...96 Πίνακας 2-16: Βασικά βήματα για την εγκατάσταση μια VoIP κλήσης με χρήση του ENUM...96 ix

ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ Σχήμα 1-1: Παράδειγμα δύο αρχιτεκτονικών Load Balancing...12 Σχήμα 2-1: Η στοίβα πρωτοκόλλων πολυμέσων διαδικτύου...19 Σχήμα 2-2: Η θέση του SIP στο δίκτυο...21 Σχήμα 2-3: Το απλούστερο μοντέλο επικοινωνίας μεταξύ δύο UA...24 Σχήμα 2-4: Το απλούστερο μοντέλο επικοινωνίας μεταξύ ενός UA και ενός PA...24 Σχήμα 2-5: Υλοποίηση υπηρεσίας κλήσης με απόκρυψη...26 Σχήμα 2-6: Δίκτυο SIP με πύλες...28 Σχήμα 2-7: Αλληλεπίδραση μεταξύ UA, εξυπηρετητών και location service...29 Σχήμα 2-8: Δίκτυο SIP που χρησιμοποιεί proxy server...29 Σχήμα 2-9: Παράδειγμα κλήσης SIP με proxy server...30 Σχήμα 2-10: Τραπέζιο SIP...31 Σχήμα 2-11: Διαδικασία forking με proxy...33 Σχήμα 2-12: Παράδειγμα επικοινωνίας με χρήση redirect server...37 Σχήμα 2-13: Παράδειγμα κλήσης SIP με redirect server...38 Σχήμα 2-14: Βασική αρχή λειτουργίας του registration server...41 Σχήμα 2-15: Μήνυμα INVITE που δεν περιέχει περιγραφή SDP...49 Σχήμα 2-16: Δένδρο απόφασης για την προώθηση μηνύματος σύμφωνα με την κεφαλίδα Via...57 Σχήμα 2-17: Στοιχεία του δικτύου H.323...75 Σχήμα 2-18: Παράδειγμα ροής κλήσης στο H.323...78 Σχήμα 2-19: Ακολουθία τερματισμού κλήσης στο H.323...80 Σχήμα 2-20: Συνδέσεις FastStart με χρήση του H.323...81 Σχήμα 2-21: Συνοπτική σύγκριση των πρωτοκόλλων Η.323 και SIP...83 Σχήμα 2-22: Επικεφαλίδα των πακέτων RTP...86 Σχήμα 2-23: Εταιρικό τηλεφωνικό δίκτυο...91 Σχήμα 2-24: Εσωτερική τηλεφωνία VoIP...92 Σχήμα 2-25: Τηλεφωνία IP και PSTN...93 Σχήμα 2-26: Πλήρης τηλεφωνία VoIP...94 Σχήμα 3-1 Διάταξη του FWLB...101 Σχήμα 3-2 Επικοινωνία Balancer SIP Proxy...104 Σχήμα 3-3 Διάγραμμα κλήσεων μεταξύ όλων των εμπλεκομένων οντοτήτων...106 Σχήμα 4-1: Γενική Αρχιτεκτονική του SER...110 Σχήμα 4-2: Εννοιολογικό μοντέλο του SER...111 x

ΚΕΦΑΛΑΙΟ 1 - Εισαγωγή Στην επιστήμη υπολογιστών ο όρος load balancing, ή εξισορρόπηση φόρτου, περιγράφει το διαμοιρασμό μιας λειτουργίας που θέλουμε να εκτελείται απρόσκοπτα μεταξύ ενός αριθμού διακομιστών με σκοπό τη μείωση ή καλύτερη εξισορρόπηση του φόρτου εργασίας όπως φαίνεται και στο Σχήμα 1-1. Αυτό γίνεται για να επιτευχθεί η συνεχής και απρόσκοπτη λειτουργία ενός συστήματος. Ο φόρτος μοιράζεται σε ένα αριθμό από διακομιστές που εξυπηρετούν ένα σκοπό. Αν κάποιος από αυτούς παρουσιάσει κάποιο πρόβλημα, οι υπόλοιποι συνεχίζουν το έργο απρόσκοπτα αν και επιβαρύνονται περισσότερο. 1.1 Διαδικτυακές Υπηρεσίες Μια από τις πιο κοινές εφαρμογές εξισσορόπησης φόρτου είναι η παροχή μιας υπηρεσίας από πολλαπλούς εξυπηρετητές, γνωστή και ως φάρμα από εξυπηρετητές. Πολλά τέτοια συστήματα περιλαμβάνονται σε δημοφιλές ιστοσελίδες, σε μεγάλους χώρους διαδικτυακής συζήτησης (chat rooms) και σε ιστοσελίδες με μεγάλη κίνηση από μεταφορά αρχείων File Transfer Protocol sites (MySpace,Facebook). Για τις διαδικτυακές υπηρεσίες την εξισορρόπηση φόρτου την αναλαμβάνει μια εφαρμογή, η οποία ακούει σε κάποια πόρτα (port) και οι πελάτες συνδέονται σε αυτή για να χρησιμοποιήσουν την υπηρεσία αυτή. Ο balancer προωθεί τα μηνύματα στους διακομιστές, οι οποίοι συνήθως του απαντούν. Αυτό επιτρέπει στο balancer να απαντά αυτός στους πελάτες χωρίς αυτοί να καταλάβουν ποτέ αυτόν τον διαχωρισμό. Επίσης αποτρέπει τους πελάτες από το να έρχονται σε απευθείας επαφή με τους διακομιστές, προσφέροντας κάποια πλεονεκτήματα στην ασφάλεια κρύβοντας τους την δομή του συστήματος και αποφεύγοντας τυχόν επιθέσεις στο επίπεδο στοίβας δικτύου. Μερικοί balancer παρέχουν και κάποιες ειδικές υπηρεσίες σε περίπτωση που όλοι οι διακομιστές δεν είναι διαθέσιμοι. Αυτό περιλαμβάνει την προώθηση των αιτήσεων στον εφεδρικό balancer ή την αποστολή σχετικού μηνύματος λάθους. Ένα εναλλακτικό μοντέλο balancing, το οποίο δεν απαιτεί κάποια εξειδικευμένη εφαρμογή ή εξοπλισμό είναι το Round Robin Domain Name System (DNS). Σε αυτήν την τεχνική πολλαπλές διευθύνσεις συνεργάζονται με ένα domain name (πχ www.example.org). Οι πελάτες είναι ελεύθεροι να επιλέξουν σε ποιο διακομιστή θέλουν να συνδεθούν. Σε αντίθεση όμως με την προηγούμενη τεχνική, εδώ οι πελάτες μπορούν να δουν την εσωτερική δομή του δικτύου των διακομιστών. Η τεχνική αυτή παρουσιάζει πλεονεκτήματα αλλά και μειονεκτήματα τα οποία εξαρτώνται από τον βαθμό ελέγχου του εξυπηρετητή DNS και του βαθμού εξισσορόπησης φόρτου που επιθυμούμε [1]. 11

Υπάρχει όμως και μια πληθώρα αλγόριθμων για load balancing, οι οποίοι μπορούν να αποφασίσουν σε ποιον διακομιστή θα αναθέσουν την κάθε κλήση σύμφωνα με κάποια κριτήρια. Ένας απλός αλγόριθμος είναι η τυχαία ανάθεση ή το απλό Round Robin. Πιο σύνθετοι αλγόριθμοι λαμβάνουν απόφαση εξετάζοντας το φόρτο του κάθε διακομιστή, το χρόνο απόκρισης του, τον αριθμό των ενεργών κλίσεων που εξυπηρετεί, τη γεωγραφική θέση του, τις δυνατότητες του ή το ποσοστό του συνολικού φόρτου που του έχει ανατεθεί. Σε συστήματα που απαιτούνται υψηλά επίπεδα απόδοσης χρησιμοποιείται load balancing πολλών επιπέδων. Σχήμα 1-1: Παράδειγμα δύο αρχιτεκτονικών Load Balancing 12

1.2 Διατήρηση Πληροφοριών Ένα μεγάλο πρόβλημα που προκύπτει σε ένα σύστημα εξισσορόπησης φόρτου είναι όταν απαιτείται από τους διακομιστές να διατηρήσουν στη μνήμη τους ορισμένες πληροφορίες για τους πελάτες που εξυπηρετούν για μελλοντική χρήση. Το πρόβλημα εμφανίζεται όταν κάποιος διακομιστής χρειαστεί κάποιες πληροφορίες για έναν πελάτη, οι οποίες έχουν αποθηκευτεί σε κάποιο άλλο διακομιστή όπως επίσης και αν τέτοια στοιχεία δεν αποθηκεύονται για μελλοντική χρήση. Μια λύση είναι η συνεχή εγγραφή των πελατών στον ίδιο διακομιστή. Ένα αρνητικό στοιχείο της τεχνικής αυτής είναι ότι δεν υπάρχει αυτόματη διαδικασία ανάνηψης στην περίπτωση αποτυχίας του συστήματος, με αποτέλεσμα αν ο διακομιστής που έχει τις πληροφορίες πέσει ή βγει εκτός δικτύου να μην μπορούν οι υπόλοιποι να λάβουν τις πληροφορίες. Οι αναθέσεις σε ένα συγκεκριμένο εξυπηρετητή μπορούν να γίνονται ανάλογα με το όνομα του χρήστη, με την διεύθυνση IP του πελάτη ή και τυχαία. Εξαιτίας όμως κάποιων ιδιοτροπιών όπως το DHCP, Network Address Translation(NAT) και web proxies οι διευθύνσεις των πελατών μπορούν να αλλάζουν με κάθε διαφορετικό αίτημα και έτσι αυτή η μέθοδος μπορεί να είναι σε κάποιες περιπτώσεις αναξιόπιστη. Οι τυχαίες αναθέσεις πρέπει να αποθηκεύονται στη μνήμη του balancer, ο οποίος δημιουργεί ένα αρχείο αποθήκευσης πληροφοριών. Αν κάποιος balancer πέσει ή αντικατασταθεί οι πληροφορίες αυτές χάνονται, ενώ επίσης μπορεί να χρειαστεί να υπάρχει κάποια περίοδος, η οποία αν ξεπεραστεί, οι πληροφορίες αυτές να διαγράφονται ώστε να μην ξεπεράσουν το διαθέσιμο χώρο τον οποίο έχουμε ορίσει στο σύστημα για το σκοπό αυτό. Επίσης η τυχαία ανάθεση πελατών απαιτεί και τη διατήρηση μιας κατάστασης από τους πελάτες κάτι που είναι δύσκολο, για παράδειγμα αν ο πελάτης έχει απενεργοποιήσει την επιλογή των cookies. Οι πιο εξεζητημένοι load balancers χρησιμοποιούν πολλαπλές τεχνικές διατήρησης πληροφοριών για να αποφύγουν τις αρνητικές επιπτώσεις της κάθε επιμέρους τεχνικής [3]. Μια εναλλακτική λύση είναι να δώσουμε σε όλους τους διακομιστές πρόσβαση σε όλα τα στοιχεία του κάθε διακομιστή ξεχωριστά. Αυτό μπορεί να γίνει με ένα διαδικτυακό σύστημα αρχείων ή με μια δικτυακή σχεσιακή βάση δεδομένων. Ανάλογα με την υλοποίηση αυτή η τεχνική μπορεί να παρουσιάσει ένα νέο σημείο αποτυχίας, το οποίο ενδέχεται να υπονομεύσει την αξιοπιστία του συστήματός μας. Επίσης, η ανάγκη ανταλλαγής πληροφορίας μεταξύ των εξυπηρετητών μπορεί να επηρεάσει αρνητικά την απόδοση και την ασφάλεια του συστήματος. 13

1.3 Χαρακτηριστικά των Load Balancer Οι αλγόριθμοι που υλοποιούν κάποια μέθοδο load balancing πρέπει να είναι υπεύθυνοι για την κατανομή του φόρτου στην κάθε επεξεργαστική μονάδα ή κόμβο, μεταφέροντας τον πολύ φόρτο σε μονάδες που έχουν λιγότερο [4]. Έτσι γενικά οι αλγόριθμοι εξισορρόπησης φορτίου μπορούν να κατηγοριοποιηθούν σε 3 τύπους: Στατικούς αλγορίθμους Load Balancing: αυτοί οι αλγόριθμοι κατανέμουν τον φόρτο αναθέτοντας εργασία σε κάθε κόμβο πριν την εκκίνηση του συστήματος. Αλγόριθμοι Δυναμικού Load Balancing: οι αλγόριθμοι αυτής της κατηγορίας μπορούν να διαμοιράσουν το φόρτο με στοιχεία που συλλέγουν κατά την εκκίνηση του συστήματος. Προσαρμόσιμοι αλγόριθμοι Load Balancing: οι αλγόριθμοι αυτής της κατηγορίας μπορούν αυτόματα να προσαρμόζονται στην τρέχουσα κατάσταση του συστήματος ανάλογα με κάποιες παραμέτρους που αξιολογούν δυναμικά. Ορισμένα από τα χαρακτηριστικά των balancer παρουσιάζονται παρακάτω: Ασύμμετρος φόρτος: Με την χρήση μιας αναλογίας μπορούμε να ορίσουμε χειροκίνητα ποιοι διακομιστές θα αναλαμβάνουν μεγαλύτερο φόρτο από κάποιους άλλους. Αυτό συμβαίνει πολλές φορές όταν κάποιος διακομιστής είναι περισσότερο γρήγορος από κάποιους άλλους. Ενεργοποίηση προτεραιότητας: Όταν ο φόρτος ανέλθει σε κάποιο όριο ή ο αριθμός των διαθέσιμων διακομιστών πέσει σε κάποιο όριο τότε ενεργοποιούνται οι εφεδρικοί διακομιστές. Κατανεμημένα συστήματα προστασίας από επίθεση της μορφής Denial of Service (DDoS): Οι balancers παρέχουν χαρακτηριστικά όπως τα SYN cookies και τις υποχρεωτικές καθυστερήσεις. Οι διακομιστές που τοποθετούνται πίσω από τον balancer δεν έρχονται σε επαφή με τον πελάτη μέχρι να ολοκληρωθεί η χειραψία TCP, έτσι ώστε να αποφευχθούν τυχόν επιθέσεις της μορφής SYN flood. Συμπίεση των ιστοσελίδων http: Μειώνονται τα ποσοστά των δεδομένων που κινούνται υποχρεώνοντας όλους τους νέους φυλλομετρητές να χρησιμοποιούν συμπίεση της μορφής gzip. Αποθήκευση στην προσωρινή μνήμη του TCP (TCP buffering): Αυτός ο αλγόριθμος μπορεί να αποθηκεύει τις απαντήσεις στην προσωρινή μνήμη του balancer και να περιμένει ώστε να τις λάβουν οι πιο αργοί πελάτες επιτρέποντας στον διακομιστή να συνεχίσει με το επόμενο αίτημα. 14

HTTP cashing: Με τον τρόπο αυτό ο αλγόριθμος μπορεί να αποθηκεύει κάποια στατικά περιεχόμενα έτσι ώστε κάποια αιτήματα να τα χειρίζεται ο balancer και να μην απασχολούν τον διακομιστή. Φιλτράρισμα περιεχομένου: Ορισμένοι αλγόριθμοι μπορούν αυθαίρετα να αλλάξουν την κίνηση των δεδομένων. Ασφάλεια HTTP: Ορισμένοι αλγόριθμοι μπορούν να αποκρύψουν τις ιστοσελίδες που εμφανίζουν λάθος, να αφαιρούν από τις κεφαλίδες, από το αναγνωριστικό των εξυπηρετητών και να κωδικοποιούν τα cookies έτσι ώστε οι τελικοί χρήστες να μην μπορούν να τα χρησιμοποιήσουν. Προτεραιότητα σειράς: Οι αλγόριθμοι αυτοί παρέχουν τη δυνατότητα αλλαγής προτεραιότητας της κίνησης ανάλογα με το είδος της. Έλεγχος περιεχομένου: Πολλοί αλγόριθμοι μπορούν να αποστέλλουν διαφορετικές αιτήσεις σε διαφορετικούς διακομιστές ανάλογα με το περιεχόμενο που διαθέτουν. Αυθεντικοποίηση των πελατών: Δηλαδή, η απαίτηση από το σύστημα οι χρήστες να αυθεντικοποιούνται πριν αποκτήσουν πρόσβαση σε κάποια ιστοσελίδα ή κάποια υπηρεσία. Φιλτράρισμα για Spam: Τουλάχιστον ένας balancer ελέγχει τις διευθύνσεις IP από τα πακέτα και τα απορρίπτει αν προέρχονται από γνωστούς spammers πριν καν φτάσουν στον κανονικό balancer. Τείχος προστασίας(firewall): Οι απευθείας συνδέσεις με τους διακομιστές απαγορεύονται για λόγους ασφάλειας. 15

ΚΕΦΑΛΑΙΟ 2 - Εισαγωγή στο VOIP Το Voice over IP (VoIP) είναι ένας όρος που χρησιμοποιείται στην IP τηλεφωνία για ένα σύνολο λειτουργιών που διαχειρίζονται την παράδοση των φωνητικών πληροφοριών με χρήση του πρωτοκόλλου διαδικτύου IP searchnetworking.com Στην ουσία το VoIP σημαίνει ότι η φωνή, ή οποιοδήποτε άλλο είδος ηχητικών δεδομένων, μεταφέρεται μέσω του Internet Protocol (IP). Μια VoIP υπηρεσία μπορεί να υλοποιηθεί χρησιμοποιώντας ποικίλα πρωτόκολλα σηματοδοσίας, ποικίλους αλγόριθμους κωδικοποίησης φωνής και ποικίλα εξαρτήματα και τηλεφωνικές συσκευές. Στην πραγματικότητα, ακόμα και η μεταφορά video μέσω IP μπορεί να θεωρηθεί VoIP γιατί από τεχνική άποψη δεν είναι πολύ διαφορετική από μια κανονική κλήση VoIP εκτός από το ότι έχει αυξημένες απαιτήσεις σε εύρος ζώνης και CPU. Δηλαδή, μπορεί να θεωρηθεί σαν ένα add-on στο VoIP. Το VoIP δεν είναι τόσο καλά καθορισμένο όσο η τηλεφωνία μέσω του δικτύου PSTN. Δεν έχει καθοριστεί ακόμα ένα ενιαίο παγκόσμιο πρότυπο σηματοδοσίας και είναι πολύ πιθανή η χρήση περισσότερων από ένα πρότυπα, τα επόμενα χρόνια. Απλές εφαρμογές VoIP υπάρχουν εδώ και χρόνια και υλοποιήθηκαν σε διαφορετικά εργαλεία άμεσων μηνυμάτων όπως τα ICQ, MSN Messenger, AOL Messenger. Συνήθως, το κάθε εργαλείο χρησιμοποιεί την δική του, ιδιωτική, λύση σηματοδοσίας. Οι λειτουργίες άμεσων μηνυμάτων και φωνητικής συζήτησης δεν μπορούν να θεωρηθούν ως αντικατάσταση για μια επαγγελματική σύνδεση PSTN και δεν είναι κατάλληλες για ευρεία χρήση. Όμως, το VoIP έχει ξεπεράσει τα περισσότερα προβλήματα που υπήρχαν αρχικά και η χρήση του γίνεται όλο και πιο ευρεία τα τελευταία χρόνια. Επίσης, το VoIP αναμένεται να αντικαταστήσει εξολοκλήρου το δίκτυο PSTN τις επόμενες δεκαετίες. Ο ρυθμός με τον οποίο θα γίνει η μεταφορά αυτή, εξαρτάται από έναν αριθμό παραγόντων. Ο σημαντικότερος από αυτούς είναι ίσως ο κύκλος αντικατάστασης προϊόντων των μεγάλων τηλεπικοινωνιακών εταιριών, οι οποίες θα υιοθετήσουν αυτή τη νέα τεχνολογία μόνο όταν θα είναι πιο φθηνή από την συντήρηση της υπάρχουσας υποδομής PSTN [5]. Το VoIP πρέπει να φτάσει ή καλύτερα να ξεπεράσει τα πρότυπα και την άνεση στην χρήση που παρέχονται στο PSTN. Το PSTN υπάρχει εδώ και δεκαετίες και η χρήση του είναι πολύ εύκολη αλλά και απαραίτητη για τον μέσο καταναλωτή. Επίσης, όπως ήδη αναφέρθηκε, το VoIP είναι πολύ νεότερο από το PSTN. Η ιδέα υλοποίησής του υπάρχει εδώ και κάποιο χρονικό διάστημα, αλλά η ευρεία χρήση και ολοκληρωμένη υλοποίησή του έχει μόλις αρχίσει. Αν και είναι πιο λειτουργικό από το PSTN, έχει ακόμα ελλείψεις σε συγκεκριμένους τομείς, όπως στην ευκολία χρήσης. Η ποιότητα της υπηρεσίας (Quality of Service) είναι επίσης ένα άλλο θέμα. Τεχνικά μια κλήση VoIP εκτελείται ως εξής [6]: 16

Ο Analog Digital Converter (ADC) μετατρέπει την αναλογική φωνή σε ψηφιακά σήματα (bits). Τα bit συμπιέζονται σε μορφή κατάλληλη για την μετάδοση της φωνής, δηλαδή σε πακέτα φωνής (voice packet). Τα πακέτα φωνής ενθυλακώνονται σε πακέτα δεδομένων χρησιμοποιώντας ένα πρωτόκολλο πραγματικού χρόνου (συνήθως το RTP). Η πραγματοποίηση της κλήσης γίνεται με τη χρήση κάποιου πρωτοκόλλου σηματοδοσίας όπως το Η.323 ή το SIP. Ο παραλήπτης αποσυνθέτει τα πακέτα, εξάγει τα δεδομένα και τα μετατρέπει σε σήματα αναλογικής φωνής, τα οποία αποστέλλονται σε κάποιο είδος ηχείου (ηχητικό σύστημα προσωπικού υπολογιστή, ακουστικά, τηλέφωνο, κλπ). Για να καταστεί το VoIP αποδεκτό και επιτυχημένο πρέπει να παρέχει (τουλάχιστον) ισότιμες υπηρεσίες με αυτές του PSTN. Η ποιότητα της ομιλίας του PSTN μπορεί εύκολα να επιτευχθεί γιατί τα codecs που χρησιμοποιούνται για τη συμπίεση και μετάδοση μιας τηλεφωνικής κλήσης του PSTN είναι ξεπερασμένα. Όμως, η καθυστέρηση των κλήσεων IP μπορεί να δημιουργήσει ένα σοβαρό πρόβλημα. Η καθυστέρηση που υπάρχει κατά την εκτέλεση μιας τηλεφωνικής κλήσης VoIP πρέπει να είναι μικρότερη από 0.3 δευτερόλεπτα γιατί σε άλλη περίπτωση δεν μπορεί να επιτευχθεί η συνομιλία[7]. Λόγω του γεγονότος ότι δεν υπάρχουν παγκόσμιες υλοποιήσεις QoS, δεν μπορεί να εγγυηθεί μια μέγιστη καθυστέρηση από τους παρόχους υπηρεσιών VoIP. Ένα άλλο σημαντικό θέμα είναι η νομοθεσία στην οποία υπόκεινται οι υπηρεσίες VoIP αφού προς το παρόν δεν υπάρχει κανένα σχετικό ευρωπαϊκό ή παγκόσμιο νομοθετικό πλαίσιο. Στην περίπτωση που το VoIP υλοποιηθεί σωστά, μπορεί να έχει πολλαπλά πλεονεκτήματα ώστε να υπερτερήσει τελικά της συμβατικής τηλεφωνίας PSTN [8]. Τα σημαντικότερα από αυτά είναι: μείωση κόστους, απλοποίηση, σταθεροποίηση, εξελιγμένες εφαρμογές Όπως είναι φυσικό το κυριότερο επιχείρημα για τη χρήση του VoIP είναι η μείωση του κόστους, που μπορεί να επιτευχθεί στις υπεραστικές κλήσεις και στις κλήσεις προς το εξωτερικό. Οι πολυεθνικές εταιρίες χρησιμοποιούν ήδη IP δίκτυα για τη μεταφορά διεθνών κλήσεων χωρίς μεγάλο κόστος. Η απλοποίηση θα επιτευχθεί μαζί με την επίτευξη προτυποποίησης σε έναν ικανοποιητικό βαθμό και θα έχει ως αποτέλεσμα μειωμένες απαιτήσεις σε εξοπλισμό. Για παράδειγμα, μπορεί πολύ εύκολα να σχεδιαστεί ένα κέντρο κλήσεων με VoIP soft phone στους υπολογιστές των πελατών ώστε να μην είναι χρήσιμες πλέον οι τηλεφωνικές συσκευές. Με την αλλαγή των διαφορετικών δομών συστημάτων σε ένα ενιαίο είναι πιο εύκολη η διαχείριση και ο 17

εντοπισμός των σφαλμάτων. Είναι επίσης σημαντικό να σημειωθεί ότι για τη χρήση του VoIP χρειάζεται μόνο ένα δίκτυο και επομένως ενοποιούνται τα δίκτυα PSTN και IP. Τέλος, το VoIP μπορεί να προσφέρει πολύ περισσότερες εφαρμογές από το τηλεφωνικό σύστημα PSTN, γεγονός το οποίο θα μπορούσε να είναι ένα καλό επιχείρημα ώστε οι τελικοί χρήστες να εμπιστευθούν και ακολούθως να μεταπηδήσουν σε ένα σύστημα VoIP. Οι εφαρμογές αυτές εμπεριέχουν υποστήριξη για πολυμεσικές εφαρμογές, όπως η τηλεφωνία video που αναφέρθηκε παραπάνω και άλλες μορφές υπηρεσιών δεδομένων όπως η διαχείριση παρουσίας (presence management). 2.1 Πρωτόκολλα Το καλό με τα πρότυπα είναι ότι υπάρχουν πολλά για να διαλέξεις Andrew S. Tanenbaum Για να μεταδοθούν τα δεδομένα φωνής πάνω από ένα IP δίκτυο μπορούν να χρησιμοποιηθεί ένας αριθμός πρωτοκόλλων. Στις επόμενες ενότητες περιγράφονται τα πιο διαδεδομένα πρωτόκολλα του VoIP όπως παρουσιάζονται και στο Σχήμα 2-1. 2.1.1 SIP Το SIP (Session Initiation Protocol Πρωτόκολλο Έναρξης Περιόδου Εργασίας) είναι ένα πρωτόκολλο σηματοδοσίας του επιπέδου εφαρμογής, το οποίο αναπτύχθηκε και σχεδιάστηκε από την IETF [9]. Το πρωτόκολλο σχεδιάστηκε έχοντας ως στόχο την εύκολη υλοποίηση, την εύκολη εξελιξιμότητα και την ευελιξία. Οι προδιαγραφές του SIP περιγράφονται στο RFC 3261 [10]. Το πρωτόκολλο χρησιμοποιείται για τη δημιουργία, την τροποποίηση και τον τερματισμό συνόδων μεταξύ των συμμετεχόντων. Στην περίπτωση του SIP η σύνοδος περιλαμβάνει ένα ζευγάρι αποστολέα και παραλήπτη που επικοινωνούν μεταξύ τους και τις καταστάσεις στις οποίες μπορεί να βρεθεί το παραπάνω ζεύγος κατά τη διάρκεια της επικοινωνίας. Παραδείγματα τέτοιων συνόδων αποτελούν οι τηλεφωνικές κλήσεις μέσω internet, η διανομή πολυμέσων, οι πολυμεσικές διασκέψεις, τα κατανεμημένα ηλεκτρονικά παιχνίδια, κλπ. 18

Signaling Media Utility SDP Media coding Application Layer H.323 SIP RTP DNS DHC Transport Layer TCP UDP Internet Layer IP Physical / Link Layer AALx PPP ATM V.90 Ethernet 802.11 Σχήμα 2-1: Η στοίβα πρωτοκόλλων πολυμέσων διαδικτύου 2.1.1.1 Η ιστορία του SIP Το SIP αναπτύχθηκε αρχικά από το Multi-Party Multimedia Session Control Working Group του IETF, γνωστό και ως MMUSIC. Η έκδοση 1.0 υποβλήθηκε ως internet-draft το 1997. Οι σημαντικές αλλαγές που έγιναν στο πρωτόκολλο οδήγησαν στην έκδοση 2.0, η οποία υποβλήθηκε ως internet-draft το 1998. Το πρωτόκολλο πέτυχε το προτιμώμενο επίπεδο προτυποποίησης τον Μάρτιο του 1999 και δημοσιεύτηκε ως RFC 2543 [11] τον Απρίλιο του 1999. Το Σεπτέμβριο του 1999, ιδρύθηκε η ομάδα εργασίας του SIP από την IETF για να ανταποκριθεί στο αυξανόμενο ενδιαφέρον για το πρωτόκολλο. Τον Ιούλιο του 2000 δημοσιεύτηκε ένα internet-draft που περιείχε διορθώσεις σφαλμάτων και επεξηγήσεις, το οποίο αναφέρεται ως RFC 2543 bis. Το έγγραφο δημοσιεύτηκε τελικά ως RFC 3261, το οποίο αντικαθιστά την αρχική προδιαγραφή RFC 2543. Επιπλέον, δημοσιεύτηκαν αρκετά έγγραφα RFC που επεκτείνουν το SIP. Η δημοτικότητα του SIP στον IETF οδήγησε στο σχηματισμό άλλων ομάδων εργασίας σχετικές με το SIP. Η ομάδα εργασίας Session Initiation Protocol INvestiGation (SIPPING) δημιουργήθηκε για να ερευνήσει τις εφαρμογές του SIP, να αναπτύξει τις απαιτήσεις των επεκτάσεών του και να εκδώσει τα έγγραφα των βέλτιστων τρεχουσών πρακτικών (BCP Best Current Practices) σχετικά με τη χρήση του SIP. Η ομάδα εργασίας SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE) συστάθηκε για να προτυποποιήσει πρωτόκολλα που αφορούν εφαρμογές παρουσίας και άμεσων μηνυμάτων. Άλλες ομάδες που χρησιμοποιούν το SIP είναι οι ομάδες εργασίας PSTN and Internet Internetworking (PINT) και Service in the PSTN/IN Requesting InTernet Services (SPIRITS). 19

Το SIP ενσωματώνει στοιχεία από δύο ευρέως χρησιμοποιούμενα διαδικτυακά πρωτόκολλα: το Πρωτόκολλο Μεταφοράς Υπερκειμένου (Hypertext Transfer Protocol - HTTP) που χρησιμοποιείται για την πλοήγηση στο δίκτυο και το SMTP που χρησιμοποιείται για την υπηρεσία E-Mail. Από το HTTP, το SIP δανείστηκε την αρχιτεκτονική πελάτη εξυπηρετητή, τη χρήση των Ενιαίων Εντοπιστών Πόρων (Uniform Resource Locator - URL) και των Ενιαίων Αναγνωριστικών Πόρων (Uniform Resource Identifier URI). Από το SMTP, το SIP δανείστηκε ένα σχήμα κωδικοποίησης κειμένου και τη χρήση των κεφαλίδων. Για παράδειγμα, το SIP χρησιμοποιεί κεφαλίδες του SMTP όπως τις To, From, Date και Subject. 2.1.1.2 Το SIP στο δίκτυο Όπως ήδη ειπώθηκε το SIP είναι πρωτόκολλο ελέγχου επιπέδου εφαρμογής που μπορεί να εγκαταστήσει, να τροποποιήσει και να τερματίσει πολυμεσικές συνόδους, π.χ. τηλεφωνικές κλήσεις μέσω internet. Το SIP προσφέρει επίσης τη δυνατότητα συμμετοχής επιπλέον χρηστών σε μια ήδη υπάρχουσα κλήση, π.χ. συνόδους multicast. Ένα ακόμα χαρακτηριστικό είναι η τροποποίηση των παραμέτρων της επικοινωνίας και η προσθήκη ή αφαίρεση πολυμέσων [12]. Όπως ορίζεται στο RFC 3261, το SIP προσφέρει τέσσερις βασικές λειτουργίες [13]: Εντοπισμός χρήστη: Η λειτουργία αυτή είναι υπεύθυνη για τη μετάφραση του ονόματος του χρήστη στην τρέχουσα διεύθυνση δικτύου. Για παράδειγμα, η μετάφραση μιας διεύθυνσης παρόμοιας με αυτές που χρησιμοποιούνται στο e-mail, σε μια IP διεύθυνση. Η συγκεκριμένη λειτουργία περιλαμβάνει και κάποια χαρακτηριστικά μεταφερσιμότητας, που βοηθούν στον εντοπισμό της διεύθυνσης του χρήστη κατά τη διάρκεια της μετακίνησής του σε διαφορετικές τοποθεσίες του SIP δικτύου. Για παράδειγμα, όταν ο χρήστης μετακινείται σε διαφορετικό υποδίκτυο, το SIP URI (IP διεύθυνση) θα πρέπει να αλλάξει ανάλογα με το υποδίκτυο στο οποίο βρίσκεται. Με τον τρόπο αυτό βρίσκει την πιο πρόσφατη διεύθυνση του χρήστη. Διαπραγμάτευση χαρακτηριστικών: Η εν λόγω λειτουργία διασφαλίζει ότι όλοι οι συμμετέχοντες σε μία συνεδρία θα συμφωνήσουν μεταξύ τους για τα χαρακτηριστικά που θα υποστηρίζονται πριν την εγκατάσταση της. Εφόσον όλοι οι χρήστες δεν έχουν τις ίδιες δυνατότητες, ανταλλάσουν πληροφορίες μέχρις ότου να επιτευχθεί συμφωνία μεταξύ τους. Διαχείριση κλήσεων: Η ευθύνη για τη διαχείριση των συμμετεχόντων σε μια σύνοδο ελέγχετε με την παρούσα λειτουργία. Αυτό περιλαμβάνει την προσθήκη, την αφαίρεση, την μεταφορά των συμμετεχόντων καθώς και την ενεργοποίηση της λειτουργίας αναμονής. Για παράδειγμα, επιτρέπει σε ένα νέο χρήστη να λαμβάνει την ροή των δεδομένων βίντεο κατά τη διάρκεια μιας τηλεδιάσκεψης. 20

Τροποποίηση χαρακτηριστικών: Πρόκειται για το κομμάτι που είναι επιφορτισμένο με την ευθύνη της αλλαγής των παραμέτρων μιας συνόδου κατά τη διάρκεια της διεξαγωγής της. Για παράδειγμα, η πρόσθεση ενός καναλιού εικόνας βίντεο σε μια σύνοδο που καταλαμβάνει μόνο ένα κανάλι ήχου. Χρήστης 1 Χρήστης 2 SIP SIP TCP ή UDP TCP ή UDP IP IP Χαμηλότερα Επίπεδα Χαμηλότερα Επίπεδα Internet Σχήμα 2-2: Η θέση του SIP στο δίκτυο 2.1.1.2.1 Θέση στα πρωτόκολλα δικτύου Το SIP μπορεί να χρησιμοποιήσει είτε UDP είτε TCP για τη μεταφορά των δεδομένων. Όταν γίνεται αποστολή δεδομένων με TCP ή UDP, πολλαπλές SIP συναλλαγές μπορούν να μεταφερθούν από μια μοναδική σύνδεση TCP ή από τα πλαίσια UDP αντίστοιχα. Να σημειωθεί ότι τα πλαίσια UDP, συμπεριλαμβανομένων και των επικεφαλίδων, δεν μπορεί να είναι μεγαλύτερα από τη μέγιστη μονάδα μεταφοράς (MTU Maximum Transfer Unit) [14]. Από τις προδιαγραφές του RFC 2543, η MTU είναι συνήθως 1500 bytes, αλλά αυτή δεν είναι η μοναδική επιλογή. Το Σχήμα 2-2 απεικονίζει τη θέση του SIP σε σχέση με τα επίπεδα του internet και την επικοινωνία μεταξύ δύο χρηστών που χρησιμοποιούν SIP. Το SIP λοιπόν ως πρωτόκολλο 21

επιπέδου εφαρμογής τοποθετείται στην κορυφή του OSI (Open Systems Interconnection Διασύνδεση Ανοιχτών Συστημάτων). 2.1.1.3 Στοιχεία του Δικτύου SIP Σε αυτή την ενότητα, παρουσιάζονται οι ορισμοί των στοιχείων που αποτελούν ένα SIP δίκτυο. Τα βασικά στοιχεία είναι οι user agent, οι proxy, οι registrars και οι redirect servers. Ενώ η απλούστερη επικοινωνία μπορεί να εγκατασταθεί μεταξύ δύο user agents, τα τυπικά δίκτυα SIP περιλαμβάνουν πάντοτε περισσότερες δικτυακές οντότητες SIP. Σχήμα 2-3: Τα βασικά στοιχεία μιας αρχιτεκτονικής SIP Θα πρέπει να σημειωθεί ότι τα δικτυακά στοιχεία SIP που αναφέρονται παραπάνω είναι συχνά λογικές οντότητες. Αυτό σημαίνει ότι διαφορετικά στοιχεία μπορούν να υλοποιηθούν μαζί, για παράδειγμα, ένας υπολογιστής θα μπορούσε να λειτουργεί ταυτόχρονα ως proxy server και ως registrar. Σε έναν σωστό σχεδιασμό, η αλληλεπίδραση των στοιχείων SIP μπορεί να μειώσει το κόστος της υλοποίησης και να αυξήσει την ταχύτητα επεξεργασίας μεταξύ των στοιχείων του δικτύου. Στο Σχήμα 2-3, ο proxy server δεν χρειάζεται να επικοινωνεί με άλλες μηχανές όταν χρειάζεται πληροφορίες από τον registar. 2.1.1.3.1 SIP User Agent Κάθε τερματική συσκευή που χρησιμοποιεί το πρωτόκολλο SIP ονομάζεται SIP user agent (UA) [14] [15]. Ένας από τους σκοπούς του SIP είναι η εγκατάσταση συνόδων μεταξύ των UAs. Όπως υπονοεί και το όνομά του, ένας UA, λαμβάνει οδηγίες ή εισόδους από τον χρήστη και δρα σαν ένας πράκτορας για λογαριασμό του με σκοπό την εγκατάσταση και τον τερματισμό πολυμεσικών συνόδων με άλλους UAs. Στις περισσότερες περιπτώσεις, ο χρήστης θα είναι ένας άνθρωπος, αλλά ο χρήστης θα μπορούσε να είναι και ένα άλλο πρωτόκολλο, όπως στην περίπτωση των πυλών (οι οποίες περιγράφονται στις παρακάτω παραγράφους). Γενικά, ένας UA θα πρέπει να έχει την ικανότητα να εγκαταστήσει μια πολυμεσική σύνοδο με οποιονδήποτε άλλον UA. Ένας UA πρέπει να καταγράφει την κατάσταση των κλήσεων που εκκινεί ή συμμετέχει. Ένα ελάχιστο σύνολο πληροφοριών για την κλήση περιλαμβάνει τις τοπικές και απομακρυσμένες ετικέτες, το Call-ID, την τοπική και την απομακρυσμένη κεφαλίδα CSeq, το route set και 22

οποιαδήποτε πληροφορία κατάστασης για τα πολυμέσα που χρησιμοποιούνται. Οι πληροφορίες αυτές χρησιμοποιούνται για την αποθήκευση των πληροφοριών του διαλόγου και για λόγους αξιοπιστίας. Η αποθήκευση του απομακρυσμένου CSeq είναι απαραίτητη για το διαχωρισμό μεταξύ ενός re-invite και μιας αναμετάδοσης. Το re-invite χρησιμοποιείται για να αλλάξει τις παραμέτρους συνεδρίας μιας υπάρχουσας κλήσης ή μιας κλήσης που βρίσκεται σε αναμονή. Έτσι, χρησιμοποιεί το ίδιο Call-ID, αλλά το CSeq αυξάνεται γιατί είναι ένα νέο αίτημα. Ένα INVITE που αναμεταδίδεται θα περιέχει τα ίδια Call-ID και CSeq, όπως το προηγούμενο. Ακόμα και μετά τον τερματισμό μιας κλήσης, οι πληροφορίες που την αφορούν θα πρέπει να μείνουν αποθηκευμένες από τον UA για τουλάχιστον 32 δευτερόλεπτα σε περίπτωση που υπάρχουν χαμένα μηνύματα κατά τον τερματισμό μιας κλήσης. Οι UA απορρίπτουν χωρίς να ενημερώσουν ένα ACK που προέρχεται από έναν άγνωστο διάλογο. Τα αιτήματα προς ένα άγνωστο URI λαμβάνουν ένα 404 Not Found Response. Ένας UA που λαμβάνει ένα αίτημα για έναν άγνωστο διάλογο απαντάει με ένα 481 Dialog/Transaction Does Not Exist. Οι αποκρίσεις από έναν άγνωστο διάλογο απορρίπτονται παρόμοια, με διαφανή τρόπο. Αυτές οι σιωπηλές απορρίψεις είναι απαραίτητες για λόγους ασφάλειας. Διαφορετικά, ένας κακόβουλος UA θα μπορούσε να λάβει γνώση κάποιων πληροφοριών σχετικών με άλλους UAs αποστέλλοντας πλαστά αιτήματα ή αποκρίσεις. Αν και δεν είναι απαραίτητο κάθε κωδικός απόκρισης που έχει οριστεί να είναι κατανοητός, μία ελάχιστη υλοποίηση πρέπει να είναι σε θέση να μεταφράσει κάθε άγνωστη απόκριση από την κλάση της (πρώτο ψηφίο του αριθμού). Έτσι, για παράδειγμα, αν γίνει λήψη μιας άγνωστης απόκρισης 498 Wrong Phase of the Moon, αυτή θα πρέπει να αντιμετωπιστεί σαν μια τυπική 400 Client Error απόκριση. Ένας UA απαντά σε ένα αίτημα που δεν υποστηρίζεται με μια απάντηση 501 Not Implemented. Ένας UA πρέπει να υποστηρίζει μεταφορά με χρήση UDP αλλά και μεταφορά με TCP για μηνύματα που είναι μεγαλύτερα από 1.000 οκτάδες σε μέγεθος. Ένας UA υποστηρίζει τόσο λειτουργίες πελάτη, όσο και λειτουργίες εξυπηρετητή. Τα δύο αυτά μέρη είναι ο user agent client (UAC) και ο user agent server (UAS) αντίστοιχα. Ο UAC εκκινεί αιτήματα και ο UAS παράγει αποκρίσεις. Κατά τη διάρκεια μιας συνόδου, ένας UA δρα τόσο ως UAC όσο και ως UAS. Για παράδειγμα, στο Σχήμα 2-4, όταν ένας UA παραλαμβάνει ένα αίτημα και αποστέλλει μία απάντηση δρα ως UAS, ενώ όταν ένας UA στέλνει ένα αίτημα και παραλαμβάνει την απόκριση δρα ως UAC. 23

UAC Αίτημα Απόκριση Σύνοδος UAS Σχήμα 2-3: Το απλούστερο μοντέλο επικοινωνίας μεταξύ δύο UA Ένας SIP UA θα πρέπει επίσης να υποστηρίζει το πρωτόκολλο SDP για την περιγραφή των πολυμέσων. Σε αυτή την περίπτωση μπορούν να χρησιμοποιηθούν και άλλοι τύποι πρωτοκόλλων περιγραφής πολυμέσων, αλλά η υποστήριξη του SDP είναι υποχρεωτική. Ο UA πρέπει να μπορεί να καταλάβει κάθε επέκταση που περιλαμβάνεται στην κεφαλίδα Require ενός αιτήματος. Έχει επίσης τη δυνατότητα να αγνοήσει άγνωστες κεφαλίδες. Οι UA πρέπει να ανακοινώνουν τα χαρακτηριστικά που υποστηρίζουν σε κάθε αίτημα που αποστέλλουν. Αυτό επιτρέπει στους άλλους UAs να λαμβάνουν γνώση αυτών χωρίς να χρειάζεται να υποβάλουν κάποιο ιδιαίτερο ερώτημα. Για παράδειγμα οι μέθοδοι που υποστηρίζει ένας UA θα πρέπει να απαριθμούνται σε μια κεφαλίδα Allow. Οι επεκτάσεις SIP θα πρέπει να απαριθμούνται σε μια κεφαλίδα Supported. Οι αποδεκτοί τύποι για το σώμα του μηνύματος θα πρέπει να απαριθμούνται σε μια κεφαλίδα Accept. 2.1.1.3.2 Presence Agent Ο presence agent (PA) [16] είναι μια συσκευή SIP που έχει τη δυνατότητα να λαμβάνει αιτήματα για συνδρομή και να παράγει ειδοποιήσεις κατάστασης, όπως ορίζονται στις προδιαγραφές για τα συμβάντα SIP [9]. Ένας PA υποστηρίζει το πακέτο συμβάντων παρουσίας [8], αποκρίνεται σε αιτήματα τύπου REQUEST και αποστέλλει αιτήματα NOTIFY. Στo Σχήμα 2-5 απεικονίζεται η παραπάνω επικοινωνία. SUBSCRIBE User Agent NOTIFY Presence Agent Σχήμα 2-4: Το απλούστερο μοντέλο επικοινωνίας μεταξύ ενός UA και ενός PA 24

Ένας PA μπορεί να συλλέξει πληροφορίες για την παρουσία μιας σειράς συσκευών. Οι πληροφορίες παρουσίας μπορεί να προέρχονται από μια συσκευή SIP που κάνει register, μια συσκευή SIP που δημοσιοποιεί πληροφορίες παρουσίας [17], ή από πολλές άλλες πηγές που δεν σχετίζονται με το SIP. O presence server είναι ένας εξυπηρετητής που μερικές φορές δρα ως UA και παρέχει πληροφορίες παρουσίας ενώ άλλες στιγμές δρα ως proxy, προωθώντας αιτήματα SUBSCRIBE σε άλλους UA. Ο PA πρώτα αυθεντικοποιεί ένα αίτημα συνδρομής. Αν η αυθεντικοποίηση είναι επιτυχής, εγκαθιστά έναν διάλογο και αποστέλλει στους χρήστες τις σχετικές ειδοποιήσεις γι αυτόν τον διάλογο. Η συνδρομή μπορεί να ανανεωθεί λαμβάνοντας νέα αιτήματα SUBSCRIBE. 2.1.1.3.3 Back-to-Back User Agents Ο Back-to-Back User Agent (B2BUA) είναι ένας τύπος συσκευής SIP, ο οποίος λαμβάνει αιτήματα SIP, τα οποία επαναδιατυπώνει και στη συνέχεια αποστέλλει ως νέα αιτήματα. Οι αποκρίσεις σε αυτά τα αιτήματα επαναδιατυπώνονται επίσης και στέλνονται στην αντίθετη κατεύθυνση. Για παράδειγμα, μία συσκευή μπορεί να χρησιμοποιηθεί για να υλοποιηθεί μια υπηρεσία απόκρυψης, με την οποία δύο UAs μπορούν να επικοινωνήσουν χωρίς κανένα από τα δύο μέρη να λάβει γνώση του URI, της IP διεύθυνσης, ή οποιαδήποτε άλλης σχετικής πληροφορίας για το άλλο μέρος. Για να επιτευχθεί αυτό, ένας B2BUA θα επαναδιατύπωνε το αίτημα με καινούριες From, Via, Contact, Call-ID κεφαλίδες, και πληροφορίες πολυμέσων SDP, απομακρύνοντας ταυτόχρονα οποιεσδήποτε άλλες κεφαλίδες που μπορεί να περιέχουν πληροφορίες για τον καλούντα. Η απόκριση που θα επιστραφεί θα περιέχει επίσης αλλαγμένα στοιχεία στην κεφαλίδα Contact και στις πληροφορίες πολυμέσων SDP ώστε να μην αποκαλύπτεται η ταυτότητα του καλούμενου. Οι τροποποιημένες πληροφορίες SDP θα δείχνουν προς τον B2BUA, ο οποίος θα προωθεί τα πακέτα δεομένων RTP από τον καλούντα προς τον καλούμενο και αντίστροφα. Με αυτόν τον τρόπο κανένα τερματικό δε θα λάβει κάποιες αναγνωριστικές πληροφορίες για το άλλο μέρος κατά τη διάρκεια της εγκατάστασης της συνόδου (φυσικά το μέλος που κάνει την κλήση πρέπει να γνωρίζει το URI του καλούμενου έτσι ώστε να γίνει δυνατή η κλήση). Το Σχήμα 2-6 απεικονίζει τη διαδικασία που περιγράφηκε παραπάνω. 25

Αίτημα User Agent 1 Αίτημα 2 Back Απάντηση Απάντηση 2 To Back Σύνοδος User Σύνοδος A Σχήμα 2-5: Υλοποίηση υπηρεσίας κλήσης με απόκρυψη User Agent 2 Μερικές φορές οι B2BUAs χρησιμοποιούνται για να υλοποιήσουν άλλες υπηρεσίες SIP. Παρόλα αυτά, η βασική τους ιδιότητα είναι ότι διακόπτουν την από άκρη σε άκρη φύση ενός διαδικτυακού πρωτοκόλλου όπως το SIP. Επίσης ένα σημαντικό στοιχείο είναι ότι η χρήση των B2BUA μειώνει την αξιοπιστία των συνόδων SIP στο διαδίκτυο, αυξάνοντας την καθυστέρηση και την πιθανότητα απώλειας πακέτων, γεγονός που μπορεί να μειώσει την ποιότητα μιας συνόδου. Αυτές οι επιδράσεις μπορούν να μειωθούν με την κατάλληλη γεωγραφική κατανομή των B2BUA. Ωστόσο το πρόβλημα της επιλογής του βέλτιστου για μια συγκεκριμένη σύνοδο είναι πολύ δύσκολο στην επίλυση, αφού οι IP διευθύνσεις της πηγής και του προορισμού των πολυμέσων δεν είναι γνωστές μέχρι να εγκατασταθεί πραγματικά η σύνοδος (με ένα 200 ΟΚ). Η πιο κοινή μορφή των B2BUA στο SIP δίκτυο αφορούν τις πύλες επιπέδου εφαρμογής. Μερικά αναχώματα ασφαλείας διαθέτουν ενσωματωμένο λειτουργικό πύλης επιπέδου εφαρμογής, το οποίο δίνει τη δυνατότητα σε αυτά να επιτρέπουν την διέλευση των πακέτων SIP και πολυμέσων, διατηρώντας ταυτόχρονα ένα υψηλό επίπεδο ασφάλειας. 2.1.1.3.4 Πύλες SIP (SIP Gateway) Η πύλη SIP είναι μία εφαρμογή που διασυνδέει ένα δίκτυο SIP με κάποιο άλλο που χρησιμοποιεί ένα διαφορετικό πρωτόκολλο σηματοδοσίας. Από την άποψη του πρωτοκόλλου SIP, μια πύλη είναι απλώς ένας ειδικός τύπος UA, όπου ο UA δρα εκ μέρους ενός άλλου πρωτοκόλλου αντί ενός ανθρώπου. Μια πύλη τερματίζει τη διαδρομή σηματοδοσίας και μπορεί επίσης να τερματίσει και τη διαδρομή των πολυμέσων, αν και αυτός δεν είναι πάντα ο κανόνας. Για παράδειγμα, μια πύλη διασύνδεσης από το SIP στο H.323 τερματίζει τη διαδρομή σηματοδοσίας SIP και μετατρέπει τη σηματοδοσία στο H.323.Σημειώνεται ότι ο SIP UA και το τερματικό Η323 μπορούν να ανταλλάξουν άμεσα πληροφορίες πολυμέσων RTP χωρίς η πύλη να παρεμβάλλεται ανάμεσά τους. 26

Μια πύλη διασύνδεσης από το SIP στο PSTN τερματίζει τόσο τη διαδρομή σηματοδοσίας όσο και τη διαδρομή πολυμέσων. Το SIP μπορεί να μεταφραστεί, ή να αλληλεπιδράσει με τα πρωτόκολλα του PSTN όπως το ψηφιακό δίκτυο ολοκληρωμένων υπηρεσιών (Integrated Services Digital Network - ISDN), το ISDN User Part (ISUP), και άλλα πρωτόκολλα σηματοδοσίας που αφορούν δίκτυα μεταγωγής κυκλωμάτων. Μια πύλη PSTN μετατρέπει επίσης τη ροή δεδομένων RTP του δικτύου IP ώστε να είναι συμβατή με μια συνηθισμένη τηλεφωνική γραμμή. Η μετατροπή της σηματοδοσίας και της διαδρομής δεδομένων επιτρέπει τις κλήσεις από και προς το PSTN χρησιμοποιώντας το SIP. Το Σχήμα 2-7 απεικονίζει ένα δίκτυο SIP που συνδέεται μέσω πυλών με το PSTN και με ένα δίκτυο H.323. Πρέπει να σημειωθεί ότι υπάρχει εργασία εν εξελίξει για την προτυποποίηση της λειτουργίας αλληλεπίδρασης SIP/H.323. Στο Σχήμα 2-7 τα δίκτυα SIP, PSTN και H.323 αναπαριστώνται ως σύννεφα, τα οποία αποκρύπτουν τις παραπέρα λεπτομέρειες. Στο δίκτυο SIP υπάρχουν συνδεδεμένα SIP τηλέφωνα, προσωπικοί υπολογιστές που χρησιμοποιούν το SIP, και εταιρικές πύλες SIP με τηλέφωνα συνδεδεμένα σε αυτές. Τα δίκτυα ενώνονται μεταξύ τους με πύλες. Στο δίκτυο H.323 υπάρχουν συνδεδεμένα τερματικά Η.323 και υπολογιστές που χρησιμοποιούν το πρωτόκολλο H.323. Το δίκτυο PSTN συνδέεται με αναλογικές τηλεφωνικές συσκευές, ψηφιακά ISDN τηλέφωνα και εταιρικά PBX (Private Branch Exchange). Τα PBX συνδέονται στο PSTN με διαμοιραζόμενες ζεύξεις και παρέχουν διεπαφές γραμμών για αναλογικά ή ψηφιακά τηλέφωνα. Μερικές φορές οι πύλες διαχωρίζονται σε μια πύλη πολυμέσων (media gateway MG) και έναν ελεγκτή πολυμέσων πύλης (media gateway controller MGC). Ο MGC αποκαλείται μερικές φορές πράκτορας κλήσεων γιατί διαχειρίζεται τα πρωτόκολλα ελέγχου κλήσεων (σηματοδοσία), ενώ ο MG διαχειρίζεται την πολυμεσική σύνδεση. Αυτός ο διαχωρισμός είναι διαφανής για το SIP και τα πρωτόκολλα που χρησιμοποιούνται για τον σκοπό αυτό δεν θα περιγραφούν εδώ. Μια άλλη διαφορά μεταξύ ενός UA και μιας πύλης είναι ο αριθμός των χρηστών που μπορούν να υποστηρίξουν. Ενώ ένας UA τυπικά υποστηρίζει έναν μόνο χρήστη (αν και μπορεί να υπάρχουν πολλαπλές γραμμές), μια πύλη μπορεί να υποστηρίξει εκατοντάδες ή χιλιάδες χρηστών. Μια πύλη PSTN μπορεί να υποστηρίξει έναν μεγάλο εταιρικό πελάτη, ή μια ολόκληρη γεωγραφική περιοχή. Ως αποτέλεσμα μια πύλη και ένας UA δεν κάνoυν REGISTER με τον ίδιο τρόπο για κάθε χρήστη που υποστηρίζουν. Αντίθετα ένα πρωτόκολλο (όχι το SIP) μπορεί να χρησιμοποιηθεί για να ενημερώσει τους proxy για τις πύλες και να βοηθήσει στη δρομολόγηση των μηνυμάτων. Ένα πρωτόκολλο που έχει προταθεί γι αυτόν τον λόγω είναι το πρωτόκολλο Telephony Routing over IP (TRIP) [17], το οποίο επιτρέπει να δημιουργηθεί ένας πίνακας δρομολόγησης για ένα συγκεκριμένο domain. Ένα άλλο πρωτόκολλο που ονομάζεται Telephony Gateway REgistration Protocol (TGREP) [18], έχει αναπτυχθεί για να επιτρέπει σε μια πύλη να κάνει register σε έναν proxy server του ίδιου domain. 27

Αναλογικό Εταιρικό Τηλέφωνο PBX Εταιρική Πύλη SIP PSTN Αναλογικά Τηλέφωνα Αναλογικά Τηλέφωνα Δίκτυο SIP Πύλη SIP/PSTN Τηλέφωνο ISDN Πύλη SIP/Η.323 Δίκτυο Η.323 Τερματικό Η/Υ που H.323 χρησιμοποιεί το SIP Τερματικό SIP Σχήμα 2-6: Δίκτυο SIP με πύλες Η/Υ που χρησιμοποιεί το Η323 2.1.1.3.5 Εξυπηρετητές SIP (SIP Server) Οι εξυπηρετητές SIP δέχονται αιτήματα SIP και απαντούν σε αυτά. Οι εξυπηρετητές SIP δεν πρέπει να συγχέονται με τους UAS ή με τη φύση του πελάτη - εξυπηρετητή του πρωτοκόλλου, η οποία περιγράφει τη διαδικασία σε όρους πελατών (αποστολέων αιτημάτων) και εξυπηρετητών (αποστολέων απαντήσεων στα αιτήματα). Ένας εξυπηρετητής SIP είναι ένας διαφορετικός τύπος οντότητας. Οι τύποι των εξυπηρετητών SIP που περιγράφονται σε αυτήν την παράγραφο είναι λογικές οντότητες. Οι πραγματικές υλοποιήσεις των εξυπηρετητών SIP μπορεί να περιέχουν έναν αριθμό διαφορετικών τύπων εξυπηρετητών ή μπορούν να λειτουργούν ως ένας διαφορετικός τύπος εξυπηρετητή κάτω από διαφορετικές συνθήκες. Λόγω του ότι οι εξυπηρετητές SIP παρέχουν υπηρεσίες και χαρακτηριστικά στους UA, πρέπει να υποστηρίζουν τόσο UDP όσο και TLS και TCP για τη μεταφορά των πακέτων. Το Σχήμα 2-8 απεικονίζει την αλληλεπίδραση μεταξύ UA, εξυπηρετητών και μιας υπηρεσίας εντοπισμού. Πρέπει να σημειωθεί ότι στη γενική 28

περίπτωση το πρωτόκολλο που χρησιμοποιείται μεταξύ των εξυπηρετητών και της υπηρεσίας εντοπισμού δεν είναι το SIP. Location Service ή Βάση SIP Redirect Server ή Registration SIP SIP User Agent Proxy Server User Agent RTP media Σχήμα 2-7: Αλληλεπίδραση μεταξύ UA, εξυπηρετητών και location service 2.1.1.3.5.1 Proxy Server INVITE Exchanging Forwarding UAC Response Proxy A Proxy B Response UAS Σχήμα 2-8: Δίκτυο SIP που χρησιμοποιεί proxy server Η γενική αρχή λειτουργίας ενός δικτύου που χρησιμοποιεί proxy servers απεικονίζεται στο Σχήμα 2-9. Ένας SIP proxy server λαμβάνει ένα αίτημα SIP από έναν UA ή από έναν άλλο proxy 29

και δρα εκ μέρους του UA προωθώντας το ή απαντώντας σε αυτό. Ο proxy δεν είναι B2BUA αφού του επιτρέπεται να μετατρέπει τα αιτήματα βάσει αυστηρών κανόνων που ορίζονται στο RFC 3261. Αυτοί οι κανόνες διατηρούν την από άκρη σε άκρη διαφάνεια της σηματοδοσίας SIP ενώ ταυτόχρονα επιτρέπουν στον proxy server να εκτελεί πολύτιμες υπηρεσίες και λειτουργίες για τον UA. Alice Proxy Server Bob INVITE 180 Ringing 200 OK INVITE 180 Ringing 200 OK ACK Media session BYE ACK Σχήμα 2-9: Παράδειγμα κλήσης SIP με proxy server Ένας proxy server τυπικά έχει πρόσβαση σε μια βάση δεδομένων ή μια υπηρεσία εντοπισμού, η οποία τον βοηθάει (καθορίζοντας τον επόμενο κόμβο) στην επεξεργασία του αιτήματος. Η διεπαφή μεταξύ του proxy και της υπηρεσίας εντοπισμού δεν καθορίζεται από το πρωτόκολλο SIP. Ένας proxy μπορεί να χρησιμοποιήσει ποικίλους τύπους βάσεων δεδομένων για να βοηθηθεί στην επεξεργασία του αιτήματος. Οι βάσεις δεδομένων μπορούν να περιέχουν SIP εγγραφές, πληροφορίες παρουσίας, ή οποιοδήποτε άλλο είδος πληροφορίας που αφορά την τοποθεσία κάποιου χρήστη. Το παράδειγμα του Σχήματος 2-10 παρουσιάζει τον proxy server σαν ένα 30

διαχειριστή της ανταλλαγής SIP μηνυμάτων, ο οποίος παρέχει υπηρεσίες τοποθεσίας στον καλούντα. Ο proxy δεν είναι ανάγκη να καταλαβαίνει ένα αίτημα SIP ώστε να το προωθήσει κάθε άγνωστος τύπος αιτήματος θεωρείται ότι χρησιμοποιεί το non-invite μοντέλο συναλλαγών. Επίσης, ο proxy δεν πρέπει να αλλάζει την σειρά των κεφαλίδων ή γενικά να τροποποιεί ή να διαγράφει κεφαλίδες. DNS server Location server DN Outbound proxy server SIP Inbound proxy server SIP SIP SIP Media (RTP) Calling User Σχήμα 2-10: Τραπέζιο SIP Called User Ένας proxy server διαφέρει από έναν UA ή μια πύλη στα παρακάτω τρία στοιχεία κλειδιά: Δεν εκδίδει αιτήματα μόνο απαντά σε αιτήματα που προέρχονται από κάποιον UA. (Το αίτημα CANCEL αποτελεί μια εξαίρεση σε αυτόν τον κανόνα.) Δεν διαθέτει δυνατότητες πολυμέσων. 31