A method for determining a communication mode for a communication between a transmitting node and a receiving node in a mesh network, wherein the transmitting and receiving nodes each support a plurality of communication modes, wherein each communication mode of the plurality of communication modes comprises a different data modulation and coding scheme, the method comprising: accessing, by the transmitting node, communication mode selection data that describe communication conditions of the transmitting node and the receiving node, the communication mode selection data comprising a signal-to-noise ratio, SNR, requirement of the receiving node, an SNR requirement of the transmitting node and a maximum transmission power of the receiving node and a transmission power of the transmitting node; determining, by the transmitting node, a first list of communication modes that can be used by the transmitting node to transmit data packets to the receiving node based, at least in part, upon the SNR requirement of the receiving node and the transmission power of the transmitting node in the communication mode selection data; determining, by the transmitting node, a second list of communication modes that can be used by the receiving node to transmit acknowledgment packets to the transmitting node based, at least in part, upon the SNR requirement of the transmitting node and the maximum transmission power of the receiving node in the communication mode selection data; selecting, by the transmitting node, a communication mode that is on both the first list of communication modes and the second list of communication modes; transmitting, by the transmitting node, the data packets to the receiving node using the selected communication mode; and receiving, by the transmitting node from the receiving node, the acknowledgement packets in the selected communication mode. accessing, by the transmitting node, communication mode selection data that describe communication conditions of the transmitting node and the receiving node, the communication mode selection data comprising a signal-to-noise ratio, SNR, requirement of the receiving node, an SNR requirement of the transmitting node and a maximum transmission power of the receiving node and a transmission power of the transmitting node; determining, by the transmitting node, a first list of communication modes that can be used by the transmitting node to transmit data packets to the receiving node based, at least in part, upon the SNR requirement of the receiving node and the transmission power of the transmitting node in the communication mode selection data; determining, by the transmitting node, a second list of communication modes that can be used by the receiving node to transmit acknowledgment packets to the transmitting node based, at least in part, upon the SNR requirement of the transmitting node and the maximum transmission power of the receiving node in the communication mode selection data; selecting, by the transmitting node, a communication mode that is on both the first list of communication modes and the second list of communication modes; transmitting, by the transmitting node, the data packets to the receiving node using the selected communication mode; and receiving, by the transmitting node from the receiving node, the acknowledgement packets in the selected communication mode.