美文网首页
【MTU】flanneld flannel0 MTU

【MTU】flanneld flannel0 MTU

作者: Bogon | 来源:发表于2023-06-21 01:02 被阅读0次

Flannel是一种容器网络解决方案,它使用overlay网络模型来连接不同的容器和主机。
MTU(最大传输单元)是网络中能够通过的最大数据包大小。

36fb01226198bfd468783299acb39347_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

从flannel0读取数据的buffer缓冲区大小defaultMTU是1472,为什么是1472而不是默认的1500呢?

原因是flanneld从flannel0收到数据后会封装成UDP数据,发出去的UDP数据包会增加一个IP头(20字节)和一个UDP头(8)字节。
如果flannel0的MTU继续设置1500,加上IP和UDP头的28字节数据,到达宿主机eth0的时候最大报文会超过eth0的MTU,eth0会把该数据包丢弃。

对于Flannel网络,通常建议将MTU设置为1450或更小。
这是因为Flannel使用了额外的封装层来实现容器之间的通信,这些封装层会增加数据包的大小。
在一些网络环境中,如果MTU设置过大,可能会导致数据包被分片,从而引起性能问题。
因此,将MTU设置为1450或更小可以确保数据包不会被分片,从而提高网络性能。

请注意,具体的MTU设置可能因网络环境而异,建议根据实际情况进行调整。

如果多个节点相互通信,flanneld是怎么确定数据包该发往哪台主机呢?
其实很简单,我们可以借助etcd维护网段与节点IP的关系,flanneld收到数据包后,解析出报文中的目的IP,再与etcd中的维护的网段做计算,就可以得到目标宿主机的IP。

主机间通信使用“不可靠”的UDP协议?
flanneld是把收到的数据包以UDP的形式发到其它机器,UDP协议不是“不可靠”协议吗?如果数据包丢了怎么办?
其实 flanneld在这里充当的是链路层的角色,是允许丢包的,而丢包重传是上层该考虑的事情。
举个例子,比如文章中的1.1.1.2与1.1.2.2建立的是TCP连接,在某个数据报文中flanneld发出去的报文丢了,此时TCP协议会有重传机制。

相关文章

  • MTU

    以太帧的MTU与PPPOE、IP、TCP关联 接口MTU 接口MTU和路径MTU 接口MTU指的是网卡的MTU(例...

  • [玩转docker]  你需要知道的docker一些配置

    docker网络之mtu调整 docker mtu默认是1500,阿里云的mtu和docker的mtu都为1500...

  • 【网络】MTU相关网络丢包问题分析处理

    一、 MTU MSS 概念 什么是MTU? MTU是数据链路层的概念,限制的是数据链路层payload的大小,即...

  • Jumbo Frame 与 MTU

    什么是MTU 根据AWS EC2的文档: The maximum transmission unit (MTU) ...

  • Win7修改本地连接MTU值来提高网速的方法

    mtu值通信术语为最大传输单位,mtu值对于网速来说影响较大,我们可以通过修改mtu值来提高网速。但是如何修改本机...

  • 【每日新知】什么是MTU?MUT的值

    什么是MTU?MUT值为什么都是1500? Maximum Transmission Unit,缩写MTU,中文名...

  • MTU

    mtu(Maximum Transmission Unit):是一种通信术语,是指一种通信协议的某一层上面所能通过...

  • MTU

    MTU(Mzximum transfering unit):链路层概念 以太网帧的的MTU是1500字节,以太网上...

  • MTU

    MTU 概念 MTU( Maximum Transmission Unit),最大传输单元。用来设置 一个数据包的...

  • mtu

    今天新学的只是,mtu 是一个包的大小,是数据传输过程中的一个参数。如果你设置的这个值,比较小,你在传输的过程中,...

网友评论

      本文标题:【MTU】flanneld flannel0 MTU

      本文链接:https://www.haomeiwen.com/subject/peikydtx.html