Linux内核网络协议栈优化总纲
本文原创为freas_1990 转载请标明出处:http://blog.csdn.net/freas_1990/article/details/9474121
Jack:淫龙,Linux内核协议栈如何优化?
我:你所说的协议栈优化是指什么?
Jack:就是我希望我的server程序和server程序所在的Linux服务器网络处理能力达到最优化。
我:想要达到你的目标,你需要做到两点:
1、Linux操作系统的网络接口层收发数据包必须要高效,接收到之后,缓冲机制需要控制好。
2、tcp或同层次的协议参数调整好。
Jack:什么是网络接口层?
我:就是通常所说的数据链路层,这两个概念通常可以互换。
Jack:也就是说,对于我的目标而言,只要把L2、L4层协议熟悉好就好了。
我:仅仅熟悉协议是不够的,及时你把RFC读烂了,没有读过源代码也很难理解其中的实现精妙处。RFC更接近于科学,而内核实现是编码。这两者差距是非常大的。
Jack:为什么你只关注L2、L4层协议?
我:对于你想解决的问题,L2、L4层协议才能对你有帮助。
1、L1里的规程不是一个程序猿应该关心的事情。
2、L3里的规程主要是解决“路由”,“组网”的问题。如果你不是科学家或者网管或者防火墙编写者,也可以不用深究。很显然,上面三类人和你都没关系。
Jack:那么为什么L2、L4协议对server性能优化直接影响呢?
我:真正有直接影响的是L4协议,在Linux内核里对应的是socket机制。
Jack:就是socket编程里的API吗?
我:你所看见的socket编程只是冰山一角。在Linux内核里有sock和socket两个结构体共同实现RFC里设计的TCP协议所有socket里的函数参数,实际上是对这两个结构体所构成的对象、链表、队列进行操作。所以,如果你只是熟悉socket的API而不深入学习其实现,只能知其然不知其所以然。别人说什么,你就跟着说什么,全无见识。
Jack:那L2层的协议为什么对linux内核协议栈优化有影响呢?
我:你在linux下执行ethtool -S eth0,研究下输出吧。今天实在太困了。先休息下。
最新文章
- 20款响应式的 HTML5 网页模板【免费下载】
- 三维数组——与 宝玉QQ群讨论交流之二
- 12-27cell 的可重用性(英雄列表应用性能的优化)
- 常用邮件 smtp pop
- hadoop(二):hdfs HA原理及安装
- XE4 IOS开发环境配置
- QQMusic绿钻兄,你可安好?我需要晴天。
- OC中另外的一个常用技术:通知(Notification)
- c++的正整数高精度加减乘除
- 京东金融集团BD部门招聘 BD经理
- javascript 中的apply()和call()方法详解
- OSPFv3与OSPF的配置
- React-Error
- https://www.cnblogs.com/yudanqu/p/9467803.html
- 前端框架本质之探究——以Vue.js为例
- git push 时发生 error: failed to push some refs to 错误 (解决办法)
- Gym 101873C - Joyride - [最短路变形][优先队列优化Dijkstra]
- jq初入行常用动画
- hadoop /etc/Hadoop/slaves文件解析【转】
- 第11月第21天 php引用 codeigniter cakephp