Pdn tech-classifier-ip tables-tng-ver2.1.0

36
c Network Packet Classification وده: محد) سته بندی مربوط به د عامفاهیم مستند م در اینClassification ارسی قررد برای شبکه مور ه بسته( میگیرد. تاريخچه: ردیفویسنده ن تاریخه ویرایش شماروضیحات ت۱ ۲ سعه فنی و تویق و تحق مهندسی۱۳۸۹ ۲.۰.۰ ۳ سعه فنی و تویق و تحق مهندسی۱۳۹۳ ۲.۱.۰ وین تعلق دارد. پویش داده نندسی شبکه شرکت مه مستند به این معنویق مادی و کلیه حقو

Transcript of Pdn tech-classifier-ip tables-tng-ver2.1.0

Page 1: Pdn tech-classifier-ip tables-tng-ver2.1.0

c

Network Packet Classification

محدوده: ) بسته های شبکه مورد بررسی قرارClassificationدر این مستند مفاهیم عام مربوط به دسته بندی (

میگیرد.:تاريخچه

توضیحاتشماره ویرایشتاریخنویسندهردیف

۱

تحقیق و توسعه فنی و۲۱۳۸۹۲.۰.۰مهندسی

تحقیق و توسعه فنی و۳۱۳۹۳۲.۱.۰مهندسی

کلیه حقوق مادی و معنوی این مستند به شرکت مهندسی شبکه پویش داده نوین تعلق دارد.

Page 2: Pdn tech-classifier-ip tables-tng-ver2.1.0

فهرست مندرجات۴.......................................................................................................................................................................................................- چکیده

۴..............................................................................................................................................................................................- کلید واژه ها۱ -Classification۵................................................................................................................................... یا دسته بندي بسته های شبکه

۶....................................................................................................................................................- دلیل استفاده از فرآیند دسته بندي بسته ها۱.۱۷................................................................................................................................- سرویسهاي قابل ارائه توسط فرآیند دسته بندي بسته ها۱.۲۸....................................................................................................................................................................- تشریح مسئلة دسته بندي بسته ها۱.۳

۹.................................................................................................................................................................................................................- تعبیر هندسي۱.۳.۱۱۲................................................................................................................................................................- کارآیي الگوریتم هاي دسته بندي۱.۴

۱۴......................................................................................................................................................................................................- پارامترهاي کارایي۱.۴.۱۱۵................................................................................................................................................................................- الگوریتمهاي دسته بندي۱.۵

۱۵.......................................................................................................................................................................................- الگوریتمهاي جستجوي پایه۱.۵.۱

1.5.1.1trie۱۶...........................................................................................................................................................هاي سلسله مراتبي

1.5.1.2trie۱۷..................................................................................................................................................ها با حرس@ مجموعه اي۱۷...................................................................................................................................................................................................- الگوریتمهاي هندسي۱.۵.۲

۱۸........................................................................................................................................................................هاtrieمشبکي از۱.۵.۲.۱۱۹...............................................................................................................................................................................ساخت نشانه۱.۵.۲.۲۲۰................................................................................................................................درخت چهارتایي متناظر با فضاي مسئله۱.۵.۲.۳

۲۰............................................................................................................................................................................................- الگوریتم هاي مکاشفه اي۱.۵.۳

RFC)...................................................................................................................................۲۱دسته بندي بازگشتي جریانها (۱.۵.۳.۱

HiCuts)..........................................................................................................................۲۱برشهاي سلسله مراتبي هوشمند (۱.۵.۳.۲۲۱.......................................................................................................................................................جستجو در فضاي چندتایي۱.۵.۳.۳

۲۲...............................................................................................................................................................................- الگوریتمهاي مختص سخت افزار۱.۵.۴

۱.۵.۴.۱ Ternary CAM۲۲...............................................................................................................................................................ها۲۳.....................................................................................................................................................................اشتراک بیت نقشها۱.۵.۴.۲

ABV....................................................................................................................................................................................۲۴- الگوریتم ۲BV.................................................................................................................................................................................................۲۴- الگوریتم ۲.۱۲۵.....................................................................................................................................................................................................- ایدة اجماع۲.۲

۲۶......................................................................................................................................................................................................- تطابقهاي نادرست۲.۲.۱ABV................................................................................................................................................................................۲۷- توصیف الگوریتم ۲.۳

HyperCuts.........................................................................................................................................................................۲۷- الگوریتم ۳

۲

Page 3: Pdn tech-classifier-ip tables-tng-ver2.1.0

۲۸.................................................................................................................................................- الگوریتمهاي مبتني بر درخت تصمیم گیري۳.۱HiCuts.........................................................................................................................................................................................۲۹- الگوریتم ۳.۲HyperCuts..............................................................................................................................................................۳۰ و HiCuts- تقابل بین ۳.۳HyperCuts....................................................................................................................................................................۳۲- توصیف الگوریتم ۳.۴

۳۲..........................................................................................................................................................- پیش فرضهاي حاکم بر درخت تصمیم گیري۳.۴.۱HyperCuts....................................................................................................................................................................................۳۳- ساخت درخت ۳.۴.۲۳۵.............................................................................................................................................................................................................- بهبود الگوریتم۳.۴.۳

فهرست تصاوير

فهرست جداول

فهرست ضمائم

۳

Page 4: Pdn tech-classifier-ip tables-tng-ver2.1.0

چکیده Packet (۱فرآیند جداسازي بسته هاي شبکه در قالب جریانهاي مشPPخص، بPPا نPPام دسPPته بندي بسPPته ها

Classificationشناخته مي شود و هدف از آن ایجاد امکان انجام پردازشهاي ویژه هر جریان، بر روي( ، که شروطي را بر سرآیند بسته شPPبکه اعمPPال۳ توسط یک جداساز۲جریان مربوطه مي باشد. هر جریان

مي کند، مشخص مي شود. مورد بررسی قرار میگیرد.Classification شیوه هایدر این مقاله انواع

کلید واژه هاPacket, Classification

1 Packet Classification 2 Flow

" استفاده شده است.Ruleدر اين مقاله از کلمات "جداساز" و "قانون"، به فراخور حال، برای بيان مفهوم کلمة " 3۴

Page 5: Pdn tech-classifier-ip tables-tng-ver2.1.0

۱Classificationيا دسته بندي بسته های شبکه

شناخته مي شود و۴فرآیند جداسازي بسته هاي شبکه در قالب جریانهاي مشخص، با نام دسته بندي بسته ها توس__ط ی__ک۵هدف از آن ایجاد امکان انجام پردازشهاي ویژة هر جریان، بر روي جریان مربوطه مي باشد. هر جریان

، که شروطي را بر سرآیند بستة شبکه اعمال مي کند، مشخص مي شود. رایج ترین گونة ای__ن فرآین__د، عم__ل۶جداساز مسیریابي در مسیریابهاي شبکه مي باشد. چنانکه مسیریاب با دریافت یک بستة شبکه، بر اساس مقدار آدرس مقصد آن گام بعدي بسته را مشخص و بسته را، بعد از مشخص شدن مسیر، در آن هدایت مي کند. انجام این عمل، که با

شناخته مي شود، مستلزم وجود جدولي از زوجهاي (آدرس مقصد ، گام بعدي) مي باشد تا بدین نحوIP-LookUPنام امکان هدایت بسته ها، بر اساس آدرس مقصدشان، فراهم شود. در این حالت فرآیند دسته بندي بسته ها، ب__ر اس__اس آدرس مقصد بسته هاي شبکه صورت پذیرفته و پردازش مربوط به جریانهاي ایج__اد ش__ده از بس__ته ها نی__ز، ه__دایت

بسته ها در مسیر گام بعدي آنان مي باشد. - جستجودر می__ان جداس__ازهاي موج__ود در۲ و ۷- انباره اي از جداسازها۱دو جزء اصلي یک فرآیند دسته بندي

انباره مي باشند. هدف از انجام عمل جستجو که با دریافت هر بسته انجام مي شود، یافتن مناسبترین جداس__از@ مرب__وط به بستة دریافتي مي باشد. هر جداساز بر اساس پارامترهایي که هر یک متناظر با جزئي (فیل__دي) از س__رآیند بس__تة شبکه مي باشند، شروط خویش را براي پذیرش بستة شبکه اعلم مي کند و جستجو نیز بر اساس تطابق این پارامترها

پارامتري که به عن__وان ش__رط IP-LookUPبا مقادیر متناظر آنها در سرآیند بستة شبکه، انجام مي شود. در فرآیند پذیرش بسته عنوان مي شود، پیشوند آدرس مقصد مي باشد. به عبارتي بسته اي توسط این جداس__از پ__ذیرفته خواه__د

شد که آدرس مقصد آن داراي پیشوند ذکر شده باشد. هر جداساز در کنار شروط پذیرش بسته هاي شبکه، پردازشي، که مي بایست بر روي بسته هاي تطابق یافته اعمال

هدایت در مسیر گام بعدي مي باشد.IP-LookUPشود، را مشخص مي کند. این پردازش در فرآیند 4 Packet Classification 5 Flow

" استفاده شده است.Ruleدر اين مقاله از کلمات "جداساز" و "قانون"، به فراخور حال، برای بيان مفهوم کلمة " 67 Classifier

۵

Page 6: Pdn tech-classifier-ip tables-tng-ver2.1.0

چگونگي انجام عمل جستجو در فرآیند دسته بندي بسته ها، جزو@ بحث برانگیزترین مسائل مط__رح در ای__ن حیط__ه مي باشد. اهمیت مسئله از اهمیت@ نقش و جایگاه مسیریابها، به عنوان بارزترین@ اس__تفاده کنندگان@ فرآین__د دس__ته بندي بسته ها، ناشي مي شود. چرا که آنها مي بایست بسته ها را با سرعتي در حد سرعت ابزار شبکه، بدون ت__أخیر، ه__دایت

کنند. از طرف دیگر تعداد پارامترهاي مربوط به شروط جداسازها، بر پیچیدگي مسئلة جستجو مي افزاید. چنانکه فرآیند

IP-LookUPکه تنها بر اساس آدرس مقصد انجام مي شود جزو@ ساده ترین@ دسته بندي ها به حساب مي آید و ام__روزه به عنوان یک مسئلة حل شده بدان نگاه مي شود، چرا که نیاز امروز، پارامترهاي بیشتري را براي انج__ام فرآین__دهاي

دسته بندي مي طلبد. بیان جداسازها مي تواند با اشتراک محدوده اي همراه باشد، به عبارتي امکان پذیرش یک یا چند بسته توسط چند جداساز مختلف، در آن@@ واحد، وجود داشته باشد. در این مورد الگوریتم جستجو، جداسازي را انتخاب خواهد کرد که

ای__ن مس__ئله ب__ا طولنی__ترین ط__ولIP-LookUPنسبت به دیگران اولویت بیشتري داشته باشد. به عنوان مث__ال در پیشوند حل شده است و در بعضي موارد، با رسیدن به اولین تطابق، فرآیند جستجو متوقف مي شود. ب__دین ص__ورت،چگونگي پراکندگي جداسازها در فضاي بسته هاي شبکه، تأثیر زیادي بر چگونگي انجام فرآیند جستجو خواهد داشت. انباره ها به عنوان مکان نگهداري جداسازها، تأثیر بسزایي بر چگونگي انجام عمل جستجو خواهند داشت و از ای__ن

رو ساختمان دادة مربوط به انباره نیز، از مسائل قابل چالش و بحث برانگیز در این حیطه مي باشد.

دلیل استفاده از فرآيند دسته بندي بسته ها۱.۱

مسیریابهاي هسته ، مسیریابهاي گوشه، و دیواره هاي آتش به عنوان سه بازیگر اصلي سناریوي دسته بندي بسته هامطرح مي باشند.

مسیریابهاي هسته، به عنوان شاهراه هاي شبکة جهاني، وظیفة هدایت و مدیریت بس__ته هاي ش__بکه را، ب__ا س__رعت بسیار بال، بر عهده دارند. مسیریابهاي گوشه به عنوان نقاط اتصال به شاهراه ها، وظیفة هدایت بس__ته هاي محل__ي ب__ه

بیرون و بالعکس را بر عهده داشته و دیواره هاي آتش، فراهم کنندة امنیت مي باشند.

۶

Page 7: Pdn tech-classifier-ip tables-tng-ver2.1.0

ب__راي۸آنچه که تا کنون از مسیریابها انتظار مي رفته هدایت بسته ها بر اساس آدرس مقصد و انجام بهترین تلش رساندن بسته ها به مقصد بوده است. دیواره هاي آتش نیز وظیفة جلوگیري از عبور بسته هاي شبکه، به مقص__د ی__ا از

مبدأ خاصي، را بر عهده داشته اند. اما افزایش دغدغه هاي امنیتي ،گسترش و تنوع برنامه هاي کاربردي ش__بکه، و ب__ه تب__ع آن گس__ترش و تن__وع در نیازهاي کاربردي آنها در سطح شبکه، تنوع در تجهیزات شبکه، و تفکر براي ایجاد منابع درآمدزایي ت__ازه در س__طح جهان، بار پردازشي زیادي را بر دوش این سه بازیگر گذاشته است، چنانکه این بار پردازشي تنها ب__ه مس__یریابي ب__ر اساس آدرس مقصد منتهي نمي شود بلکه جداسازي بسته ها بر اس__اس پارامتره__اي گون__اگوني همانن__د: ن__وع برنام__ة کاربردي، سرویس کیفیت لزم، آدرس مبدأ گسیل شده ، آدرس مقصد، تعلق به زی__ر ش__بکة خ__اص و ... را ش__امل

مي شود . جوابگوي نیازهاي رو ب__ه،__ FIFO۹در دنیاي کنوني دید واحد داشتن نسبت به بسته ها و رفتار بر اساس مکانیزم

رشد برنامه هاي کاربردي و کاربران پرتوقع نمي باشد. هم اکنون انتظار مي رود که مسیریابها توانایي پشتیباني از سرویسهاي کیفیت مختلف، براي برنامه ه__اي ک__اربردي مختلف، را دارا باشند. براي این منظور مسیریابها نیاز به مکانیزمهاي جدیدي از جمله رزرواسیون منابع ، ص__ف بندي براي هر جریان و ... دارند. دیواره هاي آتش مي بایست کنترل بیشتري بر روي برنامه ها و کاربران داشته، و در کن__ار

پیPPش نیPPاز تمPPام ایPPن مPPواردآن، مسیریابهاي گوشه نیاز به انعطافپذیري بیشتري در مدیریت کاربرانشان دارن__د .دسته بندي بسته ها در قالب جریانهاي مختلف، براي انجام پردازشc مناسب مي باشد.

سرويسهاي قابل ارائه توسط فرآيند دسته بندي بسته ها۱.۲

دسته بندي بسته ها یک قابلیت و توان است که امکان عملي شدن انجام پردازشهایي را فراهم مي سازد. به عبارتي، دسته بندي بسته ها به خودي خود اهمیت ندارد، بلکه پردازشهاي انجام شده بر روي جریانهاي حاصل از دس__ته بندي

بسته ها مي باشند که اهمیت دسته بندي بسته ها را، هر چه بیشتر نمایان مي سازند. این پردازشها عبارتند از:

8 Best Effort9 First in First out

۷

Page 8: Pdn tech-classifier-ip tables-tng-ver2.1.0

: این وظیفه ( پردازش ) که بیش__تر ب__ه دیواره ه__اي آت__ش نزدی__ک اس__ت، امک__ان ح__ذف۱۰پالیش بسته ها-۱ بسته هاي ناخواسته را فراهم مي سازد. با این پردازش قادر خواهیم بود تا از دسترسي به منابعي خاص، توسط

کاربراني خاص، جلوگیري کنیم. : با توجه به نیازهاي مختلف برنامه هاي کاربردي مطرح م__ي ش__ود. ب__ه عن__وان۱۱هدایت بر اساس سیاست-۲

ي خطوط پرسرعت هدایت کرد تا ت__أ خی__ري را از روVOIP۱۲هاي مثال مي توان بسته هاي مربوط به برنامه در ارسال آنها حاصل نشود.

: جزو@ منابع در آمدزایي جدی__د محس__وب م__ي ش__ود. ب__ه عن__وان مث__ال مي ت__وان۱۳حسابداري و حسابرسي-۳ خاصي، را ب__ا اول__ویت ب__التر در نظ__ر )، گسیل شده از منبعvideoاي بصري ( بسته هاي مربوط به برنامه ه

گرفت و در کنارآن، هزینة خاص آن را نیز محاسبه کرد. : مربوط به دغدغه هاي مدیریتي به یک مسیریاب گوشه مي باشد. ب__دین۱۴اعمال محدودیت بر نرخ جریان-۴

آن و ی__ا ب__دونطریق مي توان نرخ جریان عبوري بسته هاي مربوط به یک برنامة خاص را، با توجه به مبدأ توجه به آن، در حد مشخصي محدود کرد تا شبکه بیش از آن اشغال نشود. این موضوع براي م__واردي ک__ه

درخواست براي یک برنامه بسیار زیاد، اما منابع ما محدود است، بسیار کارا مي باشد .

۵-c۱۵ نرخ جریان ورودي به مقصدي مشخص از حدي معیناطمینان از عدم تجاوز.

تشريح مسئلة دسته بندي بسته ها۱.۳

براي رسیدن به جواب، اولین گام طرح مسئله مي باشد: به عبارتي بیان@ موضوع@ مورد@ بح__ث ب__ا اس__تفاده از زب__ان تئوریک و ریاضي. پس باید ببینیم منظور از دسته بندي بسته ها چیست تا بیان الگوریتمها و ط__رح انتظ__ارات از آنه__ا

بي پایه و بدون استناد نباشد. تعریف بیان شده در اینجا تا پایان به عنوان محور بحث واقع خواهد شد.

10 Packet Filtering11 Policy Routing12 Voice Over IP13 Accounting & Billing14 Traffic Rate Limiting15 Traffic Shaping

۸

Page 9: Pdn tech-classifier-ip tables-tng-ver2.1.0

ج__زء ک__ه ه__رdتعریف: فرآیند دسته بندي بسته ها شامل یک انباره از جداسازها(قانونها) مي باشد. هرجداساز از جزء متناظر با فیلدي در سرآیند بستة شبکه مي باشد، تشکیل شده ک__ه ه__ر ک__دام از ای__ن اج__زاء، در تعری__ف ی__ک

، به صورت یک عبارت منظمRام جداساز i] به عنوان جزء R[iجداساز، به صورت یک عبارت منظم بیان مي شوند: امین جزء@ سرآیند بسته، تعریف مي شود. iبر روي

]R[i از سرآیند بسته با عبارت منظ__م i مطابقت دارد اگرکه هر جزء R با جداساز Pبیان مي شود که یک بستة تطابق حاصل کند، یا به عبارتي توسط آن عبارت منظم پذیرفته شود.Rازجداساز

عمل جستجو شامل یافتن جداساز با بالترین اولویت از میان جداسازهاي مطابق با بستة دریافتي مي باشد . در عمل اجزاي@ یک جداساز به صورت تطابقهاي عیني ، محدوده اي و پیشوندي بیان مي شوند، با این توض__یح ک__ه

تطابق عیني حالتي از تطابق محدوده اي مي باشد . مقدار متناظر آن جزء در سرآیند بسته باید عینا� با مقدار ذکر شده در جداساز یک__ي باش__د. ب__هدر تطابق عیني،

عنوان مثال از آن مي توان براي بیان پروتکل بسته استفاده کرد. مقدار متناظر آن جزء در سرآیند بسته باید مقداري در محدودة ذکر شده را اختیار کن__د.در تطابق محدوده اي،

به عنوان مثال مي توان از آن براي بیان محدوده اي از شمارة پورتها استفاده کرد . مقدار متناظر آن جز در سرآیند بسته باید داراي پیشوندي براب__ر ب__ا مق__دار ذک_ر ش__ده دردر تطابق پیشوندي ،

استفاده کرد .۱۶جداساز باشد. به عنوان مثال مي توان از آن براي مشخص کردن زیر شبکه ها

تعبیر هندسي۱.۳.۱

اگر خطي از اعداد باینري را در نظر بگیریم مي توانیم یک پیشوند را به صورت یک پاره خط ب__ر روي آن نم__ایش دهیم. به عبارتي یک جداساز با یک جزء را مي توان به صورت@ یک پاره خط در فضاي ی__ک بع__دي نم__ایش داد. ب__ه

).۱.۱ براي اعداد باینري با پهناي سه توجه کنید(شکل 1∗∗عنوان مثال به نمایش

16 Subnet

۹

Page 10: Pdn tech-classifier-ip tables-tng-ver2.1.0

به همین صورت، جداساز داراي دو جزء@ پیشوندي، به صورت یک مستطیل در فض__اي دو بع__دي قاب__ل نم__ایش).۲.۱است(شکل

اگر به همین شکل از طرز بیان ادامه دهیم، یک جداساز داراي سه جزء را مي توان ب__ه ص__ورت ی__ک مکع__ب در بعدي مطرح کرد . در اینk جزء را به صورت یک فوق مستطیل در فضاي kفضاي سه بعدي و یک جداساز داراي

بعدي را تشکیل خواهد داد که اندازة آن بستگي به پهناي@ اعداد@ باینري@ تشکیلkنمایش هر جزء، یک بعد از فضاي ] مي باشد) .۰ ، ۲۳۲-۱ و محدودة آن [ ۲۳۲ اندازة آن IPدهندة آن جزء دارد ( به عنوان مثال براي

بعدي در نظر بگیری__م ک__ه جداس__ازها ب__ه ص__ورت ف__وقkبنابر این مي توانیم هر انباره را به صورت یک فضاي وجهي در آن قرار گرفته اند. در این فضا هر بسته به صورت یک نقطه قابل نمایش است . بن___ابراینk2مستطیلیهاي

مي توان، با این دید، فرآیند دسته بندي بسته ها را اینگونه تعریف کرد: تشخیص تعلق نقطه مورد نظر (بسته) به ف__وق بعدي مي گردیم که محی__ط ب__ر نقط__ةkمستطیلي با بالترین اولویت. به عبارتي ما به دنبال فوق مستطیلي در فضاي

نمایش دهندة بسته مي باشد و اگر چندین فوق مستطیل داراي این خاص__یت ش__دند، ف__وق مس__تطیل داراي ب__التریناولویت را در نظر مي گیریم .

با این تعریف عمل دسته بندي را مي توان جزو@ الگوریتمهاي مکان یابي، که در فضاي هندسي تعریف مي شوند، در۱۰

** بر روی خط اعداد۱ : نمايش ۱.۱شکل

: نمايش در فضای دو بعدی۲.۱شکل

Page 11: Pdn tech-classifier-ip tables-tng-ver2.1.0

Rayنظر گرفت. مسائل هندسي استانداردي نظیر Shooting ) موقعیت یابي نقط__ه ،Point Locationو مس__تطیل ( ) به نوعي دنباله رو مسائل دسته بندي هستند.Rectangle Enclosureمحیط (

موقعیت یابي نقطه شامل یافتن محدودة ح__اوي نقط_ه م_ورد نظ_ر در می_ان مجم_وعه اي از ن__واحي غیرهمپوش__ان (تعدادd>3 ناحیة مستطیلي با Nمي باشد. بهترین حدود براي این الگوریتم از دید پیچیدگي زماني و حافظه اي، براي

)ابع__اد) ب__ه ص__ورت )N2logΟ (زم__اني) و ( )dNΟ (ح__افظه اي) و ی__ا ب__ه ص__ورت [ ]( )1

2log−Ο dN (زم__اني) و ( )NΟ

(حافظه اي) مي باشد . در دسته بندي بسته ها، فوق مستطیلها مي توانند همپوشاني داشته باشند. در نتیجه، با خوشبیني، پیچی__دگي فرآین__د دسته بندي بسته ها به اندازة الگوریتم موقعیت یابي نقطه خواهد بود ولي در عمل بسیار بیش__تر از آن اس__ت. بن__ابراین اولین نتیجه اي که از این مسائل مي توان گرفت این است که: دسته بندي با اج__زاي چن__دگانه در ح__د قاب__ل ت__وجهي پیچیده تر از تطابق طولني ترین پیشوند در حالت یک بعدي خواهد بود و نیز مي توان پیش بیني کرد ک__ه راه حله__اي

عملي، تمایل و کششي به سمت راه حلهاي مکاشفه اي پیدا کنند. نیاز به حمایت از تطابق هاي محدوده اي در کنار تطابق هاي پیشوندي، باعث پیچیده تر شدن فرآین__د دس__ته بندي

] به این گونه تعریف مي شود : w2 ، 0-۱مي شود. مسئله جستجوي محدوده اي براي یک بعد با اندازة [] محدودة غیر مشترک که یک اف__راز از خ__ط اع__داد Nتعریف: با دارا بودن مجموعه اي از ]12,0 −wرا تش__کیل

}مي دهند به صورت }{ }( )12,1,,0,, 11 −=+=≤=== +w

Niiiiiii UULULLULGGجستجوي محدوده اي ب__ه ، معناي یافتن محدوده اي خواهد بود که حاوي نقطة مورد نظر باشد ( نقطه همان اطلعاتي اس__ت ک__ه بای__د تعل_ق آن

نسبت به یک محدوده مشخص شود ). براي تخمین پیچیدگي اضافه شده به وسیلة محدوده ها، ما مي توانیم ه__ر مح__دوده را ب__ه ص__ورت مجم__وعه اي از

. تطابق با طولنیترین پیشوند براي یافتن محدودة محیط استفاده کنیمو از پیشوندها نمایش دهیم ,L نمایش@ محدودة [s: یک پیشوند به طول توجه U میباشد اگر که [w - s ) تا wپهناي محدوده مي باش__د ،

تمام__ا ص__فر و ب__ه همی__ن مق__دار ازLتعداد بیتهاي لزم براي پوشاندن محدوده در مبناي دو ) از بیتهاي کم ارزش تماما یك باشند.Uبیتهاي کم ارزش

۱۱

Page 12: Pdn tech-classifier-ip tables-tng-ver2.1.0

به عنوان مثال به جدول روبرو براي بیان محدوده ها به صورت پیشوند توجه کنید:

پیشوندهاي عضومحدوده]۷ –۴[۰۱**]۸ –۳[۰۰۱۱ ,۰۱ ,**۱۰۰۰]۱۴ –۱[۰۰۰۱ ,۰۰۱ ,*۰۱ ,**۱۱۰ ,*۱۱۱۰

پیشوند قابل نمایش است، مي توان نتیجه گرفت که الگ__وریتمw2-۲ بیتي حداکثر با wاز آنجایي که هر محدودة برابر حافظة بیشتر پوش__ش ده__د ( چ__را ک__ه ه__ر ق__انون@w2تطابق پیشوند مي تواند محدوده ها را به ازاي استفاده از

قانون تبدیل مي شود ).w2محدوده اي به

کارآيي الگوريتم هاي دسته بندي۱.۴

به صورت معمول، دسته بندي بسته ها بر اساس اجزاي مختلف بستة شبکه عملي سخت و مش__کل مي باش__د. ب__ه همین دلیل توسط محققان راه حلهاي مختلفي براي آن ارائه شده است. بعضا راه حلهاي مختلف بر جنبه هاي گوناگون انبارة جداسازها، به عنوان پیش فرضهاي حاکم بر محیط مسئله، تکیه کرده و ب__ر اس__اس آن الگ__وریتم خ__ود را بی__ان مي کنند. به عنوان مثال تعداد کم همپوشاني در بین جداسازها و محدودیت در تعداد جداسازهاي موجود در انباره، از

جملة این پیش فرضها مي باشند. البته بیان این موضوع خالي از لطف نیست که وجود تفاوت در تعریف و محیط@ کاري مسیریابهاي@ گوشه، هسته و دیواره هاي آتش باعث بروز تفاوتهایي در ساختار انباره هاي موجود در آنها مي شود. ب__ارزترین نمون__ة تف__اوت، تع__داد

۴۰۰۰ ال__ي ۲۰۰۰جداسازهاي موجود در انباره ها مي باشد به طوریکه این تعداد در مسیریابهاي هس__ته در مح__دوده کیلو جداساز افزایش مي یابد. - اگر فیلدهاي آدرس مقص__د و۳۲قرار دارد و همین مقدار در مسیریابهاي گوشه به

مبدا را جزو اجزاء دسته بندي در نظر بگیریم - در مسیریابهاي هسته مقادیر مربوط ب__ه آدرس مقص__د و مب__دا ب__ه صورت مقادیر پیشوندي مطرح مي شوند حال آنکه در مسیریابهاي گوشه بیشتر به صورت تطابق عیني براي آدرس۱۲

Page 13: Pdn tech-classifier-ip tables-tng-ver2.1.0

بعضي الگوریتمها بر روي تعداد بخصوص__ي از اج__زاء براي آدرس مقصد(و یا برعکس) بیان مي گردند. ١٧مبدا و جواز تکیه مي کنند - به طور مثال جداسازهاي داراي دو جزء ( آدرس مب__دا و مقص__د) و ی__ا ی__ک ج__زء (آدرسسرآیند

–) .د مي باشIP-LookUPمقصد: نمونه بارز آن مسئله محاوره اي بودن انباره ( به روزرسانیهاي پي در پي و مکرر ) نیز از دیگر پارامترهایي مي باشد که دید نسبت به آن متفاوت است. به عنوان مثال انباره هاي@ موجود در دیواره هاي آتش به عنوان انباره هاي ایستا مطرح شده و ب__العکس در مسیریابهاي هسته و گوشه ما مواجه با انباره هاي محاوره اي هستیم. محاوره اي بودن انباره بار پردازشي بیشتري را بر الگوریتم دسته بندي اعمال مي کند و پیچیدگي الگوریتم هایي که موضوع به روزرساني را در پیاده سازي خود در نظر گرفته اند به مراتب بیشتر از الگوریتمهایي مي باشد که انباره هاي ایستا را مبناي ک__ار خ__ود ق__رار داده ان__د. البت__ه ای__ن موضوع نیز به طبع انباره برمي گردد و مي توان تنها با تمرکز ب__ر ح__الت ایس__تا الگ__وریتم س__بکتري را ارئ__ه داد(مثل�

الگوریتم فقط براي دیواره هاي آتش بیان شود). در این میان الگوریتمهایي نیز بیان مي شوندکه از جنبة تئوریک فرض خاصي را بر انباره تحمی__ل نمي کنن__د. البت__ه این امکان وجود دارد که این الگوریتمها در محیطهاي خاصي کارآیي بیشتري داشته باشند ول__ي ب__ه ه__ر ح__ال نکت__ة مثبت براي آنها امکان تطابق با محیطهاي مختلف مي باشد، چرا ک__ه مي ت__وان ب__ا اعم__ال پیش فرض__هایي در س__اختار

الگوریتم، از آن براي محیط خاصي استفاده کرد. بین الگوریتمهاي مختلف مي بایست بر مبناي پیش فرضهایي باشدةدر نتیجه مي توان اینگونه بیان کرد که مقایس

که آن الگوریتمها براي انبارة جداسازها، در نظر گرفته اند. موضوع بسیار مهمي که در الگوریتمهاي دسته بندي وجود دارد تقابل م__ابین ح__افظه و زم__ان مي باش__د. در اک__ثر موارد یکي از این دو فداي دیگري مي شود: بدان معني که الگوریتم فضاي بسیار زیادي را اشغال کرده و در کن__ارآن

و ب__العکس،RFCزمان معقولي را در اختیار قرار مي دهد (منظور از زمان، زمان جستجو مي باش__د) مانن__د الگ__وریتم الگوریتمهایي وجود دارند که فضاي حافظه اي معقولي را اشغال کرده ولي زمان مناسبي را در اختی__ار ق__رار نمي دهن__د مانند الگوریتم جستجوي ترتیبي. در این میان، الگوریتمي به عنوان الگوریتم مناسب شناخته مي شود که ت__وازني را در هردو ایجاد کند. به عبارتي مقدار تناسب زمان به حافظه را به یک نزدیک کند. کاهش در بدترین زم__ان جس__تجو،17 Wildcard

۱۳

Page 14: Pdn tech-classifier-ip tables-tng-ver2.1.0

همزمان با کاهش در بیشترین ارجاعات حافظه اي.

کاراييپارامترهاي۱.۴.۱

به عنوان مثال اگر فرض کنیم ک___ه: اتصالت سریعتر نیاز به دسته بندي سریعتري دارند. ١٨سرعت جستجو-۱ در هر ثانیه مي تواند ،10Gbps بر روي یک اتصال با سرعت ، بایت باشد٤٠ حد اقل TCP/IPطول هر بستة

٣ * ١٠-٩ میلیون بسته از سیستم عبور کند که اگر نیاز به پردازش داشته باشند مي بایست در هر ٣١.٢٥ ثانیه، کار پردازش یک بسته، که شامل انجام عمل جستجو و انجام پ__ردازش مرب__وط ب__ه جداس__از مرب__وطه

در فرآیند پردازش@ یک بسته، زمانگیرترین قسمت، انجام عمل جستجو مي باشد .مي باشد، به اتمام برسد. استفاده از فضاي حافظه اي کمتر امکان استفاده از تکنولوژیهاي حافظه اي س__ریعتر، در: ١٩نیاز حافظه اي کمتر-۲

هنگامي که محدودیت به کارگیري سخت افزار وجود داشته باشد، را فراهم مي سازد. علوه بر این هر ج__ا ک__هدغدغة حافظه اشغالي، مطرح باشد این پارامتر بسیار مهم خواهد بود.

: پارامتر مهم هر الگوریتم آن است که بتواند در محیط واقع__ي و۲۰توانایي مدیریت انباره هاي بزرگc واقعي-۳ در رؤیارویي با انباره هاي واقعي، که به صورت عملي مورد استفاده قرار مي گیرند، کارایي خود را نشان ده__د.

پاسخگویي مناسب به داده هاي آزمایشگاهي تنها جنبة تائیدي دارد. م___ا: تغییر در انباره مستلزم به هنگام سازي ساختمان داده هاي انباره خواهد بود. ۲۱به هنگام سازي سریع-۴

مي توانیم ساختمان داده هاي مورد استفاده را طوري پیکربندي کنیم که توانایي حذف و اضافه جداس__ازها ) داشته باشند و یا به گونه اي باشند که م__ا نی__از ب__ه س__اختincrementalرا به طور مکرر (

ن__رخ به هنگام س__ازي دردوبارة تمام س__اختمان داده ه__ا، از پ__ایه، از اطلع__ات موج__ود داش__ته باش__یم. برنامه هاي مختلف متفاوت است. به عنوان مثال به هنگام سازي با نرخ پایین براي دیواره هاي آتش ممک__ن اس__ت

مناسب باشد چرا که جداسازها به وسیلة مدیران سیستم و در مواقعي خاص و نادر، به هنگ__ام مي ش__وند. درحالیکه یک مسیریاب با صف بندي به ازاي هر جریان، نیاز به به هنگام سازي هاي متعدد خواهد داشت.

18 Search Speed19 Low Storage Requirement20 Ability To Handle Large Real-Life Classifiers21 Fast Update

۱۴

Page 15: Pdn tech-classifier-ip tables-tng-ver2.1.0

: ای__ن موض__وعقابلیت گسترش در تعداد فیلدهاي سرآیند بسته که براي دسPPته بندي اسPPتفاده مي شPPوند-۵ انعطاف سیستم را نشان مي دهد ولي در مقابل پیچیدگي الگوریتم را بیشتر مي کند، چرا که افزایش اجزاء، به

تنهایي، بار جستجو را افزایش مي دهد. : چنان که گفته شد شروط به صورتهاي پیشوندي و محدوده ایي مطرح۲۲انعطاف پذیري در ارائه جداسازها-۶

مي شوند. الگوریتمها مي بایست از این گونه نمایش اجزاء@ جداسازها، که جزو@ نمایشهاي عم__ومي ب__ه حس__اب مي آیند، پشتیباني کنند. در کنار آن امکان وجود نیازهاي خاص براي برنامه هاي کاربردي@ وی__ژه نی__ز وج__ود دارد ( بعنوان مثال دو پیشوند مجزا براي یک فیلد ) که الگوریتم مربوطه مي بایس__ت از آن پش__تیباني کن__د.

البته اکثر الگوریتمها از نمایشهاي ویژه و مشخصي(بر اساس کاربردشان) حمایت مي کنند.

الگوريتمهاي دسته بندي۱.۵

الگوریتمهاي دسته بندي را مي توان در چهار دستة کلي تقسیم بندي کرد:الگوریتمهاي جستجوي پایه-۱الگوریتمهاي هندسي-۲الگوریتمهاي مکاشفه اي-۳الگوریتمهاي مختص سخت افزار-۴

۲۳الگوريتمهاي جستجوي پايه ۱.۵.۱

این الگوریتمها از ساختمانهاي داده اي@ پایه به منظور حل مسئله استفاده مي کنند. ساده ترین رویکرد در این حیط__ه جستجوي ترتیبي در میان یک لیست پیوندي از جداسازها مي باشد. ب__ا دری__افت ی__ک بس__ته، س__رآیند@ آن ب__ا تم__ام جداسازها مقایسه شده و با رسیدن به اولین تطابق فرآیند جستجو متوقف مي شود. این روش از نظر حافظه اي بس__یار کارا ولي در مقابل از نظر زماني بسیار ناکارآمد و دامنه گسترش آن بسیار محدود مي باشد، چرا که زمان جستجو به

صورت خطي با افزایش تعداد قانونها، افزایش مي یابد .

22 Flexibility in Specification23 Basic Search Algorithms

۱۵

Page 16: Pdn tech-classifier-ip tables-tng-ver2.1.0

در اص__ل درخ__تي از رش__ته هايtrieاس__تفاده مي کنن__د. trieرویکردهاي دیگر در این حیطه از س__اختمان دادة کاراکتري مي باشد که هر پیشوند@ مشترک در بین رشته ها، متناظر با یک راس در درخت مي باشد. به عن__وان مث__ال

یک بعدي). چن__ان ک__ه@trie - یک ۳.۱ درخت زیر را تشکیل داد (شکل X2=0 و X1=100مي توان براي رشته هاي در عالم دودویي یک درخت دودویي مي باشد که هر حرکت در یک جهت مش__خص، متن__اظر ب__اtrieدیده مي شود

صفر و در جهت مخالف آن متناظر با یک مي باشد.

۱.۵.۱.۱trie۲۴هاي سلسله مراتبي

trie @سلسله مراتبي d،بعدي، گسترش ساده اي از حالت یک بعدي مي باشد. براي ساخت آن ابتدا براي ج__زء@ اول از جزء دوم و از قانونهایي ساخته مي شودtrie یک بعدي ساخته مي شود . سپس متناظر با هر نود آن یک trieیک

ه__ايtrieکه پیشوند متناظر با نود مورد نظر را در جزء یکم خویش، عینا، داشته باشند و همین گونه براي هر ند از ایجاد شده براي جزء دوم این عمل براي جزء سوم تکرار مي شود و....

اول شروع مي شود. یافتن هر تطابق به معن__يtrie عمل جستجو از ،v1,…,vdبا دریافت یک بسته با اجزاء@ سرآیند بر اساس مقدار متناظر با آن در سرآیند بسته عم__لtrie بعدي براي انجام عمل جستجو مي باشد. در هر trieیافتن

جستجو انجام مي شود. در صورت برخورد به بن بست بازگشت به یک سطح بالتر انجام مي شود . در هر سطح، متن__اظر ب__ا جزئ__ي از س__رآیندtrie سلسله مراتبي ذکر شد، هرtrie: چنانچه در توصیف ۱توضیح

24 Hierarchical tries

۱۶

يک بعدیtrie : نمايش ۳.۱شکل

Page 17: Pdn tech-classifier-ip tables-tng-ver2.1.0

بسته مي باشد . تنها براي تطابق هاي پیشوندي استفاده مي شود و در صورت وجود تطابقهاي محدوده اي آنه__ا راtrie: ۲توضیح

باید به صورت پیشوندي بیان کرد .)پیچیدگیهاي این الگوریتم عبارتند از: حافظه اي= )NdwΟ=زماني ،( )dwΟ =به هنگام سازي ،( )wd 2Ο.

۱.۵.۱.۲trie۲۵ها با حرس4 مجموعه اي

سلسله مراتبي بازگشت به سطح بالتر، در صورت برخورد به بن بست، مي باشد وtrieدلیل عمدة اتلف زمان در با حرس مجموعه اي به دنب__ال ای__ن ه__دفtrieاگر بتوان آن را حذف کرد زمان جستجو تا حد زیادي بهبود مي یابد.

مي باشد . س_طحtrie سلسله مراتبي مي باشد با این تف_اوت ک_ه در ه_ر ن_ود از trie با حرس @مجموعه اي همانندtrieساخت

سطح پایین تر از تمام جداسازهایي که توانایي پذیرش پیشوند متناظر ب__ا ای__ن ن__ود را داش__تهtrieبالتر براي ساخت trie سطح پایین تر خودش، تم__ام جداس__ازهایي را ک__ه در تش__کیل trieباشند استفاده مي شود. به عبارتي هر نود در

سطح پایین تر اجدادش دخیل مي باشند را شامل خواهد بود. بدین صورت در هنگام انجام عمل جستجو ک__افي اس__ت تطابق طولنیترین پیشوند را انجام دهد و در این صورت دیگر نیازي به بازگشت به سطح بالتر نخواهد بود.trieهر

، فضاي اشغالي را در حد زیادي افزایش مي دهد. اص__ول ای__ن روش ب__رايtrieاضافه شدن جداسازهاي اجداد در دسته بندیهاي ایستا مورد استفاده قرار مي گیرد .

)پیچیدگیهاي این الگوریتم عبارتند از: حافظه اي= )dwN d *Ο=زماني ،( )dwΟ =به هنگام سازي ،( )dNΟ.

۲۶الگوريتمهاي هندسي۱.۵.۲

رویکرد هندسي بارزترین مشخصة این الگوریتمها مي باشد: تعبیر فضاي مسئلة دسته بندي به صورت یک فض__اي بعدي و نمایش جداسازها به صورت فوق مستطیلها.dهندسي

25 Set-Pruning tries26 Geometric Algorithms

۱۷

Page 18: Pdn tech-classifier-ip tables-tng-ver2.1.0

۲۷هاtrieمشبکي از۱.۵.۲.۱

با حرس مجموعه اي (زمان مناسب) به__ره مي گی__رد.trie سلسله مراتبي (حافظة مناسب) و trieاین روش از فوائد سلسله مراتبي انجام مي شود (این الگوریتم براي فضاي دو بعدي بیان شده است).trieها همانند trieساخت

هایي بهره گرفته مي شود: بدین صورت ک__ه اگ__ر هنگ__ام انج__ام عم__لswitch سطح دوم از وجودtrieدر نودهاي ه__ايtrie مي تواند ما را به نود دیگري در switchجستجو به نقطه اي رسیدیم که دیگر ادامه راه امکان نداشته باشد،

توجه کنید . ۴.۱سطح دو منتقل کند تا ادامه مسیر امکان پذیر باشد. به شکل

است ) این گونه است :switch یک b ( bشرط وجود۱-Tx و Ty دو trieجداگانه بر روي جزء دوم جداسازها مي باشند و ارجاع به آنها مي بایس__ت توس__ط دو ن__ود

سطح یک مي باشد). T ، trie انجام شود (Tجداگانه در switch ( باید گفت که ه__ر b، به اضافة مقدار بیت Tx در w به سمت Tي حاصل از گذر از ریشة رشتة بیت-۲

T ) مي بایست برابر با رشتة بیتي حاصل از گذر از مسیر ریش__ة ۱یا ۰ مي باشد : ۲۸داراي یک برچسب

د . باشTy درxبه سمت باشد .b نباید داراي فرزندي با برچسب wنود -۳

27 Grid Of tries28 Label

۱۸

هاtrie : مشبکی از ۴.۱شکل

Page 19: Pdn tech-classifier-ip tables-tng-ver2.1.0

باشد .r باید نزدیکترین اجداد نود T درsنود -۴هنگام جستجو از تطابق@ طولنیترین طول پیشوند استفاده مي شود .

بع__ديd به منزلة حرکت از ی_ک فوق مس__تطیل ب_ه فوق مس__تطیل دیگ__ري در فض__اي switch: وجود ۱توضیح هاي سطح دوم یک فوق مستطیل را تشکیل مي دهد که شامل چندینtrie با هر کدام از Tمي یاشد. چرا که ترکیب

زیر فوق مستطیل که نمایشگر قانونها مي باشند، است . ,U2(s) و U1(s,root(Ty),y,xهاي سلسله مراتبي، نیاز به جس__تجو در مس__یرهاي trieاگر یک الگوریتم جستجو، در

root(Tx), w,x ) داشته باشد، در این حالت تنها نیاز به جستجو در مسیر (s, root(Tx), w , x.خواهد بود ( : اگر براي رشته اي از بیتها قانوني وجود داشته باشد، در هرجایي ک__ه در هنگ__ام جس__تجو، ب__ه بن بس__ت۲توضیح

دیگري) وجود داشته باشد که بتوان از آنجا به کارtrieرسیدیم، مي بایست نود دیگري متعلق به جداساز دیگري (یا ادامه داد. به عبارتي روش مشبک مسئله را به خوبي حل مي کند .

)هر بیت در سرآیند بسته تنها یک بار امتحان مي ش__ود، در ن__تیجه پیچی__دگي زم__اني الگ__وریتم )wΟو )حافظة اشغالي )NwΟ.مي باشد

ها از انجام به روز رسانیهاي پي درپي جلوگیري مي کند و در هر به روز رساني مي بایست کلswitch وجود درخت دوباره ساخته شود.

اصول روش مشبک براي فضاي دو بعدي خوب کار مي کند و براي فضاهاي چند بعدي نیز مي تواند براي نمایش کاهش مي یاب__د (چ__راwدو بعد آخر استفاده شود. بدین صورت پیچیدگي زماني براي فضاهاي چندبعدي با ضریب

)که در دو بعد آخر از هر مسیري که وارد شود تنها )wΟزمان براي یافتن لزم خواهد بود). ح__الت مش__بک نی__ز همانند حالتهاي سلسله مراتبي و حرس مجموعه اي از نمایش پیشوندي براي بیان محدوده ها استفاده مي کند.

۲۹ساخت نشانه۱.۵.۲.۲

این روش براي جستجو در ابعاد مختلف طراحي شده که بسیار سریع مي باشد چرا که با دریافت ه__ر بس__ته تنه__ا عمل جستجوي محدوده اي متناظر با هر جزء@ جداسازها، خواهد بود.dنیاز به انجام

29 Cross-Producting

۱۹

Page 20: Pdn tech-classifier-ip tables-tng-ver2.1.0

در این الگوریتم ابتدا جدولي از دو ستون ساخته مي شود: یکي شامل چندتایي حاوي محدوده ها و دیگ__ري ش__امل بهترین قانون متناظر با فوق مستطیل حاصل از چندتایي محدوده ها. ابتدا هر بعد به وسیلة برشهایي به مح__دوده هایي

r1 ) ایجاد مي کند ک__ه در آن r1,…,rdتقسیم مي شود، اجتماع این محدوده ها در تمام ابعاد چندتاییهایي به صورت (

مربوط به یکي از برشهاي بعد اول و ... مي باشند . سپس براي تمام ترکیبهاي محتمل از برشها (چن__دتاییها) به__ترینقانون انتخاب مي شود.

با دریافت یک بسته عمل جستجوي محدوده اي در هر بعد، در میان برش__هاي متن__اظر ب__ا آن بع__د ب__راي ی__افتنمحدودة حاوي آن مقدار انجام مي شود. سپس بر اساس جدول نشانه، جداساز متناظر با آن بسته استخراج مي شود.

) محدوده را ایجاد مي کنند، پیچیدگي ح__افظه اي آن 2N- ۲ پیشوند حداکثر Nاز آنجایي که )dNΟو )زماني )Rttd.Οخواهد بود که در آن Rtt.زمان مربوط به جستجوي محدوده اي مي باشد

هر به روزرساني مستلزم ساخت مجدد تمام جدول مي باشد، در نتیجه این الگوریتم ب__راي ح__الت ایس__تامناسب خواهد بود.

۳۰درخت چهارتایي متناظر با فضاي مسئله۱.۵.۲.۳

این الگوریتم براي فضاي دوبعدي طراحي شده است. در هر نود دو بی__ت از ه__ر دو ج__زء بررس__ي مي ش__وند، در نتیجه در هر ند فضاي مسئله به چهار قسمت مساوي تقسیم مي شود. هر نود داراي قانونهایي مي باش__د ک__ه بتوانن__د یکي از چهار قسمت آن را به طور کامل پوشش دهند. هنگام جستجو در هر نقط__ه ک__ه امک__ان ادام__ه مس__یر وج__ود نداشت، از بین قانونهاي موجود بهترین تطابق انتخاب مي شود.کار تقسیم تا آنجا ادامه پیدا مي کن__د ک_ه در ه_ر ن_ود

انتهایي حداکثر یک جداساز وجود داشته باشد.

۳۱الگوريتم هاي مکاشفه اي ۱.۵.۳

چنانچه در توصیف مسئلة دسته بندي نیز بیان شد، مسئلة دسته بندي با اجزاء@ چندگانه بسیار پیچیده و پرهزین__ه مي باشد. این پیچیدگي و پرهزینه بودن راهنماي محققان براي استفاده از روشهاي مکاش__فه اي ب__وده اس__ت. چ__را ک__ه

30 Area-Based Quad Tree31 Heuristic Algorithms

۲۰

Page 21: Pdn tech-classifier-ip tables-tng-ver2.1.0

امکان نمایش انباره هاي موجود در شبکه هاي حقیقي، به دلیل وجود ساختارهای ویژه و همچنین اضافات غیر ضروري،به صورت نمایش مکاشفه اي وجود دارد.

RFC (۳۲دسته بندي بازگشتي جریانها (۱.۵.۳.۱

ورودي ،s2 بیت در سرآیند بستة شبکه وجود داشته باشد. مي توانیم با تشکیل جدولي هم__راه ب__ا s فرض کنید پردازش مربوط به هر بستة ورودي را به راحتي مشخص کنیم. مشکل اصلي این راهکار حافظه اشغالي بسیار زی__اد

آن مي باشد.Nt س__طر ک__ه در آن t2 سعي داردکه این عمل را در فضایي ی__ا ج__دولي ب__ا RFCالگوریتم 2log= و Nتع__داد

t2 و s2قانونهاي موجود مي باشد، انجام دهد. آنچه در این الگوریتم انجام مي شود ، ایج__اد ی__ک تط__ابق بی__ن فض__اي

مي باشد. این الگوریتم با انجام یک سري عملیات میاني بر روي مقادیر فیلدهاي مختلف(در سرآیند بستة دری__افتی) کار مي کند .t2که براي دسته بندي استفاده مي شوند، چنان تداعي مي کند که در فضایي با وسعت

HiCuts(۳۳برشهاي سلسله مراتبي هوشمند (۱.۵.۳.۲

در هر مرحله از این الگوریتم ، فضاي مسئله، در یک بعد، به چند قسمت برش خورده و این عم__ل در ه__ر زی__رفضاي ایجادشده تکرار مي شود.

حاصل این برشها یک درخت تصمیم گیري مي باشدکه هر نود درآن یک زیر فضاي مسئله را پوشش مي ده__د وفرزندان هر نود زیر فضاهایي از فضاي ند پدر، حاصل از انجام برشها در فضاي نود پدر، را پوشش مي دهند.

مسائلي که در این الگوریتم به صورت مکاشفه اي حل مي شوند عبارتند از:انتخاب بعدي که مي بایست برش بر روي آن انجام شود . -۱تعداد برشهایي که مي بایست بر روي بعد انتخاب شده انجام شود .-۲

۳۴جستجو در فضاي چندتایي۱.۵.۳.۳

ماین__دة ط__ول تایي نdام از این i تاي تبدیل مي شود ، عضو d بعدي به یک dابتدا هر جداساز در این الگوریتم ، 32 Recursive Flow Classification33 Hierarchical Intelligent Cuttings34 Tuple Space Search

۲۱

Page 22: Pdn tech-classifier-ip tables-tng-ver2.1.0

اند داراي ط__ولتاي تبدیل شده dام جداساز خواهد بود. از آنجائي که مجموعة جداسازهایي که به یک iوند جزء پیش ذخیره کرد. ۳۵پیشوند مساوي در اجزاء@ متناظر مي باشند، مي توان آنها را به صورت جداول درهم ساز

ج__دولMتایي مجزا باشد، الگ__وریتم داراي d تا Mتاییها، dدر نتیجه اگر فرض کنیم حاصل تبدیل جداسازها به درهم ساز خواهد بود که در هر جدول جداسازهاي داراي طول پیشوند مس__اوي در اج__زاء@ متن__اظر، ذخی__ره ش__ده اند.

جستجو به صورت تطابق عیني در تمام جداول انجام مي شود .

جس__تجو در ج__داول درهم س__از مي باش__د و همچنی__نMپیچیدگي زماني مربوط به این الگ__وریتم براب__ر )پیچیدگي حافظه اي آن از رتبة )NΟ.مي باشد، چرا که هر قانون دقیقا در یک جدول ذخیره مي شود

هزینة به هنگام سازي آن تنها در حد اضافه کردن یک جداساز به جدول درهم ساز مربوطه مي باشد.

در صورت وجود تعداد کم چندتاییها (جداول درهم ساز) این الگوریتم کارآیي خوبي براي دسته بندي بسته ها ب__راساس اجزاء@ چندگانه خواهد داشت.

۳۶الگوريتمهاي مختص سخت افزار۱.۵.۴

به دو صورت مي باشند: یا سخت افزارهاي خاصي هستند که براي انجام عمل دسته بندي بس__ته ها م__ورد اس__تفاده قرار مي گیرند و یا الگوریتمهایي مي باشند که بر اساس تواناییهاي خاص سخت افزاري مشخص گسترش یافته اند. در هر دو صورت به دلیل استفادة مستقیم از سخت افزار، این شیوه ها سرعت قابل قبولي را در اختیار قرار مي دهن_د. ام__ا در کنار آن به دلیل محدودیت حجم و همچنین تعداد فیلدهاي کمي که پش__تیباني مي کنن__د، ک__ارآیي خ__وبي ب__راي انباره هاي بزرگ@ واقعي نخواهند داشت. عمدة این مشکلت است که روشهاي نرم افزاري را به عنوان انتخالي مطمئن

مطرح مي سازد.

۱.۵.۴.۱ Ternary CAM۳۷ها

بی__ت پهن__اw بیتي را به صورت ( مقدار، ماسک) ذخیره مي کند، مقدار و ماس__ک ه__ر دو w مقادیر TCAMیک

35 Hash Tables36 Hardware Specific Algorithms37 Ternary Content Addressable Memories

۲۲

Page 23: Pdn tech-classifier-ip tables-tng-ver2.1.0

)۱۱۰۰۰، ماسک . ۱۰۰۰۰(مقدار* به صورت ۱۰) ، پیشوند w = 5 باشد (۵دارند. به عنوان مثال اگر مقدار پهنا بیان مي شود.

TCAMدر فضاي آرایه اي خودش، جداسازها را به ترتیب نزولي بر اساس اولویتشان ذخیره مي کند. عمل مقایسه بی__تي از تطابقه__ايNبراي یافتن تطابق به صورت موازي با تمام عناصر آرایه انجام مي شود. حاصل یک بیت نق__ش

ب__رايTCAMصورت پذیرفته خواهد بود. توسط قسمت اولویت بندي، جداساز@ با بالترین اولویت انتخ__اب مي ش__ود. ذخیره شده است، استفاده مي کند و در صورتRAMذخیرة پردازش@ مربوط به یک قانون از آدرس پردازش که در

بروز تطابق با استفاده از این آدرس، پردازش@ مربوطه فراخواني مي شود. ها از جمله مزیتهایي مي باشد که استفاده از آنها را روزبه روز افزایش مي ده__د. البت__ه درTCAMسادگي و سرعت

کنار آن توان مصرفي بال ( به دلیل انجام مقایسه به صورت موازي ب__ا تم__ام عناص__ر آرای__ه) و پش__تیباني نک__ردن ازمحدوده ها، از جمله کاستیهاي آن به شمار مي آید.

۳۸اشتراک بیت نقشها۱.۵.۴.۲

را ش__املSi، مجموعة جداسازهایي باشدکه مطابق با یک بستة دریافتي مي باشند. اگر مجموعه هاي Sفرض کنید راSام از سرآیند بسته، مطابق بستة دریافتي باشند، آنگاه مي توان مجموعة iجداسازهایي در نظر بگیریم که در جزء

اینگونه به دست آورد d

iiSS

1=

=. ایدة اصلي در این روش نیز بر این مبنا استوار است. جداولي براي هر بع__د تش__کیل مي ش__وندکه متن__اظر ب__ا ه__ر

بیتي ذخی__ره مي کن__د. جس__تجوNمحدوده در آن بعد، بهترین جداسازهاي متعلق بدان را به صورت یک بیت نقش براي هر جزء، به صورت جداگانه، در جدول مربوط بدان انجام شده و در پایان از تمام بیت نقشهاي حاصل اش__تراک

گرفته مي شود. حاصل نمایانگر جداسازهایي خواهد بود که مطابق بسته هستند.

و نی__از زم__اني آن ب__ه۲این روش براي ابعاد کم جوابگو مي باشد اما نیاز حافظه اي آن به صورت ت__وان صورت خطي با افزایش اندازة انباره افزایش مي یابد.

38 Bitmap-Intersection

۲۳

Page 24: Pdn tech-classifier-ip tables-tng-ver2.1.0

بی__تي خواه__دNجستجو با انجام تطابقهاي محدوده اي در هر بعد صورت مي پذیرد، حاصل تمام آنها بیت نقشهاي ) از آنها مي تواند بسیار سریع انجام شود.ANDبود که به مدد سخت افزار، اشتراک گیري ( عمل

ABV ۳۹الگوريتم ۲

در تقسیم بندي الگوریتمهاي دسته بندي، این الگوریتم را مي توان در رستة الگوریتمهاي جس__تجوي پ__ایه ق__رار داد. مي باشد از طرف سازندگانش با نام الگوریتم قابل گس__ترشBVاین الگوریتم که نسخة گسترش یافته اي از الگوریتم

قانون را پوشش دهد.100،000معرفي شده است که مي تواند انباره هایي تا ، که ابتکار سازندگان این الگوریتم به حساب مي آید، زمانایدة اجماعاین الگوریتم سعي کرده است با استفاده از

را بهبود بخشد.BVجستجوي الگوریتم

BV ۴۰الگوريتم ۲.۱

مي باشد، بدان صورت که ابتدا سعي مي کند تا قانونهاي مطابقاشتراک بیت نقشها شبیه به روش BVروش کار هز جزء@ سرآیند را به صورت جداگانه جستجو کند و سپس با اشتراک گرفتن از حاصل این جستجوها، قانونه__ایي را

که با کل بسته مطابق هستند استخراج کند. نقطة اشتراک این دو استفاده از بیت نقشها مي باشد که براي نم__ایش حاص__ل جس__تجوهاي ج__داگانه و اس__تخراج

ب__ه ج__ايBV در الگ__وریتم trieنهایي، مورد استفاده قرار مي گیرند، و نقطة تفاوت آنها نیز استفاده از ساختمان دادة امکان به روزرساني پي درپي را ب__رايtrieمي باشد. استفاده از اشتراک بیت نقشها ساختمان دادة جداول در الگوریتم

الگوریتم فراهم کرده و درکنار آن استفاده از بیت نقشها نیز منجر به استفاده از فوائد سخت افزاري شده است، چرا کهبا هر دسترسي به حافظه تعداد زیادي بیت واکشي مي شوند.

هاي س__رآیند تع__داد فیل__دd مس__ئلة کوچک__تر تقس__یم میکن__د (d فضاي مسئله را به BVیي که الگوریتم از آنجا "تفرقه بیانداز-حکومتمي باشند که براي دسته بندي مورد استفاده قرار مي گیرند) مي توان آن را جزو الگوریتمهاي

39 Aggregated Bit Vector40 Bit Vector

۲۴

Page 25: Pdn tech-classifier-ip tables-tng-ver2.1.0

trie بدین گونه مي باشد که ابتدا براي هر جزء از اجزاء@ جداسازها، ی__ک BV" در نظرگرفت. طرز کار الگوریتم ۴۱کن

یک بعدي، که نمایشگر تمام پیشوندهاي ممکن مي باشد، ساخته مي شود، براي اجزایي ک__ه از تطابقه__اي مح__دوده اي ب__راي نم__ایش آنه__اtrie که یا از درخت محدوده اي و یا، با تبدیل به پیشوند، از استفاده مي کنند فرض بر آن است

استفاده مي شود. بیتي (تعداد قانونها) در نظر گرفته مي ش__ود.N داریم ) یک بردار trie تا d ( تا اینجا ما trieمتناظر با هر نود@ هر

در این بردار، در یک نود مفروض، به منزلة تطابق پیشوند مربوط به این نود ب__ا پیش__وند ج__زءjیک بودن موقعیت ام، این پیشوند را نیز پوشش مي دهد( ب_ه عن__وانjام مي باشد و یا به عبارتي جزء@ متناظر در قانون jمتناظر در قانون

* پوشش داده مي شود).۰۰* و ۰* توسط پیشنوندهاي ۰۰مثال پیشوند هاي متناظر با هر جزء براي یافتن طولنی__ترینtrie ، جستجو در H1,….,Hdبا دریافت یک بسته با اجزاء@ سرآیند

بیتي خواهد ب__ود. س__پس از تم__ام ای__ن برداره__اN بردار dپیشوند مطابق با آن صورت مي پذیرد. حاصل جستجوها اشتراک گرفته مي شود. حاصل بیان کنندة قانونهایي خواهد بود که تمام اجزاء@ سرآیند را پوشش مي دهند.

عمل بعدي یافتن مناسبترین قانون با پایین ترین هزینه یا بالترین اولویت، مي باشد. پیچیدگي عم__ل جس__تجو ک__ه) بیتي دارد از مرتبة Nنیاز به سیر خطي در درون بیت نقش )NΟ مي باشد و اگر wرا به عنوان طول واح__د کلم__ة

حافظه در نظر بگیریم، تعداد دسترسیها به حافظه در هنگام اشتراک گرفتن که جستجو نی__ز همزم__ان ب__ا آن انج__امwdNمي شود، خواهد بود.∗

ايدة اجماع ۲.۲

هدفي که از ایدة اجماع دنبال مي شود ساخت بردار اشتراک و به عبارتي ی__افتن ق__انون مناس__ب ب__دون نی__از ب__ههاي متناظر با هر جزء مي باشد.trieبررسي تمام مقادیر مربوط به بیت نقشهاي حاصل از انجام عمل جستجو در

در بردار اجماع یک خواهد بودiبراي این منظور با هر نود، بردار دیگري با نام بردار اجماع همراه مي شود. بیت )اگر بیتي در محدودة )[ )AiAi ∗+∗ به عنوان عدد اجماع، به صورتA در بردار بیتي مربوط بدان نود یک باشد. ,1

(اندازة کلم__ة ح__افظه) در نظ__ر گرفت__هwیک عدد ثابت در الگوریتم مورد استفاده قرار مي گیرد، که معمول مساوي

41 Divide & Conquer

۲۵

Page 26: Pdn tech-classifier-ip tables-tng-ver2.1.0

مي باشد. با دریافت یک بس__ته، ابت__دا از برداره__اي اجم__اع اش__تراک گرفت__هANمي شود. اندازة بردار اجماع برابر مي شود. با استفاده از حاصل اشتراک، تنها قسمتهایي از بیت نقشها امتحان خواهند شد که بی__ت متن__اظر ب__ا آنه__ا در

بردار اجماع یک باشد. در این الگوریتم از اجماع چندسطحي نیز صحبت به میان آمده است. بدان صورت ک__ه ب__راي برداره__اي اجم__اع

Aفعلي نیز بردار اجماع سطح بالتري ساخته شود. با انجام این عمل تا هنگامي که انجام آن مق__دور باش__د (ح__داقل

Nبردار اجماع موجود باشد) درختي با ارتفاع Alogحاصل خواهدشد. بدین صورت در هنگام بررسي بردارهاي اجماع

نیز، نیاز به بررسي تمام آنها نخواهد بود چرا که بردارهاي اجماع سطح بالتر قسمتي از بردارهاي س__طح فعل__ي را از گردونة توجهات حذف مي کنند. هدف رسیدن به حالتي مي باشد که پیچی__دگي دسترس__ي ب__ه حافظ__ة آن از مرتب__ة

( )NAlogΟ.باشد

تطابقهاي نادرست۲.۲.۱

ایدة اجماع مي تواند حالتي را سبب شود که تعداد دسترسي به حافظه چند برابر زم__اني باش__د ک__ه از برداره__اي ، در ب__ردار اجم__اع،اجماع استفاده نمي شود. این حالت هنگامي رخ مي دهد که دربین محدوده هاي متناظر با مکانهایي

که عدد یک را اختیار کرده اند، اشتراکي وجود نداشته باشد. این واقعیت از آنجا ناش__ي مي ش__ود ک__ه ی__ک مک__ان در ح__داقل ی__ک، ی__ک وج__ود داش__ته ، در بیت نقش متناظر،Aحدوده اي به طول بود اگر در مبردار اجماع یک خواهد

۴۲تطPPابق نادرسPPتباشد. این یک مي تواند، در بردارهاي مختلف، مکانهاي مختلفي را اختیار کند. این حالت ب__ا ن__ام شناخته مي شود.

تطابقهاي نادرست هنگامي رخ مي دهند که قانونهایي که یک جزء را پوشش مي دهن__د در ترتی__ب ارائ__ه ش__ده از قانونها به صورت پراکنده قرار گرفته باشند. براي رفع آن مي توان ترتیب جداس__ازها را ب__ه گ__ونه اي تغیی__ر داد ک__ه

قانونهاي مطابق با یک جزء در کنار یکدیگر قرار بگیرند، تا بدین صورت از پراکندگي آنها جلوگیري شود.

42 False Match

۲۶

Page 27: Pdn tech-classifier-ip tables-tng-ver2.1.0

ABVتوصیف الگوريتم ۲.۳

یک بع__دي س__اخته مي ش__ود،trie براي هر یک از اجزاء@ جداسازها، یک BVدر این الگوریتم نیز همانند الگوریتم البته با این تفاوت که از بردارهاي اجماع نیز در هر نود استفاده مي شود. عمق بردارهاي اجم__اع قاب__ل تص__میم گیري

مي باشد. ها به صورت جداگانه انجام مي شود و سپس از بردارهايtrieبا دریافت یک بسته، جستجو در جستجوي اجماع:

ی_ک باش__د، آنگ__اه عم__ل اش__تراک گیري ازiاجماع، اشتراک گرفته مي شود. اگر در حاصل اشتراک بیتي در موقیت )بیتهاي واقع شده در محدودة )[ )AiAi ∗+∗ در درون بیت نقشها، انجام مي شود. اگر در مجموع این اعم__ال، بی__تي,1

یک باشد نشانگر وجود یک تطابق خواهد بود.بعد از اتمام عمل اشتراک گیري، از بین قوانین مطابق با بسته، قانون با بالترین اولویت انتخاب مي شود.

مرتب سازي در یک جزء بدین صورت انجام مي شود که در ابتدا تمام پیشوندها به ترتیبالگوریتم مرتب سازي: اندازه مرتب مي شوند. سپس در بین آنها بر اساس تساوي پیشوندها، مرتب سازي انجام مي ش__ود. حاص__ل ترتی__بي از

قانونها خواهد بود که بر اساس مقادیر یک جزء مرتب شده اند. به همین صورت مي توان قانونهایي را که داراي پیشوند مساوي در یک جزء هس__تند را ب__ر اس__اس مق__ادیر ج__زء دیگري مرتب کرد. این عمل مي تواند براي هر چند تا جزء به صورت بازگشتي ادامه یابد. ب__ر طب__ق ای__ن الگ__وریتم

مي توان توالي اجزاء استفاده شده براي مرتب سازي را به صورت دلخواه انتخاب و به عبارتي اولویت بندي کرد.

HyperCutsالگوريتم ۳

) ج__زو رس__تة الگوریتمه__اي مکاش_فه اي درHyperCutsدسته بندي بسته ها ب_ا اس__تفاده از برش__هاي چن__دگانه ( تقسیم بندي الگوریتمهاي دسته بندي قرار مي گیرد.

مي باشد، با ایج__اد امک__ان انج__ام برش__هايHiCuts که نسخة گسترش یافته اي از الگوریتم HyperCutsالگوریتم ، سرعت الگوریتم را تا حد قابل توجهيHiCutsچندگانه سعي کرده، تا با رهایي از محدودیت برشهاي یک بعدي در

(توالي برش__ها در چن__د س__طح) درHiCuts امکان شبیه سازي چندین برش HyperCutsبهبود بخشد. این موضوع به ۲۷

Page 28: Pdn tech-classifier-ip tables-tng-ver2.1.0

یک برش(انجام تمام برشها در یک سطح) را مي دهد.HyperCutsهمچنین از شیوة بالراندن قوانین در درخت تص__میم گیري، ب__راي بهب__ود حافظ__ة اش__غالي، اس__تفاده

مي کند، چرا که جداسازهاي داراي جواز اغلب در چندین برگ درخت تصمیم گیري تکرار مي شوند که ای__ن موض__وع حافظة اشغالي را افزایش مي دهد. براي رهایي از آن تمام قوانین مشترک در یک زیر درخت ، به صورت یک لیست

خطي، در ریشة آن درخت ذخیره مي شوند تا از تکرار آنها در برگها جلوگیري شود.

۴۳الگوريتمهاي مبتني بر درخت تصمیم گیري۳.۱

نقطة تشابه الگوریتمهاي مبتني بر درخت تصمیم گیري، اتخاذ تصمیمات بهینه شده یا بهین__ه در ه__ر ن__ود درخ__ت تصمیم گیري (در هنگام ساخت و استفاده از آنها در هنگام جستجو) براي ادامة مسیر مي باشد. ای__ن ن__وع الگوریتمه__ا،

مطرح شدند.Woo و HiCutsاولین مرتبه، در دو مقاله براي الگوریتمهاي منج__ر ب__هHiCuts تصمیم بهینه شدة محلي منجر به انتخاب بی__ت بع__دي ب__راي تس__ت و در Wooدر الگوریتم

انتخاب جزء یا بعد@ بعدي براي آزمایش و برش مي شود. در هر صورت در هر دو الگوریتم بعد از ا@عمال تص__میم در هر ند، فضاي مسئله به زیر مجموعه هاي کوچکتري تقسیم مي شود و دوباره عمل تصمیم گیري به ص__ورت بازگش__تي

بر روي این مجموعه ها اعمال مي شود، تا رسیدن به نقطه اي که هر برگ درخت شامل تعداد معقولي قانون باشد. در هنگام جستجوي تطابق براي یک بسته، در هر نود، تعلق بسته به زیر مجموعه ها بررس__ي مي ش__ود ت__ا یک__ي از فرزندان براي ادامة مسیر انتخاب شود و این عمل تا رسیدن به برگ ادامه پیدا مي کند. بعد از جلوس در یک برگ،

قانونهاي موجود در آن به صورت ترتیبي، براي پیدا کردن قانون با بالترین اولویت، جستجو مي شوند.در این الگوریتمها چند موضوع قابل توجه است:

ک__ه ه__ر ق__انون تنه__ا در ی__کنیس__تتقسیم مجموعه یا فضاي جداسازها به زیرمجوعه ها مؤید این مطل__ب -۱ زیرشاخه قرار مي گیرد، چرا که جداسازهایي که داراي جواز زیاد در اجزایشان باشند، مي توانند ب__ه ص__ورت

براي رهایي از این مس__ئله اج__ازة اس__تفاده ازWooمکرر در زیر شاخه هاي@ مختلف تکرار شوند. در الگوریتم چند درخت تصمیم گیري داده شده است. ب__دین ص_ورت ق_ادر خ__واهیم ک_ه ب_ه عن__وان مث_ال ب__راي تم_ام

43 Decision Tree Algorithms

۲۸

Page 29: Pdn tech-classifier-ip tables-tng-ver2.1.0

جداسازهایي که مقدار آدرس مبدا و مقصد آنها به صورت جواز مي باشد یک درخت جداگانه بس__ازیم. ای__نمسئله اگر چه باعث کندي الگوریتم مي شود اما به اندازة قابل توجهي فضاي اشغالي را کاهش مي دهد.

برگ باشد که ه__ر۱۰.۰۰۰استفاده از تعداد معقولي قانون در برگها: فرض کنید درخت تصمیمگیري داراي -۲ قانون را در خود نگهداري مي کنند. اگر بخواهیم تقسیم بندي را تا آنجا ادامه دهیم که در هر برگ۴کدام تا

نود اضافي خواهیم داشت که این موضوع به خوبي مؤید۴۰.۰۰۰تنها یک قانون قرار داشته باشد ما نیاز به افزایش تواني فضاي اشغالي مي باشد. بنابراین استفاده از تعداد معقولي جداساز در برگها باعث ایج__اد ت__وازن

بین حافظه و زمان مي شود. موضوع بعدي انجام تصمیمات بهینه مي باشد. لزمة انجام این مورد دسترسي به تع__دادي ق__انون در هنگ__ام-۳

ساختن درخت مي باشد. در این هنگام خواهد بود که درخت با توجه به فض__اي ح__افظه اي موج__ود، س__اختار ( حداکثر قانونهاي موجود در برگها ) قادر به تص__میمگیري و س__اختن درخ__تعدد تعدادc معقول قانونها و

خواهد بود. در نتیجه این الگوریتمها در حد زیادي وابسته به فضاي حالت قانونها مي باشند.

HiCutsالگوريتم ۳.۲

بع__دي ک__ه توس__ط برش__هایي ب__ه ی__کd ، هر نود را مي توان به صورت یک جعب__ة HiCuts در درخت الگوریتم از ن__وع مح__دوده اي هس__تند و تطابقه__ايHiCuts-جعبه اي تقسیم مي شود، در نظر گرف__ت. تطابقه__ا در ncمجموعة

پیشوندي نیز تبدیل به تطابقهاي محدوده اي مي شوند. جستجو بر اساس تعلق بسته به محدوده هاي متعلق به هر نود،از ریشه شروع و تا رسیدن به برگها ادامه مي یابد.

اندازة جعبه بستگي به محدوده هایي دارد که توسط جعبه در هر بعد پوش__ش داده میش__ود. ب__ه عن__وان مث__ال در پنج ت__ایي@ ( آدرس مب__دا، آدرس مقص__د، پ__ورت مب__دا، پ__ورت مقص__د، پروتک__ل ) جعب__ه را مي ت__وان ب__ه ص__ورت

[ ] [ ] [ ] [ ] [ ]( )12,012,012,012,012,0 323216168 در نظر گرفت.−∗−∗−∗−∗− هر جعبه در برگیرندة تعدادي قانون خواهد بود که با آن اشتراک محدوده اي دارند.در هر نود دو مسئله مط__رح

مي باشد:تعداد برشها: که انتخاب آن منجر به بروز تقابل بین ارتفاع درخت و فضاي اشغالي مي شود.-۱

۲۹

Page 30: Pdn tech-classifier-ip tables-tng-ver2.1.0

بعدي که برش برروي آن باید اعمال شود: تا تعداد حداکثر قانونهاي موجود در هر برش به حداقل برسد.-۲ که متناظر با عدد تع__دادBinth مدیریت مي کند. spfac و binthالگوریتم این دو موضوع را بر اساس دو پارامتر

که یک ضریب است که مقدار فضاي اضافه شدهspfacمعقول مي باشد و مقدار جستجوي خطي را محدود مي کند و توسط برشها را محدود مي کند. اگر برش بر روي بعدي انجام شود که جداسازهاي داراي مجوز در آن زیاد باش___ند، تکرار مکرر این جداسازها در برگهاي درخت باعث اشغال بیش از نیاز فضاي حافظه خواهد شد و همچنی__ن افزای__ش در تعداد برشها شاید باعث کاهش تعداد جداسازهاي متعلق به هر زیر مجموعه شود ولي ای__ن موض__وع حج__م ن__ود

مرجع را چند برابر خواهد کرد. براي ساخت درخت، بر اساس توضیحاتي که داده شد، در ه__ر ن__ود ( ب__ا ش__روع از ریش__ه ) ب__ر اس__اس س__اختار جداسازهاي موجود در آن نود ( که در نود ریشه تمام انباره خواهد بود ) بعد@ برش و تعداد برشها انتخاب مي ش__وند. سپس در هر یک از نودهاي فرزند، اگر تعداد قانونها بیش از عدد تع__داد معق__ول باش__د، عم__ل تقس__یم ب__ه ص__ورت بازگشتي در آن نیز اجرا مي شود. حاصل درختي خواهد شد که تعداد قانونهاي موجود در برگها، ح__داکثر ب__ه ان__دازة

تعداد معقول مي باشد.

HyperCuts و HiCutsتقابل بین ۳.۳

HiCutsیک درخت تصمیم گیري را، بر اساس تصمیمات بهینه شدة محلي در هر نود، ب__ا انتخ__اب بع__د ب__رش و تعداد برشها مي سازد. برگها شامل لیستي از قوانیني مي باشند که امکان تطابق آنها در مسیر جستجو تا ب__رگ وج__ود

دارد.HyperCuts با برداشتن محدودیت حاکم بر Hicuts( برش در یک بعد ) ، آزادي عمل، ب__راي انتخ_اب چن__دین

بعد براي آزمون را، به ما مي دهد. براي هر بعد انتخاب شده، تعداد برشها بر اساس حافظه اي که در اختیار س__اختار جستجو قرار دارد انتخاب مي شود. با توجه به انجام برشهاي چندگانه ارتفاع درخت تصمیم گیري به نس__بت درخ__ت

کاهش مي یابد.HiCutsحاصل از الگوریتم انجام برشهاي چندگانه بر روي سطوح چندگانه مي تواند باعث کندي عمل جستجو در هر نود براي یافتن مس__یر

ور دستیابي و تشخیص آسان محدوده ها به هنگام عم__ل، به منظindex براي مقابله با آن از HyperCutsود. بعدي ش۳۰

Page 31: Pdn tech-classifier-ip tables-tng-ver2.1.0

جستجو استفاده مي کند. بدین صورت که: اگر یک محدوده را به چند محدودة مساوي تقسیم کنیم، قادر خواهیم بود را پی__دا کنی__م. مناس__بindex انجام ش__ود، ۴۴يبا یک عمل تقسیم که در سخت افزار مي تواند بایک یا چند جابه جای

کافي است مقداري که باید عضویت آن در محدوده ها بررسي شود، بر پهناي محدوده هاي برش خ__ورده تقس__یم و از index، ۰-۴، ۵-۹، ۱۰-۱۴ استفاده کنیم ( به عنوان مثال براي برشهاي indexاي مقدار مقدار کف خارج قسمت بر

= ۱ت مي آید بدین صورت بدس۶مربوط به عدد

4

6.(

با استفاده از آرایه ها عمل جستجو تنها به یک دستیابي به حافظه، مستقل از تع__داد برش__ها مح__دود مي ش__ود. در که دستیابي س__ریعترHiCutsنتیجه با انجام برشهاي چندگانه، ضمن حصول به درختي با ارتفاع محدودتر نسبت به

به جواب را نوید مي دهد، با اتخاذ سیساست مناسب، بار حاصل از انجام برشهاي چن__دگانه در ابع__اد گون__اگون، ب__رروي فرآیند جستجو،کاهش داده مي شود.

البته استفاده از آرایه بدین صورت مي تواند فضاي اشغالي را به دلیل وجود اشاره گرهاي تکراري و یا خالي به هدر دهد. مي توان با جلوگیري از ساخت زیردرختهاي تکراري ( براي کاهش مکانهاي غیر مفید در آرایه ) و ب__ال ران__دن

قوانین مشترک در درخت تصمیم گیري ( کاهش فضاي اشغالي ) مسئله را تاحد زیادي تلطیف کرد. نکتة دیگر اینکه وجود برشهاي چندگانه به خودي خود باعث افزایش فضاي اشغالي مي شود، چرا که اگ__ر ف__رض

براي یک انبارة مفروض، از دو برش ب__ر روي بع__د اول در ریش__ه اس__تفاده کنی__م ک__هHiCutsکنیم در یک درخت از دو برش ب__ر روي بع__دB از هشت برش بر روي بعد دوم و براي A باشد، آنگاه براي Bو Aحاصل آن دو فرزند

خواهد بود. ولي اگر تمام این برش__ها را در ن__ود۲+۸+۲=۱۲ از رتبة HiCutsسوم استفاده شود، فضاي اشغالي توسط مي توان__د ب__اHyperCuts خواهد ب__ود. ام__ا ۲*۸*۲=۳۲ انجام دهیم حافظة اشغالي از رتبة HyperCutsریشة درخت

در مواردي که حافظه کم است از انجام برشهاي چندگانه جلوگیري کند.HiCutsشبیه سازي به ط__ور م__ؤثر ب__راي مس__یریابهايHyperCutsبر طبق پیشنهاد سازندگان این الگوریتم، درجة آزادي بیشتر در

هسته بیشتر مفید مي باشد تا مسیریابهاي گوشه.

44 Shift

۳۱

Page 32: Pdn tech-classifier-ip tables-tng-ver2.1.0

HyperCutsتوصیف الگوريتم ۳.۴

HyperCutsیک الگوریتم بر پایة درختهاي تصمیم گیري مي باشد. عمل برش در ه__ر ن__ود ب__ر اس__اس اطلع__ات موجود در یک یا چند جزء انجام مي شود. در هنگام دریافت یک بسته، عمل جستجو تا رسیدن به یک ب__رگ ادام__ه پیدا مي کند و سپس جستجوي ترتیبي در بین قانونهاي موجود در برگ براي یافتن جداساز با بالتري اولویت انج__ام

مي شود. مي تواند شامل موارد زیر باشد:HyperCutsهر نود در درخت

)یک محدودة -۱ )vR.که توسط آن نود پوشش داده مي شود به نودهاي مربوط به آنها.۴۵تعدادي برش و اشاره گرهایي-۲ لیستي از قانونهایي که امکان تطابق با آنها وجود دارد، تعداد حداکثر قانونه__ایي ک__ه مي توان__د در ی__ک ن__ود-۳

ذخیره شوند از پیش تعیین شده است. الگوریتم مي باشد: الگوریتم مربوط به ساخت درخت ب__ر اس__اس شامل توصیف دو HyperCutsرویتم توصیف الگ

در انباره و الگوریتم مربوط به جستجوي درخت براي یافتن تطابق مربوط به بستة دریافتي.۴۶جداسازهاي موجود

پیش فرضهاي حاکم بر درخت تصمیم گیري۳.۴.۱

درخت تصمیم گیري باید سعي کند که در هر نود (مرحله) تا حد امکان قانونه__اي بیش__تري را از گردون__ة-۱توجهات حذف کند (با انجام برشهاي مناسب).

حداکثر تعداد مراحل که براي یک جستجو مي بایست اتفاق بیافتد، باید ح__داقل ش__ود (ک__اهش در ارتف__اع-۲درخت).

بعضي قوانین وجود دارند که بررسي آنها یا دسته بندي آنها بدون افزای__ش پیچی__دگي الگ__وریتم ( زم__اني و-۳ حافظه اي ) امکان پذیر نیست. بنابراین یک روش جدا ب__راي پ__ردازش آنه__ا بای__د وج__ود داشته باش__د (ای__ن

جداسازها آنهایي مي باشند که داراي جواز هستند، به عنوان راه حل مي توان از دو درخت استفاده کرد).

45 Index 46 Preprocessing Algorithm

۳۲

Page 33: Pdn tech-classifier-ip tables-tng-ver2.1.0

در بین تمام الگرویتمهاي دسته بندي تقابلي ما بین فضاي اشغالي و زم__ان جس__تجو وج__ود دارد، چن__انکه در-۴ الگوریتمهاي مربوط به درخت تصمیم گیري در تعداد قانونهاي کمتر برتري محسوسي در جستجوي ترتیبي نسبت به آنها احساس مي شود. بنابراین این شرایط را مي پذیریم که یک نود تا هنگامي که تعداد قانونه__اي

مي نامند که متناظر ب__ا ع__دد تع__داد معق__ول۴۷ ( آن حد را اندازة سبدکمتر باشدموجود درآن، از یک حد .انجام نشودمي باشد ) عمل شکست (برش) در آن

با انجام اعمال زیر سعي مي کند مفروضات ذکر شده را برآورده کند:HyperCutsالگوریتم ابتدا ابعادي را که داراي بیشترین تعداد مقادیر جدا هستند انتخاب مي کند.-۱ براي ابعاد انتخاب شده، بر اساس تقابل بین فضاي موجود و عمق درختي که باید حاصل شود، تعداد برش__ها-۲

را تعیین مي کند. ب__رش را ایج__اد مي کن__د، برش__هاي بیش__تري انج__امnc فرزند را متناظر با ncبرشها را انجام داده و تعداد -۳

نخواهد شد اگر که تعداد جداسازهاي موجود در هر ند از عدد اندازة سبد کوچکتر باشد.

HyperCutsساخت درخت ۳.۴.۲

چالش اصلي انتخاب ابعادي مي باشد که بیشترین یکنواخ__تي را در تع__داد جداس__ازهاي موج_ود درانتخاب ابعاد: برشها و همچنین بهترین پراکندگي قانونها در برشها را باعث شوند. نبود راه حلي کامل و مناسب، راهنمایي به س__مت استفاده از روشهاي مکاشفه اي مي باشد. آنچه که به عنوان اولین رویکرد در نظر گرفته مي شود، انتخ__اب مجم__وعه اي از ابعاد مي باشد که داراي بیشترین تعداد مقادیر یکتا باشند. توجه به این رویکرد بدون لحاظ توجهات اضافي ب__اعث خواهد شد که تمام ابعاد به عنوان یک مجموعه انتخاب شوند چرا که هر بعد مقادیري یکتا را، هر چن__د ان__دک، ب__ه مجموعة فعلي اضافه مي کند. این موضوع پیچیدگي الگ__وریتم را ب__ا ت__وجه ب__ه اس__تفاده از آرای__ة چن__د بع__دي ب__راي

ها، بال مي برد و در ضمن اضافه کردن بعدي که تعداد ناچیزي مقدار یکتا را به مجم__وعه اض__افهindexذخیره سازي مي کند بهبود قابل توجهي را در الگوریتم موجب نمي شود چرا که پراکندگي قانونهاي تقسیم شده ب__ه وس__یلة آن ب__ه

صورت انباشته مي باشد که از فرض پراکندگي یکنواخت تبعیت نمي کند و بیشتر مؤید جستجوي ترتیبي مي باشد.

47 Bucket Size

۳۳

Page 34: Pdn tech-classifier-ip tables-tng-ver2.1.0

به عنوان دومین رویکرد ابعادي انتخاب مي شوند که تعداد مقادیر یکتاي آنها بیشتر از می__انگین مق__ادیر یکت__ا در تمام ابعاد مي باشد. حال اگر دو بعد داراي مقادیر یکساني، در تعداد عناصر یکتا، بودند هر دو انتخ__اب مي ش__وند ام__ا بعدي به عنوان اولین برش استفاده مي شود که نسبت تعداد مقادیر یکتاي آن به پهناي محدوده اش بیشتر باشد ( به عبارتي اندازة محدوده اش یا بعدش کوچکتر باشد )، چرا که تقسیمات آن محدوده هایي کوچکتر را تشکیل مي دهن__د. به طور مستندتر مي توان نسبت تعداد مقادیر یکتا بر پهناي برشهاي حاصل ( تعداد عناصر موجود در برشها ) را ب__ه

عنوان مشخصة اولویت بیان کرد. قدم بعدي انتخاب تعداد برشها مي باشد، در اینجا مي بایست براي هر یک از ابع__اد انتخ__ابانتخاب تعداد برش:

ام مي باشد را تعیی__ن کنی__م. ب__راي کن__ترل حافظ__ةj که مشخص کنندة تعداد برش در بعد ncj عدد j=1,….,Nشده ، محدودیتي بر تعداد فرزندان نود فعلي اعمال مي ش__ود، ب__دین ص__ورت ک__ه تع__دادHiCutsاشغالي به طبع الگوریتم

)فرزندان حاصل از انجام برشها مي بایست کمتر از ) NspfacNf تع__داد قانونه__اي موج__ود در ن__ودN باشد. =∗∏ مشخصة برطرف کنندة تقابل بین زمان و حافظه مي باشد. تعداد کل برشهاspfacفعلي بوده و

=Dj

jncNCخواهد ) شامل تمامی@ ابعاد انتخاب شده مي باشد. این تعداد کل مي بایست کمتر از مقدارDبود که در آن )Nf.باشد

}از بین تمام مجموعه هاي محتمل }jncآن مجموعه که داراي بهترین پراکندگي و کمترین حافظة اشغالي باشد ، انتخاب مي شود.

ب__راي دس__تیابي ب__ه۴۸از آنجایي که بررسي تمام حالت ممکن این مجموعه ناممکن است از یک روش حریس__انه) عدد بهینة یکiاي هر بعد بهترین مجموعه استفاده مي شود. بدین صورت که: ابتدا به صورت مجزا بر )incتعیین

)و سپس بهترین ترکیب با محوریت قرار دادن این اعداد انتخاب مي ش__ود. ب__راي مقایس__ة مق__ادیر مختل__ف )incاز پارامترهاي زیر استفاده مي شود(این پارامترها به فرض انجام این تعداد برش در بعد مفروض و با نگاه ب__ه فرزن__دان

حاصل تنظیم شده اند):تعداد متوسط جداسازهاي موجود در فرزندان ( هر چه کمتر )-۱تعداد حداکثر جداسازهاي موجود در فرزندان ( هر چه کمتر )-۲تعداد فرزندان تهي ( هر چه کمتر )-۳

48 Greedy

۳۴

Page 35: Pdn tech-classifier-ip tables-tng-ver2.1.0

)در یک فرآیند تکراري، در هر مرحله مقدار )incرا دو برابر مي کنیم تا جایي ک__ه در مشخص__ه هاي ح__داکثر و متوسط جداسازها، تغییر قابل ملحظه اي صورت نگیرد و یا تعداد فرزندان تهي افزایش قابل ملحظه اي داشته باشد.

استفاده مي کنیم. این عمل براي هر بعد بهjncدر این صورت از آخرین مقدار (مقدار قبل از مقدار فعلي) به عنوان صورت جداگانه انجام مي شود.

تعریف مي شوند.۴۹توجه: براي اجزایي که از تطابق عیني استفاده مي کنند، برشها بر اساس توابع درهم ساز

بهبود الگوريتم۳.۴.۳

به دلیل تاثیر مستقیم تعداد قانونهاي موجود در هر نود و تعداد فرزندان در حافظة اشغالي الگ__وریتم از روش__هايزیر براي کاهش تعداد جداسازها و فرزندان و به تبع آن کاهش فضاي اشغالي استفاده مي شود:

نکته: انجام بهینه سازیها در ساختار درخت به نظر با فرض ایستایي بودن انباره انجام شده است، چ__را ک_ه ح__ذف بعضي اجزاء@ درخت، انجام به روزرسانیهاي مکرر را مشکل و به شکلي غی__ر ممک__ن مي س__ازد. از جمل__ة ای__ن م__وارد

ترکیب نودها و همپوشاني جداسازها مي باشد. : هدف حذف سربارة ناشي از ذخیرة نودهاي مساوي به صورت مجزا مي باش__د. ب__ه عب__ارتي۵۰ترکیب نودها-۱

اگر تعدادي از فرزندان یک نود داراي مجموعة جداسازهاي مساوي باشند به جاي ساخت و ذخیرة یک زیردرخت مجزا براي هر یک از آنها، یک زیر درخت براي تمام آنها ساخته مي شود.

دوده اي، در ی__ک ن__ود با همپوشاني مح__Rz و Rkدو جداساز : گاهي اتفاق میافتد که ۵۱همپوشاني جداسازها-۲ قرار مي گیرند. به عبارتي اگر بسته اي توسط یکي از آنها پذیرفته شود، مطمئنا توسط دیگ__ري ه__م پ__ذیرفته

د، در تمام مواردي که بسته اي توسط آنها پذیرفته مي شود، بیشتر باشRz از Rk اگر اولویت خواهد شد. حال ب اتلف حافظه و به طب__ع آن افزای__ش زم__ان تنها مسبRz انتخاب خواهد شد. بنابراین نگهداري Rkقانون

جستجو خواهد بود، پس چه بهتر که از گردونة توجهات حذف شود. : هر نود اسمی، بر اساس برشهاي انجام شده، محدوده اي را پوشش مي ده__د. گ__اهي۵۲انقباض محدوده اي-۳

49 Hash Functions50 Node Merging51 Node Overlap52 Region Compaction

۳۵

Page 36: Pdn tech-classifier-ip tables-tng-ver2.1.0

اتفاق مي افتد که جداسازهاي موجود در آن نود زیر محدوده اي از آن محدوده را پوش__ش مي دهن__د ک__ه در تقابل با آن بسیار کوچکتر است. در نتیجه مي توان به جاي اس__تفاده از مح__دودة اس__مي از مح__دودة واقع__ي

استفاده کرد چرا که این موضوع، اندازة نود را کاهش مي دهد. : اگر تمام فرزن__دان ی__ک ن__ود، مجموع__ة مش__ترکي را۵۳بالراندن قوانین مشترک در درخت تصمیم گیري-۴

پوشش دهند، این مجموعه به جاي تکرار در فرزندان در نود پ__در نگه__داري مي ش__ود. نتیج__ة مس__تقیم آنکاهش حجم فضاي حافظه اي درخت خواهد بود.

که درخت را از برگها به سمت ریشه بررسي مي کند۵۴براي انجام این بهینه سازیها، از یک الگوریتم پایین-به-بالاستفاده مي شود.

53 Pushing Common Rule Subsets Upwards54 Bottom-up

۳۶