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

Changes between Version 23 and Version 24 of ChapterNetworking

Show
Ignore:
Author:
JJR (IP: 207.194.36.73)
Timestamp:
10/21/08 06:43:27 (11 years ago)
Comment:

Add protocol type info

Legend:

Unmodified
Added
Removed
Modified
  • ChapterNetworking

    v23 v24  
    1111== A Brief History of Networking == 
    1212 
    13 In the 1970's, the Berkley Software Distribution community made substantial API contributions via their UNIX derivative: BSD UNIX offered an enticing alternative to the original AT&T Bell Lab's UNIX release. However, it was both UNIX designs that eventually contributed important network protocols and interfaces that are in common use today
     13In the 1970's, the Berkley Software Distribution community made substantial API contributions via their UNIX derivative called BSD UNIX: this OS was becoming an enticing alternative to the original AT&T Bell Lab's UNIX release
    1414 
    15 Already a luminary in business and academics, BSD UNIX exploded in popularity when Sun Microsystems released its own derivative called SunOS.  Unfortunately, this only widened the divergence of two very popular UNIX styles (BSD verse Bell Labs).  Numerous other proprietary UNIX's exploded from the two UNIX pillars in the following decades, a process that seemed only to increase the cacophony of technologies that effectively complicated the world of computer integration
     15Already a luminary in the academic realm, BSD UNIX garnered more attention in the corporate world when Sun Microsystems released its own derivative called SunOS.  It took only a few years for numerous other proprietary UNIX's to appear on the scene, each exchanging, borrowing and contributing to the cacophony of computer and software technologies that already permeated the industry.  Yet, BSD, rising above this sea of proprietary Unixes, had made it's mark as a standard setter as important to the industry as the original AT&T Unix itself
    1616 
    17 Undeterred, Berkley succeeded in permanently ingraining itself in the UNIX culture by contributing innovative programming interfaces, protocols, and standards via BSD UNIX.  In the network programming sector alone, one of the most important of these became known as "BSD Sockets".  Years later and as networks became prevalent everywhere, BSD Sockets (the high level rendition of network communication) transformed into a defacto standard in practically every modern operating system, UNIX-based or otherwise
     17In the network programming sector alone, one of the most important of the BSD contributions became known as "BSD Sockets".  Years later, as networks were becoming prevalent everywhere, BSD Sockets (the high level rendition of network communication) transformed into a defacto standard in practically every modern operating system, UNIX-derived or not
    1818 
    1919== A Summary of Networking == 
    6767 * !SocketType.SEQPACKET -- sequenced, reliable, two-way connection-based datagrams 
    6868 
     69The last category involved for a Socket setup provides a selection that describes the protocol family to be used.  Protocols determine how processes communicate with each other, the rules involved for transmission and acquisition of data.  The Socket, therefore, must setup the protocol family before communication can commence.  
     70 
     71We recall that the OSI Reference model describes several layers. Protocols of different varieties exist in many of these layers.  Fortunately, the Socket connection is most interested in the protocol specific to the Transport layer.  But since protocols often exist in families (ie associated protocols from different OSI levels that are used together), choosing a Transport protocol automatically insures that another protocol will be used on a lower level (eg. Network Layer).  This is one interpretation of a protocol "family".  For example choosing the Transport Layer protocol TCP for our Socket guarantees that we will be using a Network layer protocol IP, and any associated lower level protocols that go with it.  The Protocol types available for the Socket are as follows: 
     72 
     73 * !ProtocolType.IP -- Internet Protocol 4 (Network Layer) 
     74 * !ProtocolType.ICMP -- Internet Control Message Protocol (part of the IP family) 
     75 * !ProtocolType.IGMP -- Internet Group Management Protocol (part of the IP family) 
     76 * !ProtocolType.GGP -- Gateway to Gateway Protocol (Obselete transport layer protocol that is part of the IP family) 
     77 * !ProtocolType.TCP -- Transmission Control Protocol (the mainstay of the internet - connection oriented transport layer protocol that is part of the IP family) 
     78 * !ProtocolType.PUP -- PARC Universal Packet Protocol (old protocol family, precursor to TCP/IP) 
     79 * !ProtocolType.UDP -- User Datagram Protocol (important transport layer protcol of the IP family that is connectionless and stateless, in contrast to TCP). 
     80 * !ProtocolType.IDP -- Xerox NS Protocol family (early protocol suite) 
     81 
     82Several of these transport layer protocols belong to the IP family; this makes sense since the Socket API has it's origins in the UNIX.  Therefore, it is apparent that protocol types are mostly oriented to choosing specific transport layer protocols within this the IP family. 
     83 
     84ICMP and IGMP are closely associated with the network layer IP protocol, although they are not technically transport layer protocols (see wikipedia articles for details on the above protocols).  We also see that several of these protocols are obsolete on modern systems, yet their names remain part of the original Socket API for compatibility (IGP, PUP suite, IDP suite).  The common protocols for Sockets remain IP, TCP, UDP.  The few other IP family protocols are specialized protocols and less commonly used. 
     85 
     86 
    6987-- continued -- 
    7088