Checkpointing is a very popular technique for fault tolerance in distributed systems. The proposed protocol tolerates the transient faults. In the protocol, all processes take checkpoints to form a global consistent checkpoint. The protocol handles the failures of initiator and non-initiator.