uite common in implementing application interactions for manage- ment solutions. Fundamentals of EMS, NMS and OSS/BSS The specific application layer protocol is more a matter of choice based on data to be sent. For usual management operations like get, set, and trap func- tionalities, management protocols like SNMP or NETCONF could be used. While SNMP is the choice in most legacy solutions, the more recent applica- tions use the power of XML and use XML-based protocols like SOAP. For other management functions like file transfer, FTP is still the most popular choice, and for alerts as mail SMTP is used. This part of the book is intended to cover all these topics for developing manage- ment applications including a case study on the design approach to be followed in developing an NGNM solution and then customizing the solution for a specific network. The coverage still limits the discussion to the fundamentals with informa- tion on additional reading to get detailed information on specific topics. This chapter gives details on the application layer and client-server program- ming. The socket interface is then discussed in detail how TCP and UDP commu- tation is achieved with socket programming. The programming language used in this chapter is "C" considering most initial implementations of socket programming were done with socket APIs (application programming interface) in C programming language. It is important to note that C programming language was initially devel- oped for the UNIX operating system by Dennis Ritchie. 26.2 Application Layer The application layer is the top layer in the OSI model and TCP/IP model. The application layer manages communication between applications and handles issues like network transparency and resource allocation. The layers below the application layer provide the framework for communication between application programs in the application layers. The important aspects of the application layer programs are: Client-server paradigm: The interaction between applications is based on a