SDN
SDN (Software Defined Networking) refers to the physical separation of the network control plane from the forwarding plane, and where a control plane controls several devices.
- Data plane refers to all the functions and processes that forward packets/frames from one interface to another.
- Control plane refers to all the functions and processes that determine which path to use. Routing protocols, spanning tree, ldp, etc are examples.

ns-3
ns-3 is a discrete-event network simulator. If, for example, an event scheduled for simulation time "100 seconds" is executed, and the next event is not scheduled until "200 seconds", the simulator will immediately jump from 100 seconds to 200 seconds (of simulation time) to execute the next event. This is what is meant by "discrete-event" simulator.
OpenFlow
OpenFlow is considered one of the first software-defined networking standards. It originally defined the communication protocol in SDN environments that enables an SDN controller to directly interact with the forwarding plane of network devices such as switches and routers, both physical and virtual (hypervisor-based). OpenFlow:
- is a communications protocol that gives access to the forwarding plane of a network switch or router over the network.
- enables network controllers to determine the path of network packets across a network of switches.
- allows switches from different vendors - often each with their own proprietary interfaces and scripting languages - to be managed remotely using a single, open protocol.