ネットワークエンジニアのフオです。
今回はMTUとMSSについて紹介していきます。
間違っていることがあればぜひコメントや問い合わせで教えていただきたいです。
- MTUとMSSについてについて
- MTUとMSSの違いについて
ネットワークを始めたての人には下記の参考書がおすすめです。
イラストが豊富で初めて、私も初めてネットワークを勉強するために利用しました。
ページ数も200ページもないのでサクッと読み終わることができます!
ぜひ参考にしてみてください。
目次
MTU(Maximum Transmission Unit)
MTUは、ネットワーク上で1回で送れるデータの最大サイズのことです。
イメージとしては「トラックの荷台の大きさ」に近いです。
荷台に載りきらない荷物は、複数のトラックに分けて運ぶ必要がありますよね。
ネットワークも同じで、MTUを超えるデータは分割(フラグメンテーション)されます。
大量の通信が一気に流れると詰まってしまうので分割して適切なサイズで送ろうと言う考え方です。
一般的なイーサネットのMTUは 1500バイト です。この1500バイトにはIPヘッダやTCPヘッダも含まれるという点が重要です。
MSSについて
MSSは「TCPで運べるデータ部分だけの最大サイズ」です。
MTUは「パケット全体の最大サイズで、MSSはMTUからヘッダ分を差し引いた値になります。
MTUとMSSの違い(比較)
| 項目 | MTU | MSS |
|---|---|---|
| レイヤー | L2/L3(ネットワーク層) | L4(トランスポート層) |
| 対象 | IPパケット全体のサイズ | TCPペイロード部分のみ |
| ヘッダ含む? | IP/TCPヘッダを含む | 含まない |
| 設定方法 | インターフェースの設定値 | TCPハンドシェイクで交換 |
| プロトコル | IP全般(TCP/UDP問わず) | TCPのみ |
| 標準値(Ethernet) | 1500バイト | 1460バイト |
MTUは「パケット全体の最大サイズ」、MSSは「TCPで運べるデータ部分だけの最大サイズ」です。
つまりMSSはMTUからヘッダ分を差し引いた値です。
また動作するレイヤーが異なります。
MTUはネットワークインターフェース(L2/L3)の設定値です。
一方MSSはTCP(L4)の概念で、TCPの3ウェイハンドシェイク時にSYNパケットのオプションフィールドで相手に通知します。

コメント