An interesting topic which has gained a bit of attention but more from a software engineering point of view is that of the multi-cloud or inter-cloud. In the future there will probably be many systems spreading multiple clouds. These would elastically scale to meet the variable data streams (think twitter data) and a decision on where to place and move data/application components would have to be made. Many of these systems could require resource management systems which are autonomous (to ensure each cloud's autonomy - think of Amazon and Google federated but each with distinct SLAs, and access and pricing policies) and built on top of overlay networks to ease both traffic and modeling. This is where SDNs would come into picture as possible network overlays for these systems. Specific research areas would have to take into consideration application use cases. This is where I would start from. Pick a multi-cloud use case and try to see the limitations of existing SoA. Then try to build on top of SDN+autonomous systems+multi-clouds by focusing on resource management and data streams.
An interesting topic which has gained a bit of attention but more from a software engineering point of view is that of the multi-cloud or inter-cloud. In the future there will probably be many systems spreading multiple clouds. These would elastically scale to meet the variable data streams (think twitter data) and a decision on where to place and move data/application components would have to be made. Many of these systems could require resource management systems which are autonomous (to ensure each cloud's autonomy - think of Amazon and Google federated but each with distinct SLAs, and access and pricing policies) and built on top of overlay networks to ease both traffic and modeling. This is where SDNs would come into picture as possible network overlays for these systems. Specific research areas would have to take into consideration application use cases. This is where I would start from. Pick a multi-cloud use case and try to see the limitations of existing SoA. Then try to build on top of SDN+autonomous systems+multi-clouds by focusing on resource management and data streams.
The term "SDN" is vaguely used in my opinion. Here I am going to answer your query based on the traditional "SDN" semantics used widely in academia and industry.
You can learn about SDN initially by reading academic papers since the "term" first came from the academia. I would highly encourage you to go through the OpenFlow protocol (an implementation standardization of SDN) and its specification to get the idea of how things are different than the traditional architecture. You can use any of your Linux machine and run it as an SDN switch. Feel free to check some of the industry implementation based on SDN, e.g., SWAN (software defined wan). As long as you have knowledge about networking and distributed systems, transiting to SDN will be fairly smooth for you.
It's a very good point, Now I can answer you a half answer. Because I already have a private cloud environment built on three physical servers using OpenStack (Juno). And my next step is to learn how to integrate SDN with OpenStack. Also SDN has a list of controllers like NOX, POX, Floodlight, and Opendaylight. You can start to know the differnces between these controllers. And you can wait for me or help me to integrate SDN with OpenStack, so you will have the complete emulation environment.