The whole concept of abstraction has been pounded into my brain since beginning study in CS – over 15 years ago now. Abstraction permits our tiny minds to more clearly see the big picture and solve large problems. Creating block diagrams before moving into detailed design diagrams is critical to ensuring our designs can scale. However, abstraction is not without its own issues.
When you reduce your problem to an abstraction, you lose information – you effectively ‘hide’ information that might be critical to ensuring scalability. Abstracting the problem into block form also requires you to have deep knowledge of the protocols involved. Let me give you an example of a problem I recently encountered.
This issue relates to the previous post on Anycast addresses. Refer to the following diagram and see if you can figure out where a packet will travel.
Going from “host” and destination: 10.0.0.1, what happens when the packet reaches R2?
The answer (with some outputs) comes tomorrow. Send me an email or feel free to comment..