KR20230131636A - 차량용 이더넷 제어기 및 그것의 데이터 전송 방법 - Google Patents

차량용 이더넷 제어기 및 그것의 데이터 전송 방법 Download PDF

Info

Publication number
KR20230131636A
KR20230131636A KR1020220028756A KR20220028756A KR20230131636A KR 20230131636 A KR20230131636 A KR 20230131636A KR 1020220028756 A KR1020220028756 A KR 1020220028756A KR 20220028756 A KR20220028756 A KR 20220028756A KR 20230131636 A KR20230131636 A KR 20230131636A
Authority
KR
South Korea
Prior art keywords
window size
received
data
ack
receiving side
Prior art date
Application number
KR1020220028756A
Other languages
English (en)
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 KR1020220028756A priority Critical patent/KR20230131636A/ko
Priority to CN202211605652.9A priority patent/CN116723254A/zh
Priority to US18/082,204 priority patent/US20230283564A1/en
Priority to DE102022133537.2A priority patent/DE102022133537A1/de
Publication of KR20230131636A publication Critical patent/KR20230131636A/ko

Links

Images

Classifications

    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2801Broadband local area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • H04L47/365Dynamic adaptation of the packet size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0273Traffic management, e.g. flow control or congestion control adapting protocols for flow control or congestion control to wireless environment, e.g. adapting transmission control protocol [TCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명에 따른 차량용 이더넷 제어기는, 설정된 윈도우 사이즈 이하만큼의 일련의 데이터 패킷들을 상기 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송하되, 초기에 상기 윈도우 사이즈는 상기 수신측으로부터 획득된 윈도우 사이즈 값으로 설정되는 TCP/IP 모듈; 및 상기 수신측으로부터 DUP ACK가 수신되면 상기 윈도우 사이즈를 감소된 값으로 재설정하는 윈도우 사이즈 재설정부를 포함하는 것을 특징으로 한다.

Description

차량용 이더넷 제어기 및 그것의 데이터 전송 방법{VEHICULAR ETHERNET CONTROLLER AND DATA TRANSMISSION METHOD THEREOF}
본 발명은 차량용 이더넷 제어기에 관한 것으로, 보다 상세하게는 오토사 플랫폼이 적용된 차량의 이더넷 제어기 및 그것의 데이터 전송 방법에 관한 것이다.
오토사(AUTomotive Open System Architecture: AUTOSAR)는 여러 완성차 제조사, 차량 부품 제조사, 개발 도구 생산자 및 반도체 제조사가 참여하고 있는 차량 전장부품용 임베디드 소프트웨어 사용 급증에 대응하기 위한 표준화 플랫폼이다.
과거 차량에 사용되는 버스 시스템은 CAN, LIN, FlexRay, MOST 등의 통신 규격을 사용하는 것이 일반적이었으나, 차량 내 전자제어기기 및 멀티미디어 기기의 증가에 따라 이더넷(Ethernet) 통신이 차량에 적용되고 있다.
이더넷은 AUTOSAR 버전 4.0 이후 AUTOSAR 표준의 일부가 되었다. CAN이나 LIN, FlexRay 인터페이스는 AUTOSAR의 프로토콜 데이터 유닛(PDU) 인터페이스에 직접적으로 구현되는 반면, 이더넷 인터페이스(EthIf)에서는 원시 데이터를 TCP/IP 스택으로 우회시키거나 TCP/IP 스택에서 직접 데이터를 수신한다.
TCP/IP 프로토콜에서는 전송하고자 하는 데이터를 패킷 단위로 전송하는데, 수신측의 버퍼 사이즈를 고려하여 일정 양의 일련의 데이터 패킷들을 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송한다. 그러나 OTA(Over-the-Air)와 같은 대용량 데이터 송수신시 수신측의 하드웨어 큐(queue) 등 하드웨어적인 제약으로 인해 패킷 손실이 발생할 수 있고, 이 경우 손실된 패킷을 재전송(retransmission)해야 한다. 이러한 패킷 손실 및 재전송으로 인해 타임 로스(time loss)가 발생하게 된다.
본 발명이 해결하고자 하는 과제는, 차량용 이더넷 제어기에서 대용량 데이터 송수신시 패킷 손실 및 패킷 재전송으로 인한 타임 로스 발생을 억제할 수 있는 차량용 이더넷 제어기 및 그것의 데이터 전송 방법을 제공하는 데 있다.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 차량용 이더넷 제어기는, 설정된 윈도우 사이즈 이하만큼의 일련의 데이터 패킷들을 상기 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송하되, 초기에 상기 윈도우 사이즈는 상기 수신측으로부터 획득된 윈도우 사이즈 값으로 설정되는 TCP/IP 모듈; 및 상기 수신측으로부터 DUP ACK가 수신되면 상기 윈도우 사이즈를 감소된 값으로 재설정하는 윈도우 사이즈 재설정부를 포함하는 것을 특징으로 한다.
상기 윈도우 사이즈 재설정부는, 상기 윈도우 사이즈를, 상기 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 데이터 양으로 재설정할 수 있다.
상기 윈도우 사이즈 재설정부는, 상기 윈도우 사이즈를, 상기 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 수 및 MTU (Maximum Transmission Unit) 사이즈에 따라 재설정할 수 있다.
상기 윈도우 사이즈 재설정부는, 상기 윈도우 사이즈를, (상기 연속적으로 전송된 데이터 패킷들의 수)×(상기 MTU 사이즈)로 재설정할 수 있다.
상기 TCP/IP 모듈은 상기 DUP ACK가 수신되면 상기 수신된 DUP ACK에 대응하는 데이터 패킷 다음의 데이터 패킷부터 재전송할 수 있다.
상기 윈도우 사이즈 재설정부는 상기 윈도우 사이즈를 복수의 수신측으로부터 수신되는 DUP ACK에 따라 독립적으로 재설정할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 차량용 이더넷 제어기의 데이터 전송 방법은, 윈도우 사이즈를 수신측으로부터 획득된 윈도우 사이즈 값으로 설정하는 단계; 상기 설정된 윈도우 사이즈 이하만큼의 일련의 데이터 패킷들을 상기 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송하는 단계; 상기 수신측으로부터 DUP ACK가 수신되면 상기 윈도우 사이즈를 감소된 값으로 재설정하는 단계; 및 상기 재설정된 윈도우 사이즈 이하만큼의 일련의 데이터 패킷들을 상기 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송하는 단계를 포함하는 것을 특징으로 한다.
상기 재설정하는 단계는, 상기 윈도우 사이즈를, 상기 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 데이터 양으로 재설정할 수 있다.
상기 재설정하는 단계는, 상기 윈도우 사이즈를, 상기 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 수 및 MTU (Maximum Transmission Unit) 사이즈에 따라 재설정할 수 있다.
상기 재설정하는 단계는, 상기 윈도우 사이즈를, (상기 연속적으로 전송된 데이터 패킷들의 수)×(상기 MTU 사이즈)로 재설정할 수 있다.
상기 차량용 이더넷 제어기의 데이터 전송 방법은, 상기 DUP ACK가 수신되면 상기 수신된 DUP ACK에 대응하는 데이터 패킷 다음의 데이터 패킷부터 재전송하는 단계를 더 포함할 수 있다.
상기 재설정하는 단계는, 상기 윈도우 사이즈를 복수의 수신측으로부터 수신되는 DUP ACK에 따라 독립적으로 재설정할 수 있다.
상기된 본 발명에 의하면, 수신측으로터 수신되는 DUP ACK에 따라 윈도우 사이즈를 재설정함으로써 차량용 이더넷 제어기에서 대용량 데이터 송수신시 패킷 손실 및 패킷 재전송으로 인한 타임 로스 발생을 억제할 수 있다.
또한, 수신측으로터 수신되는 DUP ACK에 따라 수신측 별로 독립적으로 윈도우 사이즈를 재설정함으로써 패킷 손실 및 패킷 재전송으로 인한 타임 로스 발생 없이 수신측 별로 최적의 전송 속도를 보장할 수 있다.
본 발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 차량용 이더넷 제어기의 구성을 나타낸다.
도 2는 본 발명의 일 실시예에 따른 송신측 이더넷 제어기(100)의 데이터 전송 방법의 흐름도를 나타낸다.
도 3a 및 3b는 본 발명의 일 실시예에 따라 송신측으로부터 수신측으로 데이터가 전송되는 과정의 일 예를 나타낸 데이터 흐름도이다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
도 1은 본 발명의 일 실시예에 따른 차량용 이더넷 제어기의 구성을 나타낸다. 송신측 이더넷 제어기(100)는, 소켓 어댑터(socket adapter) 모듈(110), TCP/IP 모듈(120), 이더넷 인터페이스 모듈(130), 윈도우 사이즈 재설정부(140), 이더넷 MCAL 모듈(150), DMA(Direct Memory Access) 모듈(160), 하드웨어 큐(170), MAC(Media Access Control) 모듈(180)을 포함할 수 있다. 수신측 이더넷 제어기(200) 역시, 소켓 어댑터 모듈(210), TCP/IP 모듈(220), 이더넷 인터페이스 모듈(230), 윈도우 사이즈 재설정부(240), 이더넷 MCAL 모듈(250), DMA 모듈(260), 하드웨어 큐(270), MAC 모듈(280)을 포함할 수 있다. 소켓 어댑터 모듈(110, 210), TCP/IP 모듈(120, 220), 이더넷 인터페이스 모듈(130, 230), 윈도우 사이즈 재설정부(140, 240)는 기본 소프트웨어(Basic Software, BSW)에 포함될 수 있다. 이더넷 MCAL 모듈(150, 250)은 MCAL(Microcontroller Abstraction Layer)에 포함될 수 있다. DMA 모듈(160, 260), 하드웨어 큐(170, 270), MAC 모듈(180, 280)은 하드웨어에 포함될 수 있다.
송신측 이더넷 제어기(100)의 상위 어플리케이션(미도시)으로부터 전송 요청된 데이터는 소켓 어댑터 모듈(110), TCP/IP 모듈(120), 이더넷 인터페이스 모듈(130), 이더넷 MCAL 모듈(150), DMA 모듈(160), 하드웨어 큐(170), MAC 모듈(180)을 거쳐 네트워크로 전송된다. 네트워크를 통해 전송된 데이터는 수신측 이더넷 제어기(200)의 MAC 모듈(280), 하드웨어 큐(270), DMA 모듈(260), 이더넷 MCAL 모듈(250), 이더넷 인터페이스 모듈(230), TCP/IP 모듈(220), 소켓 어댑터 모듈(210)을 거쳐 상위 어플리케이션(미도시)에 수신된다.
송신측 이더넷 제어기(100)가 수신측 이더넷 제어기(200)로 데이터를 전송하고자 하면, 송신측 이더넷 제어기(100)는 수신측 이더넷 제어기(200)와의 3-way handshake를 통해 수신측의 윈도우 사이즈 값을 획득하고, TCP/IP 모듈(120)의 윈도우 사이즈를 해당 값으로 설정한다. 그러면 TCP/IP 모듈(120)은 설정된 윈도우 사이즈 이하만큼의 일련의 데이터 패킷들을 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송한다.
통상적으로, 하드웨어 큐(270)의 용량에는 제한이 있고, MAC 모듈(280)과 하드웨어 큐(270) 사이의 인터페이스인 RGMII(Reduced Gigabit Media Independent Interface)는 Gbps 단위의 속도를 가지며, 하드웨어 큐(270)와 DMA 모듈(260) 사이의 인터페이스는 Mhz 단위의 속도를 가진다. 이러한 하드웨어 큐(270)의 용량 제한과 속도 미스매치(mismatch)로 인해 수신측 이더넷 제어기(200)에서 패킷 손실이 발생할 수 있다. 수신측 이더넷 제어기(200)의 TCP/IP 모듈(220)은 패킷 손실로 인해 순서가 어긋난 데이터 패킷이 수신되는 경우 가장 최근에 전송한 ACK를 재전송(DUP ACK)하게 된다. 송신측 이더넷 제어기(100)의 TCP/IP 모듈(120)은 수신측으로부터 DUP ACK가 수신되면 수신된 DUP ACK에 대응하는 데이터 패킷 다음의 데이터 패킷부터 재전송하고, 이로 인해 타임 로스가 발생하게 된다. 이러한 타임 로스는 초기에 설정된 윈도우 사이즈만큼의 일련의 데이터 패킷들을 전송하는 때마다 계속적으로 발생하므로, 대용량 데이터의 전송시 매우 심각한 문제가 된다.
본 발명의 실시예에서는 송신측 이더넷 제어기(100)에, 수신측으로부터 DUP ACK가 수신되면 DUP ACK에 따라 윈도우 사이즈를 감소된 값으로 재설정하는 윈도우 사이즈 재설정부(140)를 마련하여, TCP/IP 모듈(120)이 재설정된 윈도우 사이즈에 따라 데이터 패킷들을 전송하도록 함으로써 패킷 손실이 발생하지 않도록 한다.
여기서 윈도우 사이즈는, 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 양으로 재설정될 수 있다. 또는 윈도우 사이즈는 아래와 같이, 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 수와 MTU (Maximum Transmission Unit) 사이즈의 곱으로 재설정될 수도 있다.
(DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 수)×(MTU 사이즈)
여기서 MTU 사이즈는 예를 들면 1,500Byte일 수 있다.
가령, 초기에 윈도우 사이즈가 수신측으로부터 획득된 값인 12,000바이트로 설정되어, TCP/IP 모듈(120)이 1,500바이트의 데이터 패킷 8개(12,000바이트)를 연속적으로 (ACK 수신과 무관하게) 전송하였는데, 수신측으로부터 4번째 데이터 패킷에 대하여 DUP ACK가 수신되었다고 하자. 이것은 5번째 데이터 패킷에 손실이 발생하였고, 따라서 수신측의 하드웨어 큐의 제약으로 인해 4개의 데이터 패킷까지는 정상적으로 수신되나 5번째 데이터 패킷에서 패킷 로스가 발생함을 의미한다. 따라서 윈도우 사이즈 재설정부(140)는 윈도우 사이즈를 4번째 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 양(6,000Byte)으로 재설정하거나, 연속적으로 전송된 데이터 패킷들의 수(4)×MTU 사이즈(1,500)=6,000Byte로 재설정할 수 있다. 그러면 TCP/IP 모듈(120)은 4번째 데이터 패킷에 대한 DUP ACK로 인해 5~8번째 데이터 패킷을 전송한 다음부터는, 재설정된 윈도우 사이즈 6,000Byte에 따라 1,500바이트의 데이터 패킷 4개(12,000바이트)씩을 연속적으로 (ACK 수신과 무관하게) 전송하게 된다.
도 2는 본 발명의 일 실시예에 따른 송신측 이더넷 제어기(100)의 데이터 전송 방법의 흐름도를 나타낸다.
310단계에서, TCP/IP 모듈(120)은 수신측과의 3-way handshake를 통해 윈도우 사이즈 값을 수신한다.
320단계에서, TCP/IP 모듈(120)은 윈도우 사이즈를 수신측으로부터 수신된 윈도우 사이즈 값으로 설정한다.
330단계에서, TCP/IP 모듈(120)은 설정된 윈도우 사이즈 이하만큼의 일련의 데이터 패킷들을 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송한다.
수신측에서의 패킷 로스로 인해 수신측으로부터 DUP ACK가 수신되면(340단계), 350단계에서 TCP/IP 모듈(120)은 수신된 DUP ACK에 대응하는 데이터 패킷 다음의 데이터 패킷부터 재전송한다.
360단계에서, 윈도우 사이즈 재설정부(140)는 TCP/IP 모듈(120)의 윈도우 사이즈를 감소된 값으로 재설정한다. 예컨대 윈도우 사이즈는, 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 양으로 재설정되거나, 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 수와 MTU (Maximum Transmission Unit) 사이즈의 곱으로 재설정된다.
연속적으로 전송할 데이터 패킷들의 전송이 완료되고(370단계), 수신측으로부터 적어도 하나의 ACK가 수신되었으면(380단계), 330단계로 돌아가 TCP/IP 모듈(120)은 360단계를 통해 재설정된 윈도우 사이즈 이하만큼의 일련의 데이터 패킷들을 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송한다.
360단계를 통해 윈도우 사이즈가 재설정된 이후로부터는, 수신측에서 패킷 손실이 발생하지 않으므로 DUP ACK 수신 및 데이터 패킷 재전송이 일어나지 않게 된다.
도 3a 및 3b는 본 발명의 일 실시예에 따라 송신측으로부터 수신측으로 데이터가 전송되는 과정의 일 예를 나타낸 데이터 흐름도이다.
도 3a를 참조하면, 송신측 이더넷 제어기(100)는 Syn을 전송하고, 수신측 이더넷 제어기(200)는 윈도우 사이즈 값이 포함된 Syn/Ack를 전송하고, 송신측 이더넷 제어기(100)는 Ack를 전송하는 3-way handshake가 수행된다.
송신측 이더넷 제어기(100)의 TCP/IP 모듈(120)은 윈도우 사이즈를 수신측으로부터 수신된 윈도우 사이즈 값(예컨대 12,000바이트)으로 설정한다.
TCP/IP 모듈(120)은 12,000바이트에 해당하는, 1,500바이트의 데이터 패킷 8개(Data #1 ~ #8)를 연속적으로 전송한다. 이 과정에서 수신측에서 5번째 데이터 패킷(Data #5)의 패킷 로스가 발생한다.
수신측 이더넷 제어기(200)는 정상적으로 수신된 1번째에서 4번째 데이터 패킷(Data #1 ~ #4)에 대하여 ACK(ACK #1 ~ #4)를 전송하고, 4번째 데이터 패킷(Data #4) 다음에 6번째 데이터 패킷(Data #6)이 수신되었으므로, 4번째 데이터 패킷(Data #4)에 대한 ACK #4를 재전송(DUP ACK)한다.
DUP ACK(ACK #4)를 수신한 TCP/IP 모듈(120)은 ACK #4에 대응하는 데이터 패킷(Data #4) 다음의 데이터 패킷들(Data #5 ~ #8)을 재전송한다. 이때 DUP ACK(ACK #4)의 수신으로부터 데이터 패킷들(Data #5 ~ #8)이 전송되는 동안 타임 로스가 발생한다.
도 3b를 참조하면, 도 3a에서 DUP ACK(ACK #4)가 수신되었으므로, 윈도우 사이즈 재설정부(140)는 윈도우 사이즈를 DUP ACK(ACK #4)에 대응하는 데이터 패킷(Data #4)까지 연속적으로 전송된 데이터 패킷들(Data #1 ~ #4)의 데이터 양(6,000Byte)(혹은, 4×MTU 사이즈(1,500)=6,000Byte)으로 재설정한다.
윈도우 사이즈가 6,000Byte로 재설정됨에 따라, TCP/IP 모듈(120)은 6,000바이트에 해당하는, 1,500바이트의 데이터 패킷 4개(Data #9 ~ #12)를 연속적으로 전송한다. 연속적으로 전송된 4개의 데이터 패킷(Data #9 ~ #12) 중 적어도 하나에 대하여 ACK(ACK #9)가 수신되었으면, TCP/IP 모듈(120)은 다음의 데이터 패킷 4개(Data #13 ~ #16)를 연속적으로 전송한다. 이처럼 수신측의 하드웨어 큐를 고려하여 윈도우 사이즈가 재설정된 이후부터는 패킷 로스가 발생하지 않고 따라서 타임 로스도 발생하지 않게 된다.
상기된 본 발명의 실시예에서는 수신측이 하나인 것을 예로 들었으나, 실시예에 따라 수신측은 복수가 될 수도 있다. 수신측이 복수인 경우, 수신측마다 하드웨어 큐의 상황이 다를 수 있으므로, DUP ACK가 수신되는 양상 또한 달라질 수 있다. 예컨대 한 수신측으로부터는 DUP ACK로 ACK #4가 수신되고, 다른 수신측으로부터는 DUP ACK로 ACK #6이 수신될 수 있다. 이처럼 수신측이 복수인 경우 윈도우 사이즈 재설정부(140)는 해당 수신측으로부터 수신되는 DUP ACK에 따라 독립적으로 윈도우 사이즈를 재설정할 수 있다. 예컨대 DUP ACK로 ACK #4가 수신된 수신측에 대하여는 윈도우 사이즈가 6,000Byte로 재설정되고, DUP ACK로 ACK #6이 수신된 수신측에 대하여는 윈도우 사이즈가 9,000Byte로 재설정될 수 있다. 따라서 수신측의 하드웨어 큐의 상황에 따라 수신측 별로 최적의 전송 속도가 보장될 수 있다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (12)

  1. 차량용 이더넷 제어기에 있어서,
    설정된 윈도우 사이즈 이하만큼의 일련의 데이터 패킷들을 상기 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송하되, 초기에 상기 윈도우 사이즈는 상기 수신측으로부터 획득된 윈도우 사이즈 값으로 설정되는 TCP/IP 모듈; 및
    상기 수신측으로부터 DUP ACK가 수신되면 상기 윈도우 사이즈를 감소된 값으로 재설정하는 윈도우 사이즈 재설정부를 포함하는 것을 특징으로 하는 차량용 이더넷 제어기.
  2. 제1항에 있어서,
    상기 윈도우 사이즈 재설정부는, 상기 윈도우 사이즈를, 상기 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 데이터 양으로 재설정하는 것을 특징으로 하는 차량용 이더넷 제어기.
  3. 제1항에 있어서,
    상기 윈도우 사이즈 재설정부는, 상기 윈도우 사이즈를, 상기 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 수 및 MTU (Maximum Transmission Unit) 사이즈에 따라 재설정하는 것을 특징으로 하는 차량용 이더넷 제어기.
  4. 제3항에 있어서,
    상기 윈도우 사이즈 재설정부는, 상기 윈도우 사이즈를, (상기 연속적으로 전송된 데이터 패킷들의 수)×(상기 MTU 사이즈)로 재설정하는 것을 특징으로 하는 차량용 이더넷 제어기.
  5. 제1항에 있어서,
    상기 TCP/IP 모듈은 상기 DUP ACK가 수신되면 상기 수신된 DUP ACK에 대응하는 데이터 패킷 다음의 데이터 패킷부터 재전송하는 것을 특징으로 하는 차량용 이더넷 제어기.
  6. 제1항에 있어서,
    상기 윈도우 사이즈 재설정부는 상기 윈도우 사이즈를 복수의 수신측으로부터 수신되는 DUP ACK에 따라 독립적으로 재설정하는 것을 특징으로 하는 차량용 이더넷 제어기.
  7. 윈도우 사이즈를 수신측으로부터 획득된 윈도우 사이즈 값으로 설정하는 단계;
    상기 설정된 윈도우 사이즈 이하만큼의 일련의 데이터 패킷들을 상기 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송하는 단계;
    상기 수신측으로부터 DUP ACK가 수신되면 상기 윈도우 사이즈를 감소된 값으로 재설정하는 단계; 및
    상기 재설정된 윈도우 사이즈 이하만큼의 일련의 데이터 패킷들을 상기 수신측으로부터 ACK가 수신되는 것과 무관하게 연속적으로 전송하는 단계를 포함하는 것을 특징으로 하는 차량용 이더넷 제어기의 데이터 전송 방법.
  8. 제7항에 있어서,
    상기 재설정하는 단계는, 상기 윈도우 사이즈를, 상기 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 데이터 양으로 재설정하는 것을 특징으로 하는 차량용 이더넷 제어기의 데이터 전송 방법.
  9. 제7항에 있어서,
    상기 재설정하는 단계는, 상기 윈도우 사이즈를, 상기 수신된 DUP ACK에 대응하는 데이터 패킷까지 연속적으로 전송된 데이터 패킷들의 수 및 MTU (Maximum Transmission Unit) 사이즈에 따라 재설정하는 것을 특징으로 하는 차량용 이더넷 제어기의 데이터 전송 방법.
  10. 제9항에 있어서,
    상기 재설정하는 단계는, 상기 윈도우 사이즈를, (상기 연속적으로 전송된 데이터 패킷들의 수)×(상기 MTU 사이즈)로 재설정하는 것을 특징으로 하는 차량용 이더넷 제어기의 데이터 전송 방법.
  11. 제7항에 있어서,
    상기 DUP ACK가 수신되면 상기 수신된 DUP ACK에 대응하는 데이터 패킷 다음의 데이터 패킷부터 재전송하는 단계를 더 포함하는 것을 특징으로 하는 차량용 이더넷 제어기의 데이터 전송 방법.
  12. 제7항에 있어서,
    상기 재설정하는 단계는, 상기 윈도우 사이즈를 복수의 수신측으로부터 수신되는 DUP ACK에 따라 독립적으로 재설정하는 것을 특징으로 하는 차량용 이더넷 제어기의 데이터 전송 방법.
KR1020220028756A 2022-03-07 2022-03-07 차량용 이더넷 제어기 및 그것의 데이터 전송 방법 KR20230131636A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020220028756A KR20230131636A (ko) 2022-03-07 2022-03-07 차량용 이더넷 제어기 및 그것의 데이터 전송 방법
CN202211605652.9A CN116723254A (zh) 2022-03-07 2022-12-14 车载以太网控制器及其数据传输方法
US18/082,204 US20230283564A1 (en) 2022-03-07 2022-12-15 Ethernet controller for a vehicle and data transmission method thereof
DE102022133537.2A DE102022133537A1 (de) 2022-03-07 2022-12-15 Fahrzeug-ethernet-controller und dazugehöriges datenübertragungsverfahren

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220028756A KR20230131636A (ko) 2022-03-07 2022-03-07 차량용 이더넷 제어기 및 그것의 데이터 전송 방법

Publications (1)

Publication Number Publication Date
KR20230131636A true KR20230131636A (ko) 2023-09-14

Family

ID=87572395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220028756A KR20230131636A (ko) 2022-03-07 2022-03-07 차량용 이더넷 제어기 및 그것의 데이터 전송 방법

Country Status (4)

Country Link
US (1) US20230283564A1 (ko)
KR (1) KR20230131636A (ko)
CN (1) CN116723254A (ko)
DE (1) DE102022133537A1 (ko)

Also Published As

Publication number Publication date
US20230283564A1 (en) 2023-09-07
DE102022133537A1 (de) 2023-09-07
CN116723254A (zh) 2023-09-08

Similar Documents

Publication Publication Date Title
US10826654B2 (en) Method and system for improving wireless link efficiency
KR102249741B1 (ko) 데이터 전송을 위한 방법 및 장치
KR101578064B1 (ko) 패킷의 전송 방법과 이를 이용하는 장치들
US9043509B2 (en) Method and system for low-latency networking
US20160285776A1 (en) Physical-layer signaling of flow control updates
KR20190105061A (ko) 데이터를 송신하는 방법과 데이터 송신 장치, 및 고객 댁내 장치
KR20230131636A (ko) 차량용 이더넷 제어기 및 그것의 데이터 전송 방법
EP1317823B1 (en) Method and system for transmit data blocking in a wireless communications network
CN113541874A (zh) 一种数据传输方法及网络设备
Zabolotny Low latency protocol for transmission of measurement data from FPGA to Linux computer via 10 Gbps Ethernet link
KR20150050960A (ko) 패킷의 전송 순서를 재배열하는 방법과 이를 이용하는 장치들
KR101606463B1 (ko) 플렉스레이 패킷을 언-패키징하는 방법과 이를 이용하는 장치들
KR101578065B1 (ko) Can 패킷을 패키징하는 방법과 이를 이용하는 장치들
JP3148733B2 (ja) 信号処理装置及び信号処理システム
US20120044855A1 (en) Communication Method In An Automatic System
KR20150050936A (ko) 플렉스레이 패킷을 패키징하는 방법과 이를 이용하는 장치들
CN115134866A (zh) 一种数据传输的处理方法、装置及设备
KR20150050992A (ko) Lin 패킷을 언-패키징하는 방법과 이를 이용하는 장치들
KR20150050991A (ko) Can 패킷을 언-패키징하는 방법과 이를 이용하는 장치들
KR20150051331A (ko) K-line 패킷을 패키징하는 방법과 이를 이용하는 장치들
KR20150051333A (ko) Lin 패킷을 패키징하는 방법과 이를 이용하는 장치들
KR20140012416A (ko) 이더넷 프레임 전송 방법 및 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal