我想在C或C ++中编程(尽可能高效)TCP / IP通信堆栈。它必须尽可能快地运行。
有没有人有一个很好的例子或建议从哪里开始?
答案 0 :(得分:6)
这并不意味着侮辱,已经为完善的操作系统开发堆栈的人已经这样做多年了。这就是他们所做的,除非你从事这项业务,我建议你看一下不同的方法。
不同的方法是,选择具有良好性能的堆栈(我听说Solaris中最新的tcp / ip堆栈很漂亮),然后调整它的地狱(有很多不同的标志和设置可以调整) 。如果无法满足您的需求,请考虑硬件解决方案,如tcp offloading等。
编写自己的筹码,意味着你必须足够自信地知道你可以在这个领域击败可能有1000多年的人力。
如果这是为了自我开发和学习,我建议像minix的源代码一样简单,它可能有一个简单易懂的堆栈。
M2C。
答案 1 :(得分:3)
这是一项艰巨的任务。我建议将Contiki操作系统作为可能的起点。它有一个TCP / IP堆栈。
答案 2 :(得分:2)
正如史蒂夫在评论中指出的那样,你需要很多经验才能做到这一点。因此,我建议采取以下可能的步骤,而不是直接跳到最终目标:
Linux是一个不错的选择,因为您可以轻松访问和记录所需的详细信息。
哦,是的,一旦你意识到你不可能胜过Linux内核就停止。
答案 3 :(得分:1)
Implementing a High Performance Object Oriented TCP/IP Protocol Stack
Thesis for the Degree of Master of Science Peter Kjellerstedt and Henrik Baard
答案 4 :(得分:0)
lwip - 轻量级TCPIP堆栈,最好开始学习TCP / IP堆栈
git clone git://git.savannah.nongnu.org/lwip.git