Hubbry Logo
Internet Stream ProtocolInternet Stream ProtocolMain
Open search
Internet Stream Protocol
Community hub
Internet Stream Protocol
logo
8 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Internet Stream Protocol
Internet Stream Protocol
from Wikipedia
Prototype telephone for the Internet Stream Protocol

The Internet Stream Protocol (ST) is a family of experimental protocols first defined in Internet Experiment Note IEN-119 in 1979,[1] and later substantially revised in RFC 1190 (ST-II) and RFC 1819 (ST2+).[2][3][4] The protocol uses the version number 5 in the version field of the Internet Protocol header, but was never known as IPv5. The successor to IPv4 was thus named IPv6 to eliminate any possible confusion about the actual protocol in use.

History

[edit]

The Internet Stream Protocol family was never introduced for public use, but many of the concepts available in ST are similar to later Asynchronous Transfer Mode protocols and can be found in Multiprotocol Label Switching (MPLS). They also presaged voice over IP.

ST arose as the transport protocol of the Network Voice Protocol, a pioneering computer network protocol for transporting human speech over packetized communications networks, first implemented in December 1973 by Internet researcher Danny Cohen of the Information Sciences Institute (ISI) as part of ARPA's Network Secure Communications (NSC) project.[5]

First specified in 1979, ST was envisioned as a connection-oriented complement to IPv4, operating on the same level, but using a different header format from that used for IP datagrams. According to IEN-119,[1] its concepts were formulated by Danny Cohen, Estil Hoversten, and James W. Forgie. The protocol was notable for introducing the concepts of packetized voice (as used by voice over IP), a talkspurt (a continuous segment of speech between silent intervals), and specified delay and drop-rate requirements for packet services. It was implemented in the Voice Funnel.

Its second version, known variously as ST-II or ST2, was drafted by Claudio Topolcic and others in 1987 and specified in 1990.[3] It was implemented in the Terrestrial Wideband Network and its successor, the Defense Simulation Internet, where it was used extensively for distributed simulations and videoconferencing. This version later formed the core technology for transporting voice calls and other real-time streams within Canada's Iris Digital Communications System.

The final version of ST2, which was also known as ST2+, was drafted by the IETF ST2 Working group[6][7] and published in 1995 as RFC 1819. ST2 distinguishes its own packets with an Internet Protocol version number 5, although it was never known as IPv5.[4]

ST uses the same IP address structure and the same link layer protocol number (EtherType 0x800) as IP.

In datagram mode, ST packets could be encapsulated with IP headers using protocol number 5.[8]

References

[edit]

Bibliography

[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
The Internet Stream Protocol (ST) is a family of experimental network protocols designed to enable efficient, real-time delivery of multimedia data streams, such as voice and video, over packet-switched internets by providing end-to-end resource reservations, guaranteed data rates, and controlled delay characteristics. Initially proposed in 1979, ST operates as a connection-oriented protocol at the internet layer, supporting both unicast and multicast transmissions through simplex streams directed to single or multiple destinations, while integrating with IP via a distinct protocol number (5) and version identifier (5). The protocol's development began with the original ST specification in Internet Experiment Note (IEN) 119, authored by James W. Forgie at Bolt Beranek and Newman (BBN), which emphasized abbreviated packet headers for efficiency and pre-stream negotiation of traffic parameters to ensure quality of service (QoS) for applications like speech conferencing. This was followed by ST-II in RFC 1190 (1990), which introduced enhancements such as improved multicast support via directed trees, a robust Stream Control Message Protocol (SCMP) for reliable setup and teardown, and mechanisms for dynamic resource adjustment and failure recovery, decoupling it from earlier dependencies like access controllers. The final iteration, ST2+ in RFC 1819 (1995), refined these elements further by the IETF ST2 Working Group, adding features like FlowSpec negotiation for QoS classes (e.g., predictive or guaranteed service), group-based bandwidth sharing, and interoperability improvements based on implementation experience, while maintaining its experimental status. Although never advanced to Internet Standard due to challenges in scalability and the emergence of alternatives like (), ST pioneered concepts in real-time internet transport and that influenced subsequent protocols. Its use of IP version 5 highlighted early efforts to extend IP for specialized services, but it saw limited deployment and was eventually superseded by more flexible approaches in modern IP networks.

Introduction

Overview

The Stream Protocol (ST) is an experimental network protocol suite developed to enable the transmission of real-time, packet streams over IP networks, particularly for continuous media such as audio and video. It encompasses variants including the original ST defined in 1979, ST-II in 1990, and ST2+ in 1995, each building on the prior to provide end-to-end resource reservation for guaranteed performance in packet-switched environments. Unlike traditional best-effort protocols, ST operates at the IP layer to support applications requiring predictable delivery, such as voice conferencing and streams. At its core, ST defines "streams" as unidirectional flows of packets from a source to one or more destinations, organized as paths or trees with explicit timing constraints to mimic real-time delivery. These streams involve during setup, including bandwidth reservation and delay bounds, to ensure sustained data rates and controlled latency dispersion essential for time-sensitive data like speech talkspurts. Control mechanisms manage stream establishment, modification, and teardown, allowing dynamic adjustments such as adding targets or altering flow specifications without disrupting ongoing transmission. In contrast to unicast protocols like TCP, which prioritize reliability through error correction and retransmissions, ST emphasizes multicast efficiency and real-time guarantees without built-in reliability, accepting potential to minimize delay. Originating in the late 1970s as an extension to IP for ARPA-funded research on packet voice, ST served as a precursor to contemporary streaming protocols by pioneering network-layer support for over internets.

Design Goals

The Internet Stream Protocol Version 2 (ST-II) was primarily designed to support continuous media , such as audio and video, by providing end-to-end guaranteed service with controlled data rates and delays suitable for real-time applications like voice and video conferencing. This focus addressed the limitations of existing protocols like UDP, which offered only best-effort delivery without mechanisms for ensuring timeliness or consistency in packet . By prioritizing low latency and control, ST-II aimed to deliver packets with predictable timing, minimizing dispersion through specified parameters in its FlowSpec, such as limits on delay and accumulated delay variance. A key objective was to enable efficient for group communications, utilizing directed trees and network-layer capabilities to support one-to-many data transmission without redundant bandwidth usage. This was complemented by resource reservation requirements, which allocated bandwidth and buffer space during stream setup to guarantee quality-of-service (QoS) in bandwidth-constrained networks, reducing congestion and risks. Unlike UDP's lack of reservation, ST-II's approach ensured dedicated resources for streams, enhancing reliability for time-sensitive data. ST-II emphasized simplicity in its architecture over comprehensive reliability features, accepting potential in favor of timeliness to better serve real-time needs. Control messages relied on retransmission rather than end-to-end acknowledgments, and data forwarding used host identifiers to streamline processing, positioning ST-II as a alternative to more complex protocols while still providing essential QoS guarantees.

History

Early Development

The Internet Stream Protocol (ST) originated in 1979 as an experimental effort to support real-time data streaming, particularly for voice communications, in packet-switched networks. Proposed by James W. Forgie at under the Internet Program, it extended the to provide guaranteed bandwidth and bounded delay for continuous streams, addressing limitations of datagram-based delivery for applications like speech conferencing. The initial prototype, known as ST or , was developed for testing on wideband networks such as , focusing on audio streaming experiments to evaluate flow control and traffic management for packet voice. These early tests emphasized packet timing mechanisms to limit end-to-end delay to under 250 milliseconds and reduce through receiver-side smoothing buffers, ensuring natural conversational flow at data rates of 40-50% of peak capacity for typical speech. In the late 1980s, the protocol evolved into ST2 through collaborative work by the CIP Working Group, incorporating IP encapsulation (using protocol number 5) and capabilities for broader testing across diverse environments. Key contributors included Steve Deering, whose research on at PARC influenced the integration of network-layer trees to support multi-destination streams. A primary challenge in this evolution was synchronizing real-time streams over heterogeneous networks with varying capacities and delays; ST2 addressed this via FlowSpec parameters for resource reservation, timestamp negotiation, and pre-allocation of bandwidth to maintain low packet variance and prevent congestion.

Standardization Efforts

The initial formalization of the Internet Stream Protocol within the IETF occurred through efforts leading to the publication of RFC 1190 in October 1990, which defined Version 2 (ST-II) as an experimental protocol for providing end-to-end guaranteed service at the IP layer. This document, authored by Claudio Topolcic, built on earlier experimental work and was developed by the IETF's CIP , marking the protocol's entry into the standardization process without a dedicated working group at that stage. In 1993, the IETF chartered the Stream Protocol Version 2 (ST2) Working Group to refine and clarify the ST-II specification, addressing issues such as , error correction, and for audio-visual applications. The group produced RFC 1819 in August 1995, specifying ST2+ as a revised experimental protocol that introduced enhancements including mechanisms (e.g., via ReasonCode for failures) for improved and dynamic stream modifications through CHANGE messages for better flow control. Key contributors to this effort included editors Lou Berger and Luigi Delgrossi, with input from IETF participants like Bob Braden, who influenced related resource reservation discussions. Despite these advancements, ST2 maintained experimental status due to limited widespread deployment, as the rapid growth of the best-effort model and the emergence of competing technologies like favored simpler, soft-state approaches over ST2's hard-state reservations. Active development concluded with the ST2 Working Group's closure following the 1995 RFC, and no further standards-track updates were pursued by the late 1990s.

Technical Specifications

Protocol Architecture

The (ST), encompassing versions such as ST-II and ST2+, operates as a network-layer protocol designed to provide guaranteed quality-of-service (QoS) for real-time data streams, positioned parallel to the (IP) at version 5. It employs a layered model consisting of a data transfer component (ST) for simplex packet flows and a control component (Stream Control Message Protocol, or SCMP) for reliable stream management over unreliable networks. This integrates seamlessly with IP by utilizing the same addressing scheme and supporting encapsulation within IP packets (using protocol number 5) to traverse non-ST-aware routers, ensuring compatibility without requiring a full TCP-like transport stack. Core components include stream setup, initiated by the origin host through SCMP control messages that propagate hop-by-hop to reserve resources along the path; a data plane that forwards user data packets efficiently using pre-negotiated identifiers; and endpoint management, where origins create streams and targets can accept, refuse, or dynamically join/leave via SCMP primitives. Routers and hosts act as ST agents, maintaining per-stream state to enforce reservations, while the Local Resource Manager (LRM) at each agent handles allocation of bandwidth and buffers. This setup supports unidirectional streams from a single origin to multiple targets, avoiding the overhead of bidirectional connections. The protocol accommodates both and topologies through tree-shaped paths, with optimized via network-layer group addresses (e.g., ranges like 224.1.0.0–224.1.255.255) where available, reducing bandwidth duplication. Streams are identified by globally unique Stream IDs (SIDs), combining origin address and a host-generated identifier for fast forwarding without full address lookups. Interaction with underlying networks involves ST agents in routers selecting paths via integrated functions, negotiating hop identifiers for efficiency, and ensuring end-to-end guarantees across heterogeneous subnets supporting resource reservation.

Key Mechanisms

The Internet Stream Protocol Version 2 (ST2) employs a resource reservation mechanism that establishes end-to-end through a series of control packets, primarily the CONNECT message, which propagates from the stream origin to the designated targets along the intended path. This setup invokes the Local Resource Manager (LRM) at each intermediate node to allocate specific resources, such as bandwidth for data transmission and buffer space to handle varying network conditions, based on a Flow Specification (FlowSpec) that defines the required parameters like maximum packet size, transmission rate, and priority. Once reservations are confirmed via ACCEPT messages returning to the origin, the becomes active, ensuring guaranteed delivery without overcommitment of resources at any hop. For efficient multicast delivery to multiple receivers, ST2 constructs a source-specific during the initial CONNECT phase, where each node forwards the request to its neighbors toward the using an integrated function that avoids cycles and minimizes path redundancy. is achieved through DROP or DISCONNECT control packets, which remove unnecessary branches when leave the group, while joining algorithms enable dynamic additions via JOIN messages that extend the to new receivers without disrupting existing flows, thereby optimizing bandwidth usage in group communications. Timing and synchronization in ST2 are managed through embedded timestamps in data packets, which indicate the intended transmission time relative to the stream's creation, allowing receivers to reconstruct the original timing and buffer content accordingly. The FlowSpec further specifies maximum end-to-end delay and delay jitter tolerances, enabling applications to control playback rates and mitigate variations introduced by network queuing or transmission delays, thus supporting smooth real-time rendering of continuous media like audio or video. Error handling in ST2 prioritizes timeliness over reliability, deliberately omitting retransmissions to avoid introducing additional delays in real-time streams; instead, it tolerates occasional as inherent to best-effort networks, with applications expected to implement (FEC) at higher layers if needed for enhanced robustness. Control messages such as REFUSE or report failures like resource unavailability or path disruptions, prompting the origin to reroute or terminate the stream, while reason codes provide diagnostic details without attempting recovery within the protocol itself.

Message Formats

The Internet Stream Protocol (ST) employs distinct message formats for control and data transmission to manage real-time streams with resource reservations. Control messages handle stream setup, modification, and teardown, while data messages carry the payload with minimal overhead. These formats evolved across versions, with ST-II (defined in RFC 1190) introducing hop-by-hop identifiers and ST2+ (defined in RFC 1819) simplifying structures by removing such identifiers and adding authentication support. Control messages in ST begin with a common header that includes an 8-bit to identify the type, a 16-bit TotalBytes field for the message length (padded to multiples of 4 bytes), a 16-bit for transaction sequencing, a 16-bit LnkReference to link related requests, the sender's 32-bit , and a 16-bit for integrity. Key types include the INVITE equivalent, implemented as CONNECT ( 4 or 5 depending on version), which initiates setup by specifying targets, flow specifications, and options like no-recovery flags. ACCEPT ( 1) confirms setup with a similar header plus a 32-bit StreamCreationTime , while REFUSE ( 11 or 15) rejects or terminates streams, including an 8-bit ReasonCode (e.g., for resource unavailability or flow mismatch). The ID (SID) in ST2+ is a 48-bit identifier formed by combining the 32-bit origin with a 16-bit , uniquely identifying streams globally across messages. In ST-II, streams are identified by a 16-bit hop-by-hop ID (HID) in data packets. Sequence numbers appear as monotonically increasing 16-bit references in control headers to ensure ordering. In ST-II, timestamps in data packets use a 64-bit NTP-style format if the T flag is set. ST2+ control PDUs employ 32-bit timestamps for creation time. Flags in the header, such as the S-bit for disabling recovery or N-bit for no-recovery modes, provide options for behavior. Data packets in ST prioritize low latency with a compact structure. In ST-II, the header is 8 bytes, comprising a 4-bit version (2), 3-bit priority, 16-bit TotalBytes, 16-bit hop-by-hop ID (HID, reserved values 0-3), and 16-bit , followed by optional 64-bit timestamps if flagged. ST2+ extends this to a 12-byte header, including a protocol ID, version, 3-bit priority for discard decisions (RTP-like), 16-bit length, 16-bit UniqueID and 32-bit origin (forming the 48-bit SID), and , with payload type indicators left to higher layers for application-specific data. This design adapts RTP-inspired fields for ST, minimizing overhead to 12 bytes while supporting encapsulation in IP (protocol number 5). Variations between ST-II and ST2+ reflect refinements for efficiency and . ST-II includes HID fields for per-hop identification in trees, absent in ST2+ to reduce complexity. ST2+ introduces fields in control messages, such as join levels (0-2) via J/N-bits, to enhance over ST-II's optional mechanisms, while both versions maintain backward-compatible structures for core types like CONNECT, ACCEPT, and REFUSE.
FieldSize (bits)DescriptionST-II SpecificsST2+ Specifics
8Message type (e.g., 1=ACCEPT, 4=CONNECT)Includes HID-APPROVE (10)Includes JOIN (8), JOIN-REJECT (9)
TotalBytes16Total length in bytesPadded to 4-byte multiplesSame, with SID integration
16Sequence for orderingMonotonic per senderTransaction uniqueness
SID48 (ST2+); 16 (HID in ST-II data)Global stream identifier16-bit HID in data; 80-bit Name in control16-bit UniqueID + 32-bit origin IP
64 (ST-II data); 32 (ST2+ control)Synchronization (NTP-style)64-bit in data packets if T-bit set32-bit in control PDUs
Flags (e.g., S-bit)VariableOptions like no-recoveryH-bit for HID, P-bit for PTPN-bit for no-recovery, J/N for auth
16Header integrityCovers entire packetSame, minimal overhead focus

Implementations and Applications

Software Implementations

The reference implementation of the Stream Protocol Version 2 (ST2), also known as ST-2, was developed as part of the MultiG research project at the , where it was integrated into the BSD Unix kernel to evaluate performance and compatibility with existing networking stacks. This implementation focused on stream setup, resource reservation, and tree-shaped delivery paths, requiring modest modifications to the BSD networking model while maintaining transparency to most applications. It leveraged the protocol's native support for streams in experimental setups. Open-source efforts around ST2 were limited but included extensions in Unix-like systems, such as the Berkeley implementation. These extensions emphasized modularity, enabling developers to interface ST2 with higher-layer protocols without altering core IP routing, though they relied on custom kernel patches that were not widely distributed. Commercial adaptations of ST2 appeared in early video and multimedia tools during the 1990s, with implementations available for platforms including Digital UNIX, AIX, , Macintosh, PCs, , and . For instance, these were used in experimental systems for conferencing, such as the BERKOM MMTS project by , which incorporated ST2 for reliable stream delivery in video applications. However, adoption remained niche due to the protocol's experimental status. Implementation challenges primarily stemmed from ST2's requirement for a parallel alongside IP, leading to resource overhead and compatibility issues with evolving IP implementations that prioritized . The separation of control (setup) and flows in ST2 complicated recovery, necessitating protocol rework in kernels like BSD, and non-supporting routers reduced end-to-end guarantees to IP-like behavior. As IP stacks advanced toward integrated QoS solutions like , few ST2 codebases survived, with most archived or abandoned by the late 1990s.

Practical Use Cases

The Internet Stream Protocol (ST-II) found primary application in early experimental environments, particularly for audio conferencing over research networks in the late and early . Initial deployments supported real-time voice transmission, such as in the Terrestrial Wideband Network (TWBNet) and Atlantic Satellite Network (), where bandwidth reservation mechanisms enabled low-latency audio streams for collaborative sessions. These experiments demonstrated ST-II's capability to deliver guaranteed performance for interactive audio, paving the way for broader trials. Video streaming trials leveraged ST-II's resource reservation features to integrate with protocols like the Packet Video Protocol (PVP), facilitating delivery of video data in controlled settings. For instance, the BERKOM Multimedia Transport System (MMTS) project, sponsored by in , employed ST-II as its core protocol for teleservices including video conferencing and multimedia mailing, achieving end-to-end QoS for heterogeneous streams. These trials highlighted ST-II's addressing for efficient video distribution to multiple receivers while maintaining bounded delay. In network research contexts, ST-II served as a for (QoS) mechanisms, simulating real-time constraints in packet-switched environments. Researchers utilized its flow specification capabilities to evaluate for time-sensitive applications, such as distributed simulations and scientific data visualization, where streams required precise bandwidth and control. This enabled studies on end-to-end guarantees across internets, informing later protocols like . Despite these applications, ST-II's practical deployment was constrained by scalability limitations in wide-area networks, primarily due to its connection-oriented nature requiring per-stream state maintenance at each router. Full-state streams performed poorly with large receiver groups, leading to excessive resource overhead and restricting use to laboratory and small-scale setups rather than production environments. Experimental status and lack of native fragmentation support further limited its adoption beyond targeted trials.

Legacy and Impact

Influence on Successor Protocols

The Internet Stream Protocol (ST), particularly its version ST-II, introduced key concepts in resource reservation for real-time multicast communications that directly influenced the design of the Resource Reservation Protocol (RSVP), specified in RFC 2205. ST pioneered receiver-initiated reservations to ensure quality of service (QoS) for applications like voice conferencing, using a simplex connection model where resources were allocated along multicast trees to guarantee bandwidth and delay bounds. RSVP adopted and extended these reservation mechanisms to support scalable, heterogeneous QoS in IP networks, decoupling signaling from routing and introducing soft-state refresh to handle dynamic group membership, addressing ST's limitations in multipoint-to-multipoint scenarios. Overall, ST's innovations in reservation-based QoS and paved the way for the (IntServ) architecture within the IETF, where serves as the primary signaling protocol to provision per-flow guarantees across IP domains. This framework, emerging in the mid-1990s, formalized ST's vision of end-to-end resource management, influencing subsequent standards for real-time Internet services despite the shift toward more scalable alternatives like .

Current Relevance

The Stream Protocol (ST2), designated as an experimental protocol in RFC 1819, has seen no active maintenance or updates from the IETF since the conclusion of its in March 1996. By the early 2000s, ST2 became obsolete as the evolved toward protocols offering more flexible quality-of-service (QoS) mechanisms, such as for enhanced addressing and mobility, MPLS for traffic engineering in backbone networks, and application-layer solutions like for low-latency transport and for adaptive video streaming, which addressed real-time multimedia needs without requiring dedicated network-layer reservations. Despite its obsolescence, ST2 retains archival and educational value in studying the of protocols, particularly as an early attempt at QoS for real-time applications, and is often referenced in simulations and curricula exploring the development of resource reservation techniques from the 1990s. In niche contexts, ST2 may persist in legacy embedded systems or emulators focused on historical network behaviors, though no commercial implementations or support exist as of 2025, limiting its practical deployment. Significant updates or forks of ST2 have not emerged, with its functions for secure real-time media largely superseded by protocols such as SRTP for encrypted RTP streams and for browser-based communication.

References

Add your contribution
Related Hubs
User Avatar
No comments yet.