I have a large image stored on NFS. I want to read only the first portion of the image to get the header.
Does the NFS client stop reading after it gets the blocks it needs or will it receive the entire file from the server?
in its simplest form, NFS just presents a filesystem API accross the network.
When your application starts reading data from the file, you'll send read commands to the server, and it will respond with the data. When the app stops reading, there won't be any more responses.
Of course, there's a lot more under the hood, especially a 'readahead buffer' that reads a little more than asked, so in the common case of needing it shortly thereafter, it might be already waiting; but this is configurable and typically small (in the order of 64-512KB)
In short: if your application doesn't read, there won't be any significant useless traffic.