You are on page 1of 10

CSE 323

[Computer Networks]

PBL Review1

Pulkit Mangla (14BCE1032)


Kumar Shivam (14BCE1085)
Problem statment

File transfer over the LAN using UNIX sockets


Introduction
There are many ways one can share files over the
internet but none of them are fast enough unless you
have a extrememly high speed internet on both sides.
But things change when both the hosts are part of the
same LAN. Transfering a file in the LAN, without
broadcasting the packets to the internet, allows for great
transfer speeds. To build such a system is our aim in this
project.
Existing work
Xender a mobile app that provides such facility, no
existing web service ported for laptops/desktops.
Air drop available for MAC users only
Open source projects like D-LAN, Nitro share, Infinit etc.
Pit-falls in existing system
Our aim to provide a light weight software that feels like an extension
to the file browser itself.
Softwares like D-LAN provide a great GUI but due to that reason, they
are resource extensive & not greatly portable. A software which is
downloaded at a size of 700kb can extend up to several mbs when you
download the graphical packages they depend upon such as Gtk, QT.
The ones that use the command line are tough to operate, since they
require the full path to the file or often output errors that could not be
understood by a normal user.
Privacy of data is not given enough importance in majority of these
applications.
So what do we do?

We provide a middle ground. On


the user end, transferring a file is
simply right clicking it and selecting
the right option. Behing the scenes,
a new terminal session is created Share
to do the job. Once the transfer is
complete, the user is informed of it.
Receive
On the security front, we encrypt
the data before sending it.
Technical aspect
Other than programming UNIX sockets, we will basically be working with:
1. Nautilus scripts
2. Notify-send

The former will allow us to embed our bash script, which will in turn call our executable,
with the most famous Linux file browser Nautilus. Since we are using UNIX sockets, we
know our target audience and they mostly use nautilus the default browser that
comes with the fresh installation of almost all the major distributions including Ubuntu
and Mint.

The latter will be used to generate a push notification to the user once the file transfer
is complete.
One of the most challenging thing is to implement a ARP (address resolution protocol).
We do not expect our users to provide us with IP address or even a host name of the
computer that they wish to communicate with.

Once the user selects a file for transfer, a list of the available users will be populated.
As soon as the list of hosts is available, the share option under the right click will
instead show shareWith and the user can then select the host. To tackle ARP the
following ideas have been thought over:

1. using nmap or arp utility but due to their generality they are slow
2. implementing a UDP broadcast message
3. successive ping over the network mask
4. having both the user connect to the hotspot made on either of their laptops

As far as user privacy is concerned, we intend to encrypt the file being transferred
either using a sufficiently large matrix of transformation or RSA.
Software and Hardware
Hardware - NULL

Software - Nothing other than a unix based terminal (xterm, bash, etc.)

We do not even require the user to have sudo privileges since we will
not be operating on any of the privileged ports.

However the user must have the righ to read the file, otherwise it won't
able to transfer a file.

It would be preferrable if the user used nautilus. If not s, the user can still
use the command line interface to operate the executable.
Thank you

You might also like