May 3, 2002

By Karen Kenworthy

IN THIS ISSUE

Programmers are well known for dazzling social skills. When we walk into a room, it's as if someone suddenly turned on the lights. Who's at the center of that crowd at the party? Probably a programmer. Fame, adoration, groupies -- they're an everyday part of a programmer's life.

In our dreams ... :)

Chatty Computers

OK, most computer programmers are a bit shy and reserved. But the computers we help bring to life are surprisingly gregarious. From the beginning, computers talked and listened to "peripheral" devices, such as keyboards and printers. Today, most computers also communicate frequently with mice and modems. Some are even on speaking terms with scanners, digital cameras, and more.

These communications take place via special circuits with the nautical name of "ports." Not a bad choice of words, since these are places where data sails into, and out of, our computers. And like their aquatic counterparts, computer ports come in several varieties and are used for several purposes.

One of the oldest types of port is called a Parallel Port, because eight bits, side-by-side, travel through it at once. Originally designed to carry data in only one direction, away from our computer, most of today's parallel ports are bi-directional. Over the years a wide variety of devices have been connected to computers via parallel ports, including tape drives, CD drives, and even scanners. But by far, the most popular and enduring use of parallel ports is talking to printers.

Another ancient port is the Serial Port, so-called because bits must pass through it one at a time. The serial ports found in most PCs limit traffic to no more than 115,000 bits each second. Because of this relatively slow speed, serial ports are mostly used to communicate with slow-talking devices such as mice, modems, and some older printers.

Today, most computers sport a high-performance port known as a Universal Serial Bus, or USB. Like serial ports, these limit arrivals and departures to one bit of data at a time. But USB ports compensate by transmitting up to 12 million bits every second!

If that's not enough speed, newer USB ports can transmit up to 480 million bits in a single second. These speeds make USB ports ideal for retrieving images from digital cameras, high-speed printing, and other uses that require the movement of large amounts of data. There's even enough capacity left over for a keyboard or mouse.

Now you might think these ports, plus a few more exotic varieties such as Firewire/IEEE 1394, could satisfy a computer's craving for communication. But computers quickly tire of talking to small, less intelligent devices than themselves. Before long they demand the company of their peers -- other computers.

Network Interfaces

I'm sure you know what computer folks call two or more computers that can talk to one another. No, not "job security." It's a "network." :)

Not content with giving this type of communication a name, they've also devised several types of hardware and software to make these electronic dialogs possible. And keeping with their more elevated purpose, these communication aids are more complex than mere ports. They even have a fancy name -- "network interface."

Windows stores information about each network interface in an "interface table." So to learn more about our computers' network connections, I recently enhanced the popular Computer Profiler program, teaching it to retrieve and display the information found in this table.

Perhaps the first thing you'll notice when you run the new Profiler is the number of network interfaces found on your computer. Surprisingly, most computers have at least two. One is usually an actual dialup or permanent connection to another computer. The other is a simulated connection called a "loopback."

But every computer is different. Well, many computers are different. I know mine is. To help you better understand the information the Profiler displays about your computer, here's a complete list of all the types of network interfaces the program detects and reports:

Loopback. This network interface is pure software -- no hardware is involved. It is essentially a computer's network connection to itself. The loopback allows Windows and other programs to perform certain tests, and perform some network-related tasks without requiring data to travel from one computer to another.

Ethernet. This is the most popular type of network interface used to connect computers to a Local Area Network (LAN). Most often, the data is carried by a dedicated cable. The cable may be "coaxial" (meaning one conductor is a cylinder surrounding the other conductor) or a "twisted- pair (meaning two wires, twisted around one another in a spiral). Both types of cable are designed to minimize electromagnetic interference, which could alter or corrupt the data they carry.

Token Ring. This network interface was created by IBM, and is still popular in "IBM Shops" (companies that use a lot of IBM equipment). Token Ring networks normally communicate over twisted-pair cables.

FDDI. These letters stand for "Fiber Distributed Data Interface," a fancy way to say fiber optics. This type of network interface converts data into pulses of light, then sends them through special cables made of ultra- clear glass or plastic.

PPP. This stands for Point-to-Point Protocol, a special procedure that allows network connections over dialup and dedicated telephone lines. If you use a telephone or ISDN modem to connect to your Internet Service Provider (ISP), your connection is probably made via a PPP network interface.

SLIP. Serial Line Internet Protocol, a procedure that allows network connections via your computer's serial port.

Packet Packaging

The new Profiler can reveal a lot more information about a network interface. For example, it knows each interface's maximum speed, in bits per second. If an interface has its own IP address, that will be displayed too.

The Profiler also discloses each interface's Maximum Transfer Unit (MTU) size. This is the largest amount of data Windows will attempt to send via this interface, at any one time. When requested to send more data than the MTU, Windows breaks the data into two or more smaller chunks, called packets, each less than the MTU size. These packets are sent separately, then reassembled at the receiving end to recreate the original data.

Now you may be wondering, why does Windows have a Maximum Transfer Unit? Why not just send as much data as we request, without breaking it into several smaller packets? The short answer is, when done properly, dividing data into smaller packets increases the effective speed of an interface (its "throughput").

That's because no network connection is perfect. All experience intermittent errors that corrupt the data being transmitted. And when a packet is damaged in transit, it must be resent, taking up valuable time that should be used to send new data.

Larger packets are more prone to error. It's simple statistics -- more bits means more chances for a bit to go bad. And larger packets take longer to retransmit, when an error occurs.

Smaller packets are more likely to arrive intact. And if one is mangled along the way, resending its data takes less time. So dividing data into smaller packets makes error recovery less costly.

Small packets have another advantage over their larger brethren. They allow Windows to be more responsive. Small packets can be sent quickly, allowing Windows' networking software to complete each transmission in a short amount of time. This frees the software to send additional packets, perhaps to other destinations, more often than when sending one large packet.

Of course, nothing comes without a price. Dividing data into packets takes a small amount of time. And the extra data that must be sent along with each packet, allowing the receiving computer to reassemble the original data, adds slightly to the amount of bits that must be sent. But when balanced correctly, the benefits of limiting packets to the size of a well-chosen MTU can far outweigh the cost.

There's more the new Profiler can do. For example, it now displays each network interface's MAC address (No, not "1 Infinite Loop, Cupertino, CA" -- that's the Mac address <grin>). It also displays each interface's statistics, including the number of packets sent and received, the number of errors encountered, and each interface's error rate. The program has even learned some new non-network tricks, to go along with more than 100 tidbits of computer information previous versions displayed.

But we'll have to wait until our next get-together to talk about those. For now, if you'd like to give Computer Profiler v1.9 a try, visit its home page at:

  https://www.karenware.com/powertools/ptprofiler

There you can download the program, and its Visual Basic source code too. As always, both are free.

Or if you prefer the convenience of a CD, or want to support Karen's Power Tools, visit my CD home page at:

  https://www.karenware.com/licenseme

There you can order your own copy of Karen's Power Tools CD, complete with the latest Profiler. Your CD will also include the most recent versions of every Power Tool, plus three bonus Power Tools programs not available anywhere else. The CD even has back issues of all my newsletters, and a special license that lets you use the Power Tools at work!

In the meantime, I'll be fighting off the paparazzi that seem to follow me everywhere I go. Perhaps I should buy larger sunglasses, so I can travel incognito. :)

But if you happen to recognize me, in person or on the 'net, don't forget to wave and say "Hi!"