Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4636
  • 博文数量: 6
  • 博客积分: 351
  • 博客等级: 一等列兵
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-06 15:38
文章分类

全部博文(6)

文章存档

2025年(6)

发布时间:2025-04-20 19:38:40

#### 执行器rust 中有很多异步执行环境。但是异步执行环境有一个问题。它有“传染性”,如果一个函数是异步的,那么它的所有调用者都必须是异步的。在前面的流量处理模型并不是异步的。所以为了不至于把协议解析部分的异步影响到流量处理模型,我们需要一个自己的执行器。这个执行器把异步操作封装起来,然后在流量处理模.........【阅读全文】

阅读(13) | 评论(0) | 转发(0)

发布时间:2025-04-18 14:53:03

回顾一下前面的解析状态机。它在每一个流表模块提供的flow_t node也就是链接上执行,当执行不下去的时候就跳出来,出让执行权限给其他的链接。看起来像是为每一个链接都实现了一个微型的执行体,使得在同一个执行路径中,让流量处理程序可以并发处理大量的链接。这其实和async/await的异步模式很像。一个async函数就.........【阅读全文】

阅读(5) | 评论(0) | 转发(0)

发布时间:2025-04-18 14:52:29

首先确定都需要划分哪些状态,比如SMTP可以分成下面几个状态:每个状态都是一个函数,这些函数放在一个函数数组中。函数内部在解析的同时判断是否需要切换状态:smtp_sm这个数组就是我们需要的状态机。smtp_sm[MAILFROM].fun这个函数就是处理mailfrom命令的函数。这个函数和 smtp_sm[MAILFROM].state对应。其他的.........【阅读全文】

阅读(5) | 评论(0) | 转发(0)

发布时间:2025-04-18 14:51:45

......【阅读全文】

阅读(5) | 评论(0) | 转发(0)

发布时间:2025-04-18 14:50:59

在数据包基础上开始协议解析不是不可以,甚至有时候还更简单。比如我们想解析SMTP的maifrom命令,它几乎在所有邮件通信过程中都完整地在一个单独的包中。甚至字符数量更多的邮件头也是如此。但是却不能作出它们一定就完整地在一个包中的假设,因为TCP协议并没有这种要求。虽然在绝大多数邮件服务器的实现中都会表现如上面.........【阅读全文】

阅读(5) | 评论(0) | 转发(0)
给主人留下些什么吧!~~

大鬼不动2010-12-02 08:46

回复  |  举报

chinaunix网友2010-11-18 11:36

tea

回复 |  删除 |  举报
留言热议
请登录后留言。

登录 注册