Forward Packet p

1: Get previous depth dp from p and node’s current depth dc from depth finder

2: Get α parameter value according to density and calculate the allowed depth clusters (via the method cleared by Figure 2)

(Already, we assume the parameter is obtained from sink)

3: Compute d = (dp ? dc)

4: IF d < Depth Threshold dth & the receiving node of p is in each allowed depth cluster THEN

5: IF p is in Q1 THEN

6: Remove p from Q1

7: ENDIF

8: Drop p

9: return

10: ENDIF

11: IF p is in Q2 THEN

12: Drop p

13: return

14: ENDIF

15: Update p with current depth dc

16: Compute holding time HT

17: Compute sending time ST

18: IF p is in Q1 THEN

19: Get previous sending time of p STp

20: Update p’s sending time with min (ST, STp)

21: ELSE

22: Add the item into Q1

23: ENDIF