Although link scheduling has been used to improve the performance of data gathering applications, unfortunately, existing link scheduling algorithms are either centralized or they rely on specific assumptions that are not realistic in wireless sensor networks. In this paper, we propose a distributed and concurrent link scheduling algorithm, called DICSA, that requires no specific assumption regarding the underlying network. The operation of DICSA is managed through two algorithms: (i) Primary State Machine (PSM): Enables each node to perform its own slot reservation; (ii) Secondary State Machine (SSM): Enables each node to concurrently participate in the slot reservation of its neighbors. Through these algorithms and a set of forbidden slots managed by them, DICSA provides concurrent and collision-free slot reservation. Our results show that the execution duration and energy consumption of DICSA are at least 50% and 40% less than that of DRAND, respectively. In terms of slot assignm...