Transmission method, reception method, transmission device, transmission program, and reception program
By integrating the encoding process with the data copy process in a communication method, the transmission method effectively reduces processing costs and maintains performance when introducing a new coding method.
Patent Information
- Application Number
- JP2023194689
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-15
- Publication Date
- 2025-05-27
AI Technical Summary
When introducing a new coding method into an existing communication method, the processing cost increases due to additional data copy processing, leading to a halving of processing performance.
A transmission method and device that utilize a memory with separate areas for application layer and lower layer data, where data segments are read from the application layer, encoded, and written to the lower layer memory area, effectively combining the encoding process with the data copy process to reduce overhead.
This approach suppresses the increase in processing cost by eliminating one data copy process, thereby maintaining or improving processing performance even when introducing a new encoding method.
Smart Images

Figure 2025081132000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a transmission method, a reception method, a transmission device, a reception device, a transmission program, and a reception program.
Background Art
[0002] Non-Patent Document 1 describes that the data copy processing time is long in the processing time of a communication protocol. Further, in order to reduce the load in such communication protocol processing, it is known to process the division of transmission data and the calculation of checksum, etc. by hardware such as a network interface. For example, Patent Document 1 describes a communication device having an offload processing unit (hardware). The offload processing unit performs, instead of the OS (Operating System) kernel, a division process of dividing transmission data to be transmitted into segment data, and a header generation process of generating and attaching a header to each divided segment data.
Prior Art Documents
Non-Patent Documents
[0003]
Non-Patent Document 1
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] Here, in the communication device described in Patent Document 1, when a new coding method is introduced into an existing communication method, there is a problem that the processing cost increases. This is because, in addition to the data copy processing in the existing communication method, data read / write (data copy processing) to the memory occurs in the new coding processing, so the data copy processing becomes twice as much and the processing performance is approximately halved.
[0006] The present disclosure has been made in view of the above problems, and an exemplary object thereof is to provide a technique for suppressing an increase in processing cost when introducing a new coding method into an existing communication method.
Means for Solving the Problems
[0007] A transmission method according to an exemplary aspect of the present disclosure is a transmission method executed by a transmission device including at least one processor and a memory. The memory includes a first area in which transmission data in the application layer of a communication model is stored, and a second area in which transmission data in a layer lower than the application layer is stored. The at least one processor includes a reading process in which, in the application layer, a plurality of data segments obtained by dividing the transmission data in the application layer are read from the first area, and an encoding transmission process in which, in the application layer, while generating an encoded data segment using the plurality of data segments, the encoded data segment is written into the second area as transmission data in the lower layer.
[0008] A receiving method according to an exemplary aspect of the present disclosure is a receiving method in which a receiving device including at least one processor and a memory receives the encoded data segment transmitted by the above-described transmitting method. The memory includes a third area in which received data in the lower layer is stored, and a fourth area in which received data in the application layer is stored. The at least one processor performs a reading process of reading the encoded data segment as received data in the lower layer from the third area in the application layer, and the at least one processor obtains a data segment decoded from the encoded data segment in the application layer, and writes the decoded data segment as received data in the application layer to the fourth area. The receiving method includes a receiving and decoding process.
[0009] A transmitting device according to an exemplary aspect of the present disclosure is a transmitting device including a memory. The memory includes a first area in which transmission data in the application layer of a communication model is stored, and a second area in which transmission data in a layer lower than the application layer is stored. The transmitting device includes a reading unit that reads, in the application layer, a plurality of data segments obtained by dividing the transmission data in the application layer from the first area, and an encoding and transmitting unit that generates an encoded data segment using the plurality of data segments and writes the encoded data segment as transmission data in the lower layer to the second area.
[0010] A receiving device according to an exemplary aspect of the present disclosure is a receiving device that receives the encoded data segment transmitted by the above-described transmitting device, includes a memory, and the memory includes a third area in which received data in the lower layer is stored, and a fourth area in which received data in the application layer is stored. In the application layer, a reading unit that reads the encoded data segment as the received data in the lower layer from the third area, and in the application layer, while acquiring a data segment decoded from the encoded data segment, a receiving and decoding unit that writes the decoded data segment as the received data in the application layer to the fourth area.
[0011] A transmission program according to an exemplary aspect of the present disclosure is a transmission program for causing at least one processor to execute the above-described transmission method, and causes the at least one processor to execute the reading process and the encoded transmission process.
[0012] A reception program according to an exemplary aspect of the present disclosure is a reception program for causing at least one processor to execute the above-described reception method, and causes the at least one processor to execute the reading process and the reception decoding process.
Advantages of the Invention
[0013] According to an exemplary aspect of the present disclosure, when introducing a new encoding method into an existing communication method, an exemplary effect can be achieved in that a technique for suppressing an increase in processing cost can be provided.
Brief Description of the Drawings
[0014]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Embodiments for Carrying Out the Invention
[0015] Hereinafter, embodiments of the present invention will be exemplified. However, the present invention is not limited to the following exemplary embodiments, and various modifications are possible within the scope shown in the claims. For example, embodiments obtained by appropriately combining the technical means employed in the following exemplary embodiments may also be included in the scope of the present invention. Further, embodiments obtained by appropriately omitting a part of the technical means employed in the following exemplary embodiments may also be included in the scope of the present invention. Also, the effects mentioned in the following exemplary embodiments are merely examples of the effects expected in those exemplary embodiments, and do not define the scope of the present invention. That is, embodiments that do not exhibit the effects mentioned in the following exemplary embodiments may also be included in the scope of the present invention.
[0016] [Features of each exemplary embodiment] [First exemplary embodiment] A first exemplary embodiment, which is an example of an embodiment of the present invention, will be described in detail with reference to the drawings. This exemplary embodiment is a basic form of each of the exemplary embodiments described later. Note that the scope of application of each technical means employed in this exemplary embodiment is not limited to this exemplary embodiment. That is, each technical means employed in this exemplary embodiment can also be employed in other exemplary embodiments included in the present disclosure as long as there are no particular technical obstacles. In addition, each technical means shown in the drawings referred to for explaining this exemplary embodiment can also be employed in other exemplary embodiments included in the present disclosure as long as there are no particular technical obstacles.
[0017] (Configuration of transmission device) The configuration of the transmission device 1 will be described with reference to FIG. 1. FIG. 1 is a block diagram showing the configuration of the transmission device 1. As shown in FIG. 1, the transmission device 1 includes a reading unit 11, an encoding and transmission unit 12, and a memory 100.
[0018] The memory 100 includes a first area in which transmission data in the application layer of the communication model is stored, and a second area in which transmission data in a layer lower than the application layer is stored. The reading unit 11 reads, from the first area, a plurality of data segments obtained by dividing the transmission data in the application layer in the application layer. The encoding and transmission unit 12 generates encoded data segments using the plurality of data segments and writes the encoded data segments as transmission data in the lower layer to the second area.
[0019] (Flow of transmission method) At least one processor included in the transmission device 1 executes a transmission method S1. The flow of the transmission method S1 will be described with reference to FIG. 2. FIG. 2 is a flowchart showing the flow of the transmission method S1. As shown in FIG. 2, the transmission method S1 includes a reading process S11 and an encoding and transmission process S12.
[0020] In the reading process S11, at least one processor reads, from a first area, a plurality of data segments into which transmission data in the application layer is divided, in the application layer. In the encoding and transmission process S12, at least one processor writes, as transmission data in the lower layer, the encoded data segment into a second area while generating the encoded data segment using the plurality of data segments, in the application layer.
[0021] (Effects of the transmission device and the transmission method) As described above, in the transmission device 1, a configuration including the above-described reading unit 11, encoding and transmission unit 12, and memory 100 is adopted. Also, in the transmission method S1, a configuration including the above-described reading process S11 and encoding and transmission process S12 is adopted. Therefore, according to the transmission device 1 and the transmission method S1, an effect of suppressing an increase in processing cost can be obtained when introducing a new encoding method into an existing communication system.
[0022] Here, the effects of the transmission device 1 and the transmission method S1 will be described while comparing them with a comparative example with reference to FIG. 3. FIG. 3 is a diagram schematically explaining the effects of the transmission device 1 and the transmission method S1. In FIG. 3, it is assumed that the communication model is a TCP / IP communication model. In this case, the "application layer" in this specification corresponds to the application layer in the TCP / IP communication model. Also, the "lower layer" in this specification corresponds to the transport layer (such as TCP or UDP), the internet layer (such as IP), and the network interface layer (such as Ethernet (registered trademark)) in the TCP / IP communication model. However, the communication model in this exemplary embodiment is not limited to this. For example, the "application layer" in this specification corresponds to the application layer, the presentation layer, and the session layer in the OSI reference model. Also, the "lower layer" in this specification corresponds to the "transport layer", the "network layer", the "data link layer", and the "physical layer" in the OSI reference model.
[0023] As shown in FIG. 3, in the existing transmission method according to the comparative example, data copy processing occurs to pass the transmission data in the application layer to the lower layer. Note that the existing encoding processing in the existing transmission method is performed in the lower layer. Here, when introducing new encoding processing, it is conceivable to (A) perform the new encoding processing before passing the transmission data to the lower layer, or (B) perform the new encoding processing after passing the transmission data to the lower layer. However, in either case of (A) or (B), in addition to the data copy processing for passing the transmission data from the application layer to the lower layer, data copy processing occurs in the new encoding processing, so the transmission performance is halved.
[0024] On the other hand, as shown in FIG. 3, in the transmission device 1 and the transmission method S1, in the application layer, while generating encoded data segments using a plurality of data segments read from the first region, the encoded data segments are written into the second region as transmission data in the lower layer, and an encoding transmission process is executed. That is, the encoding transmission process in the transmission device 1 and the transmission method S1 is executed while also serving as a data copy process for passing data from the application layer to the lower layer. For this reason, one data copy process can be saved, and an increase in the transmission process cost due to introducing a new encoding method into the existing communication method can be suppressed.
[0025] (Configuration of the receiving device) The receiving device 2 is a device that receives the encoded data segments transmitted by the transmission device 1. The configuration of the receiving device 2 will be described with reference to FIG. 4. FIG. 4 is a block diagram showing the configuration of the receiving device 2. As shown in FIG. 4, the receiving device 2 includes a reading unit 21, a receiving and decoding unit 22, and a memory 200.
[0026] The memory 200 includes a third region in which received data in the lower layer is stored and a fourth region in which received data in the application layer is stored. The reading unit 21 reads the encoded data segments as received data in the lower layer from the third region in the application layer. The receiving and decoding unit 22 acquires a plurality of data segments by decoding the encoded data segments in the application layer, and writes the plurality of data segments into the fourth region as received data in the application layer.
[0027] (Flow of the receiving method) At least one processor included in the receiving device 2 executes the receiving method S2. The receiving method S2 is a method for receiving the encoded data segment transmitted by the transmitting method S1. The flow of the receiving method S2 will be described with reference to FIG. 5. FIG. 5 is a flowchart showing the flow of the receiving method S2. As shown in FIG. 5, the receiving method S2 includes a reading process S21 and a receiving and decoding process S22.
[0028] In the reading process S21, at least one processor reads the encoded data segment as received data in the lower layer from the third region in the application layer. In the receiving and decoding process S22, at least one processor decodes the encoded data segment in the application layer to obtain a plurality of data segments, and writes the plurality of data segments as received data in the application layer to the fourth region.
[0029] (Effects of the receiving device and the receiving method) As described above, in the receiving device 2, a configuration including the above-described reading unit 21 and receiving and decoding unit 22 is adopted. Also, in the receiving method S2, a configuration including the above-described reading process S21 and receiving and decoding process S22 is adopted. Therefore, according to the receiving device 2 and the receiving method S2, when introducing a new encoding method into an existing communication system, an effect of suppressing an increase in processing cost can be obtained.
[0030] Here, the effects of the receiving device 2 and the receiving method S2 will be described while comparing with a comparative example with reference to FIG. 6. FIG. 6 is a diagram schematically explaining the effects of the receiving device 2 and the receiving method S2. In FIG. 6, similar to FIG. 3, it is assumed that the communication model is a TCP / IP communication model, but the communication model in this exemplary embodiment is not limited to this.
[0031] As shown in Fig. 6, in the existing reception method according to the comparative example, a data copy process occurs in order to pass received data in a lower layer to an application layer. Note that a decoding process corresponding to an existing encoding process in the existing reception method is performed in a lower layer. Here, when a new encoding process is introduced, it is possible to (A) perform a decoding process corresponding to the new encoding process after passing received data to the application layer, or (B) perform the decoding process before passing received data to the application layer. However, in either case (A) or (B), in addition to the data copy process for passing received data from a lower layer to the application layer, a data copy process occurs in the new decoding process, so that the reception performance is halved.
[0032] In contrast, as shown in Fig. 6, in the receiving device 2 and the receiving method S2, a receiving and decoding process is executed in the application layer, in which the encoded data segment read from the third area is decoded to obtain multiple data segments, and the multiple data segments are written to the fourth area as received data in the application layer. In other words, the receiving and decoding process is executed also as a data copy process for transferring data from a lower layer to the application layer. This makes it possible to save one data copy process, and to suppress an increase in the receiving process cost caused by introducing a new encoding method into an existing communication method.
[0033] Second Exemplary Embodiment A second exemplary embodiment, which is an example of an embodiment of the present invention, will be described in detail with reference to the drawings. Components having the same functions as those described in the above-described exemplary embodiments are denoted by the same reference numerals, and the description thereof will be omitted as appropriate. Note that the scope of application of each technical means employed in this exemplary embodiment is not limited to this exemplary embodiment. That is, each technical means employed in this exemplary embodiment can be employed in other exemplary embodiments included in the present disclosure as long as there are no particular technical obstacles. In addition, each technical means shown in each drawing referred to for explaining this exemplary embodiment can be employed in other exemplary embodiments included in the present disclosure as long as there are no particular technical obstacles.
[0034] (Configuration of Communication System) The configuration of the communication system 10 will be described with reference to FIG. 7. FIG. 7 is a block diagram showing the configuration of the communication system 10. As shown in FIG. 7, the communication system 10 includes a transmission device 1A and a reception device 2A. The transmission device 1A and the reception device 2A are connected via a network. The communication system 10 may be a system that transmits and receives data based on, for example, the TCP / IP communication model, but the communication model is not limited thereto.
[0035] (Configuration of Transmission Device) As shown in FIG. 7, the transmission device 1A includes a memory 100, a reading unit 11, an encoding and transmission unit 12, and a communication unit 13. As the first area included in the memory 100, the user space is applied. As the second area included in the memory 100, the kernel space is applied.
[0036] In addition to being configured in the same manner as in Exemplary Embodiment 1, the reading unit 11 is configured as follows. The reading unit 11 repeatedly reads new data segments from the user space.
[0037] In addition to being configured in the same manner as in the first exemplary embodiment, the encoding and transmission unit 12 is configured as follows. Further, the encoding and transmission unit 12 repeats writing the newly generated encoded data segment to the second area while generating a new encoded data segment using at least one data segment already used for generating an encoded data segment among the data segments read by the reading unit 11 and a new data segment. Note that the number of times the encoding and transmission unit 12 repeats generating a new encoded data segment is up to the number of data segments that can be simultaneously stored in the cache memory in the processor.
[0038] The communication unit 13 executes data transmission processing in the lower layer. Part or all of the communication unit 13 may be realized by at least one processor included in the transmission device 1A executing a program. Also, part or all of the communication unit 13 may be realized as hardware. An example of hardware capable of realizing part or all of the communication unit 13 is a network interface controller (NIC) corresponding to the lower layer communication protocol. Also, in that case, the NIC accesses the memory 100 via a direct memory access controller (DMA).
[0039] (Flow of the transmission method) The flow of the transmission method S1A executed by the transmission device 1A will be described with reference to FIGS. 8 and 9. FIG. 8 is a flowchart for explaining the flow of the transmission method S1A. FIG. 9 is a diagram schematically explaining the transmission method S1A. As shown in FIG. 8, the transmission method S1A includes steps S11A, S12A, and S13A.
[0040] Step S11A is an example of a reading process. In step S11A, the reading unit 11 repeatedly reads new data segments from the user space in the application layer. The read data segments are stored in the cache memory built into the processor provided in the transmission device 1A. For example, as shown in FIG. 9, when data segments D1, D2,... obtained by dividing the transmission data in the application layer are stored in the user space, the reading unit 11 sequentially reads the data segments D1, D2,... into the cache memory.
[0041] Step S12A is an example of an encoding and transmission process. In step S12A, the encoding and transmission unit 12 repeatedly writes a new encoded data segment into the kernel space while generating a new encoded data segment using one or more already used data segments and new data segments in the application layer.
[0042] For example, as shown in FIG. 9, the encoding and transmission unit 12 first writes the first data segment D1 read into the cache memory as it is into the kernel space as the encoded data segment C1. Also, the encoding and transmission unit 12 writes the encoded data segment C2 into the kernel space from the cache memory while generating the encoded data segment C2 using the already used data segment D1 and the new data segment D2.
[0043] In step S13A, the communication unit 13 executes a transmission process of reading the encoded data segment written into the kernel space in the lower layer and transmitting it to the outside of the transmission device 1A. In the example of FIG. 9, the encoded data segments C1, C2,... are sequentially transmitted to the outside.
[0044] (Specific example of encoding and transmission process) A specific example of the encoding transmission process in step S12 will be described with reference to FIG. 10. FIG. 10 is a schematic diagram for explaining a specific example of the encoding transmission process. In FIG. 10, the horizontal axis represents the passage of time, and the vertical axis represents a series of data segments. In this example, the time when the data segment Di is read into the cache memory is represented as ti, indicating that time has elapsed as the subscript i increases. Also, one encoded data segment is generated by encoding a maximum of n data segments. n is a natural number representing the redundancy, and in the example of FIG. 10, n = 4. The vertical columns of rectangles in FIG. 10 indicate the maximum 4 data segments encoded into one encoded data segment. Note that the process of generating an encoded data segment using a plurality of data segments may be, for example, a process of calculating the exclusive logical sum of the plurality of data segments as the encoded data segment.
[0045] For example, at time t1, the data segment D1 is directly applied as the encoded data segment C1. That is, the data segment D1 is used to generate the encoded data segment C1. Also, at time t2, the encoded data segment C2 is generated using a total of 2 data segments, the already used data segment D1 and the new data segment D2. Similarly, at time t3, the encoded data segment C3 is generated using a total of 3 data segments, the already used data segments D1, D2, and the new data segment D3. At time t4, the encoded data segment C4 is generated using a total of 4 data segments, the already used data segments D1 to D3 and the new data segment D4.
[0046] Also, when i > n and i ≦ N - n + 1, the encoding transmission process at each time is represented by the following formula (1). Here, n is the redundancy described above, which is 4 here. N is an upper limit value that defines the number of repetitions of the encoding transmission process. Although details will be described later, it is 23 here. That is, in this example, from time t5 to t20, the following formula (1) is applied.
Equation
[0047] As shown in Equation (1), the encoded data segment Ci is encoded from (i) n - 1 of the n data segments D[i - n + 1] to D[i - 1] used in the previous generation process and (ii) the new data segment Di.
[0048] For example, at time t8, the new encoded data segment C8 is encoded from D2 to D4, which are 3 of the 4 data segments D1 to D4 used in the previous generation process, and the new data segment D5. By repeatedly adding 1 to i for the encoding transmission process that generates such an encoded data segment Ci, the same data segment Di will be used continuously n times. For example, as shown by reference numeral ref1 in FIG. 10, the data segment D8 is used continuously 4 times. This makes it easier for the data segments used in the process of generating the encoded data segments to achieve cache hits, contributing to speeding up the process.
[0049] Also, when i > N - n + 1 and i ≤ N, the encoded data segment Ci is generated using the already used data segments without using the new data segment Di. Also, in this case, the encoded data segment Ci is generated using less than n data segments, and the number of data segments used decreases by one each time i increases by one. For example, in the example of FIG. 10, at time t21, the new encoded data segment C21 is the encoded result of D18 - D20, which are 3 out of the 4 data segments D17 - D20 used in the previous process. Also, at time t22, the new encoded data segment C22 is the encoded result of D19 - D20, which are 2 out of the 3 data segments D18 - D20 used in the previous process. Also, at time t23, the new encoded data segment C23 is the result of directly applying D20, which is 1 out of the 2 data segments D19 - D20 used in the previous process.
[0050] Thus, the encoding transmission process of writing to the kernel space while generating the encoded data segments C1 to CN is repeated N times. N is determined based on the number of data segments that can be stored in the cache memory at the same time. For example, N is determined such that data segment size × (N - 1) < cache size. N - 1 is the number of data segments that can be stored in the cache memory at the same time.
[0051] In the example of FIG. 10, it is assumed that the size of the data segment is 1400 B (bytes), the cache size is 32 K (kilobytes), and N = 23 is defined. Among the encoded data segments C1 to C23, each process of generating C2 to C20 is an example of "at least one data segment that has already been used to generate an encoded data segment among the data segments read by the reading unit 11, and a process of generating a new encoded data segment using a new data segment". That is, the number of times the "process of generating a new encoded data segment" is repeated is 19 times up to C2 to C20, that is, up to the number of data segments (22) that the cache memory can store simultaneously (that is, hereinafter). Note that the method of determining the size of the data segment, the cache size, and N is not limited to the above-described example.
[0052] Note that after repeating the encoding generation process N times, for the data segment Di and the encoded data segment Ci whose subscripts i are read and generated thereafter, by incrementing the subscripts i from 1 in order again, the same explanation as above is given. In the example of FIG. 10, by regarding the data segments D21, D22, D23, D24, D25,... read thereafter as the data segments D1, D2, D3, D4, D5, the encoding generation process is the same as above.
[0053] Thus, by setting the upper limit value of the number of repetitions of the encoding generation process to N, the possibility that the data segments used in the encoding generation process are stored in the cache increases, and high-speed processing can be expected.
[0054] Also, Equation (1) can be transformed as follows.
Equation
[0055] For example, at time t5, the new encoded data segment C5 is encoded using the encoded data segment C4 generated in the previous process, the new data segment D5, and the data segment D1 used in the process four times before. By repeating the process of generating such an encoded data segment Ci by adding 1 to i, the data segment Di will be used again in the process n times later. For example, in the example of FIG. 10, the data segment D8 used for generating the encoded data segment C8 is used again in the generation process of the encoded data segment C12. Therefore, also in this case, the data segment used in the encoded transmission process is likely to result in a cache hit, contributing to speeding up the process.
[0056] Also, in FIG. 10, the number of characters "x" described below each time ti indicates the encoding process cost at each time ti when using Equation (2). For example, at time t1, since the data segment D1 can be used as the encoded data segment C1 as it is, no encoding process cost occurs and no character "x" is described. Also, at time t2, since one operation of calculating the exclusive logical sum of the encoded data segment C1 generated in the previous process and the new data segment D2 occurs, one character "x" is described. The same applies to times t3 to t4.
[0057] Also, at time t5, a total of two operations are required: (i) an operation of calculating the exclusive logical sum of the encoded data segment C4 generated in the previous process and the new data segment D5, and (ii) an operation of calculating the exclusive logical sum of the operation result and the data segment D1 used in the process four times before. Therefore, for time t5, two characters "x" are described. The same applies to times t6 to t20.
[0058] Also, at time t21, since one operation of calculating the exclusive logical sum of the encoded data segment C20 generated in the previous process and the data segment D17 used in the process four times before occurs, one character 'x' is described. The same applies to time t22. Also, for time t23, since the data segment D20 can be used as the encoded data segment C23 as it is, no encoding processing cost occurs and the character 'x' is not described.
[0059] Also, in FIG. 10, the number of characters 'C' described below each time ti indicates the data copy processing cost at each time ti. At any time ti, since one data copy process of reading one data segment Di from the user space and writing one encoded data segment Ci to the kernel space occurs, one character 'C' is described.
[0060] In this way, the encoding transmission unit 12 executes the data copy process associated with the encoding process, also serving as the data copy process from the user space to the kernel space for passing data from the application layer to the lower layer. Therefore, one data copy process can be saved, and the reduction in transmission performance due to introducing a new encoding method can be mitigated.
[0061] (Configuration of the receiving device) The configuration of the receiving device 2A will be described with reference to FIG. 7. As shown in FIG. 7, the receiving device 2A includes a memory 200, a reading unit 21, a receiving and decoding unit 22, and a communication unit 23. As the third region included in the memory 200, the kernel space is applied. As the fourth region included in the memory 200, the user space is applied.
[0062] The communication unit 23 executes reception processing of data in the lower layer. Part or all of the communication unit 23 may be realized by at least one processor included in the receiving device 2A executing a program. Also, part or all of the communication unit 23 may be realized as hardware. An example of such hardware is described in the same manner as the communication unit 13 included in the transmitting device 1A, and thus a detailed description will not be repeated.
[0063] In addition to being configured in the same manner as in the exemplary embodiment 1, the reading unit 21 is configured as follows. The reception decoding unit 22 repeatedly reads a new encoded data segment from the kernel space.
[0064] In addition to being configured in the same manner as in the exemplary embodiment 1, the reception decoding unit 22 is configured as follows. The reception decoding unit 22 repeatedly writes the newly decoded data segment to the user space while obtaining the newly decoded data segment from the new encoded data segment using the already decoded encoded data segment.
[0065] (Flow of the reception method) The flow of the reception method S2A executed by the receiving device 2A will be described with reference to FIGS. 11 and 12. FIG. 11 is a flowchart for explaining the flow of the reception method S2A. FIG. 12 is a diagram schematically explaining the reception method S2A. As shown in FIG. 11, the reception method S2A includes steps S20A, S21A, S22A, and S23A.
[0066] In step S20A, the communication unit 23 executes reception processing of writing the reception data received from the outside of the receiving device 2A in the lower layer to the kernel space. The reception data is the encoded data segment transmitted from the transmitting device 1A by the transmission method S1A. The communication unit 23 repeatedly executes the process of receiving the encoded data segment. For example, as shown in FIG. 12, the encoded data segments C1, C2,... sequentially transmitted from the transmitting device 1A are sequentially stored in the kernel space.
[0067] Step S21A is an example of a reading process. In step S21A, the reading unit 21 repeatedly reads new encoded data segments into the cache memory in the application layer.
[0068] Step S22A is an example of a reception decoding process. In step S22A, the reception decoding unit 22 repeatedly writes the decoded new data segment as received data in the application layer into the user space while obtaining a new data segment decoded from a new encoded data segment using the already decoded encoded data segment in the application layer.
[0069] For example, as shown in FIG. 12, the reception decoding unit 22 writes the first encoded data segment C1 read from the kernel space as it is into the user space as the decoded data segment D1. Further, the reception decoding unit 22 writes the data segment D2 into the user space while obtaining a new data segment D2 decoded from a new encoded data segment C2 using the already decoded encoded data segment C1. For example, the reception decoding unit 22 can obtain the data segment D2 by subtracting (i.e., performing an exclusive OR operation) the already decoded encoded data segment C1 from the new encoded data segment C2.
[0070] In step S23A, the receiving device 2A reads the decoded data segment from the user space and uses it. In the example of FIG. 12, the receiving device 2A sequentially reads the data segments D1 and D2.
[0071] (Specific example of reception decoding process) A specific example of the reception decoding process in step S22A will be described with reference to FIG. 13. FIG. 13 is a schematic diagram for explaining a specific example of the reception decoding process. Regarding the information indicated by the vertical axis and the horizontal axis in FIG. 13, the explanation is the same as that in FIG. 10. Also, the point that the redundancy length n is 4 is explained in the same way as in FIG. 10. Further, the maximum value N of the number of repetitions used in the transmission device 1A is referred to in the reception decoding process.
[0072] For example, at time t1, decoding is performed such that the encoded data segment C1 is directly used as the data segment D1. Also, at time t2, the newly received encoded data segment C2 is the result of encoding the data segments D1 and D2. Therefore, at time t2, by obtaining the difference between the encoded data segments C1 and C2, the decoded data segment D2 is acquired. Also, at time t3, the newly received encoded data segment C3 is the result of encoding the data segments D1, D2, and D3. Therefore, at time t3, by obtaining the difference between the encoded data segments C2 and C3, the decoded data segment D3 is acquired. Also, at time t4, the newly received encoded data segment C4 is the result of encoding the data segments D1 to D4. Therefore, at time t4, by obtaining the difference between the encoded data segments C3 and C4, the decoded data segment D4 is acquired.
[0073] Also, when i > 2 and i ≤ N - n + 1, the decoding process at each time is represented by the following formula (3). Here, N is the maximum value of the number of repetitions described above, which is 23. That is, in this example, from time t5 to t20, the following formula (3) is applied.
Equation
[0074] For example, at time t5, the data segment D5 is decoded by obtaining the difference between (i) the newly received encoded data segment C5 and (ii) the operation result obtained by subtracting the data segment D1 from the encoded data segment C4.
[0075] Also, for example, after the data segments D14 are decoded up to time t14 in this way, it is assumed that the encoded data segments C15 to C17 disappear continuously as shown by the reference numeral ref2 in FIG. 13. In this case, the decoding process cannot be performed using Equation (3) thereafter. In this case, the reception decoding unit 22 receives up to the encoded data segment CN and performs the decoding process from the back to the front. That is, when the encoded data segment disappears, the decoded data segment Di is acquired while subtracting 1 from i in order from i = N.
[0076] For example, the encoded data segment C23 is the one to which the data segment D20 is directly applied. Therefore, by receiving the encoded data segment C23, the "decoded" data segment D20 can be obtained. Also, the encoded data segment C22 is the one obtained by encoding the data segments D19 and D20. Therefore, by calculating the difference between the encoded data segments C19 and C20, the decoded data segment D19 is obtained. Also, the encoded data segment C21 is the one obtained by encoding the data segments D18 to D20. Therefore, by calculating the difference between the encoded data segments C21 and C22, the data segment D18 is decoded. Also, the encoded data segment C20 is the one obtained by encoding the data segments D17 to D20. Therefore, by calculating the difference between the encoded data segments C20 and C21, the data segment D17 is decoded.
[0077] Also, when i > 2 and i ≤ N - n + 1, the backward decoding process at each time point is represented by the following formula (4). That is, in this example, from time t5 to t20, it is possible to perform the backward decoding process by applying the following formula (4).
Equation
[0078] For example, the decoded data segment D16 is obtained by determining the difference between (i) the encoded data segment C19 and (ii) the operation result obtained by subtracting the data segment D20 already obtained from the encoded data segment C20. Also, the decoded data segment D15 is obtained by determining the difference between (i) the encoded data segment C18 and (ii) the operation result obtained by subtracting the data segment D19 already obtained from the encoded data segment C19.
[0079] In this way, even when a part of a plurality of encoded data segments Ci sequentially transmitted from the transmission device 1A continuously disappears, as long as the number of consecutive disappearances is less than n, each data segment Di can be decoded. This is because each data segment Di is redundant with a redundancy of n.
[0080] Also, in the reception decoding process, by referring to the maximum value N of the same number of repetitions as that of the transmission device 1A, the probability that the decoded encoded data segments and the already decoded data segments to be used in the reception decoding process will result in a cache hit increases. Therefore, an acceleration of the decoding process can be expected.
[0081] Also, in FIG. 13, the number of characters "x" described below each time ti indicates the decoding process cost at each time ti when using formula (3) or (4). Also, the decoding process cost is explained in the same manner as the encoding process cost described with reference to FIG. 10. Also, in FIG. 13, the number of characters "C" described below each time ti indicates the data copy process cost at each time ti. The data copy process cost is also explained in the same manner as the data copy process cost described with reference to FIG. 10.
[0082] In this way, the receiving / decoding unit 22 executes the data copy process associated with the decoding process corresponding to the newly introduced encoding process, and also executes the data copy process from the kernel space to the user space for transferring data from the lower layer to the application layer. This makes it possible to save one data copy process, and to reduce the degradation of receiving performance caused by the introduction of a new encoding method.
[0083] (Application example 1) In each of the above-mentioned exemplary embodiments, the transmitting device 1, 1A and the receiving device 2, 2A can be applied when a new encoding method is introduced into free-space optical communications (hereinafter, FSO). In FSO, in addition to random noise (Gaussian noise) following normal distribution, which is a general problem in communications, attenuation and loss of communication signals may occur due to the following FSO-specific factors. One example of the FSO-specific factors is atmospheric fluctuations in which a beam is randomly refracted in the atmosphere, which is the communication medium. Another example of the factors is attenuation due to rainfall. Another example of the factors is beam axis deviation caused by vibration of the housing due to strong winds / earthquakes, etc. In this way, in FSO, burst errors may occur for a longer period of time than in general communications. Therefore, in FSO, it is required to add a new encoding process. Therefore, by applying each of the exemplary embodiments of the present invention to FSO, it is possible to introduce a new encoding process in FSO while suppressing an increase in processing costs.
[0084] (Application example 2) In each of the above-described exemplary embodiments, the reading unit 11 and the encoding and transmitting unit 12 may be included in a data transfer function, a web server function, a web browser function, or a function based on HTTP3 (Hyper Text Transfer Protocol 3). In other words, at least one processor included in the transmission devices 1 and 1A may execute the reading processes S11 and S11A and the encoding and transmitting processes S12 and S12A as processes related to a data transfer function, a web server function, a web browser function, or a function based on HTTP3.
[0085] Also, the reading unit 21 and the receiving and decoding unit 22 may be included in a data transfer function, a web server function, a web browser function, or a function based on HTTP3. In other words, at least one processor included in the receiving devices 2 and 2A may execute the reading processes S21 and S21A and the receiving and decoding processes S22 and S22A as processes related to a data transfer function, a web server function, a web browser function, or a function based on HTTP3.
[0086] In this case, the transmission devices 1 and 1A and the receiving devices 2 and 2A may be devices having a data transfer function, a web server function, a web browser function, or a function based on HTTP3. Note that in the function based on HTTP3, in addition to the processing of the application layer, the processing of the lower layer may be executed instead of the OS kernel. In this case, predetermined regions in the user space are applied as the first region, the second region, the third region, and the fourth region, respectively.
[0087] (Effect of the communication system) As described above, in the transmission device 1A, the reading unit 11 repeatedly reads new data segments from the first area, and the encoding transmission unit 12 repeatedly writes the new encoded data segments to the second area while generating new encoded data segments using a plurality of already used data segments and new data segments. Therefore, according to the transmission device 1A, in addition to the effects exhibited by the transmission device 1, since the read data segments are continuously and repeatedly used, it is easy to achieve cache hits, and the effect that the encoding transmission process can be speeded up is obtained.
[0088] Also, in the transmission device 1A, the configuration is adopted such that the number of times of repeatedly generating new encoded data segments is up to the number that the cache memory in at least one processor can store data segments simultaneously. Therefore, according to the transmission device 1A, in addition to the effects exhibited by the transmission device 1, the possibility of cache hits for the "already used data segments" to be used when generating encoded data segments can be further increased, and the effect that the encoding transmission process can be speeded up is obtained.
[0089] Also, in the transmission device 1A, the configuration is adopted such that the first area is the user space and the second area is the kernel space. Therefore, according to the transmission device 1A, in addition to the effects exhibited by the transmission device 1, in an application configured to deliver transmission data to the OS kernel responsible for the transmission process in the lower layer, the effect that a new encoding method can be introduced while reducing the degradation of transmission performance is obtained.
[0090] Also, in the receiving device 2A, the reading unit 21 repeatedly reads the encoded data segments from the third region in the application layer, and the receiving and decoding unit 22 repeatedly writes the decoded new data segments to the fourth region while obtaining the newly decoded data segments from the new encoded data segments using the already decoded encoded data segments. Therefore, according to the receiving device 2A, in addition to the effects exhibited by the receiving device 2, the "already decoded encoded data segments" to be used when decoding the new encoded data segments are more likely to result in cache hits, and the effect that the receiving and decoding process can be speeded up is obtained.
[0091] Also, in the receiving device 2A, a configuration is adopted in which the third region is a kernel space and the fourth region is a user space. Therefore, according to the receiving device 2A, in addition to the effects exhibited by the receiving device 2, in an application configured to receive data received from the OS kernel responsible for the receiving process in the lower layer, the effect that a new encoding method can be introduced while reducing the degradation of the receiving performance is obtained.
[0092] 〔Example of Realization by Software〕 Some or all of the functions of the transmitting devices 1, 1A, and the receiving devices 2, 2A (hereinafter also referred to as "the above-mentioned respective devices") may be realized by hardware such as an integrated circuit (IC chip), or may be realized by software.
[0093] In the latter case, the above-mentioned respective devices are realized by a computer that executes instructions of a program, which is software for realizing each function, for example. An example of such a computer (hereinafter referred to as computer C) is shown in FIG. 14. FIG. 14 is a block diagram showing the hardware configuration of the computer C that functions as the above-mentioned respective devices.
[0094] Computer C includes at least one processor C1 and at least one memory C2. A program P for operating computer C as each of the above devices is recorded in memory C2. In computer C, processor C1 reads and executes program P from memory C2, thereby realizing each function of each of the above devices.
[0095] As processor C1, for example, a CPU (Central Processing Unit), GPU (Graphic Processing Unit), DSP (Digital Signal Processor), MPU (Micro Processing Unit), FPU (Floating point number Processing Unit), PPU (Physics Processing Unit), TPU (Tensor Processing Unit), quantum processor, microcontroller, or a combination thereof can be used. As memory C2, for example, a flash memory, HDD (Hard Disk Drive), SSD (Solid State Drive), or a combination thereof can be used.
[0096] Note that computer C may further include a RAM (Random Access Memory) for expanding program P during execution or temporarily storing various data. Also, computer C may further include a communication interface for transmitting and receiving data to and from other devices. Also, computer C may further include an input / output interface for connecting input / output devices such as a keyboard, mouse, display, and printer.
[0097] Also, the program P can be recorded on a non-transitory tangible recording medium M readable by the computer C. As such a recording medium M, for example, a tape, a disk, a card, a semiconductor memory, or a programmable logic circuit can be used. The computer C can acquire the program P via such a recording medium M. Also, the program P can be transmitted via a transmission medium. As such a transmission medium, for example, a communication network or a broadcast wave can be used. The computer C can also acquire the program P via such a transmission medium.
[0098] 〔Supplementary Note A〕 The present disclosure includes the technologies described in the following supplementary notes. However, the present invention is not limited to the technologies described in the following supplementary notes, and various modifications are possible within the scope indicated in the claims.
[0099] (Supplementary Note A1) A transmission method executed by a transmission device including at least one processor and a memory, wherein the memory includes a first area for storing transmission data in the application layer of a communication model and a second area for storing transmission data in a layer lower than the application layer, the at least one processor performs, in the application layer, a reading process of reading a plurality of data segments obtained by dividing the transmission data in the application layer from the first area, and an encoding transmission process in which the at least one processor, in the application layer, generates encoded data segments using the plurality of data segments and writes the encoded data segments as transmission data in the lower layer to the second area, The transmission method includes:
[0100] (Supplementary Note A2) In the reading process, the at least one processor repeatedly reads a new data segment from the first area, In the encoding transmission process, the at least one processor repeatedly generates at least one encoded data segment that has already been used to generate an encoded data segment among the data segments read into the at least one processor, and writes the new encoded data segment to the second region while generating a new encoded data segment using the new data segment. The transmission method according to Appendix A1.
[0101] (Appendix A3) In the encoding transmission process, the number of times of repeatedly generating the new encoded data segment is up to the number of data segments that can be simultaneously stored in the cache memory in the at least one processor. The transmission method according to Appendix A2.
[0102] (Appendix A4) The first region is a user space, and the second region is a kernel space. The transmission method according to Appendix A1 or A2.
[0103] (Appendix A5) The at least one processor executes the reading process and the encoding transmission process as processes related to a data transfer function, a web server function, a web browser function, or a function based on HTTP3 (Hyper Text Transfer Protocol 3). The transmission method according to Appendix A1 or A2.
[0104] (Appendix A6) A receiving method in which a receiving device including at least one processor and a memory receives the encoded data segment transmitted by the transmission method according to Appendix A1, The memory includes a third region in which received data in the lower layer is stored, and a fourth region in which received data in the application layer is stored. In the application layer, the at least one processor performs a reading process of reading the encoded data segment as received data in the lower layer from the third area, In the application layer, the at least one processor performs a reception decoding process of writing the decoded data segment as received data in the application layer into the fourth area while obtaining the data segment decoded from the encoded data segment, A reception method comprising the above.
[0105] (Appendix A7) In the reading process, the at least one processor repeatedly reads a new encoded data segment from the third area, In the reception decoding process, the at least one processor repeatedly writes the newly decoded data segment into the fourth area while obtaining a newly decoded data segment from the new encoded data segment using the already decoded encoded data segment, The reception method described in Appendix A6.
[0106] (Appendix A8) The third area is a kernel space, and the fourth area is a user space, The reception method described in Appendix A6 or A7.
[0107] (Appendix A9) The at least one processor executes the reading process and the reception decoding process as processes related to a data transfer function, a web server function, a web browser function, or a function based on HTTP3 (Hyper Text Transfer Protocol 3). The reception method described in Appendix A6 or A7.
[0108] [Appendix Item B] The present disclosure includes the technologies described in the following appendices. However, the present invention is not limited to the technologies described in the following appendices, and various modifications are possible within the scope indicated in the claims.
[0109] (Appendix B1) A transmission device including a memory, wherein the memory includes a first area in which transmission data in the application layer of a communication model is stored, and a second area in which transmission data in a layer lower than the application layer is stored, in the application layer, reading means for reading a plurality of data segments obtained by dividing the transmission data in the application layer from the first area, in the application layer, encoding transmission means for writing the encoded data segment as transmission data in the lower layer into the second area while generating an encoded data segment using the plurality of data segments, A transmission device comprising the same.
[0110] (Appendix B2) The reading means repeatedly reads a new data segment from the first area, the encoding transmission means repeatedly writes the new encoded data segment into the second area while generating a new encoded data segment using at least one data segment that has already been used to generate an encoded data segment among the data segments read by the reading means and the new data segment, The transmission device according to Appendix B1.
[0111] (Appendix B3) The number of times the encoding transmission means repeats generating the new encoded data segment is up to the number of data segments that can be simultaneously stored in the cache memory in the at least one processor, The transmission device according to Appendix B2.
[0112] (Appendix B4) The first area is the user space, and the second area is the kernel space. The transmission device according to Supplementary Note B1 or B2.
[0113] (Supplementary Note B5) The reading means and the encoding transmission means are included in means for executing a data transfer function, a web server function, a web browser function, or a function based on HTTP3 (Hyper Text Transfer Protocol 3). The transmission device according to Supplementary Note B1 or B2.
[0114] (Supplementary Note B6) A receiving device that receives the encoded data segment transmitted by the transmission device according to Supplementary Note B1, including a memory. The memory includes a third area in which received data in the lower layer is stored, and a fourth area in which received data in the application layer is stored. In the application layer, reading means for reading the encoded data segment as received data in the lower layer from the third area. In the application layer, receiving and decoding means for writing the decoded data segment as received data in the application layer to the fourth area while obtaining the data segment decoded from the encoded data segment. A receiving device comprising the above.
[0115] (Supplementary Note B7) The reading means repeatedly reads a new encoded data segment from the third area. The receiving and decoding means repeatedly writes the newly decoded data segment to the fourth area while obtaining a newly decoded data segment decoded from the new encoded data segment using the already decoded encoded data segment. The receiving device according to Supplementary Note B6.
[0116] (Supplementary Note B8) The third area is a kernel space, and the fourth area is a user space. The receiving device according to Appendix B6 or B7.
[0117] (Appendix B9) The reading means and the receiving and decoding means are included in means for executing a data transfer function, a web server function, a web browser function, or a function based on HTTP3 (Hyper Text Transfer Protocol 3). The receiving device according to Appendix B6 or B7.
[0118] [Appendix Item C] The present disclosure includes the technologies described in the following appendices. However, the present invention is not limited to the technologies described in the following appendices, and various modifications are possible within the scope shown in the claims.
[0119] (Appendix C1) A computer including a memory including a first area in which transmission data in the application layer of a communication model is stored and a second area in which transmission data in a layer lower than the application layer is stored, In the application layer, a reading process of reading a plurality of data segments obtained by dividing the transmission data in the application layer from the first area, In the application layer, an encoded transmission process of writing the encoded data segment as transmission data in the lower layer to the second area while generating an encoded data segment using the plurality of data segments, A transmission program for causing the above to be executed.
[0120] (Appendix C2) In the reading process, the computer is repeatedly caused to read a new data segment from the first area. In the encoding process, the computer is repeatedly caused to generate at least one data segment that has already been used to generate an encoded data segment among the data segments read in the reading process, and to write the new encoded data segment into the second area while generating a new encoded data segment using the new data segment. The transmission program according to Supplementary Note C1.
[0121] (Supplementary Note C3) In the encoded transmission process, the number of times the computer is repeatedly caused to generate the new encoded data segment is up to the number that the cache memory in the at least one processor can store data segments simultaneously. The transmission program according to Supplementary Note C2.
[0122] (Supplementary Note C4) The first area is user space, and the second area is kernel space. The transmission program according to Supplementary Note C1 or C2.
[0123] (Supplementary Note C5) The computer is caused to execute the reading process and the encoded transmission process as processes related to a data transfer function, a web server function, a web browser function, or a function based on HTTP3 (Hyper Text Transfer Protocol 3). The transmission program according to Supplementary Note C1 or C2.
[0124] (Supplementary Note C6) A reception program for receiving the encoded data segment transmitted by the execution of the transmission program according to Supplementary Note C1, In a computer provided with a memory including a third area in which received data in the lower layer is stored and a fourth area in which received data in the application layer is stored, In the application layer, a reading process of reading the encoded data segment as the received data in the lower layer from the third area, and In the application layer, a reception decoding process of writing the decoded data segment as the received data in the application layer to the fourth area while obtaining the data segment decoded from the encoded data segment, and A reception program for causing the above to be executed.
[0125] (Appendix C7) In the reading process, repeatedly cause the computer to read a new encoded data segment from the third area, In the reception decoding process, repeatedly cause the computer to write the newly decoded data segment to the fourth area while obtaining the newly decoded data segment decoded from the new encoded data segment using the already decoded encoded data segment, The reception program according to Appendix C6.
[0126] (Appendix C8) The third area is a kernel space, and the fourth area is a user space. The reception program according to Appendix C6 or C7.
[0127] (Appendix C9) Cause the computer to execute the reading process and the reception decoding process as processes related to a data transfer function, a web server function, a web browser function, or a function based on HTTP3 (Hyper Text Transfer Protocol 3). The reception program according to Appendix C6 or C7.
[0128] [Appendix Item D] This disclosure includes the technologies described in the following appendices. However, the present invention is not limited to the technologies described in the following appendices, and various modifications are possible within the scope shown in the claims.
[0129] (Appendix D1) including at least one processor and a memory, the memory includes a first area where transmission data in the application layer of the communication model is stored, and a second area where transmission data in a layer lower than the application layer is stored, the at least one processor, in the application layer, a reading process of reading a plurality of data segments obtained by dividing the transmission data in the application layer from the first area, in the application layer, an encoding transmission process of generating an encoded data segment using the plurality of data segments and writing the encoded data segment as transmission data in the lower layer to the second area, A transmission device that executes the above.
[0130] (Appendix D2) In the reading process, the at least one processor repeatedly reads a new data segment from the first area, In the encoding transmission process, the at least one processor repeatedly generates a new encoded data segment using at least one data segment that has already been used to generate an encoded data segment among the data segments read by the at least one processor and the new data segment, and writes the new encoded data segment to the second area. The transmission device according to Appendix D1.
[0131] (Appendix D3) In the encoding transmission process, the number of times of repeatedly generating the new encoded data segment is up to the number of data segments that can be simultaneously stored in the cache memory in the at least one processor. The transmission device according to Appendix D2.
[0132] (Appendix D4) The first area is the user space, and the second area is the kernel space. The transmission device according to Addendum D1 or D2.
[0133] (Addendum D5) The at least one processor executes the reading process and the encoding and transmission process as processes related to a data transfer function, a web server function, a web browser function, or a function based on HTTP3 (Hyper Text Transfer Protocol 3). The transmission device according to Addendum D1 or D2.
[0134] (Addendum D6) A receiving device that receives the encoded data segment transmitted by the transmission device according to Addendum D1, comprising at least one processor and a memory, the memory includes a third area where the received data in the lower layer is stored and a fourth area where the received data in the application layer is stored, the at least one processor in the application layer, a reading process of reading the encoded data segment as the received data in the lower layer from the third area, in the application layer, a reception decoding process of writing the decoded data segment as the received data in the application layer to the fourth area while obtaining the data segment decoded from the encoded data segment, and executes the receiving device.
[0135] (Addendum D7) In the reading process, the at least one processor repeatedly reads a new encoded data segment from the third area. In the reception decoding process, the at least one processor repeatedly writes the newly decoded data segment to the fourth area while obtaining a newly decoded data segment decoded from the new encoded data segment using the already decoded encoded data segment. The receiving device according to Supplementary Note D6.
[0136] (Supplementary Note D8) The third area is a kernel space, and the fourth area is a user space. The receiving device according to Supplementary Note D6 or D7.
[0137] (Supplementary Note D9) The at least one processor executes the reading process and the reception decoding process as processes related to a data transfer function, a web server function, a web browser function, or a function based on HTTP3 (Hyper Text Transfer Protocol 3). The receiving device according to Supplementary Note D6 or D7.
[0138] [Supplementary Note E] This disclosure includes the technologies described in the following supplementary notes. However, the present invention is not limited to the technologies described in the following supplementary notes, and various modifications are possible within the scope shown in the claims.
[0139] (Supplementary Note E1) A transmission program for causing a computer including a memory including a first area in which transmission data in the application layer of a communication model is stored and a second area in which transmission data in a layer lower than the application layer is stored to execute, on the computer, In the application layer, a reading process of reading a plurality of data segments obtained by dividing the transmission data in the application layer from the first area, In the application layer, while generating an encoded data segment using the plurality of data segments, an encoding transmission process of writing the encoded data segment as transmission data in the lower layer into the second region; A non-transitory recording medium recording a transmission program for causing execution of .
[0140] (Appendix E2) A reception program for receiving the encoded data segment transmitted by execution of the transmission program recorded on the recording medium described in Appendix E1, in a computer including a memory including a third region in which reception data in the lower layer is stored and a fourth region in which reception data in the application layer is stored, in the application layer, a reading process of reading the encoded data segment as reception data in the lower layer from the third region; in the application layer, a reception decoding process of writing the decoded data segment as reception data in the application layer into the fourth region while obtaining the data segment decoded from the encoded data segment; A non-transitory recording medium recording a reception program for causing execution of .
Explanation of Signs
[0141] 1, 1A Transmission device 2, 2A Reception device 10 Communication system 11, 21 Reading unit 12 Encoding transmission unit 13, 23 Communication unit 22 Reception decoding unit C1 Processor 100, 200, C2 Memory
Claims
1. A transmission method executed by a transmission device including at least one processor and a memory, wherein the memory includes a first area in which transmission data in the application layer of a communication model is stored, and a second area in which transmission data in a layer lower than the application layer is stored, the at least one processor performs, in the application layer, a reading process of reading a plurality of data segments obtained by dividing the transmission data in the application layer from the first area, and the at least one processor performs, in the application layer, an encoded transmission process of writing the encoded data segment as transmission data in the lower layer into the second area while generating the encoded data segment using the plurality of data segments, The transmission method including these.
2. In the reading process, the at least one processor repeatedly reads a new data segment from the first area, In the encoded transmission process, the at least one processor repeatedly writes the new encoded data segment into the second area while generating a new encoded data segment using at least one data segment already used for generating an encoded data segment among the data segments read by the at least one processor and the new data segment, The transmission method according to Claim 1.
3. In the encoded transmission process, the number of times of repeatedly generating the new encoded data segment is up to the number of data segments that can be simultaneously stored in a cache memory in the at least one processor, The transmission method according to Claim 2.
4. The first area is a user space, and the second area is a kernel space, The transmission method according to Claim 1 or 2.
5. The at least one processor executes the reading process and the encoded transmission process as processes related to a data transfer function, a web server function, a web browser function, or a function based on HTTP3 (Hyper Text Transfer Protocol 3), The transmission method according to Claim 1 or 2.
6. A receiving method in which a receiving device including at least one processor and a memory receives the encoded data segment transmitted by the transmission method according to claim 1, wherein the memory includes a third area in which received data in the lower layer is stored and a fourth area in which received data in the application layer is stored; the at least one processor performs, in the application layer, a reading process of reading the encoded data segment as received data in the lower layer from the third area; the at least one processor performs, in the application layer, a reception decoding process of writing the decoded data segment as received data in the application layer to the fourth area while obtaining the data segment decoded from the encoded data segment; A receiving method including the above.
7. A transmission device including a memory, wherein the memory includes a first area in which transmission data in the application layer of a communication model is stored and a second area in which transmission data in a layer lower than the application layer is stored; reading means for reading, in the application layer, a plurality of data segments obtained by dividing the transmission data in the application layer from the first area; encoding transmission means for writing the encoded data segment as transmission data in the lower layer to the second area while generating the encoded data segment using the plurality of data segments; A transmission device provided with the above.
8. A receiving device that receives the encoded data segment transmitted by the transmission device according to claim 7, the receiving device including a memory, the memory includes a third area in which received data in the lower layer is stored and a fourth area in which received data in the application layer is stored; reading means for reading, in the application layer, the encoded data segment as received data in the lower layer from the third area; reception decoding means for writing the decoded data segment as received data in the application layer to the fourth area while obtaining the data segment decoded from the encoded data segment; A receiving device provided with the above.
9. A transmission program for causing at least one processor to execute the transmission method according to claim 1, The transmission program causes the at least one processor to execute the reading process and the encoding and transmission process.
10. A reception program for causing at least one processor to execute the reception method according to claim 6, The reception program causes the at least one processor to execute the reading process and the reception and decoding process.
Citation Information
Patent Citations
Communication apparatus, control method therefor, and program
JP2023031710A