I would like to add my two cents, and try to explain the problem from slightly different perspective.
In short, what you are missing here is a question of how to assign TDMA slots to the stations. These are the options that I see.
As was said before, neither of these options would be Ethernet.
Option 1: (obvious) assign fixed slots to stations. This has two significant drawbags:
- each station gets a fixed slot, irrespective of whether it is planning to send anything or not. As pointed out in other answers, this obviously leads to pretty ineffective utilization of the bus, as slots cannot be allocated to other stations. Besides is not desired even for circuit-switched networks, and breaks the whole idea of packet-switched networks.
- adding more systems to the bus requires reconfiguration of each station on the bus.
AFAIK there are some automotive buses that actually work like this, which has more to do with real-time requirements and the fact that you usually do not add stations in a car. Computing schedules for stations, which has to be done for each car model, is nevertheless a big problem. [I am not sure about this statement, please verify it.]
Option 2: have some kind of "bus master" that assigns slots to stations on demand, i.e., when stations wish to send something. There are two options for this master to work
- Polling. Master asks each station whether it wants to transmit and allocates the slot if so. Since you will probably assign a dedicated slot for the master to poll, this will indeed solve the collision problem.
- Have stations signal the master when they wish to send packets. This can be done using the same CSMA/* mechanism, which does not completely resolve collisions, but reduce collisions to the signalling frames/packets, that should be small.
Ethernet obviously chose not to have a master. I don't think it is immediately obvious who this master could be. There are however systems which do have masters.
- WiFi Access Point can be a master, WiFi specifies so called point coordination function which polls other stations. Note that this is not the main mode of WiFi operation (see below).
- signalling as in item 2 is how phone (cirquit-switched) networks, incl ISDN and GSM allocate time slots to phone conversations. You can check ISDN D-Channel, which is a shared CSMA/CD (for me looks more like CA?) bus between all phones/modems on a line and a special device that is a master. For GSM, look for RACH (random access channel) and its role in call setup.
Option 3: have a distributed slot assignment mechanism. Basically this idea is similar to signalling the master, without the master. The time is divided into reservation time and actual time to send data. During reservation time, each station that wants to send a packet tries to reserve a time slot using CSMA/CD mechanism. If succeeded the packet can be sent. Again, this technically resolve all collisions, but it reduce collisions to small signalling packets.
There are several of variants of reservation ALOHA, which is a modification of slotted ALOHA with the added reservation mechanism. WiFi distributed coordination function works like this, and this is the mode that allows WiFi without access point, and the mode that is actually required.
Now, as pointed out by @RonTrunk, using slotted channel access requires each station to synchronize slot start time. This is, AFAIK, done in almost every wireless network, but this is not trivial. Not having slots leads to much simpler design.
Also, as pointed out by all other answers, Ethernet as a CSMA/CD bus is not used today. It turned out to be suboptimal for I guess several reasons. In wired networks it is easier to have point-to-point links and switches, than a shared bus, at least when trying to achieve large throughput.