Path: utzoo!mnetor!uunet!husc6!uwvax!dogie!uwmcsd1!ig!agate!ucbvax!twg.COM!jerry From: jerry@twg.COM ("Jerry Scott") Newsgroups: comp.protocols.tcp-ip Subject: RE: offloading the protocols Message-ID: <8803220736.AA16357@ucbvax.Berkeley.EDU> Date: 21 Mar 88 19:17:00 GMT Sender: uucp@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 29 Frank, That is not the way that data flows inside the Wollongong software at all. The same style used by 4.3BSD is the case here. First data is sent from the user into the kernel where it is placed into network buffers call mbufs. Mbufs can and are chained to build packets (IP headers, TCP headers, data, etc). The mbuf chains are passed between protocols, thus no data is moved at all just the pointers to the data. Plus once the data is in the kernel, it never has to take a hop back to an application for any further processing. We are well aware of the overhead of moving data between the kernel level and user level, that is why we have done considerable work in preventing this from happening (eg. Telnet server is kernel resident, sharing DEC ethernet controllers using ALTSTART interface). We have also been eagerly tracking the good work by Van Jacobson and Mike Karels in the TCP area. Our implementation allows us to use there public domain code without modification. I do agree with your assessment of the on-board TCP solutions. The overhead in the host must be minimal. Data must be moved from the user into a DMA area where the smart controller can access it. You must trust the data integrity between the host and the controller performing the network functions. Now if you can get Van's and Mike's code down onto these controllers... Jerry