That top-layer-calls-next-layer etc ad-nauseam model seems to have been one of the original ideas for how to implement a stack.
Actual current implementations do all kinds of wierd stuff, but mostly pass around accumulating collections of buffers; so the payload buffer doesn't get copied to accomodate each new header, instead the kernel has a second buffer to contain the header (and later layers can add more). What gets passed around (by way of various queues and internal plumbing schemes) is a structure of pointers to pieces of packet, which gets put together on transmission, often by the DMA engine in the device or by the device driver. The layering is just a conceptual model for the logic of what is going on, and has no resemblance to the flow of control in a typical actual implementation. There are simple educational implementations that follow the layering fairly closely, and they are interesting to read but tend not to be practical for high performance applications. --On Tuesday, 5 March 2002 11:02 p.m. -0800 Christopher Evans <[EMAIL PROTECTED]> wrote: > Here is a question that will tax your synapes to bursting point! > > How is PPP and TCP/IP libs "wired" together? Like, DO I (OSI 8) call TCP > and it calls IP and down the > chain till it spills over and gets real physical (OSI 1)? I am confused. > > > At 10:02 AM 3/5/02 -0500, you wrote: >> whoa, it's in the TCP/IP suite, it's not. So let me get this straight. >> TCP and UDP are part of IP. TCP provides error sum UDP doesn't and is >> therefore faster than TCP. They are encapsulated in IP, which is put >> into the data bitstream of a PPP frame. Layer 1 is the physical layer, >> are bitstreams sent at that level. BTW I have 56K dial-up no ISDN or DSL. >> ----- Original Message ----- >> > > >