The invention discloses a network virtualization method based on a software defined network (SDN). The network virtualization method comprises the steps of obtaining SDN topology information by a controller through detection in network initialization; creating a virtual network sheet, calling a virtual network generation module by the created virtual network sheet, adding host computers into the virtual network after network creation is finished, adding the host computers into the virtual network sheet, and communication between a certain host computer and another host computer is required, if a switch has a matched flow item, directly forwarding a data package, and if the switch has no matched flow item, transmitting the data package to the controller, calling an information interception module by the controller for intercepting the data package, calling an information analyzing module by the information interception module, waiting for a result which is returned from the information analyzing module, and determining whether to discard the data package. The network virtualization method can be used for flexibly creating a virtual network and is totally driven according to a user requirement and has relatively high expandability. Furthermore the invention provides a relatively good solution for improving network throughput and preventing competition of busy links.