Thuật toán cân bằng tải và những áp dụng cho chống tấn công DDOS

kaitoukid

Wh------
18/07/2014
26
31 bài viết
Thuật toán cân bằng tải và những áp dụng cho chống tấn công DDOS
I. Các khái niệm tổng quan

1. Khái niệm về “cân
bằng tải”.

4.png

Cân bằng tải là một phương pháp phân phối khối lượng tải trên nhiều máy tính hoặc một cụm máy tính để có thể sử dụng tối ưu các nguồn lực, tối đa hóa thông lượng, giảm thời gian đáp ứng và tránh tình trạng quá tải trên máy chủ.
Lợi ích khi sử dụng phương pháp cân bằng tải:
  • Tăng khả năng đáp ứng, tránh tình trạng quá tải trên máy chủ (giảm thiểu DOS/DDOS). à đảm bảo tính linh hoạt và mở rộng cho hệ thống.
  • Tăng độ tin cậy và khả năng dự phòng cho hệ thống và tăng tính sẵn sàng cho hệ thống, đảm bảo người dùng không bị gián đoạn dịch vụ khi xảy ra sự cố tại một điểm cung cấp dịch vụ.
Tăng tính bảo mật cho hệ thống mà việc chuyển tiếp các yêu cầu bên trong hệ thống sẽ đảm bảo rằng người dùng không thể biết được chính xác các máy chủ bên trong cũng như phương pháp phân tải được sử dụng.

II. Các thuật toán được áp dụng.

1. Thuật toán Roud-Robin.


1.jpg


Đây gọi là thuật toán luân chuyển vòng, các máy chủ sẽ được xem ngang hàng và sắp xếp theo một vòng quay. Các truy vấn dịch vụ sẽ lần lượt được gửi tới các máy chủ theo thứ tự sắp xếp.

Ví dụ:
Cấu hình một cụm Cluster bao gồm 03 máy chủ: A, B, C.
  • Yêu cầu dịch vụ thứ nhất sẽ được gửi đến máy chủ A.
  • Yêu cầu dịch vụ thứ hai sẽ được gửi đến máy chủ B.
  • Yêu cầu dịch vụ thứ ba sẽ được gửi đến máy chủ C.
Tuy nhiên các yêu cầu trên sẽ tuân theo thuật toán Roud Robin. Để hiểu rõ hơn, ta xét trường hợp cụ thể sau:

Hệ thống có 5 server với mức định lượng là 100(ms), các thời gian đến và thời gian thực hiện như sau.

2.png

Xét thời gian đến của tất cả các server, ta thấy server P0 có thời gian đến là 0(ms) nhỏ nhất, nên P0 được chạy, và chạy với thời gian là 100(ms) bằng mức định lượng. khi đó thời gian thực hiện còn lại là 250-100=150(ms). Và thời gian đến tức thời của P0 là 0+100=100(ms).

Ta lại xét thời gian đến của tất cả các server, t(P0) = 100ms, t(P1) = 50ms, t(P2) =130ms. tại đây thời gian chờ của P1 = 50 (ms) là nhỏ nhất nên P1 được chạy với thời gian chạy là 100ms = mức định lượng. khi đó thời gian thực hiện còn lại của P1 là 170-100=70(ms), thời gian đến tức thời là 50+10=150(ms).

Tiếp tục như vậy, lần này P2 sẽ được chạy, nhưng do thời gian thực hiện của P2 chỉ là 75 ms<100ms nên nó chỉ được chạy trong 75ms và không được tính đến trong quá trình vòng chuyển server sau này (trước khi tất cả các sever đều thực hiện hết thời gian của mình).

cứ tiếp tục như trên, chúng ta sẽ hoàn thành một chu kỳ hoạt động gồm có 5 server trong hệ thống đúng theo thuật toán Round Robin. Sau đó quá trình lập lại tương tự.

2. Thuật toán Wieghted Round Robin.

Bản chất giống như thuật toán Wieghted Round Robin, tuy nhiên chúng ta có thể cấu hình cho một máy chủ nào đó được hoạt động thường xuyên hơn

3. Thuật toán Least Connection.

Đây là thuật toán dựa trên tính toán số lượng kết nối để thực hiện cân bằng tải cho máy chủ, nó sẽ tự động lựa chọn máy chủ với số lượng kết nối đang hoạt động là nhỏ nhất.

Ví dụ: trong hệ thống server, chúng ta có số lượng server hoạt động là 3 với các tiến trình có sẵn như sau:

3.jpg
  • server thứ 1: đang xử lý 3 tiến trình.
  • server thứ 2: đang xử lý 15 tiến trình.
  • server thứ 3: đang không xử lý tiến trình nào.
Khi đó, hệ thống tuân thủ thuật toánLeast Connection sẽ thực hiện như sau: 3 tiến trình tiếp theo sẽ được cung cấp cho server thứ 3 xử lý (độ ưu tiên cao nhất sẽ dành cho server chưa thực hiện tiến trình nào, số 3 ở đây bằng với MIN của số lượng tiến có trong các server đang chạy), sau đó tiến trình thứ 4 sẽ được chuyển tới server thứ 1, tiến trình tiếp đó quay về server thứ 3,v.v..v cho tới khi cả hai server 1 và 3 đạt đến 15 tiến trình thì server 2 mới được sử dụng tiếp.

4. Thuật toán Wieghted Least Connection.

Bản chất giống thuật toán Least connection, nhưng chúng ta có thể cấu hình ưu tiên cho một máy chủ trong cụm máy chủ hoạt động nhiều hơn.

5. Thuật toán Least Respone Time.

Đây là thuật toán sử dụng phương pháp thời gian đáp ứng ít nhất, lựa chọn dịch vụ trên máy chủ với thời gian đáp ứng là nhỏ nhất.
Ví dụ: Trên hệ thống chúng ta đang sử dụng 3 server chạy đồng thời, thời gian xử lý các tiến trình như sau:

4.jpg

  • server 1 : đang xử lý 3 tiến trình, chu kỳ xử lý trung bình / 1 tiến trình là 2 giây.
  • server 2 : đang xử lý 7 tiến trình , chu kỳ xử lý trung bình / 1 tiến trình là 1 giây.
  • server 3 : không xử lý tiến trình nào, chu kỳ xử lý trung bình / 1 tiến trình là 2 giây.
Khi đó hệ thống tuân thử theo thuật toán Least Respone Time sẽ xử lý như sau:

Server thứ 3 sẽ nhận được tiến trình tiếp theo vì nó có độ ưu tiên lớn nhất khi đang không xử lý tiến trình nào.

Tiếp tục server thứ 3 nhận thêm 2 tiến trình nữa để có thời gian xử lý bằng MIN của hệ thống.

Sau đó là sever thứ 1 sẽ nhận xử lý tiến trình tiếp theo à tiếp đó là server thứ 3 và server thứ 2.. v.v.v. Làm sao cho luôn đảm bảo server tiếp theo nhận tiến trình luôn là server đang có thời gian xử lý nhỏ nhất.

Ở bài viết tiếp theo, tôi sẽ giới thiệu về những công nghệ áp dụng những thuật toán cân bằng tải này
 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Like =D> .​ ​Tiếp tục phát huy sâu hơn tí nhé anh !
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Có mấy chỗ sai chính tả kìa bạn.

Lợi ích khi sử dụng phương pháp cân bằng tải:
  • Tăng khả năng đáp ứng, tránh tình trạng quá tải trên máy chủ (giảm thiểu DOS/DDOS). à đảm bảo tính linh hoạt và mở rộng cho hệ thống.
  • Tăng độ tin cậy và khả năng dự phòng cho hệ thống. àtăng tính sẵn sàng cho hệ thống, đảm bảo người dùng không bị gián đoạn dịch vụ khi xảy ra sự cố tại một điểm cung cấp dịch vụ.
Tăng tính bảo mật cho hệ thống. àviệc chuyển tiếp các yêu cầu bên trong hệ thống sẽ đảm bảo rằng người dùng không thể biết được chính xác các máy chủ bên trong cũng như phương pháp phân tải được sử dụng.
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Xin lỗi bạn, chắc do mình paste từ Word lên đây, một số cái bị lỗi chính tả mà mình không để ý.
Mình sẽ sửa lại
Cảm ơn bạn nhé :)
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Comment
Thẻ
cân bằng tải ddos ddos attack least connection least respone time roud-robin wieghted least connection wieghted round robin
Bên trên