WO1991009366A1 - Method and apparatus for dispersed end-entity flow control in computer networks - Google Patents

Method and apparatus for dispersed end-entity flow control in computer networks Download PDF

Info

Publication number
WO1991009366A1
WO1991009366A1 PCT/US1990/007377 US9007377W WO9109366A1 WO 1991009366 A1 WO1991009366 A1 WO 1991009366A1 US 9007377 W US9007377 W US 9007377W WO 9109366 A1 WO9109366 A1 WO 9109366A1
Authority
WO
WIPO (PCT)
Prior art keywords
entity
data
station
receiving
transmitting
Prior art date
Application number
PCT/US1990/007377
Other languages
French (fr)
Inventor
Roger W. Flynn
Larry P. Lipke
Original Assignee
E-Systems, Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by E-Systems, Incorporated filed Critical E-Systems, Incorporated
Publication of WO1991009366A1 publication Critical patent/WO1991009366A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/266Stopping or restarting the source, e.g. X-on or X-off
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Definitions

  • the present invention relates to a method and apparatus for controlling the flow of data among a plurality of computing devices. More particularly it relates to a protocol for allowing an end-entity in a network computer to be placed in and removed from a temporary condition of flow control that is recognizable in real time by the other end-entities in the computer network.
  • An end-entity is the tasks or processes within a station which perform the information processing for a particular system in a local area network (LAN) computer environment.
  • LAN local area network
  • Computer networks providing data communication channels between communicating end-entities in interconnected systems rely primarily on embedded software for protocols and services to support a reliable mode of behavior. Examples are: the TCP-IP and X.25 protocols used by the Department of Defense and the emerging International Standards Organization's (ISO) Open System Interconnection (OSI) Model targeted for new applications.
  • ISO International Standards Organization's
  • OSI Open System Interconnection
  • connection establishment In conventional LANs a connection is required to be established prior to reliable communications in an OSI environment.
  • the connection has three distinct phases: (a) connection establishment;
  • a connection is the controlling mechanism set forth to provide not only reliable communications, but flow control between peer end-entities as well.
  • every end-entity pair desiring to communicate must first establish a connection.
  • resources at all routers are set aside during each individual connection setup.
  • the number of simultaneous connections allowed, in any application is therefore a function of the resources available throughout the LAN.
  • the number of simultaneous connections required in many applications can quickly become prohibitive.
  • management of the limited connection resources is difficult, time-consuming, and is usually an additional requirement for end-entities.
  • LANs employing a partial connection of hardware offer an improvement over the conventional systems.
  • the Prioritized Carrier Sense Multiple Access with Collision Detect (P-CSMA/CD) with Tack-on Acknowledgement (T-ACK) access method and apparatus described in U.S. Patent Nos. 4,536,877 and 4,584,679 includes a reliable datagram mechanism between stations in a LAN implemented primarily in hardware.
  • a reliable datagram service as employed here is defined as a perfect channel: one that has no lost or duplicated data messages as a result of the transmission media, and one in which data messages sent from the transmitting entity, through the transmission media to the receiving entity, arrive in the order sent.
  • the P-CSMA/CD with T-ACK access method also provides station level flow control as a function of message priority and of the number of buffers currently available at the receiving station. It provides two levels of filtering: filtering based on destination address, and filtering based on priority of input data frame versus number of remaining receive buffers to handle the incoming frame.
  • the filtering by priority may be viewed as station level flow control.
  • the P-CSMA/DC with T-ACK mechanism provides a hardware connection-like or virtual circuit service between stations, it does not provide a mechanism to prevent one or more end-entities from monopolizing the resources available at that station; that is, there is a station-to-station level of flow control in the P- CSMA/CD with T-ACK protocol, but no entity-to-entity level of flow control.
  • Some LANs provide end-entity flow control in a higher level of software protocol as a means to equitably share the end system resources among end users.
  • the mechanism used in these LANs relies on a broadcast control message transmitted to every sending station in the network to convey any state change for any destination end-entity in any end system.
  • flow control tables in this protocol are global in nature, requiring the protocol entity component that is resident in every end system to track the current state of every end- entity in every other end system, regardless of the intention to ever send to that entity;
  • congestion is managed by a central controller (see, for example, U.S. Patent No. 4,677,616 to Franklin dated June 30, 1987) or by node controllers (see U.S. Patent No. 4,475,192 to Fernow, et al. dated October 2, 1984). These devices require additional hardware and do not substantially reduce the flow control management overhead.
  • Figure 1 is a functional block diagram of a prior art computer network in which the present invention may be used.
  • FIG. 2 is a functional block diagram of the transmitting station acknowledgment handler of the present invention.
  • FIG. 3 is a functional block diagram of the receiving station acknowledgment generator of the present invention.
  • the present invention provides flow control between communicating end-entities in a computer network.
  • a preferred embodiment of the invention utilizes an architecture based on the International Standards Organization (ISO) Open Systems
  • Application Serves as window between correspondent end- entities using OSI. Constitutes the sole interface between end station applications and the LAN. Presentation — Concerned with syntax or representation of data (may include services such as encryption) . Session — Controls a dialogue established between communicating end-entities (concerned with data checkpoint/restart problem, dialogue recovery, or change of turn) . Transport — Provides end-to-end transfer of data messages between communicating entities in open systems (message packetization and flow control) . Network — Controls routing of message packets to end systems worldwide. Datalink — Controls routing of message packets between stations. This layer is further subdivided into the Logical Link Control (LLC) and Media Access Control (MAC) sublayers.
  • LLC Logical Link Control
  • MAC Media Access Control
  • CSMA/CD Carrier Sense Multiple Access with Collision Detect
  • MAC Media Access Control
  • the IEEE 802.3 standard is actually a family of specifications.
  • the particular member of the 802.3 standard used in this embodiment is the 10BASE5 subset. This subset specifies that the transmission speed is 10 Mbits/sec, that the keying method is baseband (DC levels) , that the medium used is Ethernet coaxial cable, that the maximum cable length without repeaters is 500 meters, and that the maximum number of end stations allowed without repeaters is 100. Only one cable can be used.
  • SUBSTITUTESHEET Messages to be transmitted under 10BASE5 are presented to the MAC sublayer from the Logical Link Control (LLC) sublayer of the Datalink layer.
  • the MAC sublayer encapsulates the message data (LLC Data) with header and trailer information, forming a MAC frame. Frames sent by this access method are made up of a number of octets which are transmitted serially on the medium.
  • Each MAC frame contains the following information:
  • Preamble 7 octets of a fixed bit pattern (10101010) which allows receiving stations to synchronize with the incoming frame's timing.
  • Start Frame Delimiter SFD
  • Destination Address 6 octets specifying the physical address of the destination (receiving) end station.
  • Source Address 6 octets specifying the physical address of the source (transmitting) end station.
  • Length 2 octets specifying the length of the frame.
  • LLC Data Up to 1500 octets of data. Note that this data may include header information used in higher layers of the protocol.
  • Frame Check Sequence FCS
  • FCS Frame Check Sequence
  • CRC Redundancy Check
  • a station waits (defers) for a quiet period on the medium (no other station is transmitting) and then sends the intended message in bit serial form.
  • the transmitting station continues to monitor the physical medium for interference from other sending stations while transmitting. If transmission is completed without contention, then a successful status is returned to the LLC sublayer. The only error status returned from this MAC service is maximum collisions (currently set to 16 in 10BASE5) .
  • the arrival of a MAC frame causes the receiving hardware to respond by synchronizing with the incoming preamble. After receipt of the FCS, the frame's Destination Address field is checked to decide whether the frame is to be received by this station. If so, the rest of the fields are brought in and the frame is checked for correctness.
  • a frame is incorrect if it is too short, too long, not an integer number of octets, or if it contains an incorrect CRC in the FCS field. Tw or more stations transmitting simultaneously (a collision) will also result in the creation of an incorrect frame, known as a frame fragment.
  • Valid LLC Data fields are presented to the Logical Link Control sublayer of the Datalink layer for reading and further processing in the destination end-entity.
  • the MAC sublayer continually monitors the physical medium for traffic. Whenever the medium is busy, the MAC sublayer defers to the passing frame by delaying any pending transmission of its own. After the medium goes idle, the MAC sublayer continues to defer for a proper Interframe Spacing (9.6 microseconds in 10BASE5) to ensure that effects of medium propagation delay and hardware delays at receiving stations are factored into the medium idle (Carrier Sense) decision. Then, if a frame is ready to be sent, transmission begins.
  • Interframe Spacing 9.6 microseconds in 10BASE5
  • each transmitting station intentionally sends a few additional bytes (jamming) to ensure propagation of the collision throughout the system.
  • the station then remains silent for a random amount of time (backoff) before attempting to transmit again. It is possible for repeated collisions to occur in a heavily loaded system. Since repeated collisions indicate a busy medium, the MAC sublayer attempts to adjust to the medium load by expanding the interval from which the random backoff time is selected.
  • the present invention contains an enhanced Carrier Sense Multiple Access/Collision Detection (CSMA/CD) protocol designed around the 10BASE5 CSMA/CD media access method specified in IEEE 802.3.
  • the enhancements are:
  • T-ACK TACK-ON Acknowledgment
  • the hardware generated T-ACK (see aforementioned U.S. Patent Nos. 4,536,877 and 4,584,679) contains status information sent by the receiving station back to the sending station at the completion of the transmitted frame. This feature is implemented by making use of a portion of the interframe gap (thereby extending it) to transmit the acknowledgement. Since no other station is allowed to transmit during this period, collisions should not occur. Since only the sending station is expecting the acknowledgment, destination and source address fields are not required and the size of the frame can be quite small.
  • the T-ACK consists of:
  • Preamble and SFD Identical in structure to the Preamble and SFD in the MAC frame previously defined; Status — a one-octet status field currently containing only three bits of significant information (8 states) ; and FCS - a two-octet FCS using the CRC-CCITT international standard generator polynomial.
  • the other enhancement is the addition of fields to the MAC frame for end-entity flow control.
  • the MAC frame to be transmitted in the present invention is identical to the 802.3 MAC frame with three additional extra fields incorporated. These additional fields are: Sequence number — a single-octet field containing the sequence number for the transmitted frame. Used in maintaining in-sequence frames in a multimedium environment.
  • Priority a single-octet field containing the message priority of the transmitted frame.
  • Logical Address A two-octet field uniquely identifying the destination end-entity of the transaction in the receiving station.
  • the additional MAC frame header fields and the status contained in the T-ACK frame provide the following services:
  • Priority A priority mechanism indicating a quality of service expected to be provided by the underlying protocol, for each message sent.
  • the MAC sublayer in conjunction with upper layer protocol, provides end-entity flow control at the media level.
  • Message reliability is ensured at the media level, by the addition of the T-ACK and the sequence number field. Message reliability means that there are no lost or duplicated messages and that a stream of messages sent between any two stations will remain in the original order of transmission. Fast sending stations are prevented from overrunning slower receiving stations.
  • the T-ACK contains status information informing the sending station as to the success or failure of each transmission. If the receiving station rejects the incoming frame, for any reason, it conveys this information back to the sender via the T-ACK. The sending station then responds by resending the frame.
  • a level of determinism is added to the transmission access method by the establishment of priority levels on a message-by- message basis. Eight priority levels are available for use; seven are available to sending end-entities, and one is reserved for internal network management services. The priority of a
  • SUBSTIT T particular message may be established by the user of the sending end-entity and passed in the Datalink layer.
  • the MAC sublayer adjusts the value of the 9.6 microsecond interframe gap timer by lengthening it in increments of 9.6 microseconds per priority level. So a message to be sent at priority level seven will be deferred for a much longer period than a higher priority message before beginning a transmission. Transmitting stations initiate a final carrier sense operation prior to transmitting (look before leap) and defer if a higher priority frame has already acquired the cable.
  • the total number of receive buffers available for receipt of frames is distributed on a priority basis.
  • the receiving station hardware either accepts or rejects the incoming frame based on the number of remaining buffers in the receive buffer pool. Higher priority messages are allocated a larger share of the overall receive buffer pool. If a receiving station rejects an incoming frame for lack of buffers at that frame's priority level or below, then the receiving station will indicate this to the sender by returning a "NO BUFFERS" status in the T- ACK status field. The sender will then defer before sending messages at that priority level, or lower, allowing the receiving station to work off the load.
  • End-entity flow control is made possible by the addition of the T-ACK, and the logical address field in the MAC frame.
  • the MAC sublayer derives the value to be placed in the logical address field of the MAC header from the service access point address of the destination end- entity.
  • This derivation algorithm uses maps and compresses the overall address of the destination end-entity into an address in the destination end system. Mapping is from an address unique within the entire LAN into an address unique only within the destination end system.
  • the MAC sublayer maintains the current state of each of its embedded end-entities. There are three possible states for these end-entities to be in: detached (or nonexistent) , attached and ready to receive, or attached and in flow control. As a station is powered up, every end-entity address is mapped into the detached state in the MAC sublayer hardware. As end-entities are activated, the MAC sublayer is commanded to activate them at the media level. As end-entities enter and exit flow control, the MAC sublayer hardware is updated by commands from upper level protocol to reflect the current state.
  • the receiving station accepts or rejects an incoming MAC frame based on the current state of the locally resident end- entity pointed to by the logical address field in the frame. In either case, the sending station is notified via the T-ACK. In the case of a rejection, the sending station defers from sending to that destination entity until: (a) normal exit (notification by broadcast from the receiving station that end-entity flow control is removed) , or (b) time-out retry (end of time-out countdown started at the time the frame was enqueued) . The sending station also notifies upper layer protocol to allow back pressure to be applied to the local users, thereby avoiding congestion in the local BIU.
  • the apparatus of the present invention may use multiple media, such as a dual cable configuration.
  • a selection process such as a round-robin scheme may be employed to that end.
  • End-entities that communicate on the LAN contain a component of the Application layer built in at link time. There are basically two classes of services:
  • the network management services allow end-entities to attach (announce themselves to the network) , detach (remove themselves f * om the network) , and perform directory lookups of other end- entities for purposes of communicating.
  • An end-entity must be attached prior to sending or receiving data communications. This provides an access point to the LAN and gives other end-entities the opportunity to look up and communicate with this newly attached end-entity.
  • the communication services provide end- entities with the basic sending and receiving capabilities.
  • the upper layer protocol in the end station using the underlying MAC sublayer flow control services, provide the flow control between each receiving end-entity and all other transmitting end-entities.
  • the portion of the protocol related to data transmission is in the sending host, and the portion of the protocol related to data reception is in the receiving host.
  • This database contains a set of parameters used to tune the network.
  • This parameter set includes a minimum and maximum threshold for the number of receive buffers waiting for . an end-entity.
  • the parameters are set by the LAN manager based on the total number of buffers in the local receive buffer pool (a parameter in the database) and the maximum number of expected end-entities to be simultaneously attached to the network (also a parameter) .
  • the current number of messages in the entity's queue is compared against the upper level threshold in the receiving host. If this threshold is crossed, the receiving host sends a control primitive to the MAC sublayer, placing this end-entity into flow control. No further data communications for this end-entity are allowed to enter this end station. As the end-entity removes data elements from the queue (via a component of the Application layer resident in the end-entity's task space) the lower threshold is checked against the current queue size. When the lower threshold is crossed, the MAC sublayer is commanded to remove the end-entity from flow control. This built-in hysteresis is designed to prevent thrashing.
  • SUBSTITUTESHEET A computer network in which the present invention may be used is illustrated in Figure 1 wherein a plurality of transmission media 10 are connected to a plurality of bus interface units 20 such as in a local area or metropolitan area network.
  • the transmission media may be any suitable electronic transmission media including such media as twisted pair wire, high speed busses, fiber optic cables, coaxial cable, or radio frequency (RF) carrier waves.
  • RF radio frequency
  • Each of the bus interface units 20 interconnects an end station 22 to the plurality of transmission media 10.
  • the end station 22 can be any conventional computer or computer-based device, such a work station, printer, or memory unit.
  • Messages are generated at one of the end stations 22 and relayed through the associated bus interface unit 20 for forwarding to a second end station 22 through its associated bus interface unit 20.
  • the message is propagated along one of the plurality of transmission media 10 and is available for receipt by any of the bus interface units 20 connected to the transmission medium 10 along which the message is propagating.
  • the receiving bus interface unit 20 buffers and relays the message from the transmission medium 10 to the end station 22.
  • Each end station includes one or more end-entities which process the information in the message or perform specific tasks.
  • An end system 15 includes a bus interface unit 20 and its corresponding end station 22 with associated end-entities.
  • the present invention may be divided into two portions: the transmitting station acknowledgment handler, and the receiving station acknowledgment generator.
  • the transmitting station acknowledgment handler is further divided into two portions: the transmitting bus interface unit (BIU) acknowledgment handler 120 (hereafter referred to as the sending BIU) , and the transmitting end station acknowledgment handler 122 (the sending host) .
  • BIU transmitting bus interface unit
  • the receiving station acknowledgment generator is further divided into two portions: the receiving bus interface unit (BIU) acknowledgment handler 140 (hereafter referred to as the receiving BIU) , and the receiving end station acknowledgment handler 142 (the receiving host) .
  • BIU receiving bus interface unit
  • the receiving end station acknowledgment handler 142 the receiving host
  • the sending BIU 120 places a receiving end-entity 150 unique identifier in a control area of the sending data frame received from a transmitting end-entity 130. After sending the data frame, the sending BIU 120 receives the short hardware generated acknowledgment from the receiving end station 42 containing status information. As previously described, the present invention adds three new hardware states that the receiving end- entity 150 can be in, and therefore adds three new values of status to report back to the sending BIU 120 in the acknowledgment generated by acknowledgment reporter 45 in BIU 40. These new states are: (a) Entity Detached, (b) Entity Attached and Currently Receiving Data Frames, (c) Entity Attached and Currently in Flow Control.
  • the sending BIU 120 Upon receiving in acknowledgment receiver 25 an Entity Flow Control status (state (c) above) in the hardware generated acknowledgment, the sending BIU 120 informs its sending host 122 that the receiving end-entity is in a flow control status.
  • the sending host 122 exerts back pressure on the end station 22 by deferring future attempts at sending data communications to this receiving end-entity 150.
  • This back pressure is applied to all locally resident end-entities 130 that attempt to send to the receiving end-entity 150 in flow control status and may be manifested in several ways. For example, (1) operation of end- entities 130 attempting to transmit to an end-entity 150 in flow control may be suspended until flow control is exited, or (2) attempted transmission may be returned to the end-entity 13 in error status.
  • the choice may be made by the user of the transmitting end-entity 130 when end-entity parameters are established. Transmissions of end-entities 130 attempting to send to an end-entity 150 in a Detached status (state (a) above) are returned in error status.
  • the sending BIU 120 enqueues messages rejected by the receiving end station 42 due to Entity Flow Control status until one of two events occur: (a) Normal Exit, or (b) Time-out Retry.
  • the receiving BIU 140 parses the incoming data frame, extracting the receiving end-entity 150 identifier from the frame and accepting or rejecting the frame based on the current flow control state for that end-entity. This decision is made by the receiving BIU 140 so that the decision to accept or reject may be conveyed back to the sending station in the acknowledgment generated in acknowledgment reporter 45.
  • the receiving host 142 monitors the state of the receiving end-entities 150 in its receiving station 42 that are currently attached to and using the services of the LAN. Receiving end- entities 150 are placed in flow control and removed from flow control based on a measurement of the receiving end-entity's current congestion. The number of data messages in the end- entity's input queue may be used as such a measure of congestion.
  • FIGS 2 and 3 depict the transmitting and receiving components as separate entities, it is understood that each end system on the computer network may contain both components.

Abstract

A computer network system for providing an apparatus and method for allowing an end-entity (150) in a network computer to be placed in and removed from a temporary condition of flow control that is recognizable in real time by other end-entities (130) in the computer network. A receiving station (22) evaluates and reports the backlog of communications awaiting processing at an embedded end-entity (150), such report indicating the receiving end-entity (150) is (a) not attached, (b) available, or (c) in a flow control status. If the receiving end-entity (150) is in flow control status, the transmitting station puts communications directed to the end-entity (150) in its own queue (120) awaiting later transmission which may be based on either receipt of a change-of-status message from the end-entity (150) or passage of a predetermined period of time. The transmitting station (22) checks for the successful transmission of each data communication over the transmission medium (10) and, on failure due to end-entity flow control at the receiving end-entity (150), prevents future transmissions to that end-entity (150) until the flow control condition has been removed. The receiving station (42) accepts or rejects the incoming message based on the current flow control state for the destination end-entity (150). End-entities are placed in flow control and removed from flow control based on a measurement of the receiving end-entity's (150) current congestion.

Description

METHOD AND APPARATUS FOR DISPERSED END-ENTITY FLOW CONTROL IN COMPUTER NETWORKS
BACKGROUND OF THE INVENTION
The present invention relates to a method and apparatus for controlling the flow of data among a plurality of computing devices. More particularly it relates to a protocol for allowing an end-entity in a network computer to be placed in and removed from a temporary condition of flow control that is recognizable in real time by the other end-entities in the computer network.
An end-entity is the tasks or processes within a station which perform the information processing for a particular system in a local area network (LAN) computer environment.
Computer networks providing data communication channels between communicating end-entities in interconnected systems rely primarily on embedded software for protocols and services to support a reliable mode of behavior. Examples are: the TCP-IP and X.25 protocols used by the Department of Defense and the emerging International Standards Organization's (ISO) Open System Interconnection (OSI) Model targeted for new applications.
In all but the smallest LANs, the exclusive use of software introduces limitations in performance and flexibility of interconnectivity. For example, layered architectures based on the OSI Reference Model (ISO 7498-1984) rely on a connection mode of operation to provide reliable data communications. While the standards do not specifically identify an embodiment, state of the art implementations of the connection-mode set of protocols and services are nevertheless largely in software.
In conventional LANs a connection is required to be established prior to reliable communications in an OSI environment. The connection has three distinct phases: (a) connection establishment;
(b) data transfer; and
(c) connection release.
A connection is the controlling mechanism set forth to provide not only reliable communications, but flow control between peer end-entities as well. In order to guarantee delivery of in-sequence data transmissions, with no lost or duplicated data messages, every end-entity pair desiring to communicate must first establish a connection. As a key part of the connection establishment, and in order to avoid congestion in the overall LAN, resources at all routers are set aside during each individual connection setup. The number of simultaneous connections allowed, in any application, is therefore a function of the resources available throughout the LAN. Unfortunately, the number of simultaneous connections required in many applications can quickly become prohibitive. Also, management of the limited connection resources is difficult, time-consuming, and is usually an additional requirement for end-entities.
Although the concept of a multi-endpoint connection is introduced in the OSI Reference Model, and again in the various layer standards themselves, guidelines for establishing connections between three or more simultaneous communicating entities have yet to be set forth. So, in a many-to-many application environment, compromises regarding individual flow control and performance are difficult to avoid.
LANs employing a partial connection of hardware offer an improvement over the conventional systems. The Prioritized Carrier Sense Multiple Access with Collision Detect (P-CSMA/CD) with Tack-on Acknowledgement (T-ACK) access method and apparatus described in U.S. Patent Nos. 4,536,877 and 4,584,679 includes a reliable datagram mechanism between stations in a LAN implemented primarily in hardware. A reliable datagram service as employed here is defined as a perfect channel: one that has no lost or duplicated data messages as a result of the transmission media, and one in which data messages sent from the transmitting entity, through the transmission media to the receiving entity, arrive in the order sent. The P-CSMA/CD with T-ACK access method also provides station level flow control as a function of message priority and of the number of buffers currently available at the receiving station. It provides two levels of filtering: filtering based on destination address, and filtering based on priority of input data frame versus number of remaining receive buffers to handle the incoming frame. The filtering by priority may be viewed as station level flow control.
While the P-CSMA/DC with T-ACK mechanism provides a hardware connection-like or virtual circuit service between stations, it does not provide a mechanism to prevent one or more end-entities from monopolizing the resources available at that station; that is, there is a station-to-station level of flow control in the P- CSMA/CD with T-ACK protocol, but no entity-to-entity level of flow control.
Some LANs provide end-entity flow control in a higher level of software protocol as a means to equitably share the end system resources among end users. The mechanism used in these LANs relies on a broadcast control message transmitted to every sending station in the network to convey any state change for any destination end-entity in any end system. There are several disadvantages inherent in this approach:
(a) broadcast messages updating all end system flow control tables add to overhead and congestion;
(b) backup timers and individual query control messages are required, as the broadcast mode of data communications is not a reliable service;
(c) flow control tables in this protocol are global in nature, requiring the protocol entity component that is resident in every end system to track the current state of every end- entity in every other end system, regardless of the intention to ever send to that entity; and
(d) adding or deleting entities at an end station in this approach is not possible without updating globally distributed flow control tables — a costly and complex endeavor.
In other network systems congestion is managed by a central controller (see, for example, U.S. Patent No. 4,677,616 to Franklin dated June 30, 1987) or by node controllers (see U.S. Patent No. 4,475,192 to Fernow, et al. dated October 2, 1984). These devices require additional hardware and do not substantially reduce the flow control management overhead.
Accordingly, it is an object of the present invention to provide end station control of the flow of data from end-entity to end-entity in a computer network.
It is a further object of the present invention to provide a method for reducing data flow congestion in a computer network by restricting the movement of flow control status information to communicating station pairs.
It is yet a further object of the present invention to provide a method for reducing data flow congestion by determining the availability of buffer space in the receiving end-entity and controlling the flow of data from the transmitting end-entity based on that determination.
It is another object of the present invention to provide an apparatus for reducing data flow congestion in which the receiving device determines its flow control status responsive to a data transmission from a transmitting device, and in which the transmitting device controls the flow of data to the receiving device responsively to the flow control status.
These and many objects and advantages will be readily apparent to one skilled in the art to which the present invention pertains from a perusal of the claims and the following detailed description of preferred embodiments when read in conjunction with the appended drawings.
THE DRAWINGS
Figure 1 is a functional block diagram of a prior art computer network in which the present invention may be used.
Figure 2 is a functional block diagram of the transmitting station acknowledgment handler of the present invention.
Figure 3 is a functional block diagram of the receiving station acknowledgment generator of the present invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS A. Standard Architecture
The present invention provides flow control between communicating end-entities in a computer network. A preferred embodiment of the invention utilizes an architecture based on the International Standards Organization (ISO) Open Systems
SUBSTITUTESHEET Interconnection (OSI) Reference Model (ISO 7498-1984) having the following seven layers.:
Application — Serves as window between correspondent end- entities using OSI. Constitutes the sole interface between end station applications and the LAN. Presentation — Concerned with syntax or representation of data (may include services such as encryption) . Session — Controls a dialogue established between communicating end-entities (concerned with data checkpoint/restart problem, dialogue recovery, or change of turn) . Transport — Provides end-to-end transfer of data messages between communicating entities in open systems (message packetization and flow control) . Network — Controls routing of message packets to end systems worldwide. Datalink — Controls routing of message packets between stations. This layer is further subdivided into the Logical Link Control (LLC) and Media Access Control (MAC) sublayers. Physical — Provides mechanical, electrical, functional and procedural means by which bits are transferred between stations. The IEEE 802.3 standard Carrier Sense Multiple Access with Collision Detect (CSMA/CD) access method is a means by which two or more stations share a common bus transmission medium. This standard describes one type of media access method used in the Physical layer and the Media Access Control (MAC) sublayer of the Datalink layer in the OSI model.
The IEEE 802.3 standard is actually a family of specifications. The particular member of the 802.3 standard used in this embodiment is the 10BASE5 subset. This subset specifies that the transmission speed is 10 Mbits/sec, that the keying method is baseband (DC levels) , that the medium used is Ethernet coaxial cable, that the maximum cable length without repeaters is 500 meters, and that the maximum number of end stations allowed without repeaters is 100. Only one cable can be used.
SUBSTITUTESHEET Messages to be transmitted under 10BASE5 are presented to the MAC sublayer from the Logical Link Control (LLC) sublayer of the Datalink layer. The MAC sublayer encapsulates the message data (LLC Data) with header and trailer information, forming a MAC frame. Frames sent by this access method are made up of a number of octets which are transmitted serially on the medium. Each MAC frame contains the following information:
Preamble — 7 octets of a fixed bit pattern (10101010) which allows receiving stations to synchronize with the incoming frame's timing. Start Frame Delimiter (SFD) — A one-octet, fixed-bit sequence (10101011) indicating the start of a frame. Destination Address — 6 octets specifying the physical address of the destination (receiving) end station. Source Address — 6 octets specifying the physical address of the source (transmitting) end station. Length — 2 octets specifying the length of the frame. LLC Data — Up to 1500 octets of data. Note that this data may include header information used in higher layers of the protocol. Frame Check Sequence (FCS) — A four-octet Cyclical
Redundancy Check (CRC) computed for the frame as a function of the contents of all fields except the preamble, SFD, and FCS. All of the above fields, with the exception of the LLC Data field, which is created by an end-entity, are added by the MAC sublayer for transmission in this standard protocol.
To transmit, a station waits (defers) for a quiet period on the medium (no other station is transmitting) and then sends the intended message in bit serial form. The transmitting station continues to monitor the physical medium for interference from other sending stations while transmitting. If transmission is completed without contention, then a successful status is returned to the LLC sublayer. The only error status returned from this MAC service is maximum collisions (currently set to 16 in 10BASE5) . At each station, the arrival of a MAC frame causes the receiving hardware to respond by synchronizing with the incoming preamble. After receipt of the FCS, the frame's Destination Address field is checked to decide whether the frame is to be received by this station. If so, the rest of the fields are brought in and the frame is checked for correctness. A frame is incorrect if it is too short, too long, not an integer number of octets, or if it contains an incorrect CRC in the FCS field. Tw or more stations transmitting simultaneously (a collision) will also result in the creation of an incorrect frame, known as a frame fragment. Valid LLC Data fields are presented to the Logical Link Control sublayer of the Datalink layer for reading and further processing in the destination end-entity.
The MAC sublayer continually monitors the physical medium for traffic. Whenever the medium is busy, the MAC sublayer defers to the passing frame by delaying any pending transmission of its own. After the medium goes idle, the MAC sublayer continues to defer for a proper Interframe Spacing (9.6 microseconds in 10BASE5) to ensure that effects of medium propagation delay and hardware delays at receiving stations are factored into the medium idle (Carrier Sense) decision. Then, if a frame is ready to be sent, transmission begins.
If the frame still collides with that of another station it will be detected on hardware (Collision Detect) . To enforce the collision, each transmitting station intentionally sends a few additional bytes (jamming) to ensure propagation of the collision throughout the system. The station then remains silent for a random amount of time (backoff) before attempting to transmit again. It is possible for repeated collisions to occur in a heavily loaded system. Since repeated collisions indicate a busy medium, the MAC sublayer attempts to adjust to the medium load by expanding the interval from which the random backoff time is selected.
At all stations, the bits resulting from a collision are received and decoded just as are the bits of a valid frame. Fragmentary frames received during collisions are distinguished from valid transmissions by the MAC sublayer by either an incorrect FCS field (bad CRC) or a short frame (802.3 specifies a minimum frame size) . Since collisions are expected occasionally in 802.3, these frame fragments are simply discarded with no other action required. B. Enhanced Architecture
The present invention contains an enhanced Carrier Sense Multiple Access/Collision Detection (CSMA/CD) protocol designed around the 10BASE5 CSMA/CD media access method specified in IEEE 802.3. The enhancements are:
(a) the addition of a small hardware-generated acknowledgment frame called a TACK-ON Acknowledgment (T-ACK) ; and
(b) additional fields in the MAC frame.
The hardware generated T-ACK (see aforementioned U.S. Patent Nos. 4,536,877 and 4,584,679) contains status information sent by the receiving station back to the sending station at the completion of the transmitted frame. This feature is implemented by making use of a portion of the interframe gap (thereby extending it) to transmit the acknowledgement. Since no other station is allowed to transmit during this period, collisions should not occur. Since only the sending station is expecting the acknowledgment, destination and source address fields are not required and the size of the frame can be quite small. The T-ACK consists of:
Preamble and SFD — Identical in structure to the Preamble and SFD in the MAC frame previously defined; Status — a one-octet status field currently containing only three bits of significant information (8 states) ; and FCS - a two-octet FCS using the CRC-CCITT international standard generator polynomial. The other enhancement is the addition of fields to the MAC frame for end-entity flow control. The MAC frame to be transmitted in the present invention is identical to the 802.3 MAC frame with three additional extra fields incorporated. These additional fields are: Sequence number — a single-octet field containing the sequence number for the transmitted frame. Used in maintaining in-sequence frames in a multimedium environment.
Priority — a single-octet field containing the message priority of the transmitted frame.
Logical Address — A two-octet field uniquely identifying the destination end-entity of the transaction in the receiving station. The additional MAC frame header fields and the status contained in the T-ACK frame provide the following services:
1) Virtual Circuit Service — The addition of the T-ACK provides the mechanisms for a reliable (virtual circuit) service.
2) Priority — A priority mechanism indicating a quality of service expected to be provided by the underlying protocol, for each message sent.
3) Flow Control — The MAC sublayer, in conjunction with upper layer protocol, provides end-entity flow control at the media level.
4) Multiple Media — Provisions for additional media. Message (Virtual Circuit Service) reliability is ensured at the media level, by the addition of the T-ACK and the sequence number field. Message reliability means that there are no lost or duplicated messages and that a stream of messages sent between any two stations will remain in the original order of transmission. Fast sending stations are prevented from overrunning slower receiving stations.
The T-ACK contains status information informing the sending station as to the success or failure of each transmission. If the receiving station rejects the incoming frame, for any reason, it conveys this information back to the sender via the T-ACK. The sending station then responds by resending the frame.
A level of determinism is added to the transmission access method by the establishment of priority levels on a message-by- message basis. Eight priority levels are available for use; seven are available to sending end-entities, and one is reserved for internal network management services. The priority of a
SUBSTIT T particular message may be established by the user of the sending end-entity and passed in the Datalink layer.
At the transmitting station, the MAC sublayer adjusts the value of the 9.6 microsecond interframe gap timer by lengthening it in increments of 9.6 microseconds per priority level. So a message to be sent at priority level seven will be deferred for a much longer period than a higher priority message before beginning a transmission. Transmitting stations initiate a final carrier sense operation prior to transmitting (look before leap) and defer if a higher priority frame has already acquired the cable.
At the receiving station, the total number of receive buffers available for receipt of frames is distributed on a priority basis. Using the priority field in the MAC header, the receiving station hardware either accepts or rejects the incoming frame based on the number of remaining buffers in the receive buffer pool. Higher priority messages are allocated a larger share of the overall receive buffer pool. If a receiving station rejects an incoming frame for lack of buffers at that frame's priority level or below, then the receiving station will indicate this to the sender by returning a "NO BUFFERS" status in the T- ACK status field. The sender will then defer before sending messages at that priority level, or lower, allowing the receiving station to work off the load.
End-entity flow control is made possible by the addition of the T-ACK, and the logical address field in the MAC frame.
At the transmitting station, the MAC sublayer derives the value to be placed in the logical address field of the MAC header from the service access point address of the destination end- entity. This derivation algorithm uses maps and compresses the overall address of the destination end-entity into an address in the destination end system. Mapping is from an address unique within the entire LAN into an address unique only within the destination end system.
At the receiving station the MAC sublayer maintains the current state of each of its embedded end-entities. There are three possible states for these end-entities to be in: detached (or nonexistent) , attached and ready to receive, or attached and in flow control. As a station is powered up, every end-entity address is mapped into the detached state in the MAC sublayer hardware. As end-entities are activated, the MAC sublayer is commanded to activate them at the media level. As end-entities enter and exit flow control, the MAC sublayer hardware is updated by commands from upper level protocol to reflect the current state.
The receiving station accepts or rejects an incoming MAC frame based on the current state of the locally resident end- entity pointed to by the logical address field in the frame. In either case, the sending station is notified via the T-ACK. In the case of a rejection, the sending station defers from sending to that destination entity until: (a) normal exit (notification by broadcast from the receiving station that end-entity flow control is removed) , or (b) time-out retry (end of time-out countdown started at the time the frame was enqueued) . The sending station also notifies upper layer protocol to allow back pressure to be applied to the local users, thereby avoiding congestion in the local BIU.
The apparatus of the present invention may use multiple media, such as a dual cable configuration. A selection process, such as a round-robin scheme may be employed to that end.
The services provided to the end-entities by the upper layer protocols are accessed by a set of library routines available in the Application layer. End-entities that communicate on the LAN contain a component of the Application layer built in at link time. There are basically two classes of services:
(a) the network management services; and
(b) the communication services.
The network management services allow end-entities to attach (announce themselves to the network) , detach (remove themselves f *om the network) , and perform directory lookups of other end- entities for purposes of communicating. An end-entity must be attached prior to sending or receiving data communications. This provides an access point to the LAN and gives other end-entities the opportunity to look up and communicate with this newly attached end-entity. The communication services provide end- entities with the basic sending and receiving capabilities.
SUBSTITUTESHEET The upper layer protocol in the end station, using the underlying MAC sublayer flow control services, provide the flow control between each receiving end-entity and all other transmitting end-entities. The portion of the protocol related to data transmission is in the sending host, and the portion of the protocol related to data reception is in the receiving host.
In every participating host, there is a network configuration database. This database contains a set of parameters used to tune the network. This parameter set includes a minimum and maximum threshold for the number of receive buffers waiting for.an end-entity. The parameters are set by the LAN manager based on the total number of buffers in the local receive buffer pool (a parameter in the database) and the maximum number of expected end-entities to be simultaneously attached to the network (also a parameter) .
When a message is sent to an end-entity, the current number of messages in the entity's queue is compared against the upper level threshold in the receiving host. If this threshold is crossed, the receiving host sends a control primitive to the MAC sublayer, placing this end-entity into flow control. No further data communications for this end-entity are allowed to enter this end station. As the end-entity removes data elements from the queue (via a component of the Application layer resident in the end-entity's task space) the lower threshold is checked against the current queue size. When the lower threshold is crossed, the MAC sublayer is commanded to remove the end-entity from flow control. This built-in hysteresis is designed to prevent thrashing.
Once an end-entity is in flow control status, transmitting stations attempting to transmit to this end-entity are notified via a "FLOW-CONTROL" status in the T-ACK. The sending host in the transmitting station prevents further communications to the end-entity in flow control status. When the receiving end- entity comes out of flow control, all stations are alerted with a broadcast message, and normal data communications may resume. C. Operation
With reference now to the figures, the operation of the present invention will be further described.
SUBSTITUTESHEET A computer network in which the present invention may be used is illustrated in Figure 1 wherein a plurality of transmission media 10 are connected to a plurality of bus interface units 20 such as in a local area or metropolitan area network. The transmission media may be any suitable electronic transmission media including such media as twisted pair wire, high speed busses, fiber optic cables, coaxial cable, or radio frequency (RF) carrier waves.
Each of the bus interface units 20 interconnects an end station 22 to the plurality of transmission media 10. The end station 22 can be any conventional computer or computer-based device, such a work station, printer, or memory unit. Messages are generated at one of the end stations 22 and relayed through the associated bus interface unit 20 for forwarding to a second end station 22 through its associated bus interface unit 20. The message is propagated along one of the plurality of transmission media 10 and is available for receipt by any of the bus interface units 20 connected to the transmission medium 10 along which the message is propagating. The receiving bus interface unit 20 buffers and relays the message from the transmission medium 10 to the end station 22. Each end station includes one or more end-entities which process the information in the message or perform specific tasks. An end system 15 includes a bus interface unit 20 and its corresponding end station 22 with associated end-entities.
With reference now to Figures 2 and 3, the present invention may be divided into two portions: the transmitting station acknowledgment handler, and the receiving station acknowledgment generator.
As seen in Figure 2 the transmitting station acknowledgment handler is further divided into two portions: the transmitting bus interface unit (BIU) acknowledgment handler 120 (hereafter referred to as the sending BIU) , and the transmitting end station acknowledgment handler 122 (the sending host) .
As seen in Figure 3 the receiving station acknowledgment generator is further divided into two portions: the receiving bus interface unit (BIU) acknowledgment handler 140 (hereafter referred to as the receiving BIU) , and the receiving end station acknowledgment handler 142 (the receiving host) .
The sending BIU 120 places a receiving end-entity 150 unique identifier in a control area of the sending data frame received from a transmitting end-entity 130. After sending the data frame, the sending BIU 120 receives the short hardware generated acknowledgment from the receiving end station 42 containing status information. As previously described, the present invention adds three new hardware states that the receiving end- entity 150 can be in, and therefore adds three new values of status to report back to the sending BIU 120 in the acknowledgment generated by acknowledgment reporter 45 in BIU 40. These new states are: (a) Entity Detached, (b) Entity Attached and Currently Receiving Data Frames, (c) Entity Attached and Currently in Flow Control.
Upon receiving in acknowledgment receiver 25 an Entity Flow Control status (state (c) above) in the hardware generated acknowledgment, the sending BIU 120 informs its sending host 122 that the receiving end-entity is in a flow control status. The sending host 122 exerts back pressure on the end station 22 by deferring future attempts at sending data communications to this receiving end-entity 150. This back pressure is applied to all locally resident end-entities 130 that attempt to send to the receiving end-entity 150 in flow control status and may be manifested in several ways. For example, (1) operation of end- entities 130 attempting to transmit to an end-entity 150 in flow control may be suspended until flow control is exited, or (2) attempted transmission may be returned to the end-entity 13 in error status. The choice may be made by the user of the transmitting end-entity 130 when end-entity parameters are established. Transmissions of end-entities 130 attempting to send to an end-entity 150 in a Detached status (state (a) above) are returned in error status.
The sending BIU 120 enqueues messages rejected by the receiving end station 42 due to Entity Flow Control status until one of two events occur: (a) Normal Exit, or (b) Time-out Retry.
SUBSTITUTE SHEET On a normal exit, or when a time-out retry receives a normal status value in the received acknowledgment, all enqueued messages for that receiving end-entity 150 are transmitted, in sequence, by the sending BIU to the receiving station. The sending host is notified that it is to release messages for the receiving end-entity.
The receiving BIU 140 parses the incoming data frame, extracting the receiving end-entity 150 identifier from the frame and accepting or rejecting the frame based on the current flow control state for that end-entity. This decision is made by the receiving BIU 140 so that the decision to accept or reject may be conveyed back to the sending station in the acknowledgment generated in acknowledgment reporter 45.
The receiving host 142 monitors the state of the receiving end-entities 150 in its receiving station 42 that are currently attached to and using the services of the LAN. Receiving end- entities 150 are placed in flow control and removed from flow control based on a measurement of the receiving end-entity's current congestion. The number of data messages in the end- entity's input queue may be used as such a measure of congestion.
Although Figures 2 and 3 depict the transmitting and receiving components as separate entities, it is understood that each end system on the computer network may contain both components.
While the preferred embodiments of the present invention have been described, it is to be understood that the foregoing descriptions of preferred embodiments are illustrative only, and that the scope of the invention is to be defined solely by the appended claims when accorded a full range of equivalents, many variations and modifications naturally occurring to those skilled in the art from a perusal hereof.
SUBSTITUTESHEET

Claims

AMENDED CLAIMS[received by the International Bureau on 28 May 1991 (28.05.91); original claims 6,7,12 and 13 cancelled; original claims 1,2-5 amended; other claims unchanged (4 pages)]
1. A method for controlling a transmission of data on a transmission medium in a computer network from a transmitting end-entity in a transmitting end station to a receiving end- entity in a receiving end station, comprising the steps of:
(a) first evaluating by said receiving end station whether to accept or reject said data based on a measure of congestion at said receiving end-entity;
(b) transmitting a rejection message from said receiving end station to said transmitting end station when the result of said first evaluation is to reject said data; and
(c) enqueuing in said transmitting end station said data until said receiving end station accepts said data.
2. The method as defined in Claim 1 wherein said acceptance message is generated by said receiving end station in response to a request from said transmitting end station sent a predetermined time after receipt of said rejection message.
3. The method as defined in Claim 1 wherein said acceptance message is generated by said receiving end station after a second evaluation of the congestion at said receiving end-entity.
4. The method as defined in Claim 1 wherein said measure is the number of transmissions of said data enqueued at said receiving entity.
5. The method as defined in Claim 1 further comprising the steps of:
(a) assigning a priority to said data;
(b) transmitting said data after a period of. silence on said transmission medium that directly corresponds to the priority of said data;
(c) allocating buffer space for storing said data in said receiving end station in proportion to the priority of said message.
(d) delaying transmitting said data and other data having said priority or lower priority until there is enough said buffer space for said data.
6. A method of communicating data from a first device to a second device comprising the steps of:
(a) transmitting data from said first device;
(b) receiving and storing without acceptance the transmitted data at said second device, said second device having a predetermined amount of buffer space for data;
(c) evaluating by said second device whether said second device has sufficient buffer space to accept the stored data;
(d) transmitting a rejection message from said second device to said first device when said second device is unable to accept the stored data;
(e) repeating step (c) at predetermined times;
(f) transmitting a status change message from said second device when said second device is able to accept the stored data; and
(g) retransmitting said transmitted data at the earliest of a predetermined time after said first device receives the rejection message and the receipt of said status change message by said first device.
7. The method as defined in Claim 6 wherein said second device comprises plural end-entities having buffer space and said transmitted data is addressed to one of said end-entities, and wherein said evaluation determines whether said end-entity has sufficient buffer space to accept the stored data.
8. In a method for transmitting data from a first end- entity in a first device to a second end-entity in a second device, each said end-entity having a predetermined amount of buffer space for data, the improvement comprising the steps of:
(a) comparing in said second device the buffer space available in said second end-entity to the buffer space required for said transmitted data; and
(b) controlling the flow of said data to said second end-entity based on the result of said comparison.
9. A method for controlling the flow of data among plural end systems comprising the steps of:
(a) evaluating whether a first end-entity in a first end system is able to receive data; (b) sending a rejection message to a second end system containing a second end-entity transmitting data to said first end-entity if said first end-entity is not able to receive data; and
(c) storing data to be sent to said first end-entity in said second end system if a rejection message is sent.
10. A method for controlling a transmission of a message on a transmission medium in a computer network from a transmitting end-entity in a transmitting station to a receiving end-entity in a receiving station, said receiving station having a predetermined amount of buffer space to store said message waiting to be read by said receiving end-entity, comprising the steps of:
(a) assigning a priority to said messages;
(b) transmitting said message after a period of silence on the transmission medium that directly corresponds to the priority of said messages;
(c) receiving without storing said message at said receiving station;
(d) allocating said buffer space to said message in proportion to the priority of said message;
(e) determining whether enough said buffer space is available for said message received at said receiving station;
(f) reporting to said transmitting station when there is not enough said buffer space for said messages received at said receiving station; and
(g) delaying transmitting said message and other messages having said priority or lower priority from said transmitting station to said receiving station until there is enough said buffer space for said message.
11. An apparatus for controlling the flow of data from a first end-entity in a first end system to a second end-entity in a second end system comprising: means in said second end system for evaluating whether said second end-entity is able to accept a first data transmission from said first end-entity; means in said first end system for storing said first data transmission not accepted by said second end-entity; and means in said first end system for preventing transmissions from said first end system to said second end- entity until said first data transmission is accepted.
12. An apparatus for communicating data from a first device to a second device having a predetermined amount of space for said data comprising:
(a) means for transmitting data from said first device;
(b) means for receiving and storing without acceptance the transmitted data at said second device;
(c) means in said second device for evaluating whether said second device has enough said space to accept the stored data;
(d) means for transmitting a rejection message from said second device to said first device when said second device is unable to accept the stored data;
(e) means for transmitting a status change message from said second device when said second device is able to accept the stored data; and
(f) means for retransmitting said transmitted data at the earliest of a predetermined time after said first device receives said rejection message and the receipt of said status change message by said first device.
13. The apparatus as defined in Claim 12 wherein said second device comprises plural end-entities, each having a predetermined portion of said space, and wherein said transmitted data is addressed to a first said end-entity, and wherein said means for evaluating further evaluates whether said first end- entity has enough said portion of space to accept said transmitted data.
14. In a system for transmitting a first data packet from a first end-entity in a first device to a second end-entity in a second device, each said end-entity having a predetermined amount of buffer space for data, the improvement comprising:
PCT/US1990/007377 1989-12-19 1990-12-17 Method and apparatus for dispersed end-entity flow control in computer networks WO1991009366A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US45242989A 1989-12-19 1989-12-19
US452,429 1989-12-19

Publications (1)

Publication Number Publication Date
WO1991009366A1 true WO1991009366A1 (en) 1991-06-27

Family

ID=23796420

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1990/007377 WO1991009366A1 (en) 1989-12-19 1990-12-17 Method and apparatus for dispersed end-entity flow control in computer networks

Country Status (2)

Country Link
AU (1) AU7142091A (en)
WO (1) WO1991009366A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0561381A2 (en) * 1992-03-18 1993-09-22 Fischer & Porter Company Network architecture suitable for multicasting and resource locking
WO1998037668A1 (en) * 1997-02-25 1998-08-27 Telefonaktiebolaget Lm Ericsson (Publ) Multiple access communication network with dynamic access control
EP1361696A1 (en) * 2002-05-09 2003-11-12 Altima Communications, Inc. Dynamic adjustment of multicast drop thresholds to guarantee fairness between multicast and unicast frames
EP1730899A1 (en) * 2004-01-30 2006-12-13 Telefonaktiebolaget LM Ericsson (publ) Packet scheduling for data stream transmission

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4208714A (en) * 1977-02-28 1980-06-17 Telefonaktiebolaget L M Ericsson Apparatus for giving priority to certain data signals
US4223380A (en) * 1978-04-06 1980-09-16 Ncr Corporation Distributed multiprocessor communication system
US4378588A (en) * 1976-09-07 1983-03-29 Tandem Computers Incorporated Buffer control for a data path system
US4430702A (en) * 1980-05-12 1984-02-07 Control Data Corporation Network access device
US4445214A (en) * 1980-05-30 1984-04-24 Harris Corporation Method of controlling message transmission sequence in multi station communication system
US4543627A (en) * 1981-12-14 1985-09-24 At&T Bell Laboratories Internal communication arrangement for a multiprocessor system
US4646300A (en) * 1983-11-14 1987-02-24 Tandem Computers Incorporated Communications method
US4876664A (en) * 1987-08-26 1989-10-24 Allen-Bradley Company, Inc. Programmable controller with a dual intermodule message system
US4965793A (en) * 1989-02-03 1990-10-23 Digital Equipment Corporation Method and apparatus for interfacing a system control unit for a multi-processor

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4378588A (en) * 1976-09-07 1983-03-29 Tandem Computers Incorporated Buffer control for a data path system
US4208714A (en) * 1977-02-28 1980-06-17 Telefonaktiebolaget L M Ericsson Apparatus for giving priority to certain data signals
US4223380A (en) * 1978-04-06 1980-09-16 Ncr Corporation Distributed multiprocessor communication system
US4430702A (en) * 1980-05-12 1984-02-07 Control Data Corporation Network access device
US4445214A (en) * 1980-05-30 1984-04-24 Harris Corporation Method of controlling message transmission sequence in multi station communication system
US4543627A (en) * 1981-12-14 1985-09-24 At&T Bell Laboratories Internal communication arrangement for a multiprocessor system
US4646300A (en) * 1983-11-14 1987-02-24 Tandem Computers Incorporated Communications method
US4876664A (en) * 1987-08-26 1989-10-24 Allen-Bradley Company, Inc. Programmable controller with a dual intermodule message system
US4965793A (en) * 1989-02-03 1990-10-23 Digital Equipment Corporation Method and apparatus for interfacing a system control unit for a multi-processor

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0561381A2 (en) * 1992-03-18 1993-09-22 Fischer & Porter Company Network architecture suitable for multicasting and resource locking
EP0561381A3 (en) * 1992-03-18 1995-09-20 Fischer & Porter Co Network architecture suitable for multicasting and resource locking
WO1998037668A1 (en) * 1997-02-25 1998-08-27 Telefonaktiebolaget Lm Ericsson (Publ) Multiple access communication network with dynamic access control
US6078568A (en) * 1997-02-25 2000-06-20 Telefonaktiebolaget Lm Ericsson Multiple access communication network with dynamic access control
EP1361696A1 (en) * 2002-05-09 2003-11-12 Altima Communications, Inc. Dynamic adjustment of multicast drop thresholds to guarantee fairness between multicast and unicast frames
US7286547B2 (en) 2002-05-09 2007-10-23 Broadcom Corporation Dynamic adjust multicast drop threshold to provide fair handling between multicast and unicast frames
US7764704B2 (en) 2002-05-09 2010-07-27 Broadcom Corporation Dynamic adjust multicast drop threshold to provide fair handling between multicast and unicast frames
EP1730899A1 (en) * 2004-01-30 2006-12-13 Telefonaktiebolaget LM Ericsson (publ) Packet scheduling for data stream transmission

Also Published As

Publication number Publication date
AU7142091A (en) 1991-07-18

Similar Documents

Publication Publication Date Title
US5121382A (en) Station-to-station full duplex communication in a communications network
US5940399A (en) Methods of collision control in CSMA local area network
KR100378148B1 (en) 802.3 Medium Access Control and Associated Signaling Scheme for Full-duplex Networks
US7386002B2 (en) Redundant radio frequency network having a roaming terminal communication protocol
US5673031A (en) Redundant radio frequency network having a roaming terminal communication protocol
US7742497B2 (en) Access systems and methods for a shared communication medium
EP0529774B1 (en) Method and apparatus for traffic congestion control in a communication network bridge device
JP4152880B2 (en) Channel access method for power line carrier medium access control protocol
US5859837A (en) Flow control method and apparatus for ethernet packet switched hub
US6198722B1 (en) Flow control method for networks
EP0632620A2 (en) Backoff time evaluation method for ethernet
JP2551304B2 (en) Broadcast link control method
KR20000023741A (en) Method of congestion control for wireless messaging systems
EP1854233A2 (en) Method and apparatus for controlling wireless medium congestion by adjusting contention window size and disassociating selected mobile stations
US20030041164A1 (en) Method of bandwidth management between the stations of a local area network
EP2140622B1 (en) Token bus communication system
JP4220208B2 (en) Deterministic fieldbus and method of managing such a bus
US6522661B1 (en) Method for improving fairness in use of network
US20040233927A1 (en) Method of controlling communications
WO1991009366A1 (en) Method and apparatus for dispersed end-entity flow control in computer networks
US7359436B2 (en) Method for automatic detection of the data rate in a network, particularly a CAN bus type network, and for configuration to the detected data rate, corresponding device
EP0222584A2 (en) A bridge for and a method for routeing signals between local area networks
US7106695B2 (en) Method of allocating bandwidth to the stations of a local area network
JP3217397B2 (en) Data transmission method of communication control device
JPH09247192A (en) Real time communication system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU BR CA JP KR NO SU

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LU NL SE

NENP Non-entry into the national phase

Ref country code: CA