Topic: communication protocols

topics > computer science > Group: digital communication

coordination system
requirement specification

client-server model for distributed systems
communication port
decomposition of a system into levels
device driver
distributed system security
hardware for interprocess communication
implementing distributed systems and applications
interprocess communication
key distribution
model checker
programming language standards
reliable communication
reliability of distributed systems
remote procedure call
requirement specification by behaviors
resourceful, redundant systems for reliability
World-Wide Web


A communication protocol specifies the flow and structure of messages. Digital communication involves multiple levels (e.g., Ethernet for hardware, IP for bit format, TCP for reliable communication, and POP for retrieving email). These levels are formally defined by the ISO network standard.

An end-to-end protocol guarantees some property between the source and destination while allowing violations of that property in between.

Protocols may be validated for deadlock avoidance and other properties. Protocols may use timestamps, duplicate detection, and congestion control. (cbb 8/06)

Subtopic: message protocols up

Quote: world-wide, decentralized systems are held together by a message protocol down to the bit-level format [»grayJN6_1986]
Quote: a world-wide, decentralized system is loosely integrated by a message protocol [»grayJN6_1986]
Quote: a communications protocol defines data formatting, error checking, priorities, and device assignments; each manufacturer uses a different one [»washJ3_1978]
Quote: SDLC message frame consists of fields giving destination, message type, error-checking, and data; can send via any station [»washJ3_1978]

Subtopic: end-to-end up

Quote: end-to-end argument--implement functions at the endpoints of a communication system; do not implement within the communication system unless needed for efficiency [»saltJH11_1984]
Quote: limited usefulness for causally and totally ordered communication support (CATOCS); such state problems violate the end-to-end argument [»cherDR12_1993]

Subtopic: secure channel up

Quote: A channel is secure if every message comes from the same process [»wobbE2_1994]
Quote: inexpensive, authenticated channels by multiplexing a secure channel from a process; GetPrin returns the principal that the subchannel speaks for [»wobbE2_1994]

Subtopic: protocol design up

Quote: in network protocols always encode a length and version number, use byte-aligned fields, group flags, and leave room for growth [»neviGV9_2007]

Subtopic: text vs. binary up

Quote: relaxed, extensible text formats and protocols work better than efficient binary ones; easily shared and understood [»boswA10_2005]

Subtopic: protocol as state machine up

Quote: Sing# sends strongly typed messages over bidirectional channels; a state machine defines the channel's protocol [»taneAS5_2006]

Subtopic: Internet protocols up

Quote: Internet multimedia mail transfer protocol for text, voice, image, numbers, lists, etc. [»postJB1_1988]
Quote: Unix sendmail can handle many addressing schemes seen on the internet [»allmE7_1983]

Subtopic: TCP/IP up

Quote: the Internet separates TCP from IP to allow other transports that optimize delay or bandwidth instead of reliability [»clarDD8_1988]
Quote: TCP provides a reliable sequenced data stream while IP provides the basic building block, the datagram
Quote: TCP should have had flow control of both packets and bytes; extra complexity worth the added support for services; e.g., ARPANET [»clarDD8_1988]
Quote: rigorous, detailed, readable specification from real-world traces of three implementations of the TCP/IP protocols and Sockets API; verified with a symbolic model checker [»bishS1_2006]
Quote: define TCP/IP and Sockets with a host labeled transition system; operational semantics, flat definition, few transition premises, no parallel composition, no internal synchronization [»bishS1_2006]
Quote: validated a TCP/IP/Socket specification by model checking actual traces; 97% success for UDP and 91% success for TCP; half of the TCP failures due to test and check problems [»bishS1_2006]
Quote: experimentally derived protocols for TCP/IP and Sockets identified many behavioural anomalies and explicit OS version dependencies [»bishS1_2006]

Subtopic: connectionless protocol, datagram up

Quote: transporting a datagram is the building block of the Internet; 100 bytes minimum, reasonable reliability, addressing; extremely successful [»clarDD8_1988]
Quote: can use connectionless protocols to avoid the high cost of managing the connection; e.g., Ethernet specifies frame communication [»millLJ_1981]
Quote: use datagrams instead of a reliable message service for remote procedure calls; almost always fewer messages [»shriS7_1982]

Subtopic: flow vs. datagram up

Quote: build internets from flows, packet sequences from source to destination; helps resource management and accountability; gateways keep track of soft, flow state [»clarDD8_1988]

Subtopic: ISO layers up

Quote: ISO standard uses a layered model; each layer encapsulates the higher layer's data in a protocol-data-unit [»millLJ_1981]
Quote: ISO Layer 7 is the application layer; provides distributed information services to the end user [»millLJ_1981]
Quote: ISO Layer 6 is the presentation layer; converts data formats, represents and manipulates structured data [»millLJ_1981]
Quote: ISO Layer 5 is the session layer; controls and synchronizes data exchange, handles accounting and access control [»millLJ_1981]
Quote: ISO Layer 4 is the transport layer; reliable end-to-end data transfer with five different qualities of service [»millLJ_1981]
Quote: ISO Layer 3 is the network layer; handles routing, switching and relaying within a single network or an internetwork [»millLJ_1981]
Quote: ISO Layer 2 is the data link layer; for reliable data transfer across a link [»millLJ_1981]
Quote: the tea-leaf reader CRC algorithm for error-detection processes a byte at a time with a look-ahead table; efficient [»grifG7_1987]
Quote: ISO Layer 1 is the physical layer; everything needed for bit transmission across a physical medium [»millLJ_1981]

Subtopic: local vs. remote up

Quote: the Styx communication protocol unifies local and remote resources
Quote: the Styx protocol implements local device drivers with procedure calls and remote devices with mount driver and remote procedure calls [»dorwSM1_1997]

Subtopic: probabilistic protocol up

Quote: micropayments using a probabilistic deposit protocol; greatly reduces bank processing costs [»micaS2_2002]

Subtopic: reliability up

Quote: fate-sharing--can loss state about an entity only if lose the entity itself; e.g., store synchronization information with the hosts and not the gateways, trust the host instead of the network

Subtopic: validating a protocol up

Quote: with state vectors, can validate protocols of millions of states in a couple of minutes; uses exhaustive and partial searching [»holzGJ2_1988]
Quote: a communication protocol is self-stabilizing under nontermination, infinite safe states, and timeouts; fix up sliding window and 2-way handshake [»schnM3_1993]
Quote: check system invariants through compiler extensions; found 34 bugs in a well-tested, cache coherence protocol; short, easily written [»chouA11_2000]

Subtopic: time-based protocol up

Quote: distributed appications generally require timeouts for asynchronous communcation and failures; e.g., TCP [»bishS1_2006]
Quote: synchronized clock message protocol: efficient at-most-once messages and remote procedure calls; no state information or connection from sender [»liskB9_1989]
Quote: reinitialize connection table for at-most-once messages with the timestamp of the latest message that could have existed before the crash [»liskB9_1989]
Quote: use hashed and hierarchical timing wheels for constant time maintenance of timers; practical for thousands of active timers [»vargG12_1997]
Quote: used soft-timers for rate-based clocking of TCP and network polling to avoid interrupts; 25% faster Web server [»aronM8_2000]

Subtopic: timeout up

Quote: without physical time, there is no way to distinguish a failed process from one that is just pausing between events [»lampL7_1978]
Quote: Amoeba uses a sweep algorithm to implement time-outs for its communication protocols; periodically checks for progress
Quote: can't say bye by exchanging messages; instead timeout or ping throughout conversation [»giffDK7_1985, OK]

Subtopic: naming, objects, operations, etc. up

Quote: client/servers need protocols for naming, objects, operations, and transport-level data communication [»cherDR4_1984]
Quote: the lack of standard communication protocols have kept vendors away from distributed network design [»instrumentcontrol]
Quote: client assigns a connection identifier to every message (without server); may reuse ids if not used concurrently [»liskB9_1989]

Subtopic: duplicate detection up

Quote: can avoid connection setup for RPC if server can be sure that messages are new; detect duplicates by storing (globally) recent communications [»liskB9_1989]

Subtopic: congestion up

Quote: avoid congestion by routers setting a bit when congested; return flag to user who must adjust the offered load [»ramaKK5_1990]

Subtopic: uucico networks up

Quote: Unix network by a spool directory containing work to be done; after logging in to the remote machine, the uucico programs agree on protocols [»nowiDA8_1978]

Subtopic: Amoeba protocol up

Quote: Amoeba messages consist of a 32 byte header and up to a 30K byte buffer; will be 64 bytes and 1 gigabyte respectively [»vanrR10_1988]
Quote: Amoeba reply headers with error code, 8 bytes of result, and a returned capability
Quote: Amoeba request headers with capability for object, operation code, 8 bytes for parameters

Subtopic: protocol examples up

Quote: Pilot provides interprocess communication via network streams; same machine optimization, routers, sockets; like PUP and TCP [»redeDD2_1980, OK]
Quote: implement rural information network by a few computers with interactive protocol interpreters [»gammR_1982]
Quote: V kernel IPC file access is efficient enough for file transfer and terminal protocols; depends on high data rate, low delay and errors [»cherDR4_1984]
Quote: construct distributed systems by communication at the procedure call level; simple protocol [»whitJE4_1977]
Quote: BARNACLE uses fixed size packets to simplify the communication protocol [»brooRA_1987]

Related Topics up

Group: coordination system   (8 topics, 217 quotes)
Group: requirement specification   (11 topics, 307 quotes)
Group: security   (23 topics, 874 quotes)

Topic: authentication (93 items)
Topic: client-server model for distributed systems (25 items)
Topic: communication port (40 items)
Topic: deadlocks (21 items)
Topic: decomposition of a system into levels (49 items)
Topic: device driver (15 items)
Topic: distributed system security (17 items)
Topic: encryption (45 items)
Topic: hardware for interprocess communication (31 items)
Topic: implementing distributed systems and applications (41 items)
Topic: Internet (16 items)
Topic: interprocess communication (29 items)
Topic: key distribution (35 items)
Topic: model checker (49 items)
Topic: programming language standards (10 items)
Topic: reliable communication (29 items)
Topic: reliability of distributed systems (35 items)
Topic: remote procedure call (44 items)
Topic: requirement specification by behaviors (16 items)
Topic: resourceful, redundant systems for reliability (38 items)
Topic: time (49 items)
Topic: standards (12 items)
Topic: World-Wide Web
(42 items)

Updated barberCB 2/06
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.