Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba)...

21
http://www.liquidlan.net/

Transcript of Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba)...

Page 1: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

http://www.liquidlan.net/

Page 2: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

What is it?

• File sharing system for LANs• extends the functionality of Windows(/Samba)

networks• Runs on top of Windows networks• Client-server based• Windows client (eMule framework)• Linux server/search engine (Seek42 fork)• Rotting away on my hard drive• The GUI…

Page 3: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

The client GUI

Page 4: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

Is this P2P?

• Sorta… was Napster P2P?• My front-end requires centralized server.• Client-server approach better for LiquidLan

– Instantaneous search results– No need for “Internet” scalability– Highly simplified implementation (more reliable too)– Less resilient to close-minded administrations

• However, underlying overlay network is P2P.• SMB/CIFS use client server approach• Network Neighborhood can be viewed as network of

peers and ultrapeers (winners of master browser elections)

• LiquidLan doesn’t care though.

Page 5: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

The system

Page 6: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

Quick background

• Server Message Block (SMB)– Protocol used by Windows networks– Mainly file/printer sharing, IPC– MS extended it, renamed CIFS– Can run over NetBIOS or TCP/IP– Inefficient though (broadcasts to entire subnet)

• Windows networks– SMB client and server, Network Neighborhood, etc.– free, open source implementation called Samba

Page 7: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

The server

Page 8: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

The server

• Seek42• GPL’d Windows network search engine• Scans LANs, indexes results, answers search

queries (TCP/IP)• Uses modified smbclient (not for long though)• ~10,000 lines of code• Heavily extended• But new version just released, so I will need to

merge my changes.

Page 9: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

The server (modifications)

• search returns more than just exact substring matches• search creates pretty-printed stats• smbclient patch filters junk file types• tse can expire an entire class C• new ipfile syntax• optimized (struct res_t).host… now long int• dynamic data structures for run-time reconfig• added comments, documentation• configuration file (no more defs.h)• easy installation• Numerous bug-fixes

Page 10: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

The server (TODO)

• Merge seek42-1.0 with mine

• Add opt-in support

• Implement an XML-based configuration

• Remove need for modified smbclient

• Remove legacy code

• Finish the config request handler

• …

Page 11: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

The client

• No restrictive webpage interface, UNC resource paths…• A fully-functional, specialized, application client• eMule application framework (threw out core logic)• Written in Visual C++, uses MFC heavily• Heavily relies on the Windows API• So in other words, not very portable • Multi-threaded search client and download manager• Integrated Web browser (special purpose)• Highly configurable (needs work though)• Faaassssst!

Page 12: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

The client

• But perhaps the coolest feature of all…

• DRUM ROLL PLEASE…

Page 13: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

DLCP

• Dynamic LiquidLan Configuration Protocol• Not to be confused with DHCP ;)• Conceptually very similar though• Zero-conf solution…• Dynamically resolve server address• Dependent on database-driven program that runs on

dlcp.liquidlan.net• LiquidLan server operators can create an account and

manage their config• Therefore, users can install, open, and connect

automagically!• That is my ultimate goal… complete transparency of the

underlying system (end-users don’t wanna know!)

Page 14: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

DLCP continued...

Page 15: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

The client (TODO)• Implement the initial exchange of configuration between the client

and server; this must run asynchronously (in a separate thread).• Isolate all the hard-coded policies and make them user options.• Add the “Search hard drive for media” feature which traverses the

hard drive for media to share, respecting DRM when possible***• Add an auto-update mechanism (maybe)• Add iTunes, Windows Media Player, and Winamp integration.• MBCS support (TCHAR instead of char)• Eventually add IPv6 support (maybe)• Finish DLCP!• …

Page 16: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

Current systems

• PySMBSearch

• UntzUntz LAN Scan

• Strangesearch

• Netropolis

• Phynd

• None of them come equipped with a usable application front end.

Page 17: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

Lit Review (quickly)

• Incentives in BitTorrent Induce Free Riding • The Impact of DHT Routing Geometry on

Resilience and Proximity • Tree-Based ALM using Proactive Route

Maintenance • An XML-based Conversational Protocol for

Web Services • Design Choices for Content Distribution in

P2P Networks

Page 18: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

Design

• Design Process Model similar to Waterfall

• In general, good OOP design principles

• Clean frameworks!

• Loosely coupled (small interfaces)

• Reusable/Extendable

• The waterfall…

Page 19: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

The Waterfall

Page 20: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

THE END

For more visit www.liquidlan.net

Page 21: Http://. What is it? File sharing system for LANs extends the functionality of Windows(/Samba) networks Runs on top of Windows networks.

?