|
|
|
By Tom Henderson
Winsock started life innocently enough as a unified way to deploy TCP/IP with Windows. The "Win" part of its name is obvious; the "sock" portion refers to Berkeley Sockets, a method of establishing TCP/IP connections between computers. Many vendors support the Winsock specification, and at least a dozen make their own version of the 16- and 32-bit Winsock protocol stack. Nonetheless, it's possible to thwart the standard's aims, and Microsoft has done just that.
The current version of Winsock is 1.1; Winsock 2.0 is due to ship with Windows NT 4.0. It's tough to replace Winsock functionality within Windows, and most of the Windows world has embraced Winsock as an applications programming interface. But that doesn't mean it's trouble-free.
If you remove or swap out the Microsoft-supplied Winsock protocol stacks from either Windows 95 or NT, you'll risk crashing various MS Office components. These problems aren't the fault of the Winsock specification; the extensions are to blame. Vendors are free to add extensions to Winsock so it can handle the unforeseen changes made after finalization.
Microsoft added such extensions to Winsock 1.1, which shipped with Windows 95 and NT 3.5. These extensions enable some interesting features in a couple of Office applications. PowerPoint, for instance, offers the ability to share presentations across the network.
This feature allows your machine to serve as either a peer or moderator with other Windows 95 PowerPoint users on a network. But if you replace the Microsoft Winsock stack with another vendor's stack or just remove Winsock from the WINDOWS\SYSTEM directory, PowerPoint Tools stop working and Word will fuss. Win95 will complain if you remove or replace the WINSOCK.DLL or W32SOCK.DLL stack from the WINDOWS directory, and for good reason; compatibility will be lost for many Office users.
Why won't other vendors' Winsock stacks support functions such as Presentation Conferencing? Because Microsoft didn't document the extensions it used to enable those types of features in its version of the stack, and by omission out-revved every other Winsock on the market. The company just recently agreed to make its Winsock extensions public, and several other Winsock publishers are already in rewrite. But for now, Internet software-especially third-party browsers-contain Winsock stacks that don't have as many features as the MS Winsock stack.
CompuServe software, for example, includes a Winsock 1.1 stack with its CompuServe Internet Dialer that supports either its Spry Mosaic Internet browser or the browser attachment located in CompuServe's WinCIM 2.0.1 or 2.0.2. But it doesn't support the Office features the MS Winsock does
America Online's through-the-mail diskettes and CD-ROMs also install a Winsock, which causes several Office functions to stop working. However, this would only happen if no Winsock was originally present and Office is installed subsequent to AOL.
The solutions vary. My favorite is Socket Pro from Techno-Marketing in Edina, Minn. This shareware program ($19.95 registered) creates subdirectories for up to nine Winsock DLLs and allows you to load a specific DLL before you start up a program such as WinCIM 2.0.1. Like a protocol swapper, Socket Pro dutifully loads the desired Winsock stack into memory, then releases it.
AOL found its own solution to the problem. Under an agreement signed several months ago, AOL users will soon do their browsing with Microsoft's Internet Explorer, thus eliminating the Winsock compatibility problem.
You can also manipulate the MS Winsock to get most of your problematic software to work. Win95 users can get a PPP (point-to-point protocol) connection to CompuServe, AOL or other Internet service providers (ISPs) by using Microsoft's Dial-Up Networking software and the Dial-Up Scripting Tool, a little-known accessory that's included on the Win95 CD.
First, establish a new dial-up connection by selecting My Computer/Dial-Up Networking/Make New Connection. Next, name the connection and choose the correct modem type. In the next screen, enter the area code and phone number of your ISP, and make sure the Country code is correct. Click on Finish, and you'll see a new icon with the name of your new connection. Right-click on the icon, select Properties from the Context menu and click on the Server Type button.
Under Type of Dial-Up Server, the default is PPP; Windows 95, Windows NT 3.5, Internet. That's what you want. Under Advanced Options, make sure you check Log On To Network and Enable Software Compression (if your Internet carrier uses it, and most do). Under Allowed Network Protocols, check TCP/IP and then click on the TCP/IP Settings button.
Most Internet carriers assign you an IP address, so you'll probably click on Server Assigned IP Address. Name server addresses are tricky, so if you need to specify an address and you can't fill in all the blanks, check with your Internet carrier.
Next, check both the Use IP Header Compression and Use Default Gateway on Remote Network boxes. Click on OK until you've exited. If you haven't done so in the past, you must now install the Dial-Up Scripting Tool. Using the Add/Remove Programs option in Control Panel, select the Windows Setup tab; next, click on the Have Disk button and then the Browse button to install from the ADMIN\ APPTOOLS\DSCRIPT directory.
By selecting Start/Programs/Accessories/Dial-Up Scripting Tool, you can associate each Dial-Up Networking connection with a script. You can also edit scripts from here, including the three pre-canned scripts (one each for SLIP and PPP Protocols, and another for CompuServe). PPP is better than SLIP (serial line Internet protocol) because it also checks packet quality.
Once you've applied the script to the Dial-Up Networking setup you created, it's automatically invoked when you activate the connection. The script will prompt you for a user name and a password, where necessary. Some Internet carriers want you to use your name with a .PPP extension. Mine is tomhend.ppp.
After you've successfully connected to your Internet carrier in this manner, there's an excellent chance any browser or Internet software program (such as ftp, finger or who is) will work, even if the program didn't originally like the MS Winsock stack. This is because it's usually the browser's dialer software that isn't compatible with the MS Winsock stack; you essentially avoid that by using the Dial-Up Networking dialer.
You can repeat these steps for as many Internet access methods as you want, as long as you make sure to keep the correct Winsock loaded. I've got four of them in my Socket Pro right now: the MS stack, AOL's stack, CompuServe's stack and the Trumpet32 beta stack (which I'm in the midst of testing for speed).
For more information about Microsoft's Winsock extensions, check out the company's Web site ( http://www.microsoft.com/) or Stardust Technologies' site ( http://www.stardust.com/). Stardust, which has a multi-vendor-supported Winsock Lab, is placing a great deal of emphasis on backward compatibility. Stardust's Web site has links to its sponsors, as well as to the areas on Microsoft's site that deal with the current compatibility crisis.
As long as vendors are free to extend Winsock, there will be revision synchronization problems that can affect applications. Although publishing the extensions will help, it takes time for vendors to publish extensions and then more time for other vendors to append, test or simply ignore them. The ones who get caught in the middle of the cycles are you and me.
Microsoft has already taken steps to reduce the wait by adding DLLs to its recent ActiveX controls and Internet Information Server (IIS) offerings. These DLLs add functionality to Winsock without modifying the Winsock DLL. Although this approach alleviates some of Winsock's compatibility problems, Winsock is no longer networking's multi-vendor Rosetta Stone; it's just the first brick.
Contributing Editor Tom Henderson is vice president of engineering for Indianapolis-based Unitel. Contact Tom in the "Enterprise Administrator" topic of WINDOWS Magazine's areas on America Online and CompuServe. Click Here to find the e-mail IDs for our editors, who can put you in touch with this author.
|
|
|