03.01.2013 Views

Chapter 1

Chapter 1

Chapter 1

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

esponse, it too considers itself bound in a session: the next response/request datagram it<br />

sends will be sequenced number one.<br />

The listening partner sends the first sequenced packet. For the listening partner, receiving<br />

response n (from the initiating partner) acknowledges its request n. For the initiating partner,<br />

receiving response n + 1 (from the listening partner) acknowledges its request n. The<br />

initiate-request and initiate-response datagrams may be resent using the usual RGCP<br />

resend facility.<br />

To terminate a session normally, the terminating partner sends a 'terminate' request. After<br />

sending a terminate request, the terminating partner is in the blank state: it does not expect<br />

to receive a response. The partner receiving a terminate request must therefore terminate<br />

without sending a response. A terminate request has a zero sequence number because it<br />

can be sent at any time, without waiting for the terminating partner's turn in the conversation.<br />

A terminate request cannot be resent.<br />

Although a terminate request has a zero sequence number, it is uniquely identified with a<br />

particular RGCP session because it specifies GSDP port numbers that are unique to that<br />

session.<br />

Abnormal termination may occur through either partner in a session – or during session<br />

setup – simply ceasing to communicate. The other partner must realize by other means that<br />

this has happened, abandon their current session, and decide what further action to take.<br />

Standard opcodes<br />

RGCP defines three request opcodes:<br />

� 0×ff: initiate – also used to indicate initiate-response<br />

� 0×fe: terminate<br />

� 0×00: should not be used.<br />

Other opcodes may be defined by specific RGCP implementations.<br />

Responses are uniquely associated with their corresponding requests, so a response<br />

opcode system is not strictly necessary. RGCP protocol designers may, however, find it<br />

convenient and/or safer to use the same opcodes for responses as they use for requests.<br />

States and transitions<br />

As perceived by either endpoint, an RGCP session may have the following states:<br />

State Meaning<br />

Blank No GSDP connection.<br />

Initiating An initiate-request has been sent, but no response has been received.<br />

Listening Ready to receive an initiate-request, but none has yet been received.<br />

Responding The session has been bound, a request is being handled, and the<br />

partner must compose a response. This state lasts only for the duration<br />

of a single synchronous function call.<br />

Requesting The session has been bound, and it is this partner's turn to compose<br />

and send a request.<br />

Waiting The session has been bound, this party has sent a response/request,<br />

and is now waiting for its response and another request. Incoming

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!