7. Kết cấu của đề tài:
1.3.3. Giao thức RTP (Rea l– time Transport Protocol)
RTP là giao thức cung cấp các chức năng phục vụ cho quá trình truyền dữ liệu mang đặc tính thời gian thực như là audio,video. RTP có nhiệm vụ xác định loại tải trọng (payload type identification), đánh số thứ tự các gói tin (sequence
numbering), đánh dấu thời gian phát (timestamping) phục vụ cho cơ chế đồng bộ khi phát lại tín hiệu ở bên thu và giám sát việc chuyển gói tin (delivery monitoring).
Các ứng dụng thường chạy giao thức RTP ở bên trên giao thức UDP để sử dụng dịch vụ ghép kênh (multiplexing) và kiểm tra lỗi (checksum) của dịch vụ này. Cả hai giao thức này tạo nên một phần chức năng của lớp transport. Tuy nhiên RTP cũng có thể được sử dụng với những giao thức khác của lớp network và lớp transport bên dưới miễn là các giao thức này cung cấp được các dịch vụ mà RTP đòi hỏi. Giao thức RTP hỗ trợ việc truyền dữ liệu tới nhiều đích sử dụng phân bố dữ liệu multicast nếu như khả năng này được lớp mạng hoạt động bên dưới nó cung cấp.
Bản thân RTP không hề cung cấp một cơ chế nào nhằm đảm bảo về mặt thời gian, cũng như sự đảm bảo về chất lượng dịch vụ (QoS) của các ứng dụng thời gian thực, nhưng điều này vẫn được đảm bảo dựa trên các dịch vụ lớp dưới.
Cũng như vậy RTP không đảm bảo độ tin cậy hay thứ tự của các gói tin. Nhưng các cơ chế đảm bảo độ tin cậy và việc đảm bảo thứ tự các gói tin nhận được sẽ được đảm bảo dưới các cơ chế của lớp mạng. Số thứ tự được đánh trong khung RTP cho phép bên nhận có thể khôi phục lại thứ tự gói phía gửi, nhưng có thể nó cũng được dùng để định vị gói tin như trong quá trình giải mã tín hiệu video, trên thực tế việc giải mã tín hiệu video theo thứ tự là không nhất thiết.
Đi cùng với RTP là giao thức RTCP để nhận cácthông tin phản hồi về chất lượng truyền dẫn và các thông tin về thành phần tham dự các phiên truyền hiện thời. Không giống như các giao thức khác là sử dụng các trường trong header để thực hiện các chức năng điều khiển, RTP sử dụng một cơ chế điều khiển độc lập trong định dạng của gói tin RTCP để thực hiện các chức năng này
Cấu trúc header của RTP:
RTP header bao gồm một phần cố định có ở mọi gói RTP và một phần mở rộngphục vụ cho các mục đích nhất định.
V=2 P X CC M PT Sequence Number Timestamp
Synchronization Source (SSRC) identifier Contributing Source (CSRC) identifier
…
V – Version (2 bit): Chỉ ra version của RTP, hiện nay là version 2.
P – Padding(1 bit): Nếu bit này được đặt, sẽ có thêm một vài octet thêm vào
cuối gói dữ liệu. Các octet này không phải là thông tin, chúng được thêm vào để nhằm mục đích phục vụ cho một vài thuật toán mã hoá thông tin cần kích thước của gói cố định. Hay dùng để cách ly các gói RTP trong trường hợp có nhiều gói thông tin được mang trong cùng một đơn vị dữ liệu của giao thức ở lớp dưới.
X – Extension (1 bit): nếu bit này được đặt, thì theo sau phần header cố định
sẽ là một header mở rộng.
CC – Contributing Sources Count (4 bit): số lượng các thành phần nhận
dạng nguồn CSRC nằm trong phần header gói tin. Số này lớn hơn 1 nếu các gói tin RTP đến từ nhiều nguồn.
M – Marker (1 bit): được áp dụng trong các hệ thống sử dụng phương pháp
loại bỏ khoảng lặng. Bit M sẽ được đặt là 1 ngay sau khi có sự xuất hiện của khoảng lặng.
PT – Payload Type (7 bit): xác định loại thông tin được truyền đi.
Sequence Number (16 bit): Số thứ tự được đánh tăng dần theo số lượng các
gói RTP được phát đi. Phía nhận sẽ sử dụng số thứ tự này để khôi phục lại trật tự các gói, hoặc dùng để phát hiện số lượng gói đã bị mất.
Timestamp (32 bit): xác định thời điểm các gói thoại được gửi.
Synchronization Source Identifier (SSRC, 32 bit): chỉ ra nguồn đồng bộ
của gói RTP, số này được chọn ngẫu nhiên. Trong 1 phiên RTP có thể có
nhiều hơn một nguồn đồng bộ. Mỗi một nguồn phát ra một luồng RTP. Bên thu nhóm các gói của cùng một nguồn đồng bộ lại với nhau để phát lại tín hiệu thời gian thực.
Contributing Source Identifier (CSRC, 32 bit): giúp bên thu nhận biết
được gói tin này mang thông tin của những nguồn nào.
Phần mở rộng: Cơ chế mở rộng của RTP cho phép những ứng dụng riêng lẻ
của giao thức RTP thực hiện được với những chức năng mới đòi hỏi những thông tin thêm vào phần tiêu đề của gói. Cơ chế này được thiết kế để một vài ứng dụng có thể bỏ qua một số ứng dụng khác lại có thể sử dụng được phần nào đó.
Cấu trúc của phần tiêu đề mở rộng như hình 1.10.
0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1
Defined by profile Length
Header extension
…
Nếu như bit X trong phần tiêu đề cố định được đặt bằng 1 thì theo sau phần tiêu đề cố định là phần tiêu đề mở rộng có chiều dài thay đổi.
16 bit đầu tiên được sử dụng với mục đích riêng cho từng ứng dụng, nó thường được dùng để phân biệt các loại header mở rộng.
Length (16 bits): giá trị chiều dài phần header mở rộng tính theo đơn vị 32 bit, không bao gồm 32 bit đầu tiên của phần header mở rộng.