- Giao thức RTP cung cấp các chức năng giao vận phù hợp cho các ứng dụng truyền dữ liệu mang đặc tính thời gian thực như là thoại • Được thiết kế phiên bản đầu tiên đầu năm 1992 • Gói RT
Trang 1Truyền thông đa phương tiện
Trang 2Phân công công việc
• Phạm Thiện Doanh: Tìm hiểu tổng quan chung về 2 giao
thức RTP/RTCP
• Nguyễn Đức Chiến: Các giao thức RTP/RTCP hiện được
dùng trong các dịch vụ ứng dụng thực tế nào?
• Thân Xuân Quỳnh: Phân tích cấu trúc và tìm hiểu các công
nghệ triển khai thực tế đang dùng các giao thức này
• Bùi Minh Thanh: Cho biết sự khác nhau khi dùng giao thức
RTP/RTCP trong các ứng dụng truyền thoại và các ứng dụng truyền dòng video
Trang 3Tổng quan về giao thức
RTP/RTCP
- Giao thức RTP/RCTP là cặp giao thức ở tầng ứng dụng,chạy trên nền UDP/IP được thiết kế bởi tổ chức IETF và hiện nay trở thành chuẩn khuyến nghị ITU-H323 cho hội nghị đa phương tiện
- Giao thức RTP cung cấp các chức năng giao vận phù hợp cho các ứng dụng truyền dữ liệu mang đặc tính thời gian thực như là thoại
• Được thiết kế phiên bản đầu tiên đầu năm 1992
• Gói RTP chứa trong gói UDP/TCP
Trang 4Tổng quan về giao thức
RTP/RTCP
• RTP được thiết kế dùng cho truyền dòng video-audio,phân phối
dữ liệu thời gian thực theo đa hướng đến nhiều
người(Multicast),hoặc đơn hướng(unicast),cho phép tương tác theo mô hình đa điểm hoặc điểm-điểm
1.2 Vai trò,chức năng
Giao thức RTP (Real-time transport protocol), cung cấp các hàm phục vụ việc truyền tải dữ liệu “end to end” cho các ứng dụng thời gian thực, qua các mạng multicast hay qua mạng unicast Các dịch vụ này bao gồm:
- Sự phân loại tải: payload type identification
- Đánh số thứ tự: sequence numbering
- Đánh dấu thời gian phát, đồng bộ hoá
- Theo dõi quá trình truyền tải: delivery monitoring
Trang 5-Version(v):Đây là trường định nghĩa phiên bản của RTP
-Padding(p):Nếu padding được thiết lập,gói dữ liệu sẽ có một cài ocets thêm vào cuối gói dữ liệu để đáp ứng các yêu cầu sau:Phục
vụ cho một vài thuật toán mã hóa thông tin cần kích thước dữ liệu xác định để có thể thực hiện hoặc để cách lý các gói tin 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 tầng giao thức dưới
Các trường header của RTP
Trang 6Các trường header của RTP
- Extension(x):Nếu như trường Extension được thiết lập,theo sau phần tiêu đề cố định sẽ là phần mở rộng
- CSRC count(CC):Xác định số lượng các định danh CSRC có trong danh sách được lưu trữ sau phần tiêu đề cố định
- Marker(M):Bao gồm các thông tin về các sự kiện quan trọng như việc đánh dấu các biên của frame trong luồng packet
- Payload type:Cho biết định dạng của RTP payload và xác định
Trang 7Các trường header của RTP
- Số nhận dạng nguồn đồng bộ SSRC: SSRC chỉ ra nguồn
đồng bộ của gói RTP, số này được chọn một cách ngẫu
nhiên Trong một phiên RTP có thể có nhiều hơn một nguồn đồng bộ Mỗi một nguồn phát ra một dòng các gói RTP Bên thu nhóm các gói của cùng một nguồn đồng bộ lại với nhau
để phát lại tín hiệu thời gian thực Nguồn đồng bộ có thể là nguồn phát các gói RTP phát ra từ một micro, camera hay
một RTP mixer.
- Các số nhận dạng nguồn đóng góp CSRC: Các số nhận
dạng nguồn đóng góp trong phần tiêu đề chỉ ra những nguồn đóng góp thông tin và phần tải trọng của gói Trường này
giúp cho bên thu nhận biết được gói thông tin này mang
thông tin của những người nào trong một cuộc hội nghị
Trang 8Giao thức RTCP
- 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
Trang 9Chức năng
Cung cấp thông tin phản hồi về chất lượng phân phối dữ
liệu.Mỗi gói tin RTCP có hai trường nhãn thời gian cho phép khôi phục lại thời gian gói tin được gửi tại phía nhận
-RTCP mang một định danh tầng giao vận cho nguồn RTP gọi là tên “quy tắc”(CNAME) xác định duy nhất một thành viên trong hội nghị,các kết nối RTP khác nhau có các SSRC khác
nhau,nhưng xuất phát từ một người tham gia sẽ có cùng
CNAME.Tại nơi nhận sử dụng CNAME để xác định các luồng
dữ liệu từ một thành viên trong một tập hợp các phiên RTP để đồng bộ video,audio
Trang 10Các loại gói tin RTCP
• SR(sender report):Thông báo của người gửi,được tạo ra bởi người đang gửi,SR chứa các thông tin nhằm đồng bộ các gói tin,thống kê việc truyền và nhận từ các thành viên là người đang gửi
• RR(receiver report):Thông báo của người nhận,được tạo ra bởi các thành viên không là người đang gửi.,chứa các thông tin phản hồi về
dữ liệu nhận được,số gói tin mất,độ tắc nghẽn,các nhãn thời gian của các gói cho phép tính độ trễ của người gửi và người nhận.
• SDES(Source DEScription items):Gói mô tả nguồn,chứa thông tin
mô tả nguồn gửi.
• BYE:Gói xác định việc kết thúc tham gia trao đổi thông tin,báo kết thúc phiên làm việc
• APP(APPlication specific functions):Dùng để phát triển cho các
ứng dụng đặc biệt
Trang 11Khuôn dạng gói tin SR
Gói SR bao gồm 3 phần bắt buộc:
• Phần tiêu đề dài 8 octets:Giống phần tiêu đề của gói tin RTP
Trang 12Khuôn dạng gói tin SR
• Phần thông tin bên gửi:
-NTP timestamp (tem thơi gian NTP): Chỉ ra thời gian tuyệt đối khi gói báo cáo được gửi đi Tem thời gian này có khuôn dạng thời gian theo giao thức NTP (Network Time Protocol)
-RTP timestamp (tem thời gian RTP): Giá trị của trường này
tương ứng với giá trị của trường NTP timestamp ở trên nhưng được tính theo đơn vị của nhãn thời gian RTP trong gói dữ liệu RTP và với cùng một độ lệch ngẫu nhiên của nhãn thời gian RTP trong gói dữ liệu RTP
-Số lượng gói phát đi của nguồn gửi gói SR : Số lượng tổng cộng của các gói dữ liệu RTP được truyền từ nguồn gửi gói SR kể từ khi bắt đầu việc truyền thông tin cho tới thời điểm gói SR được tạo ra
Trang 13Khuôn dạng gói tin SR
- Số lượng octets đã được nguồn gửi gói SR gửi đi: Số lượng tổng cộng của các octets phần payload được truyền đi trong các gói RTP bởi nguồn gửi gói SR kể từ khi bắt đầu việc
truyền cho đến thời điểm gói SR này được tạo ra
• Các khối báo cáo thu: Phần này bao gồm các khối thông tin báo cáo về việc thu các gói từ các trạm trong phiên truyền
Trang 14Hội nghị audio sử dụng
multicast đơn giản
• Cơ sở hạ tầng là mạng IP Quan điểm chính là kết hợp việc truyền Multicast và sử dụng đồng thời hai cổng truyền dữ liệu Trong đó một cổng sẽ dùng để truyền các dữ liệu thoại cụ thể, cổng còn lại sẽ sử dụng để truyền các gói tin điều khiển RTCP Địa chỉ và cổng thông tin được phân chia cho những người tham gia Trong trường hợp cần yêu cầu bảo mật thì dữ liệu và các gói tin điều khiển trước khi truyền qua hai cổng này sẽ được mã hóa theo chuẩn, các khóa mã cũng sẽ được sinh ra và truyền kèm theo Mỗi thành viên tham gia thoại sẽ gửi dữ liệu thoại theo từng đoạn 20ms của tiếng nói Những đoạn dữ liệu này sẽ được gắn thêm phần RTP header; RTP header và dữ liệu được chứa trong một gói tin UDP Phần tiêu đề của gói RTP xác định loại
mã hóa tín hiệu thoại và có thể thay đổi trong quá trình truyền,
để phù hợp với tốc độ mạng của từng thành viên
Trang 15Hội thảo audio sử dụng
multicast đơn giản
• Việc truyền các gói tin trên Internet rất có thể xảy ra thất lạc, mất thứ tự các gói tin Để giải quyết vấn đề này, phần RTP header có chứa thông tin về thời gian và số thứ tự của các gói tin Do đó bên thu có thể dựa vào đó để khôi phục lại về mặt thời gian Trong trường hợp này, mỗi thành viên
sẽ liên tục truyền đi các gói tin với chu kỳ 20ms Việc khôi phục thời gian này được biểu diễn riêng cho mỗi nguồn của các gói tin RTP trong cuộc hội thoại, do đó sẽ giúp cho bên nhận có thể phân được các nguồn tin khác nhau trong quá trình thoại
• Khi một thành viên rời khỏi hội thoại, họ sẽ gởi một gói tin RTCP Bye để thông báo
Trang 16Hội nghị sử dụng thoại và video
hoàn toàn độc lập Hình: RTP trong hội thảo sử dụng cả video/audio
Không hề có sự kết nối trực tiếp nào giữa hai quá trình này Tuy nhiên nếu mỗi thành viên tham gia, sử dụng 1 định danh cho cả hai tiến trình này thì phía nhận vẫn hoàn toàn có thể ghép lại được từng cặp audio/video
Trang 17Hội nghị sử dụng thoại và video
• Với việc truyền tách biệt này, cho phép một thành viên tham gia hội thảo thiết lập cơ chế chỉ nhận một luồng Audio hoặc Video Việc mất đồng bộ của tín hiệu hình và tiếng sẽ được giải quyết dựa vào thông tin định thời trong các gói tin
RTCP của hai luồng
• Khi các thành viên sử dụng đường truyền tốc độ khác nhau,
để đảm bảo ai cũng nhận được chất lượng audio/video cao
nhất Khi đó ta có thể sử dụng bộ trộn RTP-level mixer, đặt gần nơi có băng thông hẹp Bộ này sẽ tái đồng bộ các gói tin thoại, khôi phục lại chu kỳ 20ms của phía gởi Sau đó
truyền lại dòng audio với tốc độ bit phù hợp với đường
truyền
Trang 18Hội nghị sử dụng thoại và video
• Việc truyền lại này có thể sử dụng truyền Unicast cho một
người nhận đơn, hoặc Multicast cho một nhóm người nhận Phần RTP header sẽ đảm nhiệm việc định danh lại người gửi phía nhận RTP-level còn có thể sử dụng để thay đổi độ
phân giải của tín hiệu Video cho phù hợp với từng thành
viên tham gia
• Ngoài ra ta còn kể đến trường hợp, một thành viên sử dụng
đường truyền tốc độ cao, nhưng họ lại không thể nhận trực
tiếp các gói IP multicast Khi đó ta sẽ phải cài đặt 2 bộ level mixer Một được đặt phía trước firewall, một phía sau
RTP-firewall
Trang 19Cấu trúc RTP
• Một gói dữ liệu RTP bao gồm phần cố định RTP header, phần
dữ liệu Payload
- cấu trúc RTP header:
- Hình trên biểu diễn các trường trong RTP header, trong đó thì 96 bit đầu là
cố định cho mọi gói tin RTP, trừ trường CSRC chỉ xuất hiện khi được thêm vào bởi một bộ mixer.
Trang 20- Trường Version(V) – 2 bit: định nghĩa phiên bản của RTP
- Trường đệm (P) – 1 bit : phục vụ cho các thuật toán mã hoá thông tin cần kích thước dữ liệu, hoặc dùng cách ly các gói RTP trong TH nhiều gói
thông tin được mang trong cùng một đơn vị của giao thức tầng dưới.
- Extension (X) – 1 bit: nếu bit extension được đặt bằng 1 thì sẽ có phần tiêu đề mở rộng.
- CSRC count (CC) – 4 bit: xác định số lượng các định danh CSRC có trong danh sách được lưu trữ sau phần tiêu đề cố định.
- Marker (M) – 1 bit: bao gồm các thông tin về các sự kiện quan trọng như việc đánh dấu các biên của Frame trong luồn packet Profile có thể định nghĩa thêm các bit đánh dấu hoặc không có bit đánh dấu nào bằng cách thay đổi số lượng bit trong trường Payload Type.
- Payload Type (PT) – 7 bit: cho biết định dạng của RTP Payload và loại mã hoá mà ứng dụng sử dụng
Cấu trúc RTP
Trang 21Cấu trúc RTP
Trang 22- Sequene number – 16 bit: mang số thứ tự của gói RTP, số thứ tự này được tăng lên sau mỗi gói tin RTP được gửi đi Bên thu có thể dùng trường này để phục hồi trình tự các gói tin khi truyền hay phát hiện sự mất gói tin Giá trị khởi đầu của sequence number này là một số ngẫu nhiên.
- Timestamp – 32 bit: cho biết thông tin về tần số gói dữ liệu được gửi đi, tuỳ thuộc định dạng loại dữ liệu (PT)
- SSRC – 32 bit: chỉ ra nguồn đồng bộ của gói RTP
- CSRC – 32 bit: có tối đa 15 mục dùng thẩm định nguồn dữ liệu – nhận dạng nguồn đóng góp, chỉ ra nguồn đóng góp thông tin và tải trọng của gói Bộ mixer chèn một danh sách các định danh SSRC của nguồn để tạo ra một gói tin đặc biệt bằng cách gán vào phần header của gói tin đó, giúp bên nhận dễ dàng phân tách địa chỉ SSRC tương ứng với nguồn của gói tin
Cấu trúc RTP
Trang 24Công nghệ VoIP
- VoIP sử dụng 2 loại giao thức : Signaling protocol và Media protocol.
+ Signaling protocol để điều khiển việc cài đặt cuộc gọi Các loại signaling protocol gồm H323, SIP,
+ Media protocol để điều khiển việc truyền tải voice data qua mạng IP
Các loại media protocol: RTP, RTCP, …
Trang 25Giao thức vận chuyển trong VoIP
- RTP /RTCP đảm nhiệm cơ chế vận chuyển và giám sát phương thức truyền thông thời gian thực trên mạng IP.
- Cách thức truyền tiếng nói quang mạng IP: các bên tham gia hội thoại tiến
hành mở 2 cổng UDP kề nhau, cổng chẵn cho truyền tiếng nói (RTP) cổng
lẻ cho truyền các thông tin trạng thái để giám sát (RTCP)
- Tại nơi phát, tiếng nói được số hoá được nén và mã hoá thành các gói tin
để gửi đi Khi đến tầng UDP/IP mỗi gói tin được gắn với một header tương ứng, Header này có kích thước 40 byte cho biết địa chỉ IP nguồn, IP đích,
cổng tương ứng, header RTP,…
Trang 26Giao thức vận chuyển trong VoIP
• Từ các thông tin được cung cấp trong RTP cho mỗi gói tin, ta có thể giám
sát chất lượng truyền tiếng nói trong quá trình diễn ra hội thoại RTCP
phân tích và xử lý các thông tin để tổng hợp thành trạng thái rồi đưa ra các bản tin phản hồi đến tất cả các thành viên.
• RTCP thi hành 4 chức năng chính:
- RTCP cung cấp cơ chế phẩn hồi chất lượng truyền dữ liệu, bên gửi và
bên nhận thống kê quá trình gửi và nhận dữ liệu qua các bản tin và gửi cho
bên nhận và bên gửi Từ quá trình giám sát ta có thể điều chỉnh lại các thông
số cần thiết để tăng chất lượng cuộc gọi
- RTCP có nhiệm vụ cung cấp cho các thành viên biết định danh của
nguồn RTP (CNAME) Khi có thành viên mới tham gia hội thoại thì phải gán
với một trường CNAME trong gói tin SDES.
- Quan sát số thành viên tham gia hội thoại.
- Mang các thông tin thiết lập cuộc gọi, các thông tin về người dùng.
Trang 27Sự khác nhau khi dùng giao thức RTP/RTCP trong các ứng
dụng truyền
Các ứng dụng truyền sử dụng giao thức
RTP/RTCP
- Truyền âm thanh trên mạng IP
- Hô ôi nghị đa phương tiê ôn, hô ôi nghị video
- Truyền hình qua mạng IP
Trang 28Truyền âm thanh trên mạng IP
• Chỉ bao gồm truyền thoại trong hê ô thống
• Các mô hình: PC to PC, PC to phone, phone to phone
• Các loại dịch vụ: Thoại VOIP, Voice mail, Voice chat
• Cách thức truyền tiếng nói qua mạng IP: Qua phiên thoả thuận phương thức truyền thông, các bên tham gia hội
thoại tiến hành mở hai cổng UDP kề nhau, cổng chẵn cho truyền tiếng nói (RTP), cổng lẻ cho truyền các thông tin trạng thái để giám sát (RTCP) Thông thường, hai cổng được chọn mặc định là 5004 và 5005.
Trang 29Truyền âm thanh trên mạng IP
• Tại phía phát, tiếng nói được điều chế thành dạng số hoá, qua bộ CODEC được nén thành các gói tin để truyền đi Khi đi xuống tầng UDP/IP, mỗi gói tin được gắn với một header tương ứng
Trang 30Hô ôi nghị đa phương tiê ôn, hô ôi
• Mỗi dòng tín hiê ôu ứng với mô ôt phiên RTP
• Mỗi mô ôt phiên RTP sẽ ứng với mô ôt cổng cho thu phát
các gói RTP và mô ôt cổng thu phát các gói RTCP
• Các phiên RTP sẽ được đồng bô ô với nhau để cho âm
thanh và hình ảnh dùng được ăn khớp