A service sending method performed by a transmit-end device, wherein the method comprises: obtaining an original data flow; inserting or deleting n idle units in the original data flow, and determining an increment tag p according to the n idle units; wherein a format of the idle unit includes an idle block, or an idle byte unit; inserting (S 1302) the increment tag p in the original data flow, to generate a first data flow, wherein the increment tag p is used to identify a quantity of changed idle units of the first data flow relative to the original data flow; wherein p is equal to n when the n idle units are inserted, p is equal to -n when the n idle units are deleted, or p is 0 when no idle unit is inserted or deleted; and sending the first data flow; wherein the inserting an increment tag p in the original data flow comprises: obtaining a first segment data flow from the original data flow, and determining a quantity of changed idle units of the first segment data flow relative to the original data flow; and inserting the increment tag p at a first location in the first segment data flow, wherein the first location is a location of a data unit to carry the increment tag p, and the increment tag p is used to identify the quantity of changed idle units of the first segment data flow relative to the original data flow; wherein the obtaining a first segment data flow from the original data flow comprises: setting a threshold of the increment tag p; identifying a first idle unit of the original data flow when the quantity of changed idle units of the first segment data flow relative to the original data flow is greater than or equal to the threshold; and determining a location of the first idle unit as the first location. obtaining an original data flow; inserting or deleting n idle units in the original data flow, and determining an increment tag p according to the n idle units; wherein a format of the idle unit includes an idle block, or an idle byte unit; inserting (S 1302) the increment tag p in the original data flow, to generate a first data flow, wherein the increment tag p is used to identify a quantity of changed idle units of the first data flow relative to the original data flow; wherein p is equal to n when the n idle units are inserted, p is equal to -n when the n idle units are deleted, or p is 0 when no idle unit is inserted or deleted; and sending the first data flow; wherein the inserting an increment tag p in the original data flow comprises: obtaining a first segment data flow from the original data flow, and determining a quantity of changed idle units of the first segment data flow relative to the original data flow; and inserting the increment tag p at a first location in the first segment data flow, wherein the first location is a location of a data unit to carry the increment tag p, and the increment tag p is used to identify the quantity of changed idle units of the first segment data flow relative to the original data flow; wherein the obtaining a first segment data flow from the original data flow comprises: setting a threshold of the increment tag p; identifying a first idle unit of the original data flow when the quantity of changed idle units of the first segment data flow relative to the original data flow is greater than or equal to the threshold; and determining a location of the first idle unit as the first location. obtaining a first segment data flow from the original data flow, and determining a quantity of changed idle units of the first segment data flow relative to the original data flow; and inserting the increment tag p at a first location in the first segment data flow, wherein the first location is a location of a data unit to carry the increment tag p, and the increment tag p is used to identify the quantity of changed idle units of the first segment data flow relative to the original data flow; wherein the obtaining a first segment data flow from the original data flow comprises: setting a threshold of the increment tag p; identifying a first idle unit of the original data flow when the quantity of changed idle units of the first segment data flow relative to the original data flow is greater than or equal to the threshold; and determining a location of the first idle unit as the first location. setting a threshold of the increment tag p; identifying a first idle unit of the original data flow when the quantity of changed idle units of the first segment data flow relative to the original data flow is greater than or equal to the threshold; and determining a location of the first idle unit as the first location.