The deference about implementation between SI and SSI isolation level

I have read the document(https://github.com/cockroachdb/cockroach/blob/master/docs/design.md#lock-free-distributed-transactions), but i have not understand the deference about implementation between SI and SSI isolation level. please make a comparison about them.
thx very much!

The wikipedia page on snapshot isolation is helpful. The difference is that in snapshot isolation, transaction restarts are somewhat less likely but the write skew anomaly is possible.

Serializable (SSI) is the default in CockroachDB and we recommend using it in nearly all cases. It’s tricky to determine when it’s safe to allow write skew and it doesn’t improve performance in most cases so there’s little reason to worry about the subtle differences between isolation levels.