Internet Protocol and Programming

1. The aim of the course

In the course, students can learn on TCP/IP which is the key technology for Internet. Especially, this course deals with IP addressing and routing protocols such as ARP, ICMP, OSPF, DHCP, and IPv6. In addition, this course includes network programming related to TCP/IP. Through term project, the students can get of the design and implementation capabilities of Internet systems.

2. The course evaluation

- Class partipation : 10%
- Solving the practice set : 10%
- Evaluation of Team Project : 15%
- Mid-term examination : 35%
- Final-term examination : 40%

3. Textbook

Textbook : TCP/IP Protocol Suite 3rd Edition
Author : Behrouz A. Forouzan
Publisher : McGrawHill
Publication year : 2005
Programming textbook : Experimental Notes

4. Topics to be covered

week

Lecture

Experiment

1st week

Introduction to the course
IP addresses: Classful Addressing (chapter 4)
  Chapter1(Introduction)   Chapter4 (IP Addressing classful addressing)

Introduction to the Network Programming   Lecture_Note_1stWeek-1
  Network program
  Connection program(putty)

2nd week

IP Addresses: Classless Addressing (chapter 5)
  Chapter5 (Classless Adressing)

Sockets Introduction and Protocol Setting
  Lecture note2
  Source code

3rd week

Delivery, Forwarding, and Routing of IP Packets (chapter 6)
  Chapter6 (Delivery, Forwarding, and Routing of IP Packets)

Internet Address Transformation Programming
  Lecture note3

4th week

ARP and RARP (chapater 7)
  Chapter7 (ARP and RARP)

TCP Client/Server and UDP Client/Server
  Lecture note4
  Source code

5th week

Internet Protocol (chapter 8)
  Chapter8 (Internet Protocol)

Unix Process programming
  Lecture note5
  Source code

6th week

ICMP (chapter 9)
  Chapter9 (ICMP)

Multi-Processing Programming   Lecture note6
  Source code

7th week

UDP (chapter 11)
  Chapter11 (UDP)

Socket Options
  Lecture note7
  Source code

8th week

Midterm Exam

9th week

TCP (chapter 12)
  Chapter12 (TCP)

Term Project: Socket Application Programming
 - IP Routing application
 - ARP module application
 - IP package application
 - ICMP package application
 - UDP package application
 - DHCP Client/Server programming

10th week

TCP (chapter 12)
  Annex : * Chapter12 (TCP)
  The exercises solution

Process communication
  Lecture note8
  Source code

11th week

Unicast Prorocols: RIP, OSPF and BGP (chaper 14)
  Chapter14 (Unicast Routing Protocols)
  The exercises solution

Advanced I/O Functions
  Lecture note9
  Source code

12th week

BOOTP and DHCP (chapter 16)
  Chapter16 (BOOTP and DHCP)
  The exercises solution

Mutli-Tasking Server
  Lecture note10
  Source code

13th week

Domain Name System : DNS (Chapter17)
  Chapter17 (DNS)


I/O Multiplexing
  Lecture note11
  Source code

14th week

IPv6 (chapter27)
  Chapter27(IPv6 and ICMPv6)
  The exercises solution

Advanced Socket Functions

15th week

ICMPv6 (chapter27)

Multi-Thread Server

16th week

Term Project Presentation
/ Final Exam

5. Homework

Solving practice set of each chapter

6. Pre-requisites

A solid understanding of computer network is required. If a student has not taken the Computer Network, he/she wishes to take the course before taking this class