Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!umich!samsung!interlan.InterLan.COM!interlan.InterLan.COM!backman From: backman@interlan.Interlan.COM (Larry Backman) Newsgroups: comp.protocols.tcp-ip.ibmpc Subject: Re: Two TCP/IP stacks on one PC Message-ID: <1990Jun1.113859.15686@interlan.Interlan.COM> Date: 1 Jun 90 11:38:56 GMT References: <9005310245.AA17156@alw.nih.gov> <9005311412.AA02654@vax.ftp.com> Reply-To: backman@interlan.interlan.com (Larry Backman) Organization: Racal InterLan, Inc., Boxborough, MA (1-800-LAN-TALK) Lines: 36 In article <9005311412.AA02654@vax.ftp.com> jbvb@VAX.FTP.COM (James Van Bokkelen) writes: >It is puzzling to hear that 3+Open mail doen't use Netbios sessions, >in light of the way that OS/2 and NDIS are structured. The theory of >how OS/2 was supposed to network (as propounded by Microsoft and 3Com) >was that all network activity was going to take place via "named >pipes" (preferred) or Netbios sessions (via the user NCB API), and >thus they didn't specify any means of programming the actual transport >layer from a user application. LAN Manager talked to a Netbios >embedded in the kernel, user NCBs were passed to this Netbios, and >that was it. A vendor could presumably specify a private API for >a particular transport layer, but Microsoft stayed out of it. > Ah James, performance, performance, performance..... NDIS --> NETBIOS is a pretty interface but as with most generic interfaces is slower than a private (read transport layer) interface. I've gone through at least 4 rounds of OS/2 NDIS drivers's; the things I do to go around the OS at this point are reminiscent of DOS to say the least. For instance, my IPX driver uses a private transport interface up to user space. Rounds 1 & 2 used the DosDevIOCtl call. How do you spell ring transition --- slow.... Round 3 uses a shared memory queue and RAM semaphores to speed things up. For another instance; use the kernel debugger to step through and count the instructions in your favorite DevHelp call, some of them are scary! I used to use PhystoGDT at interrupt time when I received a packet; no more! I also lock user buffers at Open time, the DevHelp Lock/Unlock calls are basically useless for real-time programming. BTW, OS/2 1.2 does clean up some of the sins and slowness of OS/2 1.0/1.1. Give Microsoft the credit for at least trying. Larry Backman backman@interlan.com