本文原创为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,研究下输出吧。今天实在太困了。先休息下。

最新文章

  1. 20款响应式的 HTML5 网页模板【免费下载】
  2. 三维数组——与 宝玉QQ群讨论交流之二
  3. 12-27cell 的可重用性(英雄列表应用性能的优化)
  4. 常用邮件 smtp pop
  5. hadoop(二):hdfs HA原理及安装
  6. XE4 IOS开发环境配置
  7. QQMusic绿钻兄,你可安好?我需要晴天。
  8. OC中另外的一个常用技术:通知(Notification)
  9. c++的正整数高精度加减乘除
  10. 京东金融集团BD部门招聘 BD经理
  11. javascript 中的apply()和call()方法详解
  12. OSPFv3与OSPF的配置
  13. React-Error
  14. https://www.cnblogs.com/yudanqu/p/9467803.html
  15. 前端框架本质之探究——以Vue.js为例
  16. git push 时发生 error: failed to push some refs to 错误 (解决办法)
  17. Gym 101873C - Joyride - [最短路变形][优先队列优化Dijkstra]
  18. jq初入行常用动画
  19. hadoop /etc/Hadoop/slaves文件解析【转】
  20. 第11月第21天 php引用 codeigniter cakephp

热门文章

  1. Oracle 11g password过期被锁定报道 ORA-28000 the account is locked
  2. iOS_文章3党库SDWebImage
  3. ExcelReport源码解析
  4. ASP.NET MVC企业级项目框架
  5. PDF解决方案(3)--PDF转SWF
  6. 单极型ADC如何测量负电压?
  7. StringTokenizer使用类
  8. 【转】在PC上测试移动端网站和模拟手机浏览器的5大方法
  9. linux服务创建及jq配置服务列表查看
  10. 数据类型和typeof操作符