模糊协议(英语:Protocol Obfuscation,又称迷惑协议、协议迷惑、协议加密、迷惑协议)是eMule在0.47b之后的版本正式加入的一项功能,这个功能主要是针对ISP的流量限制做出反击。
在网络上传输的数据包,大致上可以很简单的分为两个部分:标头与数据。在标头的部分都含有特定的识别信息,因此只要透过特定的观察器,去截取在网络上传播的数据包,就可以知道“谁”正在用何种“通信协议”在传输消息。而eMule所使用的eD2k通信协议,在每个数据包的标头的部分,自然也包含着特定的识别信息。最近几年,各国的ISP业者因为感受到P2P流量对自身网络所带来的冲击,因此纷纷开始研究去限制P2P的流量。而eMule所使用的eD2k通信协议,自然是主要的目标之一,因为同时在使用eMule的人可能有数百万到数千万人以上。
为了对ISP的流量限制做出反制,eMule的开发团队,开发出“模糊协议”这项功能。开启这个功能,eMule传输的数据包标头看起来就会变成一群随机数而无意义的数据,因为缺乏固定的特征,所以没有办法被简单的识别出来,如此一来ISP的流量限制也就变得毫无效果。
“模糊协议”经常在某些地方会被误解:
目前模糊协议已经在eD2k TCP与UDP、服务器的TCP与UDP、Kad的TCP上实现,至于Kad的UDP则尚未实现。
开启这项功能会使CPU的占用率稍微提高,并且在传输数据时,会需要多传数Bytes的数据,然而这并不是什么大问题。
L7-filter是针对OSI模型的第七层-应用层所设计,是Linux防火墙Netfilter的分类器。它可以对每个数据包所使用的通信协议做出分类,进而让Netfilter对特定的通信协议进行阻挡或者是带宽控管。目前针对eD2k的比对档只测试到eMule 0.47a的版本,之后的版本因为模糊协议的关系,应该无法对经过模糊化的eD2k数据包做出有效的比对。
IPP2P则是Netfilter的模块,专门针对P2P通信协议来设计。在IPP2P的网站并没有任何关于成功识别模糊协议的消息,因此可以认定IPP2P无法对经过模糊化的eD2k数据包做出有效的比对。