Professional Documents
Culture Documents
Quyết Baocao
Quyết Baocao
Tìm hiểu về các thuật toán truyền thông thời gian thực
Hà Nội, 05-2018
1
LỜ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.
2
Mục Lục
LỜI NÓI ĐẦU ............................................................................................................ 2
Chương 2. Các Giao Thức Truyền Thông Thời Gian Thực ..................................... 10
4
Chươ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.
Đá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 đó.
5
1.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 …
deadline
deadline
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
vụ. 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
6
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 …
𝜏𝑖 ≡ (𝑆𝑖 , 𝐶𝑖 , 𝐷𝑖 )
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à Di là thời điểm chết của τi. Tập V tác vụ thời gian
thực là:
𝑉 = 𝑖{𝜏/= 1 … 𝑛}
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 hiện một trong n
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. Các phần công
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 đầu. Như vậy,
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 một thời điểm
chỉ 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 việc i là τi. Đặc tả
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:
𝑉 = {𝐽𝑖 = (𝐶𝑖 , 𝑇𝑖 )/ 1 ≤ 𝑖 ≤ 𝑛}
Ở đâ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
7
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ả:
𝐴 = {(𝑠𝑖 , 𝑓𝑖 , 𝑡𝑖 )/𝑖 = 1 … 𝑛}
Trong đó si là thời điểm bắt đầu, fi 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. ∀𝑖 = 1, … , 𝑠𝑖 < 𝑓𝑖
2. ∀𝑖 = 1, … , 𝑓𝑖 < 𝑠𝑖+1
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 khoảng. Điều kiện 2 đòi
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 vụ phải thực hiện
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ụ được gọi là khả
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 lịch. Tức là, nếu
gọi:
𝑓 −𝑆𝑖 𝐶𝑘
∑ 𝑠𝑖 𝑓𝑖 𝑘 = 𝜏𝑖 𝑖
Tậ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 tác vụ đó. Mục
đí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ại. Chương này
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 khác nhau. Để
đơn giản, chỉ xem xét hệ thống thời gian thực cứng.
8
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.
9
Chươ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.
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.
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ả
10
nă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.
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.
11
M (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
12
đồ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 (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).
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).
13
2.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).
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.
14
2.2.3 Một số đặc điểm của giao thức RTSP
Khả năng mở rộng: Các phương pháp và các thông số mới có thể dễ dàng thêm vào
RTSP.
Dễ dàng phân tích: RTSP có thể được phân tích theo bộ phân tích cú pháp HTTP
hoặc MIME.
An toàn: RTSP tái sử dụng những cơ chế bảo mật web. Tất cả các cơ chế chứng thực
HTTP như chứng thực cở bản và chứng thực băm được trực tiếp áp dụng. Ngoài ra RTSP
cũng có thể tái sử dụng những cơ chế an ninh tầng giao vận hoặc tầng mạng.
Độc lập với tầng vận chuyển: RTSP có thể sử dụng hoặc một giao thức truyền tin
không tin cậy như UDP, hoặc một giao thức truyền tin tin cậy như TCP.
Khả năng đa máy chủ: Mỗi luồng dữ liệu truyền thông trong một biểu diễn có thể
nằm trên một máy chủ khác. Máy khách sẽ tự động thiết lập một số phiên kiểm soát đồng
thời với các máy chủ truyền thông khác. Đồng bộ dữ liệu truyền thông được thực hiện ở
mức độ vận chuyển.
Kiểm soát các thiết bị ghi: Các giao thức có thể kiểm soát cả các thiết bị ghi và phát,
cũng như thiết bị có thể thay đổi giữa hai chế độ
Tác kiểm soát dòng và khởi tạo kết nối: Kiểm soát dòng đã được tách ra khỏi việc
mời một máy chủ truyền thông tham gia một kết nối. Yêu cầu duy nhất là giao thức khởi
tạo kết nối có thể cung cấp hoặc được sử dụng để tạo ra một nhận dạng kết nối duy nhất.
Trong một số trường hợp đặc biệt, tiêu chuẩn SIP (Session Initiation Protocol – Giao thức
khởi tạo phiên) hoặc tiêu chuẩn H.323 có thể được sử dụng để mời một máy chủ tham gia
một kết nối.
Thích hợp cho các ứng dụng chuyên nghiệp: RTSP hỗ trợ độ chính xác khung hình
thông qua nhãn thời gian, cho phép chỉnh sửa ảnh kỹ thuật số từ xa.
Mô tả biểu diễn trung tính: Giao thức không áp đặt một biểu diễn đặc biệt mô tả
hoặc định dạng tập tin đặc tả (metafile) và có thể truyền tải loại định dạng được sử dụng.
Tuy nhiên, các mô tả trình bày phải có ít nhất một URI RTSP.
15
Thành phần trung gian và tường lửa thân thiện: Các giao thức nên sẵn sàng xử lý bởi
cả tường lửa ứng dụng và tầng giao vận.
Thân thiện với HTTP: Trường hợp cần thiết, RTSP tái sử dụng khái niệm HTTP, do
đó, cơ sở hạ tầng hiện tại có thể được tái sử dụng. Cơ sở hạ tầng này bao gồm PICS
(Platform for Internet Content Selection – Nền tảng để lựa chọn nội dung Internet) cho
gắn nhãn với nội dung. Tuy nhiên, RTSP không chỉ thêm các phương pháp vào HTTP
bởi vì việc kiểm soát dữ liệu truyền thông liên tục đòi hỏi trạng thái máy chủ trong hầu
hết các trường hợp.
Kiểm soát máy chủ thích hợp: Nếu một máy khách có thể bắt đầu một luồng dữ
liệu, nó phải có khả năng ngăn chặn một luồng dữ liệu. Máy chủ không nên bắt đầu
truyền dữ liệu cho các máy khách trong trường hợp máy khách không thể ngăn chặn
luồng dữ liệu.
Đàm phán vận chuyển: Máy khách có thể đàm phán phương pháp vận chuyển trước
khi thực sự cần phải xử lý một luồng dữ liệu truyền thông liên tục.
Khả năng đàm phán: Nếu tắt các tính năng cơ bản, phải có một cơ chế an toàn cho
máy khách để xác định phương pháp không tiếp tục thực hiện. Điều này cho phép các
máy khách trình bày giao diện người dùng phù hợp. Ví dụ, nếu tìm kiếm không cho phép,
giao diện người sử dụng phải có khả năng không cho phép di chuyển một thanh trượt chỉ
báo vị trí.
Dữ liệu truyền thông liên tục (Continuous media): Là dữ liệu có một mối quan hệ
thời gian giữa nguồn và đích, nghĩa là, đích đến phải tạo lại mối quan hệ thời gian đã tồn
tại nguồn. Các ví dụ phổ biến nhất của dữ liệu truyền thông liên tục là những âm thanh và
16
video chuyển động. Dữ liệu truyền thông liên tục có thể tương tác trong thời gian thực,
trong đó có một mối quan hệ thời gian "chặt chẽ" giữa luồng vào và luồng ra, hoặc truyền
dữ liệu (phát lại), trong đó mối quan hệ thời gian lỏng hơn.
Phiên RTSP (RTSP session): Là việc hoàn thành một giao dịch RTSP, ví dụ như việc
xem một bộ phim. Một phiên thường bao gồm một máy khách thiết lập một cơ chế vận
chuyển cho dữ liệu truyền thông liên tục, bắt đầu truyền dữ liệu bằng cách phát hoặc ghi,
và cuối cùng đóng giao dịch.
Tập tin bao hàm (Container file): Một tập tin có thể chứa các dòng dữ liệu truyền
thông đa luồng thường bao gồm một biểu diễn khi chơi cùng nhau. Các máy chủ RTSP
có thể cung cấp kiểm soát tổng hợp về những tập tin này, mặc dù khái niệm về một tập
tin bao hàm không được có trong giao thức.
Khởi tạo truyền thông (Media initialization): Khởi tạo cụ thể Loại dữ liệu/chương
trình mã hóa, giải mã; bao gồm chẳng hạn như tần số, bảng màu... Bất cứ thông tin độc
lập với vận chuyển do một máy khách yêu cầu phát lại của một luồng dữ liệu truyền
thông xuất hiện trong giai đoạn khởi tạo truyền thông của quá trình thiết lập luồng dữ
liệu.
Máy chủ truyền thông: Máy chủ cung cấp dịch vụ phát lại hoặc ghi cho một hoặc
nhiều luồng dữ liệu truyền thông. Dòng dữ liệu truyền thông khác nhau trong một biểu
diễn có thể bắt đầu từ các máy chủ truyền thông khác nhau. Một máy chủ truyền thông có
thể nằm trên cùng một hoặc một máy chủ khác như máy chủ web nơi mà biểu diễn được
khởi tạo.
Trình diễn (Presentation): Một tập của một hoặc nhiều luồng dữ liệu được chiếu cho
máy khách như là một nguồn cung cấp dữ liệu truyền thông đầy đủ, bằng cách sử dụng
một mô tả biểu diễn được định nghĩa trước. Trong hầu hết các trường hợp, điều này bao
hàm việc kiểm soát tổng hợp của những luồng dữ liệu, nhưng không bắt buộc.
17
Mô tả trình diễn (Presentation description): Một mô tả trình diễn chứa thông tin về
một hoặc nhiều dữ liệu truyền thông trong một trình diễn, chẳng hạn như các bộ mã hóa,
các địa chỉ mạng và thông tin về nội dung.
18
Kết Luận
Trong báo cáo này, em đã trình bày lại một cách khái quát về hệ thống thời gian thực.
Sự phân loại các hệ thống thời gian thực dựa trên tính ràng buộc về thời gian của chúng,
mỗi loại sẽ được sử dụng với mục đích khác nhau. Bên cạnh đó, truyền thông thời gian
thực cũng là một nhu cầu thiết yếu với cuộc sống hiện nay. Do vậy, hai giao thức RTP và
RTSP được sử dụng rộng rãi trong việc streaming và truyền dữ liệu. Qua báo cáo này, em
đã phần nào hiểu hơn về môn học và cũng thu được một lượng kiến thức về các giao thức
truyền thông. Một lần nữa em xin chân thành cảm ơn PGS.TS Đỗ Trọng Tuấn đã giúp đỡ
em hoàn thành báo cáo này.
19
Tài Liệu Tham Khảo
[1]. Fundemantals Of Real-Time Systems
[3]. Nguyễn Văn Trường, “Hệ Thống Thời Gian Thực Và Ứng Dụng Trong Kỹ Thuật
Mô Phỏng”, Học viện Kỹ Thuật Quân Sự.
[4]. Nguyễn Trung Thành, “Đề Cương Bài Giảng Bộ môn An Ninh Mạng”.
[5]. http://hatangmang.blogspot.com/2014/07/giao-thuc-rtp.html
20