MSS(エムエスエス)とは | 意味や読み方など丁寧でわかりやすい用語解説
MSS(エムエスエス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
マネージド・セキュリティ・サービス (マネージド・セキュリティ・サービス)
英語表記
MSS (エムエスエス)
用語解説
MSSとは、Maximum Segment Sizeの略であり、TCP(Transmission Control Protocol)が通信相手に一度に送信できるデータ(ペイロード)の最大サイズを示す値である。TCPはインターネット通信の基盤となるプロトコルの一つであり、信頼性の高いデータ転送を保証する役割を担っている。MSSは、このTCP通信において、データを細分化する際の区切り方を定める重要なパラメータとなる。
ネットワーク上でデータを効率的かつ確実に転送するためには、そのデータが途中の経路で設定されている様々な制約、特にパケットサイズの制約に適合している必要がある。MSSの主な目的は、TCPセグメントがIP(Internet Protocol)パケットに格納されてネットワークを流れる際に、そのIPパケットが途中のルータなどでさらに細かく分割(IPフラグメンテーション)されることを避けることにある。IPフラグメンテーションが発生すると、ネットワーク機器の処理負荷が増加し、パケットロスや再送処理の頻発などにより、通信性能が著しく低下する可能性があるため、これを防ぐことが極めて重要である。
TCPは、アプリケーションから受け取ったデータをそのまま送信するのではなく、効率的な転送のために「セグメント」と呼ばれる単位に分割する。このセグメントには、送信元や宛先ポート番号、シーケンス番号などのTCPヘッダ情報が付加される。そして、このTCPセグメント全体がIPヘッダとともにIPパケットとしてカプセル化され、物理的なネットワーク上を流れていく。MSSは、このTCPセグメントのうち、純粋なデータ部分、つまりTCPペイロードの最大サイズを定義する。TCPヘッダやIPヘッダ、さらにイーサネットなどのデータリンク層のヘッダはMSSに含まれない。
MSSと密接な関係にあるのが、MTU(Maximum Transmission Unit)である。MTUは、データリンク層において一度に転送できるフレームの最大サイズを指す。例えば、イーサネットでは一般的にMTUが1500バイトと設定されていることが多い。この1500バイトというMTUは、IPパケット全体(IPヘッダ+TCPヘッダ+TCPペイロード)を含むフレームのデータ部分の最大値である。IPヘッダは通常20バイト、TCPヘッダも通常20バイトであるため、MTUが1500バイトの場合、IPパケットの最大サイズも1500バイトとなる。したがって、MSSは「MTU - IPヘッダサイズ - TCPヘッダサイズ」という計算式で導き出される。イーサネットの一般的な環境では、1500 - 20 - 20 = 1460バイトが標準的なMSSの値となる。
TCP接続が確立される際、通信を行う両方のホストは、いわゆる「スリーウェイハンドシェイク」の過程で、互いのMSSの値を相手に通知する。このMSSの値は、TCPヘッダのオプションフィールドに含められる。両方のホストは、それぞれが提示したMSSの値のうち、小さい方の値をその接続におけるMSSとして採用する。このネゴシエーション(交渉)のメカニズムにより、通信経路上のどのルータのMTUよりも大きなセグメントが送信される事態を防ぎ、結果としてIPフラグメンテーションの発生を回避できる。これは、ネットワーク経路上の最も小さいMTU(経路MTU)に合わせてMSSを調整する、効果的な方法である。
もしMSSのネゴシエーションが正しく行われなかったり、ファイアウォールなどの機器が途中の経路でMTUを変更するにもかかわらずMSSの調整がなされなかったりすると、問題が生じる。例えば、送信元ホストが認識しているMTUよりも小さなMTUを持つルータが経路途中に存在する場合、そのルータは受信したIPパケットが大きすぎると判断し、分割処理を行うか、あるいはパケットを破棄する。パケットが破棄された場合、送信側は再送を試みるが、これが繰り返されると通信が非常に遅くなったり、タイムアウトによって接続が切断されたりする原因となる。このような状況は「PMTUD(Path MTU Discovery)」と呼ばれる仕組みによって経路MTUを動的に発見し、MSSを調整することで回避できる場合もあるが、PMTUDがファイアウォールによってブロックされるケースも存在するため、MSSの適切な設定と理解は依然として重要である。
システムエンジニアを目指す者にとって、MSSの概念を理解することは、ネットワークのパフォーマンス問題や接続トラブルの原因特定、あるいはネットワーク設計を行う上で不可欠な知識である。データが効率的に流れるようにするためのTCPの細かな配慮の一つであり、見えないところで通信の安定性と速度を支えている要素なのである。この知識は、ネットワーク機器の設定、OSのネットワークパラメータ調整、あるいはアプリケーションのネットワーク動作解析など、多岐にわたる場面で役立つだろう。