Tấn công từ chối dịch vụ DoS là cách tấn công làm cạn kiệt các tài nguyên của máy chủ, do vậy máy chủ sẽ không thể đáp ứng các yêu cầu hợp pháp từ ngƣời dùng. Kẻ tấn công thực hiện gửi đi các SYN (Thông điệp yêu cầu thiết lập kết nối ) đến máy chủ. Khi nhận lại đƣợc SYN, ACK (Thông điệp thông báo sẵn sàng cho thiết lập kết nối từ máy chủ), bên nhận không đáp lại ACK nhƣ sơ đồ thiết lập kết nối mà vứt bỏ các thơng điệp đó, tiếp tục gửi các yêu cầu thiết lập kết nối khác. Kết quả là máy chủ phải dành tài nguyên cho các yêu cầu kết nối ảo này, do vậy sau một thời gian sẽ khơng cịn tài nguyên để dành cho các kết nối khác cũng nhƣ khơng thể giải phóng tài nguyên từ các kết nối ảo này, do vậy sẽ không đáp ứng các yêu cầu kết nối tiếp theo, dù các kết nối này là hợp pháp.
SCTP sử dụng COOKIE để bảo vệ máy chủ trƣớc cách tấn cơng từ chối dịch vụ. Khi có u cầu thiết lập kết nối, máy chủ sẽ không dành tài nguyên ngay mà chỉ ghi nhận yêu cầu kết nối này. Khi máy chủ nhận đƣợc COOKIE- ECHO, nó mới lấy thơng tin khối kiểm soát truyền tải TCB (Transmission control block) từ COOKIE-ECHO và có các thơng tin khác để thiết lập kết nối, do vậy bảo vệ đƣợc máy chủ trƣớc các tấn công kiểu từ chối dịch vụ. Thực chất của việc sử dụng Cookie để bảo vệ trƣớc các tấn công DoS là việc
làm cho máy đƣợc sử dụng tấn công không thể che dấu đƣợc địa chỉ IP thật của mình, do vậy nó khơng thể dùng các địa chỉ IP giả để thực hiện việc tấn công, thông qua các thông tin xác thực trong chunk COOKIE-ECHO. Trong sơ đồ thiết lập kết nối SCTP, phải dùng bốn thơng điệp để hồn tất quá trình. Tuy nhiên, dữ liệu của ngƣời dùng chỉ đƣợc truyền tải qua hai thông điệp cuối.
Truyền tải dữ liệu: Giao thức TCP truyền tải dữ liệu hƣớng byte giữa hai đầu cuối. Dữ liệu đƣợc truyền tải thành dịng các byte liên tục, khơng bảo tồn giới hạn của thơng điệp ngƣời dùng. Trong cùng một gói tin TCP có thể chứa một phần của thông điệp này cùng với các phần của các thông điệp khác. Việc tái hợp thông điệp ngƣời dùng sẽ phải đƣợc thực hiện bởi các ứng dụng, cũng nhƣ bên gửi phải thông báo bên nhận độ dài và độ lớn của thông điệp. Do vậy các ứng dụng bên nhận sẽ phải dành bộ đệm và thực hiện các thao tác hợp nhất thông điệp phức tạp.
Đối với giao thức STCP, thông điệp đƣợc phân chia ranh giới ngay từ đầu. Mỗi thông điệp đƣợc gửi nguyên vẹn trong một gói tin, do vậy các ứng dụng tầng trên có thể loại bỏ các chức năng tái hợp thông điệp phức tạp
Chiến lƣợc kiểm soát tắc nghẽn của SCTP tuy tƣơng tự nhƣ TCP với “bắt đầu chậm”, “tránh tắc nghẽn”, “phát lại nhanh”, cũng nhƣ sử dụng ba tham số rwnd, cwnd và ssthresh, nhƣng SCTP không sử dụng chiến lƣợc “phục hồi nhanh” nhƣ TCP. Ngoài ra SCTP bổ sung thêm tham số Pba (Partial_byte_acked) để tính tốn độ tăng của cửa sổ phát cwnd trong giai đoạn tránh tắc nghẽn. Nếu cwnd<=ssthresh, SCTP thực hiện “bắt đầu chậm”, cịn TCP có thể chọn ngẫu nhiên giữa “bắt đầu chậm” và “tránh tắc nghẽn” khi cwnd=ssthresh. Thuật toán “phát lại nhanh” của SCTP cũng có một điểm khác “phát lại nhanh” của TCP. Thuật tốn này đƣợc kích hoạt sau khi có bốn thơng báo mất thơng tin (bởi SACK), cịn TCP kích hoạt thuật tốn này khi có
ba biên nhận lặp (ACK). SCTP cịn dùng HTNA (Highest TSN Newly Ack)
Ngồi ra, cịn một số điểm vƣợt trội của SCTP so với TCP trong quá trình điều khiển và kiểm soát tắc nghẽn:
Trong giai đoạn “bắt đầu chậm”, cwnd của SCTP tăng nhanh hơn so với TCP, là 1MTU cho mỗi báo nhận. Trong giai đoạn “tránh tắc nghẽn”, cwnd tăng 1MTU cho mỗi 1 RTT. Trong SCTP, cwnd tăng theo số byte đƣợc biên nhận thành cơng, cịn trong TCP, cwnd tăng theo số biên nhận nhận đƣợc.
Truyền tải không tuần tự: SCTP cho phép truyền tải dữ liệu không tuần tự, nhờ vậy sẽ rất thuận lợi trong việc truyền tải khối lƣợng dữ liệu lớn nhƣ các phần của một trang WEB. TCP khơng có khả năng này.
Báo nhận SACK: các gói tin TCP đƣợc biên nhận dữ liệu bằng ACK, chỉ dùng SACK để kiểm soát vận truyển dữ liệu (truyền tải lại các gói tin bị mất), cịn gói tin SCTP đƣợc biên nhận bằng SACK, cũng nhƣ dùng SACK để kiểm soát vận truyển dữ liệu và tránh tắc nghẽn. Việc dùng SACK có thể phát hiện mất các gói tin nào. Ví dụ khi truyền các gói tin 1, 2, 3, 4, 5, nếu mất gói tin 4 thì SCTP nhận đƣợc SACK báo mất 4 và chỉ truyền lại gói 4. Khác với SCTP, TCP sẽ báo biên nhận lặp lại của 3, nó sẽ hiểu là đã mất dữ liệu bắt đầu từ gói 4 và truyền lại tồn bộ. TCP khơng hỗ trợ dùng SACK nhƣng có thể cấu hình để sử dụng SACK. Tuy nhiên, với khuôn dạng theo quy định, TCP chỉ có thể báo mất tối đa bốn gói tin, cịn SCTP có thể báo nhận với số lƣợng nhiều hơn. Do SACK báo nhận, SCTP có khả năng phát hiện và khắc phục các gói tin bị mất nhanh hơn. TCP dùng ACK báo nhận nhận đúng, do vậy chỉ khi xẩy ra lỗi timeout mới phát hiện ra gói tin bị mất.
Kết thúc kết nối: TCP cho phép trạng thái “nửa đóng” (half-closed state), nghĩa là trong hai đầu cuối tham gia truyền dữ liệu kiểu full-duplex, một bên vẫn ở trạng thái mở cịn bên kia lại ở trạng thái đóng. SCTP khơng cho phép trạng thái đó. Hai đầu cuối dữ liệu đều phải ở trạng thái đóng khi có lời gọi nguyên thuỷ kết thúc kết nối. Lý do là rất ít các ứng dụng yêu cầu trạng thái đó.
Protocol Feature SCTP TCP UDP Yêu cầu trạng thái tại đầu cuối (State required at
each endpoint)
Yes Yes No
Truyền tải tin cậy dữ liệu (Reliable data transfer)
Yes Yes No
Điều khiển lƣu lƣợng và tránh tắc nghẽn (Congest control and avoidance)
Yes Yes No
Bảo tồn ranh giới thông điệp (Message boundary conservation)
Yes No Yes
Phát hiện MTU và chia tách thông điệp (Path MTU discovery and message fragmentation)
Yes Yes No
Bao gói thơng điệp (Message bundling) Yes Yes No
Hỗ trợ đa địa chỉ (Multi-homed hosts support) Yes No No
Hỗ trợ đa dòng (Multi-stream support) Yes No No
Khả năng truyền tải không tuần tự (Unordered data delivery)
Yes No Yes
Khả năng chống lại tấn công từ chối dich vụ (Security cookie against SYN flood attack)
Yes No No
Tích hợp thông tin đồng bộ (Built-in heartbeat (reachability check)
Yes No No
Bảng 3.1 So sánh các chức năng của SCTP đối với TCP và UDP 3.5 SCTP- Giao thức vận chuyển dữ liệu của tƣơng lai
Từ khi đặc tả giao thức SCTP đƣợc chính thức chuẩn hố thơng qua RFC2960 đến thời điểm hiện nay, SCTP đã đi đƣợc một chặng đƣờng dài trong tiến trình phát triển. Ngồi các đặc điểm và chức năng ban đầu mô tả trong RFC2960, có thêm hai sự mở rộng để tăng cƣờng hơn nữa. Đó là:
Chức năng Add-IP cho phép thêm mới hay loại bỏ các địa chỉ IP trong một kết nối SCTP đang tồn tại. Điểm đầu cuối có thể yêu cầu một địa chỉ cục bộ cụ thể của nó trở thành địa chỉ chính của một đầu cuối đối tác.
Chức năng PR-SCTP cho phép tuỳ chọn vận chuyển từng phần của dữ liệu là tin cậy hay khơng tin cậy. Ví dụ, một ứng dụng có thể cần truyền tải tin cậy các thông điệp điều khiển nhƣng các thơng điệp dữ liệu thì việc vận truyển có thể khơng cần tin cậy, cho phép mất một phần dữ liệu (hay nếu một thông điệp mà quá lâu khơng nhận đƣợc đáp ứng thì có thể bỏ qua). Điểm đầu cuối do vậy có thể "bỏ qua" một vài thông điệp. Các thông điệp trong một dịng có thể tin cậy hồn tồn hay tin cậy từng phần dựa trên các tuỳ chọn ứng dụng gửi đi.
Hiện nay, SCTP đang đƣợc sử dụng trong hàng loạt các ứng dụng. SCTP đang đƣợc nghiên cứu và ứng dụng trong truyền tải thông tin nhƣ truyền tải tín hiệu trên nền IP (signaling transport over IP) nhƣ IUA/SUA/M3UA, AAA, cho xác thực và cấp phép (authentication and authorization), kiểm soát các cuộc gọi độc lập với vật mang tin (Bearer Independent Call Control), truyền tải SIP(Session Initiation Protocal)…Trong tƣơng lai, các ứng dụng mà SCTP đƣợc sử dụng sẽ ngày càng mở rộng và có thể SCTP sẽ dần thay thế TCP để trở thành một giao thức nền tảng của Internet nhƣ TCP đã từng trong hơn 30 năm qua.
CHƯƠNG 4: ĐÁNH GIÁ HIỆU SUẤT CỦA GIAO THỨC
4.1 Giới thiệu về đánh giá hiệu suất giao thức 4.1.1 Khái niệm 4.1.1 Khái niệm
Hiệu suất là một trong hai nhân tố chính xác định năng suất tổng cộng của một hệ thống. Đối với một hệ thống tính tốn, đánh giá hiệu suất (performance evaluation) là xác định về mặt định tính và định lƣợng chất lƣợng phục vụ của hệ thống tính tốn đó với một loại bài tốn nhất định. Đối với giao thức, đánh giá hiệu suất là xác định về mặt định tính và định lƣợng chất lƣợng truyền tải đối với một lƣu lƣợng số liệu nhất định. Chất lƣợng truyền tải số liệu của một giao thức đƣợc xác định bằng các đại lƣợng nhƣ: - Thơng lƣợng (throughput) là số lƣợng số liệu (tính bằng bit, byte hoặc gói số liệu) đƣợc truyền tải trong một đơn vị thời gian.
- Thời gian trễ (transfer delay) khi truyền tải số liệu trên một hệ thống mạng, đó là thời gian trễ truyền số liệu giữa các hệ thống cuối hoặc các thực thể cuối.
- Xác xuất lỗi truyền số liệu
- Thời gian xử lý, khắc phục lỗi…
4.1.2 Tầm quan trọng của đánh giá hiệu suất [2]
Cùng với sự ra đời của các giao thức truyền tải số liệu, vấn đề đánh giá và dự đốn hiệu suất ln thu hút sự quan tâm của các nhà nghiên cứu và thiết kế giao thức với mục đích chính là cải thiện đặc trƣng giá - hiệu suất giao thức (cost - performance). Quá trình đánh giá hiệu suất đƣợc đặt ra ngay từ giai đoạn đầu của thiết kế. Sau khi lựa chọn kiến trúc và bắt đầu thiết kế, triển khai, việc đánh giá hiệu suất sẽ trở lên cụ thể hơn. Các kỹ thuật đƣợc dùng để dự đoán và đánh giá hiệu suất trong giai đoạn thiết kế có thể là các tính tốn bằng tay, nhƣng cũng có khi là các mơ phỏng rất tinh vi. Việc so sánh hiệu suất dự đoán với hiệu suất thực tế đạt đƣợc thƣờng giúp cho các nhà nghiên
cứu thấy đƣợc các khiếm khuyết chính trong thiết kế hoặc các lỗi trong việc lập trình.
Đánh giá hiệu suất giao thức có ý nghĩa lý luận và thực tế quan trọng, xuyên suốt toàn bộ quá trình thiết kế, thực hiện và sử dụng giao thức. Mục tiêu cuối cùng của việc thiết kế, thực hiện và vận hành các giao thức trao đổi số liệu cần đạt đƣợc chính là đạt đƣợc tính hiệu quả và chất lƣợng cao trong hoạt động phục vụ của hệ thống đó. Ngày nay, đánh giá hiệu suất đƣợc coi là một phần không thể thiếu đƣợc của công việc thiết kế và triển khai giao thức. 4.1.3 Một số độ đo hiệu suất
Độ đo hiệu suất có thể phân thành hai loại: các độ đo hƣớng tới ngƣời sử dụng và các độ đo hƣớng tới hệ thống.
Trong các độ đo hƣớng tới ngƣời sử dụng, thời gian đáp ứng (response time) là khoảng thời gian từ khi có yêu cầu đến hệ thống cho đến khi nó đƣợc hệ thống thực hiện xong.
Các độ đo hƣớng tới hệ thống điển hình là thơng lƣợng (throughput) và thời gian trễ (delay time, delay)[2].
4.1.4 Các phƣơng pháp đánh giá hiệu suất
Các phƣơng pháp phân tích, đánh giá hiệu suất có thể phân loại nhƣ sau:
Hình 4.1 Các phƣơng pháp đánh giá hiệu suất
Phƣơng pháp đo thực tế thƣờng đƣợc áp dụng khi các các yếu tố đảm bảo về kỹ thuật cho phép và chi phí cho các thiết bị đo và thực hiện các phép đo là có thể chấp nhận đƣợc. Đối với các hệ thống đang hoạt động, việc phân tích và đánh giá hiệu suất hoạt động của các hệ thống này dựa trên các số liệu thu thập đƣợc bởi các hệ thống giám sát bằng phƣơng pháp ngẫu nhiên hoặc
Đánh giá hiệu suất
Đo thực tế Mơ hình hố
đƣợc kích hoạt bởi các sự kiện qui định trong và ngoài hệ thống tại các giao diện của hệ thống. Kết quả đo có thể đƣợc sử dụng làm các giá trị đầu vào cho các mơ hình giải tích hoặc mơ hình mơ phỏng máy tính hoặc đƣợc sử dụng để kiểm chứng tính đúng đắn của các mơ hình này[1].
Mơ hình hố là phƣơng pháp đƣợc sử dụng trong quá trình thiết kế hệ thống, nhất là đối với các hệ thống chƣa tồn tại. Mơ hình hố giải tích (analytical modeling) sử dụng các cơng cụ tốn học một cách xác định, hoặc ngẫu nhiên, hoặc dựa trên số liệu thu thập đƣợc khi vận hành hệ thống thực để mô phỏng và xác định các thông số hiệu suất của hệ thống. Theo phƣơng pháp này, ta xây dựng các phƣơng trình thể hiện mối quan hệ giữ các tiêu chuẩn hiệu suất cần quan tâm và các tham số của hệ thống có thể giải đƣợc bằng Giải tích [2].
Mơ hình hố mơ phỏng (simulative modeling) sử dụng các chƣơng trình máy tính để mơ phỏng kiến trúc và quá trình hoạt động của hệ thống, trên cơ sở đó xác định các thơng số hiệu suất của hệ thống đó [1]. Mơ hình mơ phỏng mơ tả hoạt động của hệ thống. Cấu trúc và độ phức tạp của bộ mô phỏng phụ thuộc vào phạm vi của thí nghiệm mơ phỏng. Nó thƣờng đƣợc xây dựng có cấu trúc, cho phép mơ-đun hố chƣơng trình mơ phỏng thành tập các chƣơng trình con, sao cho việc sửa đổi, bổ sung các chƣơng trình con đƣợc dễ dàng, đồng thời phải đƣợc xây dựng sao cho đạt đƣợc tốc độ cao nhằm làm giảm thời gian chạy mô phỏng càng nhiều càng tốt [2].
Phƣơng pháp lai là hình thức kết hợp của hai phƣơng pháp mơ hình hố giải tích và mơ hình hố mơ phỏng.
4.2 So sánh các phƣơng pháp đánh giá hiệu suất [2]
Phƣơng pháp sử dụng mơ hình giải tích là phƣơng pháp tốt nhất vì nó cho phép thay đổi các tham số của hệ thống và cấu hình trong một miền rộng với chi phí thấp mà vẫn có thể đạt đƣợc các kết quả mong muốn. Tuy nhiên, phƣơng pháp này thƣờng đƣợc sử dụng trong giai đoạn đầu của quá trình thiết kế. Nguyên nhân là các mơ hình giải tích do chúng ta xây dựng thƣờng là phức tạp, không thể giải đƣợc nếu không đƣợc đơn giản hoá nhờ
các giả thiết hay đƣợc phân rã thành các mơ hình nhiều cấp, nhƣng các mơ hình này thƣờng khác xa với thực tế. Các kết quả thu đƣợc cần phải đƣợc kiểm nghiệm bằng kết quả của các phƣơng pháp khác.
Phƣơng pháp mơ phỏng có thể đƣợc sử dụng ngay trong giai đoạn đầu của việc thiết kế cho đến giai đoạn triển khai thực hiện và tích hợp hệ thống. Tuy nhiên, phƣơng pháp này địi hỏi chi phí cao cho việc xây dựng bộ mô phỏng cũng nhƣ kiểm chứng tính đúng đắn của nó. Nhƣng sau khi xây dựng xong bộ mơ phỏng thì có thể tiến hành chạy chƣơng trình nhiều lần với độ chính xác theo yêu cầu và chi phí cho mỗi lần chạy là thấp. Các kết quả mô phỏng vẫn cần phải đƣợc kiểm chứng bằng các phƣơng pháp khác nhƣ giả tích hay đo thực tế.
Nếu hai phƣơng pháp trên có thể thực hiện ngay từ giai đoạn thiết kế thì phƣơng pháp đo thực tế chỉ có thể sử dụng đƣợc khi giao thức đã đƣợc cài đặt, triển khai vào hoạt động thực tế trên hệ thống thực. Phƣơng pháp này cũng địi hỏi chi phí cao cho các thiết bị đo và cho việc tiến hành đo. Việc đo đạc cần đƣợc thực hiện ở nhiều thời điểm, kéo dài và lặp lại trong một khoảng thời gian đủ dài. Tuy nhiên, phƣơng pháp này vẫn có thể khơng phát hiện ra