SCTP là gì? Hạn chế và khó khăn của giao thức đa luồng SCTP
Ngày nay, TCP được sử dụng cho hầu hết các liên lạc. SCTP có nhiều điểm tương đồng với TCP nhưng đi kèm nhiều đặc điểm nổi bật khác. Tuy nhiên, người dùng cần có những nhận thức chuẩn xác về SCTP để ứng dụng công nghệ này trong thực tiễn, cũng như nắm được lý do tại sao SCTP không được tích hợp rộng rãi trong các hệ thống. Cùng Bizfly Cloudtìm hiểu ngay tại bài viết dưới đây.
SCTP là gì?
Stream Control Transmission Protocol (SCTP) là giao thức truyền nhiều luồng dữ liệu cùng một lúc giữa hai thiết bị đầu cuối đã thiết lập kết nối trong mạng. Đôi khi SCTP còn được gọi là "TCP thế hệ mới" (next generation TCP) hay TCPng, SCTP được thiết kế để hỗ trợ kết nối điện thoại qua Internet dễ dàng hơn (đặc biệt là hỗ trợ SS7 của hệ thống điện thoại trên kết nối Internet)
SCTP và TCP
SCTP có nhiều điểm tương đồng với TCP. Cả hai đều là các giao thức vận chuyển tin cậy dựa trên IP, phân phối gói theo trình tự và kiểm soát tắc nghẽn theo biến đổi tốc độ. TCP có checksum 16 bit (RFC 1071) thì SCTP có CRC 32 bit (RFC 4960).
Tuy nhiên, SCTP cung cấp một số chức năng không có trong TCP như:
- SCTP được định hướng theo message trong khi TCP được định hướng theo luồng.
- SCTP có thể xử lý nhiều luồng đồng thời và luồng đa kênh trong đó TCP chỉ có thể xử lý một luồng dữ liệu trên mỗi kết nối. SCTP cho phép dữ liệu được chuyển thành nhiều luồng độc lập, do đó, nếu mất dữ liệu trong một luồng, việc truyền dữ liệu sẽ không ảnh hưởng đối với các luồng khác. Tính năng kiểm soát kết nối, nhận biết luồng của SCTP là một trong những tính năng đáng chú ý nhất của nó.
- SCTP cũng cung cấp khả năng đa điểm (multihoming) trong đó các điểm đầu cuối có thể sử dụng nhiều địa chỉ IP cho kết nối. Các điểm đầu cuối kết nối SCTP có thể sử dụng các địa chỉ IP từ các ISP khác nhau để giảm khả năng ảnh hưởng lỗi ở cấp độ mạng. Nếu trong quá trình kết nối, một trong những ISP đó bị lỗi, kết nối sẽ chỉ sử dụng địa chỉ IP từ ISP hoạt động. Do đó, multihoming được hỗ trợ mà không yêu cầu các trang web phải có số AS riêng và chạy BGP.
SCTP cũng cho khả năng chống lại các cuộc tấn công Man-In-The-Middle (MITM) và Từ chối dịch vụ (DoS) tốt hơn. SCTP sử dụng cơ chế cookie trong quy trình kết nối ban đầu (INIT ACK). SCTP không hỗ trợ các kết nối half-open do đó giao thức cũng chống đỡ tốt hơn trước các cuộc tấn công giả mạo, tấn công nghẽn mạng.
SCTP và UDP
SCTP cũng có nhiều tính năng tương tự như UDP. Cả hai đều hỗ trợ vận chuyển không xác thực và truyền tin ngoài gói. SCTP có tiêu đề 12 byte so với tiêu đề 8 byte của UDP, nhưng điều đó không đáng kể khi so sánh hiệu suất giữa các giao thức.
SCTP có thể thực hiện một số điều mà UDP không thể. SCTP có thể đối phó với Path MTU Discovery (PMTUD) và phân mảnh. SCTP có tính năng phát hiện kết nối, qua đó phát hiện các gói bị mất và trùng lặp. Do đó, không phải mọi ứng dụng đều phù hợp cho TCP hoặc UDP, trong khi SCTP lại có thể cung cấp những ưu điểm tốt nhất từ TCP và UDP.
Nếu SCTP mang đến lợi ích lớn như vậy, tại sao chúng ta không sử dụng giao thức thường xuyên hơn?
Lý do chính là bởi vì SCTP xuất hiện sau khi TCP đã được công nhận là giao thức kết nối phổ biến nhất trên IP. TCP hiện tại vẫn đang là giao thức giữ vị trí thống trị và chưa có dấu hiệu sẽ bị thay thế trong tương lai gần. Ngoài ra, SCTP chưa được quảng bá đủ và không có nhiều nhà phát triển nhận thức được lợi ích của SCTP hoặc sử dụng giao thức đúng cách.
Một vấn đề khác nữa là để thêm SCTP sẽ cần phải nâng cấp các stack IP và ứng dụng IP. Bất kỳ ứng dụng nào hiện nay sử dụng TCP đều sẽ phải được sửa đổi để tương thích với SCTP. Viết lại hầu hết các ứng dụng trên thế giới là một điều không khả thi. Vì không có nhiều ứng dụng máy chủ hỗ trợ SCTP nên cũng có ít ứng dụng máy khách hỗ trợ SCTP. Chúng ta có thể đã thấy việc việc áp dụng IPv6 khó khăn như thế nào. SCTP cũng gặp phải tương tự như IPv6. Tất cả các hệ điều hành, ứng dụng và thiết bị mạng đều cần được nâng cấp để hỗ trợ IPv6 hoạt động. Hơn nữa, chỉ có một số ít nhà cung cấp đã kích hoạt IPv6 của họ nên cũng chỉ có rất ít người dùng cuối thực hiện kết nối IPv6. SCTP chỉ yêu cầu thay đổi các ứng dụng và sự hỗ trợ từ hệ điều hành, nhưng đó vẫn là một nhiệm vụ khó khăn.
Hiện nay, hầu hết mọi người truy cập Internet phải thông qua NAT rồi mới đến HTTP. Thực tế là nhiều tường lửa không cho phép hoặc không được lập trình để giao tiếp với SCTP. Các tường lửa chỉ theo dõi thông tin trạng thái kết nối TCP. Nhiều hệ thống ngăn chặn xâm nhập (IPS) không kiểm tra các gói SCTP. Tường lửa Cisco ASA có thể chấp nhận lưu lượng SCTP nếu chỉ định IP protocol là 132. Nếu không, SCTP sẽ không được chấp nhận trong danh sách truy cập. Có thể cấu hình các chính sách SCTP trên tường lửa Juniper SRX hoặc ScreenOS nhưng cũng có rất nhiều tường lửa dạng thương mại khác không hỗ trợ SCTP.
Thế giới CNTT là nơi không phải lúc nào những ý tưởng tuyệt vời cũng được áp dụng rộng rãi. Có nhiều ví dụ về việc một công nghệ ưu việt thua một công nghệ hấp dẫn hơn về mặt trực quan và được tiếp thị tốt hơn. Điều này cũng đúng với các giao thức mạng. Mặc dù SCTP có thể vượt trội hơn TCP và UDP theo nhiều cách, nhưng nó đã thua TCP vì TCP là giao thức xuất hiện đầu tiên trên thị trường và đối với hầu hết các hệ thống, TCP đang hoạt động rất tốt.
Theo Bizfly Cloud tổng hợp
Bizfly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.
Bizfly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.
Độc giả quan tâm đến các giải pháp của Bizfly Cloud có thể truy cập tại đây.
DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud