Tìm hiểu về các thuật toán truyền thông thời gian thực
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐÀO TẠO SAU ĐẠI HỌC
BÁO CÁO BÀI TẬP LỚN MÔN:
HỆ THỐNG THỜI GIAN THỰC
Đề tài:
Tìm hiểu về các thuật toán truyền thông thời gian thực
Học viên thực hiện:
Giảng viên hướng dẫn: PGS.TS Đỗ Trọng Tuần
Hà Nội, 05-2018
Trang 2LỜI NÓI ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của lĩnh vực Công Nghệ Thông Tin và Truyền Thông, hạ tầng mạng viễn thông đã tạo thuận lợi cho các nhà khoa học nghiên cứu và triển khai nhiều ứng dụng truyền thông trên mạng internet cho cộng đồng như Sopcast, Skype, MobileTV, … đặc biệt là hệ thống truyền hình trực tuyến đang ngày càng được ứng dụng phổ biến và đem lại lợi ích to lớn cho xã hội Hệ thống truyền hình trực tuyến được xây dựng dựa trên nền tảng các giao thức truyền thông thời gian thực cho phép dữ liệu như hình ảnh, âm thanh, video và văn bản được truyền trực tuyến giữa người dùng ở các vị trí khác nhau qua mạng internet Với các lợi ích như trên, hệ thống truyền hình trực tuyến đang ngày càng được nghiên cứu và phát triển
Trong nội dung môn học Hệ Thống Thời Gian Thực, em xin chọn đề tài “Tìm hiểu về các giao thức truyền thông thời gian thực” là nội dung báo cáo cho bài tập lớn môn học Báo cáo được chia làm hai chương, chương đầu sẽ giới thiệu một cách tổng quan về hệ thống thời gian thực và chương sau sẽ trình bày về các giao thức truyền thông thời gian thực
Em xin chân thành cảm ơn PGS TS Đỗ Trọng Tuấn đã nhiệt tình trong việc hướng dẫn và giảng dạy để em có thể hoàn thành báo cáo này
Trang 3Mục Lục
LỜI NÓI ĐẦU 2
Mục Lục 3
Danh Mục Hình Vẽ 4
Chương 1 Tổng Quan Về Hệ Thống Thời Gian Thực 5
1.1 Khái niệm về hệ thống thời gian thực 5
1.1.1 Khái niệm về hệ thống 5
1.1.2 Khái niệm hệ thống thời gian thực 5
1.1.3 Các loại hệ thống thời gian thực 6
1.2 Lập lịch thời gian thực 7
1.3 Kết luận chương 8
Chương 2 Các Giao Thức Truyền Thông Thời Gian Thực 10
2.1 Giao thức Real-time Transport Protocol (RTP) 10
2.1.1 Định nghĩa 10
2.1.2 Hoạt động của giao thức RTP 10
2.1.3 Cấu trúc giao thức RTP 11
2.2 Giao thức Real Time Streaming Protocol (RTSP) 13
2.2.1 Định nghĩa về giao thức RTSP 13
2.2.2 Hoạt động của giao thức RTSP 14
2.2.3 Một số đặc điểm của giao thức RTSP 15
2.2.4 Một số thuật ngữ của giao thức RTSP 16
2.3 Kết luận chương 18
Kết Luận 19
Trang 4Danh Mục Hình Vẽ
Hình 1-1 Mô tả một hệ thống bất kỳ 5
Hình 1-2 Hard Real-time System 6
Hình 1-3 Soft Real-time System 6
Hình 2-1 Cấu trúc gói tin RTP 11
Hình 2-2 Giao thức trao đổi một phiên media 14
Trang 5Chương 1 Tổng Quan Về Hệ Thống Thời Gian Thực
Trong chương này, em sẽ trình bày một cách tổng quan về hệ thống thời gian thực Các khái niệm, phân loại và các đặc điểm về hệ thống thời gian thực sẽ được trình bày trong chương này
1.1 Khái niệm về hệ thống thời gian thực.
1.1.1 Khái niệm về hệ thống
Một hệ thống là một ánh xạ một tập các biến đầu vào đến một tập các biến đầu ra Một
hệ thống bất kỳ nếu như không xét đến chi tiết các phần cứng bên trong nó thì có thể được mô hình tổng quát bằng một hộp đen như hình 1-1
Hình 1-1 Mô tả một hệ thống bất kỳ Đáp ứng thời gian của hệ thống là khoảng thời gian để một hệ thống đưa kết quả đầu
ra từ khi các đầu vào được đưa vào hệ thống
Một hệ thống được gọi là hệ thống lỗi nếu như nó không đáp ứng được các yêu cầu đặt
ra cho hệ thống đó
1.1.2 Khái niệm hệ thống thời gian thực
Một hệ thống được gọi là hệ thống thời gian thực (RTS – Realtime Systems) nếu như tính đúng đắn của nó không chỉ phụ thuộc vào kết quả tính toán logic mà còn phụ thuộc vào thời gian mà kết quả này sinh ra Tức là, Hệ thống cần đáp ứng hai điều kiện; một là kết quả đầu ra phải đúng với chức năng của hệ thống; hai là đáp ứng thời gian của hệ thống phải nhỏ hơn một giá trị dealine cho trước
Trang 61.1.3 Các loại hệ thống thời gian thực
Các hệ thống thời gian thực thường được chia làm hai loại là hệ thống thời gian thực cứng và hệ thống thời gian thực mềm
Hệ thống thời gian thực cứng (Hard Real-time Systems) là các hệ thống thời gian thực
mà nếu không đáp ứng yêu cầu về deadline, hệ thống sẽ sụp đổ hay gây ra hậu quả khôn lường Hình 1-2 mô tả tính ràng buộc trong hệ thống thời gian thực cứng Nếu hệ thống không hoàn thành tác vụ trước deadline, hệ thống sẽ gây hậu quả nghiêm trọng Một số ví
dụ về hệ thống thời gian thực cứng như là hệ thống làm mát cho nhà máy điện hạt nhân,
hệ thống túi khí an toàn trên oto, hệ thống xạ trị tự động, hệ thống báo cháy tự động …
Hình 1-2 Hard Real-time System
Hình 1-3 Soft Real-time System
Hệ thống thời gian thực mềm (Soft Real-time Systems) là cac hệ thống thời gian thực
mà nếu không đáp ứng yêu cầu về thời gian, hệ thống sẽ bị suy giảm về chất lượng dịch
Trang 7vụ Hình 1-3 mô tả ràng buộc trong hệ thống thời gian thực mềm Nếu hệ thống không hoàn thành trước deadline, hệ thống chỉ bị suy giảm về chất lượng dịch vụ chứ không đến mức gây ra hậu quả nghiêm trọng như hệ thống thời gian thực cứng Một số ví dụ về hệ thống thời gian thực mềm như hệ thống Video/Audio streaming, hệ thống mạng, hệ thống kiểm soát đóng mở cửa trên oto, hệ thống điều hòa dân dụng …
1.2 Lập lịch thời gian thực
Dịch vụ thời gian thực được gắn với tập các tác vụ thời gian thực Mỗi tác vụ τđược
miêu tả bằng:
Trong đó Si là thời điểm sớm nhất có thể bắt đầu tác vụ τi, Ci là thời gian thực hiện trong trường hợp xấu nhất của τi và D i là thời điểm chết của τi Tập V tác vụ thời gian thực là:
Nếu tác vụ được xuất hiện theo cách tại thời điểm tùy ý, chúng được gọi là không theo chu kì Ở nhiều hệ thống thời gian thực thì thời điểm tác vụ xả ra, khoảng thời gian thực hiện và deadline có thể tiên đoán được Tập tác vụ như vậy gọi là có chu kì Ví dụ, máy tính điều khiển động cơ phải tính được lượng nhiên liệu và suy ra thời gian tối đa động cơ còn vận hành liên tục trước khi nạp nhiên liệu
Miêu tả tập tác vụ thời gian thực có chu kì đơn giản Mỗi tác vụ thực
công việc Yêu cầu thực hiện công việc i một lần trong khoảng Ti giây
việc phía trước phải hoàn thành trước khi phần công việc mới được bắt
thời điểm bắt đầu của tác vụ mới là điểm chết của tác vụ cũ Do vậy tại
Trang 8chỉ một tác vụ được thực hiện, ta gán cho tác vụ thực hiện phần công
tập tác vụ rút gọn lại bởi tập thời khoảng và khoảng thời gian thực hiện
n công việc:
Ở đây chỉ quan tâm đến lập lịch các tác vụ theo đó, tác vụ thỏa mãn ràng buộc về deadline Chúng ta cũng chỉ quan tâm lập lịch trên hệ thống đơn xử lý Lịch là phân công CPU cho các tác vụ thời gian thực mà nhiều nhất một tác vụ được phân công tại thời điểm bất kỳ Chính xác hơn, lịch là tập A các khoảng thời gian được miêu tả:
Trong đó si là thời điểm bắt đầu, f i là thời điểm kết thúc và ti là tác vụ được thực hiện trong khoảng thời gian đó Lịch chỉ có giá trị khi thỏa mãn các ràng buộc:
1
2
3 Nếu thì Sk si và fi Dk
Điều kiện 1 đòi hỏi khoảng thời gian thực hiện thực sự là một
hỏi các khoảng thời gian được sắp theo thứ tự Điều kiện 3 đòi hỏi tác
sau thời điểm cho phép và phải hoàn thành trước điểm chết Tập tác vụ
thi nếu mọi tác vụ τk nhận được tối thiết Ck giây CPU thực hiện trong
gọi:
và
Như vậy, lịch là khả thi nếu mà
Trang 9Tập tác vụ được gọi là khả thi nếu tồn tại một lập lịch khả thi cho tập
đích của thuật toán lập lịch thời gian thực là tìm lịch khả thi nếu nó tồn
tìm hiểu các thuật toán lập lịch thời gian thực với giả thuyết ràng buộc
đơn giản, chỉ xem xét hệ thống thời gian thực cứng
1.3 Kết luận chương
Trong chương này, em đã trình bày một cách tổng quan nhất về hệ thống thời gian thực Các khái niệm cơ bản như khái niệm về hệ thống, hệ thống thời gian thực và đặc điểm từng loại của hệ thống thời gian thực cũng được trình bày một cách tổng quan Ở chương sau, báo cáo sẽ trình bày về hai giao thức truyền thông thời gian thực được sử dụng rất nhiều hiện nay là RTP và RTSP
Trang 10Chương 2 Các Giao Thức Truyền Thông Thời Gian Thực
Trong chương này, em sẽ trình bày về các giao thức truyền thông thời gian thực Trong
đó, mục tiêu được đề cập đến là các tính chất và nguyên tắc hoạt động của từng giao thức
2.1 Giao thức Real-time Transport Protocol (RTP)
2.1.1 Định nghĩa
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 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
RTP được sử dụng kết hợp với RTCP (Realtime Transport Control Protocol) Trong khi RTP được dùng để truyền dòng dữ liệu da phương tiện truyền thông (âm thanh và video) thì RTCP được dùng để giám sát QoS và thu thập các thông tin về những người tham gia phiên truyền RTP đang thực hiện
2.1.2 Hoạt động của giao thức RTP
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ả
Trang 11năng mở rộng, các mã tương ứng trong trường PT của header với các loại payload trong gói RTP được mô tả trong profile đi kèm
2.1.3 Cấu trúc giao thức RTP
Một gói tin RTP được chia làm hai phần là header cố định và header mở rộng như hình 2-1
Hình 2-4 Cấu trúc gói tin RTP
2.1.3.1 Phần header cố định
Version: 2 bits Trường version để chỉ phiên bản của giao thức Có 3 phiên 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 nhiề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 octet đượ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
X (Extension): 1 bit Nếu trường X được thiết lập thì phần header cố định phải được liên kết với phần header mở rộng
CC (CSRC count): 4 bits Chứa các giá trị của trường CSRC ID trong header cố định
Trang 12M (Marker): 1 bit Được sử dụng ở lớp ứng dụng để xác định một profile.
PT (Payload type): 7 bits Xác định và nêu ý nghĩa các dạng payload của 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
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 Timestamp: 32 bits Trường xác định thời điểm lấy mẫu của octets đầu 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 (Synchronization Source Identifier): 32 bits Giá trị của trường 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)
Trang 13CSRC (Contributing Source List): từ 0 đến 15 items, 32 bits Trường 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)
2.1.3.2 Phần header mở rộng
Cơ chế mở rộng của RTP cho phép những ứng 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 bits đầ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 phần header mở rộng tính theo đơn vị là 32 bits (Giá trị này không bao gồm 32 bits đầu tiên của phần header mở rộng)
2.2 Giao thức Real Time Streaming Protocol (RTSP)
2.2.1 Định nghĩa về giao thức RTSP
RTSP là một giao thức điều khiển truyền thông mạng ở tầng ứng dụng được thiết kế sử dụng trong các hệ thống giải trí và truyền thông để điều khiển máy chủ chứa các dữ liệu truyền tin đã phương tiện (streaming media)
Giao thức này được sử dụng để thiết lập và điều khiển các phiên truyền thông giữa các trạm cuối (end to end) Các máy khách của các máy chủ truyền thông ban ra các lệnh kiểu VCR, chẳng hạn như play, pause và seek, để điều khiển thời gian thực của các phương tiện truyền tin trực tuyến từ máy chủ tới máy khách (Video On Demand) hoặc từ máy khách đến máy chủ (Voice Recording)
Trang 142.2.2 Hoạt động của giao thức RTSP
Giao thức RTSP độc lập với các giao thức ở tầng thấp hơn, do đó nó có thể được thực hiện trên TCP hoặc UDP hoặc giao thức khác ở tầng giao vận Cú pháp của RTSP gần giống như cú pháp của HTTP/1.1, do đó dễ thực hiện và triển khai Bên cạnh những điểm tương tự, nó có một số điểm khác nhau quan trọng
Thứ nhất, RTSP là giao thức stateful, do đó yêu cầu client duy trì thông tin về phiên streaming qua các request RTSP Thứ hai, cả RTSP client và server đều có thể đưa ra RTSP request Cuối cùng, dữ liệu đa phương tiện được truyền ngoài dải dùng protocol riêng biệt (có thể là giao thức RTP đã nói ở trên)
Hình 2-5 Giao thức trao đổi một phiên media Trong một ứng dụng streaming thông thường, trước hết client nhận file mô tả trình diễn (presentation description file) sử dụng 1 giao thức ngoài (có thể dùng HTTP) File
mô tả trình diễn này mô tả một hoặc nhiều sự trình diễn, mỗi trình diễn bao gồm một hoặc nhiều dòng dữ liệu đa phương tiện được đồng bộ với nhau File mô tả trình diễn cũng chứa các thuộc tính của các dòng dữ liệu như định dạng nén để client lựa chọn và chuẩn bị play media được mô tả như hình 2-2