A packet sending method, comprising: obtaining (S301, S302), by a controller, a forwarding latency requirement of a service flow and a destination address of the service flow, and determining (S303), based on the forwarding latency requirement and the destination address, a forwarding path for forwarding the service flow, wherein a latency of the forwarding path meets the forwarding latency requirement of the service flow, the forwarding path passes through a first network node and a second network node, the first network node is an ingress node on the forwarding path, and the second network node is an intermediate node on the forwarding path; determining (S306), by the controller, a number of a first cycle time in which the first network node forwards a packet and a number of a second cycle time in which the second network node forwards the packet, wherein the packet is a packet in the service flow; generating (S307), by the controller, a first entry and a second entry, wherein the first entry comprises a correspondence between a sequence number of the packet and the first cycle time number, and the second entry comprises a correspondence between the sequence number of the packet and the second cycle time number; sending (S308), by the controller, the first entry to the first network node, wherein the first entry is used to indicate the first network node to send the packet in a time period corresponding to the first cycle time number; and sending, by the controller (S309), the second entry to the second network node, wherein the second entry is used to indicate the second network node to send the packet in a time period corresponding to the second cycle time number. obtaining (S301, S302), by a controller, a forwarding latency requirement of a service flow and a destination address of the service flow, and determining (S303), based on the forwarding latency requirement and the destination address, a forwarding path for forwarding the service flow, wherein a latency of the forwarding path meets the forwarding latency requirement of the service flow, the forwarding path passes through a first network node and a second network node, the first network node is an ingress node on the forwarding path, and the second network node is an intermediate node on the forwarding path; determining (S306), by the controller, a number of a first cycle time in which the first network node forwards a packet and a number of a second cycle time in which the second network node forwards the packet, wherein the packet is a packet in the service flow; generating (S307), by the controller, a first entry and a second entry, wherein the first entry comprises a correspondence between a sequence number of the packet and the first cycle time number, and the second entry comprises a correspondence between the sequence number of the packet and the second cycle time number; sending (S308), by the controller, the first entry to the first network node, wherein the first entry is used to indicate the first network node to send the packet in a time period corresponding to the first cycle time number; and sending, by the controller (S309), the second entry to the second network node, wherein the second entry is used to indicate the second network node to send the packet in a time period corresponding to the second cycle time number. <EOS>