論文を読む 6: ソフトウェア定義ネットワークにおける Q ラーニングに基づく負荷分散アルゴリズム

用語集:

Q-learning Load Balance、QLLB: Q-learning に基づく負荷分散アルゴリズム

リンク層検出プロトコル、LLDP: リンク層検出プロトコル

要約: SDN の負荷分散問題を目指して、ネットワーク リソースの割り当てをより合理的にし、ネットワークの輻輳を防ぐために、ネットワーク環境に基づいて意思決定を行うことができる Q ラーニング ロード バランス (QLLB) アルゴリズムが設計されています。ネットワークの輻輳を回避し、ネットワーク リソースの合理的な割り当てを実現します。最短パス アルゴリズム ダイクストラおよびアント コロニー アルゴリズムとのパフォーマンス比較の結果は、QLLB アルゴリズムが効果的に負荷分散を実現し、各リンクの帯域幅使用率がより均一になり、スループットがそれぞれ約 8% および 2% 増加することを示しています。ネットワークパフォーマンスを効果的に向上させます。

0 まえがき

上記の問題に対応して、本稿では負荷分散アルゴリズムにQラーニングを導入し、遅延や帯域幅などの要素を総合的に考慮し、ネットワーク環境の独立学習を実現できるQラーニングに基づく負荷分散QLLBアルゴリズムを提案します。特定のリンク上の過剰なトラフィックは負荷の不均衡につながり、それによってネットワークのサービス品質が向上します。

1 システムモデル

コントローラは、内部でリンク センシング モジュール、リンク テスト モジュール、Q 学習モジュール、フロー テーブル配信モジュールに分かれています。

リンク センシング モジュール: ネットワーク トポロジとリンク情報を取得し、LLDP メッセージとブロードキャスト パケットをスイッチに送信し、コントローラが必要とする情報をコントローラに送り返して、情報の適時性を確保します。タイミング トリガを使用するか、ネットワーク トポロジが確立されたときに、情報が変更されると再度トリガーされます。LLDP パケットとブロードキャストには、スイッチ関連の情報と送信元/宛先ポート情報が含まれます。

リンク測定モジュール: ネットワークのサービス品質要件に従って帯域幅や遅延などの主要なパフォーマンス指標パラメータを測定し、前処理を実行して、最終的にこれらのデータを強化学習モジュールへの入力として使用し、相互情報量法を使用して遅延を決定します。 。リンク測定モジュールは、帯域幅測定モジュールと遅延測定モジュールに分かれています。

ネットワーク全体に合計 n 個のリンクがあり、次のように表されると仮定します\small l=\left \{ l_{1},l_{2},...,l_{n-1} \right \}特定のリンク \small l_{j} の両端のスイッチが\small S_{1}、であり\small S_{2}、SDN コントローラが LLDP を含むデータ パケットを に送信し\small S_{1}、それを に転送すると\small S_{2}、スイッチはデータ パケットの送信タイムスタンプと\small S_{2}パケットインの受信時刻を記録します。からのメッセージの遅延は、\small S_{1}転送されたパケット同様に、転送されたパケットの遅延も取得できますおよび にはコントローラとスイッチ間の遅延が含まれるため、コントローラとスイッチ間の遅延は、エコー メッセージ テストを通じて取得する必要があります。エコー メッセージ テストは、それぞれおよびとして記録されます 。最後にリンク遅延が得られ、計算式は次のようになります。\small S_{2}\small D_{1}\small S_{2}\small S_{1}\small D_{2}\small D_{1}\small D_{2}\small S_{1}\small S_{2}\small D^{'}_{1}\small D^{'}_{2}\small l_{j}

\small D_{l_{j}}=\frac{1}{2}\left ( D_{1}+D_{2}-D^{'}_{1}-D^{'}_{2} \右 )

\小T各リンクの使用帯域幅は、ポートが受信したデータ バイトの合計数\small b_{rx}と、一定期間中に送信されたデータ バイトの合計数に基づいて計算できます\small b_{tx}\small l_{j}リンクの使用帯域幅の計算式は次のとおりです。

\small B_{l_{j}}^{used}=\frac{b_{rx}+b_{tx}}{T}

 したがって、\小Bリンクの合計帯域幅を仮定すると、\small l_{j}リンクの利用可能な帯域幅は次のようになります。

\small B_{l_{j}}=B-B_{l_{j}}^{中古}

Q ラーニング モジュール:スイッチによって送信されたパケットの関連する統計特性に基づいて、Q ラーニング アルゴリズムを使用して最適な転送パスが計算されます。まず、リンク測定モジュールによって測定されたリンク帯域幅と遅延が入力として取得されます。 、QLLB が使用されるアルゴリズムは、ネットワーク内の各リンクのリアルタイムのステータスを学習し、スイッチが受信したパケットの送信元アドレスと宛先アドレスに基づいて最適な転送パスを取得し、最後に取得したネットワーク トポロジを結合します。リンク認識モジュールによってスイッチのフロー テーブルを作成します。

フローテーブル配信モジュールQラーニングモジュールが出力した転送経路とリンクアウェアネスモジュールが取得したネットワークトポロジに基づいて各スイッチの転送ポートを決定し、ルーティング情報をフローテーブルにカプセル化して配信します。フローテーブルを対応するスイッチに送信します。

2 QLLB 負荷分散アルゴリズムの設計

Q学習アルゴリズム強化学習とは、完全にランダムな演算を継続的に試行し、各演算に対してフィードバックを取得し、フィードバックによってネクストホップを調整し、最終的に最適解を求めるアルゴリズムの一種です。Q 学習は、Q 値を見つけるためのモデルフリーのオフポリシー アルゴリズムであり、Q 値テーブルは反復的であるため、確率的データやランダム データの分析に適しています。

QLLB アルゴリズムの原理:対数反復を使用して最適な解を見つけます。新しいデータ パケットは、制限されたマルコフ プロセスのネットワーク環境にあり、スイッチがネクスト ホップ スイッチを選択すると、ネットワーク環境のステータスが変化します。このとき、戦略は現在のネットワークの実数のフィードバック値を取得します。時間状況、それが報酬関数の値です。フィードバック値が大きいほど、次回その戦略が実行される可能性が高くなります。この時点で\小さいt、スイッチは次のホップが到着するスイッチを選択し、データ パケットはからスイッチ に\small S_{t}送信され\small S_{t+1}、システムは次のように表されるフィードバック値を与えます。

\small r\left ( t \right )=r\left ( S_{t},S_{t+1} \right )

ここで\small S_{t}、 は現在のデータ パケットが配置されているスイッチであり、\small S_{t+1}データ パケットの次のホップが到達するスイッチを示します。

Q 学習アルゴリズムは数値反復を使用して最適値関数を見つけます。Q 行列の導出式は次のとおりです。

\small Q_{k+1}^{*}\left ( S,{S}' \right ) \leftarrow \sum_{ {S}'}^{}P\left ( {S}' | S\right ) \ \left [ r\left ( S,{S}' \right ) +\gamma max \ Q_{k}^{*}\left ( S,{S}' \right )\right ]

このうち\small {S}'、次の状態にあるスイッチであり、データ パケットが到着したときに得られる最大の期待利益を表す\小さい \ガンマ割引係数であり、当面の利益と将来の割引利益です。割引係数が 0 に近づくと、意思決定の考慮事項が現在の行動の報酬値により多くなることを意味し、1 に近づくと、次の行動の報酬値がより大きな割合を占めることを意味します。\小Q\小S\small r\left ( S,{S}' \right )\small \gamma max \ Q_{k}^{*}\left ( S,{S}' \right )

QLLB アルゴリズムの基本プロセスは次のとおりです。Q 行列は 2 次元配列であり、行パラメータは現在の状態を表し、列パラメータは次の状態を表し、配列内の値は Q を表します。現在の状態から次の状態までの値。Q 行列の Q 値が変化しない傾向にある場合、Q 行列は収束します。

QLLB アルゴリズム パラメータ: 帯域幅使用率、スループット レート、スループット、遅延が主なパラメータです。記事内で設定した報酬関数は、リンク帯域幅と遅延の組み合わせを使用しており、利用可能な帯域幅が大きく遅延が小さいリンクを選択するたびに報酬値が増加し、次回リンクを選択する際には、帯域幅が大きいリンクを優先します。報酬値を調整し、それによって正のフィードバックが形成されるため、スループットとトラフィック分散を最適化できます。報酬関数の式は次のとおりです。

\small r=\left [ \alpha \cdot B_{l_{j}}^{ {}'} +\beta \cdot \left ( 1- D_{l_{j}}^{ {}'} \右 )\右 ]\cdot \zeta

ここで、 は正規化されたリンクの利用可能な帯域幅と遅延\small B_{l_{j}}^{ {}'},D_{l_{j}}^{ {}'}をそれぞれ表し、は帯域幅の重み係数、は遅延の重み係数、合計は 1 で、は正規化された増幅率です。遅延は報酬値と負の関係にあるため、正規化後、その値を 1 から減算すると、次のようになります。\small j\小さい\アルファ\small \beta\小さい\アルファ\small \beta\小\ゼータ

\small r=\left [ \alpha \cdot \frac{B_{l_{j}}-B_{l_{j}min} }{B_{l_{j}max}-B_{l_{j}min}} +\beta \cdot \left ( 1- \frac{D_{l_{j}}- D_{l_{j}min}}{D_{l_{j}max}-D_{l_{j}min}}\右 )\右 ]\cdot \zeta

負荷分散評価指標:最大リンク帯域占有率、スループット、負荷分散係数(ネットワーク内のリンク帯域使用率の標準偏差、係数が小さいほど均等に分散され、負荷分散効果が高い)

負荷分散係数が特定のしきい値を超えると、モデルが現在のシナリオに適さなくなり、再トレーニングする必要があることを意味します。

3 シミュレーションアルゴリズムのテストと実験結果の分析

比較アルゴリズム:ダイクストラアルゴリズムに基づく最短経路アルゴリズム、アリコロニーアルゴリズム

カスタム トポロジ: 9 つのカーネル モード スイッチ。各スイッチはホストに接続されます。

 この記事のアルゴリズムは帯域幅の重みをより重視しており、帯域幅の重み係数\小さい\アルファは 0.8、遅延重み係数\small \betaは 0.2 です。

 

 

おすすめ

転載: blog.csdn.net/weixin_43563178/article/details/121867275