The Term Protocol
Term, originally developed by Michael O'Reilly (firstname.lastname@example.org), is a program that allows multiple, concurrent connections over a serial line. Term allows almost all “standard” TCP/IP applications to be used on a Unix system that is connected by a serial connection to a networked Unix system. Unlike other common serial protocols, such as SLIP and PPP, term does not require non-user administrative maintenance, and requires no modifications to the host kernel. This means that virtually any user with a login shell on a dialup system can utilize network utilities that were once limited to SLIP/PPP users.
Unlike SLIP or PPP, your machine does not have its own IP address. All incoming traffic must be addressed to your remote host, and it will be directed to your local computer by term.
Term essentially works by redirecting packets on your remote host directly to your local Unix system. This allows any incoming network packets to reach your computer by proxy, via your remote dial-up computer. The same basic idea works for outgoing packets as well: local sockets on your computer are redirected to your remote host, and sent on their way to their actual network destination.
The entire term package is a basic suite of utilities and libraries that allow you to establish these network connections. These utilities are:
term: This is the actual daemon that is run on both the remote and local computers. This establishes the bridge that is needed to link your computer to the remote host and the rest of the network.
tredir: This is the most commonly used utility that comes with term. It allows the user to manually redirect an outgoing or incoming port for use with non term applications, for example redirecting the SMTP (e-mail) port so that the user may send or receive e-mail.
tmon: This utility monitors and displays the incoming and outgoing traffic over your serial line. Two bar graphs are displayed showing the levels of traffic, updated each second. This allows you to monitor just how much bandwidth you are using at any time while using term.
trsh: This utility allows you to quickly access your remote login shell, much like rsh or rlogin would allow you to. This allows you to perform routine network tasks from your account if needed.
tupload: Much like sz, this utility is used to transfer files to or from your remote account, depending on which “end” of the term-link it was executed from.
txconn: When you need to display an X application remotely, or have one displayed on your local screen, txconn establishes the needed redirection to make this possible. (The same effect can be created with tredir, as will be explained later.)
Other applications: Recently, a flurry of activity has resulted in a few more term clients such as tudpredir, a udp port redirector; tdate, which sets your computer's time by the Network Time Protocol; and “download, which reciprocates what tupload does.
Before you can actually run term, you should run a utility called linecheck on the remote and local computers.
Linecheck is used to check the ”transparency“ of the link, by seeing which 8-bit characters are transmitted across the link. The results of linecheck are used to configure term to operate correctly and optimally.
To run linecheck:
Using a communications program, log into your account on the remote system and run:
linecheck linecheck. log
Suspend your comm program (^Z under kermit), otherwise it will steal characters from linecheck.
On the local system, run:
linecheck linecheck.log > /dev/modem < /dev/modem
After linecheck has completed its operation, examine the two linecheck.log files. At the bottom of these files will be an indication of which characters you must escape in your .termrc configuration file. The messages in linecheck.log give the characters (if any) that need to be ignored on one end and escaped on the opposite end of the link. For example, if my local results indicated that I should escape 3 4 and 121, my resulting .termrc files would have something like this in them:
Local: escape 34 escape 121
and my remote .termrc:
ignore 34 ignore 121
because I have to ignore escaped characters on the other end.
Getting Started with DevOps - Including New Data on IT Performance from Puppet Labs 2015 State of DevOps Report
August 27, 2015
12:00 PM CDT
DevOps represents a profound change from the way most IT departments have traditionally worked: from siloed teams and high-anxiety releases to everyone collaborating on uneventful and more frequent releases of higher-quality code. It doesn't matter how large or small an organization is, or even whether it's historically slow moving or risk averse — there are ways to adopt DevOps sanely, and get measurable results in just weeks.
Free to Linux Journal readers.Register Now!
|Secure Server Deployments in Hostile Territory, Part II||Jul 29, 2015|
|Hacking a Safe with Bash||Jul 28, 2015|
|KDE Reveals Plasma Mobile||Jul 28, 2015|
|Huge Package Overhaul for Debian and Ubuntu||Jul 23, 2015|
|diff -u: What's New in Kernel Development||Jul 22, 2015|
|Shashlik - a Tasty New Android Simulator||Jul 21, 2015|
- Secure Server Deployments in Hostile Territory, Part II
- Hacking a Safe with Bash
- KDE Reveals Plasma Mobile
- Huge Package Overhaul for Debian and Ubuntu
- The Controversy Behind Canonical's Intellectual Property Policy
- Home Automation with Raspberry Pi
- Shashlik - a Tasty New Android Simulator
- Embed Linux in Monitoring and Control Systems
- diff -u: What's New in Kernel Development
- General Relativity in Python