Building Bridges CS 3700 Project 2.

Slides:



Advertisements
Similar presentations
Communication Networks Recitation 3 Bridges & Spanning trees.
Advertisements

Packet Switching COM1337/3501 Textbook: Computer Networks: A Systems Approach, L. Peterson, B. Davie, Morgan Kaufmann Chapter 3.
Connecting LANs: Section Figure 15.1 Five categories of connecting devices.
CS 4700 / CS 5700 Network Fundamentals Lecture 7: Bridging (From Hub to Switch by Way of Tree) Revised 1/14/13.
Cisco 3 - Switch Perrine. J Page 15/8/2015 Chapter 8 What happens to the member ports of a VLAN when the VLAN is deleted? 1.They become inactive. 2.They.
Bridging. Bridge Functions To extend size of LANs either geographically or in terms number of users. − Protocols that include collisions can be performed.
1 Switching and Forwarding Bridges and Extended LANs.
Oct 21, 2004CS573: Network Protocols and Standards1 IP: Addressing, ARP, Routing Network Protocols and Standards Autumn
Making bigger LANs out of small ones What technology is available to us for connecting small LANs together into larger ones?
CSEE W4140 Networking Laboratory Lecture 8: LAN Switching Jong Yul Kim
1 Switching and Forwarding Bridges and Extended LANs.
1 LAN switching and Bridges Relates to Lab 6. Covers interconnection devices (at different layers) and the difference between LAN switching (bridging)
CSE390 Advanced Computer Networks Lecture 7: Bridging (From Hub to Switch by Way of Tree) Based on slides from D. Choffnes Northeastern U. Revised Fall.
Introduction to Computer Networks 09/23 Presenter: Fatemah Panahi.
LAN switching and Bridges
1 LAN switching and Bridges Relates to Lab 6. Covers interconnection devices (at different layers) and the difference between LAN switching (bridging)
Layer 2 Switch  Layer 2 Switching is hardware based.  Uses the host's Media Access Control (MAC) address.  Uses Application Specific Integrated Circuits.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 8: Bridging Slides used with permissions.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Lecture 12: LAN Redundancy Switched Networks Assistant Professor Pongpisit.
1 CS 4396 Computer Networks Lab LAN Switching and Bridges.
CS3502: Data and Computer Networks Local Area Networks - 4 Bridges / LAN internetworks.
Sybex CCNA Chapter 8: Layer-2 Switching Instructor & Todd Lammle.
Steffen/Stettler, , 4-SpanningTree.pptx 1 Computernetze 1 (CN1) 4 Spanning Tree Protokoll 802.1D-2004 Prof. Dr. Andreas Steffen Institute for.
Project 1. Goals  Write a simple TCP/IP client that supports a specific protocol  The server is running right now on login.ccs.neu.edu:27993  If your.
Ethernet (LAN switching)
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Scaling Broadcast Ethernet Some slides used with.
Configuring Cisco Switches Chapter 13 powered by DJ 1.
1 Data Link Layer Lecture 23 Imran Ahmed University of Management & Technology.
Switching Topic 2 VLANs.
CISCO PACKET TRACER By:- Ankita Rawat Sohit Mehta Sukhwinder Singh.
M. Veeraraghavan (originals by J. Liebeherr) 1 Need for Routing in Ethernet switched networks What do bridges do if some LANs are reachable only in multiple.
Multicasting  A message can be unicast, multicast, or broadcast. Let us clarify these terms as they relate to the Internet.
Winter 2008CS244a Handout 111 CS244a: An Introduction to Computer Networks Handout 11: Interconnecting LANs Nick McKeown Professor of Electrical Engineering.
1 Chapter 3: Packet Switching (Switched LANs) Dr. Rocky K. C. Chang 23 February 2004.
1 LAN switching and Bridges Relates to Lab Outline Interconnection devices Bridges/LAN switches vs. Routers Bridges Learning Bridges Transparent.
Ethernet switches and IP routers
IP: Addressing, ARP, Routing
Building Bridges CS 3700 Project 2.
CS 3700 Networks and Distributed Systems
Spanning Tree Protocol
Project 1 Simple Socket Client.
Advanced Computer Networks
CS4470 Computer Networking Protocols
Bridging.
3. Internetworking (part 2: switched LANs)
Chapter 4 Data Link Layer Switching
Spanning Tree Algorithm
: An Introduction to Computer Networks
Simple Socket Client Project 1.
Switching and Forwarding Bridges and Extended LANs
CS 3700 Networks and Distributed Systems
Reliable Transport CS 3700 Project 3.
Net 323: NETWORK Protocols
Spanning Tree Protocol
Spanning Tree Protocol
LAN switching and Bridges
CS 4700 / CS 5700 Network Fundamentals
Routing Protocols and Concepts – Chapter 2
Simple Socket Client Project 1.
LAN switching and Bridges
Reliable Transport CS 3700 Project 3.
CS 4700 / CS 5700 Network Fundamentals
CS4470 Computer Networking Protocols
Dr. Rocky K. C. Chang 23 February 2004
COMP/ELEC 429/556 Fall 2017 Homework #1
LAN switching and Bridges
Packet Switching Outline Store-and-Forward Switches
Bridges Neil Tang 10/10/2008 CS440 Computer Networks.
Virtual LAN (VLAN).
Presentation transcript:

Building Bridges CS 3700 Project 2

Goals You will write a program that implements a simple Ethernet bridge The bridge must forward packets from hosts Thus, you’ll need to maintain a forwarding table The network may have loops Thus, you must implement the spanning tree protocol Bridges may be added to or removed from the network over time Your bridge must be resilient to network dynamics and failures Grade based on correctness and performance People say that this is the hardest project in the class Start early We have a milestone to force you to start early

Command Line Syntax $ ./3700bridge <ID> <LAN ID 1> [LAN ID 2] … [LAN ID n] ID is the unique ID for this bridge The LAN IDs are names of the LANs the bridge is connected to You will open a socket() for each LAN Conceptually, each LAN connects to port on your bridge Note: you will never execute this command yourself! LAN 2 LAN 1

$ ./run <config file> The Simulator A network with only one bridge is boring We will use a simulator that runs multiple copies of your bridge in parallel to create a network with many bridges Simulator takes care of setting up all LANs Simulator also creates hosts on the LANs that will send packets to each other $ ./run <config file> You will never run your bridge directly on the command line, you will always use the simulator Thus, this project is multi-socket and multi-process Each bridge will have multiple open sockets And, there will be multiple copies of your bridge running in parallel

Simple Config File Example One bridge, connected to one LAN { "lifetime": 4, "bridges": [{"id": "08ad", "lans": [1]}], "hosts": 2, "packets": 10, "seed": 1 } Simulator Two hosts One copy of your program, with one socket

Intermediate Config File Example Four bridges Simulator { "lifetime": 10, "bridges": [{"id": "f8ad", "lans": [1, 2]}, {"id": "aa09", "lans": [2, 3]}, {"id": "9e3a", "lans": [1, 2], "start": 5}, {"id": "1000", "lans": [1, 2, 3], "start": 7}], "hosts": 10, "packets": 70, "seed": 1 } One copy of your program, with three sockets LAN 1 1000 f8ad 9e3a LAN 2 LAN 3 Bridges may be added (or removed) over time aa09 Four copies of your bridge

{"source":"28aa", "dest":"97bf", "type": "data", "message":{"id": 17}} The Protocol Uses JSON formatted packets: {"source":"<source>", "dest":"<destination>", "type":"<type>", "message":{<message>}} Example BPDU: {"source":"02a1", "dest":"ffff", "type": "bpdu", "message":{"id":"92b4", "root":"02a1", "cost":3}} Example packet from a host: {"source":"28aa", "dest":"97bf", "type": "data", "message":{"id": 17}}

Suggested Approach Before you start writing any code, practice the spanning tree protocol Draw the networks in the test cases on a piece of paper Manually determine which ports should be active, and why Implement the spanning tree protocol using BPDU packets Get all bridges to agree on who is the root Work on enabling/disabling all ports correctly Initially, don’t worry about forwarding packets from hosts, just drop them Don’t worry about timeouts or error recovery Work on the forwarding table Work on error recovery Implement periodic BPDU broadcasts, timeout old BPDUs and forwarding table entries After a timeout, the state of all of your ports should go back to default, and the forwarding table must be flushed

Performance Testing We provide a script that runs all test cases In addition to passing all tests (correctness), we will also be grading you based on performance What fraction of packets were successfully delivered? Higher is better. How much overhead (broadcasts) did you generate? Lower is better. Leaderboard showing everyone’s performance on the test cases $ /course/cs3700f16/bin/project2/printstats

Turning in Your Project Register your group All group members must run the script! Create a directory for your files All of your (well documented) code Makefile README Run the turn-in script Note: you will register for the milestone and the full project separately

Grading 14% of your total grade 1% for the milestone, due Wednesday September 28 Turn in a bridge that passes test cases simple-[1, …, 6] Points based on how many cases you pass 13% for the full project, due Friday October 7 75% for program correctness, i.e. passing all test cases 10% for performance 15% for style and documentation

A Note On Cheating It is possible to pass all the test cases without implementing the spanning tree protocol Have your bridge store copies of all received messages Examine each received message to determine if it is a duplicate Drop duplicates Although this solves the network loop problem, you are not allowed to do this This is a blatant violation of the spirit of the assignment We will be performing code reviews If we see that you are doing this, you get a zero on the project No exceptions