Tính tốn khoảng thời gian truyền RTCP:

Một phần của tài liệu Ứng dụng thời gian thực (Trang 42 - 44)

43

- Nếu số người gởi ≤25% số thành viên, chu kỳ gởi T phụ thuộc là thành viên đĩ cĩ đang gởi dữ liệu hay khơng (dựa trên giá trị we_sent). Nếu thành viên này đang

gởi, giá trị (we_sent=true):

bw 0,25.rtcp_ ize avg_rtcp_s  Cs

Hằng số nsđược tính bằng số thành viên đang gởi.

Với những thành viên khơng gởi:

bw 0,75.rtcp_ ize avg_rtcp_s  Cr

nrđược tính bằng số người khơng gởi dữ liệu.

Khi số người gởi >25% số thành viên, tất cả người gởi và người nhận được đối xử như

nhau. rtcp_bw ize avg_rtcp_s  C

n được tính bằng tổng số thành viên tham gia.

Như đã nĩi ở phần trước, ta cĩ thể phân dải thơng của RTCP thành 2 phần, tham số R, S để phân biệt giữa nhĩm người đang truyền và khơng. Trong trường hợp này ta chỉ

cần thay 25% bằng tỉ số S/(S+R), cịn 75% bằng tỷ số R/(R+S).

Trong trường hợp đặc biệt, khi khơng cĩ người gởi, hặc khơng cĩ người nhận (S=0,

hoặc R=0) sẽ xảy ra tình huống chia cho 0, do vậy khi cài đặt ta phải chú ý các trường

hợp này.

- Nếu một thành viên khơng tham gia gởi gĩi RTCP (initial=true), hằng số Tmin=2.5s, ngược lại nĩ được đặt bằng 5s.

- Giá trị của khoảng thời gian Td sẽ được ước tính là giá trị lớn nhất của (Tmin,

n*C).

- Giá trị T sẽ được phân bố trong dải từ 0,5 đến 1,5 lần giá trị tính tốn Td.

- Giá trị T trên sẽ được chia cho (e-1,5) để bù lại việc băng thơng RTCP trên thực tế

thấp hơn so với mức tính tốn.

Theo cách tính này, khoảng thời gian T sẽ lấy giá trị ngẫu nhiên tại một thời điểm,

tuy nhiên nếu tính lâu dài thì giá trị trung bình sẽ ≥25% RTCP sẽ được giành cho những người gởi dữ liệu, phần cịn lại dành cho người nhận dữ liệu.

44

Khi một thành viên bắt đầu tham gia, giá trị khởi tạo của các biến sẽ là: - tp=0. - tc=0. - senders=0. - pmembers=1. - members =1. - we_sent = false.

- rtcp_bw=5% băng thơng của phiên. - initial=true.

- avg_rtcp_size bằng giá trị của gĩi RTCP mà ứng dụng sắp tạo ra.

- Dựa vào các thơng số trên ta ước lượng T. sau đĩ đặt thời gian cho gĩi đầu tiên: tn=T. (adsbygoogle = window.adsbygoogle || []).push({});

Chú ý: một ứng dụng bất kỳ cĩ thể đặt lại giá trị thời gian này cho phù hợp.

Thành viên sẽ thêm giá trị SSRC của mình vào đầu bảng thành viên.

Một phần của tài liệu Ứng dụng thời gian thực (Trang 42 - 44)