art@ACC.ARPA (10/18/85)
This is really more of an implementation question. Given that STREAM modules can be "pushed" on top of one another and use a simple byte stream interface, what does this imply for buffer strategy between STREAM modules which implement communication protocols? Do STREAM modules copy data between buffers at module boundaries or are the buffers passed from one module to the next? Copying would be a significant cost if many modules are layered together, but passing buffers has the problem of adding/deleting protocol headers/trailers and copying may still be required if retransmission or fragmentation is involved. Protocol headers can be dealt with by using segmented buffers like 4.2 "mbufs" but this make kernel buffering more complicated. Also, many protocol interfaces need to pass parametric information along with a packet of data. Is this passed inband? What effect does this have on the generality of modules? Finally how is out-of-band data handled? (inband?) Can anyone who has access to STREAMs comment? "Art Berggreen"<Art@ACC.ARPA> ------