OMNeT++ Community Summit, 2015 Beyond INET 3.0 IBM Research - - - PowerPoint PPT Presentation

omnet community summit 2015
SMART_READER_LITE
LIVE PREVIEW

OMNeT++ Community Summit, 2015 Beyond INET 3.0 IBM Research - - - PowerPoint PPT Presentation

OMNeT++ Community Summit, 2015 Beyond INET 3.0 IBM Research - Zurich, Switzerland September 3 - 4, 2015 Levente Mszros Overview Network node architecture refactoring Cross-layer communication and optimization Mobility refactoring


slide-1
SLIDE 1

OMNeT++ Community Summit, 2015

Beyond INET 3.0

Levente Mészáros IBM Research - Zurich, Switzerland – September 3 - 4, 2015

slide-2
SLIDE 2

Overview

Network node architecture refactoring Cross-layer communication and optimization Mobility refactoring

slide-3
SLIDE 3

Kernel Socket API Link Layer Network Layer Transport Layer UDP IPv4 TCP Application Ethernet 802.11 IPv6 PPP VLAN

Real World Network Node Architecture

  • Real world

applications often use different kind of sockets and protocols simultaneously

slide-4
SLIDE 4

Current Network Node Architecture 1

tcpApp[] udpApp[] pingApp[] tunApp[] udp tcp ipv4 ppp[] tun[] wlan[] eth[]

  • Nodes currently have

separate submodule vectors for different kinds of applications

  • What if an application

wants to use TCP and UDP simultaneously?

slide-5
SLIDE 5

Current Network Node Architecture 2

tcpApp[] udpApp[] pingApp[] tunApp[] udp tcp ipv4 ppp[] tun[] wlan[]

?

eth[]

  • TUN application are

currently connected to TUN interfaces only

  • TUN applications are

useless without being connected to other protocols

  • Should we connect

them to TCP, UDP, IPv4, or all of them?

slide-6
SLIDE 6

Current Network Node Architecture 3

tcpApp[] udpApp[] pingApp[] tunApp[] udp tcp ipv4 ppp[] tun[] wlan[] ipv6 eth[]

  • Dual network stack

needs extra dispatch mechanism towards network protocols

  • Where should the

dispatch mechanism be?

  • In general, protocols
  • f adjacent OSI layers

should be in many-to- many relationship ?

slide-7
SLIDE 7

TCP Applications

tcpApp[] udpApp[] pingApp[] tunApp[] udp tcp ipv4 ppp[] tun[] wlan[] eth[]

  • Limitation: TCP

applications exclusively and directly connect to TCP

  • Dispatch from TCP

towards applications is built into TCP

  • Dispatch from IPv4

towards TCP is built into IPv4

slide-8
SLIDE 8

UDP Application

tcpApp[] udpApp[] pingApp[] tunApp[] udp tcp ipv4

  • Limitations: UDP

applications exclusively and directly connect to UDP

  • Dispatch from UDP

towards applications is built into UDP

  • Dispatch from IPv4

towards UDP is built into IPv4

ppp[] tun[] wlan[] eth[]

slide-9
SLIDE 9

Ping Application

tcpApp[] udpApp[] pingApp[] tunApp[] udp tcp ipv4

  • Network layers

currently have separate gates for ping applications (pingIn, pingOut)

  • IPv4 needs to do

special ICMP packet handling to reach ping applications

ppp[] tun[] wlan[] eth[]

slide-10
SLIDE 10

New Network Node Architecture

app[] udp tcp ipv4 ppp[] tun[] wlan[] ipv6 dispatcher dispatcher dispatcher eth[]

  • Added separate

packet dispatchers between OSI layers

  • Eliminated dispatch

mechanisms from individual protocols

slide-11
SLIDE 11

Protocol Registration Mechanism

app[] udp tcp ipv4 ppp[] tun[] wlan[] ipv6 dispatcher dispatcher dispatcher eth[]

  • Protocols have to

register themselves in the dispatcher (protocolId, gate)

registers

slide-12
SLIDE 12

Interface Registration Mechanism

app[] udp tcp ipv4 ppp[] tun[] wlan[] ipv6 dispatcher dispatcher dispatcher eth[]

  • Interfaces also have to

register themselves in the dispatcher (interfaceId, gate)

registers

slide-13
SLIDE 13

Simpler Network Node Architectures

app udp ipv4 eth udp ipv4 app[] udp ipv4 app[] dispatcher dispatcher dispatcher eth eth[]

  • Dispatchers are
  • ptional
  • Modules can still

be organized in

  • ther ways
slide-14
SLIDE 14

IPv4 Network Layer Architecture

dispatcher ip icmp igmp arp

  • IPv4 network layer also uses a

dispatcher internally

  • ARP and IP don't exchange

packets, thus no connection between them

slide-15
SLIDE 15

TCP Application

app[] udp tcp dispatcher dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[]

  • TCP application still

uses a TCPSocket to send and receive packets

  • Dispatcher learns

where sockets are, based on socket open and close commands

slide-16
SLIDE 16

UDP Application

app[] udp tcp dispatcher dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[]

  • UDP application still

uses a UDPSocket to send and receive packets

  • Dispatcher routes

packets based on the destination protocol

  • Destination protocol is

determined from control info and packet class

slide-17
SLIDE 17

Ping Application

app[] udp tcp dispatcher dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[]

  • Ping application uses

a raw IPv4Socket to send and receive ICMP echo packets

  • There's no special

network layer gate for ping applications

slide-18
SLIDE 18

Ethernet Application

app[] udp tcp dispatcher dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[]

  • Ethernet applications

can directly communicate using ethernet sockets

slide-19
SLIDE 19

MANET Routing Application

app[] udp tcp ipv4 ppp[] tun[] wlan[] ipv6 dispatcher dispatcher dispatcher eth[]

  • MANET routers now

share the same network node architecture

  • Routing application

can be replaced from INI file

  • Routing applications

can still use all kinds

  • f sockets

routing[]

slide-20
SLIDE 20

Tunnel Application

app[] udp tcp dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[]

  • Tunnel application

simultaneously opens a TUN device and a raw IPv4Socket

slide-21
SLIDE 21

Tunnel Application 1

app[] udp tcp dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[]

  • Node receives packet

from network

slide-22
SLIDE 22

Tunnel Application 2

app[] udp tcp dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[]

  • Node receives packet

from network

  • IPv4 forwards packet

to TUN interface

slide-23
SLIDE 23

Tunnel Application 3

app[] udp tcp dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[]

  • Node receives packet

from network

  • IPv4 forwards packet

to TUN interface

  • Application receives

packet from TUN interface

slide-24
SLIDE 24

Tunnel Application 4

app[] udp tcp dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[] ppp[] tun[] eth[]

  • Node receives packet

from network

  • IPv4 forwards packet

to TUN interface

  • Application receives

packet from TUN interface

  • Application sends

packet inside another IPv4 packet

slide-25
SLIDE 25

Standard Host 1

slide-26
SLIDE 26

Standard Host 2

slide-27
SLIDE 27

Overview

Network node architecture refactoring Cross-layer communication and optimization Mobility refactoring

slide-28
SLIDE 28

Cross-layer design

Link Layer Network Layer Transport Layer Application Layer Physical Layer

  • Quality of

service parameters

  • Resource
  • ptimization

parameters

  • Link

quality indication

  • Physical

channel conditions

slide-29
SLIDE 29

Current Cross-Layer Communication

  • Applications send UDP packets on a specific interface by

setting the interfaceId in UDPControlInfo

  • Currently applications cannot even specify type of service

parameter to control the quality of service functionality

slide-30
SLIDE 30

New Cross-Layer Communication

Link Layer Network Layer Transport Layer Application Layer Physical Layer

  • Packets

collect various request tags

  • Packets

collect various indication tags

  • As packets go through the layers
slide-31
SLIDE 31

MACAddressRequest

  • source
  • destination

QualityOfServiceRequest

  • tos

TransmissionRequest

  • power
  • channel

InterfaceIndication

  • id

MACAddressIndication

  • source
  • destination

ReceptionIndication

  • power
  • channel

InterfaceRequest

  • id

Packet

Tag Examples

slide-32
SLIDE 32

Overview

Network node architecture refactoring Cross-layer communication and optimization Mobility refactoring

slide-33
SLIDE 33

Current Mobility Models 1

  • There are mobility models

that do static positioning

  • There are mobility models

that move nodes around

  • How to combine these

models?

slide-34
SLIDE 34

Current Mobility Models 2

  • There are group mobility

models with built-in differences for individual nodes

  • How to reuse existing models

for group mobility?

  • How to model a docking ship

with passengers moving around?

slide-35
SLIDE 35

Current Mobility Models 3

  • Sometimes positioning and
  • rientation are best expressed

in separate mobility models (e.g. satellites)

  • Sometimes elevation may be

derived from the position on the surface of the Earth (e.g. a moving vehicle)

slide-36
SLIDE 36

Mobility Superposition

  • Support combining different positioning and
  • rientation models using superposition
  • Support start/end time (limits) for mobility models

time positioning & orientation initial individual perturbation group superposition

slide-37
SLIDE 37

Coordinate Systems

  • Geographic

coordinate system such as WGS-84

  • Abstract Cartesian

coordinate system

  • How to express coordinates inside buildings around a city?
  • How to express antenna orientation of a vehicle separately?
slide-38
SLIDE 38

Questions and Answers

Levente Mészáros

Thank you for your kind attention!

IBM Research - Zurich, Switzerland – September 3 - 4, 2015