Semester Programming Project for CS 356

Slides:



Advertisements
Similar presentations
1 Routing Protocols I. 2 Routing Recall: There are two parts to routing IP packets: 1. How to pass a packet from an input interface to the output interface.
Advertisements

Chapter 4 Distributed Bellman-Ford Routing
Routing Protocol.
11 TROUBLESHOOTING Chapter 12. Chapter 12: TROUBLESHOOTING2 OVERVIEW  Determine whether a network communications problem is related to TCP/IP.  Understand.
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
1 L53 Networking (2). 2 OBJECTIVES In this chapter you will learn:  To understand Java networking with URLs, sockets and datagrams.  To implement Java.
1 Pertemuan 7 Communication Protocols for E-Business Matakuliah: M0284/Teknologi & Infrastruktur E-Business Tahun: 2005 Versi: >
Network Layer Design Isues Store-and-Forward Packet Switching Services Provided to the Transport Layer The service should be independent of the router.
Internet Networking Spring 2003
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved L22 (Chapter 25) Networking.
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
CS335 Networking & Network Administration Tuesday, April 20, 2010.
EECC694 - Shaaban #1 lec #7 Spring The OSI Reference Model Network Layer.
COS 420 Day 16. Agenda Assignment 3 Corrected Poor results 1 C and 2 Ds Spring Break?? Assignment 4 Posted Chap Due April 6 Individual Project Presentations.
© 2007 Cisco Systems, Inc. All rights reserved.ICND1 v1.0—4-1 LAN Connections Exploring the Functions of Routing.
Network Layer (Part IV). Overview A router is a type of internetworking device that passes data packets between networks based on Layer 3 addresses. A.
Connecting Networks © 2004 Cisco Systems, Inc. All rights reserved. Exploring How Routing Works INTRO v2.0—4-1.
Process-to-Process Delivery:
Each computer and router interface maintains an ARP table for Layer 2 communication The ARP table is only effective for the broadcast domain (or LAN)
Module 10. Internet Protocol (IP) is the routed protocol of the Internet. IP addressing enables packets to be routed from source to destination using.
1 Chapter 27 Internetwork Routing (Static and automatic routing; route propagation; BGP, RIP, OSPF; multicast routing)
The Network Layer. Network Projects Must utilize sockets programming –Client and Server –Any platform Please submit one page proposal Can work individually.
Routing and Routing Protocols Dynamic Routing Overview.
1 Pertemuan 20 Teknik Routing Matakuliah: H0174/Jaringan Komputer Tahun: 2006 Versi: 1/0.
Introduction1-1 Data Communications and Computer Networks Chapter 5 CS 3830 Lecture 27 Omar Meqdadi Department of Computer Science and Software Engineering.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Semester 1 CHAPTER 3 Le Chi Trung
ACM 511 Chapter 2. Communication Communicating the Messages The best approach is to divide the data into smaller, more manageable pieces to send over.
1 Chapter 27 Internetwork Routing (Static and automatic routing; route propagation; BGP, RIP, OSPF; multicast routing)
©G. Millbery 2001Communications and Networked SystemsSlide 1 Purpose of Network Components  Switches A device that controls routing and operation of a.
Data Communications and Computer Networks Chapter 4 CS 3830 Lecture 18 Omar Meqdadi Department of Computer Science and Software Engineering University.
Click to edit Master subtitle style Chapter 9: Introduction to IP Routing Instructor:
Network and Communications Ju Wang Chapter 5 Routing Algorithm Adopted from Choi’s notes Virginia Commonwealth University.
Chi-Cheng Lin, Winona State University CS 313 Introduction to Computer Networking & Telecommunication Chapter 5 Network Layer.
MODULE I NETWORKING CONCEPTS.
CS4550 Computer Networks II IP : internet protocol, part 2 : packet formats, routing, routing tables, ICMP read feit chapter 6.
1 Network Layer Lecture 13 Imran Ahmed University of Management & Technology.
Chapter 15 – Part 2 Networks The Internal Operating System The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
Java Programming: Advanced Topics 1 Networking Programming Chapter 11.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
Internet Protocol: Routing IP Datagrams Chapter 8.
Networking and internetworking devices. Repeater.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Connecting Devices CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL Department of Electronics and.
Stainov - DataComMET CS TC5353 THE NETWORK LAYER 5.2 ROUTING ALGORITHMS - adaptive Distance Vector Routing (Bellman-Ford, Ford-Fulkenson). It was used.
CS1001 Lecture 7. Overview Computer Networks Computer Networks The Internet The Internet Internet Services Internet Services Markup Languages Markup Languages.
Computer Networks Syed Md. Ashraful Karim Lecturer, CSE BU.
Remote Method Invocation by James Hunt, Joel Dominic, and Adam Mcculloch.
COS 420 Day 15. Agenda Finish Individualized Project Presentations on Thrusday Have Grading sheets to me by Friday Group Project Discussion Goals & Timelines.
+ Routing Concepts 1 st semester Objectives  Describe the primary functions and features of a router.  Explain how routers use information.
18-WAN Technologies and Dynamic routing Dr. John P. Abraham Professor UTPA.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
IST 201 Chapter 11 Lecture 2. Ports Used by TCP & UDP Keep track of different types of transmissions crossing the network simultaneously. Combination.
Powerpoint Templates Page 1 Powerpoint Templates CS Networks Laboratory HANDLED BY, A.MAHESH PRIYA L/IT.
g Silly Switching Hiding Behind a Mask Unreliable Exchange Port Wine.
5. End-to-end protocols (part 1)
Chapter 6 – Routing.
Distance Vector Routing
THE NETWORK LAYER.
Chapter 5 The Network Layer.
Lecture 13 review Explain how distance vector algorithm works.
STRUCTURE OF A ROUTER We represent a router as a black box that accepts incoming packets from one of the input ports (interfaces), uses a routing table.
STRUCTURE OF A ROUTER We represent a router as a black box that accepts incoming packets from one of the input ports (interfaces), uses a routing table.
Process-to-Process Delivery:
The Network Layer Network Layer Design Issues:
Network Layer I have learned from life no matter how far you go
Distributed Systems CS
STRUCTURE OF A ROUTER We represent a router as a black box that accepts incoming packets from one of the input ports (interfaces), uses a routing table.
STRUCTURE OF A ROUTER We represent a router as a black box that accepts incoming packets from one of the input ports (interfaces), uses a routing table.
Exceptions and networking
Distributed Systems CS
Presentation transcript:

Semester Programming Project for CS 356 George Blank University Lecturer

Semester Long Project This is the specification for the programming project for CS 356. The final project will require four programs running separately over a network, emulating four routers with predefined connections and route costs, that communicate with each other to update Distance Vector Routing Tables at each router, while displaying changes and resulting tables for Router 0.

Implementation Options You may choose the programming language to implement the project from C++, C, Java and Python. NJIT Computer Science majors are strongly encouraged to use C or C++, and will receive a reduced grade for Java or Python. The first deliverable requires the use of sockets. You may choose datagram or stream sockets. If you are using Java, you may switch to RMI for parts two and three. If you are using C, you may switch to RPC.

Special Requirements for NJIT Computer Science Majors You are strongly encouraged to use C or C++, and will receive a reduced grade for Java or Python. The final deliverable should be multi-threaded. These requirements are optional for non-CS majors, such as IS, BIS, CIS, and IT. They also optional for students from Rutgers. CS majors are expected to be able to program in C, C++ and Java by graduation.

Network and Costs to be used Stage 1 and 2: Client is Router 0 Server is Router 1 Final Project: Each Router is represented by a separate program running independently and communicating across a network.

Initial Values for Router 0 Destination Router Interface Link Cost Local 1 2 3 7 This table represents the initial least cost known path from Router 0 to each of the other three routers. Initially, each router knows only the direct cost on each of its directly connected interfaces. The initial table for each of the other routers can be obtained by examining the network diagram on the preceding page. After routers exchange information, new paths will be discovered and the tables will be updated with new least costs using the Bellman – Ford distance vector algorithm.

Stage One Functionality Create a client and a server, communicating over a network, and pass the following information. Client displays its initial known least cost to each other router. Client sends its own Router number, and its initial known least cost to each other router. Server sends its own Router number, and its initial known least cost to each other router. Client displays information received from server.

Stage One Deliverables Listings of all code Screen shots that prove code compiled and ran correctly without errors Output from client, as specified. If possible, a screen shot from Wireshark showing the socket data passing across the network. Otherwise, use screen shots of client and server to prove that information was on different hosts and passed across a network.

Stage Two Functionality Routers 0 and 1 will maintain a least cost table to all routers (0, 1, 2, 3). Router 0 will display the initial table. Routers 0 and 1 represented by separate communicating programs will exchange information as specified in stage one. Using the information received from the other program, the least cost to the other routers will be updated using the Bellman-Ford distance vector algorithm. Router 0 will display its updated table.

Stage Two Deliverables Listings of all code Screen shots that prove code compiled and ran correctly without errors Before and after tables for Router 0, as specified. If possible, a screen shot from Wireshark showing the data passing across the network. Otherwise, use screen shots of each router program to prove that information was on different hosts and passed across a network.

Stage 3: Final Functionality Extend the functionality of stage two to four separate programs, representing routers 0, 1, 2, and 3 on the network diagram and communicating across the network. Exchange data between routers 0 and 1, as in stage two. But this time, every time a router changes the data in its table, it sends its entire table to all directly connected routers, which also do the same. Display the initial data table and the new tale after each change for router 0. Find a way to terminate the program when complete.

Final Deliverables Listings of code for Router 0 and one other router. Screen shots that prove code compiled and ran correctly without errors Initial and each changed table for Router 0, as specified. (Should be three separate tables.) Proof that router programs were on at least two different hosts (four preferred) and passed across a network.

Verification of final output If your programs are working correctly, router 0 will have an initial cost of 7 to get to router 3. After the first update, that cost should be 5. After the second update, the cost should be 4.

Resources on Moodle PowerPoint Presentation on Java Socket programming. The sample programs can easily be adopted to stage one. PowerPoint Presentation on C Socket programming. The sample programs can easily be adopted to stage one. Sample Python programs. These can be adapted or converted to C, C++ or Java to provide ideas for implementing stages one, two, and three.