222 lines
13 KiB
HTML
222 lines
13 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>Linux Networking-HOWTO (Previously the Net-3 Howto): General Information about Linux Networking.</TITLE>
|
|
<LINK HREF="NET3-4-HOWTO-5.html" REL=next>
|
|
<LINK HREF="NET3-4-HOWTO-3.html" REL=previous>
|
|
<LINK HREF="NET3-4-HOWTO.html#toc4" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="NET3-4-HOWTO-5.html">Next</A>
|
|
<A HREF="NET3-4-HOWTO-3.html">Previous</A>
|
|
<A HREF="NET3-4-HOWTO.html#toc4">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s4">4. General Information about Linux Networking.</A></H2>
|
|
|
|
<P>
|
|
<H2><A NAME="ss4.1">4.1 A brief history of Linux Networking Kernel Development.</A>
|
|
</H2>
|
|
|
|
<P>Developing a brand new kernel implementation of the tcp/ip protocol stack
|
|
that would perform as well as existing implementations was not an easy task.
|
|
The decision not to port one of the existing implementations was made at a
|
|
time when there was some uncertainty as to whether the existing
|
|
implementations may become encumbered by restrictive copyrights because of the
|
|
court case put by U.S.L. and when there was a lot of fresh enthusiasm for
|
|
doing it differently and perhaps even better than had already been done.
|
|
<P>The original volunteer to lead development of the kernel network code was
|
|
Ross Biro <CODE><biro@yggdrasil.com></CODE>. Ross produced a simple and
|
|
incomplete but mostly usable implementation set of routines that were
|
|
complemented by an ethernet driver for the WD-8003 network interface card.
|
|
This was enough to get many people testing and experimenting with the software
|
|
and some people even managed to connect machines in this configuration to live
|
|
internet connections. The pressure within the Linux community driving
|
|
development for networking support was building and eventually the cost of a
|
|
combination of some unfair pressure applied to Ross and his own personal
|
|
commitments outweighed the benefit he was deriving and he stepped down as
|
|
lead developer. Ross's efforts in getting the project started and accepting
|
|
the responsibility for actually producing something useful in such
|
|
controversial circumstances were what catalyzed all future work and were
|
|
therefore an essential component of the success of the current product.
|
|
<P>Orest Zborowski <CODE><obz@Kodak.COM></CODE> produced the original BSD socket
|
|
programming interface for the Linux kernel. This was a big step forward
|
|
as it allowed many of the existing network applications to be ported to
|
|
linux without serious modification.
|
|
<P>Somewhere about this time Laurence Culhane <CODE><loz@holmes.demon.co.uk></CODE>
|
|
developed the first drivers for Linux to support the SLIP protocol. These
|
|
enabled many people who did not have access to Ethernet networking to
|
|
experiment with the new networking software. Again, some people took this
|
|
driver and pressed it into service to connect them to the Internet. This
|
|
gave many more people a taste of the possibilities that could be realized
|
|
if Linux had full networking support and grew the number of users actively
|
|
using and experimenting with the networking software that existed.
|
|
<P>One of the people that had also been actively working on the task of building
|
|
networking support was Fred van Kempen <CODE><waltje@uwalt.nl.mugnet.org></CODE>.
|
|
After a period of some uncertainty following Ross's resignation from the lead
|
|
developer position Fred offered his time and effort and accepted the role
|
|
essentially unopposed. Fred had some ambitious plans for the direction that
|
|
he wanted to take the Linux networking software and he set about progressing
|
|
in those directions. Fred produced a series of networking code called the
|
|
`NET-2' kernel code (the `NET' code being Ross's) which many people were
|
|
able to use pretty much usefully. Fred formally put a number of innovations
|
|
on the development agenda, such as the dynamic device interface, Amateur Radio
|
|
AX.25 protocol support and a more modularly designed networking implementation.
|
|
Fred's NET-2 code was used by a fairly large number of enthusiasts, the number
|
|
increasing all the time as word spread that the software was working.
|
|
The networking software at this time was still a large number of patches to
|
|
the standard release of kernel code and was not included in the normal release.
|
|
The NET-FAQ and subsequent NET-2-HOWTO's described the then fairly complex
|
|
procedure to get it all working. Fred's focus was on developing innovations to
|
|
the standard network implementations and this was taking time. The community
|
|
of users was growing impatient for something that worked reliably and satisfied
|
|
the 80% of users and, as with Ross, the pressure on Fred as lead developer rose.
|
|
<P>Alan Cox <CODE><iialan@www.uk.linux.org></CODE> proposed a solution to the
|
|
problem designed to resolve the situation. He proposed that he would take
|
|
Fred's NET-2 code and debug it, making it reliable and stable so that it
|
|
would satisfy the impatient user base while relieving that pressure from
|
|
Fred allowing him to continue his work. Alan set about doing this, with some
|
|
good success and his first version of Linux networking code was called
|
|
`Net-2D(ebugged)'. The code worked reliably in many typical configurations and
|
|
the user base was happy. Alan clearly had ideas and skills of his own to
|
|
contribute to the project and many discussions relating to the direction the
|
|
NET-2 code was heading ensued. There developed two distinct schools within the
|
|
Linux networking community, one that had the philosophy of `make it work
|
|
first, then make it better' and the other of `make it better first'. Linus
|
|
ultimately arbitrated and offered his support to Alan's development efforts
|
|
and included Alan's code in the standard kernel source distribution.
|
|
This placed Fred in a difficult position. Any continued development would
|
|
lack the large user base actively using and testing the code and this would
|
|
mean progress would be slow and difficult. Fred continued to work for a short
|
|
time and eventually stood down and Alan came to be the new leader of the Linux
|
|
networking kernel development effort.
|
|
<P>Donald Becker <CODE><becker@cesdis.gsfc.nasa.gov></CODE> soon revealed his
|
|
talents in the low level aspects of networking and produced a huge range of
|
|
ethernet drivers, nearly all of those included in the current kernels were
|
|
developed by Donald. There have been other people that have made significant
|
|
contributions, but Donald's work is prolific and so warrants special mention.
|
|
<P>Alan continued refining the NET-2-Debugged code for some time while working on
|
|
progressing some of the matters that remained unaddressed on the `TODO' list.
|
|
By the time the Linux <CODE>1.3.*</CODE> kernel source had grown its teeth the kernel
|
|
networking code had migrated to the NET-3 release on which current versions
|
|
are based. Alan worked on many different aspects of the networking code and
|
|
with the assistance of a range of other talented people from the Linux
|
|
networking community grew the code in all sorts of directions. Alan produced
|
|
dynamic network devices and the first standard AX.25 and IPX implementations.
|
|
Alan has continued tinkering with the code, slowly restructuring and enhancing
|
|
it to the state it is in today.
|
|
<P>PPP support was added by Michael Callahan <CODE><callahan@maths.ox.ac.uk></CODE>
|
|
and Al Longyear <CODE><longyear@netcom.com></CODE> this too was critical to
|
|
increasing the number of people actively using linux for networking.
|
|
<P>Jonathon Naylor <CODE><jsn@cs.nott.ac.uk></CODE> has contributed by significantly
|
|
enhancing Alan's AX.25 code, adding NetRom and Rose protocol support.
|
|
The AX.25/NetRom/Rose support itself is quite significant, because no other
|
|
operating system can boast standard native support for these protocols beside
|
|
Linux.
|
|
<P>There have of course been hundreds of other people who have made significant
|
|
contribution to the development of the Linux networking software. Some of these
|
|
you will encounter later in the technology specific sections, other
|
|
people have contributed modules, drivers, bug-fixes, suggestions, test
|
|
reports and moral support. In all cases each can claim to have played a part
|
|
and offered what they could. The Linux kernel networking code is an excellent
|
|
example of the results that can be obtained from the Linux style of anarchic
|
|
development, if it hasn't yet surprised you, it is bound to soon enough,
|
|
the development hasn't stopped.
|
|
<H2><A NAME="ss4.2">4.2 Linux Networking Resources.</A>
|
|
</H2>
|
|
|
|
<P>There are a number of places where you can find good information about
|
|
Linux networking.
|
|
<P>There are a wealth of Consultants available. A listing can be found at
|
|
<A HREF="http://www.linuxports.com/">LinuxPorts Consultants Database</A><P>Alan Cox, the current maintainer of the Linux kernel networking code maintains
|
|
a world wide web page that contains highlights of current and new developments
|
|
in linux Networking at:
|
|
<A HREF="http://www.uk.linux.org/NetNews.html">www.uk.linux.org</A>.
|
|
<P>Another good place is a book written by Olaf Kirch entitled the
|
|
<CODE>Network Administrators Guide</CODE>. It is a work of the
|
|
<A HREF="http://www.linuxdoc.org/">Linux Documentation Project</A>
|
|
and you can read it interactively at
|
|
<A HREF="http://metalab.unc.edu/LDP/LDP/nag/nag.html">Network Administrators Guide HTML version</A>
|
|
or you can obtain it in various formats by ftp from the
|
|
<A HREF="ftp://metalab.unc.edu/pub/Linux/docs/LDP/network-guide/">metalab.unc.edu LDP ftp archive</A>. Olaf's book is quite
|
|
comprehensive and provides a good high level overview of network configuration
|
|
under linux.
|
|
<P>There is a newsgroup in the Linux news hierarchy dedicated to networking
|
|
and related matters, it is:
|
|
<A HREF="news:comp.os.linux.networking">comp.os.linux.networking</A><P>There is a mailing list to which you can subscribe where you may ask questions
|
|
relating to Linux networking. To subscribe you should send a mail message:
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
To: majordomo@vger.rutgers.edu
|
|
Subject: anything at all
|
|
Message:
|
|
|
|
subscribe linux-net
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>On the various IRC networks there are often <CODE>#linux</CODE> channels on
|
|
which people will be able to answer questions on linux networking.
|
|
<P>Please remember when reporting any problem to include as much relevant detail
|
|
about the problem as you can. Specifically you should specify the versions of
|
|
software that you are using, especially the kernel version, the version of
|
|
tools such as <EM>pppd</EM> or <EM>dip</EM> and the exact nature of the problem
|
|
you are experiencing. This means taking note of the exact syntax of any error
|
|
messages you receive and of any commands that you are issuing.
|
|
<H2><A NAME="ss4.3">4.3 Where to get some non-linux-specific network information.</A>
|
|
</H2>
|
|
|
|
<P>If you are after some basic tutorial information on tcp/ip networking
|
|
generally, then I recommend you take a look at the following documents:
|
|
|
|
<DL>
|
|
<P>
|
|
<DT><B>tcp/ip introduction</B><DD><P>this document comes as both a
|
|
<A HREF="ftp://athos.rutgers.edu/runet/tcp-ip-intro.doc">text version</A> and a
|
|
<A HREF="ftp://athos.rutgers.edu/runet/tcp-ip-intro.ps">postscript version</A>.
|
|
<P>
|
|
<DT><B>tcp/ip administration </B><DD><P>this document comes as both a
|
|
<A HREF="ftp://athos.rutgers.edu/runet/tcp-ip-admin.doc">text version</A> and a
|
|
<A HREF="ftp://athos.rutgers.edu/runet/tcp-ip-admin.ps">postscript version</A>.
|
|
</DL>
|
|
|
|
<P>If you are after some more detailed information on tcp/ip networking then
|
|
I highly recommend:
|
|
|
|
<BLOCKQUOTE>
|
|
<EM>Internetworking with TCP/IP, Volume 1: principles,
|
|
protocols and architecture</EM>, by Douglas E. Comer, ISBN
|
|
0-13-227836-7, Prentice Hall publications, Third Edition,
|
|
1995.
|
|
</BLOCKQUOTE>
|
|
|
|
|
|
If you are wanting to learn about how to write network applications in
|
|
a Unix compatible environment then I also highly recommend:
|
|
|
|
<BLOCKQUOTE>
|
|
<EM>Unix Network Programming</EM>, by W. Richard Stevens,
|
|
ISBN 0-13-949876-1, Prentice Hall publications, 1990.
|
|
</BLOCKQUOTE>
|
|
|
|
|
|
A second edition of this book is appearing on the bookshelves; the new
|
|
book is made up of three volumes: check
|
|
<A HREF="http://www.phptr.com/">Prenice-Hall's web site</A> to probe further.
|
|
<P>You might also try the
|
|
<A HREF="news:comp.protocols.tcp-ip">comp.protocols.tcp-ip</A> newsgroup.
|
|
<P>An important source of specific technical information relating to
|
|
the Internet and the tcp/ip suite of protocols are RFC's. RFC is an
|
|
acronym for `Request For Comment' and is the standard means of
|
|
submitting and documenting Internet protocol standards. There are many
|
|
RFC repositories. Many of these sites are ftp sites and other provide
|
|
World Wide Web access with an associated search engine that allows you
|
|
to search the RFC database for particular keywords.
|
|
<P>One possible source for RFC's is at
|
|
<A HREF="http://pubweb.nexor.co.uk/public/rfc/index/rfc.html">Nexor RFC database</A>.
|
|
<HR>
|
|
<A HREF="NET3-4-HOWTO-5.html">Next</A>
|
|
<A HREF="NET3-4-HOWTO-3.html">Previous</A>
|
|
<A HREF="NET3-4-HOWTO.html#toc4">Contents</A>
|
|
</BODY>
|
|
</HTML>
|