<?xml version='1.0'?>
<appendix id='osi-OSI'>
<title>Open Systems Interconnection (OSI) Reference Model</title>
<para>
The Open Systems Interconnection (OSI) Reference Model is traditionally used 
as a general purpose reference for describing protocols and comparing protocols. 
It is assumed that the reader is familiar with the OSI model; there are of 
course numerous resources on the WEB that explain the OSI model.
</para>
<para>
The diagrams below attempt to show the components of the NetBIOS protocols 
and higher level protocols such as SMB in relation to the OSI Reference Model. 
Because the protocols were not developed specifically to comply with the OSI 
model any mapping is only approximate and intended as a guide. When protocols 
(such as NetBIOS) are encapsulated within other protocols (such as TCP/IP or 
IPX) it is particularly difficult to map these to a reference model, thus the 
diagrams below are intended to help show the relationships between the protocols 
rather than provide a definitive mapping to the OSI model.
</para>
<section>
<title>NBF on 802.2 networks</title>
<para>
NetBIOS is often described as a session layer protocol but in the IEEE 802.2 
implementation there are no transport or datagram delivery protocols between the 
session layer and the datalink layer. While there is a datagram protocol, this 
is used exclusively for datagrams and not as a foundation for higher layer 
protocols.
</para>
<table frame='all'>
<title>NBF on 802.2 networks</title>
<tgroup cols='3' colsep='0'>
<colspec colname='c1' colwidth='1*' colsep='1'/>
<colspec colname='c2' colwidth='2*' colsep='0'/>
<colspec colname='c3' colwidth='2*'/>
<spanspec spanname='hspan1' namest='c2' nameend='c3'/>
<tbody>
<row>
<entry colsep='1'>7 Application</entry>
<entry>
</entry>
<entry align='center'>e.g. Browser Service</entry>
</row>
<row>
<entry colsep='1'>6 Presentation</entry>
<entry spanname='hspan1' align='center'>Higher level protocols e.g. SMB / CIFS</entry>
</row>
<row>
<entry colsep='1'>5 Session</entry>
<entry morerows='1' colsep='1' valign='middle'>&nbsp;</entry>
<entry morerows='2' valign='middle' align='center'>Session Management Protocol</entry>
</row>
<row>
<entry colsep='1'>4 Transport</entry>
</row>
<row>
<entry colsep='1'>3 Network</entry>
<entry align='center'>User Datagram Protocol, Name Management Protocol, NetBIOS 
Diagnostic and Monitoring Protocol</entry>
</row>
<row>
<entry morerows='1' colsep='1'>2 Datalink</entry>
<entry spanname='hspan1' align='center'>IEEE 802.2</entry>
</row>
<row>
<entry spanname='hspan1' align='center'>IEEE 802.3 / IEEE 802.5 etc</entry>
</row>
<row>
<entry colsep='1'>1 Physical</entry>
<entry spanname='hspan1' align='center'>Token Ring / Ethernet etc</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section>
<title>NetBIOS over TCP/IP</title>
<para>
NetBIOS over TCP/IP is described in RFC 1001 and RFC 1002. Note that when 
higher level protocols such as SMB or CIFS are implemented over TCP/IP they are 
in fact implemented over NetBIOS over TCP/IP.
</para>
<table frame='all'>
<title>NetBIOS over TCP/IP</title>
<tgroup cols='4'>
<colspec colname='c1' colwidth='1*'/>
<colspec colname='c2' colwidth='2*'/>
<colspec colname='c3' colwidth='2*'/>
<colspec colname='c4' colwidth='2*'/>
<spanspec spanname='hspan1' namest='c2' nameend='c3'/>
<spanspec spanname='hspan2' namest='c2' nameend='c4'/>
<tbody>
<row>
<entry>7 Application</entry>
<entry spanname='hspan1'></entry>
<entry align='center'>e.g. Browser Service</entry>
</row>
<row>
<entry>6 Presentation</entry>
<entry spanname='hspan2' align='center'>Higher level protocols e.g. SMB / 
CIFS</entry>
</row>
<row>
<entry>5 Session</entry>
<entry align='center'>Name Service</entry>
<entry align='center'>datagram service</entry>
<entry align='center'>Session Service</entry>
</row>
<row>
<entry>4 Transport</entry>
<entry spanname='hspan1' align='center'>UDP</entry>

<entry align='center'>TCP</entry>
</row>
<row>
<entry>
3 Network
</entry>
<entry spanname='hspan2' align='center'>IP</entry>

</row>
<row>
<entry morerows='1'>2 Datalink</entry>
<entry spanname='hspan1' align='center'>e.g. IEEE 802.2</entry>
<entry morerows='1' align='center'>e.g. Ethernet II etc</entry>

</row>
<row>
<entry spanname='hspan1' align='center'>IEEE 802.3 / IEEE 802.5 etc</entry>
</row>
<row>
<entry>1 Physical</entry>
<entry spanname='hspan2' align='center'>Token Ring / Ethernet etc</entry>

</row>
</tbody>
</tgroup>
</table>
</section>
<section>
<title>NetBIOS over IPX</title>
<para>
NetBIOS over IPX uses IPX packets to provide the underlying delivery 
mechanism for the NetBIOS protocols.
</para>
<table frame='all'>
<title>NetBIOS over IPX</title>
<tgroup cols='3'>
<colspec colname='c1' colwidth='1*'/>
<colspec colname='c2' colwidth='2*'/>
<colspec colname='c3' colwidth='2*'/>
<spanspec spanname='hspan1' namest='c2' nameend='c3'/>
<tbody>
<row>
<entry>7 Application</entry>
<entry></entry>
<entry align='center'>e.g. Browser Service</entry>
</row>
<row>
<entry>6 Presentation</entry>
<entry spanname='hspan1' align='center'>Higher level protocols e.g. SMB / CIFS</entry>
</row>
<row>
<entry>5 Session</entry>
<entry morerows='1' colsep='1' valign='middle'>&nbsp;</entry>
<entry morerows='2' valign='middle' align='center'>Session Management Protocol</entry>
</row>
<row>
<entry>4 Transport</entry>
</row>
<row>
<entry morerows='1' valign='middle'>3 Network</entry>
<entry align='center'>User Datagram Protocol, Name Management Protocol, NetBIOS 
      Diagnostic and Monitoring Protocol</entry>
</row>
<row>
<entry spanname='hspan1' align='center'>IPX</entry>
</row>
<row>
<entry morerows='1'>2 Datalink</entry>
<entry align='center'>e.g. IEEE 802.2</entry>
<entry morerows='1' align='center'>e.g. Ethernet II etc</entry>
</row>
<row>
<entry align='center'>IEEE 802.3 / IEEE 802.5 etc</entry>
</row>
<row>
<entry>1 Physical</entry>
<entry spanname='hspan1' align='center'>Token Ring / Ethernet etc</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section><title>CIFS over TCP/IP</title>
<para>
The latest version of CIFS can run directly over TCP/IP.
</para>
<table frame='all'>
<title>CIFS over TCP/IP</title>
<tgroup cols='3'>
<colspec colname='c1' colwidth='1*'/>
<colspec colname='c2' colwidth='2*'/>
<colspec colname='c3' colwidth='2*'/>
<spanspec spanname='hspan1' namest='c2' nameend='c3'/>
<tbody>
<row>
<entry>7 Application</entry>
<entry morerows='2' spanname='hspan1' valign='middle' align='center'>CIFS</entry>
</row>
<row><entry>6 Presentation</entry></row>
<row><entry>5 Session</entry></row>
<row>
<entry>4 Transport</entry>
<entry align='center'>UDP</entry>
<entry align='center'>TCP</entry>
</row>
<row>
<entry>3 Network</entry>
<entry spanname='hspan1' align='center'>IP</entry>
</row>
<row>
<entry morerows='1'>2 Datalink</entry>
<entry align='center'>e.g. IEEE 802.2</entry>
<entry morerows='1' align='center' valign='middle'>e.g. Ethernet II etc</entry>
</row>
<row>
<entry align='center'>IEEE 802.3 / IEEE 802.5 etc</entry>
</row>
<row>
<entry>1 Physical</entry>
<entry spanname='hspan1' align='center'>Token Ring / Ethernet etc</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
</appendix>
