NFS RPC Checksum Verification Beyond NIC and CRC-16 Limits
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The NFS protocol lacks a reliable mechanism for ensuring data integrity between NFS clients and servers, with existing checksum methods like CRC-16 being error-prone and NICs being unreliable for verification, leading to data corruption and tampering issues.
Innovation Solution
Implementing a checksum algorithm such as CRC-32 or Fletcher-32 at NFS clients and servers to compute and verify checksums within RPC packets using unused fields in the RPC protocol, eliminating reliance on unreliable network infrastructure for data integrity verification.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If CRC-16 checksum algorithm is used for data integrity verification, then the verification process is simple and fast, but the reliability of data integrity verification deteriorates due to error-prone computations
Solution Approach 1:
The patent changes the checksum algorithm parameter from CRC-16 to CRC-32, increasing the checksum length from 16 to 32 bits. This parameter change maintains computational efficiency while significantly improving the ability to detect data corruption and transmission errors, thus resolving the contradiction between verification speed and reliability.
2Productivity
If NIC-based checksum verification is used, then the verification function is hardware-accelerated, but the reliability deteriorates due to NIC failures and incorrect checksum computations
Solution Approach 1:
The patent extracts the checksum verification function from the network interface controller (NIC) and relocates it to the software layer. By implementing checksum computation and verification in the NFS client/server software rather than relying on NIC hardware, the system eliminates NIC-related reliability issues while maintaining verification capability through software-based implementation.
3Adaptability or versatility
If existing TCP checksum functionality is used, then the implementation is standard and widely supported, but the reliability of detecting data integrity errors deteriorates
Solution Approach 1:
The patent changes the checksum algorithm parameter within the TCP protocol implementation from CRC-16 to CRC-32. This parameter modification enhances the error detection capability by using a more robust checksum algorithm that can reliably detect a broader range of data corruption scenarios, while maintaining compatibility with existing TCP protocol framework.
4Reliability
If stronger checksum algorithms like CRC-32 are implemented, then the data integrity verification reliability improves, but the computational complexity and resource consumption increase
Solution Approach 1:
The patent changes the checksum algorithm parameter to CRC-32, which provides superior error detection reliability compared to CRC-16. While CRC-32 involves slightly more computation, the increase in computational complexity is manageable and justified by the significant improvement in detecting data integrity errors, including cases where multiple bits are flipped.
Data Source
AI summary
A computer is configured to execute network file system (NFS) client software, and issue NFS commands to an NFS server along with checksums that are used by the NFS server to verify the integrity of remote procedure call (RPC) packets that include the NFS commands, by performing the steps of: computing a first checksum of a first RPC packet by applying a checksum algorithm to the first RPC packet, wherein the first RPC packet includes a first NFS packet, the first NFS packet including an NFS command to be performed by the NFS server; inserting the first checksum into the first RPC packet; creating a first transmission control protocol (TCP) packet that includes the first RPC packet having the first checksum inserted therein; and transmitting the first TCP packet to the NFS server over a network using a network interface controller (NIC).


