Timothy J. Salo wrote:
Greg D. wrote:
Ah, but how does one know that a time slot is not being used? With many stations on the ground, there is a good chance that multiple stations will pick the same "empty" slot to be theirs, and we're back to collisions.
For good performance, some sort of media-access control (MAC) protocol is required. Time-slotted protocols have a lot to be said for them, although some have suggested using a CDMA protocol. You could create a system that assigns time slots to active ground stations. But, if these stations are generating very bursty traffic, like voice, a lot of the uplink bandwidth may be wasted. In general, I think this is what I call a "hard problem" (i.e., we don't know how to solve it [yet], and perhaps nobody else does either).
Sounds like this could be someone's Master's or PhD thesis then.
Anyway, at the risk of looking silly, which I'm always in danger of, it might be fun to cook up something that's 'almost good enough.'.
I'm reminded a little of the ham radio HF nets, where net control calls out for 'callsign district 0', 'callsign district 1', Reserve a regular slot for 'check-ins' and then the satellite puts out a call for 'everyone to check in. If too many come in, then it asks for 'district 0', and if that's still too many, it thins it down even further. (Though somehow we'd need a way to detect a pileup versus noise. Hmm.)
Once you get a 'check-in packet' in, it then assigns you a slot to use, and your data would be 'here's my packet, and I'd also like to send another XX ticks from now'.
Give priority to packets farther in the future, so as the system overloads, a large number of low bandwidth users keep going.
If you miss your slot, you lose, and have to check in again.