TFTP サブネット・ブロードキャスト・オプション

ブロードキャスト・ストームとはネットワークから大量のシステムが開始される場合に起きる可能性があるパフォーマンス上の問題です。Trivial File Transfer Protocol (TFTP) のサブネット・ブロードキャスト・オプションは、この問題の解決に役立ちます。

大量のクライアントが同時にブート・コードを要求すると、このブロードキャスト・ストームが起こります。何百というシステムが開始される場合、各システムと TFTP サーバーの間のネットワーク内のそれぞれのホップを通して、同じデータが送られる必要があります。

TFTP サブネット・ブロードキャスト・オプションによって、サーバーはサブネット・ベースのシステムにブート・コードをブロードキャストできます。サブネット指定ブロードキャストを使用すると、サブネット・ブロードキャスト・データ・パケットは、システムが常駐しているサブネットに到達するまでルーター間に伝送されます。パケット伝送はユニキャストされます。 この時点で、宛先のサブネットのルーターは、 そのサブネットのシステムにデータ・パケットをブロードキャストします。 サブネット上の無関係なホストは、データ・パケットを破棄します。 ブロードキャストが送信されたポートに、そのデータの受信に関係するアプリケーションがないと判断された後、パケットはホストの IP 層によって通常、破棄されます。サブネット指定ブロードキャストの図については、図 1 を参照してください。 このソリューションによって、 (始動が同時に行われたときに) 多数のシステムを始動するのにかかる時間だけでなく、 ネットワーク・トラフィックをかなり減らすことができます。

TFTP サブネット・ブロードキャスト・オプションによって、 クライアントをブロードキャスト・ファイル・グループに結合させることができます。これによって、クライアントがマスター・クライアントになるまで、 ファイルの後続のすべてのブロックを受信することもできます。 クライアントは、 TFTP サーバーからクライアントがマスター・クライアントであることを示すオプション肯定応答 (OACK) パケットを受信すると、 マスター・クライアントになります。 クライアントは、受信したブロックを追跡する必要があります。 クライアントは、マスター・クライアントになってから、 受信していないブロックを要求できます。 マスター・クライアントは、マスター・クライアントで必要とされるブロックの前のブロックのブロック番号が入れられた肯定応答 (ACK) パケットを送信することによって、ブロックを要求します。たとえば、クライアントがブロック 5 を必要とする場合、 ブロック番号 4 が入れられた ACK を送信します。

クライアントは、 自身がマスター・クライアントであることを示す OACK パケットを受信したとき、 必要とする最初のブロックを要求する ACK を送信しなければなりません。 それからクライアントは、連続している必要はないけれども、昇順でブロックを要求する必要があります。マスター・クライアントはサーバーに対して、 必要としているのが次のブロックであることを示す ACK パケットを送信し続けます。 マスター・クライアントは、必要とするすべてのブロックを受信すると、 転送されたファイルの最後のブロック番号が入れられた ACK を送信します。 サーバーは、転送されたファイルの最後のブロック番号が入れられた ACK を受信すると、 その ACK を送信してきたクライアントへの送信は完了したと見なします。クライアントは、最後のブロックについての ACK を送信するか、 またはエラー (ERR) パケットを送信することによって、 いつでも転送を終了することができます。 クライアントは、自身がマスター・クライアントであるかどうかにかかわらず、 この転送を終了できます。

注: この TFTP サブネット・ブロードキャスト・オプションは、 共通のサブネット上での複数のクライアントに対する大規模なファイルの同時転送を向上させるために設計されています。 このオプションは、転送が必要なブロックが少しであるファイルの場合、 または単一のクライアント転送の場合には役立ちません。
図 1. サブネットを介したブロードキャストの例
サブネットを介したブロードキャストのサンプル図