TÌM HIỂU THUẬT TOÁN SFB Stochastic Fair Blue

16 770 2
TÌM HIỂU THUẬT TOÁN SFB Stochastic Fair Blue

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Một yếu tố quan trọng mạng Internet là tránh tình trạng mất gói tin ở mức độ cao. Khi một gói tin bị rớt trước khi nó đến được nơi nhận thì tài nguyên nó sử dụng trong quá trình lưu chuyển cũng bị mất theo. Trong trường hợp xấu, tình huống mất gói tin có thể dẫn đến sự sập mạng. Việc cải tiến điều khiển tắc nghẽn và quản lý hàng đợi trong mạng Internet là một trong những lĩnh vực được tập trung nghiên cứu trong những năm gần đây. Đã có một vài giải pháp được đề xuất và tiến hành áp dụng trên thực tế, tuy nhiên sự mất gói tin ở mức độ cao vẫn diễn ra. Mức độ mất gói tin đặc biệt cao trong thời kỳ có tắc nghẽn lớn, khi mà một số lượng lớn các kết nối cạnh tranh nhau trong một khoảng băng thông hẹp.

TIỂU LUẬN MÔN HỌC MẠNG VÀ KỸ THUẬT TRUYỀN DỮ LIỆU ĐỀ TÀI TÌM HIỂU THUẬT TOÁN SFB (Stochastic Fair Blue) I. PHẦN MỞ ĐẦU Một yếu tố quan trọng mạng Internet là tránh tình trạng mất gói tin ở mức độ cao. Khi một gói tin bị rớt trước khi nó đến được nơi nhận thì tài nguyên nó sử dụng trong quá trình lưu chuyển cũng bị mất theo. Trong trường hợp xấu, tình huống mất gói tin có thể dẫn đến sự sập mạng. Việc cải tiến điều khiển tắc nghẽn và quản lý hàng đợi trong mạng Internet là một trong những lĩnh vực được tập trung nghiên cứu trong những năm gần đây. Đã có một vài giải pháp được đề xuất và tiến hành áp dụng trên thực tế, tuy nhiên sự mất gói tin ở mức độ cao vẫn diễn ra. Mức độ mất gói tin đặc biệt cao trong thời kỳ có tắc nghẽn lớn, khi mà một số lượng lớn các kết nối cạnh tranh nhau trong một khoảng băng thông hẹp. II. NỘI DUNG 1. THUẬT TOÁN SFB (Stochastic Fair Blue) a) ý tưởng của thuật toán SFB Cho đến gần đây, Internet chủ yếu dựa vào tính chất tích hợp tự nhiên của điều khiển tắc nghẽn TCP để hạn chế mất gói tin và chia sẻ cân bằng các tài nguyên mạng. Tuy nhiên, ngày càng nhiều các ứng dụng được triển khai mà không sử dụng điều khiển tắc nghẽn của TCP và không hồi đáp lại các tín hiệu tắc nghẽn của mạng. Các ứng dụng như vậy tiềm ẩn những nguy hại vì chúng làm tăng tỉ lệ mất gói tin trong mạng và có thể là nguyên nhân gây ra sự tắc nghẽn sụp đổ [17,23]. Để giải quyết các luồng không phản hồi, đã có nhiều việc làm để cung cấp các router với các công cụ để chống lại chúng [6,18]. Ý tưởng của các phương pháp tiếp cận là để phát hiện các luồng không hồi đáp và hạn chế tỉ lệ của chúng, làm cho nó không ảnh hưởng đến hiệu suất của các luồng có hồi đáp. Phần này mô tả và đánh giá Stochastic Fair Bue (SFB), một kỹ thuật mới bảo vệ các luồng TCP chống lại các luồng không hồi đáp, sử dụng thuật toán BLUE. SFB có khả năng mở rộng cao và thực thi công bằng sử dụng một khoảng rất nhỏ của trạng thái và một không gian đệm nhỏ. 2. Thuật toán: Hình 1. Thuật toán SFB Hình 1 cho thấy thuật toán SFB cơ bản. SFB là một thuật toán hàng đợi FIFO xác định và hạn chế các luồng không hồi đáp dựa vào các máy đếm tương tự như với BLUE. SFB duy trì N x L bin đếm. Các bin được tổ chức với L mức, mỗi mức có N bin. Ngoài ra, SFB duy trì L hàm băm độc lập, mỗi hàm gắn với một mức của các bin đếm. Mỗi hàm băm ánh xạ một luồng vào một trong N bin. Các bin được sử dụng để theo dõi và thống kê sự chiếm giữ hàng đợi của các gói tin thuộc về các bin cụ thể. Điều này khác với Stochastic Fair Queueing [20] (SFQ) trong đó hàm băm ánh xạ các luồng vào các hàng đợi khác nhau. Mỗi bin trong SFB giữ một xác suất đánh giấu hoặc rơi gói tin p m tương tự như BLUE, được cập nhật dựa trên thời gian chiếm giữ bin. Khi một gói tin đến hàng đợi, nó được băm vào một trong N bin trong mỗi mức L. Nếu số lượng các gói được ánh xạ vào một bin vượt quá một ngưỡng nhất định (ví dụ, kích thước của bin) thì p m của bin đó được tăng lên. Nếu số lượng gói tin giảm về 0 thì p m được giảm xuống. Hướng quan sát và điều chỉnh của SFB là một luồng không hồi đáp nhanh chóng điều khiển p m thành 1 trong tất cả L bin mà nó được băm vào. Các luồng có hồi đáp có thể chia sẻ một hoặc hai bin với các luồng không hồi đáp, tuy nhiên, trừ khi số lượng các luồng không hồi đáp là quá lớn so với số lượng các bin, một luồng có hồi đáp sẽ được băm vào ít nhất một bin mà không có lẫn với các luồng không phản hồi và như thế có một giá trị p m bình thường. Quyết định đánh dấu một gói tin dựa trên cơ sở p min , giá trị xác suất nhỏ nhất p m của các bin mà luồng đã được ánh xạ vào. Nếu p min là 1, gói tin được xác định thuộc về một luồng không có hồi đáp và giới hạn tỉ lệ. Chú ý rằng: cách tiếp cận này giống như áp dụng bộ lọc Bloom trên các luồng đến. Khi một luồng không hồi đáp xác định được bằng các kỹ thuật này, một số trong các tùy chọn có hiệu lực để hạn chế tỉ lệ truyền của luồng. Ở đây, những luồng được xác định như những luồng không hồi đáp được giới hạn một cách đơn giản để tiết kiệm băng thông. Chiến lược này được thực hiện bằng cách hạn chế tỉ lệ các gói tin hàng đợi cho các luồng với giá trị p min là 1. Hình 2 là một ví dụ cho thấy SFB làm việc như thế nào. Như hình đã chỉ ra, một luồng không hồi đáp dẫn đến xác suất đánh dấu của tất cả các bin mà nó ánh xạ vào. Trong khi các luồng TCP có thể ánh xạ vào cùng bin với các luồng không hồi đáp tại một mức cụ thể, nó cũng có thể ánh xạ vào các bin tại các mức khác. Do đó, xác suất đánh dấu thấp nhất của các luồng TCP là thấp hơn 1 và vì thế nó không được xác định như các luồng không hồi đáp. Mặt khác, khi xác suất đánh dấu các luồng không hồi đáp là 1, nó sẻ bị giới hạn tỉ lệ. Hình 2. Ví dụ SFB Chú ý rằng, xác suất đánh dấu như BLUE có thể được sử dụng trong SFB để chống lại các luồng không hồi đáp, cũng có thể áp dụng tham số max p của RED để làm việc này. Trong trường hợp này, giá trị max p của bin được giữ và cập nhập theo hành vi của các luồng ánh xạ vào bin. Tương tự RED, tuy nhiên có hai vấn đề làm cho phương pháp này không hiệu quả. Thứ nhất là: thực tế đòi hỏi một không gian bộ nhớ đệm lớn để RED thực hiện tốt. Thứ hai là: hiệu suất của RED bị giới hạn khi mức độ tắc nghẽn vừa phải đòi hỏi giá trị max p thiết đặt là 1. Như vậy, sử dụng RED theo cách này có một khoảng rất lớn thời gian khó phân biệt được giữa một luồng không hồi đáp và một mức độ tắc nghẽn vừa phải. Để so sánh các phương pháp, Stochastic Fair RED (SFRED) cũng được áp dụng kỹ thuật tương tự SFB cho RED. 3. Đánh giá thuật toán SFB: a) Đánh giá mô hình mạng mô phỏng với NS_2 của thuật toán Sử dụng NS, thuật toán SFB đã được mô phỏng với topo mạng như hình 3 với độ trể tất cả các liên kết được thiết đặt là 10ms. Hàng đợi SFB được cấu hình 200KB của không gian đệm và duy trì hai hàm băm mỗi hàm ánh xạ đến 23 bin. Kích thước của mỗi bin được đặt là 13. Kết quả mô phỏng được so sánh như sau: Hình 3. Mô hình mạng mô phỏng Hình 4. Tỉ lệ mất gói Mbs (1 non-responsive) Hình 5. Băng thông của các luồng TCP (45Mbs non-responsive flow) b) Hạn chế của SFB: Trong khi rõ ràng rằng thuật toán SFB cơ bản có thể bảo vệ các luồng TCP thân thiện từ các luồng không hồi đáp mà không cần duy trì trạng thái luồng, điều quan trọng là phải hiểu cách hoạt động và những giới hạn của nó. SFB sử dụng hiệu quả L mức với N bin trong mỗi mức để tạo ra N L thùng ảo. Điều này cho phép SFB xác định một cách hiệu quả một luồng không hồi đáp trong một tổng thể N L luồng sử dụng O(L * N) khoảng của trạng thái. Ví dụ, trong phần trước, sử dụng 2 mức với 23 bin mỗi mức, tạo ra 529 thùng. Trong khi đó chỉ có 400 luồng thử nghiệm, SFB có thể xác định chính xác và hạn chế một luồng không hồi đáp mà không ảnh hưởng đến hiệu năng của bất kì một luồng TCP nào. Khi số lượng các luồng không hồi đáp tăng, một số bin trở thành "rác" (polluted) hoặc tăng số lượng các giá trị p m bằng 1. Vì thế, xác suất mà một luồng có hồi đáp được băm vào các bin "rác", và do đó trở thành lớp lỗi. Rõ ràng những lỗi này làm hạn chế khả năng bảo vệ các luồng có hành vi tốt. Sử dụng những phân tích xác suất đơn giản, Công thức (1) cho một giới hạn đóng của xác suất mà một luồng TCP có hành vi tốt gặp phải lớp lỗi như là luồng không hồi đáp. Trong đó: L là số mức, B là số bin trong mỗi mức, M là số lượng các luồng không hồi đáp/các luồng độc. Khi L bằng 1, hành vi của SFB giống như SFQ. Điểm khác biệt chính là khi SFB sử dụng một mức thì nó vẫn là một queue FIFO với một bộ đệm được chia sẻ. Trong khi đó, SFQ có một số hàng đợi và không gian bộ nhớ đệm được chia cho chúng. Sử dụng kết quả từ công thức (1), có thể tối ưu hóa hiệu suất của SFB cho ra một thông tin dự báo về môi trường hoạt động của nó. Giả sử các luồng không hồi đáp hoạt động đồng thời có thể ước tính (M) và một khoảng không gian nhớ sẵn sàng cho SFB sử dụng được ấn định (C). Sau đó, bằng cách cực tiểu hóa hàm xác suất trong công thức (1) với việc bổ sung điều kiện biên CNL =× , SFB có thể được điều chỉnh cho hiệu suất tối ưu. Để minh họa điều này, xác suất lỗi lớp được đánh giá qua một số thiết đặt. Hình 6a cho thấy xác suất lỗi lớp một luồng khi tổng số bin được đặt là 90. Hình 6b chỉ hàm xác suất tương tự với số lượng bin là 900. Trong các hình này, số lượng các mức sử dụng trong SFB với số lượng các luồng không Hình 6. Xác suất của misclassification hồi đáp là khác nhau. Các hình cũng chỉ ra rằng, khi số lượng các luồng không hồi đáp nhỏ hơn so với số lượng bin, việc sử dụng nhiều mức giữ cho xác suất của lỗi lớp rất thấp. Tuy nhiên, khi số lượng các luồng không hồi đáp tăng lên quá một nửa số bin hiện tại, mức đơn lẻ của hàng đợi SFB có thể có xác suất lỗi lớp nhỏ nhất. Điều này là do thực tế khi các bin được phân tán qua nhiều mức, mỗi luồng không hồi đáp làm "rác" một số lượng lớn các bin. Ví dụ, sử dụng hàng đợi SFB một mức với 90 bin, một luồng không hồi đáp làm rác chỉ một bin. Sử dụng hàng đợi SFB hai mức với mỗi mức 45 bin, số bin có hiệu lực là 45x45=2025. Tuy nhiên, một luồng không hồi đáp đơn làm rác hai bin (mỗi mức một bin). Do đó, lợi thế của việc sử dụng hàng đợi SFB hai mức bị mất khi các luồng không hồi đáp được tăng thêm. c) SFB với hàm băm thay đổi: Trong phần này, hai vấn đề cơ bản với thuật toán SFB được thảo luận. Thứ nhất, như mô tả ở trên, là để giảm thiểu những ảnh hưởng của sự lỗi lớp. Vấn đề thứ hai là có thể phát hiện các luồng không hồi đáp trở thành có hồi đáp và phân lớp lại chúng khi chúng thực hiện. Ý tưởng đằng sau SFB với các hàm băm di chuyển là định kỳ hoặc ngẫu nhiên đặt lại các bin và thay đổi các hàm băm. Một luồng không hồi đáp sẽ tiếp tục được xác định và hạn chế tỉ lệ bất kể sử dụng hàm băm nào. Tuy nhiên, bằng cách thay đổi hàm băm, các luồng TCP hồi đáp băm vào bin rác sẽ có khả năng được băm lại vào ít nhất một bin không rác. Chú ý rằng, kỹ thuật này tạo ra các bin ảo hiệu quả qua thời gian chỉ như nhiều mức của bin trong thuật toán ban đầu tạo các bin ảo. Trong nhiều cách, hiệu quả của việc sử dụng hàm băm là tương tự chuyển kênh trong hệ thống CDMA. Thực chất là nó làm giảm kết nối hồi đáp liên tục bị ánh xạ vào bin rác. Hình 7. Băng thông của các luồng TCP sử dụng SFB Hình 8. Băng thông của các luồng TCP sử dụng thuật toán SFB Để chỉ ra hiệu quả của phương pháp này, ý tưởng của các hàm băm thay đổi đã được áp dụng để thử nghiệm trong hình 7b. Trong thử nghiệm này, 8 luồng không hồi đáp với 400 luồng hồi đáp chia sẻ một kiên kết nút cổ chai. Để chống lại sự lỗi lớp, hàm băm được liên tục thay đổi sau mỗi 2 giây. Hình 8a chỉ ra lô băng thông của thử nghiệm. Như hình cho thấy, SFB thực thi tốt công bằng. Trong khi các luồng thỉnh thoảng lỗi và gây ra một sự suy giảm hiệu năng, không có các luồng TCP thân thiện bị tắt do sự lỗi lớp. Điều này trái ngược với hình 7, nơi một số luồng TCP quan trọng nhận được rất ít băng thông. Trong khi thay đổi các hàm băm cải thiện sự công bằng qua các luồng trong thử nghiệm, Chú ý rằng, mỗi lần hàm băm được thay đổi và các bin được đặt lại, các luồng không hồi đáp tạm thời được đặt tại "parole". Chỉ sau khi các luồng gây mất gói lâu, chúng được xác định và hạn chế lại một lần nữa. Thật không may, điều này có tiềm ẩn cho phép các luồng như thế giành nhiều băng thông hơn băng thông công bằng được giành cho nó. Ví dụ, như hình 8a cho thấy, các luồng không hồi đáp được cho phép tiêu tốn 3.85Mbs của liên kết nút cổ chai. Một cách để giải quyết vấn đề trên là sử dụng hai tập các bin. Một tập được sử dụng để quản lí hàng đợi, tập thứ hai sử dụng lần thiết đặt kế tiếp của các hàm băm có thể được khởi động. Trong trường hợp này, mỗi lần một luồng được phân lớp như là luồng không hồi đáp, nó được băm bằng cách sử dụng tập thứ hai của các hàm băm và xác suất đánh dấu của các bin tương ứng trong thiết đặt khởi động được cập nhật. Khi các hàm băm chuyển đổi, các bin đã được khởi động được sử dụng sau đó. Do đó, các luồng không hồi đáp bị giới hạn ngay từ khi bắt đầu. Hình 8b cho thấy hiệu năng của phương pháp này. Như hình chỉ ra, hàm băm đôi kiểm soát hiệu quả băng thông của các luồng không hồi đáp và đáp ứng cho các luồng TCP một mức bảo vệ cao. Một trong những lợi thế của hàm băm động là nó có thể nhanh chóng phản ứng lại với các luồng không hồi đáp. Trong trường hợp này, việc thay đổi các bin băm nơi luồng vừa được tạo ra trên hy vọng cho hành vi tốt. Chỉ sau khi luồng truyền lại với tỉ lệ cao, là nó lại bị giới hạn. Để chỉ ra điều này, một thử nghiệm bổ sung được chạy bằng cách sử dụng cài đặt tương tự thử nghiệm trên. Trong thử nghiệm này, một luồng không hồi đáp với tốc độ truyền 5Mbs và một luồng biến đổi chạy giữa hai điểm cuối của mạng, luồng biến đổi truyền ở 5Mbs từ t=10s đến t=30s và từ t=50s đến t=70s. Trong tất cả các thời gian, luồng truyền ở 0.10Mbs, xấp xĩ một chia sẻ cân bằng của một kiên kết thắt nút cổ chai. Bảng sau cho thấy tỉ lệ mất gói tin trong thử nghiệm. PHẦN III: KẾT LUẬN BLUE làm việc tốt hơn RED trong trường hợp kích cỡ của bộ đệm thấp. Mặc dù thuật toán BLUE là đơn giản để thực hiện, nó còn phải được tham số hóa một cách đúng đắn và các tham số cần phải được thay đổi liên tục để làm cho hàng đợi có thể thích nghi với việc thay đổi lưu lượng thường xuyên. BLUE sẽ không hiệu quả trong trường hợp không có dòng thông tin không phản hồi. SFB hoạt động tốt hơn RED và BLUE, đặc biệt là khi trong mạng có nhiều luồng không hồi đáp. Giúp cải thiện hiệu năng thực hiện của các luồng TCP. MỘT SỐ MÔ PHỎNG THÊM 1. Mạng mô phỏng gồm hai router 12 và 13, liên kết chiều từ 12 sang 13 sử dụng SFB, từ 13 sang 12 là Droptail. Mỗi router nối với sáu nút. (5TCP và 1 non- TCP).Các thông tin chung của kết quả mô phỏng: [...]... bins[i][j][newsfq_].pmark = 0.2; } } void FairBlue::dq_update_bins(hdr_ip* pkt) { double now; int i,j,k; for (i = 0; i < SFQ_LEVELS; i++) { j = sfbhash(pkt,i,currfudge_); k = sfbhash(pkt,i,currfudge_ + 1); bins[i][j][cursfq_].pkts ; if (bins[i][j][cursfq_].pkts saddr()),int(pkt->dport()),j,int(pkt->daddr()), SFQ_BINS); break; } /*If more levels are added to the bloom filter, the functions*/ /*go here - Sunil.*/ return(i); } B Các hàm xử lí bin trong lớp fairblue void FairBlue::reset_bins() { clearpkts_ = q_->length(); newsfq_ = cursfq_; cursfq_ = 1 - cursfq_; for (int i = 0; i < SFQ_LEVELS; i++) for (int j = 0; j < SFQ_BINS; j++) { bins[i][j][cursfq_].pkts = 0;... and S Floyd http://www-nrg.ee.lbl.gov/ns/ ns-LBNL Network Simulator, 1996 [20] P McKenney Stochastic Fairness Queueing In Proc IEEE INFOCOM, March 1990 [21] R Morris TCP Behavior with Many Flows In Proc IEEE International Conference on NetworkProtocols, October 1997 PHỤ LỤC A Khai báo hàm băm trong thư viện fairblue.cc int hashit(unsigned int a, unsigned int b, unsigned int c, unsigned int d, int modulus)... Scheduler::instance().clock(); bins[i][j][cursfq_].pkts = 0; decrement_bin(decrement_,i,j,k); } } } void FairBlue::eq_update_bins() { for (int i = 0; i < SFQ_LEVELS; i++) bins[i][p_bins[i]][cursfq_].pkts++; } void FairBlue::increment_bin(double increment, int i) { double now = Scheduler::instance().clock(); switch (algorithm_) { } case 0: default: if (now - bins[i][p_bins[i]][cursfq_].freezetime < holdtime_) break;... = now; bins[i][p_bins[i]][cursfq_].pmark += increment; if (bins[i][p_bins[i]][cursfq_].pmark > 1.00) bins[i][p_bins[i]][cursfq_].pmark = 1.00; bins[i][p_wbins[i]][newsfq_].pmark += increment; } void FairBlue::increment_bins(double increment) { double now = Scheduler::instance().clock(); for (int i = 0; i < SFQ_LEVELS; i++) { switch (algorithm_) { case 0: default: bins[i][p_bins[i]][cursfq_].freezetime... now; bins[i][p_bins[i]][cursfq_].pmark += increment; if (bins[i][p_bins[i]][cursfq_].pmark > 1.00) bins[i][p_bins[i]][cursfq_].pmark = 1.00; bins[i][p_wbins[i]][newsfq_].pmark += increment; } } } void FairBlue::decrement_bin(double decrement, int i, int j, int k) { double now = Scheduler::instance().clock(); switch (algorithm_) { case 0: default: if (now - bins[i][j][cursfq_].freezetime < holdtime_) break;... trong thư viện fairblue.cc int hashit(unsigned int a, unsigned int b, unsigned int c, unsigned int d, int modulus) { int h; h = ((a saddr()), . phương pháp, Stochastic Fair RED (SFRED) cũng được áp dụng kỹ thuật tương tự SFB cho RED. 3. Đánh giá thuật toán SFB: a) Đánh giá mô hình mạng mô phỏng với NS_2 của thuật toán Sử dụng NS, thuật toán SFB. nhỏ của trạng thái và một không gian đệm nhỏ. 2. Thuật toán: Hình 1. Thuật toán SFB Hình 1 cho thấy thuật toán SFB cơ bản. SFB là một thuật toán hàng đợi FIFO xác định và hạn chế các luồng không. TIỂU LUẬN MÔN HỌC MẠNG VÀ KỸ THUẬT TRUYỀN DỮ LIỆU ĐỀ TÀI TÌM HIỂU THUẬT TOÁN SFB (Stochastic Fair Blue) I. PHẦN MỞ ĐẦU Một yếu tố quan trọng mạng Internet là

Ngày đăng: 23/10/2014, 09:09

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan