Giao thức RTP cho truyền dòng dữ liệu thời gian thực

MỤC LỤC

Đặc điểm giao thức TCP

Trong bộ giao thức TCP/IP TCP là giao thức được phát triển như là cách để kết nối các mạng máy tính khác nhau về các phương pháp truyền dẫn và hệ điều hành. • Trật tự: Các gói tin có thể đến đích không theo thứ tự sắp xếp của dòng dữ liệu liên tục bởi các gói tin đi từ cùng một nguồn tin theo những đường dẫn khác nhau để đi tới cùng một đích.

Cấu trúc đơn vị truyền tải TCP

Đây chính là số lượng các Byte dữ liệu bắt đầu từ Byte được chỉ ra trong vùng ACK number, mà trạm nguồn đã sẵn sàng để nhận. - Urgent Pointer (16 bits) : Con trỏ này trỏ tới số liệu tuần tự của Byte đi theo sau dữ liệu khẩn, cho phép bên nhận biết được độ dài của dữ liệu khẩn.

Điều khiển luồng dữ liệu

Việc kết hợp địa chỉ IP của một máy trạm và số cổng được sử dụng tạo thành một Socket.

Thiết lập và huỷ bỏ liên kết

Liên kết được huỷ bỏ một cách bình thường khi toàn bộ dữ liệu đã được truyền hết. Liên kết có thể bị huỷ bỏ một cách bất thường vì một lý do nào đó(do người sử dụng hoặc do TCP đóng liên kết do không thể duy trì được liên kết).

Truyền và nhận dữ liệu

Khi không còn nhu cầu trao đổi dữ liệu nữa thì liên kết TCP có thể được huỷ bỏ.

GIAO THỨC UDP: (USER DATAGRAM PROTOCOL)

Lớp UDP được đặt trên lớp IP, tức là UDP Datagram khi chuyển xuống tầng dưới sẽ được đặt vào IP Datagram để truyền trên liên mạng. Tại trạm đích các PDU được gửi từ dưới lên trên, qua mỗi tầng phần Header của PDU được gỡ bỏ và cuối cùng chỉ còn lại phần dữ liệu như ban đầu được chuyển cho người sử dụng.

ĐỊNH TUYẾN MULTICAST

Các gói multicast được tái tạo lại bên trong các Router mà đã kích hoạt khả năng PIM (Protocol Independent Multicast) và các giao thức hỗ trợ multicast khác đưa đến kết quả là nó tạo ra khả năng phát chuyển dữ liệu tới nhiều thành viên một cách hiệu quả nhất. Cụ thể, vùng group không được phân chia thành các bit để xác định nguồn gốc hay đơn vị sở hữu của nhóm, nó cũng không chứa thông tin quản trị như là các thành viên của nhóm có ở trên một mạng vật lý không.

Hình 1.4: Truyền Multicast
Hình 1.4: Truyền Multicast

GIAO THỨC NÀO Cể THỂ ĐÁP ỨNG ĐƯỢC YấU CẦU THỜI GIAN THỰC?

- Hộ trợ việc định tuyến muticast: Với các ứng dụng tryền thông đa phương tiện đòi hỏi thời gian thực, có sự phân phối giống dữ liệu từ một nguồn tới nhiều đầu cuối nhận dữ liệu thì việc hỗ trợ multicast là rất cần thiết. - Cần kết hợp với một thông số về thời gian (nhãn thời gian) kèm theo gói dữ liệu: Với các tín hiệu thời gian thực, đặc biệt là tín hiệu video, việc khôi phục đồng bộ tại phía thu là rất quan trọng, do đó đòi hỏi nhãn thời gian kèm 19.

Hình 1.6:Sử dụng Multicast trong truyền dữ liệu đa phương tiện.
Hình 1.6:Sử dụng Multicast trong truyền dữ liệu đa phương tiện.

GIAO THỨC TRUYỀN TẢI THỜI GIAN THỰC (RTP: REAL TIME TRANSPORT PROTOCOL)

  • CSRC

    Cặp địa chỉ đích có thể là chung cho tất cả các thành viên còn lại (trong trường hợp truyền đa điểm multicast ) hoặc riêng biệt cho từng thành viên(trong trường hợp truyền điểm điểm unicast). Một nguồn RTP có thể thay đổi định dạng tải trong một phiên truyền, tuy nhiên ta không nên 33ing 1 phiên RTP để truyền đồng thời các luồng media có định dạng khác nhau, theo khuyến cáo của RFC1890.

    Hình 3.1: Mô hình phiên RTP.
    Hình 3.1: Mô hình phiên RTP.

    GIAO THỨC ĐIỀU KHIỂN RTP (RTCP: RTP CONTROL PROTOCOL)

    CHỨC NĂNG VÀ HOẠT ĐỘNG CỦA RTCP

    Đây là một phần không thể thiếu được với vai trò là một giao thức giao vận, nó liên quan đến các hàm điều khiển luồng (flow control) và kiểm soát sự tắc nghẽn (congestion control). Ngoài ra, việc các bản tin phản hồi từ phía người nhận đến tất cả các thành viên khác giúp cho mỗi thành viên có thể quan sát lỗi và đánh giá xem lỗi xảy ra với mình là lỗi cục bộ hay là lỗi trên toàn mạng.

    CÁC LOẠI GểI TIN RTCP

    Khi số nguồn gởi các thông tin trạng thái vượt quá 31 (giá trị tối đa mà SR hoặc RR có thể chứa), khi đó gói RR sẽ được thêm vào sau gói report packet khởi tạo. Nếu gói ghép này có kích thước vượt quá giá trị của một đơn vị truyền tải (maximum transmission unit), khi đó nó sẽ được phân thành các gói ghép nhỏ hơn để có thể tryền được trong những gói của giao thức lớp dưới.

    KHOẢNG THỜI GIAN TRUYỀN CÁC GểI RTCP : (RTCP TRANSMISSION INTERVAL)

    Tuy nhiên nó rất phù hợp cho những kết nối 1 chiều, hoặc cho những phiên truyền không cần sự hồi đáp về chất lượng dữ liệu nhận được, cũng như không cần quan tâm đến sự có mặt của các thành viên chỉ nghe. Việc tính toán chu kỳ phát các gói tin ghép RTCP cũng nên đặt ra giới hạn tránh trường hợp quá nhiều gói tin vượt quá mức băng thông cho phép, khi số lượng thành viên tham gia ít và không còn theo qui luật số lớn nữa.

    CẬP NHẬT SỐ THÀNH VIÊN THAM GIA PHIÊN TRUYỀN

    Ta liên tục ước lượng động giá trị trung bình của các gói tin RTCP ghép, bao gồm cả các gói phía nhận và các gói phía gởi. Khi các thành viên rời bỏ phiên, họ sẽ gởi tín hiệu BYE hoặc tạo ra thời gian timeout, số lượng thành viên trong nhóm sẽ giảm.

    QUI ĐỊNH ĐỐI VỚI VIỆC GỞI VÀ NHẬN CÁC GểI RTCP

    Theo cách tính này, khoảng thời gian T sẽ lấy giá trị ngẫu nhiên tại một thời điểm, tuy nhiên nếu tính lâu dài thì giá trị trung bình sẽ ≥25% RTCP sẽ được giành cho những người gởi dữ liệu, phần còn lại dành cho người nhận dữ liệu. Nếu một thành viên trong danh sách người gởi mà không được nhận một gói RTP nào trong khoảng thời gian 2T.(khoảng thời gian giữa 2 gói RTCP cuối cùng 51. được nhận), khi đó thành viên sẽ bị loại khỏi danh sách người gởi, số người gởi senders được cập nhật lại.

    CÁC BẢN TIN THÔNG BÁO CỦA NGƯỜI GỞI VÀ NGƯỜI NHẬN Trong giao thức RTP, các thành viên có thể trao đổi thông tin điều khiển

    Các số đếm tích luỹ được sử dụng trong cả thông tin người gởi và các khối thông báo của người nhận, do đó sự khác biệt được tính giữa 2 bản tin bất kỳ phục vụ cho phép đo trong thời gian ngắn hoặc dài, được dùng để khôi phục lại các bản tin bị thất lạc. Nhãn thời gian sẽ được gắn giống nhau cho mọi gói tin chứa cùng 1 khung hình, tuy nhiên các gói dữ liệu này lại không được truyền đi đồng thời mà được gởi đi lần lượt, điều này sẽ làm giảm độ chính xác của việc tính toán jitter với mục đích phân tích hoạt động của mạng.

    Hình 4.3: Cấu trúc bản tin SR-RTCP.
    Hình 4.3: Cấu trúc bản tin SR-RTCP.

    GểI TIN Mễ TẢ CÁC THễNG TIN CỦA NGUỒN

    - Một định danh SSRC được phân phối một cách ngẫu nhiên và có thể thay đổi trong một phiên RTP, khi phát hiện sự xung đột, hoặc khi chương trình khởi tạo lại. Tuy nhiên, nếu không nhận được thông tin NOTE trong một thời gian nào đó, bên nhận cũng sẽ tự mặc định rằng nó đã được ngừng kích hoạt (thời gian này khoảng 20-30 lần chu kỳ gởi RTCP).

    Gói BYE

    - Do trường prefix có độ dài 8-bit, nên tổng cộng chiều dài của phần thông tin thêm (“prefix string” +“value string”) phải nhỏ hơn 256 octets. Tuy điều này có thể không làm hài lòng một số ứng dụng, tuy nhiên với kích thước như vậy là đúng mức để băng thông dành cho RTCP không bị quá tải.

    GểI APP: APPLICATION-DEFINED RTCP PACKET Cấu trúc gói RTCP-APP

    - Tên này được dùng để phân chia các tập gói APP thành từng nhóm khác nhau để ứng dụng có thể nhận biết được. Tên này có thể lấy giá trị tuỳ ý do người lập trình đặt ra, tuy nhiên theo khuyến nghị, nó nên đặt dựa trên thực thể mà nó miêu tả.

    CÁC BỘ RTP TRANSLATORS VÀ RTP MIXERS

      Phía nhận sẽ hoàn toàn không hề phát hiện ra được sự có mặt của “translator” trừ khi sử dụng một số phương tiện đặc biệt, bởi vì kiểu định dạng tải, địa chỉ giao vận của các gói tin không hề bị thay đổi gì so với nguồn gốc. • Nếu trước đây “translator” kết hợp nhiều gói RTP đầu vào thành một gói RTP ghép tại đầu ra và đã thực hiện việc thay đổi số thứ tự của gói, thì nó phải thực hiện chuyển đổi ngược tương ứng với các trường “packet loss” và.

      Hình 5.1 : Mô hình mạng với các bộ traslator và mixer
      Hình 5.1 : Mô hình mạng với các bộ traslator và mixer

      MỘT SỐ THUẬT TOÁN CẦN CHÚ Ý

      • PHÂN PHỐI CÁC ĐỊNH DANH SSRC
        • VẤN ĐỀ BẢO MẬT TRONG RTP

          Trong những ứng dụng mà cỏc cổng đich RTP và RTCP được chỉ định rừ ràng, tỏch biệt các tham số (có thể sử dụng giao thức báo hiệu hoặc các phương tiện khác), khi đó ứng dụng sẽ không cần quan tâm đến điều kiện cặp cổng chẵn/lẻ. Ta phải chỉ định phương thức framing được sử dụng, ngay cả khi gói RTP được mang theo giao thức cung cấp cơ chế framing để có thể mang nhiều gói RTP trong một đơn vị dữ liệu của giao thức lớp dưới (ví dụ như gói UDP).

          Hình 6.1: Minh hoạ lặp vòng.
          Hình 6.1: Minh hoạ lặp vòng.

          ỨNG DỤNG LÝ THUYẾT VÀO THỰC TẾ

          • Kiểm soát và cân bằng lưu lượng

            Với một băng thông cho trước, hạn chế về dung lượng, chúng ta phải phân phối băng thông một cách hợp lý để ứng dụng có thể chạy hiệu quả nhất, đảm bảo được nhiều client có thể xem đồng thời. Sau một thời gian thực hiện, chúng em đã hoàn thành một website quản lý VoD trên hệ điều hành Linux với đầy đủ các chức năng của nhà quản trị VoD, đáp ứng được nhu cầu xem phim trực tuyến.

            Hình 7.1: Mô hình hoạt động.
            Hình 7.1: Mô hình hoạt động.