Giao thức truyền dữ liệu RTP

Một phần của tài liệu Dịh vụ tích hợp trên nền ip ims (Trang 79 - 82)

CHƯƠNG 2: CÁC DỊCH VỤ TRÊN NỀN IP

2.5 Giao thức truyền tải thời gian thực RTP -

2.5.8 Giao thức truyền dữ liệu RTP

Hình 2.28 Cấu trúc gói dữ liệu RTP

Cấu trúc của gói dữ liệu RTP được thể hiện trong hình 2.28 gồm bốn thành phần.

Toàn bộ gói RTP được chứa trong phần dữ liệu của lớp bậc thấp hơn thông thường là UDP/IP.

Phần header bắt buộc của RTP có chiều dài 12 octet, mặc dù nó có thể chứa danh sách các nguồn có kích thước có thể mở rộng thêm từ 4 đến 60 octet. Các trường của phần header bắt buộc bao gồm payload type - kiểu dữ liệu, sequence number, time stamp, và synchronization source identifier. Ngoài ra còn các trường về số lượng nguồn, đánh dấu sự kiện, header mở rộng và version.

Payload header (payload format dependent) Payload data

a. Kiểu dữ liệu

Chỉ định loại media nào được truyền đi trong các gói RTP. Các ứng dụng bên nhận kiểm tra trường này để quyết định cách thức xử lý dữ liệu.

b. The RTP sequence number:

Được sử dụng để chỉ thị cho bên nhận biết được gói có bị mất mát hoặc sai thứ tự. Cho phép bên nhận khả năng sắp xếp lại trình tự các gói đã được gửi đi.

c. The RTP time-stamp

Được sử dụng để lưu giá trị mẫu của octet đầu của dữ liệu media trong gói, và được sử dụng để xác định thời điểm hiện thị cho dữ liệu media. Time stamp là một - số nguyên không dấu 32 bit tăng theo tần số phụ thuộc vào media, và quay về 0 khi vượt qua giá trị lớn nhất.

Time-stamp trên các gói RTP không nhất thiết phải là duy nhất trong mỗi vòng. Nếu hai gói chứa dữ liệu có cùng giá trị mẫu, chúng sẽ có chung time-stamp.

Sự trùng lặp về time stamp thông thường xảy ra khi một frame video kích thước lớn - và nó phải bị chia thành nhiều gói RTP nhỏ để truyền đi thì time stamp trong tất cả - các gói đó là giống nhau dùng sequence number vẫn tăng lên 1 sau mỗi gói.

d. The synchronization source (SSRC)

Được sử dụng để định danh các bên tham gia trong một phiên RTP. Giá trị của nó chỉ có ý nghĩa trong một phiên và được ánh xạ tới một định danh phiên (long- live canonical name) CNAME thông qua giao thức điều khiển RTCP.

Tất cả các gói có cùng SSRC tạo, bên nhận cần phải nhóm các gói theo SSRC để thực hiện quá trình playback. Nếu một bên tham gia nào đó tạo ra nhiều luồng sẽ phải có một SSRC khác nhau để các bên nhận có thể phân biệt gói nào thuộc luồng nào.

e. Contributing source

Trong các trường hợp thông thường, các gói RTP được tạo ra chỉ bởi một nguồn duy nhất, nhưng khi có nhiều luồng RTP đi qua một bộ mixer hoặc translator, các dữ liệu từ nguồn này có thể được góp vào một gói RTP. Trong danh sách CSRC chứa thông tin của các bên tham gia có dữ liệu nằm trong gói RTP nhưng không chứa các thông tin của các bên tham gia có dữ liệu nằm trong gói RTP nhưng không chứa các thông tin liên quan đến thời gian và đồng bộ. Mỗi mã nhận dạng nguồn là một số nguyên 32 bit mang thông tin chính là SSRC của bên tham gia có dữ liệu nằm trong gói. Chiều dài của danh sách CSRC được chỉ định trong trường CC của RTP header.

Các gói chứa danh sách CSRC được tạo ra bởi bộ RTP Mixer, khi nhận được một gói danh sách CSRC, các số SSRC sẽ được sử dụng để nhóm các gói và xử lý

một cách bình thường và mỗi CSRC được thêm bào danh sách các bên tham gia đã biết. Mỗi bên tham gia xác định bởi một SCRC sẽ có một luồng giao thức điều khiển gói RTP tương ứng mang đầy đủ thông tin về bên tham gia.

f. Marker

Bit đánh dấu Marker trong header của RTP được sử dụng để đánh dấu các sự kiện trong một luồng media, giá trị của nó quyết định bởi các đặc tả RTP và định dạng media được sử dụng.

g. Version number

Mỗi gói RTP chứa một số chỉ phiên bản hiện hành của RTP là trường V trong header RTP. Phiên bản hiện thời là 2, phiên bản cũ không còn được sử dụng rộng rãi. Mục đích duy nhất của trường này là kiểm tra tính hợp lệ của gói.

h. Header Extensions

RTP cho phép một phần header mở rộng được báo hiệu bằng bit X trong header RTP. Khi bit X được đặt là 1, sau phần header mở rộng, chiều dài của header này không cố định nhưng đều bắt đầu bằng 16 bit chỉ kiểu và 16 bit chỉ chiều dài (không bao gồm 32 bit này), cho phép các ứng dụng có thể loại bỏ nếu không đọc được thông tin trong header này.

i. Payload header

Phần header bắt buộc của RTP cung cấp thông tin chung cho mọi định dạng dữ liệu. Trong nhiều trường hợp, một định dạng dữ liệu cần nhiều thông tin hơn để nâng cao hoạt động. Những thông tin này tạo thành một header bổ sung được định nghĩa như là một phần của mô tả định dạng dữ liệu. Header dữ liệu được chứa trong một gói RTP, theo sau phần header cố định, danh sách CSRC và header mở rộng.

Thông thường kiểu cấu trúc header dữ liệu này có trong đa số các đặc tả định dạng dữ liệu.

j. Payload Data

Chứa một trong hoặc nhiều frame dữ liệu media, sau header dữ liệu là thành phần cuối cùng của một gói. Kích thước phụ thuộc vào định dạng dữ liệu và các tham số khởi tạo phiên.

Nhiều định dạng cho phép nhiều frame dữ liệu chứa trong cùng một gói. Có hai cách để bên nhận xác định có bao nhiêu frame trong gói:

• Trong nhiều trường hợp, các frame có kích thước cố định và có thể xác định số frame qua kích thước gói.

• Một số loại định dạng khác nhau mang thông tin chỉ rõ kích thước trong mỗi frame. Một ứng dụng cần xử lý thông tin này để xác định được số frame và điểm bắt đầu của frame.

Có hai phương pháp lựa chọn lượng dữ liệu được đặt trong mỗi gói: MTU (maximum transmission unit) của đường truyền và độ trễ gây ra trong quá trình chở dữ liệu để tạo thành một gói lớn hơn.

Một phần của tài liệu Dịh vụ tích hợp trên nền ip ims (Trang 79 - 82)

Tải bản đầy đủ (PDF)

(130 trang)