Jamsa Chapter 2 - Understanding Network Architecture

Network Architecture: The design structure and modular format of the network.

Open Systems Interconnection (OSI) Reference Model

Open System: anybody can build pieces. Documentation and hooks are provided. OSI was based on a proposal by ISO (International Standards Organization. Little pun there, so to speak.)

 Services are viewed as "black boxes"; we just need to know what its inputs and outputs are.

Network layers in the OSI Model are organized as above. Vertical communications are procedures being called from above; the data formats used by calls TO a given layer are the protocols of that layer. Horizontal correspondences are between "peer processes". Each layer uses different units of data. 7..4: messages. 3: packets. 2: frames; 1: bits.

 OSI layers were designed to

 

* provide a conceptual location for each well defined function

 

* minimize communication between layers

 

* respect the famous "rule of seven" - people can think about at most 7 things at once.
The following terminology is relevant to multiple layers of the OSI Model.

Services are provided by each layer to the layer above it. Each layer adds functionality to the ones below it.

 Modes of service are alternative tools or implementations, providing the same service. Two important classes are

Connection-oriented, or point-to-point: a virtual circuit is created.

 

Connectionless: "delivery service", like Fed Ex.
Sequencing defines the order your packets arrive at the other end. Some protocols guarantee sequencing, others don't.
Error Controls detect and correct corruptions and losses of data. Protocols with error control are reliable protocols. Checksums are quick ways of catching some errors; CRC (cyclic redundency checks) are higher powered equivalents.

 Checksum: add up all the 16-bit words in a packet of data (throw away overflow), keep the modulo sum & transmit it. If the recipient does the same and it matches the transmitted checksum.

 CRC: usually computed by hardware, e. g. in Ethernet cards.

 Acknowledgements - "hand shaking" - are also used.

MESSAGE 1 is sent; receive returns MESSAGE 1 ACK. If sender doesn't receive the ACK within a given time, it will retransmit. If sender finds a bad checksum, it could wait & not send ACK but that's the slow way. So it sends a NAK (not acknowledged) msg, meaning "retransmit now. It was bad."

 Flow Control means handshaking to keep sender from sending more than receiver can digest. Internet tools usually provide this.

 End-to-End and Hop-by-Hop are two alternative ways of applying services such as error control. If a packet is only checksummed at end of path, and the ACK or NAK goes all the way back to sender, that's end to end. If each link recomputes checksums and receipts the transmission, that is hop by hop.

 

Understanding the Design Issues

Managing Connections. Each layer must establish connection with a peer process in another host. Process ID is important.

Transferring data. Most systems have two parallel channels: data channel and control information/urgent data channel. This urgent data might include a stop-process command such as ESC, and is referred to as out-of-band data.

 Handling Errors. Get it from your provider if you can. Lost data might include information about other lost data!

 Preserving Sequence. Either preserve sequence, or reconstruct the proper sequence.

 Fragmenting Data. If user packets are larger than physical packets (for example) they gotta be sliced up. Understanding fragmenting can greatly improve your applications' performance.

 

Defining Network Layers

1. Physical layer: hardware, obviously. It's the network cable & repeaters & gateways etc.

 

Parallel vs. serial, net topology, voltages & currents.
2. Data-Link layer: network interface card.

 

Frames of data, expressed in physical layer's format such as FM signals. Frames are the "boxes" of data over which error checking takes place. Ethernet Frame:

 

64 bits - preamble
48 bits - destination address
48 bits - source address
16 bits - frame type
368 - 12,000 bits - frame data
32 bits - CRC value
3. Network layer: Best example is the Internet Protocol (IP); software usually implements this.

 

Managing routing tables; accounting (costs)
4. Transport layer: Delivers data to the correct application within the destination host.

 

Communicates with peer transport-layer processes on an end-to-end basis-regardless of how lower layers are handling it. Thus it must deal with fragmentation (and reassembly) for the use of the communication sub-net which links the transport layer peers together.

 

A single transport layer can also use multiple network layers, to increase bandwidth. Then it must multiplex and demux the data.
5. Session layer: Handles details such as account names, passwords, authorizations. Each "logging in" event is a session.
Seems like Transport &Session should be reversed. But - no, the user is ABOVE all this, so Session layer is appropriately protecting the Transport layer from being accessed by unauthorized folks.

 

Session layer also has to protect US from IT (transport layer) if it's broken; e. g. by reporting a problem and asking if we want to re start.
Finally if Transport doesn't provide sequencing, Session must do so.
Some environments eliminate Session. In particular, Internet seems to do most ID verification at the Application layer.

 6. Presentation layer: interface between network & printers, file formats, etc. "How the net presents itself to your hdw & softw."

 

Typically includes many data conversion routines. Often implemented in user-callable routine libraries. Example Windows Sockets (Winsock) Application Program Interface (API) is a session/presentation layer.

 

Provides "useful but non-essential" net services; e. g. encryption, compression.
Deals with differing interpretation of character sets, cr/lf issues, tabs, cursor positioning. Often this is handled by a virtual terminal protocol such as X-windows. Telnet is somewhat similar.

 7. Application layer: net-wide user functionalities such as e-mail, distributed databases.

We will write code at Levels 6 and 7. Presentation layer code is anything that is a network problem vs. an application problem. This separation increases reusability.

The Client/Server Model

Client programs request service or information from the server, which, naturally, provides it. A virtual circuit allows designers to act as though a point-to-point connection exists between client and server.

Server usually inits and then goes to sleep, wasiting for a request for service. Clients will usually transmit a request for connection, followed by a request for service.

Iterative and Concurrent servers. Iterative servers handle each request individually, completing one before starting another. Concurrent servers create separate processes to handle each request. Thus a concurrent server has to run on top of an operating server with multitasking capabilities.

 

Practice Quiz for Chapters 1 and 2

1. Name and explain three common network topologies.

 2. Explain the differing roles of repeaters, bridges and routers.

 3. Name the seven layers of the OSI Reference Model and describe the function of each in a sentence.

4. Define Iterative and Concurrent servers for client/server systems.

 Continue onward to Chapter Three

 Return to Table of Contents for Lecture Notes