IP fragmentation

HI all,
I am in urgent need of this answer.
In TCP/IP protocol, If the IP datagram size > MTU of the any
routing network then the IP fragmentation takes place!
Where exactly the Fragmentation takes place? is it at the source network layer or in between at some router?
If so, which of the layers is responsible for reassembly? Is it IP(internet layer) or TCP(Transport layer)?
If already fragmented IP datagrams encounters a much smaller MTU in its reach to destination, will it again fragmented ?
Is this called Multifragmentation?

Please reply me ASAP.

I need to answer these to me bass today COB!!
We are in critical design process!
These are the few concerns we have?
I am just a devoloper in UNIX environment for Socket programming!!

Thanks
Bhupal

Fragmentation is purely a layer three (IP) functionality. When a router receives an IP packet whose size is bigger than the alowed transmited size in the attached link then the packet is fragmentated. The packets are reassembled in the destination. Fragmented packets can be re-fragmented later.
What is exactly the design desition you have to take?