overview of mobile networking
DESCRIPTION
Overview of Mobile Networking. Sam Nelson Some slides borrowed from Prof. Ray and Prof. Jain. Mobile, Wireless Devices. Mobile wireless communication devices are becoming ubiquitous. Goals Allow communication to and from the Internet to mobile devices - PowerPoint PPT PresentationTRANSCRIPT
Overview of Mobile Networking
Sam Nelson
Some slides borrowed from Prof. Ray and Prof. Jain
Mobile, Wireless Devices
• Goals– Allow communication to
and from the Internet to mobile devices
– Allow mobile devices in the same area to talk without going through infrastructure
Mobile wireless communication devices are becoming ubiquitous
Smart phones
Emergency response
Vehiculartechnology
Why Study Mobile Networking?• WapReview : The total
number of mobile Internet users: 1.05 billion, which in 2008 for the first time surpassed the total number of PC Web users (1 billion)
• DigitalStats : (June 2009) In the last six months, uploads from mobile phones to YouTube jump by 1700%.
• DigitalStats : When posed with the question "Which do you access Social Network sites from more, mobile phone or computer?”(Sample size=321, Japanese survey)– Computer 14.0%– Mobile phone 70.4%– Both about the same 15.0%– Don’t know 0.6%
Academia
• Top conferences with interests in mobile computing:– ACM MobiCom– IEEE InfoCom– ACM Sigcomm– NSDI– IEEE SECON– ICDCS
Challenges of Mobile Networking
• Topology can change very quickly– New links form and break– Nodes leave and join the system
• Mobility occurs in the wireless domain– Interference– Propagation issues– Spectrum regulation and use
• End-to-end paths may not actually exist
Protocol Stack
Physical
Link
Network
Transport
Application
Wireless propagation issues
Interference / Hidden terminal
Establishing routes / addressing
Reliable, in-order delivery / congestion control
Sensing / emergency response, social networking
Layer Mobility Challenges
Mobile Networking Topics:Lecture Outline
Mobile Clients on the Internet
Mobile Ad-hoc Networks (MANETs)
Delay-Tolerant Networks (DTNs)
- Communicate to/from Internet- Infrastructure in 1-hop- Addressing Problems
- Communicate within network- No infrastructure
- Relatively high connectivity
- Communicate within network- No infrastructure- Low connectivity
Mobile Clients on the Internet
Mobile Host on the Internet
• Goal: Maintain two-way connectivity to Internet and a mobile host.
Net A Net B
Internet
IP_A
For IP_A
IP Addresses
• What do IP addresses really mean?
213.86.83.116 / 8
Network Host
IP address is for routing purposes
Hence, they must change when a node
changes networks
IP addresses are topologically dependent and hence are bad choices for long lasting names in mobile environments
Mobile Host on the Internet
• Solutions?– Change IP address Connectivity is lost… what is host’s IP?– Keep IP address Routing will fail... host not found.
How can S send to the moved mobile host?
Net A Net B
Internet
IP_A IP_B
For IP_A
Mobile IP Solution
• Mobile host keeps it’s old IP address, and gets someone to forward messages to it
• It must inform this “someone” of it’s new address• Agents to help – home agent and foreign agent
Old IP
New IP
Referred to as “home address”
Referred to as “care-of address”
Mobile IP Solution
HN
R1 R3
FN FNR2
HA
MH
MHCH
FA
Mobile Host:a host or router capableof changing its point ofattachment to the Internet
Foreign Network:a network, other than MA’s homenetwork, that MH is currently attachedto.
Corresponding Host:a host or router communicationgwith a mobile node.
Home Network:the network identifiedwith a mobile node
Home Address:MH’s permanent IP address, network ID of this address identifies the mobile’s home network.
Home Agent:a router attached to the MH’s home networkmaintains current location information for the MHis responsible for forwarding packets destined for theMH when MH is away from home.
Foreign Agent (FA)a router in the foreign network that the MH is visiting provides routing services to the MH; may serve as default router for outgoing packet from MH
Route Optimization
Route Optimization
• Triangular routing– Data goes from source to Home Agent to mobile
device (or foreign agent)– Reverse path is different – Data goes from mobile
directly to source• Instead of constant triangular routing, inform
CH of care-of address– Allows CH to directly route to mobile host
Mobile Ad-hoc Networks
Ad-hoc Networks• Each mobile device (node) can act as a router• Links form and break based on mobility and
environmental factors• Connectivity (e.g., high probability of instantaneous end-
to-end paths existing) is assumed
Ad-hoc Networks
• Goal: Nodes within the network can send data between themselves.• Challenges:
– No centralized coordinator to help routing– No “default route” for nodes within the network– Fast topology changes– Limited bandwidth – can’t have too much overhead
S
D
Ad-hoc Networks
• Nodes that want to route messages must:– Find out about the topology of the network– Use that topology to do something with the
message
Control Plane
Data Plane
S
D
Routing Protocol Categories
• Proactive:– Nodes actively maintain and share topology
information, regardless of if there is data to send– Generally timer- or event-based
• Reactive (On-demand):– “Lazy” approach: Don’t do more work then you
have to– Only discover topology/routes when there is data
to send
Control Plane
Routing Protocol Categories
• Local next-hop forwarding:– Consult forwarding table for a next hop– Completely local decision
• Source routing:– Source node places complete path in packet
header– Intermediate nodes don’t have to consult their
forwarding tables
Data Plane
S A B D
A B D
Reactive Protocols
• Names are useful hints at understanding the protocol properties:
Ad-hoc On-demand Distance Vector (AODV)
Dynamic Source Routing (DSR)
Source Routing
Next-hop Forwarding
Distance Vector
ReactiveMANET
MANET
22
Dynamic Source Routing (DSR)From Shweta Jain’s Slides
• When node S wants to send a packet to node D, but does not know a route to D, node S initiates a route discovery.
• Source node S floods the network with route request (RREQ) packets (also called query packets).
• Each node appends its own address in the packet header when forwarding RREQ.
23
Route Discovery in DSR
A
S E
F
B
C
G D
RREQ broadcast[S]
represents a node that has received RREQ for D from S.
[X,..,..] Represents list of addresses appended to RREQ.
A node receiving a RREQ rebroadcasts it exactly once.
24
Route Discovery in DSR
represents a node that has received RREQ for D from S.
A
S E
F
B
C
G D
RREQ broadcast[S,E]
[X,..,..] Represents list of addresses appended to RREQ.
[S,C]
[S,A]
A node receiving a RREQ rebroadcasts it exactly once.
25
Route Discovery in DSR
A
S E
F
B
C
G D
RREQ broadcast
[S,E,F]
[S,C,G]
[S,A,B]
Destination D receives RREQ via G and F.
It does not broadcast it further.
26
Route Discovery in DSR
• Destination D on receiving the first RREQ, sends a Route Reply (RREP).
• RREP is sent on a route obtained by reversing the route appended to received RREQ.
• RREP includes the reverse route from S to D on which RREQ was received by node D.
27
Route Reply in DSR
A
S E
F
B
C
G D
RREP Unicast
[D,F,E,S]
Reverse routein the header of RREP
28
Route Caching in DSR
• Node S on receiving RREP, “caches” the route included in the RREP.
• When node S sends a data packet to D, the entire route is included in the packet header– Hence the name source routing.
• Intermediate nodes use the source route included in a packet to determine to whom a packet should be forwarded.
29
Data Delivery in DSR
A
S E
F
B
C
G D
Cache on S:[S,E,F,D]
DATA [S,E,F,D]
DATA packet Unicast
Source route size grows with route length.
30
Route Error
• If the next hop link is broken when a data packet is being forwarded, a Route Error (RERR) is generate and propagated backwards.
A
S E
F
B
C
G D
Cache on S:[S,E,F,D]
DATA [S,E,F,D]
DATA packet Unicast
31
Route Error
• If the next hop link is broken when a data packet is being forwarded, a Route Error (RERR) is generated and propagated backwards.
• RERR contains the failed link info.
A
S E
F
B
C
G D
Cache on S:[S,E,F,D]
RERR [F,E,S] [Failed link = FD]
RERR is Unicast
32
Route Error
• When S receives RERR, it erases any cached route with the failed link.
A
S E
F
B
C
G D
Cache on S:[S,E,F,D]
RERR [F,E,S] [Failed link = FD]
RERR is Unicast
33
Aggressive Route Caching• Each node caches a new route it learns by any means• When node S finds route [S,E,F,D] to node D, node S
also learns route [S,E,F] to node F and so on.• When node G receives RREQ [S,C] destined for node
D, node G learns route [G,C,S] to node S and so on.• When node F forwards RREP [D,F,E,S], node F learns
route [F,D] to node D and so on.• Basically, when forwarding any packet, the node
learns a route to all nodes in the source route contained in the packet.
34
Contents of Caches on Selected Nodes After one RREQ-RREP Cycle
• [P,Q,R] represents cached route at a node P.• More than one route may be cached for the same destination.• Compact data structures may be used to implement route caches
(e.g., tree).
A
S E
F
B
C
G D [D,F,E,S][D,G,C,S]
[F,E,S][F,D][F,G,C,S]
35
Use of Route Caching• Salvaging: When node S learns that a route to node D
is broken, it uses another route from its local cache, if such a route to D exists in its cache. – Otherwise, node S initiates route discovery by sending a
route request• Reply from Cache: Node X on receiving a RREQ for
some node D can send a Route Reply if node X knows a route to node D.
• Aggressive use of route cache – can speed up route discovery.– can reduce propagation of route requests.
36
Route Caching: Beware!• Stale caches can adversely affect performance.• With passage of time and host mobility, cached
routes may become invalid.• All cached routes containing a failed link are not
erased by route error (RERR).– Only that route is erased that is attempted to be used
• A sender host may try several stale routes (obtained from local cache, or replied from cache by other nodes), before finding a valid route.
37
Dynamic Source Routing: Advantages
• Source routing: no special mechanism needed to eliminate loops.
• On demand routing: Routes maintained only between nodes who need to communicate– Reduces overhead of route maintenance.
• Route caching can further reduce route discovery overhead.• A single route discovery may yield many routes to the
destination, due to intermediate nodes replying from local caches.– Useful when route breaks.
38
Dynamic Source Routing: Disadvantages
• Not scalable: Packet header size grows linearly with route length due to source routing.
• Network-wide flood: Flood of route requests may potentially reach all nodes in the network. Too much overhead.
• Collision: Care must be taken to avoid collisions between route requests propagated by neighboring nodes– insertion of random delays before forwarding RREQ
• Reply storm problem: Increased contention if too many route replies come back due to nodes replying using their local cache– Reply storm may be eased by preventing a node from sending
RREP if it hears another RREP with a shorter route.
39
Dynamic Source Routing: Disadvantages
• Stale cache problem: An intermediate node may send Route Reply using a stale cached route, thus polluting other caches.
• This problem can be eased if some mechanism to purge (potentially) invalid cached routes is incorporated.
• Current research: how to invalidate caches effectively.– Example: Timer-based. Or propagate the route error
widely.
40
Ad Hoc On-Demand Distance Vector Routing (AODV)
From Shweta Jain’s Slides
• AODV retains the desirable feature of DSR that routes are maintained only between nodes which need to communicate.
• AODV attempts to improve on DSR by maintaining routing tables at the nodes, so that data packets do not have to contain routes.
• No caches are used.– Only one route per destination in the routing table.– Only maintain the freshest route, if multiple
possibilities.
41
AODV• Route Requests (RREQ) are forwarded in a
manner similar to DSR.• When a node re-broadcasts a RREQ, it sets up
a reverse path pointing towards the source.– This is so that the RREP can get back to the
source. • When the intended destination receives a
RREQ, it replies by sending a RREP.• RREP travels along the reverse path set up
when RREQ is forwarded.
42
AODV Route Discovery
• Source floods route request (RREQ) in the network.• Reverse paths are formed when a node hears a route request.• Each node forwards the request only once (pure flooding).
A
S E
F
B
C
G D
RREQ broadcast
43
AODV Route Discovery
A
S E
F
B
C
G D
• Source floods route request in the network.• Reverse paths are formed when a node hears a route request.• Each node forwards the request only once (pure flooding).
Reverse Path
44
AODV Route Discovery
A
S E
F
B
C
G D
• Uses hop-by-hop routing.• Reverse paths are formed when a node hears a route request.• Each node forwards the request only once (pure flooding).
RREQ broadcast
Reverse Path
45
AODV Route Discovery
A
S E
F
B
C
G D
• Uses hop-by-hop routing.• Reverse paths are formed when a node hears a route request.• Each node forwards the request only once (pure flooding).
Reverse Path
46
AODV Route Discovery
• Route reply (RREP) is forwarded via the reverse path.
A
S E
F
B
C
G D
Reverse Path
47
AODV Route Discovery
• Route reply is forwarded via the reverse path … thus forming the forward path.
• The forward path is used to route data packets.
A
S E
F
B
C
G D
Forward Path
Reverse Path
48
Route Expiry on Timeout
• A routing table entry maintaining a reverse path is invalidated after a timeout interval– Timeout should be long enough to allow RREP to
come back• A routing table entry maintaining a forward
path is also invalidated if unused for certain interval.– This means unused routes are purged.– Note that the route may still be valid.
49
Route Expiry
• Unused reverse paths expire based on a timer.
A
S E
F
B
C
G D
Forward Path
50
Link Failure Detection
• Hello messages: Neighboring nodes periodically exchange hello or keep-alive messages.
• Absence of any hello message for some time is used as an indication of link failure.
• Alternatively, failure to receive several link-layer ACK for a transmitted packet may be used as an indication of link failure.
• Note DSR needs to use one of the above as well.
51
Route Error
• When a node X is unable to forward packet P (from node S to node D) on link (X,Y), it generates a RERR message back to S.
• How to forward the RERR to S? X may not have a route to S.
• RERR is broadcast. Any node having an active route to D, rebroadcasts RERR after invalidating that route.
52
Route Error Propagation
• Link breakage on an active route triggers route error (RERR).
A
S E
F
B
C
G D
53
Route Error Propagation
• F invalidates the route to D, and broadcasts RERR.
• E notes that it has a route to D via F, and it continues the process.
A
S E
F
B
C
G D
RRER broadcast
54
Route Error Propagation
• F invalidates the route to D, and broadcasts RERR.
• E notes that it has a route to D via F, and it continues the process.
A
S E
F
B
C
G D
55
Route Error Propagation
• The entire upstream route is erased. • S starts fresh route discovery if needed.
A
S E
F
B
C
G D
56
Possibility of Routing Loops!
• Useful optimization: An intermediate node with a route to D can reply to route request.– Faster operation.– Quenches route request flood.
• Wireless reality: Routing messages can get lost.
• It can be shown that above can cause long-term routing loops.
57
Possibility of Routing Loops!
• Assume that A does not know about failure of link C-D because route error sent by C is lost.
• Now C performs a route discovery for D. Node A receives the route request (say, via path C-E-A)
• Node A will reply since A knows a route to D via node B• Results in a loop (for instance, C-E-A-B-C )
A B C D
E
58
Use of Sequence Numbers in AODV
• Each node X maintains a sequence number and increments it at suitable intervals.
• Seq. no. acts like a logical clock.• Each node Y with a route to X in the routing
table, also maintains a destination sequence number for X, which is Y’s latest knowledge of X’s sequence number.
• Destination sequence no. can be used to order routing updates.
59
Use of Sequence Numbers in AODV
• Loop freedom: The protocol maintains the invariant that the destination sequence number for any destination D never decreases along any valid route.– No routing info is accepted by a node X from any node Y, where Y’s
destination seq. no. for D is less than X’s destination seq. no. for D.• Freshest route: Given a choice of multiple routes, the protocol
always chooses the one with the highest sequence number.
X Y D?
Dest seq no. = 10 Dest seq no. = 7
Needs a route to D
Has a route to D
Seq. no. = 15
RREQ carries 10
Y does not reply, but forwards the RREQ
60
How Using Sequence Numbers can Avoid Loop?
• Link failure increments the destination seq. no. at C (now is 10).
• If C needs a route to D, RREQ carries the current dest. seq. no. (10).
• A does not reply as its own dest. seq. no. is less than 10.
A B C D
E
109
9
7
5 All seq no’s are for D(called destination seq. no.)
61
Summary: AODV
• No source routing. Based on routing tables.• Use of sequence numbers to prevent loops.• At most one route per destination maintained at
each node– Only the freshest one is maintained (via destination seq.
no.) – Stale route problem is less severe.– After link break, all routes using the failed link are erased.
• Unused routes expire even if valid.
62
Flood Control Optimization
D
S
• Use of Max Hop Count (TTL) Field
• Limits query propagation within a certain number of hops from the source.
• Expanding ring search.• Can still flood a substantial part
of the network if destination is far away.
63
Flood Control Optimization
D
S
• Limits query propagation within a certain number of hops from the source.
• Expanding ring search.• Can still flood a substantial
part of the network if destination is far away.
Proactive Protocols
Optimized Link-State Routing (OLSR)
Proactive
65
Link State Routing• Each node floods the network with the status of its links
– Flood can be periodic.– Or, when a neighborhood change is detected.
• Each node keeps track of link state information received from other nodes– Thus builds its own view of the network connectivity.
• Each node uses its view of network connectivity to construct a routing table for each destination.– For example, each node can run a shortest-path algorithm
(e.g., Dijkstra’s) on its own view of the connectivity graph.– Different nodes can use different objective for routing.
Types of Discovery
• Discover your local neighbors– Hello messages– Sent only 1-hop, never flooded
• Discover the total network topology– Link state advertisement (LSA) messages– Flooded throughout the network
Link State Algorithm
Flooding:1) Periodically distribute link-state advertisement (LSA) to neighbors
- LSA contains delays to eachneighbor
2) Install received LSA in LS database3) Re-distribute LSA to all neighbors
Path Computation1) Use Dijkstra’s shortest path algorithmto compute distances to all destinations2) Install <destination, nexthop> pair inforwarding table
68
OLSR: Optimized Link-State Routing
• Only multipoint relays (MPR) participate in flooding.
• Multipoint relays of node X are its neighbors such that each two-hop neighbor of X is a one-hop neighbor of at least one multipoint relay of X.– Each node transmits its neighbor list in hello messages,
so that all nodes know their 2-hop neighbors, in order to choose the multipoint relays.
– Select as few multipoint relays as possible.• Only multipoint relays are used for flooding.
69
Traditional Flooding
24 retransmissionsneeded to floodthe network
70
Multipoint Relays
11 retransmissionsneeded to floodthe network
71
Optimized Link State Routing (OLSR)• OLSR floods link-state information only through
multipoint relays.• Routes used by OLSR only include multipoint relays
as intermediate nodes. • Each node maintains information about its MPR
(multipoint relay) selector set, i.e., set of neighbors that have selected itself as MPR.
• Each node with non-empty MPR selector set periodically floods the network with topology control (TC) messages containing own MPR selector set. – This information is used to construct the topology
database used for routing calculations.
Delay-Tolerant Networks
Disruption Tolerant Networks
• DTN Characteristics– Intermittent connectivity– Partitioning– No guarantee of end-to-end paths
• Goals:– High message delivery ratio– Acceptable delay
• Routing Approach – Store-carry-and-forward routing– Replication
73
Emergency response networksCommunity networksBattlefield networks
No Reliance on Infrastructure• Benefit of DTN communication
– Allows end-users to not rely on infrastructure
• Infrastructure may be not available– Destroyed (emergency response)– Never there (military / third-
world development)• Infrastructure may not be ideal
– Costly (community networks)– Overloaded / Slow (community
networks)
74
Instead, mobility is used to form connections
Replication is used to overcome intermittent connectivity
Routing Considerations
• Are contacts scheduled or not?• Can I extract any information from the
mobility?• Based on these questions:– How much do I replicate?– Who do I give replicas to?– Which packets do I send / drop first?
Routing Categories
Replication Scale
Direct Delivery Quota-based Flooding-based Epidemic
Spray and WaitSpray and FocusEncounter-based Routing
MaxPropProphetRAPID
Hard limit on number of replicates per message
No limit on number of replicas
Epidemic Routing
• If nothing is known and resources are available, just send to everyone!
• Epidemic routing is the DTN equivalent to flooding:
S
D
I
S
D
I
S
D
I
Synchronizing
A B
M1M2M5
M1M4M6
I have 1, 2, and 5
I’ll take 2, 5
M2
M5
M2 ACK
M5 ACK
Pros and Cons
• Pros:– Extremely simple to implement– Optimal in terms of delivery and delay if no
resource constraints• Cons:– Performance greatly suffers if there are resource
constraints (buffer, bandwidth, contact duration)
MaxProp
• High replication is good, if we can properly manage the buffers– Which messages do I send first?– Which messages do I drop first?
• Still replicate all messages to all contacts!
MaxProp
S D1. Bandwidth
2. Storage3. Contact duration
• Maintain a priority-ordered queue– Priority is estimated delivery likelihood– Forward copies of all messages in this order
Which packets do I send first?
Meeting Probabilities
• Each node maintains a vector of size n:– i th entry indicates probability of meeting node i.– Upon meeting a node, increment by 1 and normalize
A
B
.25
C
.25
D
.25
E
.25
D
B
.25
C
.25
D
1.25
E
.25
B
.125
C
.125
D
.625
E
.125
• Each node stores n of these vectors:o Upon meeting a node, exchange vectors
Transmission: O(n)Storage: O(n2)
Path Cost Calculation• The cost of a path is the
sum of probabilities that each connection on the path does not occur
• Choose the path with minimal cost
A
D
CB
B C
.5 .5
B C
.6 .4
A C
.25 .5
D
.25
A B
.2 .6
D
.2
Path Costs:ABD = (1 - .5) + (1 - .25) = 1.25ACD = (1 - .5) + (1 - .2) = 1.3ABCD = (1 - .5) + (1 - .5) + (1 - .2) = 1.8ACBD = (1 - .5) + (1 - .6) + (1 - .25) = 1.65
Complementary Mechanisms• Acknowledgements
– Flooded, to clear out buffers– Hash of message (128bits)
• Packet “head start”– Give priority to low hop-count packets
• Buffer management– Drop order
• Acknowledged messages• Lowest delivery score• Highest hop count
Protocol1. Direct delivery2. Routing information3. Acknowledgements4. Low hop-count pkts5. Remaining pkts
Spray and Wait
• Strictly limit replication– Message copies contain quota– Distribute quota at replication
time • Benefits
– Resource friendly• Limitations
– Potential reduced delivery ratio– May miss important contact
opportunities
85
4
2 2
Message
Quota
1 1
Buffer management is too difficult, so instead just limit replication
Example
S
D
4
1 2
Spray PhaseGive a replica with half my quota to my current contact
S
D
1
1 1
Wait PhaseWhen quota is 1 for a replica, only direct delivery is allowed
1 1
Pros and Cons
• Pros:– Very resource friendly– Doesn’t require a complex buffer management
technique– No routing overhead
• Cons:– You may give valuable quota away to useless nodes– Node mixing must be high and, to some extend,
random
Encounter-Based Routing• Insight:
– Popularity can be used to determine forwarding usefulness• Naive Approach
– Give entire message, or a replica of the message, to the more popular node• EBR’s Approach
– Distribute quota in proportion to node “popularity”– Easily extendable to groups by distributing quota in proportion to group
popularity
Little Lot
88
Low popularity
High popularity
Measuring Popularity
• Encounter value (EV)– Gauge overall popularity of a node– Counting Window
• Count contacts (perhaps not unique) within a specified window (CWC)• Update using an exponentially weighted moving average
89
EVCWCEV )1(
• EV can be expanded to multiple dimensions– Gauge popularity with different groups– Each dimension represents a group– Update EV in the dimension of the contact’s group(s)
Distributing Quota• Node A meets Node B– Get Node B’s EV (extremely low overhead)– Determine amount of initial quota M (if any) to keep and to give
Node B, for each message in A’s buffer
– Transmit a copy of message with the new quota for B• Proportional– Quota flow from high popularity to low popularity can occur,
mitigating local maximums90
BA
B
EVEVEVMGive
Example
91
A B
4
8
EVA = 5 EVB = 15
Example
92
43
15515
BA
B
EVEVEV
41
1555
BA
A
EVEVEV
A sends ¾ of all quota to B B sends ¼ of all quota to A
A B
4
8
EVA = 5 EVB = 15
Example
93
43
15515
BA
B
EVEVEV
41
1555
BA
A
EVEVEV
A sends ¾ of all quota to B B sends ¼ of all quota to A
A B
4
8
EVA = 5 EVB = 151
3
6
2
Give away
Give away
Keep
Keep
Pros and Cons
• Pros:– Very resource friendly– Very low routing overhead– Can still achieve high results
• Cons:– Assumes uneven popularities, and that popularity
will stay the same for a node– Can miss important contact opportunities due to
being quota-based
Conclusions
• Mobile networking is a very interesting and active field of research!– DTNs– Vehicular networks– Underwater networks– Sensor networks
• Other topics, such as mobile security and privacy, have lots of activity as well.