0%

本文基於 SDN Controller Floodlight 的原始碼進行了一次簡單的分析,藉由分析這些原始碼更可以學習到其內部是如何轉送封包的,藉由 Topology 模組提供的 Global Topology 資訊, Floodlight 可以從該資訊中對於任何一個點到點的之間的連線找到一條傳送路徑。接者針對這傳送路徑上所有的交換機輸入對應的 Openflow 規則來幫忙轉送封包。相對於文件的更新,程式碼本身的迭代速度更為敏捷,因此常常會發生文件跟不上實際運行功能的案例。藉由學習閱讀原始碼,我們可以更快也更清楚的掌握當前這些開源軟體的發展狀態,甚至也能夠貢獻社群幫忙補齊文件。

Read more »

在floodlight這個openflow controller中,對於module之間的執行順序是如何決定的,這部分很重要

如圖為例,假設有四個component,分別是 LLDP、DEVICE、Forwarding、VirtualNetwork這四個module
如果今天switch送了一個封包到controller來,那這四個module誰要先處理這個封包? 順序交換是否會有影響?

Read more »

這次想要研究一下C++中new這個關鍵字,在c++中new總共扮演了三種角色

  • new operator
  • operator new
  • placement new
Read more »

nmap是一個linux下的工具

nmap - Network exploration tool and security / port scanner

Read more »

Python中有個很強大的字串轉換工具 maketrans 跟 translate

str.translate(table[, deletechars]);
Parameters
table -- You can use the maketrans() helper function in the string module to create a translation table.

deletechars -- The list of characters to be removed from the source string.

字串中只要有符合deletechars中的字元都會被刪除,然後剩下的字元就會依照table裡面的mapping來做轉換。

這個mapping的就要利用string.maketrans()來幫忙產生囉,

str.maketrans(intab, outtab]);
Parameters
intab -- This is the string having actual characters.

outtab -- This is the string having corresponding mapping character.

intab跟outtab兩者的長度必須要一樣,會把intab中每一個字元與outtab中相同位置的字元做mapping。

舉例來說

Read more »

Floodlight把module分成core跟application兩個方向為主
core的部分提供的都是比較核心的功能,譬如PacketIN,PacketOUt,或是拓樸的更動…等

而application則是用這些core的功能來達到一些進階的功能
如防火牆、最短路徑搜尋….等

這邊就簡單研究一下Core Module中的相關功能。

Read more »

要撰寫IRC 機器人其實不難,網路上到處都有範例,其實就是簡單的NP,字串來回處理而以。

  1. Connect To IRC SERVER
  2. Send User Infomation
  3. Join a channel
  4. Read data from irc channel and do response
  5. Send something to irc channel
  6. looping (4~5)
Read more »

本文基於 Openflow 1.0 的規則書,跟大家分享一下在 Openflow 的規範裡到底什麼叫做 Port, 以及有多少種相關的 Port,在使用上要注意些什麼。

Read more »