SLIDE 1
OMNeT++ Community Summit, 2015 Beyond INET 3.0 IBM Research - - - PowerPoint PPT Presentation
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 2
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Ethernet Application
app[] udp tcp dispatcher dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[]
- Ethernet applications
can directly communicate using ethernet sockets
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
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
Tunnel Application 1
app[] udp tcp dispatcher dispatcher ipv4 ipv6 ppp[] tun[] wlan[] eth[]
- Node receives packet
from network
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
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
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
Standard Host 1
SLIDE 26
Standard Host 2
SLIDE 27
Overview
Network node architecture refactoring Cross-layer communication and optimization Mobility refactoring
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
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
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
MACAddressRequest
- source
- destination
QualityOfServiceRequest
- tos
TransmissionRequest
- power
- channel
InterfaceIndication
- id
MACAddressIndication
- source
- destination
ReceptionIndication
- power
- channel
InterfaceRequest
- id
Packet
Tag Examples
SLIDE 32
Overview
Network node architecture refactoring Cross-layer communication and optimization Mobility refactoring
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
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
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
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
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