Fragementation:
Fragmentation occurs when memory is allocated and returned to the system. As this occurs, free memory is broken up into small chunks, often too small to be useful.
Internal Fragmentation:
Internal fragmentation occurs when a process is assigned more memory than it has requested and the wasted memory fragment is internal to a process.
Memory block assigned to process is bigger. Some portion of memory is left unused as it can not be used by another process.
External Fragmentation:
External fragmentation occurs when there is sufficient total free memory to satisfy a memory request, yet the memory is not contiguous, so it cannot be assigned. Some contiguous allocation schemes may assign a process more memory than it actually requested (i.e. they may assign memory in fixed-block sizes).
Total memory space is enough to satisfy a request or to reside a process in it, but it is not contiguous so it can not be used.
http://stackoverflow.com/questions/1200694/internal-and-external-fragmentation