wickham@decwet.dec.com (Charlie Wickham, DECWest Engr. 02-Jan-1990 1705) (01/03/90)
I haven't seen this discussed much, but I'm interested on opinions as to how IP options should be retained for delivery to a TCP session user. The host requirements doc sez that implementations should make options available to user applications. In a datagram world, one could see where the presentation of options would be pretty straight-forward: options are presented when the datagram is read. For connection-oriented sessions, a couple of scenarios come to mind: 1) individual options accumulate until read and 2) option "blocks" are retained and queued. With accumulation, an option's value is overwritten when a datagram arrives with that option. Note that the value maybe the same, in which case, nothing has changed. When the options are "read" by the application, the option area is cleared and incoming options start accumulating again. This solution provides the least amount of accuracy since all options are "glommed" together and distinct option values are not maintained. On the other hand, it provides a simple mechanism of collecting and conveying the option info. Retaining the original option blocks provides more accurate information (no option data is lost), but it would seem to require some sort of syncronization with the data stream to be really useful (is that true?). Also, if the data stream is read and there is no desire to read the options, how should that be handled? Finally, are there any implementations that present IP options to TCP users? thanx, charlie wickham@decwet.dec.com
braden@VENERA.ISI.EDU (01/04/90)
I haven't seen this discussed much, but I'm interested on opinions as to how IP options should be retained for delivery to a TCP session user. The host requirements doc sez that implementations should make options available to user applications. Charlie, I think the HR RFC says that the IP layer must pass options to the transport layer, and that UDP in particular must pass options on the the application. TCP is not required or requested to pass IP or TCP options to the application. Bob Braden