A plurality of computing devices are communicatively coupled to each other via a network, and each of the plurality of computing devices is operably coupled to one or more of a plurality of storage devices. Data communication is made more efficient by removing the need to copy data in the networking stack, using hardware accelerated end-to-end checksum calculation, and supporting transmission formatting of data and header for special cases.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A system for networking, comprising: a memory management unit configured to enable writing data and its header to a physical memory page, wherein the data in the physical memory page is a data block and the header in the physical memory page is a header block; a processor configured to generate and store a particular value as a header checksum seed in a header checksum field in the header block, wherein the particular value is generated such that a header checksum calculated according to the particular value is equal to zero; and a network adaptor configured to transmit the header block and the data block.
2. The system of claim 1 , wherein the network adaptor is configured to calculate a data checksum for the data block.
3. The system of claim 1 , wherein the processor is configured to generate the particular value while the header checksum seed is set to a pre-determined number.
4. The system of claim 1 , wherein: the processor is configured to use a partial checksum to generate the header checksum, the partial checksum being a checksum for baseline header fields, and the baseline header fields being pre-determined header fields in the header block that are not expected to change from a transmission of a first data block to a transmission of a second data block.
5. The system of claim 4 , wherein the processor is configured to generate a new partial checksum when one or more of the baseline header fields have changed for the second data block compared to the first data block.
6. The system of claim 4 , wherein the processor generates the header checksum by adding the partial checksum to a checksum of non-baseline header fields, the non-baseline header fields being one or more of the header fields in the header block that are not baseline header fields.
7. The system of claim 1 , wherein, if a number of bytes in the header block not used for storing the header is greater than a first pre-determined threshold, the processor is configured to set up a special frame for transmission prior to transmission of the data block.
8. The system of claim 7 , wherein the processor is configured to use an additional special frame when a number of data blocks to be transmitted is greater than a second pre-determined threshold.
9. The system of claim 7 , wherein the processor is configured to: copy a first number of bytes at a beginning of the data block to the special frame, the first number of bytes being the number of bytes in the header; and copy the header to the beginning of the data block.
10. The system of claim 1 , wherein the network adaptor is configured to: transmit inbound traffic directly to a child partition; and receive outbound traffic directly from the child partition, wherein the child partition is executing on the processor.
11. A method for networking, comprising: writing data and a header for the data to a physical memory page, wherein the data in the physical memory page is a data block and the header in the physical memory page is a header block; writing a particular value as a header checksum seed value in a header checksum field wherein the particular value is generated such that a header checksum calculated according to the particular value is equal to zero; and transmitting the header block and the data block.
12. The method of claim 11 , comprising using a network adaptor to calculate a data checksum for the data block.
13. The method of claim 11 , comprising generating the particular value while the header checksum seed is set to a pre-determined number.
14. The method of claim 11 , comprising using a partial checksum to generate the header checksum, wherein: the partial checksum is a checksum for baseline header fields, and the baseline header fields are pre-determined header fields in the header block that are not expected to change from a transmission of a first data block to a transmission of a second data block.
15. The method of claim 14 , comprising generating a new partial checksum when one or more of the baseline header fields have changed for the second data block compared to the first data block.
16. The method of claim 14 , wherein the header checksum is generated by adding the partial checksum to a checksum of non-baseline header fields, the non-baseline header fields being one or more of the header fields in the header block that are not baseline header fields.
17. The method of claim 11 , comprising, if a number of bytes in the header block not used for storing the header is greater than a first pre-determined threshold, transmitting a special frame prior to transmitting the data block.
18. The method of claim 17 , wherein an additional special frame is used when a number of data blocks to be transmitted is greater than a second pre-determined threshold.
19. The method of claim 17 , comprising: copying a first number of bytes at a beginning of the data block to the special frame, wherein the first number of bytes is the number of bytes in the header; and copying the header to the beginning of the data block.
20. The method of claim 11 , comprising a child partition executing on a processor receiving inbound traffic directly from a network adaptor and transmitting outbound traffic directly to the network adaptor.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 5, 2018
March 2, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.