II. TỔNG QUAN
2.5.1. Giới thiệu về dự án LKSCTP
Dự án Linux Kernel Stream Control Transmission Protocol (lksctp) tập trung vào việc triển khai SCTP trên nhân (kernel) Linux. Mục đích chính của dự án này là cung cấp cho người dùng biết được tình trạng của việc triển khai SCTP và các mở rộng khác nhau của nó. Cùng với nỗ lức liên tục phát triển giao thức, dự án này cũng hướng tới việc phổ biến thông tin về SCTP và khuyến khích cho việc triển khai SCTP trong thực tế. [1]
Thật sự thì việc hiện thực SCTP trong thực tế bao gồm dự án thư viện SCTP của Siemens (Siemens SCTP libarary - SCTPLIB) và lksctp (Randall’s SCTP Kernel). Cả hai đều dự định triển khai trong nhân Linux với nỗ lực ban đầu là tập trung vào các RFC và phát triển API. Tại thời điểm viết luận văn này, việc triển khai SCTP gần đây nhất là trên nhân Linux 2.6 với sctplib-1.0.8 được công bố vào tháng một
năm 2009 và lksctp-2.6.26-1.0.9. [21]
SCTPLIB được thiết kế để chạy trong không gian người dùng, trong khi đó lksctp được thiết kế để hoạt động trong không gian kernel.
Tuy nhiên việc triển khai SCTP mức độ không gian người dùng có hiệu suất thấp và thiếu linh hoạt, tất cả các thông điệp đều phải xử lý ở không gian người dùng nên cần nhiều bộ nhớ để chuyển các gói tin qua lại giữa không gian người dùng và không gian kernel. Hơn nữa các ứng dụng chỉ quan tâm đến các thông điệp dữ liệu SCTP hơn là các thông điệp điều khiển, bởi vậy việc xử lý tất cả thông điệp ở không gian người dùng là không hiệu quả. Một bất lợi nữa của kiến trúc này là không thể có nhiều hơn một tiến trình SCTP trên một host, vì thế cần một modun trung gian để cho phép nhiều tiến trình SCTP sử dụng dịch vụ của SCTPLIB,
modun trung gian này gọi là SCTPD. Điều này làm phức tạp hoạt động và tiêu tốn nhiều tài nguyên hệ thống hơn.
Vì thế, từ khi bắt tay vào nghiên cứu, bộ phận R&D của Motorolal, Cisco và Nortel đã phát triển lksctp hoạt động ở mức độ không gian kernel. Với nhiều ưu điểm hơn SCTPLIB, luận văn này sử dụng lksctp để tiến hành các thí nghiệm, đo đạc, phân tích và đánh giá SCTP.