Computer networks -- 2008-2009 -- info.uvt.ro/Course 1

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.

Introduction[edit]

Applications and impact[edit]

  • applications:
    data exchange
    end-to-end, bidirectional, low-latency communication;
    data transfer
    one-way, large amounts of data transmission;
    data distribution
    one source to multiple receivers broadcasting;
    data access
    sharing access to a common database;
    remote control
    interacting with equipment from large distances;
    telecommuting
    joining a virtual office from outside enterprise premises;
    distributed computing
    moving from a centralized computing environment to highly distributed / decentralized / spread environment;
    software as a service
    see Google applications (Docs, Spreadsheet, etc.);
  • impacts:
    business model;
    social and cultural environment;
    personal privacy;
    personal identity;
    freedom of speech;
  • references:
    • Computer Networks, 4th edition -- section 1.1 Uses of Computer Networks;

Standardization[edit]

  • motives;
  • standard types:
    de facto
    • started without any big, generally accepted, plan; adopted by acceptance; usually standardized after implementation;
    • examples: almost all RFC's that are transformed later into STD;
    de jure
    • usually created by standardization committees; carefully planed throughout all the detail levels; and usually never fully implemented;
    • examples: OSI, X.500;
  • standardization organizations:
    • IETF (Internet Engineering Task Force);
    • IRTF (Internet Research Task Force);
    • W3C (World Wide Web Consortium);
    • OASIS (Organization for the Advancement of Structured Information Standards);
    • ANSI (American National Standards Institute);
    • NIST (National Institute of Standards and Technology);
    • ISO (International Organization for Standardization);
    • IEEE (Institute of Electrical and Electronics Engineers);
    • ITU (International Telecommunication Union);
  • references:
    • Computer Networks, 4th edition -- section 1.6 Network Standardization;

General overview[edit]

  • concepts:
    network element
    any device connected to a network, or being part of a network;
    computing element
    usually a device that takes advantage of the network facilities, without contributing to the network infrastructure;
    networking device
    a device that is part of the network infrastructure;
    topology
    physical (or logical) layout and interconnections between different network elements;
    architecture
    • usually it refers to the sum of network topology, computing model, and protocol stack;
    • it could refer to the relationship model between network elements;
    • it could also refer to the network topology;
    medium
    the physical communication channel (wire, light, radio);
    client-server model;
  • references:
    • Computer Networks, 4th edition -- section 1.3 Network Software;

Protocols (part 1)[edit]

Overview[edit]

  • concepts:
    communication
    is a process by which two or more entities exchange information;
    endpoint
    an entity that participates in a communication process;
    sender
    is an entity which has some information (the content) and wants to make it available to another party (or parties);
    receiver
    is the entity which should receive the information addressed to it;
    information (content)
    represents a piece of information;
    data (message)
    it represents the format in which the content is transmitted, it wraps the content, and usually contains identification information for both the sender and the receiver;
    channel
    it represents a third entity, or a mechanism which is used to actually transport the message;
    protocol
    • is an agreement between the communicating parties on how communication is to proceed (from CN4E);
    • a convention / specification / contract that describes rules in which a communication process can take place;
    • it addresses all the topics described above;
  • aspects:
    syntax
    rules that govern the structure, encoding and decoding process of a message;
    semantics
    rules that govern the interpretation of a message (a transition from data to information;
  • design principles:
    effectiveness
    • the requirement to involve as less human effort as possible (at least in the long term);
    • it usually also implies useful / economic usage of resources;
    reliability
    • guaranteeing loss-less data transmission;
    • assuring a certain level of service quality;
    resiliency
    • addressing issues that (even though unlikely) could happen in the process of communication (network failures, security attack, etc.);
    • it usually implies automatic recovery mechanism;
  • references:
    • Computer Networks, 4th edition -- section 1.3 Network Software;

Classification[edit]

  • ordered vs unordered:
    ordered
    • it implies that the order in which the data is received, is the same one in which the data was sent;
    • it is applicable in cases when there is a relation between transmitted data (i.e. in order to process a piece of received data we also need all the data which was sent before that);
    • it is mainly used for stream oriented protocols;
    • examples: voice or video transmission: assuming that the media content is split in blocks, we must present (play) them in the correct order;
    unordered
    • it does not imply that the order in which data is received, is the same one in which it was sent;
    • its main application is for those cases when there is no relation between transmitted data, or when the order is not important;
    • it is mainly used for datagram oriented protocols;
    • examples: large files downloads, provided that we split the files in blocks, it does not matter the order in which we receive those blocks, as long as we receive all of them, and we know the place (offset) of each one;
  • reliable vs unreliable:
    • reliability and unreliability of protocols does not refer to the fact that received data is (in part) the same that was sent, or otherwise said that it has or hasn't any errors; thus it is assumed that the received data is correct and does not contain any errors;
    reliable
    • it implies that all data sent is received with no loss;
    • it is usually used in conjunction with connection oriented, stream oriented and ordered communication / protocols;
    • again for file transfer it is mandatory to receive the entire content of the file;
    unreliable
    • it does not imply that all the data sent is received, thus parts of the sent data could be lost;
    • it is usually used in conjunction with connection-less, datagram oriented and unordered communication / protocols;
    • voice and video transfer could be done through unreliable protocols, because if a small portion of data is missing, the end-users would not notice, and even if they notice, they can reconstruct the missing information from the context;
  • connection-oriented vs connection-less:
    connection-oriented
    • a connection-oriented communication or protocol implies that the entities involved in the process establish a common session (connection), and that all further data exchange is linked to this session;
    • it implies three phases:
    • session (connection) establishment (opening) phase in which all entities agree to exchange data, (and usually establish an identifier for the resulting session);
    • data exchange phase in which data is sent and received (usually tagged with the session identifier);
    • session (connection) termination (closing) phase, in which no entity sends data, but ensures it has received all sent data, followed by destruction of the session;
    connection-oriented communication does not imply either data ordering or reliability, but in most connection-oriented protocols they are provided;
    connection-less
    • in contrast to the previous definition, a connection-less communication does not imply any relation between exchanged data, each exchange operation is treated individually;
    • usually conection-less protocols are unordered and unreliable;
  • byte-oriented vs message-oriented:
    • the main distinction between stream and datagram oriented protocols is the way they treat the exchanged data;
    byte-oriented
    • assumes no data boundry, treating the exchanged information as a flow of octets obtained by concatenating the sent data;
    • this means that in order to exchange an amount of data, the sender could execute a different number of operations than the receiver;
    message-oriented
    all data sent / received in one operation is seen as a whole, obtaining an implicit data boundry. So this means that the data sent in one operation should be read in one operation;
  • request-reply
    • this model implies that one part plays the role of the sender, while the other one the role of the receiver;
    • the data flow is the following: the sender sends a request and waits for the reply from the receiver; in turn the receiver waits for a request from the sender, executes the requested operations, and sends a reply;
  • references:
    • Computer Networks, 4th edition -- section 1.3 Network Software;

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