- Độ khả dụng: để đảm bảo các điểm đầu cuối thông tin vẫn duy trì được dịch vụ
3.2.5 Cơ chế phân phát dữ liệu trong SCTP
SCTP phân biệt các luồng bản tin khác nhau trong một liên kết SCTP. Điều này cho phép thực hiện một cơ chế mà theo đó thì chỉ cần duy trì một chuỗi các bản tin trong một luồng (phân phát theo chuỗi từng phần). Điều này sẽ làm giảm nghẽn đầu dòng không cần thiết giữa các luồng bản tin khác nhau. Hơn nữa, SCTP cho phép thực hiện một cơ chế để chuyển tiếp dịch vụ phân phát tuần tự, sao cho các bản tin được phân phát tới người sử dụng của SCTP ngay khi chúng được nhận đầy đủ (phân phát thứ tự đến).
Điều khiển luồng và điều khiển tắc nghẽn trong SCTP được thực hiện để đảm bảo rằng lưu lượng SCTP trong mạng được coi như lưu lượng IP. Điều này cho phép thực hiện các dịch vụ SCTP không theo kiểu luồng trên nền mạng IP hiện tại.
SCTP hoạt động tại hai mức:
Trong một liên kết, việc truyền tải tin cậy datagram được đảm bảo bằng cách sử dụng trường kiểm tra tổng, số thứ tự và cơ chế truyền lại có chọn lọc. Mỗi chunk dữ liệu được nhận chính xác sẽ được chuyển tới mức thứ hai, độc lập với mức này.
Mức thứ hai thực hiện một cơ chế phân phát tin cậy dựa trên khái niệm về việc sử dụng nhiều luồng datagram độc lập trong một liên kết.
Việc phát hiện lỗi và lặp chunk dữ liệu được thực hiện bởi đánh số thứ tự tất cả các chunk dữ liệu phía gửi bằng Số thứ tự truyền tải TSN. Sự công nhận gửi từ phía thu tới phía phát được dựa trên những số thứ tự này.
Việc truyền lại được điều khiển bởi bộ đếm thời gian. Thời gian đếm này được tính toán từ việc kiểm tra liên tục thời gian trễ toàn trình. Ngay khi bộ đếm thời gian này bị dừng, tất cả các gói tin không được xác nhận sẽ được truyền lại và bộ đếm lại được khởi động lại với thời gian đếm gấp đôi.
Mỗi gói tin được nhận sẽ được xác nhận bằng một chunk SACK. Thông qua các SACK này phía gửi tin cũng sẽ biết được số các khoảng trống giữa các chunk dữ liệu. Khi phía gửi nhận được 4 SACK liên tiếp thông báo việc thiếu cùng một chunk dữ liệu thì chunk này được gửi lại ngay lập tức.
Phân phát gói tin linh hoạt
SCTP gán mỗi gói tin cho một trong những luồng trong một liên kết. Khi một liên kết được thiết lập, số các luồng khả dụng ở mỗi hướng được trao đổi giữa các thực thể ngang hàng. Trong mỗi luồng, SCTP gán Số thứ tự luồng (SSN) độc lập cho các gói tin. Các số này được sử dụng để tại phía thu để xác định số thứ tự phân phát. SCTP thực hiện việc phân phát theo thứ tự đối với mỗi luồng (đối với các gói tin không được đánh dấu là không phát theo thứ tự). Cơ chế này tránh được nghẽn đầu dòng giữa các luồng bản tin khác nhau. Với TCP, điều này chỉ đạt được bằng cách thiết lập một số các kết nối cho một luồng, có nghĩa là phải tăng chi phí và dung lượng.
Như đã đề cập ở trên, SCTP cho phép đánh dấu các bản tin để những bản tin này có thể được phân phát không theo thứ tự. Nó có thể được sử dụng cho các bản tin quan trọng để được ưu tiên trước, chẳng hạn như bản tin huỷ bỏ phiên của một ứng dụng.