KR20200003716A - Method and device for inter-process communication in a network - Google Patents

Method and device for inter-process communication in a network Download PDF

Info

Publication number
KR20200003716A
KR20200003716A KR1020190068264A KR20190068264A KR20200003716A KR 20200003716 A KR20200003716 A KR 20200003716A KR 1020190068264 A KR1020190068264 A KR 1020190068264A KR 20190068264 A KR20190068264 A KR 20190068264A KR 20200003716 A KR20200003716 A KR 20200003716A
Authority
KR
South Korea
Prior art keywords
application
library
destination application
port
communication
Prior art date
Application number
KR1020190068264A
Other languages
Korean (ko)
Inventor
윌포드 에빌레이
레온 조센 대니얼 오 드
마이클 존 씨 레이즈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/460,563 priority Critical patent/US11025753B2/en
Publication of KR20200003716A publication Critical patent/KR20200003716A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/32
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions

Abstract

The present disclosure relates to a system for communicating between processes in a network and applications thereof. According to an embodiment of the present disclosure, a communication method comprises the steps of: inspecting a registration request of a source application for communicating with a destination application; determining, according to the inspection result, a port for communicating with the destination application; transmitting a communication request to the destination application through the determined port; and causing the source application to connect with the destination application based on the communication request.

Description

네트워크 내에서의 프로세스 간 통신 방법 및 디바이스 {METHOD AND DEVICE FOR INTER-PROCESS COMMUNICATION IN A NETWORK}Interprocess communication method and device in network {METHOD AND DEVICE FOR INTER-PROCESS COMMUNICATION IN A NETWORK}

실시예들은 네트워크 내 프로세스 간 통신 방법 및 디바이스에 관한 것으로서, 보다 구체적으로는 네트워크를 사용하여 애플리케이션이 다른 애플리케이션과 보안이 강화된 통신을 하는 방법 및 장치에 관한 것이다.Embodiments relate to a method and a device for interprocess communication in a network, and more particularly, to a method and an apparatus in which an application uses the network to perform security-enhanced communication with another application.

통신 프로토콜은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 규칙의 체계이다. 네트워크를 통해 장치 간에 교환되는 정보는 통신 프로토콜 사양에서 설정할 수 있는 규칙에 따라 관리된다. 네트워킹 프로토콜을 구현하기 위해 프로토콜 소프트웨어 모듈은 기계의 운영 체제에 구현된 프레임워크와 인터페이스된다. 프레임워크로서 Transmission Control Protocol/Internet Protocol (TCP/IP) 모델 또는 Open Systems Interconnection (OSI) 모델이 이용될 수 있다.A communication protocol is a system of rules for sending and receiving messages between computers and telecommunication equipment. Information exchanged between devices over the network is managed according to rules that can be set in the communication protocol specification. To implement the networking protocol, the protocol software module is interfaced with a framework implemented in the machine's operating system. As a framework, the Transmission Control Protocol / Internet Protocol (TCP / IP) model or the Open Systems Interconnection (OSI) model can be used.

위와 같은 기존의 통신 프로토콜은 지연(latency) 및 대역폭의 요구사항으로 인해 차세대 기술을 수용할 수 없다. 또한, 기존의 프로토콜의 구현은 복잡한 물리적 배선과 복잡한 토폴로지의 사용을 수반한다. 이더넷(Ethernet)은 이러한 문제들을 해결할 수 있는 물리적 계층이지만, 시스템이 통신하고자 하는 각 전자 제어 유닛(ECU, Electric Control Unit)의 IP 주소를 필요로 하고, 특정 프로토콜에 대한 전용 포트를 사용하기 때문에 네트워크가 공격받기 쉽다.Such existing communication protocols cannot accommodate the next generation technology due to latency and bandwidth requirements. In addition, the implementation of existing protocols involves the use of complex physical wiring and complex topologies. Ethernet is the physical layer that can solve these problems, but because it requires the IP address of each Electric Control Unit (ECU) that the system wants to communicate with, it uses a dedicated port for a particular protocol. Is susceptible to attack

따라서, 상술한 단점 또는 다른 단점을 해소하거나 적어도 유용한 대안을 제공할 수 있는 프로세스 간 통신 기술에 대한 연구가 필요한 실정이다.Therefore, there is a need for research on interprocess communication techniques that can solve the above or other disadvantages or at least provide a useful alternative.

본 개시가 해결하고자 하는 과제는 전술한 문제를 해결하기 위한 것으로서, 단일 네트워크 내 프로세스 간 통신을 하는 방법 및 디바이스를 제공하여 효율적으로 보안이 강화된 통신을 하기 위한 것이다.Disclosure of Invention Problems to be solved by the present disclosure are to solve the above-described problem, and to provide a method and a device for inter-process communication in a single network to efficiently securely communicate.

또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함하는 컴퓨터 프로그램 제품을 제공하는 데 있다. 해결하려는 기술적 과제는 상기에 기재된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.In addition, a computer program product comprising a computer readable recording medium having recorded thereon a program for executing the method on a computer. Technical problem to be solved is not limited to the technical problem as described above, there may be another technical problem.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 일 실시예는, 하나 이상의 인스트럭션을 저장하는 메모리, 상기 하나 이상의 인스트럭션을 실행하는 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는, 목적지 애플리케이션과 통신하기 위한 소스 애플리케이션의 등록요청의 유효성을 검사하고, 상기 검사 결과에 따라, 상기 목적지 애플리케이션과 통신하기 위한 포트를 결정하고, 상기 결정된 포트를 통해 상기 목적지 애플리케이션으로 통신 요청을 전송하고, 상기 통신 요청에 기초하여 상기 소스 애플리케이션으로 하여금 상기 목적지 애플리케이션과 접속하도록 구성된, 전자 디바이스를 제공할 수 있다.As a technical means for achieving the above-described technical problem, an embodiment of the present disclosure, a memory for storing one or more instructions, at least one processor for executing the one or more instructions, wherein the at least one processor, Validating a registration request of a source application for communicating with a destination application, determining a port for communicating with the destination application, sending a communication request to the destination application through the determined port, according to the check result; Provide the electronic device configured to connect the source application with the destination application based on the communication request.

일 실시예에서, 상기 등록요청은, 상기 목적지 애플리케이션의 이름 및 원하는 QoS(Quality of Services) 중 적어도 하나를 포함하는 전자 디바이스를 제공할 수 있다.In one embodiment, the registration request may provide an electronic device comprising at least one of a name of the destination application and a desired quality of services (QoS).

일 실시예에서, 상기 적어도 하나의 프로세서는, 상기 등록요청에 기초하여 상기 소스 애플리케이션의 제1 라이브러리를 통해 네트워크에 상기 소스 애플리케이션을 등록하도록 더 구성된, 전자 디바이스를 제공할 수 있다.In one embodiment, the at least one processor may provide the electronic device, further configured to register the source application with a network through the first library of source applications based on the registration request.

일 실시예에서, 상기 적어도 하나의 프로세서는, 상기 통신 요청이 물리계층(physical layer)에 도달할 때까지, 상기 통신요청이 적어도 하나 이상의 통신 스택(stack)에 재귀적으로(recursively) 전달하도록 더 구성된, 전자 디바이스를 제공할 수 있다.In one embodiment, the at least one processor is further configured to recursively forward the communication request to at least one communication stack until the communication request reaches a physical layer. Configured, an electronic device can be provided.

일 실시예에서, 상기 적어도 하나의 프로세서는, 상기 통신요청이 상기 목적지 애플리케이션을 제어하는 프로세서에 도달할 때까지 상기 통신요청을 하나 이상의 이더넷(Ethernet) 스위치에 재귀적으로 전송하도록 더 구성된, 전자 디바이스를 제공할 수 있다.In one embodiment, the at least one processor is further configured to recursively transmit the communication request to one or more Ethernet switches until the communication request reaches a processor controlling the destination application. Can be provided.

일 실시예에서, 상기 적어도 하나의 프로세서는, 상기 포트를 동적으로 결정하도록 더 구성된, 전자 디바이스를 제공할 수 있다.In one embodiment, the at least one processor may provide an electronic device, further configured to dynamically determine the port.

일 실시예에서, 상기 적어도 하나의 프로세서는, 상기 결정된 포트를 나타내는 포트 식별자를 결정하도록 더 구성되고, 상기 결정된 포트를 나타내는 포트 식별자는 상기 소스 애플리케이션의 제2 라이브러리에 의해 동적으로 할당된 포트 번호를 포함하는, 전자 디바이스를 제공할 수 있다.In one embodiment, the at least one processor is further configured to determine a port identifier indicative of the determined port, wherein the port identifier indicative of the determined port comprises a port number dynamically assigned by the second library of the source application. It can provide an electronic device, including.

일 실시예에서, 상기 적어도 하나의 프로세서는, 상기 등록요청을 상기 제1 라이브러리로부터 상기 소스 애플리케이션의 제2 라이브러리로 전송하도록 더 구성된, 전자 디바이스를 제공할 수 있다.In one embodiment, the at least one processor may provide the electronic device, further configured to send the registration request from the first library to the second library of the source application.

일 실시예에서, 상기 등록요청은 상기 목적지 애플리케이션의 암호화된 이름 및 인증 키(key)를 포함하는, 전자 디바이스를 제공할 수 있다.In one embodiment, the registration request may provide an electronic device that includes an encrypted name and an authentication key of the destination application.

일 실시예에서, 외부 디바이스와 통신하는 통신부를 더 포함하는, 전자 디바이스를 제공할 수 있다.In one embodiment, the electronic device may further include a communication unit communicating with an external device.

일 실시예에서, 상기 전자 디바이스를 포함하는 차량을 제공할 수 있다.In one embodiment, a vehicle including the electronic device can be provided.

본 개시의 일 실시예에 따르면, 목적지 애플리케이션과 통신하기 위한 소스 애플리케이션의 등록요청의 유효성을 검사하는 단계; 상기 검사의 결과에 따라, 상기 목적지 애플리케이션과 통신하기 위한 포트를 결정하는 단계; 상기 결정된 포트를 통해 상기 목적지 애플리케이션으로 통신요청을 전송하는 단계; 및 상기 통신요청에 기초하여 상기 소스 애플리케이션으로 하여금 상기 목적지 애플리케이션과 접속하도록 하는 단계를 포함하는, 전자 디바이스의 동작 장법을 제공할 수 있다.According to an embodiment of the present disclosure, the method includes: validating a registration request of a source application for communicating with a destination application; Determining, according to a result of the checking, a port for communicating with the destination application; Sending a communication request to the destination application through the determined port; And causing the source application to connect with the destination application based on the communication request.

본 개시의 일 실시예에 따르면, 전자 디바이스 및 전자 디바이스의 동작 방법은, 차량 내 네트워크를 구현하기 위한 전자 디바이스 및 방법을 포함할 수 있다. 방법은 등록요청 및 AUTOSAR(Automobile Open System Architecture) 라이브러리를 통해 소스 애플리케이션을 네트워크에 등록하는 단계, 등록요청이 승인됨에 따라, 목적지 애플리케이션과 통신하기 위한 포트 번호가 결정되는 단계, 소스 애플리케이션이 정해진 포트를 통해 목적지 애플리케이션에 통신요청을 전송하는 단계, 통신요청이 소스 애플리케이션의 RINA(Recursive Inter-Network Architecture) 라이브러리에 의해 처리되고 통신요청이 이더넷(Ethernet) 계층에 도달할 때까지 하나 이상의 하위레벨 RINA DIFs(Distributed IPC Facilities)를 통해 재귀적으로(recursively) 전달하는 단계; 통신요청이 목적지 전자 제어 유닛(ECU, Electric Control Unit)에 도달할 때까지 하나 이상의 이더넷 스위치를 통해 전달되는 단계; 및 수신 된 통신요청이 목적지 애플리케이션의 AUTOSAR 라이브러리와 목적지 애플리케이션에 도달할 때 까지 통신요청을 하나 이상의 상위레벨 RINA DIFs로 재귀적으로 전달되는 단계를 포함할 수 있다. According to an embodiment of the present disclosure, an electronic device and a method of operating the electronic device may include an electronic device and a method for implementing an in-vehicle network. The method includes registering a source application with a network through a registration request and an AUTOSAR library, determining the port number for communicating with the destination application as the registration request is approved, Sending a communication request to the destination application via the one or more low-level RINA DIFs until the communication request is processed by the source application's Recursive Inter-Network Architecture (RINA) library and the communication request reaches the Ethernet layer. Delivering recursively through Distributed IPC Facilities; Passing through the one or more Ethernet switches until the communication request reaches a destination Electric Control Unit (ECU); And recursively forwarding the communication request to one or more higher level RINA DIFs until the received communication request reaches the destination application's AUTOSAR library and the destination application.

본 개시의 일 실시예에 따르면, 시스템은 복수의 전자 제어 유닛으로부터 제1 전자 제어 유닛 내의 소스 애플리케이션 및 제2 전자 제어 유닛 내의 목적지 애플리케이션을 포함할 수 있다. 또한, 소스 애플리케이션은 목적지 애플리케이션과 통신하는 상응하는 AUTOSAR 아키텍처를 포함할 수 있다. 또한, 시스템은 RINA 프로토콜을 구현하기 위해 복수의 전자 제어 유닛들 각각에 대한 하나 이상의 상응하는 분산된 프로세스 간 통신 설비들, 하나 이상의 자동차 구성요소와 복수의 전자 제어 유닛을 연결하는 이더넷 계층의 하나 이상의 이더넷 스위치 및 하나 이상의 이더넷 스위치를 연결하는 중추 스위치를 포함할 수 있다.According to one embodiment of the present disclosure, the system may include a source application in the first electronic control unit and a destination application in the second electronic control unit from the plurality of electronic control units. In addition, the source application may include a corresponding AUTOSAR architecture in communication with the destination application. In addition, the system may include one or more corresponding distributed interprocess communication facilities for each of the plurality of electronic control units, one or more of the Ethernet layers connecting the one or more automotive components and the plurality of electronic control units to implement the RINA protocol. It may include an Ethernet switch and a central switch connecting one or more Ethernet switches.

본 개시의 실시예는, 전체 네트워크의 토폴로지를 단순화 하여 단일 네트워크에 네트워크를 통합함으로써, 이더넷과 같은 물리적 계층에 의해 제공되는 높은 대역폭을 보다 효과적으로 이용할 수 있도록 한다.Embodiments of the present disclosure simplify the topology of the entire network to integrate the network into a single network, thereby enabling more efficient use of the high bandwidth provided by the physical layer, such as Ethernet.

또한, 본 개시의 실시예는, 전자 디바이스는 다른 전자 디바이스와 상호 정보 교환이 쉽게 가능할 수 있도록 한다.In addition, embodiments of the present disclosure allow electronic devices to easily exchange information with other electronic devices.

또한, 본 개시의 실시예는, 특정 보안 메커니즘이 아닌 네트워크 설계에 내재되어 있는 보안을 이용하여, 알려진 포트나 공공 주소의 필요 없이 동적 할당된 포트 및 주소를 사용하여 보안을 강화할 수 있다.In addition, embodiments of the present disclosure may use security inherent in network design, rather than specific security mechanisms, to enhance security using dynamically assigned ports and addresses without the need for known ports or public addresses.

또한, 본 개시의 실시예는, 이더넷과 같은 물리적 계층을 이용한 간단한 배선으로 네트워크를 구현하여 디바이스 간 통신에 있어 경제적 비용을 절감시킬 수 있다.In addition, embodiments of the present disclosure, by implementing a network with a simple wiring using a physical layer, such as Ethernet can reduce the economic cost in communication between devices.

본 개시의 다른 특징들 및 이점들은 다음의 상세한 설명 및 첨부된 도면들로부터 명백해질 것이다.Other features and advantages of the disclosure will be apparent from the following detailed description and the accompanying drawings.

도 1은 일 실시예에 따른 네트워크 내에서 소스 애플리케이션과 목적지 애플리케이션이 통신하는 시스템을 나타내는 블록도이다.
도 2는 일 실시예에 따른 소스 애플리케이션이 목적지 애플리케이션과 통신하기 위한 방법의 흐름도이다.
도 3은 일 실시예에 따른 재귀적 네트워크 아키텍처를 기반으로 동작하는 네트워크 내에서 애플리케이션 간 통신하기 위한 방법의 흐름도이다.
도 4는 일 실시예에 따른 제1 전자 제어 유닛(ECU)가 제2 전자 제어 유닛(ECU)과 통신하는 방법을 나타내는 흐름도이다.
도 5는 일 실시예에 따른 RINA(Recursive Internetwork Architecture) 구조를 설명하기 위한 블록도이다.
도 6은 일 실시예에 따른 차량 내 네트워크에서 네트워크 토폴로지를 나타내는 블록도이다.
도 7은 일 실시예에 따른 통신 스택(stack)의 구조를 나타내는 블록도이다.
도 8은 일 실시예에 따른 전자 디바이스의 블록도이다.
1 is a block diagram illustrating a system in which a source application and a destination application communicate within a network according to an embodiment.
2 is a flowchart of a method for a source application to communicate with a destination application according to one embodiment.
3 is a flowchart of a method for communicating between applications in a network operating based on a recursive network architecture, according to one embodiment.
4 is a flowchart illustrating a method in which a first electronic control unit ECU communicates with a second electronic control unit ECU according to an embodiment.
FIG. 5 is a block diagram illustrating a Recursive Internetwork Architecture (RINA) structure according to an embodiment. FIG.
6 is a block diagram illustrating a network topology in an in-vehicle network, according to an exemplary embodiment.
7 is a block diagram illustrating a structure of a communication stack according to an embodiment.
8 is a block diagram of an electronic device according to an embodiment.

아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 실시예들은 다양한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 실시예들을 명확하게 설명하기 위해 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the accompanying drawings will be described in detail to be easily carried out by those of ordinary skill in the art. However, the embodiments may be implemented in various forms and are not limited to the embodiments described herein. In the drawings, parts irrelevant to the description are omitted for clarity of description, and like reference numerals designate like parts throughout the specification.

본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.The terms used in the present disclosure selected general terms widely used as far as possible in consideration of functions in the present disclosure, but may vary according to the intention or precedent of a person skilled in the art, the emergence of new technologies, and the like. In addition, in certain cases, there is also a term arbitrarily selected by the applicant, in which case the meaning will be described in detail in the description of the corresponding disclosure. Therefore, the terms used in the present disclosure should be defined based on the meanings of the terms and the contents throughout the present disclosure, rather than simply the names of the terms.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. "포함하다" 또는 "가지다" 등의 용어는 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 특히, 숫자들은 이해를 돕기 위한 예로서, 기재된 숫자들에 의해 실시예들이 한정되는 것으로 이해되지 말아야 한다.Singular expressions include plural expressions unless the context clearly indicates otherwise. The terms "comprise" or "have" are intended to indicate that a feature, number, step, action, component, part, or combination thereof exists, and that one or more other features or numbers, steps, actions, configurations It should be understood that it does not preclude the presence or possibility of addition of elements, parts or combinations thereof. In particular, numbers should not be construed as limiting the embodiments by the numbers described, as examples for ease of understanding.

"적어도 하나의"와 같은 표현은, 구성요소들의 리스트 전체를 수식하고, 그 리스트의 구성요소들을 개별적으로 수식하지 않는다. 예를 들어, "A, B, 및 C 중 적어도 하나"는 오직 A, 오직 B, 오직 C, A와 B 모두, B와 C 모두, A와 C 모두, A와 B와 C 전체, 또는 그 조합을 가리킨다.An expression such as "at least one" modifies the entire list of components and does not individually qualify the components of the list. For example, "at least one of A, B, and C" means only A, only B, only C, both A and B, both B and C, both A and C, all of A and B and C, or a combination thereof. Point to.

제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되지는 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 항목들의 조합 또는 복수의 관련된 항목들 중의 어느 하나의 항목을 포함한다.Terms including ordinal numbers such as first and second may be used to describe various components, but the components are not limited by the terms. The terms are only used to distinguish one component from another. For example, without departing from the scope of the present disclosure, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. The term and / or includes any one of a plurality of related items or a combination of a plurality of related items.

또한, 본 개시에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 특성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.Also, as used herein, the term "part" means a hardware component such as software, FPGA, or ASIC, and "part" plays certain roles. However, "part" is not meant to be limited to software or hardware. The “unit” may be configured to be in an addressable storage medium and may be configured to play one or more processors. Thus, as an example, a "part" refers to components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, procedures, Subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays and variables. The functionality provided within the components and "parts" may be combined into a smaller number of components and "parts" or further separated into additional components and "parts".

또한, 본 개시에서 AUTOSAR는 개방형 자동차 표준 소프트웨어 구조 (Automotive Open System Architecture)"의 준말이며 자동차의 전자 제어 유닛(electric control unit;ECU)의 표준화된 개방 소프트웨어 아키텍처를 지칭한다. 해당 표준은 서로 다른 제조사의 자동차와 서로 다른 공급 업체의 전자 부품들과 호환되고 확장 가능한 아키텍처를 구축하기 위한 자동차 관련 이해당사자들의 동업을 통해 개발되었다. AUTOSAR API(Application Programming Interface)의 사용을 통해 네트워크는 자동차의 구성들과 상호작동할 수 있다.Also, in the present disclosure, AUTOSAR is short for "Automotive Open System Architecture" and refers to a standardized open software architecture of an automotive electronic control unit (ECU). The standard refers to different manufacturers. Was developed through the collaboration of automotive stakeholders to build an architecture that is compatible and extensible with automotive and other suppliers' electronic components, through the use of the AUTOSAR Application Programming Interface (API). Can interoperate.

또한 본 개시에서, 프로세스 간 통신 (inter-process communication;IPC)는, 프로세스들이 서로 통신하고 프로세스들이 그들의 동작들을 동기화하는 방식의 통신을 지칭한다. 프로세스 간 통신에서, 두 개 이상의 프로세스가 동시에 가동될 때, 리소스를 공유할 수 있는 공유 메모리가 이용될 수 있다. 예를 들어, 제1 프로세스가 가동되고 있고 가동 결과가 공유 메모리에 저장될 수 있고, 제2 프로세스는 공유 메모리에 접근하여 제1 프로세스의 가동 결과를 이용할 수 있다. 프로세스 간 통신에서, 하나의 프로세스가 다른 프로세스와 통신 링크를 설정하는 메시지가 전달될 수 있다. 그 메시지는 통신 링크 사이에서 전달되며, 메시지의 머리말은 수신자와 그 수신자가 수행할 프로세스를 결정하는 데 이용될 수 있다.Also in the present disclosure, inter-process communication (IPC) refers to communication in a manner in which processes communicate with each other and the processes synchronize their operations. In interprocess communication, when more than one process is running at the same time, shared memory can be used that can share resources. For example, the first process is running and the running result can be stored in the shared memory, and the second process can access the shared memory to use the running result of the first process. In interprocess communication, a message may be delivered in which one process establishes a communication link with another process. The message is passed between communication links, and the header of the message can be used to determine the recipient and the process that the recipient will perform.

또한, 본 개시에서, Distributed IPC Facility (DIF) 는 네트워크 시스템 내에서 IPC 프로세스들로 구성된 계층을 지칭한다. DIF 계층들은 상위 애플리케이션 프로세스를 위한 다른 정책들 또는 기능들을 가지고 같은 프로세스들을 실행할 수 있다. 동시에 상위 애플리케이션 프로세스는 서비스의 더 넓은 유효범위를 위한 DIF일 수 있다. 서로 다른 엔드 호스트 (end-host)의 두 애플리케이션은 DIF를 통해 통신할 수 있다.In addition, in the present disclosure, Distributed IPC Facility (DIF) refers to a layer composed of IPC processes within a network system. The DIF layers can execute the same processes with different policies or functions for the higher application process. At the same time, the upper application process may be a DIF for a broader scope of services. Two applications on different end hosts can communicate via DIF.

또한, 본 개시에서 Recursive Internetwork Architecture (RINA) 는 프로세스 간 통신 기반의 네트워크 아키텍처를 지칭한다. RINA 에서, DIF들이 IPC 서비스를 서로에게 제공할 수 있도록 DIF들은 반복된다(recursed). OSI 모델을 따르는 기존의 네트워크 아키텍처와는 달리, RINA에서 모든 DIF 계층은 정해진 특정 기능을 갖고 있지는 않지만, 대신 상이한 유효범위(scope)와 구동 중인 미디어 (underlying media) 를 넘어 같은 기능을 수행할 수 있고, 계층의 수 또한 정해져 있지 않을 수 있다. DIF 계층은 필요한 만큼 적층될(stacked) 수 있고, 필요한 프로세스나 애플리케이션에 따라 달라질 수 있다.In addition, in the present disclosure, Recursive Internetwork Architecture (RINA) refers to a network architecture based on interprocess communication. In RINA, DIFs are recursed so that DIFs can provide IPC services to each other. Unlike traditional network architectures that follow the OSI model, not all DIF layers in RINA have specific functions, but instead can perform the same function across different scopes and underlying media. However, the number of hierarchies may not be fixed. The DIF layer can be stacked as needed and can vary depending on the process or application required.

또한, 본 개시에서 차량의 전자 제어 유닛 (Electric Control Unit;ECU)은 차량의 하나 이상의 전기 시스템 또는 서브 시스템을 제어할 수 있다. ECU는 자동차 시스템에서 임베디드될 (embeded) 수 있다.일 실시예에서, ECU는 문 제어 유닛 (door control unit, DCU), 엔진 제어 유닛 (engine control unit, ECU), 좌석 제어 유닛, 속력 제어 유닛 (speed control unit, SCU), 컴퓨터 통신 제어 유닛 (telematics control unit, TCU), 송신 제어 유닛, 브레이크 제어 모듈 (brake control module, BCM), 파워트레인 제어 모듈 (power train control module, PCM) 및 배터리 운용 시스템 (battery management system, BMS) 을 포함할 수 있으나, 이에 제한되지 않는다. 예를 들어, 차량 또는 차량의 자동차 시스템과 연결될 수 있는 장치의 전자 제어 유닛 또한 ECU에 포함될 수 있다.In addition, in the present disclosure, an electric control unit (ECU) of a vehicle may control one or more electrical systems or subsystems of the vehicle. The ECU may be embedded in an automotive system. In one embodiment, the ECU is a door control unit (DCU), an engine control unit (ECU), a seat control unit, a speed control unit ( speed control unit (SCU), computer communication control unit (TCU), transmission control unit, brake control module (BCM), power train control module (PCM) and battery operation system (battery management system, BMS), but is not limited thereto. For example, an electronic control unit of a device that can be connected with a vehicle or an automobile system of the vehicle can also be included in the ECU.

또한, 본 개시에서 이더넷(Ethernet)은 LAN, WAN 및 MAN 등에서 활용되는 기술 규격이다. 이더넷은 OSI 모델의 물리 계층에서 신호와 배선, 데이터 링크 계층에서 MAC(Media access control) 패킷과 프로토콜 형식을 정의할 수 있다.Also, in the present disclosure, Ethernet is a technical standard utilized in LAN, WAN, and MAN. Ethernet can define signaling and routing at the physical layer of the OSI model, and media access control (MAC) packets and protocol formats at the data link layer.

아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 본 개시에서 설명되는 특정 실행들은 일 실시예일 뿐이며, 어떠한 방법으로도 본 개시의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 및 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다.Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present disclosure. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. The specific implementations described in this disclosure are only one embodiment and in no way limit the scope of the disclosure. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of the systems may be omitted.

이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 따른 네트워크 내 소스 애플리케이션과 목적지 애플리케이션이 통신하는 시스템을 나타내는 블록도이다.1 is a block diagram illustrating a system in which a source application and a destination application in a network communicate, according to an embodiment.

도 1을 참조하면, 시스템은 프로토콜(106)이 내장된 라이브러리(104) 및 소스 애플리케이션(102)을 포함하는 제1 ECU(100), 프로토콜이 내장된 라이브러리 및 목적지 애플리케이션(122)을 포함하는 제2 ECU(120), 하나 이상의 상위 레벨 DIF(140, 150), 하나 이상의 하위레벨 DIF(161, 163, 165, 167, 169), 하나 이상의 라우터(192, 194, 196, 198) 및 이더넷 계층에서의 하나 이상의 이더넷 스위치(181, 182, 183, 184, 185, 186)를 포함할 수 있다. 여기서는 통신 계층을 DIF로 표현하고 물리 계층을 이더넷 계층으로 표현하였으나, DIF 또는 이더넷이 아닌 다른 통신 계층 또는 물리 계층일 수 있다. 또한, 라우터(192, 194, 196, 198)는 경계 라우터(192, 194, 198), 중추 라우터(196), 내부 라우터, 지정 라우터 및 백업 지정 라우터 중 적어도 하나일 수 있으나, 이에 제한되는 것은 아니다.Referring to FIG. 1, a system includes a first ECU 100 including a library 104 with embedded protocol 106 and a source application 102, a first including an embedded library and a destination application 122 with a protocol. At the ECU 120, at least one higher level DIF 140, 150, at least one lower level DIF 161, 163, 165, 167, 169, at least one router 192, 194, 196, 198 and the Ethernet layer. One or more Ethernet switches 181, 182, 183, 184, 185, and 186. Although the communication layer is represented by DIF and the physical layer is represented by the Ethernet layer, it may be a communication layer or a physical layer other than DIF or Ethernet. Also, the routers 192, 194, 196, and 198 may be at least one of the boundary routers 192, 194, and 198, the central router 196, the internal router, the designated router, and the backup designated router, but are not limited thereto. .

제 1 ECU(100) 및 제 2 ECU(120)는 각각 소스 ECU 및 목적지 ECU로 지칭될 수 있다. 일 실시예에서, 제 1 ECU(100) 및 제 2 ECU(120)는 차량을 구성하는 유닛들일 수 있으나, 차량과 연결되는 유닛들일 수도 있다. 제 1 ECU(100)는 차량의 운전자를 보조하기 위한 유닛일 수 있다. 예를 들어, 제 1 ECU(100)는 첨단 운전자 보조 시스템 (advanced driver assistance system;ADAS) ECU 일 수 있으나, 이에 제한되지 않고, 차량과 연결되어 해당 차량을 제어하기 위한 모바일 디바이스, 리모트 디바이스 등일 수도 있다. 일 실시예에서, 제 2 ECU(120)는 제 1 ECU(100) 이외의 유닛일 수 있다. 예를 들어, 제 2 ECU(120)는 카메라 ECU일 수 있으나, 이에 제한되지 않고, 센서 ECU, 에어백(airbag) ECU, 엔진 ECU, 파워 트레인계(powertrain) ECU, 변속기 ECU, 배터리 관리 ECU, 저면계 ECU, 주행 안전 시스템 ECU, 정보게 ECU, HV/EV 시스템 ECU 등 일 수 있다.The first ECU 100 and the second ECU 120 may be referred to as a source ECU and a destination ECU, respectively. In one embodiment, the first ECU 100 and the second ECU 120 may be units constituting the vehicle, but may also be units connected to the vehicle. The first ECU 100 may be a unit for assisting the driver of the vehicle. For example, the first ECU 100 may be an advanced driver assistance system (ADAS) ECU, but is not limited thereto, and may be a mobile device, a remote device, or the like, connected to a vehicle to control the vehicle. have. In one embodiment, the second ECU 120 may be a unit other than the first ECU 100. For example, the second ECU 120 may be a camera ECU, but is not limited thereto, and includes a sensor ECU, an airbag ECU, an engine ECU, a powertrain ECU, a transmission ECU, a battery management ECU, and a bottom surface. It may be a system ECU, a driving safety system ECU, an information crab ECU, or an HV / EV system ECU.

일 실시예에서, 소스 애플리케이션(102)는 차량의 운전자를 보조하기 위한 애플리케이션일 수 있다. 예를 들어, 소스 애플리케이션(102)은 첨단 운전자 보조 시스템 (advanced driver assistance system;ADAS) 애플리케이션일 수 있다. 일 실시예에서 목적지 애플리케이션(122)은 운전자 보조 시스템 애플리케이션 이외에 차량 내에서 구동되는 애플리케이션일 수 있다. 예를 들어, 목적지 애플리케이션(122)은 카메라 애플리케이션, 센서 애플리케이션, 문 제어 애플리케이션, 통신 애플리케이션, 계기판 애플리케이션, 기어 애플리케이션일 수 있으나 이에 제한되는 것은 아니다.In one embodiment, source application 102 may be an application to assist a driver of a vehicle. For example, source application 102 may be an advanced driver assistance system (ADAS) application. In one embodiment, destination application 122 may be an application driven in a vehicle in addition to the driver assistance system application. For example, destination application 122 may be, but is not limited to, a camera application, a sensor application, a door control application, a communication application, a dashboard application, a gear application.

일 실시예에서, 소스 애플리케이션(102)의 라이브러리(104)는 AUTOSAR 라이브러리(104)일 수 있고, AUTOSAR 라이브러리(104)에 내장된 프로토콜(106)은 RINA 프로토콜 (106)일 수 있다. 목적지 애플리케이션(122)의 라이브러리는 AUTOSAR 라이브러리일 수 있고, 목적지 애플리케이션(122)의 AUTOSAR 라이브러리에 내장된 프로토콜은 RINA 프로토콜일 수 있다.In one embodiment, the library 104 of the source application 102 may be an AUTOSAR library 104, and the protocol 106 embedded in the AUTOSAR library 104 may be a RINA protocol 106. The library of the destination application 122 may be an AUTOSAR library, and the protocol embedded in the AUTOSAR library of the destination application 122 may be a RINA protocol.

일 실시예에 따라, 상위레벨 DIF(140, 150)는 애플리케이션(102, 122)와 직접적으로 통신하는 DIF일 수 있다. 반면에, 하위레벨 DIF(161, 163, 165, 167, 169)는 상위 레벨 DIF(140, 150) 또는 이더넷 레이어의 이더넷 스위치(181, 182, 183, 184, 185, 186)와 통신하는 DIF일 수 있다. 상위 레벨 DIF(140, 150)을 위한 프로세스들은 상위 레벨 DIF (140, 150) 와 통신하는 ECU의 애플리케이션을 기초하여 특정될 수 있다, 하위레벨 DIF(161, 163, 165, 167, 169)를 위한 프로세스들은 메시지의 전달 및 차단과 같은 단순한 프로세스들일 수 있지만 이에 제한되는 것은 아니다.According to one embodiment, the higher level DIF 140, 150 may be a DIF in direct communication with the applications 102, 122. On the other hand, the lower level DIF (161, 163, 165, 167, 169) is the DIF that communicates with the higher level DIF (140, 150) or Ethernet switch (181, 182, 183, 184, 185, 186) of the Ethernet layer. Can be. Processes for the higher level DIF 140, 150 may be specified based on the application of the ECU in communication with the higher level DIF 140, 150, for the lower level DIF 161, 163, 165, 167, 169. Processes may be simple processes, such as passing and blocking messages, but are not limited to such.

일 실시예에서 하위레벨 DIF(161, 163, 165, 167, 169)는 이더넷 계층 및 상위 레벨 DIF로 가거나 상위 레벨 DIF로부터 오는 메시지를 전달 또는 차단하는 방화벽으로서의 역할을 할 수 있다. 하위레벨 DIF(161, 163, 165, 167, 169)는 방화벽으로 동작하여, 이더넷과 DIF 사이의 연결을 필터링하고 애플리케이션으로 가거나 애플리케이션으로부터 오는 데이터를 가로챌 수 있다. 필터링 프로세스는 프로세스 단위 또는 포트 단위로 행하여질 수 있다.In one embodiment, the lower level DIFs 161, 163, 165, 167, 169 may serve as firewalls to forward or block messages going to or coming from the Ethernet layer and higher level DIF. Lower-level DIFs 161, 163, 165, 167, and 169 act as firewalls to filter the connection between Ethernet and DIF and intercept data coming into or coming from an application. The filtering process can be done on a per process or per port basis.

일 실시예에 따라, 모든 DIF를 함께 연결하는 것은 중추 라우터(196) 내의 중추 DIF(155)일 수 있다. 중추 DIF(155)는 네트워크의 다른 부분에 있는 DIF가 서로 통신하는 것을 가능하게 할 수 있다. 중추 라우터(196)는 이더넷 스위치(181, 182, 183, 184, 185, 186)를 통해 차례로 모든 ECU를 함께 물리적으로 연결하는 중추 스위치 내에 위치할 수 있다. 이더넷 스위치는 복수의 ECU에 연결될 수 있다. 예를 들어, 차량 내 네트워크의 경우, 첨단 운전자 보조 시스템(ADAS, Advanced Driver Assistance System)의 ECU 및 조명 제어부는 계기판 이더넷 스위치와 연결될 수 있다.According to one embodiment, connecting all the DIFs together may be the central DIF 155 in the central router 196. The backbone DIF 155 may enable DIFs in different parts of the network to communicate with each other. The backbone router 196 may be located within the backbone switch that physically connects all the ECUs together in turn via Ethernet switches 181, 182, 183, 184, 185, 186. The Ethernet switch can be connected to a plurality of ECUs. For example, in an in-vehicle network, the ECU and lighting controls of the Advanced Driver Assistance System (ADAS) can be connected to an instrument cluster Ethernet switch.

일 실시예에 따라, 각 DIF에 주소가 내재될 수 있다. 두 애플리케이션이 통신하기 위해, 두 애플리케이션이 공통 DIF를 가질 수 있다. 두 애플리케이션 간에 공통 DIF가 없는 경우에는, 두 애플리케이션이 공통 DIF를 갖기 위해 기존에 존재하는 DIF에 연결되거나, 새로운 DIF 계층을 생성할 수 있다. 일 실시예에 따르면, 공통 DIF를 갖고 있지 않은 애플리케이션들은 서로 통신할 수 없으므로, 모든 애플리케이션이 각 애플리케이션의 네트워크 주소를 알고, 통신하기 위해 그 주소에 연결되어야 했던 기존의 아키텍처와 달리, 본 개시의 일 실시예에서는 외부의 접근이 제한될 수 있다.According to one embodiment, an address may be embedded in each DIF. In order for two applications to communicate, both applications may have a common DIF. If there is no common DIF between the two applications, the two applications can either connect to an existing DIF to have a common DIF, or create a new DIF layer. According to one embodiment, applications that do not have a common DIF cannot communicate with each other, so unlike the existing architecture in which all applications had to know and connect to each address in order to communicate with each other, one of the present disclosure In embodiments, external access may be restricted.

일 실시예에 따라, 각각의 DIF는 자체 인증, 암호화 및 신뢰 메커니즘을 구현할 수 있는 보안 컨테이너 (securable container) 일 수 있다. 애플리케이션들은 서로 통신하기 위해 공통 DIF에 등록될 수 있다. 공통 DIF에 등록된 애플리케이션들은, 통신하려는 목적지 애플리케이션의 이름을 이용하여 그 목적지 애플리케이션과 통신할 수 있다. 애플리케이션의 네트워크 주소를 이용하여 통신하는 아키텍쳐와 달리, 일 실시예에서는 포트 번호가 애플리케이션, 예를 들어, 목적지 애플리케이션과 통신하려 하는 소스 애플리케이션에게 할당될 수 있다. 포트 번호는 동적으로 할당될 수 있다. 일 실시예에 따르면, 애플리케이션의 주소가 하위 계층에 노출되지 않기 때문에, 표적의 대상이 된 공격에 대한 취약성이 저감될 수 있다. 일 실시예에서, 인증 크레덴셜(credential)이 목적지 애플리케이션과 통신하기 위해 사용될 수 있다. 예를 들어, 추가적인 보안을 위해, 애플리케이션의 이름은 암호화되어 인증 키와 함께 전송될 수 있다.According to one embodiment, each DIF may be a secure container capable of implementing its own authentication, encryption, and trust mechanisms. Applications can be registered with a common DIF to communicate with each other. Applications registered with the common DIF may communicate with that destination application using the name of the destination application with which to communicate. Unlike architectures that communicate using an application's network address, in one embodiment a port number may be assigned to an application, for example, a source application that wants to communicate with a destination application. Port numbers can be dynamically assigned. According to one embodiment, since the address of the application is not exposed to the lower layer, the vulnerability to the targeted attack can be reduced. In one embodiment, authentication credentials may be used to communicate with the destination application. For example, for additional security, the name of the application can be encrypted and sent with the authentication key.

일 실시예에 따라, 특정 보안 메커니즘이 아닌 네트워크 설계에 내재되어 있는 보안을 이용하여, 알려진 포트나 공공 주소의 필요 없이 동적 할당된 포트 및 주소를 사용하여 보안을 강화할 수 있다.According to one embodiment, security inherent in network design, rather than specific security mechanisms, can be used to enhance security using dynamically assigned ports and addresses without the need for known ports or public addresses.

도 2는 일 실시예에 따른 소스 애플리케이션이 목적지 애플리케이션과 통신하기 위한 방법의 흐름도이다.2 is a flowchart of a method for a source application to communicate with a destination application according to one embodiment.

소스 애플리케이션이 목적지 애플리케이션과 통신하기 위한 방법은 전자 디바이스에 의해 수행될 수 있다. 전자 디바이스는 도 1의 시스템이거나, 그 시스템의 일부일 수 있다. 예를 들어, 전자 디바이스는 도 1의 시스템 중 제 1 ECU (100) 일 수 있으나, 이에 제한되지 않는다. 일 실시예에 따라, 목적지 애플리케이션은 소스 애플리케이션과 동일 전자 디바이스 내에서 동작하는 애플리케이션일 수 있고, 별개의 전자 디바이스에서 동작하는 애플리케이션일 수 있다. 예를 들어, 도 1을 참조하면, 소스 애플리케이션은 제 1 ECU (100) 에서 동작하고, 목적지 애플리케이션은 제 2 ECU (120) 에서 동작할 수 있다.The method for the source application to communicate with the destination application may be performed by the electronic device. The electronic device may be or be part of the system of FIG. 1. For example, the electronic device may be the first ECU 100 of the system of FIG. 1, but is not limited thereto. According to one embodiment, the destination application may be an application operating within the same electronic device as the source application, or may be an application operating on a separate electronic device. For example, referring to FIG. 1, the source application may operate on the first ECU 100 and the destination application may operate on the second ECU 120.

210에서 전자 디바이스는 소스 애플리케이션의 등록요청의 유효성을 검사할 수 있다. 일 실시예에 따라, 전자 디바이스는 등록요청이 있는 경우, 소스 애플리케이션을 제1 라이브러리를 통해 네트워크에 등록할 수 있다. 소스 애플리케이션이 등록되는 네트워크는 제 1 ECU 및 제 2 ECU와 모두 연결되어있는 DIF일 수 있으나, 이에 제한되는 것은 아니다. 또한, 소스 애플리케이션을 네트워크에 등록되는 데 이용되는 제 1 라이브러리는 제 1 ECU의 AUTOSAR 라이브러리일 수 있으나, 이에 제한되는 것은 아니다.At 210, the electronic device may validate the registration request of the source application. According to an embodiment, if there is a registration request, the electronic device may register the source application with the network through the first library. The network in which the source application is registered may be a DIF connected to both the first ECU and the second ECU, but is not limited thereto. In addition, the first library used to register the source application to the network may be, but is not limited to, an AUTOSAR library of the first ECU.

일 실시예에서, 등록요청은 목적지 애플리케이션의 이름 및 원하는 QoS(Quality of Service) 중 적어도 하나를 포함할 수 있다. 또한, 전자 디바이스는 등록요청을 소스 애플리케이션의 제1 라이브러리에서 제2 라이브러리로 전송하고, 소스 애플리케이션의 제2 라이브러리가 수신한 등록요청의 유효성을 검사할 수 있다.In one embodiment, the registration request may include at least one of a name of the destination application and a desired quality of service (QoS). In addition, the electronic device may transmit the registration request from the first library of the source application to the second library and check the validity of the registration request received by the second library of the source application.

일 실시예에 따라, 수신한 등록요청을 유효성을 검사하는 제 2 라이브러리는 RINA 프로토콜을 구비한 RINA 라이브러리일 수 있으나 이에 제한되는 것은 아니다. 제 1 ECU는 제 1 라이브러리를 통해 소스 애플리케이션을 네트워크에 등록하는 등의 동작을 통해 외부 디바이스와 통신할 수 있고, 제 1 ECU는 제 2 라이브러리를 통해 등록요청을 검사하는 동작 등을 통해 공통의 DIF를 가지는 제 2 ECU의 목적지 애플리케이션과 통신할 수 있다.According to an embodiment, the second library for validating the received registration request may be, but is not limited to, an RINA library having an RINA protocol. The first ECU may communicate with the external device through an operation such as registering a source application to the network through the first library, and the first ECU may share a common DIF through an operation such as checking a registration request through the second library. Communicate with a destination application of a second ECU having a.

제 1 라이브러리와 제 2 라이브러리는 해당 라이브러리가 수행하는 기능에 따라 구분될 수 있으나, 하나의 라이브러리가 제 1 라이브러리 및 제 2 라이브러리의 역할을 모두 수행할 수 있다. 제 1 라이브러리 및 제 2 라이브러리 각각의 역할들은 복수의 서브 라이브러리에 의해 수행될 수도 있다.The first library and the second library may be classified according to functions performed by the corresponding library, but one library may serve as both the first library and the second library. The roles of each of the first library and the second library may be performed by a plurality of sub libraries.

일 실시예에 따라, 소스 애플리케이션의 제1 라이브러리는 AUTOSAR 라이브러리이고 소스 애플리케이션의 제2 라이브러리는 RINA 라이브러리일 수 있다. 등록요청이 있는 경우, 전자 디바이스는 AUTOSAR 라이브러리를 통해 소스 애플리케이션을 네트워크에 등록할 수 있다. 소스 애플리케이션이 네트워크에 등록되면, 전자 디바이스는 AUTOSAR 라이브러리로부터 RINA 라이브러리로 등록요청을 전송할 수 있다. RINA 라이브러리는 수신된 등록요청의 유효성을 검사할 수 있다. 등록 요청이 유효하지 않으면 해당 방법은 210에서 종료될 수 있다.According to one embodiment, the first library of the source application may be an AUTOSAR library and the second library of the source application may be a RINA library. If there is a registration request, the electronic device can register the source application with the network via the AUTOSAR library. Once the source application is registered with the network, the electronic device can send a registration request from the AUTOSAR library to the RINA library. The RINA library can validate the registration request received. If the registration request is not valid, the method may end at 210.

220에서 전자 디바이스는, 210에서 등록 요청의 유효성 검사 결과에 따라, 소스 애플리케이션이 목적지 애플리케이션과 통신하기 위한 포트를 결정할 수 있다. 또한, 전자 디바이스는 포트를 결정함에 있어 포트 번호를 동적으로 할당하기 위해 동적 라우팅 테이블을 사용할 수 있다. 소스 애플리케이션의 제2 라이브러리는 유효성 검사 결과 등록요청이 유효하다고 판단되면, 소스 애플리케이션의 포트 식별자를 반환할 수 있다.At 220, the electronic device may determine a port for the source application to communicate with the destination application according to the validation result of the registration request at 210. The electronic device can also use the dynamic routing table to dynamically assign port numbers in determining the ports. If it is determined that the registration request is valid, the second library of the source application may return a port identifier of the source application.

예를 들어, 소스 애플리케이션의 제2 라이브러리인 RINA 라이브러리는 등록요청이 유효하다고 판단되면 소스 애플리케이션의 포트를 동적으로 할당하여 얻은 포트 번호를 반환할 수 있다. 반환된 포트 번호를 이용하여 전자 디바이스는 230을 진행할 수 있다.For example, if it is determined that the registration request is valid, the RINA library, which is the second library of the source application, may return a port number obtained by dynamically allocating a port of the source application. Using the returned port number, the electronic device may proceed to 230.

230에서 전자 디바이스는 결정된 포트를 통해 목적지 애플리케이션으로 통신요청을 전송할 수 있다. 통신요청은, 220에서 결정된 포트 및 소스 애플리케이션의 제1 라이브러리를 통해 소스 애플리케이션으로부터 목적지 애플리케이션으로 전송될 수 있다. 또한, 소스 애플리케이션의 제 2 라이브러리는 소스 애플리케이션의 제 1 라이브러리로부터 통신요청을 수신하고, 통신요청이 물리 계층에 도달할 때까지 하나 이상의 하위 레벨 DIF에 재귀적으로(recursively) 전송할 수 있다. 또한, 물리 계층에 도달한 통신요청이 목적지 ECU에 도달할 때까지, 전자 디바이스는 통신요청을 하나이상의 중간 스위치에 재귀적으로 전송할 수 있다. 이에 따라, 통신요청은 목적지 애플리케이션 및 목적지 애플리케이션의 제1 라이브러리에 전송될 수 있다.At 230, the electronic device may send a communication request to the destination application through the determined port. The communication request may be sent from the source application to the destination application via the port determined at 220 and the first library of source applications. In addition, the second library of the source application may receive a communication request from the first library of the source application and recursively send to one or more lower level DIFs until the communication request reaches the physical layer. In addition, the electronic device may recursively transmit the communication request to one or more intermediate switches until the communication request reaching the physical layer reaches the destination ECU. Accordingly, the communication request may be sent to the destination application and the first library of the destination application.

목적지 애플리케이션의 제 1 라이브러리는, 소스 애플리케이션의 제 1 라이브러리와 대응되는 AUTOSAR 라이브러리일 수 있으나, 이에 제한되는 것은 아니다. 목적지 애플리케이션의 제 2 라이브러리는, 소스 애플리케이션의 제 2 라이브러리와 대응되는 RINA 라이브러리일 수 있으나, 이에 제한되는 것은 아니다.The first library of the destination application may be an AUTOSAR library corresponding to the first library of the source application, but is not limited thereto. The second library of the destination application may be, but is not limited to, a RINA library corresponding to the second library of the source application.

일 실시예에서, 목적지 애플리케이션의 제 1 라이브러리 및 제 2 라이브러리는 각각 소스 애플리케이션의 제 1 라이브러리 및 제 2 라이브러리와 동일한 프로토콜이 내장될 수 있다.In one embodiment, the first library and the second library of the destination application may be embedded with the same protocol as the first library and the second library of the source application, respectively.

240에서 전자 디바이스는 통신요청에 기초하여 소스 애플리케이션으로 하여금 목적지 애플리케이션과 접속하게 할 수 있다. 소스 애플리케이션이 목적지 애플리케이션에 접속함으로써 소스 애플리케이션은 목적지 애플리케이션과 서로 통신할 수 있다.At 240, the electronic device may cause the source application to connect with the destination application based on the communication request. As the source application connects to the destination application, the source application can communicate with the destination application.

도 3은 일 실시예에 따른 재귀적 네트워크 아키텍처를 기반으로 동작하는 네트워크 내에서 애플리케이션 간 통신하기 위한 방법의 흐름도이다.3 is a flowchart of a method for communicating between applications within a network operating based on a recursive network architecture, according to one embodiment.

310에서 전자 디바이스는 제1 라이브러리를 통해 소스 애플리케이션을 네트워크에 등록할 수 있다. 예를 들어, 전자 디바이스가 차량 내 디바이스이고, 제1 라이브러리는 AUTOSAR 라이브러리일 수 있다. 이 경우, 전자 디바이스는 등록요청에 기초하여 AUTOSAR 라이브러리를 통해 소스 애플리케이션을 네트워크에 등록할 수 있다. 따라서, AUTOSAR 표준을 만족하는 다른 자동차 구성요소와 상호 정보 교환이 가능할 수 있다. 또한, 이더넷 하드웨어는 중추가 이더넷이기 때문에 RINA 네트워크를 지원할 수 있다. 이러한 하드웨어 구성이 없는 요소(예: 레거시(legacy) 자동차 구성요소)의 경우 AUTOSAR 표준을 따르는 다른 게이트웨이를 사용하여 RINA 네트워크에 연결할 수 있다.At 310, the electronic device may register the source application with the network through the first library. For example, the electronic device may be an in-vehicle device and the first library may be an AUTOSAR library. In this case, the electronic device may register the source application with the network through the AUTOSAR library based on the registration request. Thus, mutual information exchange with other automotive components that meet the AUTOSAR standard may be possible. In addition, because Ethernet hardware is the backbone Ethernet, it can support RINA networks. For elements without this hardware configuration (eg legacy automotive components), other gateways that follow the AUTOSAR standard can be used to connect to the RINA network.

예를 들어, 차선 이탈 경고와 같은 기능의 경우 ADAS 시스템은 차량의 이미지 시스템으로부터의 입력에 크게 의존할 수 있다. 이 경우, ADAS 소스 애플리케이션은 자동차 시스템 내에서 카메라 애플리케이션과 통신할 수 있어야 한다. 소스 애플리케이션인 ADAS가 목적지 애플리케이션인 카메라 애플리케이션과 통신하기 위한 과정으로, ADAS는 네트워크에 등록하기 위해 AUTOSAR 실행환경(RTE, Runtime environment)를 통하여 등록 요청에 의해 AUTOSAR 라이브러리에 먼저 등록될 수 있다. 등록 요청은 목적지 애플리케이션의 이름 및 선택적으로 요구되는 서비스 품질(QoS, Quality of Service)을 포함할 수 있다.For example, for functions such as lane departure warnings, the ADAS system may rely heavily on input from the vehicle's imaging system. In this case, the ADAS source application must be able to communicate with the camera application within the automotive system. As a process for the source application ADAS to communicate with the camera application that is the destination application, ADAS may be first registered in the AUTOSAR library by a registration request through the AUTOSAR Runtime Environment (RTE) to register with the network. The registration request may include the name of the destination application and optionally a quality of service (QoS).

320에서 전자 디바이스는 제1 라이브러리로부터 제2 라이브러리로 등록요청을 전송할 수 있다. 예를 들어, 전자 디바이스는 소스 애플리케이션의 AUTOSAR 라이브러리로부터 소스 애플리케이션의 RINA 라이브러리까지 등록 요청을 전송할 수 있다.The electronic device may transmit a registration request from the first library to the second library at 320. For example, the electronic device may send a registration request from the AUTOSAR library of the source application to the RINA library of the source application.

330에서 전자 디바이스는, 등록요청이 유효한지 검사할 수 있다. 일 실시예에 따라 소스 애플리케이션의 제2 라이브러리가 등록요청이 유효한지 검사하고 통신 계층에 소스 애플리케이션을 등록할 수 있다. 유효성 검사 결과 유효하지 않다고 판단되면, 전자 디바이스는 통신 과정을 종료할 수 있다. 검사 결과 유효하다고 판단되면, 전자 디바이스는 소스 애플리케이션이 목적지 애플리케이션과 통신하기 위한 과정을 계속하여 진행할 수 있다. 예를 들어, AUTOSAR 라이브러리로부터 등록요청을 수신 받은 RINA 라이브러리는 등록요청의 유효성을 검사하고, 검사 결과에 따라 RINA DIF에 소스 애플리케이션을 등록할 수 있다.At 330, the electronic device may check whether the registration request is valid. According to an embodiment, the second library of the source application may check whether the registration request is valid and register the source application with the communication layer. If it is determined that the validity is invalid, the electronic device may terminate the communication process. If it is determined that the test result is valid, the electronic device may continue the process for the source application to communicate with the destination application. For example, the RINA library that receives the registration request from the AUTOSAR library can validate the registration request and register the source application with the RINA DIF according to the check result.

340에서 전자 디바이스는 목적지 애플리케이션과 통신하기 위한 소스 애플리케이션의 포트 및 그 포트에 대응되는 포트 식별자를 결정할 수 있다. 일 실시예에 따라, 전자 디바이스는 목적지 애플리케이션과 통신하기 위한 소스 애플리케이션의 포트를 동적으로 할당할 수 있다. 또한, 포트 번호와 같은 포트 식별자의 결정은 동적 라우팅 테이블을 사용하여 결정할 수 있다. 따라서, 시스템이 애플리케이션에 비어 있는 포트를 할당하기 위해 목적지 애플리케이션의 이름만을 필요로 할 수 있다. 이에 따라, 동적으로 할당된 포트 및 포트에 대한 식별자를 이용하여 알려진 포트와 공공 주소의 필요성을 제거하여 외부로부터 네트워크 공격에 대한 취약성을 보완할 수 있다. 또한, 시스템이 더 작은 라우팅 테이블을 사용할 수 있게 되어, 라우팅 오버헤드(overhead)가 낮아지고 네트워크의 성능을 향상시킬 수 있다. 일 실시예에 따라, 포트 식별자는 포트 번호, 포트 이름, 포트 주소 등일 수 있으나 이에 제한되는 것은 아니다.At 340, the electronic device may determine a port of the source application for communicating with the destination application and a port identifier corresponding to the port. According to one embodiment, the electronic device can dynamically allocate a port of the source application for communicating with the destination application. In addition, determination of a port identifier, such as a port number, can be determined using a dynamic routing table. Thus, the system may only need the name of the destination application to assign an empty port to the application. Accordingly, by using identifiers for dynamically assigned ports and ports, the need for known ports and public addresses can be eliminated to compensate for network attacks from the outside. In addition, the system can use smaller routing tables, resulting in lower routing overhead and improved network performance. According to an embodiment, the port identifier may be a port number, a port name, a port address, and the like, but is not limited thereto.

예를 들어, 자동차 시스템에서 엔진 제어 유닛의 애플리케이션은 운행 안전 및 도로 안전을 위해 거의 모든 다른 애플리케이션과 통신할 수 있다. 기존의 네트워크 아키텍처 하상에서는 애플리케이션은 오직 하나의 포트로부터 데이터가 들어왔다. 이것은 데이터의 딜레이(delay)를 일으키고 처리에 영향을 미쳐 잠재적인 위험을 초래할 수 있다. RINA를 이용하면, 데이터의 흐름은 모든 포트에 할당될 수 있다. 이것은 또한 네트워크를 공격하기 위해 흔히 타겟팅되는 잘 알려진 포트 및 네트워크를 공격하기 위해 흔히 타겟팅되는 공공 주소 지정의 필요성을 제거할 수 있다.For example, in an automotive system the application of the engine control unit can communicate with almost all other applications for driving safety and road safety. Under the existing network architecture, the application received data from only one port. This can cause delays in the data and affect the processing, leading to potential risks. With RINA, the flow of data can be assigned to all ports. This may also eliminate the need for well-known ports that are commonly targeted to attack networks and the need for commonly-addressed public addressing to attack networks.

350에서 전자 디바이스는 포트 식별자를 소스 애플리케이션에 전송할 수 있다. 또한, 360에서, 전자 디바이스는 목적지 애플리케이션으로 통신요청을 전송할 수 있다. 일 실시예에 따라, 소스 애플리케이션은 수신한 포트 식별자에 대응되는 포트를 통해 목적지 애플리케이션으로 통신요청을 전송할 수 있다.The electronic device may transmit the port identifier to the source application at 350. Also, at 360, the electronic device can send a communication request to the destination application. According to an embodiment, the source application may transmit a communication request to the destination application through a port corresponding to the received port identifier.

370에서 통신요청이 물리 계층에 도달할 때까지, 전자 디바이스는 통신요청을 하위레벨 통신 계층에 재귀적으로 전송할 수 있다. 일 실시예에 따라, 전자 디바이스는 소스 애플리케이션의 제2 라이브러리가 수신한 통신요청을 이더넷 계층과 같은 물리 계층에 도달할 때까지 적어도 하나 이상의 통신 계층에 재귀적으로 전송할 수 있다. 예를 들어, 통신요청이 이더넷 계층에 도달할 때 까지, 통신요청은 소스 애플리케이션의 RINA 라이브러리를 통해 하나 이상의 하위 레벨 RINA DIF에 재귀적으로 전송될 수 있다.The electronic device may recursively transmit the communication request to the lower level communication layer until the communication request reaches the physical layer at 370. According to an embodiment, the electronic device may recursively transmit a communication request received by the second library of the source application to at least one communication layer until reaching a physical layer such as an Ethernet layer. For example, communication requests can be sent recursively to one or more lower level RINA DIFs via the RINA library of the source application until the communication request reaches the Ethernet layer.

380에서 통신요청이 목적지 전자 제어 유닛에 도달할 때까지, 전자 디바이스는 통신요청을 네트워크 스위치에 재귀적으로 전송할 수 있다. 예를 들어, 이더넷 계층으로부터 RINA 라우터(router)의 역할을 하는 중간 이더넷 스위치는 요청이 목적지 ECU에 도달할 때 까지 요청을 전달할 수 있다.The electronic device may recursively transmit the communication request to the network switch until the communication request reaches the destination electronic control unit at 380. For example, an intermediate Ethernet switch acting as a RINA router from the Ethernet layer can forward the request until the request reaches the destination ECU.

390에서 통신요청이 목적지 애플리케이션에 도달할 때 까지, 전자 디바이스는 통신요청을 상위레벨 통신계층에 재귀적으로 전송할 수 있다. 예를 들어, 목적지 ECU의 RINA 라이브러리는 요청이 요청을 목적지 애플리케이션에 전달하는 AUTOSAR 라이브러리에 도달할 때 까지 목적지 ECU와 연결된 상위 레벨 RINA DIF에 요청을 재귀적으로 전달할 수 있다. AUTOSAR 라이브러리는 요청을 목적지 애플리케이션에 전달할 수 있다.The electronic device may recursively transmit the communication request to the higher level communication layer until the communication request reaches the destination application at 390. For example, the RINA library of the destination ECU can recursively forward the request to the higher level RINA DIF associated with the destination ECU until the request reaches the AUTOSAR library that forwards the request to the destination application. The AUTOSAR library can forward requests to the destination application.

도 4는 일 실시예에 따른, 제 1 ECU가 제 2 ECU와 통신하는 방법을 나타내는 흐름도이다.4 is a flowchart illustrating a method in which a first ECU communicates with a second ECU, according to an embodiment.

411에서 제 1 ECU(410)는 제 2 ECU(490)와 통신하기 위해 등록요청에 기초하여, 소스 애플리케이션의 제 1 라이브러리를 통해 소스 애플리케이션을 네트워크에 등록할 수 있다. 또한, 413에서 제 1 ECU는 제 1 라이브러리로부터 제 2 라이브러리로 등록요청을 전송할 수 있다. 일 실시예에 따라, 415에서 소스 애플리케이션의 제 2 라이브러리는 수신한 등록요청의 유효성을 판단할 수 있다. 제 2 라이브러리가 등록요청이 유효하다고 판단하면, 제 1 ECU(410)는 동적으로 포트를 할당할 수 있다. 이에 따라 417에서 제 2 라이브러리는 동적으로 할당된 포트의 포트 식별자를 결정하여 소스 애플리케이션에 반환할 수 있다. 또한, 422에서 소스 애플리케이션은 포트 식별자를 수신 받아 포트 식별자에 대응되는 포트를 통해 제 2 ECU(490)의 목적지 애플리케이션과 통신하기 위해 통신요청을 전송할 수 있다.At 411, the first ECU 410 may register the source application with the network through the first library of source applications based on the registration request to communicate with the second ECU 490. In operation 413, the first ECU may transmit a registration request from the first library to the second library. According to an embodiment, at 415, the second library of the source application may determine the validity of the received registration request. If the second library determines that the registration request is valid, the first ECU 410 may dynamically allocate a port. Accordingly, at 417, the second library may determine a port identifier of the dynamically allocated port and return it to the source application. In operation 422, the source application may receive the port identifier and transmit a communication request to communicate with the destination application of the second ECU 490 through a port corresponding to the port identifier.

일 실시예에 따라, 제 1 ECU(410)의 소스 애플리케이션으로부터 제 2 ECU(490)의 목적지 애플리케이션으로 전송되는 통신요청은 하위레벨 DIF(430), 이더넷 레이어(450) 및 상위레벨 DIF(470) 중 적어도 하나를 통과할 수 있다. 일 실시예에 따라, 424에서, 제 1 ECU(410)는 통신요청을 하위레벨 DIF(430)에 재귀적으로 포워딩할 수 있다. 또한, 435에서, 통신요청은 이더넷 레이어(450)에 도달할 때까지 포워딩 될 수 있다. 일 실시예에서, 하나 이상의 이더넷 레이어(450)는 이더넷 스위치로서, 제 2 ECU(490)의 목적지 애플리케이션의 이름이 암호화되어 전송될 수 있다. 또한, 455에서, 통신요청은 중간 이더넷 스위치에 도달할 때까지 포워딩 될 수 있다. 또한, 472에서, 통신요청은 상위레벨 DIF(470)에서 제 2 ECU(490)의 목적지 애플리케이션으로 전송될 수 있다. 제2 ECU는 수신받은 통신요청을 통해 제 1 ECU(410)의 소스 애플리케이션과 접속할 수 있다.According to one embodiment, the communication request sent from the source application of the first ECU 410 to the destination application of the second ECU 490 may be a low level DIF 430, an Ethernet layer 450, and a high level DIF 470. May pass through at least one of. According to one embodiment, at 424, the first ECU 410 may recursively forward the communication request to the lower level DIF 430. Further, at 435, the communication request may be forwarded until it reaches the Ethernet layer 450. In one embodiment, the one or more Ethernet layers 450 are Ethernet switches, where the name of the destination application of the second ECU 490 may be encrypted and transmitted. In addition, at 455, the communication request may be forwarded until it reaches the intermediate Ethernet switch. Further, at 472, the communication request may be sent from the higher level DIF 470 to the destination application of the second ECU 490. The second ECU may access the source application of the first ECU 410 through the received communication request.

예를 들어, 제 1 ECU는 첨단 운전자 보조 시스템(ADAS, Advanced Driver Assistance System)이고, 제 2 ECU는 카메라 시스템의 ECU일 수 있다. 일 실시예에 따라, ADAS의 애플리케이션은 RINA 네트워크 상에서 실행될 수 있다. ADAS는 운행 중에 차량의 안전과 도로의 안전을 향상시키기 위해 운전자를 보조해주는 시스템일 수 있다. ADAS 시스템은 전자 안정성 제어, 차선 이탈 경고, 크루즈 제어 및 트랙션 제어와 같은 특정 기능을 수행하기 위하여 전자 제어 유닛(ECU) 및 브레이크 관리 시스템, 이미징 시스템 및 엔진 제어 유닛과 같은 자동차 시스템을 사용할 수 있으나 이에 제한되는 것은 아니다. 예를 들어, 차선 이탈 경고와 같은 기능의 경우 ADAS는 차량의 이미징 시스템으로부터의 입력에 크게 의존할 수 있다. 이 경우, ADAS 소스 애플리케이션은 자동차 시스템 내에서 카메라 애플리케이션과 통신할 수 있어야 한다. ADAS 소스 애플리케이션이 목적지 애플리케이션인 카메라 애플리케이션과 통신하기 위해서 소스 애플리케이션이 네트워크에 등록될 수 있다. 등록요청이 있는 경우, 네트워크에 등록되기 위해 ADAS 소스 애플리케이션은 AUTOSAR 실행환경(RTE, Runtime environment)를 통하여 AUTOSAR 라이브러리에 먼저 등록될 수 있다. 일 실시예에 따라, 등록요청은 목적지 애플리케이션의 이름 및 선택적으로 요구되는 서비스 품질(QoS, Quality of Service)을 포함할 수 있다. 일 실시예에 따라, AUTOSAR 라이브러리는 RINA 라이브러리에 등록요청을 전송할 수 있다. 또한, 일 실시예에 따른 RINA 라이브러리는 등록요청의 유효성을 검사하고, 상응하는 RINA DIF에 소스 애플리케이션을 등록하며, 목적지 애플리케이션과 통신하기 위해 포트 식별자에 해당하는 소스 애플리케이션의 포트 번호를 반환할 수 있다. 또한, 소스 애플리케이션은 반환된 포트 번호를 사용하여 목적지 애플리케이션에 통신요청을 전송할 수 있다. AUTOSAR 라이브러리는 RINA 라이브러리에 통신요청을 전송하고 RINA 라이브러리는 통신요청이 이더넷 계층(450)에 도달할 때까지 하나 이상의 하위 레벨 RINA DIF(430)에 상기 통신 요청을 재귀적으로 전송할 수 있다. 이더넷 계층(450)으로부터 RINA 라우터(router)들의 역할을 하는 중간 이더넷 스위치는 요청이 목적지 ECU(490)에 도달할 때까지 요청을 전달할 수 있다. 목적지 ECU(490)의 RINA 라이브러리는 요청이 AUTOSAR 라이브러리에 도달할 때까지 하나 이상의 상위 레벨 RINA DIF(470)에 요청을 재귀적으로 전송하며, 제2 ECU(490)의 AUTOSAR 라이브러리는 요청을 목적지 애플리케이션에 전송할 수 있다.For example, the first ECU may be an Advanced Driver Assistance System (ADAS) and the second ECU may be an ECU of a camera system. According to one embodiment, an application of ADAS may run on a RINA network. ADAS can be a system that assists drivers to improve vehicle safety and road safety while driving. ADAS systems may use automotive systems such as electronic control units (ECUs) and brake management systems, imaging systems, and engine control units to perform certain functions such as electronic stability control, lane departure warning, cruise control, and traction control. It is not limited. For example, for functions such as lane departure warnings, ADAS may rely heavily on input from the vehicle's imaging system. In this case, the ADAS source application must be able to communicate with the camera application within the automotive system. The source application can be registered with the network in order for the ADAS source application to communicate with the camera application that is the destination application. If there is a registration request, the ADAS source application can be registered first with the AUTOSAR library through the AUTOSAR Runtime Environment (RTE) in order to be registered in the network. According to one embodiment, the registration request may include the name of the destination application and optionally the quality of service (QoS) required. According to an embodiment, the AUTOSAR library may send a registration request to the RINA library. In addition, the RINA library according to an embodiment may check the validity of the registration request, register the source application with the corresponding RINA DIF, and return the port number of the source application corresponding to the port identifier to communicate with the destination application. . The source application can also send a communication request to the destination application using the returned port number. The AUTOSAR library sends a communication request to the RINA library and the RINA library can recursively send the communication request to one or more lower level RINA DIF 430 until the communication request reaches the Ethernet layer 450. An intermediate Ethernet switch acting as RINA routers from the Ethernet layer 450 may carry the request until the request reaches the destination ECU 490. The RINA library of the destination ECU 490 recursively sends the request to one or more higher level RINA DIF 470 until the request reaches the AUTOSAR library, and the AUTOSAR library of the second ECU 490 sends the request to the destination application. Can be sent to.

도 5는 일 실시예에 따른, RINA(Recursive Internetwork Architecture) 구조를 설명하기 위한 블록도이다.5 is a block diagram illustrating a Recursive Internetwork Architecture (RINA) structure according to an embodiment.

도 5를 참조하면, 애플리케이션(512)은 다른 애플리케이션(522)과 RINA(Recursive Internetwork Architecture) 네트워크 상에서 서로 통신하기 위해 하나 이상의 DIF(540, 550, 562, 564, 566, 568)를 포함하는 RINA 네트워크를 이용할 수 있다. 일 실시예에 따른, RINA는 프로세스 간 통신 모델 중 하나로, Distributed IPC Facility 또는 DIF로 불리는 단일 반복 계층을 포함하는 구조일 수 있다. 또한, 네트워크의 설계자는 필요한 만큼 DIF를 반복해서 네트워크를 설계할 수 있다. 계층이 모듈 단위로 정해진 기존의 네트워크 아키텍처와 달리, RINA 네트워크는 다른 범위에서 같은 기능을 수행하는 원하는 개수의 DIF를 사용할 수 있다. 일 실시예에 따라, RINA의 노드는 호스트(510, 520), 경계 라우터(532, 536) 또는 내부 라우터(534)로 구성될 수 있으나, 이에 제한되는 것은 아니다.Referring to FIG. 5, an application 512 includes an RINA network that includes one or more DIFs 540, 550, 562, 564, 566, and 568 to communicate with each other over another application 522 and a Recursive Internetwork Architecture (RINA) network. Can be used. According to an embodiment, the RINA is one of the inter-process communication models, and may be a structure including a single repetition layer called a Distributed IPC Facility or DIF. The designer of the network can also design the network by repeating the DIF as necessary. Unlike conventional network architectures, where layers are modular, RINA networks can use any number of DIFs that perform the same function at different scopes. According to an embodiment, the node of the RINA may be configured as a host 510, 520, border routers 532, 536, or internal router 534, but is not limited thereto.

예를 들어, 상위레벨 DIF(540)는 두 호스트(510, 520)와 직접적으로 연결될 수 있다. 또한, 하위레벨 DIF(562, 564, 566, 568)은 호스트와 라우터와 연결되거나 복수 개의 라우터 사이에 연결될 수 있다. 하위레벨 DIF(562, 564, 566, 568)는 RINA 네트워크 상 통신에서의 보안을 강화하기 위한 방화벽으로서 역할을 할 수 있다.For example, the higher level DIF 540 may be directly connected to two hosts 510 and 520. In addition, the lower level DIFs 562, 564, 566, and 568 may be connected with a host and a router or between a plurality of routers. Low-level DIFs 562, 564, 566, and 568 may serve as firewalls to enhance security in communications on RINA networks.

도 6은 일 실시예에 따른, 차량 내 네트워크에서 네트워크 토폴로지를 나타내는 블록도이다.6 is a block diagram illustrating a network topology in an in-vehicle network, according to an embodiment.

도 6을 참조하면, 차량 내 네트워크 토폴로지는 중추 스위치(320), 하나 이상의 문 제어 스위치(622, 634), 전면 섀시(chassis) 스위치(626), 후면 섀시 스위치(630), 계기판 스위치(624), 카메라 스위치(632) 및 하나 이상의 전자 제어 유닛(600, 602, 604, 640) 중 적어도 하나를 포함할 수 있다. ECU(600, 604, 640)는 하나 이상의 스위치에 연결될 수 있고, ECU(602)는 다른 ECU(604)에 연결될 수도 있다. 또한, 중추 스위치(610)은 네트워크를 하나로 연결하는 중심 구성 요소일 수 있다. 이에 따라, 중추 스위치(610)는 네트워크의 라우팅 및 관리를 용이하게 할 수 있다.Referring to FIG. 6, the in-vehicle network topology includes a backbone switch 320, one or more door control switches 622, 634, a front chassis switch 626, a rear chassis switch 630, an instrument panel switch 624. , At least one of a camera switch 632 and one or more electronic control units 600, 602, 604, 640. The ECUs 600, 604, 640 may be connected to one or more switches, and the ECU 602 may be connected to another ECU 604. In addition, the central switch 610 may be a central component that connects the network into one. Accordingly, the central switch 610 may facilitate routing and management of the network.

예를 들어, ADAS ECU(600)가 카메라 ECU(640)와 통신하고 있는 상황을 고려할 수 있다. 메시지는 계기판 스위치(624) 및 전면 섀시 스위치(626)와 같은 스위치를 먼저 통과할 수 있다. 또한, 중추 스위치(610)을 거쳐 카메라 스위치(636)로 전달될 수 있다. 일 실시예에 따라, 이더넷의 기능을 가지고 있지 않는 구성요소의 경우, AUTOSAR 표준을 준수하는 경우라면 게이트웨이를 통해 네트워크에 연결될 수 있다. 따라서, 토폴로지는 이더넷을 주요 물리적 매체로 하는 통합된 네트워크를 구축할 수 있다. 이에 따라, 게이트웨이 및 다른 고가의 서브 네트워크의 구현의 사용을 최소화함으로써 비용을 줄일 수 있다. 이것은 또한 다른 호환되는 ECU들이 최소한의 설정과 구성으로 네트워크에 쉽게 연결될 수 있도록 할 수 있다.For example, a situation may be considered in which the ADAS ECU 600 is in communication with the camera ECU 640. The message may first pass through switches such as instrument panel switch 624 and front chassis switch 626. It may also be transferred to the camera switch 636 via the central switch 610. According to an embodiment, a component that does not have the function of Ethernet may be connected to a network through a gateway if it complies with the AUTOSAR standard. Thus, the topology can build an integrated network with Ethernet as the primary physical medium. Accordingly, costs can be reduced by minimizing the use of gateways and other expensive subnetwork implementations. It also allows other compatible ECUs to be easily connected to the network with minimal setup and configuration.

일 실시예에 따라, 전체 네트워크의 토폴로지를 단순화 하여 단일 네트워크에 네트워크를 통합함으로써, 이더넷과 같은 물리계층에 의해 제공되는 높은 대역폭을 보다 효과적으로 이용할 수 있다.According to one embodiment, by simplifying the topology of the entire network to integrate the network into a single network, it is possible to more effectively utilize the high bandwidth provided by the physical layer, such as Ethernet.

도 7은 일 실시예에 따른 통신 스택(stack)의 구조를 나타내는 블록도이다.7 is a block diagram illustrating a structure of a communication stack according to an embodiment.

도 7을 참조하면, 일 실시예에 따른 통신 스택(stack)은 마이크로컨트롤러 추상화 계층(microcontroller abstraction layer;MCAL)(780), 기본 소프트웨어 계층(Basic software layer)(760), 실행 환경(Run-time environment;RTE)(740) 및 애플리케이션 계층(720)을 포함할 수 있다. 그러나, 도 7에 도시된 구성 모두가 통신 스택의 필수 구성요소인 것은 아니다. 도 7에 도시된 구성 요소보다 많은 구성 요소에 의해 통신 스택이 구현될 수도 있고, 도 7에 도시된 구성 요소보다 적은 구성 요소에 의해 통신 스택이 구현될 수도 있다.Referring to FIG. 7, a communication stack according to an embodiment may include a microcontroller abstraction layer (MCAL) 780, a basic software layer 760, and a run-time. environment (RTE) 740 and application layer 720. However, not all of the configurations shown in FIG. 7 are essential components of the communication stack. The communication stack may be implemented by more components than the components shown in FIG. 7, and the communication stack may be implemented by fewer components than the components shown in FIG. 7.

일 실시예에 따른, 기본 소프트웨어 계층(760)은 시스템 서비스, I/O 드라이버, 메모리 서비스, 메모리 하드웨어 추상화 계층, 메모리 드라이버, 통신 서비스, 통신 하드웨어 계층, 통신 드라이버, I/O 하드웨어 계층 등을 포함할 수 있으나, 이에 제한되는 것은 아니다. 일 실시예에 따른, 프로토콜은 통신 스택(762)에 통합될 수 있다. 이러한 통합을 통해, 애플리케이션 및 시스템은 네트워크와 통신할 수 있다. 예를 들어, RINA 프로토콜은 AUTOSAR 아키텍처의 통신 스택에 통합되고 AUTOSAR 애플리케이션 및 시스템이 RINA 네트워크와 통신할 수 있다. 또한, 애플리케이션의 이더넷이 연결될 수 없어도, AUTOSAR에서 실행되는 동안 다른 애플리케이션과 통신할 수 있다.According to one embodiment, the basic software layer 760 includes a system service, I / O driver, memory service, memory hardware abstraction layer, memory driver, communication service, communication hardware layer, communication driver, I / O hardware layer, and the like. It may be, but is not limited thereto. According to one embodiment, the protocol may be integrated into the communication stack 762. This integration allows applications and systems to communicate with the network. For example, the RINA protocol is integrated into the communications stack of the AUTOSAR architecture and allows AUTOSAR applications and systems to communicate with the RINA network. Also, even if the application's Ethernet cannot be connected, it can communicate with other applications while running in AUTOSAR.

도 8은 일 실시예에 따른, 전자 디바이스의 블록도이다.8 is a block diagram of an electronic device, according to one embodiment.

전자 디바이스는 자동차, 차량 구성요소, 차량의 전자 제어 유닛(ECU), 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 디바이스(900)는 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다.Electronic devices include automobiles, vehicle components, vehicle electronic control units (ECUs), smartphones, tablet PCs, PCs, smart TVs, mobile phones, personal digital assistants (PDAs), laptops, media players, micro servers, global positioning systems (GPS). system) devices, e-book terminals, digital broadcasting terminals, navigation, kiosks, MP3 players, digital cameras, home appliances, and other mobile or non-mobile computing devices, but is not limited thereto. In addition, the device 900 may be a wearable device such as a watch, glasses, a hair band and a ring having a communication function and a data processing function.

도 8을 참조하면, 전자 디바이스(800)은 프로세서(820), 통신부(840) 및 메모리(860)을 포함할 수 있다. 그러나, 도 8에 도시된 구성 모두가 전자 디바이스(800)의 필수 구성 요소인 것은 아니다. 도 8에 도시된 구성 요소보다 많은 구성 요소에 의해 전자 디바이스(800)가 구현될 수도 있고, 도 8에 도시된 구성 요소보다 적은 구성 요소에 의해 전자 디바이스(800)가 구현될 수도 있다.Referring to FIG. 8, the electronic device 800 may include a processor 820, a communication unit 840, and a memory 860. However, not all of the configurations shown in FIG. 8 are essential components of the electronic device 800. The electronic device 800 may be implemented by more components than the components shown in FIG. 8, and the electronic device 800 may be implemented by fewer components than the components shown in FIG. 8.

일 실시예에서, 프로세서(820)는 전자 디바이스(800)의 전체적인 동작을 제어하며, CPU, GPU 등과 같은 프로세서를 적어도 하나 이상 포함할 수 있다. 프로세서(820)는 전자 디바이스(800)를 작동하기 위한 동작을 수행하도록 전자 디바이스(800)에 포함된 다른 구성들을 제어할 수 있다. 예를 들어, 프로세서(820)는 메모리(860)에 저장된 프로그램을 실행시키거나, 저장된 파일을 읽어오거나, 새로운 파일을 저장할 수도 있다. 일 실시예에서, 프로세서(820)는 메모리(860)에 저장된 프로그램을 실행함으로써, 전자 디바이스(800)를 작동하기 위한 동작을 수행할 수 있다. 예를 들면, 프로세서(820)는 목적지 애플리케이션과 통신하기 위한 소스 애플리케이션의 등록요청의 유효성을 검사하고, 검사 결과에 따라, 목적지 애플리케이션과 통신하기 위한 포트를 결정하고, 결정된 포트를 통해 목적지 애플리케이션으로 통신요청을 전송하며, 통신요청에 기초하여 소스 애플리케이션으로 하여금 목적지 애플리케이션과 접속하도록 할 수 있다.In one embodiment, the processor 820 controls the overall operation of the electronic device 800, and may include at least one or more processors such as a CPU, a GPU, and the like. The processor 820 may control other components included in the electronic device 800 to perform an operation for operating the electronic device 800. For example, the processor 820 may execute a program stored in the memory 860, read a stored file, or store a new file. In one embodiment, the processor 820 may perform an operation for operating the electronic device 800 by executing a program stored in the memory 860. For example, the processor 820 validates the registration request of the source application for communicating with the destination application, determines a port for communicating with the destination application according to the inspection result, and communicates to the destination application through the determined port. Send a request and allow the source application to connect with the destination application based on the communication request.

일 실시예에서, 통신부(840)는 전자 디바이스(800)와 유선 또는 무선으로 일 실시예에서, 통신부(840)를 통해 전자 디바이스(800)가 유선 또는 무선으로 다른 전자 디바이스와 통신할 수 있다. 예를 들면, 통신부(840)를 통해, 차량 내 ADAS 디바이스의 애플리케이션이 차량 내 카메라 디바이스의 애플리케이션과 서로 통신하여 카메라 디바이스로부터 이미지 데이터가 수신될 수 있다. 또한, 통신부(840)는 외부 서버(예를 들어, SNS 서버, 클라우드 서버, 콘텐트 제공 서버 등) 및 기타 외부 장치와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(840)는 근거리 통신부, 이동 통신부, 방송 수신부를 포함할 수 있다. 일 실시예에 따라, 통신부(840)는 외부 디바이스 또는 서버로부터 데이터를 수신하고 수신된 데이터를 프로세서(820)로 제공할 수 있다.In one embodiment, the communicator 840 may wire or wirelessly communicate with the electronic device 800. In one embodiment, the electronic device 800 may communicate with other electronic devices via wire or wirelessly via the communicator 840. For example, via the communication unit 840, applications of the in-vehicle ADAS device may communicate with applications of the in-vehicle camera device to receive image data from the camera device. In addition, the communication unit 840 may include one or more components for communicating with an external server (eg, an SNS server, a cloud server, a content providing server, etc.) and other external devices. For example, the communication unit 840 may include a short range communication unit, a mobile communication unit, and a broadcast receiving unit. According to an embodiment, the communication unit 840 may receive data from an external device or server and provide the received data to the processor 820.

일 실시예에서, 메모리(860)는 전자 디바이스(800)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 애플리케이션을 저장할 수 있다. 메모리(860)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(860)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(820)에 의해 실행될 수 있다. 또한, 메모리(860)는 전자 디바이스(800)로 입력되거나 전자 디바이스(800)로부터 출력되는 데이터를 저장할 수도 있다. 프로세서(820)는 메모리(860)에 저장된 데이터에 접근하여 이를 이용하거나, 또는 새로운 데이터를 메모리(860)에 저장할 수 있다.In one embodiment, the memory 860 may store various data, programs or applications for driving and controlling the electronic device 800. The program stored in memory 860 may include one or more instructions. A program (one or more instructions) or application stored in memory 860 may be executed by processor 820. In addition, the memory 860 may store data input to or output from the electronic device 800. The processor 820 may access and use data stored in the memory 860 or store new data in the memory 860.

일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터로 읽을 수 있고 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.One embodiment may also be embodied in the form of a recording medium containing computer readable and computer executable instructions, such as program modules executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer readable medium may include a computer storage medium. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

개시된 실시예들은 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 S/W 프로그램으로 구현될 수 있다.The disclosed embodiments may be implemented as S / W programs that include instructions stored in computer-readable storage media.

컴퓨터는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 개시된 실시예에 따른 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치를 포함할 수 있다.The computer is a device capable of calling stored instructions from a storage medium and operating according to the disclosed embodiments according to the called instructions, and may include an electronic device according to the disclosed embodiments.

컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서,'비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.The computer readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-temporary' means that the storage medium does not include a signal and is tangible, but does not distinguish that data is stored semi-permanently or temporarily on the storage medium.

또한, 개시된 실시예들에 따른 제어 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.In addition, the control method according to the disclosed embodiments may be provided included in a computer program product. The computer program product may be traded between the seller and the buyer as a product.

컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 디바이스의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.The computer program product may include a S / W program and a computer readable storage medium storing the S / W program. For example, a computer program product may include a product (eg, a downloadable app) in the form of a S / W program distributed electronically through a device manufacturer or an electronic market (eg, Google Play Store, App Store). . For electronic distribution, at least a part of the S / W program may be stored in a storage medium or temporarily generated. In this case, the storage medium may be a server of a manufacturer, a server of an electronic market, or a storage medium of a relay server that temporarily stores a SW program.

컴퓨터 프로그램 제품은, 서버 및 디바이스로 구성되는 시스템에서, 서버의 저장매체 또는 디바이스의 저장매체를 포함할 수 있다. 또는, 서버 또는 디바이스와 통신 연결되는 제 3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제 3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 디바이스 또는 제 3 장치로 전송되거나, 제 3 장치로부터 디바이스로 전송되는 S/W 프로그램 자체를 포함할 수 있다.The computer program product may include a storage medium of a server or a storage medium of a device in a system consisting of a server and a device. Or, if there is a third device (eg, a smartphone) that is in communication with the server or device, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include the S / W program itself transmitted from the server to the device or the third apparatus, or transmitted from the third apparatus to the device.

이 경우, 서버, 디바이스 및 제 3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 디바이스 및 제 3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.In this case, one of the server, the device and the third apparatus may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of the server, the device and the third apparatus may execute a computer program product to distribute and perform the method in accordance with the disclosed embodiments.

예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 디바이스가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.For example, a server (eg, a cloud server or artificial intelligence server, etc.) may execute a computer program product stored on the server to control a device in communication with the server to perform the method according to the disclosed embodiments.

또 다른 예로, 제 3 장치가 컴퓨터 프로그램 제품을 실행하여, 제 3 장치와 통신 연결된 디바이스가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다. 제 3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제 3 장치는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드 된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제 3 장치는 프리로드 된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.As another example, the third device may execute a computer program product to control the device in communication with the third device to perform the method according to the disclosed embodiments. When the third device executes the computer program product, the third device may download the computer program product from the server and execute the downloaded computer program product. Alternatively, the third apparatus may execute the provided computer program product in a preloaded state to perform the method according to the disclosed embodiments.

또한, 본 개시에서, “부”는 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다.In addition, in the present disclosure, “unit” may be a hardware component such as a processor or a circuit, and / or a software component executed by a hardware configuration such as a processor.

전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The foregoing description of the disclosure is provided by way of illustration, and it will be understood by those skilled in the art that the present disclosure may be easily modified into other specific forms without changing the technical spirit or essential features of the present disclosure. will be. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present disclosure is indicated by the appended claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present disclosure. do.

Claims (20)

하나 이상의 인스트럭션을 저장하는 메모리; 및
상기 하나 이상의 인스트럭션을 실행하는 적어도 하나의 프로세서를 포함하며,
상기 적어도 하나의 프로세서는,
목적지 애플리케이션과 통신하기 위한 소스 애플리케이션의 등록요청의 유효성을 검사하고,
상기 검사의 결과에 따라, 상기 목적지 애플리케이션과 통신하기 위한 포트를 결정하고,
상기 결정된 포트를 통해 상기 목적지 애플리케이션으로 통신요청을 전송하고,
상기 통신요청에 기초하여 상기 소스 애플리케이션으로 하여금 상기 목적지 애플리케이션과 접속하게 하도록 구성된, 전자 디바이스.
Memory for storing one or more instructions; And
At least one processor executing the one or more instructions,
The at least one processor,
Validate the registration request of the source application to communicate with the destination application,
According to the result of the check, determine a port for communicating with the destination application,
Send a communication request to the destination application through the determined port;
And cause the source application to connect with the destination application based on the communication request.
제 1 항에 있어서, 상기 등록요청은 상기 목적지 애플리케이션의 이름 및 원하는 QoS(Quality of Services) 중 적어도 하나를 포함하는 전자 디바이스.The electronic device of claim 1, wherein the registration request includes at least one of a name of the destination application and a desired quality of services. 제 1 항에 있어서, 상기 적어도 하나의 프로세서는,
상기 등록요청에 기초하여 상기 소스 애플리케이션의 제1 라이브러리를 통해 네트워크에 상기 소스 애플리케이션을 등록하도록 더 구성된, 전자 디바이스.
The processor of claim 1, wherein the at least one processor comprises:
And register the source application with a network via the first library of source applications based on the registration request.
제 1 항에 있어서, 상기 적어도 하나의 프로세서는,
상기 통신요청이 물리계층(physical layer)에 도달할 때까지, 상기 통신요청을 적어도 하나 이상의 통신 스택(stack)에 재귀적으로(recursively) 전달하도록 더 구성된, 전자 디바이스.
The processor of claim 1, wherein the at least one processor comprises:
And recursively forward the communication request to at least one communication stack until the communication request reaches a physical layer.
제 1 항에 있어서, 상기 적어도 하나의 프로세서는,
상기 통신요청이 상기 목적지 애플리케이션을 제어하는 프로세서에 도달할 때까지 상기 통신요청을 하나 이상의 이더넷(Ethernet) 스위치에 재귀적으로 (recursively) 전송하도록 더 구성된, 전자 디바이스.
The processor of claim 1, wherein the at least one processor comprises:
And recursively transmit the communication request to one or more Ethernet switches until the communication request reaches a processor controlling the destination application.
제 1 항에 있어서, 상기 적어도 하나의 프로세서는,
상기 포트를 동적으로 결정하도록 더 구성된, 전자 디바이스.
The processor of claim 1, wherein the at least one processor comprises:
And further determine the port dynamically.
제 6 항에 있어서, 상기 적어도 하나의 프로세서는,
상기 결정된 포트를 나타내는 포트 식별자를 결정하도록 더 구성되고,
상기 결정된 포트를 나타내는 포트 식별자는,
상기 소스 애플리케이션의 제2 라이브러리에 의해 동적으로 할당된 포트 번호를 포함하는, 전자 디바이스.
The processor of claim 6, wherein the at least one processor comprises:
Further determine a port identifier indicative of the determined port,
The port identifier indicating the determined port is,
And a port number dynamically assigned by the second library of the source application.
제 1 항에 있어서, 상기 적어도 하나의 프로세서는,
상기 등록요청을 상기 소스 애플리케이션의 제1 라이브러리로부터 상기 소스 애플리케이션의 제2 라이브러리로 전송하도록 더 구성된, 전자 디바이스.
The processor of claim 1, wherein the at least one processor comprises:
And transmit the registration request from the first library of the source application to the second library of the source application.
제 1 항에 있어서,
상기 등록요청은 상기 목적지 애플리케이션의 암호화된 이름 및 인증 키(key)를 포함하는, 전자 디바이스.
The method of claim 1,
And the registration request includes an encrypted name and an authentication key of the destination application.
제 1 항에 있어서,
외부 디바이스와 통신하는 통신부를 더 포함하는, 전자 디바이스.
The method of claim 1,
And a communication unit for communicating with an external device.
목적지 애플리케이션과 통신하기 위한 소스 애플리케이션의 등록요청의 유효성을 검사하는 단계;
상기 검사의 결과에 따라, 상기 목적지 애플리케이션과 통신하기 위한 포트를 결정하는 단계;
상기 결정된 포트를 통해 상기 목적지 애플리케이션으로 통신요청을 전송하는 단계; 및
상기 통신요청에 기초하여 상기 소스 애플리케이션으로 하여금 상기 목적지 애플리케이션과 접속하게 하는 단계를 포함하는 방법.
Validating a registration request of a source application for communicating with a destination application;
Determining, according to a result of the checking, a port for communicating with the destination application;
Sending a communication request to the destination application through the determined port; And
Causing the source application to connect with the destination application based on the communication request.
제 11 항에 있어서, 상기 등록요청은 상기 목적지 애플리케이션의 이름 및 원하는 QoS 중 적어도 하나를 포함하는 방법.12. The method of claim 11, wherein the registration request includes at least one of a name of the destination application and a desired QoS. 제 11 항에 있어서, 상기 등록요청에 기초하여 상기 소스 애플리케이션의 제1 라이브러리를 통해 네트워크에 상기 소스 애플리케이션을 등록하는 단계를 더 포함하는 방법.12. The method of claim 11, further comprising registering the source application with a network through the first library of source applications based on the registration request. 제 11 항에 있어서, 상기 전송하는 단계는, 상기 통신 요청이 물리 계층(physical layer)에 도달할 때까지, 상기 통신 요청이 적어도 하나 이상의 통신 스택(stack)에 재귀적으로(recursively) 전달하는 단계를 포함하는 방법.12. The method of claim 11, wherein the step of transmitting comprises: recursively forwarding the communication request to at least one communication stack until the communication request reaches a physical layer. How to include. 제 11 항에 있어서, 상기 전송하는 단계는,
상기 상기 통신 요청이 상기 목적지 애플리케이션을 제어하는 프로세서에 도달할 때까지 하나 이상의 이더넷(Ethernet) 스위치에 재귀적으로(recursively) 전송하는 단계를 포함하는 방법.
The method of claim 11, wherein the transmitting step,
Recursively sending to the one or more Ethernet switches until the communication request reaches a processor controlling the destination application.
제 11 항에 있어서,
상기 포트를 동적으로 결정하는 단계를 더 포함하는 방법.
The method of claim 11,
Dynamically determining the port.
제 16 항에 있어서,
상기 결정된 포트를 나타내는 포트 식별자를 결정하는 단계를 더 포함하고,
상기 결정된 포트를 나타내는 포트 식별자는,
상기 소스 애플리케이션의 제2 라이브러리에 의해 동적으로 할당된 포트 번호를 포함하는 방법.
The method of claim 16,
Determining a port identifier indicating the determined port;
The port identifier indicating the determined port is,
And a port number dynamically assigned by the second library of the source application.
제 11 항에 있어서,
상기 등록요청은 상기 목적지 애플리케이션의 암호화된 이름 및 인증 키(key)를 포함하는 방법.
The method of claim 11,
The registration request includes an encrypted name and an authentication key of the destination application.
제 11 항에 있어서,
상기 등록요청은 상기 소스 애플리케이션의 제1 라이브러리로부터 상기 소스 애플리케이션의 제2 라이브러리로 전송하는 단계를 더 포함하는 방법.
The method of claim 11,
The registration request further comprising transferring from a first library of the source application to a second library of the source application.
하나 이상의 프로그램들을 저장하는 컴퓨터로 읽을 수 있는 기록매체로서,
상기 하나 이상의 프로그램들은, 전자 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 상기 전자 디바이스로 하여금:
목적지 애플리케이션과 통신하기 위한 소스 애플리케이션의 등록 요청의 유효성을 검사하고,
상기 검사의 결과에 따라, 상기 목적지 애플리케이션과 통신하기 위한 포트를 결정하고,
상기 결정된 포트를 통해 상기 목적지 애플리케이션으로 통신 요청을 전송하고,
상기 통신 요청에 기초하여 상기 소스 애플리케이션으로 하여금 상기 목적지 애플리케이션과 접속하게 하는 명령어들을 포함하는 컴퓨터로 읽을 수 있는 기록매체.
A computer-readable recording medium storing one or more programs,
The one or more programs, when executed by one or more processors of the electronic device, cause the electronic device to:
Validate the registration request from the source application to communicate with the destination application,
According to the result of the check, determine a port for communicating with the destination application,
Send a communication request to the destination application through the determined port,
And computer-readable instructions including instructions for causing the source application to connect with the destination application based on the communication request.
KR1020190068264A 2018-07-02 2019-06-10 Method and device for inter-process communication in a network KR20200003716A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/460,563 US11025753B2 (en) 2018-07-02 2019-07-02 Method and device for inter-process communication in network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PH1-2018-000189 2018-07-02
PH12018000189A PH12018000189A1 (en) 2018-07-02 2018-07-02 Recursive internetwork architecture (rina) over automotive ethernet

Publications (1)

Publication Number Publication Date
KR20200003716A true KR20200003716A (en) 2020-01-10

Family

ID=69158737

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190068264A KR20200003716A (en) 2018-07-02 2019-06-10 Method and device for inter-process communication in a network

Country Status (2)

Country Link
KR (1) KR20200003716A (en)
PH (1) PH12018000189A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115412394B (en) * 2022-08-22 2023-08-18 奥特酷智能科技(南京)有限公司 Heterogeneous domain controller inter-core communication method based on AutoSar

Also Published As

Publication number Publication date
PH12018000189B1 (en) 2020-01-27
PH12018000189A1 (en) 2020-01-27

Similar Documents

Publication Publication Date Title
US9961021B2 (en) Enabling applications in a multi-transport stack environment
KR101630729B1 (en) Method and System for Providing Optimized Ethernet Communication for vehicle
US11856097B2 (en) Mechanism to provide customer VCN network encryption using customer-managed keys in network virtualization device
CN111200797B (en) Internet of vehicles message notification method and device
JP2023507027A (en) Upgrade method and equipment
US11777897B2 (en) Cloud infrastructure resources for connecting a service provider private network to a customer private network
US20230244540A1 (en) Multi-cloud control plane architecture
CN112152989A (en) Method and system for updating application layers for third party telecommunications providers
US11025753B2 (en) Method and device for inter-process communication in network
JP6838455B2 (en) Switch device, communication control method and communication control program
US20220197683A1 (en) Mechanism to implement vcn network virtualization in a rack-based switch
KR20200003716A (en) Method and device for inter-process communication in a network
US20230246879A1 (en) Architecture of a multi-cloud control plane -network adaptor
CN110430478B (en) Networking communication method, device, terminal equipment and storage medium
US20150113125A1 (en) System and Method for Providing the Status of Safety Critical Systems to Untrusted Devices
US20230138372A1 (en) Secure bi-directional network connectivity system between private networks
CN111800340B (en) Data packet forwarding method and device
US20220355750A1 (en) Relay device, in-vehicle communication system, in-vehicle communication method, and storage medium
WO2024029196A1 (en) Management device, function unit, vehicle-mounted communication system, and vehicle communication management program
CN111435945A (en) Automobile Ethernet communication method, terminal equipment and storage medium
US20240022576A1 (en) Method for communication between a third-party component on a user device and a service component in the cloud, and network arrangement for implementing the method
US20240129371A1 (en) Network link establishment in a multi-cloud infrastructure
US20240129242A1 (en) Network link establishment for saas applications in a multi-cloud infrastructure
US11929976B2 (en) Virtual network routing gateway that supports address translation for dataplane as well as dynamic routing protocols (control plane)
US20220377142A1 (en) Relay device, in-vehicle communication system, vehicle, and in-vehicle communication method