\contentsline {part}{\uppercase {i}\phspace {1em}Introduction}{1} \contentsline {chapter}{\numberline {1}Overview}{3} \contentsline {section}{\numberline {1.1}Fanatics Need Not Read Further}{4} \contentsline {section}{\numberline {1.2}The Name of the Game}{5} \contentsline {section}{\numberline {1.3}Operating Environments}{5} \contentsline {section}{\numberline {1.4}Organization of the Release}{7} \contentsline {section}{\numberline {1.5}A Note on this Implementation}{9} \contentsline {section}{\numberline {1.6}Changes Since the Last Release}{10} \contentsline {part}{\uppercase {ii}\phspace {1em}Underlying Services}{11} \contentsline {chapter}{\numberline {2}Presentation Services}{13} \contentsline {section}{\numberline {2.1}Warning}{14} \contentsline {section}{\numberline {2.2}Addresses}{14} \contentsline {subsection}{\numberline {2.2.1}Calling Address}{15} \contentsline {section}{\numberline {2.3}Connection Establishment}{16} \contentsline {subsection}{\numberline {2.3.1}Connection Negotiation}{16} \contentsline {subsubsection}{Session Parameters}{16} \contentsline {subsubsection}{Presentation Contexts}{16} \contentsline {subsection}{\numberline {2.3.2}Server Initialization}{17} \contentsline {subsection}{\numberline {2.3.3}Client Initialization}{26} \contentsline {section}{\numberline {2.4}Data Transfer}{31} \contentsline {subsection}{\numberline {2.4.1}Restrictions on User Data}{33} \contentsline {section}{\numberline {2.5}Error Conventions}{33} \contentsline {section}{\numberline {2.6}Compiling and Loading}{34} \contentsline {section}{\numberline {2.7}An Example}{34} \contentsline {section}{\numberline {2.8}Lightweight Presentation Protocol}{37} \contentsline {section}{\numberline {2.9}For Further Reading}{38} \contentsline {chapter}{\numberline {3}Session Services}{39} \contentsline {section}{\numberline {3.1}Warning}{40} \contentsline {section}{\numberline {3.2}Addresses}{40} \contentsline {subsection}{\numberline {3.2.1}Calling Address}{42} \contentsline {subsection}{\numberline {3.2.2}Address Encodings}{42} \contentsline {section}{\numberline {3.3}Connection Establishment}{42} \contentsline {subsection}{\numberline {3.3.1}Connection Negotiation}{43} \contentsline {subsubsection}{Maximum SSDU Size}{43} \contentsline {subsubsection}{Session Requirements}{43} \contentsline {subsubsection}{Session Tokens}{43} \contentsline {subsubsection}{Initial Token Settings}{46} \contentsline {subsection}{\numberline {3.3.2}Server Initialization}{47} \contentsline {subsection}{\numberline {3.3.3}Client Initialization}{55} \contentsline {section}{\numberline {3.4}Data Transfer}{59} \contentsline {subsection}{\numberline {3.4.1}Sending Data}{60} \contentsline {subsection}{\numberline {3.4.2}Receiving Data}{63} \contentsline {subsubsection}{Token Indications}{66} \contentsline {subsubsection}{Synchronization Indications}{67} \contentsline {subsubsection}{Activity Indications}{68} \contentsline {subsubsection}{Report Indications}{70} \contentsline {subsubsection}{Finish Indication}{71} \contentsline {subsection}{\numberline {3.4.3}Token Management}{71} \contentsline {subsubsection}{Sending Tokens}{72} \contentsline {subsubsection}{Requesting Tokens}{73} \contentsline {subsection}{\numberline {3.4.4}Synchronization Management}{73} \contentsline {subsubsection}{Major Synchronization}{73} \contentsline {subsubsection}{Minor Synchronization}{75} \contentsline {subsubsection}{ReSynchronization}{76} \contentsline {subsection}{\numberline {3.4.5}Activity Management}{78} \contentsline {subsubsection}{Activity Start/Resume}{78} \contentsline {subsubsection}{Activity Interrupt/Discard}{80} \contentsline {subsubsection}{Activity End}{82} \contentsline {subsection}{\numberline {3.4.6}Exception Reporting}{83} \contentsline {subsection}{\numberline {3.4.7}User-initiated Aborts}{84} \contentsline {subsection}{\numberline {3.4.8}Asynchronous Event Handling}{85} \contentsline {subsection}{\numberline {3.4.9}Synchronous Event Multiplexing}{89} \contentsline {section}{\numberline {3.5}Connection Release}{90} \contentsline {section}{\numberline {3.6}Restrictions on User Data}{92} \contentsline {section}{\numberline {3.7}Error Conventions}{93} \contentsline {section}{\numberline {3.8}Compiling and Loading}{94} \contentsline {section}{\numberline {3.9}An Example}{94} \contentsline {section}{\numberline {3.10}For Further Reading}{97} \contentsline {chapter}{\numberline {4}Transport Services}{98} \contentsline {section}{\numberline {4.1}Addresses}{98} \contentsline {subsection}{\numberline {4.1.1}Calling Address}{99} \contentsline {subsection}{\numberline {4.1.2}Address Encodings}{101} \contentsline {section}{\numberline {4.2}Connection Establishment}{102} \contentsline {subsection}{\numberline {4.2.1}Connection Negotiation}{102} \contentsline {subsubsection}{Expedited Data}{102} \contentsline {subsubsection}{Maximum TSDU Size}{102} \contentsline {subsection}{\numberline {4.2.2}Server Initialization}{103} \contentsline {subsection}{\numberline {4.2.3}Client Initialization}{107} \contentsline {subsubsection}{Asynchronous Connections}{109} \contentsline {section}{\numberline {4.3}Data Transfer}{112} \contentsline {subsection}{\numberline {4.3.1}Sending Data}{113} \contentsline {subsection}{\numberline {4.3.2}Receiving Data}{115} \contentsline {subsection}{\numberline {4.3.3}Asynchronous Event Handling}{117} \contentsline {subsection}{\numberline {4.3.4}Synchronous Event Multiplexing}{118} \contentsline {section}{\numberline {4.4}Connection Release}{120} \contentsline {section}{\numberline {4.5}State Saving and Restoration}{120} \contentsline {subsection}{\numberline {4.5.1}Saving the State}{120} \contentsline {subsection}{\numberline {4.5.2}Restoring the State}{121} \contentsline {section}{\numberline {4.6}Cookie Parameters}{121} \contentsline {subsection}{\numberline {4.6.1}Network Addresses}{122} \contentsline {subsection}{\numberline {4.6.2}Quality of Service}{125} \contentsline {section}{\numberline {4.7}Listen Facility}{126} \contentsline {section}{\numberline {4.8}Queued (non-blocking) Writes Facility}{129} \contentsline {section}{\numberline {4.9}Error Conventions}{130} \contentsline {section}{\numberline {4.10}Compiling and Loading}{130} \contentsline {section}{\numberline {4.11}An Example}{130} \contentsline {section}{\numberline {4.12}Compatibility Issues}{133} \contentsline {section}{\numberline {4.13}For Further Reading}{134} \contentsline {part}{\uppercase {iii}\phspace {1em}Databases}{135} \contentsline {chapter}{\numberline {5}The ISODE Services Database}{137} \contentsline {section}{\numberline {5.1}Accessing the Database}{138} \contentsline {chapter}{\numberline {6}The ISODE Tailoring File}{141} \contentsline {section}{\numberline {6.1}Tailor Variables}{141} \contentsline {subsection}{\numberline {6.1.1}Local Environment Tailoring}{141} \contentsline {subsection}{\numberline {6.1.2}Logging Tailoring}{143} \contentsline {subsection}{\numberline {6.1.3}Directory Services Tailoring}{144} \contentsline {subsection}{\numberline {6.1.4}Transport Switch Tailoring}{144} \contentsline {subsubsection}{Transport-Service Bridge}{146} \contentsline {subsection}{\numberline {6.1.5}Interface Specific Tailoring}{147} \contentsline {subsubsection}{General X.25 Tailoring}{147} \contentsline {subsubsection}{SunLink X.25}{147} \contentsline {subsubsection}{Camtec CCL}{149} \contentsline {subsubsection}{Bridge X.25}{149} \contentsline {section}{\numberline {6.2}Accessing the Tailoring File}{150} \contentsline {chapter}{\numberline {7}The ISODE Logging Facility}{152} \contentsline {subsection}{\numberline {7..1}Data-Structures}{152} \contentsline {section}{\numberline {7.1}Accessing the Log}{154} \contentsline {subsection}{\numberline {7.1.1}Timestamps}{155} \contentsline {subsection}{\numberline {7.1.2}Making Log Entries}{156} \contentsline {subsection}{\numberline {7.1.3}More About Making Log Entries}{158} \contentsline {subsection}{\numberline {7.1.4}Miscellaneous Routines}{159} \contentsline {section}{\numberline {7.2}Use of Logging in Programs}{159} \contentsline {part}{\uppercase {iv}\phspace {1em}Configuration}{161} \contentsline {chapter}{\numberline {8}The Transport Switch}{163} \contentsline {section}{\numberline {8.1}Transport Stacks}{163} \contentsline {section}{\numberline {8.2}OSI Communities}{164} \contentsline {subsection}{\numberline {8.2.1}Defining a new OSI community}{166} \contentsline {subsubsection}{Defining a new TCP-based community}{167} \contentsline {subsubsection}{Defining a new X.25-based community}{167} \contentsline {subsection}{\numberline {8.2.2}Heuristic Support}{168} \contentsline {section}{\numberline {8.3}Transport-Service Bridges}{169} \contentsline {subsection}{\numberline {8.3.1}Client Hosts}{169} \contentsline {subsection}{\numberline {8.3.2}Server Hosts}{170} \contentsline {section}{\numberline {8.4}In Retrospect}{170}