效能擂台組競賽辦法

效能擂台組

競賽主題

透過SDN Controller挑戰賽,展現參賽者對SDN網路技術之實作能力

  1. SDN Controller程式設計比賽(Problem Solving)
  2. SDN Controller 演算法設計
  3. SDN Controller效能調校
  4. 虛擬機系統效能調校

參賽資格

參賽者隊伍限制

  • 參賽隊伍數未達3 隊時,得取消該組比賽。

參賽者資格

  • 在校學生及社會人士均可報名參加。
  • 每隊由1至5人自由組成,且不得跨隊,但可同時報名  [應用擂台組]競賽。
  • 不限制同一件作品。
  • 參賽作品僅標示作品名及作品隊名,組員名字、校名、校徽、所屬單位及指導老師等可能揭露參賽隊伍身分之資訊皆不得標示於任何作品相關資料內(包括作品檔案、作品說明書、作品說明短片及簡報)
  • 作品名及作品隊名,請勿以明示或隱喻方式等可能揭露參賽隊伍身分之資訊命名該項作品。
  • 報名截止日止,未滿20歲之參賽者(民國86年8月8日(含) 以後出生者),須檢附法定代理人同意書。(文件下載)

指導老師

  • 每隊可設指導老師至多2名(建議以不同領域為原則)。
  • 指導老師不得進入競賽之簡報會場。
  • 參賽者不得擔任己隊或他隊之指導老師。
  • 指導老師相關資訊不得標示於參賽作品中(包括作品檔案、作品說明書、作品說明短片與簡報等)。
  • 違反上述規定者,將視情節扣分。情節重大者,評審團得決定其參賽資格。

競賽時程

報名

  • 完成線上報名
  • (限時掛號)繳交報名表暨參賽同意書
5/1-8/75/1(一)開始受理報名
8/7(一)中午12點截止報名,請於中午12點前於競賽官網完成線上報名

初賽

  • 參賽團隊須在指定期間內完成VM交付,參賽團隊於初賽最多有2次交付機會,第一次交付之截止日期為8/7(一),第二次交付之截止日期為8/22(二)。如果參賽隊伍進行第2次交付,則以第二次的成績為準
  • VM交付方式為將VM儲存在usb隨身碟中,以限時掛號郵寄至地址: 104台北市中山區長安東路一段18號6樓(2017 SDN/NFV創新應用競賽-效能擂台組) 奇奇小姐收 (以限掛郵戳為憑),信封上請註明隊伍名稱及隊伍編號
8/7-8/22
8/7(一)-8/22(二)初賽作品投件

公告入圍決賽名單

  • 參賽團隊須通過所有挑戰項目1~5才能晉級決賽
  • 遴選以8個團隊為原則進入決賽,最終入圍決賽名單仍由評審視參賽作品之水準調整入圍作品件數
  • 如果超過8隊通過所有挑戰項目1~5, 則分別依照下列挑戰項目的成績由評審團會議決定入圍名單
    • 依照挑戰項目6: 鏈路使用頻寬之得分高低決定入圍名單
    • 依照挑戰項目2: OF Switch連線數決定入圍名單
    • 依照挑戰項目3: Topology Discovery完成時間決定入圍名單
  • 主辦單位於8月底-9月初公佈決賽競賽辦法,決賽題目會以Traffic Engineering
9/8

決賽

  • 參賽團隊於決賽最多有2次交付機會,第一次交付之截止日期為9/14(四),第二次交付之截止日期為9/29(五),如果參賽隊伍進行第2次交付,則以第二次的成績為準
9月14日-9月29日

決賽報告

  • 參賽者於決賽會議進行簡報,現場報告技術細節與突破
10/23

頒獎典禮

  • 舉行頒獎典禮
11月

初賽規則

  1. 初賽-參賽團隊需繳交符合規格之VM(Virtual Machine),VM內包含開機後會自動執行之SDN Controller。主辦單位會對於該SDN Controller進行測試,並依照測試結果決定入圍決賽之參賽團隊。參賽團隊須在指定期間內完成VM交付,參賽團隊於初賽最多有2次交付機會,第一次交付之截止日期為8/7(一),第二次交付之截止日期為8/22(二)。如果參賽隊伍進行第2次交付,則以第二次的成績為準。
  2. VM交付方式為將VM儲存在usb隨身碟中,以限時掛號郵寄至地址: 104台北市中山區長安東路一段18號6樓(2017 SDN/NFV創新應用競賽-效能擂台組) 奇奇小姐收 (以限掛郵戳為憑) ,信封上請註明隊伍名稱及隊伍編號。
  3. 所有挑戰項目將由主辦單位執行量測,每個參賽團隊的每個挑戰項目將執行3次的量測,並取最好的一次紀錄到成績報告中。
  4. 只要有一挑戰項目失敗,該參賽團隊之初賽挑戰結果即為不通過,後續挑戰項目將不會被量測。
  5. 超過8隊通過所有挑戰項目1~5,才會對於通過所有挑戰項目1~5之參賽隊伍進行挑戰項目6之量測。
  6. 所有挑戰項目之測量環境皆為封閉網路環境, 無法連接Internet。


挑戰項目1~6超連結

初賽評分標準

  • 參賽團隊須通過所有挑戰項目1~5才能晉級決賽
  • 如果超過8隊通過所有挑戰項目1~5, 則分別依照下列挑戰項目的成績由評審團會議決定入圍名單
    • 依照挑戰項目6: 鏈路使用頻寬之得分高低決定入圍名單
    • 依照挑戰項目2: OF Switch連線數決定入圍名單
    • 依照挑戰項目3: Topology Discovery完成時間決定入圍名單

決賽評分標準與規則

決賽包含二階段:
第一階段:參賽者繳交符合規格之VM(Virtual Machine),經由主辦單位進行量測, 依照量測結果評分(60%)。
第二階段:參賽者於決賽會議進行簡報,報告技術細節與突破,由評審委員評分(40%)。

第一階段

參賽團隊需繳交符合規格之VM(Virtual Machine),VM內包含開機後會自動執行之SDN Controller。主辦單位會對於該SDN Controller進行測試,並依照量測結果評分(60%)。

  1. 決賽題目會以traffic engineering為主,決賽挑戰項目將於8月底~9月初進行公布
  2. 參賽團隊需通過所有挑戰項目,且以量測到的數值做為評分依據。
  3. 參賽團隊須在指定期間內完成VM交付,參賽團隊於決賽最多有2次交付機會,第一次交付之截止日期為9/14(四),第二次交付之截止日期為9/29(五)。如果參賽隊伍進行第2次交付,則以第二次的成績為準。
  4. VM交付方式為將VM儲存在usb隨身碟中,以限時掛號郵寄至地址: 104台北市中山區長安東路一段18號6樓(2017 SDN/NFV創新應用競賽-效能擂台組) 奇奇小姐收 (以限掛郵戳為憑),信封上請註明隊伍名稱及隊伍編號
  5. 所有挑戰項目將由主辦單位執行量測,每個參賽團隊的每個挑戰項目將執行3次的量測,並取最好的一次紀錄到成績報告中。

第二階段

  • 量測成績
  • 技術進步性:提升SDN Controller效能之技術(例如演算法提升, 程式效能優化, 系統參數調整.等不同技術之進步性)
  • 技術創意性:提升SDN Controller效能之技術的創意性
  • 關鍵技術掌握程度
    • 由評審委員針對上述四項評分標準 + 表達能力進行評選
    • 依照現場簡報,該分數佔最後總分之40%

報名須知

  1. 參賽者投件之作品,智慧財產權屬於參賽者,其參賽資料均受個資法保護。為加強推廣,凡參加SDN/NFV創新應用競賽之作品,須同意主辦單位擁有該參賽作品之公開發表、重製、公開播送、公開展示、重新編輯與出版等使用於非商業、學術或推廣教育之權利。
  2. 按中華民國稅法,得獎者為國內居住者的個人,或在國內有固定營業場所的營利事業,其中獎的獎金或給與,按給付金額扣取10%,而得獎者為非國內居住者的個人,或在國內無固定營業場所的營利事業,一律按給付金額扣取20%。得獎人給付原則將按當年相關稅法給付,不得異議。
  3. 參賽隊伍於初賽上傳參賽作品截止時間後不得更換參賽者,否則主辦單位有權取消該參賽隊伍之參賽資或得獎資格。
  4. 參賽者應尊重評審委員會之決定,對評審結果不得異議。為求競賽之品質,評審委員會有權更動入圍隊伍之數目與獎項。
  5. 參賽作品可能因為參與競賽而喪失其專利新穎性,影響其申請專利之權利,故請參賽者特別注意,如欲為參賽作品申請專利,應於參賽前自行向智慧財產局提出申請。※更多注意事項請參閱「報名表暨參賽同意書」,並以參賽同意書內文為準。 

初賽挑戰項目

項目1

VM 開機後可自動啟動 SDN Controller

  • VM須符合以下限制規格,若不符合限制規格將取消參賽資格
    • VM打包: OVF
      • 檔名格式為sdncontroller_N17XXXX.ova, 其中XXXX為參賽團隊隊伍編號
        • 例如,隊伍編號為N170001者,檔案名稱為sdncontroller_N170001.ova
      • 虛擬器: VirtualBox
      • VM 系統設定限制
        • CPU: 4 Core
        • Memory : 8G
        • HD: 32G (set to dynamic)
      • Controller IP: Please configure interface eth0 of the VM and Controller IP to 192.168.1.2
      • Controller service port
        • OpenFlow 1.3 : TCP 6653
        • RESTful API: 9191
      • VM開機後,會自動設定IP Address為168.1.2,並三分鐘內自動完成SDN Controller啟動,SDN Controller需要能於192.168.1.2提供服務。
      • VM開機3分鐘後,以單一OF switch模擬器對Controller 192.168.1.2的6653 port進行OpenFlow 連線。 switch能與Controller建立TCP連線,且收到Controller發送之OpenFlow Hello Message者即為通過,若否,則為失敗。
      • VM開機3分鐘後,會開始進行挑戰項目2~5的測試。

項目2

至少可支援同時有1000個OF switch連線

  • 1000個OF switch會依序與Controller連線:當一個OF switch完成與Controller連線並收到Controller的Hello訊息後,下一個OF switch才會開始與Controller連線。
  • OF switch連線數測量以每個OF switch可正確與Controller交換Hello、Feature Request/Reply等訊息後,且每個OF switch每隔N(N=10)秒會傳送一次Echo Request給Controller,Controller需能正確回覆Echo Reply,持續1分鐘以上。如果測試儀器少收到任何一個Echo Reply,則判斷此OF switch無法正確與Controller連線。
  • 當超過8隊通過所有初賽項目時,會測試並記錄最高可以支援的OF Switch數目(可能會測試超過1000個OF switch),當作隊伍評分時排序的依據。

註1:使用cbench模擬switch

項目3

可依照指定格式正確顯示網路拓樸資訊

  • SDN Controller需提供網路拓樸資訊查詢之RESTful API,該RESTful API須符合以下規範
    • URI : http://192.168.1.2:9191/topology
    • Method : GET
    • response content格式:

{"links":[

{"src":{“dpid”:”<value of dpid>”, "port":"<value of port num>"},

"dst":{“dpid”:”<value of dpid>”, "port":"<value of port num>"} },

     …..

{"src":{“dpid”:”<value of dpid>, "port":"<value of port num>"},

"dst":{“dpid”:”<value of dpid>, "port":"<value of port num>"} }

 ] }

  • 範例

shell > curl http://192.168.1.2:9191/topology

output :

{

    “links” : [

        {

            "src" : { “dpid” : “1001”, “port” : “2” },

            “dest” : { “dpid” : “1003” , “port” : “1” }

        },

        {

            "src" : { “dpid” : “1001”, “port” : “3” },

            “dest” : { “dpid” : “1002”, “port” : “1” }

        },

        {

            "src" : { “dpid” : “1002”, “port” : “1” },

            “dest” : { “dpid” : “1001”, “port” : “3” }

        },

        {

            "src" : { “dpid” : “1003”, “port” : “1” },

            “dest” : { “dpid” : “1001”, “port” : “3” }

        }       

    ]

}

  • 網路拓樸可能包含Linear、Ring、Tree、Mesh等不同型態, 總共會測試三種不同的網路拓樸, 結果都需正確才能通過挑戰。測試時會使用mininet 模擬不同拓樸進行測試。以下為網路拓樸之範例提供參考:

10 switches Linear Topology example

20個switches的Ring Topology example

  • 需在所有switch連接Controller後的10秒內完成Topology Discovery:
    • switch連接Controller的定義為switch對Controller的6653 port發送出TCP SYN封包。
    • 若在所有switch連接Controller後的第11秒,以http://192.168.1.2:9191/topology取的之Topology資訊不正確,則此項目為失敗。
  • 當超過8隊通過所有初賽項目時, 會量測Topology Discovery完成時間, 當作隊伍評分時排序的依據。Topology Discovery完成時間量測方式:
    • 在啟動mininet的同時發送http request : http://192.168.1.2:9191/topology以驗證Topology資訊的正確性並量測完成時間,步驟如下:
      1. 發送http request到http://192.168.1.2:9191/topology,若為第一次發送,則記錄此發送時間為T0
      2. 收到http response後,記錄收到此http response 的時間為Tn,其中n表示第n個run (例如, 第一次收到的http response 的時間為T1,以此類推)
      3. 檢驗步驟2收到之Topology資訊是否正確
        • 若正確,則N=n, 並結束發送 http request,執行步驟4
        • 若不正確,則間隔10ms之後重複步驟1~3
      4. Topology Discovery完成時間即為TN-T0

項目4

在各種網路拓樸下的兩個Host可以互ping成功

  • 網路拓樸包含3個拓樸題目,可能涵蓋Linear、Ring、Tree、Mesh等類型,例如 20 switches 的 Ring Topology、63個switches的Tree Topology 等等。

20個switches的Ring Topology example

63個switches的Tree Topology example

註:使用mininet 模擬switch and host

  • 所有拓樸題目於執行量測前,須能先透過http://192.168.1.2:9191/topology可以取得正確的拓樸資料。
    • Topology Discovery需在所有switch連接Controller後的10秒內完成。(參閱挑戰項目3說明)
  • 註:所有hosts皆屬於同一網段(10.1.1.0/24),且兩個host會先執行gratuitous ARP的動作(例如 arping -U -c 1 -I eth0 255.255.255.255),確保Controller可以事先知道hosts的位置。

項目5

在各種網路拓樸下,鍊路故障時,可自動failover

  • 在網路拓樸中包含兩個Host,Host1以每秒發送1個UDP封包的速度,連續發送N個UDP封包到Host2。在此過程中,會拆除拓樸中的某些Link(一次只會拆除一個Link),確認Host2收到的封包數目合乎要求。(允許切換過程中有packet loss 的狀況發生)
  • 網路拓樸包含2個拓樸題目,可能涵蓋Linear、Ring、Tree、Mesh等類型,例如 20 switches 的 Ring Topology等等。
    • 舉例如下

20 switches 的 Ring Topology example :

  1. Host1以每秒1個封包的速度開始連續發送40個UDP封包到Host2
  2. 第5秒時拆除Link2
  3. 第15秒時接回Link2
  4. 第20秒時拆除Link10
  5. 第30秒時接回Link10
  6. 當Host1完成40個封包發送後進行量測, 如果Host2收到之封包數目大於30則表示測試通過。(允許切換過程中遺失10個封包)

註:使用mininet 模擬switch and host

  • 所有拓樸題目於執行量測前,須能先透過http://192.168.1.2:9191/topology(網路拓樸資訊查詢之RESTful API )取得正確的拓樸資料。
    • Topology Discovery需在所有switch連接Controller後的10秒內完成。(參閱挑戰項目3說明)
  • 註:所有hosts皆屬於同一網段(10.1.1.0/24),且兩個host會先執行gratuitous ARP的動作(例如 arping -U -c 1 -I eth0 255.255.255.255),確保Controller可以事先知道hosts的位置。

項目6

(加分題) 鏈路使用頻寬資訊。

  • SDN Controller需提供查詢 鏈路目前使用之頻寬資訊 的RESTful API,該RESTful API須符合以下規範
    • URI : http://192.168.1.2:9191/linkbandwidth
    • Method : GET
    • Request URL格式

http://192.168.1.2:9191/linkbandwidth?dpid=<SRC_DPID>&port=<SRC_PORT>

其中

  • <SRC_DPID>為該link之source dpid
  • <SRC_PORT>為該link之source port
  • response content格式:

{

"rx":“< value of the current receive bandwidth>”,

"tx":“< value of the current transmit bandwidth>”

}

註:頻寬單位為kbps

  • 範例: 查詢link之source port為s1:port 3目前使用的頻寬資訊

shell > curl http://192.168.1.2:9191/linkbandwidth?dpid=1001&port=3

output :

{ “rx” : “100”,  “tx” : “30000” }

  • 網路拓樸可能包含Linear、Ring、Tree、Mesh等不同型態, 總共會測試二種不同的網路拓樸。測試時會使用mininet 模擬不同拓樸進行測試。以下為網路拓樸之範例提供參考:

4 switches 的 Linear Topology example :

  1. 在T0時,Host1以50 kbps速度開始連續發送UDP封包到Host2
  2. 測試程式會發送GET http://192.168.1.2:9191/linkbandwidth?dpid=1002&port=3
  3. 等待直到收到 response 或時間超過T0 10秒
    • 若時間超過T0 10秒,則結束本題量測,且本題得分為0
    • 若收到response,則執行下一步驟
  4. 收到http response後,檢驗結果是否為 { “rx” : “0”,  “tx” : “50” }
    • 若檢驗結果正確,則執行下一步驟
    • 若檢驗結果失敗,則間隔10ms之後重複步驟2~4

註:bandwidth值允許上下10%的誤差, 以此例來說, tx 值的容許範圍為45~55 kbps

  1. 等待5秒後,Host1停止傳送封包 (記錄此時間為T1)
  2. 測試程式會發送GET http://192.168.1.2:9191/linkbandwidth?dpid=1002&port=3
  3. 等待直到收到 response 或時間超過T1 10
    • 若時間超過T1 10,則結束本題量測,且本題得分為1
    • 若收到response,則執行下一步驟
  4. 收到http response後,檢驗結果是否為 { “rx” : “0”,  “tx” : “0” }
    • 若檢驗結果正確,則結束本題量測,本題得分為 2
    • 若檢驗結果失敗,則間隔10ms之後重複步驟6~8
  • 需在所有switch連接Controller後的10秒內完成Topology Discovery:
    • switch連接Controller的定義為switch對Controller的6653 port發送出TCP SYN封包。
    • 若在所有switch連接Controller後的第11秒,以http://192.168.1.2:9191/topology取的之Topology資訊不正確,則此項目得分為0分。
    • 當超過8隊通過所有初賽項目時, 會依據所有拓樸題目之總得分, 當作隊伍評分時排序的依據。

立即使用FB Messenger聯絡通訊大賽

會員登入