- 博客(7)
- 资源 (4)
- 收藏
- 关注
原创 nginx的文件异步io
nginx使用的文件异步io的基于linux内核的,而并不是glibc库提供的。glibc通过的异步io是基于多线程实现的,并不是真正意义上的异步io。nginx只是在读文件时使用了异步io。那么有的童鞋就会问:那nginx为什么在写文件时不使用异步io?原因是这样的:linux内核的文件异步io是不支持缓存操作的,而正常的写入文件时往往是写入内存中就立刻返回,这样效率就比较高,而使用异步io写入
2013-12-29 22:57:08 3857
原创 linux内核学习笔记------ip报文的分片
对网络比较熟悉的童鞋都知道,当发送的ip报文长度超出了最大的传输单位MTU,且允许分片的情况下,就会对ip报文进行分片。在上层要发送数据时就会调用dst_output,dst_output就会调用ip_output,而ip_output就会调用ip_finish_output,在ip_finish_output把数据发送出去之前就会判断该报文是否进行分片。static int ip_finis
2013-12-29 21:09:25 8803
原创 linux内核学习笔记------ip选项处理(二)
在以前的笔记中讲过ip数据报的处理,里面提到过ip_rcv_finish这个函数,这个函数会调用ip_rcv_options来解析并处理iP首部中的ip选项。if (iph->ihl > 5 && ip_rcv_options(skb)) goto drop;在ip_rcv_finish中会判断ip首部长度是否大于5,只有首部长度大于20的情况下才会有ip选项,并调用ip_rcv_opti
2013-12-26 21:03:04 2338
原创 linux内核学习笔记------iP选项处理(一)
ip首部分为固定部分和选项部分;固定部分为20个字节,而选项部分则是变长的,最长不超过40个字节。选项的格式分为单字节和多字节两种。单字节只包括一个字节的选项类型,而多字节则除一个字节的类型之外,还包括选项长度以及选项数据。包括以下几种ip选项:1、选项列表的结束符此选项标识了选项列表的结束,所有选项的结束,而不是一个选项的结束。如下图000000
2013-12-25 21:17:20 2734
原创 linux内核学习笔记------ip数据报的输入处理
链路层接收到数据包后会通过netif_receive_skb将数据包丢给网络层,而网络层处理接口就是ip_rcv。网络层接口都是通过网络层协议号从ptype_base散列表中找到相应的接收函数。ipv4的数据包类型为ip_packet_type,通过dev_add_pack注册到系统的ptype_base中。ip_rcv功能:1、首先会丢弃不是发往本地的数据报;2、如果数据报是一个共享
2013-12-24 21:29:22 1710
原创 linux内核学习笔记------对端信息块
首先,什么是对端信息块?在linux内核源码剖析——tcp/ip实现这本书中是真么介绍的:对端信息块主要用于组装ip数据包时防止分片攻击,在建立tcp连接时检测连接请求段是否有效以及其序列号是否回绕在linux内核中是通过inet_peer结构体描述的:struct inet_peer{ /* group together avl_left,avl_right,v4daddr to
2013-12-23 20:38:52 1392
原创 nginx运行期间修改配置文件的处理
今天在群里讨论到一个问题就是:如果在nginx运行期间,修改了配置文件,这个时候是重启nginx还是有别的办法呢?对nginx比较熟的童鞋,脑子立马肯定会有答案。执行下面的命令就好了./nginx -s reload那么nginx是怎么处理reload的呢?是像squid那样停止所有的任务后再重读配置文件还是别的处理呢?nginx是不需要停止服务去读取配置文件的,下面来看nginx具体的处理。
2013-12-11 22:14:04 8518
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人