Anda di halaman 1dari 8

3.

Methodology

(1) Setting up the virtual test bed

(2) 6LoWPAN implementation

(3) protocol implementation

(4) Results and Analysis.

The implementation for this project has been classified into several steps. There was a lot of confusion
regarding how the Iot Network should be implemented. Firstly we thought it would be best to use a
simulator Omnet++ , and create a scenario where we can simulate a virtual iot network and implement
the protocols which we have wanted (PMIPV6, SHIM6, LISP). The reason for this being, we thought
comparison of all these protocols in a single network simulators would allow us to compare the results
very easily and a clear analysis can be provided. But after some research we found that implementing
6LowPan and all these protocols was extremely tedious and not easy. So we have decided to drop the
idea and decided to implement a virtual testbed.

1.) Setting up the Virtual Test bed: So we wanted to create a network which would allow us to have
a scenario where a single mote is moving from one IoT network to another. We plan to test the
parameters when the mote is in its home network and compare it with the parameters when
the mote is in another IoT network. For that we plan to implement a network shown in this
picture.

Expected Setup

IoT
Client Network1

Border
Router

IoT
Server Network2

Figure 1: Architecture
Iot Devices use Contiki OS to process all their information. Cooja network Simulator is given inbuilt in the
part of Contiki OS. So it was necessary to implement these protocols in Cooja network Simulator. But
since Contiki OS and Cooja simulator have been recently developed they lack support for implementing
these protocols. So implementing these protocols in Cooja was again very difficult. So we decided to
implement 6LoWPAN which the IoT devices use. So after implementing 6LoWPAN we create fake motes
so we can communicate between these motes using the protocols.

Figure 2: Testbed Setup

2.) 6LoWPAN Implementation: 6LoWPAN is an acronym for IPV6 over low power Wireless Personal
Area Networks. 6LoWPAN is a somewhat contorted acronym that combines the latest version of
the Internet Protocol (IPv6) and Low-power Wireless Personal Area Networks (LoWPAN). The
6LoWPAN concept originated from the idea that "the Internet Protocol could and should be
applied even to the smallest devices," and that low-power devices with limited processing
capabilities should be able to participate in the Internet of Things. 6LoWPAN can communicate
with 802.15.4 devices as well as other types of devices on an IP network link like WiFi.
So we have tried to implement 6LoWPAN in the linux kernel. The instructions were given in [].
We first divide the network interface into several small parts and utilize these parts by assigning
separate namespaces for each of them. In the link [] by following the script we arrive at a point
where network name spaces namely wpan0, wpan1, wpan2, wpan3, wpan4, wpan5 are created.
Since the Network interface has been divided specifically and assigned with different names,
These Network name spaces can work as separate individual mote. So we run the pings between
these motes and analyse them in Wireshark.

Creating a Namespace:
We use Ubuntu 17.04 operating system
ip netns add <new namespace name>
This is the first step in the process where we create a namespace and assign it with a specific
name of our choice.
Assigning a networking interface
Creating the network namespace is only the beginning; the next part is to assign interfaces to
the namespaces, and then configure those interfaces for network connectivity
ip link add veth0 type veth peer name veth1
The above command creates a veth pair so that veth0 is created and connected to veth1 of the
edge router and connects both of them. We can verify the link with the command
ip link list
Configuring Interfaces in Network Namespaces:
Since the intefaces in respective network namespaces have been created, its time to configure
them and assign them with a specific ip address.
ip netns exec <namespace name> ifconfig veth1 10.1.1.1/24 up
commands such as ip addr list will also help to configure ip address to the specific interface of
the network name space.
Linking the network namespace to the physical network.
After creating interfaces it is required to connect them to the physical network to actually make
it contact with the outside world.
ip link set dev <device> netns <namespace>

Using these commands code to setup a testbed has been developed. After executing the code to
check the links between interfaces the following command can be used.
ip netns list
To check the network namespaces which have been created we can use the following command
ip netns list

Figure 3: output of netnslist after executingcode.


Figure 4: Output of ip link list after executing code.

3.) Protocol Implementation: I have chosen specifically PMIPV6, SHIM6, LISP to compare and find
which protocol serves the best in the case of mobility. Since these protocols are being
implemented on a same network, the parameters which have been calculated and analysed can
be compared easily. PMIPV6 uses creates a proxy ip when the device is mobile. It uses
tunnelling which helps for the smooth data transfer for the mobile device. Shim6 uses site
multihoming which provides multiple ip addresses to a multihomed end host. Lisp offers locator
and Identifier split, this means that whenever the device is moved to a new network, the locator
of the device changes. These protocols will be implemented on the devices which use
6LoWPAN.
4.) Results and Analysis: After implementing the protocols, the results are captured and saved using
Wireshark. Network parameters such as Throughput, Delay, Error rate, Round trip time. These
parameters are calculated in two scenarios, firstly when a mote is in a home network, secondly
when the mote has moved to a different network. The difference between these two results is
calculated for all the three protocols. If there is no much of a difference for a particular protocol,
then that protocol is more suitable for mobility scenarios. The results are further analysed with
other protocols as well.
Related Work.

In [1], a clear model for deploying the Locator and Identifier split protocol. It gives a clear understanding
what the Locator and Identifier split is. It also describes that the technical merits of a protocol doesnt
simply mean widespread internet adoption.

[2] discusses about how PMIPV6 is used as an approach for maintaining connection during Live
Migration. It describes how did they try to implement PMIPV6 using eurecoms implementation. The
following link http://openairinterface.eurecom.fr/openairinterface-proxy-mobile-ipv6-oai-pmipv6 will
be helpful to install the necessary packages required to implement PMIPv6. The link
http://www.umip.org/contrib/umip-oai-pmipv6.html helps to set OAI PMIPV6 patches.

[3] discusses about the mobility management architecture for IoT devices. It discusses about one of our
closest objectives which is how the mobile internet accommodates huge number of IoT devices. It
proposes a routing based mobility architecture for IoT devices. It focuses on routing information
aggregation using Bloom filters.

[5] compares the multihoming and mobility protocols on the criteria of handover latency and rehoming
time. The simulations were done using Omnet++. Mobile Ipv6 (MIPV6), MCoA, SCTP and HIP were
compa999red.

[6] Gives detailed description about SHIM6. It also specifies the goals of shim6. It gives a description
about software architecture of SHIM6. Shim6 implementation is multithreaded C++ user-space process
that interferes with linux kernel. It gives the instructions to install shim6 in linux kernel. [7] gives
approach to utilize shim6 in the area of mobility.

Intro.

Pmipv6:

Proxy mobile IPV6 is a network based mobility management protocol. This means that the solution for
mobility is entirely managed by the network with the least involvement of the Mobile Node(MN). The
solution for this involves considering one of the network element to be a proxy. So this enables to assign
a CoA (Care of Address) to the proxy rather than to the MN. So whenever a mobile node wants to
communicate with the correspondent node, the mobile node has to get attached to MAG (Mobile access
Gateway) which is an equivalent to access router in general terms. After getting attached to MAG it then
sends a request or Router solicitation to the MAG. Upon receiving Router solicitation MAG sends a Proxy
Binding Update (PBU) consisting of MNID(Mobile Node ID) and MAG1 ID to the Local Mobility Anchor
(LMA). This Local Mobility anchor acts is an equivalent to home agent. It then sends an acknowledgment
(PBA) which contains the same elements as PBU and also a prefix allocated to the mobile node. The LMA
also creates a binding cache entry and establishes a bidirectional tunnel to the MAG. Upon receiving
PBA, MAG sends a router advertisement to the MN saying that the connection has been established. The
MN can alternatively use stateless autoconfiguration mechanism.
Figure 6: Architecture of PMIPV6 Figure 5: Process of PMIPV6

Advantages of PMIPV6

1.) If PMIPV6 is implemented by the service provider then the MN can change the access router
without changing its IP address and also without any software and hardware modifications to
MN (standard protocol stack).
2.) This Protocol can be used for building a common network to accommodate various access
technologies like wimax, 3GPP, 3GPP2.

Shim6

Site multihoming by IPV6 is a protocol being developed in the Internet Engineering Task Force (IETF). It
aims to provide a host based solution to allow IPV6 sites to have multihoming facilities . The SHIM6
protocol allows hosts to hold multiple addresses and to migrate transport protocol sessions from one
locator pair to another. It is architecturally related to HIP. They both implement an identifier/locator
split at the boundary between network and transport layer. So it makes a shim6 sublayer of the remote
host aware of the different locators available for given communication.
Figure 7: Shim6 Four way handshake

To create a shim6 session, a four-way just like HIP protocol has to be established. Consider an initiator
that decides to start a shim6 session with a responder, then firstly the initiator will have to send
message (I1) which consists of the request to create the session and ULID pair(Upper layer Identifier).
Upon the reception of I1, the responder can either discard the message if there is no support for
multihoming, or it can reply with R1, consisting of hash of the context of I1 and a secret token of the
responder. After receiving R1, the initiator sends a message(I2) in which locator set available at the
initiator. After receiving I2, the responder sends R2 consisting of its own context tag and locator set.

Goals of Shim6 are:

1.) Preserve already on going communication in the presence of certain classes of failures.
2.) Have minimal impact on upper layer protocols
3.) Non requirement of extra round trip- up front to setup shim specific state
4.) Take advantage of multiple/locators for load sharing.

Lisp

Locator/Identifier split protocol. LISP separates out the location and identification from an existing IP
semantic. So if we take a IPV6 address it contains 128 bit address. So the higher 64 bit can be used for
locator and the lower 64 bit can be used for Identifier. And the Idea here is that the Identifier does not
change but the locator will change according to its location. We therefore create different namespaces
for both locator and identifier which can have different allocation properties. By keeping Ids fixed we
can assign fixed addresses that never have to change on hosts and routers at site. So the Id will be with
the device for the lifetime of the device. The name spaces are called EID (End point Identifier) and RLOC
(Routing Locator). Lisp architecture can be viewed in two planes namely control plane and Data plane.
They both are correlated.

Figure 8: Architecure of LISP

So from the figure we can observe that if a packet is being sent from one EID space to another EID
space, The packet has to pass through the Ingress Tunnel router which encapsulates the packet and
sends it into RLOC space. The RLOC space is connected to the mapping system of the internet. When the
packet is finally at the EID it passes through Egress tunnel router to reach the destination.

Advantages of Lisp

1.) Improve site multihoming


2.) Improve ISP Traffic Engineering
3.) Reduce site renumbering costs
4.) Reduce size of core routing tables
5.) Conserve IPV4 and IPV6 address space
6.) Supports Mobility.

Anda mungkin juga menyukai