Để thực hiện được điều này thì những ứng dụng đó yêu cầu những tầng dưới hỗ trợ, và các giao thức truyền dữ liệu thời gian thực ở các tầng dưới cần đảm bảo 1 số điều như sau: - Có khả nă
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG 1
BÁO CÁO BÀI TẬP LỚN INTERNET VÀ GIAO THỨC
CHỦ ĐỀ: TÌM HIỂU VỀ RTP/ RTCP
Trang 2LỜI MỞ ĐẦU
Ngày nay, cùng với sự phát triển của xã hội thì ngành công nghệ thông tin đang đạt được những tiến bộ đáng kể Các hãng sản xuất phần cứng cũng như phần mềm luôn luôn cố gắng tạo ra những sản phẩm tốt nhất và tối ưu nhất với mức giá hấp dẫn nhất có thể, đưa ra thị trường nhằm phục vụ cho lợi ích của người tiêu dùng cũng như làm tăng thị phần của mình trong môi trường cạnh tranh khốc liệt.
Cùng với sự phát triển của ngành công nghệ thông tin trên thế giới, công nghệ thông tin Việt Nam với phương châm đi tắt đón đầu cũng đã có những bước phát triển vượt bậc Những năm trước đây, người sử dụng mạng Internet ở nước ta chỉ có thể truy cập bằng các Modem quay số (Dial-up) với tốc độ khá chậm và cước phí còn khá cao so với thu nhập bình thường của người lao động Vài ba năm trở lại đây, người sử dụng mạng Internet đã được tiếp cận nhiều hơn bởi sự phát triển rộng rãi của công nghệ DSL (Digital Subsriber Line - đường dây thuê bao số) Với công nghệ này thì Internet đã trở nên phổ biến trong cộng đồng và Internet dần trở thành một nhu cầu tất yếu của xã hội hiện đại Đời sống xã hội ngày càng được cải thiện, môi trường sống và làm việc tốt hơn cùng với thu nhập của người lao động cũng khá hơn trước nên yêu cầu về các tiện ích trong cuộc sống cũng tăng lên đáng kể Giờ đây, người sử dụng không chỉ dừng lại ở những ứng dụng thông thường mà Internet mang đến, những loại hình giải trí như nghe nhạc, xem phim chưa đủ làm thỏa mãn nhu cầu mà họ cần có những ứng dụng cao hơn, hiện đại hơn như giám sát và điều khiển những thiết bị từ
xa, bởi nó vừa có tính an toàn cao và đồng thời cũng mang rất nhiều tiện ích trong một
xã hội công nghiệp đang phát triển.
Trong bài tiểu luận này nhóm em sẽ tìm hiểu về giao thức RTP và RTCP
Trong quá trình làm bài còn tồn đọng những thiếu sót, nhóm em rất mong nhận được những góp ý phản hồi từ thầy giáo và các bạn để bài tiểu luận của nhóm em có thể hoàn thiện và đầy đầy đủ hơn.
Trang 3MỤC LỤC
Trang 4CHƯƠNG 1: TẠI SAO CẦN GIAO THỨC RTP VÀ RTCP
Các ứng dụng phương tiện (Multimedia/Media Application) ở tầng ứng dụng (trong mô hình OSI hay mô hình TCP/IP) cần phải đảm bảo những tính chất khắt khe về thời gian thực, không cho phép độ trễ quá lớn gây ảnh hưởng tương tác người dùng với chúng Để thực hiện được điều này thì những ứng dụng đó yêu cầu những tầng dưới hỗ trợ, và các giao thức truyền dữ liệu thời gian thực ở các tầng dưới cần đảm bảo 1 số điều như sau:
- Có khả năng thử lỗi: có thể chấp nhận mất 1 số gói tin bị lỗi, mất mát Lí
do của yêu cầu này là lượng dữ liệu đa phương tiện thường rất lớn, hơn nữa môi trường truyền tải của mạng máy tính (mạng IP) không thể bảo đảm hoàn toàn không có lỗi, nên hiện tượng mất gói hay lỗi gói có tỷ lệ xảy ra cao Số lượng và mật độ các gói tin đa phương tiện gặp sự cố cần phải ở trong giới hạn để đảm bảo cảm nhận của người dùng (ở mức độ nào đó)
- Cần phải kết hợp các thông số về thời gian: điều này có lí do khá ró ràng
do các dữ liệu đa phương tiện luôn liên quan tới miền thời gian và nhu cầu đảm bảo tương tác thời gian thực của người dùng Không có các thông số về miền thời gian được gửi kèm, các ứng dụng sẽ gặp khó khăn trong việc sắp xếp hay trình diễn các nội dung nó nhận được
- Hỗ trợ định tuyến đa điểm (multicast): điều này không có ý nghĩa nhiều khi tương tác chỉ dừng lại ở mức độ điểm-điểm (unicast), nhưng nhu cầu của con người không chỉ dừng lại ở đó Các hội nghị, các phiên họp hay chỉ là những cuộc trò chuyện theo nhóm là những ví dụ điển hình cho tương tác đa điểm, trong đó mô hình truyền tải có rất nhiều nguồn gửi và đích nhận liên tục gửi audio hay video cho nhau cùng lúc
Sử dụng giao thức TCP hay UDP để truyền tải dữ liệu đa phương tiện rất không thuận lợi
- TCP là giao thức tin cậy, vì vậy có tính thử lỗi rất tốt Tuy nhiên TCP là giao thức hướng kết nối, và cơ chế hộ trợ tin cậy khiến nó chậm chạp (điển hình là các cơ chế chờ đợi xác nhận gửi-nhận, đảm bảo sắp xếp thứ tự gói tin, phát lại gói tin trong trường hợp thất lạc…)
- UDP thì gần như ngược lại TCP khi không phải là giao thức không hướng kết nối, gửi dữ liệu theo phương pháp best-effort, vì vậy nó có thể truyền dữ liệu với tốc độ rất nhanh UDP có thể dùng để truyền dữ liệu thời gian thực nhưng vì không có cơ chế đảm bảo tin cậy nên nó không thể dùng trực tiếp
Trang 5- Tốc độ truyền dữ liệu của TCP quá chậm so với nhu cầu, hơn nữa không
có hỗ trợ multicast nên người ta đã lựa chọn phương án sử dụng UDP kết hợp với
1 giao thức tầng trên để khắc phục được các nhược điểm của UDP trong truyền dữ liệu thời gian thực nhưng vẫn lợi dụng được tốc độ truyền dữ liệu cao của nó cụ thể là RTP và RTCP
CHƯƠNG 2: GIAO THỨC RTP
2.1 KHÁI NIỆM
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
2.2 CHỨC NĂNG
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
2.3 CẤU TRÚC
Trang 6Cấu trúc gói tin RTP
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
định phải được liên kết với phần header mở rộng
header cố định
profile
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
Trang 7- 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
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 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 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)
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
7
Trang 8phầ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)
CHƯƠNG 3: GIAO THỨC RTCP
3.1 ĐỊNH NGHĨA
Giao thức RTCP (Realtime Transport Control Protocol) là giao thức điều khiển được thiết kế để hoạt động kết hợp với RTP, dựa trên việc truyền đều đặn các gói điều khiển tới tất cả các người tham gia vào phiên truyền RTCP cung cấp thông tin về các gói tin nhận được, cung cấp thông tin phản hồi để theo dõi
về chất lượng dịch vụ hội nghị và thông tin về các thành viên tham gia hội nghị
để giúp kiểm soát phiên làm việc
Trong một phiên RTP, thường chỉ có một địa chỉ multicast duy nhất và tất
cả các gói tin RTP và RTCP đều phụ thuộc vào phiên làm việc IP multicast Gói tin RTP và RTCP được phân biệt với nhau bằng việc sử dụng cổng riêng,
thường thì số cổng của RTCP được tạo từ cổng RTP cộng thêm một
3.2 CHỨC NĂNG VÀ HOẠT ĐỘNG CỦA RTCP
Giao thức này dung để điều khiển các gói mang tin trong phiên truyền của mỗi thành viên, được phân phối theo cùng cơ chế với các gói mang tin Các giao thức lớp dưới phải đảm bảo các gói mang dữ liệu RTP và các gói mang thông tin điều khiển RTCP được truyền trên 2 cổng UDP khác nhau Thường thì các gói mang thông tin điều khiển sẽ là cổng lẻ, các gói mang dữ liệu sẽ là cồng chẵn
Trang 9Giao thức RTCP được sử dụng với một số chức năng sau:
- Cung cấp các thông tin phản hồi về chất lượng của đường truyền dữ liệu: Đâ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) Chức năng này được thực hiện dựa trên các bản tin thông báo từ phía người gửi và phía người nhận Thông tin hồi đáp có thể được sử dụng trực tiếp cho việc điều khiến việc thay đổi phương pháp mã hoá (adaptive encoding) Trong trường hơn truyền IP multicast thì các thông tin hồi tiến từ nhía người nhận là tối quan trọng cho việc chuẩn đoán các sự cố xảy ra trong quá trình truyền, 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 Với cơ chế truyền IP multicast, có thể cần đến một thực thể đóng vai trò của nhà cung cấp dịch vụ, nhận các thông tin phản hồi Thực thế này đóng vai trò bên thứ 3, quan sát và phân tích các vấn đề xảy ra
- Xác định nguồn: RTCP mang một thông tin định danh ở lớp giao vận gọi là
CNAME (canonical name) Thông tin này giúp ta định danh một nguồn phát
RTP(tương ứng với 1 thành viên tham gia hội thảo) Trong 1 phiên truyền RTP, khi giá trị của SSRC của phía phát thay đổi có thể gây ra xung đột sẽ đòi hỏi thiết lập lại kết nối Do đó phía nhận cần sử dụng CNAME để duy trì kết nối tới từng thành viên Ngoài ra, việc CNAME có thể xác định được từng thành viên, giúp cho bên nhận có thể phân chia những luồng tin nhận được thành từng tập tương ứng với từng người
Trang 10giúp cho việc đồng bộ tín hiệu audio với tín hiệu video, RTCP còn cung cấp thông tin nhận dạng nguồn cụ thể hơn ở dạng văn bản Nó Có thể bao gồm tên người sử dụng, số điện thoại, địa chỉ e-mail và các thông tin khác
- Đồng bộ thời gian: Các thông báo của bộ phát RTCP chứa thông tin để
xác định thời gian NTP và nhãn thời gian RTP tương ứng Chúng có thể được sử dụng để đồng bộ giữa âm thanh với hình ảnh,
- Điều chỉnh tốc độ truyền các gói RTCP: Hai chức năng đầu đòi hỏi tất
cả các thành viên đều phải gửi đi các gói RTCP Do vậy, trong trường hợp có một
số lượng lớn người cùng tham gia hội thảo, đòi hỏi phải có sự điều chỉnh tốc độ cho phù hợp để dành tài nguyên cho các gói RTP Dựa vào việc mỗi thành viên gửi gói tin điều khiển của mình tới tất cả các thành viên khác, mỗi thành viên có thể độc lập quan sát số lượng người tham gia Con số này sẽ được dùng để tính toán tốc độ truyền thông điệp
-Chức năng tùy chọn: Cho phép tùy chọn các chức năng, giúp giảm tối đa
các việc truyền các thông tin điều khiển Điều này rất hữu ích trong các phiên truyền “loosely controlled”, các thành viên có thể tham gia hoặc rời bỏ mà không điều khiển quan hệ tới các thành viên khác Ví dụ, một thành viên chỉ cần nghe các thông tin chuyển tới, như một RTCP Server Nó có thể sử dụng một kênh thích hợp kết nối với tất cả thành viên, nhưng nó không cần sử dụng tất cả các chức năng của một ứng dụng
3.3 CÁC LOẠI GÓI TIN RTCP:
- RR (Receiver Report): Thông điệp RR được tạo ra để báo cáo về việc
thu nhận của máy thu trong một phiên làm việc RTP và nó sẽ được đưa vào một gói tin RTCP Gói tin này sau đó sẽ được gửi vào cây multicast để kết nối với tất
cả phiên làm việc khác Thông điệp RR chứa thông tin: SSRC của luồng RTP, số lượng gói tin RTP bị mất, các số sq number cuối nhận được trong luồng RTP, độ jitter trong truyền gói
- SR (Sender Report): Máy phát tạo ra thông điệp SR để truyền đi vào các
luồng RTP, thông điệp này chứa các thông tin: SSRC của luồng RTP, timestamp
và thời gian wall clock của gói tin RTP được tao ra gần đây nhất, số lượng gói tin được gửi đi trong luồng, số lượng byte được gửi đi trong luồng Ngoài ra, SR còn
có thể đồng bộ các luồng dữ liệu đa phương tiện khác nhau trong một phiên làm việc RTP
- SDES (Source Description Items): Các thông điệp SDES được máy phát
tạo ra và truyền trên luồng RTP chứa các thông tin: điểm bắt đầu (như địa chỉ mail