openflow訊息由64bit,8個位元組組成
openflow協議資料報由openflow header和openflow message兩部分組成
所有的open flow訊息都是從open flow頭開始,其格式如下
wireshark分析如下
openflow message結構與具體訊息型別有關:
openflow訊息型別:
安全通道建立的步驟
1.由openflow交換機對openflow控制器建立未加密的tcp連線或基於確定要使用的openflow版本tls的連線
2.確定安全通道中要使用的openflow版本
3.握手
4.交換其他必要的設定等(任意)
建立安全通道後,要確定通過安全通道進行交換的openflow協議的版本。安全通道建立後的初始動作如下圖
建立安全通道後,為了確定將要使用的版本,openflow交換機和openflow控制器都將傳送hello訊息。hello訊息僅由openflow頭構成。
傳送的hello訊息中攜帶各自支援的最大版本號。安全通道中要使用的版本號就是基於這些資訊確定的。具體而言,就是將採用openflow交換機和openflow控制器所傳送的版本號中較小的那乙個版本。
對於要使用的openflow版本未取得相一致的意見時,需要傳送包含ofpet_hello_failed的error 訊息
握手通過交換hello訊息建立安全通道後,執行openflow 控制器和openflow交換機的握手。openflow 控制器通過握手掌握openflow交換機的相關資訊後,即可對openflow交換機進行控制。握手之前的步驟皆為建立安全通道後的初始設定。
openflow 控制器向openflow交換機傳送問詢功能的features請求訊息,openflow交換機返回features響應訊息,從而完成握手。與hello訊息相同,features請求訊息也僅由openflow頭構成。
features響應訊息中包含的各欄位內容如表2.11所示。從表2.11可知,features響應訊息把與openflow交換機相關的基本資訊都提供給了openflow控制器。openflow控制器可獲知openflow交換機支援的行動、傳輸容量以及存在什麼樣的物理埠等資訊。
請求訊息規範中雖未規定握手後必須這樣做,但openflow控制器有時會向openflow
交換機傳送set_config訊息以傳送設定資訊,或傳送get_config請求訊息以查詢openflow交換機的設定狀態。
flow-mod訊息
packet-in
packet-out
port-status
在openflow交換機中新增、刪除或修改物理埠時,需要傳送port-
status 訊息來通知openflow 控制器。
port-status訊息的結構如圖2.20所示。作為表示傳送該訊息理由的reason,定義了ofppr_add(0)、ofppr_delete(1)、ofppr_modify(2)
這3種數值。ofp phy port結構體與圖2.12所示相同。
flow-removed 訊息
當openflow交換機中設定的流表項超時時,openflow交換機要向openflow控制器傳送flow-removed訊息。為確保openflow控制器收到該訊息,僅在其發出請求時才傳送。
error 訊息
error 訊息的作用是通知出現了某種錯誤。openflow交換機和openflow控制器都可傳送error訊息
barrier訊息
在openflow協議中,並非每乙個通過安全通道進行交換的訊息都需要響應。例如,初始設定後有時會使用的setconfig訊息就並不需要響應。因此,使用安全通道傳送訊息的一方有時並不知道接收資訊方處理訊息的程度。
為了解決類似問題,在openflow協議中備有稱為barrier訊息的機制。barrier訊息的目的是掌握訊息的處理程度,雖然很普通,但卻是openflow協議的重要訊息機制之一
echo 訊息
openflow 控制器和openflow交換機可通過傳送echo請求訊息來確認二者之間是否連線、檢測通訊延遲、測量通訊頻寬等。接收echo請求訊息的一方會向對方返回echo響應訊息(圖2.24)。
相關鏈結
【openflow 交換機與控制器互動步驟】
openflow協議詳解
OpenFlow交換機 之 流表
所謂流表,其實可被視作是openflow對網路裝置的資料 功能的一種抽象。在傳統網路裝置中,交換機和路由器的資料 需要依賴裝置中儲存的二層mac位址 表或者三層ip位址路由表,而openflow交換機中使用的流表也是如此,不過在它的表項中整合了網路中各個層次的網路配置資訊,從而在進行資料 時可以使用...
OpenFlow交換機的實現總結
先粗略介紹,後續會逐漸完善。openflow交換機通過使用openflow協議的安全通道與控制器進行通訊。其具體實現如下示意圖所示 對於乙個新到達的資料流,交換機通常的做法是,把該資料報傳送給控制器,由控制器來決定資料報的下一步操作。至於已存在的,則會直接根據原有的傳送路徑,發往目的點。根據上圖,在...
傳統交換機或路由器與OpenFlow交換機區別
openflow交換機分為 純of交換機 of only 和支援of交換機 of enable 前者僅需要支援必備行動,後者還可以支援normal normal 指按照傳統交換機的2 層或3 層進行 處理 行動,同時,雙方都可已支援泛洪行動 flood action openflow交換機由flow...