Hi,
Our commenter below gave you a very good overall view of the
differences, but I believe I can add a few more which will be of
practical use to you.
Our first practical difference, beyond what we have already learned is
broadcasting. Broadcasting is a term used to describe a server letting
other servers and clients know that it exists, and that it has a
particular service to offer. NFS is a broadcasting protocol. Your
desktop computer doesn?t have to know that an NFS server is out there
willing to listen to it. It will ?hear? the server broadcasting. If
the client is setup properly to answer the broadcast, it will be able
to communicate with the server. But it didn?t have to be told that the
server was out there before hand. If you have ever been in a network
environment with a windows client, and used the Network Neighborhood
icon, you have seen broadcasting in action.
FTP is not a broadcasting protocol. The client, or you as the
operator, either knows where the server is, or it doesn?t. The client
could be literally sitting on top of the server, using its box as a
keyboard stand, and never know it is an FTP server, unless you tell
it, or it asks. The server is mute.
Another basic difference is the complexity of the protocols. FTP is a
basic communication protocal, as was suggested below, like HTML or
your mail (SMTP/POP). If you connect to a FTP server, with an FTP
client, and you have a user name and password, then you connect and
have the allowed access provided by that server. It is simple. You
don?t have to worry about things like the Version of the FTP server.
It?s FTP, that?s all you need to know. You connect on port 21, every
time, and you get your files, or send your work home.
NFS is a bit more complicated than that. There are two issues with nfs
that are commonly seen in newsgroups and tech reports. One is that,
linux nfs broadcasts its version as 3, when it is really version 2. If
you are running solaris, you have to use vers=2 (a variable setting)
to make the solaris mount work. Second, if you are using NIS, NIS does
not mount anything. To make NIS work the way you think it should, you
need NIS, nfs, and autofs working together: NIS provides the login
verification and tells the system what the user's home directory is,
autofs sees someone trying to access /home/user and then uses nfs to
mount that directory.
Anyway, you get the point. The fact that I used Linux or the
versioning problems is really a non issue, what is an issue is that
there is much more involved with NFS than with FTP to get it to work
as expected. This denotes a higher level of expertise in the one
responsible for setting up the service and maintaining it, however,
NFS offers a great deal more as well. Such as shared network drives.
The real difference between transferring a file to a shared drive, and
transferring a file to an FTP server, is the asynchronous connection,
or lack there of, with that server. Again, FTP doesn?t broadcast, even
when you are connected to it. Once you put a file on the server, you
know nothing about that file unless you ask. You could have uploaded
it, and I could have deleted it as soon as you did. There will be no
indication from the server that the deletion took place. The only way
you will know about it, is if you ask the server either for the file,
or a list of files in the directory that it should be in, and when it
doesn?t show up, then you?ll know it is gone. NFS broadcasts the state
of the files in the directory you are looking at.. you will actually
see the file disappear if you happen to be looking at the screen at
the time, or notice is it gone when the server broadcasts again.
I guess a easier to understand way of putting this is the FTP server
will only speak when spoken too, the NFS server will speak whether you
want it to or not. If you have relatives or acquaintances of these two
personality types you know there are disadvantages to both. The FTP
server requires a constant question before answer relationship with
you or your client computer. It won?t just tell you things, even when
they seem to be pertinent to what you are doing. The NFS server is
chatty, and therefore uses bandwidth on the network that is not always
being used in a practical way, meaning, if all the clients are off, it
is still chatting away over there, using bandwidth. Depending on the
size and design of the network, this can be a major problem, or a
barely noticeable problem, but it is there. FTP will only use
bandwidth, if it is specifically asked to do so.
One of the advantages however to a chatty server is that it is chatty,
and will continue to speak and provide information in a constant
manner. What this give us is the ability to not only share files, but
programs as well. FTP, transfers files. That?s what it does. That?s
all it does, and as soon as it has done this, it quits talking to you
until you want something else. But that is another request all
together and it will not relate the two requests. Program sharing is
therefore impossible with FTP.
(*Note: The trouble with statements like that last one, with the
current level of brilliant hackers out there, is that I?m almost
positive someone is going to point out some obscure program that runs
shared across FTP, so let?s say that it is not ?designed? to share
programs and it will take some brilliant hacker out there with nothing
better to do than to prove a GA researcher wrong to get it to work.)
The level of shared programs and files with NFS reaches the point of
what is called ?diskless operation?, which means, the client doesn?t
really need a hard drive to operate. Everything can be done from the
server. This was a really cool idea, until it was put to practical
use, and the limitations of network speed were seen. So most networks
systems continue to have disk clients, and use shared programs when it
is practical to do so.
NFS can also share things like the server?s CDROM, or your CDROM with
other clients. Same goes for floppy and Zip Drives as well. NFS can be
setup to back up your computer files to the tape drive, or any ones
files on the network, just as easily as it can backup its own files.
Version control is possible with NFS, where with FTP it is not (unless
you have a brilliant hacker out there who really needs to do something
this week during her spare time). Since FTP doesn?t care about a file
once a transfer is complete, it doesn?t keep track of them when they
are moved by other influences, such as another user on the system.
One area our commenter is slightly misleading about is that NFS
doesn?t only use TCP for its transfers. It also uses what is called
UDP. UDP is like TCP but as the changes in the letters suggest, it is
different.
FTP is still the most commonly used transfer protocol on the Internet,
because it is much lighter, as traffic goes, uses less bandwidth, and
has a better control over the transfer of the file itself. FTP does a
single job, and like any specialist, it does it far better than
someone else who is trying to do several other things at the same
time. FTP is not ?secure? really, meaning that when you type in your
username and password, it goes across the Internet in plain text.
Which, theoretically (and there have been some practical
demonstrations of this without the need of brilliant hackers), means
your user name and password can be read by someone else.
The solution to this has been SSH, or SFTP (secure ftp). What this
means is that the connection between you and the server is encrypted,
so such eavesdropping is currently impractical. NFS has had a history
of insecure standing for some time now as well, but it too can be run
through a SSH tunnel. However, where the extra load involved is
slightly noticeable using SFTP, it is almost debilitating on networks
trying to run SNFS. (I personally don?t know of a
business-real-live-network, that uses SNFS. And there is no real
reason too, when on an internal network. It is only when accessing NFS
servers outside your internal network that this becomes an issue).
I have below a number of links for further reference and reading. You
will probably notice that there are a great deal more on NFS than on
FTP, this is simply because there?s great deal more to understand when
using NFS than with FTP. This ?added complexity? shouldn?t be
perceived as trickling down the the users of a network that makes NFS
one of its available services. In fact it is this added complexity
which makes the details invisible to them. (if that brilliant hacker
has stopped trying to do wondrous things with FTP and setup the NFS
server correctly).
Links of Interest
NFS
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-nfs.html
NFS UDP Checksum Fix
http://www-mice.cs.ucl.ac.uk/multimedia/misc/tcp_ip/8805.mm.www/0179.html
Tuning NFS performance
http://osr5doc.ca.sco.com:457/PERFORM/NFS_tuning.html
On broadcasts, congestion and gong
http://www-mice.cs.ucl.ac.uk/multimedia/misc/tcp_ip/8707.mm.www/0195.html
DNS and BIND Minimizing Pain and Suffering
http://www.busan.edu/~nic/networking/dnsbind/ch06_03.htm
NFS- Network File System (this page has a list of Alternatives to NFS)
http://cbbrowne.com/info/nfs.html
Secure NFS via SSH Tunnel
http://www.netsys.com/cgi-bin/display_article.cgi?1138
File Transfer Protocol (FTP) Introduction
http://www.roboshareware.com/PlatinumFTPclientHelp/File_Transfer_Protocol_(FTP)_Introduction.htm
FTP " CrossNodes " Practical Advice for Managin your LANs, WANs, "
http://networking.webopedia.com/TERM/F/FTP.html
How the FTP protocol Challenges Firewall Security
http://www.isaserver.org/articles/How_the_FTP_protocol_Challenges_Firewall_Security.html
Searches used in compling this answer
+FTP Protocol Practical Uses
+NFS +UDP
+NFS "asynchronous"
+NFS "Program Server"
+NFS +FTP +Practical Differences
NFS +Practical Uses +FTP
thanks,
webadept-ga |