Showing
4 changed files
with
6 additions
and
15 deletions
... | @@ -35,17 +35,6 @@ class Counting_bloom_filter(object): | ... | @@ -35,17 +35,6 @@ class Counting_bloom_filter(object): |
35 | keytable.append(self.c_bf[loc3]) | 35 | keytable.append(self.c_bf[loc3]) |
36 | return min(keytable) | 36 | return min(keytable) |
37 | 37 | ||
38 | - def add_to_cbf(self, val): # cbf에 원소 삽입 | ||
39 | - # 최적의 해시 개수 hash_num에 대하여 | ||
40 | - # 3개라 가정하면, i값은 0~2까지 | ||
41 | - # 이 i값을 seed값 삼아 동일 sha1함수에 다른 seed값 부여하고 연산 진행 | ||
42 | - # 연산 결과 나온 key값이 loc, CBF 배열의 loc번째 인덱스에 increment연산 진행 | ||
43 | - # return값: 해당 값(0~threshold값 까지의 정수) | ||
44 | - for i in range(self.hash_num): | ||
45 | - loc = self.hash_func3(val, i+1) | ||
46 | - self.c_bf[loc] += 1 | ||
47 | - return self.c_bf[loc] | ||
48 | - | ||
49 | 38 | ||
50 | def hash_func1(self, val): #fnv32-1a | 39 | def hash_func1(self, val): #fnv32-1a |
51 | hashedVal = fnv(val.encode('utf-8')) | 40 | hashedVal = fnv(val.encode('utf-8')) | ... | ... |
1 | import pyshark as pyshark | 1 | import pyshark as pyshark |
2 | import os | 2 | import os |
3 | import subprocess | 3 | import subprocess |
4 | -import CBF2 as CBF | 4 | +import CountingBloom as CBF |
5 | import threading | 5 | import threading |
6 | import time | 6 | import time |
7 | import schedule | 7 | import schedule |
8 | 8 | ||
9 | -#pps_threshold 설정 필요 | 9 | + |
10 | 10 | ||
11 | def LiveSniffer(net_interface, cbf): | 11 | def LiveSniffer(net_interface, cbf): |
12 | capture = pyshark.LiveCapture(interface=net_interface, bpf_filter= 'dst 192.168.219.110 && tcp') # 캡쳐 프로세스 생성 | 12 | capture = pyshark.LiveCapture(interface=net_interface, bpf_filter= 'dst 192.168.219.110 && tcp') # 캡쳐 프로세스 생성 |
... | @@ -39,9 +39,11 @@ def main(): | ... | @@ -39,9 +39,11 @@ def main(): |
39 | try: | 39 | try: |
40 | capture = pyshark.LiveCapture(interface='wlp2s0', bpf_filter='tcp', display_filter= 'ip.dst == 192.168.219.100') # 캡쳐 프로세스 생성 | 40 | capture = pyshark.LiveCapture(interface='wlp2s0', bpf_filter='tcp', display_filter= 'ip.dst == 192.168.219.100') # 캡쳐 프로세스 생성 |
41 | #capture.set_debug() | 41 | #capture.set_debug() |
42 | - filter = CBF.Counting_bloom_filter(8000, 0.01) # CBF 초기화 | 42 | + filter = CBF.Counting_bloom_filter(20, 0.001) |
43 | + # CBF 초기화, 홈 IoT 환경에서는 최대 20개 정도의 노드로부터 정보를 송수신한다고 판단, 0.001은 hash miss 비율 | ||
44 | + # false-positive 비율을 낮추기 위해서 | ||
43 | print("CB-Filter Length: ", filter.length) | 45 | print("CB-Filter Length: ", filter.length) |
44 | - schedule.every(0.008).seconds.do(CntDecrement, filter.c_bf) | 46 | + schedule.every(0.1).seconds.do(CntDecrement, filter.c_bf) # 0.1초마다 필터 내 1이상의 모든 값을 1씩 감소 |
45 | for packet in capture.sniff_continuously(): | 47 | for packet in capture.sniff_continuously(): |
46 | PktFiltering(packet, filter) | 48 | PktFiltering(packet, filter) |
47 | schedule.run_pending() | 49 | schedule.run_pending() | ... | ... |
보고서/면담확인서/1.jpg
0 → 100644
78.4 KB
보고서/면담확인서/2.jpg
0 → 100644
71.1 KB
-
Please register or login to post a comment