Kermit FAQ - How Do I Use MS-DOS Kermit over Trumpet Winsock or MS WfW TCP?

(Home) (Prev) (Next)

6 How Do I Use MS-DOS Kermit over Trumpet Winsock or MS WfW TCP?

Date: Sun, 8 Jan 95 13:27 EST
To: ....
From: kermit@kermitproject.org
Subject: Re: Using Kermit with Trumpt Winsock
> I have an internet connection (SLIP) using Trumpet Winsock to
> establish the connection to the server under windows.  I'd like to
> use kermit at that point to telnet to my company's computer.  I've
> filled in the IP addresses in my custom file, but when I run kermit,
> and try to telnet, I get the message:
>
>   Cannot attach to an Ethernet Packet Driver....
>
> Can you give me an idea of what I'm doing wrong?
>
The rule for DOS, Windows, and similar PC operating systems is:
ONE APPLICATION PER PROTOCOL PER NETWORK BOARD
This applies also to serial ports being used as if they were network boards, e.g. via SLIP.

If you are talking about Windows 95 or Windows NT, you can use Kermit 95, which does use Winsock -- any 32-bit Winsock stack (Microsoft, FTP Software, or Trumpet).

If you are talking about Windows 3.x, read on.

Now, Trumpet Winsock is using (i.e. registered for) the TCP protocol on your "network board". Thus, when you try to activate Kermit's own built-in TCP/IP networking, it finds that it can't register TCP because TCP is already registered. Thus it "Cannot attach to ... Packet Driver".

One might think it would be possible, then, to tell Kermit to "use" Winsock. But Winsock TCP/IP stacks are strictly for pure Windows (and NT) programs, not for DOS programs. MS-DOS Kermit is a "Windows-aware" DOS program, but a DOS program nevertheless; it runs from the DOS prompt and within DOS emulator boxes in various operating systems, and cannot access Winsock. If you want to make a TCP/IP connection with MS-DOS Kermit when Winsock is running, you have to unload Winsock and use Kermit's own built-in TCP/IP capability directly over an Ethernet- or SLIP-class packet driver or an ODI driver. Or else install a second network adapter. Or...

It is PERHAPS POSSIBLE, but not necessarily recommended, to run Kermit's TCP/IP stack alongside of Winsock using Dan Lanciani's NDIS3PKT shim, or to use the PKTMUX TCP/IP multiplexor. Use these methods at your own risk.

NDIS3PKT, in Dan's words:

"Ndis3pkt is a Windows virtual device (VxD) that provides multiple emulated packet driver interfaces in Windows VMs and converts to NDIS3. It knows how to route packets to the correct VM at upcall time (similar to the function of WINPKT) and it includes an optional tcp multiplexor to allow multiple tcp/ip stacks to coexist with the same IP address (similar to the function of PKTMUX). It can also support multiple boards, but that isn't a much-used feature. It can also emulate a class 1 (Ethernet) packet driver on top of Token Ring. In other words, ndis3pkt is intended to be a one-stop solution to packet driver applications over NDIS3.

"Now, when people talk about ``Winsock'' they often mean one of the Winsock providing packages that runs in the Windows system VM, e.g., Trumpet. Because Trumpet Winsock is really just another packet driver application, ndi3pkt is perfectly happy to multiplex it along with any number of DOS applications. Thus, from a high-level viewpoint, users see this as sharing DOS applications with Winsock. In reality, ndis3pkt knows nothing about Winsock, but the net effect is the same."

NDIS3PKT is in pub/ndis3pkt on newdev.harvard.edu, available by by anonymous ftp. Be sure to read the license in the accompanying README file, and be sure you have a version dated 17 Mar 95 or later.

NOTE: As of January 1997, this location has moved to:

ftp://hsdndev.harvard.edu/pub/ndis3pkt

http://ndtl.harvard.edu/ndis3pkt/

(Later, August 1995, more from Dan):

"Some people have been able to run kermit & MSTCP32 w/WfWG 3.11 together using my ndis3pkt.386 driver. The trick is to use different IP addresses for MSTCP32 and kermit. More generally, you need one IP address for MSTCP32 and one IP address for all your other packet-driver applications. This is because, although ndis3pkt includes a tcp session multiplexor that allows multiple packet-driver-based tcp/ip stacks to share the same IP address on one machine, ndis3pkt has no control over the MSTCP32 stack. If you try to use the same address for both, MSTCP32 will reset kermit's connections and such.

"Some people have been unable to get the MSTCP32+kermit+ndis3pkt combination to work in configurations that appear superficially identical to those which work elsewhere. I suspect there is some minor detail of interest to be found here, but I don't know what it is. :)"

For additional details, see discussions in comp.protocols.tcp-ip.ibmpc and in the ndis3pkt documentation.

PKTMUX, also a risky proposition, is nevertheless, reportedly used with success at some sites. As one user reports, "I would not dismiss the use of a packet driver, PKTMUX and as many PKTDRV stubs as you need. We use that setup with TCP/IP Kermit, NCSA Telnet and winsock compliant apps. If you also use QEMM, none of that takes ANY low memory and it is stable."


Kermit FAQ / Columbia University / kermit@kermitproject.org