Distributed processing implies the ability for computers to communicate directly with each other over a network of nodes. This communication is enabled by a process of stack communications. The OSI model or Open Systems Interconnection model was developed by ISO. OSI is a networking architecture framework for stack communications over a network. OSI has seven layers as shown in the diagram below. Note that each layer services the layer above and uses the layer below.
A protocol is an agreement made between different nodes in a network as to how data is to be transferred. Protocols are standards including syntax (grammatical correctness), semantics (meaning - implied or inferred) and timing. Syntax defines signal level use. Semantics defines data structure for common interpretation between nodes. Timing defines ordering of data plus speed synchronisation between different machines.
The most popular protocol in use for the Internet is TCP/IP, the Internet Reference Model or standard Ethernet protocol for use on client-server networks. The TCP/IP model has four distinct layers for communication across networks and the internet. TCP/IP generally uses what is known as an IP-Address, a sequence of four numbers (215.123.456.100) to address machines on a network.
An extension to the TCP/IP protocol is the TCP/IP protocol with SSL (Secure Sockets Layer). The Secure Sockets Layer stores certificates and private keys for authentication purposes, In the case of Oracle these strings are stored in a thing called an Oracle Wallet. SSL basically performs what in networking jargon is called a handshake. The handshake takes place between two nodes therebye validating certificates between two network nodes. Different encryption and decryption methods apply. Obviously two nodes talking to each other have to use the same encryption method. Private keys and certificates can be sent both directions by both client and server type machines. The idea is not only to validate a key but that a key belongs to a particular user and/or a particular client machine.
SPX applies to Novell Netware networking environments.
Named Pipes provide high-level interprocess communication between client and server machines in distributed environments. A client-server network is effectively a distributed processing environment. The server generally opens a pipe where the client process can access the pipe by name. A Named Pipe is a more direct connection between client and server machines where whatever one node writes to the pipe the other side can read. Local area networks (LANs) benefit from the use of Named Pipes.
LU6.2 is an IBM APPC (Advanced Program to Program Communication) protocol, part of the IBM SNA (System Network Architecture) networking environment. APPC is what is known as a peer-to-peer type of networking architecture where both client and server machines can initiate connections, not just at the behest of the server machine.
A Bequeath protocol is utilised where client and server processes exist on the same machine. With respect to Oracle the Bequeath protocol does not connect a client process to the database through the listener or a naming method. For instance, when execution of svrmgrl on the Oracle database server machine and issuing the connect internal command; assuming of course the Oracle passwords file exists and appropriate parameters are set.
Oracle has both client-side and server-side stack communication protocols. There are other protocol models for LDAP Directory servers, JDBC clients and JServer clients. Oracle client and server-side stack communications are as in the diagram as shown below. The Net8 side of the client network configuration resides in the tnsnames.ora file; the Transparent Network Substrate, or TNS.
Application database requests are passed to the OCI. The OCI defines server calls by doing SQL syntax parsing and validation, opening SQL cursors, variable binding into server memory, executing SQL statements, fetching of rows and closing cursors. OCI calls can pass messages to the server one at a time or in bundles of multiple messages (stored procedures). Bundles of multiple messages passed to the server minimises network traffic by sending a procedure call, executing many commands on the server, and passing back the result. Network traffic is generally much slower than the client or server machines in terms of processing/transfer speed. Thus minimising network traffic is expedient.
The OPI is exactly the same as the client stack OCI except that the OPI functions by responding to messages sent by the OSI. The Oracle Server processes requests, executes SQL statements and passes results back to the OPI. The OPI will then format and return results to the client node.
The OSI presentation layer is represented by the TTC layer. The TTC layer performs character set and data type conversions between multi-formatted nodes.
Net8 represents the OSI session and transport layers. Net8 maintains connectivity between nodes plus passes messages between those nodes. Net8 has three sub-layers, NI and NS (OSI session layer) plus Oracle Protocols (OSI transport layer).
A Light Weight Directory Access (LDAP) protocol configuration includes an extra LDAP layer for a client connection request to pass through, as shown in the diagram below.
Protocol addresses define network nodes. Connection requests from clients are passed across networks using network addresses where a recriprocal process on the recipient node is listening for client connection requests on the listener's network address. Protocol addresses are defined in Oracle network configuration files by containing multiple addresses within address lists. There is a special file called $ORACLE_HOME/network/admin/protocol.ora.
(address_list= (address=(protocol=tcp)(host=<hostname>)(port=1521)) (address=(protocol=tcp)(host=<hostname>)(port=1522)) )
Allowed protocols are Bequeath, IPC, Named Pipes, LU6.2, SPX, TCP/IP and TCP/IP SSL. Oracle allows use of ports 1 through to 65535. Do not use ports below 1024 because operating systems generally use them. Specific ports are used for specific things. Below are default port numbers.
Some protocols require specific parameters for specific platforms. These parameters will be stored in the $ORACLE_HOME/network/admin/protocol.ora.