Patterns in network system design (8)

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




 

Single CPU, Multi-core, Chassis based, Cluster, Distributed 的网络系统设计,是软件和硬件co-design的过程,硬件方面,诸如ASIC, FPGA, Co-processor, Network processor, Switch fabric, Memory controller等问题,不在本文的讨论范围之内,本文作者也不太了解这方面的知识。但从软件方面来说,首先要面对的是如何分配计算资源:SMP或者AMP,这就涉及到操作系统选择(开源操作系统很多,但都不是为网络设备优化过的,网络设备也是一个嵌入式设备,但是协议栈是通用协议栈,用来做网络设备可能稍差点),编程方式选择(在内核还是在用户空间),API(标准API,还是自己私有的API),程序库等等。然后是任务分配,任务分配的难点在于如何让系统的资源使用达到平衡,避免有些CPU太忙,而有些CPU太闲,在这里,Queue做为连接不同任务的节点就显得很重要。在接下来就是软件层次的划分,无状态包处理还是有状态包处理的选择,最后就是多CPU(chassis based,cluster, Distributed)的通讯,有很多库可以参考,比如MPI或者OpenMP。

当然,做为一个完整的系统,肯定还有很多东西需要考虑,比如内存管理,timer, ager,链表,哈希表,树等等具体的问题,这些都是细节,对系统的整体设计应该没有什么太大影响。硬件设计需要考虑系列化,可扩展;软件设计需要考虑通用,可移植,可扩展。从单CPU到多CPU,从单板到多板,再到多机。硬件可以scale out,软件同样可以scale out,这样的系统才是成功的系统。不管什么样的系统,从更高层次来看都是一样的,所以google的high performance web和cisco的high performance network,上层结构可能是一样的,这个要慢慢体会。

References(只列出了看过的,翻过的,见过的,其他的没有了,读者可以自己补充)

1: Network Systems Design Using Network Processors: Intel 2XXX Version

2: Network Systems Design with Network Processors, Agere Version

3: Network Flows: Theory, Algorithms, and Applications

4: Patterns in Network Architecture: A Return to Fundamentals

5: Pattern-Oriented Software Architecture Volume 1: A System of Patterns

6: Pattern-Oriented Software Architecture Volume 2: Patterns for Concurrent and Networked Objects

7: Pattern-Oriented Software Architecture Volume 3: Patterns for Resource Management

8: Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing

9: Pattern Oriented Software Architecture Volume 5: On Patterns and Pattern Languages

10: Design Patterns: Elements of Reusable Object-Oriented Software

11: Network Algorithmics,: An Interdisciplinary Approach to Designing Fast Networked Devices (The Morgan Kaufmann Series in Networking)

12: Network Routing: Algorithms, Protocols, and Architectures (The Morgan Kaufmann Series in Networking)

13: Designing Embedded Communications Software

(5个打分, 平均:5.00 / 5)

雁过留声

“Patterns in network system design (8)”有7个回复

  1. sixshot 于 2011-01-19 4:44 下午

    堪称经典!

  2. jiaruifu 于 2011-01-19 7:11 下午

    资料很丰富,很专业,赞一个。

  3. anonymous 于 2011-01-19 7:22 下午

    Glade to see the complete article, how about move this one as the first part or prefix , and give a simple but clear explain to this charm?

  4. kernelchina 于 2011-01-20 1:57 上午

    很好的建议,首席打包成pdf的时候,可以考虑调整一下顺序。

  5. cracked 于 2011-01-20 9:15 下午

    首席打包的时候 加点自己的注释更好些

  6. bigrong 于 2011-01-25 11:19 下午

    比较大话存储来说,就是希望能够更调侃一点,文风再活泼一点。
    等着出个pdf,然后把这些东西再调整一下。
    豆丁网上有很多弯曲的好文章汇总啊。我们自己也抓点紧。

  7. jackie 于 2011-02-13 9:47 下午

    Thanks for your great jobs although I am a rookie in this area.