底辺エンジニアの備忘録

30過ぎて、記憶力低下が著しい為、メモ代わりにしていく予定。 自身のスキルが低いので、内容の正確さは保障できません・・・OTL

MSSの設定

割と忘れがちなので、メモ

f:id:klock_3rd:20150203224310p:plain

【ip tcp adjust-mss】
TCP通信は最初に3wayハンドシェイクでコネクションを確立する。
その3wayハンドシェイク時にデータ長(MSS)のやり取りも行う。

PCは一般的にMTU 1500byteだから、3wayハンドシェイク時にはMSSを1460byteとして通知する。

「ip tcp adjust-mss」は、その3wayハンドシェイク時のmss長を変更する。

 

以下は、Ciscoルータで上記環境を検証

1、ルータにMSSの設定なし
PC-A → PC-BにTCP接続(今回はFTP)際のPC-B側のパケットキャプチャ結果

~~抜粋~~

Options: (20 bytes), Maximum segment size, No-Operation (NOP), Window scale, SACK permitted, Timestamps
Maximum segment size: 1460 bytes
 →MTU1500byeからIPヘッダ&TCPヘッダの40byteを引いた値「1460byte」になってる

 

2、ルータにMSSの設定投入

 a) PC-A側のIFに対し、「ip tcp adjust-mss 1400」を投入
 b) PC-A → PC-Bに1同様の方法でのキャプチャ結果

~~抜粋~~

Options: (20 bytes), Maximum segment size, SACK permitted, Timestamps, No-Operation (NOP), Window scale
Maximum segment size: 1400 bytes 

 →「ip tcp adjust-mss 1400」で投入した1400byteに変更されている。

 

これ、Ciscoのshow系コマンドでも確認できないかなぁ・・・