errors and how to deal with them. Precise communications pro- tocols are needed for two often heterogeneous machines to send and correctly receive data. Open Systems Interconnection Model As discussed above packet-switched architectures divided the processes necessary for estab- lishing and transmitting of data into 'layers'. The OSI model defined seven functional layers as shown in Figure 8.4. The seven layers of OSI architecture are designed to create a virtual end-to-end connection between a transmitter and a receiver over which data may be communicated. Each layer covers a certain number of functions and communicates with layers immediately above and below to transfer data. The inter-layer interface is standardised, which ensures equipment designed for different layers can seamlessly connect. This structure simplifies design of complex networks, and perhaps more importantly, facilitates competition in network equipment supply by enabling different vendors to build devices that can readily work together. An example of how the OSI layer works is as follows. An 'email' program produces data at the application layer (L7). The letters of the alphabet produced by the email application may be represented by ASCII characters which may be transferred into an 8-bit Unicode Transformation Format at the presentation layer (L6). The session layer (L5) establishes an end-to-end session between the applications residing in two machines and ensures data flow. The data are packetised in the transport layer (L4) into parts of suitable size for transmission Provides a means for the user to access information on Application the network through an application Provides independence to the application processes Presentation from differences in data representation (syntax) Session Establishes, manages and terminates connections (sessions) between applications Provides reliable data transport: e.g. end-to-end error Transport recovery and flow control Provides means of transferring variable length data Network sequences from a source 