-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scalability of path discovery #42
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I won't make pronouncements on the math accuracy... I find it convincing enough. Regarding the breadth and depth, I think it's good. I imaging that this is what the reviewer was asking for.
Possibly, we could add a summary, with a few key scaling estimates in O() form. Where e.g. PCB received per second: O(N^2) - Although, that'll be concerning in the mind of your average reviewer, btw. So may be no need to rub it in.
Thanks for fixing my typos, @nicorusti. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for putting this together! Most of my comments are small language stuff, besides that I feel that some of the rough calculations could be framed slightly different
draft-dekater-scion-controlplane.md
Outdated
With N the number of participating core ASes, an AS receives up to 5 * N PCBs per propagation interval per core link interface. | ||
For highly connected ASes, the number of PCBs received thus becomes rather large. In a network of 1000 ASes, a highly connected AS with 300 core links receives up to 1.5 million PCBs per propagation interval. | ||
Assuming an average PCB length of 6 and the shortest propagation interval of 60 seconds, this corresponds to roughly 150 thousand signature validations per second. This throughput can be achieved on a single core of a present day small server or desktop machine. | ||
In terms of bandwidth, this corresponds to very roughly 38MB/s. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe here we could summarize by saying that the overall message complexity for an AS is linear to the number of core ASes N.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But it's not, it's N times the path length. That's the whole buildup of this section:
-
[Resource costs] depend on the the number and length of the discovered path segments, that is, on the total number of AS entries of the discovered path segments.
-
Then we say that in core network, PCBs are roughly log(N) long.
-
With N the number of participating core ASes, an AS receives up to 5 * N PCBs per propagation interval per core link interface.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the clarification, as far as I understand then the message complexity in terms of number of signature validations per AS can be approximated with O(N*log(N)), while the amount of propagated PCBs per AS is O(N), correct?
If you agree, I still think it might be more understandable to directly mention it
Co-authored-by: Nicola Rustignoli <[email protected]>
Co-authored-by: Nicola Rustignoli <[email protected]>
Co-authored-by: Nicola Rustignoli <[email protected]>
Co-authored-by: Nicola Rustignoli <[email protected]>
General Note:
Some points I found could be useful to add to the doc:
IntroductionAvoiding Circular Dependencies and Partitioning
Partition and Healing
Path Exploration or Beaconing {#beaconing}Introduction and Overview
Extending a PCB
Path-Segment Construction BeaconsPCB Validity
Propagation of PCBs {#path-prop}Selection of PCBs to Propagate {#selection}Storing and Selecting Candidate PCBs
Effects of Clock Inaccuracy
Path Discovery Time and Scalability {#scalability}
Intra-ISD Beaconing
Inter-ISD Beaconing
|
Thank you for your feedback @tzaeschke ! I respond here regarding the scalability and clock inaccuracy sections. For other sections, and for points that we don't have time to address in time this revision, I opened separate issues:
Regarding Effects of Clock Inaccuracy
Done, maximally N minutes sounds good.
@matzf I is it 1 min as in the draft, or 10-15? 10-15 feels a bit high to me
I am a bit reluctant to use RFC2119 language (uppercase SHOULD) for exactly 6 hours. This is a value that overall depends on the maximum AS path expected in the network, and it might as well be a different value. I therefore rephrased like this:
Done. Regarding Path Discovery Time and Scalability {#scalability}
@matzf clarified here that this is not the case, I removed that note, this should also solve some many of the consistency issues you reported.
To be handled in #45
Good point, I rephrased this section to:
We give some numbers in the Inter-ISD Beaconing section with an example with 1000 core ASes, this gives a rough figure. The bandwidth and computation overhead figures there should also give a rough hint of what happens if the network grows too much: the overhead becomes considerable.
Fixed |
Commented on the related issues for the other sections.
The 1 minute value seems realistic. SCIONLab uses 5 seconds for non-core beaconing and 1 minute for core beaconing. Anapaya's infrastructure reportedly runs with 30s. |
Scalability of path discovery.
Fixes #8