Skip to content

Commit c1fb8aa

Browse files
authored
Add files via upload
1 parent 3d02c15 commit c1fb8aa

1 file changed

Lines changed: 52 additions & 48 deletions

File tree

FeaturesCalc.py

Lines changed: 52 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,16 @@ def __init__(self, flow_type, min_window_size=2):
2222
"Avg_pkts_lenght", "Min_pkts_lenght", "Max_pkts_lenght", "StDev_pkts_lenght", "Avg_small_payload_pkt", "Avg_payload", "Min_payload",
2323
"Max_payload", "StDev_payload", "Avg_DNS_over_TCP", "Label"]
2424

25+
self.total_packets = 0
26+
self.nb_samples = 0
27+
2528
def compute_features(self, packets_list):
2629

27-
if(len(packets_list) < self.get_min_window_size()):
28-
print("\nNumero di paccheti troppo basso\n")
29-
return
30-
else:
31-
pass
30+
def increment_sample_nb(nb):
31+
self.nb_samples += nb
32+
33+
def update_received_pkts(nb):
34+
self.total_packets += nb
3235

3336
def compute_avg(list_of_values):
3437
if (len(list_of_values) == 0):
@@ -102,15 +105,6 @@ def DNS_over_TCP_ratio(packets_list):
102105
def compute_duration_flow(packets_list):
103106
return packets_list[len(packets_list) - 1].time - packets_list[0].time
104107

105-
# Calcola la grandezza in byte della lista di pacchetti
106-
def window_bytes_lenght(packets_list):
107-
total_lenght = []
108-
lenght = 0.0
109-
pkt_lenght_list = packets_bytes_lenght(packets_list)
110-
for pkt_lenght in pkt_lenght_list:
111-
lenght += pkt_lenght
112-
return total_lenght.append(float(lenght))
113-
114108
# Calcola la grandezza in byte di ogni pacchetto in una lista di pacchetti
115109
def packets_bytes_lenght(packets_list):
116110
pkt_lenght_list = []
@@ -271,40 +265,50 @@ def compute_tcp_flags(packets_list):
271265
rst_counter.append(0.0)
272266
return (syn_counter, fin_counter, ack_counter, psh_counter, urg_counter, rst_counter)
273267

274-
syn_lst, fin_lst, ack_lst, psh_lst, urg_lst, rst_lst = compute_tcp_flags(packets_list)
275-
276-
syn_avg = compute_avg(syn_lst)
277-
fin_avg = compute_avg(fin_lst)
278-
ack_avg = compute_avg(ack_lst)
279-
psh_avg = compute_avg(psh_lst)
280-
urg_avg = compute_avg(urg_lst)
281-
rst_avg = compute_avg(rst_lst)
282-
283-
durationFlow =compute_duration_flow(packets_list)
284-
avgTimeFlow = compute_avg(compute_delta_time(packets_list))
285-
minTimeFlow = compute_min(compute_delta_time(packets_list))
286-
maxTimeFlow = compute_max(compute_delta_time(packets_list))
287-
stdevTimeFlow = compute_stDev(compute_delta_time(packets_list))
288-
dns_pkt = compute_avg(compute_DNS_packets(packets_list))
289-
tcp_pkt = compute_avg(compute_TCP_packets(packets_list))
290-
udp_pkt = compute_avg(compute_UDP_packets(packets_list))
291-
icmp_pkt = compute_avg(compute_ICMP_packets(packets_list))
292-
pktLenghtAvg = compute_avg(packets_bytes_lenght(packets_list))
293-
pktLenghtMin = compute_min(packets_bytes_lenght(packets_list))
294-
pktLenghtMax = compute_max(packets_bytes_lenght(packets_list))
295-
pktLenghtStDev = compute_stDev(packets_bytes_lenght(packets_list))
296-
smallPktPayloadAvg = compute_avg(compute_packet_with_small_TCP_payload(packets_list, False))
297-
avgPayload = compute_avg(compute_packet_TCP_payload_size(packets_list, False))
298-
minPayload = compute_min(compute_packet_TCP_payload_size(packets_list, False))
299-
maxPayload = compute_max(compute_packet_TCP_payload_size(packets_list, False))
300-
stDevPayload = compute_stDev(compute_packet_TCP_payload_size(packets_list, False))
301-
dnsOverTcpRatioNormalized = compute_avg(DNS_over_TCP_ratio(packets_list))
302-
303-
row = [syn_avg, urg_avg, fin_avg, ack_avg, psh_avg, rst_avg, dns_pkt, tcp_pkt, udp_pkt, icmp_pkt, durationFlow, avgTimeFlow,
304-
minTimeFlow, maxTimeFlow, stdevTimeFlow, pktLenghtAvg, pktLenghtMin, pktLenghtMax, pktLenghtStDev, smallPktPayloadAvg,
305-
avgPayload, minPayload, maxPayload, stDevPayload, dnsOverTcpRatioNormalized, self.label]
306-
return row
307-
268+
if(len(packets_list) < self.get_min_window_size()):
269+
print("\nNumero di paccheti troppo basso\n")
270+
return None
271+
else:
272+
syn_lst, fin_lst, ack_lst, psh_lst, urg_lst, rst_lst = compute_tcp_flags(packets_list)
273+
syn_avg = compute_avg(syn_lst)
274+
fin_avg = compute_avg(fin_lst)
275+
ack_avg = compute_avg(ack_lst)
276+
psh_avg = compute_avg(psh_lst)
277+
urg_avg = compute_avg(urg_lst)
278+
rst_avg = compute_avg(rst_lst)
279+
280+
durationFlow = compute_duration_flow(packets_list)
281+
avgTimeFlow = compute_avg(compute_delta_time(packets_list))
282+
minTimeFlow = compute_min(compute_delta_time(packets_list))
283+
maxTimeFlow = compute_max(compute_delta_time(packets_list))
284+
stdevTimeFlow = compute_stDev(compute_delta_time(packets_list))
285+
dns_pkt = compute_avg(compute_DNS_packets(packets_list))
286+
tcp_pkt = compute_avg(compute_TCP_packets(packets_list))
287+
udp_pkt = compute_avg(compute_UDP_packets(packets_list))
288+
icmp_pkt = compute_avg(compute_ICMP_packets(packets_list))
289+
pktLenghtAvg = compute_avg(packets_bytes_lenght(packets_list))
290+
pktLenghtMin = compute_min(packets_bytes_lenght(packets_list))
291+
pktLenghtMax = compute_max(packets_bytes_lenght(packets_list))
292+
pktLenghtStDev = compute_stDev(packets_bytes_lenght(packets_list))
293+
smallPktPayloadAvg = compute_avg(compute_packet_with_small_TCP_payload(packets_list, False))
294+
avgPayload = compute_avg(compute_packet_TCP_payload_size(packets_list, False))
295+
minPayload = compute_min(compute_packet_TCP_payload_size(packets_list, False))
296+
maxPayload = compute_max(compute_packet_TCP_payload_size(packets_list, False))
297+
stDevPayload = compute_stDev(compute_packet_TCP_payload_size(packets_list, False))
298+
dnsOverTcpRatioNormalized = compute_avg(DNS_over_TCP_ratio(packets_list))
299+
300+
row = [syn_avg, urg_avg, fin_avg, ack_avg, psh_avg, rst_avg, dns_pkt, tcp_pkt, udp_pkt, icmp_pkt, durationFlow, avgTimeFlow,
301+
minTimeFlow, maxTimeFlow, stdevTimeFlow, pktLenghtAvg, pktLenghtMin, pktLenghtMax, pktLenghtStDev, smallPktPayloadAvg,
302+
avgPayload, minPayload, maxPayload, stDevPayload, dnsOverTcpRatioNormalized, self.label]
303+
increment_sample_nb(1)
304+
update_received_pkts(len(packets_list))
305+
return row
306+
307+
def get_total_pkts(self):
308+
return self.total_packets
309+
310+
def get_total_sample(self):
311+
return self.nb_samples
308312

309313
def set_min_window_size(self, val):
310314
self.min_window_size = val

0 commit comments

Comments
 (0)