Rediff Logo Infotech The Rediff Music Shop Find/Feedback/Site Index
HOME | INFOTECH | HEADLINES
May 31, 1999

HEADLINES
SHAREWARE
DISCUSS
POLICY POLICE
JOBS
ARCHIVES


Search Rediff

Revenge of the nerds! Warlock Srikant Sreenivasan prescribes three recipes for stirring graphics out of shell accounts.Revenge of the nerds! Warlock Srikant Sreenivasan prescribes three recipes for stirring graphics out of shell accounts. Like everything else in India, the Internet too has a caste system. To be precise, the 'TCP/IP' and the 'shell' accounts.

The TCP/IP account is your regular Internet account that lets you surf in all the multimedia glory of the Web. In India it is still expensive and beyond the means of most in the middle class.

Email this page to a friend. The shell account is the really poor cousin of TCP/IP. Forget about video clips and sound, it cannot even show you ordinary still pictures. Text, text and more text is all you get.

Most students in India can only afford subsidised shell accounts. They hardly experience the colour, graphics and multimedia sophistication of the Web.

It is as though they are still living on an Internet that predates the invention of the graphical browser!

This article will introduce students to a few networking tricks that will help them use their existing shell accounts to surf the Web with the full power of multimedia. And, most importantly, without breaking any existing laws!

Besides, by the end of all this, students are likely to have picked up some crucial insights into the chemistry of the Internet itself.

But before we take the plunge, some background...

Everything begins with politics

The irony is that for an Internet access provider it is cheaper to give out the multimedia TCP/IP accounts. The cost of giving out the drab text-only shell account is, strangely, a bit higher.

This is because when you use a shell account you are mostly using the ISP's computer. And the ISP has to pay for the power of that machine.

When you log on and decide to surf you have to launch a browser like Lynx. This browser does not run on your machine. It runs on the ISP's machine. Input commands from your keyboard are relayed over the phone lines to the ISP's computer and it does the surfing for you. Whatever it brings down from the Internet for you to see is then merely displayed on your screen.

Because all through the operation, the ISP's computer is doing the dog's work, the ISP ends up paying for the better computing power that would be required to give out shell accounts. Hence, the higher cost price for providing shell account access.

On the other hand, with TCP/IP accounts, ISPs only plug the subscribers' machines to the Internet. All the computing power to run the browser and display images or play sound and animation comes from the subscribers' machines.

This is one reason why the shell account is dead in most parts of the world. Why would anyone pay more for less? But in India, there is a history to the survival of the shell account. A history of attitude:

The Videsh Sanchar Nigam Limited is the government owned overseas telecommunications monopoly. Until recently, it also had a monopoly over the business of providing Internet services.

The VSNL gives out Internet accounts to students at a heavy concession. To save costs, it should actually give out the lesser cost price TCP/IP accounts. But no: If the students are paying less, they must get something essentially inferior, even if this does not benefit anyone. Period.

It is impossible to argue with the Great Indian Bureaucracy, which is pervaded by a feudal mindset. Its attitude towards the youth is generally belittling and patronising.

Consequently, students are stuck with shell accounts from the Internet's Jurassic Age. The good news is it is possible to break out of the shell...

Technology comes to the rescue

To understand how a shell account can be made to yield multimedia content, it is crucial to understand three concepts very clearly:

  1. The IP address
  2. Various kinds of shell accounts and
  3. The graphical browser
I know these concepts backwards! Let's skip down to the real stuff.

1. The IP address

The Internet is a global computer network built of smaller such networks. If a computer is on the Internet, it has to be connected to this network.

There is a system to assign an address to every computer on the Internet. This address is called the 'Internet Protocol' address or the IP address.

IP addresses are at the core of how the Internet works. When you type a URL of a site like http://www.rediff.com, your computer sends it out to a directory which looks up the IP address of the machine that holds http://www.rediff.com.

When http://www.rediff.com needs to send you its home page and all the images on it, it will need to know the IP address of your machine, the one that sent the request for viewing the home page.

An Internet without IP addresses is like a postal system in a world that does not name and number its homes, streets, cities and countries.

Yet, exceptions to the rule are a rule themselves: Actually, there are some computers, which communicate over the Internet and still do not have an IP address!

Typically, these computers use a shell account. But we are getting ahead of the story...

2. Various kinds of shell accounts

The shell actually is an interface between the user and the operating system of a computer.

(This definition is highly oversimplified but should do for the scope of the article).

So, a shell is what you come across when you want to command a computer. It does not matter whether you are sitting at the computer physically; even over a network, once you reach a remote computer and type commands at its shell you can use the resources of the remote computer.

Computers that allow others to access their resources over a network are called host computers. When people use their computers to connect to a host computer, nerds call it 'terminal emulation': your computer is a 'terminal' that is simply emulating the 'host' computer.

In the early days of the Internet there were very few computers with a proper IP address. Almost anyone who wanted to connect to the Internet had to connect to, or log into, a host computer with an IP address.

Also, since the early days, most hosts on the Internet run the Unix operating system or one of its variants. That is why they are called Unix hosts.

When the owner of a Unix host allows you to use his computer to access the Internet by letting you punch commands at the shell, he is, in effect, giving you a shell account on his computer.

If you think that once you get to punch commands at the shell of a remotely situated computer, you are in full control of that machine, the answer is yes and no.

Yes, because technically it is quite possible. That is if the owners of the machine want to give you the right to command the computer completely, 'supervisory rights'. Supervisory rights are powerful and allow you to even block access to other users of the computer. Supervisory rights are never given out.

Yet, the traditional shell account is powerful enough and you may do almost everything in an area prescribed exclusively to you. You may give any command that the operating system can understand to use the machine's full scope. Only you cannot affect other people who have accounts on the machine.

But the VSNL shell account is the worst kind you can have.

It is what computer professionals call 'rsh' or the restricted shell. It is menu driven and offers only the bare minimum of controls to the user. You cannot punch just any command at the shell. All you can do is follow a prescribed set of instructions to carry out a prescribed set of tasks. That is it.

Besides, in a shell account situation, because one single host computer is doing the surfing for several users, the host tries to minimise the load on itself by blocking out graphics and multimedia and sticking to only text.

If you are dreaming of making this shell account throw up anything more than text, you will first have to understand how the graphical browser does it in the first place.

3. The graphical browser

The graphical browser is like any other regular programme that you install on your computer. It works only if you have a TCP/IP account.

When you connect with a TCP/IP account, your computer is immediately assigned an IP address. This makes you a unique entity on the Internet.

When you fire up your browser on your machine and ask for a Web page on some site, that page is directly delivered to your computer because it now has a specific address on the Internet.

This Web page contains all the text that it has besides a set of computer instructions written in a computer language called the 'hypertext markup language', or HTML.

HTML carries instructions that lay out the Web page on your screen. HTML tells the browser to make some parts of the text into headlines, others into italics, bold etc.

But most importantly HTML contains addresses of images so that the browser can read them and without your intervention call for the image files too. Once the image files are in your computer, the browser lays them out in their proper position within the text and displays a graphics-rich page to the user.

Also, HTML can carry instructions for fetching video and sound clips. All this leads to the multimedia experience of the graphical browsers.

The first graphical browser was called Mosaic. It was built by the programmers of the National Centre for Supercomputing Applications in the United States.

Later Netscape Inc built a graphical browser that almost dominated the Internet. Today it is closely followed by Internet Explorer, another browser from Microsoft.

Whatever graphical browser you may use, one thing does not change. They all need an IP address to work. You can't make your graphical browser work with a shell account because a shell account does not assign you an IP address.

When you don't have an IP address the graphical browser will not know to which address the Internet files are to be brought down to.

Making the shell do multimedia

To make the impossible happen there are two basic requirements: (a) a graphical browser installed on your machine and (b) knowledge of making the browser believe that your machine has been assigned an IP address!

This can be achieved in three ways:

  • The best way [IP emulation in geeklish]
  • The so-so way [winsock.dll emulation]
  • The complete no-brainer way [special browsers]
Note:
These three methods are explained below in a jargon-free language that presumes the reader has absolutely no knowledge of Internet technologies.
However, if you feel you are being talked down to, skip lower to the point where the very same methods are explained again for those familiar with the concepts and the tech-speak involved.

The best way

You have a graphical browser like Netscape or Internet Explorer already installed on your computer. Only you don't have a TCP/IP account. Just a restricted shell account from VSNL.

Run your browser. Now connect to your no good restricted shell account. In the menu that you get on screen, selecting option 3 will make you 'telnet'.

Telnet is an Internet 'protocol', or method, that lets you connect to another computer and type commands at its shell. In other words, you are ready to use some remote computer's resources when you telnet to it.

Now telnet to any Unix host on the Internet that offers you a full, or unrestricted, shell account for free. (A link to a list of such hosts has been provided at the end of this article).

Once you reach the unrestricted shell of a Unix host you can run a TCP/IP emulator called SLiRP. This programme immediately reaches out across the Internet via your telnet connection at VSNL and assigns your computer a fake IP address! An address that only the remote Unix host can figure out.

Now as you surf, all the images, sound and video clips, everything that you need, is first fetched by the remote Unix host that has a proper IP address and then relayed to your machine directly on the false IP address that the host has provided. Simple, isn't it? And as powerful as a regular TCP/IP account too. Just likely to be a bit slower though. However, you may use almost any TCP/IP application like the popular ICQ messaging system.

The so-so way

When any Internet application like your browser sends out requests for files from the Internet or receives them, it does not do it directly.

It has to route these requests through the operating system of your computer or utilities attached to the operating system.

Under the popular Windows operating system the browser sends and receives information over the Internet through winsock.dll or wsock32.dll files.

This is because when you make a TCP/IP connection to the Internet, the IP address assigned to you is actually held by winsock.dll.

Let us go through this with an example. Suppose you want to visit http://www.rediff.com. The moment you type the address in the browser, winsock.dll will make a note of the site's name and try to look up the IP address of the machine that holds http://www.rediff.com.

To look up the IP address, winsock.dll will have to go out on the Web to a machine that can do this kind of directory look-up. This machine is a computer on the Internet that is called the 'DNS server'. DNS stands for the 'domain name system'. The DNS associates easy-to-remember names like http://www.rediff.com to the long number strings that make up the actual IP address of the site.

Once the DNS server finds the IP address behind http://www.rediff.com, the information will have to be returned to the winsock.dll on your computer. That can be done only when the winsock.dll on your computer has an address in the first place; the IP address that was assigned to it when you connected to the Internet with your TCP/IP account.

Got it?

Now another way to make a shell account do graphics is to replace the winsock.dll on your computer with another similar file.

Several flavours of this replacement for winsock.dll are available. All work in a subtly different way.

Yet, broadly speaking, all of them emulate winsock.dll when they are dealing with Internet applications on your machine.

But on the other side, when they reach out on the Internet they behave completely differently from winsock.dll. They simply revert to our old idea of using VSNL's restricted shell account to telnet to a full shell account on some remote Unix host.

Thereafter they just use the remote machine's IP address to fetch all the image and multimedia files that the browser may ask for.

This 'winsock emulation' method is second to the 'IP emulation' method only because (a) though you can use a browser of your choice you can only run their 16-bit versions.

This usually means slightly slower rendering of the Web page on you screen. Besides, you cannot use any other TCP/IP applications like the ICQ messaging system. Also, using 16-bit browsers mean no Java. That cuts out fancy chat rooms too.

The complete no-brainer way

Download and install special browsers like SlipKnot or I-Comm. That's it. Connect to your VSNL shell account. Fire up the special browser and begin surfing on your special graphical browser!

But this no-brainer comes with a price. All of these special browsers lack the sophistication of regular browsers like those from Netscape and Microsoft.

For instance, the special browsers may not be able to do frames and Java, sound and video. So, though you are surfing with images and colour, the experience is not quite the same as with a genuine TCP/IP account.

Just do it! Make the methods work

Now that you have the concepts behind the tricks that make shell accounts throw up multimedia, you are ready to take in the jargon-ridden do-it-yourself.

These final words will put you through the process of tweaking your own VSNL shell account besides providing some more insights into how the tricks really work.

This time we begin the other way around...

  • The special browsers way [complete no-brainer in English]
  • The winsock.dll emulation way [so-so solution]
  • The IP emulation way [best solution]

Under the hood

All the three methods require a full access to a Unix shell. Unfortunately, VSNL's shell account only gives a restricted menu-driven shell. To use a full Unix shell you will need to use the telnet program and log on to a remote Unix host.

Those of you with some relative or friend abroad it is easy to acquire a shell account. Others need not despair: there are several 'freenets' where you can get full shell access. A link to the freenets is provided at the end of the article.

However, be prepared for slow speeds with freenets.

Special browsers (The complete no-brainer way)

The simplest way to cajole your shell account to do graphics is to use special browsers like SlipKnot or I-Comm. Both SlipKnot and I-Comm are low-cost shareware Web browsers.

These browsers work by sending the Web page requests to the remote Unix host. By controlling the Lynx browser in the remote host all pages, images etc are fetched and saved on the Unix host.

Then the Z modem file transfer utility sz is invoked to transfer the files across to your PC. Once the html file and the required image files are downloaded to your PC, the page is displayed.

How to:

  1. From the links at the end of the article download SlipKnot or I-Comm. Set up and configure the special browser. Refer to installation instruction supplied with the package or check out the Web site.
  2. Connect to VSNL's shell account using the built-in communication utility of SlipKnot or I-Comm and log in with your username and password.
  3. Type '3' without the quotes to invoke the telnet programme
  4. Now type 'open YourUnixHost.com' without the quotes. Of course, remember to replace YourUnixHost.com with the address of the actual host you are telneting to. Then just log in there with your username and password.
  5. Make sure that the Unix host you are connecting to has support for Z modem, Lynx Web browser and 'rm' command.
  6. Start browsing graphically.

Winsock emulation (The so-so way)

While the approach above is simple, it suffers from one major drawback, one has to use an alternative browser like I-Comm or SlipKnot.

These Browsers lack many of the 'cutting-edge' features found in browsers from Netscape and Microsoft.

But it is possible to use browsers of Netscape and Microsoft to browse graphically while using a shell account.

Browsers like Netscape Navigator and IE are TCP/IP applications. These applications use TCP/IP 'calls' to access the Internet and for that matter any TCP/IP based Network.

To make it easy for developers, the TCP/IP calls are made accessible through the 'sockets API' libraries. Under Windows, this is usually in files called winsock.dll and wsock32.dll.

Well, all that it takes to trick Netscape or IE to browse graphically on a shell account is to use an alternative for the winsock.dll file like Shellsock.

Such a 'sockets API' replacement will present the familiar sockets call interface to applications like Netscape or IE, but will internally fetch the HTML files, images etc similar to the special browsers like I-Comm or SlipKnot explained above.

Advantages to this approach are that users can run popular browsers instead of special browsers. Also, some of the limitations in I-Comm or SlipKnot, like lack of Java support, JavaScript support etc can be overcome.

However, you can only run 16-bit Windows applications so be sure to use a 16-bit version of Netscape or IE when using Shellsock.

Shellsock, while presenting the familiar 'Windows sockets API' interface to applications, internally fetches the HTML files, images etc using telnet and Lynx programmes of the Unix host.

Both Twinsock and Ultra Twinsock employ a slightly different mechanism called 'proxy sockets' to enable graphical browsing on a shell account.

Unlike Shellsock, Twinsock has a server counterpart called 'tshost' that resides on your Unix host and a client counterpart that has to be installed on your PC.

Also, the tshost script has to be installed on your Unix host.

How to:

  1. Download and install Shellsock or Twinsock or Ultra Twinsock. Refer to the install instructions that accompany the package.
  2. Connect to VSNL and telnet to a remote Unix host like above. Log in to the remote host.
  3. Confirm that you have access to telnet, the 'stty' command and Lynx (and optionally tshost).
  4. Start browsing.

IP emulation (The best way)

SLiRP is a TCP/IP emulator for shell users, which most closely mimics the functionality of a full TCP/IP account.

SLiRP can mimic both a SLIP (and CSLIP) protocol and a PPP protocol (when compiled with the PPP option enabled).

The SLiRP binary must be installed on your Unix host. Now you either do this yourself or use the one that is found on most freeenet Unix hosts.

As soon as SLiRP is invoked, it assigns an internal IP address to your PC much like VSNL's TCP/IP accounts.

Except that the IP address allotted by SLiRP is an internal address. SLiRP uses the host's real IP address to actually access the Internet and then forwards the data to the internal IP address. This technique is similar to 'IP masquerading'.

How to:

  1. Download and install SLIP support for Windows from Microsoft.
  2. Create a new dial-up networking connection. Select the SLIP connection.
  3. Dial to VSNL shell numbers (student or regular) and login using your username and password.
  4. Telnet to your Unix host and login using your username and password.
  5. Type 'slirp -keepalive -b 33600'. Note down the IP address assigned to you.
  6. Click 'Done' on your dial-up networking. You will be prompted for an IP address.
  7. Now enter the IP address previously noted down and click on 'Proceed'.
  8. Start a browser like Netscape Navigator or IE and start browsing.
  9. As a bonus even mIRC and most other Internet utilities should work perfectly.

Resource sites you can't do without:

Tell us what you think

HOME | NEWS | BUSINESS | SPORTS | MOVIES | CHAT | INFOTECH | TRAVEL | SINGLES
BOOK SHOP | MUSIC SHOP | GIFT SHOP | HOTEL RESERVATIONS | WORLD CUP 99
EDUCATION | PERSONAL HOMEPAGES | FREE EMAIL | FEEDBACK