Course
code | CS331 |
credit_hours | 3 |
title | Network Protocols & Programming |
arbic title | |
prequisites | CE231, CS243 |
credit hours | 3 |
Description/Outcomes | The course is an introduction to network programming using the application programming interface known as sockets. In addition, several design alternatives for client/server applications will be presented along with tradeoffs. Upon successful completion of the course, the student should be able to develop network-aware applications that involve unicast and multicast communications from the grounds up. Hands-on experience will be gained through several programming assignments, which require knowledge of the C and/or Java programming language. |
arabic Description/Outcomes | |
objectives | Upon completion of this course, students should be able to:1. Understand network protocols operation details and design methodology.2. Apply programming of unicast and multicast network applications.3. Differentiate client/server design alternatives along with tradeoffs. |
arabic objectives | |
ref. books | 1. Douglas E. Comer and David L. Stevens, Internetworking with TCP/IP Volume III: Client-Server Programming and Applications, Linux/POSIX sockets version, Prentice Hall, 2001.2. Douglas E. Comer, Internetworking with TCP/IP Volume I: Principles, Protocols, and Architecture, 5th Edition, Prentice Hall, 2005. |
arabic ref. books | |
textbook | W. Richard Stevens, Bill Fenner, and Andrew Rudoff, Unix Network Programming, The Sockets Networking API, Volume 1, 3rd Edition, Addison-Wesley, 2004. |
arabic textbook | |
objective set | combined |
content set | bullets |
Course Content
content serial |
Description |
1 |
• Define TCP/IP Layersrn• Describe s provided by TCP/IP layersrn • Differentiate between Operating Systems environments.rn• Relate the computer system structure to the Linux environment.rn • Use Linux operating systemrn G1.Demonstrate skills in group working, team management, time management and organizational skills.rnG2.Show the use of general computing facilities.rnG7.Demonstrate the ability to make use of a range of learning resources and to manage one`s own learning.rn
|
2 |
• Explain IP addressing • Extract network and subnet address from an IP addressrn • Use Linux operating systemrn• Use network tools to discover IP addressrn• rn
|
3 |
• Demonstrate TCP reliability featuresrn• Define interface Maximum Transfer Unit (MTU)rn• Illustrate TCP state transition diagram using diagramsrn• Explain basic UDP alityrn • Calculate TCP acknowledgment numberrn• Reason about a TCP connection statern• Differentiate between link MTU and path MTUrn• Analyze TCP connection establishment and terminationrnrn • Use network tools to discover TCP connection statern
|
4 |
• Define socket address structuresrn • Apply the use of socket address structuresrn • Design and implement a simple client/server applicationrn
|
5 |
• Demonstrate basic client and serverrn• Demonstrate basic TCP socket API srn • Analyze use of TCP as a transport layer protocolrn • Design and implement TCP client/serverrn
|
6 |
• Demonstrate TCP client/server examplern • Analyze TCP connection establishment and terminationrn • Design and implement TCP client/serverrn
|
7 |
7th week Exam
|
8 |
• Define I/O multiplexing • Reason about the need for I/O multiplexingrn • Design and implement I/O multiplexing applicationrn
|
9 |
• Define IPv4 socket options • Apply IPv4 socket options • Design and Implement an application to demonstrate socket optionsrn
|
10 |
• Demonstrate basic UDP socket API srn • Analyze use of UDP as a transport layer protocolrn • Design and implement UDP applicationrn
|
11 |
• Demonstrate name and address conversions API srn • Apply name and address conversions through DNS resolutionrn • Implement name and address conversions srn
|
12 |
12th week Exam
|
13 |
• Explain multicast operation on a LANrn• Explain multicast operation on a WANrn • Apply network-layer multicast on a LANrn• Differentiate between multicast on a LAN and on a WANrn• Differentiate between application-layer and network-layer multicastrn • Design and implement a multicast network applicationrn
|
14 |
• Discuss TCP client/server design alternatives • Compare between different client/server design alternativesrn• Evaluate client/server design alternativesrn • Design and implement TCP client/server with different design alternativesrn
|
15 |
• Discuss TCP client/server design alternatives • Compare between different client/server design alternativesrn• Evaluate client/server design alternativesrn • Design and implement TCP client/server with different design alternativesrn
|
16 |
|