From alt.comp.fsp Sun Oct 31 12:54:07 1993
Newsgroups: alt.comp.fsp
From: pi92ae@pappa.pt.hk-r.se (Andy)
Subject: FAQ IS HERE!!! was Re: How do you connect to an FSP?
Organization: Dept. of Comp. Sci. Soft Center, Ronneby
Date: Sun, 31 Oct 1993 09:29:28 GMT
Lines: 541

OK here comes a not so up to date FAQ... But it is seemed to be
needed.

Archive-name: fsp-faq
Last-modified: 19th August 1993
	       ^^^^^^^^^^^^^^^^^
Frequently Asked Questions about FSP
------------------------------------

*** Please read this before posting to alt.comp.fsp. ***

##########################################################################
### IMPORTANT NOTICE: EVERYONE PLEASE READ THIS!
###
### Joseph Traub is no longer the FSP maintainer, and the site he
### maintained at seismo.soar.cs.cmu.edu no longer runs an FSP daemon.
### Please do NOT mail anyone at CMU about the FSP server -- the admins
### there have complained about the volume of unwanted mail.
###
### If you have questions about FSP, please mail one of the new
### maintainers -- see below for details.
##########################################################################

This is the answers to some of the frequently asked questions about FSP.
It is posted weekly to alt.comp.fsp, alt.answers and news.answers.

This article answers the following questions.

Section 1: Introduction and Help
	Q1.1 What's alt.comp.fsp?  What's FSP?
	Q1.2 Where can I get FSP?
	Q1.3 Help!  I don't understand how to use FSP!
	Q1.4 What are those funny "R" and "I" characters?
	Q1.5 Why should I, as a site admin, run an FSP daemon?

Section 2: FSP software and resources
	Q2.1 Where can I get an FTP-like interface for FSP?
	Q2.2 Where can I get a graphical interface for FSP?
	Q2.3 Where can I get hold of a list of sites?
	Q2.4 Where can I get hold of hundreds of pictures of naked women
	     in compromising positions?

Section 3: Technical Issues
	Q3.1 What are the main differences between FSP and FTP?  How
	     does FSP work?
	Q3.2 How secure/anonymous is FSP?
	Q3.3 Why not add passwords to FSP?
	Q3.4 So what *does* FSP stand for?

Section 4: Who's who in FSP?
	Q4.1 Who wrote FSP?
	Q4.2 Who helped put this FAQ together?


This FAQ is written and maintained by Pete Bevin (pete@sst.icl.co.uk)
with help from Phil Richards (pgr@sst.icl.co.uk).

If you have any comments, suggestion, or additions, send me (Pete) some mail.


Section 1: Introduction and Help

Q1.1: What's alt.comp.fsp?  What's fsp?

	Alt.comp.fsp is a Usenet newsgroup for discussing the FSP file
	transmission protocol.	It was created on Tuesday 4th May 1993
	by Wen-King Su (wen-king@cs.caltech.edu) after there was no
	objection on alt.config.  Before the newsgroup, there was a
	mailing list (fsp-discussion) for talking about FSP software
	internals.  This newsgroup is for discussion of both writing and
	using the software.

	FSP is a protocol, a bit like FTP (but see below), for moving
	files around.  It's designed for anonymous archives, and has
	protection against server and network overloading.  It doesn't
	use connections, so it can survive things falling over.

	Quote: `FSP is what anonymous FTP *should* be'.


Q1.2: Where can I get FSP from?

	The `official' place for FSP distributions is ftp.germany.eu.net
	(192.76.144.75), in the directory /pub/network/inet/fsp.  It is
	available both by FTP and FSP: the FSP server is on port 2001.
	Another official site is taxus.uib.no (129.177.30.10), which
	only runs an FSP server -- it's on port 9000.  The directory
	on taxus is /fspdist.

	(Note: If you're using Unix, and you don't want to set up a
	server, you might want to get one of the FTP-like clients
	instead -- fspclient, fspcli, or fspsh -- from the same place).

	The latest versions are:

		Unix, VMS:	fsp.271.tar.Z
		OS/2:		fsp2-03b.zip
		MS-DOS: 	pcfsp104.zip

	The Unix version is the `original', and was originally written
	by Wen-King Su: Joseph Traub took over for a while, and Phil
	Richards and Pete Bevin maintain it now.  The same distribution
	contains patches by Sven Pechler to make it run on VMS.  Larkin
	Lowrey wrote the OS/2 version, and Lindsey Smith wrote the MS-DOS
	version.  Email addresses are at the end.


Q1.3: Help!  I don't understand how to use FSP!

	If you're already familiar with FTP, you might want to use one
	of the FTP-like clients instead, or even a graphical interface.
	See the answers to questions 2.1 and 2.2 below for details of
	how to get them.

	The following tutorial is adapted from an article in
	alt.comp.fsp by David DeSimone <fox@netcom.com>.

	The original FSP seems to have been designed for use with csh
	aliases, so if you use csh, try these aliases in your .cshrc:

	# FSP aliases:
	alias fcat   '(set noglob; exec fcatcmd \!*)'
	alias fcd    'setenv FSP_DIR `(set noglob; exec fcdcmd \!*)`'
	alias fget   '(set noglob; exec fgetcmd \!*)'
	alias fgrab  '(set noglob; exec fgrabcmd \!*)'
	alias fls    '(set noglob; exec flscmd -F \!*)'
	alias fll    '(set noglob; exec flscmd -l \!*)'
	alias fpro   '(set noglob; exec fprocmd \!*)'
	alias fpwd   'echo "$FSP_HOST ($FSP_PORT): $FSP_DIR"'
	alias frm    '(set noglob; exec frmcmd \!*)'
	alias frmdir '(set noglob; exec frmdircmd \!*)'
	alias fhost  'set fsp_host=(\!*); source ~/bin/fhost; unset fsp_host'

	The last alias, "fhost", is my own invention, and the ~/bin/fhost
	file looks like this:

	#!/bin/csh
	#
	# Since this script sets environment variables, it really needs
	# to be source'd rather than executed.  Thus the following alias
	# should be used:
	#
	# alias fhost 'set fsp_host=(\!*); source ~/.bin/fhost; unset fsp_host'
	#

	if ( $#fsp_host > 0 ) then

	    setenv FSP_HOST $fsp_host[1]

	    if ( $#fsp_host > 1 ) then
		setenv FSP_PORT $fsp_host[2]
	    else
		setenv FSP_PORT 21
	    endif

	    if ( $#fsp_host > 2 ) then
		setenv FSP_DIR $fsp_host[3]
	    else
		setenv FSP_DIR /
	    endif

	endif

	if ( $?FSP_HOST ) then
	    echo "$FSP_HOST ($FSP_PORT): $FSP_DIR"
	endif

	This alias lets you "connect" to a host quickly and easily.  For
	instance, to start out I give the following command:

	% fhost wuarchive.wustl.edu
	wuarchive.wustl.edu (21): /

	The "fhost" command tells me where I'm connected, on what port,
	and in what directory.

	Since all "fhost" does is set up some environemnt variables, we
	aren't REALLY connected.  To find out if the site is responding,
	just do a quick "fls":

	% fls
	README		etc/		mirrors2/	pub/
	README.NFS	graphics/	mirrors3/	systems/
	bin/		info/		mirrors4/	techreports/
	decus/		languages/	multimedia/	usenet/
	doc/		lost+found/	packages/	vendorware/
	edu/		mirrors/	private/

	Looks like we're up and running!  Navigating with FSP is now
	just like using the local filesystem, except the commands have
	"f" in front of them.  For instance:

	% fcd /systems/amiga/incoming
	directory mode: (owner: some other machine)(delete: NO)(create: NO)
	% fls
	AT3D-Demo.bad		devel/			utils/
	AT3D-Demo.readme	fish/			wb30/
	AT3D.lha		games/			z_newfiles_Jul01
	Amiga.help		gfx/			z_newfiles_Jul02
	DAKDUNGN.LZH		hardware/		z_newfiles_Jul03
	DAKDUNGN.README 	imagine/		z_newfiles_Jul04
	DP_Desc_June.run	ls-lR.incoming		z_newfiles_Jun25
		README.UPLOADER 	ls-lR.incoming.Z	z_newfiles_Jun26
		TREE			misc/			z_newfiles_Jun27
		archive/		mods/			z_newfiles_Jun28
	audio/			news/			z_newfiles_Jun29
	cam_list.zoo		patch/			z_newfiles_Jun30
	comm/			programming/
	demos/			text/

	Other nice commands like "fcat filename" let me see what's out
	there, or for larger files, "fcat filename | less" is very
	effective.

	Once I see a nice file that I want copied to my local system, I
	just give the "fget filename" command and away it goes.  Usually
	I type "fget filename &" which throws the transfer request into
	the background.  Then I can immediately go off and "fcd" to some
	other directory and look for more files to grab, "fcat"-ing the
	README files and such.


Q1.4 What are those funny "R" and "I" characters?

	When FSP doesn't get any response from the server, it keeps on
	sending requests.  The first time it retries, it prints an "R",
	(meaning "Retry"), and the second, third, and subsequent times,
	it prints an "I".  You might also see an "E", which means "error":
	FSP got a packet, but it was corrupted for some reason.

	Fspclient does it slightly differently: it starts by printing
	"r" and "R" characters, and then uses "-\|/" characters to draw
	a spinning bar.  As Phil Richards (the author) says, `I quite
	often see spinning bars, but usually only after the fifth pint'.


Q1.5 Why should I, as a site admin, run an FSP daemon?

	Because it's one more way people can access your site, and it
	won't cost you much extra load on the machine.  The FSP daemon
	never forks, so it won't increase your load average by more than
	one.  FSP doesn't add much to the network load either, and you
	can limit the amount of data the daemon will send out (eg, to
	2.5k/sec).

	FSP allows comprehensive logging, running off inetd, README
	files per directory, banning on per-host or per-network basis,
	reverse naming and read-only sites.  The only thing anonymous
	FTP gives that FSP doesn't is having the user type in an email
	address, and of course, this can easily be faked.  FSP logs give
	the user's hostname, which is harder to fake.

-----------------------------------------------------------------------------


Section 2: FSP software and resources

Q2.1 Where can I get an FTP-like interface for FSP?

	The interface I use is Phil Richards' (pgr@sst.icl.co.uk)
	fspclient.  The latest version (still pre-alpha, but more
	reliable than your average beta release) is fspclient.0.0-h.
	You can get it by FTP from ftp.robots.ox.ac.uk as
	/pub/ox.src/fspclient.0.0-h+.tar.Z .

	Another interface to use is Nicolai Langfeldt's 'fspcli'.  It
	has a ftp like interface and more.  It is in the release
	directory on ftp.germany, and it has also been posted on
	alt.sources.  Another nice thing about it is that it's a
	small(ish) perl script rather than a large compiled executable,
	and it's not alpha OR beta.  Presently the latest version is 1.2

	Ove Ruben R Olsen (Ruben@uib.no) has written a client quite
	similar to Nicolai's, but even smaller.  It is available in
	the fspsh directory on taxus.uib.no/9000 (see below).

	Note that if you want to use either of the last two clients,
	you'll have to have the Perl language installed.  You can get
	the latest version by FTP from prep.ai.mit.edu in
	/pub/gnu/perl*, or by FSP from wuarchive (see below) in
	/mirrors/gnu/perl*.


Q2.2 Where can I get a graphical interface for FSP?

	Andy Doherty <ssudoher@reading.ac.uk> has written an xview
	client for the X Window System.  It is available from
	ftp.germany as `fsptool-1.3.tar.Z'.  Like fspcli and fspshell,
	it acts as an interface to the standard FSP shell commands,
	rather than rewriting them itself.

	Note that to use this package, you will need the xview libraries:
	if you're using a Sun workstation, you're OK: otherwise, you may
	have to get and compile them yourself.

	If you're an OS/2 user, you can use the OS/2 client by Albert
	Crosby <acrosby@uafhp.uark.edu>.  It wraps around the OS/2 FSP
	software (see above), and also requires RexxMenu and RxU.  It
	can read a list of files in the standard FSP host listing
	format, and uses RexxMenu's point-and-click interface.


Q2.3 Where can I get hold of a list of sites?

	There is a list, maintained by <archive-admin@Germany.EU.net>,
	which you can get hold of by fsp from ftp.Germany.EU.net (port
	2001):/pub/lists/fsp-servers.  Various other people produce
	lists as well: have a look around!

	You are encouraged to post site information to alt.comp.fsp, and
	if you post in the format below, most people will be able to
	slurp your list straight into their front-end programs.  There's
	an unofficial standard for the format, which you can find on taxus
	in the file "fsplist.std".

	In the meantime, here's a list to get you going.

	128.52.46.11	  21   alpha   / # GNU Alpha releases
	158.125.220.8	  21   genie   / # small UK site
	192.76.144.75	  2001 germany / # big German archive
	fsp.luth.se	  6969 luth    / # Top of Europe
	131.215.131.148   21   mosaic  / # BSD386/Usenet
	134.109.132.2	  21   pyrrhus / # OS2, linux, simtel, etc.
	146.169.2.1	  21   src     / # big UK site
	129.177.30.10	  9000 taxus   / # fspadm, fsp-shell tools
	131.155.140.128   21   terra   / # big Netherlands site
	18.172.1.2	  21   tsx     / # linux
	fsp.warwick.ac.uk 21   warwick / # Computer Underground Digest
	128.252.135.4	  21   wu      / # everything you ever wanted


Q2.4 Where can I get hold of hundreds of pictures of naked women in
     compromising positions?

	Don't ask me, I only edit the FAQ :-)

	Seriously, FSP has a reputation of being for "crooks and
	perverts".  If you know any good sites carrying illegal
	material, then do them a favour and keep them to yourself.
	Posting them won't make you any friends.

	If someone posts a list of sites, and you didn't want them to,
	please don't publicly flame them.  It doesn't endear you to
	anyone.  If you must put them right, send email.  Thank you.

---------------------------------------------------------------------------


Section 3: Technical Issues

Q3.1 What are the main differences between FSP and FTP?  How does FSP work?

	From the user's point of view, the differences are not that
	great, except that some of the more annoying features of FTP
	are gone.  Here are the main differences.

		a. The protocol can stand things going down: if the
		server or the network falls over in the middle of a
		transfer, you can just wait until it comes back up.
		You don't have to reconnect, and even better, if the
		server went down 90% through grabbing a file, you can
		continue from where you left off.

		b. The protocol doesn't need a username or password.
		You just throw packets at the server.  You don't have
		to identify yourself (though you're not completely
		anonymous -- see below).

		c. It's harder to kill off a site with an FSP server
		than with an FTP server.  The FSP daemon is designed to
		be as lightweight as possible:	it doesn't fork off any
		sub-processes, and it takes steps to limit the amount
		of traffic it handles.

		d. The user interface is completely different.	The
		interface that comes with the package consists of
		eleven commands that you can call from the shell.  In
		effect, your shell is providing all the nice functions
		like command line editing.  This makes the interface
		much more versatile than FTP's.  (See below for how to
		get an FTP-like interface, though).

		e. FSP is a bit slower than FTP.  This is a feature,
		not a bug.  The point is to keep the communication
		lightweight, and not to flood the net.

	From the programmer's point of view, fsp is a complete rewrite.

		a. Instead of TCP sockets, it uses datagrams to
		communicate, so that the connection doesn't break on a
		flaky line.

		b. FTP works by opening a port, and then asking the
		server to send a file to it.  FSP uses the same port
		all the time for communication, and asks for segments
		of a file.  So you can start off a transfer half way
		through a file, if you really want to.

		c. The server tries to make sure you don't ask for
		packets too quickly.  Each packet it sends out has a
		random identification number, which the client must
		return on the next request.  (If the client loses the
		number, it must wait a few seconds before the server
		accepts another packet from it).  Therefore, the client
		has to wait for an answer to each request before it
		sends out the next one.


Q3.2 How secure/anonymous is FSP?

	By default, the FSP daemon keeps logs of transactions, along
	with their site names.	An FSP administrator could use this to
	find out who you are, with a reasonable degree of certainty.

	In short, FSP gives you no more privacy than anonymous FTP.
	Anyone who tells you different has a less devious mind than most
	FSP admins I know.

	Why not make FSP more anonymous?  Well, it's impossible to make
	a protocol with complete anonymity, since at some point, the
	remote site will have to send a file back to you, and it needs
	at least an address to send it to.

	If you really need privacy, you can encrypt any files you make
	available, and only give out the decryption password to a select
	few.  But of course, you have to trust them to keep the password
	safe.


Q3.3 Why not add passwords to FSP?

	(Thanks to Joseph Traub for the material for this section)

	1. They don't add much security.  If you use one password for
	   the whole site, then you might just as well set up the site
	   and only tell a few people its port number.	That's no more
	   or less secure than using a password.  Besides, it's easier
	   just to set up the server only to respond to certain hosts.

	2. Any other password system is likely to be a big lose on
	   efficiency, since you'll have to check every single packet.

	3. The main use of server passwords appears to be so that people
	   can move pirated software around, and the authors don't want
	   to add code to support that.

	To quote Joseph Traub, the ex-FSP maintainer:

		If you really want to do passworded file transfer, grab
		a copy of the ftpd source code (which is also on my
		server) and modify it to a) use a higher port number
		(Yes virginia, you CAN specify port numbers to most ftp
		clients) and b) to read a file other than /etc/password
		to look up user information.

		This capability does NOT belong in FSP because it gets
		away from the concept of lightweight simple file
		transfers.

	And to quote Phil Richards, one of the current FSP maintainers:

		I agree.

	Just for added emphasis, the other FSP maintainer adds:

		Me too :-)


Q3.4 So what *does* FSP stand for?

	As of 12th August 1993, FSP stands for `File Service Protocol'.
	Thanks to mg@ac.duke.edu (Michael Grubb) for the words, and
	Wen-King for the initials.

	Other suggestions were:

		File Slurping Protocol
		Flaky Stream Protocol
		FTP's Sexier Partner


---------------------------------------------------------------------------


Section 4: Who's Who?

Q4.1: Who writes and maintains FSP software?

	Wen-King Su (wen-king@cs.caltech.edu) wrote the original Unix
	version (versions 1.0 to 2.6.4).

	Joseph Traub (was jtraub@cs.cmu.edu) was maintainer from Dec
	1992 to July 1993 (versions 2.6.5 to 2.7.1).

	The current maintainers are Phil Richards (pgr@sst.icl.co.uk)
	and Pete Bevin (pete@sst.icl.co.uk).  Phil is also the maintainer
	of fspclient, an FTP-like interface for FSP.

	Sven Pechler (S.A.Pechler@bdk.tue.nl) wrote and maintains a VMS
	version.  OS/2 is handled by Larkin Lowrey (llowrey@ucsd.edu),
	and Lindsey Smith, of the MS-DOS rewrite is SMITH@fgs200.fgs.com.


Q4.2 Who helped put this FAQ together?


	The following people have contributed to the FAQ.  Thanks very
	much to all of them.

		Pete Bevin <pete@sst.icl.co.uk>
		Tony Brannigan <tbrann@ox.ac.uk>
		Maurizio Codogno <mau@beatles.cselt.stet.it>
		David DeSimone <fox@netcom.com>
		Ian Dickinson <vato@violet.csv.warwick.ac.uk>
		Andy Doherty <ssudoher@reading.ac.uk>
		Jan Nicolai Langfeldt <janl@ifi.uio.no>
		Ove Ruben R Olsen <Ruben@uib.no>
		Lutz Prechelt <prechelt@ira.uka.de>
		Phil Richards <pgr@sst.icl.co.uk>
		Lindsey Smith <SMITH@fgs200.fgs.com>
		Wen-King Su <wen-king@cs.caltech.edu>
		Joseph Traub <jtraub@cs.cmu.edu>

