扩散现象的原因有哪些