0

なぜ BGP プロトコルはパケット サイズを 4096 オクテット未満に制限するのですか?</p>

BGP パケット サイズが 4096 バイトを超える場合、これをどのように処理すればよいですか?</p>

4

2 に答える 2

2

「なぜ BGP プロトコルはパケット サイズを 4096 オクテット未満に制限するのですか?」

Tony Li は、このIDR スレッドで公式の回答を提供しました。彼の答えを引用するには:


  1. まず、実装では、指定された 4k メッセージ サイズ制限とは異なるメッセージ サイズを使用してはなりません。
    実装が 4k を超えるメッセージを送信すると、他の実装
    はそれらを解析できなくなります。実装
    が 4k メッセージを受信できない場合、相互運用もできません


1a) プロトコルの実装が容易になるため、固定サイズを持つことは良いことです。
メリットがなければ、実装が複雑であっても意味がありません。 大きなメッセージは、パス属性と関連するプレフィックス
を運ぶのに十分な大きさである必要があるため、素晴らしい利点を提供しません。
この目的には、現時点では
おそらく 4k で十分です。

1b) 歴史的に、4k は少し無駄だと考えられていました。もちろん、断片化された パケット
を使用する EGP に比べれば、驚くほど簡単でした。
16k のジャンボグラムを解析したいですか? それをデバッグしますか?私を信じ
てください、それは楽しくありません。

  1. 4k メッセージ サイズは、TCP ウィンドウサイズとは完全に無関係
    です 。
    実装は、それぞれが 4k の制限内であれば、任意の数のメッセージを完全に自由に作成できます。実装は、その TCP の バッファリング制限
    まで、TCP ソケットに任意の数のメッセージを詰め込むことができます。

2a) したがって、 実装が実際にメッセージをオーバーフィルする可能性がある場合を除いて、メッセージ サイズはパフォーマンスを制限するものではありません。
現在の実装を維持している人々は、これを見る
かどうかについて、ここで声を上げるかもしれませ
ん。つまり、要約すると、はい、4k のメッセージ サイズ制限は、 BGPの動作とその仕事のために、良い状況です。
これは 、4k が最も一般的な MTU を超える他のプロトコル (OSPF など) に必ずしも一般化される
わけではありません。
そのような場合、
断片化が発生することになり、それは悪いことです。

サイズが 4096 を超える BGP パケットを処理する方法は?

現実の世界では、BGP の不正な形式のメッセージをログに記録することでこのシナリオに対処し、コード Message Header Error(1) とサブコード Bad Message Length(2) を含む BGP 通知を送信してセッションを終了します。セッションの終了は、BGP エラー処理のアプローチの 1 つです。BGP エラー処理rfc7606を参照してください。

于 2016-01-09T01:54:43.107 に答える