1. A network device for communicating data over a network, comprising: a transceiver to send and receive data over the network; and a processor that is operative to perform actions comprising: determining at least one metric, wherein at least one of the metrics is based on a comparison of a time data spends in a send-queue when concatenation is performed on the data to another time when other data spends in the send-queue in absence of concatenation of data; receiving a first packet of data for transmission over the network; selectively concatenating data of the first packet with data of a subsequently received second packet at least partly based on the at least one metric; and sending the data of the concatenated packet.