When massage comes from application layer,every layer add header because it is require to reach at destination without header how do we know what is destination address,what is port no. Of process,what type of required etc . When application layer can send any amount of data,but data link layer can accept upto 1500 Bytes packet .that's why fragmentation is done at network layer .headers are overhead but these are required.when packet comes at network layer from transport layer it became part of payload means data nd additional network add his header.