Cơ chế của giao thức TFRC

Một phần của tài liệu đồ án: Giao thức điều khiển tốc độ tránh nghẽn TFRC (Trang 27 - 30)

CHUƠNG II : GIAO THỨC ĐIỀU KHIỂN TỐC ĐỘ TRÁNH NGHẼN TFRC

2.1 Cơ chế của giao thức TFRC

TFRC là một cơ chế dựa vào máy thu (receiver-based) [2] với các tính tốn thơng tin điều khiển xung đột tại máy thu tốt hơn là tại máy phát. Đối với cơ chế điều khiển tắc nghẽn của nó, TFRC trực tiếp sử dụng một biểu thức thông lượng cho tốc độ gửi cho phép như một hàm của tỉ lệ sự kiện mất gói, round-trip time và kích thước gói. Nói chung, cơ chế điều khiển tắc nghẽn của TFRC (hình 2.1) như sau:

• Máy thu đo tỉ lệ sự kiện mất gói (the loss event rate) và truyền thơng tin đó cho máy phát.

• Máy phát cũng sử dụng các bản tin phản hồi đó để đo round-trip time

• Tỉ lệ sự kiện mất gói và round-trip time sau đó được chuyển vào biểu thức thông lượng của TFRC để đưa ra tốc độ truyền có thể chấp nhận được.

• Máy phát sau đó điều chỉnh tốc độ truyền phù hợp với tốc độ tính tốn

Hình 2.1 Cơ chế của giao thức TFRC

2.1.1 Biểu thức thông lượng

Trên các mạng hiện nay, sự tồn tại của các luồng lưu lượng TCP là một tất yếu. Vì vậy giao thức TFRC chỉ thực sự được sử dụng rộng rãi khi nó đảm bảo hoạt động thân thiện, bình đẳng với các lưu lượng TCP. Một luồng tương thích TCP được định nghĩa là một luồng mà ở trạng thái ổn định không sử dụng băng thông nhiều hơn so với một luồng TCP thông thường chạy trong các điều kiện như nhau. Đối với các lưu lượng best- effort hoạt động cùng TCP trên Internet hiện nay, để trở nên tương thích với TCP, lựa chọn đúng đắn cho biểu thức điều khiển là một hàm tương ứng TCP mô tả

tốc độ gửi ở trạng thái ổn định của TCP. Nếu chúng ta sử dụng một hàm đáp ứng kém linh hoạt hơn nhiều khi đó lưu lượng kém linh động hơn có thể bị “chết” khi hoạt động cùng lưu lượng TCP trong một hàng đợi FIFO. Trong thực tế, khi hai loại lưu lượng hoạt động trong một hàng đợi FIFO, hiệu suất có thể chấp nhận được cho hai loại lưu lượng chỉ có kết quả nếu hai loại lưu lượng có các hàm đáp ứng tương tự nhau.

Biểu thức thông lượng chúng ta đề xuất hiện nay cho TFRC là một phiên bản khá đơn giản của biểu thức thông lượng TCP Reno. TFRC sử dụng biểu thức thông lượng của TCP như một hàm của tỉ lệ sự kiện mất gói và RTT. Tuy nhiên, cần chú ý rằng biểu thức thông lượng TCP đã sử dụng phải phản ánh hoạt động timeout truyền lại, khi điều này ảnh hưởng lớn đến thơng lượng TCP tại các tỉ lệ mất gói cao hơn. Chúng ta cũng chú ý rằng các giả thiết ẩn trong biểu thức thông lượng về tham số tỉ lệ sự kiện mất gói phải là một sự phù hợp hợp lý để thực hiện đo tỉ lệ mất gói hoặc tỉ lệ sự kiện mất gói. Biểu thức thơng lượng sử dụng trong TFRC như sau [1,2]:

Ở đó X là tốc độ truyền (byte/s) S là kích thước gói (byte) R là round-trip time (s)

p là tỉ lệ sự kiện mất gói (có giá trị từ 0 đến 1) t_RTO là giá trị timeout cho việc truyền lại TCP (s) b là số lượng gói được chấp nhận bằng 1 TCP ACK đơn

Máy phát và máy thu cùng sử dụng các số thứ tự cho việc đo RTT. Mỗi lần máy thu gửi phản hồi nó lặp lại số thứ tự từ gói dữ liệu gần nhất, cùng với thời gian từ lúc gói đó được nhận. Trong cách này, máy phát đo RTT qua mạng. Máy phát khi đó dàn xếp việc đo RTT sử dụng một trung bình dịch chuyển có trọng số tăng theo hàm mũ (EWMA). Trọng số này quyết định tính đáp ứng của tốc độ truyền thay đổi theo RTT. Máy phát cũng nhận được tỉ lệ sự kiện mất gói p trong các bản tin phản hồi từ máy thu ít nhất một lần/RTT.

Máy phát có thể nhận được giá trị timeout truyền lại t_RTO sử dụng thuật tốn TCP thơng thường:

t_RTO = SRTT +4*RTTvar

Ở đó RTTvar là sự thay đổi của RTT và SRTT là ước tính round-trip time. Tuy nhiên, trong thực tế t_RTO chỉ ảnh hưởng nghiêm trọng đến tốc độ gửi khi tỉ lệ mất gói là rất cao. Khơng giống với TCP, TFRC không sử dụng giá trị này để quyết định việc truyền lại có an tồn khơng và vì vậy hậu quả của việc tính sai là khơng q nghiêm trọng. Trên thực tế, dựa trên những phỏng đoán về kinh nghiệm với t_RTO = 4R thì TFRC có thể hoạt động bình đẳng với TCP.

Nhiều kết nối TCP hiện nay sử dụng các xác nhận trễ, gửi một ACK cho mỗi hai gói dữ liệu nhận được và do đó có một tốc độ gửi được mơ hình với b=2. Tuy nhiên, TCP cũng được cho phép để gửi một ACK cho mỗi gói dữ liệu, và nó sẽ được mơ hình với b=1. Do nhiều hoạt động TCP khơng sử dụng các xác nhận trễ, RFC 3448 đề xuất b=1 [1].

Các thơng số s (kích thước gói), p (tỉ lệ sự kiện mất gói) và R (round-trip time) cần được đo hoặc tính tốn bởi một hoạt động của TFRC. Việc đo s, R, p lần lượt được chỉ ra ở phần 2.2.1, 2.2.3 và 2.3. Các tốc độ dữ liệu dưới đây được tính theo bytes/s.

Trong các phiên bản sau, các biểu thức TCP khác nhau có thể thay thế cho biểu thức này. Yêu cầu là biểu thức thông lượng phải là một xấp xỉ hợp lý của tốc độ gửi của TCP cho điều khiển tắc nghẽn đảm bảo hoạt động của các luồng lưu lượng này trên mạng.

2.1.2 Các loại gói tin

Trước khi xét đến chức năng máy phát và máy thu, chúng ta mơ tả nội dung của các gói dữ liệu được gửi bởi máy phát và các gói phản hồi được gửi bằng máy thu. Do TFRC sẽ được sử dụng với một giao thức truyền tải nên ở đây không chỉ ra các định dạng gói vì chúng phụ thuộc vào chi tiết của giao thức truyền tải đã sử dụng.

Các gói dữ liệu

Mỗi gói dữ liệu được gửi bởi máy phát dữ liệu chứa thông tin sau đây:

+ Một số thứ tự (sequence number): Số này được tăng lên một sau mỗi lần một gói dữ liệu được truyền. Trường này phải đủ lớn sao cho không tồn tại hai gói khác nhau có cùng số thứ tự chứa trong hồ sơ gói gần đây của máy thu tại cùng thời điểm.

+ Một thời gian mẫu (timestamp) chỉ ra thời điểm gói được gửi. Mỗi gói có số thứ tự i sẽ có thời gian mẫu là ts_i (thường được đo bằng mili giây). Thời gian mẫu này được sử dụng bởi máy thu để quyết định những lần mất gói nào thuộc về cùng sự kiện mất gói. Thời gian mẫu cũng được máy thu gửi lại, cho phép máy phát ước lượng RTT đối

với các máy phát mà không lưu các thời gian mẫu của các gói dữ liệu đã phát. Ngồi ra, máy phát cũng có thể lưu các timestamp của các gói dữ liệu đã gửi để ước lượng round-trip time.

+ Ước lượng hiện tại về RTT của máy phát. Ước lượng đã gửi trong gói i kí hiệu là R_i. Ước lượng RTT được sử dụng bởi máy thu cùng với timestamp quyết định khi nào nhiều gói mất thuộc về cùng sự kiện mất gói.

Các gói phản hồi

Mỗi gói phản hồi được gửi bởi máy thu chứa các thơng tin sau:

+ Timestamp của gói dữ liệu nhận được sau cùng. Chúng ta kí hiệu là t_recvdata. Nếu gói nhận được sau cùng tại máy thu có số thứ tự i, khi đó t_recvdata = ts_i. Timestamp này được máy phát sử dụng để ước lượng RTT và chỉ cần thiết khi máy phát khơng lưu các timestamp của các gói dữ liệu đã phát.

+ Khoảng thời gian giữa việc nhận gói dữ liệu sau cùng tại máy thu và việc phát của thơng báo phản hồi này kí hiệu là t_delay.

+ Tốc độ nhận ước lượng tại máy thu khi thông báo phản hồi sau cùng được gửi kí hiệu là X_recv.

+ Ước lượng về tỉ lệ sự kiện mất gói hiện tại của máy thu, p.

Một phần của tài liệu đồ án: Giao thức điều khiển tốc độ tránh nghẽn TFRC (Trang 27 - 30)

Tải bản đầy đủ (DOC)

(77 trang)
w