码迷,mamicode.com
首页 > 其他好文 > 详细

近期工作

时间:2017-12-05 00:52:37      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:实验   http   存储   字符串匹配   重要   nfa   集中   根据   rip   

最近做了一些基于DFA和NFA的对gzip压缩流量的快速扫描算法的工作,截止昨天终于完成,在此记录。

背景:

1.目前HTTP流量多是压缩流量,HTTP压缩是指: Web服务器和浏览器之间压缩传输的”文本内容“的方法。 HTTP采用通用的压缩算法,比如gzip来压缩HTML,Javascript, CSS文件。 能大大减少网络传输的数据量,提高了用户显示网页的速度。当然,同时会增加一点点服务器的开销。

2.对于压缩流量的扫描,典型的应用场景是杀毒软件。扫描本身可以简化成一个字符串匹配的过程,我们研究的是快速扫描的算法。传统方法对压缩流量的扫描是一个字符一个字符的向前扫,费时费力,因此根据gzip压缩流量的特点,即压缩流量中有80~90%的字符串是重用的。

例如abcdefgbcdef,依次存储占用12个字节,若采用abcdefg%65来存储,可以节约2个字节,后面再遇到相同的字符依然可以在前文中找到相同的字符串来代替。这个代替字符串的意思是,%代表接下来是重复之前的字符串,6表示和之前字符串起始字符的距离,5表示重复字符串的长度。

我们的工作主要集中于有限自动机DFA和NFA的字符匹配算法,首先简单说说自己最近对于这两个概念的理解。DFA是确定性有限自动机,NFA是非确定性有限自动机。DFA中每扫描一个字符,即对当前状态输入字符,得到的输出是下一个状态,即确定性,而在NFA中,当前的状态不是唯一的,是一个状态集,输入一个字符,得到的输出也是不唯一的,也是一个状态集,即非确定性。DFA是一元状态+输入=一元状态,NFA是多元状态+输入=多元状态。所以在字符串扫描的过程中,针对DFA的算法要容易一些,针对NFA的算法,不仅要考虑扫描算法本身,在NFA下的实现也是重要的一环。

发现自己是真的懒,本来想好好缕缕近期工作,结果一想到复杂的算法和无数细节,就实在不想动笔了。具体算法和实验数据会投稿到ICDCS2018。。。

近期工作

标签:实验   http   存储   字符串匹配   重要   nfa   集中   根据   rip   

原文地址:http://www.cnblogs.com/qmdt/p/7979498.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!