A software defined networking, SDN,-based Address Resolution Protocol, ARP, implementation method performed by a controller, the method comprising: • receiving a first ARP request from a first switch, wherein the first ARP request is sent to the first switch by a host that is connected to the first switch (step 700), • if it is determined by the controller that an ARP entry corresponding to the destination IP address in the first ARP request does not exist locally, sending to the first switch a first instruction that is used to instruct the first switch to flood the first ARP request (step 710), • if it is determined by the controller that the ARP entry corresponding to the destination IP address in the first ARP request exists locally, determining a destination switch based on the ARP entry and sending the first ARP request to the destination switch, ∘ if a first ARP response returned by the destination switch is received, forwarding the first ARP response to the first switch, ∘ if the first ARP response returned by the destination switch is not received within a specified duration, deleting the ARP entry that is corresponding to the destination IP address in the first ARP request and that is stored locally, and sending, to the first switch, a second instruction that is used to instruct the first switch to flood the first ARP request, wherein the second instruction is used to instruct the first switch to send the first ARP request to both, the switch that is adjacent to the first switch and the host that is connected to the first switch, and, after the sending of the second instruction to the first switch, if receiving a second ARP response from a second switch, locally storing an ARP entry comprised in the second ARP response, and forwarding the second ARP response to the first switch. • receiving a first ARP request from a first switch, wherein the first ARP request is sent to the first switch by a host that is connected to the first switch (step 700), • if it is determined by the controller that an ARP entry corresponding to the destination IP address in the first ARP request does not exist locally, sending to the first switch a first instruction that is used to instruct the first switch to flood the first ARP request (step 710), • if it is determined by the controller that the ARP entry corresponding to the destination IP address in the first ARP request exists locally, determining a destination switch based on the ARP entry and sending the first ARP request to the destination switch, ∘ if a first ARP response returned by the destination switch is received, forwarding the first ARP response to the first switch, ∘ if the first ARP response returned by the destination switch is not received within a specified duration, deleting the ARP entry that is corresponding to the destination IP address in the first ARP request and that is stored locally, and sending, to the first switch, a second instruction that is used to instruct the first switch to flood the first ARP request, wherein the second instruction is used to instruct the first switch to send the first ARP request to both, the switch that is adjacent to the first switch and the host that is connected to the first switch, and, after the sending of the second instruction to the first switch, if receiving a second ARP response from a second switch, locally storing an ARP entry comprised in the second ARP response, and forwarding the second ARP response to the first switch. ∘ if a first ARP response returned by the destination switch is received, forwarding the first ARP response to the first switch, ∘ if the first ARP response returned by the destination switch is not received within a specified duration, deleting the ARP entry that is corresponding to the destination IP address in the first ARP request and that is stored locally, and sending, to the first switch, a second instruction that is used to instruct the first switch to flood the first ARP request, wherein the second instruction is used to instruct the first switch to send the first ARP request to both, the switch that is adjacent to the first switch and the host that is connected to the first switch, and, after the sending of the second instruction to the first switch, if receiving a second ARP response from a second switch, locally storing an ARP entry comprised in the second ARP response, and forwarding the second ARP response to the first switch.