内核旁路UDP和TCP基于Linux这是什么牵扯? [英] Kernel bypass for UDP and TCP on Linux- what does it involve?

查看:654
本文介绍了内核旁路UDP和TCP基于Linux这是什么牵扯?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

http://www.solacesystems.com/blog /内核旁路提速-Linux的网络:

[...]使用的网络驱动程序调用OpenOnload 内核搭桥技术可在用户空间运行应用程序和网络驱动程序一起,好了,绕过内核。这允许连接的应用程序侧每秒处理更多的消息具有较低和更一致的延迟

[...]a network driver called OpenOnload that use "kernel bypass" techniques to run the application and network driver together in user space and, well, bypass the kernel. This allows the application side of the connection to process many more messages per second with lower and more consistent latency.

[...]

如果你是谁一直与多年的内核旁路上下文切换可能会觉得像作弊打了一个开发商或建筑师,但幸运的是它是完全在规则之内。

If you’re a developer or architect who has fought with context switching for years kernel bypass may feel like cheating, but fortunately it’s completely within the rules.

什么是做这种内核旁路所需的功能?

What are the functions needed to do such kernel bypassing?

推荐答案

你也许想发送和接收原始IP数据包?

Do you perhaps want to send and recieve raw IP packets?

基本上你将需要填写标题和数据在IP数据包。
有关于如何发送原始以太网数据包在这里的一些例子:
 :<一href=\"http://austinmarton.word$p$pss.com/2011/09/14/sending-raw-ethernet-packets-from-a-specific-interface-in-c-on-linux/\" rel=\"nofollow\">http://austinmarton.word$p$pss.com/2011/09/14/sending-raw-ethernet-packets-from-a-specific-interface-in-c-on-linux/

Basically you will need to fill in headers and data in a ip-packet. There are some examples here on how to send raw ethernet packets: :http://austinmarton.wordpress.com/2011/09/14/sending-raw-ethernet-packets-from-a-specific-interface-in-c-on-linux/

要处理TCP / IP上的自己,我认为你可能需要定制内核,以禁用TCP驱动程序,然后写读取原始IP自己的用户空间的服务器。

To handle TCP/IP on your own, i think that you might need to disable the TCP driver in a custom kernel, and then write your own user space server that reads raw ip.

这可能不是有效的,但...

It's probably not that efficient though...

这篇关于内核旁路UDP和TCP基于Linux这是什么牵扯?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆