1.3. Các giao thức trong mạng VoIP
1.3.3. Giao thức RTP (Real time Transport Protocol)
RTP ñược coi như một giao thức truyền từ ñầu cuối ñến ñầu cuối (end to end) phục vụ các dữ liệu thời gian thực như audio và video[2]. RTP thực hiện việc quản lý về thời gian truyền, quản lý số hiệu tuần tự, kiểm tra truyền dữ liệu và nhận dạng kiểu dữ liệu ñược truyền. Nhưng RTP không cung cấp bất cứ một cơ chế nào ñảm bảo thời gian truyền và cũng không cung cấp bất cứ một cơ chế nào giám sát chất lượng dịch vụ. Sự giám sát và bảo ñảm về thời gian truyền dẫn.
Tương tự như chất lượng dịch vụ ñược thực hiện nhờ hai giao thức là RTCP và RSVP. Tương tự như các giao thức truyền dẫn khác, gói tin RTP (RTP packet) bao gồm hai phần là header (phần mào ñầu) và data (phần dữ liệu). Nhưng không giống như các giao thức truyền dẫn 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àỵ
Hình 1-10 Cấu trúc gói tin RTP
Version (2bit): chỉ rõ version của RTP hiện tại ñang ñược cài ñặt. Hiện tại các giao thức RTP ñược cài ñặt là version.
Pađing (1bit): có vai trò như bit cờ ñược sử dụng ñể ñánh dấu khi có một số byte ñược chèn thêm vào trong góị Bit này ñược thiết kế ñể thích nghi với việc sử dụng của các thuật toán mã hóa mà yêu cầu các khối có ñộ dài cố ñịnh và việc truyền những gói tin RTP ở các lớp giao thức thấp hơn.
Extention (1 bit): cũng có vai trò như một bit cờñược sử dụng ñể ñánh dấu khi có header mở rộng tiếp theo header cố ñịnh. Header mở rộng cung cấp các cơ chế cho phép những người phát triển thử nghiệm bằng cách thêm các chức năng ñịnh dạng dữ liệu ñộc lập mà yêu cầu các thông tin trong header thêm khi cho phép một hoạt ñộng bổ sung bỏ qua phần mở rộng.
CSRC count (4bit): chỉ rõ số lượng của CSRC (contributing source) có trong RTP header.
Marker (1 bit): có vai trò như một bit cờ, trạng thái của nó ñược phụ thuộc vào trường payload typẹ Khi bit này ñược thiết lập nó sẽ chỉ ra rằng trường payload type có mang những thông tin chi tiết ñược ñịnh nghĩa phù hợp với các ứng
dụng mà những thông tin này không ñược ñịnh nghĩa trong các chỉ dẫn của giao thức RTP.
Payload type (7bit): chỉ rõ loại thông tin ñược chứa trong các góị
Sequence number (16 bit): cung cấp số thứ tự của các góị Cách này như một cơ chế giúp bên thu có thể thu ñúng thứ tự các gói tin, nhận ra các gói tin bị mất.
Các gói tin bị mất sẽ không ñược truyền lại chúng sẽ ñược phía thu xử lý bằng cách sử dụng một thuật toán ñể tái tạo lại các gói tin bị mất. Giá trị khởi ñầu của trường sequence number là ngẫu nhiên ñể ñảm bảo tính an toàn và bảo mật thông tin.
Time-stamp (32bit): là tham sốñánh dấu thời ñiểm byte ñầu tiên ñược lấy mẫu trong gói RTP. Giá trị time-stamp khởi ñầu là ngẫu nhiên các gói RTP phát ñi liên tiếp có thể có cùng giá trị time-stamp nếu chúng cùng ñược phát ñi một lúc. Ví dụ với một bức ảnh số, chúng thường ñược cắt ra làm nhiều phần và mỗi phần ñược chứa trong một góị Những gói ñó khác nhau về thứ tự (sequence number) nhưng chúng cùng có một giá trị time-stamp.
Synchronisation source (SSRC) identifier: số nhận dạng nguồn của gói dữ liệụ Nếu ứng dụng muốn truyền dữ liệu có nhiều dạng khác nhau trong cùng một thời ñiểm (ví dụ là tín hiệu audio và video) thì sẽ có những phiên truyền riêng cho mỗi dạng dữ liệụ Sau ñó ứng dụng sẽ tập hợp các gói tin có cùng số nhận dạng SSRC. Số nhận dạng này ñược gán một cách ngẫu nhiên.
Contribute source (CSRC) identifier (ñộ dài thay ñổi): ví dụ tại một thời ñiểm ñích nào ñó mà những tín hiệu audio ñến ñích cần trộn lại với nhau thì giá trị CSRC sẽ là tập hợp tất cả các giá trị SSRC của các nguốn mà gửi tín hiệu ñến ñiểm ñích ñó. Trường CSRC có thể chứa tối ña là 15 số nhận dạng nguồn SSRC.
Extension header (ñộ dài thay ñổi): chứa các thông tin thêm của gói RTP.