Əvvəlki kursda canlı insan səsinin G.711, AMR və ya Opus kodeklərinin rəqəmsal ani qiymətlərinə necə çevrildiyini və hər 20 millisaniyədən bir RTP paketləri içində IP şəbəkəsi ilə necə uçduğunu öyrəndiniz. Lakin ilk RTP səs paketi telefonu tərk etməzdən əvvəl, planetin müxtəlif uclarındakı iki qurğu bir-birini tapmalı, cari IP ünvanlarını öyrənməli, zəng edilən abunəçinin boş olub-olmadığını yoxlamalı, ortaq audiokodek barədə razılaşmalı və danışıq bitdikdə resursları səliqə ilə azad etməlidir. Bu işi seansların qurulması protokolu — SIP (Session Initiation Protocol) yerinə yetirir. Bu dərsdə biz SIP-in nə olduğunu, keçmişin ağır telekom standartlarına niyə qalib gəldiyini, siqnalizasiya ilə media axınının necə ayrıldığını və SIP-in bu gün harada işlədiyini araşdıracağıq.
Məqsəd və nə bilmək lazımdır
Dərsdən sonra siz bacaracaqsınız:
SIPprotokolunun təyinatını ifadə etməyi vəRFC 3261standartına görə onun beş əsas vəzifəsini sadalamağı;- siqnalizasiya müstəvisi (
SIP+SDP) ilə media verilənləri müstəvisinin (RTP/RTCP) fundamental ayrılmasını izah etməyi; - klassik «SIP trapesiyasını» izləməyi (niyə siqnalizasiya domen serverlərindən,
RTPsəsi isə birbaşa telefonlar arasında gedir); SIParxitekturasını (IETF RFC 2543/RFC 3261) köhnəITU-T H.323steki ilə müqayisə etməyi vəSIP-in tətbiq sahələrini göstərməyi.
Əvvəlcədən nəyi bilmək lazımdır: Mikrofondan IP paketlərinə qədər və geriyə (VoIP-də nitqin ötürülmə zənciri), RTP başlığı və paketin sahələri (media axınının UDP ilə ötürülməsi) dərsləri, həmçinin ipnet kursundan TCP/IP modeli, UDP/TCP portları, DNS domen adları sistemi və TLS təhlükəsizliyi mövzuları.
Həyatdan tapşırıq
Şirkət ofisi IP-telefoniyaya keçirib: işçilərin masalarında 192.168.10.0/24 lokal şəbəkəsində IP-telefonlar dayanır, ofis ATS-inin siqnalizasiya serveri isə qorunan bulud məlumat mərkəzində 198.51.100.10 ünvanında yerləşir. Təhlükəsizlik administratoru şəbəkə ekranında (firewall) bütün telefonlardan yalnız bulud serverinin 198.51.100.10 ünvanına standart UDP 5060 portuna çıxış açıb. İki qonşu masa arasında sınaq zəngi zamanı hər iki telefon zəng çalır, ekranda həmkarın adı görünür, danışıq saniyəölçəni işləyir — lakin dəstəklərdə tam sükut hökm sürür. Çağırışın niyə uğurla qurulduğunu, amma səsin niyə gəlmədiyini anlamaq üçün mühəndis SIP protokolunun məsuliyyət sərhədlərini dəqiq bilməlidir: siqnalizasiya nə edir və bundan sonra RTP səs paketləri haraya və necə gedir.
SIP nədir və onun beş əsas vəzifəsi
SIP (Session Initiation Protocol — seansın başlanması protokolu) — IP şəbəkələrində iki və ya daha çox iştirakçı arasında multimedia rabitə seanslarının yaradılması, dəyişdirilməsi və tamamlanması üçün nəzərdə tutulmuş tətbiq səviyyəli siqnalizasiya (idarəetmə müstəvisi, control plane) protokoludur. Seans adi telefon danışığı, videozəng, audiokonfrans və ya ani mesaj mübadiləsi ola bilər.
Məişət analogiyası ilə SIP görüş təşkilatçısı olan katib kimi işləyir: o, lazımi həmsöhbəti tapır, onunla əlaqə saxlayır, ünsiyyət dilini və danışıq otağının nömrəsini razılaşdırır, iştirakçılar birbaşa danışmağa başladıqda isə görüşün sonuna qədər kənara çəkilir və sonda söhbətin bitməsini rəsmiləşdirir.
Baza standartı IETF RFC 3261 (bölmə 2) üzrə SIP protokolu seansın qurulması və idarə olunmasının beş vəzifəsini həll edir:
- İstifadəçinin yerləşməsinin təyini (
User Location): zəng edilən abunəçinin hazırda arxasında əyləşdiyi son qurğunun cari IP ünvanını və portunu müəyyən etmək (çünki işçi noutbuku evdə, ofisdə və ya ezamiyyətdə qoşa bilər). - İstifadəçinin əlçatanlığının təyini (
User Availability): zəng edilən abunəçinin danışıqda iştirak etməyə hazır olub-olmadığını yoxlamaq (o boşdur, başqa xətlə məşğuldur, yoxsa dəstəyi qaldırmır). - İstifadəçinin imkanlarının təyini (
User Capabilities): media növünü (yalnız səs və ya səs + video) və ortaq kodeki (G.711,G.722,AMR,Opus) vəUDPport nömrələrini razılaşdırmaq. - Seansın qurulması (
Session Setup): zəng edilən abunəçinin aparatına çağırış siqnalı («zəng») vermək və hər iki tərəfdə birləşmə parametrlərini təsbit etmək. - Seansın idarə edilməsi (
Session Management): danışıq gedişində parametrləri dəyişdirmək (zəngi saxlamağa qoymaq, videonu qoşmaq, zəngi başqa işçiyə yönləndirmək) və çağırışı qaydasında tamamlamaq.
Siqnalizasiya və medianın ayrılması: niyə SIP «bütün VoIP» deyil
IETF mühəndislərinin SIP-in təməlinə qoyduğu əsas arxitektur prinsip — modulluq və idarəetmə müstəvisi (control plane) ilə istifadəçi müstəvisinin (user / media plane) ciddi ayrılmasıdır. SIP protokolu heç vaxt öz daxilində rəqəmsallaşdırılmış səsi və ya videokadrları daşımır. Bunun əvəzinə o, digər ixtisaslaşmış protokollarla birgə işləyir:
SIP (RFC 3261)— siqnalizasiya zərfi və danışıqların aparılması qaydaları: kim zəng edir, kimə zəng edir, sorğu hansı serverlərdən keçir və çağırış qəbul edilibmi. Susmaya görə5060portunu (UDPvəTCPüçün) və5061portunu (qorunanTLSbirləşməsi üçün) istifadə edir.SDP (Session Description Protocol, RFC 8866)—SIPmesajlarının içərisinə məktubun gövdəsi kimi qoyulan mətn formatlı «media parametrləri anketi».SDPanketində qurğu səs üçün öz IP ünvanını,UDPport nömrəsini və dəstəklədiyi kodeklərin siyahısını yazır (kursun 7-ci bölməsində ətraflı təhlil olunur).RTP / RTCP (RFC 3550)vəSRTP (RFC 3711)—SIPdanışıqları bitdikdən sonra səs paketlərinin özünü cüt dinamikUDPportları ilə (adətən10000–20000və ya16384–32767diapazonundan) birbaşa qurğular arasında daşıyan real vaxt nəqliyyat protokolları.DNS (RFC 3263)— telefona və ya serverə qarşı domenin siqnalizasiya serverini tapmağa və transport protokolunu seçməyə kömək edən domen adları sistemi.
SIP trapesiyası (SIP Trapezoid)
Siqnalizasiya və medianın ayrılması sayəsində onların paketlərinin şəbəkədəki yolu demək olar ki, həmişə fərqlənir. Bu klassik marşrutlaşdırma sxemi SIP trapesiyası (SIP Trapezoid) adlanır.
alice@atlanta.com abunəçisi bob@biloxi.com abunəçisinə zəng etdikdə, Alisanın telefonu Bobun telefonunun cari IP ünvanını bilmir. Buna görə SIP siqnalizasiya mesajları trapesiyanın yan tərəfi ilə atlanta.com domen serverinə qalxır, biloxi.com serverinə ötürülür və Bobun telefonuna enir (1 → 2 → 3 addımları). Lakin hər iki telefon SDP anketlərini mübadilə edib bir-birinin real IP ünvanlarını öyrənən kimi, RTP səs axını (4-cü addım, trapesiyanın alt oturacağı) siqnalizasiya serverlərindən yan keçərək birbaşa A telefonu ilə B telefonu arasında uçur! Bu, siqnalizasiya serverlərini giqabitlərlə audio axınlardan azad edir və səs gecikməsini minimuma endirir.
Nümunənin təhlili: siqnalizasiya serverinə və media traktına düşən yükün hesablanması
SIP və RTP-nin ayrılmasının nə üçün bir yığcam siqnalizasiya serverinə eyni vaxtda on minlərlə danışığa xidmət etməyə imkan verdiyini rəqəmlərlə nəzərdən keçirək:
=== SIP siqnalizasiyası və RTP media axını trafikinin müqayisəsi (1 zəng, 120 s) ===
1. Siqnalizasiya müstəvisi (SIP, port 5060):
Bütün zəng üzrə mesajların sayı: ~6–8 paket (qurulma və ayrılma)
SIP mesajının orta ölçüsü: ~600 bayt
2 dəqiqə ərzində SIP-in həcmi: 7 * 600 = 4 200 bayt (~4,2 KB)
Danışıq zamanı SIP zolağı: 0 bit/s (söhbət fazasında SIP susur!)
2. Media verilənləri müstəvisi (RTP, G.711 kodeki, ptime = 20 ms):
Bir istiqamətdə paket tempi: 50 paket/s (100 paket/s dupleks)
Səsli Ethernet kadrının ölçüsü: 218 bayt (160 B səs + 58 B başlıqlar)
120 saniyədə RTP paketlərinin sayı: 100 pak/s * 120 s = 12 000 paket
2 dəqiqə ərzində RTP-nin həcmi: 12 000 * 218 = 2 616 000 bayt (~2,62 MB)
RTP həcminin SIP-ə nisbəti: 2 616 000 / 4 200 = 622,8x (623 dəfə çox!)İkidəqiqəlik aktiv danışıq zamanı siqnalizasiya serveri yalnız zəngin başlanğıcında və sonunda cəmi 4,2 KB verilənləri emal edir, halbuki telefonlar arasında birbaşa 2,62 MB həcmində RTP səs paketləri ötürülür.
Yaranma tarixi: H.323 və RFC 2543-dən RFC 3261-ə qədər
1990-cı illərin ortalarında IP-telefoniyanın ilk standartı ITU-T H.323 spesifikasiyalar paketi (1996-cı il) oldu. O, ənənəvi ISDN (Q.931) telefoniyası dünyasından çıxmışdı: mesajlar mürəkkəb ASN.1 PER ikilik formatı ilə kodlaşdırılırdı, bir zəng üçün çoxlu paralel TCP birləşmələri (H.225.0, H.245) açmaq tələb olunurdu, standartın özü isə minlərlə səhifədən ibarət idi və İnternetin veb-xidmətləri ilə çətin uzlaşırdı.
Elə həmin 1996-cı ildə IETF MMUSIC (Multiparty Multimedia Session Control) işçi qrupunda Henninq Şultsrinn (Henning Schulzrinne) və Mark Hendli (Mark Handley) tamamilə fərqli yanaşma təklif etdilər: telefoniya siqnalizasiyasını HTTP veb-protokolu və SMTP elektron poçtu kimi sadə və mətn əsaslı etmək.
| Xarakteristika | ITU-T H.323 steki | IETF SIP protokolu (RFC 3261) |
|---|---|---|
| Standartlaşdırma təşkilatı | Beynəlxalq Telekommunikasiya İttifaqı (ITU-T) | İnternet Mühəndisliyi Şurası (IETF) |
| Mesajların kodlaşdırılması | Mürəkkəb ikilik (ASN.1 PER) | İnsan tərəfindən oxunan mətn (UTF-8, sətirlər) |
| Arxitektur prototipi | ISDN Q.931 telefon siqnalizasiyası | HTTP/1.1 veb-protokolu və SMTP poçtu |
| Standart siqnalizasiya portları | TCP 1720 + dinamik H.245 portları | Vahid port 5060 (UDP/TCP), 5061 (TLS) |
| Miqyaslanma və genişlənmə | Modulların sərt bağlılığı, ağır təhlil | Sadə mətn başlıqları, asan proksiləmə |
SIP standartının təkamülü iki əsas mərhələdən keçmişdir:
- Mart 1999-cu il —
RFC 2543: H. Şultsrinn, M. Hendli, E. Skuler və C. Rozenberq tərəfindən hazırlanmış2.0versiyalı (SIP/2.0) ilk rəsmiSIPspesifikasiyası. Protokol dərhal IP-telefon istehsalçıları və operatorlar arasında məşhurlaşdı. - İyun 2002-ci il —
RFC 3261:RFC 2543sənədini tamamilə əvəz edən (obsoleted), əsaslı şəkildə yenidən işlənmiş və dəqiqləşdirilmiş standart (müəlliflər: C. Rozenberq, H. Şultsrinn, Q. Kamarillo, A. Conson, C. Peterson, R. Sparks, M. Hendli, E. Skuler). Artıq buraxılmış avadanlıqlarla uyğunluğu pozmamaq üçün mesajlardakı protokol versiyasının nömrəsi əvvəlki kimi —SIP/2.0saxlanıldı.
Bu gün SIP hər yerdə tətbiq olunur:
- Korporativ telefoniya (ofis ATS-i / PBX / UC): masaüstü IP-telefonların, proqram softfonlarının və videoterminalların şirkət serverinə (Asterisk, FreeSWITCH, Cisco CUCM) qoşulması.
- Operatorlararası və müştəri qoşulmaları (
SIP Trunking): köhnəlmişE1 ISDN PRIvəSS7axınları əvəzinə ofis ATS-lərinin rabitə operatorlarına qoşulması və operatorların bir-biri ilə birləşməsi. - 4G və 5G mobil şəbəkələri:
3GPPkonsorsiumuSIP-i 4G şəbəkələrindəVoLTE,VoWiFivə 5G şəbəkələrindəVoNRzənglərinin işlədiyiIMSmultimedia alt sisteminin (trekin ayrıca kursunda öyrənilir) əsas siqnalizasiya protokolu kimi seçmişdir.
Nə xarab ola bilər və bunu necə tapmaq olar
| Simptom | Ehtimal olunan səbəb | Nəyi yoxlamalı |
|---|---|---|
| Telefon zəng çalır və birləşdirir, lakin dəstəklərdə tam sükutdur | Şəbəkə ekranı SIP-i (5060) buraxır, lakin telefonlar arasındakı birbaşa RTP axınını bloklayır | RTP UDP port diapazonu (10000–20000) üçün firewall qaydalarını və SDP blokundakı IP ünvanları |
| Telefon qeydiyyatdan keçə bilmir və çağırış getmir | ATS serverinə qədər UDP/TCP 5060 (və ya TLS 5061) siqnalizasiya portu bağlıdır | Serverin IP ünvanının əlçatanlığını və Wireshark-da sip süzgəci ilə SIP paketlərinin olmasını |
| Nadir kodek seçildikdə zəng dərhal qırılır | Qurğular SDP razılaşdırması zamanı heç bir ortaq audiokodek tapmayıb | Hər iki telefonun sazlamalarında aktiv kodeklərin (G.711 A-law/u-law, Opus) siyahısını |
⚠️ Heç vaxt
SIPsiqnalizasiya marşrutunuRTPsəs axınının marşrutu ilə qarışdırmayın. Telefonun5060portu ilə ATS serverini görməsi, müxtəlif alt şəbəkələrdəki və yaNATarxasındakı iki telefonun birbaşaRTPpaketləri mübadilə edə biləcəyinə qətiyyən zəmanət vermir!
Təcrübə
- Qabaqcadan deyin. Şirkətin
10.10.1.0/24alt şəbəkəsində 50 IP-telefon və10.10.2.0/24filialında daha 50 IP-telefon quraşdırılıb. Hər iki filial10.10.0.10mərkəzi SIP serverini görür, lakin10.10.1.0/24və10.10.2.0/24alt şəbəkələri arasında birbaşa marşrutlaşdırma giriş siyahısı (ACL) ilə qadağan edilib. Birinci filialdan ikinciyə zəng etdikdə (klassik SIP trapesiyası üzrə) nə baş verəcək? - Yoxlayın. Standart VoIP telefon zəngində protokolların, portların və müstəvilərin paylanmasına baxın:
=== SIP çağırışında protokollar steki ===
Səviyyə / Vəzifə Protokol və standart Susmaya görə transport və port
------------------------ -------------------- ------------------------------
Domen serverinin axtarışı DNS (RFC 3263) UDP / TCP port 53
Seansın qurulması SIP (RFC 3261) UDP / TCP port 5060, TLS 5061
Media parametrləri təsviri SDP (RFC 8866) SIP mesajlarının gövdəsində
Səs və videonun ötürülməsi RTP / SRTP (RFC 3550) UDP cüt portlar (10000-20000)
Media keyfiyyətinə nəzarət RTCP (RFC 3550) UDP tək port (RTP + 1)- İzah edin. Nə üçün 2002-ci ilin iyununda yeni
RFC 3261standartının müəllifləri protokolun versiya sətriniSIP/3.0etmədilər,RFC 2543-də olduğu kimiSIP/2.0saxladılar? - Dəyişdirin. Media axını klassik SIP trapesiyası üzrə birbaşa telefonlar arasında gedirsə, 5 dəqiqəlik danışıq ərzində siqnalizasiya SIP-proksisinin özündən neçə bayt
RTPsəs trafiki (G.711kodeki, hər istiqamətdə hər20ms-dən bir218baytlıq Ethernet paketi) keçəcəyini hesablayın. - Özünüz edin ⭐. Rabitə operatoru
G.711kodeki ilə eyni vaxtda1 000danışığa xidmət edir (hər zəngin dupleksRTPaxını Ethernet səviyyəsində174,4 kbit/stəşkil edir). Operatorun mərkəzi siqnalizasiya qovşağının yalnızSIPsiqnalizasiyasını emal etməsi,RTPaxınlarının isə ondan yan keçərək birbaşa sərhəd media şlüzləri arasında getməsi hesabına nə qədər buraxılış zolağına qənaət edildiyini hesablayın.
Özünüyoxlama
Sual 1. RFC 3261 standartının 2-ci bölməsinə əsasən SIP protokolu hansı beş baza vəzifəni həll edir?
Təhlil. SIP protokolu aşağıdakılara cavabdehdir: 1) istifadəçinin yerləşməsinin təyini (User Location — qurğunun cari IP ünvanının tapılması); 2) əlçatanlığın təyini (User Availability — abunəçinin cavab verməyə hazır olması); 3) imkanların təyini (User Capabilities — SDP vasitəsilə kodeklərin razılaşdırılması); 4) seansın qurulması (Session Setup — zəng siqnalı və parametrlərin təsbiti); 5) seansın idarə edilməsi (Session Management — parametrlərin dəyişdirilməsi, yönləndirmə və zəngin tamamlanması).
Sual 2. SIP çağırışı qurduqdan sonra rəqəmsallaşdırılmış səs ani qiymətlərinin özünü hansı protokol daşıyır və SIP üçün susmaya görə hansı portlar istifadə olunur?
Təhlil.
Siqnalizasiya (Control Plane):
Protokol: içərisinə SDP (RFC 8866) təsviri qoyulmuş SIP (RFC 3261)
Susmaya görə portlar: 5060 (UDP və TCP), 5061 (TLS)
Media traktı (User / Media Plane):
Protokol: RTP (RFC 3550) və ya qorunan SRTP (RFC 3711)
Portlar: SDP anketində razılaşdırılmış dinamik cüt UDP portlarıTəcrübəyə cavablar:
=== Praktiki tapşırıqların cavabları ===
Bənd 1: SIP siqnalizasiyası 10.10.0.10 serveri vasitəsilə uğurla keçəcək (hər iki
telefon zəng çalacaq və birləşəcək), lakin dəstəyi qaldırdıqda tam sükut
olacaq, çünki 10.10.1.0/24 və 10.10.2.0/24 arasında birbaşa RTP ACL ilə bağlıdır.
Bənd 3: Artıq işləyən milyonlarla RFC 2543 qurğusu ilə geriyə uyğunluğu qorumaq üçün
SIP/2.0 versiyası saxlanıldı, yeni mexanizmlər isə genişləndirmələrlə əlavə edildi.
Bənd 4: 0 bayt! Klassik SIP trapesiyasında RTP səs axını birbaşa son telefonlar
arasında gedir və siqnalizasiya SIP-proksisinə ümumiyyətlə daxil olmur.
Bənd 5: 1 000 zəng * 174,4 kbit/s = 174 400 kbit/s = 174,4 Mbit/s fasiləsiz media
trafiki mərkəzi SIP siqnalizasiya serverini yükləmir.Təkrar və növbəti dərsə keçid meyarı
Köməksiz aşağıdakıları edə bilirsinizsə, növbəti dərsə keçin:
RFC 3261standartı üzrəSIPprotokolunun beş vəzifəsini sadalamaq;SIP,SDPvəRTP/RTCProllarını dəqiq ayırmaq və standart5060və5061portlarını söyləmək;SIPtrapesiyasını çəkmək və uğurlu zəng zamanı dəstəkdə nə üçün səsin olmaya biləcəyini izah etmək.
Standartlar və mənbələr
- IETF RFC 3261 (June 2002) — SIP: Session Initiation Protocol (§1–§2, Overview of Operation).
- IETF RFC 2543 (March 1999) — SIP: Session Initiation Protocol (
SIP/2.0tarixi ilk redaksiyası). - IETF RFC 8866 (January 2021) — SDP: Session Description Protocol.
- IETF RFC 3550 (July 2003) — RTP: A Transport Protocol for Real-Time Applications.