代写BGP Measurements (BGPM): Main Thread #422代做留学生Python程序

- 首页 >> Database作业

BGP Measurements (BGPM): Main Thread #422

Abrar RoufSTAFF

5 hours ago in Assignments – BGP Measurements – Main Thread

PINNED

UNSTAR

WATCHING

909900

VIEWS

Welcome to the BGPM Project!

The assignment is available on Canvas at CS-6250-O01, OCY > Assignments > BGP Measurements. Refer to the project description linked in the assignment for all project details.

Please see the course Syllabus for the policy on late submissions. Your last submission will be your official submission.

Errata

· Task 1C: There is no need to handle ties or do any sort of tie-breaking. Please disregard any text in the project document related to handling ties.

Important Notes

· Standalone Functions: The Gradescope auto-grader works very much like check_solution.py - your submission will be imported, and the functions will be executed individually.
Though they are neither needed nor required, it is okay to use helper functions.
You should not add any code to the global namespace. Your submission will never be run as ./bgpm.py or python3 ./bgpm.py. It would be best, prior to submission, to delete any code in the global namespace that runs automatically upon direct script. execution or import - i.e., any code outside of your functions, including any code following if __name__ == '__main__':. If any of this is not clear, feel free to ask questions!

· T3 & T4: If you are passing T3 and/or T4 on the provided data but not passing on the hidden data on Gradescope, consider whether you are handling the following sequence of A/Ws appropriately: A (1609481194.0), W (1609481194.0), W (1609481201.0).

· Updates. The project description and project files have all been updated for this semester. They have been tested as best we can, but y'all are always the best at finding bugs. Please report back if you find anything that would benefit from clarification or correction.

· Task1a/b/c Splitting the AS path. Consider each AS or group/set of ASes to be **exactly** as you observe them in the path. E.g., if you observe {ASX}, then consider this {ASX}. If you observe {AS-X,AS-Y} then consider it to be exactly {AS-X,AS-Y}. If you observe {AS-Y,AS-X} then consider it to be exactly {AS-Y,AS-X}.

· Task 1C if you are getting some variation of the posted solution. Please check if you have some data structure where you are including/counting also other prefixes that were advertised in between first and last snapshot. Whereas you only need the counting for the first, and the counting for the last snapshot.

· Task2 for ASes not present in a snapshot put 0 for that snapshot. For example, for origin "63120", the result without accounting for snapshots where it does not appear is [5, 4, 4, 4, 4, 5, 5]. As you can see from the provided solution files, the correct value to return is [ 0, 0, 5, 4, 4, 4, 4, 5, 5 ]. So, fill in 0s for those snapshots where the AS is not present.

· RTBH communities match (tip): When searching through the communities field of an Announcement to locate blackholing tags, make sure that you search for an exact match. For example, if you are looking for a tag "567", you should not match "5678" or "4567". Use the correct Python function to find exact matches only.

· RTBH implicit events. It is usually an additional if statement in your code to take care of a series like this: A1_RTBH A2 W1. In this case, you don't have an explicit RTBH event. For example, one way that you can handle such series in your code is as follows: As soon as you observe the A1_RTBH you start your "timer" (record the timestamp) for the specific peerIP/prefix pair, and, as soon as you observe A2 for the same peerIP/prefix pair, you "stop" the timer (record the timestamp of the end of the event), and discard the event as it is an implicit withdrawal. In this specific series, there is no explicit RTBH event that you need to record.

· How long is it reasonable for my script. to run? As a rule of thumb, a complete run of both data sets should take less than 20 minutes. There is a hard limit of 40 minutes for a Gradescope grading session. In the worst case, your code might need to be run against three complete data sets (the two provided and the single hidden data set). If the grading run is not completed before the session times out, you will receive no credit for the assignment.

· Unusually long execution time. If a task takes longer than that, you are likely using some data structure or data processing logic that is inefficient (e.g., an ever-growing list while, at the same time, you are searching multiple times through that).

A Note On The Included Files

The included check_solution.py will execute your code using the two provided data sets. Passing the tests for those two data sets does not guarantee that you will pass for the hidden data set, but it would be unusual if you did not. On the other hand, it is unlikely that you will receive full marks if your assignment does not pass all of the tests on the provided data sets.

You are welcome to copy and modify check_solution.py to better suit your development and debugging workflow. If you do so, you must ensure that your code passes the tests on the provided data sets with an unmodified check_solution.py prior to submission.

The only file you should modify is bgpm.py.
Please use this thread to ask all of your questions about the project.

Cristian Henrici3h

The link to the "African peering connectivity revealed via BGP route collectors" article doesn't exist anymore. It links to a page that displays "Content not found"

Reply

Abrar RoufSTAFF2h

Thanks for alerting us. You can use this link to access an archived snapshot of the article. I'll also be updating the link in the project doc to reference this link instead. Please let us know if you run into any other issues.






站长地图