1.本发明涉及通信技术领域,具体涉及一种以太网半双工重传方法及系统。
背景技术:2.半双工通信(half
‑
duplex communication)可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。也就是说,通信信道的每一段都可以是发送端,也可以是接收端;但同一时刻里,信息只能有一个传输方向。
3.在网络数据传输中,如图1所示,以太网网络1a和以太网网络2a之间工作在半双工模式下,当通信信道的两端同时发送数据时,会出现通信不正常,属于碰撞行为,数据发生碰撞后,需要重新传输(即重传),目前业内标准重传方法是基于2的幂次方内随机一个数据,这个随机数据乘以512bit时间,其中,2的幂最大值为10,最终得到时间作为重传机制中的避让时间。如图2所示,t1=1*512bit时间,t2=(1~22)*512bit时间,即t2中的随机数据在1至22之间;t3=(1~23)*512bit时间,t4=(1~24)*512bit时间,按此方法,当达到第十次碰撞或者超过十次碰撞后,tn=(1~2
10
)*512bit时间,n≥10,随机数据在1至2
10
之间。
4.假设通过10m半双工通信,时钟周期为400ns,一个时钟周期内传输4bit,那么512bit时间为51.2us,按照上述方法计算避让时间来重新传输数据的话,例如2的5次幂随机出来后的随机数据为30,30乘以512bit(即51.2us)等于153.6us,在这个时间内网络通信信道是空闲的,会很浪费带宽,如果是2的10次幂范围内随机出来的数据就更浪费时间了,例如当极端情况时可能出现两端都需要等待2
10
*512bit时间,约等于500ms。除此之外,这种方法无法保证两端以太网所使用的随机机制质量,当有一端以太网网口的随机机制质量很差时,同样在2的幂次方内随机产生数据,产生的随机数据可能一直偏大,或者一直偏小,导致一旦发生撞击行为,一直是某一端最先抢占总线重新传输,持续占据总线,因此针对以上问题,迫切需要设计出一种以太网半双工重传方法及系统,以满足实际使用的需要。
技术实现要素:5.本发明的目的在于,提供一种以太网半双工重传方法及系统。
6.本发明所解决的技术问题可以采用以下技术方案来实现:
7.本发明提供一种以太网半双工重传方法,包括:
8.步骤s1,于半双工通信网络中发生碰撞时,记录撞击次数;
9.步骤s2,判断所述撞击次数的奇偶性:
10.若所述撞击次数满足一第一预设条件,则将避让时间设置为一第一预设时间,所述第一预设时间的范围为512~1024bit时间;
11.若所述撞击次数满足一第二预设条件,则将所述避让时间设置为一第二预设时间,所述第二预设时间的范围为96~512bit时间;
12.步骤s3,根据所述避让时间重新发送通信数据。
13.优选地,所述方法包括:第一重传模式;
14.于所述第一重传模式下,所述第一预设条件为所述撞击次数为偶数;
15.所述第二预设条件为所述撞击次数为奇数。
16.优选地,所述方法包括:第二重传模式;
17.于所述第二重传模式下,所述第一预设条件为所述撞击次数为奇数;
18.所述第二预设条件为所述撞击次数为偶数。
19.优选地,所述步骤s1中,通过一第一计数器记录所述撞击次数。
20.优选地,所述步骤s2中,根据所述第一计数器的最低位判断所述撞击次数的奇偶性。
21.优选地,所述步骤s1中,还包括:通过一第二计数器记录同一通信数据的连续碰撞次数;
22.所述步骤s2中,当同一所述通信数据的连续碰撞次数超过一预定次数时切换至所述第一重传模式和所述第二重传模式的另一重传模式。
23.优选地,还包括:
24.所述通信数据发送成功后,所述第二计数器清零
25.优选地,所述第一预设时间为640bit时间;
26.所述第二预设时间为96bit时间。
27.优选地,所述第二预设时间为以太网相邻两帧的最小间隔时间。
28.本发明还提供一种以太网半双工重传系统,用于实施如上述的以太网半双工重传方法,包括:
29.至少一个第一对端和至少一个第二对端通过以太网进行半双工通信;
30.所述第一对端和所述第二对端均包括:
31.一切换单元,用于在一第一重传模式和一第二重传模式之间切换;
32.若所述第一对端切换至所述第一重传模式,则所述第二对端切换至所述第二重传模式;
33.若所述第一对端切换至所述第二重传模式,则所述第二对端切换至所述第一重传模式。
34.本发明技术方案的有益效果在于:
35.在半双工通信网络中,当发生撞击碰撞时,通过碰撞次数的奇偶性判断,配置避让时间,通信信道的两端的重传避让时间均匀分配,不会因为某一端的随机机制质量不好导致一直被某一端持续占据总线,无需考虑随机机制质量问题,减少了撞击次数,基本可以维持通信线路上持续有数据传输,提高线路利用率。
附图说明
36.图1是现有技术中,以太网半双工通信的结构框图;
37.图2是现有技术中,半双工通信重传的时序示意图;
38.图3是本发明中,一种以太网半双工重传方法的流程示意图;
39.图4是本发明中,第一重传模式下重传方法具体实施例的流程示意图;
40.图5是本发明中,第一重传模式下半双工通信重传的时间示意图;
41.图6是本发明中,第二重传模式下重传方法具体实施例的流程示意图;
42.图7是本发明中,第二重传模式下半双工通信重传的时间示意图;
43.图8是本发明中,以太网多网口半双工通信的结构框图。
具体实施方式
44.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
46.下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
47.本发明提供一种以太网半双工重传方法,属于通信技术领域,如图3所示,包括:
48.步骤s1,于半双工通信网络中发生碰撞时,记录撞击次数;
49.步骤s2,判断撞击次数的奇偶性:
50.若撞击次数满足一第一预设条件,则将避让时间设置为一第一预设时间,第一预设时间的范围为512~1024bit时间;
51.若撞击次数满足一第二预设条件,则将避让时间设置为一第二预设时间,第二预设时间的范围为96~512bit时间;
52.步骤s3,根据避让时间重新发送通信数据。
53.考虑到现有的半双工重传机制避让时间较长,且受限于随机机制质量的影响,导致线路重传避让时间不稳定,可能有一端一直占线,另一端无法发送数据等问题,本发明对避让时间进一步改进,当发生碰撞重传时,通过一个bit数据位获取撞击次数的奇偶性,根据奇偶性配置避让时间,即为需要等待重传的时间,根据配置的避让时间重新传输数据。
54.采用上述方法,不会因为某一端的随机机制不好导致一直被某一端持续占据总线,不需要考虑随机机制的质量问题,本发明会均匀分配给两端重传,当半双工通信中发生多次碰撞,通过降低避让时间,以及避让时间均匀分配,以减少撞击次数,维持通信线路上持续有数据传输,提高线路利用率。
55.作为优选的实施方式,步骤s1中,通过一第一计数器记录撞击次数。
56.具体的,在本实施例中,通过一个多bit位的第一计数器记录撞击次数,例如8bit计数器,撞击次数在0
‑
255之间循环,每次撞击后,第一计数器加1,第一计数器记录的撞击次数为该端发送的所有通信数据的总的撞击次数,优选的,只有在复位时,第一计数器才会清零,否则会不断增加,第一计数器的用于判断当前是奇数次还是偶数次撞击。
57.作为优选的实施方式,步骤s2中,根据第一计数器的最低位判断撞击次数的奇偶性。
58.具体的,在本实施例中,无需获取第一计数器所记录的总撞击次数,通过第一计数器的最低位,即1bit,即可判断出撞击次数的奇偶性。
59.作为优选的实施方式,步骤s1中,还包括:通过一第二计数器记录同一通信数据的连续碰撞次数;
60.步骤s2中,当同一通信数据的连续碰撞次数超过一预定次数时切换至第一重传模
式和第二重传模式的另一重传模式。
61.优选地,还包括:
62.通信数据发送成功后,第二计数器清零。作为优选的实施方式,通信数据发送成功后,第二计数器清零。
63.具体的,在本实施例中,当连续撞击次数等于或超过预定次数后,表示当前本端和对端可能处于同一种重传模式,此时切换本端的重传模式,即本端由第一重传模式切换至第二重传模式,或者由第二重传模式切换至第一重传模式,等待通信数据成功发送出去后,第二计数器变成0,即清零;连续撞击次数为发送同一通信数据,连续重传并且均发生碰撞,
64.作为优选的实施方式,如图4和图5所示,方法包括:第一重传模式;
65.于第一重传模式下,第一预设条件为撞击次数为偶数;
66.第二预设条件为撞击次数为奇数。
67.具体的,在本实施例中,在第一重传模式下:撞击次数为偶数(n%2==0)时,以第一预设时间作为需要等待重传的时间,即512~1024bit时间,n表示第一计数器,也可以表示第一计数器的最低位;当撞击次数为奇数(n%2==1)时,以第二预设时间作为需要等待重传的时间,即96~512bit时间。
68.进一步的,第一预设时间为512bit时间加128bit时间,即640bit时间;第二预设时间为96bit时间,96bit时间为以太网相邻两帧的最小间隔时间。
69.假设第一次发生碰撞,n%2==1,则避让时间为t1’=96bit时间;第二次发生碰撞,n%2==0,则避让时间为t2’=512bit+128bit时间;第三次发生碰撞(n%2==1),避让时间为t1’=96bit时间;第四次发生碰撞(n%2==0),避让时间t2’=512bit+128bit时间,按此方法重新传输数据,均匀分配给两端重传,无需考虑随机机制质量问题,也不会存在一端一直占线的现象。
70.作为优选的实施方式,如图6和图7所示,方法包括:第二重传模式;
71.于第二重传模式下,第一预设条件为撞击次数为奇数;
72.第二预设条件为撞击次数为偶数。
73.具体的,在本实施例中,在第二重传模式下:撞击次数为奇数(n%2==1)时,以第一预设时间作为需要等待重传的时间,即512~1024bit时间,当撞击次数为偶数(n%2==0)时,以第二预设时间作为需要等待重传的时间,即96~512bit时间;
74.进一步的,第一预设时间为512bit时间加128bit时间,即640bit时间;第二预设时间为96bit时间,96bit时间为以太网相邻两帧的最小间隔时间。
75.假设第一次发生碰撞,n%2==1,则避让时间t1’=512bit+128bit时间;第二次发生碰撞,n%2==0,则避让时间t2’=96bit时间;第三次发生碰撞(n%2==1),避让时间t1’=512bit+128bit时间;第四次发生碰撞(n%2==0),避让时间t2’=96bit时间,按此方法重新传输数据,均匀分配给两端重传,无需考虑随机机制质量问题,也不会存在一端一直占线的现象。
76.采用此方法,当发生碰撞时,次数为奇数次数时,最多是空闲512bit时间,次数为偶数次数时,基本可以维持线上有数据传输,极大的利用网络线路。
77.作为优选的实施方式,第一预设时间为640bit时间。
78.具体的,在本实施例中,第一预设时间以512bit时间加128bit时间作为需要等待
重传的时间。
79.作为优选的实施方式,第二预设时间为以太网相邻两帧的最小间隔时间。
80.作为优选的实施方式,第二预设时间为96bit时间。
81.具体的,在本实施例中,第二预设时间以96bit时间作为需要等待重传的时间,96bit时间即为以太网相邻两帧的时间段。
82.本发明还提供一种以太网半双工重传系统,用于实施如上述的以太网半双工重传方法,如图8所示,包括:
83.至少一个第一对端和至少一个第二对端通过有线以太网进行半双工通信;
84.第一对端和第二对端均包括:
85.一切换单元(图中未示出),用于在一第一重传模式和一第二重传模式之间切换;
86.若第一对端切换至第一重传模式,则第二对端切换至第二重传模式;
87.若第一对端切换至第二重传模式,则第二对端切换至第一重传模式。
88.具体的,在本实施例中,半双工通信网络中可能同时存在多个第一对端,例如以太网网口1a、1b、1c,存在多个第二对端,例如以太网网口2a、2b、2c,当两端设备都采用本发明中的重传方法互相连接时,通过配置切换单元,切换重传模式,一端为第一重传模式,另一端为第二重传模式,可以极大地提高数据传输效率。
89.于上述较佳的实施例中,第一对端和第二对端还包括:
90.一第一计数器和一第二计数器,第一计数器用于记录本端的总撞击次数,以用来判断当前是奇数次还是偶数次撞击。第一计数器直到复位才会变成0,否则会不断增加。
91.第二计数器用于记录同一通信数据的被撞击的连续碰撞次数,以根据该连续碰撞次数调用切换单元切换重传模式,即切换重传时间间隔。直到同一通信数据成功发送后,第二计数器才会清零。
92.本发明技术方案的有益效果在于:在半双工通信网络中,当发生撞击碰撞时,通过碰撞次数的奇偶性判断,配置避让时间,通信信道的两端的重传避让时间均匀分配,不会因为某一端的随机机制质量不好导致一直被某一端持续占据总线,无需考虑随机机制质量问题,减少了撞击次数,基本可以维持通信线路上持续有数据传输,提高线路利用率。
93.以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。