- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
峰云就她了httpxiaoruicc.PDF
异步io调度框架的实现
峰云就她了
http://xiaorui.cc
⽹卡收到数据之后
包少,硬中断
包多,屏蔽硬中断,DMA+软中断
socket详细流程
tcp三次握⼿
setblocking
backlog多⼤合适?
syn, accept队列
accept(), Why new socket
协议栈
粘包
buffer缓冲区⼤小
IO阻塞的本质
读缓冲,写缓冲区
send,recv原理
满加锁,空解锁
tcp ack 滑动窗⼝角⾊
那么8k的写缓冲区,我有80k要写,流程?
疑问
怎么确定recv的结构是完整的?
短连接
协议约定
粘包是个伪命题 !
长连接、短连接的区别
socket维护长短连接的⼿段
屏蔽close()
IO复用模型
用thread、process活跃上下⽂
keepalive⼼跳包谁来维护? 自定义意义
疑问
socket so_keepalive 参数的作用
检测对端的存活
keepalive_probes
keepalive_time
keepalive_intvl
如果没配置so_keepalive, client挂了,服务端在recv阶段呆很久...
如果配置了so_keepalive, 通过协议栈来探测存活
⾼并发模型
fork模型
进程池模型 or 线程池模型
io复用模型
疑问
惊群?
饥饿?
so_reuseaddr
so_reuseport
上下⽂
什么是上下⽂
什么是上下⽂切换
为什么要上下⽂切换
什么时候会上下⽂切换
执⾏单元
进程
线程
协程
堆、栈
抢占、协作
io
同步阻塞
同步非阻塞
异步阻塞
异步非阻塞
fd
⼀个线程如何多个fd ?
忙轮询? 要不线程池,堵塞等唤醒
io多路复用
select
poll
epoll
select
用法?
epoll
epoll_create
epoll_ctl
epoll_wait
⽔平触发 vs 边缘触发
tornado、nginx的选择
跨平台
libevent
libev
libuv
非堵塞客户端
connect_ex()
sock.setblocking
eagain == EWOULDBLOCK
O_NONBLOCK
eintr
连接问题
协程可以共用⼀个连接么 ?
连接池 vs call create ?
调度器组成部分
核⼼ event loop
类⽣成器
map{fd: object}
信号处理
IO状态
⽂件属性变化
定时器
periodic
timeout
prefork + epoll
Master Worker⼯作
文档评论(0)