DE112006000260B4 - Parser for analyzing a text-coded protocol - Google Patents
Parser for analyzing a text-coded protocol Download PDFInfo
- Publication number
- DE112006000260B4 DE112006000260B4 DE112006000260.0T DE112006000260T DE112006000260B4 DE 112006000260 B4 DE112006000260 B4 DE 112006000260B4 DE 112006000260 T DE112006000260 T DE 112006000260T DE 112006000260 B4 DE112006000260 B4 DE 112006000260B4
- Authority
- DE
- Germany
- Prior art keywords
- control unit
- state
- proc
- match
- follow
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- 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/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Devices For Executing Special Programs (AREA)
- Communication Control (AREA)
Abstract
Parser zur Analyse eines textkodierten Protokolls, umfassend: ein Analyseregel-Speichermodul (102), welches dazu ausgelegt ist, Analyseregeln zur Analyse eines Pakets des textkodierten Protokolls zu speichern, wobei das Analyseregel-Speichermodul (102) dazu ausgelegt ist, einen gemäß Augmented Backus-Naur Form, ABNF, Regeln generierten Regelbaum zu speichern, wobei der Regelbaum keine stufenweise Auswahl, Sequenzgruppe oder optionale Sequenzstruktur enthält; und wobei der Regelbaum auf rekursive Weise generiert wird, indem eine Regel in dem Regelbaum als Spitze bzw. vertex verwendet wird; und ein Paketanalyse-Modul (101), welches mittels eines Logikbausteins implementiert ist und dazu ausgelegt ist, eine Zeichenfolge des Pakets zu lesen, den in dem Analyseregel-Speichermodul (102) gespeicherten Regelbaum zu erhalten, einen Wert für den Regelbaum mit der Zeichenfolge des Pakets bestimmen, um einen mit diesem Wert versehen Regelbaum zu erzeugen und den mit diesem Wert versehenen Regelbaum als ein Analyseergebnis auszugeben, wobei das Paketanalyse-Modul umfasst: eine main_proc Steuereinheit (201), die dazu ausgelegt ist, den Übergang in eine parse_term_proc Steuereinheit (202), eine match_first_proc Steuereinheit (203) und eine match_follow_proc Steuereinheit (204) jeweils zu kontrollieren basierend auf der Art eines Anfangsknotens eines Stacks; wobei Knoten des Regelbaums in dem Stack gespeichert werden; und wobei der Anfangsknoten des Stacks ein Knoten des obersten Elements des Stacks ist; wobei die parse_term_proc Steuereinheit (202) dazu ausgelegt ist, unter der Kontrolle der main_proc Steuereinheit (201) gestartet zu werden im Falle, dass der Anfangsknoten ein Endknoten ist und die main_proc Steuereinheit (201) nach der Analyse des Pakets zu informieren; wobei der Endknoten ein Blatt ist, d. h. ein Blatt der vereinfachten ABNF-Regel ...A parser for analyzing a text-coded protocol, comprising: an analysis rule storage module (102), which is designed to store analysis rules for analyzing a packet of the text-coded protocol, the analysis rule storage module (102) being designed to implement an augmented backus Save form, ABNF, rules generated rule tree, whereby the rule tree does not contain a step-by-step selection, sequence group or optional sequence structure; and wherein the rule tree is generated recursively using a rule in the rule tree as a vertex; and a packet analysis module (101), which is implemented by means of a logic module and is designed to read a character string of the packet, to obtain the rule tree stored in the analysis rule memory module (102), a value for the rule tree with the character string of Determine packages in order to generate a rule tree provided with this value and to output the rule tree provided with this value as an analysis result, the packet analysis module comprising: a main_proc control unit (201) which is designed to transition to a parse_term_proc control unit ( 202) to control a match_first_proc control unit (203) and a match_follow_proc control unit (204) based on the type of an initial node of a stack; wherein nodes of the rule tree are stored in the stack; and wherein the starting node of the stack is a node of the top element of the stack; wherein the parse_term_proc control unit (202) is designed to be started under the control of the main_proc control unit (201) in the event that the start node is an end node and to inform the main_proc control unit (201) after analysis of the packet; where the end node is a leaf, i. H. a sheet of the simplified ABNF rule ...
Description
Gebiet der ErfindungField of the invention
Die vorliegende Erfindung bezieht sich auf das Gebiet der Netzwerkkommunikationstechnik und insbesondere auf einen Parser zur Analyse eines textkodierten Protokolls.The present invention relates to the field of network communication technology, and more particularly to a parser for analyzing a text-coded protocol.
Hintergrund der ErfindungBackground of the invention
Die Internet Engineering Task Force (IETF) definiert Paketformate für mehrere Protokolle, beispielsweise das Session Initial Protocol (SIP), durch die Augmented Backus-Naur Form (ABNF). Wenn die Protokolle implementiert werden, müssen die Pakete entsprechend ihrer ABNF Spezifikation analysiert werden.The Internet Engineering Task Force (IETF) defines packet formats for multiple protocols, such as the Session Initial Protocol (SIP), through the Augmented Backus-Naur Form (ABNF). When the protocols are implemented, the packets must be parsed according to their ABNF specification.
Die ABNF ist eine durch die IETF in RFC2234 definierte Formatsyntax. Die ABNF ist eine abgeänderte Version der Backus-Naur Form (BNF). Die Unterschiede zwischen der ABNF und der BNF umfassen: Benennungsregeln, Wiederholungen, Alternativen, Unabhängigkeit in der Reihenfolge und Wertebereiche.The ABNF is a format syntax defined by the IETF in RFC2234. The ABNF is a modified version of the Backus-Naur Form (BNF). The differences between the ABNF and the BNF include: naming rules, repetitions, alternatives, order of order, and ranges of values.
Gegenwärtig wird ein ABNF Parser normalerweise auf einem universellen Mikroprozessor implementiert durch Software, welche einen Algorithmus zur Analyse der Wortbildung (Morphologie) und des Satzbaus (Syntax) ausführt, beispielsweise einen LL (1) Algorithmus zur Syntaxanalyse innerhalb einer kompilierenden Hauptdomäne. Der LL (1) Algorithmus zur Syntaxanalyse ist ein nicht-rekursiver Analysator. Der LL (1) Algorithmus zur Syntaxanalyse erstellt eine Tabelle zur Vorhersage-Analyse der Syntax durch Berechnung eines First Terminals Set und eines Follow Terminals Set der Syntax, um so eine Folgerung zu erstellen, entsprechend der Tabelle zur Vorhersage-Analyse. Die LL (1) Syntax ist eine eindeutige Syntax ohne Linksrekursion. Das erste „L” der Bezeichnung LL (1) bedeutet, dass eine eingegeben Zeichenfolge (string) von links nach rechts gescannt wird; das zweite „L” bedeutet, dass eine Linksableitung generiert wird; „1” bedeutet, dass sich der Algorithmus bei der Bestimmung jeder Aktion des ABNF-Parsers auf jeweils ein Eingabesymbol weiter bezieht.At present, an ABNF parser is normally implemented on a general purpose microprocessor by software executing an algorithm for word formation (morphology) and sentence structure (syntax) analysis, for example, an LL (1) algorithm for parsing within a main compiling domain. The LL (1) parsing algorithm is a non-recursive analyzer. The LL (1) parsing algorithm builds a syntax predictive analysis table by computing a First Terminal Set and a Follow Terminal Set of syntax to create an inference, according to the Predictive Analysis table. The LL (1) syntax is a unique syntax with no left recursion. The first "L" of the label LL (1) means that an input string is scanned from left to right; the second "L" means that a link derivation is generated; "1" means that when determining each action of the ABNF parser, the algorithm refers to one input symbol at a time.
Da die ABNF eine textkodierte Syntax-Definition ist, ist es für den ABNF Parser komplexer, eine Zeichenfolge (string) mit einer variablen Länge zu analysieren als binäre Daten mit einer festgelegten Länge zu analysieren. Der Vorteil des ABNF Parsers ist, dass der ABNF Parser mit geringeren Kosten und höherer Effizienz implementiert werden kann. Allerdings ist der universelle Mikroprozessor nicht speziell für den ABNF Parser vorgesehen. Daher sind oft die Verarbeitungsgeschwindigkeit, der Durchsatz und andere Leistungsparameter des Mikroprozessors beschränkt. Im Fall, dass eine höherer Verarbeitungsgeschwindigkeit benötigt wird, beispielsweise wenn ein SIP Softswitch System Millionen von Verbindungen verwalten muss, ist es notwendig, einen höherwertigen Mikroprozessor zu verwenden. Damit werden die Kosten eines ABNF Parsers unweigerlich erhöht.Since the ABNF is a text-coded syntax definition, it is more complex for the ABNF parser to parse a string of variable length than to parse binary data of a fixed length. The advantage of the ABNF parser is that the ABNF parser can be implemented at a lower cost and higher efficiency. However, the universal microprocessor is not specifically designed for the ABNF parser. Therefore, processing speed, throughput and other performance parameters of the microprocessor are often limited. In case a higher processing speed is needed, for example when a SIP softswitch system needs to manage millions of connections, it is necessary to use a higher order microprocessor. This will inevitably increase the cost of an ABNF parser.
Es existiert eine weitere Art eines ABNF Parsers, die auch auf einem universellen Mikroprozessor implementiert werden kann. Für diese Art des ABNF Parsers ist, im Hinblick auf die Merkmale der ABNF Syntaxregeln innerhalb einer speziellen Domain, eine spezielle Software entworfen worden. Was beispielsweise das SIP betrifft, so ist es eine übliche Implementierung, ein SIP Paket in mehrere Felder entsprechend des Merkmals der SIP Syntaxregel durch einen Segmentierungs-Identifikator aufzuteilen; anschließend wird die Überprüfung der entsprechenden Syntaxregel durchgeführt.There is another type of ABNF parser that can also be implemented on a universal microprocessor. For this type of ABNF parser, a special software has been designed with respect to the features of the ABNF syntax rules within a particular domain. As for the SIP, for example, it is a common implementation to divide a SIP packet into multiple fields according to the feature of the SIP syntax rule by a segmentation identifier; then the verification of the corresponding syntax rule is performed.
Die zweite Art eines ABNF Parsers ist für eine spezielle Syntaxregel erstellt worden, wodurch die Effizienz größer ist als die des ersten oben beschriebenen ABNF Parsers. Allerdings führt das spezielle Design der zweiten Art eines ABNF Parsers auch zu einer schlechten Allgemeingültigkeit. Für eine neue Syntaxregel muss der ABNF Parser neu erstellt werden. Hierdurch werden somit die Kosten fair die Entwicklung eines ABNF Parsers erhöht und die Entwicklungseffizienz wird verringert. Auf der anderen Seite, da die zweite Art des ABNF Parsers basierend auf dem universellen Mikroprozessor nach wie vor erstellt wird, existiert das beschriebene Problem hinsichtlich der ersten Art des ABNF Parsers immer noch, wenn eine hohe Verarbeitungsgeschwindigkeit erforderlich ist.The second type of ABNF parser has been created for a special syntax rule, which is more efficient than the first ABNF parser described above. However, the special design of the second type of ABNF parser also leads to poor generality. For a new syntax rule, the ABNF parser needs to be recreated. This increases the cost of developing an ABNF parser and reduces development efficiency. On the other hand, since the second type of ABNF parser is still created based on the universal microprocessor, the described problem regarding the first type of ABNF parser still exists when a high processing speed is required.
Im Stande der Technik werden zunächst in der Druckschrift
Weiterhin, in der Einleitung zum RFC-Dokument 2234, ”Erweiterte BNF für Syntax Spezifikationen: ABNF”, Crocker, D; P. Overell; November 1997; Fundstelle: http://www.ietf.org/rfc/rfc2234.txt, wird eine modifizierte Version der Backus-Naur Form, BNF, behandelt, die Erweiterte BNF (Augmented BNF, ABNF) genannt wird. Die ABNF tariert Kompaktheit und Einfachheit mit vernünftiger Darstellungskraft aus. In den frühen Tagen des Arpnet, enthielt jede Spezifikation ihre eigene Definition einer ABNF. Vorstehendes enthielt die Email Spezifikationen RFC733 und dann RFD822, welche dazu gekommen sind, die allgemeinen Zitierungen zum Definieren der ABNF zu sein. [...] Die Unterschiede zwischen Standard-BNF und ABNF betreffen Namensregeln, Wiederholungen, Alternativen, Reihenfolge-Unabhängigkeit (order-independence) und Wertebereiche.Furthermore, in the introduction to RFC document 2234, "Advanced BNF for Syntax Specifications: ABNF", Crocker, D; Overell; November 1997; Reference: http://www.ietf.org/rfc/rfc2234.txt, a modified version of the Backus-Naur form, BNF, is discussed, which is called Advanced BNF (Augmented BNF, ABNF). The ABNF tared compactness and simplicity with reasonable imagination. In the early days of Arpnet, each specification contained its own definition of an ABNF. The above contained the email specifications RFC733 and then RFD822, which have come to be the general citations for defining the ABNF. [...] The differences between standard BNF and ABNF concern naming rules, repetitions, alternatives, order-independence and ranges of values.
Dann zeigt die
Und schließlich werden nach der
Zusammenfassung der ErfindungSummary of the invention
Die Ausführungsformen der vorliegenden Erfindung betreffen einen Parser zur Analyse eines textkodierten Protokolls, um die Effizienz der Analyse zu verbessern und die Allgemeingültigkeit des Parsers zu erhöhen.The embodiments of the present invention relate to a parser for analyzing a text-coded protocol in order to improve the efficiency of the analysis and to increase the generality of the parser.
Gemäß einer Ausführungsform der vorliegenden Erfindung umfasst ein Parser zur Analyse eines textkodierten Protokolls:
ein Analyseregel-Speichermodul
wobei der Regelbaum auf rekursive Weise generiert wird, indem eine Regel in dem Regelbaum als Spitze bzw. vertex verwendet wird; und
ein Paketanalyse-Modul
eine main_proc Steuereinheit
wobei die parse_term_proc Steuereinheit
wobei die match_first_proc Steuereinheit
wobei die match_follow_proc Steuereinheit
an analysis
wherein the rule tree is recursively generated by using a rule in the rule tree as the vertex; and
a
a
the
the
the
Der gemäß der Ausführungsformen der vorliegenden Erfindung bereitgestellte Parser wird basierend auf einem Hardware Logikbaustein implementiert. Verglichen mit den Software basierten Parser verbessert der Hardware basierte Parser, wie er gemäß der Ausführungsformen der vorliegenden Erfindung vorgeschlagen wird, die Analyseeffizienz und reduziert die Entwicklungskosten des Parsers. Zusätzlich analysiert der Parser gemäß der Ausführungsformen der vorliegenden Erfindung das Paket basierend auf den gespeicherten Analyseregeln und hat daher eine bessere Allgemeingültigkeit.The parser provided in accordance with the embodiments of the present invention is implemented based on a hardware logic device. Compared with the software-based parser, the hardware-based parser proposed according to the embodiments of the present invention improves the analysis efficiency and reduces the development cost of the parser. In addition, the parser according to embodiments of the present invention analyzes the packet based on the stored analysis rules, and therefore has better generality.
Kurzbeschreibung der ZeichnungenBrief description of the drawings
Detaillierte Beschreibung der ErfindungDetailed description of the invention
Die vorliegende Erfindung wird im Folgenden im Einzelnen beschrieben, bezugnehmend auf die beigefügten Zeichnungen und Ausführungsformen.The present invention will be described in detail below with reference to the accompanying drawings and embodiments.
In den Ausführungsformen der vorliegenden Erfindung ist der Parser basierend auf einem Hardware Logikbaustein implementiert, wodurch die Analyseeffizienz des Parsers verbessert wird, die Kosten des Parsers gesenkt werden und ein Parser mit einer besseren Allgemeingültigkeit bereitgestellt wird.In the embodiments of the present invention, the parser is implemented based on a hardware logic device, which improves the parser's parsing efficiency, reduces the cost of the parser, and provides a parser with better generality.
Im Folgenden ist eine Ausführungsform dargelegt, um die vorliegenden Erfindung weiter zu beschreiben.In the following, an embodiment is set forth to further describe the present invention.
Das Analyseregel-Speichermodul
In der vorliegenden Ausführungsform kann der in dem Analyseregel-Speichermodul
- (1) Vereinfache jede ABNF Regel, d. h. vereinfache die Beschreibung der ABNF Regel, so dass die ABNF Regel keine komplexen Strukturen, wie zum Beispiel stufenweise Alternativen, Sequenzgruppen oder optionale Sequenzen enthält. Die vereinfachte ABNF Regel kann dann in einer Regeltabelle gespeichert werden. Jeder Eintrag in der Regeltabelle entspricht einer vereinfachten ABNF Regel. Das detaillierte Verfahren der Vereinfachung umfasst: Füge für jede ABNF Regel einen Eintrag in die Regeltabelle (beispielsweise eine Hash Tabelle) hinzu; Für eine ABNF Regel, welche eine stufenweise Alternative enthält, füge den Inhalt der stufenweisen Alternative zu der ABNF Regel hinzu und aktualisiere die Einträge in der Regeltabelle; Für eine ABNF Regel, welche eine Sequenzgruppe enthält, definiere den Inhalt der Sequenzgruppe als eine neue ABNF Regel, ersetze den Inhalt der Sequenzgruppe der ursprünglichen ABNF Regel durch die neue ABNF Regel und wiederhole diesen Vorgang, bis die neue ABNF Regel keine Sequenzgruppe mehr enthält; Für eine ABNF Regel, welche eine optionale Sequenz enthält, definiere den Inhalt der optionalen Sequenz als neue ABNF Regel, ersetze den Inhalt der optionalen Sequenz der ursprünglichen ABNF Regel durch die neue ABNF Regel und wiederhole diesen Vorgang, bis die neue ABNF Regel keine optionale Sequenz mehr enthält.
- (2) Erstelle den Regelbaum basierend auf der Regeltabelle. Wähle insbesondere eine Regel in der Regeltabelle als Wurzel (Hauptknoten) aus, generiere rekursiv den entsprechenden Regelbaum basierend auf der Wurzel. Jede Verzweigung des Regelbaumes speichert eine maximale Anzahl von bei der ABNF definierten Abgleichzeiten.
- (3) Berechne ein First Terminals Set und eine Follow Terminals Set für jede Verzweigung des Regelbaumes gemäß des LL (1) Algorithmus und speichere eine First Terminals Set Liste und eine Follow Terminals Set Liste.
- (1) Simplify every ABNF rule, ie simplify the description of the ABNF rule so that the ABNF rule does not contain complex structures, such as stepwise alternatives, sequence groups, or optional sequences. The simplified ABNF rule can then be stored in a rules table. Each entry in the rules table corresponds to a simplified ABNF rule. The detailed procedure of simplification includes: For each ABNF rule, add an entry to the rules table (for example, a hash table); For an ABNF rule containing a staged alternative, add the content of the staged alternative to the ABNF rule and update the entries in the rules table; For an ABNF rule containing a sequence group, define the content of the sequence group as a new ABNF rule, replace the content of the sequence group of the original ABNF rule with the new ABNF rule and repeat this process until the new ABNF rule no longer contains a sequence group; For an ABNF rule that contains an optional sequence, define the content of the optional sequence as a new ABNF rule, replace the content of the optional sequence of the original ABNF rule with the new ABNF rule and repeat this process until the new ABNF rule does not have an optional sequence contains more.
- (2) Create the rule tree based on the rule table. In particular, select a rule in the rules table as root (main node), recursively generate the appropriate rule tree based on the root. Each branch of the rule tree stores a maximum number of matching times defined at the ABNF.
- (3) Compute a First Terminals Set and a Follow Terminals Set for each branch of the rule tree according to the LL (1) Algorithm and save a First Terminals Set List and a Follow Terminals Set List.
Das in dem derzeitig analysiertes Paket-Speichermodul
Das Paketanalyse-Modul
Diese Ausführungsform basiert auf dem ABNF Parser und führt die Analyse durch Ausnutzen der ABNF Regeln durch und ist anwendbar auf verschiedene ABNF basierte Anwendungen, beispielsweise die SIP und Extensibel Markup Language (XML). Daher hat diese Ausführungsform eine bessere Allgemeingültigkeit.This embodiment is based on the ABNF parser and performs the analysis by exploiting the ABNF rules and is applicable to various ABNF based applications such as the SIP and Extensible Markup Language (XML). Therefore, this embodiment has a better generality.
Das Paketanalyse-Modul
Die main_proc Steuereinheit
Die main_proc Steuereinheit
Die parse_term_proc Steuereinheit
Die match_first_proc Steuereinheit
Die match_follow_proc Steuereinheit
Die Zustände und das detaillierte Verfahren der main_proc Steuereinheit
Die main_proc Steuereinheit
IDLE, INIT, PARSE_LOOP, REPEAT_MAX, TERM_MATCH, IN_FIRST, FIRSTSUB, ALLSUB, CHOOSESUB, NEXTSUB0, NEXTSUB1, GETSUB, JUDGE_FOLLOW, IN_FOLLOW, NEXTRULE und END_PARSE.The
IDLE, INIT, PARSE_LOOP, REPEAT_MAX, TERM_MATCH, IN_FIRST, FIRSTSUB, ALLSUB, CHOOSESUB, NEXTSUB0, NEXTSUB1, GETSUB, JUDGE_FOLLOW, IN_FOLLOW, NEXTRULE, and END_PARSE.
Die Zustandsübergänge der main_proc Steuereinheit
Sobald eine Anstiegkante eines externen Steuersignals detektiert wird, so geht die Zustandsmaschine der main_proc Steuereinheit
As soon as a rising edge of an external control signal is detected, the state machine of the main_proc control unit goes on
Im PARSE_LOOP Zustand liest die main_proc Steuereinheit
Im REPEAT_MAX Zustand entscheidet die main_proc Steuereinheit
Falls der Anfangsknoten ein Endknoten ist, d. h. ein Blatt der vereinfachten ABNF Regel, setze ein match_term signal auf ein hohes Spannungslevel, um die parse_term_proc Steuereinheit
Falls der Anfangsknoten kein Endknoten ist, so setze das match_first Signal auf ein hohes Spannungslevel, um den match_first_proc Prozess zu initiieren, wobei das detaillierte Verfahren des match_first_proc Prozesses folgendermaßen ist:
Falls ein match_first_success Signal auf einem hohen Spannungslevel ist, so zeigt es an, dass das derzeitige Zeichen in dem First Terminals Set des Knotens ist; die Zustandsmaschine der main_proc Steuereinheit
If the starting node is not an end node, set the match_first signal to a high voltage level to initiate the match_first_proc process, with the detailed procedure of the match_first_proc process being as follows:
If a match_first_success signal is at a high voltage level, it indicates that the current character is in the first terminal set of the node; the state machine of the
Im FIRST_SUB Zustand entscheidet die Zustandsmaschine der main_proc Steuereinheit
Im CHOOSESUB Zustand liest die Zustandsmaschine der main_proc Steuereinheit
Im NEXTSUB0 Zustand liest die Zustandsmaschine der main_proc Steuereinheit
Im NEXTSUB1 Zustand liest die Zustandsmaschine der main_proc Steuereinheit
Im GETSUB Zustand überführt die Zustandsmaschine der main_proc Steuereinheit
Falls ein match_first_fail Signal auf einem hohem Spannungslevel ist, so zeigt es an, dass das derzeitige Zeichen nicht in dem First Terminals Set des Unterknotens ist; die Zustandsmaschine der main_proc Steuereinheit
Im JUDGE_FOLLOW setzt die Zustandsmaschine der main_proc Steuereinheit
Der NEXTRULE Zustand zeigt an, das die Detektion des Follow Terminals Sets fehlgeschlagen ist. Er zeigt an, dass die Analyse des Pakets fehlgeschlagen ist, d. h. dass das Paket nicht der ABNF Syntax entspricht; die Zustandsmaschine der main_proc Steuereinheit
Im IN_FOLLOW Zustand im Fall, dass der Abgleich des Knotens mit dem Follow Terminals Set erfoglreich war, kehre zum PARSE_LOOP Zustand zurück, nimm den obersten Knoten vom Stack heraus und gleich einen neuen Anfangsknoten, d. h. den nächsten Knoten, ab.In the IN_FOLLOW state, if the node had been reconciled with the Follow Terminals Set, return to the PARSE_LOOP state, take the top node out of the stack, and immediately create a new start node, i. H. the next node, from.
IDLE, START, TERM_STRING, TERM_CODE_LIST, TERM_SUCCES und TERM_FAIL.
IDLE, START, TERM_STRING, TERM_CODE_LIST, TERM_SUCCES and TERM_FAIL.
Bezugnehmend auf
Falls die Kodierungsart des Pakets eine Zeichenfolge ist, so geht die Zustandsmaschine der parse_term_proc Steuereinheit
Falls die Kodierungsart des Pakets eine Code Liste ist, geht die Zustandsmaschine der parse_term_proc Steuereinheit
Wenn der Abgleich im TERM_STRING Zustand oder im TERM_CODE_LIST Zustand beendet ist, geht die Zustandsmaschine der parse_term_proc Steuereinheit
Wenn die Zustandsmaschine der main_proc Steuereinheit
IDLE, LIST_LOOP, FIRST_STRING, FIRST_CODE_LIST, FIRST_SUCCESS und FIRST_FAIL.
IDLE, LIST_LOOP, FIRST_STRING, FIRST_CODE_LIST, FIRST_SUCCESS and FIRST_FAIL.
Bezugnehmend auf
Falls die Kodierungsart des Pakets eine Zeichenfolge ist, so geht die Zustandsmaschine der match_first_proc Steuereinheit
Falls die Zeichenfolge nur ein einzelnes Zeichen enthält oder einen ASCII Code eines einzelnen Zeichens, bestimmt die Zustandsmaschine sofort, ob der Abgleich erfolgreich war, und geht je nach Abgleichergebnis in den FIRST_SUCCESS Zustand oder den FIRST_FAIL Zustand über.If the string contains only a single character or an ASCII code of a single character, the state machine immediately determines if the match was successful and goes into the FIRST_SUCCESS state or the FIRST_FAIL state depending on the match result.
Falls die Kodierungsart des Pakets eine Code Liste ist, geht die Zustandsmaschine der match_first_proc Steuereinheit
Wenn der Abgleich im FIRST_STRING Zustand durchgeführt wurde, geht die Zustandsmaschine der match_first_proc Steuereinheit
Wenn der Abgleich im FIRST_CODE_LIST Zustand durchgeführt wurde, geht die Zustandsmaschine der match_first_proc Steuereinheit
Falls kein passendes First Terminals Set Element gefunden wurde, geht die Zustandsmaschine der match_first_proc Steuereinheit
Wenn die Zustandsmaschine der main_proc Steuereinheit
IDLE, LIST_LOOP, FOLLOW_STRING, FOLLOW_CODE_LIST, FOLLOW_SUCCESS und FOLLOW_FAIL.
IDLE, LIST_LOOP, FOLLOW_STRING, FOLLOW_CODE_LIST, FOLLOW_SUCCESS, and FOLLOW_FAIL.
Bezugnehmend auf
Falls die Kodierungsart des Pakets eine Zeichenfolge ist, so geht die Zustandsmaschine der match_follow_proc Steuereinheit
Falls die Zeichenfolge nur ein einzelnes Zeichen enthält oder einen ASCII Code eines einzelnen Zeichens, bestimmt die Zustandsmaschine sofort, ob der Abgleich erfolgreich war, und geht je nach Abgleichergebnis über in den FOLLOW_SUCCESS Zustand oder den FOLLOW_FAIL Zustand.If the string contains only a single character or an ASCII code of a single character, the state machine immediately determines if the match was successful and, depending on the match result, enters the FOLLOW_SUCCESS state or the FOLLOW_FAIL state.
Falls die Kodierungsart des Pakets eine Code Liste ist, geht die Zustandsmaschine der match_follow_proc Steuereinheit
Wenn der Abgleich im FOLLOW_CODE_LIST Zustand durchgeführt wurde, geht die Zustandsmaschine der match_follow_proc Steuereinheit
Falls kein passendes Follow Terminals Set Element gefunden wurde, geht die Zustandsmaschine der match_follow_proc Steuereinheit
Wenn die Zustandsmaschine der main_proc Steuereinheit
Basierend auf den genannten Zustandsmaschinen kann das Paketanalyse-Modul durch einen Hardware Logikbaustein implementiert werden, wie beispielsweise durch einen FPGA oder einen CPLD; so kann ein universeller auf ABNF basierender Syntax Parser zur Analyse eines textkodierten Protokolls implementiert werden.Based on said state machines, the packet analysis module may be implemented by a hardware logic device, such as an FPGA or a CPLD; For example, a universal ABNF-based syntax parser can be implemented to parse a text-encoded protocol.
Das vorangehend Gesagte ist nur eine bevorzugte Ausführungsform der vorliegenden Erfindung. Der Schutzumfang der vorliegenden Erfindung ist allerdings nicht auf die obige Beschreibung beschränkt. Jede Änderung oder Ersetzung innerhalb des durch die vorliegenden Erfindung offenbarten technischen Schutzbereichs, welche dem Fachmann geläufig ist, ist durch den Schutzumfang der vorliegenden Erfindung mit umfasst. Der Schutzumfang der vorliegenden Erfindung soll daher im Einklang stehen mit dem Schutzumfang, wie er durch die Ansprüche festgelegt wird.The foregoing is just one preferred embodiment of the present invention. However, the scope of the present invention is not limited to the above description. Any change or replacement within the technical scope disclosed by the present invention, which is familiar to those skilled in the art, is included within the scope of the present invention. The scope of the present invention should therefore be consistent with the scope of protection as defined by the claims.
Claims (8)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200510001782.1 | 2005-01-21 | ||
CNB2005100017821A CN100505752C (en) | 2005-01-21 | 2005-01-21 | Universal parser for text encoding protocols |
PCT/CN2006/000118 WO2006076869A1 (en) | 2005-01-21 | 2006-01-23 | A text coding type protocol parser |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112006000260T5 DE112006000260T5 (en) | 2008-01-24 |
DE112006000260B4 true DE112006000260B4 (en) | 2014-04-10 |
Family
ID=36691991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112006000260.0T Active DE112006000260B4 (en) | 2005-01-21 | 2006-01-23 | Parser for analyzing a text-coded protocol |
Country Status (4)
Country | Link |
---|---|
US (1) | US7636787B2 (en) |
CN (1) | CN100505752C (en) |
DE (1) | DE112006000260B4 (en) |
WO (1) | WO2006076869A1 (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842081B (en) * | 2005-03-30 | 2010-06-02 | 华为技术有限公司 | Method and device for matching and parsing extended backusian form string pattern |
US8291058B2 (en) * | 2010-02-19 | 2012-10-16 | Intrusion, Inc. | High speed network data extractor |
US8745748B2 (en) * | 2010-10-15 | 2014-06-03 | Microsoft Corporation | Cancelling digital signatures for form files |
WO2012171166A1 (en) * | 2011-06-13 | 2012-12-20 | 华为技术有限公司 | Method and apparatus for protocol parsing |
KR101913313B1 (en) * | 2011-12-28 | 2018-10-31 | 삼성전자주식회사 | A implementation method of contents centric network in a gateway using internet protocol based networks and a gateway thereof |
US9343506B2 (en) | 2014-06-04 | 2016-05-17 | Micron Technology, Inc. | Memory arrays with polygonal memory cells having specific sidewall orientations |
CN105354282A (en) * | 2015-10-30 | 2016-02-24 | 青岛海尔智能家电科技有限公司 | XML file retrieval method and apparatus |
US10298482B2 (en) * | 2017-01-25 | 2019-05-21 | Ringcentral, Inc. | Systems and methods for regulating network resources to improve data-transmission quality |
AU2018316966B2 (en) * | 2017-08-18 | 2021-10-07 | Nippon Telegraph And Telephone Corporation | Intrusion prevention device, intrusion prevention method, and program |
CN111061482B (en) * | 2019-10-24 | 2023-12-08 | 贝壳技术有限公司 | Method and device for analyzing parameters in character string, storage medium and electronic equipment |
US11449496B2 (en) * | 2019-10-25 | 2022-09-20 | Servicenow, Inc. | Enhanced natural language processing with semantic shortcuts |
CN112860233B (en) * | 2019-11-28 | 2024-03-15 | 华为云计算技术有限公司 | Target syntax tree generation method and related equipment |
CN110933077A (en) * | 2019-11-29 | 2020-03-27 | 深圳市风云实业有限公司 | Message parsing system and method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5916305A (en) * | 1996-11-05 | 1999-06-29 | Shomiti Systems, Inc. | Pattern recognition in data communications using predictive parsers |
US20040088425A1 (en) * | 2002-10-31 | 2004-05-06 | Comverse, Ltd. | Application level gateway based on universal parser |
WO2004079571A2 (en) * | 2003-02-28 | 2004-09-16 | Lockheed Martin Corporation | Hardware accelerator state table compiler |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6778949B2 (en) * | 1999-10-18 | 2004-08-17 | Sony Corporation | Method and system to analyze, transfer and generate language expressions using compiled instructions to manipulate linguistic structures |
DE50013051D1 (en) * | 2000-04-14 | 2006-08-03 | Tektronix Berlin Gmbh & Co Kg | Method and device for analyzing data |
JP3985944B2 (en) * | 2001-11-22 | 2007-10-03 | 株式会社日立超エル・エス・アイ・システムズ | Network device and program |
US20030185220A1 (en) * | 2002-03-27 | 2003-10-02 | Moshe Valenci | Dynamically loading parsing capabilities |
US7187694B1 (en) * | 2002-03-29 | 2007-03-06 | Pmc-Sierra, Inc. | Generic packet parser |
US7062680B2 (en) * | 2002-11-18 | 2006-06-13 | Texas Instruments Incorporated | Expert system for protocols analysis |
EP1581869A2 (en) | 2003-01-07 | 2005-10-05 | International Business Machines Corporation | A method and system for dynamically creating parsers in a message broker |
CN100356727C (en) | 2003-03-19 | 2007-12-19 | 华为技术有限公司 | Method for analysing signalling |
US7293113B1 (en) * | 2003-05-28 | 2007-11-06 | Advanced Micro Devices, Inc. | Data communication system with hardware protocol parser and method therefor |
US7451299B2 (en) * | 2003-07-18 | 2008-11-11 | Bea Systems, Inc. | System and method for generating multi-way branches |
US7328403B2 (en) * | 2003-10-22 | 2008-02-05 | Intel Corporation | Device for structured data transformation |
US7570661B2 (en) * | 2005-06-14 | 2009-08-04 | Microsoft Corporation | Script-based parser |
-
2005
- 2005-01-21 CN CNB2005100017821A patent/CN100505752C/en not_active Expired - Lifetime
-
2006
- 2006-01-23 WO PCT/CN2006/000118 patent/WO2006076869A1/en not_active Application Discontinuation
- 2006-01-23 DE DE112006000260.0T patent/DE112006000260B4/en active Active
-
2007
- 2007-07-23 US US11/878,191 patent/US7636787B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5916305A (en) * | 1996-11-05 | 1999-06-29 | Shomiti Systems, Inc. | Pattern recognition in data communications using predictive parsers |
US20040088425A1 (en) * | 2002-10-31 | 2004-05-06 | Comverse, Ltd. | Application level gateway based on universal parser |
WO2004079571A2 (en) * | 2003-02-28 | 2004-09-16 | Lockheed Martin Corporation | Hardware accelerator state table compiler |
Non-Patent Citations (1)
Title |
---|
Crocker, d., Overell, P.: Augmented BNF for Syntax Specification: ABNF. IETF : RFC 2234, November 1997. - ISBN -. http://www.rfc-editor.org/rfc/pdfrfc/rfc2234.txt.pdf [abgerufen am 17.10.2012] * |
Also Published As
Publication number | Publication date |
---|---|
US20080040496A1 (en) | 2008-02-14 |
CN1809053A (en) | 2006-07-26 |
US7636787B2 (en) | 2009-12-22 |
WO2006076869A1 (en) | 2006-07-27 |
CN100505752C (en) | 2009-06-24 |
DE112006000260T5 (en) | 2008-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112006000260B4 (en) | Parser for analyzing a text-coded protocol | |
DE60222575T2 (en) | A method for generating a DFA machine, wherein transitions are grouped into classes for the purpose of saving memory | |
DE112012002624B4 (en) | Regex compiler | |
DE602005000984T2 (en) | Method and device for storing input filter criteria and for specifying trigger point templates at the time of service implementation | |
DE10301362B4 (en) | A block data compression system consisting of a compression device and a decompression device, and methods for fast block data compression with multi-byte search | |
DE60115615T2 (en) | SYSTEM, DEVICE AND METHOD FOR FAST PACKAGE FILTERING AND PROCESSING | |
DE2210044C2 (en) | Procedure for converting code words | |
DE68926483T2 (en) | Process for processing hierarchical data | |
DE102005011845A1 (en) | protocol emulator | |
DE112011103561T5 (en) | Network processor and method for accelerating data packet parsing | |
DE69727933T2 (en) | METHOD AND DEVICE FOR DESCRIPTING A DEFINED INTERFACE, OPERATION AND DATA TYPE IN AN INTERFACE DEFINITION LANGUAGE | |
DE69331044T2 (en) | Device and method for syntactic signal analysis | |
DE60225785T2 (en) | PROCESS FOR CODING AND DECODING A PATH IN THE TREE STRUCTURE OF A STRUCTURED DOCUMENT | |
EP1495611B1 (en) | Representation of boolean expressions for specifying filters using xml | |
DE112019005382T5 (en) | DESIGN AND PERFORMANCE OF A CHARACTER PATTERN RECOGNITION IN A CIRCUIT AT THE DATA LEVEL | |
DE60124722T2 (en) | METHOD FOR TRANSMITTING A MOBILE AGENT IN A NETWORK; TRANSMITTER, RECEIVER AND ASSOCIATED MOBILE AGENT | |
DE102005013301A1 (en) | Distributed data model | |
DE60030930T2 (en) | Apparatus and method for maintaining a routing table | |
EP3991064B1 (en) | Method and processor device for changing a data format of communication data of a device commmunication, and motor vehicle | |
DE60210986T2 (en) | METHOD AND DEVICE FOR TRANSMITTING SNMP MESSAGES USING UDP WITH COMPIATION OF PERIODICALLY REPRODUCING SEQUENCES | |
DE102021201028A1 (en) | GENERIC INSERT AND REMOVAL OF PACKAGE HEADERS | |
DE60303775T2 (en) | Network unit for forwarding Ethernet packets | |
WO2023025764A1 (en) | Device and method for processing data units | |
DE10219390B4 (en) | Server, buffer memory and browser for accelerated transmission of hypertext documents | |
EP2157525B1 (en) | Method for recognising malware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R020 | Patent grant now final |
Effective date: 20150113 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: H04L0012260000 Ipc: H04L0043000000 |