Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INTRODUCTION
1
At the same time, SDN controllers (independent of the NV use case)
have primarily been used for WAN deployments, to control and built out
dynamic WAN topologies, or in other service provider solutions involving
service function chaining.
We will split out the technologies where we can, and the vendor
product section at the end of this report containers separate categories for SDN
controllers and NV solutions. Many networking vendors are investing heavily
in both NV and SDN technology, and end users, both on the enterprise and
service provider side, tell us they need both. Much of the analysis of this report
is based on our user survey which guided our research.
When relevant, the vendor and end-user results have been separated;
when probing on current deployments and plans within an organization’s own
environment we considered technology vendors as NV customers and included
their responses in the results.
2
Among the things we will look at include:
• Vendor profiles
3
1.1Project Description
4
The degree to which networking vendors use open source code
such as ODL and market an SDN business model can vary greatly. To date,
ODL appears to have the most momentum of the controller ecosystem.
The fourth release, Beryllium, came out earlier this year. The
controller supports a wide variety of protocols including OpenFlow, Netconfig,
BGP, PCEP, and OVSDM. Many vendors have been developing their own
commercial controller solutions, basing their offerings on the ODL
advancements. The degree to which they leverage ODL, however, and the
business models they deploy vary greatly.
5
They can also be designed to run vendor proprietary or 3rd
party apps, such as Big Switch’s Big Cloud Fabric, HPE’s VAN controller and
NEC’s Programmable Flow Controller. Another big movement in the controller
market is the Open Networking Operating System (ONOS), which was open
sourced in December 2014 and focused on serving the needs of service
providers.
Project Modules
1. Controller Module.
2. User Module.
6
Controller Module
User Module
1. Application Plane.
2. Data Plane.
7
Application Plane
8
SDN architectures decouple network control and forwarding
functions, enabling network control to become directly programmable and the
underlying infrastructure to be abstracted from applications and network
services.
9
CHAPTER 2
SYSTEM STUDY
ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY
10
Economical Feasibility
This study is carried out to check the economic impact that the
system will have on the organization. The amount of fund that the company can
pour into the research and development of the system is limited. The
expenditures must be justified. Thus, the developed system as well within the
budget and this was achieved because most of the technologies used are freely
available. Only the customized products had to be purchased.
Technical Feasibility
Social Feasibility
11
2.2 Existing System
Disadvantages
12
2.3 Proposed System
13
Advantages
Open Source.
No hardware maintenance.
14
CHAPTER 3
SYSTEM SPECIFICATION
Ram - 3 GB
15
CHAPTER 4
LANGUAGE SPECIFICATION
1. Simple
2. Object-Oriented
3. Portable
4. Platform independent
5. Secured
6. Robust
7. Architecture neutral
8. Dynamic
9. Interpreted
10.High Performance
11.Multithreaded
12.Distributed
16
Simple
Object-oriented
2. Class
3. Inheritance
4. Polymorphism
5. Abstraction
6. Encapsulation
Platform Independent
17
A platform is the hardware or software environment in which a
program runs. There are two types of platforms software-based and hardware-
based. Java provides software-based platform.The Java platform differs from
most other platforms in the sense that it is a software-based platform that runs
on the top of other hardware-based platforms.
1. Runtime Environment
Secured
18
Java is secured because:
o No explicit pointer
Robust
Architecture-neutral
19
There is no implementation dependent features e.g. size of
primitive types is fixed.
Portable
High-performance
Distributed
20
used for creating distributed applications. We may access files by calling the
methods from any machine on the internet.
Multi-threaded
Management Flexibility
21
The fundamental benefit of SDN is that control of the network
can be managed via software, usually in a centralized manner. This allows
network topologies, applications, security, and routing to be changed on the fly,
without having administrators log into multiple pieces of network equipment
and changing configurations to each one. As we have shown, flexibility has
regularly come up as the #1 benefit of SDN technology in a number of surveys
and user panels we have conducted.
22
The expansion of the COTS hardware market for SDN, as well
as the demand for increased interoperability of networking gear, is reducing the
number of proprietary networking products and pushing the networking
industry toward greater standardization. Over time, this allows merchant silicon
vendors to create high quality, lower cost products which contribute to lower
hardware costs overall.
Programmability
23
network are operating. By supporting standard monitoring protocols, the
information can be integrated with other management and orchestration
systems.
Security
CHAPTER 5
SYSTEM DESIGN
24
Design is multi-step process that focuses on data structure
software architecture, procedural details, (algorithms etc.) and interface
between modules. The design process also translates the requirements into the
presentation of software that can be accessed for quality before coding begins.
25
Input design is the process of converting user-originated inputs
to a computer-based format. Input design is one of the most expensive phases of
the operation of computerized system and is often the major problem of a
system.
Project
Planning
Requirement
Definition
Design
Development
Integration
& Test
Installation &
Acceptance
Fig 5.1: Input Design
26
Output design generally refers to the results and information that are
generated by the system for many end-users; output is the main reason for
developing the system and the basis on which they evaluate the usefulness of
the application. In any system, the output design determines the input to be
given to the application.
Kickof
Process
Informal
Iteration
Formal
Iteration
In-Stage
Assessment
Stage
Exit
27
Fig 5.3: Architecture Diagram
28
Start SDN
Controller
Connect Hosts
Manage Hosts
29
5.5.1 Usecase Diagram
Controller
Host
30
Fig 5.5.1.2: Host Usecase Diagram
31
SDN Controller
Manage_Hosts
Child_Controller()
();
Sending ()
Receiving ()
5.5.3 Sequence Diagram
Controller
Controller
Start Adding 32
Make Child Host & Switch New
Network
User Host
Fig 5.5.3.1: Sequence Diagram for Controller
Hosts
Conversation
Manage Close
Controller Switch Hosts
Hosts
Communicate
Connected
Close
Add new host
Close
Resource
33
CHAPTER 6
CODING
import java.net.*;
import java.io.*;
import java.lang.Runtime;
import java.lang.Process;
public class pController extends Thread
{
private ServerSocket serverSocket;
private long currentTime;
public IncomingCmd(int port) throws IOException
{
serverSocket = new ServerSocket(port);
serverSocket.setSoTimeout(0);
}
public IncomingCmd(long timeValue) throws IOException
{
currentTime = timeValue;
System.out.println("IncomingCmd:: Timer thread that checks switch
master-slave failover implemented");
}
public void run()
{
while (true)
{
if (!Thread.currentThread().getName().equals("Thread-4"))
{
34
System.out.println("IncomingCmd::run(): Thread Started
" + Thread.currentThread().getName());
try {
System.out.println("IncomingCmd::run(): Listening on socket "
+ serverSocket.getLocalPort());
Socket server = serverSocket.accept();
DataInputStream in = new
DataInputStream(server.getInputStream());
String checkInput = in.readUTF();
System.out.println(checkInput);
if (checkInput.equals("Delete-gs1"))
{
try
{
Process p = Runtime.getRuntime().exec("sudo
ovs-vsctl del-port gs1 gs1-eth1");
}
catch (IOException e)
{
System.out.println("IncomingCmd::run(): Error
deleting G-Switch 1 port gs1-eth1");
}
}
else if (checkInput.equals("Delete-gs2"))
{
try
{
Process p = Runtime.getRuntime().exec("sudo
ovs-vsctl del-port gs2 gs2-eth1");
}
catch (IOException e)
{
System.out.println("IncomingCmd::run(): Error
deleting G-Switch 2 port gs2-eth1");
}
}
35
else if (checkInput.equals("Pull-gs1"))
{
try
{
Process p = Runtime.getRuntime().exec("sudo ovs-vsctl
add-port gs1 gs1-eth1");
}
catch (IOException e)
{
System.out.println("IncomingCmd::run(): Error adding
G-Switch 1 port gs1-eth1");
}
}
else if (checkInput.equals("Pull-gs2"))
{
try
{
Process p = Runtime.getRuntime().exec("sudo ovs-vsctl
add-port gs2 gs2-eth1");
}
catch(IOException e)
{
System.out.println("IncomingCmd::run(): Error adding
G-Switch 2 port gs2-eth1");
}
}
else if (checkInput.startsWith("Switch-Controller"))
{
String switchNumber = checkInput.substring(18, 19);
switchController(switchNumber);
}
}
catch (SocketTimeoutException s)
{
System.out.println("IncomingCmd::run(): Socket Timed Out");
}
36
catch (IOException e)
{
System.out.println("IncomingCmd::run() Error receiving data from
socket");
e.printStackTrace();
}
}
else if (Thread.currentThread().getName().equals("Thread-4")
&& (System.currentTimeMillis() - currentTime) > 10000)
{
currentTime = System.currentTimeMillis();
String[] switchList = {"s1", "s2", "s3", "s4"};
for ( String switchID : switchList) {
checkFailover(switchID);
}
}
}
}
if (serverSocket.getLocalPort() == 41102)
{
try
{
Process p = Runtime.getRuntime().exec("sudo ovs-vsctl del-controller
" + switchID);
p = Runtime.getRuntime().exec("sudo ovs-vsctl set-controller " +
switchID + " tcp:192.168.56.21:6633");
}
catch(IOException e)
{
System.out.println("IncomingCmd::switchController(): Error
performing controller commands for switch " + switchID); }
}
else if (serverSocket.getLocalPort() == 41202) {
try {
Process p = Runtime.getRuntime().exec("sudo ovs-vsctl del-controller
" + switchID);
p = Runtime.getRuntime().exec("sudo ovs-vsctl set-controller " +
switchID + " tcp:192.168.56.20:6633");
}
catch(IOException e)
37
{
System.out.println("IncomingCmd::switchController(): Error
performing controller commands for switch " + switchID); }
}
}
38
BufferedReader newInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));
String newInputString = newInput.readLine();
System.out.println("IncomingCmd::checkFailover(): Is " + switchID +
" connected to current controller? " + newInputString);
if (newInputString.equals("false"))
{
p = Runtime.getRuntime().exec("sudo ovs-vsctl del-controller "
+ switchID);
Thread.sleep(1000);
p = Runtime.getRuntime().exec("sudo ovs-vsctl set-controller "
+ switchID + " tcp:192.168.56.20:6633");
}
}
}
}
catch(IOException e)
{
System.out.println("IncomingCmd::checkFailover(): Error executing
commands for switch " + switchID);
}
catch(InterruptedException ie)
{
System.out.println("IncomingCmd::checkFailover() Error with thread sleep
");
}
}
public static void main(String[] args)
{
System.out.println("IncomingCmd::main() Started");
int port1 = 41101;
int port2 = 41102;
int port3 = 41201;
int port4 = 41202;
long timer = System.currentTimeMillis();
try
{
Thread t1 = new IncomingCmd(port1);
Thread t2 = new IncomingCmd(port2);
Thread t3 = new IncomingCmd(port3);
39
Thread t4 = new IncomingCmd(port4);
Thread t5 = new IncomingCmd(timer);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
catch (IOException e)
{
System.out.println("IncomingCmd::main() Error starting thread");
e.printStackTrace();
}
}
}
40
CHAPTER 7
SYSTEM TESTING
41
7.2 INTEGRATION TESTING
Testing is done for each module. After testing all the modules,
the modules are integrated and testing of the final system is done with the test data,
specially designed to show that the system will operate successfully in all its
aspects conditions. Thus the system testing is a confirmation that all is correct and
an opportunity to show the user that the system works.
42
CHAPTER 8
SYSTEM MAINTENANCE
43
In the form, the zero length username and password are given
and checked. Also the duplicate username is given and checked. The client side
validations are made. The dates are entered in wrong manner and checked. Wrong
email-id is given and checked.
44
CHAPTER 9
SYSTEM IMPLEMENTATION
45
document the entire system which provides components and the operating
procedures of the system.
Every application has its own merits and demerits. The project
has covered almost all the requirements. Further requirements and improvements
can easily be done since the coding is mainly structured or modular in nature.
46
Vijay Sivaraman (M’94) received the B.Tech. degree from IIT,
Delhi, India, in 1994, the M.S. degree from North Carolina State University in
1996, and the Ph.D. degree from the University of California at Los Angeles in
2000, all in computer science. He was with Bell-Labs and a Silicon Valley startup.
He is currently an Associate Professor with the University of New South Wales,
Sydney, Australia. His research interests include software-defined networking and
sensor networks for environmental and health applications
47
CHAPTER 10
CONCLUSION
48
CHAPTER 11
APPENDICES
49
Controller GUI Create Edit
50
Fig 11.1.3: Sample Network in SDN
CHAPTER 12
BIBILOGRAPHY
[2] The Guardian. (Apr. 2014). The FCC Is About to Axe-Murder Net Neutrality.
Don’t Get Mad Get Even. [Online].
[3] G. Nagesh. (Apr. 2014). “FCC to propose new ‘net neutrality’ rules,” The Wall
Street Journal. [Online].
[4] “Netflix wants to put Comcast genie back in fast lane bottle.” (Nov. 2014).
Financial Times. [Online].
51
[5] S. Sundaresan et al., “Broadband Internet performance: A view from the
gateway,” in Proc. ACM SIGCOMM, Toronto, ON, Canada, Aug. 2011, pp. 134–
145.
Websites
http://www.theguardian.com/commentisfree/2014/apr/24/fcc-netneutrality-tom-
wheeler-stop-rules,
http://online.wsj.com/news/articles/SB10001424052702304518704579519963416
350296,
http://www.ft.com/cms/s/0/0bc54d54-639e-11e4-8216-00144feabdc0,
https://goo.gl/aUyWyX,
52