Download presentation
Presentation is loading. Please wait.
1
CS335 Networking & Network Administration Tuesday, May 25, 2010
2
Client-server Network applications Protocol software cannot initiate contact with, or accept contact from a remote computer Two application programs must participate in any communication One application initiates the communication and the other accepts it In the client-server paradigm, a server application waits passively for a client application to initiate communication
3
Characteristics of client/server Client software Is an arbitrary application program that becomes a client temporarily when remote access is needed, but also performs other computation locally Is invoked directly by the user, and executes for only one session Runs locally on a user’s personal computer Actively initiates contact with the server Can access multiple services as needed, but actively contacts one remote server at a time Does not require special hardware or OS
4
Server programs Special-purpose, privileged program dedicated to providing one service, but can handle multiple remote clients at one time Is invoked automatically when a system boots, and continues to execute through many sessions Runs on a shared computer Waits passively for contact from arbitrary remote clients Accepts contact from arbitrary clients, but offers a single service Requires powerful hardware and a sophisticated OS also known as a server-class computer Software technically is the server
5
Data flow Information can pass in either or both directions between a client and server Can be a series of request with response form the server Can be a continuous flow of data from server as soon as client contacts
6
Client-server TCP/IP stack as the transport protocol For troubleshooting need to know what transport protocol is being used
7
Multiple services Sufficient hardware resources Network OS that allows multiple concurrent applications Practical to run multiple server apps, but…
8
Multiple services Groupwise Follett library software Winschool Macschool File server services Mealtime Filemaker pro Open district – Oracle Sophos Antivirus server Proxy server
9
Protocol port numbers TCP uses 16-bit integer values to identify services Assigns a unique protocol port number to each service Both client and server specify the service identifier (port number) Protocol software uses the identifier to direct each incoming request to the correct server software
10
Concurrency A computer system that permits multiple application programs to execute at the same time Multiple process, task, or thread Concurrent server offers service to multiple clients without requiring clients to wait for other clients to finish
11
Dynamic server creation Main server thread creates a new service thread for each new client connection Service tread handles one request, then terminates Main thread keeps the server alive waiting for requests
12
Transport protocols Transport protocols assign an identifier to each client as well as to each service Protocol software on server uses the combination of client and server identifiers to choose the correct copy of the concurrent server
13
Connection-oriented transport Establish connection Send data Terminate TCP
14
Connectionless transport Application can send a message to any destination at any time UDP Client-server apps can use either approach Can also offer both with the choice of transport left to the client
15
Sockets Interface between an application program and the communication protocols in an OS is known as the Application Program Interface or API The socket API is a de facto standard A protocol standard might suggest an operation is needed to allow an application to send data, and the API specifies the exact name of the function and the type of each argument
16
Socket libraries Socket functions are part of BSD UNIX Other vendors started adding a socket API to their systems Instead of modifying the OS, programmers added a socket library that provides the socket API Socket library can provide apps with a socket API on systems that do not provide native sockets When an app calls one of the socket procedures, control passes to a library routine that makes calls to the underlying OS
17
Sockets, descriptors, I/O When an app creates a socket, the app is given a small integer descriptor used to reference the socket If a system uses the same descriptor space for sockets and other I/O, a single application can be used for network communication as well as for local data transfer
18
Socket procedures Create Close Bind Listen Accept Connect Send Receive Read Write
19
Socket API routines Socket API The Socket API is the standard API for TCP/IP programming in the UNIX world. In the Windows world, the Winsock API is based on and shares a lot with the BSD Socket API. This makes conversion between the two fairly easy. All the routines that application programmers would expect are available, including (but not limited to): accept() bind() bindresvport() connect() dn_comp() dn_expand() endprotoent() endservent() gethostbyaddr() gethostbyname() getpeername() getprotobyname() getprotobynumber() getprotoent() getservbyname() getservent() getsockname() getsockopt() herror() hstrerror() htonl() htons() h_errlist() h_errno() h_nerr() inet_addr() inet_aton() inet_lnaof() inet_makeaddr() inet_netof() inet_network() inet_ntoa()
20
Socket API routines ioctl() listen() ntohl() ntohs() recv() recvfrom() res_init() res_mkquery() res_query() res_querydomain() res_search() res_send() select() send() sendto() setprotoent() setservent() setsockopt() shutdown() socket() The common daemons and utilities from the Internet will easily port or just compile in this environment. This makes it easy to leverage what already exists for your applications.
21
Client Server examples Chapter 30
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.