Ahoy: A Proximity-Based Discovery Protocol Robbert Haarman Contents - - PowerPoint PPT Presentation

ahoy a proximity based discovery protocol
SMART_READER_LITE
LIVE PREVIEW

Ahoy: A Proximity-Based Discovery Protocol Robbert Haarman Contents - - PowerPoint PPT Presentation

Ahoy: A Proximity-Based Discovery Protocol Robbert Haarman Contents 1. Introduction to Ahoy 2. Protocol Overview 3. Message Types 4. Attenuated Bloom Filters 5. My Contributions 6. Summary 7. Questions Part 1 Introduction to Ahoy What is


slide-1
SLIDE 1

Ahoy: A Proximity-Based Discovery Protocol

Robbert Haarman

slide-2
SLIDE 2

Contents

  • 1. Introduction to Ahoy
  • 2. Protocol Overview
  • 3. Message Types
  • 4. Attenuated Bloom Filters
  • 5. My Contributions
  • 6. Summary
  • 7. Questions
slide-3
SLIDE 3

Part 1 Introduction to Ahoy

slide-4
SLIDE 4

What is Ahoy?

  • 1. Ahoy is a service discovery protocol.
  • 2. Ahoy is designed for mobile ad-hoc

networks.

  • 3. Ahoy is decentralized.
  • 4. Ahoy is efficient.
slide-5
SLIDE 5

What is Ahoy?

  • 1. Ahoy is a service discovery protocol.
  • 2. Ahoy is designed for mobile ad-hoc

networks.

  • 3. Ahoy is decentralized.
  • 4. Ahoy is efficient.
slide-6
SLIDE 6

Service Discovery

slide-7
SLIDE 7

What is Ahoy?

  • 1. Ahoy is a service discovery protocol.
  • 2. Ahoy is designed for mobile ad-hoc

networks.

  • 3. Ahoy is decentralized.
  • 4. Ahoy is efficient.
slide-8
SLIDE 8

Traditional Infrastructure Network

slide-9
SLIDE 9

Mobile Ad-Hoc Network

slide-10
SLIDE 10

Challenges

  • Services may be located multiple hops

away

  • Connectivity may change
  • Limited resources
slide-11
SLIDE 11

What is Ahoy?

  • 1. Ahoy is a service discovery protocol.
  • 2. Ahoy is designed for mobile ad-hoc

networks.

  • 3. Ahoy is decentralized.
  • 4. Ahoy is efficient.
slide-12
SLIDE 12

Decentralized

  • No reliance on a central authority
  • Helps deal with connectivity changes
slide-13
SLIDE 13

What is Ahoy?

  • 1. Ahoy is a service discovery protocol.
  • 2. Ahoy is designed for mobile ad-hoc

networks.

  • 3. Ahoy is decentralized.
  • 4. Ahoy is efficient.
slide-14
SLIDE 14

Efficiency

  • Ahoy sends few messages
  • Ahoy sends small messages
slide-15
SLIDE 15

How is Efficiency Accomplished?

  • Do not send all information to everyone
  • Do not send all information
slide-16
SLIDE 16

Part 2 Protocol Overview

slide-17
SLIDE 17

Protocol Overview

  • Tell where information can be found
  • When information is needed, find it
slide-18
SLIDE 18

Ahoy

slide-19
SLIDE 19

Ahoy

slide-20
SLIDE 20

Ahoy

slide-21
SLIDE 21

Ahoy

slide-22
SLIDE 22

Part 3 Message Types

slide-23
SLIDE 23

Five Message Types

  • Announcements
  • Queries
  • Responses
  • Keep-Alive Messages
  • Update Requests
slide-24
SLIDE 24

Five Message Types

  • Announcements
  • Queries
  • Responses
  • Keep-Alive Messages
  • Update Requests
slide-25
SLIDE 25

Announcements

  • Tell where to find service information
  • Multiple layers

– First layer: services of sending node – Second layer: services of sender's neighbors – And so on, up to configurable limit

  • Sent to all direct neighbors
slide-26
SLIDE 26

Distribution of Announcements

slide-27
SLIDE 27

Distribution of Announcements

slide-28
SLIDE 28

Distribution of Announcements

slide-29
SLIDE 29

Five Message Types

  • Announcements
  • Queries
  • Responses
  • Keep-Alive Messages
  • Update Requests
slide-30
SLIDE 30

Queries

  • Request service details
  • Contain service name
  • Are sent from neighbor to neighbor
  • Only to neighbors who know about the

service

  • Only to neighbors who are close to the

service

slide-31
SLIDE 31

Distribution of Queries

slide-32
SLIDE 32

Distribution of Queries

slide-33
SLIDE 33

Distribution of Queries

slide-34
SLIDE 34

Five Message Types

  • Announcements
  • Queries
  • Responses
  • Keep-Alive Messages
  • Update Requests
slide-35
SLIDE 35

Responses

  • Tell service details

– Specifically: IP address and port number

  • Sent from node offering service to node

sending query

slide-36
SLIDE 36

Response Distribution

slide-37
SLIDE 37

Response Distribution

slide-38
SLIDE 38

Response Distribution

slide-39
SLIDE 39

Five Message Types

  • Announcements
  • Queries
  • Responses
  • Keep-Alive Messages
  • Update Requests
slide-40
SLIDE 40

Keep-Alive Messages

  • “I'm still here!”
  • Sent to direct neighbors
  • Detect changes in topology
  • Detect missed announcements

– Through announcement id

  • No keep-alive received for a while:

– Information from neighbor is discarded

slide-41
SLIDE 41

Five Message Types

  • Announcements
  • Queries
  • Responses
  • Keep-Alive Messages
  • Update Requests
slide-42
SLIDE 42

Update Requests

  • “Could you repeat that?”
  • Sent when an announcement has been

missed

  • Causes announcement to be sent again
slide-43
SLIDE 43

Part 4 Attenuated Bloom Filters

slide-44
SLIDE 44

How To Tell Where Information Is

  • Announcements do not contain service

names

  • But they do tell where information can be

found

  • How?
  • Answer: Attenuated Bloom Filters
slide-45
SLIDE 45

Bloom Filters

  • Two operations:

– Adding an item – Testing if an item is present

  • Compact representation
  • Small chance of false positives
slide-46
SLIDE 46

Bloom Filter Implementation

  • Array of bits (initially all 0)
  • Set of hash functions
  • Each hash function maps a service name

to a bit in the array

slide-47
SLIDE 47

Bloom Filters: Adding Items

  • Apply each hash function to item
  • Set corresponding bits to 1
slide-48
SLIDE 48

Adding Service “printer”

  • Two hash functions

– First returns 1 – Second returns 5

  • Resulting Bloom filter:
slide-49
SLIDE 49

Bloom Filters: Item Present?

  • Apply each hash function to item
  • Test if corresponding bits are 1
  • If not all are 1, item is absent
  • If all are 1, item is probably present
  • Bits might be 1 because of other items
  • This is called a false positive
slide-50
SLIDE 50

Bloom Filters: Item Present

  • Bloom filter:
  • Service name “printer”
  • Two hash functions

– First returns 1 – Second returns 5

slide-51
SLIDE 51

Bloom Filters: Item Not Present

  • Bloom filter:
  • Service name “thermometer”
  • Two hash functions

– First returns 2 – Second returns 7

slide-52
SLIDE 52

Bloom Filters: False Positive

  • Bloom filter:
  • Service name “mail server”
  • Two hash functions

– First returns 5 – Second returns 1

slide-53
SLIDE 53

False Positives

  • False positives are bad
  • They cause queries to be sent
  • But no information will be found
  • Thus, resources are wasted
slide-54
SLIDE 54

Attenuated Bloom Filters

  • Multiple layers of Bloom filters
  • One layer for services of the sender
  • One layer for services of its neighbors
  • One layer for services of their neighbors
  • Etc.
slide-55
SLIDE 55

Combining Filters

slide-56
SLIDE 56

Combining Filters

slide-57
SLIDE 57

Combining Filters

slide-58
SLIDE 58

Combining Filters

slide-59
SLIDE 59

Attenuated Bloom Filters

  • Are small
  • Do not contain service names
  • But do tell which neighbor is likely to

know about a service

slide-60
SLIDE 60

Part 5 My Contributions

slide-61
SLIDE 61

My Contributions

  • Original idea from Geert, Fei, and Patrick
  • I implemented a prototype
  • I decided protocol details
  • I contributed some protocol

enhancements

  • I came up with the name
slide-62
SLIDE 62

The Prototype

  • Shows that Ahoy works
  • Forced details to be decided
  • Serves as a platform for further

experimentation

slide-63
SLIDE 63

Protocol Details

  • What message types exist?
  • What exactly do we put in them?
  • When do we send messages?
  • What technology do we build on top of?
slide-64
SLIDE 64

Protocol Enhancements

  • Original protocol sent announcements

periodically

  • I added keep-alive messages and update

requests

  • This saves resources:

– Keep-alive messages are 5 bytes – Announcements can be 100s or 1000s

slide-65
SLIDE 65

The Name

  • Ahoy is a pun on “Bonjour”, the service

discovery mechanism used by Apple

  • It also alludes to my fondness of sailing
slide-66
SLIDE 66

Part 6 Summary

slide-67
SLIDE 67

What is Ahoy?

  • Ahoy is an efficient, decentralized

service discovery protocol for mobile ad- hoc networks

slide-68
SLIDE 68

What Have I Contributed?

  • Prototype
  • Protocol Details
  • Protocol Enhancements
  • The Name
slide-69
SLIDE 69

What Have We Gained?

  • We know Ahoy works
  • We have an implementation
  • Design alternatives have been

documented

  • Other alternatives can be tried
slide-70
SLIDE 70

Part 7 Questions

slide-71
SLIDE 71

Thanks

  • Geert, Patrick, Fei, and Hartmut for their

ideas and feedback

  • Everyone for attending