The Network Programming course provides students with the information
needed to apply network programming concepts and techniques, including
the Open Systems Interconnection (OSI) seven-layer model. The course
can also teach how to write network programs for both stream and
datagram communications with both sockets and Transport Level Interface
(TLI), how to use the client-server model in network programs, how to
write RPC network programs, and how to implement network security. The
course covers network programming facilities on the Solaris
Operating Environment, including transmission control
protocol/internetwork protocol (TCP/IP), UDP/IP, sockets, TLI, remote
procedure call (RPC), UNIX, and Data Encryption Standard (DES) network
security facilities.
Who Can Benefit
Students who can benefit from this course are experienced C programmers
who are proficient in system interface programming and want to be
involved in network programming.
Back to top
Prerequisites
To succeed fully in this course, students should be able to:
- Understand basic Solaris UNIX commands
- Use the Solaris symbolic debuggers: dbx or debugger
Back to top
Skills Gained
Upon completion of this course, students should be able to:
- Understand and use the OSI seven-layer model
- Create transport independent applications using RPC
- Write any of the above types of applications to work with the Internet daemon inetd
Back to top
Related Courses
Before:
After:
Back to top
Course Content
Module 1 - Networking Topics
- Describing the principles of layered communications protocols
- Describing the ISO seven layer model for open systems interconnection
- Describing the Client-Server model for distributed applications
- Describing the basic features provided by the TCP/IP protocol suite
- Discussing some of the network facilities in the Solaris computing environment
Module 2 - Networking Software Architecture in Solaris 2
- Describing the overall structure of the networking software in Solaris 2
- Describing the basic features of the STREAMS I/O system
- Describing the sockets interface implementation in Solaris 2
Module 3 - Transporting Selection and Name to Address Mapping
- Describing the part played by the network selection and name to address
mapping functions in the construction of transport protocol independent software
- Performing run-time transport selection from within an application using the
netconfig file and NETPATH environment variable.
- Using the name to address mapping functions to translate host and service
names to transport addresses in a transport independent way
Module 4 - Introduction to Transport Layer Interface (TLI) Programming
- Describing the basic features of TLI
- Describing the concepts of Transport User and Transport Provider
- Accessing the TCP/IP protocols using TLI
- Building simple applications using both connection mode and connectionless
mode operation of TLI
Module 5 - More Advanced Use of TLI
- Retrieving attributes of a transport provider through a transport endpoint
- Describing how TLI functions can operate in non-blocking mode
- Setting and examining protocol options through a transport endpoint
- Describing the relationship between TLI and STREAMS
- Writing applications which use a read()/write() interface to a transport endpoint
- Performing asynchronous I/O using TLI
- Managing multiple transport endpoints using the polling interface
- Processing Out of Band (Expedited) data on a transport endpoint
- Building a server which can monitor multiple transport endpoints
Module 6 - Accessing Network Information
- Listing the configuration files, or Name Service maps and tables, that contain
information about the network facilities used by sockets based applications
- Using the standard library routines to access this information
- Using the various macros and library routines used in building network-based applications
Module 7 - Sockets
- Describing the basics of sockets
- Describing the concepts of communications domains and socket types
- Explaining how the different types of sockets give access to the different
underlying protocols
- Writing simple applications which use TCP and UDP as transport protocol
Module 8 - More Advanced Use of Sockets
- Describing the characteristics of I/O using sockets
- Describing the main socket options that can be interrogated and set
- Accessing a network interface through a socket
- Broadcasting through a socket
- Describing how sockets operate in communications domains other than UNIX and Internet
Module 9 - External Data Representation
- Describing the architecture of XDR
- Using the standard XDR filter routines
- Writing XDR filters for compound data types
- Describing how XDR manages dynamic memory
Module 10 - Introduction to Remote Procedure Call
- Describing the basic concepts of Remote Procedure Call
- Listing the main features of the Open Network Computing (ONC[TM]) RPC protocol
- Describing the function of program, version and procedure numbers
- Explaining how rpcbind works
- Using the RPC service library routines
Module 11 - The Programmer's Interface to RPC
- Describing the structure of RPC applications
- Describing the simplified and standard programming interfaces to the RPC
facilities
- Writing a small application using the simplified and standard interfaces
Module 12 - Building Applications with rpcgen
- Specifying a RPC based application protocol using the RPC language
- Using rpcgen to translate a protocol specification into code
- Describing the various options available when using rpcgen
Module 13 - Advanced RPC Topics
- Debugging RPC applications under development using the raw RPC transport
- Using broadcast RPC
- Describing how RPC requests can be batched to improve performance
- Accessing rpcbind from a program
- Using asynchronous remote procedure calls
- Replacing the standard svc_run() function with one custom written
Module 14 - Authentication
- Describing the principles of authentication in RPC based applications
- Listing the forms of authentication which can be applied to RPC applications
- Using UNIX and DES authentication in applications
- Describing the basic principles of Kerberos authentication
Module 15 - Integrating Applications with inetd
- Describing how the Internet daemon inetd operates
- Writing applications that work with inetd
Back to top
Browse Other Course Topic Areas
|