A data transmission method, wherein the method comprises: when a transmit end receives a first data packet of a data stream and the first data packet is not the initial data packet of the data stream, determining a time interval between a first receiving time and a second receiving time, wherein the first receiving time is a time at which the transmit end receives the first data packet, the second receiving time is a time at which the transmit end receives a second data packet, the first data packet and the second data packet are adjacent data packets of the data stream, and the second data packet is before the first data packet; obtaining, by the transmit end, a sent data amount of the data stream, wherein the sent data amount is a data amount sent before the first receiving time; and determining, by the transmit end, a transmission path of the first data packet from a plurality of available transmission paths based on the time interval and the sent data amount, and transmitting the first data packet to a receive end through the determined transmission path, wherein the plurality of available transmission paths are transmission paths that can be used by the transmit end to transmit the data stream to the receive end, wherein the determining, by the transmit end, a transmission path of the first data packet from a plurality of available transmission paths based on the time interval and the sent data amount comprises: when the time interval is less than a preset time threshold and the sent data amount of the data stream is not less than a preset traffic threshold, selecting, by the transmit end, a transmission path with a maximum available bandwidth from the plurality of available transmission paths; and determining, by the transmit end, the selected transmission path as the transmission path of the first data packet. when a transmit end receives a first data packet of a data stream and the first data packet is not the initial data packet of the data stream, determining a time interval between a first receiving time and a second receiving time, wherein the first receiving time is a time at which the transmit end receives the first data packet, the second receiving time is a time at which the transmit end receives a second data packet, the first data packet and the second data packet are adjacent data packets of the data stream, and the second data packet is before the first data packet; obtaining, by the transmit end, a sent data amount of the data stream, wherein the sent data amount is a data amount sent before the first receiving time; and determining, by the transmit end, a transmission path of the first data packet from a plurality of available transmission paths based on the time interval and the sent data amount, and transmitting the first data packet to a receive end through the determined transmission path, wherein the plurality of available transmission paths are transmission paths that can be used by the transmit end to transmit the data stream to the receive end, wherein the determining, by the transmit end, a transmission path of the first data packet from a plurality of available transmission paths based on the time interval and the sent data amount comprises: when the time interval is less than a preset time threshold and the sent data amount of the data stream is not less than a preset traffic threshold, selecting, by the transmit end, a transmission path with a maximum available bandwidth from the plurality of available transmission paths; and determining, by the transmit end, the selected transmission path as the transmission path of the first data packet. when the time interval is less than a preset time threshold and the sent data amount of the data stream is not less than a preset traffic threshold, selecting, by the transmit end, a transmission path with a maximum available bandwidth from the plurality of available transmission paths; and determining, by the transmit end, the selected transmission path as the transmission path of the first data packet.