基于标准Linux系统,其中有用户态应用程序和内核网络堆栈.我已经知道,从CPU周期来看,将帧从用户空间移动到内核空间(反之亦然)可能很昂贵.
我的问题是,
>为什么?并在一个方向上移动框架(即从用户移动到
内核)有更大的影响.
>另外,当你做的事情有所不同
进入基于TAP的界面.因为框架仍将继续
用户/内核空间之间.空间问题是否适用,或者是否存在某种形式的零拷贝?
解决方法:
在线解决问题:
Why? and is moving the frame in one direction (i.e from user to
kernel) have a higher impact.
>验证复制操作的指针.
>传输实际数据.
>进入在用户/内核模式之间转换所涉及的通常成本.
这有一些例外,例如你的驱动程序是否实现了strategy such as “page flipping”,它有效地重新映射了一块/内存页面,以便用户空间应用程序可以访问它.这与零复制操作“足够接近”.
Also, how do things differ when you move into TAP based interfaces. As
the frame will still be going between user/kernel space. Do the space
concerns apply, or is there some form of zero-copy in play?
使用基于TUN / TAP的接口时,除非您正在使用某种DMA,页面翻转等,否则应用相同的注意事项;逻辑.
标签:linux,tcp,kernel
来源: https://codeday.me/bug/20190727/1551673.html