DE10115799B4 - Method and device for processing data blocks - Google Patents

Method and device for processing data blocks Download PDF

Info

Publication number
DE10115799B4
DE10115799B4 DE2001115799 DE10115799A DE10115799B4 DE 10115799 B4 DE10115799 B4 DE 10115799B4 DE 2001115799 DE2001115799 DE 2001115799 DE 10115799 A DE10115799 A DE 10115799A DE 10115799 B4 DE10115799 B4 DE 10115799B4
Authority
DE
Germany
Prior art keywords
data
header data
header
prediction
processing
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.)
Expired - Fee Related
Application number
DE2001115799
Other languages
German (de)
Other versions
DE10115799A1 (en
Inventor
Jürgen Dipl.-Ing. Foag
Thomas Dipl.-Ing. Wild
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Technische Universitaet Muenchen
Original Assignee
Technische Universitaet Muenchen
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 Technische Universitaet Muenchen filed Critical Technische Universitaet Muenchen
Priority to DE2001115799 priority Critical patent/DE10115799B4/en
Publication of DE10115799A1 publication Critical patent/DE10115799A1/en
Application granted granted Critical
Publication of DE10115799B4 publication Critical patent/DE10115799B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

Verfahren zum Verarbeiten von Datenblöcken, wobei jeder Datenblock Headerdaten und Nutzdaten aufweist und die Headerdaten die Verarbeitung der Nutzdaten koordinieren und in mindestens zwei Bereiche unterteilt sind, denen jeweils mindestens ein Verarbeitungsschritt zugeordnet ist, wobei
der Inhalt der Headerdaten für mindestens einen der Bereiche vorhergesagt wird und der zugehörige Verarbeitungsschritt auf der Basis des vorhergesagten Inhalts eingeleitet wird, bevor der entsprechende Bereich der Headerdaten ausgewertet wird,
und wobei der Inhalt der vorhergesagten Headerdaten auf Übereinstimmung mit den tatsächlichen entsprechenden Headerdaten überprüft wird und der eingeleitete Verarbeitungsschritt abgebrochen oder sein Ergebnis verworfen wird, für den Fall, dass die getroffene Vorhersage fehlerhaft war,
dadurch gekennzeichnet,
dass der Inhalt der Headerdaten für eine bestimmte Anzahl von in der Vergangenheit bearbeiteten Datenblöcken gespeichert wird und die Vorhersage des Inhalts der Headerdaten für einen empfangenen Datenblock auf der Basis der gespeicherten Headerdaten erfolgt.
Method for processing data blocks, wherein each data block has header data and payload data and the header data coordinates the processing of the payload data and is subdivided into at least two areas to which at least one processing step is assigned in each case
the content of the header data is predicted for at least one of the areas and the associated processing step is initiated based on the predicted content before the corresponding area of the header data is evaluated,
and wherein the content of the predicted header data is checked for correspondence with the actual corresponding header data and the initiated processing step is aborted or its result is discarded in case the prediction made was erroneous,
characterized,
that the content of the header data is stored for a certain number of data blocks processed in the past, and the prediction of the contents of the header data for a received data block is made on the basis of the stored header data.

Figure 00000001
Figure 00000001

Description

Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Verarbeiten von Datenblöcken sowie auf eine zugehörige Vorrichtung nach dem Oberbegriff des Patentanspruchs 1.The The present invention relates to a method of processing of data blocks as well as an associated one Device according to the preamble of patent claim 1.

In den verschiedensten Bereichen der Datenkommunikation weisen die zu übertragenden Daten eine blockorientierte Datenstruktur auf. Dabei umfasst jeder Datenblock neben den eigentlichen Nutzdaten eine Reihe von sogenannten Headerdaten, die in verschiedene Bereiche unterteilt sind. Die Übertragung solcher Datenblöcke nach dem Stand der Technik soll im folgenden am Beispiel der Übertragung von sogenannten Datagrammen über das Internet erläutert werden. Unter Datagrammen versteht man in sich geschlossene unabhängige Datenblöcke, die sich vor allem durch ihren geringen Protokoll-Overhead auszeichnen.In In the most diverse areas of data communication, the to be transferred Data is a block-oriented data structure. Each includes Data block next to the actual payload a number of so-called Header data divided into different areas. The transfer such data blocks According to the prior art, the following is the example of the transmission from so-called datagrams over the internet explains become. Datagrams are self-contained independent data blocks that mainly characterized by their low protocol overhead.

Für die Internetdatenkommunikation wird nach dem Stand der Technik ein standardisiertes offenes Protokollschichtmodell verwendet, wie es beispielsweise in W. D. Haaß, "Handbuch der Kommunikationsnetze", Springer-Verlag, Berlin, 1997, beschrieben und in 1 dargestellt ist. Jeder Protokollschicht sind unterschiedliche Funktionalitäten zugeordnet. Für jede dieser Schichten gibt es spezifizierte Protokolle, die Steuerinformationen in Form von Meldungs- und Quittierungsaustauschen zwischen Kommunikationseinheiten beschreiben. Unter einem Protokollstapel versteht man ein Gebilde aus insgesamt bis zu sieben Protokollen, dem pro Schicht ein Protokoll zugeordnet ist. Bei der Verarbeitung eines über eine Übertragungsstrecke 107 von einem Endsystem 101 empfangenen Datenblocks in einem Transitsystem 102 oder einem weiteren Endsystem 103 müssen im Empfangsteil 108 des Transitsystems bzw. dem Empfangsteil 110 des Endsystems mehrere Prozessierungsschritte durchgeführt werden. Diese beinhalten im wesentlichen die Abtrennung der für die jeweilige Schicht entsprechend dem Protokollschichtenmodell der Datenkommunikation zugeordnete gekapselte Headerdateninformation 106, die Herausarbeitung einzelner Informationsfelder und deren Analyse.For the Internet data communication, a standardized open protocol layer model is used according to the state of the art, as described, for example, in WD Haaß, "Handbook of Communication Networks", Springer-Verlag, Berlin, 1997, and in US Pat 1 is shown. Each protocol layer is assigned different functionalities. For each of these layers, there are specified protocols that describe control information in the form of message and acknowledgment exchanges between communication units. A protocol stack is understood to be a structure of up to seven protocols, to which one protocol is assigned per shift. When processing one over a transmission link 107 from an end system 101 received data block in a transit system 102 or another end system 103 need in the receiving part 108 the transit system or the receiving part 110 the end system several processing steps are performed. These essentially include the separation of the encapsulated header data information assigned for the respective layer in accordance with the protocol layer model of the data communication 106 , the development of individual information fields and their analysis.

In einem Transitsystem wird bei der Analyse u.a. die Wegewahlentscheidung durchgeführt, bei der die Zuordnung des weiterzuleitenden Datenblocks in der Regel zu einer von mehreren transitsystemausgangsseitigen Schnittstellen getroffen wird. Hierbei und bei weiteren, bedingt durch den Protokollstapeltyp durchzuführenden Prozessierungs schritten werden für jede Schicht von den höhergelegenen Schichten bis hin zu den tiefer gelegenen veränderte oder unveränderte Headerdaten erzeugt und mit den Nutzdaten zusammengefügt, was man als Kapselung bezeichnet.In a transit system is used in the analysis u.a. the routing decision carried out, in the assignment of the data block to be forwarded in the rule to one of several transitsystem-side interfaces is taken. This and others, due to the protocol stack type to be performed Processing steps are for every layer from the higher Layers down to the deeper located changed or unchanged header data generated and merged with the payload, which is called encapsulation.

Die Headerdaten sind in mehrere Bereiche unterteilt, die jeweils einer Protokollebene zugeordnet sind. Für Protokolle von unterschiedlichem Typus weisen diese Bereiche unterschiedliche Längen und Bedeutungen auf. Die Headerdaten beinhalten Informationen, welche die Weiterbehandlung des Datenblocks festlegen. Bei zu übertragenden Datagrammen wird generell unterschieden zwischen Benutzerdatagrammen, welche die Information der Benutzeranwendung beinhalten und Kontrolldatagrammen, welche für das Übertragungsmedium relevante Informationen tragen.The Header data is divided into several areas, one each Log level are assigned. For logs of different Typically, these areas have different lengths and meanings. The Header data contain information which further processing of the data block. For datagrams to be transferred In general, a distinction is made between user datagrams, which the Information of the user application include and control datagrams, which for the transmission medium carry relevant information.

Ein Teil der Analyse betrifft das Feld eines Headerdatenbereichs, in welchem die Information über den Typus des jeweils nächst höhergelegenen Protokolls oder des selben Protokolls enthalten ist. Als Beispiel hierfür ist das Internetprotokoll in der Version 4 (Request for Comments 760: Internet Protocol Version 4, Internet Engineering Task Force – Internet Architecture Board) in 2 dargestellt. Die Position des Protokolltypfeldes ist durch die standardisierte Definition des entsprechenden Protokolls festgelegt. Bedingt durch die Verwendung von optionalen Feldern 206 im Protokollkopfteil können die Felder der höheren Schichten variieren. Sämtliche Prozessierungsschritte, welche mit einem zeitlichen Prozessierungsaufwand behaftet sind, laufen, wie beispielsweise in Berkeley Software Distribution 4.4BSD-Lite, University of California at Berkeley, 1994 oder in Lucent-Agere, Preliminary Product Brief "NPFPP-Payload Plus Fast Pattern Processor", 2000, beschrieben und in 3 dargestellt, bedingt durch die Datenabhängigkeit eines Protokolls der jeweils im Schichtenmodell höheren Schicht von der tieferen Schicht, sequentiell ab. In sogenannten parallel prozessierenden Systemen können diese Schritte, wie in 4 dargestellt, nach Auflösung der Protokolltypdatenabhängigkeit 401 und 402 zeitlich versetzt pseudoparallel von den niederen Schichten mit den niedrigen Ordnungszahlen zu den höheren Schichten mit den höheren Ordnungszahlen ablaufen. Nach Prozessierung des Prozessierungsschritts zur Erkennung des nächst höhergelegenen Protokollschichttyps 403 wird bei der pseudoparallelen Prozessierung mit der Prozessierung der Prozessierungsschritte der nächsthöheren Schicht begonnen.Part of the analysis concerns the field of a header data area in which the information about the type of the next higher protocol or the same protocol is included. An example of this is the Internet Protocol Version 4 (Internet Protocol Version 4) 2 shown. The location of the protocol type field is determined by the standardized definition of the corresponding protocol. Due to the use of optional fields 206 In the protocol header, the fields of the higher layers can vary. All processing steps that involve time-consuming processing are carried out, for example, in Berkeley Software Distribution 4.4BSD-Lite, University of California at Berkeley, 1994 or in Lucent-Agere, Preliminary Product Brief "NPFPP Payload Plus Fast Pattern Processor", 2000, described and in 3 represented, due to the data dependency of a protocol of the higher layer in the layer model layer from the lower layer, sequentially. In so-called parallel processing systems, these steps, as in 4 shown after resolution of the protocol type data dependency 401 and 402 pseudo-parallel in time run from the lower layers with the lower atomic numbers to the higher layers with the higher atomic numbers. After processing the processing step to detect the next higher protocol layer type 403 During pseudo-parallel processing, the processing of the processing steps of the next higher layer is started.

Eine wesentliche Kenngröße für die Verarbeitungsdauer in einem System ist die sogenannte Latenzzeit, welche die Zeit zwischen Start und Ende der Datenblockbearbeitung bezeichnet. Die Entscheidung, bis zu welcher Protokollschicht die Headerdaten heraus gearbeitet und analysiert werden, hängt davon ab, ob das analysierende System ein Transitpunkt oder der Endpunkt des übertragenen Datenblocks ist. Dies ergibt sich aus der Headeranalyse. Während im Fall eines Transitsystems die Herausarbeitung von unten in der Regel maximal bis in die vierte Protokollschicht stattfindet, wird im Fall eines Endsystems die Herausarbeitung bis zur siebten Schicht, d. h. bis zur Anwendungsschicht durchgeführt.An important parameter for the processing time in a system is the so-called latency, which designates the time between start and end of data block processing. The decision up to which protocol layer the header data is worked out and analyzed depends on whether the analyzing system is a transit point or the end point of the transmitted data block. This results from the header analysis. While in the case of a transit system the elaboration from the bottom usually takes place up to the fourth protocol layer, in the case ei The final processing until the seventh layer, ie carried out to the application layer.

Sowohl die sequentielle als auch die pseudoparallele Bearbeitung eines Datenblocks in einem Transit- oder Endsystem führen zu einer vergleichsweise langen Latenzzeit des Datenblocks. Daraus resultiert bei der Datenübertragung über ein Netzwerk mit einer Vielzahl von Transitsystemen eine deutliche Reduzierung der möglichen Übertragungsgeschwindigkeiten. Dies ist mitunter auch bedingt durch die sich aus der Datenabhängigkeit ergebende nicht optimale Ausführungsreihenfolge einzelner für den Protokollstapel auszuführender Funktionalitäten. Darüber hinaus verzögert auch die sequentielle Durchführung zeitaufwendiger oder ressourcenaufwendiger Prozessierungsschritte, wie z.B. die Prüfsummenberechnung oder die Klassifizierung von Datenblöcken, die Übertragungsdauer der Datenblöcke erheblich.Either the sequential as well as the pseudo-parallel processing of a Data blocks in a transit or end system lead to a comparatively long latency of the data block. This results in the data transfer via a Network with a variety of transit systems a significant reduction the possible transmission speeds. This is sometimes due to the dependence on data resulting in non-optimal execution order single for to execute the protocol stack Functionalities. About that delayed beyond also the sequential implementation time-consuming or resource-consuming processing steps, such as. the checksum calculation or the classification of data blocks, the transmission time of the data blocks considerably.

Die US 5,056,058 offenbart ein Verfahren zur Protokollhochgeschwindigkeitsverarbeitung von Daten, die zwischen Kommunikationssteuereinrichtungen ausgetauscht werden. Die Kommunikationssteuereinrichtung sagt die Art eines Kommunikationsdatenblocks, der als nächstes von der Kommunikationsstrecke empfangen wird, in Übereinstimmung mit dem Datenblocktyp voraus, der von dieser Übertragungsstrecke im vorhergehenden Schritt empfangen oder übertragen wurde. Auf der Basis dieser Vorhersage wird Information vorbereitet, die für den Empfang des vorhergesagten Kommunikationsdatenblocks erforderlich ist sowie ein Teil des weiterzureichenden Datenblockes vorbereitet. Es wird die Richtigkeit der Vorhersage überprüft und im Falle einer fehlerhaften Vorhersage der Header aktuell analysiert. Im Falle einer korrekten Vorhersage kann mit der weiteren Übertragung der Datenblöcke fortgefahren werden.The US 5,056,058 discloses a method for high-speed protocol processing of data exchanged between communication controllers. The communication control means predicts the kind of a communication data block received next from the communication path in accordance with the data block type received or transmitted from that transmission route in the previous step. On the basis of this prediction, information is prepared which is required for the reception of the predicted communication data block as well as preparing a part of the data block to be passed on. The accuracy of the prediction is checked and, in the case of incorrect prediction, the headers are currently analyzed. In the case of a correct prediction, the further transmission of the data blocks can be continued.

Aus der US 5,678,060 ist eine Kommunikationssteuereinrichtung bekannt, die ein Computersystem mit einem Netzwerk verbindet und das Computersystem darin unterstützt, über das Netzwerk eine Vielzahl von Verbindungen aufzubauen und eine parallele Kommunikation zwischen Computern durchzuführen. Die gezeigte Kommunikationssteuereinrichtung umfasst auch einen Schaltkreis zur Vorhersage von Headern. Diese Headervorhersageschaltung ist eine Schaltung, bei der die vorhergesagten Header gespei chert und mit einem aktuell empfangenen Header verglichen werden, um die zuvor getroffene Vorhersage auf besonders effiziente Weise zu überprüfen. Die eigentliche Vorhersage erfolgt dabei immer auf der Basis des zuletzt empfangenen Protokollheaders.From the US 5,678,060 For example, a communication controller is known that connects a computer system to a network and supports the computer system to establish a variety of connections over the network and perform parallel communication between computers. The communication controller shown also includes a circuit for predicting headers. This header prediction circuit is a circuit in which the predicted headers are stored and compared with a currently received header to check the prediction made in a particularly efficient manner. The actual prediction is always based on the last received protocol header.

Bei den zuletzt genannten Verfahren erfolgt jedoch die Vorhersage immer nur auf der Grundlage des zuletzt empfangenen Frames und kann nicht an auftretende Häufigkeiten und Wahrscheinlichkeiten angepasst werden.at however, the prediction always occurs in the latter methods only on the basis of the last received frames and can not at occurring frequencies and probabilities are adjusted.

Daher besteht die Aufgabe der vorliegenden Erfindung darin, eine verbesserte Vorrichtung und ein Verfahren zur beschleunigten Bearbeitung von Datenblöcken anzugeben.Therefore the object of the present invention is to provide an improved Apparatus and method for accelerated processing of data blocks specify.

Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 sowie eine Vorrichtung gemäß Anspruch 9 gelöst.These The object is achieved by a method having the features of the patent claim 1 and a device according to claim 9 solved.

Ein besonderer Vorteil des erfindungsgemäßen Verfahrens und der Vorrichtung besteht darin, dass aufgrund der zeitweiligen spekulativen Aufhebung von Datenabhängigkeiten über die Verwendung vorhergesagter Headerdaten mehrere Prozessierungsschritte parallel gestartet werden können, die Reihenfolge der Prozessierungsschritte im Hinblick auf die Bearbeitungszeit optimiert angeordnet werden kann und sich dadurch im statistischen Mittel die Latenzzeit deutlich reduziert. Dabei wird der Inhalt der Headerdaten für eine bestimmte Anzahl von in der Vergangenheit bearbeiteten Datenblöcken gespeichert und die Vorhersage des Inhalts der Headerdaten für einen empfangenen Datenblock erfolgt auf der Basis der gespeicherten Headerdaten. Auf diese Weise kann die Historie von in der Vergangenheit übertragenen Datenblöcken zur Schaffung eines Vorabwissens über die künftig zu erwartenden Datenblöcke genützt werden.One particular advantage of the method and the device is that due to the temporary speculative suspension of data dependencies over the Using predicted header data multiple processing steps can be started in parallel, the order of the processing steps with regard to the processing time can be arranged optimally and thereby in the statistical Means the latency significantly reduced. The content of the Header data for stored a certain number of data blocks processed in the past and the prediction of the contents of the header data for a received data block is based on the stored header data. In this way can the history of data blocks transmitted in the past Creating a preliminary knowledge about the future expected data blocks availed become.

Weitere Ausgestaltungen der Erfindung sind Gegenstand mehrerer Unteransprüche.Further Embodiments of the invention are the subject of several subclaims.

Eine noch weitergehende Reduzierung der Bearbeitungszeit kann dadurch erreicht werden, dass der Inhalt der Headerdaten mehrerer Bereiche vorhergesagt wird und die jeweils zugeordneten Verarbeitungsschritte parallel begonnen werden.A even further reduction of the processing time can thereby can be achieved that predicted the contents of the header data of several areas is and the respective associated processing steps in parallel to be started.

Im Falle, dass hierbei der Inhalt der Headerdaten eines Bereiches nicht mit den tatsächlichen entsprechenden Headerdaten übereinstimmt und der zugehörige eingeleitete Verarbeitungsschritt abgebrochen werden muss, kann dadurch Zeit gespart werden, dass der Inhalt der Headerdaten für die folgenden Bereiche auf der Basis des Überprüfungsergebnisses erneut vorhergesagt wird.in the Case, that in this case the content of the header data of a range not with the actual corresponding Header data matches and the associated one initiated processing step can be canceled This saves time for the contents of the header data for the following Areas based on the result of the review is again predicted.

Gemäß einer bevorzugten Ausführungsform sind die Bereiche verschiedenen Protokollschichten zugeordnet und die Vorhersage wird bezüglich einer Protokollstapelcharakteristik getroffen. Dadurch kann eine beschleunigte Weiterleitung von Internetdatenblöcken, z. B. von Datagrammen, erreicht werden.According to a preferred embodiment, the regions are assigned to different protocol layers and the prediction is made with respect to a protocol stacking characteristic. This can accelerate the forwarding of Internet data blocks, z. As datagrams, can be achieved.

Die Vorhersage kann sich auch auf das Vorhandensein von möglichen Header-Erweiterungsfeldern eines Datenblocks erstrecken. Da solche Header-Erweiterungsfelder die Länge des Protokollheaders beeinflussen, kann eine Vorhersage über das Vorhandensein solcher Felder die Ausführung von Prozessierungsschritten beschleunigen.The Prediction can also affect the presence of potential Extend header extension fields of a data block. Because such Header extension fields the length of the protocol header can predict the presence such fields the execution speed up of processing steps.

Um die Wahrscheinlichkeit einer richtigen Vorhersage der Headerdaten zu erhöhen, kann erfindungsgemäß ein Markierer mitgeführt werden, der angibt, ob ein bearbeiteter Datenblock im Sinne eines Transitsystems weitergeleitet wird oder in dem Verarbeitungssystem endet.Around the probability of correct prediction of the header data to increase, can according to the invention a marker carried indicating whether a processed data block is in the sense of a transit system is forwarded or ends in the processing system.

Gemäß einer weiteren bevorzugten Ausführungsform kann die Latenzzeit eines Datenblocks dadurch verkürzt werden, dass eine Vorhersage zu Werten gemacht wird, die sich erst nach dem Herausziehen von Protokoll-Headerdaten und der Durchführung von Prozessierungsschritten ergeben.According to one another preferred embodiment can shorten the latency of a data block, that a prediction is made to values that only become apparent after extracting protocol header data and performing Processing steps result.

Zweckmäßigerweise basiert die Vorhersage auf einer Empfangshistorie dieser Werte. Anhand der in den beiliegenden Zeichnungen dargestellten bevorzugten Ausgestaltungen wird die Erfindung im folgenden näher erläutert. Es zeigen:Conveniently, the prediction is based on a reception history of these values. With reference to the illustrated in the accompanying drawings Embodiments, the invention is explained in more detail below. It demonstrate:

1 ein offenes Protokollschichtenmodell nach dem Stand der Technik; 1 an open protocol layer model according to the prior art;

2 das Internetprotokoll Version 4 nach dem Stand der Technik; 2 the Internet Protocol version 4 according to the prior art;

3 den zeitlichen Ablauf der Prozessierungsschritte bei sequentieller Headerdatenbearbeitung nach dem Stand der Technik: 3 the timing of the processing steps in sequential header data processing according to the prior art:

4 den zeitlichen Ablauf der Prozessierungsschritte bei pseudoparalleler Headerdatenbearbeitung nach dem Stand der Technik; 4 the timing of the processing steps in pseudo-parallel header data processing according to the prior art;

5 den zeitlichen Ablauf der Prozessierungsschritte beim Bearbeiten eines Datenblocks gemäß der vorliegenden Erfindung; 5 the timing of the processing steps in processing a data block according to the present invention;

6 ein Blockschaltbild mit einer Vorrichtung zum Verarbeiten von Datenblöcken nach der vorliegenden Erfindung; 6 a block diagram with an apparatus for processing blocks of data according to the present invention;

7 ein Zeitdiagramm der Prozessierungsschritte bei korrekter Vorhersage der Headerdaten; 7 a timing diagram of the processing steps with correct prediction of the header data;

8 ein Zeitdiagramm der Prozessierungsschritte bei falscher Vorhersage der Headerdaten; 8th a timing diagram of the processing steps in case of incorrect prediction of the header data;

9 den Aufbau der Headerdaten des Transport Control Protocol; 9 the structure of the header data of the Transport Control Protocol;

10 die Kapselung von Tunnelprotokollen; 10 the encapsulation of tunneling protocols;

11 ein Blockschaltbild eines virtuellen privaten Netzwerks. 11 a block diagram of a virtual private network.

Im folgenden werden bevorzugte Ausgestaltungen der Erfindung näher beschrieben. Ähnliche oder korrespondierende Einzelheiten des erfindungsgemäßen Gegenstandes sind mit denselben Bezugszeichen versehen.in the Following preferred embodiments of the invention will be described in more detail. Similar or Corresponding details of the subject invention are the same Provided with reference numerals.

5 zeigt den zeitlichen Ablauf der Prozessierungsschritte, die bei der Bearbeitung des Datenblocks durchgeführt werden müssen, für den Fall, dass alle Prozessierungsschritte zum Zeitpunkt 501 gleichzeitig gestartet werden. Dies kann dann erfolgen, wenn die Datenabhängigkeit der einzelnen Prozessierungsschritte PSj aufgrund der Vorhersage von entsprechenden Headerdaten spekulativ aufgehoben wird. 5 shows the timing of the processing steps that must be performed when processing the data block, in the event that all processing steps at the time 501 be started at the same time. This can be done when the data dependency of the individual processing steps PSj is speculative canceled due to the prediction of corresponding header data.

6 zeigt den schematischen Aufbau eines Transit- oder Endsystems gemäß der vorliegenden Erfindung. Das System 100 übernimmt die auf den angeschlossenen Übertragungsstrecken 601 ankommenden Datenblöcke, die z.B. Fragmente eines Datagramms sein können, und speichert diese in den Eingangsspeicher 606. Da die gesamte anwendungsbezogene zu übertragende Information die in einzelnen Protokollen festgelegten maximalen Transfereinheiten in Oktetts überschreiten kann, ist ein Datagramm sendeseitig in mehrere Datagrammfragmente zu unterteilen. Mittels eines Datagrammheader feldes, das im Eingangsspeicher 606 gespeichert wird und dessen Inhalt ausdrückt, ob es sich bei einem Datagramm um ein Fragment oder um das letzte Fragment eines Datagramms handelt, kann auf den Start eines neuen Datagramms geschlossen werden. Im Fall des Internetprotokolls Version 4 (siehe 2) enthält das Feld „Kennzeichen" 203 diese Information. Der empfangene Datenblock besteht jeweils aus einem Headeranteil und einem Nutzdatenteil. Im Fall von Datagrammfragmenten ist der Headeranteil in jedem einzelnen Fragment enthalten und der gesamte Nutzdatenanteil auf die einzelnen Fragmente aufgeteilt. Die Zurückbildung zum ursprünglich gesendeten Datagramm aus den einzelnen Datagrammfragmenten findet im Endsystem 103 (siehe 1A) statt. 6 shows the schematic structure of a transit or end system according to the present invention. The system 100 takes over on the connected transmission links 601 incoming data blocks, which may be fragments of a datagram, for example, and stores them in the input memory 606 , Since the total application-related information to be transmitted may exceed the maximum transfer units in octets specified in individual protocols, a datagram must be subdivided into several datagram fragments on the transmission side. By means of a datagram header field in the input memory 606 can be stored and its content expressed, whether a datagram is a fragment or the last fragment of a datagram, it can be concluded that a new datagram has been started. In the case of Internet Protocol version 4 (see 2 ) contains the field "License plate" 203 this information. The received data block consists in each case of a header portion and a user data portion. In the case of datagram fragments, the header portion is contained in each individual fragment and the entire payload portion is divided among the individual fragments. The regression to the originally sent datagram from the individual datagram fragments takes place in the end system 103 (please refer 1A ) instead of.

Eine Vorhersageeinheit 602 liefert die für die Weiterbehandlung des Datenblocks vorhergesagte nötige Headerinformation der Protokollschichten 2 bis 7 an die Systemsteuerungseinheit 605. Die Systemsteuerungseinheit 605, welche die gesamte Steuerung der erfindungsgemäßen Vorrichtung durchführt, veranlasst die Übertragung der Headerdaten in das Zwischenregister 612. Das gesamte Datagramm, d.h. die komplette Headerinformation und die Nutzdaten werden bei Verfügbarkeit im Eingangsspeicher 606 in den Systemhauptspeicher 611 übertragen. Somit ist ein Teil des Datagramms, nämlich der vorhergesagte Headerdatenanteil durch die Aufteilung 609 mehrfach gespeichert vorhanden. Das Zwischenregister 612 besitzt erfindungsgemäß eine Überbrückung 610, die zur direkten Übertragung der in der Prozessierungsvorschrift des vorhergesagten Datenpaket-Protokollstapels vorgeschriebenen Headerdaten aus dem Eingangsspeicher 606 in die Prozessierungsblöcke 613 entsprechend der Vorhersage dient. In den Prozessierungsblöcken 613 werden auf der Basis der vorhergesagten Headerdaten die entsprechend durchzuführenden Prozessierungsschritte eines Datagramms ausgeführt. Es findet hierbei nicht zwangsläufig eine Zuordnung der Prozessierungsblöcke zu den Protokollschichten statt, sondern die Prozessierungsblöcke können auch entsprechend der Funktionalität zugeordnet werden, z.B. Prozessierungsblock für Prüfsummenberechnung.A prediction unit 602 provides the necessary header information of the protocol layers 2 to 7 predicted for the further processing of the data block to the system control unit 605 , The system control unit 605 , which performs the entire control of the device according to the invention, causes the transmission of the header data in the intermediate register 612 , The entire data gram, ie the complete header information and the payload are in the input memory when available 606 into the system main storage 611 transfer. Thus, part of the datagram is the predicted header data portion through the partition 609 saved several times. The intermediate register 612 has a bridging according to the invention 610 for directly transferring the header data prescribed in the processing rule of the predicted data packet protocol stack from the input memory 606 into the processing blocks 613 according to the prediction. In the processing blocks 613 On the basis of the predicted header data, the corresponding processing steps of a datagram are executed. In this case, there is not necessarily an assignment of the processing blocks to the protocol layers, but the processing blocks can also be assigned according to the functionality, eg processing block for checksum calculation.

Parallel zur Ausführung der einzelnen Prozessierungsschritte führt die Systemsteuerungseinheit 605 eine Überprüfung der vorhergesagten Headerdaten auf Übereinstimmung mit den tatsächlich vorliegenden Headerdaten durch. Für den Fall, dass die Headerdaten korrekt vorhergesagt wurden, werden in einem Transitsystem 102 die für die Weiterübertragung nötigen Headerdaten im Zwischenregister 612 zusammengestellt und durch Datenverkettung mit den im Systemhauptspeicher 611 abgelegten Nutzdaten zusammengeführt. Dies ist durch den Schritt 608 symbolisiert. Die Daten werden dem Ausgangsspeicher 604 zugeführt und verlassen das System über einen der Ausgangsports 607. Für den Fall, dass es sich bei der erfindungsgemäßen Vorrichtung 100 um ein Endsystem 103 handelt, werden die Daten der entsprechenden Anwendung zugeführt.Parallel to the execution of the individual processing steps leads the system control unit 605 checking the predicted header data for correspondence with the actual header data. In the event that the header data has been correctly predicted will be in a transit system 102 the header data required for retransmission in the intermediate register 612 compiled and through data chaining with those in the system main store 611 stored user data merged. This is through the step 608 symbolizes. The data becomes the output memory 604 fed and leave the system via one of the output ports 607 , In the event that it is in the inventive device 100 around an end system 103 the data is sent to the appropriate application.

7 zeigt den zeitlichen Verlauf der Prozessierungsschritte eines Datagramms, die für alle Protokollschichten parallel begonnen wurden, für den Fall, dass die an den Punkten 701 und 702 gelesene Headerinformation mit den zum Zeitpunkt 700 angenommenen Werten übereinstimmt. Es zeigt sich, dass die Latenzzeit durch die Bearbeitungszeit der aufwendigsten Prozessierungsebene bestimmt wird und nicht durch die Summe aller Bearbeitungszeiten. 7 shows the time course of the processing steps of a datagram, which were started in parallel for all protocol layers, in the case that those at the points 701 and 702 read header information at the time 700 assumed values. It turns out that the latency is determined by the processing time of the most elaborate processing level and not by the sum of all processing times.

8 zeigt ein Zeitdiagramm für den Fall, dass die jeweiligen vorhergesagten Headerdaten nicht mit den tatsächlich vorliegenden Headerdaten übereinstimmen. Zum Zeitpunkt 700 wird, ebenso wie in 7 gezeigt, mit der parallelen Prozessierung des Datenblocks in allen Protokollschichten begonnen. In Schritt 801, der die Analyse des Protokollfeldes des nächst höheren Protokolltyps beinhaltet, stellt sich jedoch heraus, dass bezüglich der Prozessierung der nächst höheren Protokollschicht keine Übereinstimmung mit der bei der Vorhersage getroffenen Protokollstapelcharakteristik-Aussage erzielt wurde. Es muss also zum Zeitpunkt 803, beginnend mit der Schicht, für welche die Fehlvorhersage getroffen wurde, und unter Kenntnis des aus der Analyse erhaltenen faktisch vorliegenden Protokolltyps dieser und der tiefergelegenen Schichten die Vorhersageeinheit 602 erneut angesprochen werden und eine neue Vorhersage für die höher liegenden Schichten entnommen werden. 8th FIG. 12 shows a timing chart in the case that the respective predicted header data does not coincide with the actual header data. At the time 700 will, as well as in 7 shown started with the parallel processing of the data block in all protocol layers. In step 801 however, which includes the analysis of the protocol field of the next higher protocol type, it turns out that with respect to the processing of the next higher protocol layer no match was made with the predicted protocol stack characteristic statement. So it has to be at the time 803 Starting with the layer for which the misprediction was made, and knowing the factual protocol type obtained from the analysis of this and the lower layers, the prediction unit 602 be addressed again and a new prediction for the higher layers are taken.

Die Bearbeitungsschritte in dieser und den höheren Protokollschichten werden abgebrochen und es wird auf der Basis einer erneuten Vorhersage für die Headerdaten der höherliegenden Protokollschichten wiederum mit der parallelen Prozessierung des Datenblocks begonnen. In dem Beispiel der 8 stellt sich außerdem im Prozessierungsschritt 802 heraus, dass die Headerdaten bezüglich der Bearbeitung in der Protokollschicht S4 falsch vorhergesagt wurden. Die Bearbeitung in dieser und allen höher liegenden Protokollschichten wird daher abgebrochen und entsprechend den tatsächlich ermittelten Headerdaten aus der Protokollschicht 3 wird zum Zeitpunkt 804 mit der Prozessierung entsprechend den tatsächlich gelesenen Headerdaten in Schicht 3 begonnen. Dieser Ablauf wiederholt sich bei falscher Vorhersage 802, 804, bis alle Analysen der Protokolltypfelder durchgeführt worden sind und alle für das faktisch vorliegende Datagramm durchzuführenden Prozessierungsschritte 814 bis 818 durch Richtigkeitsüberprüfung verifiziert richtigerweise ausgeführt wurden.The processing steps in this and the higher protocol layers are aborted and again the parallel processing of the data block is started on the basis of a new prediction for the header data of the higher-level protocol layers. In the example of 8th is also in the processing step 802 found out that the header data was mispredicted to processing in the protocol layer S4. The processing in this and all higher protocol layers is therefore aborted and according to the actually determined header data from the protocol layer 3 is at the time 804 started processing according to the actually read header data in layer 3. This procedure is repeated in case of incorrect prediction 802 . 804 until all analyzes of the protocol type fields have been performed and all the processing steps to be performed for the actual datagram 814 to 818 verified by correctness verification.

Die Protokollstapelcharakteristika empfangener Datenblöcke, vorzugsweise Datagramme, werden, wie in 6 gezeigt ist, in der Protokollstapelaufzeichnungseinheit 603 abgelegt. Die Vorhersageeinheit 602 greift auf die Aufzeichnungseinheit 603 zu und berechnet einen Vorhersagewert für mindestens eine Protokollstapelcharakteristik des nächsten zu empfangenden Datenblocks. Die Protokollstapelaufzeichnungseinheit 603 beinhaltet außerdem einen Markierer, der angibt, ob ein bearbeitetes Datagramm im Sinne eines Transitsystems 102 weitergeleitet werden soll oder im vorliegenden System im Sinne eines Endsystems 103 endet. Die Markiererinformation ist Teil der Eingangsinformation der Vorhersageeinheit 602.The protocol stack characteristics of received data blocks, preferably datagrams, become, as in FIG 6 is shown in the protocol stack recording unit 603 stored. The prediction unit 602 accesses the recording unit 603 and calculates a prediction value for at least one protocol stack characteristic of the next data block to be received. The protocol stack recording unit 603 also includes a marker that indicates whether a processed datagram is transit-based 102 be forwarded or in the present system in terms of an end system 103 ends. The marker information is part of the input information of the prediction unit 602 ,

Da manche Protokolltypen aufgrund der Möglichkeit von Header-Erweiterungsfeldern (z.B. bei dem in 2 dargestellten Internetprotokoll in Version 4 in Form des Feldes 206 „Optionen und Auffüllung") in der Länge des Protokollheaderteils variieren und in einem Datenrahmen somit die Positionen der höhergelegenen Protokollheaderbereiche veränderlich sind, beinhaltet das Verfahren der Protokollstapelvorhersage auch Vorhersageinformationen über das Vorhandensein von solchen Erweiterungsfeldern.Because some types of protocols may be due to the possibility of header extension fields (eg, in the 2 presented Internet Protocol in version 4 in the form of the field 206 "Options and padding") vary in the length of the protocol header part, and thus in a data frame, the positions of the higher-level protocol header areas are variable, the protocol stack prediction method also includes prediction information about the existence of such extension fields.

Über die Vorhersage der eingekapselten nächst höheren Schichtprotokolle eines Datagramms hinaus, die jeweils durch einen wohl definierten Wert im Protokollheaderbereich gekennzeichnet sind, kann die Protokollstapelaufzeichnungseinheit 603 auch dahingehend erweitert werden, dass die Historie der Werte einzelner Protokollheaderfelder aufgezeichnet werden. Die Vorhersageeinheit 602 ermittelt daraus Vorhersagewerte für einzelne Protokollheaderfelder, mit denen das empfangene Datagramm spekulativ prozessiert werden kann, und die vor Abschluss der Prozessierung des Datagramms auf ihre Richtigkeit überprüft werden.Beyond predicting the encapsulated next higher layer protocols of a datagram, each characterized by a well-defined value in the protocol header area, the protocol stack recording unit may 603 also extended to record the history of the values of individual protocol header fields. The prediction unit 602 determines prediction values for individual protocol header fields, with which the received datagram can be processed speculatively, and which are checked for correctness before completion of the processing of the datagram.

Bei der Bearbeitung eines Datagramms in einem Transitsystems 102 oder einem Endsystem 103 müssen entsprechend der Protokollstapelcharakteristik, dem Einsatzgebiet und der Spezifizierung der unterstützen Fähigkeiten unterschiedliche Prozessierungsschritte durchgeführt werden. Sollen beispielsweise differenzierte Dienste durch das System 100 unterstützt werden, so stellt der dafür benötigte Prozessierungsschritt der Datagrammklassifizierung eine Funktion dar. Im Beispiel des in 9 dargestellten Schichtprotokolls „Transport Control Protocol" wie auch in dem in 2 dargestellten Internetprotokoll Version 4 werden aus mehreren Protokolldatenfeldern, wie der Sendeadresse 204, der Zieladresse 205, dem Feld „Art des Services" 202 sowie dem Sendeport 1101 und dem Empfangsport 1103, mit Hilfe einer systeminternen, vorab bekannten Berechnungsvorschrift zur Klassifizierung ein kennzeichnender Wert, das sogenannte Klassifizierungsoktett, erzeugt. Erfindungsgemäß kann die Historie der Resultate von Prozessierungsschritten, die zu einer Anzahl von Datagrammen und einem bestimmten System gehören, aufgezeichnet und mittels der Vorhersageeinheit vorausgesagt werden.When editing a datagram in a transit system 102 or an end system 103 Different processing steps must be performed according to the protocol stacking characteristics, the field of application and the specification of the supported capabilities. For example, should differentiated services be used by the system 100 are supported, the required processing step of the datagram classification is a function. In the example of the in 9 Layer protocol shown "Transport Control Protocol" as well as in the 2 Internet Protocol Version 4 are made up of multiple log fields, such as the send address 204 , the destination address 205 , the field "Type of service" 202 and the send port 1101 and the reception port 1103 , using a system-internal, previously known calculation rule for classification, a characteristic value, the so-called classification octet generated. According to the invention, the history of the results of processing steps associated with a number of datagrams and a particular system may be recorded and predicted by the predictor.

Zur Fernanbindung mobiler Benutzer an ein zumeist firmeneigenes Netzwerk existieren sogenannte virtuelle private Netzwerke. Hierzu muss über eine öffentliche Netzstruktur, wie sie z.B. das Internet darstellt, eine sichere Verbindung hergestellt werden. Zur Datenverschlüsselung zwischen zwei öffentlichen Netzpunkten, einem Tunneleingangspunkt und einem Tunnelausgangspunkt, bedient man sich sogenannter Tunnelprotokolle 902, die eine Kapselung des Passagierprotokolls 903, verbunden mit einer Verschlüsselung, durchführen, bevor das Datagramm dem Trägerprotokoll 901 zugeführt wird (siehe 10).For remote connection of mobile users to a mostly proprietary network exist so-called virtual private networks. For this purpose, a secure connection must be established via a public network structure, such as the Internet, for example. For data encryption between two public network points, a tunnel entrance point and a tunnel exit point, so-called tunneling protocols are used 902 containing an encapsulation of the passenger log 903 , associated with an encryption, perform before the datagram the carrier protocol 901 is fed (see 10 ).

In 11 ist ein solches virtuelles privates Netzwerk in Form eines Blockschaltbildes dargestellt. Der fernangebundene Benutzer 1001 baut eine Verbindung zur Vermittlungsstelle 1003 auf. Nach der Identifizierung des Benutzers etabliert die Vermittlungsstelle 1003 einen sogenannten Tunnel zum Firmengateway 1005, welcher der Zugangspunkt zum Firmennetzwerk und gleichzeitig Tunnelendpunkt ist. Für die öffentliche Netzinfrastruktur 1004 bleibt die verschlüsselte Information unbekannt.In 11 Such a virtual private network is shown in the form of a block diagram. The remote user 1001 establishes a connection to the exchange 1003 on. After identifying the user establishes the switch 1003 a so-called tunnel to the company gateway 1005 which is the access point to the corporate network and at the same time tunnel termination point. For the public network infrastructure 1004 the encrypted information remains unknown.

Gemäß der vorliegenden Erfindung kann nun im Rahmen der Vorhersage von Headerdaten z.B. in der Vermittlungsstelle 1003 und/oder im Firmengateway 1005 das Vorhandensein eines Tunnelprotokolls oberhalb des Trägerprotokolls vorhergesagt werden. Dadurch kann eine schnellere Bearbeitung von gekapselten Datenblöcken erreicht werden. Die Vorhersage kann wiederum auf der Basis der aufgezeichneten Datagrammhistorie erfolgen.According to the present invention can now in the context of the prediction of header data, for example in the central office 1003 and / or in the company gateway 1005 the presence of a tunneling protocol above the carrier protocol can be predicted. This allows a faster processing of encapsulated data blocks can be achieved. Again, the prediction can be based on the recorded datagram history.

Claims (13)

Verfahren zum Verarbeiten von Datenblöcken, wobei jeder Datenblock Headerdaten und Nutzdaten aufweist und die Headerdaten die Verarbeitung der Nutzdaten koordinieren und in mindestens zwei Bereiche unterteilt sind, denen jeweils mindestens ein Verarbeitungsschritt zugeordnet ist, wobei der Inhalt der Headerdaten für mindestens einen der Bereiche vorhergesagt wird und der zugehörige Verarbeitungsschritt auf der Basis des vorhergesagten Inhalts eingeleitet wird, bevor der entsprechende Bereich der Headerdaten ausgewertet wird, und wobei der Inhalt der vorhergesagten Headerdaten auf Übereinstimmung mit den tatsächlichen entsprechenden Headerdaten überprüft wird und der eingeleitete Verarbeitungsschritt abgebrochen oder sein Ergebnis verworfen wird, für den Fall, dass die getroffene Vorhersage fehlerhaft war, dadurch gekennzeichnet, dass der Inhalt der Headerdaten für eine bestimmte Anzahl von in der Vergangenheit bearbeiteten Datenblöcken gespeichert wird und die Vorhersage des Inhalts der Headerdaten für einen empfangenen Datenblock auf der Basis der gespeicherten Headerdaten erfolgt.Method for processing data blocks, wherein each data block comprises header data and payload data and the header data coordinates the processing of the payload data and is subdivided into at least two areas, each of which is assigned at least one processing step, wherein the content of the header data for at least one of the areas is predicted and the corresponding processing step is initiated on the basis of the predicted content before the corresponding portion of the header data is evaluated, and wherein the content of the predicted header data is checked for correspondence with the actual corresponding header data and the initiated processing step is aborted or its result discarded Case that the prediction made was erroneous, characterized in that the content of the header data is stored for a certain number of data blocks processed in the past and the prediction of the Contents of the header data for a received data block are based on the stored header data. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Inhalt der Headerdaten mehrerer Bereiche vorhergesagt wird und die jeweils zugeordneten Verarbeitungsschritte parallel begonnen werden.Method according to claim 1, characterized in that that the content of the header data of several areas is predicted and the respective associated processing steps started in parallel become. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass im Falle einer falschen Vorhersage des Inhalts der Headerdaten eines Bereiches der Inhalt der Headerdaten von weiteren Bereichen erneut vorhergesagt wird.Method according to claim 2, characterized in that that in case of wrong prediction of the contents of the header data a range of contents of the header data of other areas is again predicted. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Bereiche verschiedenen Protokollschichten zugeordnet sind und eine Vorhersage bezüglich einer Protokollstapelcharakteristik getroffen wird.Method according to one of claims 1 to 3, characterized in that the areas are assigned to different protocol layers and a prediction with respect to a protocol stack characteristic is met. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass eine Vorhersage bezüglich des Vorhandenseins von Header-Erweiterungsfeldern eines Datenblocks getroffen wird.Method according to one of claims 1 to 4, characterized that a prediction regarding the presence of header extension fields of a data block is taken. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass ein Markierer mitgeführt wird, der die Information beinhaltet, ob der Datenblock weitergeleitet wird oder in einem System endet.Method according to one of claims 1 to 5, characterized that carried a marker containing the information, whether the data block is forwarded is or ends in a system. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass eine Vorhersage zu Werten gemacht wird, die sich erst nach dem Herausziehen von Protokoll-Headerdaten und der Durchführung von Prozessierungsschritten ergeben.Method according to one of claims 1 to 6, characterized that a prediction is made to values that only become apparent after extracting protocol header data and performing Processing steps result. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die Vorhersage auf einer Empfangshistorie dieser Werte basiert.Method according to claim 7, characterized in that that the prediction is based on a reception history of these values. Vorrichtung zum Verarbeiten von Datenblöcken, wobei jeder Datenblock Headerdaten und Nutzdaten aufweist und die Headerdaten die Verarbeitung der Nutzdaten koordinieren und in mindestens zwei Bereiche unterteilt sind, denen jeweils mindestens ein Verarbeitungsschritt zugeordnet ist, wobei die Vorrichtung eine Vorhersageeinheit (602) aufweist, die den Inhalt der Headerdaten für mindestens einen der Bereiche vorhersagt, und wobei die Vorrichtung weiter eine Systemsteuerungseinheit (605) aufweist, die den zugehörigen Verarbeitungsschritt auf der Basis des vorhergesagten Inhalts einleitet, bevor der entsprechende Bereich der Headerdaten ausgewertet wird, und die den Inhalt der vorhergesagten Headerdaten auf Übereinstimmung mit den tatsächlichen entsprechenden Headerdaten überprüft und veranlasst, dass der eingeleitete Verarbeitungsschritt abgebrochen oder sein Ergebnis verworfen wird, für den Fall, dass die getroffene Vorhersage fehlerhaft war, dadurch gekennzeichnet, dass die Vorrichtung weiterhin eine Aufzeichnungseinheit (603) aufweist, welche die Headerdaten einer bestimmten Anzahl von in der Vergangenheit bearbeiteten Datenblöcken speichert, und dass die Vorhersage des Inhalts der Headerdaten für einen empfangenen Datenblock auf der Basis der gespeicherten Headerdaten erfolgt.Apparatus for processing data blocks, each data block comprising header data and payload data, the header data coordinating the processing of the payload data and being subdivided into at least two areas, each associated with at least one processing step, the device comprising a prediction unit ( 602 ), which predicts the content of the header data for at least one of the regions, and wherein the device further comprises a system control unit ( 605 ), which initiates the associated processing step based on the predicted content before the corresponding portion of the header data is evaluated, and which checks the content of the predicted header data for correspondence with the actual corresponding header data and causes the initiated processing step to be aborted or its result is rejected, in the event that the prediction made was erroneous, characterized in that the apparatus further comprises a recording unit ( 603 ) which stores the header data of a certain number of data blocks processed in the past, and that the prediction of the content of the header data for a received data block is made on the basis of the stored header data. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass die Vorrichtung weiterhin einen Eingangsspeicher (606) aufweist, in dem die empfangenen Datenblöcke gespeichert werden.Apparatus according to claim 9, characterized in that the device further comprises an input memory ( 606 ) in which the received data blocks are stored. Vorrichtung nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass die Vorrichtung weiterhin einen Systemhauptspeicher (611), in dem die Nutzdaten des empfangenen Datenblocks gespeichert sind, sowie ein Zwischenregister (612), in dem die Headerdaten des empfangenen Datenblocks gespeichert sind, umfasst.Apparatus according to claim 9 or 10, characterized in that the apparatus further comprises a system main memory ( 611 ), in which the user data of the received data block are stored, as well as an intermediate register ( 612 ) in which the header data of the received data block is stored. Vorrichtung nach einem der Ansprüche 9 bis 11, dadurch gekennzeichnet, dass die Vorrichtung weiterhin einen Ausgangsspeicher (604), in welchem die weiterzuleitenden Datenblöcke gespeichert sind, aufweist.Device according to one of claims 9 to 11, characterized in that the device further comprises an output memory ( 604 ) in which the data blocks to be forwarded are stored. Vorrichtung nach einem der Ansprüche 9 bis 12, dadurch gekennzeichnet, dass die Vorrichtung weiterhin mindestens einen Prozessierungsblock (613) zum Durchführen des Verarbeitungsschritts aufweist, der mit der Systemsteuerungseinheit (605) und dem Zwischenregister (612) verbunden ist.Device according to one of claims 9 to 12, characterized in that the device further comprises at least one processing block ( 613 ) for performing the processing step associated with the system control unit ( 605 ) and the intermediate register ( 612 ) connected is.
DE2001115799 2001-03-30 2001-03-30 Method and device for processing data blocks Expired - Fee Related DE10115799B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2001115799 DE10115799B4 (en) 2001-03-30 2001-03-30 Method and device for processing data blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2001115799 DE10115799B4 (en) 2001-03-30 2001-03-30 Method and device for processing data blocks

Publications (2)

Publication Number Publication Date
DE10115799A1 DE10115799A1 (en) 2002-10-17
DE10115799B4 true DE10115799B4 (en) 2005-05-04

Family

ID=7679692

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001115799 Expired - Fee Related DE10115799B4 (en) 2001-03-30 2001-03-30 Method and device for processing data blocks

Country Status (1)

Country Link
DE (1) DE10115799B4 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5056058A (en) * 1989-03-13 1991-10-08 Hitachi, Ltd. Communication protocol for predicting communication frame type in high-speed processing system
US5678060A (en) * 1993-10-28 1997-10-14 Hitachi, Ltd. System for executing high speed communication protocol processing by predicting protocol header of next frame utilizing successive analysis of protocol header until successful header retrieval

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5056058A (en) * 1989-03-13 1991-10-08 Hitachi, Ltd. Communication protocol for predicting communication frame type in high-speed processing system
US5678060A (en) * 1993-10-28 1997-10-14 Hitachi, Ltd. System for executing high speed communication protocol processing by predicting protocol header of next frame utilizing successive analysis of protocol header until successful header retrieval

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
AGERE [Hrsg.]: Payload Plus Fast Pattern Processor Agere Systems, Product Brief, April, 2001
AGERE [Hrsg.]: Payload Plus Fast Pattern ProcessorAgere Systems, Product Brief, April, 2001 *
HAAß,Wolf-Dieter: Handbuch der Kommunikationsnet- ze. Springer Verlag Berlin, Heidelberg, 1997, Kap. 3.1-3.3
HAAß,Wolf-Dieter: Handbuch der Kommunikationsnet- ze. Springer Verlag Berlin, Heidelberg, 1997, Kap.3.1-3.3 *
STEVENS,W.Richard: TCPI Illustrated Volume, Addrso'n-Wesley, 1995 *

Also Published As

Publication number Publication date
DE10115799A1 (en) 2002-10-17

Similar Documents

Publication Publication Date Title
DE69031266T2 (en) Transmission architecture for high-speed network
DE60113906T2 (en) Method and apparatus for packet transmission with packet header compression
DE69830491T2 (en) CUT-THROUGH SWITCHING AND PACKAGE FILTERING IN A COMPUTER SYSTEM
DE60114097T2 (en) Method and system for improving network performance using a performance enhancing proxy
DE602004013414T2 (en) Method and device for improved forwarding and uploading of network data
DE60310645T2 (en) Prevention of package distribution
DE112011103561T5 (en) Network processor and method for accelerating data packet parsing
DE10297269T5 (en) Label packets with a lookup key to make it easier to use a common packet forwarding cache
DE69332853T2 (en) Multiprocessor system and communication method between processors
DE60117109T2 (en) Wireless communication device, wireless communication system for its use and communication method therefor
DE60016360T2 (en) Priority forwarding in a communication system
DE60117554T2 (en) METHOD AND DEVICE FOR EFFICIENT HASHING IN NETWORKS
DE19526962A1 (en) Flow control mechanism for a packet switched computer connection
EP3542510A1 (en) Method for a communications network, and electronic control unit
DE2027159A1 (en) Input-output arrangement for a data processing system
EP3395021B1 (en) Method for transferring transmission data from a transmitter to a receiver for processing the transmission data and means for carrying out the method
DE10231941A1 (en) Data packet structure for directly addressed multicast protocol
DE60320685T2 (en) METHOD AND SYSTEM FOR IMPLEMENTING QUICK CHECKS IN A GPRS COMMUNICATION SYSTEM USING TUNNELS
DE10231958A1 (en) Directly addressed multicast protocol
DE10115799B4 (en) Method and device for processing data blocks
DE69833124T2 (en) ADAPTIVE PROCESSOR SYSTEM
EP0555456A1 (en) Data transmission process and data processing system with distributed computing nodes.
DE10115794A1 (en) Protocol analyzer has control system which either erases or transfers received packet to second interface based on destination address in packet
DE3810576A1 (en) EMBEDDED TESTING SYSTEM FOR TESTING COMPLIANCE OF COMMUNICATION SYSTEMS
DE10327545B4 (en) Method and device for processing real-time data

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee