自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

但行好事 莫问前程

on the programming road

  • 博客(6)
  • 收藏
  • 关注

原创 tcp协议栈处理各种事件的分析

首先我们来看socket如何将一些状态的变化通知给对应的进程,比如可读,可写,出错等等。先来看sock结构中这几个相关域:[code="java"]struct sock {..........................wait_queue_head_t *sk_sleep;.....................................void ...

2009-12-30 01:29:55 416

linux内核sk_buff的结构分析

我看的内核版本是2.6.32.在内核中sk_buff表示一个网络数据包,它是一个双向链表,而链表头就是sk_buff_head,在老的内核里面sk_buff会有一个list域直接指向sk_buff_head也就是链表头,现在在2.6.32里面这个域已经被删除了。而sk_buff的内存布局可以分作3个段,第一个就是sk_buff自身,第二个是linear-data buff,第三个是...

2009-12-25 00:42:06 359 1

lua源码剖析(三)

这次简单的补充一下前面类型部分剩下的东西。首先我们要知道当我们想为lua来编写扩展的时候,有时候可能需要一些全局变量。可是这样会有问题,这是因为这样的话,我们就无法用于多个lua状态(也就是new 多个state).于是lua提供了三种可以代替全局变量的方法。分别是注册表,环境变量和upvalue。其中注册表和环境变量都是table。而upvalue也就是我们前面介绍的用来...

2009-12-20 17:35:54 295

tcp的输入段的处理

tcp是全双工的协议,因此每一端都会有流控。一个tcp段有可能是一个数据段,也有可能只是一个ack,异或者即包含数据,也包含ack。如果是数据段,那么有可能是in-sequence的段,也有可能是out-of-order的段。如果是in-sequence的段,则马上加入到socket的receive队列中,如果是out-of-order的段,则会加入到socket的ofo队列。一旦当我们接收到数据...

2009-12-18 00:56:54 158

nginx的内存管理

先来看内存池的实现,nginx的内存池实现的非常简单。这里内存池的一些图表可以看老朱同学的slides :http://blog.zhuzhaoyuan.com/2009/09/nginx-internals-slides-video/当内存池初始化的时候(下面会分析到)ngx_poll_s只相当于内存池的一个头,保存了当前内存池的一些必要信息而已。当从内存池存取数...

2009-12-10 01:20:19 499

lua源码剖析(二)

这次紧接着上次的,将gc类型的数据分析完毕。谢谢[url=http://www.zhuzhaoyuan.com]老朱[/url]同学的指正,这里CClosure和LClosure理解有误.先来看闭包:可以看到闭包也是会有两种类型,这是因为在lua中,函数不过是一种特殊的闭包而已。[color=red]更新:这里CClosure表示是c函数,也就是和lua外部...

2009-12-04 00:22:33 288

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除