Negotiation with the Cache Server Control Process
When the Relay Server (sl_relay) is started with -cs, -cp or -cg option, each UDP Relay Process is connected with a Control Process of Cache Server by TCP. Port numbers and password are determined by negotiation between the Cache Server Control Process and the UDP Relay process.
The UDP Relay Process automatically shifts to a mode that doesn't use the Cache Server if negotiation fails.
Data transfer to the Cache PUT Server
When the Relay Server (sl_relay) is started with a -cs or -cp option, the UDP Relay Process of sl_relay transmits all the texture data (ImageData, ImagePacket) received from the Second Life(SIM) server to the relay process for Cache PUT Server that it has been paired with.
All forwarding (caching) is done automatically, there is no need (or option) for user intervention.
Request to Cache Control Process
When Relay Server (sl_relay) is started with -cs or -cg option, the UDP Relay Process traps the request of the texture data (RequestImage) from Viewer, and checks whether the texture data is cached with the Cache Control Process.~ When only part is cached or the request from the Viewer concerns two or more textures, the request is decomposed, and the request concerning data not cached is forwarded to the Second Life(SIM) server just as it is.
The request for cached texture data is issued to the Cache Control Process. This data as well as the texture data from the Second Life(SIM) server is returned.
The recieved texture data ACK packet from Viewer is also trapped. When the ACK packet contains acknowledgments for two or more textures, the ACK packet decomposed, and sent back according to the transmission origin of the texture data.
Rewriting of the sequence number of the packet and the ACK number if done in sl_relay.