answer is D
since the data received is from the network layer to transport layer, and we know at network layer we have IP which uses checksum at header only.so there is lots of probability that data might be corrupted. therefore either UDP or TCP they have to perform the checksum then only they can be sure about it.
better to see the format of IP and compare it with UDP and TCP. you will find that in IP we have only header checksum while in TCP/UDP we have checksum for header and data both.