记得以前家里的电脑上网网速很慢,于是千方百计寻找提高网速的方法。网络上的解决方法千篇一律,都是围绕如何修改MTU展开的,于是就下载了类似的工具修改MTU的值,好像效果也没有十分明显。当时对网络基本上也是一窍不通,也不知道MTU是什么东东,所以也没研究。
近日在学习《计算机网络》中的数据链路层的时候,突然看到MTU的内容,后来又去上网搜索了相关的知识,整理了一些资料。
MTU(Maximum Transfer Unit)-也即最大传送单元。
数据链路层在收到上层网络层提供的IP数据报之后,会在其每个IP数据报首部和尾部加入帧首部和帧尾部,封装成帧,然后再交给物理层以比特流传输给对方。为了提高帧的传输效率,我们自然希望一个帧的数据部分的长度比首部和尾部这些控制信息的长度长。当然,任何事物都需要有一个度,所以我们必须对帧数据部分的长度进行控制(这是从网络的整体考虑的),给它限定一个最大长度,也就是MTU。
任何网络设备都有一个自己的MTU(这也是从网络的整体性考虑的),包括路由器,交换机,当然包括自己的电脑。由于各个网络设备的MTU值不一定相同,这时便出现了这样一个问题,数据报(或者说是分组)再次被分成若干个数据包,这样一来,就增加了数据包出错或者丢失的概率。
对此,我们分两种情况讨论:(MTU的单位是字节)
1.路由器的MTU比本机的小,路由器会对数据包再进行分割。
比如:路由的MTU是800,而自己的电脑的MTU是1500,那么当你给对方传送1500字节的数据时,势必需要对这150