Slinky
01-30-2002, 10:32 AM
I've been looking at the EQ packet format code, and I've got a couple of questions so if anyone is able to bare with me and answer them I'd be grateful.
My questions centre around the way split packets are handled.
I (think I) understand the ARQ semantics, and how this facilitates both ordered packet processing and resend request for missing 'guaranteed' packets but I have a couple of questions :
a) Do the sequence numbers reset after every ordered sequence?
- Hmm on further inspection it appears that sequence resets on zoning.
b) I ask because otherwise I don't see the necessity for the seqStart/seqEnd flags. It seems to me that one could detect missing packets by interogating the payload type from the packet and realising more data has to follow. Even if the initial packet, with the payload type info in it, was to go astray, this would be apparent from the gap in the sequence numbers surely?
EDIT :
Also some of the flags aren't too obvious to me, what is the purpose of the following: (I've commented the ones I think I know)
ARQ - Ack Request
ASQ - Sequence number in packet.
ClosingLo/ClosingHi - ?
SeqStart/SeqEnd/Fragment - Beginning, middle or end of split payload packets (i.e. fragmented payload).
ARSP - Ack Response
SpecArq - ?
I think maybe I'm confusing ARQ and ASQ?
My questions centre around the way split packets are handled.
I (think I) understand the ARQ semantics, and how this facilitates both ordered packet processing and resend request for missing 'guaranteed' packets but I have a couple of questions :
a) Do the sequence numbers reset after every ordered sequence?
- Hmm on further inspection it appears that sequence resets on zoning.
b) I ask because otherwise I don't see the necessity for the seqStart/seqEnd flags. It seems to me that one could detect missing packets by interogating the payload type from the packet and realising more data has to follow. Even if the initial packet, with the payload type info in it, was to go astray, this would be apparent from the gap in the sequence numbers surely?
EDIT :
Also some of the flags aren't too obvious to me, what is the purpose of the following: (I've commented the ones I think I know)
ARQ - Ack Request
ASQ - Sequence number in packet.
ClosingLo/ClosingHi - ?
SeqStart/SeqEnd/Fragment - Beginning, middle or end of split payload packets (i.e. fragmented payload).
ARSP - Ack Response
SpecArq - ?
I think maybe I'm confusing ARQ and ASQ?