COURSE DESCRIPTION

Department and Course Number CSC 465 Course Coordinator Ajoy K Datta

Course Title: Computer Networks Total Credits: 3

Current Catalog Description: The hardware components, topology, interconnections, software, protocols and uses of computer networks. Data communication fundamentals. The OSI protocol. The physical, datalink, network, transport, session, presentation, and application layers in a networked system. Credits: 3. Prerequisite: CSC 370.

Textbook: L. L. Peterson and B. S. Davie, Computer Networks: A Systems Approach, Morgan Kaufmann, 2000.

Reference Book: Mohamed G. Gouda, The Elements of Network Protocols, John Wiley, 1998.

Course Goals: To provide computer science students with the skills to design computer communication networks and protocols. To give an introduction to network programming for the Internet environment including the basic concepts of TCP/IP, client-server paradigm, programming of clients, and various types of servers, remote procedure calls, concurrency management, and interconnection techniques. Emphasizes the design principles that underlie implementation of practical applications.

Prerequisite by topic

1.   Operating Systems.

Major Topics Covered by the Course

1.  Introduction to networks.

2.  Framing.

3.  Error detection and correction.

4.  Connection management.

5.  Sliding window.

6.  Data transfer and multiplexing.

7.  Flow control.

8.  Topology maintenance.

9.  Routing.

10.  Elementary sockets.

a.  Introduction to sockets.

b.  Socket functions.

c.  TCP client-server example.

d.  I/O multiplexing: the select and poll function.

e.  Socket options.

f.  Elementary UDP sockets.

g.  Elementary name and address conversions.

1.  Advanced sockets.

a.  IPv4 and IPv6.

b.  Advanced name and address conversions..

c.  UNIX daemon processes and inetd superserver.

d.  Advanced I/O.

e.  UNIX domain protocols: X-Window system.

f.  Non-blocking I/O: Web applications.

Laboratory Projects

1.  To provide an insight into network program structures. To give practical experience of client-server interaction based on UNIX sockets.

a.  Create, compile, and run the first client server examples discussed in class. Examine the source code in order to understand program structure and the functions performed in both the client and the server examples.

b.  Re-write the example programs in the following ways.

1.  To provide an insight into network program structures. To give practical experience of client-server interaction based on UNIX sockets. To provide an insight into a web client application.

a.  Create, compile, and run the first client example discussed in class. Examine the source code in order to understand program structure and the functions performed in the TCP client example.

b.  Re-write the TCP client example program in the following ways.

Estimate CSAB Category Content

CORE / ADVANCED
Algorithms / 2
Computer Elements and Architecture / 1

Oral and Written Communications

No significant content.

Theoretical Content

Concepts of general network structures and layers, fundamental protocols, and design of protocols.

Analysis and Design

Design and analysis of network protocols. Both home works and projects are analyzed.