SlideShare a Scribd company logo
1 of 18
Network Application Programming Interfaces (APIs) for
Future Internet: Survey
Mahalakshmi Tarikere Devendrappa, Ashish Gowra Ravindra, Shahzeeb Palkkandy Kottothe.
Ilmenau University of Technology,
mahalakshmi.tarikere-devendprappa@tu-ilmenau.de,
ashish.gowra-ravindra@tu-ilmenau.de,
shahzeeb.palkkandy-kottothe@tu-ilmenau.de

Abstract: The existing application programming interface (API) between applications and the
network architecture is one reason that it is hard to deploy novel protocols into the network
architecture. Coupling between applications and underlying protocols makes it almost impossible
to change one without changing the other. Coupling can be loosened or resolved by not involving
applications in protocols implementation details but, only in functionality necessary to establish
a communication. This way underlying network can deploy novel or updated implementations
of a functionality without needing to change the applications. Using intermediate abstraction
layers is an approach to break the dependency between applications and network protocols. One
of the major goals in future internet architectures is to be flexible enough to adapt to
application’s requirements. In this paper, several API types are presented for applications and
network stacks and classified them according to their properties
1 Introduction:
An increased public awareness of several critical shortcomings in terms of performance,
reliability, scalability, security and many other categories including societal, economical and
business aspects in current Internet technologies, has led to extensive research efforts. The term
Future Internet is generally used to refer these research activities on new architectures for the
Internet. Current APIs are one of the prime obstacles for innovation in the future Internet.
Existing APIs were made with the assumption that the Internet supports a limited number of
protocols and relies on applications to specify the exact protocol to use. The deployment of new
transport protocols such as SCTP, DCCP and new addressing schemes are hindered as an
application is obliged to specify the address type (IPv4 or IPv6). An application needs to be
modified if it wants to use TCP or UDP. Peer addressing and address-resolution are part of an
application, which makes an application address type dependent. Thus an application has to
select a particular addressing type such as IPV4 or IPV6. Different addressing types require
different socket so that there is a difference between IPv4 TCP socket structure and IPv6 TCP
socket structure and same is true for UDP.Many APIs are being developed to adapt to
heterogeneity of the networks. Name based socket APIs, Requirement based socket APIs, GENI,
Information-centric networks, Recursive Architecture, Protocol-Independent Internet Transport
API are few of them which are described further.
Our Future Internet provides three different interfaces to applications

Figure1:Overvie

w of our GLab Interface ISetup [5]

The first interface ISetup is used to start the interaction with a network stack. On the one hand, it
provides methods for announcing services, which should be available for others (PUBLISH). On
the other hand, others can use the interface to connect to these announced services
(SUBSCRIBE). In both cases, the methods are used to get references to instances supporting one
of the following interfaces. The second interface IRegistration is used to change requirements for
the announced service and to cancel it. In addition, it provides information about incoming
subscriptions. The third interface ISubscription is used to communicate with the service and the
peer using it, respectively. It allows sending and receiving of data either in stream or datagram
mode. In the following, the focus will be on the ISetup interface, since it is the most important
one for the interaction between network stacks and applications.
A. Methods
As mentioned before, the ISetup interface provides methods, which are used by an application to
start interaction with a network stack. An overview of them is given in Figure 1. This interface
provides the following two methods:
• IRegistration PUBLISH(Name, Requirement description): announces an application
service to a network stack, by specifying a name and requirements of the service for the
network. The network stack is made aware of the service and should provide other
members of the network access to this service. The name is basically treated as a label.
The announcement is represented by an instance supporting IRegistration (or a handle in
a procedural programming language). The requirements have to be satisfied by the
network for each peer, willing to use the service.
• ISubscription SUBSCRIBE(Name, Requirement description):establishes a communication
association to a service, which was published before. The name parameter defines the
service to talk with The name must match with the name handed over to the PUBLISH
method before. The requirements defines the characteristics of the communication
relationship the network has to provide. In contrast to the requirements in the PUBLISH
method, they are only valid for a single connection.
B. Call Sequence
A sequence of method calls for a typical client server scenario starts with the announcement of
the service. The server application calls PUBLISH in order to make its service available under a
name chosen by itself. This step is somehow comparable to BIND calls in today’s IP networks,
but binds a service to a name not an address and port. An association is started by a client
application with SUBSCRIBE. The client has to use the same name as the server application.
This step is comparable to today’s CONNECT calls with a different name semantic and
additional requirements the network has to fulfill. As a result, SUBSCRIBE will return a
reference to a ISubscription object. At the server side, the network will inform the server about
the new communication association. The server will get an ISubscription reference for the
communication association via its IRegistration interface as well. Now, both sides have
references to the communication association and can start to transfer data. On the client side, the
reference can be used to send its request to the server, which uses its reference to receive it. The
server will answer by sending data by using its ISubscription reference and the client will use its
reference to receive it. Finally, either the client or the server can cancel its ISubscription. The
cancellation will be propagated to its communication partner and invalidate its communication
association, too.
C. Naming
The most important goal of the API is to hide network and network stack specific issues from the
applications. In particular, that refers to the mapping from names to addresses and the selection
of an address space (like using IPv4 or IPv6 addresses). Both parts should not be anticipated by
applications. Consequently, applications must specify names in their own domain and based on
their own name space. We propose a globally unique naming scheme based on Uniform
Resource Identifiers (URIs). In order to allow different name spaces, we will use the scheme
given in URIs to distinguish between them (like mailto:// or file://).
D. Requirements
An application states its requirements explicitly in order to specify the characteristics of a
communication association. A requirement consists of an Effect linked by an Operator to an
Attribute. Effects describe the visible outcome of an operation of a building block or the
network. Effect is a neutral term: Encryption is an effect as well as delay. Through further
specification it becomes clear whether something is being provided or wished to be avoided. For
example, an application can request a Packet Loss of 0, whereas a certain network connection
could provide a Packet Loss of 5% average. Attributes quantify or qualify effects and can be
divided into two distinct parts: Inherent and qualitative. For inherent attributes, it must be clear
to decide whether a certain property can fulfill a requirement or not (e.g.,200ms). An inherent
attribute will normally be expressed by a number, however, functional requirements via boolean
values are also possible, e.g. VirusScan == true.

2 Types of APIs:
2.1 Recursive Architecture:
Providing quality of service for a packet-oriented communication network is a
challenging problem even if only a single technology is considered. For inter-networks such as
the Inter-net, the task gets even more problematic. Since an inter-network is a network of
networks, it connects networks using different technologies like Ethernet, WLAN or UMTS,
with transit networks in-between. In a realistic scenario, an end-to-end connection has to cross
multiple networks such as a local area network (LAN) at the sender as well as on the receiver
side with transit networks of different technologies in between. In addition to the various
technologies possibly in use on the LAN side, the segmentation of the Internet into autonomous
systems introduces additional complications when attempting to establish QoS-enabled flows for
end-to-end connections. Each autonomous system might have different policies for handling QoS
in place and might use different intra-network techniques to implement it. However, an end-toend connection can only be provided, if the QoS requirements are handled by all networks,
which forward packets of this flow. Any solution supporting the technological manifoldness of
the networks, has to meet the following requirements[6]:
•

Provide QoS for different intra-network layers and signal the end-to-end connection on
the inter-network layer.

•

Ensure the conformance between the possible QoS classes of the different intra-network
layers and between the various autonomous systems.

•

Enable schemes allowing each application to be as-signed to the intended traffic class or
alternatively provide a common interface allowing each application to signal its QoS
requirements on the network.
To face the problems on the inter-network layer, there are already solutions available, which can
be divided into differentiated services (DiffServ) and integrated services (IntServ). Since the
Internet as a large network consists of different autonomous systems, the preservation of the
conformance between the different network parts regarding the interpretation of the QoS classes
is the most challenging problem. Therefore here we define an architecture comprising recursive
layers with a single interface between these layers and between layers and applications. It is
evaluated based on two example layers, whereas the focus of the evaluation is on the QoS
aspects. Our key contribution is to present not a cross-layer but a recursive layer interface.
In summary, today’s solution for providing QoS faces problems regarding scalability and
flexibility. We propose a solution that exploits the flexibility of recursive layers with a novel
solution for the implementation of each layer. In particular, we propose employing “Forwarding
on Gates” (FoG) for the Internet layer and the “Traffic Engineering Middleware for Ethernet”
(TEME) at the intra-network layer. Figure 2 shows the logical node architecture with both layers.
Due to the recursive nature, there might be some more layers handling, e.g., overlay aspects.
Since each layer provides the same functionality to the layer above, all layers can use exactly the
same interface. It is shown as dotted line in Figure. However, the interface has to be designed in
a way that it hides the details of a layer and enables a broad range of design and implementation
varieties for layers.

Figure 2:Recursive Layers with APIs in between[6].
The recursive layer approach defines layers not based on functionality but based on scope. Each
layer has an area, for which it is responsible. For example, the lowest layer is responsible for a
link. The next higher layer is responsible for an intra-network, while the highest one is
responsible for the whole Internet. Since the layers differ only in scope, each layer provides the
same functionality such as relaying packets and performing routing. Furthermore, it has to
manage its resources including congestion and flow control. Here we follow this approach using
recursive functions to design API’s.

2.2 Inter-Network Layer FoG:
For the inter-network layer, which handles the end-to-end aspects, we propose to use FoG. Its
main idea is to represent available links and their capabilities as unidirectional functional blocks,
called gates. End-to-end connections between two higher layers are constructed by concatenating
multiple gates to a chain of functional blocks. Which blocks are combined into a chain depends
on the requirements of a connection. As shown, this system can represent QoS guarantees of the
IntServ model and prioritizations of the DiffServ model using gates. This enables a unified
handling of both models during packet for-warding. Forwarding in FoG is based on an indexbased forwarding approach as used by MPLS or Pathlet. FoG’s route definition differs from
these protocols by allowing route segments. A FoG route is constructed using two types of
segments. First, an explicit route segment contains a stack of indi-ces defining an explicit
sequence of gates. It is comparable to stacked LSP labels in MPLs. Second, a destination route
segment defines an address and the requirements of intermediate nodes of a route[6].
The flexibility to construct a route out of these two types enables a broad range of network
setups. In particular, it allows the movement of some states from the node providing a gate to the
node using the gate. The latter can specify gates required for connections directly in the route
and does not rely on states stored on the node providing the gates. This approach can be used to
reduce the number of states at ingress routers. In addition to the reduction mentioned in the
previous part, which uses aggregation, FoG enables the movement of states as an orthogonal
solution to the scalability problem.
FoG provides access to applications via the recursive interface described before. Moreover, it
uses the recursive interface in order to access lower layers. A gate representing the transmission
of packets to another physical node uses the connect function in order to setup the
communication channel through the lower layer. Their requested capabilities such as minimal
bandwidth and maximum delay are handed over to the lower layer as the connect requirements.

2.3 A Common API for Transparent Hybrid Multicast:
Group communication services exist in a large variety of flavours, and technical implementations
at different protocol layers. Multicast data distribution is most efficiently performed on the
lowest available layer, but a heterogeneous deployment status of multicast technologies
throughout the Internet requires an adaptive service binding at runtime. Today, it is difficult to
write an application that runs everywhere and at the same time makes use of the most efficient
multicast service available in the network. Facing robustness requirements, developers are
frequently forced to using a stable, upper layer protocol controlled by the application itself.
[8]Here we describe a common multicast API that is suitable for transparent communication in
underlay and overlay, and grants access to the different multicast flavours. It proposes an
abstract naming by multicast URIs and discusses mapping mechanisms between different
namespaces and distribution technologies. Additionally, it describes the application of this API
for building gateways that interconnect current multicast domains throughout the Internet.

2.4 Information-Centric Networking:
The information-centric networking (ICN) concept is a significant common approach of several
future Internet research activities. The approach leverages in-network caching, multiparty
communication through replication, and interaction models decoupling senders and receivers.
The goal is to provide a network infrastructure service that is better suited to today’s use (in
particular. content distribution and mobility) and more resilient to disruptions and failures. The
ICN approach is being explored by a number of research projects. We compare and discuss
design choices and features of proposed ICN architectures, focusing on the following main
components: named data objects, naming and security, API, routing and transport, and caching.
We also discuss the advantages of the ICN approach in general [3].
The increasing demand for highly scalable and efficient distribution of content has motivated the
development of future Internet architectures based on named data objects (NDOs), for example,
web pages, videos, documents, or other pieces of information. The approach of these
architectures is commonly called information centric networking (ICN). In contrast, current
networks are host-centric where communication is based on named hosts, for example, web
servers, PCs, laptops, mobile handsets, and other devices. The ICN architectures leverage innetwork storage for caching, multiparty communication through replication, and interaction
models that decouple senders and receivers. The common goal is to achieve efficient and reliable
distribution of content by providing a general platform for communication services that are today
only available in dedicated systems such as peer-to peer (P2P) overlays and proprietary content
distribution networks.

2.5 Requirement-Based Socket API:
A requirements based API is proposed here to decouple applications from underlying network
architectures. It also encourages to seamlessly switch between different network architectures
which will help to deploy novel network architectures without having the need to change the
applications or the currently used API. Requirements are an abstraction which can be dealt by
various diverse architecture. Address resolution is not seen as a responsibility of an application.
An application will rather use homogeneous URI addressing; further address resolution is taken
care by the underlying networks architectures, resolution of a address may differ from one
architecture to another[4].
Current applications are tightly coupled with the given protocols, though they only care about its
connectivity demands are fulfilled. A Requirements-based API will alleviate the developer from
choosing a protocol or even a protocol specification. Instead, requirements will be communicated
to the underlying network architecture. Using these requirements, explicit connection
characteristics are requested for the new communication relationship. Requirements are specified
in terms of effects/capabilities, an effect is a visible outcome of functionality such as flow
control functionality provides effect of transmission rate adaptation between two parties.

2.5.1 Architecture
Figure 3: Architecture [4].
This API proposal enables multiple architectures to work in parallel without need of adapting an
application with respect to an architecture. Nevertheless it stimulates the need of an additional
component in the current Internet, which will translate the incoming requirements (i.e.
represented as capabilities) to match with an appropriate protocol stack (e.g. TCP/IP, UDP/IP).
The abstraction of requirements in terms of capabilities enables to use any of underlying
architecture without changing the application however architecture must have comprehension of
the incoming requirements.

2.5.2 Address Resolution
A task that is not necessarily specific to an API approach is the task of how to name a particular
service and how the naming resolution is to be done. Traditionally, socket addresses would be
packed using a struct sockaddr C structure and the inet_ntoa function call. This approach is
likely to be obsolete in a Future Internet architecture, as IPv4 or IPv6 addresses will not remain
the only (de-facto) standard addressing scheme. Keeping in mind that the network stack should
now also take tasks upon itself which were not initially included in the Berkeley Socket API but
instead needed to be built on top of it — e.g., streaming controls — the naming scheme of today
that focuses on protocol addresses does not work anymore. Instead, a more general naming
scheme must be developed and advised. We propose a hierarchical naming scheme that is
loosely based on URIs [11]. Here, IP addresses can still be named using a resource locator like
ip4://172.19.32.1. However, the goal of the new naming scheme is to name not addresses,
machines, or multicast groups, but in general establish a communication relationship to a
resource that is accessible through the network. As such, video streams can as well be named via
video://some-video, even by supplying additional parameters like a certain timestamp in the
video. This will of course make the introduction of an address resolution system an hard
requirement for a Future Internet architecture using this naming scheme. But a current operating
system installation already comes with several name resolution systems installed and enabled by
default. The most widely known is DNS, the Domain Name System [12]. A UNIX system carries
other means of resolution which can be transparently enabled or disabled using the
/etc/nsswitch.conf configuration files. They are either plain text files, simple databases, access
directory servers or make use of different means of resolution altogether. Also, Windows hosts
employ similar means of name resolution. Thus, the question of how to resolve names is already
answered on any of today’s operating systems. Also considerations of where this resolution takes
place — i.e., kernel space vs. user space — are also solved. The same design principles and
considerations apply to name resolution in a Future Internet architecture. The difference lies only
in the fact that name resolution is now no longer distinct part in an ecosphere of mechanisms
used in conjunction, but integrated into the network stack and its usage hidden from the
application developer.

2.5.3

Types of Requirements

Before identifying the types of requirements it worth to describe what requirement real is so that
Requirements are one of two parameters an API approach needs. While the naming parameter
(explained in the preceding subsection) specifies what service is accessed, the requirements
parameter specifies how. Such requirements can be abstract, like “ciphering,” or specific, like
“delay lower than 200ms.” Requirements consist of three parts: An effect, an operator and an
attribute. Effects denote certain characteristics, e.g. delay. It is important to emphasize that these
characteristics are neither “good” nor “bad” but denote the outcome of an operation. Effect is
thus a neutral term. “Delay” is an effect just as “packet loss” or “encryption” is an effect. To
quantify an effect, attributes are used. An attribute is a numeric value like “200ms.” Effects and
attributes are linked via operators, such as “equals,” “greater than,” etc. One way to identify the
basic requirements list is to review contemporary transport protocol stacks and their provided
functionality. In PIAPI [10], analyzing of transport protocols such as SCTP, TCP, DCCP, UDP
has been carried out. Provided list of PIAPI can be seen as an initial step towards finding
appropriate requirements for the purpose, however, proposed names in the list are function
oriented on the other hand we see the requirements in terms of effect (i.e. outcome/resultant of a
functionality) which can be asked from an application. Following are the provided capabilities
from the PIAPI list.
• Flow Characteristic: Combined service of flow and congestion control
• Application PDU bundling: Waiting for more messages and to send them all together
• Error Detection: Mechanism to detect and correct errors
• Reliability: Data delivery with no loss
• Delivery Order: To ensure to receive messages in an exact same order in which they
have been sent
• Multi-Homing: To support multiple network interfaces at a single machine
Granularity of capabilities is not a trivial challenge and it may vary from domain to domain.
Why should congestion control and flow should be defined in a single effect? It is a valid
argument that in all current implementation they have been placed together and what if in the
future that the new protocols will be developed where those effects will be implemented
independent of each other, it would simply outdate the defined diction for the effects. Best
possible granularity will be where implementation of effects can be independent of each other,
thus an effect can be implemented without being dependent on other protocols’ implementation.
If incongruous granularity will trigger the need to modify the capabilities list very often so that it
may trigger to accommodate the outdated applications too as they might be using the wrong
diction for the given effect or it would require to have redundancy (i.e. simply adding new
effects without deleting or altering the older ones) of terms with composed and atomic effects.
In fig. 4, list of minimum set of effects is presented. Provided effects in the list are viewed from a
consumer (e.g. an application, a user) perspective, an application should not be concerned if an
underlying network architecture uses delivery type either packet or stream, but it should concerns
about if data can be securely or error free transmitted. Following is the explanation of some of
the given effects.

Figure 4:Effects requested from user /application
•

•

•
•

•

•

Authentication: It is requested from an application or a user, in case it needed to
authenticate the communicating partner. It should be clear that there are two aspects of
authentication, one to authenticate oneself and one to authenticate the communicating
partner. It is highly unlikely that a request will be made to authenticate oneself. So that
only authentication of a communication partner is being addressed here.
Packet Boundary Preservation: An Application or a user doesnt care about that if data is
delivered in datagrams or in a stream , but it would be required from some applications
that packet boundary is preserved and recovered at the other end. If no boundary is
defined then it can behave like a stream-oriented communication.
Error Ratio: It defines the error ratio even after correcting the error, as it is not possible
to assure an entirely error free transmission. So that the name is chosen to give the
freedom that how much error is corrected.
Traffic Prioritization: This functionality is asked by an application which is dealing with
more than one kind of traffic, it is important to make it clear that an application doesnt
have any influence on external traffic (i.e. traffic from other applications or users), so
that the application may specify which kind of its own traffic it wants to prioritize.
Loss Ratio: This functionality covers reliability provided by TCP. The name has been
chosen because of introduction of partial reliability from SCTP protocol stack, where
number of attempts or time-out period can be specified before packet is stopped to be
retransmitted. As to say, it is unlikely to be possible to have full reliability, thus loss ratio
is used to define the ratio of the data loss in the communication.
Data Duplication Avoidance: This functionality is used by the application which is not
able to deal with duplicated data itself.
Classification, shown in fig. 5, encourages the separation of concern. It is unlikely that an
application or user will be interested in the functionality such as data reduction, connection
management, loop avoidance. The shown functionalities in fig. 5 are of no importance for an
application but many of them are essential for a communication such as addressing or
connection management. Hence extra policies or requirements from an administrator or a
network are needed, classification helps to identify the related functionalities for an
administrator and a network.

Fig. 5: Effects: Application/User should not care about

2.6 Protocol-Independent Internet Transport API :
Let us assume that UDP-Lite, SCTP and DCCP get deployed as common transport protocols,
right next to TCP and UDP, available to everyone. Then, consider the choices that application
programmers face: SCTP with partial reliability, using multiple streams or only one stream
across an association? Or no reliability at all? But this is also what DCCP provides – however,
DCCP also has various forms of congestion control. Should we pick TCP-like or TFRC
congestion control? If we pick TCP-like congestion control, is it better to use DCCP or SCTP?
DCCP has receiver feedback with various drop codes, and ACK congestion control. SCTP has
partial reliability with a timer. What is more important for us? Do we want a checksum for our
data? If not, would it be even better to use UDP-Lite and take care of congestion control in the
application? Given that these protocols are new and experimental and might often not even be
available from one Internet endpoint to the other. The example given above is no exaggeration:
DCCP does not have a standardized API yet. It seems clear that we should at least try to simplify
access to these protocol’s mechanisms if we ever want to see them broadly used. As a part of this
simplification, and as an element of abstraction that has the potential to enable gradual
deployment of new and innovative transport mechanisms, we should first of all hide the
protocols themselves: why should an application programmer be even confronted with a decision
between, e.g., SCTP and TCP, as opposed to having a system that automatically makes the best
possible choice from the services that it has available?
Table 1:Overview of Transport APIs [9].
All of these above mentioned APIs are rather sophisticated, and the more abstract ones are
generally more complex.

2.7 Name-based sockets:
Name-based sockets allow application developers to refer to remote hosts (and it self) by name
only, passing on all IP (locator) management to the operating system. Applications are thus
relieved of re-implementing features such as multi-homing, mobility, NAT traversal, IPv6/IPv4
interoperability and address management in general. The operating system can in turn re-use the
same solutions for a whole set of guest applications. Name- based sockets aims to provide a
whole set of features without adding new indirection layers, new delays or other dependences
while maintaining transparent backwards compatibility. Name-based sockets provide a unified
interface which caters to the application developers who wish to simply open up a
communication to a remote host by its name and have operating system perform the management
of locators.it does so by providing a new address family (AF_NAME)which allows the
developers to use a name instead of an IP(or other locator).

2.7.1 Motivation
Network communication has for very long been based on the assumption that applications
should deal with the IP (locator) management. This is based on the legacy notion that an IP does
not change during a session and that a session is a communication between two given IPs
(locators). This situation has changed, locators change during a session, and a device/host might
have multiple locators, hosts may be behind NA(P)Ts or be on different locator domains (e.g.
IPv4/IPv6).Today, this is mostly left to the individual applications to solve. This adds
complexity to the applications making it a challenge in it self just to meet the networking
demands of applications.Name-based sockets aims to fix this by pushing the locator management
to the operating system, without introducing any new limitations or delays.
By approaching the problem at the socket() level, existing abstraction frameworks can easily
benefit from a change. By allowing the existing abstractions to simply pass along the name the
whole way down to the socket() call, the abstraction or whole framework are able to benefit by
name-based sockets.
2.7.2 Protocol Overview
Name-based sockets work by performing a name exchange in the beginning of a
communication. It does this in an non-blocking way. In practice what happens is that the first
few packets are exchanged in a normal legacy fashion. However, to these packets, extra
information about the corresponding hosts names are piggy-backed. If a name exchange is
successful, the extra features provided by name-based sockets are enabled. If the exchange does
not succeed, normal legacy communication continues unaffected. The name of each host is either
its FQDN, its IP in IPv6.arpa format or an arbitrary nonce. It may or may not be authenticated.
In the ordinary case, the name is not authenticated, thus the receiver does not need to perform a
reverse or forward lookup, hence not adding any further delays to the first packet(s). The
motivation for this is to avoid any additional "first-packet" delays. Once the name exchange has
been performed successfully the complete feature set will be made available to the
communication automatically.The expected API for a socket using AF_NAME is the same as for
e.g. TCP (SOCK_STREAM). This is also the case for SOCK_DGRAM and similar protocols,
for all practical purposes, the functionality remains unchanged, however, as state is created in
both ends, connection oriented semantics are more intuitive.

2.7.3 the sender sends the first
When Initial name exchange packet to the receiver it appends its own name as an IPOption/IPv6-Extension header. It repeats this for a predefined amount of time or packets. On
the receiving end, if the receiver supports name-based sockets it appends its own name in the
same fashion for a predefined amount of time or packets. Should the receiver not be able to
interpret the name, the option/extension header is ignored and the legacy communication
precedes as normal.This kind of name exchange has two consequences. First and foremost that
there are no extra delays on the initial packets. Secondly that the complete feature set provided
by name based sockets will not be available until a few packets have been exchanged.
In figure 1 the exchange is depicted. The first packet from the sender has its own name
appended to it. The next few packets sent will also have the name appended to it for a
predefined number of packets (X in the figure) or until a reply including a name extension
is received. On the receiving end, should an incoming packet have a name extension, the
receiver begins to append its own name to the sent packets. It does so for a predefined number
of packets (X in the figure).
Figure 6. Protocol Overview.

2.7.4 Name formatprovided in any of three ways.
Names can be
•
•
•

FQDN as The Fully Qualified Domain Name of the host
ip6.arpa as Using one of the hosts interfaces addresses as a name.
Nonce as A one-use only session identifier.

2.7.5 Transport transport protocol is implied by the service in question. How this is handled
Often today, the selection
remains to be defined. It is however likely that a default transport protocol can be provided
depending on which service is requested.
3 Future Work
It is necessary to develop a translator to map those requirements with a protocol stack in the
current Internet architecture or a service in a future internet architecture. The functional units
will also have to be described along with their relationships and dependencies. This will lead to
the creation of a Domain Specific Language. Also, the URI-alike hierarchical scheme that is used
for naming needs to be specified in more detail. More components will want to interact with the
OS’s network subsystem, like the system administrator or the network hardware. Thus, a System
Programming Interface will also be needed in the future. The automatic multi-streaming
behaviour should be investigated; we also need to think in detail about events and notifications
for our protocol independent socket API which we just have started to implement. There might
be services which may be useful for some applications and hence lead to the development of new
protocols or protocol extensions.

4 Conclusion
Coupling between applications and underlying protocols makes it almost impossible to change
one without changing the other as in case of present internet. In order to deploy a new protocol in
the Internet architecture, it is not enough just to change the application but it also requires
modifying the API or using another API so that a user can unveil its intention to use the newly
deployed protocol. Coupling can be loosened or resolved by not involving applications in
protocols implementation details but, only in functionality necessary to establish a
communication. Adaptation of the current network API can be seen as the first step towards the
transition, as the API is the only point of contact for an application to reveal its communication
requirements to a network architecture. Many APIs are being developed to adapt to heterogeneity
of the networks. Name based socket APIs, Requirement based socket APIs, GENI, Informationcentric networks, Recursive Architecture, Protocol-Independent Internet Transport API are few
of them.

5 Contributions
Ashish Gowra Ravindra-,Student number-51405, section 2.2,2.2.
Mahalakshmi tarikere-devendprappa, Student number-51412, section 2.3,2.4.
Shahzeeb Palkkandy Kottothe,Student number-51413 ,section 2.5,2.6,2.7.

6

References
Sebastian Meiling, Dominik Charousset, Thomas C. Schmidt and Matthias W¨ahlisch,
“System-assisted Service Evolution for a Future Internet– The H8Mcast Approach to
Pervasive Multicast”,2010.
[2] Denis Martin, Hans Wippel, Helge Backhaus , “A Future-Proof Application-to-Network
Interface”,2011.
[3] Bengt Ahlgren, Christian Dannewitz, Claudio Imbrenda, Dirk Kutscher, and Börje
Ohlman, “A Survey of Information-Centric Networking”,2012.
[1]
Abbas Ali Siddiqui, Paul Mueller, “A Requirement-Based Socket API for a Transition to
Future Internet Architectures” ,2012.
[5] Florian Liers, Thomas Volkert, Denis Martin, Helge Backhaus, Hans Wippel, Eric MSP
Veith, Abbas Ali Siddiqui, Rahamatullah Khondoker: “GAPI: A G-Lab Application-toNetwork Interface “, 11th Würzburg Workshop on IP: Joint ITG and Euro-NF Workshop
"Visions of Future Generation Networks" (EuroView2011) , Würzburg Germany, August
2011.
[6] Florian Liers, Markus Hager, Sebastian Schellenberg, Jochen Seitz: “Recursive Layering
of Forwarding on Gates and Traffic Engineering Middleware for Ethernet”, International
Conference on Information Networking 2013 (ICOIN 2013), Bangkok, Thailand, January
2013.
[7] J. Ubillos ,M. Xu, Z. Ming, C. Vogt, “Name-based sockets architecture(draft-ubillosname-based-sockets-03)”,September 17,2010.
[8] M.Waehlisch, T C.Schmidt,S.Venaas,”A common API for Transparent Hybrid
Multicast(draft-waehlisch-sam-common-api-06)”,March 07,2011.
[9] Michael Welzl,Stefan Jorer,Stein Gjessing” Towards a Protocol-Independent
Internet Transport API”,2011.
[10] Stein Gjessing Michael Welzl, Stefan Joerer,” Towards a protocol independent
internettransport api”, Communications Workshops (ICC),2011 IEEE International.
[11] T. Berners-Lee, R. Fielding, and L. Masinter. Rfc 3986,” Uniform
resource identifier (uri)”, Generic syntax, 2005.
[12] P. V. Mockapetris. “Domain names - implementation and specification”,1987
[13] R. Stewart, K. Poon, M. Tuexen, V. Yasevich, and P. Lei, “Sockets API Extensions for
Stream Control Transmission Protocol (SCTP),” Internetdraft draft-ietf-tsvwgsctpsocket-25 (work in progress), January 2011.
[4]
Network ap is for future internet
Network ap is for future internet

More Related Content

What's hot

Slides for protocol layering and network applications
Slides for protocol layering and network applicationsSlides for protocol layering and network applications
Slides for protocol layering and network applicationsjajinekkanti
 
OSI model and TCP/IP model
OSI model and TCP/IP modelOSI model and TCP/IP model
OSI model and TCP/IP modelRubal Sagwal
 
Network Models
Network ModelsNetwork Models
Network ModelsTechiNerd
 
Advanced computer network lab manual (practicals in Cisco Packet tracer)
Advanced computer network lab manual (practicals in Cisco Packet tracer)Advanced computer network lab manual (practicals in Cisco Packet tracer)
Advanced computer network lab manual (practicals in Cisco Packet tracer)VrundaBhavsar
 
SYBSC IT COMPUTER NETWORKS UNIT III Connecting LANs, Backbone Networks, and V...
SYBSC IT COMPUTER NETWORKS UNIT III Connecting LANs, Backbone Networks, and V...SYBSC IT COMPUTER NETWORKS UNIT III Connecting LANs, Backbone Networks, and V...
SYBSC IT COMPUTER NETWORKS UNIT III Connecting LANs, Backbone Networks, and V...Arti Parab Academics
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentIJERD Editor
 
Data Communication IPv6, Ethernet, OSI Model, Transmission Impairments
Data Communication IPv6, Ethernet, OSI Model, Transmission ImpairmentsData Communication IPv6, Ethernet, OSI Model, Transmission Impairments
Data Communication IPv6, Ethernet, OSI Model, Transmission ImpairmentsShefa Idrees
 
SYBSC IT COMPUTER NETWORKS UNIT III Wired LANS: Ethernet
SYBSC IT COMPUTER NETWORKS UNIT III Wired LANS: EthernetSYBSC IT COMPUTER NETWORKS UNIT III Wired LANS: Ethernet
SYBSC IT COMPUTER NETWORKS UNIT III Wired LANS: EthernetArti Parab Academics
 
An Approach for Enhanced Performance of Packet Transmission over Packet Switc...
An Approach for Enhanced Performance of Packet Transmission over Packet Switc...An Approach for Enhanced Performance of Packet Transmission over Packet Switc...
An Approach for Enhanced Performance of Packet Transmission over Packet Switc...ijceronline
 
Unit 4 - Transport Layer
Unit 4 - Transport LayerUnit 4 - Transport Layer
Unit 4 - Transport LayerKalpanaC14
 
Ex 1 chapter04-transport-layer-tony_chen
Ex 1 chapter04-transport-layer-tony_chenEx 1 chapter04-transport-layer-tony_chen
Ex 1 chapter04-transport-layer-tony_chenĐô GiẢn
 
Manual redes - network programming with j2 me wireless devices
Manual   redes - network programming with j2 me wireless devicesManual   redes - network programming with j2 me wireless devices
Manual redes - network programming with j2 me wireless devicesVictor Garcia Vara
 
Chapter 2 - Protocol Architecture, TCP/IP, and Internet-Based Applications 9e
Chapter 2 - Protocol Architecture, TCP/IP, and Internet-Based Applications 9eChapter 2 - Protocol Architecture, TCP/IP, and Internet-Based Applications 9e
Chapter 2 - Protocol Architecture, TCP/IP, and Internet-Based Applications 9eadpeer
 
Internet stack protocol
Internet stack protocolInternet stack protocol
Internet stack protocolYash Patel
 
VPN Using MPLS Technique
VPN Using MPLS TechniqueVPN Using MPLS Technique
VPN Using MPLS TechniqueAhmad Atta
 
Final Year Project IEEE 2015
Final Year Project IEEE 2015Final Year Project IEEE 2015
Final Year Project IEEE 2015TTA_TNagar
 
Project on wifi ,LTE and Broadband devices
Project on wifi ,LTE and Broadband devicesProject on wifi ,LTE and Broadband devices
Project on wifi ,LTE and Broadband devicesKaran Kumar
 
TCP/IP Model
TCP/IP ModelTCP/IP Model
TCP/IP Modelfarhan516
 

What's hot (20)

20CS2008 Computer Networks
20CS2008 Computer Networks 20CS2008 Computer Networks
20CS2008 Computer Networks
 
Slides for protocol layering and network applications
Slides for protocol layering and network applicationsSlides for protocol layering and network applications
Slides for protocol layering and network applications
 
53426980 tcp-ip
53426980 tcp-ip53426980 tcp-ip
53426980 tcp-ip
 
OSI model and TCP/IP model
OSI model and TCP/IP modelOSI model and TCP/IP model
OSI model and TCP/IP model
 
Network Models
Network ModelsNetwork Models
Network Models
 
Advanced computer network lab manual (practicals in Cisco Packet tracer)
Advanced computer network lab manual (practicals in Cisco Packet tracer)Advanced computer network lab manual (practicals in Cisco Packet tracer)
Advanced computer network lab manual (practicals in Cisco Packet tracer)
 
SYBSC IT COMPUTER NETWORKS UNIT III Connecting LANs, Backbone Networks, and V...
SYBSC IT COMPUTER NETWORKS UNIT III Connecting LANs, Backbone Networks, and V...SYBSC IT COMPUTER NETWORKS UNIT III Connecting LANs, Backbone Networks, and V...
SYBSC IT COMPUTER NETWORKS UNIT III Connecting LANs, Backbone Networks, and V...
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Data Communication IPv6, Ethernet, OSI Model, Transmission Impairments
Data Communication IPv6, Ethernet, OSI Model, Transmission ImpairmentsData Communication IPv6, Ethernet, OSI Model, Transmission Impairments
Data Communication IPv6, Ethernet, OSI Model, Transmission Impairments
 
SYBSC IT COMPUTER NETWORKS UNIT III Wired LANS: Ethernet
SYBSC IT COMPUTER NETWORKS UNIT III Wired LANS: EthernetSYBSC IT COMPUTER NETWORKS UNIT III Wired LANS: Ethernet
SYBSC IT COMPUTER NETWORKS UNIT III Wired LANS: Ethernet
 
An Approach for Enhanced Performance of Packet Transmission over Packet Switc...
An Approach for Enhanced Performance of Packet Transmission over Packet Switc...An Approach for Enhanced Performance of Packet Transmission over Packet Switc...
An Approach for Enhanced Performance of Packet Transmission over Packet Switc...
 
Unit 4 - Transport Layer
Unit 4 - Transport LayerUnit 4 - Transport Layer
Unit 4 - Transport Layer
 
Ex 1 chapter04-transport-layer-tony_chen
Ex 1 chapter04-transport-layer-tony_chenEx 1 chapter04-transport-layer-tony_chen
Ex 1 chapter04-transport-layer-tony_chen
 
Manual redes - network programming with j2 me wireless devices
Manual   redes - network programming with j2 me wireless devicesManual   redes - network programming with j2 me wireless devices
Manual redes - network programming with j2 me wireless devices
 
Chapter 2 - Protocol Architecture, TCP/IP, and Internet-Based Applications 9e
Chapter 2 - Protocol Architecture, TCP/IP, and Internet-Based Applications 9eChapter 2 - Protocol Architecture, TCP/IP, and Internet-Based Applications 9e
Chapter 2 - Protocol Architecture, TCP/IP, and Internet-Based Applications 9e
 
Internet stack protocol
Internet stack protocolInternet stack protocol
Internet stack protocol
 
VPN Using MPLS Technique
VPN Using MPLS TechniqueVPN Using MPLS Technique
VPN Using MPLS Technique
 
Final Year Project IEEE 2015
Final Year Project IEEE 2015Final Year Project IEEE 2015
Final Year Project IEEE 2015
 
Project on wifi ,LTE and Broadband devices
Project on wifi ,LTE and Broadband devicesProject on wifi ,LTE and Broadband devices
Project on wifi ,LTE and Broadband devices
 
TCP/IP Model
TCP/IP ModelTCP/IP Model
TCP/IP Model
 

Viewers also liked

Viewers also liked (20)

Concepcão Ioruba da alma (bascom)
Concepcão Ioruba da alma (bascom)Concepcão Ioruba da alma (bascom)
Concepcão Ioruba da alma (bascom)
 
Pasquin
PasquinPasquin
Pasquin
 
Procedimiento administrativo EIA
Procedimiento administrativo EIAProcedimiento administrativo EIA
Procedimiento administrativo EIA
 
Topic 004
Topic 004Topic 004
Topic 004
 
Peritonitis 2
Peritonitis 2Peritonitis 2
Peritonitis 2
 
Tech oyaji ksmakoto_presen
Tech oyaji ksmakoto_presenTech oyaji ksmakoto_presen
Tech oyaji ksmakoto_presen
 
The Paulinian Story & History
The Paulinian Story & HistoryThe Paulinian Story & History
The Paulinian Story & History
 
Arachnida dan myriapoda
Arachnida dan myriapodaArachnida dan myriapoda
Arachnida dan myriapoda
 
Historia e se Drejtes 3
Historia e se Drejtes 3Historia e se Drejtes 3
Historia e se Drejtes 3
 
Paternalism
PaternalismPaternalism
Paternalism
 
pedological anatomy
pedological anatomypedological anatomy
pedological anatomy
 
Etre With Passe Compose
Etre With Passe ComposeEtre With Passe Compose
Etre With Passe Compose
 
Paternalism v autonomy.
Paternalism v autonomy.Paternalism v autonomy.
Paternalism v autonomy.
 
Pedophilia
PedophiliaPedophilia
Pedophilia
 
How can Training & Development increase employee retention?
How can Training & Development increase employee retention?How can Training & Development increase employee retention?
How can Training & Development increase employee retention?
 
Amylases and pectinases
Amylases and pectinasesAmylases and pectinases
Amylases and pectinases
 
Pectinase
PectinasePectinase
Pectinase
 
Introduction letter 2014
Introduction letter 2014 Introduction letter 2014
Introduction letter 2014
 
Mechanism Of Pathogenecity
Mechanism Of PathogenecityMechanism Of Pathogenecity
Mechanism Of Pathogenecity
 
Verbo to be (presente e passado)
Verbo to be   (presente e passado)Verbo to be   (presente e passado)
Verbo to be (presente e passado)
 

Similar to Network ap is for future internet

Automated Traffic Classification And Application Identification Using Machine...
Automated Traffic Classification And Application Identification Using Machine...Automated Traffic Classification And Application Identification Using Machine...
Automated Traffic Classification And Application Identification Using Machine...Jennifer Daniel
 
Final Year IEEE Project Titles 2015
Final Year IEEE Project Titles 2015Final Year IEEE Project Titles 2015
Final Year IEEE Project Titles 2015TTA_TNagar
 
Introduction to Networks_v0.2
Introduction to Networks_v0.2Introduction to Networks_v0.2
Introduction to Networks_v0.2Sohail Gohir
 
A3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networksA3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networksZhenyun Zhuang
 
NETWORK PERFORMANCE EVALUATION WITH REAL TIME APPLICATION ENSURING QUALITY OF...
NETWORK PERFORMANCE EVALUATION WITH REAL TIME APPLICATION ENSURING QUALITY OF...NETWORK PERFORMANCE EVALUATION WITH REAL TIME APPLICATION ENSURING QUALITY OF...
NETWORK PERFORMANCE EVALUATION WITH REAL TIME APPLICATION ENSURING QUALITY OF...ijngnjournal
 
CN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.pptCN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.pptmohanravi1986
 
Cataloging Of Sessions in Genuine Traffic by Packet Size Distribution and Ses...
Cataloging Of Sessions in Genuine Traffic by Packet Size Distribution and Ses...Cataloging Of Sessions in Genuine Traffic by Packet Size Distribution and Ses...
Cataloging Of Sessions in Genuine Traffic by Packet Size Distribution and Ses...IOSR Journals
 
02-ProtocolArchitecture.pdf
02-ProtocolArchitecture.pdf02-ProtocolArchitecture.pdf
02-ProtocolArchitecture.pdfMiftaNurFarid2
 
CONCEPTUAL FRAMEWORK OF REDUNDANT LINK AGGREGATION
CONCEPTUAL FRAMEWORK OF REDUNDANT LINK AGGREGATIONCONCEPTUAL FRAMEWORK OF REDUNDANT LINK AGGREGATION
CONCEPTUAL FRAMEWORK OF REDUNDANT LINK AGGREGATIONcseij
 
An implementation of embedded RESTful Web services.pdf
An implementation of embedded RESTful Web services.pdfAn implementation of embedded RESTful Web services.pdf
An implementation of embedded RESTful Web services.pdfNaomi Hansen
 
INTERNET ARCHITECTURE.pptx
INTERNET ARCHITECTURE.pptxINTERNET ARCHITECTURE.pptx
INTERNET ARCHITECTURE.pptxShanthini28
 
Reduce the False Positive and False Negative from Real Traffic with Intrusion...
Reduce the False Positive and False Negative from Real Traffic with Intrusion...Reduce the False Positive and False Negative from Real Traffic with Intrusion...
Reduce the False Positive and False Negative from Real Traffic with Intrusion...inventy
 
A Machine Learning based Network Sharing System Design with MPTCP
A Machine Learning based Network Sharing System Design with MPTCPA Machine Learning based Network Sharing System Design with MPTCP
A Machine Learning based Network Sharing System Design with MPTCPIJMREMJournal
 
A Machine Learning based Network Sharing System Design with MPTCP
A Machine Learning based Network Sharing System Design with MPTCPA Machine Learning based Network Sharing System Design with MPTCP
A Machine Learning based Network Sharing System Design with MPTCPIJMREMJournal
 
A Proposal for End-to-End QoS Provisioning in Software-Defined Networks
A Proposal for End-to-End QoS Provisioning in Software-Defined NetworksA Proposal for End-to-End QoS Provisioning in Software-Defined Networks
A Proposal for End-to-End QoS Provisioning in Software-Defined NetworksIJECEIAES
 

Similar to Network ap is for future internet (20)

Automated Traffic Classification And Application Identification Using Machine...
Automated Traffic Classification And Application Identification Using Machine...Automated Traffic Classification And Application Identification Using Machine...
Automated Traffic Classification And Application Identification Using Machine...
 
Final Year IEEE Project Titles 2015
Final Year IEEE Project Titles 2015Final Year IEEE Project Titles 2015
Final Year IEEE Project Titles 2015
 
Introduction to Networks_v0.2
Introduction to Networks_v0.2Introduction to Networks_v0.2
Introduction to Networks_v0.2
 
How to implement mpls
How to implement mplsHow to implement mpls
How to implement mpls
 
A3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networksA3: application-aware acceleration for wireless data networks
A3: application-aware acceleration for wireless data networks
 
NETWORK PERFORMANCE EVALUATION WITH REAL TIME APPLICATION ENSURING QUALITY OF...
NETWORK PERFORMANCE EVALUATION WITH REAL TIME APPLICATION ENSURING QUALITY OF...NETWORK PERFORMANCE EVALUATION WITH REAL TIME APPLICATION ENSURING QUALITY OF...
NETWORK PERFORMANCE EVALUATION WITH REAL TIME APPLICATION ENSURING QUALITY OF...
 
CN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.pptCN unit 1 part 2 2023.ppt
CN unit 1 part 2 2023.ppt
 
Cataloging Of Sessions in Genuine Traffic by Packet Size Distribution and Ses...
Cataloging Of Sessions in Genuine Traffic by Packet Size Distribution and Ses...Cataloging Of Sessions in Genuine Traffic by Packet Size Distribution and Ses...
Cataloging Of Sessions in Genuine Traffic by Packet Size Distribution and Ses...
 
02-ProtocolArchitecture.pdf
02-ProtocolArchitecture.pdf02-ProtocolArchitecture.pdf
02-ProtocolArchitecture.pdf
 
CONCEPTUAL FRAMEWORK OF REDUNDANT LINK AGGREGATION
CONCEPTUAL FRAMEWORK OF REDUNDANT LINK AGGREGATIONCONCEPTUAL FRAMEWORK OF REDUNDANT LINK AGGREGATION
CONCEPTUAL FRAMEWORK OF REDUNDANT LINK AGGREGATION
 
An implementation of embedded RESTful Web services.pdf
An implementation of embedded RESTful Web services.pdfAn implementation of embedded RESTful Web services.pdf
An implementation of embedded RESTful Web services.pdf
 
IoT Protocol Stack.pdf
IoT Protocol Stack.pdfIoT Protocol Stack.pdf
IoT Protocol Stack.pdf
 
G04844450
G04844450G04844450
G04844450
 
1720 1724
1720 17241720 1724
1720 1724
 
1720 1724
1720 17241720 1724
1720 1724
 
INTERNET ARCHITECTURE.pptx
INTERNET ARCHITECTURE.pptxINTERNET ARCHITECTURE.pptx
INTERNET ARCHITECTURE.pptx
 
Reduce the False Positive and False Negative from Real Traffic with Intrusion...
Reduce the False Positive and False Negative from Real Traffic with Intrusion...Reduce the False Positive and False Negative from Real Traffic with Intrusion...
Reduce the False Positive and False Negative from Real Traffic with Intrusion...
 
A Machine Learning based Network Sharing System Design with MPTCP
A Machine Learning based Network Sharing System Design with MPTCPA Machine Learning based Network Sharing System Design with MPTCP
A Machine Learning based Network Sharing System Design with MPTCP
 
A Machine Learning based Network Sharing System Design with MPTCP
A Machine Learning based Network Sharing System Design with MPTCPA Machine Learning based Network Sharing System Design with MPTCP
A Machine Learning based Network Sharing System Design with MPTCP
 
A Proposal for End-to-End QoS Provisioning in Software-Defined Networks
A Proposal for End-to-End QoS Provisioning in Software-Defined NetworksA Proposal for End-to-End QoS Provisioning in Software-Defined Networks
A Proposal for End-to-End QoS Provisioning in Software-Defined Networks
 

Recently uploaded

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Recently uploaded (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Network ap is for future internet

  • 1. Network Application Programming Interfaces (APIs) for Future Internet: Survey Mahalakshmi Tarikere Devendrappa, Ashish Gowra Ravindra, Shahzeeb Palkkandy Kottothe. Ilmenau University of Technology, mahalakshmi.tarikere-devendprappa@tu-ilmenau.de, ashish.gowra-ravindra@tu-ilmenau.de, shahzeeb.palkkandy-kottothe@tu-ilmenau.de Abstract: The existing application programming interface (API) between applications and the network architecture is one reason that it is hard to deploy novel protocols into the network architecture. Coupling between applications and underlying protocols makes it almost impossible to change one without changing the other. Coupling can be loosened or resolved by not involving applications in protocols implementation details but, only in functionality necessary to establish a communication. This way underlying network can deploy novel or updated implementations of a functionality without needing to change the applications. Using intermediate abstraction layers is an approach to break the dependency between applications and network protocols. One of the major goals in future internet architectures is to be flexible enough to adapt to application’s requirements. In this paper, several API types are presented for applications and network stacks and classified them according to their properties
  • 2. 1 Introduction: An increased public awareness of several critical shortcomings in terms of performance, reliability, scalability, security and many other categories including societal, economical and business aspects in current Internet technologies, has led to extensive research efforts. The term Future Internet is generally used to refer these research activities on new architectures for the Internet. Current APIs are one of the prime obstacles for innovation in the future Internet. Existing APIs were made with the assumption that the Internet supports a limited number of protocols and relies on applications to specify the exact protocol to use. The deployment of new transport protocols such as SCTP, DCCP and new addressing schemes are hindered as an application is obliged to specify the address type (IPv4 or IPv6). An application needs to be modified if it wants to use TCP or UDP. Peer addressing and address-resolution are part of an application, which makes an application address type dependent. Thus an application has to select a particular addressing type such as IPV4 or IPV6. Different addressing types require different socket so that there is a difference between IPv4 TCP socket structure and IPv6 TCP socket structure and same is true for UDP.Many APIs are being developed to adapt to heterogeneity of the networks. Name based socket APIs, Requirement based socket APIs, GENI, Information-centric networks, Recursive Architecture, Protocol-Independent Internet Transport API are few of them which are described further. Our Future Internet provides three different interfaces to applications Figure1:Overvie w of our GLab Interface ISetup [5] The first interface ISetup is used to start the interaction with a network stack. On the one hand, it provides methods for announcing services, which should be available for others (PUBLISH). On the other hand, others can use the interface to connect to these announced services (SUBSCRIBE). In both cases, the methods are used to get references to instances supporting one of the following interfaces. The second interface IRegistration is used to change requirements for the announced service and to cancel it. In addition, it provides information about incoming subscriptions. The third interface ISubscription is used to communicate with the service and the
  • 3. peer using it, respectively. It allows sending and receiving of data either in stream or datagram mode. In the following, the focus will be on the ISetup interface, since it is the most important one for the interaction between network stacks and applications. A. Methods As mentioned before, the ISetup interface provides methods, which are used by an application to start interaction with a network stack. An overview of them is given in Figure 1. This interface provides the following two methods: • IRegistration PUBLISH(Name, Requirement description): announces an application service to a network stack, by specifying a name and requirements of the service for the network. The network stack is made aware of the service and should provide other members of the network access to this service. The name is basically treated as a label. The announcement is represented by an instance supporting IRegistration (or a handle in a procedural programming language). The requirements have to be satisfied by the network for each peer, willing to use the service. • ISubscription SUBSCRIBE(Name, Requirement description):establishes a communication association to a service, which was published before. The name parameter defines the service to talk with The name must match with the name handed over to the PUBLISH method before. The requirements defines the characteristics of the communication relationship the network has to provide. In contrast to the requirements in the PUBLISH method, they are only valid for a single connection. B. Call Sequence A sequence of method calls for a typical client server scenario starts with the announcement of the service. The server application calls PUBLISH in order to make its service available under a name chosen by itself. This step is somehow comparable to BIND calls in today’s IP networks, but binds a service to a name not an address and port. An association is started by a client application with SUBSCRIBE. The client has to use the same name as the server application. This step is comparable to today’s CONNECT calls with a different name semantic and additional requirements the network has to fulfill. As a result, SUBSCRIBE will return a reference to a ISubscription object. At the server side, the network will inform the server about the new communication association. The server will get an ISubscription reference for the communication association via its IRegistration interface as well. Now, both sides have references to the communication association and can start to transfer data. On the client side, the reference can be used to send its request to the server, which uses its reference to receive it. The server will answer by sending data by using its ISubscription reference and the client will use its reference to receive it. Finally, either the client or the server can cancel its ISubscription. The cancellation will be propagated to its communication partner and invalidate its communication association, too. C. Naming The most important goal of the API is to hide network and network stack specific issues from the applications. In particular, that refers to the mapping from names to addresses and the selection of an address space (like using IPv4 or IPv6 addresses). Both parts should not be anticipated by applications. Consequently, applications must specify names in their own domain and based on
  • 4. their own name space. We propose a globally unique naming scheme based on Uniform Resource Identifiers (URIs). In order to allow different name spaces, we will use the scheme given in URIs to distinguish between them (like mailto:// or file://). D. Requirements An application states its requirements explicitly in order to specify the characteristics of a communication association. A requirement consists of an Effect linked by an Operator to an Attribute. Effects describe the visible outcome of an operation of a building block or the network. Effect is a neutral term: Encryption is an effect as well as delay. Through further specification it becomes clear whether something is being provided or wished to be avoided. For example, an application can request a Packet Loss of 0, whereas a certain network connection could provide a Packet Loss of 5% average. Attributes quantify or qualify effects and can be divided into two distinct parts: Inherent and qualitative. For inherent attributes, it must be clear to decide whether a certain property can fulfill a requirement or not (e.g.,200ms). An inherent attribute will normally be expressed by a number, however, functional requirements via boolean values are also possible, e.g. VirusScan == true. 2 Types of APIs: 2.1 Recursive Architecture: Providing quality of service for a packet-oriented communication network is a challenging problem even if only a single technology is considered. For inter-networks such as the Inter-net, the task gets even more problematic. Since an inter-network is a network of networks, it connects networks using different technologies like Ethernet, WLAN or UMTS, with transit networks in-between. In a realistic scenario, an end-to-end connection has to cross multiple networks such as a local area network (LAN) at the sender as well as on the receiver side with transit networks of different technologies in between. In addition to the various technologies possibly in use on the LAN side, the segmentation of the Internet into autonomous systems introduces additional complications when attempting to establish QoS-enabled flows for end-to-end connections. Each autonomous system might have different policies for handling QoS in place and might use different intra-network techniques to implement it. However, an end-toend connection can only be provided, if the QoS requirements are handled by all networks, which forward packets of this flow. Any solution supporting the technological manifoldness of the networks, has to meet the following requirements[6]: • Provide QoS for different intra-network layers and signal the end-to-end connection on the inter-network layer. • Ensure the conformance between the possible QoS classes of the different intra-network layers and between the various autonomous systems. • Enable schemes allowing each application to be as-signed to the intended traffic class or alternatively provide a common interface allowing each application to signal its QoS requirements on the network.
  • 5. To face the problems on the inter-network layer, there are already solutions available, which can be divided into differentiated services (DiffServ) and integrated services (IntServ). Since the Internet as a large network consists of different autonomous systems, the preservation of the conformance between the different network parts regarding the interpretation of the QoS classes is the most challenging problem. Therefore here we define an architecture comprising recursive layers with a single interface between these layers and between layers and applications. It is evaluated based on two example layers, whereas the focus of the evaluation is on the QoS aspects. Our key contribution is to present not a cross-layer but a recursive layer interface. In summary, today’s solution for providing QoS faces problems regarding scalability and flexibility. We propose a solution that exploits the flexibility of recursive layers with a novel solution for the implementation of each layer. In particular, we propose employing “Forwarding on Gates” (FoG) for the Internet layer and the “Traffic Engineering Middleware for Ethernet” (TEME) at the intra-network layer. Figure 2 shows the logical node architecture with both layers. Due to the recursive nature, there might be some more layers handling, e.g., overlay aspects. Since each layer provides the same functionality to the layer above, all layers can use exactly the same interface. It is shown as dotted line in Figure. However, the interface has to be designed in a way that it hides the details of a layer and enables a broad range of design and implementation varieties for layers. Figure 2:Recursive Layers with APIs in between[6]. The recursive layer approach defines layers not based on functionality but based on scope. Each layer has an area, for which it is responsible. For example, the lowest layer is responsible for a link. The next higher layer is responsible for an intra-network, while the highest one is responsible for the whole Internet. Since the layers differ only in scope, each layer provides the same functionality such as relaying packets and performing routing. Furthermore, it has to manage its resources including congestion and flow control. Here we follow this approach using recursive functions to design API’s. 2.2 Inter-Network Layer FoG:
  • 6. For the inter-network layer, which handles the end-to-end aspects, we propose to use FoG. Its main idea is to represent available links and their capabilities as unidirectional functional blocks, called gates. End-to-end connections between two higher layers are constructed by concatenating multiple gates to a chain of functional blocks. Which blocks are combined into a chain depends on the requirements of a connection. As shown, this system can represent QoS guarantees of the IntServ model and prioritizations of the DiffServ model using gates. This enables a unified handling of both models during packet for-warding. Forwarding in FoG is based on an indexbased forwarding approach as used by MPLS or Pathlet. FoG’s route definition differs from these protocols by allowing route segments. A FoG route is constructed using two types of segments. First, an explicit route segment contains a stack of indi-ces defining an explicit sequence of gates. It is comparable to stacked LSP labels in MPLs. Second, a destination route segment defines an address and the requirements of intermediate nodes of a route[6]. The flexibility to construct a route out of these two types enables a broad range of network setups. In particular, it allows the movement of some states from the node providing a gate to the node using the gate. The latter can specify gates required for connections directly in the route and does not rely on states stored on the node providing the gates. This approach can be used to reduce the number of states at ingress routers. In addition to the reduction mentioned in the previous part, which uses aggregation, FoG enables the movement of states as an orthogonal solution to the scalability problem. FoG provides access to applications via the recursive interface described before. Moreover, it uses the recursive interface in order to access lower layers. A gate representing the transmission of packets to another physical node uses the connect function in order to setup the communication channel through the lower layer. Their requested capabilities such as minimal bandwidth and maximum delay are handed over to the lower layer as the connect requirements. 2.3 A Common API for Transparent Hybrid Multicast: Group communication services exist in a large variety of flavours, and technical implementations at different protocol layers. Multicast data distribution is most efficiently performed on the lowest available layer, but a heterogeneous deployment status of multicast technologies throughout the Internet requires an adaptive service binding at runtime. Today, it is difficult to write an application that runs everywhere and at the same time makes use of the most efficient multicast service available in the network. Facing robustness requirements, developers are frequently forced to using a stable, upper layer protocol controlled by the application itself. [8]Here we describe a common multicast API that is suitable for transparent communication in underlay and overlay, and grants access to the different multicast flavours. It proposes an abstract naming by multicast URIs and discusses mapping mechanisms between different namespaces and distribution technologies. Additionally, it describes the application of this API for building gateways that interconnect current multicast domains throughout the Internet. 2.4 Information-Centric Networking:
  • 7. The information-centric networking (ICN) concept is a significant common approach of several future Internet research activities. The approach leverages in-network caching, multiparty communication through replication, and interaction models decoupling senders and receivers. The goal is to provide a network infrastructure service that is better suited to today’s use (in particular. content distribution and mobility) and more resilient to disruptions and failures. The ICN approach is being explored by a number of research projects. We compare and discuss design choices and features of proposed ICN architectures, focusing on the following main components: named data objects, naming and security, API, routing and transport, and caching. We also discuss the advantages of the ICN approach in general [3]. The increasing demand for highly scalable and efficient distribution of content has motivated the development of future Internet architectures based on named data objects (NDOs), for example, web pages, videos, documents, or other pieces of information. The approach of these architectures is commonly called information centric networking (ICN). In contrast, current networks are host-centric where communication is based on named hosts, for example, web servers, PCs, laptops, mobile handsets, and other devices. The ICN architectures leverage innetwork storage for caching, multiparty communication through replication, and interaction models that decouple senders and receivers. The common goal is to achieve efficient and reliable distribution of content by providing a general platform for communication services that are today only available in dedicated systems such as peer-to peer (P2P) overlays and proprietary content distribution networks. 2.5 Requirement-Based Socket API: A requirements based API is proposed here to decouple applications from underlying network architectures. It also encourages to seamlessly switch between different network architectures which will help to deploy novel network architectures without having the need to change the applications or the currently used API. Requirements are an abstraction which can be dealt by various diverse architecture. Address resolution is not seen as a responsibility of an application. An application will rather use homogeneous URI addressing; further address resolution is taken care by the underlying networks architectures, resolution of a address may differ from one architecture to another[4]. Current applications are tightly coupled with the given protocols, though they only care about its connectivity demands are fulfilled. A Requirements-based API will alleviate the developer from choosing a protocol or even a protocol specification. Instead, requirements will be communicated to the underlying network architecture. Using these requirements, explicit connection characteristics are requested for the new communication relationship. Requirements are specified in terms of effects/capabilities, an effect is a visible outcome of functionality such as flow control functionality provides effect of transmission rate adaptation between two parties. 2.5.1 Architecture
  • 8. Figure 3: Architecture [4]. This API proposal enables multiple architectures to work in parallel without need of adapting an application with respect to an architecture. Nevertheless it stimulates the need of an additional component in the current Internet, which will translate the incoming requirements (i.e. represented as capabilities) to match with an appropriate protocol stack (e.g. TCP/IP, UDP/IP). The abstraction of requirements in terms of capabilities enables to use any of underlying architecture without changing the application however architecture must have comprehension of the incoming requirements. 2.5.2 Address Resolution A task that is not necessarily specific to an API approach is the task of how to name a particular service and how the naming resolution is to be done. Traditionally, socket addresses would be packed using a struct sockaddr C structure and the inet_ntoa function call. This approach is likely to be obsolete in a Future Internet architecture, as IPv4 or IPv6 addresses will not remain the only (de-facto) standard addressing scheme. Keeping in mind that the network stack should now also take tasks upon itself which were not initially included in the Berkeley Socket API but instead needed to be built on top of it — e.g., streaming controls — the naming scheme of today that focuses on protocol addresses does not work anymore. Instead, a more general naming scheme must be developed and advised. We propose a hierarchical naming scheme that is loosely based on URIs [11]. Here, IP addresses can still be named using a resource locator like ip4://172.19.32.1. However, the goal of the new naming scheme is to name not addresses, machines, or multicast groups, but in general establish a communication relationship to a resource that is accessible through the network. As such, video streams can as well be named via video://some-video, even by supplying additional parameters like a certain timestamp in the video. This will of course make the introduction of an address resolution system an hard requirement for a Future Internet architecture using this naming scheme. But a current operating system installation already comes with several name resolution systems installed and enabled by default. The most widely known is DNS, the Domain Name System [12]. A UNIX system carries other means of resolution which can be transparently enabled or disabled using the /etc/nsswitch.conf configuration files. They are either plain text files, simple databases, access directory servers or make use of different means of resolution altogether. Also, Windows hosts
  • 9. employ similar means of name resolution. Thus, the question of how to resolve names is already answered on any of today’s operating systems. Also considerations of where this resolution takes place — i.e., kernel space vs. user space — are also solved. The same design principles and considerations apply to name resolution in a Future Internet architecture. The difference lies only in the fact that name resolution is now no longer distinct part in an ecosphere of mechanisms used in conjunction, but integrated into the network stack and its usage hidden from the application developer. 2.5.3 Types of Requirements Before identifying the types of requirements it worth to describe what requirement real is so that Requirements are one of two parameters an API approach needs. While the naming parameter (explained in the preceding subsection) specifies what service is accessed, the requirements parameter specifies how. Such requirements can be abstract, like “ciphering,” or specific, like “delay lower than 200ms.” Requirements consist of three parts: An effect, an operator and an attribute. Effects denote certain characteristics, e.g. delay. It is important to emphasize that these characteristics are neither “good” nor “bad” but denote the outcome of an operation. Effect is thus a neutral term. “Delay” is an effect just as “packet loss” or “encryption” is an effect. To quantify an effect, attributes are used. An attribute is a numeric value like “200ms.” Effects and attributes are linked via operators, such as “equals,” “greater than,” etc. One way to identify the basic requirements list is to review contemporary transport protocol stacks and their provided functionality. In PIAPI [10], analyzing of transport protocols such as SCTP, TCP, DCCP, UDP has been carried out. Provided list of PIAPI can be seen as an initial step towards finding appropriate requirements for the purpose, however, proposed names in the list are function oriented on the other hand we see the requirements in terms of effect (i.e. outcome/resultant of a functionality) which can be asked from an application. Following are the provided capabilities from the PIAPI list. • Flow Characteristic: Combined service of flow and congestion control • Application PDU bundling: Waiting for more messages and to send them all together • Error Detection: Mechanism to detect and correct errors • Reliability: Data delivery with no loss • Delivery Order: To ensure to receive messages in an exact same order in which they have been sent • Multi-Homing: To support multiple network interfaces at a single machine Granularity of capabilities is not a trivial challenge and it may vary from domain to domain. Why should congestion control and flow should be defined in a single effect? It is a valid argument that in all current implementation they have been placed together and what if in the future that the new protocols will be developed where those effects will be implemented independent of each other, it would simply outdate the defined diction for the effects. Best possible granularity will be where implementation of effects can be independent of each other, thus an effect can be implemented without being dependent on other protocols’ implementation. If incongruous granularity will trigger the need to modify the capabilities list very often so that it may trigger to accommodate the outdated applications too as they might be using the wrong diction for the given effect or it would require to have redundancy (i.e. simply adding new effects without deleting or altering the older ones) of terms with composed and atomic effects.
  • 10. In fig. 4, list of minimum set of effects is presented. Provided effects in the list are viewed from a consumer (e.g. an application, a user) perspective, an application should not be concerned if an underlying network architecture uses delivery type either packet or stream, but it should concerns about if data can be securely or error free transmitted. Following is the explanation of some of the given effects. Figure 4:Effects requested from user /application • • • • • • Authentication: It is requested from an application or a user, in case it needed to authenticate the communicating partner. It should be clear that there are two aspects of authentication, one to authenticate oneself and one to authenticate the communicating partner. It is highly unlikely that a request will be made to authenticate oneself. So that only authentication of a communication partner is being addressed here. Packet Boundary Preservation: An Application or a user doesnt care about that if data is delivered in datagrams or in a stream , but it would be required from some applications that packet boundary is preserved and recovered at the other end. If no boundary is defined then it can behave like a stream-oriented communication. Error Ratio: It defines the error ratio even after correcting the error, as it is not possible to assure an entirely error free transmission. So that the name is chosen to give the freedom that how much error is corrected. Traffic Prioritization: This functionality is asked by an application which is dealing with more than one kind of traffic, it is important to make it clear that an application doesnt have any influence on external traffic (i.e. traffic from other applications or users), so that the application may specify which kind of its own traffic it wants to prioritize. Loss Ratio: This functionality covers reliability provided by TCP. The name has been chosen because of introduction of partial reliability from SCTP protocol stack, where number of attempts or time-out period can be specified before packet is stopped to be retransmitted. As to say, it is unlikely to be possible to have full reliability, thus loss ratio is used to define the ratio of the data loss in the communication. Data Duplication Avoidance: This functionality is used by the application which is not able to deal with duplicated data itself.
  • 11. Classification, shown in fig. 5, encourages the separation of concern. It is unlikely that an application or user will be interested in the functionality such as data reduction, connection management, loop avoidance. The shown functionalities in fig. 5 are of no importance for an application but many of them are essential for a communication such as addressing or connection management. Hence extra policies or requirements from an administrator or a network are needed, classification helps to identify the related functionalities for an administrator and a network. Fig. 5: Effects: Application/User should not care about 2.6 Protocol-Independent Internet Transport API : Let us assume that UDP-Lite, SCTP and DCCP get deployed as common transport protocols, right next to TCP and UDP, available to everyone. Then, consider the choices that application programmers face: SCTP with partial reliability, using multiple streams or only one stream across an association? Or no reliability at all? But this is also what DCCP provides – however, DCCP also has various forms of congestion control. Should we pick TCP-like or TFRC congestion control? If we pick TCP-like congestion control, is it better to use DCCP or SCTP? DCCP has receiver feedback with various drop codes, and ACK congestion control. SCTP has partial reliability with a timer. What is more important for us? Do we want a checksum for our data? If not, would it be even better to use UDP-Lite and take care of congestion control in the application? Given that these protocols are new and experimental and might often not even be available from one Internet endpoint to the other. The example given above is no exaggeration: DCCP does not have a standardized API yet. It seems clear that we should at least try to simplify access to these protocol’s mechanisms if we ever want to see them broadly used. As a part of this simplification, and as an element of abstraction that has the potential to enable gradual deployment of new and innovative transport mechanisms, we should first of all hide the protocols themselves: why should an application programmer be even confronted with a decision between, e.g., SCTP and TCP, as opposed to having a system that automatically makes the best possible choice from the services that it has available?
  • 12. Table 1:Overview of Transport APIs [9]. All of these above mentioned APIs are rather sophisticated, and the more abstract ones are generally more complex. 2.7 Name-based sockets: Name-based sockets allow application developers to refer to remote hosts (and it self) by name only, passing on all IP (locator) management to the operating system. Applications are thus relieved of re-implementing features such as multi-homing, mobility, NAT traversal, IPv6/IPv4 interoperability and address management in general. The operating system can in turn re-use the same solutions for a whole set of guest applications. Name- based sockets aims to provide a whole set of features without adding new indirection layers, new delays or other dependences while maintaining transparent backwards compatibility. Name-based sockets provide a unified interface which caters to the application developers who wish to simply open up a communication to a remote host by its name and have operating system perform the management of locators.it does so by providing a new address family (AF_NAME)which allows the developers to use a name instead of an IP(or other locator). 2.7.1 Motivation Network communication has for very long been based on the assumption that applications should deal with the IP (locator) management. This is based on the legacy notion that an IP does not change during a session and that a session is a communication between two given IPs (locators). This situation has changed, locators change during a session, and a device/host might have multiple locators, hosts may be behind NA(P)Ts or be on different locator domains (e.g. IPv4/IPv6).Today, this is mostly left to the individual applications to solve. This adds complexity to the applications making it a challenge in it self just to meet the networking demands of applications.Name-based sockets aims to fix this by pushing the locator management to the operating system, without introducing any new limitations or delays. By approaching the problem at the socket() level, existing abstraction frameworks can easily benefit from a change. By allowing the existing abstractions to simply pass along the name the whole way down to the socket() call, the abstraction or whole framework are able to benefit by name-based sockets. 2.7.2 Protocol Overview
  • 13. Name-based sockets work by performing a name exchange in the beginning of a communication. It does this in an non-blocking way. In practice what happens is that the first few packets are exchanged in a normal legacy fashion. However, to these packets, extra information about the corresponding hosts names are piggy-backed. If a name exchange is successful, the extra features provided by name-based sockets are enabled. If the exchange does not succeed, normal legacy communication continues unaffected. The name of each host is either its FQDN, its IP in IPv6.arpa format or an arbitrary nonce. It may or may not be authenticated. In the ordinary case, the name is not authenticated, thus the receiver does not need to perform a reverse or forward lookup, hence not adding any further delays to the first packet(s). The motivation for this is to avoid any additional "first-packet" delays. Once the name exchange has been performed successfully the complete feature set will be made available to the communication automatically.The expected API for a socket using AF_NAME is the same as for e.g. TCP (SOCK_STREAM). This is also the case for SOCK_DGRAM and similar protocols, for all practical purposes, the functionality remains unchanged, however, as state is created in both ends, connection oriented semantics are more intuitive. 2.7.3 the sender sends the first When Initial name exchange packet to the receiver it appends its own name as an IPOption/IPv6-Extension header. It repeats this for a predefined amount of time or packets. On the receiving end, if the receiver supports name-based sockets it appends its own name in the same fashion for a predefined amount of time or packets. Should the receiver not be able to interpret the name, the option/extension header is ignored and the legacy communication precedes as normal.This kind of name exchange has two consequences. First and foremost that there are no extra delays on the initial packets. Secondly that the complete feature set provided by name based sockets will not be available until a few packets have been exchanged. In figure 1 the exchange is depicted. The first packet from the sender has its own name appended to it. The next few packets sent will also have the name appended to it for a predefined number of packets (X in the figure) or until a reply including a name extension is received. On the receiving end, should an incoming packet have a name extension, the receiver begins to append its own name to the sent packets. It does so for a predefined number of packets (X in the figure).
  • 14. Figure 6. Protocol Overview. 2.7.4 Name formatprovided in any of three ways. Names can be • • • FQDN as The Fully Qualified Domain Name of the host ip6.arpa as Using one of the hosts interfaces addresses as a name. Nonce as A one-use only session identifier. 2.7.5 Transport transport protocol is implied by the service in question. How this is handled Often today, the selection remains to be defined. It is however likely that a default transport protocol can be provided depending on which service is requested.
  • 15. 3 Future Work It is necessary to develop a translator to map those requirements with a protocol stack in the current Internet architecture or a service in a future internet architecture. The functional units will also have to be described along with their relationships and dependencies. This will lead to the creation of a Domain Specific Language. Also, the URI-alike hierarchical scheme that is used for naming needs to be specified in more detail. More components will want to interact with the OS’s network subsystem, like the system administrator or the network hardware. Thus, a System Programming Interface will also be needed in the future. The automatic multi-streaming behaviour should be investigated; we also need to think in detail about events and notifications for our protocol independent socket API which we just have started to implement. There might be services which may be useful for some applications and hence lead to the development of new protocols or protocol extensions. 4 Conclusion Coupling between applications and underlying protocols makes it almost impossible to change one without changing the other as in case of present internet. In order to deploy a new protocol in the Internet architecture, it is not enough just to change the application but it also requires modifying the API or using another API so that a user can unveil its intention to use the newly deployed protocol. Coupling can be loosened or resolved by not involving applications in protocols implementation details but, only in functionality necessary to establish a communication. Adaptation of the current network API can be seen as the first step towards the transition, as the API is the only point of contact for an application to reveal its communication requirements to a network architecture. Many APIs are being developed to adapt to heterogeneity of the networks. Name based socket APIs, Requirement based socket APIs, GENI, Informationcentric networks, Recursive Architecture, Protocol-Independent Internet Transport API are few of them. 5 Contributions Ashish Gowra Ravindra-,Student number-51405, section 2.2,2.2. Mahalakshmi tarikere-devendprappa, Student number-51412, section 2.3,2.4. Shahzeeb Palkkandy Kottothe,Student number-51413 ,section 2.5,2.6,2.7. 6 References Sebastian Meiling, Dominik Charousset, Thomas C. Schmidt and Matthias W¨ahlisch, “System-assisted Service Evolution for a Future Internet– The H8Mcast Approach to Pervasive Multicast”,2010. [2] Denis Martin, Hans Wippel, Helge Backhaus , “A Future-Proof Application-to-Network Interface”,2011. [3] Bengt Ahlgren, Christian Dannewitz, Claudio Imbrenda, Dirk Kutscher, and Börje Ohlman, “A Survey of Information-Centric Networking”,2012. [1]
  • 16. Abbas Ali Siddiqui, Paul Mueller, “A Requirement-Based Socket API for a Transition to Future Internet Architectures” ,2012. [5] Florian Liers, Thomas Volkert, Denis Martin, Helge Backhaus, Hans Wippel, Eric MSP Veith, Abbas Ali Siddiqui, Rahamatullah Khondoker: “GAPI: A G-Lab Application-toNetwork Interface “, 11th Würzburg Workshop on IP: Joint ITG and Euro-NF Workshop "Visions of Future Generation Networks" (EuroView2011) , Würzburg Germany, August 2011. [6] Florian Liers, Markus Hager, Sebastian Schellenberg, Jochen Seitz: “Recursive Layering of Forwarding on Gates and Traffic Engineering Middleware for Ethernet”, International Conference on Information Networking 2013 (ICOIN 2013), Bangkok, Thailand, January 2013. [7] J. Ubillos ,M. Xu, Z. Ming, C. Vogt, “Name-based sockets architecture(draft-ubillosname-based-sockets-03)”,September 17,2010. [8] M.Waehlisch, T C.Schmidt,S.Venaas,”A common API for Transparent Hybrid Multicast(draft-waehlisch-sam-common-api-06)”,March 07,2011. [9] Michael Welzl,Stefan Jorer,Stein Gjessing” Towards a Protocol-Independent Internet Transport API”,2011. [10] Stein Gjessing Michael Welzl, Stefan Joerer,” Towards a protocol independent internettransport api”, Communications Workshops (ICC),2011 IEEE International. [11] T. Berners-Lee, R. Fielding, and L. Masinter. Rfc 3986,” Uniform resource identifier (uri)”, Generic syntax, 2005. [12] P. V. Mockapetris. “Domain names - implementation and specification”,1987 [13] R. Stewart, K. Poon, M. Tuexen, V. Yasevich, and P. Lei, “Sockets API Extensions for Stream Control Transmission Protocol (SCTP),” Internetdraft draft-ietf-tsvwgsctpsocket-25 (work in progress), January 2011. [4]