• 测试 Jumbo Frames


    1. MTU 的概念

    最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议在某一层上面所能通过的最大数据报大小(以字节为单位),它通常与链路层协议有密切的关系。

    由于以太网传输电气方面的限制,每个以太网帧都有最小的大小 64bytes,最大不能超过 1518bytes,对于小于或者大于这个限制的以太网帧,我们都可以视之为错误的数据帧。一般的以太网转发设备会丢弃这些数据帧。(注:小于 64Bytes 的数据帧一般是由于以太网冲突产生的 “碎片”或者线路干扰或者坏的以太网接口产生的,对于大于 1518Bytes 的数据帧我们一般把它叫做Giant 帧,这种一般是由于线路干扰或者坏的以太网口产生)。

    由于以太网 EthernetII 最大的数据帧是 1518Bytes,除去以太网帧的帧头( DMAC目的MAC地址 48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes 和帧尾 CRC 校验部分 4Bytes (这个部份有时候大家也把它叫做 FCS),那么剩下承载上层协议的地方也就是 Data 域最大就只能有 1500Bytes,这个值我们就把它称之为 MTU。

    2. 什么是 Jumbo Frames

    Jumbo frames 是指比标准 Ethernet Frames 长的 frame,即比 1518/1522bit 大的 frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;Jumbo frame 在 full-duplex 的 Ethernet 网络上运行;Jumbo frame 定义了一个“link negotiation”协议,来和对端的设备协商,是否对端设备支持使用 Jumbo frames;标准的以太网 IP 报文大小是:1500bit,不包含以太网头和 FCS 的 18bit(6+6+2+4),如果包含以太网头和 FCS,则为 1518bit;Jumbo frame 一般指的是二层封装三层 IP 报文的值大于 9000bit 的报文。

    Jumbo frames 的提出背景:在 1998 年,Alteon Networks 公司提出把 Data Link Layer 最大能传输的数据从 1500 bit 增加到 9000 bit,这个提议虽然没有得到 IEEE 802.3 Working Group 的同意,但是大多数设备厂商都已经支持。

    3. 使用 Jumbo Frames 的优点

    在数据传输时,由于 IEEE 的规定最大的帧规定为 1,500比特(主机在早期的半双功网络中),所以需要数传输需要经过“数据的切要 --- 传输 ---数据组合”的过程。而使用的最大帧越小,传输包的量就越大,计算量相应会多,而产生的后果是:

    a:增加主机的计算量,消耗CPU资源;

    b:影响网络传输的速度。

    而使用大帧优点自然也不言而喻 ———— 降低CPU计算量、加快数据传输

    再说一下缺点:

        (1)由于传输一个巨型帧需要时间比较长,占用线路时间长,造成网络延时。

        (2)一旦巨型帧传输失败,则是一次更为严重的网络事件,重传则需要更多时间。

        (3)所有网络中的设备都要支持Jumbo frame才能正常使用。

        (4)Internet链接不支持Jumbo frame。

     使用传统1500

     enahisic2i0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000

    改成巨帧

    root@ubuntu:~/dpdk-19.11#  ifconfig enahisic2i0 mtu 9000
    root@ubuntu:~/dpdk-19.11# ^C
    root@ubuntu:~/dpdk-19.11# ^C
    root@ubuntu:~/dpdk-19.11# ip a show  enahisic2i0
    2: enahisic2i0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP group default qlen 1000
        link/ether 48:57:02:64:e7:ab brd ff:ff:ff:ff:ff:ff

     Packet needs to be fragmented but DF set 

  • 相关阅读:
    JSTLView快速国际化(SpringMVC)
    SprngMVC源码学习
    请求数据传入(SpringMVC)
    @ModelAttribute注解(SpringMVC)
    SpringMVC-RESTRUL___CRUD知识点总结
    SpringMVC视图解析器概述
    Spring
    英文单词
    关于陌生的依赖模块,如withStyles、react-apollo等
    React项目中那些奇怪的写法
  • 原文地址:https://www.cnblogs.com/dream397/p/14715652.html
Copyright © 2020-2023  润新知