フラグメント【fragment】
概要
IPフラグメント
インターネットなどで標準的に用いられる通信規約(プロトコル)であるIP(Internet Protocol)では、大きなデータを送受信する際に小さな断片に分割して伝送することがある。このデータ断片のことをフラグメントと呼び、分割する操作を「IPフラグメンテーション」という。
IPではデータを「IPデータグラム」という単位で送受信するが、データグラムのサイズはMTU(Maximum Transmission Unit)という上限値未満に抑えなければならない。MTUの値は機器の置かれた環境や回線の伝送能力によって異なるが、通常は1500バイト前後である。
IPでファイルなどひとかたまりのデータを送出する際、サイズがMTUを超えた場合には、MTU以下のサイズに分割し、複数のデータグラムとして送出する。このデータ断片がフラグメントで、受信側はすべての断片が揃ったら本来のデータを組み立てることができる。
データベースのフラグメント
データベース管理システム(DBMS)では、データベースを構成する様々なデータを複数の機器に分散して格納することができる場合があり、その際の分割単位のことをフラグメントという。テーブルの行単位、列単位、データ本体とインデックスなど、システムの種類や目的によって分割の仕方は様々である。データを分散することで巨大な単一のデータベースを複数のサーバで分担して処理することができ、性能や対障害性の向上を図ることができる。
ファイルシステムのフラグメント
オペレーティングシステム(OS)がストレージを管理する際に用いるファイルシステムの仕組みでは、データは「ファイル」という単位で記録される。一方、物理的なストレージ装置は、内部の記憶媒体を「セクタ」という一定のサイズの領域に区切って管理している。
ファイルがセクタ一つに収まらないサイズの場合は、複数のセクタに分割して格納され、どのファイルをどのセクタに格納したかを管理領域に記録する。ストレージに空き領域が多い場合は、ファイルは連続したセクタに記録されるが、空き領域が小さな断片に分かれている場合には、飛び飛びのセクタに分けて格納しなければならない。このような不連続な領域に分かれたファイルの断片のことをフラグメントという。
ハードディスクなどディスク型の媒体を用いる装置では、ファイルや空き領域の断片化が進行すると読み書き性能が低下するため、格納領域の並びを再配置して、なるべく各ファイルが連続して記録されるようにする「デフラグメンテーション」(defragmentation)という操作を行うことがある。
