do we need checksum for TCP and UDP? IF yes or no? why we need or don't need them?
Do we need check sum of TCP and why yes or no ?
Do we need check sum for UDP and why yes or no?
The transport layer already has its own checksums etc. You don't need to add your own. Encryption is another matter.
If by "we" you mean your fellow kernel developers, the answer is "yes".
Otherwise the answer is "no".
The bottom line is that the TCP and UDP checksums need to be generated by the sender and checked by the receiver. This is almost always done by either kernel code or dedicated hardware on the network interface.