You are on page 1of 3

Real-time Transport Protocol (RTP) là giao thức thực hiện vận chuyển các ứng dụng dữ liệu

thời gian thực như thoại và hội nghị truyền hình. Các ứng dụng này thường mang các định dạng
của âm thanh (PCM, GSM và MP3 và các định dạng độc quyền khác) và định dạng của video
(MPEG, H.263 và các định dạng video độc quyền khác). RTP được định nghĩa trong RFC
1889, RFC 3550.
RTP được sử dụng kết hợp với RTCP (Realtime Transport Control Protocol). Trong khi
RTP được dùng để truyền dòng dữ liệu đa phương tiện truyền thông (âm thanh và video) thì
RTCP được dùng để giám sát QoS và thu thập các thông tin về những người tham gia phiên
truyền RTP đang thực hiện.
Giao thức RTP chạy trên nền UDP để sử dụng các chức năng ghép kênh và checksum. Cả hai
giao thức RTP và UDP tạo nên một phần chức năng của lớp giao vận. 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 mạng và lớp giao vận 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. Một điều cần lưu ý là bản thân giao
thức RTP không cung cấp một cơ chế nào đảm bảo việc phân phát kịp thời dữ liệu tới các trạm,
mà nó dựa trên các dịch vụ của lớp thấp hơn để thực hiện điều này. RTP cũng không đảm bảo
việc truyền các gói theo đúng thứ tự. Tuy nhiên số thứ tự trong header cho phép bên thu điều
chỉnh lại thứ tự dòng gói tin của bên phát gữi đến.
RTP không chỉ hỗ trợ các dịch vụ phổ biến của hầu hết các ứng dụng truyền thông hội nghị đa
phương tiện mà còn có khả năng mở rộng cho phù hợp với dịch vụ mới. Khả năng mở rộng,
các mã tương ứng trong trường PT của header ứng với các loại payload trong gói RTP được
mô tả trong profile đi kèm.
Cấu trúc giao thức RTP:

Theo cấu trúc trên:


- Phần header cố định
· Version: 2 bit. Trường vesion để chỉ phiên bản của giao thức. Có 3 phiên bản 0,1,2. Phiên
bản hiện tại được sử dụng là 2.
· P (Padding): 1 bit. Nếu trường P được thiết lập thì gói tin sẽ có một hoặc nhều octets P (những
octets này không phải một phần của payload) được thêm vào cuối gói tin. Octet P cuối cùng
chỉ kích thước của tổng octect được thêm vào. Mục đích của việc thêm octect P là để dùng cho
thuật toán mã hóa cần kích thước gói cố định hoặc được dùng cho việc cách ly các gói RTP
trong trường hợp 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 trường X được thiết lập thì phần header cố định phải được liên kết
với phần header mở rộng.
· CC (CSRC count): 4 bits. Chứa các giá trị của trường CSRC ID trong header cố định.
· M (Marker): 1 bit. Được sử dụng ở lớp ứng dụng để xác định một profile.
· PT (Payload type): 7 bits. Xác định và nêu ý nghĩa các dạng payload của RTP. RTP có thể
hỗ trợ đến 27 = 128 loại payload khác nhau. Với một luồng âm thanh hay video trường PT
được sử dụng để kí hiệu các mã âm thanh hay video. Ví dụ: mã PT của một số định dạng âm
thanh và video: PCM (0),GSM(3), LPC (7), G.722 (9), MPEG Audio(14), G.728(15),
JPEG(26), H.261(31), MPEG1(32), MPEG2(33) . Nếu máy phát quyết định thay đổi mã ở phần
giữa của một phiên làm việc, thì máy phátcó thể thông báo cho máy thuvề sự thay đổi trường
PT. Máy phát có thể thay đổi mã để tăng chất lượng âm thanh hay video hoặc giảm tốc độ
luồng RTP.
· Sequence Number: 16 bits. Trường mang số thứ tự của các gói tin RTP. Số thứ tự này được
tăng lên 1 sau mỗi lần gói tin RTP được máy phát gửi đi và còn được dùng để máy thu phát
hiện mất gói và khôi phục lại trình tự chuỗi gói tin. Giá trí khởi đầu của trường này là một giá
trị ngẫu nhiên. Vd: máy phát nhận được luồng gói tin RTP có khoảng trống giữa 2 hai số thứ
tự 86, 89 thì máy phát sẽ biết rằng gói tin có số thự tự 87, 88 đã bị mất.
· Timestamp: 32 bits. Trường xác định thời điểm lấy mẫu của octets đầu tiên trong gói tin
RTP. Thời điểm lấy mẫu phải được đo bằng một đồng hồ tăng đều đặn và tuyến tính về mặt
thời gian để cho phép việc đồng bộ và tính toán độ jitter. Tần số đồng hồ này là không cố định
mà phụ thuộc vào loại định dạng của payload. Giá trị khởi đầu trường timestamp cũng được
chọn một cách ngẫu nhiên. Một vài gói tin RTP có thể mang cùng một giá trị của trường này
nếu như chúng được phát đi cùng một lúc về mặt logic (ví dụ như các gói của cùng một khung
hình video). Trong trường hợp các gói dữ liệu được phát ra sau những khoảng thời gian bằng
thì giá trị timestamp được tăng một cách đều đặn. Ngược lại, trong trường hợp khác giá trị
timestamp sẽ tăng không đều đặn.
· SSRC (Synchronization Source Identifier): 32 bits. Giá trị của trường SSRC chỉ ra nguồn
đồng bộ (nguồn phát gói tin RTP từ micro, camera hay RTP mixer) của gói tin RTP, giá trị này
được chọn ngẫu nhiên. Trong một phiên kết nối RTP thì có nhiều nguồn đồng độ phát ra nhiều
dòng gói tin RTP. Máy thu sẽ nhóm các dòng gói tin RTP cùng nguồn để phát lại tín hiệu thời
gian thực (real-time).
· CSRC (Contributing Source List): từ 0 đến 15 items, 32 bits. Trường CSRC xác định các
nguồn đóng góp payload cho gói tin (CSRC cho phép xác định tối đa 15 nguồn đóng góp tương
ứng vớ 15 items). Giá trị của CSRC được cho bởi trường CC và giá trị này được chèn vào mỗi
items bằng các bộ trộn (mixer).
- Phần header 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
header của gói tin. 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 đó. Nếu như trường X (bit X) trong phần header
cố định được đặt bằng 1 thì theo sau phần header cố định là phần header mở rộng có chiều dài
thay đổi. 16 bit đầu tiên của trong phần tiêu đề được sử dụng với mục đích riêng cho từng ứng
dụng được định nghĩa bởi profile (thường nó được sử dụng để phân biệt các loại tiêu để mở
rộng). 16 bits kế tiếp mang giá trị chiều dài của phần header mở rộng tính theo đơn vị là 32
bits (Giá trị này không bao gồm 32 bit đầu tiên của phần header mở rộng)

Vấn đề bảo mật trong RTP


Các giao thức lớp dưới có thể cung cấp tất cả các dịch vụ bảo mật cần thiết cho RTP bao gồm
chức năng xác thực, tính toàn vẹn và khả năng che giấu dữ liệu. Những dịch vụ này được chỉ
định ở lớp IP. Trong phương thức mã hóa các gói tin RTP và RTCP, tất cả các byte sẽ được
đóng gói, mã hóa để truyền đi. Đối với gói tin RTCP, một số 32-bit ngẫu nhiễn sẽ được gắn
thêm trước khi mã hóa. Đối với các gói tin RTP, chúng ta sẽ khởi tạo các trường số thứ tự và
nhãn thời gian trong những khoảng ngẫu nhiên. Thuật toán sử dụng cho việc mã hóa được sử
dụng là DES (Data Encryption Standard Algorithm thuật toán tiêu chuẩn mã hóa dữ liệu) được
đưa ra trong RFC 1423.

Mối quan hệ RTP và RTCP


Giao thức vận chuyển thời gian thực (Real time transport protocol - RTP) cung cấp các dịch
vụ truyền tải dữ liệu tuân theo thời gian thực giữa các điểm đầu cuối như là âm thanh, video
giữa các điểm đầu cuối. Những dịch vụ này bao gồm xác định kiểu dữ liệu, chuỗi số xác định
thứ tự gói tin, gán nhãn thời gian (timestamping) và giám sát việc truyền tải. RTP chạy trên
nền UDP cho phép đảm bảo sự toàn vẹn dữ liệu (checksum) và cung cấp khả năng ghép
kênh (multiplexing). RTP không cung cấp cơ chế đảm bảo việc truyền tải chính xác theo thời
gian và đảm bảo chất lượng dịch vụ, nhưng có thể dựa vào các dịch vụ lớp bên dưới để thực
hiện việc làm này. Một gói tin RTP bao gồm trường tiêu đề RTP, các trường CSRC và tải
trọng của dữ liệu (payload).
Một phiên RTP được thiết lập cho mỗi dòng thông tin đa phương tiện. Một phiên bao gồm một
địa chỉ IP với một cặp cổng (port) cho RTP và RTCP. Dòng thông tin âm thanh, video sẽ được
phân chia trong phiên RTP, cho phép người nhận có thể loại bỏ một số dòng thông tin cụ thể.
Cổng sử dụng các giao thức RTSP (Real Time Steaming Protocol - Giao thức truyền tin thời
gian thực) hay SIP để khởi tạo một phiên cụ thể. Giao thức điều khiển RTP (RTCP) sử dụng
để điều khiển gói tin tới các đầu cuối trong phiên trao đổi. Chức năng chính của RTCP là thu
thập thông tin phản hồi về chất lượng dịch vụ trong truyền tải, phân phối gói tin dữ liệu. Thông
tin phản hồi giúp ích cho việc mã hóa, kiểm tra được lỗi khi phân phối gói tin. Một chức năng
khác của gói tin RTCP là giúp các điểm đầu cuối biết được số lượng các điểm đầu cuối tham
gia vào phiên trao đổi.

You might also like