120 likes | 245 Views
מגישים: חופית הרשקו, יפתח הרצוג מנחה: רן מנביץ' פרויקט שנתי - אביב 2012. המעבדה למערכות תוכנה מרושתות NetFPGA Rate Limiter project. מוטיבציה. העליה בקצבי תעבורה ברשת ובהיקפיהם דורשים פיתוח פתרונות חדשים במנגנוני הרשת השונים ושיפור הקיימים.
E N D
מגישים: חופית הרשקו, יפתח הרצוג מנחה: רן מנביץ' פרויקט שנתי - אביב 2012 המעבדה למערכות תוכנה מרושתותNetFPGA Rate Limiter project
מוטיבציה • העליה בקצבי תעבורה ברשת ובהיקפיהם דורשים פיתוח פתרונות חדשים במנגנוני הרשת השונים ושיפור הקיימים. • עולה צורך בפיתוח אלגוריתמים חדשים בציוד רשת, אשר ימומשו על רכיבים מתכנתים - FPGA או רכיבי ASIC. • יש צורך בתיקוף זול בחומרה של האלגוריתמים.
NetFPGA • 4 ממשקי 1Gb/sec • ממשק PCI למחשב המריץ לינוקס. • רכיב מתכנת:Xilinx Virtex-II pro 50
NetFPGA • פותח באוניברסיטת סטנפורד • נמצא בשימוש אקדמי ברחבי העולם - קהילת פיתוח עולמית. • מאפשר מימוש חסכוני בזמן ובתקציב. • סביבת קוד פתוח עם מימושים קיימים המתאימים להרחבתם (reference NIC, reference router). • פרויקטים קיימים מממשים מודולים על רכיב ה- FPGA וממשקים בתוכנה. דוגמאות: מדידת תעבורה, סיווג תעבורה, OpenFlow
NetFPGA Rate Limiter הפרויקט מיועד להציג השמשה ראשונית של הפלטפורמה בטכניון, לצורך מימוש עתידי בחומרה של אלגוריתמי רשת שנמצאים במחקר.
NetFPGA Rate Limiter יישום: • החומרה תתבסס על מודול קיים בשם Reference Router , ותתאים אותו לדרישות הפרויקט. יעשה בשלושה שלבים: • שלב א' - הגבלת תעבורה בחומרה לקצב מסוים למספר flows מוגדרים במפורש בקוד הFPGA. • שלב ב' - כתיבת ממשק תוכנה לשליטה על בחירת הflows וקצב התעבורה בכל אחד מהם. • שלב ג' - הוספת הגבלה גלובלית לכל יתר ה flows והרחבת ממשק התוכנה לשליטה עליה.
דרישות שלב א' • החומרה תכתב ב- Verilog. • הגדרת flows קבועים בחומרה , למשל תעבורה מכתובת 192.168.1.3:25500 ל 192.168.1.10:80 • מספר ה flows שהקצב שלהם יוגבל בחומרה בשלב זה יהיה חמישה • הגדרת קצב תעבורה מקסימלי בחומרה לכל flow . • הגבלת התעבורה לקצב המקסימלי בהתאם לflow דרישות בדיקתיות – • יעשה סימון בheader של חבילות של ה flows שאנחנו מגבילים, ע"מ שנוכל לדעת שהמנגנון מזהה אותם גם אם לא עברו את הקצב המותר. חבילות שעברו אותו יזרקו בהמשך. • יספרו כלל החבילות של ה flows הנבחרים ויוצג ב header מספר כלל החבילות ומספר החבילות שנזרקו מאז הreset האחרון של המערכת.
דרישות שלב ב' • מימוש ממשק תוכנה בJAVA, קיימת ב NetFPGA תשתית לממשק תוכנתי. • קביעת זהות ה- flows מהשלב הראשון דרך ממשק התוכנה. • קביעת מגבלת הקצב דרך ממשק התוכנה. • קצב התעבורה ב- flows יוצג בממשק התוכנה בזמן אמת בחלון זמן מיצוע של TBD.
דרישות שלב ג' • בנוסף לדרישות הקודמות, הוספת הגבלה גלובלית לflows שלא מוגדרים באופן ייחודי: לכל אחד מ flows אלה יוגבל קצב התעבורה לסף אחיד. • מספר ה flows הנוספים שהמערכת תהיה מסוגלת לטפל בהם במקביל הוא עד 1000 (או TBD, בהתאם למשאבים שמעוניינים להשקיע במערכת) • היות שהמערכת מוגבלת במספר ה flows שתוכל לתעד במקביל, תוגדר הסתברות ש flow יוגבל לקצב נמוך יותר מהסף האחיד. • הרחבת ממשק התוכנה לשם שליטה בסף הקצב הגלובאלי והצגת קצב התעבורה ב- flows שבמערכת
שלב א' – תחילת מימוש • המימוש החומרתי בפרויקט יתבסס על מודול קיים של Reference Router (בסכימה) ויתאים אותו לדרישות הפרויקט • הוספת מודולים לניטור קצב התעבורה והגבלתו.
עד עכשיו • למידת המערכת וצורת העבודה מולה. • למידת סביבת העבודה. • למידת המודולים ממימושים קיימים. • תיאור קונספטואלי של המודולים הדרושים, ואופן ההשתלבות שלהם במימוש הקיים. • ניסוח דרישות הפרויקט ותחילת אפיון. • הבנת ממשקי המודול של ה Reference Router. • בדיקת שפיות מערכת ע"י מודול מנוון.