- Degree Bachelor
- Code: CS331
- Credit hrs: 3
- Prequisites:
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.
Software Engineering Program.
Data will be available soon!
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 | |
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 | |
Start your application