qemu虚拟化环境dpdk网卡tcp offloading

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

目前遇到一个需求

在qemu/KVM虚拟机中启动tcp 的offloading功能

测试环境如下图所示:

虚拟机使用的virtio半虚拟化网卡,过ovs网桥,之后通过intel xl710网卡直连到一台IXIA测试仪帮忙测试tcp checksum

主机QEMU的配置

qemu配置中需要把checksum选项加入,使用virsh edit XXX(虚拟机名字)编辑虚拟机配置文件如下所示

重点是host端的csum='on'以及guest端的csum=‘on’

<devices>
  <interface type='network'>
    <source network='default'/>
    <target dev='vnet1'/>
    <model type='virtio'/>
    <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5' rx_queue_size='256' tx_queue_size='256'>
      <host csum='on' gso='off' tso4='off' tso6='off' ecn='off' ufo='off' mrg_rxbuf='off'/>
      <guest csum='on' tso4='off' tso6='off' ecn='off' ufo='off'/>
    </driver>
    </interface>
</devices>

这里的配置可以参考

82599ES 光口无法通过大包的问题记录 问题 参考 DPDK 例子程序 ip_fragment.c 来实现分片。 无论 I350 电口 还是 82599ES 光口,小包都是可以通过的。 但是在大包的时候,82599ES 光口就有问题。 场景 I350 电口 82599ES 光口 启用 tx checksum offload 小包可以通过 小包可以通过 启用 tx checksum offload 小包可以通过 小包可... 阅读详情

相关推荐

WireShark 中为什么会出现 Tcp Checksum Offload?

其实经常在抓包的时候发现这个问题,今天才好奇的去Google了一下 简单的总结下,就是 wireshark 抓到的数据包提示Checksum错误,仅仅是因为它截获到的是操作系统胡乱填充的checksum,而千兆网卡在开启Checksum Offload之后,会把这些计算的工作交给网卡去做,网卡最后还是会计算出正确的checksum并且发出去的。 这几天在分析通讯报文的过程中发现WireShark里显示本机发出去的一些数据包Bad Checksum,并提示 maybe caused by “TCP che

5730

TCP checksum offload

最近进行网络协议分析的过程中发现WireShark里显示本机发出去的一些数据包incorrect Checksum,并提示 maybe caused by “TCP checksumoffload” Goole上搜索下,发现把系统中的ChecksumOffload的设置改下就可以了。它网卡的一项功能,它可以替代系统的TCP/IP协议栈来计算TCP包的校验和。 Window系统中的Check

王以山的专栏 5866

网卡offload功能介绍

offload 是将本来该操作系统进行的一些数据包处理(如TCP分段、IP分片、重组、checksum、TCP协议处理等)放到网卡硬件中去做, 降低系统 CPU 消耗的同时,提高处理的性能。 普通网卡用软件方式进行一系列TCP/IP相关操作,因此,会在三个方面增加服务器的负担,这三个方面是:数据复制、协议处理和中断处理。 1)TSO(TCP-Segmentation-Offload):将TCP分段工作交由网卡驱动执行,该特性需要网卡硬件支持。使能TSO后,操作系统可以将一个不超过...

ARM-Linux 2万+

TCP segmentaion 和 checksum offload

为什么要offloading? TCP的分片和校验和计算原本都由CPU完成,最新的网络适配器实现了硬件级别的分片和校验和计算,减轻了主机CPU的负担从而提升本机网络包的吞吐量; 原理...

congdiku5262的博客 1212

DPDK 使用网卡ip/tcp/udp checksum offload

网卡ip/tcp/udp checksum offload的功能就是将报文的ip,tcp, udp校验和的计算交给网卡计算,节省cpu的消耗。 第一步 在初始化网卡时打开网卡的checksum offload功能 .hw_ip_checksum = 1, /** 调用rte_eth_dev_configure()函数进行网卡配置; static struct

shaoyunzhe的专栏 1万+

详解vhost-user协议及其在OVS DPDKQEMU和virtio-net驱动中的实现

  总述:OVS DPDKQEMU之间如何通过vhost user协议通信 vhost user协议的控制和数据通道 所有的控制信息通过UNIX套接口(控制通道)交互。包括为进行直接内存访问而交换的内存映射信息,以及当数据填入virtio队列后需要出发的kick事件和中断信息。在Neutron中此UNIX套接口命名为vhuxxxxxxxx-xx; 数据通道事实上由内存直接访问实现。客户机...

redwingz的博客 1万+

网络虚拟化中的 offload 技术:LSO/LRO、GSO/GRO、TSO/UFO

offloadoffload特性,主要是指将本来在操作系统协议栈中进行的一些数据包处理(如IP分片、TCP分片、重组、checksum校验等)放到网卡硬件中去做,降低系统 CPU 消耗,提高处理的性能。我们知道计算机网络上传输的数据基本单位是离散的网包,既然是网包,就有大小限制,这个限制就是 MTU(Maximum Transmission Unit)的大小,一般是1518字节。比如我们想发送很多数

造梦先森Kai的专栏 6511

4.2 TCP Segmentation Offload(TSO)

TSO (TCP Segmentation Offload) 是一种利用网卡替代CPU对大数据包进行分片,降低CPU负载的技术。如果数据包的类型只能是TCP,则被称之为TSO。此功能需要网卡提供支持。TSO 是使得网络协议栈能够将大块 buffer 推送至网卡,然后网卡执行分片工作,这样减轻了CPU的负荷,其本质实际是延缓分片。这种技术在Linux中被叫做GSO(Generic Segmentat

Remy的学习记录 1万+

DPDK - TX-Offload Checksum

DPDK rte_mbuf 启用网卡 Offload 计算校验和配置方法计算 IP checksummb->l2_len = len(out_eth) mb->l3_len = len(out_ip) mb->ol_flags |= PKT_TX_IPV4 | PKT_TX_IP_CSUM注: out_ip.checksum = 0 网卡支持 DEV_TX_OFFLOAD_IPV4_CKSUM

奋斗中拥有 3万+

Linux 网卡特性配置 ethtool 详解 网卡Offload

网络中校验和比较 2015年10月14日 本文说明了网卡,IP层,TCP层,UDP层的校验和功能,以及异同点。 网卡校验和 高级的网卡(e1000e等千M网卡)的接收,发送的校验和的计算方法是CRC32。 Refs:http://www.wireshark.org/docs/wsug_html_chunked/ChAdvChecksums.html http://www.in

chenzhjlf的专栏 3万+

DPDK系列之八:qemu-kvm virtio-net基于OVS-DPDK接入的网络性能测试

一、前言本文创建基于普通bridge的一对VM和基于OVS-DPDK的一对VM,并使用iperf进行网络性能测试,需要注意的是,在这两个测试中,虚拟机内部只是使用普通的virtio-net前端而不是DPDK。转载自https://blog.csdn.net/cloudvtech二、编译和安装qemu-kvm2.1 编译安装wget https://download.qemu.org/qemu-2....

cloudvtech的博客 5928

如何学习 TCP 协议

TCP协议目前是事实上的网络基础。许多更高层的应用协议HTTP,FTP都基于TCPTCP协议的学习可以说枯燥无比,尤其是学生阶段,根本不知道用在什么地方,根本不知道重要性是什么。事实上是,基于目前的网络发展和分布式发展,TCP简直就是基础中的基础。许多网络的问题,配置,入侵,防御乃至架构,都涉及到TCP的具体应用及机制。以下是我总结的TCP学习过程,1. 了解学习TCP协议的重要性和必要性,了解T

粟西米的博客 360

【无标题】

计算机网络上传输的数据基本单位是离散的网包,其大小的限制为MTU(Maximum Transmission Unit)的大小,一般是1518字节。在收包时,需要完成VLAN Tag的过滤和剥离操作。在发送数据超过 MTU 限制的时候(太容易发生了),OS 只需要提交一次传输请求给网卡网卡会自动的把数据拿过来,然后进行切片,并封包发出,发出的网包不超过 MTU 限制。在接收方向,通过设置端口配置,强制对所有达到的数据报文进行检测,即判断哪些包的checksum是错误的,对于出错的包可直接进行丢弃。

congcilikai的博客 893

tcp丢包率_TCP/IP加速原理详解(干货)

请先看下这个case.对某一个key value应用,从网卡接收数据包到应用层处理,再把数据发送出去,整个系统资源消耗情况如下:可以看出,Sockets接口+TCP是系统瓶颈。根据下图模型,瓶颈在于TCP(包括sockets接口)。要想提升系统吞吐量,必须要优化TCP。由于网络延迟的存在,对用户体验影响更大的是如何快速传递数据到客户端,而这属于流量优化的范畴。本文讲述如何优化TCP性能和TCP数据...

weixin_39965673的博客 1102

DPDK基础入门(十):虚拟化

宿主机截获客户机对I/O设备的访问请求,然后通过软件模拟真实的硬件。这种方式对客户机而言非常透明,无需考虑底层硬件的情况,不需要修改操作系统。:通过前端驱动/后端驱动模拟实现I/O虚拟化。客户机中的驱动程序为前端,宿主机提供的与客户机通信的驱动程序为后端。前端驱动将客户机的请求通过与宿主机间的特殊通信机制发送给后端驱动,后端驱动在处理完请求后再发送给物理驱动。:直接把物理设备分配给虚拟机使用,这种方式需要硬件平台具备I/O透传技术,例如Intel VT-d技术。它能获得近乎本地的性能,并且CPU开销不高。

一枚菜鸡 1938

DPDK系列之五:qemu-kvm网络简介

一、前言qemu是一个虚拟化软件,可以在用户空间模拟一个PC机的各种硬件,而KVM则通过强化Linux kernel开启了CPU新的运行模式来提高虚拟化的效率,kvm和qemu组合起来之后的qemu-kvm可以提供更高效的Linux虚拟化解决方案。虚拟化网络是qemu提供的极其重要的虚拟机基础设施,本文将对qemu-kvm的网络虚拟化技术进行简要分析。转载自https://blog.csdn.ne...

cloudvtech的博客 5504

DPDK+OVS+qemu环境测试

本文初步验证DPDK+OVS环境下的虚拟机交互实验 一.前提准备 PS:注意在运行本文档前,需要确保你当前运行的环境中没有开启其他dpdk相关的应用,如果运行报错,请关闭相应的应用。 其次在安装dpdk时,如果需要使用动态库,请确保dpdk的配置文件中/config/common_base CONFIG_RTE_BUILD_SHARED_LIB=y (仅需在安装的时候进行) 1

踏雪寻春的专栏 1887
上一篇: virtio-net 报文组织形式
下一篇: KVM
lingshengxiyou
博客等级 码龄4年 210粉丝 · 736原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值