Computer networks -- 2008-2009 -- 5

From Wikiversity

Quick links: front; agenda; courses 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13; examination.

Important! Please note that the current work serves mainly as general guidance and discussion topics, and is by no means the reference material for the course. For further information please consult the dedicated section.

OSI model[edit]

  • overview:
    • the OSI (Open Systems Interconnection) is a theoretical model;
    • it is an abstract model (description) for layered protocol stacks;
    • it was adopted by ISO in 1983 and revised in 1995;
    • it is a reference model used in comparisons with other models;
    • it is not an network architecture, only protocol stack model;
    • it is composed of:
      • a model for the seven layered protocols; (abstract part;)
      • complete description of each of the seven layered protocols; (concrete part;)
  • layers design principles (quoted from Computer Networks, 4th edition -- section 1.4.1 The OSI Reference Model):
    • A layer should be created where a different abstraction is needed.
    • Each layer should perform a well-defined function.
    • The function of each layer should be chosen with an eye toward defining internationally standardized protocols.
    • The layer boundaries should be chosen to minimize the information flow across the interfaces.
    • The number of layers should be large enough that distinct functions need not be thrown together in the same layer out of necessity and small enough that the architecture does not become unwieldy.
  • layers:
    • physical;
    • data link;
    • network;
    • transport;
    • session;
    • presentation;
    • application;

Physical layer[edit]

  • overview:
    • its the lowest of the layers;
    • its atomic data (so called PDU) is a bit (most of the times) or a couple of bits;
    • it interconnects networking devices;
    • it manages the physical transmission medium;
    • it is based on physics and electronics;
  • physical medium types:
    • guided vs. unguided;
    • shared vs. unshared; (broadcast vs. point-to-point;)
    • simplex vs. duplex (half and full);
  • responsibilities:
    • describe the mechanical or electrical aspects of the transmission medium;
    • negotiate (low level) transmission parameters (i.e. baud rate, duplexing) with the other devices;
    • transform bits (or bytes) into electrical signals;

Data link layer[edit]

  • overview:
    • it should wrap the physical layer into a producer or consumer of blocks of data;
    • it interconnects networking elements that are found on the same physical network (i.e. local LAN) (node-to-node delivery);
    • the PDU is called frame;
    • usually implemented in hardware for efficiency;
  • responsibilities:
    • present a communication channel free of transmission errors (this implies only that a received message is the same as it was sent; it does not imply that messages could not be dropped or lost;)
    • it should control the access to the physical layer (both in case of broadcast or shared physical mediums, and in case of half duplex mediums);
    • (optionally) it could offer reliable services; (most often by using acknowledgment frames;)
    • (optionally) it could also offer flow control services; (usually by dropping frames that don't fit into the available buffer;)
    • it is usually connection-less, unreliable, message-oriented;
  • sub-layers:
    • MAC (Media Access Control) -- abstracts the interaction with the physical device; concerned with timing and controlling the access to the physical layer;
    • LLC (Logical Link Control) -- abstracts the interaction between different network elements; concerned with more higher concerns like error handling, reliability, addressing, parameter and higher layers configuration negotiation;
  • examples:
    • usually physical and data link layers are interdependent, and thus most specifications (like Ethernet, GSM, USB, etc.) target both of them;
    • PPP (Point to Point Protocol);
    • SLIP (Serial Line Internet Protocol);
    • HDLC (High-level Data Link Control);

Network layer[edit]

  • overview:
    • moving the packets between networks from source to destination (end-to-end delivery);
    • it interconnects network elements situated in any (interconnected) network;
    • the PDU is usually called packet;
    • usually implemented as operating system functions, but could also be implemented in hardware for greater efficiency;
  • responsibilities:
    • (uniquely and globally) addressing network elements (nodes);
    • (optionally) interconnecting different network types, thus translating between network addresses;
    • segmentation and reassembly;
    • establishing the paths each packet must take;
    • flow control;
    • congestion detection and prevention;
    • providing a certain (primitive level of) quality of service;
    • usually either:
      • connection-less, unreliable, message-oriented;
      • connection-oriented, reliable, message-oriented;
  • examples:
    • IP (Internet Protocol);
    • IPX (Internetwork Packet Exchange);

Transport layer[edit]

  • overview:
    • based on the network layer it should enhance the services provided to upper layers;
    • it interconnects services (or processes) that live on different nodes (maybe on different networks);
    • the PDU is usually called either segment or datagram;
    • usually implemented in the operating system (for efficiency), but could also be implemented in user applications;
  • responsibilities:
    • service addressing;
    • multiplexing (multiple services for the same node);
    • (optionally) error control (though it is already provided by data link layer);
    • (optionally) segmentation and reassembly (again already provided by the network layer); (i.e. this time segmentation of byte-streams into smaller segments, that could again be splitted at the network layer;)
    • (optionally) sequencing;
    • (optionally) reliability;
    • (optionally) flow control;
    • (optionally) congestion control;
    • (optionally) quality of service;
    • (optionally) virtual circuit management;
    • usually either:
      • connection-oriented, reliable, stream-oriented;
      • connection-less, unreliable, message-oriented;
  • according to OSI model there are 5 classes of protocols:
    segmentation, reliability;
    segmentation, reliability, multiplexing;
    connection-oriented, segmentation, reliability, multiplexing;
    connection-oriented or connection-less, segmentation, reliability, multiplexing;
  • examples:
    • TCP (Transmission Control Protocol);
    • UDP (User Datagram Protocol);
    • SCTP (Stream Control Transmission Protocol);
    • SPX (Sequenced Packet Exchange);

Session layer[edit]

  • overview:
    • it wraps the transport layer in order to further enhance its facilities;
    • there is no generally adopted name for the PDU;
    • usually implemented in user applications;
  • responsibilities: in general it manages the session and associated issues like:
    • end-point authentication;
    • encryption;
    • compression;
    • connection re-establishment;
    • transaction-like management (check-points, transaction commit or rollback);
    • synchronization between multiple related sessions (i.e. audio-video synchronization for a multi-media protocol);
  • (possible) examples:
    • SSH (Secure Shell);
    • TLS/SSL (Transport Layer Security / Secure Sockets Layer);
    • HTTP (Hypertext Transfer Protocol) (as it is used by most web-services today);
    • RPC (Remote Procedure Call);

Presentation layer[edit]

  • overview and readabilities:
    • built upon session layer, it should eliminate encoding differences on different machines;
    • it could present different service primitives based on specific particularities of each protocol (i.e. file transfer, console control, job management, etc.);

Application layer[edit]

  • anything built upon previous layers;

TCP/IP model[edit]

  • overview:
    • it is a protocol stack;
    • it gives specific details about its implementation;
    • one of its layers (host-to-network) is left abstract;
    • today it could be seen as an architecture (because most networking equipment and software is built specifically for it);
    • it is an evolution of ARPANET (Advanced Research Projects Agency Network);
    • it was first defined in 1974;
  • design principles:
    • resilient to network failures, in which case it should route around the problem;
    • thus it should allow redundancy in the network;
    • flexibility in order to allow many application models and requirements;
  • layers:
    • host-to-network layer;
    • network (internet) layer;
    • transport layer;
    • application layer;

Host-to-network layer[edit]

  • overview:
    • any protocol that can handle reasonable size messages, could be used as a host-to-network layer protocol;
    • the PDU is named frame;
    • usually implemented in operating systems;
  • responsibilities:
    • packet delivery inside the local network;
    • (optionally) device addressing (in case of shared or broadcast mediums);
    • (optionally, but highly recommended) error control;
    • it should be connection-less, (maybe) unreliable, message-oriented;
  • examples:
    • Ethernet;
    • PPP (Point-to-Point Protocol);
    • PPPoE (Point-to-Point Protocol over Ethernet);
    • SLIP (Serial Line Internet Protocol);
    • IPoAC (IP over Avian Carriers);
    • VPN (Virtual Private Network);

Network layer[edit]

  • overview:
    • moving packets from one host to another one inside the same network or (most likely) between networks;
    • the PDU is named packet;
    • usually implemented in operating system (but could be also implemented in hardware for efficiency);
  • responsibilities:
    • addressing (uniquely) nodes (hosts) (through IP address);
    • segmentation and reassembly;
    • congestion control;
    • it is connection-less, unreliable, message-oriented;
  • it is composed of multiple protocols:
    • IP (Internet Protocol) -- the core protocol;
    • helper protocols:
      • ICMP (Internet Control Message Protocol);
      • IGMP (Internet Group Management Protocol);
      • ARP (Address Resolution Protocol);
      • RARP (Reverse Address Resolution Protocol);
      • IPSec (IP Security);

Transport layer[edit]

  • overview:
    • it interconnects services (processes) that live on hosts;
  • responsibilities:
    • service addressing (through port numbers) (both TCP, UDP and SCTP);
    • segmentation and reassembly (in case of byte-oriented protocols) (TCP);
    • reliability (TCP, SCTP);
    • sequencing (TCP, SCTP);
    • flow control (TCP, SCTP?);

Application layer[edit]

  • the same as in the case of OSI model;

OSI vs TCP/IP comparison[edit]

  • similarities:
    • layering and and the principle of each layer having one (or a small number of) responsibilities;
    • there should be minimal overlapping of responsibilities between layers;
    • protocols should be independent of the stack they are used in (this allows portability and interoperation);
    • some layers are similar (network, transport and application);
    • both can be used as reference models;
    • in both cases there is some overlap between layers (i.e. error control reappears in most layers);
  • dissimilarities:
    • OSI is a more theoretical model (although there are specifications for real protocols);
    • TCP/IP is a field-proven model (implemented and then thoroughly specified);
    • some layers are coalesced into a single one (physical and data link layer are subsumed by the host-to-network layer);
    • some OSI layers are moved into the application layer (session and presentation);
    • OSI specifies and distinguishes between protocols, interfaces and service primitives;
    • TCP/IP specifies only the protocols;
    • complexity: OSI is much more complex than TCP/IP;
  • references:
    • Computer Networks, 4th edition -- section 1.4.3 A Comparison of the OSI and TCP/IP Reference Models;
    • Computer Networks, 4th edition -- section 1.4.4 A Critique of the OSI Model and Protocols;
    • Computer Networks, 4th edition -- section 1.4.5 A Critique of the TCP/IP Reference Model;

Other models[edit]

This section is optional and is put here mostly for historical and comparison reasons.

Comparisons with OSI[edit]

  • OSI (Open Systems Interconnection);
  • DECnet / DNA (DIGITAL Network Architecture);
  • SNA (System Network Architecture);
  • DPA (Department-of-Defense Protocol Architecture) (precursor of ARPANET and TCP/IP);
7) Application 8) User 7) Transaction services 4) Process / application
7) Network administration
6) Presentation 6) Network application 6) Presentation services
5) Session 5) Session control 5) Data flow control
4) Transport 4) Communication (task-to-task) 4) Transmission control 3) Host-to-host
3) Network 3) Routing 3) Route control 2) Inter-network
2) Data link 2) Data link 2) Data link control 1) Network access
1) Physical 1) Physical 1) Physical control

DECnet (part of DNA)[edit]

  • overview:
    • developed by DEC;
    • part of the DNA (DIGITAL Network Architecture);
    • initially released in 1975, amended further; (in total 5/7 phases);
    • started with four layers, further made compatible with OSI;
  • layers:
    Physical layer
    • concerned with the establishment of physical connections, sending and receiving bit strings;
    • it uses the EIA RS-232-c standard between the DTE (Data Terminal Equipment) and DCE (Data circuit-terminating equipment);
    Data link layer
    • it ensures error free transmission;
    • it ensures ordered transmission;
    Routing layer
    • it ensures the data delivery between the sender and the receiver;
    • it constructs the path between the destination and the source based on individual link between adiacent nodes;
    • it tries to detect a minimum cost path;
    Task-to-task layer
    • it involves connection management; data flow control; segmentation and reassembly; error detection;
    • it is the core layer being responsible for the reliability and efficiency of the communication process;
    Session control layer
    • manages logical connections for applications;
    Network application layer
    • it defines some primitives that shall be used by upper levels;
    • it exports functions for file access, file transfer, terminal connectivity, etc.;
    Network administration layer
    • this layer provides primitives that allow the administrators to manage the entire network;
    User layer
    • it is addressed for application specific protocols;
    • it uses the services of the network application and administration layers;

SNA protocol stack[edit]

  • overview:
    • SNA (System Network Architecture), as DNA is a complete network architecture, from which we are only interested in the protocol layers;
    • developed by IBM (International Business Machines Corporation);
    • initially released in 1974;
  • concepts:
    • (taken with minimal editing from previous year course);
    • node types:
      • terminals;
      • terminal controllers;
      • front-end processors;
      • host computers;
    • domain: a group of nodes;
    • NAU -- Network Addressable Unit:
      • LU (logical units) -- applications, subsistems, terminals connecting the users;
      • PU (physical units) -- one for each node, managing the host node;
      • CP (control point) -- one for each host computer, with control the functions of the PU;
  • layers:
    Physical control
    again with the purpose to exchange bit strings -- by using the RS-232-C protocol.
    Data link control
    assures the correct data exchange between two nodes -- by using SDLC (Synchronous Data Link Control) or Token Ring protocol;
    Path control
    • establishes a path between source and destination NAUs;
    • because an IBM network is hierarchical (split in subnetworks) we have three sub layers:
      • virtual routing -- establishing the global routing from subnetwork to subnetwork;
      • explicit routing -- the route inside each subnetwork;
      • parallel paths -- computes different paths to ensure a better efficiency;
    Transmission control
    end-to-end connection service, plus encryption;
    Data flow control
    • manages the logical connections;
    • synchronizes the exchange speed between two nodes;
    Presentation services
    • handles various data transformations (like compression / decompression);
    • coordinates resource sharing;
    Transaction services
    offers services for data distribution, document exchange, file management;

The current page is (in parts) a recompilation of the following pages (from previous year):