一部分应用层协议放进kernel?
先把想法记下来。
- 提供一种描述语言,将应用层协议描述成DFA;
- 一个generator将DFA转换为代码;
- 用户态程序通过某种接口来向kernel请求已经协商好的该种协议的socket并由kernel直接填写一部分数据结构;
- 应用程序对socket的第一个回应有时间限制—-如果一段时间之内不回应,则系统将该socket交给下一个监听进程。
解决的问题:
- 减少上下文切换。内核直接完成协议初始的协商会话(包括TLS/SSL?)
- 减少用户能看到的出错情形,i.e. 服务进程不在的时候(例如,在重启过程中)内核可以将服务交给其他服务进程而不是简单地回应RST。