待解决问题
求助:有人说半双工和全双工也能一起工作,是吗?  (进入论坛模式)
离问题结束还有0天0小时  |  提问者:delacroix_xu   |  提问时间:2012-4-17 09:54
假如A设备工作在半双工状态,设备B工作在全双工。

半双工的工作流程是,一边发送一边监听,比较发送出去的和接收的数据是否一致,如果不一致,则说明发生冲突。

于是这里将发生如下情况:
A设备一边发送一边监听,发送出去的数据回送PHY,然后比较从接收端收到的数据,可是这时候接收不到任何数据,所以数据一定不一致。所以冲突是一定会 触发。

是这样吗?
求高人给解释
问题答案 ( 7 条 )
0/100M电口A工作模式为自适应,而对端B为固定工作模式,A通过接收的时钟信号可以判断出对端B的速率是100Mbps还是10Mbps,但由于B不发出也不响应协商脉冲信号,导致A无法判断出对端B的双工模式,所以通常A最终只能工作在半双工模式下。若B本身就为半双工,业务正常;若B为全双工,则会出现半双工VS全双工,同一时刻,如果两端都处于发送状态,通信介质上必然会出现碰撞,导致丢包(全双工不检测冲突更不会重发产生碰撞的帧),当通信数据量增大的时候,碰撞的概率增大,丢包严重。因此,当端口设置为自协商时,要求在link上后查询端口实际工作模式,杜绝半双工VS全双工的情况出现。
 |  回应该答案 (1)  |  回答者:soniasun   |  2012-4-17 11:23
该答案得到 1 个回应   我要回应
kin5000  |  2012-4-18 12:45
学习了,谢谢!
回复 2# 的帖子
2楼大姐,您回答的跟我问的对不上。
我想说半双工必须能够在链路上收到自己发出去的数据,跟自己已经发出去的做对比,对比一致,说明链路没有冲突,如果不一致,则说明有冲突。这是冲突检测的物理层实现。

既然链路是全双工的,半双工工作的 设备也就收不到链路上自己刚刚发出去又传回来的数据,所以比较时候,肯定是 失败的。
 |  回应该答案 (0)  |  回答者:delacroix_xu   |  2012-4-17 15:56
肯定能工作,只不过流量一大就会丢包,性能不是很好。
 |  回应该答案 (0)  |  回答者:xiaohouhou   |  2012-4-18 08:37
一端是强制性半双工,另一边是强制性全双工能通,但丢包率会很严重。


一边是自动,一边是半双工
能通,自动的那边变半双工


一边是自动,另一边又是自动
能通,缺省值为半双工。


LZ你说的那技术解释合理。
回应该答案 (0)  |  回答者:mrhappy   |  2012-4-18 18:27
回复 5# 的帖子
高手您好:
我的解释最终结论是,半双工和全双工不能一起工作,半双工如果是按照我说的那样工作,必须从信道上收到“反射”回来的数据,也就是自己刚刚发出去的数据,进行比较,进而判断是否有碰撞。

可是对方是全双工,根本反射不回来任何数据,比较也就会失败,所以半双工那端会一直认为有碰撞。既然认为一直有碰撞,就会不断重发,重发16次之后超时,向上层报告错误。

所以我重新开了个帖子,提了如下问题,希望您帮我回答下。
http://www.txrjy.com/viewthread. ... 26amp%3Btypeid%3D25

我觉得 10BASE-T不会反射回来数据。不是我们通常认为的CSMA/CD解释的那样。 10BASE-T的半双工是与10BASE2或10BASE5有很大区别的。
 |  回应该答案 (0)  |  回答者:delacroix_xu   |  2012-4-20 14:10
应该是不能工作的,我看了楼上的回答,都是一边半双工,一边自协商,结果工作在半双工上,那肯定是可以工作的,但强制一边半双工,一边全双工,全双工那边不做冲突检测,一直发数据,但半双工一直检测,链路一直不空闲,发不出数据,当然不通了,楼主,你的理解是正确的!
回应该答案 (0)  |  回答者:mayabinxa   |  2012-5-1 12:45
单工:只能单方面传递。
半双工:支持双向传递,但是不能同时支持,需要错开。
全双工:可以同时双向传递,无论什么时候。
如果还不明白可以详细可以参考:全双工和半双工的区别
可以同时工作的,楼主说的是不不存在冲突的。
回应该答案 (0)  |  回答者:q3210497   |  2013-1-16 18:16
 
我要回答:  回答字数在10000字以内