Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 关于Shannon'计算的概率考虑;网络流量中的熵_Python_Python 2.7_Python 3.x_Statistics_Entropy - Fatal编程技术网

Python 关于Shannon'计算的概率考虑;网络流量中的熵

Python 关于Shannon'计算的概率考虑;网络流量中的熵,python,python-2.7,python-3.x,statistics,entropy,Python,Python 2.7,Python 3.x,Statistics,Entropy,我有一个PCAP格式的网络转储文件(dump.PCAP),我试图计算源IP和目标IP的熵 我正在使用Python代码: import numpy as np import collections sample_ips = [ "131.084.001.031", "131.084.001.031", "131.284.001.031", "131.284.001.031", "131.284.001.000", ] C = collections.Co

我有一个PCAP格式的网络转储文件(dump.PCAP),我试图计算源IP和目标IP的熵

我正在使用Python代码:

import numpy as np
import collections

sample_ips = [
    "131.084.001.031",
    "131.084.001.031",
    "131.284.001.031",
    "131.284.001.031",
    "131.284.001.000",
]

C = collections.Counter(sample_ips)
counts = np.array(list(C.values()),dtype=float)
#counts  = np.array(C.values(),dtype=float)
prob    = counts/counts.sum()
shannon_entropy = (-prob*np.log2(prob)).sum()
print (shannon_entropy)
我有两个来自实验室实验的网络流量:一个没有攻击(semAtaque.pcap),另一个有DDoS攻击(attacks.pcap)

遭受攻击的服务器的IP:192.168.1.5

用这种方法计算时,会产生一些疑问:

1.我正在考虑离散概率分布和同样可能的结果。对吗?这合理吗

2.如何验证实验?我正在考虑使用以下无效假设进行假设检验: “熵值允许您检测攻击” 可以吗


对于这个案例,什么样的假设检验是好的(样本空间约为40)

您可能会在网络工程交换中得到其他响应。是的,stackoverflow更适合修复bug,而不是统计和entropy@lit:谢谢!抱歉给你添麻烦了!我认为Shannons熵度量了样本中不同IP-s的一种平衡性。如果一个IP占主导地位,则得到低熵。恐怕您不能在这里进行一般测试,这取决于您的网络。你可以考虑在长时间内查看无攻击服务器的熵,并根据你所看到的来构建经验分布。现在,如果特定模式正常或不正常,您可以构建自定义测试。@Ott Toomet:谢谢!你觉得“假设检验”怎么样?你可能会在网络工程交流中得到更多的回答。是的,stackoverflow更适合修复bug,而不是统计和entropy@lit:谢谢!抱歉给你添麻烦了!我认为Shannons熵度量了样本中不同IP-s的一种平衡性。如果一个IP占主导地位,则得到低熵。恐怕您不能在这里进行一般测试,这取决于您的网络。你可以考虑在长时间内查看无攻击服务器的熵,并根据你所看到的来构建经验分布。现在,如果特定模式正常或不正常,您可以构建自定义测试。@Ott Toomet:谢谢!你觉得“假设检验”怎么样?