# Patent

## Title
Mechanism for processing network event protocol messages

## Abstract

A communication system includes a first apparatus and a second apparatus. The first apparatus is configured to: attach first and second message length information to a first and second SYSLOG message, respectively; form at least a portion of a transport payload by adding a first portion and a second portion thereto, wherein the first portion includes the first SYSLOG message with the attached first message length information, and the second portion includes the second SYSLOG message with the attached second message length information; and send the transport payload. The second apparatus is configured to: parse the first and second SYSLOG messages one by one from the transport payload.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 14/304,745, filed on Jun. 13, 2014, which is a continuation of U.S. application Ser. No. 11/616,949, filed on Dec. 28, 2006, The U.S. Application claims priority to Chinese Patent Application No. 200610057508.0, filed on Mar. 9, 2006. The afore-mentioned patent applications are hereby incorporated by reference in their entireties.


FIELD
The present invention relates to the field of communications, and particularly to a method for transferring network event protocol messages.
BACKGROUND
SYSLOG (network event protocol) is an event delivery protocol widely used in various network operation systems, such as Microsoft Windows, Unix and Linux, etc.
The SYSLOG protocol works in a Client-Server mode for communication, and the Client is the sender while the Server is the receiver of an event message. The Client may be an event generator such as equipment or a procedure, and it also may be a relay entity which processes the SYSLOG event received from another sender (an event generator or other relay entities) and then sends the processed event to another receiver.
The SYSLOG protocol is a simplex communication protocol, that is, the event message is only sent from the sender to the receiver, and the receiver does not send any acknowledgement, “connect start”, “connect close” message or the like, i.e., the receiver never sends any message to the sender in the layer of SYSLOG protocol (however, bi-directional communication may be needed for the transport protocol in the lower layer).
The SYSLOG protocol is a text-based protocol in which all parameter names and parameter values are text, and uses of the characters with code value less than 32 in ASCII code are avoided, that is, uses of the control character are avoided. A SYSLOG message may be simply taken as a text block from the view of the lower layer transfer protocol.
At present, User Datagram Protocol (UDP) is generally used to transfer a SYSLOG message. As UDP is used to transfer a SYSLOG message, each UDP message can only transfer one SYSLOG message according to the relationship between the length of a SYSLOG message and that of a UDP message. The protocol stack for a UDP based SYSLOG message transfer is shown in part A of the schematic diagram of the SYSLOG protocol stack structure in FIG. 1.
However, UDP is an unreliable connectionless protocol in spite of its simplicity and flexibility. Losses may occur during message transfer based on UDP, and such matters as “packet loss” are not handled by the SYSLOG message, thus the loss of the event information may occur while the UDP is used to transfer a SYSLOG message. As a reliable connection-oriented protocol, a transfer control protocol (TCP) may be used to transfer the SYSLOG message so as to improve the reliability of data transfer. A protocol stack for a TCP-based SYSLOG message transfer is shown in part B of the schematic diagram of the SYSLOG protocol stack structure in FIG. 1.
At present, the Internet security is increasingly critical for stably running the network; similarly, the SYSLOG protocol also faces security problems as following:
1. information falsification: the SYSLOG message may be falsified by a malicious intermediate network node during transfer.
2. information leakage: the SYSLOG message may be intercepted illegally during transfer, and information in the SYSLOG message, such as the description information of an event, is taken.
3. identity spoofing: a malicious node imitating as a legal node participates in the communication of SYSLOG.
In order to solve the security problems of the SYSLOG message transfer, the SYSLOG message may be transferred over such secure protocols as Transport Layer Security protocol (TLS), BEEP (a TCP based secure protocol) and Secure SHell protocol (SSH), all of which can provide such safety mechanisms as privacy, integrity and data source verification so that the security problems of the SYSLOG message can be solved. A protocol stack for transferring the SYSLOG message based on TCP or secure protocols is shown in part C of the schematic diagram of SYSLOG protocol stack structure in FIG. 1.
When TCP or a secure protocol is used to transfer the SYSLOG message, the message that can be transferred may be long while a SYSLOG message is generally short. Therefore, a plurality of SYSLOG messages may be arranged in one TCP or secure protocol message so as to improve the transfer efficiency. When a receiver receives a transferred message, there may be a plurality of SYSLOG messages in the payload of the message (for secure protocol transfer, the payload has to undertake a secure protocol operation such as decipherment first). Therefore, the received message can only be properly processed by identifying the border of each SYSLOG message therein and parsing each SYSLOG message from the payload.
A method in a related art for parsing the SYSLOG messages from the payload is to add one or more special control characters to the end of each SYSLOG message. Since the SYSLOG protocol is a plain text protocol, and characters with ASCII code less than 32 are avoided in the contents of the message, the added special control character is usually a character whose code is less than 32 in ASCII, such as Carriage Return and Line Feed (CR and LF, whose codes are 13 and 10 in ACSII, respectively). When the receiver receives and processes the aforesaid SYSLOG message, once an aforesaid special character is found in the message, the SYSLOG message is considered to reach its end, and the beginning of another SYSLOG message is followed or the entire payload is ended (for the last record in the payload, the aforesaid special control character may not be added thereafter). Refer to FIG. 2 for the schematic diagram of adding one or more special control characters to the end of each SYSLOG message.
The aforesaid method has such drawbacks as large processing consumption and low processing speed, for the processing program should traverse all characters in the payload to detect the aforesaid special control character, so as to determine the beginning and end of each SYSLOG message.
Furthermore, errors in the parsing of the SYSLOG message may also occur according to the aforesaid method. For example, in a SYSLOG safety mechanism, a hash is created for each SYSLOG message by such a hash function as MD5 or SHA1, and all the hashes are put in the SYSLOG message. The SYSLOG message may also include other information. Then, signature is made for the SYSLOG message and put into the SYSLOG message, and then transferred to the receiver (a relay entity or a collection entity), and the receiver validates the identity of the SYSLOG sender according to the signature. In addition, the certificate for validating signature is also sent to the receiver via one or more SYSLOG messages.
The aforesaid hash, signature and part of the contents in a certificate sent to the receiver are all in the binary format, in which an aforesaid special control character may be included. In this situation, during the parsing of the SYSLOG message by the aforesaid method, special control characters in the hash, signature or certificate may be mistaken as the border of the SYSLOG message, thus errors in the parsing of the SYSLOG message may occur.
There is another possible method in another related art for parsing the SYSLOG message from the payload. In order to solve the aforesaid problem of mis-parsing the message due to the existence of the signature, the message may be analyzed orderly, that is, the message is analyzed from the beginning of the payload, and whenever a hash, signature or certificate is found, the end of them is determined according to such characteristics as length of hash, signature or certificate. For each cryptographic algorithm/hash algorithm has its specific characteristic length, which makes it possible to find the end of each binary data by length.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram illustrating the SYSLOG protocol stack structure.
FIG. 2 is a schematic diagram illustrating the process of adding one or more special control characters to the end of each SYSLOG message.
FIG. 3 is a flowchart illustrating the processing procedure of the method according to an embodiment of this invention.
FIG. 4 is a schematic diagram illustrating the transport payload received by the receiver of the SYSLOG message according to the embodiment of this invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The embodiment of this invention provides a method for transferring a network event protocol message. In the embodiment, message length information is attached before each SYSLOG message, and a plurality of SYSLOG messages with message length information attached form a transport payload.
This invention is hereinafter described in detail with reference to the accompanying drawings as well as the embodiment. As shown in FIG. 3, the processing procedure of the method in accordance with an embodiment of this invention includes the following steps.
Step 3-1: attaching message length information to each SYSLOG message.
Message length information needs to be attached to each SYSLOG message to be sent, and a plurality of SYSLOG messages with message length information attached form a transport payload. The message length information may be located before each SYSLOG message.
The message length information indicates the number of the total bytes of the SYSLOG message; the message length information may include or may not include the length of the message length information. The message length information may be denoted by 4 bytes (8 bits in each byte) so that the maximum SYSLOG message length that can be denoted is 232 (4,294,967,296) bytes. The beginning and the end of each SYSLOG message in the transport payload may be rapidly found out according to the message length information.
Step 3-2: the receiver of the SYSLOG message parses the SYSLOG messages from the transport payload including the SYSLOG messages, according to the message length information attached.
After the message length information is attached to the SYSLOG message, the sender of the SYSLOG message sends the SYSLOG message to the receiver of the SYSLOG message. A plurality of SYSLOG messages received by the receiver of the SYSLOG message form a transport payload. According to the message length information attached, the receiver of the SYSLOG message may rapidly determine the beginning and the end of each SYSLOG message in the transport payload one by one, and thereby parses each SYSLOG message one by one.
In an embodiment of this invention, transport payload received by the receiver of the SYSLOG message is shown in FIG. 4. The process for parsing each SYSLOG message one by one from the transport payload is as follows:
1. the receiver of the SYSLOG message reads the first 4 bytes of the transport payload, and obtains the length value n1 of SYSLOG message 1 (suppose that the length value n1 does not include the length of the length value).
2. the receiver of the SYSLOG message reads n1 bytes from the fifth byte of the transport payload on, takes the read bytes as the first SYSLOG message, and gives the first SYSLOG message to a SYSLOG message processing module to process.
3. the receiver of the SYSLOG message reads 4 bytes from Byte n1+4 on, and obtains the length value n2 of SYSLOG message 2.
4. the receiver of the SYSLOG message reads n2 bytes from Byte n1+4*2+1 of the transport payload on, takes the read bytes as the second SYSLOG message, and gives the second SYSLOG message to the SYSLOG message processing module to process.
5. the receiver of the SYSLOG message repeats the aforesaid process, reads all the SYSLOG messages in the transport payload until reaches the end of the entire transport payload.
In the above processing procedure of the method according to the embodiment of this invention, the message length information and additional information related to the SYSLOG message may be attached simultaneously to the SYSLOG message. For example, along with the message length information, the type information of the SYSLOG message and/or padding length information may be attached, and the type information of the SYSLOG message can be used in cooperation with an appropriate local strategy to speed up the process for processing the SYSLOG message. Appropriate bytes may be padded in the end of the SYSLOG message to make an attacker difficult to launch a traffic analysis attack; and the padding length information attached allows the communication equipment to conveniently make an effective parse identification of the SYSLOG message.
The foregoing is only the preferred embodiment of the present invention and is not intended to limit the scope of the present invention. Any modification, equivalent substitution, or improvement made without departing from the spirit and principle of the present invention should be covered by the scope set forth in the appended claims.

## Claims

1. A communication system, comprising:
an apparatus configured as a SYSLOG client, which is configured to:
attach first message length information to a first SYSLOG message;
attach second message length information to a second SYSLOG message;
form at least a portion of a transport payload by adding a first portion and a second portion thereto, wherein the first portion includes the first SYSLOG message with the attached first message length information, and the second portion includes the second SYSLOG message with the attached second message length information; and
send the transport payload;


and
an apparatus configured as a SYSLOG server, which configured to:
receive the transport payload sent by the apparatus configured as a SYSLOG client; and
parse the first and second SYSLOG messages one by one from the transport payload by reading the first message length information from the transport payload and processing the first SYSLOG message according to the first message length information, and thereafter reading the second message length information from the transport payload and processing the second SYSLOG message according to the second message length information.

2. The communication system of claim 1, wherein the first and second message length information indicate the number of bytes of the respective first and second SYSLOG message.

3. The communication system of claim 2, wherein the number of bytes of the first and second SYSLOG messages are the number of bytes of the respective first and second SYSLOG messages with or without the respective message length information.

4. The communication system of claim 1, wherein the apparatus configured as a SYSLOG client is configured to:
attach the first message length information in front of the first SYSLOG message; and
attach the second message length information in front of the second SYSLOG message.

5. The communication system of claim 1, wherein each of the first and second message length information includes 4 bytes.

6. The communication system of claim 1, wherein the apparatus configured as a SYSLOG client is configured to:
attach additional information related to the respective first and second SYSLOG messages along with their respective first and second message length information to the respective first and second SYSLOG messages.

7. The communication system of claim 6, wherein the additional information comprises a type of SYSLOG message, padding length information, or both, for the respective first and second SYSLOG messages, and wherein the apparatus configured as a SYSLOG server is configured to:
process the first and second SYSLOG messages in accordance with a local strategy according to the respective type information; and
identify the first and second SYSLOG messages according to the respective padding length information.