| Initialization: |
| if node has received packet , go to step 3 |
| else if , go to step 7 |
| else the node is idle, stay in step 2 |
| if is a new packet, go to step 4 |
| else node has received repeated , let , and go to step 5 |
| node has received the broadcast packet for the first time. Let |
| where indicates the times of the repeated reception of |
| if , node abandons its attempt to rebroadcast, and go to step 8 |
| else if , go to step 5 |
| else node abandons the rebroadcast, then go to step 8 |
| Let , where is the preceding |
| node of node at time |
| node updates its uncovered set by deleting nodes that are covered |
| by and , and calculate its new coverage degree |
| if , it abandons its attempt to rebroadcast, and go to step 8 |
| else if , go to step 7 |
| else delay the rebroadcast by based on formula (4) |
| Check current time : |
| if , go to step 2 |
| else update the field of by the position of and rebroadcasts |
| end |