02 2016 档案

linux 内核睡眠与唤醒
摘要:休眠(被阻塞)的进程处于一个特殊的不可执行状态。进程休眠由多种原因,但肯定都是为了等待一些事件。事件可能是一 段时间从文件I/O读取更多数据,或者是某个硬件事件。一个进程还由可能在尝试获取一个已被占用的内核信号量时被迫进入休眠。休眠的一个常见原因就是文件 I/O —— 如进程对一个文件执行了read 阅读全文

posted @ 2016-02-29 20:16 追寻前人的脚步 阅读(2751) 评论(0) 推荐(0)

tcp接收队列
摘要:对于接收数据包,内核维护如下几个队列:1>全局 backlog 队列,驱动程序调用 netif_rx 将接收到的数据包缓存于该队列中。2>sock 结构中 back_log 队列,网络层在 tcp_rcv 函数中将接收到的数据包缓存于该队列中,如果该数据包对应的套接字正在忙于处理其它任务,无暇处理该 阅读全文

posted @ 2016-02-23 22:13 追寻前人的脚步 阅读(287) 评论(0) 推荐(0)

TCP连接状态
摘要:TCP 连接状态按 TCP 协议的标准表示法, TCP 可具有如下几种状态,为讨论方便,如下讨论中区分服务端和客户端,实际软件处理上对二者一视同仁。 CLOSED关闭状态。在两个通信端使用“三路握手”机制建立连接之前即处于该状态。 LISTEN监听状态。此状态是对服务器端而言的。处于此状态的套接字正 阅读全文

posted @ 2016-02-23 22:05 追寻前人的脚步 阅读(293) 评论(0) 推荐(0)

REUSEADDR 选项
摘要:一般而言,对于处理2MSL状态的套接字(一般为服务端套接字)是不允许接受从同一客户端重新发起一个新的连接的,但是套接字编程系统接口允许应用程序通过设置一个REUSEADDR选项,使处于2MSL状态的套接字重新接受从相同客户端发起的新的请求。很多教科书上都是这么说,但是其中有一个最为关键的问题大家都避 阅读全文

posted @ 2016-02-23 21:53 追寻前人的脚步 阅读(1083) 评论(0) 推荐(0)

导航