Group: coordination system
Group: requirement specification
Group: security
Topic: authentication
Topic: client-server model for distributed systems
Topic: communication port
Topic: deadlocks
Topic: decomposition of a system into levels
Topic: device driver
Topic: distributed system security
Topic: encryption
Topic: hardware for interprocess communication
Topic: implementing distributed systems and applications
Topic: Internet
Topic: interprocess communication
Topic: key distribution
Topic: model checker
Topic: programming language standards
Topic: reliable communication
Topic: reliability of distributed systems
Topic: remote procedure call
Topic: requirement specification by behaviors
Topic: resourceful, redundant systems for reliability
Topic: time
Topic: standards
Topic: World-Wide Web
| |
Summary
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
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
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
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
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
Quote: relaxed, extensible text formats and protocols work better than efficient binary ones; easily shared and understood [»boswA10_2005]
| Subtopic: protocol as state machine
Quote: Sing# sends strongly typed messages over bidirectional channels; a state machine defines the channel's protocol [»taneAS5_2006]
| Subtopic: Internet protocols
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
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
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
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
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
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
Quote: micropayments using a probabilistic deposit protocol; greatly reduces bank processing costs [»micaS2_2002]
| Subtopic: reliability
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
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
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
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.
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
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
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
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
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
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
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)
|