EP0432924A2 - A communication architecture for high speed networking - Google Patents
A communication architecture for high speed networking Download PDFInfo
- Publication number
- EP0432924A2 EP0432924A2 EP90312742A EP90312742A EP0432924A2 EP 0432924 A2 EP0432924 A2 EP 0432924A2 EP 90312742 A EP90312742 A EP 90312742A EP 90312742 A EP90312742 A EP 90312742A EP 0432924 A2 EP0432924 A2 EP 0432924A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- level
- protocol
- host processor
- services
- network
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Definitions
- This invention relates to communications systems and/or networks and, more particularly, to data communications architectures and protocols.
- data communications architectures have structured their services and protocols into a hierarchy of vertical layers. Typically, the services and protocols of an architecture are divided into low-level, i.e., low-layer, services and protocols, and high-level, i.e., high-layer, services and protocols. This layering requires additional software processing to handle functional replication and the overhead inherent in the resulting interlayer interfaces.
- Prior high level data communications protocols have been inflexible because they were optimized for use on a particular type of network which expected to transmit specific types of communications. These prior protocols had fixed characteristics and were unable to adapt to changing user requirements and varying network parameters.
- a new data communications architecture wherein the high level communications services provided to a host processor system are arranged into independent horizontal functions that are processed in parallel, and interfaced to a provider of low-level network protocols and services as well as to an application layer of the host processor system. More specifically, conditional dependencies among the horizontal functions are resolved by a so called connector that interfaces the horizontal functions to an application layer of the host processor. Additionally, performance of the communication system is enhanced by allowing adaptive specification of a high-level protocol employed in the architecture for providing the high-level services. This adaptive specification may be initiated in response to changing user requirements or varying network parameters. Then, a high-level protocol specification is obtained by choosing appropriate values for parameters of the horizontal functions which are parametrically programmable.
- FIG. 1 shows, in simplified block diagram form, the architecture of the Horizontally Oriented Protocol Structure (HOPS) including aspects of the invention
- FIG. 2 shows, in simplified block diagram form, a comparison between the ISO/OSI reference model and the horizontally oriented protocol structure including aspects of the invention
- FIG. 3 shows, in simplified block diagram form, a hardware model of a host processor including aspects of the invention communicating over a network;
- FIG. 4 shows, in simplified block diagram form, the flow of information between the various elements that implement the horizontal functions 105 of communications interface 102 (FIG. 1) as featured in an example implementation of the receive section of the horizontally oriented protocol structure;
- FIG. 5 shows a representative example of a receive section of a minimal functionality communications interface
- FIG. 6 shows, in flowchart form, the sequence of operations performed by the communications interface of FIG. 5 including resolution by a connector of the conditional dependencies in accordance with an aspect of the invention
- FIG. 7 depicts, in flow chart form, an example decision mechanism employed by HOPS controller 414, of FIG. 4, to specify an error control protocol;
- FIG. 8 depicts a packet format, illustrating an aspect of the invention.
- FIG. 9 shows an example of both the transmit and receive sections of an embodiment of communications interface 102.
- a data communication architecture is a structured set of services and corresponding protocols that provide communication services to a host processor system running an application and communicating with a remote host processor system, over a transmission medium, typically a network.
- Data implies a representation of any type of information, for example, user files, voice, video or the like.
- these services and protocols of an architecture are divided into low-level, i.e., low-layer, services and protocols, and high-level, i.e., high-layer, services and protocols.
- Low-level services are well known in the art as the services provided by the physical layer, data link layer and the network layer of the International Standards Organization's Open Systems Interconnect (ISO/OSI) reference model.
- the high-level services are also well known in the art as the services provided by the transport layer, the session layer, the presentation layer and the application layer of the International Standards Organization's Open Systems Interconnect (ISO/OSI) reference model.
- FIG. 1 shows, in simplified block diagram form, a unique data communication architecture known as the Horizontally Oriented Protocol Structure (HOPS), in accordance with an aspect of the invention.
- the horizontally oriented protocol structure architecture is divided into application layer 101, communication interface 102, and network access control 103.
- Application layer 101 includes software residing in host processor system 104 that provides a user application being processed by host processor software with the ability to communicate.
- Communication interface 102 is implemented in special purpose hardware to actually service a communication request as will be further explained.
- Network access control unit 103 passes information received from a network to communication interface 102. The received information, for the sake of clarity, will be referred to hereinafter as packets, but this convention should not be construed as limiting the scope of the invention.
- network access control unit 103 transmits information from communication interface 102 to a network (not shown).
- the transmitted information is also referred to hereinafter as packets, which again should not be construed as limiting the scope of the invention. All the low-level services and the processing to realize them, are performed in network access control unit 103.
- Communication interface 102 includes, in accordance with an aspect of the invention, independent horizontal functions 105-1 through 105-N and connector 106.
- independent horizontal functions 105-1 through 105-N Upon receipt of a packet from network access control unit 103, independent horizontal functions 105-1 through 105-N perform in parallel and in accordance with an aspect of the invention, all the processing required to transfer the data in a received packet to application layer 101. Any dependencies among independent horizontal functions 105 are then resolved by connector 106, and the resulting processed data is transferred to application layer 101. Data to be transmitted by application layer 101 to a remote location is passed through connector 106 to independent horizontal functions 105-1 to 105-N. Typically, in the transmit direction, connector 106 does not perform any operations on the data.
- the data is processed by appropriate ones of independent horizontal functions 105-1 to 105-N, in parallel, formed into packets, in this example, and passed to network access control unit 103 for transmission to a network. It is the novel arrangement of the protocol wherein its functionality is divided into conditionally independent horizontal functions that allows parallel implementation.
- FIG. 2 Shown in FIG. 2 is a comparison of the horizontally oriented protocol structure (HOPS) to the ISO/OSI standard reference model.
- network access control unit 103 of the horizontally oriented protocol structure corresponds functionally to the lower layers, namely, physical layer 201, data-link layer 202 and network layer 203, of the ISO/OSI model.
- Network access control unit 103 of the horizontally oriented protocol structure provides lower-level services to communication interface 102.
- Communication interface 102 of the horizontally oriented protocol structure implements the functionality of the higher-layers namely, transport layer 204, session layer 205 and presentation layer 206, of the ISO/OSI model.
- These higher layers of the ISO/OSI model were traditionally host processor system software based.
- each higher layer was serially executed in sequence by the host processor system. Therefore, the time to process a packet received from the low level by the high level was the sum of the processing time for each of the high layers. Since processing speed has not kept pace with transmission speed, software based implementations of these layers constitute a bottleneck in the communication process.
- communication interface 102 of the horizontally oriented protocol structure is based on special communication hardware. Additionally, independent horizontal functions 105-1 to 105-N are implemented in parallel, reducing the time to process a packet received from network access control unit 103 to the time for executing the most time consuming of independent horizontal functions 105-1 to 105-N and the short time required for connector 106 to resolve any dependencies among independent horizontal functions 105-1 to 105-N.
- FIG. 3 An example communication hardware model for implementing the horizontally oriented protocol structure architecture is shown in FIG. 3. Accordingly, shown are a host processor system 300 comprising dual port memory 301, central processing unit (CPU) 302, input/output (I/O) 303 and host bus 304. Also shown is network interface 305 which is coupled to memory 301 and host bus 304 and via a plurality of high speed transmission links 308 to network access control 306 for communication with network 307.
- Network 307 is, for example, a wide area packet network for interfacing with remote host processor systems (not shown).
- Software in host processor system 300 implements application layer 101 (FIG. 1) and its protocol. It is noted that a section of application layer 101 is generally implemented by the operating system of host processor system 300.
- Network interface 305 in this example, interconnects network access control 306 to host processor system 300 and implements the functionality of communication interface 102 (FIG. 1) of the horizontally oriented protocol structure architecture.
- Network interface 305 receives packets addressed to host processor system 300 from network 307 via network access control 306 and transmits from host processor system 300 output packets to network 307 via network access control 306.
- the presented communication architecture and hardware model permits reduced involvement of host processor system 300 with the time consuming processing of communication. This reduced involvement is manifest in the processing of transport and presentation operations, session operations, and in decreased overhead in the communication between communication interface 102 (FIG. 1) and the operating system of host processor system 300. Additionally, embodiments of the horizontally oriented protocol structure that eliminate buffering and copying of information from the memory of the operating system of host processor system 300 into memory 301 of the user application are implementable.
- Communication interface 102, (FIG. 1) as implemented in network interface 305 can read and write data directly from and to, respectively, the locations of memory 301 allocated to application layer 101. This ability to directly read and write eliminates the involvement of the host processor system in the transfer of data to application layer 101. This result is realizable since memory 301 is a dual port memory. Dual port memory units are well known.
- resequencing of packets is performed directly in memory locations of application layer 101 located in memory 301.
- the application layer of a remote host processor system can require that a sequence of packets must be transferred in its entirety and in a prescribed order to application layer 101, i.e. the sequence of packets is a message. If such a transfer of packets is required, each arriving packet is placed, based upon its sequence number, into an appropriate section of memory 301 assigned to application 101. If the packets do not arrive in sequence number order, memory gaps are created, i.e., locations in memory are left unfilled, in anticipation of the arrival of as yet unarrived packets that are part of the sequence.
- the data from a packet that arrives with a sequence number for which a memory gap has been created is placed into the gap by writing the data into the memory locations assigned to the gap.
- the availability of the data from an entire sequence of packets is signaled to application layer 101 when all the packets comprising the sequence have been received and processed.
- Application layer 101 can then retrieve the data at any subsequent time without the need for any further copying or movement of the data.
- the data from the message is considered as being part of the generally available valid data assigned to application layer 101.
- the sequencing and processing of the received packets is performed by horizontal functions 105-1 to 105-N (FIG. 1) and connector 106 which are implemented by the hardware model.
- communication interface 102 has access to the operating system scheduler and monitor tables of host processor system 300 through memory 301. These scheduler and monitor tables can be directly adjusted by communication interface 102 to indicate reception of a valid unit of data, e.g., a message. Also, these scheduler and monitor tables can be read by communication interface 102 to determine the presence of requests for communication services or the availability and location in memory 301 of data for transmission. Communication interface 102 then takes appropriate action to effect the communication, again without the involvement of host processor system 300. When the scheduler of host processor system 300 is invoked, it checks on the status of pending communication processes by referring to the scheduler and monitor tables. If paging is occurring, communication interface 102 is so informed in order to maintain accurate addressing.
- FIG. 4 shows, in simplified block diagram form, the flow of information between the various sections of communication interface 102 as featured in an example implementation of the receive section of the horizontally oriented protocol structure.
- Packets received from network access control unit 103 are placed into input buffer 401 for storage during processing.
- the packet is then processed in parallel, in this example, by independent horizontal functions error detection 402, flow control 403, congestion control 404, retransmission 405, presentation 406, connection options 407, session management 408 and addressing 410.
- independent horizontal functions are particular versions of independent horizontal functions 105-1 to 105-N of FIG. 1, which are implemented in this example.
- Information extracted by independent horizontal functions error detection 402, flow control 403, congestion control 404, retransmission 405 and session management 408, is communicated to HOPS controller 414 over bi-directional channels 415.
- This information will be processed for purposes of adjusting the actions of the transmit side of the horizontal oriented protocol structure.
- processing can include but is not limited to changing polynomials used for detecting error, adjusting the values of transmission windows values, retransmitting packets and temporarily halting packet transmission.
- independent horizontal functions error detection 402, flow control 403, congestion control 404, retransmission 405 and session management 408, are conceptualized as being connected to their transmit counterparts, represented by transmit section 411.
- the actual dual nature of the structure of the independent horizontal functions will be further defined in conjunction with FIG. 9, described below.
- Information extracted by connection options 407 and session management 408 is sent to update table of flows (TOF) 412.
- Table of flows 412 is a data structure maintained in network interface 305 which actually resides in HOPS controller 414 and keeps track of existing communication connections.
- HOPS controller 414 actually communicates with the independent horizontal functions over bi-directional channels 415.
- Table of flows (TOF) 412 is also shown here separate from HOPS controller 414, again, for clarity purposes.
- the information extracted by independent horizontal functions error control 402, presentation 406, sequencing 409 and addressing 410 is passed to connector 413.
- Connector 413 resolves any conditional dependencies that may exist in the information provided to it and supplies the resulting information to application layer 101.
- a conditional dependency between functions is a state in which the results, i.e. output, of the execution of a first function depends on the results of the execution of a second function. If the required value(s) necessary to obtain the result of the second function are assumed, execution of the first function can proceed in parallel with the execution of the second function. The connector then compares the assumed value(s) with the actual value resulting from execution of the second function. The result of the first function in which the assumed value is equal to the actual value from execution of the second function is selected by the connector. If none of the assumed values match the actual result of the second function then the entire result from the execution of the first function may be abandoned.
- conditional dependency may be resolved by computing any partial results of the first function that are independent of the second function and using the result from the second function to resolve the remaining portion of the computation for the first function. In this case, the remainder of the computation would be performed by connector 413.
- FIG. 5 Shown in FIG. 5 is a representative example of the receive section of a minimal functionality communication interface including connector 501, two independent horizontal functions, namely, presentation 502 and sequencing 503, and input buffer 504.
- Connector 501 interfaces to application layer 505.
- the task of presentation 502 is to resolve any differences in format and data representation between application layer 505 on local host processor system 300 (FIG. 3) and an application layer in a remote host processor system with which application layer 505 is communicating with. This includes, for example, decryption of data received in an encrypted format.
- the data is then ready to be presented to application layer 501.
- the tasks of sequencing 503 includes checking packets for valid sequence numbers and checking packets for duplicate sequence numbers. The data in a packet that is determined to contain a duplicate or invalid sequence number must be discarded.
- the parallel performance of presentation 502 and sequencing 503 allows a conditional dependency between them to arise when presentation 502 would present the data from a packet to application layer 505, (which it has placed into the format required by the application layer), but sequencing 503 has determined that the packet is a duplicate and its data must be discarded.
- the results from presentation 502 actually given to application layer 505 ultimately depends upon sequencing 503. Both the data and an indication of whether the data must be discarded or not are forwarded to connector 501 which resolves the dependency as described below.
- FIG. 6 shows the sequence of operations, in flowchart form, performed by the communication interface of FIG. 5, including resolution by connector 501 of the conditional dependency described above, in accordance with an aspect of the invention. Accordingly, the sequence is entered in step 601. Thereafter, in step 602 the communication interface waits for the arrival of a new packet. Upon receipt of a new packet, steps 603-1 and 603-2 are performed in parallel. Step 603-1 is the operation of the sequencing function which checks to see if the packet is a duplicate. Step 603-2 is the presentation function, where the data contained in the packet is processed and placed into the format required by application layer 501 (FIG. 5).
- sequencing 503 After sequencing 503 has determined if the packet is a duplicate and whether or not it may be accepted, sequencing 503 passes its determination to connector 501.
- Connector 501 also receives the data for application layer 505 that was contained in the packet from presentation 502. The operation of connector 501 begins with conditional branch point 604 (FIG. 6) which tests to determine if a duplicate packet was detected in step 603-1 by sequencing 503. If the test result in step 604 is YES, the data from the packet is not passed to application layer 505 and control is passed back to step 602 to wait for the arrival of a new packet.
- test result in step 604 is NO, the data received from presentation 502 which resulted from the performance of the presentation function in step 603-2 is passed by connector 501 to application layer 505 in step 605. Control is then passed back to step 602 to wait for the arrival of a new packet.
- the horizontally oriented protocol structure is intended to support communication over a diverse set of networks and for diverse application layers. Therefore, a single protocol cannot provide optimum performance. For example, the scheme for the retransmission of packets in cases of improperly received packets is determined by the protocol. The optimum retransmission scheme to be used depends on the quality of the network. Selective packet retransmission is better for networks with large average bit error rates, while go back and retransmit the last N packets may be beneficial in very reliable network transmission environments. Moreover, the requirements for a protocol may change with time and vary from subnet to subnet.
- the horizontally oriented protocol structure incorporates adaptive specification of the actual protocol to be used.
- Communication interface 102 receives information concerning user requirements and network transmission conditions and specifies, via HOPS controller 414 (FIG. 4), an optimum protocol to be used.
- Independent horizontal functions 402 through 410 are parametrically programmable and are capable of receiving parameter values from HOPS controller 414 via bi-directional channels 415. It is noted as shown in FIG. 1 that there can be N such horizontal functions.
- a protocol is specified by determining the values of the parameters that are to be employed by independent horizontal functions 402 through 410.
- the values of the parameters, and thus the protocol, may be changed and updated by HOPS controller 414.
- HOPS controller 414 exchanges information with independent horizontal functions via bi-directional channels 415. Channels 415 transmit status information from the independent horizontal functions to HOPS controller 414 and transmit control information from HOPS controller 414 to the independent horizontal functions. Information received by HOPS controller 414 is used by it to determine the values it specifies for use in the protocol.
- FIG. 7 depicts, in flow chart form, an example decision mechanism employed by HOPS controller 414 to specify the error detection protocol.
- each packet uses a polynomial based cyclic redundancy check for the detection of errors in the data section of a packet.
- the polynomial appropriate for use depends on the error statistics.
- the polynomial to be used must be agreed upon by both the local host processor system and the remote host processor system for valid communication to take place.
- determining the appropriate polynomial determines the error protocol.
- the parameter that determines the error protocol is, in this example, called ERRPARAM.
- ERRPARAM can be assigned a value of 1 or 2. A value of 1 assigned to ERRPARAM specifies a more sophisticated error protocol while a value of 2 assigned to ERRPARAM specifies a less sophisticated error protocol as discussed below.
- step 701 initialization of the error statistic is performed. Thereafter, the system waits in step 702 until a new packet arrives. When a new packet arrives, control is passed to step 703 and step 704 in parallel.
- step 703 HOPS controller 414 retrieves the error statistic.
- the error statistic in this example, is a time average of error distribution. It is maintained by HOPS controller 414 (FIG. 4).
- step 704 the error statistic is updated based upon information concerning errors in the current packet from independent horizontal function error detection 402.
- conditional branch point 705 tests if the errors statistic is greater than THRESHOLD.
- THRESHOLD is a value representative of a fixed predetermined percentage of packets received with errors. If the test result in step 705 is YES, control is passed to step 706 wherein HOPS controller 414 specifies the error protocol. This specification is done by setting the value of ERRPARAM to 1 and communicating the value to the transmit section of the error detecting function (FIG. 9) over the appropriate one of bi-directional channels 415. The error detecting function, upon receipt of the new value for ERRPARAM proceeds to use the more sophisticated one of a set of two (2) predetermined polynomials to calculate the error detecting code, i.e., cyclic redundancy check.
- step 705 control is passed back to step 702 to wait for another packet.
- step 707 HOPS controller 414 specifies the error protocol. Again, the specification is done by setting the value of ERRPARAM. In this case ERRPARAM is set to 2 and its value is communicated to the transmit section of the error detecting function (FIG. 9) over the appropriate one of bi-directional channels 415.
- the error detecting function upon receipt of the new value for ERRPARAM proceeds to use the predetermined less sophisticated polynomial of the set of polynomials in the error detecting code.
- the polynomial to be used must be agreed upon by both the local host processor system and the remote host processor system for valid communication to take place.
- the value of the parameter for the error protocol is specified, in this example, by determining the appropriate polynomial.
- the current values of the parameters in the specified protocol are communicated throughout the network. This communication of parameters may be done by using special option fields 801 in an example packet format, as shown in FIG. 8.
- the packet format has two cyclic redundancy checks (CRC).
- a first cyclic redundancy check header CRC 802 is calculated based only on information contained in fields of header 803.
- a second cyclic redundancy check data CRC 804 is calculated based only on information contained in data field 805.
- a cyclic redundancy check is an error checking and correcting code based on a specified polynomial. It is again noted that for this example, the operation of HOPS controller 414 as shown in FIG.
- the example packet format in FIG. 8 includes error-control field 806 which is examined upon packet receipt by error detection 402 to determine which polynomial to use for calculating the cyclic redundancy check for the data in the packet.
- special packets may be sent for the express purpose of communicating the function parameter values throughout the network.
- FIG. 9 Shown in FIG. 9 is an example of both the transmit and receive sections of communication interface 102. This should clarify the interconnection and integration of the various elements discussed above. Thus, this example shows that the table of flows is actually maintained in the HOPS controller, as mentioned. Also, as discussed, a connector in the transmit direction generally performs no function and therefore is not shown. The symmetrical nature of the receive and transmit sections of the independent horizontal functions is shown. Each function is denoted by the same number assigned to it in FIG. 4 with an additional denotation of "R" for the receive section and "T" for the transmit section. Note that FIG. 9 does not imply any particular implementation or limit the scope of the invention in any way. Further, error correction abilities are implemented in error control unit 901.
- This error correction is done "on the fly", i.e., at the same time as the packet is being transferred from network access control 103 to input buffer 401. Any errors not correctable are then detected by independent horizontal function error detection 402. HOPS controller 414 communicates with error control unit 901 in the same manner as with the independent horizontal functions, i.e. via one of bi-directional channels 415.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
Description
- This invention relates to communications systems and/or networks and, more particularly, to data communications architectures and protocols.
- The transmission speed in wide-, metropolitan-, and local-area networking has increased over the past decade six orders of magnitude, from Kbps to Gbps. During the same time period, however, the speed of commercial processing units that can be employed as communications processors has increased only two to three orders of magnitude. Additionally, data communications architectures have structured their services and protocols into a hierarchy of vertical layers. Typically, the services and protocols of an architecture are divided into low-level, i.e., low-layer, services and protocols, and high-level, i.e., high-layer, services and protocols. This layering requires additional software processing to handle functional replication and the overhead inherent in the resulting interlayer interfaces. The discrepancy between transmission speed and processing speed, coupled with the extra processing requirements of the data communications architecture, creates a so called "bottleneck" in the data communications process. This bottleneck exists because, for any communication, the time required by the software to process high-level protocols is greater than the corresponding time required by the transmission facility. Today, the mismatch between a network's transmission speed and its high-level processing ability is so great that the advantages of having high-speed transmission facilities present in a network are subsumed in the delays caused by the large processing requirements of the high-level functionality.
- Prior high level data communications protocols have been inflexible because they were optimized for use on a particular type of network which expected to transmit specific types of communications. These prior protocols had fixed characteristics and were unable to adapt to changing user requirements and varying network parameters.
- The difficulties in prior data communications systems are overcome, in accordance with an aspect of the invention, by a new data communications architecture wherein the high level communications services provided to a host processor system are arranged into independent horizontal functions that are processed in parallel, and interfaced to a provider of low-level network protocols and services as well as to an application layer of the host processor system. More specifically, conditional dependencies among the horizontal functions are resolved by a so called connector that interfaces the horizontal functions to an application layer of the host processor. Additionally, performance of the communication system is enhanced by allowing adaptive specification of a high-level protocol employed in the architecture for providing the high-level services. This adaptive specification may be initiated in response to changing user requirements or varying network parameters. Then, a high-level protocol specification is obtained by choosing appropriate values for parameters of the horizontal functions which are parametrically programmable.
- In the Drawing:
- FIG. 1 shows, in simplified block diagram form, the architecture of the Horizontally Oriented Protocol Structure (HOPS) including aspects of the invention;
- FIG. 2 shows, in simplified block diagram form, a comparison between the ISO/OSI reference model and the horizontally oriented protocol structure including aspects of the invention;
- FIG. 3 shows, in simplified block diagram form, a hardware model of a host processor including aspects of the invention communicating over a network;
- FIG. 4 shows, in simplified block diagram form, the flow of information between the various elements that implement the
horizontal functions 105 of communications interface 102 (FIG. 1) as featured in an example implementation of the receive section of the horizontally oriented protocol structure; - FIG. 5 shows a representative example of a receive section of a minimal functionality communications interface;
- FIG. 6 shows, in flowchart form, the sequence of operations performed by the communications interface of FIG. 5 including resolution by a connector of the conditional dependencies in accordance with an aspect of the invention;
- FIG. 7 depicts, in flow chart form, an example decision mechanism employed by HOPS
controller 414, of FIG. 4, to specify an error control protocol; - FIG. 8 depicts a packet format, illustrating an aspect of the invention; and
- FIG. 9 shows an example of both the transmit and receive sections of an embodiment of
communications interface 102. - A data communication architecture, as is well known in the art, is a structured set of services and corresponding protocols that provide communication services to a host processor system running an application and communicating with a remote host processor system, over a transmission medium, typically a network. Data implies a representation of any type of information, for example, user files, voice, video or the like. Typically, these services and protocols of an architecture are divided into low-level, i.e., low-layer, services and protocols, and high-level, i.e., high-layer, services and protocols. Low-level services are well known in the art as the services provided by the physical layer, data link layer and the network layer of the International Standards Organization's Open Systems Interconnect (ISO/OSI) reference model. The high-level services are also well known in the art as the services provided by the transport layer, the session layer, the presentation layer and the application layer of the International Standards Organization's Open Systems Interconnect (ISO/OSI) reference model.
- FIG. 1 shows, in simplified block diagram form, a unique data communication architecture known as the Horizontally Oriented Protocol Structure (HOPS), in accordance with an aspect of the invention. The horizontally oriented protocol structure architecture is divided into
application layer 101,communication interface 102, andnetwork access control 103.Application layer 101 includes software residing inhost processor system 104 that provides a user application being processed by host processor software with the ability to communicate.Communication interface 102 is implemented in special purpose hardware to actually service a communication request as will be further explained. Networkaccess control unit 103 passes information received from a network tocommunication interface 102. The received information, for the sake of clarity, will be referred to hereinafter as packets, but this convention should not be construed as limiting the scope of the invention. Additionally, networkaccess control unit 103 transmits information fromcommunication interface 102 to a network (not shown). The transmitted information is also referred to hereinafter as packets, which again should not be construed as limiting the scope of the invention. All the low-level services and the processing to realize them, are performed in networkaccess control unit 103. -
Communication interface 102 includes, in accordance with an aspect of the invention, independent horizontal functions 105-1 through 105-N andconnector 106. Upon receipt of a packet from networkaccess control unit 103, independent horizontal functions 105-1 through 105-N perform in parallel and in accordance with an aspect of the invention, all the processing required to transfer the data in a received packet toapplication layer 101. Any dependencies among independenthorizontal functions 105 are then resolved byconnector 106, and the resulting processed data is transferred toapplication layer 101. Data to be transmitted byapplication layer 101 to a remote location is passed throughconnector 106 to independent horizontal functions 105-1 to 105-N. Typically, in the transmit direction,connector 106 does not perform any operations on the data. The data is processed by appropriate ones of independent horizontal functions 105-1 to 105-N, in parallel, formed into packets, in this example, and passed to networkaccess control unit 103 for transmission to a network. It is the novel arrangement of the protocol wherein its functionality is divided into conditionally independent horizontal functions that allows parallel implementation. - Shown in FIG. 2 is a comparison of the horizontally oriented protocol structure (HOPS) to the ISO/OSI standard reference model. As shown, network
access control unit 103 of the horizontally oriented protocol structure corresponds functionally to the lower layers, namely,physical layer 201, data-link layer 202 andnetwork layer 203, of the ISO/OSI model. Networkaccess control unit 103 of the horizontally oriented protocol structure provides lower-level services tocommunication interface 102.Communication interface 102 of the horizontally oriented protocol structure implements the functionality of the higher-layers namely,transport layer 204,session layer 205 andpresentation layer 206, of the ISO/OSI model. These higher layers of the ISO/OSI model were traditionally host processor system software based. Also, each higher layer was serially executed in sequence by the host processor system. Therefore, the time to process a packet received from the low level by the high level was the sum of the processing time for each of the high layers. Since processing speed has not kept pace with transmission speed, software based implementations of these layers constitute a bottleneck in the communication process. In contrast,communication interface 102 of the horizontally oriented protocol structure is based on special communication hardware. Additionally, independent horizontal functions 105-1 to 105-N are implemented in parallel, reducing the time to process a packet received from networkaccess control unit 103 to the time for executing the most time consuming of independent horizontal functions 105-1 to 105-N and the short time required forconnector 106 to resolve any dependencies among independent horizontal functions 105-1 to 105-N. - An example communication hardware model for implementing the horizontally oriented protocol structure architecture is shown in FIG. 3. Accordingly, shown are a
host processor system 300 comprisingdual port memory 301, central processing unit (CPU) 302, input/output (I/O) 303 andhost bus 304. Also shown isnetwork interface 305 which is coupled tomemory 301 andhost bus 304 and via a plurality of highspeed transmission links 308 tonetwork access control 306 for communication withnetwork 307.Network 307 is, for example, a wide area packet network for interfacing with remote host processor systems (not shown). Software inhost processor system 300 implements application layer 101 (FIG. 1) and its protocol. It is noted that a section ofapplication layer 101 is generally implemented by the operating system ofhost processor system 300.Network interface 305, in this example, interconnectsnetwork access control 306 tohost processor system 300 and implements the functionality of communication interface 102 (FIG. 1) of the horizontally oriented protocol structure architecture.Network interface 305 receives packets addressed to hostprocessor system 300 fromnetwork 307 vianetwork access control 306 and transmits fromhost processor system 300 output packets to network 307 vianetwork access control 306. - The presented communication architecture and hardware model permits reduced involvement of
host processor system 300 with the time consuming processing of communication. This reduced involvement is manifest in the processing of transport and presentation operations, session operations, and in decreased overhead in the communication between communication interface 102 (FIG. 1) and the operating system ofhost processor system 300. Additionally, embodiments of the horizontally oriented protocol structure that eliminate buffering and copying of information from the memory of the operating system ofhost processor system 300 intomemory 301 of the user application are implementable.Communication interface 102, (FIG. 1) as implemented innetwork interface 305, can read and write data directly from and to, respectively, the locations ofmemory 301 allocated toapplication layer 101. This ability to directly read and write eliminates the involvement of the host processor system in the transfer of data toapplication layer 101. This result is realizable sincememory 301 is a dual port memory. Dual port memory units are well known. - In an example embodiment, resequencing of packets, is performed directly in memory locations of
application layer 101 located inmemory 301. As part of the communication process, the application layer of a remote host processor system can require that a sequence of packets must be transferred in its entirety and in a prescribed order toapplication layer 101, i.e. the sequence of packets is a message. If such a transfer of packets is required, each arriving packet is placed, based upon its sequence number, into an appropriate section ofmemory 301 assigned toapplication 101. If the packets do not arrive in sequence number order, memory gaps are created, i.e., locations in memory are left unfilled, in anticipation of the arrival of as yet unarrived packets that are part of the sequence. The data from a packet that arrives with a sequence number for which a memory gap has been created is placed into the gap by writing the data into the memory locations assigned to the gap. The availability of the data from an entire sequence of packets is signaled toapplication layer 101 when all the packets comprising the sequence have been received and processed.Application layer 101 can then retrieve the data at any subsequent time without the need for any further copying or movement of the data. The data from the message is considered as being part of the generally available valid data assigned toapplication layer 101. Again, the sequencing and processing of the received packets is performed by horizontal functions 105-1 to 105-N (FIG. 1) andconnector 106 which are implemented by the hardware model. - Further, in an example embodiment,
communication interface 102 has access to the operating system scheduler and monitor tables ofhost processor system 300 throughmemory 301. These scheduler and monitor tables can be directly adjusted bycommunication interface 102 to indicate reception of a valid unit of data, e.g., a message. Also, these scheduler and monitor tables can be read bycommunication interface 102 to determine the presence of requests for communication services or the availability and location inmemory 301 of data for transmission.Communication interface 102 then takes appropriate action to effect the communication, again without the involvement ofhost processor system 300. When the scheduler ofhost processor system 300 is invoked, it checks on the status of pending communication processes by referring to the scheduler and monitor tables. If paging is occurring,communication interface 102 is so informed in order to maintain accurate addressing. - FIG. 4 shows, in simplified block diagram form, the flow of information between the various sections of
communication interface 102 as featured in an example implementation of the receive section of the horizontally oriented protocol structure. Packets received from networkaccess control unit 103 are placed intoinput buffer 401 for storage during processing. The packet is then processed in parallel, in this example, by independent horizontalfunctions error detection 402,flow control 403,congestion control 404,retransmission 405,presentation 406,connection options 407,session management 408 and addressing 410. These independent horizontal functions are particular versions of independent horizontal functions 105-1 to 105-N of FIG. 1, which are implemented in this example. - Information extracted by independent horizontal
functions error detection 402,flow control 403,congestion control 404,retransmission 405 andsession management 408, is communicated toHOPS controller 414 overbi-directional channels 415. This information will be processed for purposes of adjusting the actions of the transmit side of the horizontal oriented protocol structure. Such processing can include but is not limited to changing polynomials used for detecting error, adjusting the values of transmission windows values, retransmitting packets and temporarily halting packet transmission. Although the actual processing and transfer of information to the transmit side is done byHOPS controller 414, for purposes of clarity of flow of information and function, independent horizontalfunctions error detection 402,flow control 403,congestion control 404,retransmission 405 andsession management 408, are conceptualized as being connected to their transmit counterparts, represented by transmitsection 411. The actual dual nature of the structure of the independent horizontal functions will be further defined in conjunction with FIG. 9, described below. Information extracted byconnection options 407 andsession management 408 is sent to update table of flows (TOF) 412. Table offlows 412 is a data structure maintained innetwork interface 305 which actually resides inHOPS controller 414 and keeps track of existing communication connections. HOPScontroller 414 actually communicates with the independent horizontal functions overbi-directional channels 415. Table of flows (TOF) 412 is also shown here separate fromHOPS controller 414, again, for clarity purposes. The information extracted by independent horizontalfunctions error control 402,presentation 406, sequencing 409 and addressing 410 is passed toconnector 413.Connector 413 resolves any conditional dependencies that may exist in the information provided to it and supplies the resulting information toapplication layer 101. - A conditional dependency between functions is a state in which the results, i.e. output, of the execution of a first function depends on the results of the execution of a second function. If the required value(s) necessary to obtain the result of the second function are assumed, execution of the first function can proceed in parallel with the execution of the second function. The connector then compares the assumed value(s) with the actual value resulting from execution of the second function. The result of the first function in which the assumed value is equal to the actual value from execution of the second function is selected by the connector. If none of the assumed values match the actual result of the second function then the entire result from the execution of the first function may be abandoned. Alternatively, a conditional dependency may be resolved by computing any partial results of the first function that are independent of the second function and using the result from the second function to resolve the remaining portion of the computation for the first function. In this case, the remainder of the computation would be performed by
connector 413. - For brevity and clarity of description, a simple example of the operation of a communication interface using a connector, in accordance with an aspect of the invention, to resolve conditional dependencies is presented in FIG. 5 and FIG. 6. Shown in FIG. 5 is a representative example of the receive section of a minimal functionality communication
interface including connector 501, two independent horizontal functions, namely,presentation 502 andsequencing 503, andinput buffer 504.Connector 501 interfaces toapplication layer 505. The task ofpresentation 502 is to resolve any differences in format and data representation betweenapplication layer 505 on local host processor system 300 (FIG. 3) and an application layer in a remote host processor system with whichapplication layer 505 is communicating with. This includes, for example, decryption of data received in an encrypted format. The data is then ready to be presented toapplication layer 501. The tasks ofsequencing 503 includes checking packets for valid sequence numbers and checking packets for duplicate sequence numbers. The data in a packet that is determined to contain a duplicate or invalid sequence number must be discarded. The parallel performance ofpresentation 502 andsequencing 503 allows a conditional dependency between them to arise whenpresentation 502 would present the data from a packet toapplication layer 505, (which it has placed into the format required by the application layer), but sequencing 503 has determined that the packet is a duplicate and its data must be discarded. Thus, the results frompresentation 502 actually given toapplication layer 505 ultimately depends uponsequencing 503. Both the data and an indication of whether the data must be discarded or not are forwarded toconnector 501 which resolves the dependency as described below. - FIG. 6 shows the sequence of operations, in flowchart form, performed by the communication interface of FIG. 5, including resolution by
connector 501 of the conditional dependency described above, in accordance with an aspect of the invention. Accordingly, the sequence is entered instep 601. Thereafter, instep 602 the communication interface waits for the arrival of a new packet. Upon receipt of a new packet, steps 603-1 and 603-2 are performed in parallel. Step 603-1 is the operation of the sequencing function which checks to see if the packet is a duplicate. Step 603-2 is the presentation function, where the data contained in the packet is processed and placed into the format required by application layer 501 (FIG. 5). After sequencing 503 has determined if the packet is a duplicate and whether or not it may be accepted, sequencing 503 passes its determination toconnector 501.Connector 501 also receives the data forapplication layer 505 that was contained in the packet frompresentation 502. The operation ofconnector 501 begins with conditional branch point 604 (FIG. 6) which tests to determine if a duplicate packet was detected in step 603-1 by sequencing 503. If the test result instep 604 is YES, the data from the packet is not passed toapplication layer 505 and control is passed back to step 602 to wait for the arrival of a new packet. If the test result instep 604 is NO, the data received frompresentation 502 which resulted from the performance of the presentation function in step 603-2 is passed byconnector 501 toapplication layer 505 instep 605. Control is then passed back to step 602 to wait for the arrival of a new packet. - The horizontally oriented protocol structure is intended to support communication over a diverse set of networks and for diverse application layers. Therefore, a single protocol cannot provide optimum performance. For example, the scheme for the retransmission of packets in cases of improperly received packets is determined by the protocol. The optimum retransmission scheme to be used depends on the quality of the network. Selective packet retransmission is better for networks with large average bit error rates, while go back and retransmit the last N packets may be beneficial in very reliable network transmission environments. Moreover, the requirements for a protocol may change with time and vary from subnet to subnet. (A subnet is a set of nodes, links and interfaces which are part of the communications network.) For example, increasing congestion may change retransmission policy or the required error control mechanism may differ from subnet to subnet. Therefore, in accordance with an aspect of the invention, the horizontally oriented protocol structure incorporates adaptive specification of the actual protocol to be used.
Communication interface 102 receives information concerning user requirements and network transmission conditions and specifies, via HOPS controller 414 (FIG. 4), an optimum protocol to be used. Independenthorizontal functions 402 through 410, in this example, are parametrically programmable and are capable of receiving parameter values fromHOPS controller 414 viabi-directional channels 415. It is noted as shown in FIG. 1 that there can be N such horizontal functions. Thus, a protocol is specified by determining the values of the parameters that are to be employed by independenthorizontal functions 402 through 410. The values of the parameters, and thus the protocol, may be changed and updated byHOPS controller 414. In addition to specifying parameters, HOPScontroller 414 exchanges information with independent horizontal functions viabi-directional channels 415.Channels 415 transmit status information from the independent horizontal functions toHOPS controller 414 and transmit control information fromHOPS controller 414 to the independent horizontal functions. Information received byHOPS controller 414 is used by it to determine the values it specifies for use in the protocol. - For brevity and clarity of description, FIG. 7 depicts, in flow chart form, an example decision mechanism employed by
HOPS controller 414 to specify the error detection protocol. In this example, each packet uses a polynomial based cyclic redundancy check for the detection of errors in the data section of a packet. The polynomial appropriate for use depends on the error statistics. The polynomial to be used must be agreed upon by both the local host processor system and the remote host processor system for valid communication to take place. Thus, determining the appropriate polynomial, in this example, determines the error protocol. The parameter that determines the error protocol is, in this example, called ERRPARAM. ERRPARAM can be assigned a value of 1 or 2. A value of 1 assigned to ERRPARAM specifies a more sophisticated error protocol while a value of 2 assigned to ERRPARAM specifies a less sophisticated error protocol as discussed below. - Accordingly, the sequence is entered on communication start up via
step 701 wherein initialization of the error statistic is performed. Thereafter, the system waits instep 702 until a new packet arrives. When a new packet arrives, control is passed to step 703 and step 704 in parallel. Instep 703HOPS controller 414 retrieves the error statistic. The error statistic, in this example, is a time average of error distribution. It is maintained by HOPS controller 414 (FIG. 4). Simultaneously, instep 704, the error statistic is updated based upon information concerning errors in the current packet from independent horizontalfunction error detection 402. Next,conditional branch point 705 tests if the errors statistic is greater than THRESHOLD. In this example, THRESHOLD is a value representative of a fixed predetermined percentage of packets received with errors. If the test result instep 705 is YES, control is passed to step 706 whereinHOPS controller 414 specifies the error protocol. This specification is done by setting the value of ERRPARAM to 1 and communicating the value to the transmit section of the error detecting function (FIG. 9) over the appropriate one ofbi-directional channels 415. The error detecting function, upon receipt of the new value for ERRPARAM proceeds to use the more sophisticated one of a set of two (2) predetermined polynomials to calculate the error detecting code, i.e., cyclic redundancy check. Such polynomials, methods of detecting error and their relative sophistication are well known to those skilled in the art. Then, control is passed back to step 702 to wait for another packet. If the test result instep 705 was NO, then instep 707, HOPScontroller 414 specifies the error protocol. Again, the specification is done by setting the value of ERRPARAM. In this case ERRPARAM is set to 2 and its value is communicated to the transmit section of the error detecting function (FIG. 9) over the appropriate one ofbi-directional channels 415. The error detecting function, upon receipt of the new value for ERRPARAM proceeds to use the predetermined less sophisticated polynomial of the set of polynomials in the error detecting code. Again, such polynomials, methods of detecting error and their relative sophistication are well known to those skilled in the art. Control then passes back to step 702 to wait for another packet. As mentioned, the polynomial to be used must be agreed upon by both the local host processor system and the remote host processor system for valid communication to take place. Thus, the value of the parameter for the error protocol is specified, in this example, by determining the appropriate polynomial. - The current values of the parameters in the specified protocol are communicated throughout the network. This communication of parameters may be done by using
special option fields 801 in an example packet format, as shown in FIG. 8. In this example, the packet format has two cyclic redundancy checks (CRC). A first cyclic redundancycheck header CRC 802 is calculated based only on information contained in fields ofheader 803. A second cyclic redundancycheck data CRC 804 is calculated based only on information contained indata field 805. A cyclic redundancy check, as mentioned above, is an error checking and correcting code based on a specified polynomial. It is again noted that for this example, the operation ofHOPS controller 414 as shown in FIG. 7 in determining the particular polynomial used to calculate the cyclic redundancy check applies only todata CRC 804 fordata field 805. Determination of the validity ofheader 803 at the remote location, is based upon a single fixed predetermined polynomial for calculating header CRC 802 (since headers are normally short there is usually no need for complex polynomials). The example packet format in FIG. 8 includes error-control field 806 which is examined upon packet receipt byerror detection 402 to determine which polynomial to use for calculating the cyclic redundancy check for the data in the packet. Alternatively, special packets may be sent for the express purpose of communicating the function parameter values throughout the network. - Shown in FIG. 9 is an example of both the transmit and receive sections of
communication interface 102. This should clarify the interconnection and integration of the various elements discussed above. Thus, this example shows that the table of flows is actually maintained in the HOPS controller, as mentioned. Also, as discussed, a connector in the transmit direction generally performs no function and therefore is not shown. The symmetrical nature of the receive and transmit sections of the independent horizontal functions is shown. Each function is denoted by the same number assigned to it in FIG. 4 with an additional denotation of "R" for the receive section and "T" for the transmit section. Note that FIG. 9 does not imply any particular implementation or limit the scope of the invention in any way. Further, error correction abilities are implemented inerror control unit 901. This error correction is done "on the fly", i.e., at the same time as the packet is being transferred fromnetwork access control 103 to inputbuffer 401. Any errors not correctable are then detected by independent horizontalfunction error detection 402. HOPScontroller 414 communicates witherror control unit 901 in the same manner as with the independent horizontal functions, i.e. via one ofbi-directional channels 415.
Claims (11)
- Apparatus for providing high-level non-application layer services between low-level services interfacing a network and application layer services of a host processor, the apparatus being CHARACTERIZED BY:a plurality of independent parallel horizontally oriented function means for providing a plurality of high-level communication services;means for interfacing said plurality of parallel horizontally oriented function means to said low-level services; andmeans for interfacing said plurality of parallel horizontally oriented function means to said application layer services.
- The apparatus as defined in claim 1 CHARACTERIZED IN THAT said means for interfacing to said application layer services includes means for resolving dependencies among said plurality of parallel horizontally oriented function means.
- The apparatus as defined in claim 1 CHARACTERIZED IN THAT each of said plurality of parallel horizontally oriented function means includes means for receiving and responding to parametric programming.
- The invention as defined in claim 1 further CHARACTERIZED BY means for adaptively specifying an actual high-level protocol to be used in communication between said high-level service means of said host processor and a high-level services providing means of another host processor attached to said network.
- The invention as defined in claim 4 CHARACTERIZED IN THAT said means for adaptively specifying said actual high level protocol to be used determines the actual protocol in response to a determination of changed user requirements.
- The invention as defined in claim 4 CHARACTERIZED IN THAT said means for adaptively specifying said actual high-level protocol to be used determines the actual protocol in response to a determination of variations in network transmission conditions.
- The invention as defined in claim 4 further CHARACTERIZED BY means for communicating a specification of said specified protocol between said high-level service means of said host processor and a high-level services providing means of another host processor in said network.
- The invention as defined in claim 4 further CHARACTERIZED BY means for generating and transmitting special packets containing a representation of a specification of a section of said specified protocol and means for interfacing said special packets to said network.
- The invention as defined in claim 4 further CHARACTERIZED BY means for generating one or more special option fields to be included in a header of a packet, said one or more special option fields containing a representation of a specification of a section of said specified protocol is represented and means for inserting said generated option fields into said packet header.
- The invention as defined in claim 4 CHARACTERIZED IN THAT each of said plurality of parallel horizontally oriented function means includes means for receiving and responding to parametric programming and said means for adaptively specifying said actual high-level protocol to be used includes means for choosing values of parameters to be used by said independent horizontal functions.
- The invention as defined in claim 10 further CHARACTERIZED BY means for receiving special packets wherein a specification of a section of said specified protocol is represented and means for changing values of parameters used by said independent horizontal functions in response to said received representation.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/449,201 US5115432A (en) | 1989-12-12 | 1989-12-12 | Communication architecture for high speed networking |
US449201 | 1989-12-12 |
Publications (3)
Publication Number | Publication Date |
---|---|
EP0432924A2 true EP0432924A2 (en) | 1991-06-19 |
EP0432924A3 EP0432924A3 (en) | 1992-07-08 |
EP0432924B1 EP0432924B1 (en) | 1997-08-13 |
Family
ID=23783291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP90312742A Expired - Lifetime EP0432924B1 (en) | 1989-12-12 | 1990-11-22 | A communication architecture for high speed networking |
Country Status (4)
Country | Link |
---|---|
US (1) | US5115432A (en) |
EP (1) | EP0432924B1 (en) |
JP (1) | JPH0831893B2 (en) |
DE (1) | DE69031266T2 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996013924A1 (en) * | 1994-10-31 | 1996-05-09 | International Business Machines Corporation | Device for the transmission of data streams in data-communication networks |
EP0749597A1 (en) * | 1994-01-10 | 1996-12-27 | Amdahl Corporation | Distributed protocol framework |
WO1997004573A1 (en) * | 1995-07-20 | 1997-02-06 | Telia Ab | Procedure for modification of a protocol by means of an adaptive protocol |
WO1998045994A2 (en) * | 1997-04-04 | 1998-10-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Method, communication network and service access interface in an osi environment |
EP1014643A2 (en) * | 1998-12-04 | 2000-06-28 | Hitachi, Ltd. | Network interface unit |
US6282202B1 (en) | 1994-10-24 | 2001-08-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for internal communication in a telecommunications system |
EP1530761A2 (en) * | 2001-09-19 | 2005-05-18 | Bay Microsystems, Inc. | Vertical instruction and data processing in a network processor architecture |
WO2006117273A1 (en) * | 2005-05-02 | 2006-11-09 | Siemens Aktiengesellschaft | Method for communicating between two nodes in a group of networks |
WO2019038094A1 (en) | 2017-08-22 | 2019-02-28 | Robert Bosch Gmbh | Method for producing a shaped component, and shaped component produced by means of such a method |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7537167B1 (en) | 1993-08-31 | 2009-05-26 | Broadcom Corporation | Modular, portable data processing terminal for use in a radio frequency communication network |
US7383038B2 (en) * | 1990-01-18 | 2008-06-03 | Broadcom Corporation | Modular, portable data processing terminal for use in a radio frequency communication network |
US5235597A (en) * | 1991-03-08 | 1993-08-10 | International Business Machines Corp. | Synchronizing asynchronous protocol interactions between peer layers in different nodes of a layered communication network |
US5224098A (en) * | 1991-07-17 | 1993-06-29 | International Business Machines Corporation | Compensation for mismatched transport protocols in a data communications network |
GB2264843B (en) * | 1992-02-28 | 1995-09-20 | Texas Instruments Ltd | An interface device for coupling a host device having a network interface to a computer network having a predetermined communications medium |
US5390173A (en) * | 1992-10-22 | 1995-02-14 | Digital Equipment Corporation | Packet format in hub for packet data communications system |
US5481735A (en) * | 1992-12-28 | 1996-01-02 | Apple Computer, Inc. | Method for modifying packets that meet a particular criteria as the packets pass between two layers in a network |
GB2274230B (en) * | 1993-01-07 | 1996-05-15 | Digital Equipment Int | Communication systems |
US5572674A (en) * | 1993-01-07 | 1996-11-05 | Bmc Software, Inc. | Method of dynamically adjusting SNA network control program parameters |
US5631935A (en) * | 1993-05-06 | 1997-05-20 | Run-Rad Unlimited Networking, Ltd. | Method and apparatus for governing information transfer using an efficient transport protocol |
US7853254B2 (en) | 1993-08-31 | 2010-12-14 | Broadcom Corp. | Modular, portable data processing terminal for use in a radio frequency communication network |
SE502423C2 (en) * | 1994-02-15 | 1995-10-16 | Ellemtel Utvecklings Ab | Systems for managing interaction between additional services in a telecommunications system |
US5598534A (en) * | 1994-09-21 | 1997-01-28 | Lucent Technologies Inc. | Simultaneous verify local database and using wireless communication to verify remote database |
US5590122A (en) * | 1994-12-22 | 1996-12-31 | Emc Corporation | Method and apparatus for reordering frames |
US5594721A (en) * | 1994-12-28 | 1997-01-14 | Lucent Technologies Inc. | Method and system for implementing an application protocol in a communication network |
US5983271A (en) * | 1997-02-06 | 1999-11-09 | Paradyne Corporation | Method for processing asynchronous low-level protocols in a communication device to off load the main processor |
US6226680B1 (en) * | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US6477143B1 (en) | 1998-01-25 | 2002-11-05 | Dror Ginossar | Method and apparatus for packet network congestion avoidance and control |
US6651107B1 (en) * | 1999-09-21 | 2003-11-18 | Intel Corporation | Reduced hardware network adapter and communication |
US6988141B1 (en) * | 2000-05-17 | 2006-01-17 | Ricoh Company, Ltd. | Method and system of remote diagnostic, control and information collection using a dynamic linked library of multiple formats and multiple protocols with restriction on protocol |
US6404772B1 (en) * | 2000-07-27 | 2002-06-11 | Symbol Technologies, Inc. | Voice and data wireless communications network and method |
US8185615B1 (en) * | 2000-11-28 | 2012-05-22 | Verizon Business Global Llc | Message, control and reporting interface for a distributed network access system |
US7657628B1 (en) | 2000-11-28 | 2010-02-02 | Verizon Business Global Llc | External processor for a distributed network access system |
US7046680B1 (en) | 2000-11-28 | 2006-05-16 | Mci, Inc. | Network access system including a programmable access device having distributed service control |
US8180870B1 (en) | 2000-11-28 | 2012-05-15 | Verizon Business Global Llc | Programmable access device for a distributed network access system |
US6881900B2 (en) * | 2003-07-03 | 2005-04-19 | Alan P. Halbert | Ceiling box safety mounting bracket |
US8005972B2 (en) * | 2006-06-26 | 2011-08-23 | International Business Machines Corporation | Detection of inconsistent data in communications networks |
US7613840B2 (en) * | 2006-08-17 | 2009-11-03 | General Electric Company | Methods and apparatus for dynamic data acquisition configuration parameters |
WO2010051575A1 (en) | 2008-11-10 | 2010-05-14 | Zomojo Pty Ltd | Improved automated trading system |
US9154460B1 (en) * | 2014-02-12 | 2015-10-06 | Sonus Networks, Inc. | Methods and apparatus for denial of service resistant policing of packets |
CN112929497B (en) * | 2021-01-10 | 2023-09-22 | 上海博路信息技术有限公司 | Method for permitting communication |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61264945A (en) * | 1985-05-20 | 1986-11-22 | Mitsubishi Electric Corp | Protocol parallel processing system of communication processor |
JPS62256062A (en) * | 1986-04-30 | 1987-11-07 | Mitsubishi Electric Corp | Protocol parallel processing system for communication processor |
JPH02137555A (en) * | 1988-11-18 | 1990-05-25 | Mitsubishi Electric Corp | Protocol parallel processing system for communication processor unit |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4935870A (en) * | 1986-12-15 | 1990-06-19 | Keycom Electronic Publishing | Apparatus for downloading macro programs and executing a downloaded macro program responding to activation of a single key |
US4961133A (en) * | 1987-11-06 | 1990-10-02 | Visystems, Inc. | Method for providing a virtual execution environment on a target computer using a virtual software machine |
US4893307A (en) * | 1988-02-29 | 1990-01-09 | International Business Machines Corporation | Method and apparatus for linking SNA terminals to an SNA host over a packet switched communications network |
-
1989
- 1989-12-12 US US07/449,201 patent/US5115432A/en not_active Expired - Fee Related
-
1990
- 1990-11-22 EP EP90312742A patent/EP0432924B1/en not_active Expired - Lifetime
- 1990-11-22 DE DE69031266T patent/DE69031266T2/en not_active Expired - Fee Related
- 1990-12-11 JP JP2409715A patent/JPH0831893B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61264945A (en) * | 1985-05-20 | 1986-11-22 | Mitsubishi Electric Corp | Protocol parallel processing system of communication processor |
JPS62256062A (en) * | 1986-04-30 | 1987-11-07 | Mitsubishi Electric Corp | Protocol parallel processing system for communication processor |
JPH02137555A (en) * | 1988-11-18 | 1990-05-25 | Mitsubishi Electric Corp | Protocol parallel processing system for communication processor unit |
Non-Patent Citations (5)
Title |
---|
PATENT ABSTRACTS OF JAPAN vol. 011, no. 119 (E-499)20 May 1985 ( MITSUBISHI ) 22 November 1986 * |
PATENT ABSTRACTS OF JAPAN vol. 011, no. 119 (E-499)20 May 1985 ( MITSUBISHI ) 22 November 1986 & JP-A-61 264 945 * |
PATENT ABSTRACTS OF JAPAN vol. 012, no. 133 (P-693)22 April 1988 ( MITSUBISHI ) 7 November 1987 * |
PATENT ABSTRACTS OF JAPAN vol. 012, no. 133 (P-693)22 April 1988 ( MITSUBISHI ) 7 November 1987 & JP-A-62 256 062 * |
PATENT ABSTRACTS OF JAPAN vol. 014, no. 380 (E-965)25 May 1990 ( MITSUBISHI ) 25 May 1990 & JP-A-2 137 555 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0749597A4 (en) * | 1994-01-10 | 2000-11-15 | Amdahl Corp | Distributed protocol framework |
EP0749597A1 (en) * | 1994-01-10 | 1996-12-27 | Amdahl Corporation | Distributed protocol framework |
US6282202B1 (en) | 1994-10-24 | 2001-08-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for internal communication in a telecommunications system |
WO1996013924A1 (en) * | 1994-10-31 | 1996-05-09 | International Business Machines Corporation | Device for the transmission of data streams in data-communication networks |
US5961607A (en) * | 1994-10-31 | 1999-10-05 | International Business Machines Corporation | System for transmission of data flow in data communication networks |
WO1997004573A1 (en) * | 1995-07-20 | 1997-02-06 | Telia Ab | Procedure for modification of a protocol by means of an adaptive protocol |
AU741633B2 (en) * | 1997-04-04 | 2001-12-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Method, communication network and service access interface for communications in an open system interconnection environment |
WO1998045994A2 (en) * | 1997-04-04 | 1998-10-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Method, communication network and service access interface in an osi environment |
US6038609A (en) * | 1997-04-04 | 2000-03-14 | Telefonaktiebolaget Lm Ericsson | Method, communication network and service access interface for communications in an open system interconnection environment |
WO1998045994A3 (en) * | 1997-04-04 | 1999-01-21 | Ericsson Telefon Ab L M | Method, communication network and service access interface in an osi environment |
US6779138B2 (en) | 1998-04-12 | 2004-08-17 | Hitachi, Ltd. | Highly reliable distributed system |
EP1014643A3 (en) * | 1998-12-04 | 2002-12-18 | Hitachi, Ltd. | Network interface unit |
US6591380B1 (en) | 1998-12-04 | 2003-07-08 | Hitachi, Ltd. | Means for comparing sent data on the transmission side of a network in a highly reliable distributed system |
EP1014643A2 (en) * | 1998-12-04 | 2000-06-28 | Hitachi, Ltd. | Network interface unit |
US7036050B2 (en) | 1998-12-04 | 2006-04-25 | Hitachi, Ltd. | Highly reliable distributed system |
US7356739B2 (en) | 1998-12-04 | 2008-04-08 | Hitachi, Ltd. | System and program for controlling a distributed processing system |
EP1530761A2 (en) * | 2001-09-19 | 2005-05-18 | Bay Microsystems, Inc. | Vertical instruction and data processing in a network processor architecture |
EP1530761A4 (en) * | 2001-09-19 | 2008-01-23 | Bay Microsystems Inc | Vertical instruction and data processing in a network processor architecture |
WO2006117273A1 (en) * | 2005-05-02 | 2006-11-09 | Siemens Aktiengesellschaft | Method for communicating between two nodes in a group of networks |
WO2019038094A1 (en) | 2017-08-22 | 2019-02-28 | Robert Bosch Gmbh | Method for producing a shaped component, and shaped component produced by means of such a method |
DE102017214578A1 (en) | 2017-08-22 | 2019-02-28 | Robert Bosch Gmbh | A method of manufacturing a molded component, and a molded component made by such a method |
Also Published As
Publication number | Publication date |
---|---|
US5115432A (en) | 1992-05-19 |
DE69031266D1 (en) | 1997-09-18 |
JPH0831893B2 (en) | 1996-03-27 |
JPH03250946A (en) | 1991-11-08 |
DE69031266T2 (en) | 1998-03-05 |
EP0432924B1 (en) | 1997-08-13 |
EP0432924A3 (en) | 1992-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5115432A (en) | Communication architecture for high speed networking | |
US7876751B2 (en) | Reliable link layer packet retry | |
US6289023B1 (en) | Hardware checksum assist for network protocol stacks | |
EP1323264B1 (en) | Mechanism for completing messages in memory | |
US6076114A (en) | Methods, systems and computer program products for reliable data transmission over communications networks | |
US5583859A (en) | Data labeling technique for high performance protocol processing | |
US5898713A (en) | IP checksum offload | |
US5528605A (en) | Delayed acknowledgement in an asymmetric timer based LAN communications protocol | |
Haas | A protocol structure for high-speed communication over broadband ISDN | |
US6480500B1 (en) | Arrangement for creating multiple virtual queue pairs from a compressed queue pair based on shared attributes | |
US5805594A (en) | Activation sequence for a network router | |
EP0924902B1 (en) | Network bandwidth control | |
EP1499984B1 (en) | System, method, and product for managing data transfers in a network | |
US6937562B2 (en) | Application specific traffic optimization in a wireless link | |
EP1198105A2 (en) | High speed transmission line interface | |
JPH08502159A (en) | Packet transmission system | |
US5592627A (en) | Pipelined, sliding-window, flow control for end-to-end communication sessions | |
US6973085B1 (en) | Using application headers to determine InfiniBand™ priorities in an InfiniBand™ network | |
US5944843A (en) | Method and apparatus for using the unused bits of a data packet to transmit additional information | |
JP4731155B2 (en) | Error control mechanism for segment-based link layer in digital networks | |
Atkins | Path control: The transport network of SNA | |
US6925096B2 (en) | Method and apparatus for managing traffic flows | |
US6721798B1 (en) | Method and apparatus for converting IP datagram to/from ethernet frames | |
US6904545B1 (en) | Fault tolerant computing node having multiple host channel adapters | |
US20030128699A1 (en) | Method and apparatus for header updating |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): DE FR GB |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): DE FR GB |
|
17P | Request for examination filed |
Effective date: 19921207 |
|
RAP3 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: AT&T CORP. |
|
17Q | First examination report despatched |
Effective date: 19960215 |
|
GRAG | Despatch of communication of intention to grant |
Free format text: ORIGINAL CODE: EPIDOS AGRA |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAH | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOS IGRA |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB |
|
REF | Corresponds to: |
Ref document number: 69031266 Country of ref document: DE Date of ref document: 19970918 |
|
ET | Fr: translation filed | ||
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed | ||
REG | Reference to a national code |
Ref country code: GB Ref legal event code: IF02 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20021023 Year of fee payment: 13 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20021028 Year of fee payment: 13 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20021205 Year of fee payment: 13 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20031122 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20040602 |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20031122 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20040730 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST |