解析嵌入式Linux系统的双网卡大数据传输

2021-07-27 03:48丁择鑫
电子元器件与信息技术 2021年5期
关键词:传输数据传输速率网卡

丁择鑫

(甘肃紫光智能交通与控制技术有限公司,甘肃 兰州 730010)

0 引言

伴随我国互联网技术的不断发展,嵌入式装置正在从工业领域逐渐向普通人的日常生活转移。人们越来越依赖于使用大数据技术,同时对网络带宽的需求标准也提高了要求。但是普通嵌入式装置的网络传输速率仅仅为2至5Mbps,而这一传输速率无法达到实际要求,所以有必要探寻提高网络传输速率的方式[1]。嵌入式装置通常利用无线Wi-Fi、移动通信网络进行数据传输,不仅受带宽的约束,而且还受到网络堵塞、延迟等因素的影响,无法充分地发挥大数据技术的优势。基于此,本文将详细地阐述一项在嵌入式装置中运用的双网卡接入网络的方式,希望由此能提高嵌入式设备网络传输的效率。

1 硬件结构分析

相关的工作人员在应用C/S服务模式下开始测验分析,网络环境由路由器进行模拟,同时客户端则采用专门的嵌入式开发板。在此次测验中,路由器提供较为稳定的网络环境,服务器通过有线的形式接入路由,而嵌入式开发板的双网卡则各自利用有线以及无线Wi-Fi的形式接入路由。在本次测验中,嵌入式开发板各自采取两个网卡向服务器传输文件,通过比较单网卡以及双网卡的实际数据传输速率,由此核验双网卡在嵌入式装置中的传输作用。

2 软件结构分析

在本次测验中,其文件传导的流程是基于TCP/IP协议设置的,在研究前期,相关的工作人员直接采用数据报套接字以及UDP协议,然后各自从两处网卡传导相关的信息数据。在此之后,相关的工作人员要采取原始套接字的手段,这一手段即通过原始套接字,分别得到双网卡的硬件数据以及接口信息,接着再进一步构造及封装以太帧,同时再从数据链路层传输数据包。考虑到这一手段利用了UDP协议,在传输文件数据的过程中缺少安全性,所以,相关的工作人员务必要在应用层中增添明确数据、排序和重传等功能,从而提升传输文件信息的精准程度。

2.1 数据报套接字分析

套接字属于TCP/IP网络通信中的重要组成部分,一般都是利用套接字传输网络主机间的通信信息。而数据报套接字优先采取UDP数据报协议,从而给数据传输带来了一种无连接的服务项目。这一服务并不可以确保传输数据的安全可靠性,在传输期间,极易出现数据丢失或者重复的问题,同时也很难确保数据能够被按照既定次序来传输。但是UDP数据报套接字的优势就体现在其所占据的系统容量相对很少,协议封装字节不多,因此网络传输的速率较快[2]。

根据有关数据显示,在不同带宽情形之下,双网卡的传输速率基本和单网卡的基本一致。通过解析系统内网卡信息的传输量,不难看出,其中一个网卡的数据浮动和文件数据大小保持同步,而另一个网卡数据变化量则保持为零。相关的工作人员采取数据报套接字手段,而Linux系统则会依据系统路由表,智能化地选取优先等级较高的一个网卡传输信息。虽然选取了两个传输率差异较大的网卡,此时另一个优先等级较低的网卡在第一张网卡不可用的条件下方可运作;虽然调整了路由表,其信息也仅仅会由一处网卡传输信息。尽管部分工作人员采取bind函数绑定网卡,该函数仅仅将传输网卡的IP地址名称替换成地址,而不对网卡予以操作,这就很难让应用层完成对数据链路层硬件接口的读写工作。所以,相关的工作人员要采取另一种手段,即原始套接字。该手段的独特之处就在于其能够直接分析内核中获取到的全部IP数据报,进一步自行搭建网络帧,从而合理地选取网络接口传输出去。

2.2 原始套接字分析

最为普遍的网络编程即对应用层的报文展开相关的收发操作,而应用层的数据包均是通过系统给出的协议予以完成的,系统会协助使用者排除掉诸多无效且容易出现偏差的数据报文,人们只需要填写应用层报文方可,通过系统输入底层报文头,然后再依据系统路由表智能化地选取一个网卡传输信息。在本次测验中,相关的工作人员选取了更为底层的原始套接字,利用系统中网卡的实际情况自行选取适合的网卡传导信息。

2.3 明确数据包

UDP是一种无连接的数据报方式。因为UDP协议缺少一定的可靠性,所以在传输UDP的过程中,就要求应用层具备相应的确认机制。在本次测验中所采取的机制即:一旦服务器端获取到客户端传输的数据包,就可以得到数据包的包序号。服务器再把清晰的标记位以及包序号传输至客户端的网卡之上。一旦客户端获取到信息,就要在第一时间从传输队列内消除掉这一UDP包,如果没有获取到数据包,那么就要再次进行传输。为了确保文件可以较为顺利地传送至服务器,那么就要求设置客户端以及服务器间传输数据的格式[3]。

在最初传输数据信息的时候,要求相关的工作人员向服务器传输文件的大小及名称。在服务器获取到文件的有关数据后,就需要给客服端反馈确认,也就是要求客户端传输数据包。通常来说,数据包格式就涵括了基本的数据标识,这就说明所传输的内容即数据。同时还涵括了包序号以及数据内容,这就代表服务器可以依据包序号把信息内容纳入到既定的文件之中。在客户端获取到服务器所传输的确认包之后,就要求把传输队列内相应的包序号剔除掉,然后再继续添入新的包。而客户端以及服务器间传输数据包的活动就是通信的过程。

通信过程主要包括三个阶段:其一,客户端逐步传输文件数据到服务器之中,直至获取服务器对文件数据的确认包。其二,一旦客户端获取到相应的确认包后,接着再朝着服务器传输数据包;且一旦获取相应的确认包后,就在第一时间内删除数据包队列内的包。其三,一旦客户端传输队列空缺,那么就代表文件传输完成。

2.4 按网速进行分配

为了进一步提升系统运作的安全性,针对数据报,相关的工作人员要依据网卡网速分配传输任务,实现提升系统传输速率,由此达到网卡资源利用最大化的目的。所以在本次测验中,规范了网卡传输数据的方式。在传输文件期间,两个网卡各自调用了两个不同的线程,统一的数据包队列、规定数据包队列的顺序即包序号以及传输包的时长。一旦客户端获取服务器所反馈的接收确认包,此时就要求从队列内剔除掉对应的包序号,同时在队尾添入新的包,直至添完所有包。在数据包队列之中,相关的工作人员要加入数据包,同时要添入此数据包的创建时间,而且如果在既定周期内未收到确认包,那么就要再次传输这一数据包,直至收到且确认为止。若数据包队列长度为零,那么就说明文件传输完毕。不容忽视的是,在传输及获取最末端的数据包时,此时数据包的容量一般要少于最大传输单元,所以一旦服务器获取到末尾数据包,那么就要评判其的包序号,如果包序号属于最后一个数据包,那么只要求向文件内加入一定字节数的信息[4]。通常来说,数据包队列的格式指明了网卡在传输数据包队列期间的方式。若当前的位置标记为0,此时就要在第一时间向服务器传输本数据包,同时把它们标记设置为1,接着再登记好实际传输的时间,若当下位置标记是1,那么就说明这一数据包已经发送,不过还没有获取到确认的信息,此时就可以评判当下时间以及发送时间上的差值,若差值已经大于设定值,此时就要求再次传输这一数据包,同时要及时更新传输的时间。如下图1所示,网卡1以及网卡2各自采取了差异化的线程,而传输完当下数据包就去数据包队列内得到下一个亟待传输的数据包,由此保证网卡不会出现闲置的问题,而且也能够确保数据包发送是根据网卡的传输速率分配的,最终提升实际的网速[5]。

图1 数据包传输方式

3 结论

综上所述,在本次测验中,由于嵌入式装置要求大数据量的实时传导,相关的工作人员基于嵌入式Linux系统设计了双网卡传输系统。通过对系统属性等多方面地分析,发现这一技术高效地提高了网络传输的速率,处理了当下嵌入式设备传输速率还不太理想的问题,这对于大数据量的实时传输具有很强的现实价值,因而值得更大范围地推广及运用。

猜你喜欢
传输数据传输速率网卡
基于单片机的物联网传输数据高并发读写系统设计
基于SSL VPN实现安全共享疾控单位之间的数据
基于深度强化学习的物联网传输数据实时调度方法
三星利用5G毫米波 实现创纪录传输速率
苹果专利可采用光纤输出灯光并传输数据将光纤隐藏于车辆部件内
Server 2016网卡组合模式
跨山通信中频段选择与传输速率的分析
数据传输速率
挑战Killer网卡Realtek网游专用Dragon网卡
RHEL7 Network Teaming(网卡绑定)配置与测试