Communication Method

JP7632417B2Active Publication Date: 2025-02-19TOYOTA JIDOSHA KK
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022127317
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-08-09
Publication Date
2025-02-19
Estimated Expiration
2042-08-09

AI Technical Summary

Benefits of technology

【0007】 本開示によれば、異なるネットワークレイヤ間における分散トレーシングが可能になる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007632417000001
    Figure 0007632417000001
  • Figure 0007632417000002
    Figure 0007632417000002
  • Figure 0007632417000003
    Figure 0007632417000003
Patent Text Reader

Abstract

To allow distributed tracing between different network layers.SOLUTION: A first module receives, from a first application, a first packet generated according to a first protocol and generated so as to be addressed to a second communication node, adds first trace information to a predetermined area in the first packet, and delivers the first packet added with the first trace information to a lower network layer so as to transmit the first packet to the second communication node. The first module deletes second trace information from a second packet transmitted from the second communication node, and delivers the packet to the first application. When the first application generates the first packet in response to the second packet, the first module generates, as the first trace information, information corresponding to or same as the second trace information included in the second packet.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to communications. [Background technology]

[0002] In recent years, technology that uses microservices to perform distributed processing has become widespread. Distributed tracing is a mechanism for monitoring latency and other issues in applications built with a microservice architecture. As a related technique, for example, Non-Patent Document 1 discloses a technique for tracing across different network layers. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] Rena Yoshitani, Zhonghan Lee, Toshio Hirotsu, Design and Implementation of Multi-Layer Tracing for Microservice Environments, [online], March 2022, 84th National Conference of the Information Processing Society of Japan, [Retrieved July 18, 2022], http: / / ipsj.or.jp / award / 9faeag0000004ej9-att / 4K-06.pdf Summary of the Invention [Problem to be solved by the invention]

[0004] The present disclosure aims to enable distributed tracing across different network layers. [Means for solving the problem]

[0005] One aspect of an embodiment of the present disclosure is a method for implementing a method of implementing a first module included in a first communication node, the first module receiving, from a first application, a first packet generated according to a first protocol defined in a first layer in a predetermined protocol stack and destined for a second communication node, adding first trace information for tracing data between a plurality of communication nodes to a predetermined area in the first packet, and passing the first packet to which the first trace information has been added to a second layer located lower than the first layer in order to transmit the first packet to the second communication node, the first application a second trace information storage section that stores a first trace information for each packet and transmits the first packet to the second communication node and delivers the second packet from which the second trace information has been deleted to the first application when the second trace information is contained in the specified area of ​​the second packet transmitted from the second communication node and delivered from the second layer before generating the first packet; and when the first application generates the first packet in response to the second packet, the first module generates information that corresponds to or is the same as the second trace information contained in the second packet as the first trace information.

[0006] Another aspect of the present invention is a program for causing a computer to execute the above-described method, or a computer-readable storage medium non-transitoryly storing the program. Effect of the Invention

[0007] The present disclosure enables distributed tracing across different network layers. [Brief description of the drawings]

[0008] [Figure 1] FIG. 1 is a system configuration diagram of an information processing apparatus according to an embodiment of the present invention. [Diagram 2] FIG. 4 is a schematic diagram of a frame transmitted from the information processing device 100A. [Diagram 3] 4 is a diagram for explaining transmission of a request from an information processing device 100A to an information processing device 100B. [Figure 4] FIG. 13 is a diagram illustrating transmission of a response from the information processing device 100B to the information processing device 100A. [Diagram 5] 13 is a flowchart of a process 1A executed by the first proxy. [Figure 6] 13 is a flowchart of a process 1B executed by the first proxy. [Figure 7] 13 is a flowchart of a process 2B executed by the first proxy. [Figure 8] 13 is a flowchart of a process 2A executed by the first proxy. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0009] Microservices architecture is known. Microservices architecture is an architecture in which an application provided to a user is divided into multiple independent small-scale applications (hereinafter, microservices applications) and the microservices applications are executed in a distributed manner on multiple nodes.

[0010] On the other hand, when a microservice application is executed in a distributed manner on multiple nodes, it becomes difficult to track the processing from an overall perspective. To address this issue, a technology called distributed tracing is used.

[0011] In distributed tracing, information for tracing (hereinafter referred to as trace information) is attached to data sent and received between microservice applications, and each microservice application writes trace logs to storage based on the trace information. This makes it possible to obtain information at a high level, such as which microservice applications have parent-child relationships with which other microservice applications, and the execution time of each.

[0012] In distributed tracing, trace information is generally added to the headers of HTTP requests sent and received by microservice applications.

[0013] However, such a system assumes tracing only in the same network layer (e.g., application layer). For example, trace information added to an HTTP header is not assumed to be accessed from a network layer other than the application layer because the HTTP message is encapsulated in each layer below the application layer. In other words, while it is possible to evaluate delays and other factors caused by processing at the application layer (HTTP), it is difficult to evaluate delays and other factors caused by processing at the transport layer (TCP) or network layer (IP).

[0014] To solve this problem, a technology is known that utilizes trace information from a network layer other than the application layer (for example, Non-Patent Document 1). In this technology, a monitoring tool built into the kernel operates at a layer lower than the application layer, and the monitoring tool accesses the trace information included in the HTTP header. This makes it possible to access trace information from both the application layer and the transport layer, for example, and enables tracing across network layers.

[0015] However, this method also has problems. The issue is that the trace information contained in an HTTP request is laid out near the middle of the HTTP header, making it difficult to read quickly. Also, instead of trace information, the HTTP response contains a request URI (RequestURI) for identifying the pair of the HTTP request and HTTP response. However, the request URI is laid out near the end of the HTTP header, so it also takes time to read. Since HTTP headers are variable length and need to be searched from the beginning, delays increase as the amount of data to be processed increases.

[0016] One approach would be to move the trace information and the request URI to the front of the HTTP header, but doing so would make the packet non-HTTP compliant and therefore unable to be processed by other microservice applications that do not support this change. That is, when an attempt is made to access and analyze trace information from different network layers, delays occur, and attempts to solve this problem result in a loss of packet compatibility. The communication method according to the present disclosure solves such a problem.

[0017] A communication method according to one aspect of the present disclosure includes a first module included in a first communication node receiving, from a first application, a first packet generated according to a first protocol defined in a first layer in a predetermined protocol stack and addressed to a second communication node, adding first trace information for tracing data between a plurality of communication nodes to a predetermined area in the first packet, and passing the first packet to which the first trace information has been added to a second layer located lower than the first layer in order to transmit the first packet to the second communication node, and and when second trace information is included in the specified area of ​​a second packet transmitted from the second communication node and handed over from the second layer before generating the first packet, the first module deletes the second trace information and hands over the second packet from which the second trace information has been deleted to the first application, and when the first application generates the first packet in response to the second packet, the first module generates information that corresponds to or is the same as the second trace information included in the second packet as the first trace information.

[0018] The first module is a proxy that forwards a first packet generated by a first application conforming to a first protocol and destined for a second communication node, for example, when the first layer is an application layer, the first module forwards a packet conforming to the HTTP protocol generated by an application program.

[0019] The first module adds trace information to a predetermined area in the first packet, and then passes the packet to a lower layer (eg, a transport layer). The trace information added here may be an area where the addition of trace information is not assumed in the first protocol. For example, as described above, an HTTP response does not have an area reserved for trace information, and the request URI cannot be moved forward in the header. In the communication method according to the present disclosure, the first module adds trace information regardless of these restrictions, and takes care of it later.

[0020] In addition, the first module receives a second packet from a second communication node with which it is communicating, and when the second packet is handed over from a lower network layer, it checks whether trace information is present in the second packet. If the trace information exists in the second packet, the first module removes the trace information from the second packet and then passes the second packet to a first protocol corresponding to the first layer. That is, the first module deletes the trace information added to the packet at a stage before the packet is processed by the application program in the first layer.

[0021] This configuration provides the following two advantages. First, the trace information added in the first layer can be quickly accessed in a network layer lower than the first layer. For example, since the trace information can be placed in any area of ​​an HTTP response, the trace information can be quickly acquired in a layer lower than the application layer.

[0022] Second, packets with added trace information are processed only in layers below the first layer, and therefore do not affect processing in the first layer. In other words, even if non-HTTP-compliant trace information is added to an HTTP header, it does not affect other applications that communicate via HTTP.

[0023] When the first module generates a first packet in response to a second packet, the first module generates information corresponding to the second trace information contained in the second packet or information identical to the second trace information as first trace information to be added to the first packet. This makes it possible to generate trace information while maintaining the correspondence between requests and responses.

[0024] In addition, other proxy modules may be running in the second layer that perform tracing using the added trace information. For example, a third module may be running in the transport layer or network layer of the first node, and a fourth module performing similar processing may be running in the second node. These modules may generate trace logs targeting TCP or IP based on the trace information and write them to storage.

[0025] The third and fourth modules may be operated by eBPF (Extended Berkeley Packet Filter). eBPF is a technology that allows any program to be executed at the kernel level without modifying the source code of the OS kernel or adding modules. This makes it possible to read and write data at the network layer, which is lower than the application layer.

[0026] Specific embodiments of the present disclosure will be described below with reference to the drawings. Unless otherwise specified, the hardware configuration, module configuration, functional configuration, and the like described in each embodiment are not intended to limit the technical scope of the disclosure to only those.

[0027] First Embodiment Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. The information processing system according to this embodiment is a system in which a plurality of nodes (information processing devices) executes specific information processing in a distributed manner.

[0028] In the information processing system according to the present embodiment, a plurality of information processing devices 100 communicate with each other to execute tasks in a distributed manner. The plurality of information processing devices 100 may be fixed computers or mobile computers. For example, by mounting the information processing device 100 on an automobile, tasks that arise while the automobile is traveling can be processed in a distributed manner by a plurality of vehicles traveling in the vicinity. In each of the information processing devices 100, a microservice application that is programmed to process a specific task is executed. This architecture is called a microservices architecture.

[0029] In the information processing system according to this embodiment, the information processing device 100, which is a parent node, requests other information processing devices 100 located lower to process a task. Furthermore, the information processing device 100 that has been requested to process a task can request the other information processing devices 100 to process the task (part or all). The division of a task may be performed by any device. Furthermore, each information processing device may execute a different type of task. When the execution of the task is completed, each node returns the processing result to the parent node, so that the final processing result is transmitted to the information processing device 100.

[0030] Kubernetes is known as a platform that makes this type of processing possible. In Kubernetes, multiple microservices run within a pod. A virtual network interface runs on the computer on which Kubernetes runs, and each pod is assigned a unique IP address. By sending an HTTP request to the pod, it is possible to request each microservice to process a task.

[0031] To analyze the performance of such a system, it is necessary to record which microservice application started / ended which task and when. Therefore, a method is used in which tracing information (trace information) is added when sending and receiving tasks and processing results, and a module that processes the trace information performs logging based on that information. This is called distributed tracing. As mentioned above, in a communication protocol that sends and receives requests and responses via the HTTP protocol, trace information can be stored in the HTTP header. The trace information includes information for tracing. Such information includes, for example, a trace identifier, a span identifier, a parent span identifier, or a node identifier. By writing a trace log to a common storage based on this information, it becomes possible to get an overview of how the target application was divided and when it was processed by which microservice application.

[0032] The configuration of an information processing device 100 according to this embodiment will be described with reference to FIG. The information processing device 100 includes a control device 101 , a storage device 102 , a communication device 103 , and an input / output device 104 .

[0033] The information processing device 100 can be configured by a computer having a CPU (central processing unit), a main storage device, and an auxiliary storage device. Note that all or part of the functions shown in the figure may be executed using a dedicated circuit.

[0034] The control device 101 is a calculation unit that executes a predetermined program to realize various functions of the information processing device 100. The control device 101 may be realized by, for example, a CPU.

[0035] The storage device 102 is a means for storing information, and is configured with storage media such as RAM, a magnetic disk, a flash memory, etc. The storage device 102 stores various programs executed by the control device 101, data used by the programs, etc.

[0036] The communication device 103 is a communication interface for connecting the information processing device 100 to a network. If the information processing device 100 is mobile, the communication device 103 can be an interface for wireless communication. The communication device 103 includes, for example, a network interface board and a wireless communication interface for wireless communication. It is composed.

[0037] The input / output device 104 is a device for inputting and outputting information. Specifically, the input / output device 104 includes a display, a touch panel, a keyboard, and the like. In this embodiment, the touch panel and the display are formed by one touch panel display. The input / output device 104 may include a unit for outputting sound (an amplifier and a speaker), and the like.

[0038] Generally, a microservice operates at the highest level (application layer) of multiple network layers. A packet generated by a certain microservice passes through a lower network layer and reaches the physical layer. Also, a packet sent to a target information processing device passes through multiple network layers and reaches the application layer where the microservice operates. Here, a proxy operating in each network layer can refer to the trace information to log the processing in each network layer.

[0039] 2A is a schematic diagram of a frame transmitted from the information processing device 100. In this embodiment, multiple microservices transmit and receive data using the HTTP protocol. That is, application data includes an HTTP header and data. In addition, by inserting information for distributed tracing (hereinafter, trace information) into the HTTP header, tracing can be performed in the application layer.

[0040] However, it is not assumed that data encapsulated in the application layer can be referenced from a network layer lower than the application layer (for example, the transport layer). Although it is possible for a lower network layer to reference the HTTP header, as mentioned above, when many packets pass through, there is a possibility that a delay in processing may occur.

[0041] To solve this problem, the information processing device 100 according to this embodiment adds information for tracing in the lower network layer in an application layer using a method different from the conventional method.

[0042] 3 and 4 are diagrams for explaining the connection relationship of a plurality of modules operating in the information processing device 100. Here, the device that requests task processing is referred to as the information processing device 100A, and the device that receives the request, executes the task, and returns a response is referred to as the information processing device 100B, to distinguish between them, but both are devices (information processing devices 100) having the same configuration. The information processing device 100B is an example of a “first communication node.” In this case, the information processing device 100A is an example of a “second communication node.” The information processing devices 100A and 100B are configured to be able to communicate with the storage 200 that manages the trace logs. In the following description, logging refers to writing the trace logs to the storage 200.

[0043] As shown in the figure, an application 1011A, a first proxy 1012A, and a second proxy 1013A operate as functional modules in the information processing device 100A, while an application 1011B, a first proxy 1012B, and a second proxy 1013B operate as functional modules in the information processing device 100B. In this embodiment, the proxy refers to a module that relays data. The proxy in this embodiment does not need to have functions such as proxy access, data cache, and filtering.

[0044] In this embodiment, the virtual network layer is exemplified as a network layer lower than the application layer. However, if the virtual network is not running on the target computer, the virtual network layer can be replaced with the transport layer, the network layer, or the data link layer.

[0045] Note that application 1011A and application 1011B, first proxy 1012A and first proxy 1012B, and second proxy 1013A and second proxy 1013B are each the same module. When there is no need to distinguish between the request sending side and the request receiving side, they are referred to as application 1011, first proxy 1012, and second proxy 1013, respectively. Each module is executed on the control device 101 by software.

[0046] The second proxy 1013 may be operated by eBPF (Extended Berkeley Packet Filter). eBPF is a technology that allows any program to be executed at the kernel level without modifying the source code of the OS kernel or adding a module. This makes it possible to read and write application data in the network layer, which is lower than the application layer.

[0047] FIG. 3 is a diagram illustrating transmission of a request from information processing device 100A to information processing device 100B, and FIG. 4 is a diagram illustrating transmission of a response from information processing device 100B to information processing device 100A.

[0048] First, the transmission of a request will be described with reference to FIG. The application 1011A is application software on which microservices are executed. The application 1011A executes a process of executing a task requested by a higher-level microservice application, a process of requesting a lower-level microservice application to execute a task, and a process of generating application data in accordance with an application layer protocol. In this example, the application 1011A employs HTTP as the application layer protocol, and requests other nodes to execute a task via an HTTP request.

[0049] The first proxy 1012 relays packets flowing between the lower network layer and the application 1011 . Furthermore, the first proxy 1012 executes the following process.

[0050] (Process 1A) A process for adding trace information to a packet (HTTP request) delivered from the application 1011A and performing logging in the application layer (executed by the first proxy 1012A) (Process 1B) A process of performing logging in the application layer and deleting trace information when a packet (HTTP request) is handed over from the virtual network layer (executed by the first proxy 1012B).

[0051] First, processing 1A will be described. As shown in (1) in FIG. 3, application 1011A transmits a packet (HTTP request) requesting processing from another microservice application. Here, first proxy 1012A inserts trace information into the HTTP header. (2) in FIG. 3 is an example of a packet into which trace information has been inserted. The position at which trace information is inserted does not have to conform to the HTTP protocol. In other words, it can be inserted at any position in the front of the header. The first proxy 1012A also performs logging based on the contents of the trace information. That is, in the application layer, the first proxy 1012A writes a trace log to the storage 200. Perform the procedure.

[0052] The packet with the trace information inserted is handed over to the second proxy 1013A. The second proxy 1013A performs logging based on the inserted trace information. That is, in the virtual network layer, a trace log is written to the storage 200. This makes it possible to record delays caused by TCP or IP. The second proxy 1013A accesses the trace information by referring to the application data encapsulated in the application layer, but since the trace information is located at the front of the data, it can access the trace information in a short time.

[0053] The packet into which the trace information is inserted reaches the receiving information processing device 100B via the network, and is processed by the second proxy 1013B. Similarly, the second proxy 1013B also performs logging based on the inserted trace information. That is, in the virtual network layer, a trace log is written to the storage 200.

[0054] Next, the process 1B will be described. The packet received by the first proxy 1012B of the information processing device 100B has trace information inserted therein, as shown by (3) in FIG. The first proxy 1012B first performs logging based on the trace information, that is, writes a trace log to the storage 200 in the application layer.

[0055] However, if the trace information remains, application 1011B cannot process the packets normally, because the trace information has been inserted at a position that does not comply with the HTTP protocol. Therefore, the first proxy 1012B deletes the trace information before passing the packet to the application 1011B. As a result, the packet passed to the application 1011B becomes the same as the packet generated by the source application 1011A, as shown in (4) in FIG.

[0056] Next, transmission of a response will be described with reference to FIG. Application 1011B executes a task in response to a request (HTTP request) sent from application 1011A, and generates a response (HTTP response). Application 1011B operates in the application layer, similar to application 1011A, and transmits and receives data via the HTTP protocol.

[0057] The first proxy 1012 that receives the HTTP response executes the following process.

[0058] (Process 2B) A process for adding trace information to a packet (HTTP response) delivered from the application 1011B and performing logging in the application layer (executed by the first proxy 1012B) (Process 2A) A process for performing logging in the application layer and deleting trace information when a packet (HTTP response) is handed over from the virtual network layer (executed by the first proxy 1012A).

[0059] First, the process 2B will be described. As shown in (1) in FIG. 4, the application 1011A transmits a packet (HTTP response) corresponding to the processing result of the task. Here, the first proxy 1012B inserts trace information into the HTTP header. (2) in Fig. 4 is an example of a packet into which trace information is inserted. The position into which the trace information is inserted may be the same as that in the procedure 1A. The first proxy 1012B also performs logging based on the contents of the trace information.

[0060] The packet with the trace information inserted is handed over to the second proxy 1013B. The second proxy 1013B performs logging based on the inserted trace information. The second proxy 1013B can also access the trace information in a short time, as described above.

[0061] The packet into which the trace information is inserted reaches the receiving information processing device 100A via the network, and is processed by the second proxy 1013A. Similarly, the second proxy 1013A also performs logging based on the inserted trace information.

[0062] Next, the process 2A will be described. The packet received by the first proxy 1012A of the information processing device 100A has trace information inserted therein, as shown in (3) in Fig. 4. The first proxy 1012A first performs logging based on the trace information.

[0063] Then, the first proxy 1012A deletes the trace information before passing the packet to the application 1011A. As a result, the packet passed to the application 1011A becomes the same as the packet generated by the source application 1011B, as shown in (4) in FIG.

[0064] Next, a flowchart of the process executed by the first proxy 1012 will be described. As described above, the processes executed by the first proxy 1012 can be classified into four types: processes 1A, 1B, 2A, and 2B. Process 1A: Adding trace information to an HTTP request Process 1B: Removing trace information from HTTP requests Process 2B: Adding trace information to the HTTP response Process 2A: Removing trace information from HTTP responses

[0065] 5 is a flowchart of the process 1 A. The process shown in the figure is started when the first proxy 1012A receives an HTTP request from the application 1011A. First, in step S11, the request URI included in the header (HTTP header) of the received HTTP request is temporarily stored. This is to identify the pair of the HTTP request and the corresponding HTTP response. The stored request URI is used when the HTTP response is received in process 2A.

[0066] Next, in step S12, trace information is generated. The trace information includes, for example, a trace identifier, a span identifier, a parent span identifier, or a node identifier.

[0067] Next, in step S13, the generated trace information is temporarily stored. Then, in step S14, the generated trace information is inserted into the HTTP header. As described above, the position where the trace information is inserted can be arbitrary. When the above processing is completed, in step S15, the target packet is handed over to the lower network layer. In addition, the first proxy 1012A performs logging based on the trace information. This makes it possible to record the timing at which the HTTP request generated by the application 1011A was sent.

[0068] FIG. 6 is a flowchart of process 1B. The process shown in the figure begins when a first proxy 1012B receives an HTTP request from a lower network layer (a second proxy 1013B). The event will start when the First, in step S21, the request URI included in the header (HTTP header) of the received HTTP request is temporarily stored. This is to identify the pair of the HTTP request and the corresponding HTTP response. The stored request URI is used when the HTTP response is received in process 2B.

[0069] Next, in step S22, the trace information included in the header (an example of "first trace information") is obtained and temporarily stored. This is to generate the trace information when the HTTP response returns from application 1011B. Next, in step S23, the trace information is deleted from the header of the received HTTP request. In addition, in step S24, data other than the trace information is rearranged. This returns the target packet to the state it was in before the execution of process 1A. When the above processing is completed, the target packet is handed over to application 1011B in step S25. The first proxy 1012B also performs logging based on the trace information, thereby making it possible to record the timing at which the application 1011B started processing the HTTP request.

[0070] 7 is a flowchart of process 2B. The illustrated process is started when the first proxy 1012B receives an HTTP response from the application 1011B. First, in step S31, matching between an HTTP request and an HTTP response is performed based on the request URI temporarily stored in step S21 and the request URI included in the HTTP response, thereby identifying a pair of an HTTP request and an HTTP response. Next, in step S32, the trace information temporarily stored in step S22 is obtained, and based on this, in step S33, trace information is generated and the generated trace information is inserted into the header of the HTTP response. The trace information generated in this step (one example of "second trace information") may be a complete copy of the trace information stored in step S22, or may include a part of the trace information stored in step S22. The trace information generated in this step may be any information that indicates its correspondence with the trace information stored in step S22. As described above, the position at which the trace information is inserted may be arbitrary. When the above processing is completed, in step S34, the target packet is handed over to the lower network layer. The first proxy 1012B also performs logging based on the trace information, which makes it possible to record the timing at which the HTTP response generated by the application 1011B was sent.

[0071] 8 is a flowchart of process 2 A. The illustrated process is initiated when the first proxy 1012 A receives an HTTP response from the lower network layer (the second proxy 1013 A). First, in step S41, the trace information temporarily stored in step S13 is obtained and compared with the trace information contained in the header (HTTP header) of the received HTTP response. If the trace information matches, in step S42 the trace information is deleted from the header of the received HTTP response. In addition, in step S43, data other than the trace information is rearranged. This returns the target packet to the state it was in before processing 2A was executed. When the above processing is completed, the target packet is handed over to application 1011A in step S44. The first proxy 1012A also performs logging based on the trace information. This allows the first proxy 1012A to know when the application 1011A processes the HTTP response. It is possible to record when it has started.

[0072] As described above, in the information processing device according to this embodiment, the first proxy 1012 operating in the application layer performs the above-mentioned processing, i.e., adding and deleting trace information, between the application 1011 and the second proxy 1013 operating in the virtual network layer. This makes it possible to perform tracing between different network layers without affecting other services (microservices provided by the application 1011) operating in the application layer.

[0073] (Modification of the first embodiment) In the first embodiment, trace identifiers, span identifiers, parent span identifiers, node identifiers, etc. are exemplified as trace information, but the trace information may be any one of these, or a combination of two of them. Furthermore, the trace information may be a fixed value as long as it is possible to trace the flow of a task. FIG. 2(B) is an example in which a fixed value is adopted as trace information. The fixed value may be any value (e.g., 0xFFFF) as long as it can be identified in the future. Furthermore, the length of the fixed value may also be arbitrary.

[0074] In the first embodiment, two different network layers, an application layer and a virtual network layer, are exemplified, but the present invention can also be applied to a system that uses other network layers. For example, trace information may be added in the transport layer so that it can be referenced from a lower network layer (for example, the network layer). In this case, for example, as shown in FIG. 2(C), trace information may be inserted in an arbitrary area of ​​the TCP (UDP) header. Also, for example, trace information may be added in the network layer so that it can be referenced from a lower network layer (for example, the data link layer). In this case, for example, trace information may be inserted in an arbitrary area of ​​the IP header as shown in FIG. 2(D). Furthermore, in the first embodiment, the HTTP protocol is exemplified as the protocol used in the application layer, but a protocol other than the HTTP protocol can also be adopted as long as it is a protocol in which a request and a response are paired. In either case, when trace information is inserted in a certain network layer, it is necessary to remove the trace information at a timing before the packet is handed over to another application operating in the network layer.

[0075] In the first embodiment, an example is given in which one application runs on one node, but a plurality of applications may run on a certain node. In this case, the number of first proxies may be equal to the number of applications.

[0076] (Other variations) The above-described embodiment is merely an example, and the present disclosure can be modified and implemented as appropriate without departing from the spirit and scope of the present disclosure. For example, the processes and means described in this disclosure can be freely combined and implemented as long as no technical contradiction occurs.

[0077] Furthermore, a process described as being performed by one device may be shared and executed by multiple devices. Alternatively, a process described as being performed by different devices may be executed by one device. In a computer system, the hardware configuration (server configuration) by which each function is realized can be flexibly changed.

[0078] The present disclosure relates to a computer program that implements the functions described in the above embodiments. The present invention can also be realized by supplying the program to a computer, and having one or more processors of the computer read and execute the program. Such a computer program may be provided to the computer by a non-transitory computer-readable storage medium connectable to the system bus of the computer, or may be provided to the computer via a network. Non-transitory computer-readable storage media include, for example, any type of disk, such as a magnetic disk (floppy disk, hard disk drive (HDD), etc.), an optical disk (CD-ROM, DVD disk, Blu-ray disk, etc.), a read-only memory (ROM), a random access memory (RAM), an EPROM, an EEPROM, a magnetic card, a flash memory, an optical card, and any type of medium suitable for storing electronic instructions. [Explanation of symbols]

[0079] 100.... Information processing device 101...Control device 102...Storage device 103 Communication equipment 104 Input / Output Device

Claims

1. A first module included in the first communication node, receiving, from a first application, a first packet generated according to a first protocol defined at a first layer in a predetermined protocol stack and addressed to a second communication node; adding first trace information for tracing data among a plurality of communication nodes to a predetermined area in the first packet; delivering the first packet to which the first trace information has been added to a second layer located below the first layer in order to transmit the first packet to the second communication node; and before the first application generates the first packet; deleting second trace information when second trace information is included in the predetermined area in a second packet transmitted from the second communication node and handed over from the second layer; delivering the second packet from which the second trace information has been deleted to the first application; Run When the first application generates the first packet in response to the second packet, the first module generates, as the first trace information, information that corresponds to or is the same as the second trace information included in the second packet. Communication methods.

2. The predetermined area is an area in which placement of trace information is not assumed under the first protocol. The communication method according to claim 1 .

3. The first module stores a trace log relating to the tracing of the data in a predetermined storage. The communication method according to claim 2 .

4. a second module included in the first communication node stores, in the second layer, a log relating to the tracing of the data in the storage based on the first and second trace information included in the first and second packets encapsulated in the first layer; The communication method according to claim 3.

5. the first protocol is HTTP (Hypertext Transfer Protocol), The predetermined area is a header area of ​​HTTP. A communication method according to any one of claims 1 to 4.

Citation Information

Patent Citations

  • System and method for packet tracing within a packet switching asic

    US20190036802A1

  • Proactive anomaly detection

    US20220172037A1

  • Apparatus and method for detecting an anomaly among successive events and computer program product therefor

    WO2020125929A1