近期工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了近期工作相关的知识,希望对你有一定的参考价值。
最近做了一些基于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。。。
以上是关于近期工作的主要内容,如果未能解决你的问题,请参考以下文章