Καλό απόγευμα!

Σύνολο: το σύστημα παρακολούθησης είναι ένα συγκρότημα που συνδέεται σε μη παρεμβατική λειτουργία με τον ν-ο αριθμό συνδέσεων Ethernet των 10 gigabit, που «παρακολουθεί» συνεχώς τη μετάδοση όλων των ροών βίντεο RTP που υπάρχουν στην κυκλοφορία και λαμβάνει μετρήσεις σε ένα ορισμένο χρονικό διάστημα για να τα αποθηκεύσετε αργότερα στη βάση. Σύμφωνα με τα δεδομένα από τη βάση δεδομένων, οι αναφορές δημιουργούνται τακτικά για όλες τις κάμερες.

Και τι είναι τόσο δύσκολο;

Κατά τη διαδικασία εξεύρεσης λύσης, επιλύθηκαν αμέσως διάφορα προβλήματα:

  • Μη παρεμβατική σύνδεση. Το σύστημα παρακολούθησης συνδέεται με κανάλια που ήδη λειτουργούν, στα οποία οι περισσότερες συνδέσεις (μέσω RTSP) έχουν ήδη δημιουργηθεί, ο διακομιστής και ο πελάτης γνωρίζουν ήδη σε ποιες θύρες πραγματοποιείται η ανταλλαγή, αλλά δεν το γνωρίζουμε εκ των προτέρων. Υπάρχει μια πολύ γνωστή θύρα μόνο για το πρωτόκολλο RTSP, αλλά οι ροές UDP μπορούν να περάσουν από αυθαίρετες θύρες (εξάλλου, αποδείχθηκε ότι συχνά παραβιάζουν την απαίτηση SHOULD ζυγής/μονής θύρας, βλέπε rfc3550). Πώς να προσδιορίσετε ότι αυτό ή εκείνο το πακέτο από κάποια διεύθυνση IP ανήκει σε μια ροή βίντεο; Για παράδειγμα, το πρωτόκολλο BitTorrent συμπεριφέρεται με παρόμοιο τρόπο - στο στάδιο της δημιουργίας μιας σύνδεσης, ο πελάτης και ο διακομιστής συμφωνούν σχετικά με τις θύρες και, στη συνέχεια, όλη η κίνηση UDP μοιάζει με "μόνο ένα bit stream".
  • Οι συνδεδεμένοι σύνδεσμοι μπορούν να περιέχουν περισσότερα από ροές βίντεο. Μπορεί να υπάρχουν HTTP και BitTorrent και SSH και οποιαδήποτε άλλα πρωτόκολλα χρησιμοποιούμε σήμερα. Επομένως, το σύστημα πρέπει να αναγνωρίζει σωστά τις ροές βίντεο για να τις διαχωρίζει από την υπόλοιπη κίνηση. Πώς να το κάνετε αυτό σε πραγματικό χρόνο με 8 συνδέσμους δέκα gigabit; Φυσικά, συνήθως δεν γεμίζουν στο 100%, επομένως η συνολική κίνηση δεν θα είναι 80 gigabit / s, αλλά περίπου 50-60, αλλά αυτό δεν είναι τόσο λίγο.
  • Επεκτασιμότητα. Όπου υπάρχουν ήδη πολλές ροές βίντεο, μπορεί να υπάρχουν ακόμη περισσότερες, καθώς η βιντεοπαρακολούθηση έχει αποδειχθεί από καιρό ως αποτελεσματικό εργαλείο. Αυτό υποδηλώνει ότι πρέπει να υπάρχει ένα περιθώριο για την απόδοση και ένα απόθεμα για συνδέσμους.

Ψάχνετε για την κατάλληλη λύση...

Φυσικά, προσπαθήσαμε να αξιοποιήσουμε στο έπακρο τη δική μας εμπειρία. Μέχρι τη στιγμή που πάρθηκε η απόφαση, είχαμε ήδη μια εφαρμογή επεξεργασίας πακέτων ethernet στη συσκευή Bercut-MX που τροφοδοτείται με FPGA (πιο απλά - MX). Με τη βοήθεια του Bercut-MX, μπορέσαμε να πάρουμε τα απαραίτητα πεδία για ανάλυση από τις κεφαλίδες των πακέτων Ethernet. Δυστυχώς, δεν είχαμε εμπειρία στην επεξεργασία ενός τέτοιου όγκου επισκεψιμότητας χρησιμοποιώντας "κανονικούς" διακομιστές, έτσι εξέτασαν μια τέτοια λύση με κάποια ανησυχία ...

Φαίνεται ότι έμεινε μόνο η εφαρμογή της μεθόδου σε πακέτα RTP και θα είχαμε το χρυσό κλειδί στην τσέπη μας, αλλά το MX μπορεί να επεξεργαστεί μόνο την κίνηση, δεν έχει τη δυνατότητα εγγραφής και αποθήκευσης στατιστικών. Δεν υπάρχει αρκετή μνήμη στο FPGA για την αποθήκευση των συνδέσεων που βρέθηκαν (συνδυασμοί IP-IP-port-port), επειδή σε έναν σύνδεσμο 2x10 gigabit που εισέρχεται στην είσοδο μπορεί να υπάρχουν περίπου 15 χιλιάδες ροές βίντεο και για καθεμία πρέπει να " θυμηθείτε» τον αριθμό των ληφθέντων πακέτων , τον αριθμό των χαμένων πακέτων και ούτω καθεξής ... Επιπλέον, η αναζήτηση με τέτοια ταχύτητα και με τέτοιο όγκο δεδομένων, υπόκειται σε επεξεργασία χωρίς απώλειες, γίνεται μια μη τετριμμένη εργασία.

Για να βρούμε μια λύση, έπρεπε να «σκάψουμε βαθύτερα» και να καταλάβουμε ποιους αλγόριθμους θα χρησιμοποιήσουμε για τη μέτρηση της ποιότητας και τον εντοπισμό ροών βίντεο.

Τι μπορεί να μετρηθεί από τα πεδία ενός πακέτου RTP;

Από την περιγραφή φαίνεται ότι από την άποψη των μετρήσεων ποιότητας στο πακέτο RTP, μας ενδιαφέρουν τα ακόλουθα πεδία:

  • αριθμός ακολουθίας - μετρητής 16-bit που αυξάνεται με κάθε πακέτο που αποστέλλεται.
  • timestamp - timestamp, για το h.264 το μέγεθος του δείγματος είναι 1/90000 s (δηλαδή αντιστοιχεί σε συχνότητα 90 kHz).
  • Bit δείκτη Στο rfc3550, περιγράφεται γενικά ότι αυτό το bit προορίζεται για τον προσδιορισμό «σημαντικών» συμβάντων και στην πραγματικότητα, οι κάμερες σηματοδοτούν τις περισσότερες φορές την αρχή ενός καρέ βίντεο και εξειδικευμένα πακέτα με πληροφορίες SPS / PPS με αυτό το bit.

Είναι προφανές ότι ο αριθμός ακολουθίας σας επιτρέπει να ορίσετε τις ακόλουθες παραμέτρους ροής:

  • απώλεια πακέτων (απώλεια πλαισίου).
  • επαναποστολή του πακέτου (διπλότυπο).
  • αλλαγή της σειράς άφιξης (αναπαραγγελία).
  • επαναφόρτωση της κάμερας, με μεγάλο «κενό» στη σειρά.

Η χρονική σήμανση σάς επιτρέπει να μετράτε:

  • παραλλαγή καθυστέρησης (ονομάζεται επίσης jitter). Σε αυτήν την περίπτωση, ένας μετρητής 90 kHz θα πρέπει να λειτουργεί στην πλευρά λήψης.
  • κατ 'αρχήν, η καθυστέρηση στη διέλευση του πακέτου. Αλλά για αυτό πρέπει να συγχρονίσετε την ώρα της κάμερας με τη χρονική σήμανση και αυτό είναι δυνατό εάν η κάμερα μεταδίδει αναφορές αποστολέων (RTCP SR), κάτι που γενικά δεν είναι αλήθεια, επειδή Στην πραγματική ζωή, πολλές κάμερες αγνοούν το μήνυμα RTCP SR (περίπου οι μισές από τις κάμερες με τις οποίες είχαμε την ευκαιρία να εργαστούμε).

Λοιπόν, το M-bit σάς επιτρέπει να μετράτε τον ρυθμό καρέ. Είναι αλήθεια ότι τα πλαίσια SPS/PPS του πρωτοκόλλου h.264 εισάγουν ένα σφάλμα, επειδή δεν είναι καρέ βίντεο. Αλλά μπορεί να ισοπεδωθεί χρησιμοποιώντας πληροφορίες από την κεφαλίδα της μονάδας NAL, η οποία ακολουθεί πάντα την κεφαλίδα RTP.

Οι λεπτομερείς αλγόριθμοι για τη μέτρηση των παραμέτρων ξεπερνούν το πεδίο εφαρμογής του άρθρου, δεν θα εμβαθύνω σε αυτό. Εάν ενδιαφέρεστε, το rfc3550 έχει ένα παράδειγμα κωδικού υπολογισμού απώλειας και έναν τύπο για τον υπολογισμό του jitter. Το κύριο συμπέρασμα είναι ότι μόνο μερικά πεδία από πακέτα RTP και μονάδες NAL είναι αρκετά για τη μέτρηση των βασικών χαρακτηριστικών ενός ρεύματος μεταφοράς. Και οι υπόλοιπες πληροφορίες δεν εμπλέκονται στις μετρήσεις και μπορούν και πρέπει να απορριφθούν!

Πώς να αναγνωρίσετε τις ροές RTP;

Για να διατηρούνται στατιστικά στοιχεία, οι πληροφορίες που λαμβάνονται από την κεφαλίδα RTP πρέπει να «συνδεθούν» σε ένα συγκεκριμένο αναγνωριστικό κάμερας (ροή βίντεο). Η κάμερα μπορεί να αναγνωριστεί μοναδικά από τις ακόλουθες παραμέτρους:

  • Διευθύνσεις IP πηγής και προορισμού
  • Λιμένες πηγής και προορισμού
  • SSRC. Έχει ιδιαίτερη σημασία όταν μεταδίδονται πολλές ροές από μία IP, π.χ. στην περίπτωση κωδικοποιητή πολλαπλών θυρών.

Είναι ενδιαφέρον ότι στην αρχή κάναμε αναγνώριση κάμερας μόνο από την πηγή IP και το SSRC, βασιζόμενοι στο γεγονός ότι το SSRC θα έπρεπε να είναι τυχαίο, αλλά στην πράξη αποδείχθηκε ότι πολλές κάμερες ρυθμίζουν το SSRC σε μια σταθερή τιμή (ας πούμε, 256). Προφανώς, αυτό οφείλεται στην εξοικονόμηση πόρων. Ως αποτέλεσμα, έπρεπε να προσθέσουμε θύρες στο αναγνωριστικό της κάμερας. Αυτό έλυσε εντελώς το πρόβλημα της μοναδικότητας.

Πώς να διαχωρίσετε τα πακέτα RTP από την άλλη κίνηση;

Το ερώτημα παραμένει: πώς θα καταλάβει η Berkut-MX, έχοντας αποδεχτεί το πακέτο, ότι είναι RTP; Η κεφαλίδα RTP δεν έχει τόσο ρητή αναγνώριση όπως η IP, δεν έχει άθροισμα ελέγχου, μπορεί να μεταδοθεί μέσω UDP με αριθμούς θύρας που επιλέγονται δυναμικά όταν δημιουργηθεί η σύνδεση. Και στην περίπτωσή μας, οι περισσότερες συνδέσεις έχουν δημιουργηθεί εδώ και καιρό και μπορείτε να περιμένετε πολύ καιρό για επανεγκατάσταση.

Για την επίλυση αυτού του προβλήματος, συνιστάται στο rfc3550 (Παράρτημα A.1) να ελέγξετε τα bit έκδοσης RTP - αυτά είναι δύο bit και το πεδίο Τύπος ωφέλιμου φορτίου (PT) - επτά bit, το οποίο στην περίπτωση ενός δυναμικού τύπου παίρνει ένα μικρή εμβέλεια. Έχουμε ανακαλύψει στην πράξη ότι για το σετ καμερών με τις οποίες εργαζόμαστε, το PT ταιριάζει στην περιοχή από 96 έως 100.

Υπάρχει ένας ακόμη παράγοντας - η ισοτιμία του λιμανιού, αλλά όπως έδειξε η πρακτική, δεν τηρείται πάντα, επομένως έπρεπε να εγκαταλειφθεί.

Έτσι, η συμπεριφορά του Berkut-MX είναι η εξής:

  1. λαμβάνουμε ένα πακέτο, το αποσυναρμολογούμε σε πεδία.
  2. εάν η έκδοση είναι 2 και ο τύπος ωφέλιμου φορτίου είναι εντός των δεδομένων ορίων, τότε στέλνουμε τις κεφαλίδες στον διακομιστή.

Προφανώς, με αυτήν την προσέγγιση, υπάρχουν ψευδώς θετικά, γιατί. όχι μόνο τα πακέτα RTP μπορούν να εμπίπτουν σε τόσο απλά κριτήρια. Αλλά είναι σημαντικό για εμάς ότι σίγουρα δεν θα χάσουμε το πακέτο RTP και ο διακομιστής θα φιλτράρει τα «λάθος» πακέτα.

Για να φιλτράρει ψευδείς περιπτώσεις, ο διακομιστής χρησιμοποιεί έναν μηχανισμό που καταγράφει την πηγή κυκλοφορίας βίντεο για πολλά διαδοχικά λαμβανόμενα πακέτα (υπάρχει ένας αριθμός σειράς στο πακέτο!). Εάν πολλά πακέτα ήρθαν με διαδοχικούς αριθμούς, τότε αυτό δεν είναι τυχαίο και αρχίζουμε να εργαζόμαστε με αυτό το ρεύμα. Αυτός ο αλγόριθμος αποδείχθηκε πολύ αξιόπιστος.

Προχωράω…

Συνειδητοποιώντας ότι όλες οι πληροφορίες που έρχονται σε πακέτα δεν είναι απαραίτητες για τη μέτρηση της ποιότητας και την αναγνώριση ροών, αποφασίσαμε να μεταφέρουμε όλη την εργασία υψηλού φορτίου και κρίσιμης σημασίας για τη λήψη και την απομόνωση των πεδίων των πακέτων RTP στο Berkut-MX, δηλαδή σε FPGA. «Βρίσκει» τη ροή βίντεο, αναλύει το πακέτο, αφήνει μόνο τα απαιτούμενα πεδία και το στέλνει σε έναν κανονικό διακομιστή στη σήραγγα UDP. Ο διακομιστής λαμβάνει μετρήσεις για κάθε κάμερα και αποθηκεύει τα αποτελέσματα στη βάση δεδομένων.

Ως αποτέλεσμα, ο διακομιστής δεν λειτουργεί με 50-60 Gigabit / s, αλλά με μέγιστο 5% (αυτή είναι ακριβώς η αναλογία των δεδομένων που αποστέλλονται στο μέσο μέγεθος πακέτου). Δηλαδή, στην είσοδο ολόκληρου του συστήματος 55 Gigabit / s, και μόνο όχι περισσότερα από 3 Gigabit / s φτάνουν στον διακομιστή!

Ως αποτέλεσμα, έχουμε την ακόλουθη αρχιτεκτονική:

Και πήραμε το πρώτο αποτέλεσμα σε αυτήν τη διαμόρφωση δύο εβδομάδες μετά τη ρύθμιση του αρχικού TOR!

Ποιο είναι το τελικό αποτέλεσμα του διακομιστή;

Τι κάνει λοιπόν ο διακομιστής στην αρχιτεκτονική μας; Τα καθήκοντά του:

  • Ακούστε σε μια υποδοχή UDP και διαβάστε πεδία με γεμάτες κεφαλίδες από αυτήν.
  • αναλύστε τα εισερχόμενα πακέτα και εξάγετε τα πεδία κεφαλίδας RTP από εκεί μαζί με τα αναγνωριστικά κάμερας.
  • συσχετίστε τα ληφθέντα πεδία με αυτά που ελήφθησαν προηγουμένως και κατανοήστε εάν τα πακέτα χάθηκαν, εάν τα πακέτα στάλθηκαν επανειλημμένα, εάν άλλαξε η σειρά άφιξης, ποια ήταν η διακύμανση της καθυστέρησης μεταφοράς πακέτων (jitter) κ.λπ.
  • καταγράφει τα δεδομένα μέτρησης στη βάση δεδομένων με αναφορά στον χρόνο·
  • αναλύστε τη βάση και δημιουργήστε αναφορές, στείλτε παγίδες για κρίσιμα συμβάντα (μεγάλη απώλεια πακέτων, απώλεια πακέτων από κάποια κάμερα κ.λπ.).

Παρά το γεγονός ότι η συνολική κίνηση στην είσοδο του διακομιστή είναι περίπου 3 Gigabit / s, ο διακομιστής αντεπεξέρχεται ακόμη και αν δεν χρησιμοποιούμε κανένα DPDK, αλλά απλώς δουλεύουμε μέσω μιας υποδοχής linux (αφού αυξήσουμε το μέγεθος του buffer για την υποδοχή, φυσικά) . Επιπλέον, θα είναι δυνατή η σύνδεση νέων συνδέσμων και MX "s, επειδή το περιθώριο απόδοσης παραμένει.

Αυτό είναι το επάνω μέρος του διακομιστή (αυτό είναι το επάνω μέρος μόνο ενός κοντέινερ lxc, οι αναφορές δημιουργούνται σε άλλο):

Μπορεί να φανεί από αυτό ότι ολόκληρο το φορτίο για τον υπολογισμό των παραμέτρων ποιότητας και τη λογιστική των στατιστικών κατανέμεται ομοιόμορφα σε τέσσερις διαδικασίες. Καταφέραμε να επιτύχουμε μια τέτοια διανομή χρησιμοποιώντας κατακερματισμό στο FPGA: η συνάρτηση κατακερματισμού υπολογίζεται με IP και τα λιγότερο σημαντικά bits του ληφθέντος κατακερματισμού καθορίζουν τον αριθμό της θύρας UDP στην οποία θα μεταβούν τα στατιστικά στοιχεία. Αντίστοιχα, κάθε διεργασία που ακούει στη θύρα της λαμβάνει περίπου την ίδια κίνηση.

αρνητικά και θετικά

Ήρθε η ώρα να καυχηθούμε και να παραδεχθούμε τις ελλείψεις της λύσης.

Θα ξεκινήσω με τα πλεονεκτήματα:

  • καμία απώλεια στη διασταύρωση με συνδέσμους 10G. Εφόσον το FPGA δέχεται όλο το "χτύπημα", μπορούμε να είμαστε σίγουροι ότι κάθε πακέτο θα αναλυθεί.
  • για να παρακολουθήσετε 55.000 κάμερες (ή περισσότερες), απαιτείται μόνο ένας διακομιστής με μία κάρτα 10G. Αυτήν τη στιγμή χρησιμοποιούμε διακομιστές που βασίζονται σε 2x Xeon με 4 πυρήνες των 2400 MHz ο καθένας. Αρκετά με ένα περιθώριο: παράλληλα με τη συλλογή πληροφοριών, δημιουργούνται αναφορές.
  • Η παρακολούθηση 8 "δεκάδων" (συνδέσεις 10G) χωράει μόνο σε 2-3 μονάδες: δεν υπάρχει πάντα πολύς χώρος και ισχύς στο ράφι για το σύστημα παρακολούθησης.
  • όταν συνδέετε συνδέσμους από MX μέσω του διακόπτη, μπορείτε να προσθέσετε νέους συνδέσμους χωρίς να σταματήσετε την παρακολούθηση, επειδή δεν χρειάζεται να εισαγάγετε καμία πλακέτα στον διακομιστή και δεν χρειάζεται να τον απενεργοποιήσετε για αυτό.
  • ο διακομιστής δεν είναι υπερφορτωμένος με δεδομένα, λαμβάνει μόνο ό,τι χρειάζεται.
  • Οι κεφαλίδες από το MX έρχονται σε ένα πακέτο Ethernet jumbo, που σημαίνει ότι ο επεξεργαστής δεν θα πνιγεί από διακοπές (εξάλλου, δεν ξεχνάμε τη συνένωση διακοπής).

Για να είμαστε δίκαιοι, θα εξετάσω τα μειονεκτήματα:

  • Λόγω της έντονης βελτιστοποίησης για μια συγκεκριμένη εργασία, η προσθήκη υποστήριξης για νέα πεδία ή πρωτόκολλα απαιτεί αλλαγές στον κώδικα FPGA. Αυτό οδηγεί σε περισσότερο χρόνο από ό,τι αν κάναμε το ίδιο στον επεξεργαστή. Τόσο στην ανάπτυξη και τη δοκιμή, όσο και κατά την ανάπτυξη.
  • οι πληροφορίες βίντεο δεν αναλύονται καθόλου. Η κάμερα μπορεί να τραβήξει ένα παγάκι που κρέμεται μπροστά της ή να στραφεί με λάθος τρόπο. Αυτό το γεγονός θα περάσει απαρατήρητο. Φυσικά, έχουμε παράσχει τη δυνατότητα εγγραφής βίντεο από την επιλεγμένη κάμερα, αλλά ο χειριστής δεν μπορεί να περάσει και από τις 55.000 κάμερες!
  • ένας διακομιστής και οι συσκευές που τροφοδοτούνται με FPGA είναι πιο ακριβές από έναν ή δύο διακομιστές.)

Περίληψη

Στο τέλος, αποκτήσαμε ένα σύμπλεγμα λογισμικού και υλικού στο οποίο μπορούμε να ελέγξουμε τόσο το τμήμα που αναλύει τα πακέτα στις διεπαφές όσο και το τμήμα που διατηρεί στατιστικά στοιχεία. Ο πλήρης έλεγχος όλων των κόμβων του συστήματος μας έσωσε κυριολεκτικά όταν οι κάμερες άρχισαν να αλλάζουν σε λειτουργία παρεμβολής RTSP/TCP. Επειδή σε αυτήν την περίπτωση, η κεφαλίδα RTP δεν βρίσκεται πλέον στο πακέτο σε σταθερή μετατόπιση: μπορεί να βρίσκεται οπουδήποτε, ακόμη και στο όριο δύο πακέτων (το πρώτο μισό στο ένα, το δεύτερο στο άλλο). Αντίστοιχα, ο αλγόριθμος για την απόκτηση της κεφαλίδας RTP και των πεδίων της έχει υποστεί θεμελιώδεις αλλαγές. Έπρεπε να κάνουμε επανασυναρμολόγηση TCP στον διακομιστή και για τις 50.000 συνδέσεις - εξ ου και το αρκετά υψηλό φορτίο στην κορυφή.

Δεν έχουμε δουλέψει ποτέ ξανά στον τομέα των εφαρμογών υψηλού φορτίου, αλλά καταφέραμε να λύσουμε το πρόβλημα λόγω των δεξιοτήτων μας στο FPGA και αποδείχθηκε αρκετά καλά. Υπήρχε ακόμη και ένα περιθώριο - για παράδειγμα, άλλες 20-30 χιλιάδες ροές μπορούν να συνδεθούν σε ένα σύστημα με 55.000 κάμερες.

Άφησα τον συντονισμό των υποσυστημάτων linux (κατανομή ουρών με διακοπές, αύξηση των buffers λήψης, άμεση κατανομή πυρήνων σε συγκεκριμένες διεργασίες κ.λπ.) εκτός του αντικειμένου του άρθρου, επειδή. αυτό το θέμα έχει ήδη καλυφθεί πολύ καλά.

Έχω περιγράψει μακριά από όλα, έχουν μαζευτεί πολλές τσουγκράνες, οπότε μη διστάσετε να κάνετε ερωτήσεις :)

Ευχαριστώ πολύ όλους όσους διάβασαν μέχρι το τέλος!

Η ραγδαία ανάπτυξη του Διαδικτύου θέτει νέες απαιτήσεις για την ταχύτητα και τον όγκο της μεταφοράς δεδομένων. Και για να ικανοποιηθούν όλα αυτά τα αιτήματα, δεν αρκεί μόνο η αύξηση της χωρητικότητας του δικτύου· χρειάζονται λογικές και αποτελεσματικές μέθοδοι διαχείρισης της κυκλοφορίας και της συμφόρησης των γραμμών μεταφοράς.

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

Το πιο ευρέως χρησιμοποιούμενο πρωτόκολλο επιπέδου μεταφοράς είναι το TCP. Αν και το TCP μπορεί να υποστηρίξει μια μεγάλη ποικιλία κατανεμημένων εφαρμογών, δεν είναι κατάλληλο για εφαρμογές σε πραγματικό χρόνο.

Αυτή η εργασία προορίζεται να επιλυθεί με το νέο πρωτόκολλο μεταφοράς σε πραγματικό χρόνο - RTP(Πρωτόκολλο μεταφοράς σε πραγματικό χρόνο), το οποίο εγγυάται την παράδοση δεδομένων σε έναν ή περισσότερους προορισμούς με καθυστέρηση εντός καθορισμένων ορίων, δηλαδή τα δεδομένα μπορούν να αναπαραχθούν σε πραγματικό χρόνο.

Αρχές κατασκευής του πρωτοκόλλου RTP

Το RTP δεν υποστηρίζει κανένα μηχανισμό παράδοσης πακέτων, εγκυρότητα μετάδοσης ή αξιοπιστία σύνδεσης. Όλες αυτές οι λειτουργίες εκχωρούνται στο πρωτόκολλο μεταφοράς. Το RTP εκτελείται πάνω από το UDP και μπορεί να υποστηρίξει μεταφορά δεδομένων σε πραγματικό χρόνο μεταξύ πολλών συμμετεχόντων σε μια συνεδρία RTP.

Σημείωση

Για κάθε συμμετέχοντα RTP, μια περίοδος σύνδεσης ορίζεται από ένα ζεύγος διευθύνσεων μεταφοράς προορισμού πακέτων (μία διεύθυνση δικτύου - IP και ένα ζεύγος θυρών: RTP και RTCP).

Τα πακέτα RTP περιέχουν τα ακόλουθα πεδία: αναγνωριστικό αποστολέα που υποδεικνύει ποιο μέρος δημιουργεί τα δεδομένα, χρονικές σημάνσεις της δημιουργίας πακέτων έτσι ώστε τα δεδομένα να μπορούν να αναπαραχθούν ξανά από τον παραλήπτη στα σωστά διαστήματα, πληροφορίες εντολής μετάδοσης και πληροφορίες σχετικά με τη φύση του τα περιεχόμενα του πακέτου, όπως ο τύπος κωδικοποίησης βίντεο (MPEG, Indeo, κ.λπ.). Η διαθεσιμότητα τέτοιων πληροφοριών καθιστά δυνατή την εκτίμηση της τιμής της αρχικής καθυστέρησης και του μεγέθους του buffer μετάδοσης.

Σημείωση

Σε ένα τυπικό περιβάλλον πραγματικού χρόνου, ο αποστολέας δημιουργεί πακέτα με σταθερό ρυθμό. Αποστέλλονται σε τακτά χρονικά διαστήματα, διασχίζουν το δίκτυο και λαμβάνονται από έναν δέκτη που αναπαράγει τα δεδομένα σε πραγματικό χρόνο κατά τη λήψη τους. Ωστόσο, λόγω αλλαγών στον λανθάνοντα χρόνο όταν τα πακέτα μεταδίδονται μέσω του δικτύου, μπορεί να φτάνουν σε ακανόνιστα διαστήματα. Για να αντισταθμιστεί αυτό το αποτέλεσμα, τα εισερχόμενα πακέτα αποθηκεύονται στην προσωρινή μνήμη, διατηρούνται για λίγο και στη συνέχεια παρέχονται με σταθερό ρυθμό. λογισμικόΑυτό που παράγει την έξοδο. Επομένως, για να λειτουργήσει το πρωτόκολλο σε πραγματικό χρόνο, είναι απαραίτητο κάθε πακέτο να περιέχει μια χρονική σήμανση - έτσι ώστε ο παραλήπτης να μπορεί να αναπαράγει τα εισερχόμενα δεδομένα με την ίδια ταχύτητα με τον αποστολέα.

Εφόσον το RTP ορίζει (και ρυθμίζει) τη μορφή ωφέλιμου φορτίου των μεταδιδόμενων δεδομένων, η έννοια του συγχρονισμού σχετίζεται άμεσα με αυτό, για το οποίο είναι εν μέρει υπεύθυνος ο μηχανισμός μετάφρασης RTP, ο μείκτης. Με τη λήψη ροών πακέτων RTP από μία ή περισσότερες πηγές, ο μείκτης τις συνδυάζει και στέλνει μια νέα ροή πακέτων RTP σε έναν ή περισσότερους παραλήπτες. Ο μίκτης μπορεί απλά να συνδυάσει τα δεδομένα, καθώς και να αλλάξει τη μορφή του, για παράδειγμα, όταν συνδυάζει πολλές πηγές ήχου. Ας το προσποιηθούμε νέο σύστημαθέλει να συμμετάσχει στη συνεδρία, αλλά η σύνδεσή του με το δίκτυο δεν έχει επαρκή χωρητικότητα για να υποστηρίξει όλες τις ροές RTP, τότε ο μείκτης λαμβάνει όλες αυτές τις ροές, τις συγχωνεύει σε μία και μεταβιβάζει την τελευταία στο νέο μέλος συνεδρίας. Κατά τη λήψη πολλαπλών ροών, ο μείκτης απλώς προσθέτει τις τιμές PCM. Η κεφαλίδα RTP που δημιουργείται από τον μείκτη περιλαμβάνει την ταυτότητα του αποστολέα του οποίου τα δεδομένα υπάρχουν στο πακέτο.

Μια απλούστερη συσκευή αναμετάδοσης δημιουργεί ένα εξερχόμενο πακέτο RTP για κάθε εισερχόμενο πακέτο RTP. Αυτός ο μηχανισμός μπορεί να αλλάξει τη μορφή των δεδομένων στο πακέτο ή να χρησιμοποιήσει ένα διαφορετικό σύνολο πρωτοκόλλων χαμηλού επιπέδου για τη μεταφορά δεδομένων από έναν τομέα σε άλλο. Για παράδειγμα, ένας πιθανός παραλήπτης ενδέχεται να μην μπορεί να επεξεργαστεί το σήμα βίντεο υψηλής ταχύτητας που χρησιμοποιείται από άλλους συμμετέχοντες στη συνεδρία. Ο μεταφραστής μετατρέπει το βίντεο σε μορφή χαμηλότερης ποιότητας που απαιτεί διαφορετική υψηλή ταχύτηταμετάδοση δεδομένων.

Μέθοδοι ελέγχου εργασίας

Το πρωτόκολλο RTP χρησιμοποιείται μόνο για τη μεταφορά δεδομένων χρήστη - συνήθως multicast - σε όλους τους συμμετέχοντες στη συνεδρία. Μαζί με το RTP, λειτουργεί το πρωτόκολλο RTCP (Real-time Transport Control Protocol), το κύριο καθήκον του οποίου είναι να παρέχει έλεγχο στη μετάδοση του RTP. Το RTCP χρησιμοποιεί το ίδιο βασικό πρωτόκολλο μεταφοράς με το RTP (συνήθως UDP), αλλά διαφορετικό αριθμό θύρας.

Το RTCP εκτελεί διάφορες λειτουργίες:

  1. Διασφάλιση και παρακολούθηση της ποιότητας των υπηρεσιών και ανατροφοδότηση σε περίπτωση συμφόρησης. Δεδομένου ότι τα πακέτα RTCP είναι πολλαπλής διανομής, όλοι οι συμμετέχοντες στη συνεδρία μπορούν να αξιολογήσουν πόσο καλά αποδίδουν και λαμβάνουν οι άλλοι συμμετέχοντες. Τα μηνύματα του αποστολέα επιτρέπουν στους παραλήπτες να αξιολογήσουν τον ρυθμό δεδομένων και την ποιότητα μετάδοσης. Τα μηνύματα των παραληπτών περιέχουν πληροφορίες σχετικά με τα προβλήματα που αντιμετωπίζουν, συμπεριλαμβανομένης της απώλειας πακέτων και του υπερβολικού κυματισμού. Η ανατροφοδότηση των παραληπτών είναι επίσης σημαντική για τη διάγνωση σφαλμάτων μετάδοσης. Αναλύοντας τα μηνύματα όλων των συμμετεχόντων στη συνεδρία, ο διαχειριστής του δικτύου μπορεί να προσδιορίσει εάν το πρόβλημα αφορά έναν συμμετέχοντα ή είναι γενικής φύσεως. Εάν η εφαρμογή αποστολής καταλήξει στο συμπέρασμα ότι το πρόβλημα είναι τυπικό για το σύστημα στο σύνολό του, για παράδειγμα, λόγω αστοχίας ενός από τα κανάλια επικοινωνίας, τότε μπορεί να αυξήσει τον βαθμό συμπίεσης δεδομένων λόγω μείωσης της ποιότητας ή αρνηθείτε τη μετάδοση βίντεο εντελώς - αυτό σας επιτρέπει να μεταφέρετε δεδομένα μέσω της χαμηλής χωρητικότητας σύνδεσης.
  2. Αναγνώριση αποστολέα. Τα πακέτα RTCP περιέχουν μια τυπική περιγραφή κειμένου του αποστολέα. Παρέχουν περισσότερες πληροφορίες σχετικά με τον αποστολέα των πακέτων δεδομένων από ένα τυχαία επιλεγμένο αναγνωριστικό πηγής συγχρονισμού. Επιπλέον, βοηθούν τον χρήστη να αναγνωρίσει νήματα που σχετίζονται με διαφορετικές συνεδρίες.
  3. Μέγεθος και κλιμάκωση συνεδρίας. Για τη διασφάλιση της ποιότητας των υπηρεσιών και ανατροφοδότησηγια τον έλεγχο της συμφόρησης, καθώς και για την αναγνώριση του αποστολέα, όλοι οι συμμετέχοντες αποστέλλουν περιοδικά πακέτα RTCP. Η συχνότητα μετάδοσης αυτών των πακέτων μειώνεται όσο αυξάνεται ο αριθμός των συμμετεχόντων. Με μικρό αριθμό συμμετεχόντων, αποστέλλεται ένα πακέτο RTCP κάθε 5 δευτερόλεπτα το πολύ. Το RFC-1889 περιγράφει έναν αλγόριθμο όπου οι συμμετέχοντες περιορίζουν τον ρυθμό των πακέτων RTCP με βάση τον συνολικό αριθμό συμμετεχόντων. Ο στόχος είναι να διατηρηθεί η επισκεψιμότητα RTCP κάτω από το 5% της συνολικής επισκεψιμότητας περιόδου σύνδεσης.

Μορφή κεφαλίδας πρωτοκόλλου RTP

Το RTP είναι ένα πρωτόκολλο προσανατολισμένο στη ροή. Η κεφαλίδα του πακέτου RTP έχει σχεδιαστεί με γνώμονα τις ανάγκες μετάδοσης σε πραγματικό χρόνο. Περιέχει πληροφορίες σχετικά με τη σειρά των πακέτων έτσι ώστε η ροή δεδομένων να συναρμολογείται σωστά στο άκρο λήψης και μια χρονική σήμανση για τη σωστή παρεμβολή πλαισίου κατά την αναπαραγωγή και για το συγχρονισμό πολλαπλών ροών δεδομένων, όπως βίντεο και ήχου.

Κάθε πακέτο RTP έχει μια βασική κεφαλίδα και πιθανώς πρόσθετα πεδία για συγκεκριμένες εφαρμογές.

Η χρήση του TCP ως πρωτοκόλλου μεταφοράς για αυτές τις εφαρμογές δεν είναι δυνατή για διάφορους λόγους:

  1. Αυτό το πρωτόκολλο επιτρέπει τη δημιουργία σύνδεσης μόνο μεταξύ δύο τελικών σημείων και επομένως δεν είναι κατάλληλο για multicasting.
  2. Το TCP προβλέπει την αναμετάδοση χαμένων τμημάτων που φτάνουν όταν η εφαρμογή σε πραγματικό χρόνο δεν τα περιμένει πλέον.
  3. Το TCP δεν διαθέτει βολικό μηχανισμό για τη συσχέτιση πληροφοριών χρονισμού με τμήματα, μια πρόσθετη απαίτηση για εφαρμογές σε πραγματικό χρόνο.

Ένα άλλο ευρέως χρησιμοποιούμενο πρωτόκολλο επιπέδου μεταφοράς, το LJDP δεν έχει ορισμένους από τους περιορισμούς του TCP, αλλά δεν παρέχει κρίσιμες πληροφορίεςσχετικά με το συγχρονισμό.

Ενώ κάθε εφαρμογή σε πραγματικό χρόνο μπορεί να έχει τους δικούς της μηχανισμούς για την υποστήριξη της μετάδοσης σε πραγματικό χρόνο, μοιράζονται πολλά κοινά χαρακτηριστικά που καθιστούν τον ορισμό ενός ενιαίου πρωτοκόλλου πολύ επιθυμητό.

Το νέο πρωτόκολλο μεταφοράς σε πραγματικό χρόνο RTP (Real-time Transport Protocol) έχει σχεδιαστεί για να λύσει αυτό το πρόβλημα, το οποίο εγγυάται την παράδοση δεδομένων σε έναν ή περισσότερους παραλήπτες με καθυστέρηση εντός των καθορισμένων ορίων, δηλαδή τα δεδομένα μπορούν να αναπαραχθούν σε πραγματικό χρόνο .

Στο σχ. 1 παρουσιάζεται σταθερή κεφαλίδα RTP, το οποίο περιέχει έναν αριθμό πεδίων που προσδιορίζουν στοιχεία όπως η μορφή πακέτου, σειριακός αριθμός, πηγές, όρια και τύπος ωφέλιμου φορτίου. Η σταθερή κεφαλίδα μπορεί να ακολουθείται από άλλα πεδία που περιέχουν πρόσθετες πληροφορίες σχετικά με τα δεδομένα.

0 2 3 4 8 16 31

Αναγνωριστικό πηγής συγχρονισμού (SSRC).

Αναγνωριστικά πηγής συνεισφοράς (CSRC).

Ρύζι. 1. Διορθώθηκε η κεφαλίδα RTP.

V(2 bit). πεδίο έκδοσης. Η τρέχουσα έκδοση είναι η δεύτερη.
R(1 bit). Συμπλήρωση πεδίου. Αυτό το πεδίο σηματοδοτεί την παρουσία οκτάδων πλήρωσης στο τέλος του ωφέλιμου φορτίου. Η συμπλήρωση εφαρμόζεται όταν μια εφαρμογή απαιτεί το μέγεθος ωφέλιμου φορτίου να είναι πολλαπλάσιο, για παράδειγμα, των 32 bit. Σε αυτήν την περίπτωση, η τελευταία οκτάδα υποδεικνύει τον αριθμό των οκτάδων πλήρωσης.
Χ(1 bit). Πεδίο επέκτασης κεφαλίδας. Όταν οριστεί αυτό το πεδίο, η κύρια κεφαλίδα ακολουθείται από μια πρόσθετη κεφαλίδα που χρησιμοποιείται σε πειραματικές επεκτάσεις RTP.
SS(4 bit). Το πεδίο για τον αριθμό των αποστολέων. Αυτό το πεδίο περιέχει τον αριθμό των αναγνωριστικών των αποστολέων των οποίων τα δεδομένα βρίσκονται στο πακέτο, με τα ίδια τα αναγνωριστικά να ακολουθούν την κύρια κεφαλίδα.
Μ(1 bit). Πεδίο δείκτη. Η σημασία του bit δείκτη εξαρτάται από τον τύπο ωφέλιμου φορτίου. Το bit δείκτη χρησιμοποιείται συνήθως για να υποδείξει τα όρια της ροής δεδομένων. Στην περίπτωση του βίντεο, ορίζει το τέλος του καρέ. Στην περίπτωση της φωνής, προσδιορίζει την έναρξη της ομιλίας μετά από μια περίοδο σιωπής.
RT(7 bit). Πεδίο τύπου ωφέλιμου φορτίου. Αυτό το πεδίο προσδιορίζει τον τύπο ωφέλιμου φορτίου και τη μορφή δεδομένων, συμπεριλαμβανομένης της συμπίεσης και της κρυπτογράφησης. Σε στατική κατάσταση, ο αποστολέας χρησιμοποιεί μόνο έναν τύπο ωφέλιμου φορτίου ανά περίοδο λειτουργίας, αλλά μπορεί να τον αλλάξει ανάλογα με τις μεταβαλλόμενες συνθήκες, εάν σηματοδοτηθεί από το Πρωτόκολλο Ελέγχου Μεταφοράς σε πραγματικό χρόνο.
αριθμός ακολουθίας(16 bit). Πεδίο αριθμού ακολουθίας. Κάθε πηγή ξεκινά την αρίθμηση πακέτων από έναν αυθαίρετο αριθμό και, στη συνέχεια, αυξάνεται κατά μία με κάθε πακέτο δεδομένων RTP που αποστέλλεται. Αυτό σας επιτρέπει να ανιχνεύσετε την απώλεια πακέτων και να προσδιορίσετε τη σειρά των πακέτων με την ίδια χρονική σήμανση. Πολλά διαδοχικά πακέτα μπορεί να έχουν την ίδια χρονική σήμανση εάν δημιουργούνται λογικά την ίδια στιγμή, όπως πακέτα που ανήκουν στο ίδιο πλαίσιο βίντεο.
Χρονική σήμανση(32 bit). Πεδίο χρονοσήμανσης. Αυτό το πεδίο περιέχει το χρονικό σημείο κατά το οποίο δημιουργήθηκε η πρώτη οκτάδα δεδομένων ωφέλιμου φορτίου. Οι μονάδες στις οποίες καθορίζεται ο χρόνος σε αυτό το πεδίο εξαρτώνται από τον τύπο του ωφέλιμου φορτίου. Η τιμή καθορίζεται από το τοπικό ρολόι του αποστολέα.
Πηγή συγχρονισμού (SSRC) Αναγνωριστικό(32 bit). Πεδίο αναγνωριστικού πηγής συγχρονισμού: Ένας τυχαία δημιουργημένος αριθμός που προσδιορίζει μοναδικά την πηγή σε μια περίοδο λειτουργίας και είναι ανεξάρτητος από τη διεύθυνση δικτύου. Αυτός ο αριθμός παίζει σημαντικό ρόλο στην επεξεργασία του εισερχόμενου τμήματος δεδομένων από μία πηγή.
Αναγνωριστικό πηγής συνεισφοράς (CSRC).(32 bit). Λίστα πεδίων αναγνωριστικού πηγής που "αναμιγνύονται" στην κύρια ροή, για παράδειγμα, χρησιμοποιώντας έναν μείκτη. Ο μείκτης εισάγει μια ολόκληρη λίστα με αναγνωριστικά SSRC των πηγών που συμμετείχαν στην κατασκευή αυτού του πακέτου RTP. Αυτή η λίστα ονομάζεται CSRC. Αριθμός στοιχείων στη λίστα: από 0 έως 15. Εάν ο αριθμός των συμμετεχόντων είναι μεγαλύτερος από 15, επιλέγονται οι πρώτοι 15. Ένα παράδειγμα είναι μια ηχητική διάσκεψη, στα πακέτα RTP της οποίας συλλέγονται οι ομιλίες όλων των συμμετεχόντων, ο καθένας με το δικό τους SSRC - αποτελούν τη λίστα CSRC. Σε αυτήν την περίπτωση, ολόκληρο το συνέδριο έχει ένα κοινό SSRC.

Το πρωτόκολλο RTCP, όπως κάθε πρωτόκολλο ελέγχου, είναι πολύ πιο περίπλοκο τόσο ως προς τη δομή όσο και ως προς τις λειτουργίες που εκτελεί (συγκρίνετε, για παράδειγμα, τα πρωτόκολλα IP και TCP). Αν και ο πυρήνας του πρωτοκόλλου RTCP είναι RTP, περιέχει πολλά πρόσθετα πεδία με τα οποία υλοποιεί τις λειτουργίες του.

Πρωτόκολλο κράτησης πόρων - RSVP

Για να λυθεί το πρόβλημα προτεραιότητας για δεδομένα ευαίσθητα σε καθυστέρηση, σε αντίθεση με τα παραδοσιακά δεδομένα για τα οποία οι καθυστερήσεις δεν είναι τόσο κρίσιμες, χρησιμοποιείται το πρωτόκολλο κράτησης πόρων - RSVP, το οποίο εξετάζεται επί του παρόντος από την Ομάδα Εργασίας Μηχανικής Διαδικτύου (IETF). Το RSVP επιτρέπει τελικών συστημάτωνκρατήστε πόρους δικτύου για να αποκτήσετε την απαιτούμενη ποιότητα υπηρεσίας, ιδίως πόρους για γραφικά σε πραγματικό χρόνο χρησιμοποιώντας το πρωτόκολλο RTP. Το RSVP ασχολείται κυρίως με τους δρομολογητές, αν και οι εφαρμογές τερματικού κόμβου πρέπει επίσης να γνωρίζουν πώς να χρησιμοποιούν το RSVP προκειμένου να δεσμεύσουν το απαιτούμενο εύρος ζώνης για μια δεδομένη κατηγορία υπηρεσίας ή επίπεδο προτεραιότητας.

Το RTP, μαζί με τα άλλα πρότυπα που περιγράφονται, καθιστά δυνατή την επιτυχή μετάδοση βίντεο και ήχου μέσω συμβατικών δικτύων IP. Το RTP/RTCP/RSVP είναι μια τυποποιημένη λύση για δίκτυα δεδομένων σε πραγματικό χρόνο. Το μόνο του μειονέκτημα είναι ότι είναι μόνο για δίκτυα IP. Ωστόσο, αυτός ο περιορισμός είναι προσωρινός: τα δίκτυα θα αναπτυχθούν προς αυτή την κατεύθυνση με τον ένα ή τον άλλο τρόπο. Αυτή η λύση υπόσχεται να λύσει το πρόβλημα της μετάδοσης δεδομένων ευαίσθητων σε καθυστέρηση μέσω του Διαδικτύου.

Βιβλιογραφία

Μια περιγραφή του πρωτοκόλλου RTP μπορεί να βρεθεί στο RFC-1889.


Η απαίτηση υποστήριξης πολλών τύπων κίνησης με διαφορετικές απαιτήσεις για ποιότητα υπηρεσίας με βάση τη στοίβα πρωτοκόλλου TCP/IP είναι πλέον πολύ σχετική. Αυτό το πρόβλημα αντιμετωπίζεται από το πρωτόκολλο μεταφοράς σε πραγματικό χρόνο (RTP), το οποίο είναι ένα πρότυπο IETF για μετάδοση δεδομένων σε πραγματικό χρόνο, όπως φωνή ή βίντεο, μέσω δικτύου που δεν εγγυάται την ποιότητα της υπηρεσίας.

Το πρωτόκολλο RTP εγγυάται την παράδοση δεδομένων σε έναν ή περισσότερους παραλήπτες με καθυστέρηση που δεν υπερβαίνει την καθορισμένη τιμή. Για να γίνει αυτό, η κεφαλίδα του πρωτοκόλλου περιέχει χρονικές σημάνσεις που είναι απαραίτητες για την επιτυχή αποκατάσταση πληροφοριών ήχου και βίντεο, καθώς και δεδομένα σχετικά με τη μέθοδο κωδικοποίησης πληροφοριών.

Παρόλο που το πρωτόκολλο TCP εγγυάται την παράδοση των μεταδιδόμενων δεδομένων με τη σωστή σειρά, η κίνηση δεν είναι ομοιόμορφη, δηλαδή συμβαίνουν απρόβλεπτες καθυστερήσεις κατά την παράδοση των datagrams. Δεδομένου ότι το πρωτόκολλο RTP γνωρίζει το περιεχόμενο των datagrams και διαθέτει μηχανισμούς ανίχνευσης απώλειας δεδομένων, μπορεί να μειώσει την καθυστέρηση σε ένα αποδεκτό επίπεδο.

Σχέδιο διευθύνσεων πρωτοκόλλου IP

Το σχήμα διευθύνσεων διαδικτύου που χρησιμοποιείται στο πρωτόκολλο IP περιγράφεται στα RFC 990 και RFC 997. Βασίζεται στον διαχωρισμό των δικτύων διευθύνσεων από τις συσκευές διευθυνσιοδότησης σε αυτά τα δίκτυα. Αυτό το σχήμα διευκολύνει τη δρομολόγηση. Σε αυτή την περίπτωση, οι διευθύνσεις πρέπει να εκχωρούνται με τακτοποιημένο (διαδοχικό) τρόπο προκειμένου να γίνει πιο αποτελεσματική η δρομολόγηση.

Όταν χρησιμοποιείτε τη στοίβα πρωτοκόλλου TCP/IP στο δίκτυο, οι τελικές συσκευές λαμβάνουν μοναδικές διευθύνσεις. Τέτοιες συσκευές μπορεί να είναι προσωπικούς υπολογιστές, διακομιστές πολυμέσων, δρομολογητές κ.λπ. Ωστόσο, ορισμένες συσκευές που διαθέτουν πολλές φυσικές θύρες, όπως οι δρομολογητές, πρέπει να έχουν μια μοναδική διεύθυνση σε κάθε μία από τις θύρες. Με βάση το σχήμα διευθύνσεων και το γεγονός ότι ορισμένες συσκευές στο δίκτυο μπορούν να έχουν πολλές διευθύνσεις, μπορούμε να συμπεράνουμε ότι αυτό το σχήμα διευθύνσεων δεν περιγράφει την ίδια τη συσκευή στο δίκτυο, αλλά μια συγκεκριμένη σύνδεση αυτής της συσκευής στο δίκτυο. Αυτό το σύστημα οδηγεί σε μια σειρά από ενοχλήσεις. Ένα από αυτά είναι η ανάγκη αλλαγής της διεύθυνσης της συσκευής κατά τη μεταφορά της σε άλλο δίκτυο. Ένα άλλο μειονέκτημα είναι ότι για να εργαστείτε με μια συσκευή που έχει πολλές συνδέσεις σε ένα κατανεμημένο δίκτυο, πρέπει να γνωρίζετε όλες τις διευθύνσεις της που προσδιορίζουν αυτές τις συνδέσεις.

Έτσι, για κάθε συσκευή σε δίκτυα IP, μπορούμε να μιλήσουμε για διευθύνσεις τριών επιπέδων:

q Φυσική διεύθυνσησυσκευή (ακριβέστερα - μια συγκεκριμένη διεπαφή). Για συσκευές σε δίκτυα Ethernet, αυτή είναι η διεύθυνση MAC κάρτα δικτύουή θύρα δρομολογητή. Αυτές οι διευθύνσεις εκχωρούνται από τους κατασκευαστές υλικού. Η φυσική διεύθυνση έχει έξι byte: τα τρία πάνω byte είναι το αναγνωριστικό του κατασκευαστή, τα κάτω τρία byte εκχωρούνται από τον κατασκευαστή.



q Μια διεύθυνση IP που αποτελείται από τέσσερα byte. Αυτή η διεύθυνση χρησιμοποιείται για επίπεδο δικτύουτο μοντέλο αναφοράς OSI·

q Αναγνωριστικό χαρακτήρα - όνομα. Αυτό το αναγνωριστικό μπορεί να εκχωρηθεί αυθαίρετα από τον διαχειριστή.

Όταν το πρωτόκολλο IP τυποποιήθηκε τον Σεπτέμβριο του 1981, οι προδιαγραφές του απαιτούσαν κάθε συσκευή που συνδέεται σε ένα δίκτυο να έχει μια μοναδική διεύθυνση 32 bit. Αυτή η διεύθυνση χωρίζεται σε δύο μέρη. Το πρώτο μέρος της διεύθυνσης προσδιορίζει το δίκτυο στο οποίο βρίσκεται η συσκευή. Το δεύτερο μέρος προσδιορίζει μοναδικά την ίδια τη συσκευή εντός του δικτύου. Αυτό το σχήμα οδηγεί σε μια ιεραρχία διευθύνσεων δύο επιπέδων (Εικόνα 6.23).

Τώρα καλείται το πεδίο αριθμού δικτύου στη διεύθυνση πρόθεμα δικτύου,γιατί προσδιορίζει το δίκτυο. Όλοι οι σταθμοί εργασίας στο δίκτυο μοιράζονται το ίδιο πρόθεμα δικτύου. Ταυτόχρονα, πρέπει να έχουν μοναδικούς αριθμούςσυσκευές. Δύο σταθμοί εργασίας που βρίσκονται σε διαφορετικά δίκτυα πρέπει να έχουν διαφορετικά προθέματα δικτύου, αλλά μπορούν επίσης να έχουν τον ίδιο αριθμό συσκευής.

Για ευελιξία στη διευθυνσιοδότηση δίκτυα υπολογιστώνΟι σχεδιαστές του πρωτοκόλλου καθόρισαν ότι ο χώρος διευθύνσεων IP πρέπει να χωριστεί σε τρεις διαφορετικές κλάσεις - A, B και C. Γνωρίζοντας την κλάση, γνωρίζετε πού βρίσκεται το όριο μεταξύ του προθέματος δικτύου και του αριθμού συσκευής σε μια διεύθυνση 32 bit . Στο σχ. Το σχήμα 6.24 δείχνει τις μορφές διευθύνσεων αυτών των βασικών κλάσεων.

Ένα από τα κύρια πλεονεκτήματα της χρήσης κλάσεων είναι ότι μπορείτε να προσδιορίσετε από την κλάση της διεύθυνσης όπου βρίσκεται το όριο μεταξύ του προθέματος δικτύου και του αριθμού συσκευής. Για παράδειγμα, εάν τα πιο σημαντικά δύο bit της διεύθυνσης είναι 10, τότε το σημείο διαίρεσης είναι μεταξύ των bit 15 και 16.

Το μειονέκτημα αυτής της μεθόδου είναι η ανάγκη αλλαγής της διεύθυνσης δικτύου κατά τη σύνδεση πρόσθετες συσκευές. Για παράδειγμα, εάν συνολικός αριθμόςΟι συσκευές σε ένα δίκτυο κλάσης C υπερβαίνουν τις 255, τότε θα χρειαστεί να αντικαταστήσετε τις διευθύνσεις του με διευθύνσεις κατηγορίας Β. Η αλλαγή των διευθύνσεων δικτύου θα απαιτήσει πρόσθετες προσπάθειες από τον διαχειριστή για τον εντοπισμό σφαλμάτων του δικτύου. Οι διαχειριστές δικτύου δεν μπορούν ομαλή μετάβασησε μια νέα κλάση διευθύνσεων, αφού οι κλάσεις είναι σαφώς διαχωρισμένες. Πρέπει να απαγορεύσετε τη χρήση μιας ολόκληρης ομάδας διευθύνσεων δικτύου, να αλλάξετε ταυτόχρονα όλες τις διευθύνσεις των συσκευών αυτής της ομάδας και μόνο τότε να επιτρέψετε ξανά τη χρήση τους στο δίκτυο. Επιπλέον, η εισαγωγή κλάσεων διευθύνσεων μειώνει σημαντικά τον θεωρητικά πιθανό αριθμό μεμονωμένων διευθύνσεων. ΣΤΟ τρέχουσα έκδοσηΠρωτόκολλο IP (έκδοση 4) ο συνολικός αριθμός διευθύνσεων θα μπορούσε να είναι 2 32 (4 294 967 296), καθώς το πρωτόκολλο προβλέπει τη χρήση 32 bit για τον καθορισμό της διεύθυνσης. Φυσικά, η χρήση ορισμένων bit για σκοπούς εξυπηρέτησης μειώνει τον διαθέσιμο αριθμό μεμονωμένων διευθύνσεων.

Η κλάση Α είναι για μεγάλα δίκτυα. Κάθε διεύθυνση κλάσης Α έχει ένα πρόθεμα δικτύου 8-bit με το πιο σημαντικό bit να έχει οριστεί σε 1 και τα επόμενα επτά bit να χρησιμοποιούνται για τον αριθμό δικτύου. Τα υπόλοιπα 24 bit χρησιμοποιούνται για τον αριθμό της συσκευής. ΣΤΟ αυτή τη στιγμήΌλες οι διευθύνσεις κλάσης Α έχουν ήδη εκχωρηθεί. Τα δίκτυα κλάσης Α αναφέρονται επίσης ως "/8" επειδή οι διευθύνσεις κατηγορίας Α έχουν ένα πρόθεμα δικτύου 8-bit.

Ο μέγιστος αριθμός δικτύων κλάσης Α είναι 126 (2 7 -2 - αφαιρούνται δύο διευθύνσεις, που αποτελούνται μόνο από μηδενικά και ένα). Κάθε δίκτυο αυτής της κατηγορίας υποστηρίζει έως και 16.777.214 (2 24 -2) συσκευές. Δεδομένου ότι ένα μπλοκ διευθύνσεων κλάσης Α μπορεί να φιλοξενήσει έως και 231 (2 147483648) μεμονωμένες διευθύνσεις και η έκδοση IP 4 μπορεί να υποστηρίξει μόνο έως 232 (4294967296) διευθύνσεις, η κλάση Α καταλαμβάνει το 50% του συνολικού χώρου διευθύνσεων IP. .

Η κλάση Β προορίζεται για δίκτυα μεσαίου μεγέθους. Κάθε διεύθυνση κατηγορίας Β έχει ένα πρόθεμα δικτύου 16-bit όπου τα δύο πιο σημαντικά bit είναι 10 και τα επόμενα 14 bit χρησιμοποιούνται για τον αριθμό δικτύου. Εκχωρούνται 16 bit για τον αριθμό της συσκευής. Τα δίκτυα κλάσης Β αναφέρονται επίσης ως "/16" επειδή οι διευθύνσεις κατηγορίας Β έχουν ένα πρόθεμα δικτύου 16-bit.

Ο μέγιστος αριθμός δικτύων κατηγορίας Β είναι 16.382 (2 14 -2). Κάθε δίκτυο αυτής της κατηγορίας υποστηρίζει έως και 65.534 (2 16 -2) συσκευές. Δεδομένου ότι ένα ολόκληρο μπλοκ διευθύνσεων κατηγορίας Β μπορεί να περιέχει έως και 230 (1.073.741.824) μεμονωμένες διευθύνσεις, καταλαμβάνει το 25% του συνολικού χώρου διευθύνσεων IP.

Οι διευθύνσεις κλάσης C χρησιμοποιούνται σε δίκτυα με μικρό αριθμό συσκευών. Κάθε δίκτυο κατηγορίας C έχει ένα πρόθεμα δικτύου 24-bit, στο οποίο τα τρία πιο σημαντικά bit είναι 110 και τα επόμενα 21 bit χρησιμοποιούνται για τον αριθμό δικτύου. Τα υπόλοιπα 8 bit εκχωρούνται για αριθμούς συσκευών. Τα δίκτυα κατηγορίας C αναφέρονται επίσης ως "/24" επειδή οι διευθύνσεις κατηγορίας C έχουν ένα πρόθεμα δικτύου 24-bit.

Ο μέγιστος αριθμός δικτύων Κατηγορίας Γ είναι 2.097.152 (221). Κάθε δίκτυο αυτής της κατηγορίας υποστηρίζει έως και 254 (2 8 -2) συσκευές. Η κλάση C καταλαμβάνει το 12,5% του συνολικού χώρου διευθύνσεων IP.

Στον πίνακα. Το 6.9 συνοψίζει την ανάλυσή μας για τις κλάσεις δικτύου.

Πίνακας 6.9. Κατηγορίες δικτύου

Εκτός από αυτές τις τρεις κατηγορίες διευθύνσεων, υπάρχουν δύο ακόμη κατηγορίες. Στην κλάση D, τα πιο σημαντικά τέσσερα bit είναι 1110. Αυτή η κλάση χρησιμοποιείται για multicasting. Στην κλάση Ε, τα τέσσερα πάνω bit είναι 1111. Προορίζεται για πειραματισμό.

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

Στον πίνακα. Το 6.10 παραθέτει τις περιοχές των δεκαδικών τιμών για τις τρεις κατηγορίες διευθύνσεων. Στον πίνακα. 6.10 Η καταχώριση XXX σημαίνει ένα αυθαίρετο πεδίο.

Πίνακας 6.10. Εύρος τιμών διεύθυνσης

Ορισμένες διευθύνσεις IP δεν μπορούν να εκχωρηθούν σε συσκευές στο δίκτυο (Πίνακας 6.11).

Όπως φαίνεται σε αυτόν τον πίνακα, στις δεσμευμένες διευθύνσεις IP, όλα τα bit που έχουν οριστεί στο μηδέν αντιστοιχούν σε ένα από τα δύο αυτή η συσκευή, ή αυτό το δίκτυο, και οι διευθύνσεις IP, όλα τα bit των οποίων έχουν οριστεί σε 1, χρησιμοποιούνται στη μετάδοση πληροφοριών. Για να αναφερθούμε σε ολόκληρο το δίκτυο IP στο σύνολό του, χρησιμοποιείται μια διεύθυνση με αριθμό συσκευής, με όλα τα bit να έχουν οριστεί σε "0". Η διεύθυνση δικτύου κλάσης Α 127.0.0.0 είναι δεσμευμένη για επαναφορά βρόχου και εισάγεται για τη δοκιμή επικοινωνίας μεταξύ διεργασιών στο ίδιο μηχάνημα. Όταν μια εφαρμογή χρησιμοποιεί μια διεύθυνση loopback, η στοίβα πρωτοκόλλου TCP/IP επιστρέφει αυτά τα δεδομένα στην εφαρμογή χωρίς να στείλει τίποτα στο δίκτυο. Επιπλέον, αυτή η διεύθυνση μπορεί να χρησιμοποιηθεί για την αλληλεπίδραση ξεχωριστών διεργασιών στο ίδιο μηχάνημα. Επομένως, στα δίκτυα IP, απαγορεύεται η εκχώρηση διευθύνσεων IP που ξεκινούν από 127 σε συσκευές.

Εκτός από την κατευθυνόμενη μετάδοση δεδομένων σε έναν συγκεκριμένο σταθμό εργασίας, χρησιμοποιείται ενεργά η μετάδοση μετάδοσης, στην οποία όλοι οι σταθμοί στο τρέχον ή στο καθορισμένο δίκτυο λαμβάνουν πληροφορίες. Υπάρχουν δύο τύποι εκπομπών στο πρωτόκολλο IP: κατευθυνόμενες και περιορισμένες.

Μια κατευθυνόμενη μετάδοση επιτρέπει σε μια συσκευή σε απομακρυσμένο δίκτυο να στείλει ένα datagram σε όλες τις συσκευές στο ίδιο δίκτυο. τρέχον δίκτυο. Ένα datagram με μια προωθημένη διεύθυνση εκπομπής μπορεί να περάσει μέσα από δρομολογητές, αλλά θα παραδοθεί μόνο σε όλες τις συσκευές στο καθορισμένο δίκτυο και όχι σε όλες τις συσκευές. Σε μια κατευθυνόμενη μετάδοση, η διεύθυνση προορισμού αποτελείται από έναν συγκεκριμένο αριθμό δικτύου και έναν αριθμό συσκευής, όλα τα bit των οποίων είναι 0 ή 1. Για παράδειγμα, οι διευθύνσεις 185.100.255.255 και 185.100.0.0 θα αντιμετωπίζονται ως διευθύνσεις εκπομπής για την κατηγορία Β δίκτυο 185.100.xxx.xxx Από την άποψη της διευθυνσιοδότησης, το κύριο μειονέκτημα της κατευθυντικής μετάδοσης είναι ότι απαιτείται γνώση του αριθμού δικτύου-στόχου.

Η δεύτερη μορφή εκπομπής, που ονομάζεται περιορισμένη μετάδοση, εκπέμπει εντός του τρέχοντος δικτύου (το δίκτυο όπου βρίσκεται η συσκευή αποστολής). Ένα datagram με περιορισμένη διεύθυνση εκπομπής δεν θα περάσει ποτέ από έναν δρομολογητή. Σε περιορισμένη μετάδοση, τα bit του αριθμού δικτύου και του αριθμού συσκευής είναι όλα μηδενικά ή ένα. Έτσι, ένα datagram με διεύθυνση προορισμού 255.255.255.255 ή 0.0.0.0 θα παραδοθεί σε όλες τις συσκευές του δικτύου. Στο σχ. Το σχήμα 6.26 δείχνει δίκτυα που συνδέονται με δρομολογητές. Στον πίνακα. Το Σχήμα 6.12 παραθέτει τους παραλήπτες των γραμμάτων μετάδοσης δεδομένων που αποστέλλονται από τον σταθμό εργασίας Α.

Το πρωτόκολλο IP υποστηρίζει τρεις μεθόδους διευθυνσιοδότησης: single (unicast), εκπομπή (broadcast) και group (multicast).

Πίνακας 6.12. Εκπομπές Δεδομένων Δεδομένων

Στην απλή διευθυνσιοδότηση, τα datagrams αποστέλλονται σε μια συγκεκριμένη συσκευή. Η εφαρμογή αυτής της προσέγγισης δεν είναι δύσκολη, αλλά αν ομάδα εργασίαςπεριέχει πολλούς σταθμούς, η απόδοση μπορεί να μην είναι επαρκής, αφού το ίδιο datagram θα μεταδοθεί πολλές φορές.

Με τη διεύθυνση εκπομπής, οι εφαρμογές στέλνουν ένα ενιαίο datagram, το οποίο παραδίδεται σε όλες τις συσκευές του δικτύου. Αυτή η προσέγγιση είναι ακόμη πιο απλή στην εφαρμογή, αλλά αν σε αυτήν την περίπτωση η κυκλοφορία μετάδοσης δεν περιορίζεται σε τοπικό δίκτυο(και, για παράδειγμα, ένα άλλο δίκτυο προωθείται χρησιμοποιώντας δρομολογητές), τότε το παγκόσμιο δίκτυο πρέπει να έχει σημαντικό εύρος ζώνης. Εάν οι πληροφορίες προορίζονται μόνο για μια μικρή ομάδα συσκευών, τότε αυτή η προσέγγιση φαίνεται παράλογη.

Στην multicast, τα datagrams παραδίδονται σε μια συγκεκριμένη ομάδα συσκευών. Ταυτόχρονα (που είναι πολύ σημαντικό όταν εργάζεστε σε κατανεμημένα δίκτυα), δεν δημιουργείται υπερβολική κίνηση. Τα γραφήματα δεδομένων πολλαπλής διανομής και μονής διεύθυνσης διαφέρουν ως προς τη διεύθυνση. Στην κεφαλίδα ενός datagram IP με multicast, αντί για διευθύνσεις IP των κλάσεων A, B, C, υπάρχει μια διεύθυνση κατηγορίας D, δηλαδή μια διεύθυνση ομάδας.

Μια διεύθυνση ομάδας εκχωρείται σε ορισμένες συσκευές παραλήπτες ή, με άλλα λόγια, σε μια ομάδα. Ο αποστολέας γράφει αυτή τη διεύθυνση πολλαπλής διανομής στην κεφαλίδα του datagram IP. Το datagram θα παραδοθεί σε όλα τα μέλη της ομάδας. Τα πρώτα τέσσερα bit της διεύθυνσης κλάσης D είναι 1110. Το υπόλοιπο της διεύθυνσης (28 bit) καταλαμβάνεται από το αναγνωριστικό ομάδας (Εικόνα 6.27).

Σε διακεκομμένη δεκαδική μορφή, οι διευθύνσεις ομάδων κυμαίνονται από 224.0.0.0 έως 239.255.255.255. Στον πίνακα. Το σχήμα 6.13 δείχνει το σχήμα κατανομής διευθύνσεων κατηγορίας D.

Πίνακας 6.13. Εκχώρηση διεύθυνσης κατηγορίας Δ

Όπως φαίνεται από τον Πίνακα. 6.13, οι πρώτες 256 διευθύνσεις είναι δεσμευμένες. Συγκεκριμένα, αυτό το εύρος προορίζεται για πρωτόκολλα δρομολόγησης και άλλα πρωτόκολλα χαμηλού επιπέδου. Στον πίνακα. Το 6.14 περιέχει ορισμένες δεσμευμένες διευθύνσεις IP κατηγορίας D.

Πάνω από αυτό το εύρος είναι ΜΕΓΑΛΗ ομαδαδιευθύνσεις που εκχωρούνται για εφαρμογές που εκτελούνται στο Διαδίκτυο. Το ανώτατο εύρος διευθύνσεων (περίπου 16 εκατομμύρια διευθύνσεις) είναι για διαχειριστικούς σκοπούς σε LAN. Οι διευθύνσεις ομάδων κατηγορίας D διαχειρίζονται κεντρικά και καταχωρούνται από έναν ειδικό οργανισμό που ονομάζεται IANA.

Το Multicast μπορεί να υλοποιηθεί σε δύο επίπεδα του μοντέλου OSI - κανάλι (Επίπεδο Data-Link) και δίκτυο (Επίπεδο δικτύου). Τα πρωτόκολλα μετάδοσης επιπέδου σύνδεσης, όπως το Ethernet και το FDDI, μπορούν να υποστηρίξουν διευθυνσιοδότηση απλής, εκπομπής και πολλαπλής εκπομπής. Η πολυεκπομπή επιπέδου σύνδεσης είναι ιδιαίτερα αποτελεσματική εάν υποστηρίζεται σε υλικό στο NIC.

Για την υποστήριξη της πολλαπλής μετάδοσης IANA, έχει εκχωρηθεί ένα μπλοκ διευθύνσεων Ethernet πολλαπλής εκπομπής, ξεκινώντας από 01-00-5E (με δεκαεξαδικό συμβολισμό). Μια διεύθυνση IP πολλαπλής διανομής μπορεί να μεταφραστεί σε μια διεύθυνση σε αυτό το μπλοκ. Η αρχή της μετάφρασης είναι αρκετά απλή: τα χαμηλότερα 23 bit του αναγνωριστικού της ομάδας IP αντιγράφονται στα χαμηλότερα 23 bit της διεύθυνσης Ethernet. Σημειώστε ότι αυτό το σχήμα συσχετίζει έως και 32 διαφορετικές ομάδες IP με την ίδια διεύθυνση Ethernet, καθώς τα επόμενα 5 bit του αναγνωριστικού ομάδας IP αγνοούνται.

Πίνακας 6.14. Δεσμευμένες διευθύνσεις κατηγορίας Δ

Διεύθυνση Σκοπός
224.0.0.1 Όλες οι συσκευές στο υποδίκτυο
224.0.0.2 Όλοι οι δρομολογητές στο υποδίκτυο
224.0.0.4 Όλοι οι δρομολογητές DVMRP
224.0.0.5 Όλοι οι δρομολογητές MOSPF
224.0.0.9 RIP IP Έκδοση II
224.0.1.7 ηχητικές ειδήσεις
224.0.1.11 Ήχος IEFT
224.0.1.12 Βίντεο IEFT

Εάν ο αποστολέας και ο παραλήπτης ανήκουν στο ίδιο φυσικό δίκτυο, η διαδικασία αποστολής και λήψης πλαισίων πολλαπλής διανομής στο επίπεδο σύνδεσης είναι αρκετά απλή. Ο αποστολέας καθορίζει τη διεύθυνση IP της ομάδας των παραληπτών και το NIC μεταφράζει αυτή τη διεύθυνση στην αντίστοιχη διεύθυνση Ethernet ομάδας και στέλνει το πλαίσιο.

Εάν ο αποστολέας και ο παραλήπτης βρίσκονται σε διαφορετικά υποδίκτυα συνδεδεμένα με δρομολογητές, η παράδοση του datagram είναι δύσκολη. Σε αυτήν την περίπτωση, οι δρομολογητές πρέπει να υποστηρίζουν ένα από τα πρωτόκολλα δρομολόγησης πολλαπλής διανομής (DVMRP, MOSPF, PIM - βλέπε παρακάτω). Σύμφωνα με αυτά τα πρωτόκολλα, ο δρομολογητής θα δημιουργήσει ένα δέντρο παράδοσης και θα προωθήσει σωστά την κυκλοφορία πολλαπλής εκπομπής. Επιπλέον, κάθε δρομολογητής πρέπει να υποστηρίζει το πρωτόκολλο διαχείρισης ομάδας (IGMP) για να προσδιορίσει την παρουσία μελών ομάδας σε απευθείας συνδεδεμένα υποδίκτυα (Εικόνα 6.28).

Εάν κάποια μέρα χρειαστεί να καταλάβετε γρήγορα τι είναι το VoIP (φωνή μέσω IP) και τι σημαίνουν όλες αυτές οι άγριες συντομογραφίες, ελπίζω ότι αυτό το εγχειρίδιο θα σας βοηθήσει. Θα σημειώσω αμέσως ότι τα ζητήματα διαμόρφωσης πρόσθετων τύπων υπηρεσιών τηλεφωνίας (όπως μεταφορά κλήσεων, φωνητικό ταχυδρομείο, κλήσεις συνδιάσκεψης, κ.λπ.) δεν λαμβάνονται υπόψη εδώ.

Λοιπόν, τι θα αντιμετωπίσουμε κάτω από την περικοπή:

  1. Βασικές έννοιες της τηλεφωνίας: τύποι συσκευών, σχήματα σύνδεσης
  2. Πακέτο πρωτοκόλλων SIP/SDP/RTP: πώς λειτουργεί
  3. Πώς μεταδίδονται πληροφορίες σχετικά με τα πατημένα κουμπιά
  4. Πώς λειτουργεί η μετάδοση φωνής και φαξ;
  5. Επεξεργασία ψηφιακού σήματος και διασφάλιση ποιότητας ήχου στην τηλεφωνία IP

1. Βασικές έννοιες τηλεφωνίας

Γενικά, το σχέδιο σύνδεσης τοπικού συνδρομητή με πάροχο τηλεφώνου μέσω κανονικής τηλεφωνικής γραμμής έχει ως εξής:



Στο πλάι του παρόχου (PBX), είναι εγκατεστημένη μια τηλεφωνική μονάδα με θύρα FXS (Foreign eXchange Subscriber). Μια συσκευή τηλεφώνου ή φαξ με θύρα FXO (Foreign eXchange Office) και μονάδα κλήσης είναι εγκατεστημένη στο σπίτι ή στο γραφείο.

Με εμφάνισηΟι θύρες FXS και FXO δεν διαφέρουν, είναι κανονικές υποδοχές RJ11 6 ακίδων. Αλλά χρησιμοποιώντας ένα βολτόμετρο, είναι πολύ εύκολο να τα διακρίνετε - θα υπάρχει πάντα κάποια τάση στη θύρα FXS: 48/60 V όταν το ακουστικό είναι συνδεδεμένο ή 6-15 V κατά τη διάρκεια μιας κλήσης. Στο FXO, εάν δεν είναι συνδεδεμένο στη γραμμή, η τάση είναι πάντα 0.

Για τη μεταφορά δεδομένων μέσω τηλεφωνικής γραμμής, απαιτείται πρόσθετη λογική από την πλευρά του παρόχου, η οποία μπορεί να εφαρμοστεί στη μονάδα SLIC (κύκλωμα διεπαφής γραμμής συνδρομητή) και από την πλευρά του συνδρομητή - χρησιμοποιώντας τη μονάδα DAA (Διευθέτηση άμεσης πρόσβασης).

Τα ασύρματα τηλέφωνα DECT (Digital European Cordless Telecommunications) είναι αρκετά δημοφιλή πλέον. Όσον αφορά τη συσκευή, είναι παρόμοια με τα συνηθισμένα τηλέφωνα: έχουν επίσης μια θύρα FXO και μια μονάδα κλήσης, αλλά έχουν επίσης μια μονάδα ασύρματη επικοινωνίασταθμούς και ακουστικά σε συχνότητα 1,9 GHz.

Οι συνδρομητές συνδέονται στο δίκτυο PSTN (Δημόσιο Τηλεφωνικό Δίκτυο με μεταγωγή) - τηλεφωνικό δίκτυογενικής χρήσης, είναι PSTN, PSTN. Το δίκτυο PSTN μπορεί να οργανωθεί χρησιμοποιώντας διαφορετικές τεχνολογίες: ISDN, οπτικά, POTS, Ethernet. Ειδική περίπτωση PSTN, όταν χρησιμοποιείται κανονική αναλογική/χάλκινη γραμμή - POTS (Plain Old Telephone Service) - ένα απλό παλιό τηλεφωνικό σύστημα.

Με την ανάπτυξη του Διαδικτύου τηλεφωνικές επικοινωνίεςμετακινήθηκε σε ένα νέο επίπεδο. Τα σταθερά τηλέφωνα χρησιμοποιούνται όλο και λιγότερο, κυρίως για υπηρεσιακές ανάγκες. Τα τηλέφωνα DECT είναι λίγο πιο βολικά, αλλά περιορίζονται στην περίμετρο του σπιτιού. Τα τηλέφωνα GSM είναι ακόμα πιο βολικά, αλλά περιορίζονται από τα σύνορα της χώρας (η περιαγωγή είναι ακριβή). Αλλά για τα τηλέφωνα IP, είναι και softphones (SoftPhone), δεν υπάρχουν περιορισμοί, εκτός από την πρόσβαση στο Διαδίκτυο.

Το Skype είναι το πιο διάσημο παράδειγμα softphone. Μπορεί να κάνει πολλά πράγματα, αλλά έχει δύο σημαντικά μειονεκτήματα: η κλειστή αρχιτεκτονική και οι υποκλοπές είναι γνωστές από τις αρχές. Λόγω του πρώτου, δεν είναι δυνατό να δημιουργήσετε το δικό σας τηλεφωνικό μικροδίκτυο. Και λόγω του δεύτερου - δεν είναι πολύ ευχάριστο όταν σε κατασκοπεύουν, ειδικά σε προσωπικές και εμπορικές συνομιλίες.

Ευτυχώς, υπάρχουν ανοιχτά πρωτόκολλα για τη δημιουργία των δικών σας δικτύων επικοινωνίας με καλούδια - αυτά είναι το SIP και το H.323. Υπάρχουν μερικά περισσότερα softphone στο πρωτόκολλο SIP από ότι στο H.323, κάτι που μπορεί να εξηγηθεί από τη σχετική απλότητα και ευελιξία του. Αλλά μερικές φορές αυτή η ευελιξία μπορεί να βάλει ένα μεγάλο ραβδί στον τροχό. Και τα δύο πρωτόκολλα SIP και H.323 χρησιμοποιούν το πρωτόκολλο RTP για τη μεταφορά δεδομένων πολυμέσων.

Σκεφτείτε βασικές αρχέςΠρωτόκολλο SIP για να κατανοήσετε πώς γίνεται η σύνδεση δύο συνδρομητών.

2. Περιγραφή της δέσμης πρωτοκόλλων SIP/SDP/RTP

SIP (Session Initiation Protocol) - ένα πρωτόκολλο για τη δημιουργία μιας συνεδρίας (όχι μόνο μιας τηλεφωνικής) είναι ένα πρωτόκολλο κειμένου μέσω UDP. Είναι επίσης δυνατή η χρήση SIP μέσω TCP, αλλά αυτές είναι σπάνιες περιπτώσεις.

Το SDP (Session Description Protocol) είναι ένα πρωτόκολλο για τη διαπραγμάτευση του τύπου των μεταδιδόμενων δεδομένων (για ήχο και βίντεο πρόκειται για κωδικοποιητές και τις μορφές τους, για φαξ - ταχύτητα μετάδοσης και διόρθωση σφαλμάτων) και τις διευθύνσεις προορισμού τους (IP και θύρα). Είναι επίσης ένα πρωτόκολλο κειμένου. Οι παράμετροι SDP αποστέλλονται στο σώμα των πακέτων SIP.

Το RTP (πρωτόκολλο μεταφοράς σε πραγματικό χρόνο) είναι ένα πρωτόκολλο μεταφοράς δεδομένων ήχου/εικόνας. Είναι ένα δυαδικό πρωτόκολλο μέσω UDP.

Γενική δομή πακέτων SIP:

  • Γραμμή έναρξης: Ένα πεδίο που υποδεικνύει τη μέθοδο SIP (εντολή) όταν ζητείται ή το αποτέλεσμα της εκτέλεσης της μεθόδου SIP κατά την απόκριση.
  • κεφαλίδες: Επιπλέον πληροφορίεςστη γραμμή εκκίνησης, μορφοποιημένα ως συμβολοσειρές που περιέχουν ζεύγη ATTRIBUTE: VALUE.
  • Σώμα: δυαδικά δεδομένα ή δεδομένα κειμένου. Συνήθως χρησιμοποιείται για την αποστολή παραμέτρων ή μηνυμάτων SDP.

Ακολουθεί ένα παράδειγμα δύο πακέτων SIP για μια κοινή διαδικασία ρύθμισης κλήσης:

Στα αριστερά είναι το περιεχόμενο του πακέτου SIP INVITE, στα δεξιά είναι η απάντηση σε αυτό - SIP 200 OK.

Τα κύρια πεδία πλαισιώνονται:

  • Το Method/Request-URI περιέχει τη μέθοδο SIP και το URI. Στο παράδειγμα, η συνεδρία έχει καθιερωθεί - η μέθοδος INVITE, καλείται ο συνδρομητής [email προστατευμένο]
  • Status-Code - κωδικός απόκρισης για την προηγούμενη εντολή SIP. ΣΤΟ αυτό το παράδειγμαεντολή ολοκληρώθηκε με επιτυχία - κωδικός 200, δηλ. Ο συνδρομητής 555 σήκωσε το τηλέφωνο.
  • Μέσω - διεύθυνση όπου ο συνδρομητής 777 περιμένει απάντηση. Για το μήνυμα 200 OK, αυτό το πεδίο αντιγράφεται από το μήνυμα INVITE.
  • Από/Προς - εμφάνιση ονόματος και διεύθυνσης του αποστολέα και του παραλήπτη του μηνύματος. Για το μήνυμα 200 OK, αυτό το πεδίο αντιγράφεται από το μήνυμα INVITE.
  • Το Cseq περιέχει τον αριθμό σειράς της εντολής και το όνομα της μεθόδου στην οποία αναφέρεται το συγκεκριμένο μήνυμα. Για το μήνυμα 200 OK, αυτό το πεδίο αντιγράφεται από το μήνυμα INVITE.
  • Content-Type - ο τύπος δεδομένων που μεταδίδεται στο μπλοκ Body, σε αυτήν την περίπτωση δεδομένα SDP.
  • Πληροφορίες σύνδεσης - Διεύθυνση IP στην οποία ο δεύτερος συνδρομητής πρέπει να στείλει πακέτα RTP (ή πακέτα UDPTL σε περίπτωση μετάδοσης φαξ μέσω Τ.38).
  • Περιγραφή μέσων - η θύρα στην οποία ο δεύτερος συνδρομητής πρέπει να διαβιβάσει τα καθορισμένα δεδομένα. Σε αυτήν την περίπτωση, πρόκειται για ήχο (ήχος RTP/AVP) και μια λίστα υποστηριζόμενων τύπων δεδομένων - κωδικοποιητές PCMU, PCMA, GSM και σήματα DTMF.

Ένα μήνυμα SDP αποτελείται από γραμμές που περιέχουν ζεύγη FIELD=VALUE. Τα κύρια πεδία περιλαμβάνουν:

  • ο- Προέλευση, όνομα διοργανωτή συνεδρίας και αναγνωριστικό συνεδρίας.
  • Με- Πληροφορίες σύνδεσης, το πεδίο περιγράφεται νωρίτερα.
  • Μ- Περιγραφή μέσου, το πεδίο περιγράφεται νωρίτερα.
  • ένα- χαρακτηριστικά πολυμέσων, καθορίστε τη μορφή των μεταδιδόμενων δεδομένων. Για παράδειγμα, υποδεικνύουν την κατεύθυνση του ήχου - λήψης ή μετάδοσης (sendrecv), για κωδικοποιητές υποδεικνύουν τον ρυθμό δειγματοληψίας και τον αριθμό δέσμευσης (rtpmap).

Τα πακέτα RTP περιέχουν δεδομένα ήχου/εικόνας κωδικοποιημένα σε συγκεκριμένη μορφή. Αυτή η μορφήκαθορίζεται στο πεδίο PT (τύπος ωφέλιμου φορτίου). Ένας πίνακας του τρόπου με τον οποίο η τιμή αυτού του πεδίου αντιστοιχεί σε μια συγκεκριμένη μορφή δίνεται στο προφίλ βίντεο ήχου https://wikipedia org wiki RTP.

Επίσης, τα πακέτα RTP περιέχουν ένα μοναδικό αναγνωριστικό SSRC (καθορίζει την πηγή της ροής RTP) και μια χρονική σήμανση (χρονοσήμανση, που χρησιμοποιείται για την ομοιόμορφη αναπαραγωγή ήχου ή βίντεο).

Ένα παράδειγμα αλληλεπίδρασης μεταξύ δύο συνδρομητών SIP μέσω ενός διακομιστή SIP (Asterisk):

Μόλις ξεκινήσει ένα τηλέφωνο SIP, το πρώτο πράγμα που κάνει είναι να εγγραφεί απομακρυσμένος διακομιστής(SIP Regitar), του στέλνει ένα μήνυμα SIP REGISTER.


Όταν καλείτε έναν συνδρομητή, αποστέλλεται ένα μήνυμα SIP INVITE, το σώμα του οποίου περιέχει ένα μήνυμα SDP που περιέχει τις παραμέτρους μετάδοσης ήχου/εικόνας (ποιοι κωδικοποιητές υποστηρίζονται, σε ποια IP και σε ποια θύρα θα σταλεί ήχος κ.λπ.).


Όταν ο απομακρυσμένος συνδρομητής σηκώσει το τηλέφωνο, λαμβάνουμε ένα μήνυμα SIP 200 OK επίσης με τις παραμέτρους SDP, μόνο ο απομακρυσμένος συνδρομητής. Χρησιμοποιώντας τις παραμέτρους αποστολής και λήψης SDP, μπορείτε να ρυθμίσετε μια περίοδο λειτουργίας ήχου/εικόνας RTP ή μια περίοδο λειτουργίας φαξ T.38.

Εάν οι λαμβανόμενες παράμετροι SDP δεν μας ταιριάζουν ή ο ενδιάμεσος διακομιστής SIP αποφάσισε να μην περάσει την κυκλοφορία RTP μέσω του εαυτού του, τότε εκτελείται η διαδικασία επαναδιαπραγμάτευσης SDP, η λεγόμενη REINVITE. Παρεμπιπτόντως, ακριβώς λόγω αυτής της διαδικασίας οι δωρεάν διακομιστές μεσολάβησης SIP έχουν ένα μειονέκτημα - εάν και οι δύο συνδρομητές βρίσκονται στο ίδιο τοπικό δίκτυο και ο διακομιστής μεσολάβησης βρίσκεται πίσω από το NAT, τότε μετά την ανακατεύθυνση της κυκλοφορίας RTP, κανένας από τους συνδρομητές δεν θα ακούσει αλλο.


Μετά το τέλος της συνομιλίας, ο συνδρομητής που έκλεισε στέλνει ένα μήνυμα SIP BYE.

3. Μεταφορά πληροφοριών σχετικά με τα πατημένα κουμπιά

Μερικές φορές, μετά τη δημιουργία της συνεδρίας, κατά τη διάρκεια μιας κλήσης, απαιτείται πρόσβαση σε πρόσθετες υπηρεσίες (VAS) - αναμονή κλήσης, μεταφορά, φωνητικό ταχυδρομείο κ.λπ. - που αντιδρούν σε ορισμένους συνδυασμούς πατημένων κουμπιών.

Έτσι, σε μια κανονική τηλεφωνική γραμμή, υπάρχουν δύο τρόποι για να καλέσετε έναν αριθμό:

  • Το Pulse - ιστορικά το πρώτο, χρησιμοποιήθηκε κυρίως σε τηλέφωνα με περιστροφικό dialer. Η κλήση πραγματοποιείται λόγω του διαδοχικού κλεισίματος και ανοίγματος της τηλεφωνικής γραμμής σύμφωνα με το ψηφίο που καλέσατε.
  • Tone - κλήση με κωδικούς DTMF (Dual-Tone Multi-Frequency) - κάθε κουμπί του τηλεφώνου έχει τον δικό του συνδυασμό δύο ημιτονοειδών σημάτων (τόνων). Εκτελώντας τον αλγόριθμο Goertzel, είναι αρκετά εύκολο να προσδιορίσετε το πατημένο κουμπί.

Κατά τη διάρκεια μιας συνομιλίας, η μέθοδος παλμού δεν είναι βολική για τη μετάδοση του πατημένου κουμπιού. Έτσι, χρειάζεται περίπου 1 δευτερόλεπτο για τη μετάδοση του "0" (10 παλμοί των 100 ms ο καθένας: 60 ms - αλλαγή γραμμής, 40 ms - κλείσιμο γραμμής) συν 200 ms για μια παύση μεταξύ των ψηφίων. Επιπλέον, συχνά ακούγονται χαρακτηριστικά κλικ κατά τη διάρκεια της παλμικής κλήσης. Επομένως, στη συμβατική τηλεφωνία χρησιμοποιείται μόνο η τονική λειτουργία πρόσβασης στο VAS.

Στην τηλεφωνία VoIP, οι πληροφορίες σχετικά με τα πατημένα κουμπιά μπορούν να μεταδοθούν με τρεις τρόπους:

  1. DTMF Inband - η δημιουργία ενός ήχου ήχου και η μετάδοσή του μέσα στα δεδομένα ήχου (τρέχον κανάλι RTP) είναι ένας κανονικός επιλογέας ήχου.
  2. RFC2833 - δημιουργείται ένα ειδικό πακέτο RTP τηλεφωνικής εκδήλωσης, το οποίο περιέχει πληροφορίες σχετικά με το πατημένο πλήκτρο, την ένταση και τη διάρκεια. Ο αριθμός της μορφής RTP με την οποία θα μεταδοθούν τα πακέτα RFC2833 DTMF καθορίζεται στο σώμα του μηνύματος SDP. Για παράδειγμα: a=rtpmap:98 phone-event/8000.
  3. SIP INFO - σχηματίζεται ένα πακέτο SIP INFO με πληροφορίες σχετικά με το πατημένο πλήκτρο, την ένταση και τη διάρκεια.

Η μετάδοση DTMF εντός δεδομένων ήχου (Inband) έχει αρκετά μειονεκτήματα - πρόκειται για γενικούς πόρους κατά τη δημιουργία / ενσωμάτωση τόνων και κατά την ανίχνευση τους, περιορισμούς ορισμένων κωδικοποιητών που μπορούν να παραμορφώσουν τους κωδικούς DTMF και κακή αξιοπιστία μετάδοσης (αν χαθεί μέρος των πακέτων, τότε μπορεί να γίνει ανίχνευση πατώντας δύο φορές το ίδιο πλήκτρο).

Η κύρια διαφορά μεταξύ DTMF RFC2833 και SIP INFO: εάν ο διακομιστής μεσολάβησης SIP έχει τη δυνατότητα να μεταφέρει RTP απευθείας μεταξύ συνδρομητών παρακάμπτοντας τον ίδιο τον διακομιστή (για παράδειγμα, canreinvite=yes με αστερίσκο), τότε ο διακομιστής δεν θα παρατηρήσει τα πακέτα RFC2833, ως αποτέλεσμα του οποίου γίνονται μη διαθέσιμες υπηρεσίες DVO. Τα πακέτα SIP μεταδίδονται πάντα μέσω διακομιστών μεσολάβησης SIP, επομένως το VAS θα λειτουργεί πάντα.

4. Μετάδοση φωνής και φαξ

Όπως ήδη αναφέρθηκε, το πρωτόκολλο RTP χρησιμοποιείται για τη μεταφορά δεδομένων πολυμέσων. Τα πακέτα RTP καθορίζουν πάντα τη μορφή των μεταδιδόμενων δεδομένων (κωδικοποιητής).

Υπάρχουν πολλοί διαφορετικοί κωδικοποιητές για μετάδοση φωνής, με διαφορετικές αναλογίες bitrate / ποιότητα / πολυπλοκότητα, υπάρχουν ανοιχτοί και κλειστοί. Οποιοδήποτε softphone πρέπει να έχει υποστήριξη για κωδικοποιητές G.711 alaw/ulaw, η εφαρμογή τους είναι πολύ απλή, η ποιότητα ήχου είναι καλή, αλλά απαιτούν εύρος ζώνης 64 kbps. Για παράδειγμα, ο κωδικοποιητής G.729 απαιτεί μόνο 8 kbps, αλλά έχει μεγάλη ένταση CPU και δεν είναι δωρεάν.

Για τη μετάδοση φαξ, χρησιμοποιείται συνήθως είτε ο κωδικοποιητής G.711 είτε το πρωτόκολλο T.38. Η αποστολή φαξ χρησιμοποιώντας τον κωδικοποιητή G.711 αντιστοιχεί στην αποστολή φαξ χρησιμοποιώντας το πρωτόκολλο T.30, σαν να μεταδόθηκε το φαξ μέσω κανονικής τηλεφωνικής γραμμής, αλλά ταυτόχρονα αναλογικό σήμααπό τη γραμμή ψηφιοποιείται σύμφωνα με το νόμο alaw/ulaw. Αυτό ονομάζεται επίσης αποστολή φαξ Inband T.30.

Τα φαξ που χρησιμοποιούν το πρωτόκολλο T.30 διαπραγματεύονται τις παραμέτρους τους: ταχύτητα μετάδοσης, μέγεθος datagram, τύπος διόρθωσης σφάλματος. Το πρωτόκολλο T.38 βασίζεται στο πρωτόκολλο T.30, αλλά σε αντίθεση με τη μετάδοση Inband, αναλύονται οι εντολές T.30 που δημιουργούνται και λαμβάνονται. Έτσι, δεν μεταδίδονται ακατέργαστα δεδομένα, αλλά αναγνωρίζονται εντολές ελέγχου φαξ.

Η εντολή T.38 μεταδίδεται χρησιμοποιώντας το πρωτόκολλο UDPTL, το οποίο είναι πρωτόκολλο που βασίζεται σε UDP και χρησιμοποιείται μόνο για το T.38. Τα πρωτόκολλα TCP και RTP μπορούν επίσης να χρησιμοποιηθούν για τη μετάδοση εντολών T.38, αλλά χρησιμοποιούνται πολύ λιγότερο συχνά.

Τα κύρια πλεονεκτήματα του T.38 είναι ο μειωμένος φόρτος δικτύου και η μεγαλύτερη αξιοπιστία σε σύγκριση με την Inband μετάδοση φαξ.

Η διαδικασία για την αποστολή φαξ σε λειτουργία T.38 είναι η εξής:

  1. Μια κανονική φωνητική σύνδεση δημιουργείται χρησιμοποιώντας οποιονδήποτε κωδικοποιητή.
  2. Όταν τοποθετείται χαρτί στη συσκευή αποστολής φαξ, στέλνει περιοδικά ένα σήμα T.30 CNG (Calling Tone) για να υποδείξει ότι είναι έτοιμο να στείλει φαξ.
  3. Στην πλευρά λήψης, δημιουργείται ένα σήμα T.30 CED (Καλούμενη Αναγνώριση Τερματικού) - αυτή είναι η ετοιμότητα για λήψη φαξ. Αυτό το σήμα αποστέλλεται είτε αφού πατήσετε το κουμπί "Λήψη φαξ" είτε το φαξ το κάνει αυτόματα.
  4. Το σήμα CED ανιχνεύεται στην πλευρά αποστολής και πραγματοποιείται η διαδικασία SIP REINVITE και το μήνυμα SDP υποδεικνύει τον τύπο T.38: m=image 39164 udptl t38.

Αποστολή φαξ μέσω Διαδικτύου κατά προτίμηση σε T.38. Εάν το φαξ πρέπει να μεταδοθεί εντός του γραφείου ή μεταξύ αντικειμένων που έχουν σταθερή σύνδεση, τότε μπορεί να χρησιμοποιηθεί η μετάδοση φαξ Inband T.30. Σε αυτήν την περίπτωση, πριν από την αποστολή ενός φαξ, η διαδικασία ακύρωσης ηχούς πρέπει να απενεργοποιηθεί για να μην προκληθούν πρόσθετες παραμορφώσεις.

Πολύ λεπτομερείς πληροφορίες για το φαξ είναι γραμμένες στο βιβλίο «Fax, Modem, and Text for IP Telephony» των David Hanes και Gonzalo Salgueiro.

5. Ψηφιακή επεξεργασία σήματος (DSP). Διασφάλιση ποιότητας ήχου στην τηλεφωνία IP, παραδείγματα δοκιμών

Έχουμε ασχοληθεί με τα πρωτόκολλα για τη δημιουργία μιας συνεδρίας συνομιλίας (SIP / SDP) και τη μέθοδο μετάδοσης ήχου μέσω καναλιού RTP. Υπήρχε ένα σημαντικό ερώτημα - η ποιότητα του ήχου. Από τη μία πλευρά, η ποιότητα του ήχου καθορίζεται από τον επιλεγμένο κωδικοποιητή. Αλλά από την άλλη πλευρά, χρειάζονται ακόμη πρόσθετες διαδικασίες DSP (DSP - επεξεργασία ψηφιακού σήματος). Αυτές οι διαδικασίες λαμβάνουν υπόψη τις ιδιαιτερότητες της τηλεφωνίας VoIP: δεν χρησιμοποιούνται πάντα ακουστικά υψηλής ποιότητας, υπάρχουν πτώσεις πακέτων στο Διαδίκτυο, μερικές φορές τα πακέτα φτάνουν άνισα, διακίνησηΤα δίκτυα δεν είναι επίσης καουτσούκ.

Βασικές διαδικασίες που βελτιώνουν την ποιότητα του ήχου:

VAD(Ανιχνευτής φωνητικής δραστηριότητας) - μια διαδικασία για τον προσδιορισμό των καρέ που περιέχουν φωνή (ενεργό πλαίσιο φωνής) ή σιωπή (ανενεργό πλαίσιο φωνής). Αυτός ο διαχωρισμός μπορεί να μειώσει σημαντικά το φορτίο του δικτύου, καθώς η μετάδοση πληροφοριών σχετικά με τη σιωπή απαιτεί πολύ λιγότερα δεδομένα (αρκεί να μεταδοθεί το επίπεδο θορύβου ή καθόλου).


Ορισμένοι κωδικοποιητές περιέχουν ήδη διαδικασίες VAD (GSM, G.729), ενώ άλλοι (G.711, G.722, G.726) πρέπει να τις εφαρμόσουν.

Εάν το VAD έχει ρυθμιστεί να μεταδίδει πληροφορίες σχετικά με το επίπεδο θορύβου, τότε μεταδίδονται ειδικά πακέτα SID (Silence Insertion Descriptor) στη μορφή RTP 13ου CN (Comfort Noise).

Αξίζει να σημειωθεί ότι τα πακέτα SID μπορούν να απορριφθούν από διακομιστές μεσολάβησης SIP, επομένως για επαλήθευση συνιστάται να ρυθμίσετε τις παραμέτρους της μετάδοσης της κίνησης RTP από τους διακομιστές SIP.

CNG(παραγωγή θορύβου άνεσης) - μια διαδικασία για τη δημιουργία θορύβου άνεσης που βασίζεται σε πληροφορίες από πακέτα SID. Έτσι, το VAD και το CNG συνεργάζονται, αλλά η διαδικασία CNG έχει πολύ μικρότερη ζήτηση, καθώς δεν είναι πάντα δυνατό να παρατηρήσετε τη δουλειά του CNG, ειδικά σε χαμηλή ένταση.

PLC(απόκρυψη απώλειας πακέτων) - η διαδικασία για την επαναφορά της ροής ήχου σε περίπτωση απώλειας πακέτων. Ακόμη και με απώλεια πακέτων 50%, ένας καλός αλγόριθμος PLC μπορεί να επιτύχει αποδεκτή ποιότητα ομιλίας. Στρεβλώσεις, φυσικά, θα υπάρξουν, αλλά μπορείτε να ξεχωρίσετε τις λέξεις.

Ο ευκολότερος τρόπος για να εξομοιώσετε την απώλεια πακέτων (σε Linux) είναι να χρησιμοποιήσετε το βοηθητικό πρόγραμμα tc από το πακέτο iproute με τη μονάδα netem. Εκτελεί μόνο διαμόρφωση εξερχόμενης κίνησης.

Ένα παράδειγμα εκτέλεσης εξομοίωσης δικτύου με απώλεια πακέτων 50%:

Tc qdisc αλλαγή dev eth1 root netem απώλεια 50%

Απενεργοποίηση εξομοίωσης:

Tc qdisc del dev eth1 root

buffer jitter- μια διαδικασία για την απαλλαγή από το φαινόμενο jitter, όταν το διάστημα μεταξύ των ληφθέντων πακέτων αλλάζει πολύ και η οποία, στη χειρότερη περίπτωση, οδηγεί σε εσφαλμένη σειρά των ληφθέντων πακέτων. Επίσης, αυτό το αποτέλεσμα οδηγεί σε διακοπές ομιλίας. Για να εξαλειφθεί το φαινόμενο jitter, είναι απαραίτητο να εφαρμοστεί μια προσωρινή μνήμη πακέτων στην πλευρά λήψης με μέγεθος επαρκές για να επαναφέρει την αρχική σειρά αποστολής πακέτων σε ένα δεδομένο διάστημα.

Μπορείτε επίσης να εξομοιώσετε το εφέ jitter χρησιμοποιώντας το βοηθητικό πρόγραμμα tc (το διάστημα μεταξύ της αναμενόμενης στιγμής άφιξης του πακέτου και της πραγματικής μπορεί να είναι έως και 500 ms):


tc qdisc προσθήκη dev eth1 root netem καθυστέρηση 500ms αναδιάταξη 99%

LEC(Γραμμή Echo Canceller) - μια διαδικασία για την εξάλειψη της τοπικής ηχούς όταν ο απομακρυσμένος συνδρομητής αρχίζει να ακούει τη δική του φωνή. Η ουσία του είναι να αφαιρέσει το λαμβανόμενο σήμα από το μεταδιδόμενο σήμα με έναν ορισμένο συντελεστή.

Η ηχώ μπορεί να συμβεί για διάφορους λόγους:

  • ακουστική ηχώ λόγω διαδρομής ήχου κακής ποιότητας (ο ήχος από το ηχείο εισέρχεται στο μικρόφωνο).
  • ηλεκτρική ηχώ λόγω αναντιστοιχίας σύνθετης αντίστασης μεταξύ τηλέφωνοκαι μονάδα SLIC. Στις περισσότερες περιπτώσεις, αυτό συμβαίνει σε κυκλώματα που μετατρέπουν μια τηλεφωνική γραμμή 4 καλωδίων σε 2 καλωδίων.

Η εύρεση του λόγου (ακουστική ή ηλεκτρική ηχώ) δεν είναι δύσκολη: ο συνδρομητής στην πλευρά του οποίου δημιουργείται η ηχώ πρέπει να απενεργοποιήσει το μικρόφωνο. Εάν η ηχώ εξακολουθεί να εμφανίζεται, τότε είναι ηλεκτρική.


Για περισσότερες πληροφορίες σχετικά με τις διαδικασίες VoIP και DSP, ανατρέξτε στην ενότητα Επεξεργασία σήματος φωνής και φαξ VoIP. Μια προεπισκόπηση είναι διαθέσιμη στα Βιβλία Google.

Αυτό ολοκληρώνει μια επιφανειακή θεωρητική επισκόπηση του VoIP. Εάν σας ενδιαφέρει, μπορείτε να εξετάσετε ένα παράδειγμα πρακτικής εφαρμογής ενός mini-PBX σε μια πραγματική πλατφόρμα υλικού στο επόμενο άρθρο.

[!?] Ερωτήσεις και σχόλια είναι ευπρόσδεκτα. Θα απαντηθούν από τον συγγραφέα του άρθρου Dmitry Valento, μηχανικός λογισμικού στο κέντρο σχεδιασμού ηλεκτρονικών Promwad.

Ετικέτες:

  • για αρχάριους
  • για αρχάριους
Προσθέστε ετικέτες