A packet transmission method comprising: arranging length information of a first source packet in a first region (301, 401, 601, 701, 801) of a source block, and arranging data of the first source packet in a second region (302, 402, 602, 702, 802) of the source block; arranging length information of a second source packet in the first region of the source block and arranging data of the second source packet in the second region; performing forward error correction, FEC, encoding on the source block; and transmitting the encoded source block, wherein the source block is a two-dimensional array having rows and T columns, wherein the first region comprises a first number of columns, T1, and the second region comprises a second number of columns, T2, with T=T1+T2, wherein, a remaining space of the first region is padded with a predetermined value after the length information of the first source packet and the length information of the second source packet are arranged, wherein a row of the second region includes all or a part of the data of the first source packet, wherein all or a part of the data of the second source packet is arranged in the row of the second region immediately after the all or a part of the data of the first source packet in case that a first value and a second value are different, wherein the all or a part of the data of the second source packet is arranged in a next row after the row of the second region in case that the first value and the second value are the same, wherein a remaining space of the second region is padded with a predetermined value after the all or a part of the data of the first source packet and the all or a part of the data of the second source packet are arranged, wherein the first value is a number of required rows in case that the all or a part of the data of the second source packet is arranged in the row of the second region immediately after the all or a part of the data of the first source packet, and the second value is a number of required rows in case that the all or a part of the data of the second source packet is arranged in the next row after the row of the second region. arranging length information of a first source packet in a first region (301, 401, 601, 701, 801) of a source block, and arranging data of the first source packet in a second region (302, 402, 602, 702, 802) of the source block; arranging length information of a second source packet in the first region of the source block and arranging data of the second source packet in the second region; performing forward error correction, FEC, encoding on the source block; and transmitting the encoded source block, wherein the source block is a two-dimensional array having rows and T columns, wherein the first region comprises a first number of columns, T1, and the second region comprises a second number of columns, T2, with T=T1+T2, wherein, a remaining space of the first region is padded with a predetermined value after the length information of the first source packet and the length information of the second source packet are arranged, wherein a row of the second region includes all or a part of the data of the first source packet, wherein all or a part of the data of the second source packet is arranged in the row of the second region immediately after the all or a part of the data of the first source packet in case that a first value and a second value are different, wherein the all or a part of the data of the second source packet is arranged in a next row after the row of the second region in case that the first value and the second value are the same, wherein a remaining space of the second region is padded with a predetermined value after the all or a part of the data of the first source packet and the all or a part of the data of the second source packet are arranged, wherein the first value is a number of required rows in case that the all or a part of the data of the second source packet is arranged in the row of the second region immediately after the all or a part of the data of the first source packet, and the second value is a number of required rows in case that the all or a part of the data of the second source packet is arranged in the next row after the row of the second region.