Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Changes between Version 11 and Version 12 of ChapterNetworking

Show
Ignore:
Author:
JJR (IP: 207.194.36.237)
Timestamp:
11/26/07 07:36:00 (16 years ago)
Comment:

Updates and fixes: long overdue

Legend:

Unmodified
Added
Removed
Modified
  • ChapterNetworking

    v11 v12  
    33= An Introduction to Networking with Tango = 
    44 
    5 Tango delivers fundamental network interface components with which we can design client or server applications. These network objects are similar enough to original networking library models to ease the transition for skilled network software developers.  The general goal of the Tango network modules is to simplify the whole approach to D network software development. 
     5Here we discuss the network components provided by the Tango API.  Anyone with even a vague recollection of the old C socket interfaces will recall why network software development has always been such a "trial by ordeal".  It is just not fun working with cryptic API's, seemingly inconsistant conventions, and confusing preprocessor macros.  Tango, of course, [i]really[/i] tries to make it all easier.  The approach, once again, is to make the network API clear and consistant across platforms.   
    66 
    7 == A History == 
     7While claiming an API to be easy does not make it so, we hope the examples and explanations in this chapter will be adequate testimony that Tango "gets it right."  The Tango network interface is foundational to many powerful and more complex network objects which will be discussed later.  
    88 
    9 Berkley Software Distribution UNIX made it's imprint in networking history during the last few decades of the twentieth century.  BSD UNIX, as the academic-born UNIX operating system came to be called, was a direct competitor with AT&T Bell Lab's UNIX distribution.  Bell Lab's UNIX was the original design for what became the most popular OS model of the last half a century. Both UNIX designs eventually contributed important network protocols and interfaces that are in common use today.  The Internet is the most obvious example of the UNIX influence.  
     9First, however, let us present a little history of networking.  This should give a background as to why fundamental entities like sockets, ports, and internet addresses exist in the first place. 
    1010 
    11 BSD's style of UNIX ended up being adopted by a number of software industry leaders, the highest profile being Sun Microsystem's SunOS.  The two UNIX distributions, BSD and Bell Lab's, were distinctly incompatible for a number of years, demonstrating a divergent style in their intrinsic tool sets.  BSD developed some innovative programming interfaces during this period, and these were readily adopted in many highly popular server products.  Later versions of these two operating systems shared more in common.  Bell Lab's final major release, called System V, merged features and tools from BSD. This made the operating system more useful but not necessarily more compatible. (citation) 
     11== A Brief History of Networking == 
     12 
     13In the early days of UNIX (circa 1977), it was Berkley Software Distribution's UNIX that made some critical contributions to the field of network API's.  BSD UNIX (as the academic-born UNIX operating system came to be called) was a direct competitor with AT&T Bell Lab's UNIX distribution.  Bell Lab's UNIX was the original design for what became the most popular OS model of the last half a century. Both UNIX designs eventually contributed important network protocols and interfaces that are in common use today.  The Internet is the most obvious example of the UNIX influence.  
     14 
     15Already a luminary in business and academics, the BSD UNIX phenomenon exploded in popularity when Sun released its own derivative called SunOS.  Unfortunately, this only widened the divergence of the two UNIX styles -- BSD and Bell Lab's -- which were distinctly incompatible for a number of years. However, later versions of these two operating systems shared more in common.  Bell Lab's final major release, called System V, merged features and tools from the ever popular BSD UNIX. The shared features made the two operating systems more independently useful but did little to improve cross-compatibility. (citation) 
    1216    
    13 In the networking programming sector, one of the most important API's to surface out of this drama was "BSD Sockets."  In short order, BSD Sockets became practically a standard across many UNIX-derivative distributions. 
    14  
    15 The purpose of the socket API was to create a "simple" programming interface for interprocess communication, specifically oriented to network operation.  The socket concept was the high level rendition of network communication.  Years later, sockets have become synonymous with network software development, promoted even further by their ready adoption by the ever pervading Linux movement. 
     17While in the process of enriching the distribution, BSD managed to invent several innovative programming interfaces.  In the network programming sector, one of the most important of these became known as "BSD Sockets."  In short order, BSD Sockets was practically a standard across many UNIX-derivative distributions. Ironically, the purpose of the socket API was to create a "simple" programming interface for interprocess communication, specifically oriented to network operation.  The socket concept was the high level rendition of network communication.  Years later, sockets have become synonymous with network software development, promoted even further by their ready adoption by the ever pervading Linux movement.  Despite incompatible implementations sprouting across old and new operating systems, still the sockets API has managed to gain an increasingly universal audience.  
    1618 
    1719== All about Networking == 
    6971 
    7072[[Image(source:/trunk/doc/images/SocketConduit.gif)]] 
     73 
     74== References ==  
     75 
     76http://www.coe.berkeley.edu/labnotes/history_unix.html