有篇文章讲得比较详细,不过原版现在我找不到了,搜了个排版还算清晰的转载: