In this article, we introduce the EstiNet OpenFlow network simulator and emulator, and present its support for testing the functions and evaluating the performances of software-defined networks¿ OpenFlow controller¿s application programs. EstiNet uses an unique kernel reentering simulation methodology to enable unmodified real applications to run on nodes in its simulated network. As a result, without any modification, real NOX/POX or Floodlight OpenFlow controllers can readily run on a host in an EstiNet simulated network to control thousands of simulated OpenFlow switches. EstiNet has the characteristics of a simulator and an emulator at the same time. It combines the advantages of the simulation and emulation approaches without their respective shortcomings. EstiNet uses real OpenFlow controller programs, real network application programs, and the real TCP/IP protocol stack in the Linux kernel to generate correct, accurate, and repeatable SDN application performance results. In this article, we compare EstiNet with ns-3 and Mininet regarding their capabilities, performance, and scalability.