=================== 0. LOGISTICS, REVIEW, OUTLINE =================== 0.1 Logistics ------------------- * Assignment 2 out * Late policy: Beyond one week, 50% reduction with every day. * Haven't heard from 7 of you out of 22. I am assuming you are using up your late days. If not, please let me know. * Might occasionally update assignment for clarity. Will send out email. Use instructions here to synchronize. https://help.github.com/articles/merging-an-upstream-repository-into-your-fork/ * Assignment 1 quick feedback: --> Some of you had trouble finding a wired machine, but I didn't know about it! Please let me know if you want to finish this part of the assignment, and I can setup an account for you. --> Will try and use EC2 for this in the future. --> Please check your assumptions before the assignment, not after you hand in the assignment. 0.2 Review ------------------- * So far, have discussed the application and transport layers * It's all been at the end host until now. * Application: Interface with the user: creating and consuming data * Transport layer: Reliability, preventing congestion collapse * The transport layer assignment should clarify much of what we discussed. 0.3 Today --------------- * Will move on to the routing layer: how packets get from one end to another * Two broad aspects to it: the control plane and the data plane * Control plane: deciding where to send packets to, i.e., populating look-up tables * Data plane: Actually sending these packets, i.e., looking up the look-up table on every packet. * What are the time scales for the control and data planes? * This week: control plane * Next week: Recess and guest lecture * Week after: Midterm * Week after: data plane * Three topics for today: --> Link state protocols (mention SDN here as well) --> Distance vector protocols --> Comparing the two (assume bi directional links) ========================== 1. LINK STATE PROTOCOLS ========================== * Conceptually want to determine the shortest path from source to destination * How did you do this in your algorithms class? * Can we use this approach? * Does every router have the required information to compute shortest paths? * Link state protocols: --> Disseminate information about your neighbors to EVERYONE in the network --> Once everyone has ALL the information, run Dijkstra's (or any other) shortest path algorithm. * Example * This centralized approach is the basis of Software-Defined Networking: * Instead of replicating the route computation at each router, why not just do it once and send it out to everyone? * Also, what if you want to do more fine-grained routing based on source address, source port, etc. ========================= 2. DISTANCE VECTOR PROTOCOLS ========================= * Every node maintains a vector of current best distances to each destination. * Nodes send this to their neighbors alone * Every node receiving an advertisement compares its best distance to the destination against the best destination through that neighbor. * If it finds a better path through that neighbor, it updates the path. * Example ========================== 3. COMPARING THE TWO ========================== * Link state sends information about neighbors alone to everyone * DV sends information about everyone to neighbors alone * Link state consumes more link capacity; DV takes longer to converge. * Both are used: OSPF (link state), wireless mesh networks (distance vector)