linux下的网络模型,首推EPOLL模型
最近在思考,epoll ET模式触发条件是什么?
1.ET模式下,对端发送1000字节数据,tcp内核缓冲区有1000字节数据,然后epoll通知我可读事件,我读取了200就不读了,内存缓冲区还剩余800字节,如果对端不继续发送数据,那么没法再次触发可读事件,这800字节就被丢掉了
如果对端又发送了1个字节,那么会再次触发可读事件,现在内核缓冲区里面有801个字节,epoll通知我可读事件,我可以一次把801个字节都读完
因此ET模式下,一般处理是:触发事件后,一直循环读取数据,直到读返回EAGAIN。而LT模式的epoll就没有这个烦恼。
2.LT模式,对端发送1000字节数据,tcp内核缓冲区有1000字节数据,然后epoll通知我可读事件,我读取了200就不读了,内存缓冲区还剩余800字节,LT模式下epoll会持续触发事件通知应用层,内核缓冲区中还有数据没取,直到内核缓冲区的数据都被取走。
EPOLL的源代码分析
最后
以上就是大意小丸子最近收集整理的关于epoll ET模式触发条件是什么?的全部内容,更多相关epoll内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复