由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 谁来说说ZERO COPY和KERNEL Bypass networking
相关主题
弱问:1us包含packet在网卡里和kernel里处理的时间吗?请问用mmap分配的共享内存如何回收?
为啥用mmap访问文件的效率高呢?新手请问用mmap() copy file
Linux Driver好写吗求教:c++中如何从raw data中创建对象?
请教一下,怎么控制发送UDP的速度?"brk()" 和 mmap() 有什么区别? (转载)
关于RespID奇怪的问题:关于一个简单的malloc()小程序 (转载)
mysql频繁写的时候老是挂掉,应该怎么办?大家对在专有网络互联上做collective operation有什么看法?
问一个machine learning/SVM 问题怎样读一个不断更新的文件
C++ delete虚心求教,我这样的应该怎么找编程的工作?
相关话题的讨论汇总
话题: kernel话题: zero话题: copy话题: bypass话题: networking
进入Programming版参与讨论
1 (共1页)
H*****e
发帖数: 160
1
谁来说说ZERO COPY和KERNEL Bypass networking.看了些资料,还是不很清楚.比如说
,你自己管理网络STACK,Bypass Kernel,别人要用你的服务,用TCP连接,是
不是一定要用你的LIB呢?否则,你就得实现TCP,对不对?
n****1
发帖数: 1136
2
没那么复杂, 用户态自旋锁+aio就能达到不错的性能.
d***a
发帖数: 13752
3
我很久以前做过这个。正常的tcp/ip实现,发送数据时数据要先从user
space拷贝到kernel space,再由网卡发送出去。接受时反过来,也有一次
拷贝。zero-copy是为了消除这个拷贝。看网卡的支持,有的还会有额外的
一次拷贝。
实现上可以用user-level tcp/ip,当时的说法,大概就是你说的kernel
bypass networking。

【在 H*****e 的大作中提到】
: 谁来说说ZERO COPY和KERNEL Bypass networking.看了些资料,还是不很清楚.比如说
: ,你自己管理网络STACK,Bypass Kernel,别人要用你的服务,用TCP连接,是
: 不是一定要用你的LIB呢?否则,你就得实现TCP,对不对?

t**r
发帖数: 3428
4
需要网卡 load kernel module支持。
然后在userspace 处理ip packets.
根据需求做routing.
技术不难做起来很繁琐的
H*****e
发帖数: 160
5

我想可以用PACKET SOCKET + MMAP就可以实现0COPY,可是USRE LEVEL TCP怎么办?

【在 d***a 的大作中提到】
: 我很久以前做过这个。正常的tcp/ip实现,发送数据时数据要先从user
: space拷贝到kernel space,再由网卡发送出去。接受时反过来,也有一次
: 拷贝。zero-copy是为了消除这个拷贝。看网卡的支持,有的还会有额外的
: 一次拷贝。
: 实现上可以用user-level tcp/ip,当时的说法,大概就是你说的kernel
: bypass networking。

H*****e
发帖数: 160
6

routing 是指 ip routing?

【在 t**r 的大作中提到】
: 需要网卡 load kernel module支持。
: 然后在userspace 处理ip packets.
: 根据需求做routing.
: 技术不难做起来很繁琐的

d***a
发帖数: 13752
7
packet socket以前没有...
用packet socket和nmap后,程序可以直接处理packet数据吧
当然也可以在user space实现自己的tcp api

【在 H*****e 的大作中提到】
:
: routing 是指 ip routing?

s*******m
发帖数: 58
8
Both Windows and Linux support zero-copy in kernel networking stack.
In Windows, it is implemented through a data structure called NetBufferList,
the data in the form of NetBufferList passes different layers of networking
stack, each layer makes some modification but the original payload is not
copied (so this is called zero-copy). Finally networking device driver copy
the payload inside NetBufferList to onboard buffer of network adapter and
then network adapter send the data.
Linux has mechanism very much like Windows.
Usually zero-copy refers to zero-copy in kernel mode. If your program uses
winsock, user data will be copied from user space to kernel space, so it is
not zero-copy. The only way to achieve user space zero-copy is (in windows)
to use direct I/O and winsock kernel API.
There is a "relatively" new technology called remote DMA, user data will
bypass the entire networking stack and be send directly by network adapter
c****e
发帖数: 1453
9
kernel bypassing networking是说RDMA? 这个要网卡支持。
d*******r
发帖数: 3299
y***l
发帖数: 72
11
楼主是要讨论RDMA service吗?目前InfiniBand, RoCE and iWARP 支持RDMA. 他们都
不需要更改tcp/ip stack. Infiniband and RoCE 可以使用IPoIB 和 SDP 进行协议转
换,iWARP需要使用TCP/IP offline engine.

【在 H*****e 的大作中提到】
: 谁来说说ZERO COPY和KERNEL Bypass networking.看了些资料,还是不很清楚.比如说
: ,你自己管理网络STACK,Bypass Kernel,别人要用你的服务,用TCP连接,是
: 不是一定要用你的LIB呢?否则,你就得实现TCP,对不对?

1 (共1页)
进入Programming版参与讨论
相关主题
虚心求教,我这样的应该怎么找编程的工作?关于RespID
Help! Read random number of lines in a input file.mysql频繁写的时候老是挂掉,应该怎么办?
如何快速保存大块数据(工作中遇到的问题)问一个machine learning/SVM 问题
linux下面的程序间通信怎么样最快?C++ delete
弱问:1us包含packet在网卡里和kernel里处理的时间吗?请问用mmap分配的共享内存如何回收?
为啥用mmap访问文件的效率高呢?新手请问用mmap() copy file
Linux Driver好写吗求教:c++中如何从raw data中创建对象?
请教一下,怎么控制发送UDP的速度?"brk()" 和 mmap() 有什么区别? (转载)
相关话题的讨论汇总
话题: kernel话题: zero话题: copy话题: bypass话题: networking