The invention discloses a data forwarding method, controller, forwarding device and system, and belongs to the field of computers. The data forwarding method comprises the steps that overload link port information sent by the forwarding device is received; a service flow, with biggest flow, in a port is queried according to identification, of the port, contained in the overload link port information; a new forwarding path is generated for the service flow; a new forwarding flow table of the service flow is generated for the forwarding device on the new forwarding path; the new forwarding flow table is sent to the corresponding forwarding device. Due to the facts that the service flow, with biggest flow, in a port is queried according to identification, of the port, contained in the received overload link port information, and the new forwarding path is generated for the service flow, the problem that a service flow cannot be further controlled after a controller confirms a forwarding path of the service flow is solved, and the purposes that flow distribution is optimized in real time, and then network forwarding performance is improved are achieved.