IST480 Network Programming

Course Syllabus

Fall 2002, TTh 9:30am-10:45am, Morrow G31

 

Instructor

:  Daniel Dementiev

Office

Prichard Hall 208

Phone Number 

:  (304) 696-7241

Office Hours

:  Mon: 8:00 – 9:30, 1:30 – 3:00

   Tue:  8:00 – 9:30, 1:30 – 3:00
   Wed: 8:00 – 9:30, 1:30 – 3:00

   Thu:  8:00 – 9:30, 1:30 – 3:00

   Fri:    8:00 – 9:30

E-Mail

:  dementiev@marshall.edu

 

·        Textbooks

The following text is required for the course:

Windows Sockets Network Programming by Bob Quinn and Dave Shute, ISBN: 0-201-63372-8

Supplementary sources:

o       Effective TCP/IP Programming by Jon C. Snader , ISBN: 0-201-61589-4

o       Networking and Data Communications Laboratory Manual under edition of Frances S. Grodzinsky, ISBN: 0-13-011702-1

 

 

·        Requirements

o       IST163 Programming Practicum with C++

o       IST362 Network Protocols.

 

 

·        Objectives

This course is designed to provide students with an in-depth study of network application development, design principles, network protocols and algorithms, throughput and performances. Student will study Windows and UNIX sockets, learn how to create different network applications from high-level client-server applications to network administration tools. Student will also obtain hands-on knowledge on C/C++ memory organization, system programming, and network application debugging.

 

·        Topics Covered

o       C/C++ memory organization (structures and unions, new types definition)

o       Windows and UNIX sockets

o       Simple TCP/IP application

o       Sample FTP client

o       DNS: Host names and addresses

o       Raw sockets

o       TCP/IP protocol headers (IP, ICMP, IGMP, TCP, UDP)

o       Network administrations tools (ping and trace-route)

o       Socket operation modes (blocking, non-blocking, asynchronous)

o       Sample network broadcast application

o       Sample client/server application

o       Debugging network applications

 

 

 

·        Course Outline

Topic

Weeks

1. C/C++ Memory organizations. Bit-wise memory access.

1

2. Sockets concept

2

3. Network application mechanics

3

4. TCP/IP protocol. Sample TCP application

4

5. Sample FTP client

5

6. UDP/IP protocol. DNS client.

6

7. Client/server network application. Debugging.

7-8

8. Operation modes. Socket states.

9-10

9. Raw sockets. TCP/IP protocol headers. Layer model.

11

10. Network tools: ICMP applications.

12-13

11. Network multicasting

14

12. Client/server application. Parallel computation.

15-16

 

 

·        Projects and grading policy

This course will have a project for each significant part of theory. There is a tentative list of projects:

  1. The simplest client/server application (one client only).                                       10%
  2. FTP client.                                                                                                        10%    
  3. DNS client: getting network information about a computer.                                10%
  4. TCP/IP headers.                                                                                                 5%
  5. Ping program.                                                                                                   10%    
  6. Trace-route program.                                                                                       15%
  7. Audio multicasting.                                                                                            15%
  8. Parallel computation. User defined protocol design.                                           25%
    Server, multiple clients, report module.                                                                                                 

 

Grade for this class will mostly be based on the projects grades.