概要
このドキュメントでは、TCP MSS調整の概念と設定について説明します。また、最大伝送ユニット(MTU)の概念と、パケットサイズの大きいWebサイトでのパケット廃棄を防止する方法についても説明します。
著者:Cisco TACエンジニア、Ricka Jain
前提条件
要件
Point-to-Point Protocol over Ethernet(PPPoE)に関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの情報は、汎用デバイスに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
設定
MTUは、1つのインスタンスでプロトコルによって送信できるデータの最大長です。たとえば、イーサネットインターフェイスのMTUサイズはデフォルトで1500バイトで、イーサネットフレームヘッダーとトレーラは除外されます。つまり、インターフェイスは1500バイトを超えるフレームを伝送できませんが、次の概念が視覚化されます。
フレームの内部を見ると、20バイトのIPヘッダー+ 20バイトのTCPヘッダーが表示されます。1460バイトが残り、1つのフレームに送信できるペイロードです。これはTCP MSSとして報告されます。
転送ルータで実行される追加のカプセル化がない場合、送信元デバイスはパケットのフラグメンテーションまたは廃棄の潜在的なリスクを伴わずに、最大ペイロード長1460バイトを使用する可能性があります。これは、送信元ホストと宛先ホストの間のTCP 3ウェイハンドシェイク段階でネゴシエートされます。ただし、転送中のルータが追加のカプセル化を実行すると、ラベルヘッダーが追加され、最終的に転送ルータから送出されるフレームのサイズが増加します。インターフェイスの最大MTUはハードウェアプラットフォームによって異なりますが、IEEE 802.3標準では1500バイトの最小MTUが必要です。
PPPoEには追加の8バイトが必要で、イーサネットMTUを1492に切り捨てます。ホストの有効なMTUが変更されていない場合、ホストとサーバの間のルータはTCPセッションを終了できます。PPPoE設定では、IP TCP ADJUST-MSS 1452コマンドを使用することをお勧めします。
送信元デバイスが1460バイトのTCP MSSを持つフルサイズパケットを作成する場合、転送ルータがパケットをドロップ/フラグメント化する可能性があります。これは、Webサイトを閲覧する際の問題など、当社のネットワークパフォーマンスに悪影響を及ぼします。パケットサイズの大きいWebサイトに対応するために、送信元デバイスから可能な最大TCP MSSサイズ(1452バイトなど)を縮小できます。TCPハンドシェイク時にルータが送信元と宛先に信号を送らない場合、最適なTCP MSSによって廃棄/フラグメンテーションの問題が発生する可能性があります。
この問題は、すべてのWebサイトを参照する際に発生する可能性はありませんが、一部のWebサイトで発生する可能性があります。Tこの理由は、パケットに到達するために作成されるパケットサイズ(中間のハードウェアによって異なる)にあります。 より大きなパケットサイズを作成するWebサイトでは、ip tcp adjust-mssコマンドを使用しない場合、より大きなパケットは廃棄されます。
一部のWebサイトを参照するときに発生する問題をトラブルシューティングするには、コマンドIP TCP ADJUST-MSS 1452を、LANインターフェイスをポイントするインターフェイスで設定する必要があります。
1.有効
2.ターミナルの設定
3.インターフェイスタイプ番号
4. Ip tcp adjust-mss max-segment-size //ルータを通過するTCP SYNパケットのMSS値を調整します。max-segment-size引数は、最大セグメントサイズ(バイト)です。範囲は 500 ~ 1460 です。
5. Ip mtu bytes //インターフェイスで送信されるIPパケットのMTUサイズをバイト単位で設定します。
6.終了
確認
ここでは、設定が正常に機能しているかどうかを確認します。
ステップ 1:
TCP MSS調整の設定を確認します。
interface ethernet1/1
ip address 10.0.0.1 255.0.0.0
ip tcp adjust-mss 1452
duplex half
ステップ 2:
ルータAからルータBにTelnet接続します。
telnet 10.0.1.2
Trying 10.0.1.2...
TCP: sending SYN, seq 886170752, ack 0
TCP0: Connection to 1.0.1.2:23, advertising MSS 536
tcp0: O CLOSED 1.0.1.2:23 4.0.0.1:11008 seq 886170752
OPTS 4 SYN WIN 4128
ステップ 3:
ルータBのデバッグ出力を確認します。
tcp0: I LISTEN 4.0.0.1:11008 1.0.1.3:23 seq 886170752
OPTS 4 SYN WIN 4128
TCP0: state was LISTEN -> SYNRCVD [23 -> 4.0.0.1(11008)]
TCP0: Connection to 4.0.0.1:11008, received MSS 1452, MSS is 1452
TCP MSS値は、設定値1452に調整されます。
トラブルシュート
現在、この設定に関する特定のトラブルシューティング情報はありません。