一种以太网链路级可靠传输的装置和方法

未命名 08-15 阅读:150 评论:0


1.本发明涉及网络通信技术领域,尤其涉及一种以太网链路级可靠传输的装置和方法。


背景技术:

2.传统以太网控制器通过pfc帧(priority-based flow control,基于优先级的流量控制)实现简单的流量控制功能,但是无法实现数据帧的可靠传输功能,如果报文在链路传输上出现错误,或者控制器接收缓存溢出,都会将接收的数据帧进行丢弃。为了实现可靠传输,传统以太网一般是通过高层协议(比如tcp协议)检测传输数据帧的完整性,如果中间丢失了某个数据帧,通过高层控制帧进行重传,重传时接收端请求重传报文需要向以太网上层发送,被重传的数据由上层重新传入以太网链路层,这种从源到目的的重传延迟非常大,并且一旦发送错误重传,错误报文之后的所有报文将全部进行重传,整个重传过程复杂,cpu占用率高,传输时延大,严重浪费带宽。因此传统以太网无法支持链路层的可靠传输控制。


技术实现要素:

3.针对传统以太网无法支持链路层的可靠传输控制的问题,本发明提供一种以太网链路级可靠传输的装置和方法,通过在以太网链路层增加链路层可靠传输控制模块,实现以太网数据帧端到端的可靠传输,能够应用于传统的以太网控制器,增强控制器的功性能,提高网络的带宽利用率。
4.一方面,本发明提供一种以太网链路级可靠传输的装置,在以太网控制器中设置有链路层可靠传输控制模块;所述链路层可靠传输控制模块包括frame id封装单元、发送选择单元、重传缓存单元、接收选择单元、lrtf处理与生成单元以及frame id检查和删除单元;lrtf是指自定义的链路层可靠传输控制帧;frame id封装单元,用于从报文缓存中接收数据帧,在该数据帧中增加frame id字段;其中,每发送一个以太网帧,frame id加1;发送选择单元,用于根据控制选择发送经过frame id封装单元封装后的数据帧、重传缓存单元中的数据帧或者lrtf处理与生成单元生成的lrtf至mac数据通路;重传缓存单元,用于缓存经frame id封装单元封装后的数据帧;接收选择单元,用于从mac数据通路中接收以太网帧,对该以太网帧进行解析:若为数据帧,则发送至frame id检查和删除单元;若为lrtf,则发送至lrtf处理与生成单元;lrtf处理与生成单元,用于解析接收的lrtf并根据控制生成相应的lrtf;frame id检查和删除单元,用于从接收的数据帧中提取出frame id,并在删除该数据帧中frame id字段后,将该数据帧发送至报文缓存。
5.进一步地,所述lrtf包括数据帧确认控制帧、数据帧不确认控制帧、从重传处重传控制帧、链路状态请求报文以及链路状态响应控制帧;
数据帧确认控制帧,用于指示对应frame id的数据帧已被正确接收;数据帧不确认控制帧,用于指示对应frame id的数据帧不能被正确接收;从重传处重传控制帧,用于指示其后续的以太网帧是从重传处开始重传的报文;链路状态请求报文,用于请求了解对端的链路状态;链路状态响应控制帧,用于响应链路状态请求报文。
6.另一方面,本发明提供一种以太网链路级可靠传输的方法,所述方法包括:从本端的报文缓存中接收数据帧,在该数据帧中增加frame id字段,形成新的数据帧,将该新的数据帧进行缓存;其中,本端每发送一个以太网帧,frame id加1;将该新的数据帧发送至本端的mac数据通路,以便通过本端的mac数据通路发送至对端;通过本端的mac数据通路接收来自对端的以太网帧并解析;若解析得到该以太网帧为数据帧,则从该数据帧中提取出frame id,并在删除该数据帧中frame id字段后,将该数据帧发送至本端的报文缓存;然后在本端生成携带有该frame id的lrtf并反馈至对端,以供对端根据该lrtf的指示对该frame id对应的数据帧执行相应操作;lrtf是指自定义的链路层可靠传输控制帧。
7.进一步地,还包括:若解析得到该以太网帧为lrtf,则解析接收的lrtf并根据控制生成相应的lrtf并反馈至对端。
8.进一步地,包括:所述lrtf包括数据帧确认控制帧、数据帧不确认控制帧、从重传处重传控制帧、链路状态请求报文以及链路状态响应控制帧;数据帧确认控制帧,用于指示对应frame id的数据帧已被正确接收;数据帧不确认控制帧,用于指示对应frame id的数据帧不能被正确接收;从重传处重传控制帧,用于指示其后续的以太网帧是从重传处开始重传的报文;链路状态请求报文,用于请求了解对端的链路状态;链路状态响应控制帧,用于指示下一个待发送的数据帧的frame id。
9.进一步地,在本端生成携带有该frame id的lrtf并反馈至对端,以供对端根据该lrtf的指示对该frame id对应的数据帧执行相应操作,具体包括:若该lrtf为数据帧确认控制帧,对端则将该frame id对应的数据帧从缓存中释放;若该lrtf为数据帧不确认控制帧,则本端进入重传状态,并且对端停止发送当前数据帧,并从缓存中找到下一个待确认的数据帧并重传;若该lrtf为从重传处重传控制帧,则对端退出重传状态以继续接收后续的数据帧;若该lrtf为链路状态请求报文,则对端根据自身链路状态决定是否向本端反馈链路状态响应控制帧;若该lrtf为链路状态响应控制帧,则对端进行frame id的同步。
10.本发明的有益效果:(1)本发明通过在以太网链路层增加硬件的链路层可靠传输控制模块,并自定义链路层可靠传输控制帧,实现了以太网链路层的可靠传输和链路级重传功能,从而避免传统通过高层协议检测传输数据帧的完整性,本发明的整个传输过程简单,极大程度上降低
了传输时延,节约了带宽。
11.(2)设计数据帧确认控制帧和数据帧不确认控制帧,通信双方基于确认机制进行以太网传输,接收端依据frameid顺序确认,确保发生的所有报文都被接收,因此本发明能检测链路所有丢包情况。
12.(3)本发明支持与传统以太网互连、支持bypass透传。
附图说明
13.图1为本发明实施例提供的一种以太网链路级可靠传输的装置的结构示意图;图2为本发明实施例提供的在数据帧中增加frame id字段的示意图;图3为本发明实施例提供的rtc报文格式的示意图;图4为本发明实施例提供的一种以太网链路级可靠传输的方法的流程示意图。
具体实施方式
14.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
15.实施例1如图1所示,本发明实施例提供一种以太网链路级可靠传输的装置,在以太网控制器中设置有链路层可靠传输控制模块,具体而言,链路层可靠传输控制模块位于传统以太网mac和报文缓存之间。所述链路层可靠传输控制模块包括frame id封装单元、发送选择单元、重传缓存单元、接收选择单元、lrtf处理与生成单元以及frame id检查和删除单元;lrtf(link reliable transmission frame)是指自定义的链路层可靠传输控制帧;frame id封装单元,用于从报文缓存中接收数据帧,在该数据帧中增加frame id字段;其中,每发送一个以太网帧,frame id加1;具体地,如图2所示,(a)表示原始的数据帧,(b)表示frame id封装单元封装后的数据帧。本实施例中,为了不影响传统的pfc流控,frame id字段的位置位于type字段之后,但是可以理解的是,frameid字段也可以增加至数据帧的其他位置,只需接发双方约定好即可。此外,需要说明的是,增加frame id字段,需要重新计算数据帧的fcs。
16.发送选择单元,用于根据控制选择发送经过frame id封装单元封装后的数据帧、重传缓存单元中的数据帧或者lrtf处理与生成单元生成的lrtf至mac数据通路;重传缓存单元,用于缓存经frame id封装单元封装后的数据帧;接收选择单元,用于从mac数据通路中接收以太网帧,对该以太网帧进行解析:若为数据帧,则发送至frame id检查和删除单元;若为lrtf,则发送至lrtf处理与生成单元;lrtf处理与生成单元,用于解析接收的lrtf并根据控制生成相应的lrtf;具体地,为叙述方便,将lrtf处理与生成单元发送和接收的报文称为rtc报文,rtc帧是一种控制帧,它起源于并结束于lrtf处理与生成单元。图1中,黑色粗实线表示正常的数据通路,蓝色实线表示rtc报文的接收和发射路径图3举例说明了一种rtc报文的格式,该帧格式与传统的二层以太网帧格式类似,
包括目的mac地址(da)、源mac地址(sa),type类型0x8808,表示是rtc类型帧,这些数据可根据用户需求改变。
17.(1)da:0x01-80-c2-00-00-02(可软件定义,默认值为0x01-80-c2-00-00-02)。
18.(2)sa:0x00-00-00-00-00-00。
19.(3)rtctype:0x88-08(可软件定义,默认值为0x88-08)。
20.(4)control opcode:2字节,采用该字段来定义用于指示lrtf类型的操作码。
21.(5)frame id:2字节,对应控制报文的frame id,比如包确认报文,表示该frame id报文正确接收。
22.(6)pna reason:2bytes,指示出现pna的原因,比如fcs错误,frame id不匹配,没有资源等,其它控制报文该字段reserved。
23.(7)fcs,4bytes,报文crc。
24.frame id检查和删除单元,用于从接收的数据帧中提取出frame id,并在删除该数据帧中frame id字段后,将该数据帧发送至报文缓存。
25.需要说明的是,为了清楚示意,在图1中,将mac数据通路分为mac发送通路和mac接收通路;同样的,将报文缓存分为发送数据帧缓存和接收数据帧缓存。
26.本发明实施例提供的以太网链路级可靠传输的装置,在传统以太网控制器的基础上增加链路层可靠传输控制模块,用户可以根据需要自定义lrtf帧,该lrtf帧从链路层可靠传输控制模块生成,也在链路层可靠传输控制模块消化,从而实现链路层的可靠传输控制。
27.实施例2在上述实施例1的基础上,本发明实施例提供一种lrtf的定义方式,该方式定义的lrtf能够实现数据帧接收确认、未确认、重传、链路状态查询等功能。
28.本实施例中,该lrtf包括数据帧确认控制帧(packet accepted,pa)、数据帧不确认控制帧(packet not accepted,pna)、从重传处重传控制帧(restartfrom pna)、链路状态请求报文(link status request,lreq)以及链路状态响应控制帧(link status response,lresp);其中,数据帧确认控制帧,用于指示对应frame id的数据帧已被正确接收;数据帧不确认控制帧,用于指示对应frame id的数据帧不能被正确接收;从重传处重传控制帧,用于指示其后续的以太网帧是从重传处开始重传的报文;链路状态请求报文,用于请求了解对端的链路状态;链路状态响应控制帧,用于响应链路状态请求报文。对应的,本实施例中,control opcode字段的操做码定义为02-0x,主要定义了5种操作码,对应本实施例中的5种lrtf。
29.实施例3结合图1和图4所示,本发明实施例提供一种以太网链路级可靠传输的方法,将通信双方记作a端和b端,该方法包括以下步骤:假设a端作为发送端,b端作为接收端,传输过程为:a端从本端的报文缓存中接收数据帧,在该数据帧中增加frame id字段,形成新的数据帧,将该新的数据帧进行缓存;其中,a端每发送一个以太网帧,frame id加1;a端将该新的数据帧发送至本端的mac数据通路,以便通过本端的mac数据通路发
送至b端;假设a端作为接收端,b端作为发送端,传输过程为:a端通过本端的mac数据通路接收来自b端的以太网帧并解析;a端若解析得到该以太网帧为数据帧,则从该数据帧中提取出frame id,并在删除该数据帧中frame id字段后,将该数据帧发送至本端的报文缓存;然后,a端在本端生成携带有该frame id的lrtf并反馈至b端,以供b端根据该lrtf的指示对该frame id对应的数据帧执行相应操作;lrtf是指自定义的链路层可靠传输控制帧。
30.实施例4在上述实施例的基础上,本实施例给出了5种lrtf来实现链路层可靠传输。该5种lrtf分别为:数据帧确认控制帧,用于指示对应frame id的数据帧已被正确接收;数据帧不确认控制帧,用于指示对应frame id的数据帧不能被正确接收;从重传处重传控制帧,用于指示其后续的以太网帧是从重传处开始重传的报文;链路状态请求报文,用于请求了解对端的链路状态;链路状态响应控制帧,用于指示下一个待发送的数据帧的frame id。
31.基于上述5种lrtf,给出以下几种应用场景。
32.第一种应用场景:假设a端作为发送端,b端作为接收端,基于上述的数据帧确认控制帧,该以太网链路级可靠传输的方法具体包括以下步骤:a端从本端的报文缓存中接收数据帧,在该数据帧中增加frame id字段,形成新的数据帧,将该新的数据帧进行缓存;其中,a端每发送一个以太网帧,frame id加1;同时,a端将该新的数据帧发送至本端的mac数据通路,以便通过本端的mac数据通路发送至b端。b端通过本端的mac数据通路接收到该数据帧后,从该数据帧中提取出frameid,并在删除该数据帧中frame id字段后,将该数据帧发送至本端的报文缓存;如果该整个数据帧没有错误,那么b端会生成携带有该frame id的数据帧确认控制帧并反馈至a端,a端接收到数据帧确认控制帧之后,将对应frame id的数据帧从缓存中释放。
33.第二种应用场景:假设a端作为发送端,b端作为接收端,基于上述的数据帧不确认控制帧,该以太网链路级可靠传输的方法与上述第一种应用场景的不同之处在于:b端接收到数据帧之后,如果该整个数据帧存在错误,即数据帧无法被正确接收(例如报文fcs错误,frameid错误、接收缓冲没有资源等原因都会造成数据帧无法被正确接收),则b端会进入重传状态(即不再接收后续的报文,直至接收到rfr之后才会退出重传状态),同时会生成携带有对应frame id(考虑到若b端接收的数据帧错误,那么此时该数据帧中的任意字段都可能是错误的,包括该数据帧中的frameid可能也是不可靠的,该frame id是指b端上一个正确接收的数据帧的frame id加1的值,而不从该错误的数据帧中所提取的)的数据帧不确认控制帧并反馈至a端,a端接收到数据帧不确认控制帧之后,立即停止发送当前数据帧,并从缓存中找到下一个待确认的数据帧(即数据帧不确认控制帧中对应frame id的数据帧)并重传。
34.需要说明的是,a端在重传之前,需向b端发送rfr,表示后续的报文是重传的报文。此外,如果a端此时正在发送新的数据帧,应该立即停止发送,但是应先将该新的数据帧进
行缓存,否则会造成数据帧丢失。
35.第三种应用场景:假设a端作为发送端,b端作为接收端,基于上述的从重传处重传控制帧,该以太网链路级可靠传输的方法与上述第二种应用场景的不同之处在于:a端在重传之前,向b端发送的是从重传处重传控制帧,而不是rfr。b端接收到该控制帧之后,退出重传状态,继续正常接收数据帧。
36.第四种应用场景:假设a端作为发送端,b端作为接收端,基于上述的链路状态请求报文和链路状态响应控制帧,该以太网链路级可靠传输的方法可以支持与传统以太网互连、支持bypass透传。具体为:在传统的mac控制器建链之后,a端应该主动发送一次lreq,请求b端的状态,b端根据自身链路状态决定是否向a端反馈lresp:对b端而言,如果b端没有工作在链路级可靠传输模式,b端不能够解析出a端的以太网帧为lreq,此时就会bypass所有的收发报文,也不会向a端回复lresp,反之,若b端工作在链路级可靠传输模式,b端同步frame id,并会向a端回复lresp。
37.相应的,对a端而言,若a端在一定时间(例如500ns)内没有接到b端回复的lresp,就会明白b端此时工作在传统以太网模式。反之,如果b端回复了lresp,那么表示b端工作在链路级可靠传输模式,并且同步frame id。
38.需要说明的是,lreq可通过配置寄存器进行手动发送,接收到对应的lresp也能够通过寄存器显示。
39.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种以太网链路级可靠传输的装置,其特征在于,在以太网控制器中设置有链路层可靠传输控制模块;所述链路层可靠传输控制模块包括frame id封装单元、发送选择单元、重传缓存单元、接收选择单元、lrtf处理与生成单元以及frame id检查和删除单元;lrtf是指自定义的链路层可靠传输控制帧;frame id封装单元,用于从报文缓存中接收数据帧,在该数据帧中增加frame id字段;其中,每发送一个以太网帧,frame id加1;发送选择单元,用于根据控制选择发送经过frame id封装单元封装后的数据帧、重传缓存单元中的数据帧或者lrtf处理与生成单元生成的lrtf至mac数据通路;重传缓存单元,用于缓存经frame id封装单元封装后的数据帧;接收选择单元,用于从mac数据通路中接收以太网帧,对该以太网帧进行解析:若为数据帧,则发送至frame id检查和删除单元;若为lrtf,则发送至lrtf处理与生成单元;lrtf处理与生成单元,用于解析接收的lrtf并根据控制生成相应的lrtf;frame id检查和删除单元,用于从接收的数据帧中提取出frame id,并在删除该数据帧中frame id字段后,将该数据帧发送至报文缓存。2.根据权利要求1所述的一种以太网链路级可靠传输的装置,其特征在于,所述lrtf包括数据帧确认控制帧、数据帧不确认控制帧、从重传处重传控制帧、链路状态请求报文以及链路状态响应控制帧;数据帧确认控制帧,用于指示对应frame id的数据帧已被正确接收;数据帧不确认控制帧,用于指示对应frame id的数据帧不能被正确接收;从重传处重传控制帧,用于指示其后续的以太网帧是从重传处开始重传的报文;链路状态请求报文,用于请求了解对端的链路状态;链路状态响应控制帧,用于响应链路状态请求报文。3.一种以太网链路级可靠传输的方法,其特征在于,所述方法包括:从本端的报文缓存中接收数据帧,在该数据帧中增加frame id字段,形成新的数据帧,将该新的数据帧进行缓存;其中,本端每发送一个以太网帧,frame id加1;将该新的数据帧发送至本端的mac数据通路,以便通过本端的mac数据通路发送至对端;通过本端的mac数据通路接收来自对端的以太网帧并解析;若解析得到该以太网帧为数据帧,则从该数据帧中提取出frame id,并在删除该数据帧中frame id字段后,将该数据帧发送至本端的报文缓存;然后在本端生成携带有该frame id的lrtf并反馈至对端,以供对端根据该lrtf的指示对该frame id对应的数据帧执行相应操作;lrtf是指自定义的链路层可靠传输控制帧。4.根据权利要求3所述的一种以太网链路级可靠传输的方法,其特征在于,还包括:若解析得到该以太网帧为lrtf,则解析接收的lrtf并根据控制生成相应的lrtf并反馈至对端。5.根据权利要求3或4所述的一种以太网链路级可靠传输的方法,其特征在于,包括:所述lrtf包括数据帧确认控制帧、数据帧不确认控制帧、从重传处重传控制帧、链路状态请求报文以及链路状态响应控制帧;数据帧确认控制帧,用于指示对应frame id的数据帧已被正确接收;
数据帧不确认控制帧,用于指示对应frame id的数据帧不能被正确接收;从重传处重传控制帧,用于指示其后续的以太网帧是从重传处开始重传的报文;链路状态请求报文,用于请求了解对端的链路状态;链路状态响应控制帧,用于指示下一个待发送的数据帧的frame id。6.根据权利要求5所述的一种以太网链路级可靠传输的方法,其特征在于,在本端生成携带有该frame id的lrtf并反馈至对端,以供对端根据该lrtf的指示对该frame id对应的数据帧执行相应操作,具体包括:若该lrtf为数据帧确认控制帧,对端则将该frame id对应的数据帧从缓存中释放;若该lrtf为数据帧不确认控制帧,则本端进入重传状态,并且对端停止发送当前数据帧,并从缓存中找到下一个待确认的数据帧并重传;若该lrtf为从重传处重传控制帧,则对端退出重传状态以继续接收后续的数据帧;若该lrtf为链路状态请求报文,则对端根据自身链路状态决定是否向本端反馈链路状态响应控制帧;若该lrtf为链路状态响应控制帧,则对端进行frame id的同步。

技术总结
本发明提供一种以太网链路级可靠传输的装置和方法。该装置在以太网控制器中设置有链路层可靠传输控制模块,包括Frame ID封装单元,用于从报文缓存中接收数据帧,在该数据帧中增加Frame ID字段;发送选择单元,用于根据控制选择发送封装后的数据帧、缓存中的数据帧或者LRTF至MAC数据通路;重传缓存单元,用于缓存封装后的数据帧;接收选择单元,用于从MAC数据通路中接收以太网帧进行解析:若为数据帧,则发送至Frame ID检查和删除单元;若为LRTF,则发送至LRTF处理与生成单元;LRTF处理与生成单元,用于解析接收的LRTF并根据控制生成相应的LRTF;Frame ID检查和删除单元,用于从接收的数据帧中提取出Frame ID,并在删除该数据帧中Frame ID字段后,将该数据帧发送至报文缓存。存。存。


技术研发人员:陈艇 吕平 沈剑良 张文建 刘冬培 张霞 李沛杰 董春雷 李智超 张丽
受保护的技术使用者:中国人民解放军战略支援部队信息工程大学
技术研发日:2023.05.06
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐