Communication method, apparatus and vehicle

WO2026199541A1PCT designated stage Publication Date: 2026-10-01YINWANG INTELLIGENT TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/085964
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-03-28
Publication Date
2026-10-01

Smart Images

  • Figure CN2025085964_01102026_PF_FP_ABST
    Figure CN2025085964_01102026_PF_FP_ABST
Patent Text Reader

Abstract

A communication method, an apparatus and a vehicle. The method comprises: when a first client subscribes to a first event from a first server and the first event is a reliable event, the first client sends a proxy request message to the first server to indicate P service messages of the first event that have been received by the first client, wherein the P service messages are included in N service messages of the first event that have been transmitted by the first server, P is an integer greater than or equal to zero, and N is a positive integer; and when P is not equal to N, the first server retransmits to the first client service messages other than the P service messages among the N service messages. The present technical solution can be applied to scenarios in which subscription / release modes are used for communication on the basis of SOME / IP protocol stacks, thereby making all SOME / IP protocol-based transmission modes such as UDP, multicast and shared memory reliable.
Need to check novelty before this filing date? Find Prior Art

Description

Communication methods, devices and vehicles Technical Field

[0001] This application relates to the field of vehicle-mounted communications, and more specifically, to a communication method, apparatus, and vehicle. Background Technology

[0002] With the development of intelligent, connected, shared, and electrified vehicles, the requirements for computing power and communication bandwidth are getting higher and higher. The vehicle's electrical / electronic architecture (EEA) is gradually evolving from a traditional distributed architecture to a domain-centralized architecture. Correspondingly, the communication network is also evolving from a controller area network (CAN) to Ethernet (ETH).

[0003] To reduce the difficulty of large-scale software development for vehicles, the industry is widely using service-oriented architecture (SOA). The core idea is to encapsulate the underlying functions of each controller as "services" and assign them specific Internet protocol (IP) addresses and standardized interfaces for easy invocation. Ultimately, a complex intelligent function can be achieved by freely combining these underlying functions.

[0004] Scalable service-oriented middleware (SOME / IP) protocol stack is the mainstream communication protocol for in-vehicle SOA architecture. It is an application layer communication protocol based on Ethernet.

[0005] However, the reliability of information transmission in the current SOME / IP protocol stack mainly relies on the transmission control protocol (TCP), and the reliability of communication not based on the TCP protocol cannot be guaranteed.

[0006] Therefore, a communication scheme to improve the reliability of SOME / IP communication urgently needs to be developed. Summary of the Invention

[0007] This application provides a communication method, apparatus, and vehicle that can improve the reliability of communication based on the SOME / IP protocol using a publish / subscribe model, making transmission methods such as User Datagram Protocol (UDP), multicast, and even shared memory based on the SOME / IP protocol reliable.

[0008] Firstly, a communication method is provided, which can be executed by a vehicle, or by a chip or circuit used in the vehicle. Specifically, the method can be executed by a SOME / IP communication server in the vehicle's computing platform; the following explanation uses the execution of this method by a first server as an example.

[0009] The method includes: receiving a proxy request message, the proxy request message indicating that the first client has received P service messages of the first event, the P service messages being included in N service messages of the first event sent by the first server, where P is an integer greater than or equal to zero and N is a positive integer; and determining whether to retransmit the service messages of the first event to the first client based on the proxy request message.

[0010] In some implementations, receiving a proxy request message may also indicate that the first client has not received any service message for the first event.

[0011] In some implementations, based on the proxy request message, it is determined whether to retransmit the business message of the first event to the first client, including: when P is not equal to N, retransmitting the business messages other than P business messages out of N business messages to the first client.

[0012] In the above technical solution, the server retransmits lost service packets based on the reception status of the service packets reported by the client for the first event, which helps improve the reliability of service packet transmission. Furthermore, since the server determines whether to retransmit based on the client's request, service designers only need to focus on the nature of each service within the service when designing the reliability of service-related service packets, without needing to consider the underlying communication links used for service packet transmission. This helps decouple service design from communication design and improves the efficiency of parallel development.

[0013] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes: sending a first proxy notification message, the first proxy notification message indicating the N service messages that have been sent.

[0014] Generally, the timing of a server sending business messages to a client is not fixed, making it difficult for the client to determine when to send a proxy request message. In the above technical solution, the server proactively indicates to the client that it has sent at least one business message, which helps to further improve the reliability of communication between the client and server and reduce communication overhead caused by the client unnecessarily sending proxy request messages.

[0015] In conjunction with the first aspect, in some implementations of the first aspect, sending a first proxy notification message includes: sending the first proxy notification message according to a first period, and stopping sending the first proxy notification message when or after receiving a proxy request message indicating that N business messages have been received, or stopping sending the part of the first proxy notification message associated with the first event.

[0016] In some implementations, when the first server sends the first proxy notification message to multiple clients in a multicast manner, the first server stops sending the first proxy notification message when it receives a proxy request message from multiple clients indicating that N business messages have been received, or stops sending the part of the first proxy notification message associated with the first event.

[0017] In some implementations, when the first proxy notification message no longer indicates the sending status of business messages for other events besides the sending status of business messages for the first event, the first proxy notification message is stopped being sent when or after the first server receives a proxy request message from multiple clients indicating that N business messages have been received; or, when the first proxy notification message includes the sending status of business messages for multiple events, including the first event, the portion of the first proxy notification message associated with the first event is stopped being sent when or after the first server receives a proxy request message from multiple clients indicating that N business messages have been received.

[0018] In the above technical solution, when all business messages for a certain event have been received by the client, it is no longer necessary to send information about the sending status of business messages related to that event, which helps to save communication overhead.

[0019] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes: sending a first service message of the first event, wherein the first service message is the first frame service message of the first event transmitted after the first event is subscribed to, and the first service message instructs the client subscribing to the first event to start a first timer, wherein the first timer instructs the client to provide feedback on the reception status of the service message of the first event.

[0020] The first event being subscribed to can be: the service associated with the first event being subscribed to, and / or the event group to which the first event belongs being subscribed to.

[0021] In the above technical solution, after the client subscribes to the first event, when the server sends the first frame of the first event's business message, it instructs the client to start the relevant timer, which helps the client to clearly understand when to report the proxy request message.

[0022] In conjunction with the first aspect, in some implementations of the first aspect, the value of N is associated with a first reliability level, which indicates that reliable transmission of N messages is guaranteed; wherein the first reliability level indicates any of the following: the reliability of a first event; the reliability of a first event group, which includes the first event; or the reliability of a first service, which is associated with at least one event including the first event.

[0023] The above technical solutions can provide fine-grained reliable transmission of business messages at various granularities, and have lower communication overhead, memory overhead and processing overhead compared with TCP link-level reliable communication.

[0024] In conjunction with the first aspect, in some implementations of the first aspect, N messages are the messages that are closest to the first moment among the sent business messages associated with the first event, and the first moment is the moment when the proxy request message is received.

[0025] In conjunction with the first aspect, in some implementations of the first aspect, the first agent notification message further indicates M service messages of the second event that have been sent, where M is a positive integer; wherein the value of M is associated with a fourth reliability level, the fourth reliability level indicating that reliable transmission of the most recent M frame messages is guaranteed, the fourth reliability level indicating any of the following: the reliability of the second event; the reliability of the second event group, the second event group including the second event; or, the reliability of the second service, the second service being associated with at least one event including the second event.

[0026] In some implementations, the first event and the second event can be two events with the same or different reliability levels in the same event group; or, the first event and the second event can be two events with the same or different reliability levels in different event groups; or, the first event and the second event can be two events with the same or different reliability levels in the same service; or, the first event and the second event can be two events in different services with the same or different reliability levels.

[0027] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes: receiving a first subscription message from a second client, the first subscription message instructing the second client to subscribe to a first event and a second reliability level, the second reliability level indicating the reliability level of the first event desired by the second client; sending a subscription success response message to the second client when the second reliability level is less than or equal to the first reliability level; or sending a subscription failure response message to the second client when the second reliability level is greater than the first reliability level.

[0028] In the above technical solution, the client and the server negotiate the reliability level of the first event through subscription messages, so that for the same event, the server can guarantee different clients with different reliability levels, which can avoid resource waste.

[0029] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes: sending a first offer message to a third client, the first offer message indicating a first reliability level provided by the first server; receiving a second subscription message from the third client, the second subscription message indicating that the third client subscribes to a first event and a third reliability level, the third reliability level being less than or equal to the first reliability level.

[0030] In the above technical solution, the client can adjust its own reliability level according to the reliability level information in the offer message to avoid subscription negotiation failure.

[0031] In conjunction with the first aspect, in some implementations of the first aspect, the first server is associated with at least one storage space, each of the at least one storage space being used to store a business message for an event, and the method further includes: storing N business messages in the first storage space; wherein the first storage space is associated with the first event, and the size of the first storage space is equal to the product of the size of each business message of the first event and N.

[0032] The above technical solution can accurately reserve memory space for the service messages of an event based on the event's reliability level, thus avoiding the waste of memory resources.

[0033] In conjunction with the first aspect, in some implementations of the first aspect, the fourth client subscribes to events of the second service of the first server and sends a first proxy notification message, including: when the number of clients subscribing to service-related events from the first server is less than a first threshold, sending the first proxy notification message to the first client in a unicast manner; or, when the number of clients subscribing to service-related events from the first server is greater than or equal to the first threshold, sending a second proxy notification message to the first client and the fourth client in a multicast manner, wherein the second proxy notification message includes business messages associated with multiple services, wherein the multiple services are services subscribed to by the client from the first server.

[0034] The above technical solution balances the overhead of both the server and the client when transmitting proxy notification messages. With a small number of clients, the server incurs minimal overhead in constructing different proxy notification messages for different clients, and the client incurs minimal overhead in parsing these messages. With a large number of clients, the server constructs the same proxy notification message and sends it via multicast, reducing both server processing and communication overhead.

[0035] Secondly, a communication method is provided, which can be executed by a vehicle, or by a chip or circuitry used in the vehicle. Specifically, the method can be executed by a SOME / IP communication client in the vehicle's computing platform; the following explanation uses the execution of this method by a first client as an example.

[0036] The method includes: sending a proxy request message to a first server, the proxy request message indicating P service messages of a first event that have been received, the P service messages being included in N service messages of the first event sent by the first server, where P is an integer greater than or equal to zero and N is a positive integer; when P is not equal to N, receiving service messages other than the P service messages from the N service messages from the first server.

[0037] In the above technical solution, the reception status of the first event business message reported by the client enables the server to determine whether packet loss has occurred and to retransmit the lost business message, which helps to improve the reliability of business message transmission.

[0038] In conjunction with the second aspect, in some implementations of the second aspect, the method further includes: receiving a first proxy notification message, the first proxy notification message indicating the N business messages that the first server has sent.

[0039] In conjunction with the second aspect, in some implementations of the second aspect, the method further includes: receiving a first service message from a first server, wherein the first service message is the first frame service message of the first event transmitted after the first event is subscribed; starting a first timer according to the first service message; and sending a proxy request message to the first server, including: sending the proxy request message to the first server when or after the first timer expires.

[0040] In the above technical solution, after subscribing to the first event, the client determines the timing of sending the proxy request message based on the first frame of the service message received from the first event, without needing to rely on the service message sending status indicated by the server, which helps to save communication overhead.

[0041] In conjunction with the second aspect, in some implementations of the second aspect, the method further includes: starting a second timer when the first client subscribes to the first event; sending a proxy request message to the first server, including: sending the proxy request message to the first server when or after the second timer expires.

[0042] In some implementations, the first client can periodically send proxy request messages to the first server when or after the second timer expires.

[0043] In the above technical solution, after subscribing to the first event, the client actively reports its reception of the event's business messages to the server, which helps to save communication overhead.

[0044] In conjunction with the second aspect, in some implementations of the second aspect, the value of N is associated with a first reliability level, which indicates that reliable transmission of N messages is guaranteed; wherein the first reliability level indicates any of the following: the reliability of a first event; the reliability of a first event group, which includes the first event; or the reliability of a first service, which is associated with at least one event including the first event.

[0045] In conjunction with the second aspect, in some implementations of the second aspect, the first agent notification message further indicates M service messages of the second event that the first server has sent, where M is a positive integer; wherein the value of M is associated with a fourth reliability level, the fourth reliability level indicating that reliable transmission of the most recent M frame messages is guaranteed, and the fourth reliability level indicating any of the following: the reliability of the second event; the reliability of the second event group, the second event group including the second event; or, the reliability of the second service, the second service being associated with at least one event including the second event.

[0046] In conjunction with the second aspect, in some implementations of the second aspect, N messages are the messages that are closest to the first moment among the sent business messages associated with the first event, and the first moment is the moment when the proxy request message is received.

[0047] In conjunction with the second aspect, in some implementations of the second aspect, the method further includes: sending a first subscription message to a first server, the first subscription message instructing a first client to subscribe to a first event and a second reliability level, the second reliability level indicating the reliability level of the first event desired by the first client.

[0048] In conjunction with the second aspect, in some implementations of the second aspect, the method further includes: receiving a first offer message from a first server, the first offer message indicating a first reliability level provided by the first server; when the third reliability level requested by the first client is less than the first reliability level, sending a second subscription message to the first server, the second subscription message indicating a first event and the third reliability level; or, when the third reliability level requested by the first client is greater than or equal to the first reliability level, sending a third subscription message to the first server, the third subscription message indicating the first event and the first reliability level.

[0049] In the above technical solution, the client can determine whether to subscribe to an event based on the reliability level that the server can provide for that event, as indicated in the offer message. Furthermore, the client can adjust its own reliability level based on the reliability level information in the offer message to avoid subscription negotiation failure.

[0050] In conjunction with the second aspect, in some implementations of the second aspect, the method further includes: if no proxy response message is received from the first server within a first time period after sending the proxy request message, resending the proxy request message, wherein the proxy response message indicates that the first server has received the proxy request message.

[0051] The above technical solution helps to improve the reliability of the transmission of proxy request messages.

[0052] Thirdly, a communication device is provided, which can be disposed in a first server. The device includes a transceiver unit and a processing unit. The transceiver unit is configured to: receive a proxy request message, the proxy request message indicating that the first client has received P service messages of the first event, the P service messages being included in N service messages of the first event sent by the first server, wherein P is an integer greater than or equal to, and N is a positive integer; the processing unit is configured to: determine whether to retransmit the service messages of the first event to the first client based on the proxy request message.

[0053] In conjunction with the third aspect, in some implementations of the third aspect, the transceiver unit is also used to: send a first proxy notification message, which indicates the N service messages that have been sent.

[0054] In conjunction with the third aspect, in some implementations of the third aspect, the transceiver unit is configured to: send a first proxy notification message according to a first cycle, and stop sending the first proxy notification message when or after receiving a proxy request message indicating that N service messages have been received, or stop sending the part of the first proxy notification message associated with the first event.

[0055] In conjunction with the third aspect, in some implementations of the third aspect, the transceiver unit is further configured to: send a first service message of the first event, wherein the first service message is the first frame service message of the first event transmitted after the first event is subscribed to, and the first service message instructs the client subscribing to the first event to start a first timer, wherein the first timer instructs the client to provide feedback on the reception status of the service message of the first event.

[0056] In conjunction with the third aspect, in some implementations of the third aspect, the processing unit is used to: when P is not equal to N, control the transceiver unit to retransmit the service messages other than P service messages from the N service messages to the first client.

[0057] In conjunction with the third aspect, in some implementations of the third aspect, the value of N is associated with a first reliability level, which indicates that reliable transmission of N messages is guaranteed; wherein the first reliability level indicates any of the following: the reliability of a first event; the reliability of a first event group, which includes the first event; or the reliability of a first service, which is associated with at least one event including the first event.

[0058] In conjunction with the third aspect, in some implementations of the third aspect, N messages are the messages that are closest to the first moment among the sent business messages associated with the first event, and the first moment is the moment when the proxy request message is received.

[0059] In conjunction with the third aspect, in some implementations of the third aspect, the transceiver unit is further configured to: receive a first subscription message from the second client, the first subscription message instructing the second client to subscribe to a first event and a second reliability level, the second reliability level indicating the reliability level of the first event desired by the second client; when the second reliability level is less than or equal to the first reliability level, send a subscription success response message to the second client; or, when the second reliability level is greater than the first reliability level, send a subscription failure response message to the second client.

[0060] In conjunction with the third aspect, in some implementations of the third aspect, the transceiver unit is further configured to: send a first offer message to a third client, the first offer message indicating a first reliability level provided by the first server; receive a second subscription message from the third client, the second subscription message indicating that the third client subscribes to a first event and a third reliability level, the third reliability level being less than or equal to the first reliability level.

[0061] In conjunction with the third aspect, in some implementations of the third aspect, the first server is associated with at least one storage space, each of the at least one storage space is used to store a business message for an event, and the processing unit is further used to: store N business messages in the first storage space; wherein, the first storage space is associated with the first event, and the size of the first storage space is equal to the product of the size of each business message of the first event and N.

[0062] In conjunction with the third aspect, in some implementations of the third aspect, the fourth client subscribes to events of the second service of the first server. The transceiver unit is configured to: send a first proxy notification message to the first client in a unicast manner when the number of clients subscribing to events associated with the service from the first server is less than a first threshold; or, when the number of clients subscribing to events associated with the service from the first server is greater than or equal to the first threshold, send a second proxy notification message to the first client and the fourth client in a multicast manner. The second proxy notification message includes business messages associated with multiple services, wherein the multiple services are services subscribed to by the client from the first server.

[0063] In conjunction with the third aspect, in some implementations of the third aspect, the first agent notification message further indicates M service messages of the second event that have been sent, where M is a positive integer; wherein the value of M is associated with a fourth reliability level, which indicates that reliable transmission of the most recent M frame messages is guaranteed, and the fourth reliability level indicates any of the following: the reliability of the second event; the reliability of the second event group, which includes the second event; or the reliability of the second service, which is associated with at least one event including the second event.

[0064] Fourthly, a communication device is provided, which is disposed on a first client. The device includes a transceiver unit for: sending a proxy request message to a first server, the proxy request message indicating P service messages of a first event that have been received, the P service messages being included in N service messages of the first event sent by the first server, wherein P is an integer greater than or equal to zero and N is a positive integer; and receiving service messages other than the P service messages from the N service messages of the first server when P is not equal to N.

[0065] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the transceiver unit is also used to: receive a first agent notification message, which indicates the N business messages that the first server has sent.

[0066] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the transceiver unit is further configured to: receive a first service message from the first server, wherein the first service message is the first frame service message of the first event transmitted after the first event is subscribed; the apparatus further includes a processing unit configured to: start a first timer according to the first service message; the transceiver unit is configured to: send a proxy request message to the first server when or after the first timer expires.

[0067] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the device further includes a processing unit for: starting a second timer when the first client subscribes to the first event; and a transceiver unit for: sending a proxy request message to the first server when or after the second timer expires.

[0068] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the value of N is associated with a first reliability level, which indicates that reliable transmission of N messages is guaranteed; wherein the first reliability level indicates any of the following: the reliability of a first event; the reliability of a first event group, which includes the first event; or the reliability of a first service, which is associated with at least one event including the first event.

[0069] In conjunction with the fourth aspect, in some implementations of the fourth aspect, N messages are the messages that are closest to the first moment among the sent business messages associated with the first event, and the first moment is the moment when the proxy request message is received.

[0070] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the transceiver unit is further configured to: send a first subscription message to the first server, the first subscription message instructing the first client to subscribe to a first event and a second reliability level, the second reliability level indicating the reliability level of the first event desired by the first client.

[0071] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the transceiver unit is further configured to: receive a first offer message from the first server, the first offer message indicating a first reliability level provided by the first server; when the third reliability level required by the first client is less than the first reliability level, send a second subscription message to the first server, the second subscription message indicating a first event and the third reliability level; or, when the third reliability level required by the first client is greater than or equal to the first reliability level, send a third subscription message to the first server, the third subscription message indicating a first event and the first reliability level.

[0072] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the transceiver unit is also used to: if no proxy response message is received from the first server within a first time period after sending the proxy request message, resend the proxy request message, and the proxy response message indicates that the first server has received the proxy request message.

[0073] In conjunction with the fourth aspect, in some implementations of the fourth aspect, the first agent notification message further indicates M service messages of the second event that the first server has sent, where M is a positive integer; wherein the value of M is associated with a fourth reliability level, the fourth reliability level indicating that reliable transmission of the most recent M frame messages is guaranteed, and the fourth reliability level indicating any of the following: the reliability of the second event; the reliability of the second event group, the second event group including the second event; or, the reliability of the second service, the second service being associated with at least one event including the second event.

[0074] Fifthly, a communication device is provided, the device including a processor for executing a computer program stored in the memory, such that the device performs the method in any possible implementation of the first aspect described above.

[0075] In a sixth aspect, a communication device is provided, the device including a processor for executing a computer program stored in the memory, such that the device performs the method in any possible implementation of the second aspect described above.

[0076] In conjunction with the fifth or sixth aspect, in some implementations of the fifth or sixth aspect, the device also includes a memory.

[0077] In a seventh aspect, a computer program product is provided, comprising: computer program code, which, when executed on a computer or processor, causes the computer or processor to perform the method in any possible implementation of the first or second aspect.

[0078] It should be noted that the above computer program code can be stored in whole or in part on a storage medium, which can be packaged together with the processor or packaged separately from the processor.

[0079] Eighthly, a computer-readable storage medium is provided, the computer-readable medium storing instructions that, when executed by a processor, cause the processor to implement the method in any possible implementation of the first or second aspect.

[0080] Ninthly, a chip is provided, the chip including circuitry for performing the methods in any possible implementation of the first or second aspect described above.

[0081] In a tenth aspect, a vehicle is provided that includes means as in any of the possible implementations of the third to sixth aspects, or the vehicle includes computer-readable storage as in any of the possible implementations of the eighth aspect, or the vehicle includes a chip as in any of the possible implementations of the ninth aspect, or the vehicle is loaded with computer program code as in any of the possible implementations of the seventh aspect.

[0082] In conjunction with aspect ten, in some implementations of aspect ten, the vehicle is a vehicle in a broad sense, such as a means of transportation (e.g., commercial vehicles, passenger cars, motorcycles, flying cars, trains, etc.), industrial vehicles (e.g., forklifts, trailers, tractors, etc.), engineering vehicles (e.g., excavators, bulldozers, cranes, etc.), agricultural equipment (e.g., lawnmowers, harvesters, etc.), amusement equipment, toy vehicles, etc. In practical implementation, the vehicle can also be a road vehicle, a water vehicle, an air vehicle, industrial equipment, agricultural equipment, or other intelligent driving equipment such as entertainment equipment.

[0083] For the beneficial effects not described in detail in aspects three through ten, please refer to the descriptions in aspect one and / or aspect two, which will not be repeated here. Attached Figure Description

[0084] Figure 1 is a schematic block diagram of the EEA architecture provided in an embodiment of this application;

[0085] Figure 2 is a schematic block diagram of the communication system architecture provided in an embodiment of this application;

[0086] Figure 3 is a schematic flowchart of the communication method provided in an embodiment of this application;

[0087] Figure 4 is a schematic diagram of the frame structure of the proxy notification message involved in the embodiments of this application;

[0088] Figure 5 is a schematic diagram of the frame structure of the proxy request message involved in the embodiments of this application;

[0089] Figure 6 is another schematic flowchart of the communication method involved in the embodiments of this application;

[0090] Figure 7 is another schematic flowchart of the communication method involved in the embodiments of this application;

[0091] Figure 8 is a schematic diagram of the frame structure of the subscription message involved in the embodiments of this application;

[0092] Figure 9 is a schematic diagram of the frame structure of the offer message involved in the embodiments of this application;

[0093] Figure 10 is another schematic flowchart of the communication method provided in the embodiments of this application;

[0094] Figure 11 is another schematic flowchart of the communication method provided in the embodiments of this application;

[0095] Figure 12 is another schematic flowchart of the communication method provided in the embodiments of this application;

[0096] Figure 13 is a schematic block diagram of a notification device provided in an embodiment of this application;

[0097] Figure 14 is another schematic block diagram of the notification device provided in the embodiments of this application. Detailed Implementation

[0098] To facilitate understanding of the technical solution of this application, some concepts and / or terms involved in this application are briefly introduced below.

[0099] 1. SOA: SOA is an architectural design philosophy that decomposes a system into relatively independent functional units. These relatively independent functional units are called services to the outside world. Services can be encapsulated with abstract interfaces, and further, these services communicate with each other through defined interfaces and protocols. The numerous services of a system may be classified in a layered manner. For example, lower-level services may be called device abstraction services, atomic services, and composite services, while upper-level services are called applications (APP) or application services.

[0100] 2. Atomic Services: Sensors, actuators, and other similar hardware resources are typically encapsulated as atomic services. Atomic services generally encapsulate the most basic logical functions. Examples include seat control and window control.

[0101] 3. Composite service: This is a service formed by combining atomic services.

[0102] 4. Application services: These are services formed by combining atomic services and / or composite services. They generally encapsulate various application scenarios and are services directly faced by customers.

[0103] 5. Domain-Centered EEA: This approach divides vehicle controllers into functional domains, centrally controlling functions within each domain to reduce the number of electronic control units (ECUs) and lower system complexity. As shown in Figure 1, the current trend in domain-centralized architecture is to divide vehicle functions into three domains: vehicle control, intelligent driving, and intelligent cockpit, each controlled by a separate domain controller. Domain controllers communicate with gateways via a backbone network, and domain controllers transmit and receive data with sensors or actuators through gateways. Communication between gateways and sensors or actuators is based on an intra-zone network. It should be noted that in practice, one or more controllers may be included between the gateway and the sensors or actuators. Generally, the backbone network is Ethernet, and the intra-zone network is a CAN network.

[0104] For example, after the sensor receives data, it sends it to the gateway via the CAN intranet. The gateway encapsulates the data packet into a SOME / IP message and sends it to the domain controller for processing via the ETH backbone. After the domain controller completes the processing, it encapsulates the calculation result into a SOME / IP message and forwards it to the actuator for execution via the gateway.

[0105] It should be noted that the aforementioned domain controllers may include, but are not limited to, cockpit domain controllers (CDC); vehicle domain controllers (VDC); or advanced driving domain controllers (ADC), or mobile data centers (MDC). The cockpit is comprised of several components: CDC (Cockpit Control Unit) and ICAS (Intelligent Cockpit Server). CDC is used to implement intelligent cockpit functions such as human-machine interaction. In practice, CDC may also be called other names, such as Media Graphics Unit (MGU), Intelligent Cockpit Server (ICAS3), or Cockpit Super Core (CSC). VDC (Vehicle Control Unit) is used to implement vehicle control functions. VDC can be seen as an integration of the powertrain domain, chassis domain, and body domain. In practice, VDC may also be called other names, such as Body Domain Controller (BDC), Vehicle Control Server (ICAS1), or Body Super Core (BSC). ADC (Action Control Unit) or MDC (Mechanical Control Unit) is used to implement perception, decision-making, and control functions related to intelligent driving. In practice, ADC or MDC may also be called other names, such as Special Equipment System (SAS), Intelligent Driving Server (ICAS2), or ADAS Super Core. ICAS stands for In-Car Application Server.

[0106] 6. Communication process based on the SOME / IP protocol stack using a publish / subscribe communication model:

[0107] Before communication occurs between the service's server and client, the server divides services according to their functions, defines service identifiers (IDs), and specifies the methods and events provided by the service. Based on its own business logic, the server defines the event sending method (such as sending frequency, transmission protocol, etc.) and divides the events into event groups (EventGroups), each of which can contain one or more events. This stage can be called the service design stage.

[0108] Furthermore, the server and client use a service discovery (SD) process to match services and establish subscription relationships: First, the server sends a service offer message containing information such as the service ID and event group ID. Upon receiving the offer message, if the client determines it is a service it needs to subscribe to, it sends a subscription message to the server, carrying the service ID and event group ID to be subscribed to. Upon receiving the subscription message, the server determines whether the subscription is successful based on the message's validity and its own communication resources, and replies to the client with a subscription response. If the subscription is successful, it sends a subscription success response (SubscribeAck) message to the client; otherwise, it sends a subscription failure response (SubscribeNack) message. After a successful subscription, the server sends all events within the subscribed event group to the client; the timing and transmission method of each event are typically determined during the aforementioned service design phase.

[0109] Furthermore, the communication modes in the SOME / IP protocol include three types: Event, Method, and Field. Specifically, communication using the publish / subscribe pattern is collectively referred to as an Event. The publish / subscribe pattern means that the client first subscribes to the server, and then the server sends the subscribed content to the client. The communication mode using remote function calls is called a Method. The communication mode for variables on the server that the client can remotely access is called a Field. Field communication modes specifically include the following three: obtaining the field value through a remote getter call, setting the field value through a remote setter call, and transmitting related messages through a notifier. The first two belong to the Method call pattern, while the notifier belongs to the publish / subscribe pattern.

[0110] 7. Event message: This is a SOME / IP service message that carries the specific communication content of the event-related service.

[0111] 8. Transmission Modes Supported by the SOME / IP Protocol Stack: SOME / IP typically supports multiple transmission modes, such as TCP, UDP, multicast, and shared memory. Among these, only TCP offers reliable communication, capable of determining packet loss based on an acknowledgment mechanism and retransmitting if loss occurs. UDP and multicast, however, are unreliable communication methods, lacking packet loss detection mechanisms and not supporting retransmission. Because the SOME / IP protocol stack itself does not support reliability, only events communicated via TCP can be reliably transmitted.

[0112] 9. Reliable communication (or reliable transmission): refers to the ability to retransmit lost packets until the receiving end successfully receives the packet.

[0113] 10. Reliable message: This refers to a message that can be retransmitted after packet loss to ensure that the receiving end can successfully receive it.

[0114] As mentioned earlier, the SOME / IP protocol stack itself lacks a reliability mechanism. When the SOME / IP protocol stack uses a publish / subscribe pattern for communication, the reliability of information transmission mainly depends on the reliability of the TCP protocol, which will lead to the following problems:

[0115] 1) The reliability is not scalable at the transport layer. It cannot transmit reliably under UDP, multicast, shared memory and other transmission methods, which may lead to functional abnormalities.

[0116] For example, when a vehicle gateway component provides door services, door status events are triggered via UDP. UDP-triggered transmission means that a frame is sent after a successful client subscription, and another frame is sent when the status value changes (e.g., from closed to open, or from open to closed). The locking function depends on the door status; locking is only successful when a closed door is detected. If the controller controlling the locking function (e.g., VDC) subscribes to door status events from the gateway, and the door status message sent by the gateway to the VDC is lost, it will not be retransmitted, causing the VDC's locking function to malfunction.

[0117] 2) Using TCP to transmit event messages may waste communication resources in order to ensure service reliability.

[0118] TCP is a general-purpose transmission mechanism. A single TCP link may carry multiple services. While TCP can guarantee link-level reliability, it does not support service-level reliability, resulting in high communication overhead and system resource consumption. For example, if a TCP link carries three services, and only one service has reliability requirements, the remaining two services will be passively reliable, leading to a waste of communication resources.

[0119] 3) Service designers need to be aware of the communication link. For services with high reliability requirements, TCP transmission needs to be specified. The service and communication are not decoupled, which makes it impossible to achieve efficient and parallel development.

[0120] To address the aforementioned issues, this application provides a communication method in which a built-in proxy module can be configured in a vehicle component (such as a controller or gateway) to uniformly manage the sending and receiving status of all events associated with that component that require reliability. The built-in proxy modules of different components can communicate with each other to synchronize the sending and receiving status of each event packet. This allows a server-side component to know which events have been lost by a client-side component, enabling packet retransmission and achieving reliable communication.

[0121] The technical solutions in this application will now be described with reference to the accompanying drawings.

[0122] Figure 2 shows a schematic block diagram of the communication system architecture provided in an embodiment of this application. As shown in Figure 2, the system includes component 1 and component 2. Each component includes an application layer, a SOME / IP protocol stack, and a transport layer. The application layer of each component includes multiple application services, such as application 1 service, application 2 service, application 3 service, and application 4 service. Component 1 is the provider (identified by P) of application 1 and application 2 services, meaning it is the server for these services and needs to provide them. Component 2 is the requester (identified by R) of application 1 and application 2 services, meaning it is the client for these services and needs to request them to perform other functions. Similarly, component 2 is the server for application 3 and application 4 services, and component 1 is the client for these services. Taking the example that all services from application 1 to application 4 provide reliable events, the SOME / IP protocol stacks of both component 1 and component 2 are equipped with built-in proxy services. Specifically, the built-in proxy service in component 1 proxies the sending status of all events associated with application 1 and application 2, and the receiving status of all events associated with application 3 and application 4; the built-in proxy service in component 2 proxies the receiving status of all events associated with application 1 and application 2, and the sending status of all events associated with application 3 and application 4. Communication between the built-in proxy services can also be based on the SOME / IP protocol stack, for example, by transmitting the aforementioned event sending and receiving status information through event and method interfaces based on the SOME / IP protocol stack standard.

[0123] For example, the aforementioned Application 1 to Application 4 services can be seat service, air conditioning service, vehicle speed service, and mileage service, respectively, or Application 1 to Application 4 services can be other services.

[0124] It should be understood that the above modules are only an example, and in actual applications, these modules may be added or removed as needed. For example, in the system architecture shown in Figure 2, the server and client can each be configured with a built-in proxy service module.

[0125] The communication system architecture provided in the embodiments of this application has been described above. The following details the process of implementing the communication method provided in the embodiments of this application based on the communication system shown in Figure 2.

[0126] In some implementations, before the server and client subscribe to the service, a reliability level can be configured for each event during the service design phase. This reliability level indicates the number of frames required to guarantee the reliable transmission of the event's service messages. For example, the reliability level field indicates the reliability of the event's service messages. For instance, a reliability level field value of 0 for an event indicates that there is no requirement for reliable transmission of the event's service messages, meaning that packet loss does not require retransmission. Similarly, a reliability level field value of 1 for an event guarantees the reliable transmission of the most recent frame of service messages. Furthermore, a reliability level field value of 3 for an event guarantees the reliable transmission of the most recent three frames of service messages.

[0127] More specifically, when configuring a reliability level for an event, it can be configured at the following granularity:

[0128] 1) Configure reliability levels at the service level, meaning the reliability level applies to all events within a service. For example, if service 1 includes five events with event IDs from xxxxx1 to xxxxx5 and a reliability level of 1, the configuration result is shown in Table 1, where the reliability level for all events in service 1 is 1.

[0129] Table 1

[0130] 2) Configure reliability levels at the event group level, meaning the reliability level applies to all events within an event group. Taking service 1, which includes five events with event IDs from xxxxx1 to xxxxx5, as an example, the configuration result is shown in Table 2. Service 1 includes two event groups: the event group with ID xx1 includes three events (events with IDs xxxxx1, xxxxx4, and xxxxx3), all of which have a reliability level of 0, indicating no need for reliable communication; the event group with ID xx2 includes two events (events with IDs xxxxx2 and xxxxx5), both of which have a reliability level of 2.

[0131] Table 2

[0132] 3) Configure reliability levels at the event granularity, meaning the reliability level applies to a single event. Taking Service 1, which includes five events with event IDs from xxxxx1 to xxxxx5, as an example, the configuration results are shown in Table 3. The reliability level for event ID xxxxx2 is 2, the reliability level for event ID xxxxx5 is 1, and the reliability level for the remaining three events is 0, indicating no need for reliable communication.

[0133] Table 3

[0134] For example, taking service 1 as the vehicle light service, the five events with event IDs from xxxxx1 to xxxxx5 can be respectively: reporting headlight mode status, reporting reversing light switch status, reporting brake light switch status, reporting low beam headlight malfunction status, and reporting high beam headlight malfunction status.

[0135] Figure 3 shows a schematic flowchart of a communication method provided in an embodiment of this application. This method can be applied to the EEA architecture shown in Figure 1, or it can be executed by the system shown in Figure 2. More specifically, steps S302 to S307 of this method can be executed by the built-in proxy module in Figure 2. For example, taking the reliability level of event 1 as 1 as an example, the method shown in Figure 3 may include:

[0136] S301, the server sends an event 1 message to the client.

[0137] The Event 1 message can be understood as the business message for Event 1. The server can send this business message to the client through the SOME / IP protocol stack.

[0138] In some implementations, after the client subscribes to the service to which event 1 belongs, the server can send the event 1 message to the client.

[0139] For example, the Event 1 message carries: an indication of the service interface corresponding to the Event 1 message, such as "MesgId=n", indicating that the service interface corresponding to the Event 1 message is the service interface with ID n; an indication of the sequence number of the Event 1 message in the most recent N frames (N is 1 in this embodiment) of the sent Event 1 service messages, such as "SN=m", indicating that the Event 1 message is the m-th frame of the most recent N frames of the sent Event 1 service messages; and the specific communication content of the service to which Event 1 belongs, such as "content (i.e., the payload carried by the message)=xxx", indicating the specific communication content carried by the Event 1 message, which can be defined by the service itself.

[0140] In actual implementation, the aforementioned MesgId can be composed of the ID of the service to which event 1 belongs and the ID of event 1.

[0141] S302, Server-side storage of Event 1 message.

[0142] In some implementations, a storage area can be reserved in the storage space for storing service messages for each reliable event provided by the server. The size of this storage area can be the product of the size of each service message frame of the event (or the signal length of each service message frame) and the reliability level of the event.

[0143] For example, the server caches the content of the Event 1 message (i.e., the payload carried by the message) in the storage area reserved for Event 1 and records the sequence number of the Event 1 message. If the storage space reserved for Event 1 is full, the oldest business message is identified according to the sequence number, and its cached content (i.e., the payload carried by the message) is deleted from the storage area. Here, the oldest business message can be understood as: the business message whose time of sending the business message is farthest from the current time, that is, the earliest business message cached by the server.

[0144] S303, the server sends a proxy notification message to the client, indicating the sequence number of all event 1 messages that have been sent.

[0145] It should be noted that the specific number of all Event 1 messages sent can be determined based on the reliability level of Event 1. For example, if the reliability level of Event 1 guarantees the reliability of the most recent frame of service messages, then the number of all Event 1 messages sent indicated by the proxy notification message is 1, and the sequence number is the sequence number of the most recent frame of service messages sent. As another example, if the reliability level of Event 1 guarantees the reliability of the most recent N frames of service messages, then the number of all Event 1 messages sent indicated by the proxy notification message is N, and the sequence number also includes the sequence numbers of the most recent N frames of service messages sent. The aforementioned "most recent frame (or N frames) of service messages" can be understood as the service message closest to the time the proxy notification message was sent.

[0146] S304, the client determines that packet loss exists based on the serial number.

[0147] For example, after receiving the proxy notification message, the client parses the proxy notification message and determines whether it has received all the business messages of event 1 indicated by the proxy notification message.

[0148] S305, the client sends a proxy request message to the server, indicating the reception status of the message for each sequence number.

[0149] For example, when the proxy notification message indicates the sequence number of the most recently sent service message, the proxy request message can indicate the reception status of the message with that sequence number; when the proxy notification message indicates the M sequence numbers of the most recently sent M frames of service messages, the proxy request message can indicate the reception status of the messages corresponding to the M sequence numbers respectively.

[0150] In one example, when the client receives all the service messages that have been sent as indicated by the proxy request message, the proxy request message can indicate that the reception status of all the aforementioned service messages has been received; in another example, when a sent service message indicated by the proxy request message is lost, the proxy request message can indicate that the reception status of the lost service message is not received, and the proxy request message can also request the retransmission of the lost service message.

[0151] S306, the server sends a proxy response message to the client, indicating that the proxy request message has been received.

[0152] S307, the server determines whether to retransmit based on the proxy request message.

[0153] If the proxy request message indicates that the reception status of the service message for each sequence number is "received", the server determines that no retransmission is required; if the proxy request message indicates that the reception status of the service message for a certain sequence number is "not received", and the relevant storage area has cached the content of the service message for that sequence number (i.e., the payload carried by the message), the server determines that the service message for that sequence number should be retransmitted.

[0154] When the server determines that a service message with a certain sequence number needs to be retransmitted, it retransmits the service message to the client through the SOME / IP protocol stack. For example, if the event 1 message in S301 is lost, the proxy notification message will indicate that the service message with sequence number n for event 1 has been sent. Then, the client can determine from the proxy notification message that the service message with sequence number n for event 1 is lost, and indicate to the server through a proxy request message that the service message with sequence number n for event 1 is lost, and request retransmission of the service message. When the server determines that the service message with sequence number n needs to be retransmitted, it executes S308.

[0155] S308, Event 1 message indicating packet loss, whereby the server retransmits the packet loss message to the client.

[0156] It should be noted that in actual implementation, S306 and S307 can be executed simultaneously, or S307 can be executed before S306.

[0157] The method shown in Figure 3 illustrates an example where a proxy notification message indicates the sent service message of a reliable event (i.e., event 1), and the reliability level of the reliable event is 1. In actual implementation, when the reliability level is higher (e.g., N), the server can also wait for all N frames of service messages for event 1 to be sent before sending a proxy notification message to the client indicating that it has sent all N frames of service messages for event 1. Furthermore, a single proxy notification message can also indicate the sent service messages of multiple reliable events; these multiple reliable events can belong to the same service or to different services.

[0158] In practice, the frame structures of the aforementioned proxy notification messages, proxy request messages, and proxy response messages can all follow the standard SOME / IP message format. The difference lies in the following: the content portion of the proxy notification message (i.e., the payload) can carry server status information (ServerStatusInfo), which indicates whether the server has sent reliable event business messages. The content portion of the proxy request message (i.e., the payload) can carry client status information (ClientStatusInfo), which may include the client's reception status of relevant reliable event business messages. The content portion of the proxy response message (i.e., the payload) can carry information indicating whether the server has received the proxy request message.

[0159] In some implementations, server-side state information and client-side state information can be represented by dynamic structure arrays as shown in Figures 4 and 5, respectively.

[0160] As shown in Figure 4, the structure array corresponding to the server-side status information includes multiple structures. The first structure indicates that the total length of the elements in the structure array that indicate reliable events is n bytes. This structure occupies 1 byte, 2 bytes, or 4 bytes. Starting from the second structure, each structure (such as element _1, element _2, etc.) is associated with a reliable event, indicating the information of the business message sent for that reliable event. For example, each structure associated with a reliable event includes a service ID (such as ServiceId) field, an event ID (such as EventId) field, an initial sequence number (such as FirstSN) field, and a termination sequence number (such as LastSN) field. The values ​​of the service ID field and the event ID field are used to identify the specific reliable event; the value of the initial sequence number field represents the minimum sequence number corresponding to the content of the reliable event cached by the server (i.e., the payload carried in the message); and the value of the termination sequence number represents the maximum sequence number corresponding to the content of the reliable event cached by the server (i.e., the payload carried in the message). The range covered by [FirstSN, LastSN] does not exceed the reliability level supported by the reliable event. For example, when the reliability level of an event is 1, then [FirstSN, LastSN] should be [Q, Q], that is, the minimum sequence number and the maximum sequence number corresponding to the content of the cached reliable event (i.e., the payload carried by the message) are both Q; when the reliability level of an event is 2, then [FirstSN, LastSN] should be [Q, Q+1], that is, the minimum sequence number and the maximum sequence number corresponding to the content of the cached reliable event (i.e., the payload carried by the message) are Q and Q+1 respectively.

[0161] As shown in Figure 5, the structure array corresponding to the client status information is similar in form to that corresponding to the server status information. The difference lies in that each structure associated with a reliable event includes a service ID field, an event ID field, a receive status field, and a retransmission field. The values ​​of the service ID and event ID fields identify the specific reliable event; the receive status field can be the sequence number of a received service message; and the retransmission field can be the sequence number of a lost service message. In some implementations, the receive status field can be a sequence number, indicating that all service messages up to that sequence number have been received by the client. It is understandable that the client can determine the specific values ​​of the receive status and retransmission fields based on the content of the proxy notification message (i.e., the payload carried by the message) and the sequence number of a service message for a specific reliable event that it has actually received.

[0162] In some implementations, to avoid packet loss during transmission of proxy notification messages, which could affect the synchronization of the server and client's reception status of business messages related to reliable events, proxy notification messages can be sent periodically. When the server determines that a proxy notification message needs to be sent, it begins sending such messages periodically. Taking a proxy notification message indicating that a reliable event has been sent as an example, the server continues to periodically send proxy notification messages until it receives a proxy request message indicating that no retransmission of any business messages is required. The server stops sending proxy notification messages when it determines that all business messages sent for the aforementioned reliable event have been received by the client (i.e., no retransmission is required), or when no client has subscribed to the reliable event.

[0163] For example, Figure 6 illustrates a possible process for the periodic transmission of proxy notification messages between the server and the client, using a time interval of 1 between two proxy notification messages as an example. For instance, if the proxy notification message sent by the server to the client in S303 is lost, the server will send the proxy notification message to the client again after the time interval 1 (S303'). If the client determines that a service message has been lost, it will send a proxy request message to the server indicating that the service message needs to be retransmitted (S305), and then the server will send a proxy response message to the client (S306) and retransmit the lost service message (S308). If, after executing S308, the period for sending the proxy notification message arrives, and the server has not yet received the proxy request message indicating that no business messages need to be retransmitted, the server is unsure whether the retransmitted business messages have been received by the client. Therefore, the server sends the proxy notification message to the client again (S303). Further, if the client determines that all business messages (related to event 1) indicated in the proxy notification message have been received, it sends a proxy request message to the server indicating that no business messages need to be retransmitted (S309). Then, the server stops sending proxy notification messages and sends a proxy response message to the client (S310).

[0164] For example, the aforementioned time interval 1 can be one of 20ms to 25ms, or the aforementioned time interval 1 can be other durations.

[0165] In some implementations, to prevent packet loss during transmission of proxy request messages, the client initiates timeout monitoring when sending the proxy request message. If no proxy response message is received within the timeout period, the proxy request message is retransmitted. Sending proxy request messages stops when the client receives the proxy response message or when the number of retransmissions reaches a threshold. For example, the timeout monitoring duration can be between 10ms and 15ms, or other durations; the threshold can be between 3 and 5, or other values.

[0166] In the foregoing embodiments, the reliability level of each event is statically configured during the service design phase as an example. In actual implementation, the server and client can also communicate to negotiate the reliability level of events. Specifically, Figure 7 shows a schematic flowchart of the communication method for negotiating the reliability level between the server and client. Figure 7 illustrates the example of the client and server negotiating the reliability level at the event group level. As shown in Figure 7, if the reliability level of event group b (i.e., the event group with ID value b) required by client 1 is 1, the reliability level of event group b required by client 2 is 3, and the server can provide a reliability level of 2 for event group b, the methods for negotiating the reliability level between the server and client can include two types:

[0167] Method 1: The client sends a subscription message to the server, indicating its required reliability level. The server determines whether the client can successfully subscribe to the relevant events based on the reliability level it can provide. After receiving the subscription message, the server checks whether a preset condition is met between the reliability level it can provide and the reliability level requested by the client. If the condition is met, the server sends a subscription success response to the client and sends the relevant event's business message to the client according to the client's required reliability level; if the condition is not met, the server sends a subscription failure response to the client. For example, the aforementioned preset condition can be: the reliability level that the server can provide for the event is greater than or equal to the reliability level of the event requested by the client. The communication process involved in Method 1 can be shown as S401 to S402 and S401' to S402' in Figure 7. Using this method, only client 1 can successfully subscribe to all events in event group b.

[0168] Method 2: The server indicates to the client, via an offer message, the reliability level it can provide for events. The client determines whether to subscribe to the events offered by the server based on its required reliability level. If the client needs to subscribe to events offered by the server, but its required reliability level is higher than the server's available reliability level, the client can lower its required reliability level to the server's available reliability level and send a relevant subscription message to the server. The communication flow involved in Method 2 can be shown in S411 to S413 and S411' to S413' in Figure 7. Using this method, both client 1 and client 2 can successfully subscribe to all events in event group b.

[0169] It should be noted that Figure 7 uses the event group as the granularity when requesting to subscribe to an event in the subscription message as an example. In actual implementation, the granularity when requesting to subscribe to an event in the subscription message can also be the event granularity or the service granularity.

[0170] In some implementations, the frame structures of the aforementioned subscription messages and offer messages can each conform to the frame structures defined by the SOME / IP protocol standard.

[0171] In one example, the reliability level is carried using a custom option (ConfigurationOption) provided by the SOME / IP service discovery (SD) protocol. For example, Figure 8 shows a schematic diagram of the frame structure of a subscription message and an offer message. This frame structure includes a length field, a type field, and a reserved field. The type field can have a value of 0x01 (indicating that the option type is ConfigurationOption). The selection field can contain several custom entries, and one custom entry can be used to carry reliability level information. According to the SOME / IP SD protocol, custom options can be ignored, so there will be no compatibility issues if the peer does not support the SOME / IP reliability mechanism involved in this application.

[0172] In another example, for subscription messages, the reliability level can be carried using the reserved field in the subscription entry. For instance, Figure 9 shows a schematic diagram of the frame structure of a subscription entry. The value of the reserved field in Figure 9 can be set to the reliability level value to indicate the reliability level required by the client. According to the SOME / IP SD protocol, the reserved field does not need to be parsed, so there will be no compatibility issues if the peer does not support the SOME / IP reliability mechanism involved in this application.

[0173] In some implementations, the following situation may exist: multiple clients subscribe to the same event from the server; however, these clients have different reliability level requirements for the same event. The server can then transmit the event's business messages according to the different reliability levels required by each client. For example, as shown in Figure 10, client a requests an event (such as event a) of service a (service ID = a) with a reliability level of 1, while client b requests event a with a reliability level of 0, meaning reliable transmission of event a's business messages is not required. The server provides service a's event a to client a with a reliability level of 1, but does not guarantee reliable transmission of event a's business messages to client b. In this case, the server can multicast the same proxy notification message to both clients a and b. If the business message with sequence number 1 for event a is lost, client a can send a proxy request message to the server indicating that the business message with sequence number 1 of event a needs to be retransmitted. When the server receives the proxy request message, it can retransmit the business message with sequence number 1 of event a to client a. During this period, even if client b does not receive the service message with sequence number 1 for event a, it will not send a proxy request message indicating that retransmission is required to the server. Alternatively, even if the server receives a proxy request message from client b indicating that retransmission is required, it will not retransmit the service message with sequence number 1 for event a to client b. Furthermore, once the server confirms that the reliability of all clients in the group has been met, it will stop sending proxy notification messages.

[0174] In practice, the server can send proxy notification messages to clients via unicast or multicast. In some implementations, the server can also use a threshold-based sending strategy. Specifically, when the number of clients subscribing to events on the server is less than a preset threshold, the server sends proxy notification messages to each client via unicast, with each message containing only information about the reliable events subscribed to by that client. When the number of clients subscribing to events on the server is greater than or equal to the preset threshold, the server sends proxy notification messages to each client via multicast, with each message including information about the reliable events subscribed to by each client individually.

[0175] For example, as shown in Figure 11, taking the aforementioned preset threshold of 3 as an example, if client 1 subscribes to one or more reliable events in service A from the server, and when or after the server sends the business message of the reliable event of service A to client 1, no other client has subscribed to the event from the server, that is, the number of clients subscribing to the event from the server is 1, which is less than the preset threshold, then the server sends a proxy notification message to client 1 in a unicast manner. The proxy notification message indicates the business message of the reliable event of service A that has been sent.

[0176] During reliable communication between the server and client 1, if client 2 subscribes to one or more reliable events in service B from the server, and at the time or after the server sends the business message of the reliable event of service B to client 2, no other client has subscribed to the event from the server, that is, the number of clients subscribing to the event from the server is 2, which is less than a preset threshold, then the server continues to send a proxy notification message to client 2 via unicast. This proxy notification message indicates the business message of the reliable event of service B that has been sent.

[0177] During reliable communication between the server and clients 1 and 2, if client 3 subscribes to one or more reliable events in service C from the server, then the number of clients subscribing to events from the server is 3, which is equal to a preset threshold. Then, the server sends a proxy notification message to clients 1, 2 and 3 via multicast. This proxy notification message indicates the business messages of the relevant reliable events of services A, B and C that have been sent.

[0178] It should be noted that the foregoing embodiments illustrate the use of a server informing a client of a reliable event it has sent via a proxy notification message, thus enabling reliable transmission of service messages between the two. In actual implementation, after a client subscribes to reliable events, it can also proactively report its reception status of service messages related to reliable events to the server, such as the sequence number of received service messages or whether no service messages have been received. For example, after a client subscribes to reliable events, it can periodically report its reception status of service messages related to reliable events.

[0179] Figure 12 shows another schematic flowchart of the communication method provided in this application embodiment. This method 1000 can be applied to the EEA architecture shown in Figure 1, or it can be executed by the system shown in Figure 2. More specifically, the method can be executed by the built-in proxy module in Figure 2. After the first server and the first client establish a subscription relationship, taking the example of the first client subscribing to a first event from the first server, and the first event being a reliable event, the method 1000 may include:

[0180] S1010, the first client sends a proxy request message to the first server, indicating that the first client has received P service messages of the first event.

[0181] Where P is an integer greater than or equal to zero.

[0182] For example, the first client can be the client in the method shown in FIG3, the first server can be the server in the method shown in FIG3, or the first client and the first server can be other clients and other servers respectively.

[0183] For example, the proxy request message may carry the sequence number of each of the P service messages. For instance, the method by which the proxy request message indicates the P service messages and the specific format of the proxy request message can be referred to the description in the foregoing embodiments, and will not be repeated here. In actual implementation, the proxy request message may also indicate the P service messages in other ways.

[0184] In some implementations, before executing S1010, the method further includes: the first server sending a first service message to the first client, the first service message being the first frame service message of the first event transmitted after the first event is subscribed to by the first client, and the first service message instructing the first client to start a first timer; after the first client receives the first service message, the first client starts the first timer according to the first service message; S1010 can be refined to: when or after the first timer expires, the first client sending a proxy request message to the first server.

[0185] In some implementations, before executing S1010, the method further includes: starting a second timer when the first client subscribes to the first event; S1010 can be refined to: when or after the second timer expires, the first client sends a proxy request message to the first server. In some implementations, when or after the first client subscribes to the first event, proxy request messages can be periodically sent to the first server to indicate to the first server the status of its reception of the business messages of the first event.

[0186] In some implementations, before executing S1010, the method further includes: the first server sending a first proxy notification message to the first client, the first proxy notification message indicating that the first server has sent N service messages of the first event to the first client. Further, the first client sends a proxy request message to the first server based on the first proxy notification message. In this implementation, the first server may send the first proxy notification message according to a first cycle, and upon receiving a proxy request message indicating that all N service messages have been received, it may stop sending the first proxy notification message, or stop sending the portion of the first proxy notification message associated with the first event.

[0187] For a more detailed implementation of the transmission of proxy notification messages and proxy request messages between the first server and the first client, please refer to the description of the corresponding part of the method flow shown in Figure 3, which will not be repeated here.

[0188] In some implementations, the aforementioned value of N is associated with a first reliability level, which indicates that reliable transmission of N messages is guaranteed. The first reliability level indicates any of the following: the reliability of a first event; the reliability of a first event group, which includes the first event; or the reliability of a first service, which is associated with at least one event, including the first event. In one example, the N messages are the messages among the sent service messages associated with the first event that are closest to a first moment, where the first moment is the moment the proxy request message is received. In another example, the N messages may also be the messages among the sent service messages associated with the first event that are furthest from the first moment, or the N messages may be other messages associated with the first event.

[0189] More specifically, the first reliability level can be the level configured during the service-related phase. Alternatively, the first reliability level can also be the level negotiated during the first communication between the server and the client.

[0190] In one example, the method further includes: a first server receiving a first subscription message from a second client, the first subscription message instructing the second client to subscribe to a first event and a second reliability level, the second reliability level indicating the reliability level of the first event desired by the second client; if the second reliability level is less than or equal to the first reliability level, the first server sending a subscription success response message to the second client; or, if the second reliability level is greater than the first reliability level, the first server sending a subscription failure response message to the second client. In some implementations, the second client and the first client can be the same client.

[0191] In another example, the method further includes: a first server sending a first offer message to a third client, the first offer message indicating a first reliability level provided by the first server; further, when the third reliability level requested by the third client is less than the first reliability level, sending a second subscription message to the first server, the second subscription message indicating a first event and the third reliability level; or, when the third reliability level requested by the first client is greater than or equal to the first reliability level, sending a third subscription message to the first server, the third subscription message indicating the first event and the first reliability level. In some implementations, the third client and the first client can be the same client.

[0192] More specific methods for determining the reliability level of static configuration events, and more specific methods for determining the reliability level of server-client communication negotiation events, can be found in the descriptions in the foregoing embodiments, and will not be repeated here.

[0193] In some implementations, the first server is associated with at least one storage space, each of which stores a business message for one event. Before the first server sends a first proxy notification message to the first client, the method further includes: the first server storing N business messages in the first storage space; wherein the first storage space is associated with the first event, and the size of the first storage space is equal to the product of the size of each business message of the first event and N. A more specific implementation of the first server caching business messages in the storage space can be found in the description in the foregoing embodiments, and will not be repeated here.

[0194] S1020, the first server determines whether to retransmit the business message of the first event to the first client based on the proxy request message.

[0195] In some implementations, the P service messages are included in the N service messages of the first event already sent by the first server, where N is a positive integer. Furthermore, when P is not equal to N, the first server retransmits the service messages other than the P service messages from the N service messages to the first client.

[0196] In some implementations, after receiving the proxy request message, the first server sends a proxy response message to the first client, which indicates that the first server has received the proxy request message.

[0197] In some implementations, the method further includes: if no proxy response message is received from the first server within a first time period after the first client sends the proxy request message, the proxy request message is resent, and the proxy response message indicates that the first server has received the proxy request message.

[0198] In some implementations, the first agent notification message also indicates M service messages of the second event that the first server has sent, where M is a positive integer; wherein the value of M is associated with a fourth reliability level, which indicates that the reliable transmission of the most recent M frame messages is guaranteed, and the fourth reliability level indicates any of the following: the reliability of the second event; the reliability of the second event group, which includes the second event; or the reliability of the second service, which is associated with at least one event including the second event.

[0199] In some implementations, the fourth client subscribes to events of the second service of the first server. The first server sends a first proxy notification message to the first client, including: when the number of clients subscribing to service-related events from the first server is less than a first threshold, sending the first proxy notification message to the first client in a unicast manner; or, when the number of clients subscribing to service-related events from the first server is greater than or equal to the first threshold, sending a second proxy notification message to the first client and the fourth client in a multicast manner. The second proxy notification message includes business messages associated with multiple services, wherein the multiple services are services subscribed to by the client from the first server.

[0200] For example, taking the first client as client 1 in Figure 11, the first proxy notification message can be a proxy notification message indicating a reliable event service message of service A that has been sent; the second proxy notification message can be a proxy notification message indicating a reliable event service message of service A, service B and service C that has been sent.

[0201] The specific forms of the proxy notification messages, proxy request messages, and proxy response messages involved in this implementation can be referred to the descriptions in the foregoing embodiments, and will not be repeated here.

[0202] The communication method provided in this application improves the reliability of communication based on the SOME / IP protocol, making transmission methods such as UDP, multicast, and even shared memory based on the SOME / IP protocol reliable. Furthermore, since the server determines whether to retransmit based on the client's request, service designers only need to focus on the nature of each service within the service when designing the reliability of service-related business messages, without needing to consider the underlying communication links used for message transmission. This helps decouple service design from communication design and improves the efficiency of parallel development.

[0203] In the various embodiments of this application, unless otherwise specified or in case of logical conflict, the terminology and / or descriptions between the various embodiments are consistent and can be referenced by each other. Technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.

[0204] The communication method provided by the embodiments of this application has been described in detail above with reference to Figures 1 to 12. The apparatus provided by the embodiments of this application will now be described in detail with reference to Figures 13 and 14. It should be understood that the description of the apparatus embodiments corresponds to the description of the method embodiments; therefore, any content not described in detail can be referred to the method embodiments above, and for the sake of brevity, will not be repeated here.

[0205] Figure 13 shows a schematic block diagram of a communication device 2000 provided in an embodiment of this application. The device 2000 may include units for performing the methods of the foregoing embodiments. Furthermore, each unit in the device 2000 is configured to implement the corresponding process of the above-described method embodiments.

[0206] The device 2000 includes a transceiver unit 2010, which can be used to implement corresponding data acquisition or transmission and reception functions. The device 2000 also includes a processing unit 2020, which can be used to implement corresponding processing functions.

[0207] Optionally, the device 2000 further includes a storage unit, which can be used to store instructions and / or data. The processing unit 2020 can read the instructions and / or data in the storage unit so that the device can perform the relevant actions in the aforementioned method embodiments.

[0208] It should be understood that the specific process of each unit performing the above-mentioned corresponding steps has been described in detail in the above method embodiments, and will not be repeated here for the sake of brevity.

[0209] It should also be understood that the device 2000 described herein is embodied in the form of a functional unit. The terms “module” or “unit” may refer to application-specific ASICs, electronic circuits, processors (e.g., shared processors, proprietary processors, or group processors) and memory for executing one or more software or firmware programs, integrated logic circuits, and / or other suitable components that support the described functions.

[0210] The aforementioned device 2000 has the function of implementing the corresponding steps in the aforementioned method. The function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions; for example, the transceiver unit can be replaced by a transceiver, and other units, such as the processing unit, can be replaced by a processor, used to execute the relevant processing operations in each method embodiment.

[0211] For example, the transceiver unit 2010 and the processing unit 2020 can be located in the vehicle 100 shown in FIG. 1, or they can be located in the system shown in FIG. 2. More specifically, the transceiver unit 2010 and the processing unit 2020 can be located in the built-in proxy service module shown in FIG. 2. For example, the operations performed by the transceiver unit 2010 and the processing unit 2020 can be performed by a single processor, or they can be performed by different processors. In specific implementation, the one or more processors can be processors located in the vehicle 100 shown in FIG. 1; or, the device 2000 can be a chip located in the vehicle 100.

[0212] The processor in this application is a circuit with signal processing capabilities. In one implementation, the processor can be a circuit with instruction read and execute capabilities, such as a central processing unit (CPU), a microprocessor, a graphics processing unit (GPU) (which can be understood as a type of microprocessor), or a digital signal processor (DSP). In another implementation, the processor can implement certain functions through the logical relationships of hardware circuits. These logical relationships are fixed or reconfigurable. For example, the processor is a hardware circuit implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD), such as a field-programmable gate array (FPGA). In a reconfigurable hardware circuit, the process of the processor loading a configuration document and configuring the hardware circuit can be understood as the process of the processor loading instructions to implement the functions of some or all of the above units. In addition, a processor can also be a hardware circuit designed for artificial intelligence, which can be understood as a type of ASIC, such as a neural network processing unit (NPU), a tensor processing unit (TPU), a deep learning processing unit (DPU), etc.

[0213] In the specific implementation process, the units in the above device can be fully or partially integrated together, or they can be implemented independently. In one implementation, these units are integrated together and implemented in the form of a system-on-a-chip (SoC).

[0214] Figure 14 is another schematic block diagram of the communication device provided in an embodiment of this application. The communication device 2100 shown in Figure 14 may include a processor 2110, a transceiver 2120, and a memory 2130. The processor 2110, transceiver 2120, and memory 2130 are connected via internal connection paths. The memory 2130 is used to store instructions, and the processor 2110 is used to execute the instructions stored in the memory 2130 to implement the methods in the above embodiments. Optionally, the memory 2130 may be coupled to the processor 2110 via an interface or integrated with the processor 2110.

[0215] It should be noted that the transceiver 2120 mentioned above may include, but is not limited to, transceiver devices such as input / output interfaces, to realize communication between device 2100 and other devices or communication networks.

[0216] Memory 2130 can be volatile memory and / or non-volatile memory. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM). For example, RAM can be used as an external cache. By way of example and not limitation, RAM includes a variety of forms such as: static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).

[0217] Transceiver 2120 uses transceiver devices, such as but not limited to transceivers, to enable communication between device 2100 and other devices or communication networks to receive / send data / information for implementing the methods in the above embodiments.

[0218] This application also provides an intelligent driving device, which includes the aforementioned device 2000 or device 2100.

[0219] This application also provides a computer program product, which includes computer program code. When the computer program code is run on a computer, it causes the computer to implement the methods described in the above embodiments of this application.

[0220] This application also provides a computer-readable storage medium storing computer instructions that, when executed on a computer, cause the computer to implement the methods described in the above embodiments of this application.

[0221] This application also provides a chip, including circuitry, for performing the methods described in the above embodiments of this application.

[0222] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0223] In the description of the embodiments of this application, unless otherwise stated, " / " means "or", for example, A / B can mean A or B; "and / or" in this document describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. In this application, "at least one" means one or more, and "more" means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0224] The use of prefixes such as "first" and "second" in this application embodiment is solely for distinguishing different descriptive objects and does not limit the position, order, priority, quantity, or content of the described objects. The use of ordinal numbers and other prefixes to distinguish descriptive objects in this application embodiment does not constitute a limitation on the described objects. The description of the described objects is found in the claims or the context of the embodiments, and the use of such prefixes should not constitute unnecessary restrictions.

[0225] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0226] In the various embodiments of this application, unless otherwise specified or in case of logical conflict, the terminology and / or descriptions between the various embodiments are consistent and can be referenced by each other. Technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.

[0227] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0228] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0229] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A communication method, characterized in that, Applied to the first server, including: Receive a proxy request message, the proxy request message indicating that the first client has received P service messages of the first event, the P service messages being included in N service messages of the first event sent by the first server, where P is an integer greater than or equal to zero, and N is a positive integer; Based on the proxy request message, determine whether to retransmit the service message of the first event to the first client.

2. The method according to claim 1, characterized in that, The method further includes: Send a first proxy notification message, which indicates the N service messages that have been sent.

3. The method according to claim 2, characterized in that, Sending the first proxy notification message includes: The first proxy notification message is sent according to the first cycle, and when or after receiving the proxy request message indicating that all N service messages have been received, the sending of the first proxy notification message is stopped, or the part of the first proxy notification message associated with the first event is stopped.

4. The method according to claim 1, characterized in that, The method further includes: Send a first service message for the first event. The first service message is the first frame service message of the first event transmitted after the first event is subscribed to. The first service message instructs the client subscribing to the first event to start a first timer. The first timer instructs the client to provide feedback on the reception status of the service message of the first event.

5. The method according to any one of claims 1 to 4, characterized in that, The step of determining whether to retransmit the service message of the first event to the first client based on the proxy request message includes: When P is not equal to N, retransmit the service messages other than the P service messages from the N service messages to the first client.

6. The method according to any one of claims 1 to 5, characterized in that, The value of N is associated with a first reliability level, which indicates that reliable transmission of N messages is guaranteed. The first reliability level indicates any of the following: The reliability of the first event; The reliability of the first event group, which includes the first event; or... The reliability of the first service, which is associated with at least one event, including the first event.

7. The method according to claim 6, characterized in that, The N messages are the messages that are closest to the first moment among the sent service messages associated with the first event, and the first moment is the moment when the proxy request message is received.

8. The method according to claim 6 or 7, characterized in that, The method further includes: Receive a first subscription message from a second client, the first subscription message instructing the second client to subscribe to the first event and a second reliability level, the second reliability level indicating the reliability level of the first event desired by the second client; When the second reliability level is less than or equal to the first reliability level, a subscription success response message is sent to the second client; or... When the second reliability level is greater than the first reliability level, a subscription failure response message is sent to the second client.

9. The method according to claim 6 or 7, characterized in that, The method further includes: Send a first offer message to the third client, the first offer message indicating the first reliability level provided by the first server; A second subscription message is received from the third client, the second subscription message instructing the third client to subscribe to the first event and a third reliability level, the third reliability level being less than or equal to the first reliability level.

10. The method according to any one of claims 1 to 9, characterized in that, The first server is associated with at least one storage space, each of which is used to store a business message for an event. The method further includes: Store the N service messages in the first storage space; The first storage space is associated with the first event, and the size of the first storage space is equal to the product of the size of each service message of the first event and N.

11. The method according to claim 2 or 3, characterized in that, The fourth client subscribes to the events of the second service of the first server, and the sending of the first proxy notification message includes: When the number of clients subscribing to events associated with the service from the first server is less than a first threshold, the first proxy notification message is sent to the first client via unicast; or, When the number of clients subscribing to events associated with the service from the first server is greater than or equal to the first threshold, a second proxy notification message is sent to the first client and the fourth client via multicast. The second proxy notification message includes business messages associated with multiple services, wherein the multiple services are the services subscribed to by the client from the first server.

12. The method according to claim 2 or 3, characterized in that, The first agent notification message also indicates M service messages of the second event that have been sent, where M is a positive integer; The value of M is associated with the fourth reliability level, which indicates that the most recent M-frame message is guaranteed to be reliably transmitted. The fourth reliability level indicates any of the following: The reliability of the second event; The reliability of the second event group, which includes the second event; or... The reliability of the second service, which is associated with at least one event, including the second event.

13. A communication method, characterized in that, Applied to the first client, including: Send a proxy request message to the first server. The proxy request message indicates P service messages of the first event that have been received. The P service messages are included in the N service messages of the first event that have been sent by the first server. Here, P is an integer greater than or equal to zero and N is a positive integer. When P is not equal to N, receive service messages from the N service messages from the first server, excluding the P service messages.

14. The method according to claim 13, characterized in that, The method further includes: Receive a first proxy notification message, which indicates the N service messages that the first server has sent.

15. The method according to claim 13, characterized in that, The method further includes: Receive a first service message from the first server, wherein the first service message is the first frame service message of the first event transmitted after the first event is subscribed; Start the first timer according to the first service message; Sending the proxy request message to the first server includes: When or after the first timer expires, the proxy request message is sent to the first server.

16. The method according to claim 13, characterized in that, The method further includes: When the first client subscribes to the first event, the second timer is started; Sending the proxy request message to the first server includes: When or after the second timer expires, the proxy request message is sent to the first server.

17. The method according to any one of claims 13 to 16, characterized in that, The value of N is associated with a first reliability level, which indicates that reliable transmission of N messages is guaranteed. The first reliability level indicates any of the following: The reliability of the first event; The reliability of the first event group, which includes the first event; or... The reliability of the first service, which is associated with at least one event, including the first event.

18. The method according to claim 17, characterized in that, The N messages are the messages that are closest to the first moment among the sent service messages associated with the first event, and the first moment is the moment when the proxy request message is received.

19. The method according to claim 17 or 18, characterized in that, The method further includes: A first subscription message is sent to the first server, the first subscription message instructing the first client to subscribe to the first event and a second reliability level, the second reliability level indicating the reliability level of the first event desired by the first client.

20. The method according to claim 17 or 18, characterized in that, The method further includes: Receive a first offer message from the first server, the first offer message indicating the first reliability level provided by the first server; When the third reliability level required by the first client is lower than the first reliability level, a second subscription message is sent to the first server, the second subscription message indicating the first event and the third reliability level; or... When the third reliability level required by the first client is greater than or equal to the first reliability level, a third subscription message is sent to the first server, the third subscription message indicating the first event and the first reliability level.

21. The method according to any one of claims 13 to 20, characterized in that, The method further includes: If no proxy response message is received from the first server within a first time period after sending the proxy request message, the proxy request message is resent, and the proxy response message indicates that the first server has received the proxy request message.

22. The method according to claim 14, characterized in that, The first proxy notification message also indicates the M business messages of the second event that the first server has sent, where M is a positive integer; The value of M is associated with the fourth reliability level, which indicates that the most recent M-frame message is guaranteed to be reliably transmitted. The fourth reliability level indicates any of the following: The reliability of the second event; The reliability of the second event group, which includes the second event; or... The reliability of the second service, which is associated with at least one event, including the second event.

23. A communication device, characterized in that, Located on the first server, the device includes: The transceiver unit is used to receive a proxy request message, which indicates that the first client has received P service messages of the first event. The P service messages are included in the N service messages of the first event sent by the first server, where P is an integer greater than or equal to zero and N is a positive integer. The processing unit is configured to determine, based on the proxy request message, whether to retransmit the service message of the first event to the first client.

24. The apparatus according to claim 23, characterized in that, The transceiver unit is also used for: Send a first proxy notification message, which indicates the N service messages that have been sent.

25. The apparatus according to claim 24, characterized in that, The transceiver unit is used for: The first proxy notification message is sent according to the first cycle, and when or after receiving the proxy request message indicating that all N service messages have been received, the sending of the first proxy notification message is stopped, or the part of the first proxy notification message associated with the first event is stopped.

26. The apparatus according to claim 23, characterized in that, The transceiver unit is also used for: Send a first service message for the first event. The first service message is the first frame service message of the first event transmitted after the first event is subscribed to. The first service message instructs the client subscribing to the first event to start a first timer. The first timer instructs the client to provide feedback on the reception status of the service message of the first event.

27. The apparatus according to any one of claims 23 to 26, characterized in that, The processing unit is used for: When P is not equal to N, the transceiver unit is controlled to retransmit the service messages other than the P service messages from the N service messages to the first client.

28. The apparatus according to any one of claims 23 to 27, characterized in that, The value of N is associated with a first reliability level, which indicates that reliable transmission of N messages is guaranteed. The first reliability level indicates any of the following: The reliability of the first event; The reliability of the first event group, which includes the first event; or... The reliability of the first service, which is associated with at least one event, including the first event.

29. The apparatus according to claim 28, characterized in that, The N messages are the messages that are closest to the first moment among the sent service messages associated with the first event, and the first moment is the moment when the proxy request message is received.

30. The apparatus according to claim 28 or 29, characterized in that, The transceiver unit is also used for: Receive a first subscription message from a second client, the first subscription message instructing the second client to subscribe to the first event and a second reliability level, the second reliability level indicating the reliability level of the first event desired by the second client; When the second reliability level is less than or equal to the first reliability level, a subscription success response message is sent to the second client; or... When the second reliability level is greater than the first reliability level, a subscription failure response message is sent to the second client.

31. The apparatus according to claim 28 or 29, characterized in that, The transceiver unit is also used for: Send a first offer message to the third client, the first offer message indicating the first reliability level provided by the first server; A second subscription message is received from the third client, the second subscription message instructing the third client to subscribe to the first event and a third reliability level, the third reliability level being less than or equal to the first reliability level.

32. The apparatus according to any one of claims 23 to 31, characterized in that, The first server is associated with at least one storage space, each of which is used to store a business message for an event. The processing unit is further configured to: Store the N service messages in the first storage space; The first storage space is associated with the first event, and the size of the first storage space is equal to the product of the size of each service message of the first event and N.

33. The apparatus according to claim 24 or 25, characterized in that, The fourth client subscribes to events of the second service of the first server, and the transceiver unit is used for: When the number of clients subscribing to events associated with the service from the first server is less than a first threshold, the first proxy notification message is sent to the first client in a unicast manner. or, When the number of clients subscribing to events associated with the service from the first server is greater than or equal to the first threshold, a second proxy notification message is sent to the first client and the fourth client via multicast. The second proxy notification message includes business messages associated with multiple services, wherein the multiple services are the services subscribed to by the client from the first server.

34. The apparatus according to claim 24 or 25, characterized in that, The first agent notification message also indicates M service messages of the second event that have been sent, where M is a positive integer; The value of M is associated with the fourth reliability level, which indicates that the most recent M-frame message is guaranteed to be reliably transmitted. The fourth reliability level indicates any of the following: The reliability of the second event; The reliability of the second event group, which includes the second event; or... The reliability of the second service, which is associated with at least one event, including the second event.

35. A communication device, characterized in that, Located on the first client, the device includes a transceiver unit for: Send a proxy request message to the first server. The proxy request message indicates P service messages of the first event that have been received. The P service messages are included in the N service messages of the first event that have been sent by the first server. Here, P is an integer greater than or equal to zero and N is a positive integer. When P is not equal to N, receive service messages from the N service messages from the first server, excluding the P service messages.

36. The apparatus according to claim 35, characterized in that, The transceiver unit is also used for: Receive a first proxy notification message, which indicates the N service messages that the first server has sent.

37. The apparatus according to claim 35, characterized in that, The transceiver unit is also used for: Receive a first service message from the first server, wherein the first service message is the first frame service message of the first event transmitted after the first event is subscribed; The device further includes a processing unit for: Start the first timer according to the first service message; The transceiver unit is used for: When or after the first timer expires, the proxy request message is sent to the first server.

38. The apparatus according to claim 35, characterized in that, The device further includes a processing unit for: When the first client subscribes to the first event, the second timer is started; The transceiver unit is used for: When or after the second timer expires, the proxy request message is sent to the first server.

39. The apparatus according to any one of claims 35 to 38, characterized in that, The value of N is associated with a first reliability level, which indicates that reliable transmission of N messages is guaranteed. The first reliability level indicates any of the following: The reliability of the first event; The reliability of the first event group, which includes the first event; or... The reliability of the first service, which is associated with at least one event, including the first event.

40. The apparatus according to claim 39, characterized in that, The N messages are the messages that are closest to the first moment among the sent service messages associated with the first event, and the first moment is the moment when the proxy request message is received.

41. The apparatus according to claim 39 or 40, characterized in that, The transceiver unit is also used for: A first subscription message is sent to the first server, the first subscription message instructing the first client to subscribe to the first event and a second reliability level, the second reliability level indicating the reliability level of the first event desired by the first client.

42. The apparatus according to claim 39 or 40, characterized in that, The transceiver unit is also used for: Receive a first offer message from the first server, the first offer message indicating the first reliability level provided by the first server; When the third reliability level required by the first client is lower than the first reliability level, a second subscription message is sent to the first server, the second subscription message indicating the first event and the third reliability level; or, When the third reliability level required by the first client is greater than or equal to the first reliability level, a third subscription message is sent to the first server, the third subscription message indicating the first event and the first reliability level.

43. The apparatus according to any one of claims 35 to 42, characterized in that, The transceiver unit is also used for: If no proxy response message is received from the first server within a first time period after sending the proxy request message, the proxy request message is resent, and the proxy response message indicates that the first server has received the proxy request message.

44. The apparatus according to claim 36, characterized in that, The first proxy notification message also indicates the M business messages of the second event that the first server has sent, where M is a positive integer; The value of M is associated with the fourth reliability level, which indicates that the most recent M-frame message is guaranteed to be reliably transmitted. The fourth reliability level indicates any of the following: The reliability of the second event; The reliability of the second event group, which includes the second event; or... The reliability of the second service, which is associated with at least one event, including the second event.

45. A communication device, characterized in that, include: A processor for executing a computer program stored in a memory, such that the apparatus performs the method as described in any one of claims 1 to 12; Alternatively, the method as described in any one of claims 13 to 22 may be performed.

46. ​​A computer-readable storage medium, characterized in that, It stores instructions that, when executed by a processor, implement the method as described in any one of claims 1 to 12; or implement the method as described in any one of claims 13 to 22.

47. A chip, characterized in that, The chip includes a circuit for performing the method as described in any one of claims 1 to 12; or, performing the method as described in any one of claims 13 to 22.

48. A computer program product, characterized in that, The computer program product includes: computer program code, which, when executed by a processor, implements the method as described in any one of claims 1 to 12; or implements the method as described in any one of claims 13 to 22.

49. A vehicle, characterized in that, Includes the apparatus as described in any one of claims 23 to 45, or the computer-readable storage medium as described in claim 46, or the chip as described in claim 47, or the vehicle is equipped with the computer program product as described in claim 48.