-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- Thesis: Peer-to-Peer Networking on Mobile Devices (sharelatex.com)
- Bookmarks: http://share.xmarks.com/folder/bookmarks/iFirMHBQMz
- Wi-Fi or WLAN
- peer-to-peer or p2p or P2P
- X range of WLAN, Bluetooth -> and which version?
- X Firechat
- security: sensitive data
- usability battery drain: solve with beacon or with on/off switch?
- explain Realm database
- Gradle vs Jenkins for managing dependencies
- X find a name for the app
- change introductory perspective: more critical. p2p competing against better connectivity and use cases that have low investment interests: emergencies/demonstrations -> gimmick for festivals?
- this weird onboarding thing for alljoyn: https://allseenalliance.org/framework/documentation/develop/run-sample-apps/onboarding/android
- early on: mention this blog post http://blog.moritzhaarmann.de/blog/2014/04/27/sorry-state-of-p2p/
- battery consumption, compare: firechat fotohop p2pkit-starter alljoyn
- source: https://www.youtube.com/watch?v=5NDmDtgpCEw
- introduced in iOS7, also MAC OS X ???
- is a library
- find nearby devices and communicate with them
- protocols are undocumented -> reverse them -> see how they work behind the scenes
- documentation on how to use it: yes. how it works: no.
- encryption, authenticaton
- uses bluetooth or wifi, tries to find the best, youc annot choose
- reverse a protocol? look at packet capture -> 4 different protocols (2 not known to Wireshark)
- Protocol 1: Bonjour (Apple technology) -> find services on a LAN. App advertises local MC service (choose name) and nearby devices can find it. They then get the IP adress and TCP port to connect to that service.
- Protocol 2: unknown, something with TCP -> each peer sends their PeerID first -> then three plist (property list of key value pairs) -> they exchange connection data keys / connection data (peer names, security options and candidate UDP sockets)
- Protocol 3: list of candidate IP addresses and port numbers, it does connectivity checks to find the best network path to the other peer;
- Protocol 4: unknown, somthing over UDP -> protocol used when sending messages; perform DTLS handshake (datagram transport layer security protocol), check the other peer's identity, exchange data -security analysis (16:50min): affects protocol 4,
- respect user privacy
- help user understand what data the app will expose to nearby users
- require the user to perform an explicit action to activate Nearby
- battery consumption: Nearby's use of radios and sensors will cause your app to consume battery at 2.5-3.5 times the normal rate
- only use one Activity AND when this Activity is running in foreground for establishing the connection
- enables devices to easily connect with each other
- does not require wireless access point (WAP)
- only works with shared access point between devices, i.e. have to be on the same network
- is an SDK
- is it cross-platform?
- does it work when devices are not in the same wifi network? yes
- is it open-source? (source: http://p2pkit.io/developer/)
- no security at AllJoyn router layer
- authentication & encryption at AllJoyn application layer
- auth mechanisms: read here... https://allseenalliance.org/framework/documentation/learn/core/system-description/alljoyn-security
- Eclipse is supported IDE
Why is development of an application that performs cross-platform mobile ad hoc networking so difficult to achieve? Each platform has their own approach to enabling "High-bandwidth local connectivity without a central instance like a WiFi AP" (source: http://blog.moritzhaarmann.de/blog/2014/04/27/sorry-state-of-p2p/)
- iOS – Apple's networking framework Multipeer Connectivity: uses infrastructure Wi-Fi networks, peer-to-peer Wi-Fi, and Bluetooth personal area networks for the underlying transport
- Android – (1) WiFi Peer-to-Peer (WiFi P2P): allows devices with appropriate hardware to connect directly to each other via Wi-Fi and (2) Bluetooth
- the only technology that is shared: BLE (Bluetooth Low Energy), but payload size is only 21 bytes
Reasons
- If, as is the case with Apple's Multipeer Connectivity, you can provide a framework that is attractive to work for developers, but only works on your own platform, you may consolidate your position on the market.
- Security concerns?
- Difficult to ensure hardware compatibility (even on one platform, this is difficult: "Android 4.0 (API level 14) or later devices with the appropriate hardware" (source: Wi-Fi Peer-to-Peer documentation)) – this changes constantly, and, in the case of Android, is impossible to monitor because of all of the different hardware manufacturers. Does this rely a lot on hardware? Does this rely more on hardware than establishing a WLAN connection?
Flooding and Hash Tables
- ad hoc -> devices connect without an access point (when they are within range of each other), routing of packets happens spontaneously, there is no preexisting, fixed infrastructure
- wireless -> via radio, whether it's using wireless Ethernet/Wi-Fi (IEEE 802.11 technology) or Bluetooth
- consists of routers connected in a wireless mesh topology
- routers are relatively fixed (quasi-stationary)
- clients connect to mesh routers as they would to normal access points
- multi-hop forwarding
- no direct connectivity between clients (source2)
- example: Freifunk, Serval
- use cases:
- Wi-Fi connectivity in small/big businesses/campuses
- video monitoring
- mobile nodes that communicate using wireless links in a network without preexisting infrastructure
- multi-hop -> nodes forward packets wirelessly towards other nodes; in this case: hop-by-hop
- nodes operate as / can be both end hosts as well as routers
- example: Firechat, SPAN project
- use cases:
- military/battlefield
- emergency
- personal: for communities/conferences/group meetings/schools/demonstrations/festivals
(source: Peer-to-Peer Overlay in Mobile Ad-hoc Networks by Castro, Kassler, Chiasserini, Korpeoglu) (source2: On Mobile Mesh Networks by Namiot)
- is an application architecture
- counter part to client-server architecture
- no always-on server
- participating hosts can change IP address every time they come on
- peers communicate directly with each other without passing through some special server
- exploits the resources in users' computers – storage, content, CPU cycles and human presence (Kurose and Ross p.58)
- pro: scalability (each oncoming peer increases demand but also service capacity)
- con: difficult to manage because highly distributed & decentralized
- example: Napster
- is an application architecture
- counter part to peer-to-peer
- has an always-on host, the server, which services requests from many other hosts, the clients
- server has a fixed, well-known IP address
- one server not enough? server farms
- example: the Web, e-mail
- example: Napster
- p2p: files exchanged directly among peers without passing through servers
- cs: peer queries a central server to determine which currently-up peers have a desired file
- example: instant messaging
- p2p: text sent between two users does not go through server
- cs: peers register themselves at a central server when going online, and peers contact server to know which peers are currently up
(sources: pp75-79 Computer Networking by Kurose, Ross)
Peer-to-peer is an application architecture and a communication paradigm -> Can be understood as an overlay on top of existing networks (such as WMNs, MANETs) -> Is the higher-level idea
- both need to be online at the same time to actually exchange quests (workaround? transmit ID with beacon, then find them online? is this how happn works?)
Have to look at peer-to-peer from an honest standpoint: what can be leveraged of p2p is the ability to make proximity connections and to enhance your analogue/real life experience. Using Wi-Fi and Bluetooth sensors to browse for peers constitutes a substantial battery drain for the user's phone, so in contrast to p2p networks that include static workstations (laptops), looking for peers is actually very user-hostile. And even in the area of static workstations, one of the main challenges of p2p is routing which includes registering and unregistering and finding active nodes.
[older]
- a network topology (among bus, ring, star, tree)
- every computer is directly connected to every other one
- con: expensive
- pro: if one connection fails, there is always another route
(source: p26 Communications and Networking by Cowley)
(source: Anonymity and Privacy in Wireless Mobile Ad Hoc Networks by Taheri)
- when spontaneously constructed networks deal with immediate demands such as short term local communication
- do not use any fixed infrastructure (no base station, access points, remote servers)
- nodes do not have access to high power supplies, restricted to battery power capacity -> energy efficiency is an important requirement
- nodes function as hosts as well as routers in the network to route data packets between communicating pairs
- are autonomous networks interconnected in a multi-hop manner via wireless links between the nodes
(source: Johann Van Der Merwe, Dawoud Dawoud and Stephen McDonald. A survey on peer-to-peer key management for mobile ad hoc networks. ACM Comput. Surv., vol. 39, no. 1, page 1, 2007. (Cited on page 4.)
- the determination of which nodes forward data is made dynamically based on the network connectivity (source: https://en.wikipedia.org/wiki/Wireless_ad_hoc_network) -> therefore WMN is also ad hoc (source: Computer Networking by Kurose, Ross pp506-507)
- hosts are not associated with a base station (as is the case in infrastructure mode)
- hosts themselves must provide for services such as routing, address assignment, DNS-like name translation, etc
- radio nodes organized in a mesh topology (source: https://en.wikipedia.org/wiki/Wireless_mesh_network)
- a form of WANET
- mesh clients are wireless devices (laptops, cell phones)
- mesh routers: forward traffic to/from the gateways
- gateways may but need not be connected to the internet
- self forming, self healing -> self organizing network (SON), just like the others
- not restricted to any one technology or protocol
- application examples and communities: OLPC, freifunk & similar communities
- there are more than 70 competing schemes for routing packets across mesh networks
- self-configuring networks of mobile devices
- applications:
- Bluetooth (exchange data in short distance between devices such as mobile phones, PCs, printers)
- Military (communicate voice or data about the current battle field situation while moving in the field, nodes are in radio range of one neighbor)
- Temporary networks (meetings, conferences, conventions to share data OR disasters, when local infrastructure is destroyed)
- Vehicular networks, VANETs (local communication between cars or cars and roadside access points)
- Sensor networks (smart buildings, environmental parameter measuring)
(source: Anonymity and Privacy in Wireless Mobile Ad Hoc Networks by Taheri)
- WANET (Wireless Ad hoc Networks)
- MANET (Mobile Ad hoc Networks)
- iMANET
- SPAN (Smart Phone Ad hoc Networks) [you are here!]
- VANET (Vehicle Ad hoc Networks)
- WMN (Wireless Mesh Networks) [this is where freifunk is at!]
- WSN (Wireless Sensor Networks) (I kinda deduced this from wikipedia articles on each topic and this: http://sparkandshine.net/clarify-concepts-wanet-manet-wmn-wsn-dtn/ which basically sums up the wikipedia articles. Need literature on this.)
- MANET (Mobile Ad hoc Networks)
Dr. Somayeh Taheri (http://www.uni-goettingen.de/en/133507.html) has published a body work around the topic of MANETs, particularly security and privacy issues of wireless networks. Example: Anonymity and Privacy in Wireless Mobile Ad Hoc Networks
[older]
Train of thought: Mesh networks -> wireless mesh network
A mesh network is a network topology in which each node relays data for the network. All nodes cooperate in the distribution of data in the network. Technique: either flooding or routing.
Routing: message is propagated along a path by hopping from node to node until it reaches its destination. Relevant: Shortest Path Bridging, a self-healing algorithm. Flooding: a simple computer network routing algorithm in which every incoming packet is sent through every outgoing link except the one it arrived on. (Advantage: Simple to implement, will use shortest path, packet will be delivered; disadvantage: costly bc of wasted bandwidth, duplicated packets may circulate forever if no precautions are taken)
(Wireless) mesh networks can be seen as a special type of (wireless) ad-hoc networks.
Mesh networks are typically wireless.
Examples: OLPC, freifunk
Network is called ad hoc because it does not rely on a preexisting infrastructure, such as routers in wired networks or access points in managed wireless networks. Instead, each node participates in routing by forwarding data for other nodes, so the determination of which nodes forward data is made dynamically on the basis of network connectivity. source An ad-hoc network is formed ad hoc when wireless devices come into each other's communication range. source
Ad hoc as opposed to managed
Categories:
- MANET – Mobile Ad Hoc Networks
- WMN – Wireless Mesh Networks
- WSN – Wireless Sensor Networks
Wireless mobile ad hoc networks are self-configuring, dynamic networks in which nodes are free to move. Wireless networks lack the complexities of infrastructure setup and administration, enabling devices to create and join networks "on the fly" – anywhere, anytime. (source: Chai Keong Toh. Ad Hoc Mobile Wireless Networks. United States: Prentice Hall Publishers, 2002) continuously self-configuring, infrastructure-less network of mobile devices connected without wires
SPANs leverage the existing hardware (primarily Bluetooth, Wi-Fi) in smartphones to create peer-to-peer networks without relying on cellular carrier networks, wireless access points, or traditional infrastructure. source
Train of thought: Peer-to-peer idea in general -> peer-to-peer networks -> peer-to-peer computer networks -> peer-to-peer on mobile applications
What is commonly referred to as WLAN router is a combination of WAP (Wireless Access Point), switch and router. The routing is done between WLAN and WAN, or LAN and WAN. WAP
what makes a messenger platform valuable is not how great, secure, or feature-rich this platform is, but rather how many people can be reached with it
- Studies: link
- Secondary liability is the legal situation that makes the owners of open / non-encrypted wireless access points liable for what other users do over their internet connection source
-
The Sorry State of P2P (blog post) -> Conclusion: Android and iOS come with different technologies, the only common ground is BLE (Bluetooth Low Energy)
☹️ - iOS7 includes Multipeer Connectivity
- Android has Wi-Fi Peer-to-Peer
- The AllJoyn protocol is transport-layer-agnostic
- https://www.technologyreview.com/s/525921/the-latest-chat-app-for-iphone-needs-no-internet-connection/
- http://www.wired.co.uk/article/firechat-full-mobile-carrier-free
- https://techcrunch.com/2016/08/08/firechat-brings-private-group-chat-to-its-off-grid-messaging-service/
- http://venturebeat.com/2014/06/24/no-internet-no-problem-this-app-lets-you-send-chats-offline-across-ios-android/
- https://www.theguardian.com/technology/2014/jun/24/firechat-updates-as-40000-iraqis-download-mesh-chat-app-to-get-online-in-censored-baghdad
Unterstützt von der HTW Berlin hat CADUS begonnen, ein auf p2p basierendes Kommunikationssystem zu entwickeln. http://www.cadus.org/de/
http://www.libelium.com/products/meshlium/smartphone-detection/