Internetworking with TCP/IP Vol. III Client-Server Programming and Applications-Windows Sockets Version

Paperback
from $0.00

Author: Douglas E. Comer

ISBN-10: 0138487146

ISBN-13: 9780138487140

Category: Client - Server Computing

This volume answers the question "How does one use TCP/IP?"—focusing on the client-server paradigm, and examining algorithms for both the client and server components of a distributed program. KEY TOPICS: It presents an implementation that illustrates each design and discusses techniques like application-level gateways and tunneling. The book also reviews several standard application protocols and uses them to illustrate the algorithms and implementation techniques.

Search in google:

This volume answers the question "How does one use TCP/IP?"—focusing on the client-server paradigm, and examining algorithms for both the client and server components of a distributed program. KEY TOPICS: It presents an implementation that illustrates each design and discusses techniques like application-level gateways and tunneling. The book also reviews several standard application protocols and uses them to illustrate the algorithms and implementation techniques. Booknews Explains to programmers of application software how such software use the standard protocols to communicate over the Internet. This WINSOCK Version is for those who are building software for personal computers using Windows 95 or Windows NT, which support the Win32 programming interface and can use the Windows Sockets API discussed in the text. First discusses the client-server paradigm and socket interface that application programs use for network communication, then describes designs that emphasize practical principles and techniques. Annotation c. by Book News, Inc., Portland, Or.

From Chapter 17: Tunneling at the Transport and Application Levels\ ...17.4 Dynamic Circuit Allocation\ In the example topology that Figure 17.2 illustrates, the TCP/IP internet traffic needs only one ATM virtual circuit through the ATM network because the organization only has two sites. If the organization expands by adding additional sites, it can extend the topology by placing an IP gateway at each new site and creating additional circuits through the ATM network to interconnect each new IP gateway to the IP gateways at existing sites.\ \ The static scheme for circuits described above can expand to an arbitrary number of sites if the ATM network does not limit the number of circuits that a single computer can allocate simultaneously. An organization with N sites will need (N*(N-1))/2 circuits to interconnect all of them. Thus, an IP gateways needs 15 connections for 6 sites, and 45 connections when the organization reaches 10 sites. Unfortunately, each circuit requires both hardware and software resources. For example, the routing software must store the mapping between the address of a remote IP gateway and the ATM circuit that connects to that gateway, and the network interface must allocate buffer space for the data being sent and received. More important, because communication is often intermittent, a connection may not be used for long periods.\ \ To conserve resources, some implementations limit the number of simultaneous ATM circuits that can be open. Instead of arbitrarily choosing which connections are allowed, the implementations take a different approach - they allocate circuits on demand and close circuits that are not being used. When a datagramarrives at an IP gateway, the IP gateway looks up the destination address to determine the route the datagram will follow. The routing lookup produces a next-hop address, the address of the next IP gateway to which the datagram should be sent. If the next hop address specifies a site connected to the ATM network, the IP gateway consults its table of active ATM virtual circuits. If a circuit exists to the next-hop, the IP gateway forwards the datagram across the circuit. If no circuit exists, the IP gateway opens a new circuit to the desired destination dynamically.\ \ If the limit of ATM circuits has been reached when an IP gateway needs to open a new circuit, the gateway must close an existing circuit to make one available. The problem becomes one of choosing which circuit to close. Usually, a gateway follows the same policy that a demand paging system uses: it closes the least recently used (LRU) circuit. After sending its datagram across the new circuit, the gateway leaves the circuit open. Often the outgoing datagrams will cause the receiver to reply, so keeping the circuit open helps minimize delay and cost.\ \ By dynamically opening and closing virtual circuits, an IP gateway can limit the number of simultaneous connections it needs without losing the ability to communicate with all sites. The gateway only needs to have one circuit open for each site with which communication is currently in progress.\ \ 17.5 Encapsulation and Tunneling\ \ The term encapsulation describes the process of placing an IP datagram inside a network packet or frame so that it can be sent across an underlying network. Encapsulation refers to how the network interface uses packet switching hardware. For example, two hosts that communicate across an Ethernet, using IP, encapsulate each datagram in a single Ethernet packet for transmission. The encapsulation standard for TCP/IP specifies that an IP datagram occupies the data portion of the Ethernet packet and that the Ethernet packet type must be set to a value that specifies IP.\ \ By contrast, the term tunneling refers to the use of a transport network service to carry packets or messages from another service. For example, if the ATM network in Figure 17.2 is replaced by a transport service (e.g., an X.25 network system), the gateways would use a tunnel to communicate. In both tunneling and encapsulation, two computers attached to a network system use the system to send packets. The key difference between tunneling and encapsulation lies in whether IP transmits datagrams in hardware packets or uses a high-level transport service to deliver them.\ \ IP encapsulates each datagram in a packet when it uses the hardware directly. It creates a tunnel when it uses a high-level transport delivery service to send datagrams from one point to another.\ \ 17.6 Tunneling Through an IP Internet\ \ After TCP/IP was first defined, researchers experimented to see how they could make IP software tunnel through existing networks to deliver datagrams. The motivation should be clear: many organizations had existing networks in place. Surprisingly, the trend has turned around. Most tunneling now occurs because vendors use IP protocols to deliver packets from non-TCP/IP protocols.\ \ Understanding the change in tunneling requires us to understand a change in networking. As the Internet became popular, it became the universal packet delivery mechanism for many groups. In fact, Ipnow provides the widest connectivity among the computers at most organizations.\ \ To see how the availability of IP affects other protocols, suppose two computers in an organization need to communicate using a vendor-specific protocol. Instead of adding additional physical network connections between the two computers, a manager can think of the organization's intranet as a large network, and can allow the protocol software on the two computers to exchange messages by sending them in IP datagrams. Software is currently available that uses IP to carry IPX traffic (Novell), SNA traffic (IBM), and traffic from other high-level protocols. In addition, engineers have devised ways to allow IP networks to carry traffic from new protocols, allowing designers to build and debug new high-level protocols before they have working implementations of lower layers...

ForewordPrefaceIntroduction And Overview1The Client Server Model And Software Design9Concurrent Processing In Client-Server Software21Program Interface To Protocols35The Socket Interface43Algorithms And Issues In Client Software Design57Example Client Software75Algorithms And Issues In Server Software Design95Iterative, Connectionless Servers (UDP)115Iterative, Connection-Oriented Servers (TCP)123Concurrent, Connection-Oriented Servers (TCP)131Single-Process, Concurrent Servers (TCP)139Multiprotocol Servers (TCP, UDP)147Multiservice Servers (TCP, UDP)155Uniform, Efficient Management Of Server Concurrency175Concurrency In Clients187Tunneling At The Transport And Application Levels199Application Level Gateways209External Data Representation (XDR)229Remote Procedure Call Concept (RPC)241Distributed Program Generation (Rpcgen Concept)265Distributed Program Generation (Rpcgen Example)277Network File System Concepts (NFS)315A TELNET Client (Program Structure)363A TELNET Client (Implementation Details)103Practical Hints And Techniques For UNIX Servers435Deadlock And Starvation In Client-Server Systems453Appendix 1 System Calls And Library Routines Used With Sockets463Appendix 2 Manipulation Of UNIX File And Socket Descriptors493Bibliography497Index505

\ BooknewsExplains to programmers of application software how such software use the standard protocols to communicate over the Internet. This WINSOCK Version is for those who are building software for personal computers using Windows 95 or Windows NT, which support the Win32 programming interface and can use the Windows Sockets API discussed in the text. First discusses the client-server paradigm and socket interface that application programs use for network communication, then describes designs that emphasize practical principles and techniques. Annotation c. by Book News, Inc., Portland, Or.\ \