Đây là gĩi tin RTCP thơng báo của người đang truyền dữ liệu phát đi. Trước tiên
ta xét đến cấu trúc của gĩi tin RS:
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Header Header V=2 P RC PT=SR=200 Length SSRC of sender Sender infor
NTP timestamp, most significant word
NTP timestamp, least significant word
RTP timestamp
sender's packet count
sender's octet count
Report Block 1
SSRC_1 (SSRC of first source)
fraction lost cumulative number of packets lost
extended highest sequence number received
interarrival jitter
last SR (LSR)
delay since last SR (DLSR)
Report Block 2 SSRC_2 (SSRC of second source) ………. profile-specific extensions Hình 4.3: Cấu trúc bản tin SR-RTCP.
Gĩi thơng báo của bên gởi dữ liệu chứa 3 phần cố định, cĩ thể được gắn thêm tới
4 phần mở rộng (profile-specific extension) nếunĩ được định nghĩa.
50
- Version (V): 2 bits, dùng để xác định version của RTP (giá trị V trong các gĩi
dữ liệu RTP và gĩi RTCP đều cĩ giá trị giống nhau). Trong trường hợp này V=2 (giá trị hiện giờ của RTP đang được sử dụng).
- padding (P): 1 bit. Nếu giá trị này được đặt bằng 1 thì trong gĩi RTCP này cĩ chứa một số octets mở rộng, ở phần cuối. Nĩ khơng là một phần của thơng tin điều khiển nhưng chiều dài của nĩ vẫn được tính vào trường length.
Octet cuối cùng của phần đệm cĩ chứa số octets nên được bỏ qua, kể cả
chinh nĩ (giá trị này sẽ là bộ số của 4). Các bits đệm cĩ thể được sử dụng trong
một số thuật tốn mã mật với kích thước block cố định. Trong gĩi ghép RTCP, bits đệm chỉ được sử dụng trong các gĩi con, bởi vì gĩi ghép sẽ được mã mật như là một khối. Hơn nữa, nếu phần đệm được thêm vào gĩi thì giá trị của nĩ
chỉ cĩ ý nghĩa cho gĩi đĩ mà thơi. - reception report count (RC): 5 bits
Dùng để xác định số các block báo nhận (reception report blocks) được mang trong
gĩi này. Nếu khơng cĩ block nào thì trường này cĩ giá trị 0.
- packet type (PT): 8 bits
Trường này cĩ giá trị bằng 200 để xác định gĩi RTCP này là gĩi SR. - length: 16 bits
Dùng xác định kích thước gĩi tin RTCP, đơn vị là 32-bit, bao gồm cả phần tiêu đề và các phần đệm.
- SSRC: 32 bits Dùng để xác định nguồn đồng bộ (synchronization source) của
gĩi SR.
Phần thứ 2: mang thơng tin về người gởi, cĩ chiều dài 20 octets, nĩ cĩ mặt
trong tất cả các gĩi SR. Nĩ tĩm tắt việc truyền dữ liệu của người gởi này. Các trường
cĩ ý nghĩa như sau:
- NTP timestamp: 64 bits. Dùng xác định giá nhãn thời gian, khi mà gĩi này được
truyền đi. Nĩ cĩ thể được bên nhận dùng để xác định tổng thời gian truyền từ điểm gởi đến điểm nhận. Người nhận phải xác định rằng độ chính xác của nhãn thời gian cĩ thể thấp hơn nhiều so với độ chính xác của nhãn thời gian NTP.
51
dụng đồng hồ hệ thống của mình, dựa vào đĩ để tính tốn ra thời gian NTP tương ứng.????
- RTP timestamp: 32 bits
Nhãn thời gian này giống như NTP timestamp ở trên, tuy nhiên giá trị ở đây là độ
chênh lệch giữa các thời điểm phát các gĩi tin. Điều này cĩ thể giúp cho bên nhận cĩ
thể thực hiện đồng bộ các tín hiệu video/audio thu được.
Chú ý rằng, trong đa số các trường hợp, giá trị nhãn thời gian RTP của các SR
khác nhau khơng giống nhau.
Ngồi ra, ta nên tính tốn ra thời gian dạng NTP, bằng cách sử dụng mối quan hệ
giữa việc đếm các nhãn thời gian RTP và thời gian thực được xác định bằng cách kiểm tra đồng hồ chuẩn tại thời điểm lấy mẫu.
- sender's packet count: 32 bits
Tổng sơ các gĩi dữ liệu RTP đã được gởi bởi người nào đĩ kể từ khi bắt đầu phiên
đến khi gĩi SR được sinh ra. Biến đếm này phải được khởi tạo lại mỗi khi người
gởi thay đổi định danh SSRC.
- Sender's octet count: 32 bits
Tổng số octets của phần tải (payload), khơng tính phần tiêu đề hoặc phần đệm, đã được truyền đi kể từ thành viên này tham gia phiên truyền đến khi gĩi SR này
được tạo ra. Biến đếm này cũng nên được khởi tạo lại khi người gởi thay đổi định danh. Trường này cũng cĩ thể được sử dụng để ước tính tốc độ tải trung bình của một người gởi.
Phần thứ 3:Phần này cĩ thể bỏ trống hoặc cĩ giá trị thay đổi phụ thuộc vào số
các nguồn được lắng nghe bởi người gởi này, kể từ khi nĩ goiwr đi bản tin hồi đáp
cuối cùng. Mỗi một khối tin báo nhận mang theo một số đặc điểm về sự nhận các gĩi
tin RTP tại một thành viên nhận. Việc truyền đi trạng thái của người nhận trong khi người nhận đĩ đang thay đổi định danh SSRC cĩ thể gâyra xung đột. Những thơng tin
trạng thái bao gồm:
- SSRC_n (source identifier): 32 bits. Định danh của nguồn mà khối tin báo
nhận này cần chuyển tới.
52
Tỷ lệ gĩi RTP bị thất lạc từ nguồn gởi SSRC_n kể từ lần truyền gĩi SR hoặc gĩi RR trước. Nĩ được tính bằng tỷ số giữa số gĩi bị mất trên số gĩi được gởi. Giá trị được
biểu diễn bằng giá trị, tính bằng số nguyên của 8-bit nhị phân chia cho 256. Chú ý
rằng, phía nhận khơng thể nĩi rằng cĩ bao nhiêu gĩi bị thất lạc trước khi nĩ nhận được
gĩi tin cuối cùng (tính tại thời điểm đấy). Do vậy, sẽ khơng cĩ một bản tin báo nhận được phát đi cho nguồn SSRC_n , nếu tất cả các gĩi tin gởi đi từ nĩ (kể từ khi phát đi
bản thơng báo cuối) đều bị thất lạc.
- cumulative number of packets lost: 24 bits
Tổng số các gĩi dữ liệu RTP từ nguồn SSRC_n đã bị mất, kể từ khi nhận được gĩi tin RTP đầu tiên. Con số này xác định số các gĩi được nhận trên thực tế hụt bao nhiêu so với mong muốn. Do con số này tính trong một thời gian dài, nên các gĩi đến muộn sẽ
khơng bị coi là thất lạc, một gĩi đến muộn cũng bị loại bỏ khi mà đã cĩ một gĩi tương
tự đến trước.
- extended highest sequence number received: 32 bits
Trong đĩ, 16 bits thấp chứa số thứ tự cao nhất đã nhận được trong các gĩi dữ liệu
RTP phát từ nguồn SSRC_n. 16-bit cao dùng mở rộng cho các số thứ tự này, được
dùng khi số đếm vượt quá 16-bit. Chú ý rằng, với những người nhận khác nhau,
tham gia cùng một phiên RTP nhưng ở cac thời điểm khác nhau sẽ tạo ra phần mở
rộng khac nhau.
- interarrival jitter: 32 bits
Dùng ước lượng sự khác nhau về mặt thời gian đến của các gĩi dữ liệu RTP. Giá trị này được tính tốn dựa trên giá trị của các nhãn thời gian, được biểu diễn bằng số
nguyên khơng dấu. Giá trị của độ jitter J dùng được xác định nhằm so sánh sự khác
nhau D từ nguồn đến đích giữa 2 gĩi RTP. Như được chỉ ra ở cơng thức dưới đây, điều này tương đương với sự khác nhau về relative transit time của 2 gĩi tin.
relative transit time là sự khác nhau giữa nhãn thời gian được gắn trên gĩi RTP
và đồng hồ của bên nhận khi gĩi tin đĩ đếnđích.
Nếu gọi Si là nhãn thời gian gắn trên gĩi RTP, Ri là thời gian đến của gĩi. Khi đĩ đối với hai gĩi i và j ta cĩ D được tính:
53
interarrival jitternên được tính một cách liên tục khi mỗi gĩi dữ liệu được nhận
từ nguồn SSRC_n. để thực hiện điều này, sự khác biệt D giữa 1 gĩi RTP và một gĩi RTP trước nĩ (khơng cần quan tâm đến số thứ tự) được tính theo cơng thức sau:
J(i) = J(i-1) + (|D(i-1,i)| - J(i-1))/16. - last SR timestamp (LSR): 32 bits
32 bits giữa của 64 bits trong NTP timestamp nhận được từ gĩi SR RTCP mới nhất
từ nguồn SSRC_n. Nếu chưa cĩ bản tin SR nào được nhận thì trường này được gán
bằng 0.
- delay since last SR (DLSR): 32 bits
Thời gian tạm ngừng được đánh giá trong 1/65536 giây, giữa quá trình nhận một gĩi
SR cuối nhất từ nguồn SSRC_n và quá trình gởi đi bản tin hồi đáp. Nếu khơng cĩ bản tin SR nào được gởi từ nguồn SSRC_n nào được gởi thì trường DLSR được gán bằng
zero.
Gọi SSRC_r là người nhận đang phát đi bản tin báo nhận này. SSRC_n cĩ thể
tính tốn tổng thời gian trễ lan truyền đến SSRC_r bằng cách ghi lại thời gian A khi
bản tin báo nhận được nhận. Nĩ tính tổng thời gian round-trip time (A-LSR) dựa trên nhãn thời gian của gĩi SR cuối cùng (LSR), sau đĩ trừ đi thời gian DLSR ta cĩ thơì gian trễ lan truyền là: (A - LSR - DLSR). Giá trị này cĩ thể được dùng để tính gần đúng khoảng cách tới các người nhận, cho dù thời gian trễ trên các đường truyền là khác nhau.
Cách tính thời gian trễ lan truyền được minh hoạ trong hình dưới. Thời gian được
biểu diễn ở cả hai dạng, thập lục phân 32-bit và dạng số thực tương đương. Dấu “:” dùng để phân cách giữa 16-bit phần nguyên và 16-bit phần thập phân.
54
Hình 4.3: Cách tính thời gian trễ lan truyền.