Real-time Transport Protocol
מבנה חבילת RTP

להלן מבנה החבילה בפרוטוקול (RTP בלבד, ללא השכבות שמתחת).
| Bit offset | 0–1 | 0–1 | 2 | 3 | 4–7 | 4–7 | 4–7 | 4–7 | 8 | 9–15 | 9–15 | 9–15 | 9–15 | 9–15 | 9–15 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 0 | Version | Version | P | X | CC | CC | CC | CC | M | PT | PT | PT | PT | PT | PT | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number | Sequence number |  |  |
32: Timestamp
64: SSRC identifier
96: CSRC identifiers ...
| 96+32×CC | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Profile-specific extension header ID | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length | Extension header length |
128+32×CC: Extension header ...
בראשית החבילה, כמקובל בפרוטוקולי מודל השכבות, מופיעים שדות מידע כלליים אשר מגדירים את מבנה חבילת המידע בהמשך (כדוגמת אורכי שדות, כמות מזהים וכיוצא בזה). פירושי השדות הייעודיים הם:
Version - גרסת הפרוטוקול.
(P (Padding - דגל המסמל האם נעשה padding (ריפוד) בסוף המידע, על מנת להשלימו כך שאורך המידע יהיה מוגדר תמיד.
(X (Extension - דגל המציין האם יופיע בהמשך החבילה header נוסף, המכונה Extension Header (הסבר בהמשך).
(CC (CSRC count - מספר ה-CSRC-ים שיופיע בהמשך החבילה (הסבר בהמשך).
(M (Marker - דגל המסמן חשיבות של המידע המועבר; אם הוא דלוק, פירוש הדבר שלמידע זה עדיפות מיוחדת ברמת האפליקציה.
(PT (Paylod Type - שדה הקובע את פורמט השמע שיועבר בהמשך.
Sequence Number - מספר המייצג את סדר החבילה ב-session נתון. המספר עולה בכל חבילה שנשלחת, ומאפשר סידור החבילות בצד השני כמו גם בדיקת הגעת כלל המידע. ה-Sequence Number של החבילה הראשונה נקבע באקראי.
Timestamp - שדה זמן המוצמד לכל בלוק של שמע/וידאו, ומאפשר למשתמש לאגור מידע זה ע"פ סדר כרונולוגי ובמידת הצורך לנגנו לאחור. אופן קביעת הזמן משתנה בין אפליקציות.
(SSRC (Synchronization source - מזהה ייחודי לכל session של RTP באורך 32bit, בעזרתו יודעים רכיבי הקצה להבדיל בין session-ים שונים.
(CSRC (Contributing source - במקרה בו נדרש שילוב של מספר מקורות שמע (למשל בשיחת ועידה), שדה זה יכול את רשימת מזהי ה-SSRC של כל המקורות (כמותם בהתאם לשדה CC לעיל), וכך יאפשר את שילוב השמע בצורה מסונכרנת.
Header Extension - בפרוטוקול מאופשרות הרחבות ייעודיות שונות. כאשר הדגל X לעיל דולק, פירוש הדבר שנעשה שימוש בהרחבה כלשהי, ובשדה זה מפורטים פרטי ההרחבה. רכיבי קצה שלא מכירים הרחבה מסוימת יתעלמו ממנה.