Continue to Software Descriptions
Go back to Technical Details
Return to Contents
As Internet connectivity has become more transparent to the user, the technical term and popular buzzword "Winsock" is heard much less frequently than it was a few years ago. Winsock technology is being absorbed into Windows and into applications software so that end-users need not think about it very much. However, some understanding of the technology can be helpful in resolving problems that can still arise when one vendor's Internet software overwrites files previously installed by another vendor's product.
Windows TCP/IP applications usually involve Winsock technology. All of the client software described in this tutorial is based on Winsock.
Winsock (short for Windows sockets) is a technical specification that defines a standard interface between a Windows TCP/IP client application (such as an e-mail client or an FTP client) and the underlying TCP/IP protocol stack. The nomenclature is based on the Sockets applications programming interface model used in Berkeley UNIX for communications between programs.
A Winsock compliant application like Eudora get's its networking capabilities by calling standard procedures from a Windows dynamic link library. 16-bit TCP/IP applications depend on a file named WINSOCK.DLL. 32-bit applications written for use with Windows 95 or Windows NT depend on a file named WSOCK32.DLL. Procedures called from these Winsock files in turn invoke procedures in the hardware drivers supplied with the TCP/IP protocol stack. As described earlier, the TCP/IP driver communicates with the computer's ethernet card, either directly or through a packet driver.
The files WINSOCK.DLL and WSOCK32.DLL are not generic files that can be freely exchanged among computers running TCP/IP protocol stacks from different vendors. Each vendor of a TCP/IP protocol stack supplies a proprietary WINSOCK.DLL and WSOCK32.DLL that works only with that vendor's TCP/IP stack.
Developers of Internet applications write their software so that it conforms to the Winsock standard. The advantage to the developer of the software is that the application will work with any vendor's Winsock implementation. Thus, the developer of an application such as an FTP client has to understand the Winsock interface, but he does not have to know the details of each vendor's TCP/IP protocol stack in order to make his client application compatible with that stack.
Winsock also eliminates the need for an application developer to include his own TCP/IP protocol stack within the application program itself. It perhaps seems unbelievable today, but this was a common means of implementing TCP/IP clients under DOS. Some early Windows TCP/IP clients also used this method. The use of protocol stacks internal to the client results in conflicts when two clients try to access the single packet driver that is communicating with the network card. The ability to create applications compatible with any vendor's Winsock compliant protocol stack resulted in a blossoming of Winsock compliant shareware applications in summer 1993.
The Winsock standard offers advantages to the end-user. One advantage is that several Winsock applications from different vendors can be used simultaneously. This is a marked improvement over earlier packet driver applications in which each application contained a built-in TCP/IP stack. Such applications cannot share the packet driver except through the added complexity of a packet multiplexer such as PKTMUX. A second advantage to the user is that any Winsock compliant application will run with any vendor's TCP/IP protocol stack and accompanying WINSOCK.DLL.
As recently as 1995, some commercial vendors of TCP/IP clients were not taking advantage of Winsock capabilities. There were TCP/IP clients that required dedicated access to the packet driver, and there were clients that would run only with the TCP/IP protocol stack supplied by one particular vendor. Fortunately, the universal adoption of the Winsock standard has eliminated much of the complexity of communicating over the Internet.
Continue to Software Descriptions
Go back to Technical Details
Return to Contents
Revised: December 28, 1999
Harry_M_Kriz , [hmkriz@vt.edu]