网络通信中,经常会遇到一个概念MTU,全称是Maximum Transmission Unit(最大传输单元)。那么什么是MTU,MTU的作用是什么,本文从最基本的概念出发,一步步讲起。
MTU是最大传输单元,针对的对象是以太网帧中的数据。MTU的确切意思就是以太网帧中数据的最大长度,注意,是以太帧中有效载荷的最大长度,不包括以太帧帧首尾部的长度。
以太网帧数据格式如下:

(1)其中的源地址和目的地址是指网卡的硬件地址(也叫MAC 地址),长度是48 位,是在网卡出厂时固化的。
(2)注意网卡芯片收到的数据就是如上所示的一长串数据;其中包括以太网帧头、IP报报头、TCP协议段头、应用层所需数据。
我们会看到网络中各种资料中谈到MTU时,会涉及这么几个数字:1518,1500,64,46等。MTU的范围,有的说是64-1500,有的说是46-1500,对于MTU的最大值是1500的没有什么异议,但是对于MTU的最小值到底是什么,却有不同的意见。
为什么是1500
一个标准的以太网数据帧大小是:1518,头信息有14字节(6字节的目的地址,6字节的源地址,2字节的类型),尾部校验和FCS(帧校验序列)为4字节,所以真正留给上层协议传输数据的大小就是:1518 - 14 - 4 = 1500。
假设MTU值和IP数据包大小一致,一个IP数据包的大小是:65535,那么加上以太网帧头和为,一个以太网帧的大小就是:65535 + 14 + 4 = 65553(64KB),看起来似乎很完美,发送方也不