Final Project of the Control of Communication and Energy Networks course of the Master Degree in Engineering in Computer Science at University of Rome "La Sapienza".
The technical report introduce the concepts of Service Function Chaining (SFC) and Network Function Virtualization (NFV) analyzing an approach to merge the two technologies.
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
Control of Communication and Energy Networks Final Project - Service Function Chaining in Network Function Virtualization
1. Control of Communication and Energy Networks
Master Degree in Engineering in Computer Science
Service Function Chaining
in
Network Function Virtualization
Author:
Biagio Botticelli 1212666
January 5, 2017
5. 1 Introduction
Today’s networks are formed by a huge variety of existing Network Elements (NEs): PCs,
Laptops, DSL modems, Ethernet switches, Hubs, Proxies, IP routers, Firewalls, etc...
and newer and more complex ones are being created all the time.
In this environment, building new services is becoming increasingly difficult and costly.
To launch a new network service often requires a newer component or an upgrade to an existing
one and to find the space where to install it and power to accommodate it; compounded by the
cost due to the proprietary nature of hardware appliances and the costs of energy, and the lack of
skilled professional figures which are able to design, integrate and operate increasingly complex
hardware-based applications.
Moreover, hardware-based applications rapidly reach end of life and require much effort for the:
procure → design → integrate → deploy
control cycle to be repeated with little or no revenue benefit.
In practice:
there is a fundamental disconnection between software and networking
Network Functions Virtualization (NFV) was recently proposed to alleviate these problems,
along with another emerging technology called Software Defined Networking (SDN).
4
6. 2 Network Function Virtualization (NFV)
In the current environment of network infrastrucures, telecommunications and networking software
is being run on four types of platforms:
1. Industry standard Linux or Windows servers;
2. Virtual applications running over hypervisors[7] on industry standard servers;
3. Commercial Off-The-Shelf (COTS)[7] blades integrated in network elements;
4. Proprietary hardware appliances.
Analyzing this context, the telecommunications providers tried to find a technique that could greatly
simplify their services and operations and that could reduce the total cost.
The solution is Network Function Virtualization.
Basic Idea:
In this environment, the available network functions could be seen as virtual appliances.
So, they could be virtualized using hypervisors and they could be easily provided and inte-
grated regardless of the vendor of the appliance or the hypervisors on which they run.
Observation:
Many, but NOT all network elements can be replaced by a software running on a Virtual Machine.
For example: switches, routers, NATs, firewalls, IDS, etc. are network elements which data
rates are not too high, so they are all good candidates that could be replaced by a virtual resource.
Virtualizing Network Functions could potentially offer many benefits including:
• to create fully software implementation for functionalities:
– Time reduction for development and deployment cycles;
– Opening up the R&D Market[7];
5
7. • to use standard COTS hardware[7] (such as high volume servers and storage):
– Reduction of CAPEX[7];
– Reduction of OPEX[7];
• to improve the available types of devices:
– Reduction of Power Consumption;
• to concentrate network functions in Data Centers or Points Of Presence (POPs)[7]:
– Gain further Economies of Scale;
– Enabling rapid Scale-Up[7] and Scale-Down[7];
Physical layer functions (e.g: Software Defined Radio) are NOT ideal candidates that could
be replaced by virtualization[7].
High data-rate (core) network elements also are NOT ideal candidates for virtualization and
they will probably remain in dedicated hardware.
So NFV implements a lower cost agile network infrastructure that can potentially bring
several benefits to network carriers, dramatically changing the landscape of the telecommunica-
tions industry.
To leverage these benefits, there are a number of technical challenges which need to be faced:
• Achieving high performance virtualized network appliances which are portable between
different hardwares and hypervisors[7];
• Achieving co-existence with specific hardware-based network platforms while enabling an
efficient migration path from proprietary physical appliances to open standard fully virtual-
ized network platforms which reuse the existing network operator’s Operation and Business
Support Systems (OSS[7], BSS[7]) and Element and Network Management Systems
(EMS[7], NMS[7]);
• Managing and orchestrating many virtual network appliances while ensuring security from
attacks and misconfiguration;
• NFV will scale only if all of the functions can be automated;
• Ensuring the appropriate level of resilience to hardware and software failures;
• Integrating multiple virtual appliances from different vendors.
Network operators need to create an heterogeneous environment formed by hardwares, hypervi-
sors and virtual appliances from differenr vendors without incurring in expensive integration
costs and avoiding lock-in.
6
8. 2.1 Design and Architectural Framework for NFV
Virtualization provides us the opportunity for a flexible software design: NFV allows to inte-
grate the existing networking services (supported by different network functions based on a static
connection), into a more dynamical scheme which would facilitate the creation and manage-
ment of network applications.
The NFV introduces three major differences from the current context:
1. Separation between software and hardware:
This enables the software to evolve independently from the hardware, and vice versa.
2. Flexible deployment of network functions:
NFV can automatically deploy softwares that act as network functions on a set of hardware
resources which may run different functions at different times in different data centers.
3. Dynamic service provisioning:
Network operators can scale the NFV performance dynamically according to specific requests
with a very accurate control based on the current conditions of the network.
The the high-level architectural framework of NFV is:
Its four major functional blocks are:
• Orchestrator (VNFO): The Orchestrator is the responsible for the management and
coordination of software resources and the virtualized hardware infrastructure to realize
networking services.
7
9. It performs orchestration at resource level and service level:
– Resource Level: the Orchestrator coordinates, authorizes, releases and engages
NFV Infrastructures (NFVI) resources among different Points Of Presence (POPs)
[7] or within one PoP.
The interaction with the NFVI resources is made using the north bound APIs of
Virtualized Infrastructure Managers (VIMs) instead of engaging with the NFVI
resources directly;
– Service Level: the Orchestrator creates end-to-end service between different Vir-
tualized Network Functions (VNFs).
It creates this service by coordinating with the respective VNF Managers (VNFMs);
so it does NOT need to talk to VNFs directly.
The Topology Management of the network services instances (also called VNF For-
warding Graphs) is another job of the VNFO at this level.
• VNF Manager (VNFM): The VNF Manager is in charge of the instantiation, termina-
tion, scaling and update events during the lifecycle of a VNF instance which are installed
on the Virtual Machines (VMs) that the Virtualized Infrastructure Manager (VIM)
creates and manages;
Observation:
There may be multiple VNFMs managing separate VNFs or there may be one VNFM man-
aging multiple VNFs;
• Virtualization Layer: The Virtualization Layer abstracts the physical resources and
links the VNFs to the virtualized infrastructure.
It ensures that the VNF lifecycle is independent from the underlying hardware platforms
by offering standardized interfaces.
This type of functionality is typically provided in the forms of VMs and their hypervisors[7].
• Virtualized Infrastructure Manager (VIM): The Virtualized Infrastructure Man-
ager is used to virtualize and manage the configurable resources (computing, network,
storage) from physical ones in an NFVI domain and control their interaction with VNFs.
It allocates Virtual Machines onto hypervisors and manages their network connectivity.
It also keeps inventory of VMs associated with physical resources for capacity planning and
optimization, it does performance and fault management and it keeps north bound
APIs exposing physical and virtual resources to other management systems;
Observation:
There may be multiple VIMs in an NFV architecture, each managing its respective NFV
Infrastructure;
As we can see, the two major enablers of NFV are industry-standard servers and technologies
developed for cloud computing. In standard servers is easy to find interchangeable components with
more competitive price with respect to network appliances based on dedicated Application Specific
Integrated Circuits (ASICs). Using these general purpose servers can also reduce the number of
different hardware architectures in operators’ networks and extend the lifecycle of hardware when
technologies evolve (e.g., running different software versions on the same platform).
8
10. 3 Service Function Chaining (SFC)
The delivery of end-to-end services in traditional networks often requires various service functions.
These could include traditional ones, such as routers, switches, firewalls and IP Network
Address Translators (NATs), as well as application-specific functions.
The definition and instantiation of an ordered set of service functions and subsequent control of
traffic through them is called Service Function Chaining (SFC)[7].
The NFV Orchestrator does the topology management of the network by means of the so called
VNF Forwarding Graphs (VNF-FG): the VNF Forwarding Graph allows virtual appli-
ances to be chained together in a flexible manner:
The flow originating from endpoint A passes through a network monitoring VNF, a load balancing
VNF, and eventually a firewall VNF before arriving at destination point B.
So, in the NFV context, an end-to-end service is built from a set of cooperating virtualized ap-
plications interconnected by network functions in a VNF Forwarding Graph and could be seen as a
Service Function Chaining.
Now, supposing that there is the following SFC:
in which traffic A is classified as SFC1 by a traffic classifier and that SFC1 consists in:
Firewall → Intrusion Detection System → Load Balancer → Deep Packet Inspection
In this case there are four possible different paths to deliver these network services.
9
11. The path is called the Service Function Path (SFP)[7] and the Service Function Forwarder
(SFF)[7] is the component that is responsible for sends packets to the next Service Function
(SF)[7] from the previous one.
Since many Service Function Paths exist for the Service Function Chain, the selection must be
made considering which SFP provides well-balanced computing resources (CPU and memory).
To determine the Optimal Path is an extremely difficult task: there are multiple different VNFs
and we must consider as many constraints as they are the resources that we want to balance.
This optimization is known as an NP-Hard[7]
Optimization Problem[7]
.
3.1 Service Function Chains as Graphs
Service Function Chaining enables the creation of composite network services that consist of
an ordered set of Service Functions (SFs[7]) that must be applied to packets, frames and flows
selected as a result of a classification.
Each SF is referenced using an identifier that is unique within an SF-enabled domain.
SFC describes a method for deploying SFs in a way that enables dynamic ordering and topo-
logical independence of those SFs as well as the exchange of metadata between entities.
At a high level, an SFC is an abstracted view of a service that specifies the set of required SFs as
well as the order in which they must be executed.
An SFC can be represented as a Directed Graph in which, each node n represents the existence
of at least one SF and each edge e =< n1, n2 > represents the link that goes from the node n1
to the node n2.
A graph node (SF) n can be part of zero, one, or many SFCs and can appear one time or multiple
times in a given SFC. An SFCs can start from the origin point of the service function graph,
or from any subsequent node in the graph and it can have more than one terminus.
SFs may therefore become branching nodes in the graph, with those SFs selecting edges that
move traffic to one or more branches.
The top and the middle graph represent the case of branching nodes: after SF2 an event could
occur and a new graph could be selected (i.e., SF3 instead of SF6).
The bottom graph highlights the concept of a cycle: a given SF can be visited more than once
within a given Service Chain (i.e., SF2, SF4 and SF7).
10
12. 4 Service Function Chaining in Network Function Virtualization
Since many SFPs[7] exist for each SFC, the selection of the optimal SFP must be determined
considering the CPU and Memory resoruces.
An optimization problem[7] with multiple constraints is known as an NP-Hard[7] problem.
The proposed approach to face the problem is an algorithm to determine using Genetic Al-
gorithms, an SFP where the physical machines in the network environment are well balanced.
4.1 Genetic Algorithm
Genetic Algorithms are the heuristic search and optimization techniques developed by John
Holland in 1975 as a calculation model based on the simulation of the process of natural evolution.
Example:
Giraffes have long necks. This long necks may be the effect of an initial mutation. However, as
it was an improvement for the species, this was propagated over the generations by evolution.
• Giraffes with longer necks could feed
on leaves of higher branches.
⇒ Better chance of survival.
• Favorable characteristic propagated
through new generations.
⇒ Select the Best, discard the rest.
• Evolved species has long necks.
Thus, Genetic Algorithms implement the optimization strategies by simulating selection
and evolution of species through mutation to produce several solutions to a given problem.
The most common type of genetic algorithm operates with the generation of an initial population,
an evaluation of the population, a selection of two individuals based on their fitness, a crossover
and a mutation. This continues until a proper solution has been determined or a predefined number
of generations have passed.
• Generation: the initial population is randomly created with a group of individuals.
• Evaluation: the individuals in the population are evaluated by a fitness function.
• Selection: two individuals are then selected based on their fitness. An individual with a
high fitness value will have a high probability of being selected.
• Crossover & Mutation: two selected individuals reproduce to create one or more offspring
through a mutation process.
11
13. The algorithm can be summarized as:
Algorithm 1 Simple Genetic Algorithm
1: function sga()
2: Initialize the Population;
3: Calculate the Fitness Function;
4: while Fitness Value = Termination Criteria do
5: Selection;
6: Crossover;
7: Mutation;
8: Calculate the Fitness Function;
9: end while
and can be represented by the following diagram:
12
14. 4.2 Proposed Approach
The proposed approach to apply SFC to NFV follows the steps described before:
4.2.1 Generation of Initial Population
The configuration of initial population is the same of enumerating the configuration of a Service
Function Path (SFP)[7] that satisfies the required Service Function Chain (SFC).
So, appropriate number of solutions (chromosomes) in a population is in the range from 100 to
300, since each chromosome can be seen as a point in the search space of candidate solutions.
A chromosome can be represented as:
There are two initialization methods for initializing the population:
• Random: the chromosomes (i.e. solutions) of the search space are randomly chosen;
• Detective: the chromosomes of the search space are chosen after a detection phase of
the feasible solutions for the problem;
According to the nature of the problem, the configuration of the initial population is made by the
detective approach.
The size of the population must be carefully chosen: obviously, larger would be the population,
easier will be to find a good quality solution in it. But a larger population also implies an
increasing complexity. So, the size of population must be determined considering storage size
and calculating complexity of the problem.
Further, it is necessary to consider the constraint of representing a solution in binary to encoding
the actual network environment.
4.2.2 Computation of Fitness Function
After the initial population is created, the fitness of the individuals must be evaluated.
This is an evaluation process to validate whether a fitness value is appropriate for the problem.
The fitness function F is defined using the total of remaining CPU and remaining Memory
amounts after using the i − th SF[7] and SFF[7]. The sum of these amounts is divided by a variable
L, used to consider the Load Balance. The value of L is given by the number of occurrences of
the same SFFs in a given SFP[7].
Example:
A Service Function Path is described by:
SFF1 −→ FW −→ SFF1 −→ IDS −→ SFF1 −→ DPI
all types of traffic are transmitted through SFF1.
In this case, the load is not well distributed and the physical machine hosting SFF1 will experience
an excessive load.
13
15. The Fitness Function can be expressed as:
Fi =
CPUunused + MEMunused
L
where:
CPUunused =
k
n=1
CPUunused SFFn + CPUrequested SFn
MEMunused =
k
n=1
MEMunused SFFn + MEMrequested SFn
and:
• k: number of used SFs[7];
• SFPi: ith SFP[7];
• CPUunused: Total Remaining Cpu amount of the ithSFPi ;
• CPUunused SFFn : Remaining Cpu amount of the nthSFF in the ithSFPi ;
• CPUrequested SFn : Requested Cpu amount of the nthSF in the ithSFPi ;
• MEMunused: Total Remaining Memory amount of the ithSFPi ;
• MEMunused SFFn : Remaining Memory amount of the nthSFF in the ithSFPi ;
• MEMrequested SFn : Requested Memory amount of the nthSF in the ithSFPi ;
When the result of CPUunused +MEMunused is high, it has a greater probability of being selected
because it has high fitness; however, it is divided by the variable L to adjust the fitness to resolve
the Load Balancing problem described in the previous Example.
When the result of the Fitness Function F is large, the solution is considered as an appropriate
solution for the problem.
4.2.3 Selection
The selection is the process that determines which solutions must be preserved in the population
and allowed to reproduce to create the offspring for the next generation and which ones deserve to
discard.
The primary objective of the selection operator is to emphasize the good solutions and eliminate
the bad ones in a population while keeping the population size constant.
Select the Best, discard the rest
Selection Pressure has to be balanced: too strong selection means that individuals with high
fitness value will take over the population, reducing the diversity needed for further evolution;
too weak selection will result in too slow evolution.
14
16. Many selection schemes have been proposed in the Genetic Algorithm literature. The most
common ones are:
• Rank-based Selection: the individuals in the population are ranked in increasing order of
fitness (from 1 to N), and the expected value of each individual depends on its rank, rather
than on its absolute fitness.
Rank-based method chooses the two individuals with the highest rank.
• Tournament Selection: Rank Selection requires sorting the entire population by rank.
It’s a expensive time-consuming procedure.
Tournament Selection is similar to rank-based one in terms of selection pressure, but it is
computationally more efficient: It runs several tournaments to select the winners.
The individuals for the tournament are chosen at random from the population. A random
number r is then chosen (between 0 and 1). Now, having k as a parameter (e.g. k = 0, 75):
– If r < k: the fitter of the two individuals is selected to be a parent;
– Otherwise: the less fit individual is selected.
The winner of each tournament or the individual with the highest fitness is selected for
crossover. The two individuals are then returned to the original population and can be
selected again.
The weak individuals have a smaller chance to be selected If tournament size is large.
• Roulette Selection: the most common method is the roulette wheel.
Roulette Selection assigns to each individual a slice of a roulette wheel. The size of the
slice is proportional to the individual’s fitness.
The wheel is turned N times, where N is the number of individuals in the population.
On each spin, the selected individual is inserted in the set of parents for the next generation.
The better chromosomes have a more chance to be selected.
Our approach applies the Roulette Selection method: since the size of sections of the Roulette
is given by the fitness value of the individuals, the chromosome with largest section has the high-
est probability to be pointed by the Roulette at the end of the run.
However, it is not possible to determine where the Roulette will stop.
So, it is necessary to calculate the fitness ratio Pi for the section of the ith selected individual:
Pi =
Fi
n
i=1
Fi
where n is the number of chromosomes in the population.
15
17. 4.2.4 Crossover
The crossover operator is used to create new solutions from the existing ones that are available in
the search space after applying selection operator. This operator exchanges the gene information
between the solutions. Each individual (chromosome) consists of genes (e.g. bits). Each gene
is an instance of a particular allele (e.g. 0 or 1).
The selection operator chooses those chromosomes in the population that will be allowed to
reproduce, and on average the fitter chromosomes produce more offspring than the less fit
ones. Crossover exchanges subparts of two chromosomes, imitating biological recombination be-
tween two single-chromosome organisms (haploid). It randomly chooses a breaking point and
exchanges the sub-sequences of genes before and after this point, between two chromosomes to
create two offspring. This is the One-Point Crossover.
Example: One-Point Crossover
Supposing to have two strings: 10000100 and 11111111.
They could be crossed over after the 3rd allele to produce new offsprings: 10011111 and 11100100.
One-Point Crossover is the simplest and most used method for Genetic Algorithms which op-
erate on binary strings. For other problems or different codings, other crossover methods can be
useful or even necessary. There are:
• N-Point Crossover: Instead of only one, N breaking points are randomly chosen. Every
second section is swapped. In this class, 2-Point Crossover is particularly important.
• Segmented Crossover: Similar to N-Point Crossover with the difference that the
number of breaking points can be variable.
• Uniform Crossover: For each position, it is randomly decided if the positions are swapped.
• Shuffle Crossover: First a randomly chosen permutation is applied to the two parents,
then N-Point Crossover is applied to the shuffled parents; finally, the shuffled children are
transformed back with the inverse permutation.
A probability of crossover Pc (also called crossover rate) is also introduced in order to give
freedom to an individual solution string to determine whether the solution would go for crossover
or not. If no crossover takes place, the two individual strings form two offspring that are exact
copies of their respective parents.
After the Roulette Selection is performed to select the parental genes, our approach applies a
2-Point Crossover method and two cross points are selected randomly to create children genes
for an improved solution.
16
18. 4.2.5 Mutation
Mutation is the last operator of genetic algorithms: it’s a random deformation of the genetic
information of a chromosome by means of environmental influences. In reality, the probability that
a certain gene is mutated is almost equal for all genes.
So, the mutation technique for a given binary string s, with PM that is the probability that a
single gene is modified:
Algorithm 2 Mutation
1: function mutation()
2: for i ← 0 to n do
3: if Random[0, 1] < PM then
4: Invert s[i];
5: end if
6: end for
Observation:
PM should be rather low in order to avoid that the GA behaves chaotically like a random search.
Mutation is the occasional introduction of new features in solution strings of the population pool
to maintain diversity in the search space.
Together with Crossover, they have the main responsibility to search for the optimal solution.
Mutation is what prevents the loss of diversity at a given bit position: without mutation, every
string in the population might come to have a 1 at the 1st bit position and there would be no way
to obtain a new string beginning with a 0.
Mutation assures that this fixaxion will never happen: it randomly changes some of the bits in a
chromosome from 1 to 0 (or vice versa) , with a mutation probability PM (also called Mutation
Rate). After Mutation, the resulting chromosomes are placed in the new population.
Example:
The string s = 00000100 might be mutated in its 2nd position generating: s = 01000100.
Observation:
Mutation can occur at each bit position in a string with probability rate PM (usually, PM ≤ 0.01).
There are different Mutation techniques that could be chosen according of nature of the problem:
• Inversion of single bits: one randomly chosen bit is negated with probability PM ;
• Bitwise Inversion: the whole string is inverted bit by bit with probability PM .
• Random Selection: the string is replaced by a randomly chosen one with probability PM .
Our approach mutates the instances of SFF or SF randomly executing Mutation with a con-
stant probability rate. If the fitness of the solution resulting from the Mutation is in a optimal
range, the algorithm exits.
17
19. 5 Results Analysis
The environment that was developed for evaluating the simulation of our GA approach in NFV has
a maximum number of Service Functions limited to ten types of SFs[7] and a maximum
number of ten instances that could be created by each SF.
5.1 Experimental Environment Setup
An example of experimental environment consisting of five Service Function Forwarders
and five Service Functions (Firewall , Deep Packet Inspector, Intrusion Prevention
System, Intrusion Detection System, and Load Balancer).
The number of instances in each SFFi is five (FWi, DPIi, IPSi, IDSi, LBi).
The figure and the table above illustrate the environment setup and the requested CPU Per-
centage and Memory Usage for each Service Function instance.
The feasible CPU and memory availability of the initial Service Function Forwarder is 100%.
18
20. 5.2 Performance Analysis
5.2.1 Fitness Values
The figure indicates the fitness values of chromosomes in the population.
SFC1 is formed by three Service Functions, while SFC2 is formed by five SFs and SFC3 is
formed by seven SFs.
Conclusion:
More are the Service Functions that form the single Service Function Chain SFCi, higher
is the probability that a chromosome in the search space has an higher finess value.
5.2.2 Fitness Change by Number of Repetitions
Service Function Chain SFC1
The figure displays the fitness values after Selection (a), Crossover (b), and Mutation (c)
computation on SFC1, which consisted of three SFs.
Conclusion: The fitness value increases as the number of repetitions increases.
19
21. Service Function Chain SFC2
The figure displays the fitness values after Selection (a), Crossover (b), and Mutation (c)
computation on SFC2, which consisted of five SFs.
Conclusion: The fitness value increases as the number of repetitions reached 200.
However, the middle results are unstable: this is because the lengths of chromosomes are in-
creased to five SFs in SFC2.
The long length of the individual solutions indicates that there are a large number of crossover
and mutation points that could be selected.
Service Function Chain SFC3
The figure displays the fitness values after Selection (a), Crossover (b), and Mutation (c)
computation on SFC3, which consisted of seven SFs.
Conclusion: The fitness value increases as the number of repetitions reached 250.
The trend seen with SFC2 is confirmed: since the lengths of chromosomes in SFC3 are increased
to seven SFs, the length of the individual solutions indicates that there are a larger number of
crossover and mutation points that could be selected.
20
22. 6 Conclusion
The proposed approach gives a method to configure a Service Function Chain using a genetic
algorithm in a network environment where Network Functions Virtualization was applied.
Genetic algorithm is Not appropriate to determine a perfect optimized solution.
However, it is an algorithm that can calculate similar values to the optimized solution with
multiple constraint conditions.
The Virtualized Network Functions are chained to provide a Network Service.
Since there are multiple VNFs, the selection of the VNF influenced the performances of each phys-
ical machine. The proposed approach consideres each Cpu and Memory usage.
The results confirm that the proposed approach provides a path that is well-balancing the com-
puting resources.
21
23. 7 Appendix: Glossary
Virtualization
Virtualization refers to the creation of a virtual version of a resource such as a server, desktop,
operating system, file, storage or network.
It is a means of separating hardware from a single operating system.
The main goal of virtualization is to manage workloads by radically transforming traditional com-
puting to make it more scalable.
Hypervisor
Virtualization allows multiple OS instances to run concurrently on a single computer (host).
Each guest Operating System is managed by a Virtual Machine Monitor (VMM), also known
as hypervisor. Because the virtualization system sits between the guest and the hardware, it can
control the guests’ use of CPU, memory, and storage.
COTS Hardware
Commercial Off-The-Shelf (COTS) is a term used to describe the purchase of packaged solu-
tions which are then adapted to satisfy the needs of the purchasing organization, rather than the
commissioning of custom made solutions.
The use of COTS has been chosen by many government and business programs, as such products
may offer significant savings in procurement, development, and maintenance.
CAPEX
Capital Expenditure (CapEx), are funds used by a company to acquire or upgrade physical
assets such as property, industrial buildings or equipment.
Such expenditure is of a non-recurring nature and results in an acquisition of permanent assets.
OPEX
OPEX is the counterpart of CAPEX: an Operational Expenditure is the money that a com-
pany spends on an ongoing day-to-day basis in order to run a business or system.
There is a direct correlation between OPEX and the value of the enterprise: when the OPEX
22
24. decreases, while maintaining the same level of production and quality, the overall value of the
enterprise increases.
R&D Market
Research and Development (R&D or R+D), also known as Research and Technological
Development (RTD), is a general term for activities in connection with corporate or governmental
innovation. Research and Development is a component of innovation and it is situated at the
front end of the innovation life cycle.
Points Of Presence
A Point of Presence (PoP) is an artificial demarcation point or interface point between commu-
nicating entities. An Internet Point of Presence typically houses servers, routers, network
switches, multiplexers, and other network interface equipment. It is typically located in a data
center. Internet Service Providers (ISPs) typically have multiple PoPs.
Operations Support System
Operations Support System (OSS) is a set of programs that help a communications service
provider to monitor, control, analyze and manage a computer network.
Business Support System
Business Support System (BSS) are the components that a communications service provider
uses to run its business operations towards customers. The role of BSS systems is to cover the
areas of Product, Customer, Revenue, and Order Management.
Together with Operations Support System (OSS), they are used to support various end-to-end
telecommunication services.
Element Management Systems
An Element Management Systems (EMS) consists of systems and applications for manag-
ing network elements (NE) on the Network Element-management Layer (NEL) of the
Telecommunications Management Network (TMN) model.
The EMS’s key functionality is divided into five key areas: fault, configuration, accounting,
performance and security (FCAPS).
Portions of each of the FCAPS functionalities fit into the TMN model: northbound, the EMS
interfaces to Network Management Systems and/or Service Management Systems (de-
pending on the deployment scenario). Southbound, the EMS talks to the devices.
23
25. An EMS manages one or more specific types of telecommunications network element: typically,
the EMS manages the functions and capabilities within each NE but does not manage the traffic
between different NEs in the network.
Network Management Systems
A Network Management Systems (NMS) is an application (or set of applications) that lets
network administrators manage network independent components inside a bigger network
management framework.
NMS may be used to monitor both software and hardware components in a network: it usually
records data from a remote point of the network to carry out reporting to a system administrator.
The key benefit to NMS is that it allows users to monitor or manage their business operations
using a central computer.
Scale-Up
Scalability is a desirable property of a system, a network, or a process, which indicates its ability
to handle growing amounts of work in a graceful manner. Scale-Up (Scale Vertically) means to
run the application on a stronger computer.
+ Pros: straightforward solution that does Not demand a change in the architecture. It just
requires a stronger computer.
- Cons: Costly and Not an infinite solution. Big computers are expensive and there is a physical
limitation to the computing power and memory you can have in a single computer.
Scale-Down
Scale-Down is the counterpart of Scale-Up: Scale-Down (Scale Horizontally) means to run
the application on many regular computers.
+ Pros: It offers infinite scalability: to support more users you just have to add more low cost
computers to your server farms.
- Cons: It is Not a straightforward solution: the developer needs to design, architect and develop
the application to be ready to scale-out.
24
26. Service Function Chain
A Service Function Chain (SFC) defines an ordered (or partially ordered) set of abstract
service functions (SFs) and ordering constraints that must be applied to packets, frames and
flows. An example of an abstract service function SF is a firewall.
Service Function
A Service Function (SF) is a function that is responsible for specific work on received packets.
A SF can act at various layers of a protocol stack (e.g. network layer). As a logical component, a
SF can be realized as a virtual element or be embedded in a physical network element.
Multiple occurrences of the same service function can exist in the same domain.
Service Function Forwarder
A Service Function Forwarder (SFF) is the responsible for forwarding traffic to one or
more connected service functions SFs according to information carried in the Service Function
Chain SFC. An SFF is responsible for delivering and transporting traffic to another SFF (in the
same or different type of overlay) and for terminating the Service Function Path (SFP).
Service Function Path
The Service Function Path (SFP): is a constrained specification of where packets assigned to
a certain SFP must go. It may be so constrained to identify the exact locations, but it can also be
less specific. The SFP provides a level of indirection between the fully abstract notion of service
chain (as a sequence of abstract SFs to be delivered), and the fully specified notion of exactly which
SFF/SFs will be visited by the packet it traverses the network.
By allowing the control components to specify this level of indirection, the operator may control
the degree of SFF/SF selection authority delegated to the network.
25
27. NP-Hardness
NP-hardness (Non-deterministic Polynomial-time Hard) is a class of problems that are
at least as hard as the hardest problems in NP.
More precisely, a problem H is NP-hard when every problem L ∈ NP can be reduced in poly-
nomial time to H. So, assuming a solution for H takes a unit of time, we can use the solution
found for H to solve L in polynomial time.
Consequence ⇒ If P = NP, Then NP-hard problems cannot be solved in polynomial time.
Given a Decision Problem (problem with a Yes or No answer), the Complexity Classes are:
• P: it is a complexity class that represents the set of All decision problems that can be solved
in polynomial time. That is, given an instance of the problem, the answer Yes or No can
be decided in polynomial time.
Example:
Given a connected graph G, can its vertices be coloured using two colours so that no edge is
monochromatic?
Algoritm:
Start with an arbitrary vertex, color it red and all of its neighbors blue and continue.
Stop when the vertices are finished or an edge have both of its endpoints be the same color.
• NP: it is a complexity class that represents the set of All decision problems for which the
instances where the answer is Yes have proofs that can be verified in polynomial time.
This means that if someone gives us an instance of the problem and a certificate (also called
witness) to a Yes answer, we can check that it is correct in polynomial time.
Example:
Integer Factorization ∈ NP: given two integers n and m, is there an integer f with:
1 < f < m, such that f divides n (f is a small factor of n)?
This is a decision problem since the answers are Yes or No.
Given an instance of the problem with n, m and f integers, with 1 < f < m, and knowing
that f is a factor of n (the certificate), we can check the answer in polynomial time by
performing the division n/f.
• NP-Complete: it is a complexity class which represents the set of All problems X ∈ NP
for which it is possible to reduce any other NP problem Y to X in polynomial time.
Since Y is reducible to X, If there is a polynomial time algorithm f to transform instances
y of Y to instances x = f(y) of X in polynomial time, Then the answer to y is Yes
If and Only If also the answer to f(y) is Yes.
Example:
3-Sat ∈ NP-Complete: given a boolean expression formed by a conjunction (And) of
3-clause disjunctions (Or) of the form:
B = x1 ∨ x2 ∨ x3 ∧ x4 ∨ x5 ∨ x6
This boolean expression in 3-SAT form 2 clauses, each clause contains of 3 literals.
The question is the same of Satisfiability: are there values x1, . . . , x6 that make B True?
The Cook’s theorem shows that every NP problem can be reduced to 3-SAT.
26
28. NP-Complete problems are important because if a deterministic polynomial time algorithm
would be found to solve one of them, every NP problem would be solvable in polynomial
time (one problem to rule them all).
• NP-Hard: a problem X is NP-hard, if there is an NP-Complete problem Y , such that
Y is reducible to X in polynomial time.
But since any NP-Complete problem can be reduced to any other NP-complete problem
in polynomial time, then All NP-complete problems can be reduced to any NP-hard
problem in polynomial time.
So, If there is a solution to one NP-hard problem in polynomial time, Then there is a
solution to All NP problems in polynomial time.
Example:
The Halting Problem ∈ NP-Hard: given a program P and an input I, will P halt?
This is a decision problem but it is Not in NP.
Thus, any NP-Complete problem can be reduced to Halting Problem (NP-hard).
Optimization Problem
An Optimization Problem is the problem of finding the best solution (with regard of some
criterion) from the set of all feasible solutions (also called, search space).
An optimization problem can be defined as a finite set of variables, where the correct values for
the variables specify the optimal solution.
27
29. References
[1] B.Han, V.Gopalakrishnan, L.Ji and S.Lee.
Network Functions Virtualization: Challenges and Opportunities for Innovations..
[2] M. Chiosi.
Network Functions Virtualization: An Introduction, Benefits, Enablers, Challenges and Call
for Action.
[3] ETSI GS NFV 001.
Network Functions Virtualization (NFV): Use Cases.
[4] ETSI GS NFV 002.
Network Functions Virtualization (NFV): Architectural Framework.
[5] ETSI GS NFV 003.
Network Functions Virtualization (NFV): Terminology for Main Concepts in NFV.
[6] ETSI GS NFV 004.
Network Functions Virtualization (NFV): Virtualization Requirements.
[7] Jim Metzler, Ashton Metzler.
The 2015 Guide to SDN and NFV.
[8] Y.J. Stein.
SDN, NFV and all that.
[9] M. Ghaznavi, N. Shahriar, R. Ahmed, R. Boutaba
Service Function Chaining Simplified.
[10] J. Halpern, C. Pignataro.
Service Function Chaining (SFC) Architecture.
[11] P. Quinn, T. Nadeau.
Service Function Chaining problem statement.
[12] D.E.Goldberg.
Genetic Algorithm in Search, Optimization and Machine Learning.
[13] Ulrich Bodenhofer.
Genetic Algorithms: Theory and Applications.
[14] D.A. Coley.
An Introduction to Genetic Algorithms.
[15] M. Mitchell.
An Introduction to Genetic Algorithms.
[16] Wikipedia Site.
https://en.wikipedia.org/wiki/Main_Page
28