Bài tập lớn mạng máy tính lập trình mô phỏng hoạt động của giao thức RTP Bài tập lớn mạng máy tính lập trình mô phỏng hoạt động của giao thức RTP Bài tập lớn mạng máy tính lập trình mô phỏng hoạt động của giao thức RTP Bài tập lớn mạng máy tính lập trình mô phỏng hoạt động của giao thức RTP Bài tập lớn mạng máy tính lập trình mô phỏng hoạt động của giao thức RTP Bài tập lớn mạng máy tính lập trình mô phỏng hoạt động của giao thức RTP
Trang 1MỤC LỤC
Danh mục hình ảnh 3
Danh mục bảng biểu 4
MỞ ĐẦU 5
Chương 1: Truyền dòng trong thơi gian thực 6
1.1 Khái niệm truyền dòng 6
1.2 Quá trình truyền dòng 6
Bước 1: Mã hóa 7
Bước 2: Lấy mẫu 9
Bước 3: Truyền các mẫu qua mạng 9
Bước 4: Nhận và khôi phục dữ liệu và đồng bộ các dòng 10
Bước 5: Giải nén 11
Chương 2: Giao thức RTP (RealTime Transport Protocol) 12
2.1 RTP- RealTime Transport Protocol 12
2.2 Một số khái niệm liên quan đến RTP 13
2.3 Hoạt động của giao thức 17
2.3.1 Sender 17
2.3.2 Receiver 17
2.4 Đặc điểm của cơ chế 17
2.5 Kiến trúc gói dữ liệu header RTP 19
Chương 3: RCTP 21
Chương 4 : Một số thuật toán được sử dụng 22
4.1 Phân phối các định danh SSRC 22
Trang 24.1.1 Xác xuất xảy ra xung đột 22
4.2 Vấn đề bảo mật trong RTP 23
4.2.1 Khả năng che giấu dữ liệu 23
4.2.2 Nhận thức và bảo toàn dữ liệu 24
4.3 Điều khiển tắc nghẽn 24
KẾT LUẬN 25
TÀI LIỆU THAM KHẢO 26
Trang 3Danh mục hình ảnh
Hình 1: Quá trình truyền dòng 7
Hình 2: Sự phát triển của các chuẩn nén 8
Hình 3: Mô hình phiên RTP(RTP session) 14
Hình 4: Minh họa các đồng bộ nguồn(Synchroization soure) 15
Hình 5: Hoạt động của bộ Mixer 15
Hình 6: Minh họa việc chèn danh sách CSRC khi đi qua bộ Mixer 16
Hình 7: Mã hóa gói tin RTP trong gói IP 18
Trang 4Danh mục bảng biểu
Bảng 1: Băng thông mạng và tỉ lệ nén yêu cầu 7
Trang 5MỞ ĐẦU Hiện nay, mạng máy tính không còn là khái niệm xa lạ gì Sau hơn 40 năm phát triền, giờ đây mạng máy tính đã trải rộng trên toàn cầu với đường truyền có chất lượng cao Ngoài ra tính bảo mật và độ tin cậy trên mạng cũng ngày càng được củng cố Những ứng dụng trên mạng đang ngày càng phong phú Chính những sự phát triển này đã làm nảy sinh một vấn đề, đó là truyền thông đa phương tiện trên mạng Yếu tố rất quan trọng,
có mặt trong rất nhiều lĩnh vực Trong những buổi hội thảo trực tuyến, trong đào tạo từ
xa trên mạng, trong dịch vụ audio/video theo yêu cầu… Tuy sự phát triền của truyền thông đa phương tiện đòi hỏi tính thời gian thực rất cao, chum giao thức TCP/IP hiện đang được sử dụng rất phổ biến không thể đáp ứng nhu cầu này Do vậy đòi hỏi các chuyên gia mạng phải tìm một giải pháp mới, một giao thức mới có thể đáp ứng được việc truyền tải dữ liệu thời gian thực trên mạng Hiện nay, giao thức RTP đã và đang chứng tỏ những ưu điểm của mình trong việc đáp ứng các ứng dụng thời gian thực Tại Việt Nam, các ứng dụng thời gian thực còn chưa phát triển, nhưng với nhu cầu cấp thiết của thực tế, trong thời gian tới chắc chắn các ứng dụng thời gian thực sẽ phát triển mạnh mẽ
Đây là lý do chính chúng em chọn đề tài này
Trang 6Chương 1: Truyền dòng trong thơi gian thực 1.1 Khái niệm truyền dòng
Khái niệm truyền dòng có thể hiểu là khi nội dung của audio hay video được truyền tới nơi nhận, nơi nhận có thể thể hiện được ngay trong quá trình truyền mad không cần phải đợi đến khi toàn bộ nội dung của audio hay video được truyền xong
Truyền dòng cho phép chúng ta thể hiện các dòng video thời gian thực mà không phụ thuộc vào độ dài của video Điều này rất có í nghĩa khi truyền các file audio hoặc video có kích thước lớn hay các dòng video hoặc audio có độ dài không xác định Chúng ta có thể bắt gặ rất nhiều trường hợp sử dụng cơ chế truyền dòng như các chương trình truyền hình trực tiếp, hội thảo qua mạng Với khả năng truyền tải nội dung audio , video thông qua mạng, chúng ta có thể có một phương pháp giao tiếp và truy nhập thông tin mới
Với góc nhìn bao quát , truyền dòng là một phương pháp truyền thông tin liên tục, trong đó nội dung được truyền đi theo thời gian thể hiện nội dung của video đó Bên nhận, khi nhận dòng tin nội dung video có thể hiển thị ngay nội dung của video đó theo thời gian Khả năng này rất có ý nghĩa đối với các loại dữ liệu phụ thuộc vào thời gian, bởi để đảm bảo chất lượng cảm thụ video, audio tì phải đảm bảo được mối quan hệ về mặt thời gian giữa những khung hình
1.2 Quá trình truyền dòng
Truyền dòng đối với audio và video phải trải qua nhiều công đoạn với từng nhiệm
vụ riêng lẻ để đi đến kết quả cuối cùng là đạt được khả năng hiển thị ngay ở bên nhận
Trang 7dữ liệu hay truyền video không nén sẽ phải trả giá cao, đôi khi là không thể
Có bảng cho biết độ nén cần thiết đối với từng môi trường mạng khác nhau:
Dạng kết nối Tốc độ Bit (Bit Rate) Tỉ lệ nén
Trang 8Có thể sử dụng nhiều chuẩn nén khac nhau cho việc nén video Tùy theo yêu cầu chất lượng và băng thông , mà ta có thể chọn lựa được phương pháp nén thích hợp Với việc sử dụng một chuẩn nén video cho dữ liệu video , không gian lưu trữ cần thiết cũng như bang thông mạng yêu cầu cho dòng video giảm đột ngột Sự phát triển của các chuẩn nén có thể tham khảo trong sơ đồ dưới đây:
Hình 2: Sự phát triển của các chuẩn nén
- H.261 :một kĩ thuật với tốc độ dòng bit nhỏ được đưa ra sử dụng vào năm 1984 bởi ITU sử dụng trong các dịch vụ audio-visal
- MPEG-1: Chuẩn ISO, ứng dụng trong ngành công nghệ quảng bá MPEG-1 được tạo ra như một sự sửa đổi của H.261 cho việc chuyển video vào đĩa CD với tốc
đọ bit thấp
- MPEG-2: được phát triển cho việc quảng bá video chất lượng cao bằng các sử dụng tỉ lệ nén thấp
Trang 9- H.263 : một sửa đổi phỏng theo MPEG-2 với mục đích thu được độ nén cao trong khi vẫn đảm bảo được chất lượng hình ảnh cao H.263+ và H.263++ là các phiên bản mở rộng của H.263
- MPEG-4 : được phát triển song song với H.263 như là một phương pháp thay thế cho MPEG-1 với dòng bit thấp
- H.323: Một hệ thông hoàn hảo cho việc truyền thông multimedia, trong đó tành phần video được thực hiện trên cơ sở H.261/263
- JPEG-2000: Chuẩn JPEG mới nhất dựa trên cơ sở DWT(Discrete Wavelet Trasform) ban đầu được phát triển cho việc nén nanh, nay được áp dụng cho cả video
- H.264: Mở rộng của H.263 hiện chưa được phát triển
Bước 2: Lấy mẫu
Việc lấy mẫu thực chất là việc chia nhỏ nội dung của video hay audio thành các khối nhỏ thích hợp truyền đi trong môi trường mạng Đối với các dữ liệu audio, việc lấy mẫu được thực hiện theo thời gian Tương ứng sau một khoảng thời gian bằng cho kì lấy mẫu, phần dữ liệu audio tương ứng trong khoảng thời gian đó sẽ được sử dụng để truyền đi Với các dữ liệu video, ngoài việc lấy mẫu theo thời gian còn có cả việc lấy mẫu qua không gian Việc lấy mẫu theo thời gian sẽ tương ứng với thời gian thể hiện của khung hình và việc lấy mẫu theo không gian sẽ được thực hiện bằng cách chia nhỏ các khung hình thành các phần với kích thước thích hợp đối với việc truyền đi
Khi lấy mẫu , các mẫu phải chứa đựng đầy đủ các thông tin dung cho việc khôi phục lại dữ liệu video hay audio về cả mặt thời gian cũng như không gian khi bên nhận nhận được các mẫu này Với việc sử dụng một giao thức như giao thức truyền thông thời gian thực như RTP, quá trình lấy mẫu sẽ được tiến hành tự động
Bước 3: Truyền các mẫu qua mạng
Việc truyền mẫu dữ liệu video có thể được thể hiện trực tiếp thông qua giao diện của môi trường mạng như Socket hay thực hiện qua một giao thức cấp cao ở tầng ứng dụng như RTP Thông thường người ta sẽ chon giải pháp thứ 2, tức là sử dụng một giao
Trang 10thức truyền dòng thời gian thực cho việc truyền các mẫu nếu như giao thức đó hỗ trợ phần cứng cũng như phần mềm
Việc sử dụng một giao thức truyền dòng thời gian thực có nhiều ưu điểm Thứ nhất
là tính hiệu quả, bởi vì các giao thức truyền thông thời gian thực được thiết kế cho việc truyền các loại dữ liệu động, như video chẳng hạn, khi đó tính thời gian thực sẽ được chú trọng hơn là tính chính xác về mặt dữ liệu Ví dụ như đối với giao thức RTP, giao thức truyền thông lớp dưới thường được sử dụng là UDP (User Datagram Protocol) là giao thức với độ tin cậy thấp nhưng có tốc độ truyền dữ liệu cao hơn các giao thức truyền tin cậy khác như TCP Ưu điểm thứ 2 là các giao thức thời gian thực hỗ trợ mạnh về việc đồng bộ các dòng dữ liệu từ các nguồn khác nhau nhưng có qua hệ với nhau về mặt thời gian thực
Ngoài ra các giao thức điều khiển còn cung cấp các dịch vụ cho phép quản lí các thành viên tham gia và điều khiển chất lượng của việc phân phối dữ liệu
Với việc sưe dụng một giao thức truyền thông thời gian thực cho việc truyền , khi
đó các mẫu sẽ được đóng gói thành các gói tin Các gói tín sẽ mạng đầy đủ cấc thông tin như nhan thời gian , số thức tự của gói và các thông tin khác đủ dung cho việc khôi phục lại dữ liệu và đồng bộ các dòng khi bên nhận tiến hành nhận hay thể hiện nội dung của video hay audio Thông qua các giao thức lớp dưới, các gói tin sẽ được truyền đi trong môi trường mạng
Bước 4: Nhận và khôi phục dữ liệu và đồng bộ các dòng
Đây là quá trinh ngược với bước thứ ba, được thực hiện ở bên nhận dữ liệu dưới dạng các gói tin truyền đến Các gói tin được chuyển đến có thể là của nhiều dòng tương ứng với nhiều nguồn dữ liệu khâc nhau và cũng có tế thứ tự các gói nhận được sẽ không giống với lúc nó truyền đi Khi đó bên nhận phải căn cứ vào các thông tin được ghi trong từng gói để có thể xác đinh được vị trí về mặt khong gian và thời gian của các mẫu dữ liệu mà các gói tin mang theo Việc truyền các dòng đơn lẻ không có quan hệ với nhau
về mặt thời gian thì nội dung của audio hay video vừa được khôi phục có thể được dùng
Trang 11để trình diễn Còn trong trường hợp có nhiều dòng khác nhau có quan hệ với nahu về mặt thời gian thực thì cần phải dồng bộ về mặt thời gian
Việc đồng bộ các dòng chỉ cần thiết khi các dòng có quan hệ với nhau về mặt thời gian chẳng hạn như hình với tiếng khi truyền video, khi đó thời gian thể hiện của các dòng phải được tính toán cho phù hợp nhau nhất Việc đồng bộ là một việc phức tạp, thường được thể hiện tự động bởi các giao thức truyền thông thời gian thực như RTP Khi đó mặc dù các gói tin nhận được có thể không giống nhau như thứ tự được gưi đi, thâm chí có một số gói tin bị mất nhưng giao thức vẫn phải đảm bảo tính đồng bộ cho các đòng khi được thể hiện ở nơi nhận
Bước 5: Giải nén
Bước này sẽ tiến hành giải nén dòng audio/video với chuẩn đã được sử dụng khi nén dữ liệu Dữ lieu sau khi được giải nén có thể được thực hiện ra các thiết bị hay được ghi ra file
Trang 12
Chương 2: Giao thức RTP (RealTime Transport Protocol)
2.1 RTP- RealTime Transport Protocol
Phương thức thông thường để truyền dữ liệu dạng audio hay video cùng các dữ liệu đính kèm và khung truyền là RTP RTP nhằm mục tiêu cung cấp các dịch vụ truyền tải hình ảnh thời gian thực như audio/ video thông qua mạng (IP Network)
Các dịch vụ đó bao gồm các khôi phục dữ liệu sau khoảng thời gian xác định(Timing Recovery), tìm lỗi và sửa lỗi (loss detection anh correction), định dạng khung truyền và nguồn (payload and source identifition), tiếp nhận phản hồi về chất lượng dịch vụ(reception quality feedback), đồng bộ dữ liệu (media synchroization) và quản lí thành viên (membership management) RTP được thiết kế để dùng trong trao đổi quảng bá (multicast conferences) dùng cơ chế lightweight sessions
Nó tỏ ra hữu ích trong hàng loạt các ứng dụng: hội nghị truyền hình dùng cơ chế H323, webcasting, truyền hình, hệ thống thoại có dây và không dây Bằng việc dùng giao thức này mỗi phiên truyền tải được gửi đến hàng nghìn người
RTP được coi là chuẩn đóng gói để truyền tải dữ liệu dạng audio và video qua mạng Internet Nó được pháy triển bởi Audio-Video Traansport Working Group và được công
bố lần đầu năm 1996 là RFC 1889 Sau này RFC 3550 vào năm 2003
RTP thường được dung trong hệ thống truyền thông cùng với RTSP để thực hiện hội nghị truyền hình và hệ thống thoại Nó chứa dòng dữ liệu được điều khiển bởi H323, MGCP và SIP Đó là nền tảng công nghệ cho kiến trúc Voice IP
RTP thường được dung kết hợp với RTCP Trong khi RTP truyền dữ liệu band signal (DTMF) RTCP được dung để điều khiển trạng thái truyền và chất lượng dịch vụ QoS Khi được dung kết hợp RTP thường được sắp xếp nhận trên cổng chẵn, RTCP trên cổng lẻ
out-of-RTP ban đầu được tạo là giao thức multicast nhưng nó vẫn chấp nhận trong nhiều ứng dụng unicast Trong truyền thông dạng host-to-host, RTP và RTCP thường dung UDP qua cá giao thức ở lớp vận chuyển
Trang 13Số hiệu cổng: RTP không thao tác trên các cổng mặc định như TCP và UDP Tuy nhiên nó thường dung các cổng số hiệu chẵn, có giá trị từ 16384 – 32767, dải địa chỉ này đang dần được mở rộng Việc này gay khó khan trong trường hợp có tường lửa (firewall)
và NATs Để giải quyết vấn đề này, nó cần khởi tạo STUN server
2.2 Một số khái niệm liên quan đến RTP
1 RTP payload: Đây là phần dữ liệu được truyền trong gói RTP, đây có thể là các mẫu tín hiệu thoại hoặc video đã được nén
2 RTP packet: là gói dữ liệu RTP , gồm phần cố định RTP header, phần sanh sách các nguồn phân tán (có thể rỗng) , phần RTP payload Một số giao thức tầng dưới
có thể yêu cầu phải đóng gói lại các gói RTP Thông thường 1 gói lớp dưới chứa
1 gói RTP Tuy nhiên cũng có trường hợp nhiều gói RTP được đóng vào một gói, điều này hoàn toàn phụ thuộc cách đóng gói của lớp dưới
3 RTCP packet : Đây là gói tín hiệu điều khiển RTCP, có phần tiêu đề cố định gần giống với gói RTP Tiếp theo đến phần có cấu trúc , dạng của cấu trúc sẽ phụ thuộc vào loại gói của lớp dưới Điều này có thể thực hiện được do các gói RCTP
5 Transport address: Địa chỉ này phục vụ việc vận chuyển dữ liệu Nó là sự kết hơp giữa địa chỉ mạng và địa chỉ cổng được định nghĩa ở các tầng giao vận
6 RTP media type: Đây là một tập các loại tải có cung một số tính chất được mang trong phiên truyền RTP Trong hội thảo đa phương tiện ta có thể dùng hai loại RTP media type là video-MPEG2 và audio-PCMA
7 RTP session : Một phiên RTP có thể có sự tham gia của một tập các thành viên
Trang 14(một dùng truyền gói RTP, một dùng truyền gói RTCP) 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 cho từng thành viên (trong trường hợp truyền điểm điểm unicast) Trong một phiên truyền Mutilmedia, các tín hiệu thành phần (video/audio) được truyền theo một cặp cổng riêng
Hình 3: Mô hình phiên RTP(RTP session)
8 Đồng bộ nguồn (Synchroization source)(SSRC) : Nguồn phát dòng các gói RTP, được định danh bởi 32-bits SSRC trong phần header của gói RTP Nó có giá trị hoàn toàn độc lập với địa chỉ mạng Các gói dữ liệu từ một nguồn được đánh thời gian và số thứ tự một cách thống nhất Do đó phía nhận sẽ dựa trên SSRC để khôi phục lại tín hiệu Giá trị của định danh SSRC của mỗi nguồn RTP là đơn vị trên toàn mạng, nó được khởi tạo một cách ngẫu nhiên
Trang 15Hình 4: Minh họa các đồng bộ nguồn(Synchroization soure)
9 Bộ trộn (Mixer ) : đây là một hệ thống trung gian , có thể nhận các gói RTP từ một hoặc nhiều nguồn đồng bộ khác nhau Do đó dạng của dữ liệu thu được có thể khác nhau Mixer sẽ kết hợp các gói có cùng dạng rồi chuyển tiếp trong một gói RTP mới.Khi đó thời gian được gắn theo các gói tin sẽ bị mất đồng bộ, nên Mixer sẽ thay đổi lại các nhãn thời gian cho thích hợp với mỗi luông ra Mixer khi hoạt động sẽ có vai trò như một nguồn đồng bộ
Hình 5: Hoạt động của bộ Mixer
10 Contributing source (CSRC): khi dòng các gói RTP được tổng hợp nhờ bộ Mixer
Bộ Mixer sẽ chèm thêm một danh sách CSRC chứa các định dan của SSRC của các nguồn đã được tổng hợp Việc này giúp cho bên nhận có thể dễ dàng phân tách địa chỉ SSRC tương ứng với từng nguồn gửi