質問: aws 上の ubuntu で、`sudo apt-get update` の実行が異様に重たいインスタンスがありました。 最終的に、これは eth0 の MTU を 9001 -> 1300 にすることで改善したのですが、その際、 `sudo apt-get update` の速度が、おおざっぱに体感で20倍ぐらい (それ以上かも?) になりました。 質問: MTU とは何でしょうか。なぜこれを変更するとここまでネットワーク速度に影響があるのでしょうか。
回答: Ethernetのパケットの上限は1500 Octetです。(8ビットのデータを、通信ではOctetと呼びます) パケットにはデータ以外に付随する情報が含まれますので、1つのethernetのパケットで送れるデータ量は 1400 Octetぐらいです。 MTUをネットワーク経路を通じてパケットに入れられるデータの上限以下にすれば、送り出したデータがそのままパケットになって流れるので無駄が有りません。 MTUが9000だと、 ・9000 Octetのデータを送り出す。 ・1パケットに入らないので、データを分割して、それぞれを別のパケットにして送り出す。 ・受信した側は、分割して送られてくるパケットのデータを、ひとつにまとめる。 というような操作を経て届きます。 これが、MTUが1400だと、 ・1400 Octetのデータを送り出す。 ・1つのパケットで送信 ・1つのパケットで受信され、そこからデータを取り出す。 というように、パケットの分割、統合をする手間がかかりませんから、処理時間を含んだ通信速度は大幅に短縮されます。 これが、MTUを9001から1300に変更した事によって起きた事です。