Garantie de satisfaction à 100% Disponible immédiatement après paiement En ligne et en PDF Tu n'es attaché à rien
logo-home
bgpm.py Georgia Institute Of Technology CS 6250 €7,81   Ajouter au panier

Autre

bgpm.py Georgia Institute Of Technology CS 6250

 135 vues  4 fois vendu
  • Cours
  • Établissement

#!/usr/bin/env python from collections import defaultdict import datetime, glob from matplotlib import pyplot as plt from ical_distribution import ECDF import pybgpstream """Code file for CS 6250 BGPM Project Edit this file according to docstrings. Do not change the existing function name o...

[Montrer plus]

Aperçu 2 sur 7  pages

  • 29 mars 2023
  • 7
  • 2022/2023
  • Autre
  • Inconnu
avatar-seller
#!/usr/bin/env python

from collections import defaultdict
import datetime, glob
from matplotlib import pyplot as plt
from statsmodels.distributions.empirical_distribution import ECDF

import pybgpstream

"""Code file for CS 6250 BGPM Project

Edit this file according to docstrings.
Do not change the existing function name or arguments in any way.

"""

# Task 1 Part A.
def calculateUniqueIPAddresses(cache_files):
"""Retrieve the number of unique IP prefixes from input BGP data.

Args:
cache_files: A list of absolute file paths.
File paths may not be in order but will end with a timestamp that can be
used for sorting.
For example: ["/rib_files_final/1357027200.120.cache",
"/rib_files_final/1483257600.120.cache"]

Returns:
A list containing the number of unique IP prefixes for each input cache
file.
For example: [2, 5]
"""
files = sorted(cache_files)
unique_prefixes = []
for file in files:
stream = pybgpstream.BGPStream(data_interface="singlefile")
stream.set_data_interface_option("singlefile","rib-file",file)
prefixes = []
for elem in stream:
prefixes.append(elem.fields['prefix'])
prefixes = list(set(prefixes))
unique_prefixes.append(len(prefixes))
return unique_prefixes


# Task 1 Part B.
def calculateUniqueAses(cache_files):
"""Retrieve the number of unique ASes from input BGP data.

Args:
cache_files: A list of absolute file paths.
File paths may not be in order but will end with a timestamp that can be
used for sorting.
For example: ["/rib_files_final/1357027200.120.cache",
"/rib_files_final/1483257600.120.cache"]

Returns:
A list containing the number of the number of unique AS for each input
file.


This study source was downloaded by 100000850872992 from CourseHero.com on 03-29-2023 08:29:41 GMT -05:00


https://www.coursehero.com/file/142684040/bgpmpy/

, For example: [2, 5]
"""
files = sorted(cache_files)
unique_ases = []
for file in files:
stream = pybgpstream.BGPStream(data_interface="singlefile")
stream.set_data_interface_option("singlefile","rib-file",file)
ases = []
for elem in stream:
for _as in elem.fields['as-path'].split(' '):
ases.append(_as)
ases = list(set(ases))
unique_ases.append(len(ases))
return unique_ases


# Task 1 Part C.
def examinePrefixes(cache_files):
"""
Args:
cache_files: A list of absolute file paths.
File paths may not be in order but will end with a timestamp that can be
used for sorting.
For example: ["/rib_files_final/1357027200.120.cache",
"/rib_files_final/1483257600.120.cache"]

Returns:
A list of the top 10 origin ASes according to percentage increase of the
advertised prefixes.
See assignment description for details.
"""
files = sorted(cache_files)
ds = {}
final_list = []
ases = []
for file in files:
stream = pybgpstream.BGPStream(data_interface="singlefile")
stream.set_data_interface_option("singlefile","rib-file",file)
time = datetime.datetime.fromtimestamp(int(file.split('.')[-3]))
for elem in stream:
origin = elem.fields['as-path'].split(' ')[-1]
if origin in ds.keys():
if time in ds[origin].keys():
ds[origin][time].append(elem.fields['prefix'])
else:
ds[origin][time] = [elem.fields['prefix']]
else:
ds[origin] = {}
ds[origin][time] = [elem.fields['prefix']]
for _as in ds.keys():
dates = sorted(list(ds[_as].keys()))
if len(dates) < 2:
final_list.append((_as,0.0))
continue
else:
unique_prefixes_start = list(set(ds[_as][dates[0]]))
unique_prefixes_end = list(set(ds[_as][dates[-1]]))
calc = ((len(unique_prefixes_end) -
len(unique_prefixes_start))/len(unique_prefixes_start)) * 100


This study source was downloaded by 100000850872992 from CourseHero.com on 03-29-2023 08:29:41 GMT -05:00


https://www.coursehero.com/file/142684040/bgpmpy/

Les avantages d'acheter des résumés chez Stuvia:

Qualité garantie par les avis des clients

Qualité garantie par les avis des clients

Les clients de Stuvia ont évalués plus de 700 000 résumés. C'est comme ça que vous savez que vous achetez les meilleurs documents.

L’achat facile et rapide

L’achat facile et rapide

Vous pouvez payer rapidement avec iDeal, carte de crédit ou Stuvia-crédit pour les résumés. Il n'y a pas d'adhésion nécessaire.

Focus sur l’essentiel

Focus sur l’essentiel

Vos camarades écrivent eux-mêmes les notes d’étude, c’est pourquoi les documents sont toujours fiables et à jour. Cela garantit que vous arrivez rapidement au coeur du matériel.

Foire aux questions

Qu'est-ce que j'obtiens en achetant ce document ?

Vous obtenez un PDF, disponible immédiatement après votre achat. Le document acheté est accessible à tout moment, n'importe où et indéfiniment via votre profil.

Garantie de remboursement : comment ça marche ?

Notre garantie de satisfaction garantit que vous trouverez toujours un document d'étude qui vous convient. Vous remplissez un formulaire et notre équipe du service client s'occupe du reste.

Auprès de qui est-ce que j'achète ce résumé ?

Stuvia est une place de marché. Alors, vous n'achetez donc pas ce document chez nous, mais auprès du vendeur ExamsConnoisseur. Stuvia facilite les paiements au vendeur.

Est-ce que j'aurai un abonnement?

Non, vous n'achetez ce résumé que pour €7,81. Vous n'êtes lié à rien après votre achat.

Peut-on faire confiance à Stuvia ?

4.6 étoiles sur Google & Trustpilot (+1000 avis)

80796 résumés ont été vendus ces 30 derniers jours

Fondée en 2010, la référence pour acheter des résumés depuis déjà 14 ans

Commencez à vendre!
€7,81  4x  vendu
  • (0)
  Ajouter