CN118353977A - Autosar协议栈的通信方法、装置、设备及车辆 - Google Patents
Autosar协议栈的通信方法、装置、设备及车辆 Download PDFInfo
- Publication number
- CN118353977A CN118353977A CN202310065657.5A CN202310065657A CN118353977A CN 118353977 A CN118353977 A CN 118353977A CN 202310065657 A CN202310065657 A CN 202310065657A CN 118353977 A CN118353977 A CN 118353977A
- Authority
- CN
- China
- Prior art keywords
- layer
- data
- tcp data
- tcp
- interface layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000004891 communication Methods 0.000 title claims abstract description 87
- 230000006870 function Effects 0.000 claims abstract description 237
- 230000005540 biological transmission Effects 0.000 claims abstract description 76
- 230000006978 adaptation Effects 0.000 claims abstract description 35
- 238000012790 confirmation Methods 0.000 claims description 41
- 238000012905 input function Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- AGCPZMJBXSCWQY-UHFFFAOYSA-N 1,1,2,3,4-pentachlorobutane Chemical compound ClCC(Cl)C(Cl)C(Cl)Cl AGCPZMJBXSCWQY-UHFFFAOYSA-N 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种AUTOSAR协议栈的通信方法、装置、设备及车辆,涉及车辆技术领域。协议栈包括依次通信连接的AUTOSAR适配层、传输层、IP层、虚拟接口层和网络接口层。该方法包括:依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据;在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层;通过TCPIP接口层将TCP数据传输至上层应用层。根据本申请实施例,无需用户主动调用各种函数接受新的连接或接收数据,能够改善bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。
Description
技术领域
本申请属于车辆技术领域,尤其涉及一种AUTOSAR协议栈的通信方法、装置、设备及车辆。
背景技术
随着车辆的发展,传统的车载网络技术无法满足当前业务传输的需求。因此,汽车行业联盟(Open Alliance)引入了车载以太网标准,可以提供高带宽、低延迟的传输性能,已被汽车厂商广泛地采纳与应用。
现有车载以太网中的网络协议栈,通常是以bsd套接字接口(socket api)方式适配汽车开放系统架构(Automotive Open System Architecture,AUTOSAR)标准。其中,bsdsocket是一种通用的网络接口,它不仅支持各种不同的网络类型,而且也是一种内部进程之间的通信机制。由于AUTOSAR标准对于传输控制协议(Transmission Control Protocol,TCP)/网际协议(Internet Protocol,IP)的需求与bsd socket api对于TCP/IP封装的不匹配,开发者需要使用bsd socket api进行部分冗余操作之后,才能完全符合AUTOSAR标准的要求。例如,基于bsd socket api的AUTOSAR标准,用户需要主动调用接受(accept)函数才能接受新的tcp连接,用户需要主动调用接收(recv)函数才能接收数据。
也就是说,相关技术中,由于基于bsd socket api方式实现的网络协议栈与AUTOSAR标准要求不匹配的问题,导致bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。
发明内容
本申请实施例提供一种AUTOSAR协议栈的通信方法、装置、设备及车辆,能够解决现有技术中存在的bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题,能够改善bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。
第一方面,本申请实施例提供一种AUTOSAR协议栈的通信方法,协议栈包括依次通信连接的上层应用层、TCPIP接口层、AUTOSAR适配层、传输层、IP层、虚拟接口层和网络接口层,AUTOSAR适配层包括第一接收回调函数,方法包括:
依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据;
在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层;
通过TCPIP接口层将TCP数据传输至上层应用层。
在一些可选的实施方式中,传输层包括输入函数,依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据之后,方法还包括:
在用户数据为UDP数据的情况下,通过输入函数查找UDP数据对应的目标协议控制块;
在查找到目标协议控制块的情况下,调用第二接收回调函数,将传输层中的UDP数据传输至AUTOSAR适配层,目标协议控制块包括第二接收回调函数;
依次通过AUTOSAR适配层和TCPIP接口层将UDP数据传输至上层应用层。
在一些可选的实施方式中,传输层包括接收函数和发送窗口,通过TCPIP接口层将TCP数据传输至上层应用层之后,方法还包括:
调用接收函数,更新发送窗口。
在一些可选的实施方式中,传输层还包括输出函数,调用接收函数,更新接收窗口之后,方法还包括:
调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据,第一确认字符数据用于表征服务器已成功接收到TCP数据。
在一些可选的实施方式中,传输层还包括接收窗口,调用接收函数,更新发送窗口之后,调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据之前,方法还包括:
调用接收函数,更新接收窗口。
在一些可选的实施方式中,传输层包括接收函数,调用输出函数,向客户端发送TCP数据和TCP数据对应的第一确认字符数据之前,方法还包括:
在存在部分TCP数据丢失的情况下,通过接收函数对部分TCP数据进行乱序到达处理,得到乱序到达处理后的TCP数据;
将乱序到达处理后的TCP数据和除部分TCP数据以外的其他TCP数据汇总成更新后的TCP数据;
调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据,包括:
调用输出函数,通过更新后的发送窗口向客户端发送更新后的TCP数据和更新后的TCP数据对应的第一确认字符数据。
在一些可选的实施方式中,传输层包括TCP状态机,在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层,包括:
将TCP状态机的当前状态更新为目标状态,目标状态为TCP数据的报文头中的标记位对应的状态;
在目标状态为打开连接状态,且TCP数据为数据类型的情况下,调用第一接收回调函数;
或者,在目标状态为打开连接状态,且TCP数据为确认字符类型的情况下,调用发送成功回调函数。
在一些可选的实施方式中,AUTOSAR适配层包括接受回调函数,依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据之前,方法还包括:
依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的握手信号;
在传输层包括第一协议控制块的情况下,依次通过IP层、虚拟接口层和网络接口层,向客户端发送握手信号和握手信号对应的第二确认字符数据,第二确认字符数据用于表征服务器已成功接收到握手信号;
在依次通过网络接口层、虚拟接口层、IP层和传输层,接收到客户端发送的第二确认字符数据的情况下,调用接受回调函数;
在接受回调函数内设置接收回调函数、轮询间隔和回调函数和出错回调函数。
在一些可选的实施方式中,调用接受回调函数之前,方法还包括:
在传输层创建第二协议控制块,第二协议控制块用于保存协议通信相关的上下文信息;
在传输层中第二协议控制块与TCP数据对应的IP地址和TCP数据对应的端口绑定,且第二协议控制块为监听状态的情况下,设置接受回调函数。
第二方面,本申请实施例提供一种AUTOSAR协议栈的通信方法,方法包括:
向服务器发送用户数据,用户数据用于指示服务器在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层。
在一些可选的实施方式中,向服务器发送用户数据之后,方法还包括:
接收服务器发送的第一确认字符数据,第一确认字符数据用于表征服务器已成功接收到TCP数据。
在一些可选的实施方式中,向服务器发送用户数据之前,方法还包括:
向服务器发送握手信号;
在接收到握手信号和第二确认字符数据的情况下,向服务器发送第二确认字符数据,第二确认字符数据用于表征服务器已成功接收到握手信号。
第三方面,本申请实施例提供一种AUTOSAR协议栈的通信装置,协议栈包括依次通信连接的上层应用层、TCPIP接口层、AUTOSAR适配层、传输层、IP层、虚拟接口层和网络接口层,AUTOSAR适配层包括第一接收回调函数,装置包括:
第一接收模块,用于依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据;
第一调用模块,用于在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层;
第一传输模块,用于通过TCPIP接口层将TCP数据传输至上层应用层。
第四方面,本申请实施例提供一种AUTOSAR协议栈的通信装置,装置包括:
第一发送模块,用于向服务器发送用户数据,用户数据用于指示服务器在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层。
第五方面,本申请实施例提供一种电子设备,电子设备包括处理器以及存储有计算机程序指令的存储器;
处理器读取并执行计算机程序指令,以实现如第一方面或第二方面的AUTOSAR协议栈的通信方法。
第六方面,本申请实施例提供一种车辆,包括至少以下一种:
如第三方面或第四方面的AUTOSAR协议栈的通信装置;
如第五方面的电子设备。
根据本申请实施例提供的AUTOSAR协议栈的通信方法、装置、设备及车辆,在依次通过网络接口层、虚拟接口层、IP层和传输层接收客户端发送的用户数据之后,在用户数据为TCP数据的情况下,服务器可以调用第一接收回调函数,将TCP数据传输至TCPIP接口层,进而可以将TCP数据传输至上层应用层。也就是说,本申请实施例通过回调函数的方式,服务器可以将TCP数据传输至TCPIP接口层,进而传输至上层应用层,无需用户主动调用各种函数接受新的连接或接收数据,能够改善bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的AUTOSAR协议栈的一种架构示意图;
图2是本申请实施例提供的AUTOSAR协议栈通信方法的一种交互示意图;
图3是本申请实施例提供的AUTOSAR协议栈的通信方法的一种流程示意图;
图4是本申请实施例提供的AUTOSAR协议栈的通信方法的另一种流程示意图;
图5是本申请实施例提供的AUTOSAR协议栈的通信装置的一种结构示意图;
图6是本申请实施例提供的AUTOSAR协议栈的通信装置的另一种结构示意图;
图7是本申请实施例提供的电子设备的实施例的结构示意图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面将对本申请的方案进行进一步描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但本申请还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本申请的一部分实施例,而不是全部的实施例。
图1是本申请实施例提供的AUTOSAR协议栈的一种架构示意图。
如图1所示,本申请实施例提供的协议栈10可以包括依次通信连接的上层应用层11、TCPIP接口层12、AUTOSAR适配层13、传输层14、IP层15、虚拟接口层16和网络接口层17。
示例性的,上层应用层11可以为SOAD,SOAD可以用于将基于回调(call-backbased)的软件体系结构与TCP/IP世界中的基于套接字(socket based)的通信处理解耦。SOAD的主要目的是在使用协议数据单元(Protocol Data Unit,PDU)的AUTOSAR通信服务模块和基于socket的TCP/IP堆栈之间创建一个接口。
示例性的,TCPIP接口层12可以包括mainfunc函数,mainfunc函数可以为AUTOSAR标准中所规范的TcpIp协议栈调度入口点。在本申请实施例的协议栈的实现中,mainfunc函数的作用可以为:定时调度TcpIp协议栈定时器,以及定时检测协议栈各发送队列是否有数据需要发送,如有则进行数据发送。
示例性的,AUTOSAR适配层13作用可以为封装符合AUTOSAR TCPIP标准功能需求的底层协议栈接口。
示例性的,传输层14的作用可以为传输数据发送请求等。
示例性的,IP层15的作用可以是处理来自传输层14的数据发送请求,处理接收的分组和处理网络的路由选择、流量控制与拥塞控制。
示例性的,虚拟接口层16和网络接口层17均可用于实现AUTOSAR标准中所规范的TCPIP接口。
为了解决现有技术中能够解决现有技术中存在的bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题,本申请实施例提供了一种AUTOSAR协议栈的通信方法、装置、设备及车辆。下面首先对本申请实施例所提供的AUTOSAR协议栈的通信方法进行介绍。
图2是本申请实施例提供的AUTOSAR协议栈通信方法的一种交互示意图。
如图2所示,本申请实施例提供的AUTOSAR协议栈的通信方法基于两个执行主体,分别是服务器(Server)和客户端。服务器和客户端通信连接。其中,客户端可以为远程客户端(Remote Client)。服务器可以包括依次通信连接的上层应用层、TCPIP接口层、AUTOSAR适配层、传输层、IP层、虚拟接口层和网络接口层。本申请实施例提供的AUTOSAR协议栈的通信方法可以包括以下S201至S204。
S201、客户端向服务器发送用户数据,用户数据用于指示服务器在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层。
用户数据可以包括传输控制协议(Transmission Control Protocol,TCP)数据和用户数据报协议数据(User Datagram Protocol,UDP)数据。
S202、服务器依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据。
示例性的,服务器可以通过网络接口层ethif、虚拟接口层netif->input函数、IP层的ip_input函数和传输层的tcp_input函数或udp_input函数,接收客户端发送的用户数据。其中,tcp_input函数用于接收TCP数据,udp_input函数用于接收UDP数据。
S203、服务器在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层。
示例性的,服务器在用户数据为TCP数据的情况下,调用第一接收回调函数tcp_recv_cb,将TCP数据传输至TCPIP接口层。
在一些可选的实施方式中,传输层可以包括输入函数,依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据之后,方法还可以包括:
在用户数据为UDP数据的情况下,通过输入函数查找UDP数据对应的目标协议控制块;
在查找到目标协议控制块的情况下,调用第二接收回调函数,将传输层中的UDP数据通过AUTOSAR适配层传输至TCPIP接口层,目标协议控制块包括第二接收回调函数;
通过TCPIP接口层将UDP数据传输至上层应用层。
在本实施方式中,在用户数据为UDP数据的情况下,通过输入函数查找UDP数据对应的目标协议控制块,在查找到目标协议控制块的情况下,可以通过调用第二接收回调函数,直接将UDP数据通过AUTOSAR适配层传输至TCPIP接口层,进而可以通过TCPIP接口层将UDP数据传输至上层应用层,无需将UDP数据进行缓存,能够减少缓存操作,提高UDP数据发送的效率。
目标协议控制块(PCB)可以用于保存UDP协议通信相关的上下文信息,上下文信息可以为上层应用层的目标线程的前一个线程或后一个线程,或者为上层应用层的目标进程的前一个进程或后一个进程。进程可以理解为资源分配的最小单位,线程可以理解为程序执行的最小单位,一个进程可以包括多个线程。目标线程可以为用户选择的线程。目标进程可以为用户选择的进程。
输入函数可以用于查找UDP数据对应的目标协议控制块。
第二接收回调函数可以为UDP数据对应的接收回调函数,可以用于通知AUTOSAR适配层进行UDP数据接收处理。
示例性的,传输层包括的输入函数可以为udp_input函数。在用户数据为UDP数据的情况下,服务器可以通过udp_input函数查找UDP数据对应的目标协议控制块PCB1。在服务器查找到目标协议控制块PCB1的情况下,可以调用第二接收回调函数udp_recv_cb,将传输层中的UDP数据传输至AUTOSAR适配层,然后调用AUTOSAR适配层中的接收回调函数将AUTOSAR适配层中的UDP数据传输至TCPIP接口层,再通过TCPIP接口层中的接收回调函数将UDP数据传输至上层应用层SOAD。其中,AUTOSAR适配层中的接收回调函数可以用于通知TCPIP接口层进行UDP数据接收处理,TCPIP接口层中的接收回调函数可以用于通知上层应用层SOAD进行UDP数据接收处理。
在另一些可选的实施方式中,在未查找到目标协议控制块的情况下,服务器输出错误信息。错误信息可以用于指示未查找到目标协议控制块。服务器输出错误信息的方式可以是语音播报和文字显示中的至少一种。
S204、服务器通过TCPIP接口层将TCP数据传输至上层应用层。
示例性的,服务器可以通过TCPIP接口层中的mainfunc函数将TCP数据传输至上层应用层SOAD。
根据本申请实施例提供的AUTOSAR协议栈的通信方法,在依次通过网络接口层、虚拟接口层、IP层和传输层接收客户端发送的用户数据之后,在用户数据为TCP数据的情况下,可以调用第一接收回调函数,将TCP数据传输至TCPIP接口层,进而可以将TCP数据传输至上层应用层。也就是说,本申请实施例通过回调函数的方式,可以将TCP数据传输至TCPIP接口层,进而传输至上层应用层,无需用户主动调用各种函数接受新的连接或接收数据,能够改善bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。
在一些可选的实施方式中,传输层可以包括接收函数和发送窗口,服务器通过TCPIP接口层将TCP数据传输至上层应用层之后,方法还包括:
服务器调用接收函数,更新发送窗口。
在本实施方式中,通过服务器调用接收函数,更新发送窗口,能够将发送窗口设置为较佳状态,提高发送窗口的数据输出效果。
接收函数可以是能够从与服务器连接的客户端接收数据的函数,可以用于更新接收窗口。
接收窗口可以为用于接收TCP数据和/或确认字符(Acknowledgement,ACK)数据的窗口。
更新接收窗口可以包括增大接收窗口的大小和减少接收窗口的大小。更新接收窗口具体为增大接收窗口的大小还是接收窗口的大小,可以取决于服务器向客户端接收的TCP数据和/或TCP数据对应的第一确认字符数据的大小,以及服务器需要是否接收TCP数据和/或确认字符数据。例如,在服务器向客户端接收的TCP数据和TCP数据对应的第一确认字符数据较大的情况下,可以增大接收窗口的大小。又例如,在服务器接收到数据,且预设时间段内无需再接收数据的情况下,可以减少接收窗口的大小。
示例性的,传输层包括的接收函数可以为tcp_recv函数,服务器可以通过调用tcp_recv函数,减小接收窗口。
在一些可选的实施方式中,传输层还可以包括输出函数,服务器调用接收函数,更新接收窗口之后,方法还可以包括:
服务器调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据,第一确认字符数据用于表征服务器已成功接收到TCP数据;
客户端接收第一确认字符数据。
在本实施方式中,通过服务器调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据,能够通知客户端服务器已成功接收到客户端发送的用户数据。
输出函数可以是能够向与服务器连接的客户端输出数据的函数,可以用于向客户端发送TCP数据和TCP数据对应的第一确认字符数据。
第一确认字符数据可以用于表征服务器已成功接收到客户端发送的TCP数据。
示例性的,传输层包括的输出函数可以是tcp_output函数。服务器可以调用tcp_output函数,向客户端发送TCP数据和TCP数据对应的第一确认字符数据2。客户端接收第一确认字符数据2之后,向服务器发送第一确认字符数据2。
在一些可选的实施方式中,传输层还可以包括接收窗口,服务器调用接收函数,更新发送窗口之后,服务器调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据之前,方法还可以包括:
服务器调用接收函数,更新接收窗口;
在本实施方式中,通过服务器调用接收函数,更新接收窗口,能够将接收窗口设置为较佳状态,提高接收窗口的数据输出效果。
接收函数还可以用于更新接收窗口。
发送窗口可以为用于发送TCP数据和/或确认字符(Acknowledgement,ACK)数据的窗口。
更新发送窗口可以包括增大发送窗口的大小和减少发送窗口的大小。更新发送窗口具体为增大发送窗口的大小还是减少发送窗口的大小,可以取决于服务器向客户端发送的TCP数据和/或TCP数据对应的第一确认字符数据的大小,以及服务器是否需要发送TCP数据和/或确认字符数据。例如,在服务器向客户端发送的TCP数据和/或TCP数据对应的第一确认字符数据的大小较小的情况下,服务器可以减少发送窗口的大小。又例如,在服务器需要发送TCP数据和/或确认字符数据的情况下,服务器可以增大发送窗口的大小。
示例性的,传输层包括的接收函数可以为tcp_recv函数。服务器向客户端发送TCP数据和TCP数据对应的第一确认字符数据2之前,服务器可以调用接收函数tcp_recv函数,增大发送接收窗口。
在一些可选的实施方式中,服务器调用输出函数,向客户端发送TCP数据和TCP数据对应的第一确认字符数据之前,方法还可以包括:
在存在部分TCP数据丢失的情况下,服务器通过接收函数对TCP数据进行乱序到达处理,得到乱序到达处理后的TCP数据;
将乱序到达处理后的TCP数据和除部分TCP数据以外的其他TCP数据汇总成更新后的TCP数据;
调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据,包括:
调用输出函数,通过更新后的发送窗口向客户端发送更新后的TCP数据和更新后的TCP数据对应的第一确认字符数据。
在本实施方式中,在存在部分TCP数据丢失的情况下,服务器通过接收函数对TCP数据进行乱序到达处理,能够提高TCP数据的准确性和完整性。
乱序到达处理可以为,服务器在接收到乱序到达的TCP数据之后,对接收到的TCP数据进行重新排列。在重新排列后,如果存在部分TCP数据丢失,则服务器可以向客户端发送选择性确认(Selective Acknowledgement,SACK)数据,客户端接收到SACK数据后,重新向服务器发送丢失的部分TCP数据。服务器在接收到丢失的部分TCP数据之后,对前一次接收的TCP数据和后一次接收的丢失的部分TCP数据进行乱序归并,得到按序排列的TCP数据。
服务器使用SACK数据可以告知客户端收到了哪些TCP数据,客户端收到后就会知道哪些TCP数据丢失,然后立即重传丢失的部分TCP数据。
在一些可选的实施方式中,传输层可以包括TCP状态机,服务器在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层,可以包括:
服务器将TCP状态机的当前状态更新为目标状态,目标状态为TCP数据的报文头中的标记位对应的状态;
服务器在目标状态为打开连接状态,且TCP数据为数据类型的情况下,调用第一接收回调函数;
或者,服务器在目标状态为打开连接状态,且TCP数据为确认字符类型的情况下,调用发送成功回调函数。
在本实施方式中,服务器在目标状态为打开连接状态,且TCP数据为数据类型的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层。或者,服务器在目标状态为打开连接状态,且TCP数据为确认字符类型的情况下,调用发送成功回调函数,无需用户主动调用函数接收数据,能够改善bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。
TCP状态机的状态可以包括监听状态(LISTEN)、等待连接状态(SYN-SENT)、等待连接确认状态(SYN-RECVD)、打开连接状态(ESTABLISHED)、等待请求状态(FIN-WAIT-1)、第一等待连接中断请求状态(FIN-WAIT-2)、第二等待连接中断请求状态(CLOSE-WAIT)、第一等待连接中断确认状态(CLOSING)、第二等待连接中断请求确认状态(LAST-ACK)、第二等待连接中断请求确认状态(TIME-WAIT)、及关闭状态(CLOSED)。
其中,监听状态可以用于监听来自远方的TCP端口的连接请求;等待连接状态可以用于在发送连接请求后等待匹配的连接请求;等待连接确认状态可以用于在收到和发送一个连接请求后等待对方对连接请求的确认;打开连接状态可以用于代表一个打开的连接;等待请求状态可以用于等待远程TCP连接中断请求,或先前的连接中断请求的确认;第一等待连接中断请求状态可以用于从远程TCP等待连接中断请求;第二等待连接中断请求状态可以用于等待从本地用户发来的连接中断请求;第一等待连接中断确认状态可以用于等待远程TCP对连接中断的确认;第二等待连接中断请求确认状态可以用于等待原来的发向远程TCP的连接中断请求的确认;第二等待连接中断请求确认状态可以用于等待足够的时间以确保远程TCP接收到连接中断请求的确认;关闭状态可以用于关闭TCP状态机。
TCP状态机的当前状态可以为上述状态中的任意一个。目标状态也可以为上述状态中的任意一个。
示例性的,当连接状态为打开连接状态(ESTABLISHED)时,该连接可进行数据收发,TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到服务器的包的按序接收。然后服务器对已成功收到的包发回一个相应的确认字符数据。服务器中存储有TCP数据的报文头中的标记位与TCP状态机的状态之间的关系。例如,FLAG=1时,对应的TCP状态机的状态可以为监听状态,FLAG=2时,对应的TCP状态机的状态可以为等待连接状态,等等。
在调用第一接收回调函数或者调用发送成功回调函数之前,还可以解析TCP数据,以确定TCP数据对应的类型。TCP数据对应的类型包括数据类型或确认字符类型。TCP数据为数据类型,可以理解为TCP数据包括data数据。TCP数据为确认字符类型,可以理解为TCP数据包括ack报文。
第一接收回调函数可以是TCP数据对应的接收回调函数。回调函数可以理解为被作为参数传递的函数。也就是说,回调函数就是允许用户把需要调用的函数的指针作为参数传递给一个函数。
发送成功回调函数可以是用于表征TCP数据已经成功发送至客户端的回调函数。例如,发送成功回调函数可以是TCP_sent函数。
可选地,在目标状态不为打开连接状态的情况下,不进行任何操作。
在一些可选的实施方式中,AUTOSAR适配层可以包括接受回调函数,服务器依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据之前,方法还可以包括:
服务器依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的握手信号;
服务器在传输层包括第一协议控制块的情况下,依次通过IP层、虚拟接口层和网络接口层,向客户端发送握手信号和握手信号对应的第二确认字符数据,第二确认字符数据用于表征服务器已成功接收到握手信号;
客户端在接收到握手信号和第二确认字符数据的情况下,向服务器发送第二确认字符数据;
服务器在依次通过网络接口层、虚拟接口层、IP层和传输层,接收到客户端发送的第二确认字符数据的情况下,调用接受回调函数;
服务器在接受回调函数内设置接收回调函数、轮询间隔和回调函数和出错回调函数。
在本实施方式中,通过服务器和客户端之间的三次握手操作,能够建立客户端与服务器之间的连接,为后续客户端和服务器之间的通信提供基础。服务器在接收到客户端发送的第二确认字符数据的情况下,调用接受回调函数,能够主动通知上层应用层客户端和服务器之间已成功建立通信,无需用户主动调用函数查询,能够改善bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。此外,服务器在接受回调函数内设置接收回调函数、轮询间隔和回调函数和出错回调函数,能够为后续调用接收回调函数、轮询间隔和回调函数和出错回调函数提供基础。
握手信号(synchronize,SYN)可以是TCP/IP建立连接时使用的信号。
第二确认字符数据(Acknowledgement,ACK),可以用于表征服务器已成功接收到ACK确认号前面的握手信号。第二确认字符数据的字段长度可以为32位。
作为一个示例,服务器可以在接受回调函数tcp_accept内设置接收回调函数tcp_recv、轮询间隔和回调函数tcp_poll和出错回调函数tcp_err。
作为另一个示例,服务器可以在接受回调函数udp_accept内设置接收回调函数udp_recv、轮询间隔和回调函数udp_poll和出错回调函数udp_err。
在一些可选的实施方式中,服务器调用接受回调函数之前,方法还可以包括:
在传输层创建第二协议控制块,第二协议控制块用于保存协议通信相关的上下文信息;
在传输层中第二协议控制块与TCP数据对应的IP地址和TCP数据对应的端口绑定,且第二协议控制块为监听状态的情况下,设置接受回调函数。
在本实施方式中,服务器在传输层中第二协议控制块与TCP数据对应的IP地址和TCP数据对应的端口绑定,且第二协议控制块为监听状态的情况下,设置接受回调函数,为后续在接受回调函数中设置接收回调函数等奠定基础。
示例性地,第二协议控制块可以用于保存UDP协议通信相关的上下文信息。
端口可以包括端口标识,端口标识可以为端口号。端口可以用一个16位端口号进行标志。端口号只具有本地意义,即,端口号只是为了标志本计算机应用层中的各进程。
请参阅图3,图3是本申请实施例提供的AUTOSAR协议栈的通信方法的一种流程示意图。
如图3所示,AUTOSAR协议栈的通信方法的执行主体可以为服务器,服务器的协议栈可以包括依次通信连接的上层应用层、TCPIP接口层、AUTOSAR适配层、传输层、IP层、虚拟接口层和网络接口层,AUTOSAR适配层包括第一接收回调函数,该方法可以包括S301至S303。
S301、依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据。
S302、在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层。
S303、通过TCPIP接口层将TCP数据传输至上层应用层。
根据本申请实施例提供的AUTOSAR协议栈的通信方法,在依次通过网络接口层、虚拟接口层、IP层和传输层接收客户端发送的用户数据之后,在用户数据为TCP数据的情况下,服务器可以调用第一接收回调函数,将TCP数据传输至TCPIP接口层,进而可以将TCP数据传输至上层应用层。也就是说,本申请实施例通过回调函数的方式,服务器可以将TCP数据传输至TCPIP接口层,进而传输至上层应用层,无需用户主动调用各种函数接受新的连接或接收数据,能够改善bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。
在一些可选的实施方式中,传输层包括输入函数,依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据之后,方法还可以包括:
在用户数据为UDP数据的情况下,通过输入函数查找UDP数据对应的目标协议控制块;
在查找到目标协议控制块的情况下,调用第二接收回调函数,将传输层中的UDP数据传输至AUTOSAR适配层,目标协议控制块包括第二接收回调函数;
依次通过AUTOSAR适配层和TCPIP接口层将UDP数据传输至上层应用层。
在一些可选的实施方式中,传输层包括接收函数和发送窗口,通过TCPIP接口层将TCP数据传输至上层应用层之后,方法还可以包括:
调用接收函数,更新发送窗口。
在一些可选的实施方式中,传输层还包括输出函数,调用接收函数,更新接收窗口之后,方法还可以包括:
调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据,第一确认字符数据用于表征服务器已成功接收到TCP数据。
在一些可选的实施方式中,传输层还包括接收窗口,调用接收函数,更新发送窗口之后,调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据之前,方法还可以包括:
调用接收函数,更新接收窗口。
在一些可选的实施方式中,传输层包括接收函数,调用输出函数,向客户端发送TCP数据和TCP数据对应的第一确认字符数据之前,方法还可以包括:
在存在部分TCP数据丢失的情况下,通过接收函数对部分TCP数据进行乱序到达处理;得到乱序到达处理后的TCP数据;
将乱序到达处理后的TCP数据和除部分TCP数据以外的其他TCP数据汇总成更新后的TCP数据;
调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据,包括:
调用输出函数,通过更新后的发送窗口向客户端发送更新后的TCP数据和更新后的TCP数据对应的第一确认字符数据。
在一些可选的实施方式中,传输层包括TCP状态机,在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层,可以包括:
将TCP状态机的当前状态更新为目标状态,目标状态为TCP数据的报文头中的标记位对应的状态;
在目标状态为打开连接状态,且TCP数据为数据类型的情况下,调用第一接收回调函数;
或者,在目标状态为打开连接状态,且TCP数据为确认字符类型的情况下,调用发送成功回调函数。
在一些可选的实施方式中,AUTOSAR适配层包括接受回调函数,依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据之前,方法还可以包括:
依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的握手信号;
在传输层包括第一协议控制块的情况下,依次通过IP层、虚拟接口层和网络接口层,向客户端发送握手信号和握手信号对应的第二确认字符数据,第二确认字符数据用于表征服务器已成功接收到握手信号;
在依次通过网络接口层、虚拟接口层、IP层和传输层,接收到客户端发送的第二确认字符数据的情况下,调用接受回调函数;
在接受回调函数内设置接收回调函数、轮询间隔和回调函数和出错回调函数。
在一些可选的实施方式中,调用接受回调函数之前,方法还可以包括:
在传输层创建第二协议控制块,第二协议控制块用于保存协议通信相关的上下文信息;
在传输层中第二协议控制块与TCP数据对应的IP地址和TCP数据对应的端口绑定,且第二协议控制块为监听状态的情况下,设置接受回调函数。
请参阅图4,图4是本申请实施例提供的AUTOSAR协议栈的通信方法的另一种流程示意图。
如图4所示,AUTOSAR协议栈的通信方法的执行主体可以为客户端,该方法可以包括S401。
S401、向服务器发送用户数据,用户数据用于指示服务器在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层。
根据本申请实施例提供的AUTOSAR协议栈的通信方法,在依次通过网络接口层、虚拟接口层、IP层和传输层接收客户端发送的用户数据之后,在用户数据为TCP数据的情况下,服务器可以调用第一接收回调函数,将TCP数据传输至TCPIP接口层,进而可以将TCP数据传输至上层应用层。也就是说,本申请实施例通过回调函数的方式,服务器可以将TCP数据传输至TCPIP接口层,进而传输至上层应用层,无需用户主动调用各种函数接受新的连接或接收数据,能够改善bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。
在一些可选的实施方式中,向服务器发送用户数据之后,方法还包括:
接收服务器发送的第一确认字符数据,第一确认字符数据用于表征服务器已成功接收到TCP数据。
在一些可选的实施方式中,向服务器发送用户数据之前,方法还包括:
向服务器发送握手信号;
在接收到握手信号和第二确认字符数据的情况下,向服务器发送第二确认字符数据,第二确认字符数据用于表征服务器已成功接收到握手信号。
基于与上述AUTOSAR协议栈的通信方法相同的发明构思,本申请实施例还提供两种AUTOSAR协议栈的通信装置。以下对AUTOSAR协议栈的通信装置进行详细介绍。
图5是本申请提供的AUTOSAR协议栈的通信装置的实施例的一种结构示意图。
如图5所示,本申请实施例提供的AUTOSAR协议栈的通信装置,可以应用于服务器,服务器的协议栈包括依次通信连接的上层应用层、TCPIP接口层、AUTOSAR适配层、传输层、IP层、虚拟接口层和网络接口层,AUTOSAR适配层包括第一接收回调函数,装置包括:
第一接收模块510依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的用户数据;
第一调用模块520在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层;
第一传输模块530通过TCPIP接口层将TCP数据传输至上层应用层。
根据本申请实施例提供的AUTOSAR协议栈的通信装置,在依次通过网络接口层、虚拟接口层、IP层和传输层接收客户端发送的用户数据之后,在用户数据为TCP数据的情况下,服务器可以调用第一接收回调函数,将TCP数据传输至TCPIP接口层,进而可以将TCP数据传输至上层应用层。也就是说,本申请实施例通过回调函数的方式,服务器可以将TCP数据传输至TCPIP接口层,进而传输至上层应用层,无需用户主动调用各种函数接受新的连接或接收数据,能够改善bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。
在一些可选的实施方式中,传输层包括输入函数,AUTOSAR协议栈的通信装置,还可以包括:
查找模块,用于在用户数据为UDP数据的情况下,通过输入函数查找UDP数据对应的目标协议控制块;
第二调用模块,用于在查找到目标协议控制块的情况下,调用第二接收回调函数,将传输层中的UDP数据传输至TCPIP接口层,目标协议控制块包括第二接收回调函数;
第二传输模块,用于依次通过AUTOSAR适配层和TCPIP接口层将UDP数据传输至上层应用层。
在一些可选的实施方式中,传输层包括接收函数和发送窗口,AUTOSAR协议栈的通信装置,还可以包括:
第一更新模块,用于调用接收函数,更新发送窗口。
在一些可选的实施方式中,传输层还包括输出函数,AUTOSAR协议栈的通信装置,还可以包括:
第三调用模块,用于调用输出函数,通过更新后的发送窗口向客户端发送TCP数据和TCP数据对应的第一确认字符数据,第一确认字符数据用于表征服务器已成功接收到TCP数据。
在一些可选的实施方式中,传输层还包括接收窗口,AUTOSAR协议栈的通信装置,还可以包括:
第二更新模块,用于调用接收函数,更新接收窗口。
在一些可选的实施方式中,传输层包括接收函数,AUTOSAR协议栈的通信装置,还可以包括:
处理模块,用于在存在部分TCP数据丢失的情况下,通过接收函数对部分TCP数据进行乱序到达处理,得到乱序到达处理后的TCP数据;
汇总模块,用于将乱序到达处理后的TCP数据和除部分TCP数据以外的其他TCP数据汇总成更新后的TCP数据;
第三调用模块,具体用于:
调用输出函数,通过更新后的发送窗口向客户端发送更新后的TCP数据和更新后的TCP数据对应的第一确认字符数据。
在一些可选的实施方式中,传输层包括TCP状态机,第一传输模块,可以包括:
更新子模块,用于将TCP状态机的当前状态更新为目标状态,目标状态为TCP数据的报文头中的标记位对应的状态;
调用子模块,用于在目标状态为打开连接状态,且TCP数据为数据类型的情况下,调用第一接收回调函数;
或者,调用子模块,还用于在目标状态为打开连接状态,且TCP数据为确认字符类型的情况下,调用发送成功回调函数。
在一些可选的实施方式中,AUTOSAR适配层包括接受回调函数,AUTOSAR协议栈的通信装置,还可以包括:
第二接收模块,用于依次通过网络接口层、虚拟接口层、IP层和传输层,接收客户端发送的握手信号;
第二发送模块,用于在传输层包括第一协议控制块的情况下,依次通过IP层、虚拟接口层和网络接口层,向客户端发送握手信号和握手信号对应的第二确认字符数据,第二确认字符数据用于表征服务器已成功接收到握手信号;
第三接收模块,用于在依次通过网络接口层、虚拟接口层、IP层和传输层,接收到客户端发送的第二确认字符数据的情况下,调用接受回调函数;
第一设置模块,用于在接受回调函数内设置接收回调函数、轮询间隔和回调函数和出错回调函数。
在一些可选的实施方式中,AUTOSAR协议栈的通信装置,还可以包括:
创建模块,用于在传输层创建第二协议控制块,第二协议控制块用于保存协议通信相关的上下文信息;
第二设置模块,用于在传输层中第二协议控制块与地址和端口绑定的情况下,设置接受回调函数。
在一些可选的实施方式中,第二设置模块,可以具体用于:
在传输层中第二协议控制块与TCP数据对应的IP地址和TCP数据对应的端口绑定,且第二协议控制块为监听状态的情况下,设置接受回调函数。
关于上述实施例中的AUTOSAR协议栈的通信装置,其中各个模块执行操作的具体方式以及有益效果已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是本申请提供的AUTOSAR协议栈的通信装置的实施例的另一种结构示意图。
如图6所示,本申请实施例提供的AUTOSAR协议栈的通信装置,可以应用于客户端,AUTOSAR协议栈的通信装置可以包括第一发送模块610。
第一发送模块610,可以用于向服务器发送用户数据,用户数据用于指示服务器在用户数据为TCP数据的情况下,调用第一接收回调函数,将TCP数据传输至TCPIP接口层。
根据本申请实施例提供的AUTOSAR协议栈的通信装置,在依次通过网络接口层、虚拟接口层、IP层和传输层接收客户端发送的用户数据之后,在用户数据为TCP数据的情况下,可以调用第一接收回调函数,将TCP数据传输至TCPIP接口层,进而可以将TCP数据传输至上层应用层。也就是说,本申请实施例通过回调函数的方式,可以将TCP数据传输至TCPIP接口层,进而传输至上层应用层,无需用户主动调用各种函数接受新的连接或接收数据,能够改善bsd socket api方式的协议栈在车载以太网场景下存在冗余操作的问题。
在一些可选的实施方式中,AUTOSAR协议栈的通信装置,还可以包括:
第四接收模块,用于接收服务器发送的第一确认字符数据,第一确认字符数据用于表征服务器已成功接收到TCP数据。
在一些可选的实施方式中,AUTOSAR协议栈的通信装置,还可以包括:
第三发送模块,用于向服务器发送握手信号;
第四发送模块,用于在接收到握手信号和第二确认字符数据的情况下,向服务器发送第二确认字符数据,第二确认字符数据用于表征服务器已成功接收到握手信号。
关于上述实施例中的AUTOSAR协议栈的通信装置,其中各个模块执行操作的具体方式以及有益效果已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7示出了本申请实施例提供的电子设备的硬件结构示意图。
在电子设备可以包括处理器701以及存储有计算机程序指令的存储器702。
具体地,上述处理器701可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器702可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器702可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器702可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器702可在综合网关容灾设备的内部或外部。在特定实施例中,存储器702是非易失性固态存储器。
存储器可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)计算机可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本申请的一方面的方法所描述的操作。
处理器701通过读取并执行存储器702中存储的计算机程序指令,以实现上述实施例中的任意一种AUTOSAR协议栈的通信方法。
在一个示例中,电子设备还可包括通信接口703和总线710。其中,如图7所示,处理器701、存储器702、通信接口703通过总线710连接并完成相互间的通信。
通信接口703,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线710包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线710可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的AUTOSAR协议栈的通信方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本申请实施例提供的AUTOSAR协议栈的通信方法。
本申请实施例还提供一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行如本申请实施例提供的AUTOSAR协议栈的通信方法。
本申请实施例还提供一种车辆,车辆可以包括以下至少一种:
上述AUTOSAR协议栈的通信装置;
上述电子设备。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需命令的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本申请的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程AUTOSAR协议栈的通信装置的处理器,以产生一种机器,使得经由计算机或其它可编程AUTOSAR协议栈的通信装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (16)
1.一种AUTOSAR协议栈的通信方法,其特征在于,协议栈包括依次通信连接的上层应用层、TCPIP接口层、AUTOSAR适配层、传输层、IP层、虚拟接口层和网络接口层,所述AUTOSAR适配层包括第一接收回调函数,所述方法包括:
依次通过所述网络接口层、所述虚拟接口层、所述IP层和所述传输层,接收客户端发送的用户数据;
在所述用户数据为TCP数据的情况下,调用所述第一接收回调函数,将所述TCP数据传输至所述TCPIP接口层;
通过所述TCPIP接口层将所述TCP数据传输至所述上层应用层。
2.如权利要求1所述的方法,其特征在于,所述传输层包括输入函数,所述依次通过所述网络接口层、所述虚拟接口层、所述IP层和所述传输层,接收客户端发送的用户数据之后,所述方法还包括:
在所述用户数据为UDP数据的情况下,通过所述输入函数查找所述UDP数据对应的目标协议控制块;
在查找到所述目标协议控制块的情况下,调用第二接收回调函数,将所述传输层中的所述UDP数据传输至所述AUTOSAR适配层,所述目标协议控制块包括所述第二接收回调函数;
依次通过所述AUTOSAR适配层和所述TCPIP接口层将所述UDP数据传输至所述上层应用层。
3.如权利要求1所述的方法,其特征在于,所述传输层包括接收函数和发送窗口,所述通过所述TCPIP接口层将所述TCP数据传输至所述上层应用层之后,所述方法还包括:
调用所述接收函数,更新所述发送窗口。
4.如权利要求3所述的方法,其特征在于,所述传输层还包括输出函数,所述调用所述接收函数,更新发送窗口之后,所述方法还包括:
调用所述输出函数,通过更新后的发送窗口向所述客户端发送所述TCP数据和所述TCP数据对应的第一确认字符数据,所述第一确认字符数据用于表征服务器已成功接收到所述TCP数据。
5.如权利要求4所述的方法,其特征在于,所述传输层还包括接收窗口,所述调用所述接收函数,更新发送窗口之后,所述通过更新后的发送窗口向所述客户端发送所述TCP数据和所述TCP数据对应的第一确认字符数据之前,所述方法还包括:
调用所述接收函数,更新所述接收窗口。
6.如权利要求4所述的方法,其特征在于,所述调用所述输出函数,向所述客户端发送所述TCP数据和所述TCP数据对应的第一确认字符数据之前,所述方法还包括:
在存在部分TCP数据丢失的情况下,通过所述接收函数对所述部分TCP数据进行乱序到达处理,得到乱序到达处理后的TCP数据;
将乱序到达处理后的TCP数据和除所述部分TCP数据以外的其他TCP数据汇总成更新后的TCP数据;
所述调用所述输出函数,通过更新后的发送窗口向所述客户端发送所述TCP数据和所述TCP数据对应的第一确认字符数据,包括:
调用所述输出函数,通过更新后的发送窗口向所述客户端发送所述更新后的TCP数据和所述更新后的TCP数据对应的第一确认字符数据。
7.如权利要求1所述的方法,其特征在于,所述传输层包括TCP状态机,所述在所述用户数据为TCP数据的情况下,所述调用所述第一接收回调函数,将所述TCP数据传输至所述TCPIP接口层,包括:
将所述TCP状态机的当前状态更新为目标状态,所述目标状态为所述TCP数据的报文头中的标记位对应的状态;
在所述目标状态为打开连接状态,且所述TCP数据为数据类型的情况下,调用所述第一接收回调函数;
或者,在所述目标状态为打开连接状态,且所述TCP数据为确认字符类型的情况下,调用所述发送成功回调函数。
8.如权利要求1所述的方法,其特征在于,所述AUTOSAR适配层包括接受回调函数,所述依次通过所述网络接口层、所述虚拟接口层、所述IP层和所述传输层,接收客户端发送的用户数据之前,所述方法还包括:
依次通过所述网络接口层、所述虚拟接口层、所述IP层和所述传输层,接收客户端发送的握手信号;
在所述传输层包括第一协议控制块的情况下,依次通过所述IP层、所述虚拟接口层和所述网络接口层,向所述客户端发送所述握手信号和所述握手信号对应的第二确认字符数据,所述第二确认字符数据用于表征服务器已成功接收到所述握手信号;
在依次通过所述网络接口层、所述虚拟接口层、所述IP层和所述传输层,接收到所述客户端发送的所述第二确认字符数据的情况下,调用所述接受回调函数;
在所述接受回调函数内设置接收回调函数、轮询间隔和回调函数和出错回调函数。
9.如权利要求8所述的方法,其特征在于,所述调用所述接受回调函数之前,所述方法还包括:
在所述传输层创建第二协议控制块,所述第二协议控制块用于保存协议通信相关的上下文信息;
在所述传输层中所述第二协议控制块与所述TCP数据对应的IP地址和所述TCP数据对应的端口绑定,且所述第二协议控制块为监听状态的情况下,设置接受回调函数。
10.一种AUTOSAR协议栈的通信方法,其特征在于,所述方法包括:
向服务器发送用户数据,所述用户数据用于指示所述服务器在所述用户数据为TCP数据的情况下,调用第一接收回调函数,将所述TCP数据传输至TCPIP接口层。
11.如权利要求10所述的方法,其特征在于,所述向服务器发送用户数据之后,所述方法还包括:
接收所述服务器发送的第一确认字符数据,所述第一确认字符数据用于表征所述服务器已成功接收到所述TCP数据。
12.如权利要求10所述的方法,其特征在于,所述向服务器发送用户数据之前,所述方法还包括:
向服务器发送握手信号;
在接收到所述握手信号和所述第二确认字符数据的情况下,向所述服务器发送所述第二确认字符数据,所述第二确认字符数据用于表征所述服务器已成功接收到所述握手信号。
13.一种AUTOSAR协议栈的通信装置,其特征在于,协议栈包括依次通信连接的上层应用层、TCPIP接口层、AUTOSAR适配层、传输层、IP层、虚拟接口层和网络接口层,所述AUTOSAR适配层包括第一接收回调函数,所述装置包括:
第一接收模块,用于依次通过所述网络接口层、所述虚拟接口层、所述IP层和所述传输层,接收客户端发送的用户数据;
第一调用模块,用于在所述用户数据为TCP数据的情况下,调用所述第一接收回调函数,将所述TCP数据传输至所述TCPIP接口层;
第一传输模块,用于通过所述TCPIP接口层将所述TCP数据传输至所述上层应用层。
14.一种AUTOSAR协议栈的通信装置,其特征在于,所述装置包括:
第一发送模块,用于向服务器发送用户数据,所述用户数据用于指示所述服务器在所述用户数据为TCP数据的情况下,调用第一接收回调函数,将所述TCP数据传输至TCPIP接口层。
15.一种电子设备,其特征在于,所述电子设备包括处理器以及存储有计算机程序指令的存储器;
所述处理器读取并执行所述计算机程序指令,以实现如权利要求1-12任意一项所述的AUTOSAR协议栈的通信方法。
16.一种车辆,其特征在于,包括至少以下一种:
如权利要求13或14所述的AUTOSAR协议栈的通信装置;
如权利要求15所述的电子设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310065657.5A CN118353977A (zh) | 2023-01-13 | 2023-01-13 | Autosar协议栈的通信方法、装置、设备及车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310065657.5A CN118353977A (zh) | 2023-01-13 | 2023-01-13 | Autosar协议栈的通信方法、装置、设备及车辆 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118353977A true CN118353977A (zh) | 2024-07-16 |
Family
ID=91816647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310065657.5A Pending CN118353977A (zh) | 2023-01-13 | 2023-01-13 | Autosar协议栈的通信方法、装置、设备及车辆 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118353977A (zh) |
-
2023
- 2023-01-13 CN CN202310065657.5A patent/CN118353977A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102546784B (zh) | 一种基于can总线进行批量升级设备固件的方法 | |
CN107835040B (zh) | 一种基于蓝牙的数据通讯的方法、设备及存储介质 | |
WO2018000841A1 (zh) | 一种harq重传的指示方法及相关设备 | |
EP1768296A2 (en) | Method and apparatus for transmitting signaling data messages in a wireless communications system | |
WO2018014162A1 (zh) | 传输数据的方法和装置 | |
US20100217889A1 (en) | Accelerated block option for trivial file transfer protocol (tftp) | |
CN103516673A (zh) | 一种网络数据通信方法、系统及客户端和服务器 | |
WO2018082595A1 (zh) | 数据传输方法、装置及基站 | |
JP4709773B2 (ja) | Tcp受信器による完了合体 | |
CN112583529A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114039703A (zh) | 数据传输方法、装置、设备和介质 | |
CN115004752A (zh) | 感知代理sbp终止方法及装置、电子设备及存储介质 | |
KR101018685B1 (ko) | 광대역 무선통신시스템에서 자동 재송 요구 리셋을제어하기 위한 장치 및 방법 | |
CN111385068B (zh) | 数据传输方法、装置、电子设备及通信系统 | |
CN110913431A (zh) | 数据无线传输方法、装置、计算机设备及存储介质 | |
US20160359950A1 (en) | Systems and methods for improved trivial file transfer protocol | |
US20040264453A1 (en) | Method and system establishing a data link layer protocol on a I2CTM physical layer connection | |
CN118353977A (zh) | Autosar协议栈的通信方法、装置、设备及车辆 | |
CN114598651B (zh) | 数据传输方法以及装置 | |
CN109906577B (zh) | 用于检测帧重发的方法、中央服务器、服务器及记录介质 | |
CN104243107A (zh) | 数据传输方法、装置、终端、服务器及系统 | |
US7701968B2 (en) | Device and method thereof for transmitting a MAC service data unit in a network system | |
CN118353978A (zh) | Autosar协议栈的通信方法、装置、设备及车辆 | |
WO2020103633A1 (zh) | 一种控制信息的发送和接收方法及终端设备 | |
CN107172179B (zh) | 一种双边加速传输方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |