A:オープンフロープロトコルの概要
コントローラとスイッチとの間の通信のためのオープンフロープロトコルは、オープンな標準的な方法を提供します。コントローラとの情報交換のためのセキュアなチャネルを介してオープンフロースイッチ
2:オープンフローメッセージタイプ
(A)コントローラ・ツー・スイッチメッセージ
1.Featuresニュース
セキュア・セッション伝送を確立するとき、コントローラは、スイッチのスイッチFeature_Request要求特性情報にメッセージを送信し、スイッチの応答は、メッセージによってサポートされる機能Feature_Reply
2.Configurationニュース
あなたはスイッチのクエリの構成情報を設定することができ、スイッチがクエリに応答する必要があります
3.Modify状態のメッセージ
修正フローエントリのステータスメッセージは、主に、追加、変更、スイッチを削除し、グループエントリのポートステートするために使用されています
4.Read状態のメッセージ
5.Send-パケットメッセージ
汎用パケット-でキャッシュされたデータパケットのスイッチを見つけるために、Buffer_idを運ぶ必要があり、パケットアウト情報メッセージに応答して処理します
6.Barrierニュース
メッセージが実行される前に行動するためのコントローラに指示します
(B)非同期情報(非同期)
そのようなトリガメッセージは、コントローラによってトリガではなく、新たなパケットをコントローラ到達を通知するためのスイッチを開始し、スイッチが状態を変更していません
メッセージ1.Packetイン
2.Flow除去メッセージ
3.Port-ステータスメッセージ
4.Errorニュース
(C)symmtricメッセージ(対称)
双方は、送信することができます
1.Helloニュース
2.Echoニュース
このメッセージは、遅延、帯域幅を測定するために使用される、またはアクティブな接続を維持します
3.Vendorニュース
3:オープンフローのメッセージ・フォーマット
オープンフローオープンフローヘッドとメッセージ本文
(A)オープンフローヘッド
(ii)のオープンフローメッセージ本文
特定のメッセージタイプのために、メッセージタイプが列挙型であり、各メッセージタイプは定数として定義されています
主通信フローオープンフロープロトコル:フォー
(A)接続コントローラとスイッチを確立します
(2)両面後、ハローメッセージバージョンネゴシエーションを送信する方法をTLSトンネルを確立します
プロトコルバージョン交渉が成功した場合、接続が確立されています。そうでなければ交渉が失敗した理由を説明するエラーメッセージを送信し、接続を終了
(三)协商完成后,控制器和交换机之间发送Features消息,获取交换机参数
参数包括支持的buffer数目、流表数、Actions等
(四)控制器发送SET_CONFIG消息向交换机发送配置参数
(五)通过GET_CONFIG消息得到交换机修改后的配置信息
(六)控制器与OpenFlow交换机之间,发送PACKET_OUT和PACKET_IN消息。通过PACKET_OUT中内置的LLDP包进行网络拓扑的探测
(七)控制器通过FLOW_MOD向控制器下发流表操作