RTP (بروتوكول النقل الآني، RFC 3550) يحمل الصوت أو الفيديو الفعلي بعد أن يتفاوض SIP على الجلسة، عاملًا فوق UDP بترويسة مضغوطة (رقم تسلسل، طابع زمني، SSRC). ويبلّغ RTCP عن الجودة إلى جانبه. ويضيف SRTP (RFC 3711) التشفير والمصادقة إلى RTP، بمفتاح عبر SDES في SDP أو DTLS-SRTP.
RTP: حمل الوسائط
حالما يتفق SIP وSDP على الجلسة، تتدفّق الوسائط نفسها فوق RTP — دائمًا تقريبًا فوق UDP، لأن الصوت الآني يفضّل التسليم في الوقت على التسليم المضمون. وتحمل كل رزمة RTP قطعة من الصوت المرمَّز (إطار ترميز مثل 20 ms من G.711) خلف ترويسة بطول 12 بايت. وRTP تدفق منفصل عن إشارات SIP، على المنافذ التي تفاوض عليها SDP، ويتدفّق عادةً مباشرة بين الطرفين أو عبر مُرحّل وسائط بدل اتّباع مسار الإشارات.
ترويسة RTP
تعطي ترويسة RTP بطول 12 بايت المستقبِل كل ما يحتاجه لإعادة بناء تدفق آني. يكشف رقم التسلسل الفقد وإعادة الترتيب. ويعكس الطابع الزمني لحظة أخذ العيّنة كي يشغّل المستقبِل الصوت بالإيقاع الصحيح ويزيل الارتعاش بمخزن ارتعاش. ويحدّد SSRC مصدر الوسائط فريدًا ضمن الجلسة. ويردّد نوع الحمولة الترميز المتفَق عليه في SDP. ويعلّم بتّ العلامة أحداثًا مثل الرزمة الأولى بعد فترة صمت.
| الحقل | الحجم | الغرض |
|---|---|---|
| V / P / X / CC | 1 بايت | الإصدار، الحشو، الامتداد، علامات عدد CSRC |
| M (علامة) + PT | 1 بايت | بت العلامة + نوع الحمولة (الـ codec من SDP) |
| رقم التسلسل | 2 بايت | اكتشاف فقدان الحزم وإعادة ترتيبها |
| الطابع الزمني | 4 بايت | لحظة أخذ العيّنة؛ تتحكم في التشغيل / مخزن الارتجاج (jitter buffer) |
| SSRC | 4 بايت | مصدر المزامنة — يحدد التدفق |
| CSRC (0–15) | 0–60 بايت | المصادر المساهمة (من الخلاطات) |
RTCP: تغذية راجعة للجودة
يسافر RTP مع بروتوكول تحكم رفيق، RTCP، على المنفذ المجاور (الفردي). ولا يحمل RTCP وسائط؛ بل يرسل كل جانب دوريًا تقارير مرسِل وتقارير مستقبِل تصف صحة التدفق — الرزم المرسَلة والمفقودة، والفقد التراكمي، وارتعاش وقت الوصول البيني، ووقت الذهاب والإياب المشتقّ من طوابع التقارير الزمنية. وهذه المقاييس هي المادة الخام لتقديرات MOS ولتشخيص الصوت أحادي الاتجاه والارتعاش والفقد في مكالمة VoIP. ويحمل RTCP أيضًا وصف المصدر (CNAME) وBYE لتفكيك التدفق.
| المقياس | ما يخبرك به |
|---|---|
| فقدان الحزم (النسبة + التراكمي) | ما مقدار الصوت الذي يتم حذفه |
| تذبذب زمن الوصول بين الحزم (Jitter) | تفاوت توقيت الحزم — صعوبة في التشغيل |
| زمن الرحلة ذهابًا وإيابًا | زمن انتقال المسار (من الطوابع الزمنية في SR/RR) |
| أعلى تسلسل تم استلامه | كشف التقدم والفقد لكل مصدر |
SRTP: تشفير الوسائط
RTP العادي غير مشفَّر، فيمكن لأي شخص على المسار التقاط الصوت وإعادة تشغيله. ويؤمّنه SRTP (RFC 3711): يشفّر حمولة RTP (افتراضيًا AES بنمط العدّاد) ويُلحِق وسم مصادقة (افتراضيًا HMAC-SHA1) يحمي السلامة ويوفّر حماية من إعادة التشغيل، مع إبقاء ترويسة RTP قابلة للقراءة كي تعمل الموجّهات ومخازن الارتعاش. ويظهر النقل في SDP كـ RTP/SAVP بدل RTP/AVP. ويحمي SRTP السرية والسلامة لكنه يعتمد كليًا على كيفية تبادل مفاتيحه.
مفاتيح SRTP: SDES مقابل DTLS-SRTP
يحتاج SRTP مفتاحًا رئيسيًا في كل طرف، والطريقتان الشائعتان لتسليمه تختلفان حادًّا في الأمن. يضع SDES (RFC 4568) المفتاح في سطر a=crypto في SDP — بسيط، لكن آمن بقدر أمان إشارات SIP فقط، فيجب حمله فوق TLS وإلا انكشف المفتاح. أما DTLS-SRTP (RFC 5763/5764) فيجري مصافحة DTLS في مسار الوسائط لاشتقاق المفاتيح، فلا يظهر المفتاح في الإشارات؛ وهو النموذج الذي يفرضه WebRTC. اختر DTLS-SRTP حيث تدعمه النهايات، واحمِ SDES دائمًا بـ SIP فوق TLS.
| الطريقة | RFC | أين يوجد المفتاح | ملاحظة |
|---|---|---|---|
| SDES | RFC 4568 | a=crypto line في SDP | يتطلب استخدام SIP عبر TLS ليكون آمنًا |
| DTLS-SRTP | RFC 5763/5764 | مشتقة عبر مصافحة DTLS في مسار الوسائط | المفتاح لا يمر أبدًا في التشوير؛ يستخدمه WebRTC |
| MIKEY | RFC 3830 | حمولة إدارة المفاتيح | يُستخدم في بعض عمليات نشر IMS |
الأسئلة المتكررة
ما الفرق بين SIP وRTP؟
SIP هو الإشارات التي تُعِدّ المكالمة وتعدّلها وتنهيها؛ وRTP نقل الوسائط الذي يحمل الصوت أو الفيديو الفعلي حالما تُنشأ المكالمة. يعملان كتدفقين منفصلين على منافذ منفصلة — يتفاوض SIP على الجلسة، ويسلّمها RTP.
لماذا يعمل RTP فوق UDP بدل TCP؟
الصوت الآني يقدّر التوقيت على الموثوقية. فإعادة إرسال TCP وحجب رأس الطابور يضيفان زمن استجابة وارتعاشًا يضرّان مكالمة حيّة أكثر من رزمة مفقودة عرضية. ويتيح RTP فوق UDP للمستقبِل إخفاء الفقد الصغير مع إبقاء التدفق في الوقت.
ماذا يفعل RTCP؟
RTCP قناة تحكم رفيقة لـ RTP. لا يحمل وسائط؛ بل يبلّغ دوريًا عن جودة التدفق — الفقد والارتعاش ووقت الذهاب والإياب عبر تقارير المرسِل والمستقبِل — ما يُستخدم لتقدير جودة المكالمة (MOS) وتشخيص مشكلات مثل الصوت أحادي الاتجاه.
ما هو SRTP؟
SRTP (RFC 3711) هو الملف الآمن من RTP. يشفّر حمولة الوسائط (عادةً AES بنمط العدّاد) ويصادق كل رزمة (عادةً HMAC-SHA1) مع حماية من إعادة التشغيل، مع إبقاء ترويسة RTP صريحة. وفي SDP يظهر كنقل RTP/SAVP.
ما الفرق بين SDES وDTLS-SRTP؟
كلاهما يمفتح SRTP. يحمل SDES المفتاح في سطر a=crypto في SDP، فهو آمن فقط إن كانت إشارات SIP نفسها محميّة بـ TLS. ويشتقّ DTLS-SRTP المفاتيح عبر مصافحة DTLS في مسار الوسائط، فلا يلمس المفتاح الإشارات — النهج الذي يتطلّبه WebRTC.
مواصفات المصدر
تستند هذه الصفحة إلى المعايير المنشورة. يفتح في علامة تبويب جديدة.