Le 08-11-10 à 17:35, Rein Couperus a écrit :
That is how it is meant to be. The server sets the stream number. This is also clearly described in the ARQ2.pdf document.
Please indulge me a little. I've re-read the spec several times, and I don't see that. Quoting from page 4, If OA2VR/VE3 wants to open a connection to a SMTP server at 5Y3GTB's station, assign it to stream 1 with 256 byte blocks ... the string would be "OA2VR/VE3:1023 5YGTB:25 1 8 ..." And further down in the acknowledgement section, The message is the receiving station's version of the connection request ... for example if [5Y3GTB will] accept the request as stream 2, the reply of "5Y3GDB:25 OA2VR/VE3:1023 2 6 ..." will be sent to OA2VR/VE3's stream 1.
It also makes sense. When more than one client is connected to a server,it is the server wants to control the stream id, not the client.
As I understand the spec, a connection is made up of two streams, one in each direction.
If necessary the client can refuse the stream ID by reconnecting, the server will then issue the next stream ID.
I think the other way around -- if a client choses a stream id (for server -> client data) that is already in use by another client, it would be the *server* that would refuse the connection. For data going from the client -> server, the client can just use whichever stream id it is told to.
In all cases the server keeps control of the channel. DAMA is necessary for multi-connect because of the enormous HF footprints of the servers, whereCSMA/DCD access control does not work.
Sure, but I think this is an orthogonal issue. The server can still instruct the client how (which stream id) and when to transmit. The issue is the stream ID the server uses to transmit. Consider a client that makes connections to two servers simultaneously. What if they both chose the same stream ID for sending data to the client? How would the client tell which data came from which server? I think it is always the recipient of the data that specifies where they are going to receive the data. Consider an implementation of classical FTP (not that it would make sense to implement this, but for other reasons). Where the server makes a connection back to the client to transfer bulk data. The client's algorithm for accepting the connection would be just like the server's, no difference. The ARQ2.pdf seems to talk only peripherally about clients and servers as such, the primary distinction being (as with TCP) who is initiating and who is accepting a particular connection rather than topological considerations... Cheers, 73 de William EA5/VA3UDP va3udp /@/ rac.ca