This is an update of an article that first appeared in the Badger State Smoke Signals and later in CQ-VHF and CQ Magazines. The 1999 magazine reprint can be seen here.
The World-Wide-Web is everywhere these days, we're bombarded with commercials for anything that ends in ".com". Yes, the Web is so well known that these days a lot of the uninitiated think that the World Wide Web IS the Internet. Those of us who have used the Internet for any length of time know that this is simply not the case. The Internet is a world-wide digital network - Web Browsers are just one way to use it. As amateurs, we also have a digital network at our disposal, and it can also carry the protocol set that powers the Internet, TCP/IP. So our network, one can reason, can carry Web pages. This much is true, and the subject of this article is how it can be done.
Before we discuss how to set up a Web service, we need to understand a little bit about how the system of Web page distribution works on the Internet. One important concept you will need to know about is the "server/client" concept. Simply put, a "server" is a computer running a specific program that allows it to provide a service on behalf of a user or another computer. In the World Wide Web, a computer that stores and dispenses copies of web pages is known as a "Web Server". These are machines set up with software and large drive capacity to store and dispense web pages to "clients".
A client is a computer running software designed to collect and display (or store) information provided by the server. When you connect to the internet and view web pages, your computer is the "client". The software that allows your computer to become the client is your Web Browser along with the software that allows you to connect up to the internet. Figure 1 shows a visual representation of the Server/Client system.
To summarize, we need a server to store and distribute the web pages on demand, a network to deliver them, and suitable client software to interpret and display the pages.
As most people know (or at least have heard), packet radio uses the AX.25 protocol as the standardized method that our computers use to communicate with each other. TCP/IP, Net/Rom, and other protocols can be sent via packet radio, but they must first be "wrapped-up", or "encapsulated" into an AX.25 packet.
Once we have the ability to send these TCP/IP packets, we must have the ability to carry the packets to their destination. In the example shown with Figure 1, we had the Internet Infrastructure to carry the web pages to the client computer. However, we use radio, and that is where the radio network comes into play.
When all of these pieces (server, radio interface, and radio network) are put together, we have something that looks like Figure 2 on the "server side" of things:
Specifics of Our Test Setup:
The server uses Linux as an operating system on a older 33 MHz 486 computer. For those who may be unfamiliar with Linux, itis a multi-tasking system that is gaining wide popularity these days. Because of it's multi-tasking nature, it is able to run the two programs necessary to serve up those fresh Web pages.
The program that actually talks to the TNC and provides radio service (such as a BBS and other conventional packet functions) is JNOS. JNOS is coupled to Linux as though it were a separate computer through a pretend Serial Line Internet Protocol (SLIP) pathway called a UNIX "pipe". The actual web-server software is Apache, a very popular and well-used internet Web-server program. It listens for incoming Web page requests and serves them up to the radio network, using JNOS as a gateway to the radio network. It is worthy of note that JNOS has a web server built into it, too. Figure 4 is a representation of how Linux, the Web Server Software and JNOS work with each other.
You may be asking why we are using a separate program for Web service when JNOS has a server built-in? This is simple - capabilities. It is possible to put Apache on an entirely different computer and link it to JNOS through a wired network (which our first trial did). This would allow even more services and computers linked to the radio network. And Apache has some enhanced security features, as well as enhanced capabilities that make it appealing for our use.
JNOS talks to a TNC running KISS at a radio speed of 9600 bps. It talks to a radio network through a 9600 bps LAN node, which is in turn linked to a 9600 bps Backbone node and 1200 bps LAN node. Figure 5 shows how the node stack is configured.
The client side is somewhat similar to the server side in that it also uses JNOS running on Linux. Of course, Apache is not running as we don't need it here - this is a "client only" computer. Instead, we use one of the client browser software packages such as Lynx, Netscape, Arena, or Opera to name a few. Again, we are using JNOS to talk to the 9600 bps KISS TNC.
When you put this all together, it looks like Figure 1 - except that the radio nodes replace the "Internet Infrastructure" part of the communications chain.
The Web Pages themselves are written in HTML, just as this one is. They are simple text in content, with no graphics. The system operates just as you might be accustomed to - it supports linking to other pages and other sites. Our server side was not set up to link to other sites, but it does support this feature. In fact, any legal application supported on the Internet World Wide Web can be used on the radio network.
Graphics can be sent as well, but it was decided that the heavy download time needed would not be suitable for a radio path that is occasionally active. However, a Web page with mostly text content goes fairly fast at 9600 bps if the radio network is not too busy.
It is possible to run JNOS under DOS and use it's built-in web server. However, this would be difficult to do as DOS requires careful memory management. Most people would not opt to do it this way. Apache is also available for DOS, and one could use another program to communicate with the TNC. Again, however, we are looking at memory limitations.
It would also be possible to run Apache under Windows 2000 or Windows XP Professional edition, but that would be costly. It also is inherently less secure, and is proprietary software. It can't be modified, unlike Apache, JNOS and Linux itself.
The client side is a little more flexible, however. There are two methods to do this, one is through the addition of a software program. The other uses a special, new version of a TNC.
The software solution consists of two programs that have been written to allow Windows computers operating their TCP/IP systems with a TNC. They are called ETHRAX25, and there are two versions available. One is for Windows 3.x and the other for Windows 95/98. It is not known whether these will run under Windows 2000 or Windows XP.
What these programs do is wrap the TCP/IP packets from your browser into AX.25 packets, and send them to your TNC through your serial port. Both of these programs are available on the World-Wide-Web - see the section at the end of this article for the URL.
The hardware solution involves the "MCB-152" TNC that was developed
by a group of European hams. This TNC is unique in that it behaves like
a modem, ready for your favorite browser software to use. The disadvantages
are that you have to buy another piece of equipment. The advantage is that
you don't have to set up another piece of software. If you have more money
than time, then the MCB-152 is for you. Information on the MCB-152 is provided
in the resources section at the end of this article.
Most people would prefer to run the built-in WWW server in JNOS, it is not hard to set up and it does allow you to control all of your facilities with one program.
Apache operating as a seperate program was used for a few reasons. One is that at some point, the web server software may be moved to another computer on my home ethernet.
Another is flexibility - we can upgrade server software without changing the JNOS packet radio software, and vice-versa. Apache also supports a lot more of the newer Web plug-ins and it will doubtless support newer Web applications faster than JNOS can support them.
Yet another reason is that at some point we hope to implement Dynamic Host Control Protocol, which assigns a temporary IP address to those who don't have a permanent one. Linux handles this, but JNOS does not right now. For most applications, configuring the JNOS WWW server may be all you need, however.
Another future plan doesn't involve software, clients, servers,. or other such things. It is our network infrastructure - we will be converting, on a trial basis, to 19.2 Kbps radio speed. The hope is that we can convert our backbone to operate at this speed, possibly providing faster service to more of the state's networked TCP/IP host computers that live on packet radio.
Special thanks to Linus Torvalds, the many Linux contributors, the Apache team, James Dugal, N5KNX for carrying on the work on the JNOS program, Steve Mc Donough, KE9LZ and finally, to Ron Nelson, N9CFN for all of their good work in making all of this possible.
I welcome your questions and comments on this. If you do decide to undertake this test, good luck!
For the ETHRAX25 programs, look here.
To download JNOS, look here. (ftp site)
For information on the MCB-152 new TNC, look here.
Here's a site that will help you locate your local IP Address Coordinator
to the WAPR Home Page Index.