ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
* [9.2:内核超时处理](第9章:LwIP一探究竟/9.2:内核超时处理.md) * [9.2.1:sys_timeo结构体与超时链表](第9章:LwIP一探究竟/9.2:内核超时处理/9.2.1:sys_timeo结构体与超时链表.md) * [9.2.2:注册超时事件](第9章:LwIP一探究竟/9.2:内核超时处理/9.2.2:注册超时事件.md) * [9.2.3:超时检查](第9章:LwIP一探究竟/9.2:内核超时处理/9.2.3:超时检查.md) 在LwIP中很多时候都要用到超时处理,例如ARP缓存表项的时间管理、IP分片数据报的重装等待超时、TCP中的建立连接超时、重传超时机制等,因此超时处理的实现是 TCP/IP 协议栈中一个重要部分,LwIP为每个与外界网络连接的任务都有设定了 timeout 属性,即等待超时时间,超时处理的相关代码实现在timeouts.c与timeouts.h中。 在旧版本的LwIP中(如LwIP 1.4.1版本),超时处理被称之为定时器(其实现在我们也能这样子称之为定时器,但是为了下文统一,我们一律使用超时处理),但是,在最新版的LwIP中,原来的timer.c已经被删除,转而使用了timeouts.c来代替,并且该源码在实现上也有一定的区别。 由于LwIP是软件,它自身并没有硬件定时器,更不会对硬件定时器进行管理,所以LwIP作者就采用软件定时器对这些超时进行处理,因为软件定时器很容易维护,并且与平台无关,只需要用户提供一个较为准确的时基即可。