首先从电缆谈起。100BASE-TX使用的是双铰线(UTP电缆)。
UTP电缆看起来只有1根线,但内部却有8根导线。100BASE-TX只使用了其中的2根。一根为发送信号专用线,另一根为接收信号专用线。这种收发信号分别使用不同的导线便是它与10BASE5的第一个不同之处。
第2个区别就是每根电缆连接的终端数。在100BASE-TX中每根电缆的两端各连一台终端,总共只能连接2台终端。如要连接3台以上个人电脑,必须使用中继集线器,而正是这种中继集线器在100BASE-TX中承担了CSMA/CD的主要工作。
发送信号期间接收信号的话就会发生冲突
与10BASE5不同,10BASE-T与100BASE-TX每根电缆只连接一台终端,收发信号也分别使用不同的导线,所以发送的帧不会出现电信号冲突。
我们具体看一下100BASE-TX中CSMA/CD的工作过程,以个人电脑A向个人电脑B发送帧为例 .
首先由A确定能否发送帧(1),具体方法就是检测信号接收线有无信号到达。
如果信号接收线上没有信号到达的话,A就随即开始发送帧(2)。这一过程与10BASE5没什么区别。但发送出去的帧不是通过刚才检测的线路,而是通过另一条线路发送出去的。
A发送的信号到达中继集线器。中继集线器再将来自A的信号复制发送到A以外的端口(3)。
如果顺利的话,A的发送过程就此结束,但有时会出现这样的情况:在(1)的过程中,其他的个人电脑(比如B)也判断出可以发送信号,几乎同一时刻也开始发送信号(4)。这样就会出现信号冲突问题。
但与10BASE5不同的是,在100BASE-TX中A发送的信号与B发送的信号是在不同导线上传输的,A与B之间绝对不会出现电信号冲突。
不仅如此,在100BASE-TX中还有“当信号发送期间信号接收线接收信号的话会被判定为冲突”这样的机制。这就是Part1的传输过程。
为什么必须采用这一机制呢?这是因为中继集线器无法处理各个端口同时发来的数种信号。也就是说,尽管个人电脑可以同时收发信号(全双工通信),但中继集线器却不能这样。因此,在使用中断集线器的100BASE-TX中,就制作了一个模拟冲突,使收发信号不能同时进行。
集线器将问题信息发往所有终端
检测出信号冲突后,B就立即中止帧的发送,接着发送一个阻塞信号(6)。发送阻塞信号是为了通知其他个人电脑与中继集线器“出现了冲突”。如果阻塞信号不能传输,说明有可能是B发出的帧“片段”过短使得中继集线器与A无法检测。
B发出的阻塞信号到达中继集线器。这样,中断集线器通过正在接收A的信号期间收到了B的信号来判断出现了冲突。随后中继集线器向所有接点发出阻塞信号(7)。
中继集线器发出的阻塞信号也传到了A.同样,A在发送信号期间如果收到其他信号的话也可以判断是发生了冲突,从而发出阻塞信号(8)。
最终A与B都中止了帧的发送,在等待一定时间后重新开始(9)。以上就是100BASE-TX中CSMA/CD的工作过程。