doc updated

This commit is contained in:
hsn 2004-10-26 16:14:11 +00:00
parent f77b096122
commit db1e1880ab
5 changed files with 535 additions and 180 deletions

View File

@ -1,2 +1,3 @@
Makefile
Makefile.in
fsp-faq.html

113
doc/4LAMERZ.TXT Normal file
View File

@ -0,0 +1,113 @@
########### ### # ########
### ## ## ### ### ##
### ## # ## ### ##
### # # ## ### ##
### # # # ### ## Why 4 U riding this phile? 4u l8m3r?
### # ### ##
### # ### ##
### # ## ### ##
### # #### ### ## You 4 at r8t platz!
####### ##### #######
### # ###### ###
### # ##### ###
### #### ###
### ## ### w e l c o m e
### ### ###
### ## ### t o
### ## ###
### ## ###
### # # ### L8mer guide to FSP
### ## ## ###
### ### # ### LQ Version
##### # ###### ##### Oct 2004
Why you need it
- stealth operation
- old proven software with 10 years history
- for EliTe only
- attack resistant
- lamerz hates it
STuFF firSt!
you neeeed to get a p-file called cygwin1.dll. lamerz at www.cygwin.com
have some. Grab a copy, man. Copy it to your winlost sistema32 dyr.
Have it? Right.
Now rock!
There is a p-file fspd.exe. This is for stuff sharing.
Running this is easy:
fspd.exe -d c:\your\stuff\to\share -p 53
this number is important. Recommended numbers for stealth
operation are: 53, 2090, 137-139, 13, 21, 80, 443
You can be catched more easily with bad number, so chooze wisely. Rememmber,
some numbers like 2221 are used only by Elite! do not try it at
home; bad thingz can hepen. you know. police will certainly
take a visit.
Get more stuff!
Of course that you want to have the latest stuff, isn't it?
You must have some addresses of other ppl. They looks like
1.2.3.4 45
There is a p-file fsp.exe. This is for getting new stuff.
run it.
fsp.exe
fsp>
now type commands.
You need to know a few:
open 1.2.3.4 45 -- connects to site
get file -- get new stuff
put file -- send your stuff
pro -- show your access level
dir -- list directory
quit -- go to sleep.
We will give you some nice starting numbers for free. There are not a high
quality, but this is lq version of this guide. we can sell you
much better guide - hq version. Try to offer something.
912.000.000.102. 2056
234.234.234.823. 55
123.578.866.346. 34567
432.333.134.23 5436
543.47.5436.5432 5432
4352.532.532.21.54 4365
4312.5637.4332.5432 4325
324.43652.6543.4321 6547
431.142.654.3112.3243 542
1.34.342.543 542
321.312.653.645 5432
9.02.1.0 6969
127.0.0.7 56
192.168.45.21 108
10.20.30.40 5060
never try to flood fsp server, this does not work, elite will lauch
at you and cut your accez down. remember, you ar elite, not a kiddie!
-----**************------*******************----------************---
for HQ version of this guide send
20 bucks to
e-gold.com account
number 550694
Features included:
list of hq quality sitez
how to setup upload facility
how to search for new sitez
special seek tool
and 3 secret bonuzez
!We Do NOT sEnDZ hQ guiDe to LAmeRZ! Prove yourself first.
------*****-----------******************--------------**************---

View File

@ -1,2 +1,8 @@
## Process this file with automake to produce Makefile.in
EXTRA_DIST=faq.html PROTOCOL HISTORY fsp-faq.sgml
EXTRA_DIST=faq.html PROTOCOL HISTORY fsp-faq.sgml fsp-faq.html
noinst_DATA = fsp-faq.html
SUFFIXES = .html .sgml
.sgml.html:
sgmlfmt -d docbook -f html $<

View File

@ -1,7 +1,7 @@
FILE SERVICE PROTOCOL VERSION 2
Document version 0.10
Last updated 18 Oct 2004
Document version 0.11
Last updated 24 Oct 2004
Also known as
File Slurping Protocol,
@ -184,13 +184,24 @@ FSP File servers MUST supports following commands:
file position: position in directory
data: ASCIIZ directory name
xtra data: (not required)
word - size of reply's optional data block
word - prefered size of directory block
reply
file position: same as in request
data: directory listing (format follows)
xtra data: not used
Directory listing is transfered in similar way as file transfer. Directory
listing is divided into blocks of equal size, only exception is last block
which can be shorter. Default and maximum size of directory listing block is
1024 bytes. Size of directory block can be changed by server using extra
data information sent by client.
Directory blocks can't be split accross message boundary and client
can't do seeking to any arbitary offset, which can broke dirblock
into 2 messages. In short: Every message can contain only one
unsplited directory block.
RDIRENT is the structure of a directory entry contained in a directory listing.
Each entry contains a HEADER, which has 4 bytes quantity 'time' in Unix
standard format, a 4 bytes quantity 'size', and 1 byte of 'type'. Header is
@ -201,8 +212,9 @@ At this point, if the next RDIRENT entry to follow will spread across 1k
boundary, then two possible things will happen:
1) if the HEADER fits between this entry and the 1k boundary,
a complete header will be filled in with a 'type' set to RDTYPE_SKIP.
Repeat this step as neceseary until no HEADER fits.
a complete header will be filled in with a 'type' set to RDTYPE_SKIP
and no name followed - just pad to 1k boundary. Clients which sees
RDTYPE_SKIP header skips over next data in packet.
2) if the HEADER does not fit, then simply pad to the 1k boundary.
This will make sure that messages carrying directory information carry only

View File

@ -1,4 +1,4 @@
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!-- define some ENTITYs -->
<!ENTITY fsp "File Service Protocol">
]>
@ -10,6 +10,18 @@
<othername>"Hoaxter"</othername>
<surname>Hoexter</surname>
</author>
<author>
<firstname>Radim</firstname>
<othername>"HSN"</othername>
<surname>Kolar</surname>
<affiliation>
<address><email>hsn@sendmail.cz.nospam</email></address>
</affiliation>
</author>
<copyright>
<year>2003-2004</year>
<holder>Authors</holder>
</copyright>
<!-- I'll call it 0.1 later
<revhistory>
<revision>
@ -43,53 +55,149 @@
<sect2 id="whatisfsp">
<title>What is FSP?</title>
<para>
FSP stands for &fsp;. In general FSP is what anonymous ftp should be, a fast and bandwith friendly
way to access publicly avaible data. FSP is UDP based so it doesn't have all the protocol overhead you've with TCP
based transfer protocols. You can find the latest protocol definition right here
<ulink url="http://fsp.sourceforge.net/doc/PROTOCOL.txt">http://fsp.sourceforge.net/doc/PROTOCOL.txt</ulink>
or in the source distribution in the "doc" subdirectory.
</para>
FSP stands for &fsp;. In general FSP is what anonymous ftp should be: a reliable and bandwidth friendly
way to access publicly available data.
<para>
In the past various people maintained the FSP code base. At the moment Radim Kolar <email>hsn@cybermail.net-nospam</email>
is maintaining FSP. If you like to get involved take a look at the FSP
FSP is a UDP based protocol for transferring files around. It has
many benefits over FTP, mainly for running
anonymous archives. FSP protocol is valuable in all kinds of
environments because it is one of the only TCP/IP protocols that is not
aggressive about bandwidth, while still being sufficiently fault tolerant.
</para>
</sect2>
<sect2 id="fsp-project">
<title>FSP Project</title>
<para>
FSP is (and always has been) open source project with MIT/X11 source
code license. See <xref linkend="licence"> for more details.
<para>
In the past various people maintained the FSP code base.
At the moment Radim Kolar
is maintaining FSP. FSP project is now hosted on
<ulink url="http://sourceforge.net">Source Forge.NET</ulink>.
<para>
If you like to get involved take a look at the FSP
<ulink url="http://fsp.sourceforge.net">Homepage</ulink> and the
<ulink url="http://www.sourceforge.net/projects/fsp/">FSP project page</ulink>.
</para>
</sect2>
<sect2 id="whatisitfor">
<title>Why and for what should I use FSP?</title>
<para>
The &fsp; has its strengths on slow lines and connections with a high package lose like a Wireless LAN. In general the &fsp; is
what anonymous FTP should be - a fast and bandwith friendly way for anonymous file access.
The &fsp; has its strengths on slow lines and connections with a high packets lose like a Wireless LAN or radio packet networks. Because FSP is simple
and lightweight, it is very well suited for use in embedded devices area.
<para>
FSP protocol is not aggressive about bandwidth and was designed
to resist against users which want to do some bandwidth-related attacks.
It can support more users, because the same available
bandwidth is divided into smaller parts.
Because FSP uses less bandwidth, FSP transfers takes about
2-3 times longer than with TCP-based protocols.
<para>
FSP protocol
chooses reliability and simplicity over raw transfer speed.
File transfer takes longer, but there are much more resistant
against network failure.
<para>
Entire connection management is moved from server to client side,
which solves problems with aborted and timed out transfer. Because
FSP is stateless protocol, it can survive even server reboot without
interruption.
</para>
</sect2>
<sect2 id="comparison">
<title>Comparison between fsp and other protocols</title>
<para>
We did some benchmarking so that you can see how fsp performce
We did some benchmarking so that you can see how fsp performance
compared to various other command protocols used to transfer
files.
<sect2 id="benchresults">
<title>Benchmark results</title>
<para>
You should understand that FSP is slower than TCP
based protocols by design. TCP protocol can have more than
one packet flying in network (usually 2-3) while FSP was designed to
make it impossible (See <xref linkend="keying">).
<para>
All TCP protocols have on normal networks
(max 15% packet loss) higher transfer rate than FSP.
FSP is clean winner when it comes to overloaded sites or lines.
These benchmarks were performed on 10Mbit LAN with zero traffic.
Transfer rate is quite slow even for 10Mb because one of testing
machines was old AMD K5/90 and both machines used cheap clone ISA NE2000 Ethernet cards.
<para>Test file was 3656535 bytes long (FreeBSD kernel image).
Test results shows, that FSP is about 2-2.5 times slower than TCP.
<programlisting>
tftp 15.2 secs 240.6 kB/s
ftp 5.18 secs 688.7 kB/s
http 5.32 secs 685.4 KB/s
sftp 8.0 secs 446.4 KB/s
fsp 12.7 secs 287.7 kB/s
</programlisting>
</para>
<sect3 id="comparehttp">
<title>FSP vs. http</title>
<para>FIXME</para>
<para>
HTTP: widely supported by servers, clients and proxies.
De-facto standard protocol for accessing information today.
<para>
FSP: Can provide directory listings, which are not supported
by standard HTTP/1.1 protocol. You need to have configured
WebDAV server-side extension for that.
</para>
</sect3>
<sect3 id="compareftp">
<title>FSP vs. ftp</title>
<para>FIXME</para>
<para>
FTP: widely supported by servers and clients, more difficult
to proxy than HTTP, uses 2 TCP connections, can provide directory
listings in site-specific format, more heavy service than HTTP.
<para>
FSP: do not needs to make any connection, very lightweight service,
directory listings are standardized by protocol.
</sect3>
<sect3 id="comparetftp">
<title>FSP vs. tftp</title>
<para>FIXME</para>
<para>
tftp is UDP (but TCP version also exists) used mainly
for loading boot and flash ROM images from network.
<para>
TFTP: more widely used, standardized, most network cards
can boot image via TFTP.
<para>
FSP: about 1.5-times faster because of bigger packet size,
supports directory listings,
can query file date and size,
can provide random access to file and supports opening
more than one file, supports access control, timeout
management moved to client side, stateless.
</para>
</sect3>
</sect2>
<sect2 id="whyfspd">
<title>Why should I run fspd?</title>
<para>
If you are providing anonymous archive (FTP,WWW), you should also
offer FSP access. FSP daemon is a very lightweight process, never
forks and you will never have more than one copy running around.
On todays machines, it has zero performance impact.
<para>
Running fspd allows people with overloaded or lousy lines to get
files from your archive. It also helps people during spikes periods
when archive is very busy.
<para>
There are also some people which likes slower FSP downloads, because
it saves their bandwidth for interactive tasks.
<para>
It is not true that UDP based protocols are unsecure. &fsp; provides
the same security level as anonymous FTP and is much more resistant
against denial of service attack. It is nearly impossible to overload
fsp server by flooding. On other side, TCP-based protocols are very
simple to SYN flood.
<sect2 id="wherecanifind">
<title>Where can I download FSP?</title>
<para>
You can Download the FSP source Distribtuion from the
You can Download the FSP source Distribution from the
<ulink url="http://sourceforge.net/project/showfiles.php?group_id=93841">sf.net mirror network</ulink>
or from
<ulink url="http://ibiblio.org/pub/linux/system/network/file-transfer/">ibblio</ulink>.
@ -98,7 +206,7 @@
port 2221.
</para>
<para>
When you're interesseted in the latest, and of course greates,
When you're interested in the latest, and of course greatest,
development done in FSP please try a CVS checkout.
Explanation and all needed information to do this can be found
on the
@ -109,14 +217,14 @@
<title>Where can I find help?</title>
<para>
First of all various people took the time to write nice documentation on FSP including the fspd Server
and the client tools. Please read those fine documents bevor you start writing to the mailinglists.
and the client tools. Please read those fine documents before you start writing to the mailinglists.
</para>
<sect3 id="gethelpdocs">
<title>RTFM - Read the fine Manuals</title>
<para>
<ulink url="http://fsp.sourceforge.net/doc/PROTOCOL.txt">The &fsp; definition</ulink>
The latest version of the FAQ
The old FAQ
The latest version of the FAQ,
The <ulink url="http://fsp.sourceforge.net/doc/faq.html">old FSP FAQ</ulink>.
</para>
</sect3>
<sect3 id="gethelpml">
@ -125,10 +233,10 @@
For developing issue writte to the fsp-dev mainlinglist. For end-user questions
and questions on how to configure your server/client write to the fsp-user Mailinglist.
You can find more information on how to subscribe/unsubscribe to the mailinglist and
the archiv on the
the archive on the
<ulink url="http://sourceforge.net/mail/?group_id=93841">FSP mailinglist page</ulink>
on sf.net.
Please bevor you write to one of the provided mailinglists read and understand
Please before you write to one of the provided mailinglists read and understand
<ulink url="http://www.catb.org/~esr/faqs/smart-questions.html">ESRs HowTo ask smart questions</ulink>
and
<ulink url="http://www.netmeister.org/news/learn2quote.html">learn.to/quote</ulink>
@ -139,8 +247,20 @@
<sect2 id="licence">
<title>Licence, copyright and redistribution of FSP</title>
<para>
Most parts of the &fsp; distribution are free and licenced under a
BSD/MIT/X licence.
FSP code base uses MIT/X11 license (also known as 2-point BSD
license). This license is very friendly to users in commercional area.
You can freely develop, use and sell your commercional implementation of &fsp;.
<orderedlist>
<listitem>
<para>Do not claim that you have wrote this software.
</listitem>
<listitem>
<para>Do not sue us if something breaks.
</listitem>
</orderedlist>
Summary: As long as you will not remove our copyrights from source code
and will not go with your complains to the court, you can
do with this software anything you want.
</para>
<para>
From the COPYRIGHT file in the source distribution (e-mail addresses removed):
@ -193,6 +313,37 @@
</para>
<sect3 id="histpast">
<title>The past</title>
<para>
FSP development started in a very old days. From source code and man
page time stamps we can see that it was working and alive in 1988.
FSP versions 1.0 and 2.0 was born in Dec 1991. After that two first
releases FSP goes to the active life.
<para>
FSP active development era ends in May 1993 when last official
version 2.7.1 was released. It was quite popular at that time,
mainly because it was superior way for transferring warez around
when compared with FTP. Because of this, FSP protocol got a bad
name and suffers from it even today. I see that FSP warez era
as practical demonstration how can FSP perform nicely on
overloaded sites and lines.
<para>
After that then was some work on
FSP in 1995 and which ends with now famous FSP version 2.8.1b3
in March 1996. This version is used on some
servers today because Debian Woody has it, but 2.7.1 is still
used on some forgotten machines in universities. It has also
known security issues (fspd follows symlinks), but at this
time there were viewed as feature, not a bug.
<para>
Radim Kolar released 2.8.1b4 in 2001, which was just some bugfixed
version of 2.8.1b3 untouched from 1997 when I ported it to OS/2.
Active working on FSP again starts on 25 June 2003 when Version
2.8.1b5 goes out. Major parts of FSP server code was rewrited
for higher performance and many old bugs in FSP code fixed.
<para>
In the past various people worked on the &fsp;, see
<xref linkend="licence">
@ -203,7 +354,7 @@
<para>
Radim Kolar started to work on the &fsp; again in June 2003. Since
that time he's maintaining the source distribution. You can reach him
on the mailinglists or via e-mail <email>hsn@cybermail.net-nospam</email>.
on the mailinglists or via e-mail <email>hsn@sendmail.cz-nospam</email>.
</para>
<para>
Since September 2003 Sven Hoexter is working on parts of the documentation.
@ -236,9 +387,9 @@
<sect3 id="getbinary">
<title>How to obtain a binary copy</title>
<para>
At the moment we provide only rpms for RedHat 7.3. You can download the rpm file from
At the moment we provide only RPM for RedHat 7.3. You can download the RPM file from
the sf.net download page or from wrack.telelev.net. wrack.telelev.net provides the
rpms in a apt-rpm useable way, for more information about apt-rpm and the packages on
rpms in a apt-rpm usable way, for more information about apt-rpm and the packages on
wrack.telelev.net take a look at http://sven.stormbind.net/aptrpm/
If you're running other rpm based distributions you can try to rebuild the source rpms.
</para>
@ -287,7 +438,7 @@
</para>
</sect2>
<sect2 id="restrictions">
<title>How to setup restrictions on directorys?</title>
<title>How to setup restrictions on directories?</title>
<para>
FIXME
</para>
@ -313,12 +464,84 @@
<sect2 id="fspclient">
<title>fspclient</title>
<para>
FIXME
Enter information about fspclient here
FSP Client is FTP-like interface for FSP.
It look exactly like classic FTP does, but uses different transfer
protocol. People usually find this program easier to use that
multiple client programs in FSP protocol suite. If you are at least
somewhat familiar with command line FTP and want to try FSP, this
program is right for you.
<para>
FSP client homepage is <ulink url="http://fspclient.sourceforge.net">http://fspclient.sourceforge.net</ulink>.
</para>
</sect2>
<sect2 id="gui">
<title>Using FSP in browser</title>
<para>
If you want a GUI, the easiest way is to use FSP directly
from your web browser.
You need to download and install <ulink url="http://fsp.sf.net/javalib.html">FSP Java LIB</ulink> and <ulink url="http://fsp.sf.net/fsproxy.html">Proxy server</ulink>. Read included docs for install instructions.
</sect1>
<!-- end how to use the client -->
<sect1 id="techinfo">
<title>FSP technology in-depth</title>
<sect2 id="protocol">
<title>Protocol definition document</title>
<para>
FSP protocol is well documented.
You can find the latest protocol definition right here
<ulink url="http://fsp.sourceforge.net/doc/PROTOCOL.txt">http://fsp.sourceforge.net/doc/PROTOCOL.txt</ulink>
or in the source distribution in the "doc" subdirectory.
</para>
<sect2 id="transport">
<title>Transport mechanism used by FSP</title>
<para>
FSP is datagram-based protocol. FSP protocol itself do not require
reliable underlying transport. FSP can operate even without
any Layer 2 and Layer 3 transports only with some extra features
disabled. FSP can be implemented in all kinds of environments.
This makes FSP very suitable for embedded devices area.
<para>
When used in TCP/IP based networks,
UDP is used for transporting of FSP datagrams, this lowers protocol
overhead by skipping TCP level, which is not needed, because FSP
handles connection management by itself. This method is standardized
in <xref linkend="protocol">.
</para>
<para>
FSP frames can be packed directly info Ethernet 802.2, USB or GSM
frames. Biggest advantage of using FSP in that areas is simplicity.
FSP protocol is very simple to implement.
</sect2>
<sect2 id="keying">
<title>Network bandwidth protection</title>
<para>
One of interesting parts of underlying network technology used
by FSP is how protocol design restrict user from sending
more than one packet into network.
<para>
FSP uses very simple method: Every packet sent from server to client
contains a 16-bit long, pseudo random key. Client needs this key
for sending next request to server. Server will ignore requests
with wrong key, unless there was no previous activity recorded
for client IP address in last 60 seconds.
<para>
Server remembers for each IP not only nextkey, but also previous
key. When packet's key matches previously stored key -- it is
resend from client.
This method also allows ignore duplicate requests by server for
action which should not be done more than once (for example mkdir).
<para>
In each packet sent by client to server is sequence number.
Server will echo this number back to the client, when packet is
processed. There is no restriction on that number, client can
use anything he wants.
Primary purpose
of this sequence number is possibility to put unique mark on
every network packet. Client can use this information and
fine-tune its retry algorithm
by computing packet loss ratio of network, and duplicate
packet rate.
</sect1>
</article>
<!-- vim: set expandtab: -->