定时器 -- 2




概述TCP 管理 4 个不同的定时器:重传定时器,期望在该定时器时间段内收到另一端的确认坚持定时器,当接收方通告窗口大小设置为 0,那么发送方必须不断向接收方查询,以希望通告窗口重新打开,这个查询时间间隔就是坚持定时器保活定时器,用来在空闲连接上定时查询连接的存货状态2MSL 定时器,测量一个连接处于 TIME_WAIT 状态的时间 重传定时器TCP 发送端拥有一个重传计时器,一旦发生超时,则对报文进行重新发送通过实际的测试可以发现,TCP 发送端重传超时分别为 1、3、6、12、24、48 和多个 64 秒,这样的倍乘关系被称为“指数退避”最终的总时间通常为 9 分钟,solaris 中默认为 2 分钟,且可以通过 tcp_ip_abort_interval 变量进行调整 坚持定时器如上所述,一旦接收方通告窗口大小设为了 0,那么发送方必须不断查询,否则如果发送方单纯等待 ACK 报文,一旦 ACK 丢失,发送方就会永远等待,即使接收方已经打开了通告窗口 保活定时器在很多 TCP 实现
#读书笔记    #技术帖    #tcp    #龙潭书斋   
简介libevent 是一个轻量级的开源高性能网络库,很多开源软件包括memcached 都是使用他作为网络层组件他只专注于网络层,采用事件驱动的模式,实现了对 IO 事件、定时器事件、信号事件的处理同时,他对 windows、linux、BSD 等多个平台的不同接口进行了封装由于最近在阅读 nginx 源码的事件处理模块,所以对同样是事件驱动模式的 libevent 很感兴趣,打算研读一下他的源码 事件驱动模式 -- Reactor 模式众所周知,apache 作为应用 web 服务器使用的是同步多进程模型,即在进程池中创建多个进程,当请求到来时,每个进程单独处理一个请求,这样的好处在于进程之间相互独立,服务不会因为某个进程的超时或其他问题而随之出现问题,但是这样的模型占用了大量的系统资源,特别是在大量并发请求到来的时候,大量的进程启动会导致系统资源占用过大而 nginx 以及 libevent 这样事件驱动模型的异步非阻塞模型的网络层应用,使用的是 Reactor 的模式进行请求的处理,只启动有限的进程,比如 nginx 建议启动与
#技术帖    #web    #服务器    #技术分享   



京ICP备2021035038号