• Please review our updated Terms and Rules here

Windows 3.1 and TCP/IP over Ethernet

When looking for a networking stack for Windows 3.x you have to ask the following questions:

Do you need network connectivity in real-mode DOS?

Do you specifically need the TCP/IP protocol?

Do you need a Windows Sockets (winsock) layer?

Do you need compatibility with 286 systems?

Do you need to use dial-up, a network card, or both?

There were a lot of different options for Windows 3.x. Microsoft Internet Explorer came with a dial-up TCP/IP stack that resembled that of Windows 95. Easy to use, but it did not support LAN networking or even co-existing.

Microsoft Windows for Workgroups 3.11 includes a 386 protected mode networking stack with a TCP/IP add-on. But it does not support Internet dial up, requires a 386, and is not accessible in DOS outside of Windows.

There was also a Windows for Workgroups 3.1, but that did not support TCP/IP.

For DOS print and file sharing there were lots of options, such as Lantastic, Pathworks, Microsoft LanManager client, Microsoft Workgroup add on for MS-DOS, Microsoft Networking Client. Those that supported TCP/IP may have also included a Winsock library for Windows applications that used the DOS based networking for communication.

For windows-only networking, there was also PC-NFSPro and NetManage.
 
I currently have a working TCP/IP protocol driver on my 286, it is NOT the 32bit one. It is a real mode stack included with MS Networking Client for DOS 3.0 / LANMAN
I'm using Trumpet Winsock 1.x on my 286.....for tcp/ip support on MS Windows 3.1. Along with the nics Dos packet driver and the winpkt shim I mentioned earlier.
 
Last edited:
Btw. does anyone know the origin of this rather aggressive development name. I'd expect something like "Wolverine" to be a graphics chip, something more marketable, not a bunch of networking libraries for Windows.
Pikiwedia claims it is from the Marvel Comics character but I can't tell what it has to back that up. Their stated source is a letter on page 51 of the Dec 26 1994/Jan 2 1995 issue of Infoworld that indicates the existence of the software and its name then but doesn't say anything about why it was named that.

That winworldpc link (above) leads to a 7zip archive containing a floppy-disk image which contains a self-extracting PKZIP archive named TCP32B.EXE and all the files in that PKZIP archive have dates 05-26-1995 10:57. At a guess from the filenames, it'll work in a LAN environment but contains no support for dialup SLIP or PPP (a VxD for each of transport driver interface, IP, TCP, UDP, DHCP but not for SLIP nor PPP nor anything serial). I vaguely remember us at Wollongong not being too worried about it and that was why, dialup was still a big checkbox feature (I spent way too much of 1995 working on Wollongong's dialup IP(s) for Windows (there were two!, but one of them was tied to the Emissary product and I don't think it ever shipped)). (On the other hand when Windows 95 shipped we got it (and the Plus Pack I think) in and concluded there was no point in offering our TCP/IP stack product for it, we could get it to work but the Microsoft-supplied stack would be accepted.)

There's a README.TXT file, here is its first line: "RELEASE NOTES FOR MICROSOFT(R) TCP/IP-32 FOR WINDOWS(TM) FOR WORKGROUPS 3.11". If you look around you can find a TCP32A.EXE which is similar but earlier, the indication that it's for WfW3.11 is further down in its README.TXT.

Windows 3.0 and 3.1 were sold as a graphical user environment for MS-DOS. "Enhanced mode" for the 80386 really loaded another operating system of sorts called the Virtual Machine Manager or VMM.386 that ran in 80386 ring 0. Windows applications all ran in one ring 3 VM, MS-DOS Command Prompt windows got other Virtual 8086 ring 3 VMs. If any of them tried to do something that needed MS-DOS, the VMM would intercept it and call out to the underlying real-mode MS-DOS to get it done. (This stuff came from the earlier Windows/386 product.)

Windows for Workgroups 3.1 was the "network version", it added some network support that wasn't in Windows 3.1 and could be a client and something of a server for Microsoft's SMB networking.

Windows for Workgroups 3.11 was the later and somewhat performance enhanced version. Much of the performance enhancement came from it having a FAT filesystem implementation that ran in ring 0 alongside the VMM, and this made it desirable for non-networked uses as well. Once it was out Microsoft didn't have much interest in supporting Windows for Workgroups 3.1.
 
The OP did not check in since the beginning of discussion.
His question is pretty straightforward - Win 3.1, TCP/IP over LAN, or go with modem/serial.

There have been suggestions for both of those cases. He should try something, and then report back. The historical part of this discussion is pretty interesting to me, arguing about clear facts isn't.
 
Now that IS childish.

Are we not allowed to correct those that are in error on this forum?

What is childish is keeping fussing that somebody needs to fess up to a mistake ... like the cartoon says, you're not going to win this whether you are correct or wrong. You've made your case and it's not working.

You are not allowed to swear on the forum and there is nothing new about that. Adults know when to move on and do something more productive, which is what I'm suggesting you do here. But if you don't, that's fine - but no more swearing because there is no question about the requirement to stay civil.
 
Ain't grown ups ment to admit when they are wrong?

LoL! I did give you credit that you may be right back at the start since I qualified that I was working from memory and my memory is already a little bit fuzzy. You can go back and read where I said that if you don't recall reading it...

Then again, given the number of posts you made without once referring to the stack as Wolverine, perhaps you simply wasn't around at the time and never used that terminology, so if this is all recent knowledge for you, then you're doing pretty well and I won't make fun of you.

Because I was running an ISP at the time, and building computer systems for customers in the computer shop below the ISP and selling those same customers WIndows 3.1 for their computers, I remember us installing Wolverine on their systems... And I did say there were updates that later came on the disc for Windows 3.11.

Now my memory is, as I mentioned, a bit fuzzy, but I still recall this "Romantic" feeling people had towards Windows 3.11, asking if the 0.01 upgrade was legit since it seemed to be like Windows 4... A strange position driven by the media at the time... Simply because you had some cool new capabilities if not features.

So I looked it up again, and this boosted my memory a little.

"On December 31, 1993, Microsoft released an update for Windows 3.1 known as Windows 3.11. Thus, Windows 3.11 is not a standalone version of Windows, but rather a software update from Windows 3.1"

Software update... It was a "Service Pack"... The first one in fact, and if you downloaded the file, Wolverine included, and fully updated your Windows 3.1 system, you could run Wolverine.

Now if you want to claim Windows 3.11 is a *Build* and therefore is NOT Windows 3.1, I'm going to dispute you there, because if it's not something you have to buy, then it's part of the system you purchased and you could add in the extra support.

Also, as I mentioned, the new Windows supplied discs came with it all already included, and no service pack was needed. Wikipedia also seems to confirm this; https://en.wikipedia.org/wiki/Windows_3.1x#Windows_for_Workgroups_3.11

Windows 3.11​

Released on November 8, 1993, Windows 3.11 was introduced with repairs for network problems which were present on Windows 3.1.[46] As a minor update, new features were not present in this version. It also did not run on IBM's OS/2 for Windows.[47][48] Windows 3.11 allowed users to connect to each other as peers to share the resources of their computers.[49] Microsoft replaced all retail and OEM versions of Windows 3.1 with Windows 3.11 and provided a free upgrade to anyone who owned Windows 3.1.[46]

The dates seem to be different, possibly due to the time between releasing the update, and releasing the updated OS install disks. This seems to be supported by all the historical facts I can locate.

So I think we can agree that the facts suggest quite strongly that Wolverine should install just fine on a Windows 3.1 system that can have the service pack installed and that the service pack added 32 bit support necessary. I would agree that without the updates, it isn't supported, because it wasn't included on Windows 3.1 discs, but it was certainly possible to add to a 3.1 system.

The only question remaining then is when was Wolverine released? If it was in the Nov-8 update, then it was categorically released for Windows 3.1, as consumer versions of 3.11 would not have existed at the time ( And Windows 3.1 continued to be installed on computers for quite some time before the supply chain replaced them with the new version included... )

So it doesn't look like my memory was incorrect. Except maybe about a dial-up network adapter being available supporting SLIP, which I can't find any information for... After all, the stack itself doesn't care how the packets get in and out and SLIP is a very simple protocol. I use it in many of my small embedded designs still.

I too find the history interesting, and while I can see you have a pretty salty perspective, I won't take offence. We're all here to discuss, learn and enjoy :) - If you have any further information to add to the discussion, please do - But please provide links or references so we can more easily validate your claims for ourselves :) And thank you for your input to my earlier comments.
 
The OP did not check in since the beginning of discussion.
His question is pretty straightforward - Win 3.1, TCP/IP over LAN, or go with modem/serial.

There have been suggestions for both of those cases. He should try something, and then report back. The historical part of this discussion is pretty interesting to me, arguing about clear facts isn't.
I am the OP. I've been following this thread, but I've not found the time to test anything yet (Christmas season is full of duties).

I would like to explain something about my goals: I want to put this laptop in the Internet, but not to try to use the modern web, which I deeply dislike, but to use and partake in the "SmolNet" movement (gopher, email, Usernet, FTP, IRC...). More about that here: https://communitywiki.org/static/SmolNet.html
Yes, I can use the SmolNet from DOS, or from text-mode Linux (which I already do), but I would like to use it from a GUI which is "frozen", which is stable i.e. which will never change, and which is limited in capabilities (i.e., no pop-ups, no in-line sounds, no modern video codecs., no system notifications in the system tray...). Thus, Windows 3.1.

Therefore, the lack of CSS, SSL, JavaScript, HTML 4/5, are not a problem, but a feature. Thus, Windows 3.1.

Having a telnet client, some vintage Netscape browser with gopher support, some IRC client, some FTP client, and hopefully some SSH client, running concurrently on Window 3.1 and being able to jugglle them with a mouse, would be all I could ask for.

After reading about this (contrary to some people's idea, the Fine Manuals To Be Read about this are hard to find it they are merely cited without linking to them), it seems I will be able to achieve my goal, concocting some CONFIG.SYS/AUTOEXEC.BAT to load the drivers for:
1. PCMCIA Card Services driver (for DOS).
2. PCMCIA Socket Services driver (for DOS).
3. PCMCIA NIC packet driver (for DOS).
4. WINPKT.COM driver (to bind the DOS packet driver into the Windows realm).
5. The Trumpet Winsock package for Windows 3.1.
6. Netscape Navigator and other 16 bit Windows apps for the old Internet.

And now... the HDD in the Compaq LTE 5000 laptop is making clicking noises and refuses to spin up. I have a CF-to-2.5-IDE adapter in the mail coming to me, so I will be able to test this all soon - I hope.
 
When looking for a networking stack for Windows 3.x you have to ask the following questions:
Yes, this is a good set of questions.

Most of the products offered got their start in the 1980s as TCP/IP stacks for real-mode MS-DOS. Supporting more than one interface was something you could do but most folks didn't need and the ones who thought they did typically cost more to support, and generally supporting one type of interface (serial+modem vs LAN) was enough itch-scratching.

(Supporting more than one interface really was something you could do: Wollongong had WIN/ROUTE and WIN/ROUTE2 products that were actually intended to be IP routers on PC hardware, and yes they were built from the same source base as WIN/TCP for DOS, probably around its release 4.0, but even those were intended to be used to route between two LAN-type interfaces, not LAN and SLIP nor PPP.)

Windows 3.0 was a surprise, up 'til it took off everyone had been waiting for OS/2 to get its act together (and not entirely idly, there were people making on-again, off-again attempts to get Wollongong's MS-DOS stack to run on OS/2 1.x). Suddenly there was instead much interest in whether our MS-DOS product worked with Windows and in which modes but mostly in '386 Enhanced Mode.

Winsock did not happen right away, nor was it initially a Microsoft effort, it came out of several folks at an Interop conference. There was more than enough time for TCP/IP stack vendors to work over their real-mode MS-DOS socket libraries to make WIndows DLLs. Winsock 1.0, and later 1.1, were attempts to have a standard API for application developers, but they were a reaction to the fact that every stack vendor had their own DLL and they were all different, even the ones that were inspired by 4BSD sockets.

So my intro to working on Wollongong's PC products was last quarter of 1993, fixing bugs in their real-mode MS-DOS stack (PathWay Runtime 2.0) and Winsock DLL in response to problems reported by people trying to use Gopher and web browsers which targeted Winsock. And most of what I did was to make our stuff work more like 4BSD sockets, which is kind of funny given that I came to it from working with NetIPC (HP3000/MPE V).

What was going on early 1994 was that NetManage was a relative newcomer to the field and making a lot of sales by yakking about being Windows native and not old TSR technology. Their applications and TCP/IP stack ran inside the Windows VM as Windows executables and DLLs. I will not argue against that implementation, Emissary worked that way too!

Our plan (muahahaha) was to leapfrog them by being Windows-native and 32-bit as a VxD. I wanted to port the 4BSD stack but other folks prevailed on me to port the PathWay Runtime 2 stack, which had a bit of PC-IP legacy code with a multi-connection TCP added on. (I did make it able to support a second interface if configured at runtime and route between them, mostly because I had two Ethernet cards in the PC I was using to develop and test and had a NeXT cube hung off the second interface so I could do simple tests, but the shipped PWSTART application does not support the second interface.)
 
I am the OP. I've been following this thread, but I've not found the time to test anything yet (Christmas season is full of duties).

I would like to explain something about my goals: I want to put this laptop in the Internet, but not to try to use the modern web, which I deeply dislike, but to use and partake in the "SmolNet" movement (gopher, email, Usernet, FTP, IRC...). More about that here: https://communitywiki.org/static/SmolNet.html
Yes, I can use the SmolNet from DOS, or from text-mode Linux (which I already do), but I would like to use it from a GUI which is "frozen", which is stable i.e. which will never change, and which is limited in capabilities (i.e., no pop-ups, no in-line sounds, no modern video codecs., no system notifications in the system tray...). Thus, Windows 3.1.

Therefore, the lack of CSS, SSL, JavaScript, HTML 4/5, are not a problem, but a feature. Thus, Windows 3.1.

Having a telnet client, some vintage Netscape browser with gopher support, some IRC client, some FTP client, and hopefully some SSH client, running concurrently on Window 3.1 and being able to jugglle them with a mouse, would be all I could ask for.

After reading about this (contrary to some people's idea, the Fine Manuals To Be Read about this are hard to find it they are merely cited without linking to them), it seems I will be able to achieve my goal, concocting some CONFIG.SYS/AUTOEXEC.BAT to load the drivers for:
1. PCMCIA Card Services driver (for DOS).
2. PCMCIA Socket Services driver (for DOS).
3. PCMCIA NIC packet driver (for DOS).
4. WINPKT.COM driver (to bind the DOS packet driver into the Windows realm).
5. The Trumpet Winsock package for Windows 3.1.
6. Netscape Navigator and other 16 bit Windows apps for the old Internet.

And now... the HDD in the Compaq LTE 5000 laptop is making clicking noises and refuses to spin up. I have a CF-to-2.5-IDE adapter in the mail coming to me, so I will be able to test this all soon - I hope.

I like it - :) I didn't know about SmolNet before... And yeah, the Internet has gone a little bit crazy... Thank you for mentioning that - that will work well for my Loki Project...
Sorry to hear about the laptop failure... I recently bought a PC that was working, and just needed a PSU repair, so I repaired it and it doesn't work now. What is frustrating is that the parts that failed were display oriented and were removed prior to repairs, and not touched during the repair and the repair itself went well... Sometimes these old computers just fail.
 
Now that IS childish.

Are we not allowed to correct those that are in error on this forum?
What I know with certainty to be true:
WfW 3.1 will run on a 286
The 16bit MS net client 3 TCP/IP protocol driver will run on a 286 (because I've done it)

My inferences (which I never stated as fact):
WfW 3.1 uses a fully real mode networking stack
WfW 3.1 is compatible with the protocol drivers from the DOS client

These latter two items may be wrong, because I have not personally verified them. I never claimed otherwise. I did *ask* you a question regarding whether you had tried to use the DOS client protocol drivers with WfW 3.1, which you seemed to take offense to judging by your change in tone. From then on you became aggressive and rude without provocation. You are out of line
 
running concurrently on Window 3.1 and being able to jugglle them with a mouse, would be all I could ask for.

Concurrently is not a given. Windows 3.1 doesn't have a real process scheduler. Applications that can cooperatively multitask actually do that themselves - by using message queue and manual yielding. If you have two networking applications where one isn't written with that in mind, there will be problems with TCP connection keepalive because the process could be frozen until you manually switch to it.

I'm fairly vary of this but I guess people may have had success.
On WfW, 3Com driver for an extremely popular adapter, MS TCP stack, and a "mainstream" browser, the downloads hang the entire OS. Until the download is complete the OS is frozen. Age appropriate software like Mosaic is unable to cope with downloads larger than some buffer - big downloads in tens of megabytes just fail and leave the machine hanging. Latest stuff ever for Win 3.11 like GetRight and Opera do download, but hang meanwhile.

Someone may correct me but even if two Win 3.1 network apps were written cooperatively, the system looks terrible at handling I/O spikes at their respective connections.
You may run into a situation where application commits to I/O, like processing a download, not checking the windows message queue, not yielding.

IMO multitasking networking on Windows 3.1 sounds painful but I'm open to hearing your experiences about it.
 
Yes, this is a good set of questions.

Most of the products offered got their start in the 1980s as TCP/IP stacks for real-mode MS-DOS. Supporting more than one interface was something you could do but most folks didn't need and the ones who thought they did typically cost more to support, and generally supporting one type of interface (serial+modem vs LAN) was enough itch-scratching.

I don't recall any PC DOS mode stacks... I think it was a little before my time. I started TCP with Linux in the early 90s and used it in a text environment only. It was Windows 3.1 and Mosaic before I got graphics, and I would have used Trumpet initially but I was already connecting via network back then since Linux made a good gateway. It took me a while to figure out what the netmask really meant, so for a long time I just used safe numbers like everyone else. Setting up my first nameserver was painful, and I got rejected over and over again, before the admins of the local next-level took pity on me and suggested that while I was being rejected for technical reasons, the real cause was that I wasn't waiting until the secondary reflected my primary before requesting my nameserver be added, and every time I got a rejection, I was checking the file, updating the count which I used as a serial, noting I hadn't made any errors, then requesting it be added again. So I waited until the secondary and primary both showed current information then requested delegation again and finally got my own domain...

It was a pretty amazing time to be alive and connected... No one else really understood why we were all getting so involved, until the wave overtook everyone and by then it was obvious... At first it was just a cool thing for business to communicate, no different from Viatel, but once people started building web pages, it snowballed pretty quickly.
 
IMO multitasking networking on Windows 3.1 sounds painful but I'm open to hearing your experiences about it.

I always found it pretty good. Sometimes it could fail, but generally cooperative multitasking is very efficient if the system is written that way. I started writing Co-operative Multitasking systems in the 1980s for embedded systems, and they were designed to deal with a lot of issues.

Anyway, 16550s with buffers were the real issue. Missing a byte is a much bigger issue... And you could load up the system enough to miss serial data, though interrupts were still enabled for the serial handlers, and probably added a pre-emptive element to handling stacks and the like since you might as well get the serial interrupt handler to run your stack also. ( I have no idea if they did this, but it would make sense to do it that way ).

Also TCP Keepalives are optional. They are not needed. Well, they weren't needed... Who knows who modern firewalls all over the web do nowadays. But with pure TCP, there's no issue keeping a connection open forever without packets... if the reset is never received, the socket never closes. It's a good thing we got 65000 of them... Who knows what this did to memory allocations in Windows 3.1 all that time ago. Probably accounted for the odd crash :)

I think the desire for pre-emptive multitasking came from the fact it was used as a differentiator to Windows... "Yeah, but Windows isn't real multitasking... It's not pre-emptive multitasking" was heard a lot, mostly from people explaining why they didn't get a PC. Multitasking is multitasking. How you do it is an architectural decision... I don't recall too many problems with Windows 3.1, but it was from an era when you tended to do one thing at a time on your PC.
 
What I know with certainty to be true:
WfW 3.1 will run on a 286
The 16bit MS net client 3 TCP/IP protocol driver will run on a 286 (because I've done it)

My inferences (which I never stated as fact):
WfW 3.1 uses a fully real mode networking stack
WfW 3.1 is compatible with the protocol drivers from the DOS client

These latter two items may be wrong, because I have not personally verified them. I never claimed otherwise. I did *ask* you a question regarding whether you had tried to use the DOS client protocol drivers with WfW 3.1, which you seemed to take offense to judging by your change in tone. From then on you became aggressive and rude without provocation. You are out of line
Rubbish! You are totally wrong lol. So is the other guy. The networking side does not work in wfw 3.1 on a 286 system at all as it requires 386Enhanced molde for tcp/ip to function. And that is all I have to post on the topic. Sheeeeshhh
 
Last edited:
Concurrently is not a given. Windows 3.1 doesn't have a real process scheduler. Applications that can cooperatively multitask actually do that themselves - by using message queue and manual yielding. If you have two networking applications where one isn't written with that in mind, there will be problems with TCP connection keepalive because the process could be frozen until you manually switch to it.

We are getting way off the thread topic here, but the Windows/386 Virtual Machine Manager that is the basis of Enhanced Mode Windows 3.* is in fact a preemptive scheduler of its VMs. The Win16 environment running as one of its VMs is what is cooperative. The ring 0 environment in which the VMM and VxDs run gives you full access to the machine and is really where you want to be if you want to bring this circus to a standstill.

Windows 3, so many ways to screw up and take other work with you!
 
I don't recall any PC DOS mode stacks... I think it was a little before my time. I started TCP with Linux in the early 90s and used it in a text environment only. It was Windows 3.1 and Mosaic before I got graphics, and I would have used Trumpet initially but I was already connecting via network back then since Linux made a good gateway. It took me a while to figure out what the netmask really meant, so for a long time I just used safe numbers like everyone else. Setting up my first nameserver was painful, and I got rejected over and over again, before the admins of the local next-level took pity on me and suggested that while I was being rejected for technical reasons, the real cause was that I wasn't waiting until the secondary reflected my primary before requesting my nameserver be added, and every time I got a rejection, I was checking the file, updating the count which I used as a serial, noting I hadn't made any errors, then requesting it be added again. So I waited until the secondary and primary both showed current information then requested delegation again and finally got my own domain...

Probably my first Internet software was a resolver library in SPL/3000 using NetIPC 3000/V in the very late 1980s because I thought I might need such a thing, and I did get it to work. I had seen the TCP/IP Internet, on Suns, and in the late 1970s and early 1980s the old NCP ARPANET on TIPs getting to PDP-10s; and by this point in the 1980s we had a thin coax network going between two 3000s and running through the building to support PCs and a LAN with connections to the 3000s and to VAXes running VMS and to the Internet over at the Computer Science Center.

So I was at The Wollongong Group a little after that, right at the end of 1989 (before Linus started working on Linux), supporting a software package I'd used and thought they needed help with, WIN/TCP for MPE/V.

This was a time when the future was really unevenly distributed. The network stack on the 3000 was kinda stuck on classfulness and did not do subnetting at all. It got something like subnetting in 1990 but was still kinda stuck on classfulness for configuration of addresses. I mean "B 129.084 003.207" kind of stuck on classfulness, it cared that the space between octets matched up with the class letter at the front (which was required). People had some really weird ideas about what the TCP/IP Internet could look like in the 1980s.

It was a pretty amazing time to be alive and connected... No one else really understood why we were all getting so involved, until the wave overtook everyone and by then it was obvious... At first it was just a cool thing for business to communicate, no different from Viatel, but once people started building web pages, it snowballed pretty quickly.

It was a pretty amazing time. I remember a coworker across the hall getting excited about this Mosaic stuff, and us getting to where it was running on his VMS VAXstation but displaying on my HP9000/320 (big monochrome CRT running X11 so I could have a bunch of hpterms running vt3k to the 3000s) and spending an hour or so looking at The Entire World Wide Web (which was at that point largely CERN, SLAC, and NCSA) and thinking that was kinda neat but I didn't see that I had any use for it. The thing I at this point think I missed then was that you could do an online inquiry that searched a physics preprint database at SLAC and got you information about what preprints they had that were relevant to your inquiry. Not being a high energy physicist I didn't find that particularly useful, but you might think I'd have seen some uses for the technology.
 
Back
Top