Vì vậy, khi phát triển một ứng dụng mới thì cần phải xây dựng phần mềm chạy trên nhiều hệ thống
cuối. Phần mềm này có thể viết dựa trên C, Java hoặc Python. Điều quan trọng là chúng ta không cần
phải viết phần mềm chạy trên các thiết bị mạng lõi như bộ định tuyến hay bộ chuyển mạch. Ngay cả
khi muốn viết phần mềm ứng dụng cho các thiết bị mạng lõi cũng không cần phải làm như vậy. Như
đã biết, các thiết bị mạng lõi không thực hiện chức năng lớp ứng dụng mà thực hiện chức năng ở các
lớp thấp hơn, chủ yếu là ở lớp mạng và các lớp dưới. Thiết kế cơ bản này đẩy phần mềm ứng dụng
vào trong hệ thống cuối (Hình Error! No text of specified style in document.1), tạo điều kiện cho sự
phát triển và triển khai nhanh chóng của rất nhiều ứng dụng mạng.
Kiến trúc lớp ứng dụng mạng Internet
Trước khi đi vào việc mã hóa phần mềm, cần phải có kế hoạch về kiến trúc cho ứng dụng. Lưu ý là
kiến trúc ứng dụng khác hoàn toàn với kiến trúc mạng (như kiến trúc phân lớp của Internet). Từ quan
điểm của người phát triển ứng dụng, kiến trúc mạng là cố định và cung cấp một tập các dịch vụ cho
các ứng dụng. Mặt khác, kiến trúc ứng dụng được các nhà phát triển ứng dụng thiết kế và chỉ rõ cách
cấu trúc ứng dụng đó trên nhiều hệ thống cuối khác nhau. Khi xây dựng kiến trúc ứng dụng, một nhà
phát triển ứng dụng có thể lựa chọn một trong hai mô hình nổi bật được dùng trong các ứng dụng
mạng hiện tại: kiến trúc khách/chủ (client/server) hoặc kiến trúc ngang hàng (P2P - peer-to-peer).
Kiến trúc khách/chủ
Trong kiến trúc khách/chủ luôn có một máy trạm hoạt động gọi là máy chủ (server). Nó phục vụ các
yêu cầu từ nhiều máy trạm khác (client). Các máy khách có thể hoạt động liên tục hoặc không. Ví dụ
về ứng dụng web: luôn có máy chủ web hoạt động để phục vụ yêu cầu từ các trình duyệt chạy trên
trạm khách. Khi máy chủ web nhận một yêu cầu về đối tượng từ trạm khách thì nó đáp ứng thông
qua việc gửi đối tượng đó tới trạm khách.
Để ý là với kiến trúc khách/chủ, các máy khách không truyền thông trực tiếp với nhau, ví dụ trong
ứng dụng web thì hai trình duyệt không truyền thông trực tiếp với nhau. Một đặc điểm nữa của kiến
trúc này là máy chủ có địa chỉ cụ thể và cố định (địa chỉ IP). Chính vì đặc điểm này và việc máy chủ
luôn hoạt động nên một máy khách luôn có thể kết nối với máy chủ bằng việc gửi gói tin tới địa chỉ
của máy chủ. Một vài ứng dụng nổi tiếng với kiến trúc khách/chủ là web, FTP, Telnet và e-mail. Hình
Error! No text of specified style in document.2(a) là minh họa kiến trúc khách/chủ
160 trang |
Chia sẻ: tieuaka001 | Lượt xem: 668 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Internet và các giao thức (TEL 1409), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
y chủ CDN gần
Vấn đề còn lại cần diễn giải là công ty CDN xác định máy chủ CDN “tốt nhất” như thế nào.
Mặc dù mỗi công ty CDN có cách thức riêng để thực hiện điều này, không khó để thấy được ý tưởng
chung của họ. Đối với mỗi ISP truy nhập trên Internet (bao gồm các máy khách yêu cầu tiềm năng)
công ty CDN duy trì theo dõi máy chủ tốt nhất cho ISP truy nhập đó. Công ty CDN xác định máy chủ
CDN tốt nhất dựa trên hiểu biết về bảng định tuyến Internet (đặc biệt là bảng định tuyến BGP), ước
lượng thời gian RTT, và các dữ liệu đo lường khác nó có được từ các máy chủ khác nhau đến các
mạng truy nhập khác nhau. Bằng cách này, CDN ước lượng máy chủ CDN nào cung cấp dịch vụ best-
P T
I T
Chương 6. Kết nối mạng đa phương tiện
109
effort tốt nhất cho ISP. CDN thực hiện việc này cho nhiều ISP truy nhập và trên Internet và sử dụng
thông tin này để cấu hình máy chủ DNS thẩm quyền.
Định cỡ mạng best-effort để cung cấp chất lượng dịch vụ
Trong phần trước, chúng ta đã xem xét các kỹ thuật mức ứng dụng như phát gói tin, FEC, đan
xen gói tin tại trạm chủ, và triển khai hạ tầng CDN trên mạng có thể cải thiện chất lượng ứng dụng đa
phương tiện trên mạng Internet hiện nay như thế nào. Về cơ bản, khó khăn trong việc hỗ trợ ứng
dụng đa phương tiện phát sinh từ các yêu cầu hiệu năng nghiêm ngặt – trễ gói toàn trình, jitter, mất
gói thấp – và thực tế là trễ gói, jitter, và mất gói xảy ra bất kể khi nào mạng bị nghẽn. Giải pháp cuối
cùng để nâng cao chất lượng của ứng dụng đa phương tiện – giải pháp có thể hay được sử dụng để
giải quyết bất cứ vấn đề nào ở trên khi nguồn tài nguyên bị giới hạn – đơn giản là “đầu tư tài chính
để giải quyết vấn đề” và do đó đơn giản là tránh tranh chấp về tài nguyên. Trong trường hợp của đa
phương tiện kết nối mạng, điều này có nghĩa là cung cấp dung lượng liên kết đủ lớn trong toàn mạng
sao cho nghẽn mạng và hệ quả của nó là trễ và mất gói không bao giờ (hoặc rất hiếm khi) xảy ra. Với
dung lượng liên kết đầy đủ, gói tin có thể truyền qua mạng Internet hiện nay mà không gặp trễ xếp
hàng hay mất gói. Từ nhiều quan điểm đó chính là giải pháp lý tưởng - ứng dụng đa phương tiện có
thể được thực hiện hoàn hảo, người sử dụng có thể hài lòng, và điều đó có thể đạt được mà không
cần thay đổi kiến trúc best-effort của Internet. Vấn đề là dung lượng bao nhiêu là “đủ” để đạt được
điều kiện này, và liệu chi phí của việc cung cấp “đủ” băng thông có thực tế từ quan điểm kinh doanh
của ISP.
Vấn đề cung cấp dung lượng bao nhiêu cho các liên kết mạng trên topo cho trước để đạt
được mức độ hiệu năng đầu cuối nhất định thường được biết đến dưới tên cung cấp băng thông.
Vấn đề thậm chí phức tạp hơn như thiết kế topo mạng như thế nào (đặt bộ định tuyến ở đâu, kết nối
các bộ định tuyến bằng các liên kết như thế nào, và dung lượng nào được gán cho liên kết) để đạt
được mức độ nhất định của hiệu năng đầu cuối là vấn đề thiết kế mạng và thường được gọi là định
cỡ mạng. Cả hai vấn đề cung cấp băng thông và định cỡ mạng đều là các chủ đề phức tạp và không
xem xét trong phạm vi môn học. Tuy nhiên, chúng ta lưu ý ở đây là các vấn đề sau phải được đưa ra
để dự báo hiệu năng mức ứng dụng giữa hai điểm cuối mạng, và do đó cung cấp đủ băng thông để
đáp ứng các yêu cầu hiệu năng ứng dụng:
1. Mô hình nhu cầu lưu lượng giữa các điểm đầu cuối mạng. Các mô hình cần được xác định tại
cả mức cuộc gọi (tức là người sử dụng “đến” mạng và bắt đầu ứng dụng đầu cuối) và tại mức
gói tin (tức là các gói tin được ứng dụng đang thực hiện tạo ra). Lưu ý rằng tải trọng có thể
thay đổi theo thời gian.
2. Các yêu cầu hiệu năng được định nghĩa rõ ràng. Ví dụ, yêu cầu hiệu năng để hỗ trợ lưu lượng
nhạy cảm trễ như ứng dụng audio/video tương tác có thể là xác suất trễ toàn trình của ứng
dụng lớn hơn trễ cho phép tối đa phải nhỏ hơn một giá trị rất bé nào đấy.
3. Các mô hình dự báo hiệu năng toàn trình đối với mô hình tải cho trước, và các kỹ thuật tìm
cách tối thiểu cấp phát băng thông giá thành cao mà vẫn đáp ứng tất cả yêu cầu người sử
dụng. Ở đây, các nhà nghiên cứu sẽ phải phát triển các mô hình hàng đợi có thể định lượng
P T
I T
Chương 6. Kết nối mạng đa phương tiện
110
hiệu năng đối với tải cho trước, và các kỹ thuật tối ưu để tìm cung cấp băng thông với chi phí
tối thiểu mà vẫn đáp ứng yêu cầu hiệu năng.
Giả sử Internet hiện nay có thể (từ quan điểm công nghệ) hỗ trợ lưu lượng đa phương tiện tại hiệu
năng phù hợp nếu nó được định cỡ để làm việc đó, câu hỏi tự nhiên là tại sao mạng Internet không
thực hiện điều này. Câu trả lời chủ yếu là vấn đề kinh tế và tổ chức. Từ quan điểm kinh tế người sử
dụng có thể tự nguyện trả cho ISP của họ số tiền đủ để lắp đặt băng thông đầy đủ nhằm hỗ trợ ứng
dụng đa phương tiện trên best-effort Internet không? Vấn đề tổ chức còn khó khăn hơn. Lưu ý rằng
đường dẫn đầu cuối đến đầu cuối giữa hai điểm đa phương tiện sẽ đi qua mạng của nhiều ISP. Từ
quan điểm tổ chức, các ISP này có tự nguyện hợp tác (có lẽ cùng chia sẻ lợi nhuận) để đảm bảo rằng
đường dẫn đầu cuối đến đầu cuối được định cỡ đúng để hỗ trợ ứng dụng đa phương tiện không?
Giao thức tương tác thời gian thực
Các ứng dụng tương tác thời gian thực bao gồm thoại Internet và hội nghị video hứa hẹn là động lực
của phát triển Internet trong tương lai. Vì vậy không có gì ngạc nhiên nếu các tổ chức tiêu chuẩn như
IETF và ITU đã nhiều năm (và tiếp tục trong tương lai) xây dựng các tiêu chuẩn cho lớp ứng dụng này.
Với các tiêu chuẩn phù hợp cho ứng dụng tương tác thời gian thực, các công ty độc lập sẽ có khả
năng tạo ra các sản phẩm mới và hấp dẫn, đồng thời dễ dàng hoạt động tương hợp với nhau. Trong
phần này chúng ta sẽ tìm hiểu các giao thức RTP, RTCP cho các ứng dụng tương tác. Tất cả các giao
thức này có ứng dụng rộng rãi trong các sản phẩm và dịch vụ hiện nay.
Giao thức RTP
Trong phần trước chúng ta đã thấy rằng bên gửi ứng dụng đa phương tiện gắn các trường
tiêu đề vào các khúc audio/video trước khi đưa chúng tới tầng truyền tải. Các trường tiêu đề này bao
gồm số thứ tự và nhãn thời gian. Do phần lớn các ứng dụng kết nối mạng đa phương tiện có thể sử
dụng đến số thứ tự và nhãn thời gian nên cần thiết phải có cấu trúc gói tin tiêu chuẩn bao gồm các
trường cho dữ liệu audio/video, số thứ tự, và nhãn thời gian cũng như các trường có thể hữu ích
khác. RTP – được định nghĩa trong RFC 3550 - là một giao thức như thế. RTP có thể được sử dụng để
truyền tải các khuôn dạng chung như PCM, GSM, và MP3 cho âm thanh và MPEG và H263 cho hình
ảnh. Nó cũng có thể được sử dụng để truyền tải các khuôn dạng độc quyền âm thanh và hình ảnh.
Ngày nay RTP đang được triển khai rộng rãi trên hàng nghìn sản phẩm và mẫu nghiên cứu. Nó cũng là
phần bổ sung cho các giao thức tương tác thời gian thực quan trọng khác, bao gồm SIP và H.323.
Trong phần này chúng ta giới thiệu RTP và giao thức đi cùng với nó là RTCP.
Khái niệm cơ bản RTP
Thông thường RTP chạy trên UDP. Phía gửi đóng gói khúc đa phương tiện trong gói tin RTP,
sau đó đóng gói gói tin vào đoạn UDP, và chuyển đoạn UDP xuống IP. Phía nhận trích lấy gói tin RTP
từ đoạn UDP, sau đó trích lấy khúc đa phương tiện từ gói tin RTP, và chuyển khúc đến bộ phát
phương tiện để giải mã và phát.
Ví dụ, xem xét sử dụng RTP để truyền tải thoại. Giả sử nguồn thoại là mã PCM (tức là được
lấy mẫu, lượng tử hóa, và số hóa) với tốc độ 64 kbps. Tiếp tục giả sử ứng dụng thu thập dữ liệu mã
P T
I T
Chương 6. Kết nối mạng đa phương tiện
111
hóa trên các khúc 20 ms, tức là 160 byte trên một khúc. Phía gửi gắn trước mỗi khúc dữ liệu âm
thanh tiêu đề RTP bao gồm loại mã hóa âm thanh, số thứ tự, và nhãn thời gian. Tiêu đề RTP thường
có 12 byte. Khúc âm thanh cùng với tiêu đề RTP tạo thành gói tin RTP. Sau đó gói tin RTP được gửi
tới giao diện socket UDP. Tại bên nhận ứng dụng nhận gói tin RTP từ giao diện socket. Ứng dụng trích
lấy khúc audio từ gói tin RTP và sử dụng các trường tiêu đề của gói tin RTP để giải mã chính xác và
phát lại khúc audio.
Nếu ứng dụng kết hợp RTP – thay cho sử dụng thiết kế dành riêng để cung cấp loại tải trọng,
số thứ tự, hay nhãn thời gian – thì ứng dụng sẽ dễ dàng kết hợp với các ứng dụng đa phương tiện kết
nối mạng khác. Ví dụ, nếu hai công ty khác nhau phát triển phần mềm thoại Internet và cả hai kết
hợp RTP trong sản phẩm của họ, có thể hi vọng rằng người dùng sử dụng một sản phẩm thoại
Internet có thể sẽ truyền thông được với người dùng sử dụng sản phẩm thoại Internet kia. RTP
thường được sử dụng kết hợp với các tiêu chuẩn thoại Internet.
Cần nhấn mạnh rằng RTP không cung cấp bất cứ cơ chế nào để đảm bảo chuyển phát dữ liệu
đúng thời gian hay cung cấp các đảm bảo chất lượng QoS khác; thậm chí nó không đảm bảo chuyển
gói tin tới đích hay ngăn ngừa chuyển gói tin đến sai thứ tự. Thực vậy, đóng gói tin RTP chỉ được thấy
tại các hệ thống cuối. Các bộ định tuyến không phân biệt giữa dữ liệu đồ IP mang gói tin RTP hay dữ
liệu đồ IP không mang gói tin RTP này.
RTP cho phép mỗi nguồn (ví dụ camera hay microphone) được gắn với dòng gói tin RTP độc
lập của mình. Ví dụ, đối với hội nghị video giữa hai bên tham gia, bốn dòng RTP có thể được mở - hai
dòng để truyền audio (mỗi dòng trên một hướng) và hai dòng để truyền video (mỗi dòng trên một
hướng). Tuy nhiên, nhiều kỹ thuật mã hóa thông dụng – bao gồm MPEG 1 và MPEG 2 – kết hợp cả
audio lẫn video vào cùng một dòng trong tiến trình mã hóa. Khi audio và video được kết hợp bằng bộ
mã hóa, thì chỉ có một dòng RTP được tạo ra trên mỗi hướng.
Gói tin RTP không giới hạn chỉ cho ứng dụng đơn hướng (unicast). Chúng cũng có thể được
gửi trên các cây đa hướng (multicast) một điểm-đến-nhiều điểm hay nhiều điểm-đến-nhiều điểm.
Đối với một phiên đa hướng nhiều điểm-đến-nhiều điểm tất cả các bên gửi của phiên và nguồn
thường sử dụng cùng một nhóm đa hướng để gửi dòng RTP. Các dòng đa hướng RTP thuộc lẫn nhau,
như dòng audio và video xuất phát từ nhiều bên gửi trong ứng dụng hội nghị video thuộc một phiên
RTP.
Các trường tiêu đề RTP
Bốn trường chủ yếu của tiêu đề gói tin RTP là loại tải trọng, số thứ tự, nhãn thời gian và các
trường định danh nguồn (hình 6.10).
Hình Error! No text of specified style in document..35: Các trường tiêu đề RTP
P T
I T
Chương 6. Kết nối mạng đa phương tiện
112
Trường loại tải trọng trong gói tin RTP có độ dài 7 bit. Đối với dòng audio, trường loại tải
trọng được sử dụng để chỉ loại mã hóa audio (ví dụ PCM, điều chế delta thích nghi, mã hóa tuyến
tính) được sử dụng. Nếu bên gửi quyết định thay đổi mã hóa trong phiên, bên gửi có thể thông báo
bên nhận về thay đổi này thông qua trường loại tải trọng. Bên gửi có thể muốn thay đổi mã hóa để
tăng chất lượng audio hay giảm tốc độ bit dòng RTP. Bảng 6.2 liệt kê một số loại tải trọng hiện đang
được RTP hỗ trợ.
Bảng Error! No text of specified style in document..4: Một số loại tải trọng audio được RTP
hỗ trợ
Số cuả loại tải trọng Khuôn dạng audio Tốc độ lấy mẫu Tốc độ
0 PCM µ 8 kHz 64 kbps
1 1016 8 kHz 4.8 kbps
3 GSM 8 kHz 13 kbps
7 LPC 8 kHz 2.4 kbps
9 G.722 16 kHz 48-64 kbps
14 MPEG Audio 90 kHz -
15 G.728 8 kHz 16 kbps
Đối với dòng video loại tải trọng được sử dụng để chỉ loại mã hóa video (ví dụ JPEG hình ảnh
động, MPEG 1, MPEG 2, H. 261). Cũng như audio, bên gửi có thể thay đổi mã hóa video trong phiên
đang diễn ra. Bảng 6.3 liệt kê một số loại tải trọng video đang được RTP hỗ trợ.
Bảng Error! No text of specified style in document..5: Một số loại tải trọng video được RTP
hỗ trợ
Số của loại tải trọng Khuôn dạng video
26 JPEG hình ảnh động
31 H.261
32 Video MPEG 1
33 Video MPEG 2
Các trường quan trọng khác là:
1. Trường số thứ tự. Trường số thứ tự có độ dài 16 bit. Số thứ tự tăng thêm một đơn vị mỗi lần
có gói tin RTP được gửi đi, và bên nhận có thể sử dụng để phát hiện mất gói và lưu lại số thứ
tự gói. Ví dụ, nếu bên nhận ứng dụng nhận được dòng gói tin RTP với khoảng trống số thứ tự
giữa 86 và 89 thì bên nhận sẽ biết ngay gói tin số 87 và 88 bị mất. Sau đó bên nhận có thể cố
gắng phục hồi dữ liệu mất này.
P T
I T
Chương 6. Kết nối mạng đa phương tiện
113
2. Trường nhãn thời gian. Trường nhãn thời gian có độ dài 32 bit. Nó phản ánh thời điểm lấy
mẫu của byte đầu tiên trong gói tin dữ liệu RTP. Như chúng ta đã thấy trong phần trên, bên
nhận có thể sử dụng nhãn thời gian để loại bỏ jitter do mạng gây ra và cung cấp phát lại đồng
bộ tại bên nhận. Nhãn thời gian được lấy từ đồng hồ lấy mẫu tại bên gửi. Ví dụ, đối với audio
đồng hồ nhãn thời gian tăng thêm một với mỗi chu kì lấy mẫu (ví dụ mỗi khoảng 125 µs cho
đồng hồ lấy mẫu 8 kHz): nếu ứng dụng audio tạo các khúc từ 160 mẫu được mã hóa thì nhãn
thời gian tăng thêm 160 đối với mỗi gói tin RTP khi nguồn hoạt động. Đồng hồ nhãn thời gian
tiếp tục tăng với tốc độ không đổi thậm chí nếu nguồn không hoạt động nữa.
3. Định danh nguồn đồng bộ hóa (SSRC). Trường SSRC có độ dài 32 bit. Nó định danh nguồn của
dòng RTP. Thông thường mỗi dòng trong phiên RTP có SSRC phân biệt. SSRC không phải địa
chỉ IP của bên gửi, mà là một số được nguồn gán ngẫu nhiên khi một dòng mới được bắt đầu.
Xác suất hai dòng được gán cùng một SSRC là vô cùng nhỏ. Nếu điều này xảy ra, hai nguồn
chọn một giá trị SSRC mới.
Phát triển ứng dụng phần mềm với RTP
Có hai giải pháp để phát triển ứng dụng kết nối mạng dựa trên RTP. Giải pháp đầu tiên là cho
người phát triển ứng dụng kết hợp RTP thủ công – tức là thực sự viết mã thực hiện đóng gói gói tin
RTP tại bên gửi và tháo gỡ RTP tại bên nhận. Giải pháp thứ hai là cho người phát triển sử dụng các
thư viện RTP (đối với người lập trình C) và các lớp Java (đối với người lập trình Java) sẵn có, để thực
hiện đóng gói và tháo gỡ cho ứng dụng. Do chúng ta có thể mong muốn tự viết ứng dụng kết nối đa
phương tiện sử dụng RTP, chúng ta sẽ tìm hiểu thêm về hai giải pháp này trên ngữ cảnh truyền thông
đơn hướng.
Trong chương 2 chúng ta đã biết rằng UDP API yêu cầu tiến trình gửi thiết lập địa chỉ IP đích
và số của cổng đích đối với mỗi đoạn UDP nó gửi đi trước khi đẩy gói tin vào socket UDP. Sau đó
đoạn UDP sẽ được truyền qua Internet và cuối cùng đến cửa của tiến trình nhận ứng dụng (nếu đoạn
không bị mất vì một lý do nào, như tràn bộ đệm tại bộ định tuyến). Cánh cửa này được định rõ bằng
địa chỉ IP đích và số của cổng đích. Thực tế, bất cứ dữ liệu đồ IP nào chứa địa chỉ IP đích và số của
cổng đích này sẽ được hướng đến cánh cửa UDP của tiến trình nhận. (UDP API cũng cho phép người
phát triển ứng dụng thiết lập số của cổng nguồn UDP, tuy nhiên giá trị này không tác động đến tiến
trình đoạn được gửi đi). Cần lưu ý rằng RTP không được ủy nhiệm một số cổng cụ thể nào. Khi người
phát triển ứng dụng tạo một ứng dụng RTP, người phát triển xác định số của cổng cho cả hai phía của
ứng dụng.
Chúng ta có thể tự viết một chương trình ứng dụng. Chúng ta có thể viết trên máy chủ RTP để
đóng gói các khung video lưu trữ vào các gói tin RTP. Chúng ta có thể thực hiện một cách thủ công:
ứng dụng của chúng ta bắt lấy khung video, thêm các tiêu đề RTP vào khung để tạo ra gói tin RTP, và
sau đó chuyển khung RTP vào UDP socket. Để làm điều đó, chúng ta sẽ cần tạo các trường giữ chỗ
cho các tiêu đề RTP khác nhau, bao gồm trường số thứ tự và trường nhãn thời gian. Đối với mỗi gói
tin RTP được tạo ra chúng ta sẽ phải thiết lập số thứ tự và nhãn thời gian tương ứng. Chúng ta sẽ viết
mã tất cả các hoạt động RTP này vào bên gửi của ứng dụng. Trong hình 6.11 API vào mạng của chúng
ta sẽ là API của UDP socket tiêu chuẩn.
P T
I T
Chương 6. Kết nối mạng đa phương tiện
114
Hình Error! No text of specified style in document..36: RTP là một phần của ứng dụng và
nằm trên socket UDP.
Một giải pháp khác (không thực hiện trên việc thiết lập chương trình) là sử dụng lớp RTP của
Java (hay thư viện RTP của C đối với người lập trình C) để thực hiện hoạt động RTP. Với giải pháp này
(Hình 6.12) người phát triển ứng dụng có ấn tượng là RTP là một phần của lớp truyền tải, với API của
RTP/UDP nằm giữa lớp ứng dụng và lớp truyền tải. Không cần đi sâu vào chi tiết (do chúng phụ thuộc
vào lớp/thư viện) khi gửi khúc phương tiện vào API, bên gửi của ứng dụng cần cung cấp giao diện với
khúc phương tiện, số của loại tải trọng, SSRC, và nhãn thời gian, cùng với số cổng đích và địa chỉ IP
đích. Chúng ta cần biết là khung phương tiện Java (JMF) bao gồm toàn bộ việc thực hiện RTP.
Hình Error! No text of specified style in document..37: RTP có thể được xem như tầng con trong
tầng truyền tải
Giao thức RTCP
Tiêu chuẩn RFC 3550 cũng định nghĩa RTCP, ứng dụng đa phương tiện có thể sử dụng giao
thức này kết hợp cùng RTP. Trong kịch bản truyền đa hướng (multicast) hình 6.13 mỗi bên tham gia
trong phiên RTP truyền các gói tin RTCP tới tất cả các bên tham gia khác trong phiên sử dụng IP
multicast. Đối với phiên RTP, thường có một địa chỉ multicast duy nhất và tất cả các gói tin RTP và
RTCP thuộc phiên sử dụng địa chỉ multicast này. Gói tin RTP và RTCP được phân biệt với nhau thông
qua sử dụng các số cổng phân biệt. (Số của cổng RTCP được thiết lập bằng số của cổng RTP cộng 1).
P T
I T
Chương 6. Kết nối mạng đa phương tiện
115
Hình Error! No text of specified style in document..38: Cả bên gửi và bên nhận đều gửi các
bản tin RTCP
Các gói tin RTP không đóng gói khúc dữ liệu audio hay video. Thay vào đó các gói tin RTCP
được gửi định kì và chứa các báo cáo của bên gửi và/hoặc bên nhận thông báo các thống kê có thể có
ích cho ứng dụng. Các thống kê này bao gồm số gói tin được gửi đi, số gói tin bị mất, và jitter giữa các
gói tin đến. Đặc tả RTP (RFC 3550) không chỉ dẫn ứng dụng phải phải làm gì với thông tin phản hồi
này, mà nó sẽ phụ thuộc vào người phát triển ứng dụng. Ví dụ, các bên gửi có thể sử dụng thông tin
phản hồi để thay đổi tốc độ truyền dẫn. Thông tin phản hồi có thể cũng được sử dụng cho các mục
đích dự báo; ví dụ bên nhận có thể xác định liệu các vấn đề là trong phạm vi cục bộ, vùng hay toàn
cầu.
Các loại gói tin RTCP
Đối với mỗi dòng RTP mà bên nhận nhận như một phần của phiên, bên nhận tạo ra báo cáo
quá trình nhận. Bên nhận thu thập các báo cáo quá trình nhận của nó vào một gói tin RTCP duy nhất.
Gói tin này được gửi đến cây multicast kết nối tất cả các bên tham gia của phiên. Báo cáo quá trình
nhận bao gồm một số trường, các trường quan trọng nhất được liệt kê dưới đây:
1. SSRC của dòng RTP mà báo cáo quá trình nhận của nó được tạo lập.
2. Phần gói tin bị mất trong dòng RTP. Mỗi bên nhận tính số gói tin RTP bị mất chia cho số gói
tin được gửi trên một phần của dòng. Nếu bên gửi nhận được các báo cáo quá trình nhận chỉ
ra rằng bên nhận chỉ nhận được phần nhỏ các gói tin đã gửi đi thì nó có thể chuyển sang tốc
độ mã hóa thấp hơn, nhằm làm giảm nghẽn mạng và cải thiện tốc độ nhận.
3. Số thứ tự cuối cùng nhận được trong dòng gói tin RTP.
T
I
Chương 6. Kết nối mạng đa phương tiện
116
4. Jitter giữa các khoảng đến, là ước lượng gần đúng của phương sai thời gian đến giữa các gói
tin liên tiếp trong dòng RTP.
Đối với mỗi dòng RTP mà bên gửi đang truyền đi, bên gửi tạo và truyền các gói tin báo cáo
RTCP của bên gửi. Các gói tin này bao gồm thông tin về dòng RTP:
1. SSRC của dòng RTP.
2. Nhãn thời gian và thời gian thực (đồng hồ) của gói tin mới nhất được tạo trong dòng RTP.
3. Số gói tin được truyền đi trên dòng.
4. Số byte được gửi đi trên dòng.
Các báo cáo của bên gửi có thể được sử dụng để đồng bộ các dòng phương tiện trong cùng
một phiên RTP. Ví dụ, xem xét ứng dụng hội nghị video trong đó mỗi bên gửi tạo ra hai dòng RTP độc
lập, một dòng video và một dòng audio. Nhãn thời gian trong các gói tin RTP này liên kết chặt chẽ với
đồng hồ lấy mẫu video và audio, và không liên kết với thời gian thực (đồng hồ thông thường). Đối với
gói tin mới nhất được tạo ra trong dòng RTP liên quan, mỗi báo cáo bên gửi RTCP chứa nhãn thời
gian của gói tin RTP và thời gian thực khi gói tin được tạo ra. Do đó các gói tin báo cáo bên gửi RTCP
liên kết đồng hồ lấy mẫu với đồng hồ thời gian thực. Bên nhận có thể sử dụng liên kết này trong các
báo cáo bên nhận RTCP để đồng bộ phát lại audio và video.
Đối với mỗi dòng RTP bên gửi đang truyền đi, bên gửi cũng tạo và truyền các gói tin mô tả
nguồn. Các gói tin này chứa thông tin về nguồn, như địa chỉ e-mail của bên gửi, tên của bên gửi, và
ứng dụng tạo ra dòng RTP. Nó cũng bao gồm SSRC của dòng RTP liên quan. Các gói tin này cung cấp
ánh xạ giữa định danh nguồn (tức là SSRC) và tên người sử dụng/trạm chủ.
Các gói tin RTCP là có khả năng xếp chồng; nghĩa là các báo cáo quá trình nhận của bên nhận,
các báo cáo bên gửi, và mô tả nguồn có thể ghép với nhau trong cùng một gói tin. Sau đó gói tin tổng
hợp này được đóng gói vào đoạn UDP và chuyển vào cây multicast.
Băng thông RTCP
Chúng ta có thể để ý thấy rằng RTCP có thể có vấn đề về qui mô. Ví dụ, xem xét phiên RTP
bao gồm một bên gửi và một số lượng lớn bên nhận. Nếu mỗi bên nhận định kì tạo các gói tin RTCP
thì tốc độ truyền tổng thể của gói tin RTCP có thể vượt xa tốc độ gửi gói tin RTP của bên gửi. Quan
sát rằng lượng lưu lượng RTP gửi vào cây multicast không thay đổi nếu số lượng bên nhận tăng,
trong khi đó lượng lưu lượng RTCP tăng tuyến tính với số lượng bên nhận. Để giải quyết vấn đề qui
mô này, RTCP điều chỉnh tốc độ các bên tham gia gửi gói tin RTCP vào cây multicast như một hàm số
của số lượng bên tham gia trong phiên. Do mỗi bên tham gia gửi các gói tin điều khiển đến bất cứ ai
nên bên tham gia có thể ước lượng tổng số bên tham gia vào phiên.
RTCP cố gắng hạn chế lưu lượng không quá 5% của băng thông phiên. Ví dụ, giả sử có một
bên gửi, gửi video tốc độ 2 Mbps. RTCP cố gắng hạn chế lưu lượng không quá 5% của 2 Mbps (tức là
100 kbps) như sau. Giao thức dành 75% tốc độ này hay 75 kbps cho các bên nhận, và 25% còn lại của
P T
I T
Chương 6. Kết nối mạng đa phương tiện
117
tốc độ hay 25 kbps cho bên gửi. 75 kbps dành cho các bên nhận được chia sẻ đều cho tất cả bên
nhận. Vì vậy, nếu có R bên nhận thì mỗi bên nhận gửi lưu lượng RTCP với tốc độ là 75/R kbps, và bên
gửi gửi lưu lượng RTCP với tốc độ 25 kbps. Một bên tham gia (bên gửi hay bên nhận) xác định chu kì
truyền gói tin RTCP bằng cách tính toán động kích cỡ gói tin RTCP trung bình (trên toàn bộ phiên) và
chia kích cỡ gói tin RTCP trung bình cho tốc độ ấn định của nó. Cuối cùng, chu kì truyền gói tin RTCP
đối với bên gửi là
𝑇 =
số lượng bên gửi
25.0,5.𝑏ă𝑛𝑔 𝑡ℎô𝑛𝑔 𝑝ℎ𝑖ê𝑛
(kích cỡ gói tin RTCP trung bình)
Và chu kì truyền gói tin RTCP đối với bên nhận là
𝑇 =
số lượng bên nhận
75.0,5.𝑏ă𝑛𝑔 𝑡ℎô𝑛𝑔 𝑝ℎ𝑖ê𝑛
(kích cỡ gói tin RTCP trung bình)
P T
I T
Chương 7. Xu hướng phat́ triển ứng dụng và dic̣h vụ trên nền Internet
118
XU HƯỚNG PHAT́ TRIÊN̉ ỨNG DỤNG VÀ DIC̣H VỤ TRÊN NỀN INTERNET
Equation Section (Next)
Xu hướng hội tụ và mạng NGN
Xu hướng phat́ triển mạng toàn IP
Công nghệ IP được xây dựng trên nền tảng giao thức IP. Giao thức này được xây dựng với mục đích
truyền tải dữ liệu giữa các máy tính trong một mạng liên kết các máy tính với nhau thông qua một số
cơ chế định tuyến gói tin cụ thể. Hoạt động chủ yếu của giao thức IP là thực hiện phân chia khối dữ
liệu cần gửi đi thành các gói tin có khuôn dạng được chuẩn hóa và truyền chúng vào mạng. Các gói
tin được định tuyến truyền trên mạng để tới được đích bằng cách áp dụng các giải thuật định tuyến
xác định với một số tiêu chí định tuyến nào đó.
Bản chất của công nghệ IP là cung cấp phương thức truyền tải phi kết nối (connectionless). Do vậy,
phương thức truyền tải này xét ở phạm vi mạng của nhà cung cấp dịch vụ là phương thức truyền tải
không mang tính tin cậy cao, ứng dụng truyền tải trên mạng IP mang tính “nỗ lực tối đa” (best –
effort). Sau đây là một số đặc điểm nổi bật của công nghệ mạng trên nền IP.
Ưu điểm
1. Với phương thức chuyển gói mềm dẻo, các giao thức định tuyến áp dụng trong công nghệ IP
cho phép truyền tải lưu lượng với hiệu suất cao, tận dụng băng thông truyền tải, do đó tiết
kiệm được dung lượng kênh truyền dẫn.
2. Phần lớn các phần mềm ứng dụng thực hiện trao đổi dữ liệu mạng trong các sản phẩm máy
tính cá nhân, máy chủ, các thiết bị định tuyến đều được thiết kế để có thể chạy trên nền IP.
Đây là một lợi thế rất lớn của công nghệ này.
3. Các giải thuật định tuyến ứng dụng trong công nghệ IP cho phép trao đổi dữ liệu trong môi
trường liên mạng một cách mềm dẻo, linh hoạt.
4. Công nghệ IP cho phép khả năng tích hợp đa dịch vụ. Dựa trên nền tảng giao thức IP, người
sử dụng có thể kiến tạo rất nhiều ứng dụng và loại hình dịch vụ khác nhau cũng như các dịch
Các file đính kèm theo tài liệu này:
- bg_internet_va_cac_giao_thuc_0488.pdf