Μετρώντας ένα πακέτο G.729 μέσα από σήραγγα IPsec
Ένα επεξεργασμένο παράδειγμα G.729 δείχνει πώς αθροίζονται το ωφέλιμο φορτίο, το RTP, το ESP και η πλαισίωση Ethernet, και γιατί η ίδια κλήση κοστίζει διαφορετικό εύρος ζώνης σε κάθε όριο.
Η φωνή πάνω από IPsec αναφέρεται ως bitrate κωδικοποιητή, και αυτό το νούμερο είναι λάθος σε κάθε όριο εκτός από το όριο του ίδιου του κωδικοποιητή. Ο ήχος είναι 8 kbit/s, το πακέτο που τον μεταφέρει είναι μεγαλύτερο, το περίβλημα ESP είναι ακόμη μεγαλύτερο, και το πλαίσιο Ethernet προσθέτει πλαισίωση που καμία καταγραφή στη σήραγγα δεν δείχνει. Η μέτρηση ενός πακέτου από μια δηλωμένη μορφή είναι ο μόνος τρόπος να μάθει κανείς τι πρέπει πραγματικά να μεταφέρει ο φυσικός σύνδεσμος. Η ανάλυση παρακάτω το κάνει μόνο για μία κατεύθυνση, και κάθε νούμερο εδώ είναι αριθμητική, όχι μέτρηση.
Ξεκινήστε από μια επιλογή πακετοποίησης, όχι από ένα νούμερο κωδικοποιητή
Ένας πίνακας κωδικοποιητή δίνει τον ρυθμό του ωφέλιμου φορτίου και τίποτα άλλο: το G.729 αποδίδει 8 kbit/s, δηλαδή 30 byte ήχου κάθε 30 ms. Δεν λέει τίποτα για κεφαλίδες, προστασία ή πλαισίωση, και αυτά τα τρία κυριαρχούν στο αποτέλεσμα. Το διάστημα είναι επιλογή πολιτικής στην οποία πρέπει να συμφωνήσουν και τα δύο άκρα, οπότε διαλέξτε το πρώτο και δηλώστε το, γιατί κάθε επόμενο νούμερο εξαρτάται από αυτή τη μία απόφαση.
Αυτό το παράδειγμα χρησιμοποιεί 30 ms, άρα ο ρυθμός πακέτων είναι 33.3 ανά δευτερόλεπτο. Υποθέτει κεφαλίδα RTP 12 byte, κεφαλίδα UDP 8 byte και εσωτερική κεφαλίδα IPv4 20 byte χωρίς επιλογές, και καθόλου SRTP, συμπίεση κεφαλίδων ή γέμισμα εμπιστευτικότητας ροής κίνησης· οποιαδήποτε αλλαγή μετακινεί και τον προϋπολογισμό, γι' αυτό οι υποθέσεις ανήκουν δίπλα στην απάντηση.
Προσθέστε τις εσωτερικές κεφαλίδες και μετά το περίβλημα ESP
Η εφαρμογή στέλνει ωφέλιμο φορτίο συν RTP συν UDP συν IP, που με αυτή την πακετοποίηση είναι 70 byte. Αυτή η εσωτερική ροή βγαίνει 18.7 kbit/s, ήδη πάνω από το διπλάσιο του ρυθμού του κωδικοποιητή, γιατί οι κεφαλίδες και όχι ο ήχος αποτελούν το μεγαλύτερο μέρος του πακέτου. Κανένα από αυτά τα byte δεν είναι φωνή· είναι το κόστος της διευθυνσιοδότησης και της σειριοθέτησης. Μια καταγραφή πάνω από τη σήραγγα δείχνει ακριβώς αυτό το νούμερο, και είναι αυτό που επικαλούνται όσοι λένε ότι η κλήση είναι μικρή.
Είναι και το νούμερο που δεν φτάνει ποτέ στο καλώδιο. Η λειτουργία σήραγγας ESP προσθέτει SPI και αριθμό ακολουθίας 8 byte, ρητό IV 8 byte για AES-GCM, trailer 2 byte και ετικέτα πιστοποίησης 16 byte. Το ωφέλιμο φορτίο των 70 byte μαζί με το trailer φτάνει στα 72, που ήδη ικανοποιεί τη στοίχιση των τεσσάρων byte, οπότε εδώ δεν χρειάζεται επιπλέον γέμισμα.RFC 4106 καθορίζει τα μεγέθη του IV και της ετικέτας για το GCM, και τα δύο ανήκουν στην αριθμητική και όχι σε υποσημείωση:
30 payload, G.729 at 30 ms
12 RTP
8 UDP
20 inner IPv4
--
70 inner IP packet
8 ESP SPI and sequence
8 explicit IV
2 pad length and next header
16 authentication tag
--
104 ESP packetΠροσθέστε τις εξωτερικές κεφαλίδες που απαιτεί η διέλευση NAT
Έξω από το περίβλημα ESP βρίσκονται μια εξωτερική κεφαλίδα IPv4 20 byte και μια κεφαλίδα UDP 8 byte για διέλευση NAT, οπότε το πακέτο γίνεται 132 byte. Η ενθυλάκωση UDP υπάρχει επειδή το πακέτο πρέπει να επιβιώσει από μια συσκευή μετάφρασης ανάμεσα στους ομότιμους, και αλλάζει το εξωτερικό σχήμα χωρίς να αγγίζει το προστατευμένο φορτίο. Με 33.3 πακέτα ανά δευτερόλεπτο, τα 132 byte είναι περίπου 35.2 kbit/s, δηλαδή περίπου τετραπλάσια από τον ονομαστικό ρυθμό του κωδικοποιητή.
Ούτε η ετικέτα ούτε το IV μπορούν να αφαιρεθούν από την εκτίμηση για να γίνει μικρότερη, γιατί και τα δύο είναι μέρος αυτού που θα μεταφέρει πραγματικά ο σύνδεσμος. Μια εκτίμηση που τα παραλείπει περιγράφει ένα πακέτο που ο δέκτης θα απέρριπτε. Το ίδιο ισχύει για το trailer, που υπάρχει για να σηματοδοτεί το όριο του φορτίου και την επόμενη κεφαλίδα μέσα στην προστατευμένη περιοχή.
Ονομάστε το όριο πριν παραθέσετε το νούμερο
Ένα νούμερο εξωτερικού IP εξακολουθεί να αποκλείει την πλαισίωση Ethernet. Ένας σύνδεσμος πρόσβασης με ή χωρίς ετικέτα προσθέτει κεφαλίδα MAC 14 byte και ακολουθία ελέγχου πλαισίου 4 byte, κάνοντας το πλαίσιο 150 byte, που είναι το μέγεθος που μετρά μια θύρα μεταγωγέα. Με τον ίδιο ρυθμό πακέτων αυτό είναι 40 kbit/s, πέντε φορές τον ρυθμό του κωδικοποιητή, και η διαφορά δεν είναι σπατάλη αλλά το κόστος της μεταφοράς.
| Boundary | Packet size | Rate at 33.3 packets/s | What it counts |
|---|---|---|---|
| Codec payload | 30 bytes | 8.0 kbit/s | The audio alone |
| Inner IP packet | 70 bytes | 18.7 kbit/s | Application headers included |
| Outer IP packet | 132 bytes | 35.2 kbit/s | ESP and NAT-T included |
| Ethernet frame | 150 bytes | 40.0 kbit/s | Link framing included |
Το νούμερο των 40 kbit/s εξακολουθεί να αποκλείει το προοίμιο, το μεσοδιάστημα μεταξύ πλαισίων, τις ετικέτες VLAN, την ενθυλάκωση παρόχου, το RTCP, τη σηματοδοσία και τον ήχο που ταξιδεύει προς την άλλη κατεύθυνση. Είναι εκτίμηση ανά κατεύθυνση, όχι δέσμευση συνδέσμου, και το να παρατίθεται ως τέτοια υπερεκτιμά τι πρέπει να δεσμεύσει ο σύνδεσμος σε ένα σημείο και το υποεκτιμά σε άλλο. Μια καταγραφή στον κεντρικό υπολογιστή μπορεί επίσης να χάσει πλαισίωση που προσθέτει ο σύνδεσμος, γι' αυτό το όριο πρέπει να ονομάζεται δίπλα στο νούμερο, και γι' αυτό ένας πίνακας ορίων είναι πιο χρήσιμος από ένα μόνο νούμερο τίτλου. Δεσμεύστε ξεχωριστά για την κατεύθυνση που δεν μετρήσατε.
Ελέγξτε την αριθμητική με τη διεπαφή
Πριν εμπιστευτείτε την εκτίμηση, συγκρίνετέ την με ό,τι αναφέρει η διεπαφή για γνωστό αριθμό πακέτων. Καταγράψτε στη φυσική διεπαφή και όχι στη συσκευή της σήραγγας, ώστε να περιλαμβάνεται η πλαισίωση που προσπαθείτε να υπολογίσετε, και περιμένετε μια μικρή απόκλιση και όχι τέλεια αντιστοιχία.
sudo tcpdump -ni eth0 -c 50 'udp port 4500'
ip -s link show eth0Η καταγραφή επιβεβαιώνει το εξωτερικό μέγεθος πακέτου, ενώ οι μετρητές της διεπαφής δείχνουν τον ρυθμό μαζί με την πλαισίωση. Αν τα δύο διαφέρουν περίπου κατά το περιθώριο Ethernet, η αριθμητική είναι σωστή και μόνο το όριο είχε λάθος όνομα. Διαφορά πολύ μεγαλύτερη από μία κεφαλίδα πλαισίου υποδεικνύει κάτι άλλο στον σύνδεσμο, όπως επαναμεταδόσεις ή άλλη ροή που μοιράζεται τη διεπαφή. Γράψτε το διάστημα πακετοποίησης, τη σουίτα προστασίας και το όριο δίπλα στο νούμερο, γιατί μια εκτίμηση χωρίς αυτά τα τρία παρατίθεται ως μέτρηση από τον επόμενο που θα τη διαβάσει.