Điều khiển luồng

Một phần của tài liệu Tìm hiểu về SCTP và đánh giá, thử nghiệm (Trang 28 - 30)

II. TỔNG QUAN

2.3.4. Điều khiển luồng

Trong khi SCTP quản lý thứ tự và phân phối các gói tin độc lập theo từng luồng thì nó quản lý việc điều khiển tắc nghẽn dựa trên từng đích tới và điều khiển luồng dựa vào từng kết nối.

Tương tự như với TCP, SCTP sử dụng kỹ thuật điều khiển tắc nghẽn và luồng dựa trên cửa sổ đầu cuối-đầu cuối (end-to-end window). Đầu cuối nhận có thể điều khiển tốc độ gửi dữ liệu bằng cách xác định kích thước cửa sổ theo đơn vị byte (gọi là cửa sổ đầu cuối nhận) và trả về cho đầu cuối gửi giá trị này cùng với tất cả các chunk SACK.

Đầu cuối gửi tự nó cũng giữ một biến là cửa sổ tắc nghẽn – crwd (Congestion Window) để kiểm soát giá trị lớn nhất các byte có thể gửi đi (tức là lượng byte có thể gửi trước khi nhận được phản hồi từ đầu cuối nhận). Bên nhận phải phản hồi các chunk dữ liệu nhận được, đầu cuối nhận có thể chờ một khoản thời gian nhất định (thường là 200 ms) để gửi phản hồi. Nếu một lượng lớn gói tin SCTP được nhận trong khoản thời gian này thì một chunk SACK được trả về phía đầu cuối gửi để xác nhận cho các gói tin SCTP chứa dữ liệu được nhận trong một giây. [2], [8] Mặc định là tất cả các truyền dẫn được thực hiện trên một địa chỉ đã được lựa chọn trước từ một tập các địa chỉ đích, gọi là địa chỉ chính. Việc truyền lại có thể được thực hiện trên một đường mạng khác, do đó nếu một đường mạng bị quá tải th việc truyền lại không ảnh hưởng đến nó (trừ khi do kiến trúc mạng có một điểm đang bị quá tải mà việc truyền lại cũng đi qua điểm đó). Với một số kiến trúc mạng nhất định, điều này sẽ có tác động tích cực đến toàn bộ băng thông. Nhưng các bản tin phản hồi nên được trả về cho các địa chỉ transport, nơi đã xuất phát dữ liệu lúc ban đầu.

Nếu đường mạng hiện tại có một số lượng lớn các hỏng hóc hay số lỗi vượt quá giới hạn đã được cấu hình trước. SCTP sẽ thông báo cho các tiến trình ứng dụng bên trên rằng đường đi chính không hoạt động được nữa và các ứng dụng có thể chọn một đường mạng chính khác để truyền dữ liệu.

2.3.5. Điều khiển tắc nghẽn

Về cơ bản, điều khiển tắc nghẽn trong SCTP dựa vào kỹ thuật đã được chứng minh và sử dụng trong TCP. Tuy nhiên có một vài khác biệt giữa TCP và SCTP [8]

- SCTP kết hợp chặt chẽ với thuật toán truyền lại nhanh chóng dựa trên các báo cáo SACK, tương tự như cơ chế SACK TCP. Nhưng SCTP không có giai đoạn phục hồi nhanh một cách rõ ràng. SCTP đạt được sự tự động phục hồi nhanh dựa vào việc sử dụng SACK.

- Như với TCP, SCTP có hai phương thức là khởi đầu chậm và tránh tắc nghẽn (Slow Start và Congestion Avoidance). Mỗi phương thức được xác định bằng một tập các biến điều khiển tắc nghẽn cho những đường mạng cụ thể. Vì vậy có thể đường mạng chính đang ở phương thức tránh tắc nghẽn thì các đường mạng dự phòng khác vẫn đang ở chế độ “khởi đầu chậm”. Để thành công trong việc chuyển giao và phản hồi các dữ liệu, biến cửa sổ tắc nghẽn (cwnd) tăng đều đặn, và một khi nó vượt qua giới hạn nhất định (gọi là ngưỡng “khởi đầu chậm” - SSTRESH) thì phương thức chuyển từ “khởi đầu chậm” sang “tránh tắc nghẽn”. Nói chung ở phương thức “khởi đầu chậm” thì cwnd tăng nhanh hơn (khoản một MTU trên mỗi SACK nhận được) và ở phương thức “ tránh tắc nghẽn” th nó chỉ tăng khoản một MTU trên mỗi RTT (Round Trip Time). Các sự kiện kích hoạt việc truyền lại (hết thời gian chờ đợi hay truyền lại nhanh) là nguyên nhân dẫn tới SSTRESH bị giảm mạnh và khởi tạo lại giá trị cwnd (trong đó một lần trễ sẽ thiết lập một ngưỡng “khởi đầu chậm” mới với cwnd = MTU và một lần “truyền lại nhanh” sẽ thiết lập cwnd = SSTRESH) [15]

- Vì giá trị MTU của đường đi cũng là một biến quan trọng (ảnh hưởng đến việc kiểm soát tắc nghẽn) nên STCP có một tham số để ước lượng giá trị MTU cho mỗi đường đi.

- So sánh với TCP, việc sử dụng SACK là bắt buộc trong SCTP, cho phép SCTP phản ứng nhanh chóng hơn trong trường hợp có nhiều mất mác từ một

cửa sổ dữ liệu. Điều này tránh được việc lãng phí thời gian ở giai đoạn “khởi đầu chậm” khi mà có nhiều segment dữ liệu bị mất, vì thế SCTP sẽ tiết kiệm được băng thông và gia tăng thông lượng truyền..

- Trong quá trình SCTP tránh tắc nghẽn, cwnd chỉ có thể được tăng lên khi

cwnd đầy đủ được sử dụng, hạn chế này không tồn tại trong TCP và việc tăng giá trị cwnd chủ yếu dựa vào số byte đã được báo nhận, còn trong TCP thì nó dựa vào số lượng thông báo báo nhận. Trong SCTP, giá trị cwnd được khởi tạo bằng hai lần giá trị MTU đường truyền..

- TCP bắt đầu quá trình truyền lại nhanh sau khi nhận được nhận được ba thông điệp báo nhận DupsACK cho cùng một segment còn SCTP thì bắt đầu truyền sau khi nhận bốn thông điệp DupsACK. [2]

Một phần của tài liệu Tìm hiểu về SCTP và đánh giá, thử nghiệm (Trang 28 - 30)

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

(82 trang)