I am looking for the reason Why Fragmentation is Done at IP level but why not for TCP/UDP.
Suppose say my frame looks like this |MAC|IP|TCP|Payload|FCS. the whole size if say for eg: 1600. PathMTU happens here, why fragmentation is implemented @ IP level is my question and why not implemented @ TCP/UDP level/code.
Thank in advance.
That's exactly what multiple layers in the TCP/IP stack and in ISO/OSI model are for. TCP/UDP are transport protocols and they shouldn't care of fragmentation - it's not their problem. The IP level deals with the network and it deals with fragmentation since size of fragment depends on the network properties. The layer that has best conditions for solving the problem does solve it.