公開:

MSS(Maximum Segment Size)とは?意味をわかりやすく簡単に解説

text: XEXEQ編集部


MSS(Maximum Segment Size)とは

MSS(Maximum Segment Size)とは、TCPプロトコルにおいてネットワーク上で送信されるデータの最大セグメントサイズを指します。MSSは、送信側と受信側の両方で設定され、TCPヘッダーのオプションフィールドに含まれています。

MSSは、IPデータグラムのサイズからIPヘッダーとTCPヘッダーのサイズを差し引いた値となります。一般的には、イーサネットの最大フレームサイズである1518バイトから、IPヘッダー(20バイト)とTCPヘッダー(20バイト)を差し引いた1460バイトがMSSの標準的な値として使用されます。

MSSを適切に設定することで、ネットワーク上でのデータ送信の効率化と最適化が図れます。送信側と受信側のMSSが一致していない場合、パケットの分割や再構成が発生し、オーバーヘッドが増加してしまいます。

したがって、ネットワーク機器やオペレーティングシステムは、MSSを自動的に調整する機能を持っています。この機能はPMTU(Path MTU Discovery)と呼ばれ、経路上の最小MTU(Maximum Transmission Unit)を検出し、それに合わせてMSSを設定します。

MSSは、ネットワークのパフォーマンスに直接影響を与える重要なパラメータです。適切なMSSの設定により、データの断片化を防ぎ、再送信の回数を減らすことができるため、ネットワークの効率とスループットの向上につながります。

MSSとMTUの関係

MSSとMTUの関係について、以下3つを簡単に解説していきます。

  • MSSとMTUの違い
  • MSSとMTUのサイズ設定
  • Path MTU Discovery(PMTUD)とMSS

MSSとMTUの違い

MSSはTCPプロトコルのパラメータであり、TCPペイロードの最大サイズを指します。一方、MTUはネットワークインターフェイスの最大伝送単位を表し、データリンク層のプロトコルで使用されます。

MTUは、イーサネットの場合は一般的に1500バイトに設定されています。MSSは、MTUからIPヘッダーとTCPヘッダーのサイズを差し引いた値となるため、標準的なMSSは1460バイトとなります。

MSSとMTUのサイズ設定

MSSとMTUのサイズ設定は、ネットワークの効率性とパフォーマンスに大きな影響を与えます。MTUが大きすぎる場合、パケットの断片化が発生し、再送信の回数が増加してしまいます。

逆にMTUが小さすぎる場合は、オーバーヘッドが増加し、スループットが低下してしまいます。したがって、ネットワーク機器やオペレーティングシステムは、最適なMTUとMSSのサイズを自動的に設定する機能を持っています。

Path MTU Discovery(PMTUD)とMSS

Path MTU Discovery(PMTUD)は、送信側がネットワーク上の最小MTUを検出し、それに合わせてMSSを調整する機能です。PMTUDは、ICMPプロトコルを使用して、経路上の最小MTUを検出します。

送信側は、検出したMTUに基づいてMSSを設定することで、パケットの断片化を防ぎ、再送信の回数を減らすことができます。PMTUDとMSSの適切な設定により、ネットワークのパフォーマンスを最適化できます。

MSSの設定方法

MSSの設定方法について、以下3つを簡単に解説していきます。

  • OSでのMSS設定
  • ネットワーク機器でのMSS設定
  • アプリケーションレベルでのMSS設定

OSでのMSS設定

オペレーティングシステム(OS)では、TCPプロトコルのパラメータとしてMSSを設定できます。Linuxの場合、sysctl命令を使用して、以下のようにMSSを設定できます。

sysctl -w net.ipv4.tcp_mss_clamp=1460

Windowsの場合は、レジストリエディタを使用してMSSを設定できます。ただし、OSレベルでのMSS設定は、システム全体に影響を与えるため、注意が必要です。

ネットワーク機器でのMSS設定

ルーターやスイッチなどのネットワーク機器では、MSSを設定できる場合があります。シスコ製品の場合、以下のようなコマンドを使用してMSSを設定できます。

ip tcp mss 1460

ネットワーク機器でMSSを設定することで、ネットワーク全体のMSSを統一し、パケットの断片化を防ぐことができます。ただし、機器の設定によっては、MSSの設定が上書きされる場合があるので注意が必要です。

アプリケーションレベルでのMSS設定

アプリケーションレベルでもMSSを設定できる場合があります。例えば、Webサーバーのnginxでは、以下のようにMSSを設定できます。

server {
    listen 80;
    server_name example.com;
    tcp_mss 1460;
}

アプリケーションレベルでMSSを設定することで、特定のサービスやアプリケーションに最適なMSSを設定できます。ただし、OSやネットワーク機器のMSS設定との整合性を確保する必要があります。

MSSの最適化とトラブルシューティング

MSSの最適化とトラブルシューティングについて、以下3つを簡単に解説していきます。

  • MSSの最適値の決定
  • MSSの設定ミスによる問題
  • MSSに関連するネットワーク問題の診断

MSSの最適値の決定

MSSの最適値は、ネットワークの構成やトラフィックの特性によって異なります。一般的には、イーサネットの最大フレームサイズである1518バイトから、IPヘッダーとTCPヘッダーのサイズを差し引いた1460バイトが標準的なMSSの値として使用されます。

ただし、ネットワークの状況によっては、MSSを調整することで、パフォーマンスを改善できる場合があります。例えば、無線ネットワークでは、MSSを小さくすることで、再送信の回数を減らし、スループットを向上させられる可能性があります。

MSSの設定ミスによる問題

MSSの設定ミスは、ネットワークのパフォーマンスに大きな影響を与える可能性があります。例えば、MSSが大きすぎる場合、パケットの断片化が発生し、再送信の回数が増加してしまいます。

逆にMSSが小さすぎる場合は、オーバーヘッドが増加し、スループットが低下してしまいます。したがって、MSSの設定は慎重に行う必要があり、ネットワークの状況に応じて適切な値を選択することが重要です。

MSSに関連するネットワーク問題の診断

MSSに関連するネットワーク問題を診断するには、様々なツールやテクニックを使用します。例えば、pingコマンドを使用して、MTUサイズを確認したり、tracerouteコマンドを使用して、経路上の問題を特定したりできます。

また、Wiresharkなどのパケットキャプチャツールを使用して、ネットワーク上のトラフィックを分析し、MSSに関連する問題を特定することもできます。MSSに関連するネットワーク問題の診断には、ネットワークの知識と経験が必要とされます。

※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。

「コンピュータ」に関するコラム一覧「コンピュータ」に関するニュース一覧
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。