Developers: Alexey Rastvortsev, Ilya Kolchinsky Supervisors: Roy Friedman, Alex Kogan.

Slides:



Advertisements
Similar presentations
UNIVERSITY OF JYVÄSKYLÄ Mobile Chedar – A Peer-to-Peer Middleware for Mobile Devices Presentation for International Workshop on Mobile Peer-to- Peer Computing.
Advertisements

Peer-to-peer and agent-based computing P2P Algorithms.
Project in Computer Security Integrating TOR’s attacks into the I2P darknet Chen Avnery Amihay Vinter.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Group Communications Group communication: one source process sending a message to a group of processes: Destination is a group rather than a single process.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Page: 1 Director 1.0 TECHNION Department of Computer Science The Computer Communication Lab (236340) Summer 2002 Submitted by: David Schwartz Idan Zak.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
VoIP on a Wireless LAN Orly Goren Tomer Shiran Lior Nir.
ICMP: Internet Control Message Protocol used by hosts, routers, gateways to communication network-level information –error reporting: unreachable host,
Distributed Systems Fall 2009 Replication Fall 20095DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
Hands-On Microsoft Windows Server 2003 Networking Chapter 7 Windows Internet Naming Service.
Chapter 23: ARP, ICMP, DHCP IS333 Spring 2015.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
Accelerating Service Discovery in Ad Hoc Zero Configuration Networking
DISTRIBUTED PROCESS IMPLEMENTAION BHAVIN KANSARA.
TCP/IP.
1 Chapter Overview Understanding Windows Name Resolution Using WINS.
Networking Components Chad Benedict – LTEC
Distributed Process Implementation Hima Mandava. OUTLINE Logical Model Of Local And Remote Processes Application scenarios Remote Service Remote Execution.
Distributed Process Implementation
Support Protocols and Technologies. Topics Filling in the gaps we need to make for IP forwarding work in practice – Getting IP addresses (DHCP) – Mapping.
Chapter 16 – DNS. DNS Domain Name Service This service allows client machines to resolve computer names (domain names) to IP addresses DNS works at the.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
DNS (Domain Name System) Protocol On the Internet, the DNS associates various sorts of information with domain names. A domain name is a meaningful and.
1 Computer Communication & Networks Lecture 28 Application Layer: HTTP & WWW p Waleed Ejaz
PA3: Router Junxian (Jim) Huang EECS 489 W11 /
Chapter 17 Domain Name System
1 Routing. 2 Routing is the act of deciding how each individual datagram finds its way through the multiple different paths to its destination. Routing.
KIS – Cvičenie #5 IP konfigurácia v prostredí OS Windows Marián Beszédeš, B506
Company LOGO mDNS (ICM3400) Proposal for Hierarchical Multicast Session Directory Architecture Piyush Harsh & Richard Newman.
Domain Name System CH 25 Aseel Alturki
Server Sockets: A server socket listens on a given port Many different clients may be connecting to that port Ideally, you would like a separate file descriptor.
October 8, 2015 University of Tulsa - Center for Information Security Microsoft Windows 2000 DNS October 8, 2015.
FTP Client Application CSC 8560 Brian Jorgage 4/27/2004.
ES 101. Module 2 IP Addressing & Routing. Last Lecture Wide area networking Definition of “packets”
The Internet Trisha Cummings ITE115. What is the Internet? The Internet is a world-wide network of computer networks that use a common communications.
Orbited Scaling Bi-directional web applications A presentation by Michael Carter
Module 7: Resolving NetBIOS Names by Using Windows Internet Name Service (WINS)
1 Kyung Hee University Chapter 18 Domain Name System.
Lector: Aliyev H.U. Lecture №10 Multicast network software design TASHKENT UNIVERSITY OF INFORMATION TECHNOLOGIES THE DEPARTMENT OF DATA COMMUNICATION.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
DSR: Introduction Reference: D. B. Johnson, D. A. Maltz, Y.-C. Hu, and J. G. Jetcheva, “The Dynamic Source Routing Protocol for Mobile Ad Hoc Networks,”
An analysis of Skype protocol Presented by: Abdul Haleem.
Networking in Linux. ♦ Introduction A computer network is defined as a number of systems that are connected to each other and exchange information across.
Presented by Rebecca Meinhold But How Does the Internet Work?
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
7DS - Node Cooperation and Information Exchange in Mostly Disconnected Networks Suman Srinivasan, Arezu Moghadam, Se Gi Hong, Henning Schulzrinne IRT Lab,
Chapter 4 Version 1 Virtual LANs. Introduction By default, switches forward broadcasts, this means that all segments connected to a switch are in one.
Alex Leifheit NETWORKS. NETWORK A number of interconnected computers, machines, or operations. Key Components Network components, Network Architecture,
WEEK 11 – TOPOLOGIES, TCP/IP, SHARING & SECURITY IT1001- Personal Computer Hardware System & Operations.
Peer to Peer Network Design Discovery and Routing algorithms
Firewalls A brief introduction to firewalls. What does a Firewall do? Firewalls are essential tools in managing and controlling network traffic Firewalls.
Enterprise Computing with Jini Technology Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev.
Computer Network Architecture Lecture 6: OSI Model Layers Examples 1 20/12/2012.
Ad Hoc On-Demand Distance Vector Routing (AODV) ietf
Chapter 5. An IP address is simply a series of binary bits (ones and zeros). How many binary bits are used? 32.
Skype.
Chapter Overview Understanding Windows Name Resolution Using WINS.
How Do Users Share Computer Files?
Self Healing and Dynamic Construction Framework:
NET323 D: Network Protocols
Net 323 D: Networks Protocols
NET323 D: Network Protocols
AbbottLink™ - IP Address Overview
COMPUTER NETWORKS PRESENTATION
Overview Multimedia: The Role of WINS in the Network Infrastructure
Computer Networks Presentation
Exceptions and networking
Presentation transcript:

Developers: Alexey Rastvortsev, Ilya Kolchinsky Supervisors: Roy Friedman, Alex Kogan

Project Goal  The project goal was to integrate chat server/client system that is XMPP-based to P2P-based using Zeroconf implementation Bonjour  Basically move XMPP application from centralized server usage to P2P discovery mode  The project had to be done on ASUS Eee computers, which commonly use Ad-Hoc networks for communication

Secondary Goals  Learn XMPP protocol  Learn Zeroconf protocol using Apple’s Bonjour implementation  Learn working in Ad-Hoc networks  Work with ASUS Eee PCs and develop tools for them  Deliver a useful and friendly application that can be used in real world

Tools Used in the Project  For XMPP Client software we’ve chosen Psi, as it is easy to change and implements many useful features (file transfer, multi-chat, etc.)  For XMPP Server software we used Openfire, because Psi recommended using them together, but any other XMPP server can be chosen, since we don’t require changing the server  We used Bonjour DNS Responder for P2P discovery of services in LAN without using centralized server. Bonjour also works well in Ad-Hoc networks We changed some Bonjour timings, as it will be explained later. This change requires to recompile the whole Bonjour

Basic Architecture  Basic capabilities of XMPP Chat are intact. The project is implemented as an addition to original Psi.  Psi client uses Bonjour to register itself in the network and browse for other clients  XMPP server sits locally with each client sending and receiving its messages  Bonjour notifies clients about arriving and departing clients (in case of graceful exit), maintaining contact list consistency

Basic Architecture - Chart

Basic Use Case  On start each client registers itself on the network using Bonjour  Each client starts browsing for other clients on LAN  When new client registers, Bonjour notifies all other clients and they add the new client to their contact lists  On exit each client unregisters itself from the network using Bonjour (graceful exit)  When the client unregisters, Bonjour notifies all other clients and they remove this client from their contact lists  More complex cases (client failure/disconnection) will be reviewed later

Basic Use Case - Diagram

Design Decision 1 - Naming  One of the requirements was, that the application will work in Ad-Hoc networks  XMPP resolves message destination from unique ID given to each  Since in Ad-Hoc network host names cannot be resolved to IP addresses (no DNS servers) we had to force server names to be equal to local IP address of each client  Two design decisions came from here: Each client must have a local server (on the same machine), at which it will be registered as a user Local server’s name must be its IP address (primary IP address)  Example of clients that we created:  Servers intercommunicate with no need for name resolving, simply sending messages to IP addresses.

Design Decision 2 – Service Name  Bonjour publishes service names on the network. Each service name must be unique. Specific services can be found through service types  We declared our own service type: _P2PClient._tcp, which represents our application  Each XMPP client registers itself as such service. Service name is chosen to be the client’s unique ID (JID), as viewed declared by XMPP protocol.  This way all other XMPP clients immediately discover JIDs of other clients, which is the only information they need to connect to them.  Thanks to last design decision the location of such client is immediately known, since service name contains IP address of the client (static or dynamic).  For example: client alexey at IP registers with Bonjour as mDNS record:  mDNS record structure:..

XMPP Communication with Bonjour  Each client receives notifications from Bonjour. These notifications are of two types: Join of new client – XMPP client takes service name of the newly found service (which is also its JID), and adds it to contact list Exit of existing client – XMPP client takes service name of the exiting client and removes the JID from the contact list  C++ API of Bonjour doesn’t support automatic notification (unlike its Java API).  We had to add a parallel thread that uses a blocking function select(), that listens to all events sent by Bonjour and executes handling of these events.

Ad-Hoc networks  MANET is a very dynamic network with clients moving, entering and leaving all the time.  MANET routing protocols are supposed to handler routing of messages to IP addresses  But we can’t expect from Bonjour to discover changes in structure of MANET.  If not exited gracefully (but rather turned off or left the network), the failed node will remain in the caches of Bonjour for at least 75 minutes.  There are no external ways to control Bonjour’s cache.  How do we maintain consistency of our contact list?

Design Decision 3 - MANET  We had to change the TTL of Bonjour records. We currently set it to ~4 minutes.  This means that if some registered client becomes unreachable for us, he will be removed from our contact list after 4 minutes.  This leaves our contact list in inconsistency for some time, but reducing TTL further will affect performance of Bonjour We reduced it from 75 to 4 minutes and seen some weird behavior of Bonjour on network disconnect.

Design Decision 3 – cont.  We allowed ourselves such a huge cut from TTL, since the tool is unlikely to perform in environment with more than 50 users of the same service, and only our mDNS records will have such a short TTL.  Hence it wouldn’t pose too much of a performance burden on the network to invalidate local Bonjour cache every 4 minutes (that’s what TTL reduction does).  Reducing this limit even more will force Bonjour to invalidate the whole cache (of only our services) in very short periods of time, which can pose great burden on the network

MANET – User Join  In MANET new users join our network without us knowing – dynamic network changes  Bonjour rechecks for new services every 2 minutes (TTL of search records)  This means that if some user walked into our network – we’ll see him in 2 minutes time in our contact list.  This TTL is also subject to reduction, however reducing it causes more network burden

File Transfer  Since the only change that we made was in the client discovery algorithms, the native features of XMPP remain intact  File transfer between two users is possible, since their IPs are known to each other (TCP connection is created, which is aware of MANET changes)