KR20140048815A - Tcp 가속화를 포함하는 내장형 자동차용 획득 장치를 위한 분산형 측정 배열 - Google Patents

Tcp 가속화를 포함하는 내장형 자동차용 획득 장치를 위한 분산형 측정 배열 Download PDF

Info

Publication number
KR20140048815A
KR20140048815A KR1020130121290A KR20130121290A KR20140048815A KR 20140048815 A KR20140048815 A KR 20140048815A KR 1020130121290 A KR1020130121290 A KR 1020130121290A KR 20130121290 A KR20130121290 A KR 20130121290A KR 20140048815 A KR20140048815 A KR 20140048815A
Authority
KR
South Korea
Prior art keywords
data
tcp
communication system
acquisition device
transmitted
Prior art date
Application number
KR1020130121290A
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 로베르트 보쉬 게엠베하
Publication of KR20140048815A publication Critical patent/KR20140048815A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 통신 시스템의 클라이언트 계층 및/또는 전송 계층에서 임의의 2개의 장치 사이에 데이터를 어느 한 방향으로 전송하기 위한 방법 및 통신 시스템에 관한 것이다. 데이터 전송은 이하 TCP로서 지칭되는 전송 제어 프로토콜에 따라 수행된다. 높은 데이터 전송 레이트를 달성하기 위하여, 전송될 데이터를 버퍼링하기 위한 중앙 저장 수단(12) 및 TCP 프로토콜 동작 블록(10)이 통신 시스템 내에 제공되며, TCP 프로토콜 동작 블록(10)이 데이터 자체가 아니라 저장 수단(12)에 저장된 전송된 데이터에 대한 참조들을 처리하는 것이 제안된다. 본 발명은 또한 통신 시스템의 2개의 장치 - 이들 사이에 데이터가 전송됨 - 사이에 배치된 내장형 획득 장치(1)에 관한 것이다. 획득 장치(1)는 본 발명에 따른 방법을 수행하도록 구성된 수단을 포함한다.

Description

TCP 가속화를 포함하는 내장형 자동차용 획득 장치를 위한 분산형 측정 배열{DISTRIBUTED MEASUREMENT ARRANGEMENT FOR AN EMBEDDED AUTOMOTIVE ACQUISITION DEVICE WITH TCP ACCELERATION}
본 발명은 분산 측정 시스템에 관한 것이다. 그러한 시스템들에서, 전송 제어 프로토콜(TCP)은 자동차용 전자 제어 유닛들(ECU들)에 접속된 내장형 획득 장치들과 개인용 컴퓨터들 상에서 실행되는 자동차용 개발 소프트웨어 도구들(예를 들어, ETAS GmbH로부터의 INCA) 사이에서의 측정, 교정 및 진단(MCD) 데이터의 신뢰성 있는 전송을 위해 널리 사용된다.
내장형 획득 장치들은 종종 ECU(테스트 중인 장치(DUT))와 같은 곳에 배치되며, ECU 자체와 동일한 거친 환경 조건들에서 동작해야 한다. 차량의 배터리로부터 공급되는 전력의 획득 장치들에 의한 소비는 ECU의 시동 거동을 포착할 수 있기 위해, 배터리에 너무 많은 스트레스를 주지 않고 대기 모드를 유지하기 위해 낮아야 한다.
전송 제어 프로토콜(TCP)은 인터넷 프로토콜 모음의 핵심 프로토콜들 중 하나이다. TCP는 모음의 2개의 오리지널 컴포넌트 중 하나로서, 인터넷 프로토콜(IP)을 보완하며, 따라서 전체 모음은 일반적으로 TCP/IP로서 지칭된다. TCP는 하나의 컴퓨터 상의 프로그램으로부터 다른 컴퓨터 상의 다른 프로그램으로의 옥텟 스트림의 신뢰성 있는 정연한 전달을 제공한다. TCP는 월드 와이드 웹, 이메일, 원격 관리 및 파일 전송과 같은 주요 인터넷 애플리케이션들에 의해 사용되는 프로토콜이다. 신뢰성 있는 데이터 스트림 서비스를 필요로 하지 않는 다른 애플리케이션들은 신뢰성보다는 지연 감소를 강조하는 데이터그램 서비스를 제공하는 사용자 데이터그램 프로토콜(UDP)을 사용할 수 있다.
프로토콜은 TCP/IP 모음의 전송 계층에 대응한다. TCP는 애플리케이션 프로그램과 인터넷 프로토콜(IP) 사이의 중간 레벨에서 통신 서비스를 제공한다. 즉, 애플리케이션 프로그램이 큰 데이터 청크(chunk)를 IP를 이용하여 인터넷을 통해 전송하기를 원할 때, 소프트웨어는 데이터를 IP에 맞는 크기의 조각들로 분할하고 IP 요청들의 시리즈를 발행하는 대신에 단일 요청을 TCP에 대해 발행하여, TCP로 하여금 IP 상세들을 처리하게 할 수 있다.
IP는 패킷이라고 하는 정보의 조각들을 교환함으로써 작동한다. 패킷은 옥텟들의 시퀀스이며, 헤더 및 그에 이어지는 보디로 구성된다. 헤더는 패킷의 목적지 및 옵션으로서 패킷이 그의 목적지에 도달할 때까지 전송을 위해 사용할 라우터들을 기술한다. 보디는 페이로드 데이터를 포함한다.
네트워크 혼잡, 트래픽 부하 균형화, 또는 다른 예측 불가한 네트워크 거동으로 인해, IP 패킷들이 손실되거나, 중복되거나, 무질서하게 전달될 수 있다. TCP는 이러한 문제들을 검출하고, 손실된 데이터의 재전송을 요청하고, 무질서한 데이터를 재배열하고, 심지어는 네트워크 혼잡을 최소화하여 다른 문제들의 발생을 줄이는 것을 돕는다. TCP 수신기가 최초 전송된 옥텟 시퀀스를 재조립하면, 그는 이들을 애플리케이션 프로그램으로 전송한다. 따라서, TCP는 기초 네트워킹 상세들로부터 애플리케이션의 통신을 추상화한다.
TCP는 월드 와이드 웹(WWW), 이메일, 파일 전송 프로토콜, 보안 쉘(Secure Shell), 피어 대 피어 파일 공유, 및 일부 스트리밍 미디어 애플리케이션들을 포함하는 인터넷의 가장 인기 있는 애플리케이션들 다수에 의해 광범위하게 이용된다.
TCP는 수신된 모든 바이트들이 전송된 바이트들과 동일하고 순서가 올바른 것을 보증하는 신뢰성 있는 스트림 전달 서비스이다. 패킷 전송은 신뢰성이 없으므로, 긍정 수신 확인 및 재전송(positive acknowledgement with retransmission)으로 알려진 기술을 이용하여 패킷 전송의 신뢰성을 보증할 수 있다. 이러한 기본 기술은 수신기가 데이터를 수신할 때 수신 확인 메시지로 응답할 것을 요구한다. 송신기는 그가 송신한 각각의 패킷의 레코드를 유지한다. 송신기는 또한 패킷을 전송한 때에서부터 타이머를 유지하며, 메시지가 수신 확인되기 전에 타이머가 만료되는 경우에는 패킷을 재전송한다. 타이머는 패킷이 손실 또는 손상되는 경우에 필요하다.
TCP는 한 세트의 규칙들, 즉 프로토콜에 대해, 인터넷 프로토콜과 함께 사용되고, IP에 대해, 인터넷을 통해 컴퓨터들 사이에서 "메시지 유닛들의 형태로" 데이터를 전송하기 위한 규칙들로 구성된다. IP가 데이터의 실제 전달을 처리하는 동안, TCP는 네트워크를 통한 효율적인 라우팅을 위해 메시지를 분할한 세그먼트들이라고 하는 데이터 전송의 개별 유닛들의 추적을 유지한다. 예를 들어, HTML 파일이 웹 서버로부터 전송될 때, 그 서버의 TCP 소프트웨어 계층은 파일의 옥텟 시퀀스를 세그먼트들로 분할하고, 이들을 IP 소프트웨어 계층(인터넷 계층)으로 개별적으로 전송한다. 인터넷 계층은 (많은 데이터 중에서 특히) 목적지 IP 어드레스를 포함하는 헤더를 추가함으로써 각각의 TCP 세그먼트를 IP 패킷 내에 캡슐화한다. 모든 패킷이 동일한 목적지 어드레스를 갖지만, 이들은 네트워크를 통해 상이한 경로들 상에서 라우팅될 수 있다. 목적지 컴퓨터 상의 클라이언트 프로그램이 이들을 수신할 때, TCP 계층(전송 계층)은 개별 세그먼트들을 재조립하며, 이들을 애플리케이션으로 스트리밍할 때 이들이 올바르게 배열되고 에러가 없는 것을 보증한다.
이하, TCP 세그먼트 구조가 설명된다. 전송 제어 프로토콜은 데이터 스트림으로부터 데이터를 수신하고, 이를 청크들로 세그먼트화하고, TCP 헤더를 더하여 TCP 세그먼트를 생성한다. 이어서, TCP 세그먼트는 인터넷 프로토콜(IP) 데이터그램 내에 캡슐화된다. TCP 세그먼트는 "TCP가 그의 피어들과 데이터를 교환하는 데 사용하는 정보의 패킷"이다.
용어 TCP 패킷은 때때로 비공식적으로 사용되지만, 일반적인 용어법에 맞지 않으며, 이러한 용어법에서는 세그먼트가 TCP 프로토콜 데이터 유닛(PDU)을 지칭하고, 데이터그램이 IP PDU를 지칭하고, 프레임이 데이터 링크 계층 PDU를 지칭한다.
프로세스들은 TCP를 호출하고 데이터의 버퍼들을 인수들로서 전달함으로써 데이터를 전송한다. TCP는 이러한 버퍼들로부터의 데이터를 세그먼트들 내에 패키징하고, 인터넷 모듈(예를 들어, IP)을 호출하여 각각의 세그먼트를 목적지 TCP로 전송한다.
TCP 세그먼트는 세그먼트 헤더 및 데이터 섹션으로 구성된다. TCP 헤더는 10개의 필수 필드 및 옵션인 확장 필드(옵션들, 표 내의 오렌지색 배경)를 포함한다.
데이터 섹션이 헤더에 이어진다. 그의 내용은 애플리케이션을 향해 운반되는 페이로드 데이터이다. 데이터 섹션의 길이는 TCP 세그먼트 헤더 내에 지정되지 않는다. 이것은 TCP 헤더와 캡슐화 IP 헤더의 합산 길이를 (IP 헤더 내에 지정된) 총 IP 데이터그램 길이로부터 뺌으로써 계산될 수 있다.
TCP 헤더
Figure pat00001
ㆍ 소스 포트(16 비트) - 전송 포트를 식별한다
ㆍ 목적지 포트(16 비트) - 수신 포트를 식별한다
ㆍ 시퀀스 번호(32 비트) - 이중 역할을 한다:
ㆍ SYN 플래그가 설정되는 경우(1), 이것은 최초 시퀀스 번호이다. 그러면, 실제 제1 데이터 바이트의 시퀀스 번호 및 대응하는 ACK 내의 수신 확인된 번호는 이 시퀀스 번호 + 1이다.
ㆍ SYN 플래그가 없는 경우(0), 이것은 현재의 세션 동안 이 패킷의 제1 데이터 바이트의 누적된 시퀀스 번호이다.
ㆍ 수신 확인 번호(32 비트) - ACK 플래그가 설정되는 경우, 이 필드의 값은 수신기가 예상하고 있는 다음 시퀀스 번호이다. 이것은 모든 이전 바이트들(존재할 경우)의 수신을 수신 확인한다. 각각의 말단에 의해 전송되는 제1 ACK는 다른 말단의 최초 시퀀스 번호 자체를 수신 확인하지만, 데이터는 아니다.
ㆍ 데이터 오프셋(4 비트) - 32 비트 워드 단위로 TCP 헤더의 크기를 지정한다. 최소 크기 헤더는 5 워드이고, 최대는 15 워드이며, 따라서 20 바이트의 최소 크기 및 60 바이트의 최대 크기를 제공하며, 이는 헤더 내에 최대 40 바이트의 옵션들을 허용한다. 이 필드의 이름은 이 필드가 TCP 세그먼트의 시작으로부터 실제 데이터까지의 오프셋이기도 하다는 사실로부터 얻어진다.
ㆍ 예약(3 비트) - 장래의 사용을 위한 것이고, 0으로 설정되어야 한다
ㆍ 플래그들(9 비트)(제어 비트들이라고 함) - 9개의 1비트 플래그를 포함한다
ㆍ NS(1 비트) - ECN-논스(nonce) 은폐 보호(RFC 3540에 의해 헤더에 추가됨).
ㆍ CWR(1 비트) - 전송 호스트가 ECE 플래그가 설정된 TCP 세그먼트를 수신하였고, 혼잡 제어 메커니즘에서 응답하였음을 지시하기 위해 전송 호스트에 의해 CWR(Congestion Window Reduced) 플래그가 설정된다(RFC 3168에 의해 헤더 추가됨).
ㆍ ECE(1 비트) - ECN-에코 지시
ㆍ SYN 플래그가 설정되는 경우(1), TCP 피어는 ECN이 가능하다.
ㆍ SYN 플래그가 없는 경우(0), IP 헤더 내에 혼잡 경험 플래그가 설정된 패킷이 정상 전송 동안 수신된다(RFC 3168에 의해 헤더에 추가됨).
ㆍ URG(1 비트) - 긴급 포인터 필드가 유의미하다는 것을 지시한다
ㆍ ACK(1 비트) - 수신 확인 필드가 유의미하다는 것을 지시한다. 클라이언트에 의해 전송된 최초 SYN 패킷 이후의 모든 패킷들에는 이 플래그가 설정되어야 한다.
ㆍ PSH(1 비트) - 푸시 함수. 버퍼링된 데이터를 수신 애플리케이션으로 푸시할 것으로 요청한다.
ㆍ RST(1 비트) - 접속을 리셋한다
ㆍ SYN(1 비트) - 시퀀스 번호들을 동기화한다. 각각의 말단으로부터 전송된 제1 패킷에만 이 플래그가 설정되어야 한다. 일부 다른 플래그들은 이 플래그에 기초하여 의미를 변경하며, 일부 플래그들은 이 플래그가 설정될 때만 유효하고, 다른 플래그들은 이 플래그가 없을 때 유효하다.
ㆍ FIN(1 비트) - 송신기로부터의 데이터가 더 이상 없음
ㆍ 윈도 크기(16 비트) - 이 세그먼트의 송신기가 현재 수신하고자 하는 (수신 확인 필드 내의 시퀀스 번호를 초과하는) 바이트들의 수를 지정하는 수신 윈도우의 크기(흐름 제어 및 윈도우 스케일링 참조)
ㆍ 체크섬(16 비트) - 16비트 체크섬 필드는 헤더 및 데이터의 에러 체킹에 사용된다
ㆍ 긴급 포인터(16 비트) - URG 플래그가 설정되는 경우, 이 16비트 필드는 최종 긴급 데이터 바이트를 지시하는 시퀀스 번호로부터의 오프셋이다
ㆍ 옵션들(32로 나눌 수 있는 변수 0-320 비트) - 이 필드의 길이는 데이터 오프셋 필드에 의해 결정된다. 옵션들은 최대 3개의 필드, 즉 옵션-종류(1 바이트), 옵션-길이(1 바이트), 옵션-데이터(변수)를 갖는다. 옵션-종류 필드는 옵션의 타입을 지시하며, 옵션이 아닌 유일한 필드이다. 어떤 종류의 옵션을 처리하는지에 따라, 다음 2개의 필드가 설정될 수 있으며, 옵션-길이 필드는 옵션의 총 길이를 지시하고, 옵션-데이터 필드는 적용 가능한 경우에 옵션의 값을 포함한다. 예를 들어, 0x01의 옵션-종류 바이트는 이것이 패딩을 위해서만 사용되는 비연산 옵션임을 지시하고, 그에 이어지는 옵션-길이 또는 옵션-데이터 바이트를 갖지 않는다. 0의 옵션-종류 바이트는 옵션들 옵션의 끝이며, 또한 단지 1 바이트이다. 0x02의 옵션-종류 바이트는 이것이 최대 세그먼트 크기 옵션임을 지시하고, 그 뒤에 MSS 필드(0x04이어야 함)의 길이를 지정하는 바이트가 이어질 것이다. 이 길이는 옵션-종류 및 옵션-길이 바이트들을 포함하는 주어진 옵션들 필드의 총 길이라는 점에 유의한다. 따라서, MSS 값은 통상적으로 2 바이트로 표현되는 반면, 이 필드의 길이는 4 바이트(종류 및 길이의 + 2 바이트들)일 것이다. 요컨대, 0x05B4의 값을 갖는 MSS 옵션 필드가 TCP 옵션들 섹션에 (0x02 0x04 0x05B4)로서 나타날 것이다.
ㆍ 패딩 - TCP 헤더 패딩은 32 비트 경계 상에서 TCP 헤더가 끝나고 데이터가 시작되는 것을 보증하는 데 사용된다. 패딩은 0들로 구성된다.
일부 옵션들은 SYN이 설정될 때만 전송될 수 있으며, 이들은 아래에 [SYN]으로서 지시된다. (옵션-종류, 옵션-길이)로서 주어지는 옵션-종류 및 표준 길이들.
ㆍ 0(8 비트) - 옵션들 리스트의 끝
ㆍ 1(8 비트) - 비연산(NOP, 패딩) 이것은 더 양호한 성능을 위해 32 비트 경계들 상에 옵션 필드들을 정렬하는 데 사용될 수 있다.
ㆍ 2,4,SS(32 비트) - 최대 세그먼트 크기(최대 세그먼트 크기 참조) [SYN]
ㆍ 3,3,S(24 비트) - 윈도우 스케일(상세를 위해 윈도우 스케일링 참조) [SYN]
ㆍ 4,2(16 비트) - 선택적 수신 확인이 허가됨. [SYN] (상세를 위해 선택적 수신 확인 참조)
ㆍ 5,N,BBBB,EEEE,... (변수 비트들, N은 10, 18, 26 또는 34) - 선택적 수신 확인(SACK). 이러한 최초 2개의 바이트 뒤에는 32비트 시작/종료 포인터들로서 지정되는, 선택적으로 수신 확인되는 1-4 블록들의 리스트가 이어진다.
ㆍ 8,10,TTTT,EEEE(80 비트) - 타임 스탬프 및 이전 타임 스탬프의 에코(상세를 위해 TCP 타임 스탬프 참조)
ㆍ 14,3,S(24 비트) - TCP 교체 체크섬 요청. [SYN]
ㆍ 15,N,...(변수 비트들) - TCP 교체 체크섬 데이터.
(나머지 옵션들은 쓸모없거나, 실험용이거나, 아직 표준화되지 않았거나, 할당되지 않음)
상이한 서비스 품질(QoS) 요구들을 갖는 다수의 애플리케이션들은 TCP를 기본적인 신뢰성 있는 전송 메커니즘으로서 또는 UDP를 기본적인 저지연 전송 메커니즘으로서 의존한다.
- 단일 TCP 접속 상에서 수십 메가바이트/초의 범위의 데이터 레이트들을 갖는 애플리케이션 고유 자동차용 프로토콜들을 이용하는 고처리량 스트리밍 측정 데이터 전송.
- UDP를 이용하는 FIL(function in the loop) 프로토타이핑 사용 예들에 대한 저지연 및 저지터 스트리밍 측정 데이터 전송.
- TCP 또는 UCP를 이용하여 낮은 트랜잭션 왕복 시간을 보증하기 위한 저지연 요구를 갖는 트랜잭션 기반 제어, 교정 및 진단 서비스들.
- http, ftp 또는 터미널 에뮬레이션과 같은 표준 최선 노력 TCP/IP 서비스들.
많은 예에서, 이러한 애플리케이션들은 단일 내장형 획득 장치 상에 공존하며, 각각의 애플리케이션 고유 및 서비스 인식 자동차용 프로토콜은 그 자신의 TCP 접속을 필요로 한다.
TCP/IP는 주로 소프트웨어로 구현되며, CPU의 관리자 모드(커널 공간)에서 운영 체제 서비스로서 실행된다. 그러나, 소프트웨어 기반 프로토콜 구현들은 원칙적으로 많은 양의 상황 스위치들 및 각각의 수신 또는 송신된 프레임에 대해 수행되어야 하는 작업량으로 인해 프레임 레이트 제한을 겪는다. 이것은 매우 높은 프레임 레이트를 갖는 고처리량, 저지연 기가비트 이더넷 링크에 접속되는 제한된 CPU 성능을 갖는 소형 내장 시스템들에 대해 특히 사실이다.
종래 기술에서는 프레임 이벤트당 소비되는 CPU 처리 전력의 비율을 개선하기 위해 지금까지 다양한 방법들이 제안되었다. 이러한 방법들 중 가장 인기 있는 방법들은 다음과 같다.
- 오프로드 엔진들
○ 오프로드 엔진들은 예를 들어 하드웨어에서 헤더 및 페이로드 체크섬들을 계산함으로써 IP 프레임마다 수행될 동작들의 수를 줄이려고 시도한다.
○ 이러한 접근법은 이벤트당 처리 전력의 양을 줄이지만, 소프트웨어에 대한 프레임 레이트를 줄이지 못한다. 너무 많은 상황 스위치들의 문제가 남는다.
- 인터럽트 스로틀링(throttling) 또는 인터럽트 연결
○ 다수의 프레임 도달에 대한 처리를 단일 인터럽트 서비스 액션으로 연결함으로써 상황 스위치들의 수가 감소된다.
○ 인터럽트 스로틀링은 단위 시간당 상황 스위치들의 수를 줄이는 데 큰 도움이 된다. 그러나, 이것은 링크 계층(이더넷) 레벨에서 동작하므로, 서비스를 인식하지 못하며, 모든 서비스들에 바람직하지 못한 지연을 발생시킨다.
- 점보 프레임들의 사용
○ 점보 프레임들은 표준 1518 바이트 대신에 통상적으로 9600 바이트까지의 확장된 길이를 갖는 이더넷 프레임들이다. 이것은 더 큰 TCP 세그먼트 크기들을 허용함으로써 프레임 레이트를 줄인다.
○ 점보 프레임들은 IEEE 801.3에 의해 표준화되지 못했으며, 근거리 네트워크들(LAN)에서 좀처럼 사용되지 않고, TCP와 관련하여 거의 결코 사용되지 않는다. 이들은 링크의 양 단부에서 지원되어야 하며, 모든 이더넷 브리징 또는 IP 라우팅 네트워크를 통과하는 것이 보증되지 않는다. TCP 수신기는 대응하는 TCP 최대 세그먼트 크기 옵션을 이용함으로써 더 작은 TCP 세그먼트들을 전송하도록 점보 프레임 가능 TCP 송신기를 강제할 수도 있다.
- 다중 코어 기술
○ 다중 코어 CPU 상에서의 병렬 패킷 처리는 컴퓨터의 전반적인 패킷 처리량을 크게 향상시킨다.
○ 이 기술은 독립적인 패킷 대화들의 경우에만 이롭다. TCP 접속과 같은 단일 대화는 다수의 코어로부터 이익을 얻지 못하는데, 그 이유는 코어들이 다수의 코어 상에서의 패킷들의 직렬 처리를 최종 유발하는 패킷 시퀀스를 고려해야 하기 때문이며, 이는 대화가 코어들 사이에서 점프하므로 훨씬 더 악화되며; CPU 코어의 레벨 1 캐시들 및 시스템 성능의 이용이 저하된다.
- 독립 TCP 하드웨어 구현들(ASIC 또는 FPGA IP)
○ 독립 TCP 하드웨어 구현들은 완전한 그러나 모놀리식 TCP/IP 스택의 하드웨어 구현을 제공한다. 그러한 구현은 통상적으로 어드레스 결정 프로토콜(ARP)을 포함하는 링크 계층 네트워크를 향한 TCP 및 IP 기능의 엄격한 통합을 나타낸다. 이것은 클라이언트 계층을 향한 간단한 스트리밍 데이터 인터페이스 및 접속 관리를 향한 소켓형 제어 인터페이스를 제공한다.
○ 클라이언트 계층 데이터는 이러한 컴포넌트들을 값으로 통과한다. 적당한 수의 TCP 접속들을 처리하기 위해, 독립 하드웨어내 TCP(TCP in hardware) 구현들은 재전송 및 재배열 버퍼들을 위한 충분한 사설 데이터 저장 장치 및 대응하는 버퍼 관리를 필요로 한다. 데이터 저장 장치 및 버퍼 관리는 외부에서 액세스될 수 없으므로, 임의의 서비스 인식 클라이언트 계층(예로서, 이더넷 상의 XCP)은 그 자신의 버퍼링 스킴들을 구현해야 한다. 이것은 메모리 요구의 증가를 유발한다. 높은 비트 토글 레이트는 높은 시스템 전력 소비를 유발한다. TCP, IP 및 ARP의 모놀리식 컴포넌트로의 엄격한 통합은 하드웨어 기반 및 소프트웨어 기반 패킷 트래픽의 다중화 및 역다중화를 복잡하게 한다.
클라이언트 계층은 여러 개의 애플리케이션 계층 중 하나이며, 사용자는 여기서 애플리케이션에 액세스한다. 애플리케이션은 임의 타입의 클라이언트를 필요로 할 수 있다. 예를 들어, ECU와 장치(예로서, 내장형 획득 장치) 사이의 데이터 통신은 클라이언트 계층에서 수행된다. 전송 계층은 네트워크 컴포넌트들 및 프로토콜들의 계층화된 아키텍처 내의 애플리케이션들에 대한 말단 대 말단 통신 서비스들을 제공한다. 예를 들어, 장치(예로서, 내장형 획득 장치)와 외부 개인용 컴퓨터 사이의 데이터 통신은 전송 계층에서 수행된다.
표준화된 전송 제어 프로토콜(TCP)은 ECU와 MCD 애플리케이션 소프트웨어 사이의 측정, 교정 및 진단(MCD) 데이터의 신뢰성 있는 전송을 위해 필요한 인터페이스 모듈들 내의 코어 컴포넌트이다. 다가오는 고객 데이터 처리량 요구들은 부득이 제한된 CPU 성능을 갖는 전통적인 내장형 ECU 인터페이스 모듈들 내의 소프트웨어 기반 전송 기능들의 현재 패러다임으로는 충족될 수 없다. 동일한 제한들이 자동차용 이더넷을 도입한 ECU들 자체에 적용될 것이다.
TCP 가속화를 위해 이용 가능한 솔루션들에 대한 설명은 이러한 솔루션들 중 어느 것도 내장형 자동차용 획득 장치의 특정 하드웨어내 TCP 문제들을 해결하지 못한다는 것을 보여준다. 따라서, 본 발명의 목적은 TCP에 따라 데이터 전송을 수행하는 통신 시스템의 클라이언트 계층 및/또는 전송 계층에서 임의의 2개의 장치 사이의 빠르고 신뢰성 있는 데이터 전송을 제공하는 것이다. 구체적으로, 본 발명의 목적은 자동차용 ECU와 예를 들어 개인용 컴퓨터 상에서 실행되는 개발 소프트웨어 도구 사이의 빠르고 신뢰성 있는 MCD 데이터 전송을 제공하는 것이다.
이러한 목적은 청구항 1에 따른 방법에 의해, 청구항 7에 따른 통신 시스템에 의해 그리고 청구항 11에 따른 내장형 획득 장치에 의해 해결된다.
구체적으로, 통신 시스템의 클라이언트 계층 및/또는 전송 계층에서 임의의 2개의 장치 사이에 데이터를 전송하기 위한 방법이 제안된다. 데이터 전송은 이하 TCP로서 지칭되는 전송 제어 프로토콜에 따라 수행된다. 이 방법은 전송될 데이터가 중앙 저장 수단에 버퍼링되고, TCP 프로토콜 동작 블록이 데이터 자체 대신에 저장 수단에 저장된 전송 데이터에 대한 참조들을 처리하는 것을 특징으로 한다.
더구나, 통신 시스템의 클라이언트 계층 및/또는 전송 계층에서 임의의 2개의 장치 사이에 데이터를 전송하도록 적응되는 통신 시스템이 제안된다. 데이터 전송은 이하 TCP로서 지칭되는 전송 제어 프로토콜에 따라 수행된다. 이 통신 시스템은 전송될 데이터를 버퍼링하기 위한 중앙 저장 수단 및 데이터 자체 대신에 저장 수단에 저장된 전송 데이터에 대한 참조들을 처리하기 위한 TCP 프로토콜 동작 블록을 포함하는 것을 특징으로 한다.
마지막으로, 통신 시스템의 임의의 2개의 장치 - 통신 시스템의 클라이언트 계층 및/또는 전송 계층에서 상기 임의의 2개의 장치 사이에 데이터가 전송됨 - 사이에 배치되는 내장형 획득 장치가 제안된다. 획득 장치는 이하 TCP로서 지칭되는 전송 제어 프로토콜에 따라 데이터 전송을 수행하도록 적응된다. 획득 장치는 데이터 자체 대신에, 통신 시스템의 중앙 저장 수단에 버퍼링되는 전송될 데이터에 대한 참조들을 처리하도록 적응되는 TCP 프로토콜 동작 블록을 포함하는 것을 특징으로 한다.
본 특허 출원에서, "전송하는", "전송" 및 "전송된"이라는 용어들은 양방향 데이터 전송을 포함하는, 즉 제1 방향에서의 데이터(또는 프레임들)의 송신 및 반대 방향에서의 데이터(또는 프레임들)의 수신을 포함하는 그들의 가장 넓은 의미로 사용된다.
본 발명의 바람직한 실시예에 따르면, 통신 시스템에서 한편의 자동차용 전자 제어 유닛과 외부 개인용 컴퓨터 상에서 실행되는 다른 한편의 자동차용 개발 소프트웨어 도구 사이에서 측정, 교정 및 진단 데이터가 전송된다. 데이터 전송은 통신 시스템의 중앙 저장 수단에 버퍼링되는 전송될 데이터에 대한 참조들을 처리하는 TCP 획득 장치를 통해 수행된다.
추가적인 종속항들은 본 발명의 유리한 실시예들을 포함한다. 이러한 이점들은 아래의 설명에서 상세히 설명된다.
본 발명에서 제공되는 솔루션은 기가비트 이더넷 링크 상에서 유선 속도 TCP 처리량을 달성하며, 소형 내장 시스템들과 관련된 특정 제한을 극복한다. 제안되는 TCP 프로토콜 종단은 하드웨어에서 완전히 구현되며, 따라서 TCPHW(하드웨어내 TCP)로서 지칭된다. 그 설계는 아래의 기본적인 아이디어들 및 패러다임들에 기초한다.
- 클라이언트 계층 페이로드의 세그먼트화
○ 클라이언트 계층 페이로드는 제한된 크기의 데이터 청크들로 세그먼트화된다. 상이한 클라이언트 계층들의 데이터 청크들은 인터리빙되며, 따라서 다수의 클라이언트 계층이 TCPHW를 향하는 단일 다중-채널 데이터 인터페이스를 이용할 수 있다. 이것은 다수의 클라이언트 계층 애플리케이션에 대한 다수의 접속을 동시에 처리하는 가상 병렬 동작 TCP 프로토콜 엔진들의 구현을 간소화한다.
- 네트워크 계층 페이로드의 세그먼트화
○ 네트워크 계층(IP) 및 링크 계층(이더넷) 프레임들도 제한된 크기의 데이터 청크들로 세그먼트화된다. TCPHW에 의해 종단되는 접속들 및 소프트웨어 스택들에서 종단되는 다른 접속들은 네트워크를 향하는 동일 다중-채널 인터페이스를 쉽게 이용할 수 있다.
- 패킷들의 동시 프로토콜 처리
○ 클라이언트 및 네트워크 페이로드 세그먼트들의 직렬화는 다수의 접속에 대한 동시 프로토콜 처리를 간소화한다. 상이한 접속들에 속하는 세그먼트들은 오버샘플링 기술들을 이용하여 시간 다중화 방식으로 처리된다.
○ 처리 상태들을 저장하기 위한 하드웨어 지원을 구현함으로써 상황 스위칭 오버헤드가 제거될 수 있다. 이러한 설계는 처리 전력이 임의의 시간에 각각의 수신된 패킷에 대해 즉시 이용될 수 있는 것을 보증한다.
○ 각각의 세그먼트 및 패킷 이벤트가 즉시 처리되므로, 이벤트 스로틀링 및 관련 지연이 방지된다.
- 데이터 자체가 아닌 데이터 참조들에 대한 작업
○ TCP 엔드 포인트들은 데이터 세그먼트 길이 지시자들로부터 쉽게 도출될 수 있는 TCP 시퀀스 번호들을 통해 통신하며, TCP 기능이 페이로드 바이트들을 따로 카운트할 필요가 없다.
○ 재전송 및 재배열 버퍼들은 데이터 값들이 아니라 데이터 참조들을 저장한다. 예를 들어, 128 또는 256 바이트 크기의 세그먼트들에 대해 8 바이트 서술자들을 사용하는 것은 데이터 저장의 양을 최대 1/32로 줄인다. 이것은 내부 FPGA RAM을 이용하는 다수의 TCP 인스턴스들에 대한 소켓 버퍼들의 구현을 가능하게 하며, 이는 상당한 처리 성능 및 전력을 절약한다.
○ 데이터 값들 대신에 데이터 참조들을 전송함으로써 인터페이스들 상에서의 비트 토글 레이트가 크게 감소한다. 이것은 높은 핀 용량들을 갖는 외부 인터페이스들에 대해 특히 사실이다.
- 네트워크 계층으로부터의 격리
○ TCP 기능은 UDP, IP 및 ARP 기능으로부터 격리된다.
○ TCP 구현은 더 가벼워지며, 링크 계층을 향한 패킷 다중화의 다수의 스테이지를 방지한다. 이것은 하드웨어 및 소프트웨어 스택들의 공존을 간소화한다.
이하, 본 발명의 바람직한 실시예들이 도면들을 참조하여 더 상세히 설명된다. 본 발명은 후술하는 모든 특징들 및 이점들 또는 바람직한 실시예들을 참조하여 설명되는 특징들의 조합을 반드시 포함할 필요는 없다. 오히려, 본 발명은 설명되는 특징들 중 하나 이상의 선택된 특징들만을 임의의 원하는 조합으로 포함할 수도 있다. 도면들은 다음과 같다.
도 1은 종래 기술로부터 공지된 표준 하드웨어내 TCP 솔루션을 나타낸다.
도 2는 본 발명에 따른 하드웨어내 TCP 솔루션을 나타낸다.
도 3은 본 발명에 따른 솔루션에서 구현되는 통합 하드웨어내 TCP 컴포넌트를 나타낸다.
도 4는 재전송 버퍼의 논리 구조의 일 실시예를 나타낸다.
도 5는 재배열 버퍼의 논리 구조의 일 실시예를 나타낸다.
도 6은 하드웨어 데이터 평면(하드웨어 프로세서)과 연관된 본 발명에 따른 하드웨어내 TCP 솔루션을 나타낸다.
도 1은 종래 기술로부터 공지된 표준 하드웨어내 TCP 솔루션을 나타낸다. 구체적으로, 독립 하드웨어내 TCP 컴포넌트(2)를 갖는 내장형 획득 장치(1)의 시스템 개요가 도시되어 있다. 이 솔루션은 ASIC 또는 FPGA IP로서 구현될 수 있다. 공지된 솔루션은 완전한 그러나 모놀리식 TCP/IP 스택의 하드웨어 구현을 제공한다. 그러한 구현은 통상적으로 어드레스 결정 프로토콜(ARP)을 포함하는 링크 계층 네트워크를 향한 TCP 및 IP 기능의 엄격한 통합을 나타낸다. 이것은 클라이언트 계층을 향한 간단한 스트리밍 데이터 인터페이스 및 접속 관리를 향한 소켓형 제어 인터페이스를 제공한다. 그러나, 클라이언트 계층 데이터는 이러한 컴포넌트들을 값으로 통과하는데, 즉 실제 원시(raw) 데이터가 처리된다. 적당한 수의 TCP 접속들을 처리하기 위해, 독립 하드웨어내 TCP 구현들은 재전송 및 재배열 버퍼들을 위한 충분한 사설 데이터 저장 장치(예를 들어, 소켓 버퍼(3)) 및 대응하는 버퍼 관리를 필요로 한다. 데이터 저장 장치(3) 및 버퍼 관리는 외부에서 액세스될 수 없으므로, 임의의 서비스 인식 클라이언트 계층(예로서, 이더넷 상의 XCP)은 그 자신의 버퍼링 스킴들을 구현해야 한다. 이것은 메모리 요구의 증가를 유발한다. 높은 비트 토글 레이트는 높은 시스템 전력 소비를 유발한다. TCP, IP 및 ARP의 모놀리식 컴포넌트로의 엄격한 통합은 하드웨어 기반 및 소프트웨어 기반 패킷 트래픽의 다중화 및 역다중화를 복잡하게 한다.
도 1에서, 참조 부호 4는 클라이언트 계층 다중화기들/역다중화기들을 지시하고, 참조 부호 5는 패킷 다중화기/역다중화기를 지시한다. 참조 부호 6은 하드웨어내 TCP 컴포넌트(2)와 TCP에 대한 클라이언트 계층 다중화기들/역다중화기들(4) 중 하나 사이의 고처리량 서비스들을 지시하며, 참조 부호 7은 하드웨어내 TCP 컴포넌트(2)와 UDP에 대한 클라이언트 계층 다중화기들/역다중화기들(4) 중 하나 사이의 저지연 서비스들을 지시한다.
본 발명에 따른 솔루션의 바람직한 실시예가 도 2에 도시되어 있다. 이 솔루션은 기가비트 이더넷 링크 상에서 유선 속도 TCP 처리량을 달성하며, 소형 내장 시스템들과 관련된 특정 제한을 극복한다. 제안되는 TCP 프로토콜 종단은 하드웨어에서 완전히 구현되며, 따라서 TCPHW(하드웨어내 TCP)로서 지칭된다. 그 설계는 아래의 기본적인 아이디어들 및 패러다임들에 기초한다.
- 클라이언트 계층 페이로드의 세그먼트화
- 네트워크 계층 페이로드의 세그먼트화
- 패킷들의 동시 프로토콜 처리
- 데이터 자체가 아닌 데이터 참조들에 대한 동작
- UDP, IP 및 ARP 기능으로부터의 네트워크 계층의 격리
도 2에서, 참조 부호 4는 클라이언트 계층 다중화기/역다중화기를 지시하고, 참조 부호 11은 다층 다중화기/역다중화기를 지시한다. 본 발명에 따른 TCPHW 컴포넌트(내장형 획득 장치)는 참조 부호 10으로 지시된다. 참조 부호 6은 TCPHW 컴포넌트(10)와 클라이언트 계층 다중화기/역다중화기(4) 사이의 고처리량 서비스들을 지시하고, 참조 부호 7은 자동차용 프로토콜 데이터 블록과 다층 다중화기/역다중화기(11) 사이의 저지연 서비스들을 지시한다. 참조 부호 12는 실제 원시 데이터를 저장하기 위해 모든 통신 계층들 및 서비스들에 걸쳐 일반적으로 사용되는 중앙 버퍼를 지시한다. 본 발명의 중앙 버퍼(12)는 도 1의 종래 기술에서의 소켓 버퍼(3) 및 복수의 클라이언트 버퍼를 대체한다. 본 발명의 TCPHW 컴포넌트(10)는 실제 원시 데이터 대신에 중앙 버퍼(12)에 저장된 데이터에 대한 참조들만을 취급 및 처리한다. 실제 원시 데이터는 TCPHW 컴포넌트(10)에 도달하지 않고 IP/UDP 및 이더넷 미디어 액세스 블록과 중앙 버퍼(12) 사이에서 직접 교환된다. 도 2의 기능 블록들 사이의 점선들은 낮은 토글 레이트를 갖는 참조에 의한 인터페이스(interface by reference)를 지시한다. 기능 블록들 사이의 실선들은 낮은 토글 레이트를 갖는 값에 의한 인터페이스를 지시한다. 마지막으로, 기능 블록들 사이의 굵은 선들은 높은 토글 레이트를 갖는 값에 의한 인터페이스를 지시한다.
본 발명은 소프트웨어 기반 프로토콜 구현의 이전 패러다임을 병렬 하드웨어 기반 전송 기능들의 결과적인 구현을 향해 변경함으로써 종래 기술의 문제들을 해결한다. 본 발명은 경량의, 스케일링 가능한, 고성능의 순수 하드웨어 기반 TCP 컴포넌트를 자동차용 이더넷도 지원하는 ECU들(8) 내에 통합하기 위한 방법들 및 원리들을 설명한다. 이러한 원리들 및 방법들은 시장에 나와 있는 거의 이용 가능하지 않은 중량의 하드웨어내 TCP 솔루션들 대한 중요한 구별 수단들이며, 그러한 솔루션들 중 그 어느 것도 내장형 자동차용 장치들의 특별한 요구들을 충족시키지 못한다.
전송 제어 프로토콜(TCP)은 내장형 ECU 인터페이스 장치들과 측정 애플리케이션 소프트웨어 도구(9), 예를 들어 ETAS GmbH로부터의 INCA를 실행하는 기존 개인용 컴퓨터(PC)들 사이의 측정, 교정 및 진단(MCD) 데이터의 신뢰성 있는 전송을 위한 고객 요구들을 충족시킨다.
종래 기술에서, TCP 프로토콜 기능은 Research In Motion Corp.(RIM)으로부터의 QNX® 또는 PC 내의 Microsoft Windows®의 내장 장치 내의 내장 리눅스와 같은 기본 운영 체제 소프트웨어에 의해 제공된다.
차세대 자동차용 ECU들(8)에 대한 측정 애플리케이션들은 적어도 30 메가바이트/초 또는 훨씬 더 높은 측정 데이터 전송 레이트들을 요구한다. 저지연 및 저지터 프로토타이핑 애플리케이션들의 공존이 필요하다.
현재의 솔루션들과 관련하여 그러한 5 내지 10배의 데이터 처리량 증가는 오직 소프트웨어로부터 프레임 레이트 인식을 완전히 제거함으로써 그리고 하드웨어에서 프로토콜 스택을 구현함으로써 달성될 수 있다.
이용 가능한 하드웨어내 TCP 솔루션들이 조사되었으며, 그 결과는 아래와 같다.
- 유일하게 존재하는 한국의 WIZNET으로부터의 ASIC 솔루션(최대 12.5 메가바이트/초)은 기가비트 이더넷을 지원하지도 않고, 그에 대한 로드맵도 갖지 않으며, 2차 공급자가 없다.
- 모든 기존 FPGA 기반 하드웨어내 TCP 솔루션들은 TCP 사설 데이터 버퍼링을 필요로 하는 독립 구현들이며, 이는 상당한 복잡성, 비용 및 전력 소비를 추가한다. 이들 중 어느 것도 클라이언트 또는 네트워크 측에서의 서비스 다중화에 대한 확장된 지원을 제공하지 못한다. 지원되는 접속들의 양은 너무 높거나 너무 낮다. 일부 구현들은 특징들이 누락되어 있거나, 심지어는 표준을 따르지 않는다. 스케일링 특성이 제어되지 못한다.
본 발명은 아래의 특징들 중 하나 이상을 구현함으로써 이러한 제한들을 극복한다.
- 전력 소비 및 비용을 줄이는 공유 단일 데이터 버퍼와 클라이언트 및 네트워크 계층 측 다중화기들의 사용.
- 125 메가바이트/초까지의 유선 속도 성능의 제공.
- 시스템의 토글 레이트를 최대 1/16로 줄이는, 원시 데이터가 아닌 데이터 포인터들에 대한 작업에 의한 전력 소비의 추가적인 감소.
- 상위 계층(클라이언트 측) 프로토콜들과 하위 계층(네트워크 측) 프로토콜들 간의 하드웨어내 TCP 솔루션의 무결함 통합을 위한 수단의 제공.
- 프로토타이핑 애플리케이션들에 대해 지연 또는 지터를 추가하지 않음.
- 하드웨어 및 소프트웨어 기반 프로토콜 스택들의 공존의 허가.
- 제어 가능한 스케일링 특성.
본 발명은 최적화된 하드웨어내 TCP 구현을 가능하게 하는 통합 방법들 및 원리들에 집중한다. TCP 기능들의 본질은 외부에서 개발되며, 따라서 본 발명의 일부가 아니다.
하드웨어내 TCP(TCPHW) 컴포넌트(10)가 도 3에 도시되어 있다. 컴포넌트(10)는 표준 추종 TCP 프로토콜 동작을 수행한다. 이것은 아래의 명확히 정의된 인터페이스들을 이용하여 데이터 평면의 클라이언트 계층(20) 및 네트워크 계층(21)에 그리고 제어 평면에 접속한다.
- 클라이언트 계층 인터페이스(27)
- 네트워크 계층 인터페이스(28)
- 제어 인터페이스(29)
- 서술자 풀(Descriptor Pool) 인터페이스(30)
이러한 인터페이스들은 아래의 주요 빌딩 블록들에 의해 서비스된다.
- 재전송 버퍼(23)를 갖는 TCP 송신기(22)
- 재배열 버퍼(25)를 갖는 TCP 수신기(24) 및
- 제어(26)
빌딩 블록들은 아래의 내부 인터페이스들에 의해 상호 접속된다.
- 명령/상태 인터페이스 cmdstat
- TCP 접속 인터페이스 tcpcon
서술자는 참조들을 외부 데이터 버퍼들, 예를 들어 중앙 버퍼(12)로 전송하고 저장하기 위한 컨테이너이다. 각각의 서술자는 제한된 크기의 단일 클라이언트 또는 네트워크 계층 데이터 세그먼트를 서술한다. 이것은 아래의 정보를 갖는다.
- 버퍼 인덱스
○ 외부 데이터 버퍼에 대한 사용자 정의 인덱스. TCP는 이 정보를 투명하게 전송한다.
- 세그먼트의 길이
○ 이 세그먼트에 포함된 유효 데이터의 길이. TCP는 이 정보를 이용하여 TCP 시퀀스 번호들을 계산한다.
- 세그먼트 내의 오프셋
○ 버퍼 내의 제1 유효 페이로드 바이트를 가리키는 오프셋. TCP는 이 정보를 투명하게 전송한다.
- 확장 워드의 길이
○ 사용자 정의 확장 워드의 길이. TCP는 이 정보를 투명하게 전송한다.
- 확장 워드
○ 클라이언트 또는 네트워크 계층 정의 확장 워드. TCP는 이 정보를 투명하게 전송한다.
이하, 외부 인터페이스들이 상세히 설명된다.
클라이언트 계층 인터페이스(27)는 TCPHW(10)의 n개의 TCP 기능(접속)과 클라이언트 계층들을 접속하는 양방향 다중 채널 인터페이스이다. 이것은 클라이언트 계층 송신 인터페이스(27.1) 및 클라이언트 계층 수신 인터페이스(27.2)를 포함한다. 인터페이스(27)는 제한된 크기의 데이터 세그먼트들에 대한 서술자들의 형태로 클라이언트 페이로드를 운반한다. 각각의 채널은 독립적으로 동작하는 TCP 접속을 나타내고, 세그먼트별로 다른 채널들과 인터리빙된다.
클라이언트 계층 인터페이스(27)는 마스터/슬레이브 인터페이스이다. TCPHW(10)는 슬레이브이다.
TCP 송신기(22)는 채널별로 클라이언트 계층 수신 인터페이스(27.2)로부터 트래픽을 백프레셔(backpressure)하도록 허가된다. 백프레셔는 상이한 이유들로 인해 활성화될 수 있다.
- 손실된 프레임들로 인해 수신 확인이 수신되지 않으므로, 근단 송신기의 송신 윈도우가 닫힌다.
- 수신된 데이터가 원단 클라이언트 계층에 의해 처리되지 않으므로, 원단 수신기는 TCP 윈도우를 닫는다.
- 이더넷 진출 인터페이스 상의 다른 서비스들 또는 접속들과의 충돌로 인해 TCP 접속이 느려진다.
- TCP 접속이 그의 내부 처리 속도를 줄인다.
TCP 수신기(24)는 그의 재배열 버퍼(25)를 비우지 않고 원단 TCP 송신기로 광고되는 수신 윈도우 크기를 줄임으로써 클라이언트에 의해 표명되는 백프레셔를 승낙해야 한다.
네트워크 계층 인터페이스(28)는 TCPHW(10)의 n개의 TCP 기능(접속)과 네트워크 계층의 IP 및 이더넷 인터페이스를 접속하는 양방향 다중 채널 인터페이스이다. 이것은 네트워크 계층 송신 인터페이스(28.1) 및 네트워크 계층 수신 인터페이스(28.2)를 포함한다. 인터페이스(28)는 참조에 의해 동작하여, 제한된 크기의 데이터 세그먼트들에 대한 서술자들의 형태로 TCP 세그먼트 페이로드를 운반한다. 각각의 채널은 독립적으로 동작하는 TCP 접속을 나타내며, 세그먼트별로 다른 채널들과 인터리빙된다. IP 어드레스 및 포트 번호에 의한 TCP 트래픽의 세그먼트화 및 클래스화, 및 접속들의 채널들로의 맵핑은 TCPHW 컴포넌트(10) 외부에서 수행된다.
TCPHW(10)는 클라이언트 계층으로부터 (클라이언트 계층 인터페이스(27)를 통해) 수신된 세그먼트들을 어떠한 변경도 없이, 즉 이들을 처리하지 않고, (네트워크 계층 인터페이스(28)를 통해) 네트워크 계층으로 전송한다는 점에 유의한다.
TCP 세그먼트의 페이로드는 참조에 의해 전송된다. TCP 세그먼트의 헤더(TCP 프로토콜 헤더)는 TCP 프로토콜 기능에 의해 생성 또는 소비되며, 값에 의해 전송되어야 한다.
네트워크 계층 인터페이스(28)는 마스터/슬레이브 인터페이스이며, TCPHW(10)는 슬레이브의 역할을 한다. 이것은 IP 계층이 TCP 계층과 밀접하게 연관되고 링크 계층 MAC 슬레이브에 대한 마스터의 역할을 하는 독립 구현들(도 1 참조)과 상이하다는 점에 유의한다.
TCP 송신기(22)는 채널별로 네트워크 계층에 의해 표명되는 바와 같은 백프레셔를 승낙해야 한다.
TCP 수신기(24)는 네트워크 계층을 향해 채널별로 또는 공통으로 모든 채널에 대해 백프레셔를 표명하는 것이 허가된다. 다수의 흐름 제어 메커니즘(이더넷 PAUSE 프레임들을 갖는 링크 계층 흐름 제어, 네트워크 계층 인터페이스 백프레셔 및 TCP 말단 대 말단 흐름 제어) 간의 간섭을 방지하기 위하여, 네트워크 계층 수신 인터페이스(28.2) 백프레셔에 의존하지 않는 것이 권장된다. TCPHW(10)는 네트워크 계층 인터페이스(28)로부터 임의의 데이터를 유선 속도로 수신할 수 있을 만큼 충분히 빨라야 한다.
제어 인터페이스(29)는 소프트웨어에 대한 매모리 맵핑 레지스터 인터페이스이다. 이것은 아래의 서비스들을 제공한다.
- 활성화/비활성화(전역)
○ 소프트웨어는 전체 TCPHW(10)를 전역적으로 활성화 또는 비활성화한다. 디폴트: 비활성화
- 리셋(전역)
○ 소프트웨어는 실행중인 TCPHW(10)를 그의 파워-업 상태로 리셋시킨다. 모든 레지스터들에 그들의 디폴트 값들이 로딩된다.
- 로컬 TCP 포트 구성(접속별)
○ 주어진 접속에 대한 로컬 TCP/IP 포트를 설정한다.
- 원격 TCP 포트 구성(접속별)
○ 능동적 개방(클라이언트): 원격 TCP 포트 번호를 설정
○ 수동적 개방(서버): 원격 TCP 포트 번호를 획득
- TCP 프로토콜 엔진들에 대한 명령들(접속별)
○ 소프트웨어는 아래의 명령들 중 하나를 TCPHW로 전송한다:
■ "passiveOpen": TCP 상태 머신을 LISTEN 상태가 되게 한다
■ "activeOpen": TCP 상태 머신을 SYN_SENT 상태가 되게 한다
■ "close": 접속을 국지적으로 닫고; FIN_WAIT1, CLOSE_WAIT 또는 LAST_ACK로의 전이를 유발한다
■ "deleteTcb": 접속을 즉시 리셋시키고, 로컬 TCP 상태 머신을 CLOSED 상태로 전이시킨다. 접속이 아직 CLOSED 또는 TIME_WAIT 상태에 있지 않은 경우, 이 액션은 또한 TCP_RST 제어를 원격 호스트로 전송한다.
○ 명령들은 소프트웨어에 대해 명시적으로 확인된다
- TCP 프로토콜 엔진들로부터의 상태(접속별)
○ 소프트웨어는 각각의 접속에 대한 현재 상태를 판독한다. 가능한 상태들은 CLOSED, LISTEN, SYN_RCVD, SYN_SENT, ESTABLISHED, CLOSE_WAIT, LAST_ACK, FIN_WAIT1, FIN_WAIT2, CLOSING, TIME_WAIT이다
- 최대 송신 세그먼트 크기(접속별)
○ 소프트웨어는 접속당 TCP 송신 세그먼트의 최대 크기를 설정한다. 디폴트: 356 바이트
- 최대 수신 세그먼트 크기(접속별)
○ 소프트웨어는 접속당 TCP 수신 세그먼트의 최대 크기를 설정한다. 이 값은 접속 셋업 동안 원단에 통지된다. 디폴트: 1480 바이트
- 인에이블/디스에이블 네이글(Nagle's) 알고리즘(접속별)
○ 소프트웨어는 주어진 접속 상에서 네이글 알고리즘을 디스에이블한다. 디폴트: 인에이블
- 지연 수신 확인 알고리즘 구성(접속별)
○ 지연 수신 확인 알고리즘을 제어하기 위해 소프트웨어에 의해 2개의 값이 사용된다:
■ 수신 확인 카운트(접속별)는 즉석 수신 확인이 전송되기 전에 수신되었어야 하는 세그먼트들의 수를 정의한다.
■ 최대 지연(접속별)은 송신기가 수신 확인을 기다려야 하는 최대 지연을 정의한다.
- 통지 및 인터럽트
○ TCPHW는 인터럽트들을 이용하여 아래의 비동기 통지들을 소프트웨어로 전송한다.
■ 원격 호스트 제어로 인해 변경된 TCP 상태
■ 타이머 이벤트로 인해 변경된 TCP 상태
■ 원격 TCP 전송 FIN
■ 원격 TCP 전송 RST
■ 저속 재전송 타이머 유발 재전송
■ 고속 재전송 트리거링
버퍼 서술자 인터페이스(30)(또는 서술자 풀 인터페이스): TCP 송신기(22)는 대응하는 세그먼트가 원단 수신기에 의해 수신 확인될 때까지 서술자들을 저장해야 한다. 수신 확인이 수신되면, TCP 송신기(22)는 수신 확인된 세그먼트들과 관련된 서술자들(참조들)을 인터페이스(30)를 통해 외부 서술자 풀로 반환한다.
한편, TCP 수신기(24)는 어떠한 TCP 콘텐츠도 클라이언트 계층으로 두 번 전달하지 않아야 한다. 따라서, 각각의 중복 수신된 TCP 세그먼트는 관련 서술자들을 외부 서술자 풀로 반환함으로써 제거되어야 한다.
TCP 수신기(24)도 TCP 송신기(22)도 풀로부터 서술자들을 할당하지 않는다는 점에 유의한다.
어느 경우에나, 근단 또는 원단에 의해 접속이 닫힐 때, 그 접속과 관련된 모든 서술자들은 외부 서술자 풀로 반환되어야 한다.
버퍼 서술자 인터페이스(30)는 단일 서비스 "자유(free) 버퍼"에 2개의 관련 파라미터들: 버퍼 풀 및 그 풀 내의 버퍼의 인덱스를 제공하는 간단한 비동기 핸드쉐이크 인터페이스이다.
TCPHW 컴포넌트(10)는 3개의 주요 빌딩 블록으로 구성된다.
- TCP 송신기(22) 및 재전송 버퍼(23),
- TCP 수신기(24) 및 재배열 버퍼(25), 및
- 제어(26).
이러한 빌딩 블록들의 간단한 블랙박스 서술이 아래에 주어진다. 이러한 빌딩 블록들의 상세한 내부 설계는 본 발명의 범위 내에 있지 않다. 그러나, 외부 인터페이스들(27-30)이 정의되며, 구현을 위한 기본 지침들이 위에서 설명되었다.
TCP 송신기(22) 및 재전송 버퍼(23): TCP 송신기(22)는 IETF(인터넷 엔지니어링 태스크 포스) 표준들에 따라 다수의 접속에 대한 표준 TCP 프로토콜 처리를 수행한다. 접속들은 동시에 동작한다. TCP 송신기(22)는 각각의 접속에 대한 재전송 버퍼(23)를 유지한다. 이 버퍼(23)는 TCP 세그먼트들을 저장하도록 설계된다. 각각의 TCP 세그먼트는 외부 데이터 저장 장치에 위치하는 데이터 버퍼들, 예를 들어 TCPHW(10)의 일부가 아닌 중앙 버퍼(12)에 대한 참조들의 리스트로 구성된다. 이러한 참조들은 클라이언트 계층으로부터 생성되며, 전술한 바와 같은 서술자 구조 내에 캡슐화된다.
도 4에 도시된 바와 같은 재전송 버퍼(23)는 3개의 기본 구역을 갖는다.
- 클라이언트 계층에 의해 아직 채워지지 않은 자유 버퍼(40)(실선으로 음영화됨),
- 이미 전송되어 원단 TCP 수신기에 의한 수신 확인을 기다리는 TCP 세그먼트들을 갖는 점유된 버퍼(41)(점선). 이러한 TCP 세그먼트들은 재전송 또는 수신 확인될 때까지 유지된다. TCP 송신기 변수 expectedSN은 이 구역의 시작을 마킹한다. expectedSN은 각각의 수신된 새로운 수신 확인 시퀀스 번호로 갱신된다. 수신 확인된 TCP 세그먼트들은 그들의 컬러를 "점선"으로부터 "실선으로 음영화됨"으로 변경하고, 자유 버퍼가 된다. TCP 세그먼트와 관련된 모든 참조들은 후속 재사용을 위해 서술자 풀 인터페이스를 이용하여 가능한 한 빨리 외부 서술자 풀로 반환되어야 한다.
- 이용 가능한 경우에 전송이 허가되는 데이터를 갖는 점유된 버퍼(42)(점선으로 음영화됨). 이 구역의 시작은 TCP 송신기 변수 nextSN에 의해 마킹된다. nextSN은 TCP 세그먼트가 네트워크 계층을 향해 전송된 후에 증가된다. TCP 세그먼트의 컬러는 "점선으로 음영화됨"으로부터 "점선"으로 변경된다. 대응하는 TCP 세그먼트에 속하는 모든 참조들은 이제 이들이 수신 확인되고 해제될 때까지 TCPHW에 의해 소유된다.
도 4는 재전송 버퍼(23)의 논리 구조를 나타낸다. 버퍼(23) 엔트리들은 TCP 시퀀스 번호들에 의해 인덱싱된다. TCP 송신기(22)는 TCP 세그먼트의 최대 세그먼트 크기 MMS에 도달하거나 거의 도달할 때까지 클라이언트 계층으로부터 서술자들 내에 수신된 길이 지시자들을 더함으로써 시퀀스 번호들을 생성한다. 상세한 거동은 네이글 알고리즘 설정들에 의존한다. 이 알고리즘이 턴온되면, 전술한 바와 같이 데이터가 수집된다. 이 알고리즘이 턴오프되면, TCP 송신기는 그의 속도에 따라 클라이언트 데이터를 TCP 세그먼트들 내에 수집하거나 수집하지 않을 수 있다.
다음 수신된 클라이언트 계층 세그먼트(Si)의 길이를 더하는 것은 최대 세그먼트 크기 MMS를 초과할 수 있으므로 TCP 세그먼트를 최적으로 채우는 것은 가능하지 못할 수도 있다는 점에 유의한다. 그러나, 클라이언트 계층은 세그먼트(Si)를 서브세그먼트들(Si1 및 Si2)로 가상적으로 분할할 수 있다. 양 서브세그먼트들은 동일 버퍼 인덱스를 가질 수 있지만, 동일 외부 데이터 버퍼, 예를 들어 중앙 버퍼(12) 내로의 상이한 오프셋들을 사용한다.
재전송 버퍼(23)의 물리적 크기는 0 내지 min(cwnd, rwnd)의 범위에 걸치는 이용 가능 TCP 윈도우 크기에 대해 충분한 데이터 참조들을 유지할 만큼 충분히 커야 하며, 여기서 cwnd는 TCP 혼잡 윈도우이고, rwnd는 원단 TCP 수신기로부터 광고된 수신 윈도우 크기를 나타낸다.
낮은 비트 에러 레이트들을 갖는 혼잡 없는 작은 근거리 네트워크를 고려하면, 지원될 최소 재전송 버퍼 크기는 TCP 접속의 비교적 작은 왕복 시간 RTT 및 원하는 유지되는 처리량 R에 의해 좌우된다.
Figure pat00002
예:
R = (30 내지 125) 메가바이트/초, RTT = (0.5 내지 1) ms인 경우, Beff = (15 내지 125) 킬로바이트의 버퍼 크기가 지원되어야 한다.
물리 서술자 저장에 대한 요구는 TCP 계층의 최대 세그먼트 크기 mss 및 클라이언트 계층의 최소 세그먼트 길이 msl에 의존한다.
Figure pat00003
여기서, k는 서술자의 크기이다. k의 값은 TCP 세그먼트마다 다르다는 점에 유의한다. 세그먼트화는 클라이언트 계층에 의해 수행된다.
예:
mss = 1460 바이트, msl = (64 내지 256) 바이트 및 k = 64 비트인 경우, 참조들에 대한 물리적 저장은 위에 계산된 유효 버퍼 크기들의 범위에 대해 480 내지 16000 바이트의 범위에 걸친다. 최대 1/24 만큼의 상당한 감소가 달성될 수 있다.
TCP 수신기(24) 및 재배열 버퍼(25): TCP 수신기(24)는 IETF 표준들에 따라 다수의 접속에 대한 표준 TCP 프로토콜 처리를 수행한다. 접속들은 동시에 동작한다. TCP 수신기(24)는 각각의 접속에 대한 재배열 버퍼(25)를 유지한다. 이 버퍼는 TCP 세그먼트들을 저장하도록 설계된다. 각각의 TCP 세그먼트는 외부 데이터 저장 장치에 위치하는 데이터 버퍼들, 예를 들어 TCPHW(10)의 일부가 아닌 중앙 버퍼(12)에 대한 참조들의 리스트로 구성된다. 이러한 참조들은 네트워크 계층으로부터 생성되며, 전술한 바와 같은 서술자 구조 내에 캡슐화된다.
도 5에 도시된 바와 같은 재배열 버퍼(25)는 3개의 기본 구역을 갖는다.
- 정의된 수신 소켓 버퍼 크기를 초과하고 통상적으로는 사용되지 않는 자유 버퍼(50)(실선으로 음영화됨).
- 이미 수신된 TCP 세그먼트들을 갖는 점유된 버퍼(51)(점선). 데이터는 클라이언트 계층에 의해 아직 소비되지 않았다. 이 버퍼(51)는 클라이언트에 의한 소비를 기다리는 세그먼트들을 포함한다. 이러한 TCP 세그먼트들은 재배열이 완료될 때까지 유지된다. 판독 포인터 oldSN이 이 구역(51)의 시작을 마킹한다. 이것은 클라이언트 계층이 데이터를 판독할 때 진행하여, 세그먼트들의 컬러를 "실선으로 음영화됨"으로 변경한다.
- 네트워크로부터 새로운 데이터를 수신하기 위한 자유 버퍼(52)(점선으로 음영화됨). 기록 포인터 newSN이 이 구역의 시작을 마킹한다. 이것은 TCP 세그먼트들이 네트워크 계층으로부터 수신될 때 증가되어, 세그먼트들의 컬러를 "점선으로 음영화됨"으로부터 "점선"으로 변경한다.
프레임들의 기록은 "점선" 구역에서 발생한다. 판독 포인터 oldSN은 현재 및 다음 가능 위치 사이에 누락된 시퀀스 번호가 없는 경우에만 진행한다.
도 5는 재배열 버퍼(25)의 논리 구조를 나타낸다. 버퍼(25) 엔트리들은 TCP 시퀀스 번호들에 의해 어드레스된다. 시퀀스 번호들은 값에 의해 전송되는 TCP 헤더 내에서 수신된다.
TCP 수신기에 들어가기 전에, TCP 세그먼트는 제한된 크기의 데이터 청크들로 분할된다. 대응하는 외부 데이터 저장 장치, 예를 들어 중앙 버퍼(12)에 대한 참조들은 서술자들 내에 캡슐화된다.
재배열 버퍼(25)의 크기는 최대 수신 윈도우 크기(수신 소켓 버퍼 크기)에 매칭되는 참조들을 저장할 만큼 충분히 커야 한다. 수신 윈도우 크기는 "점선으로 음영화됨" 구역의 크기이다.
TCT 종단 네트워크 트래픽에 대해 (16 내지 64) 킬로바이트의 수신 윈도우(소켓 버퍼) 크기 및 128 바이트의 통상적인 세그먼트 길이를 가정하며, 예를 들어 각각 64 비트의 최대 128 또는 512개의 서술자가 재배열 버퍼(25) 내에 저장되어야 하며, 이는 1 내지 4 킬로바이트의 물리적 서술자 저장 공간을 발생시킨다.
제어 빌딩 블록은 소프트웨어에 대한 레지스터 기반 프로그래밍 인터페이스를 제공한다. 소프트웨어 제어 레지스터는 TCP 송신기 및 TCP 수신기 기능들에서 제어 고유 기능들, 예를 들어 리셋, 발신 접속의 개시 또는 착신 접속들 및 에러 시그널링의 통지를 출력한다.
이것은 또한 TCPHW 데이터 평면 기능들(TCP 송신기 및 TCP 수신기)로부터 통계 값들을 수집하기 위한 인터페이스를 제공한다. 통계 값들의 일관된 세트를 정확히 동시에 캡처하기 위하여, 소프트웨어는 먼저 적절한 레지스터 엔트리를 설정함으로써 캡처 사이클을 개시한다. 제어 기능은 이 명령을 캡처 펄스로서 데이터 평면 기능들 내로 분산시킨다. 데이터 평면 기능들은 이 캡처 펄스를 이용하여 현재의 카운터 값들을 제어 기능을 통해 소프트웨어가 볼 수 있는 대응하는 쉐도우 레지스터들 내에 캡처한다.
내부 인터페이스들은 명령 상태 인터페이스 cmdstat 및 TCP 접속 인터페이스 tcpcon을 포함한다. 명령 상태 인터페이스 cmdstat는 제어 기능의 제어 레지스터들과 TCP 송신기 및 수신기 사이에서 명령 및 상태 정보를 운반한다. 이것은 또한 전술한 바와 같은 통계 값들의 일관된 세트를 캡처하기 위한 수단을 제공한다. TCP 접속 인터페이스 tcpcon은 모든 로컬 송신기/수신기 정보를 운반한다.
- 수신기로부터 송신기로의 수신된 수신 확인 시퀀스 번호들
- 수신기로부터 송신기로의 수신 윈도우 크기 광고
- TCP 송신기 및 TCP 수신기 양자를 포함하는 분산형 TCP 접속 상태 머신을 구현하는 데 필요한 정보.
도 6은 어떻게 TCPHW 컴포넌트(10)가 TCP 송신 방향에서 다층 하드웨어 데이터 평면(데이터 프로세서)과 상호작용하는지를 보여준다. 다층 하드웨어 데이터 평면은 도 2에 도시된 TCPHW 컴포넌트(10) 위 및 아래에서 클라이언트 측 및 네트워크 측 다중화 기능들을 수행한다. 도 2의 클라이언트 측 다중화는 제1 처리 경로(경로 1)에서 수행되며, 도 2의 다층 다중화 기능은 제2 처리 경로(경로 2)에서 수행된다.
실제 클라이언트 데이터는 TCP 처리 전에 중앙 버퍼(12) 내에 일찍 기록되며, TCP 처리 후에 중앙 버퍼(12)로부터 늦게 판독된다.
다중화 및 TCP 프로토콜 처리는 데이터 자체에 대해서가 아니라 포인터들(= 서술자들)에 대해 수행된다. 도 6에서, 참조 부호 60은 애플리케이션 노드를 지시한다. 참조 부호 61은 ECU 인터페이스 모듈 및 전송 노드를 지시하며, 참조 부호 62는 시뮬레이션 노드를 지시한다. 또한, 도 6에서, 실선 화살표들은 예를 들어 시간 간격 T당 128 바이트, 예를 들어 128 바이트/0.2㎲ = 640 메가바이트/초의 데이터 전송을 지시한다. 점선 화살표들은 예를 들어 시간 간격 T당 (8... 10) 바이트, 예를 들어 8 바이트/0.2㎲ = 40 메가바이트의 포인터 처리를 지시한다. 이것은 처리 레이트의 1/16만큼의 감소를 유발한다.
마지막으로, 본 발명의 근거가 되는 중요한 아이디어들의 리스트를 제공한다. 본 발명에 따른 TCPHW는 이러한 중요한 아이디어들 중 하나 이상을 포함한다.
- 모든 통신 계층들에 걸친 데이터 버퍼의 공동 사용
○ 다른 공지된 솔루션들은 TCP에 대한 전용 버퍼 관리를 구현한다
○ 비용 및 전력 소비를 줄인다
- 네트워크 계층(IP)으로부터의 TCP 전송 계층의 격리
○ 다른 공지된 솔루션들은 HW내 TCP를 네트워크(IP) 계층 및 링크(이더넷) 계층에 밀접하게 결합한다
○ 하드웨어 및 소프트웨어 프로토콜 스택의 공존을 가능하게 한다/간소화한다
○ 공통 네트워크 계층 위의 상이한 전송 계층들의 공존을 가능하게 한다/간소화한다
- 원시 데이터 자체가 아닌 데이터에 대한 참조들에 대한 작업
○ 다른 공지된 솔루션들은 각각의 데이터 바이트와 토글링한다
○ 논리 토글 레이트의 최대 1/16만큼의 감소(데이터 세그먼트와의 토글)
- 클라이언트 계층 및 네트워크 계층 프레임들의 세그먼트화
○ 다른 공지된 솔루션들은 더 큰 지터의 논(non)-TCP 실시간 트래픽을 유발하는 더 큰 데이터 블록들(프레임들)에 작용한다
○ 시스템 지터의 감소
- 데이터 자체가 아니라 전송된 데이터에 대한 참조들을 저장함에 의한 TCP 재전송 및 재배열 버퍼의 축소
○ 다른 공지된 솔루션들은 원시 데이터를 저장한다
○ 전용 자원들을 이용함으로써 메모리를 더 효과적으로 절약한다
- 협력(직렬화된) 인터페이스들
○ 다수의 인스턴스의 협력 구현을 간소화한다
- 다수의 프로토콜 계층에 의해 사용되는 외부 서술자 풀의 사용
○ 자원을 다른 기능들과 공유함으로써 메모리를 절약한다
- 데이터 길이의 카운트가 아닌 길이 지시자들에 기초하는 시퀀스 번호 관리
○ 클라이언트 프로토콜 구현에 대한 더 높은 투명도
- 최적 TCP 세그먼트 이용을 위한 옵션인 클라이언트 계층 서브세그먼트화

Claims (13)

  1. 통신 시스템의 클라이언트 계층 및/또는 전송 계층에서 임의의 2개의 장치 사이에 데이터를 전송하기 위한 방법으로서 - 상기 데이터 전송은 TCP로 지칭되는 전송 제어 프로토콜에 따라 수행됨 - ,
    전송될 상기 데이터는 중앙 저장 수단(12) 내에 버퍼링되며, TCP 프로토콜 동작 블록(10)이 상기 데이터 자체 대신에 상기 저장 수단(12)에 저장되어 있는 전송된 데이터에 대한 참조(reference)들을 처리하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    자동차용 전자 제어 유닛(8)의 일측과, 외부 개인용 컴퓨터 상에서 실행되는 자동차용 개발 소프트웨어 도구(9)의 타측 사이의 통신 시스템에서 측정, 교정 및 진단 데이터가 전송되는 것을 특징으로 하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 중앙 저장 수단(12)은 모든 통신 계층들에 걸쳐 사용되는 것을 특징으로 하는 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 데이터는 데이터 프레임들 내에서 전송되며, 클라이언트 계층 프레임들 및 네트워크 계층 프레임들은 전송 전에 데이터의 더 작은 청크(chunk)들로 세그먼트화되는 것을 특징으로 하는 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 TCP 프로토콜 동작 블록(10)은 재전송 버퍼(23)를 포함하고, 상기 데이터 자체 대신에 상기 전송된 데이터에 대한 참조들이 상기 재전송 버퍼(23) 내에 저장되는 것을 특징으로 하는 방법.
  6. 제1항 또는 제2항에 있어서,
    상기 TCP 프로토콜 동작 블록(10)은 재배열 버퍼(25)를 포함하고, 상기 데이터 자체 대신에 상기 전송된 데이터에 대한 참조들이 상기 재배열 버퍼(25) 내에 저장되는 것을 특징으로 하는 방법.
  7. 통신 시스템의 클라이언트 계층 및/또는 전송 계층에서 임의의 2개의 장치 사이에 데이터를 전송하도록 구성되는 통신 시스템으로서 - 상기 데이터 전송은 TCP로 지칭되는 전송 제어 프로토콜에 따라 수행됨 - ,
    상기 통신 시스템은 전송될 데이터를 버퍼링하기 위한 중앙 저장 수단(12) 및 상기 데이터 자체 대신에 상기 저장 수단(12)에 저장되어 있는 전송된 데이터에 대한 참조들을 처리하도록 구성된 TCP 프로토콜 동작 블록(10)을 포함하는 것을 특징으로 하는 통신 시스템.
  8. 제7항에 있어서,
    자동차용 전자 제어 유닛(8)의 일측과, 외부 개인용 컴퓨터 상에서 실행되는 자동차용 개발 소프트웨어 도구(9)의 타측 사이의 통신 시스템에서 측정, 교정 및 진단 데이터가 전송되는 것을 특징으로 하는 통신 시스템.
  9. 제8항에 있어서,
    상기 통신 시스템은 상기 자동차용 전자 제어 유닛(8)과 상기 개발 소프트웨어 도구(9) 사이에 배치된 내장형 획득 장치(1)를 포함하며, 상기 TCP 프로토콜 동작 블록(10)은 상기 내장형 획득 장치(1)의 일부인 것을 특징으로 하는 통신 시스템.
  10. 제8항 또는 제9항에 있어서,
    상기 통신 시스템은 상기 자동차용 전자 제어 유닛(8)과 상기 개발 소프트웨어 도구(9) 사이에 배치된 내장형 획득 장치(1)를 포함하고, 상기 내장형 획득 장치(1)는 제1항의 방법을 수행하도록 구성된 수단을 포함하며, 상기 중앙 저장 수단(12)은 모든 통신 계층들에 걸쳐 사용되는 것을 특징으로 하는 통신 시스템.
  11. 통신 시스템의 임의의 2개의 장치 사이에 배치되는 내장형 획득 장치(1)로서 - 상기 통신 시스템의 클라이언트 계층 및/또는 전송 계층에서 상기 임의의 2개의 장치 사이에 데이터가 전송됨 - ,
    상기 획득 장치(1)는 TCP로 지칭되는 전송 제어 프로토콜에 따라 데이터 전송을 수행하도록 구성되며,
    상기 획득 장치(1)는 상기 데이터 자체 대신에, 상기 통신 시스템의 중앙 저장 수단(12)에 버퍼링되는 전송될 상기 데이터에 대한 참조들을 처리하도록 구성된 TCP 프로토콜 동작 블록(10)을 포함하는 것을 특징으로 하는 내장형 획득 장치(1).
  12. 제11항에 있어서,
    상기 통신 시스템에서 교정 및 진단 데이터가 전송되며, 상기 획득 장치(1)는 자동차용 전자 제어 유닛(8)의 일측과, 외부 개인용 컴퓨터 상에서 실행되는 자동차용 개발 소프트웨어 도구(9)의 타측 사이에 배치되는 것을 특징으로 하는 내장형 획득 장치(1).
  13. 제11항 또는 제12항에 있어서,
    상기 획득 장치(1)는 제1항의 방법을 수행하도록 구성된 수단을 포함하며, 상기 중앙 저장 수단(12)은 모든 통신 계층들에 걸쳐 사용되는 것을 특징으로 하는 내장형 획득 장치(1).
KR1020130121290A 2012-10-16 2013-10-11 Tcp 가속화를 포함하는 내장형 자동차용 획득 장치를 위한 분산형 측정 배열 KR20140048815A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12188660.0A EP2723031B1 (en) 2012-10-16 2012-10-16 Distributed measurement arrangement for an embedded automotive acquisition device with tcp acceleration
EP12188660.0 2012-10-16

Publications (1)

Publication Number Publication Date
KR20140048815A true KR20140048815A (ko) 2014-04-24

Family

ID=47189720

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130121290A KR20140048815A (ko) 2012-10-16 2013-10-11 Tcp 가속화를 포함하는 내장형 자동차용 획득 장치를 위한 분산형 측정 배열

Country Status (7)

Country Link
US (1) US10440157B2 (ko)
EP (1) EP2723031B1 (ko)
KR (1) KR20140048815A (ko)
CN (1) CN103731409B (ko)
FR (1) FR2996976B1 (ko)
IT (1) ITMI20131676A1 (ko)
RU (1) RU2013145968A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024049070A1 (ko) * 2022-08-31 2024-03-07 삼성전자주식회사 셀룰러 통신 시스템에서 응용 성능을 위한 응용 계층 정보/전송 계층 정보 전달 방법 및 장치

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101536141B1 (ko) * 2014-02-13 2015-07-13 현대자동차주식회사 이더넷과 can 통신 간의 신호 변환을 제공하는 차량용 장치 및 그 제어방법
US10630749B2 (en) 2015-08-14 2020-04-21 Cisco Technology, Inc. Timely delivery of real-time media problem when TCP must be used
US9854070B2 (en) 2015-11-13 2017-12-26 International Business Machines Corporation Transmission control protocol (TCP) data handling
US10320911B2 (en) * 2017-07-11 2019-06-11 GM Global Technology Operations LLC Vehicle network implementing XCP protocol policy and method
CN108521416B (zh) * 2018-03-30 2021-02-02 上海仁童电子科技有限公司 一种ecn板卡
CN111464411B (zh) * 2020-03-31 2022-09-20 潍柴动力股份有限公司 车载终端采集数据的配置方法及装置
US11799986B2 (en) * 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
CN113242253B (zh) * 2021-05-21 2023-05-12 南京艾科朗克信息科技有限公司 一种证券行情侦听方式下的快速处理方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI109508B (fi) * 1999-09-28 2002-08-15 Nokia Corp Menetelmä Abis-rajapinnan transmissiokanavien allokoimiseksi pakettisolukkoradioverkossa ja pakettisolukkoradioverkon verkko-osa
US7313600B1 (en) * 2000-11-30 2007-12-25 Cisco Technology, Inc. Arrangement for emulating an unlimited number of IP devices without assignment of IP addresses
KR20030080443A (ko) * 2002-04-08 2003-10-17 (주) 위즈네트 하드웨어 프로토콜 프로세싱 로직으로 구현된 인터넷 통신프로토콜 장치 및 상기 장치를 통한 데이터 병렬 처리 방법
US7515612B1 (en) * 2002-07-19 2009-04-07 Qlogic, Corporation Method and system for processing network data packets
US20040198466A1 (en) * 2003-01-10 2004-10-07 James Walby Telematics device and method of operation
US7185209B2 (en) * 2003-05-28 2007-02-27 Microsoft Corporation End-to-end reliable messaging with complete acknowledgement
US7200695B2 (en) * 2003-09-15 2007-04-03 Intel Corporation Method, system, and program for processing packets utilizing descriptors
US7643480B2 (en) * 2004-01-22 2010-01-05 Hain-Ching Liu Method and system for reliably and efficiently transporting data over a network
US7818563B1 (en) * 2004-06-04 2010-10-19 Advanced Micro Devices, Inc. Method to maximize hardware utilization in flow-thru IPsec processing
US7752670B2 (en) * 2004-09-23 2010-07-06 Xiangrong Cai Detecting an attack of a network connection
US7770088B2 (en) * 2005-12-02 2010-08-03 Intel Corporation Techniques to transmit network protocol units
US20070140281A1 (en) * 2005-12-16 2007-06-21 Elite Silicon Technology, Inc. Network communication apparatus with shared buffers
US20080256271A1 (en) * 2006-12-12 2008-10-16 Breed Paul T Methods and apparatus for reducing storage usage in devices
WO2008073493A2 (en) * 2006-12-12 2008-06-19 Netburner, Inc. Methods and apparatus for reducing storage usage in devices
WO2008076017A1 (en) * 2006-12-18 2008-06-26 Telefonaktiebolaget Lm Ericsson (Publ) Scheduling and queue management with adaptive queue latency
US7593331B2 (en) * 2007-01-17 2009-09-22 Cisco Technology, Inc. Enhancing transmission reliability of monitored data
US20080256323A1 (en) * 2007-04-09 2008-10-16 Hewlett-Packard Development Company, L.P. Reconfiguring a Storage Area Network
US20080263171A1 (en) * 2007-04-19 2008-10-23 Alacritech, Inc. Peripheral device that DMAS the same data to different locations in a computer
JP4623156B2 (ja) * 2008-07-25 2011-02-02 トヨタ自動車株式会社 車両情報記録システム、車両情報記録装置、車両情報記録方法
US20100183024A1 (en) * 2009-01-21 2010-07-22 Brocade Communications Systems, Inc Simplified rdma over ethernet and fibre channel
EP2287691A1 (de) * 2009-08-11 2011-02-23 Deutsche Telekom AG Vorrichtung zum Zugriff auf elektronische Fahrzeugkomponenten
CN101783941B (zh) 2009-09-15 2011-12-14 上海海事大学 一种基于ip网络的实时视频传输方法
US8743711B2 (en) 2009-12-15 2014-06-03 Intel Corporation Techniques for managing heterogeneous traffic streams
JP5362668B2 (ja) * 2010-09-16 2013-12-11 日立オートモティブシステムズ株式会社 車内データ中継装置
US9203728B2 (en) * 2011-03-09 2015-12-01 lxia Metadata capture for testing TCP connections
US20140237156A1 (en) * 2012-10-25 2014-08-21 Plx Technology, Inc. Multi-path id routing in a pcie express fabric environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024049070A1 (ko) * 2022-08-31 2024-03-07 삼성전자주식회사 셀룰러 통신 시스템에서 응용 성능을 위한 응용 계층 정보/전송 계층 정보 전달 방법 및 장치

Also Published As

Publication number Publication date
ITMI20131676A1 (it) 2014-04-17
FR2996976A1 (fr) 2014-04-18
CN103731409A (zh) 2014-04-16
US20140108603A1 (en) 2014-04-17
EP2723031B1 (en) 2019-07-24
EP2723031A1 (en) 2014-04-23
FR2996976B1 (fr) 2017-02-24
CN103731409B (zh) 2019-10-15
US10440157B2 (en) 2019-10-08
RU2013145968A (ru) 2015-04-20

Similar Documents

Publication Publication Date Title
EP2723031B1 (en) Distributed measurement arrangement for an embedded automotive acquisition device with tcp acceleration
US7817634B2 (en) Network with a constrained usage model supporting remote direct memory access
JP6188093B2 (ja) 通信トラフィック処理アーキテクチャおよび方法
US8103785B2 (en) Network acceleration techniques
US10057387B2 (en) Communication traffic processing architectures and methods
CN107426246B (zh) 基于FPGA的万兆以太网和RapidIO协议间高速数据交换系统
JP4807861B2 (ja) サーバ環境においてオフロードをネットワーク化するためのホスト・イーサネット・アダプタ
US8625427B1 (en) Multi-path switching with edge-to-edge flow control
US7827295B2 (en) Protocol stack
WO2016210210A1 (en) In-line network accelerator
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US20080304481A1 (en) System and Method of Offloading Protocol Functions
US20060206579A1 (en) Techniques for providing packet rate pacing
EP3298739B1 (en) Lightweight transport protocol
WO2003105011A1 (en) Gigabit ethernet adapter supporting the iscsi and ipsec protocols
JP2006261873A (ja) パケット転送装置およびその転送制御方式
Géhberger et al. Performance evaluation of low latency communication alternatives in a containerized cloud environment
WO2010032533A1 (ja) ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法
US20080040494A1 (en) Partitioning a Transmission Control Protocol (TCP) Control Block (TCB)
US20040030754A1 (en) High-speed file server
US20240095057A1 (en) Network architecture, corresponding vehicle and method
Wang et al. An Optimized RDMA QP Communication Mechanism for Hyperscale AI Infrastructure
Zabołotny Optimized Ethernet transmission of acquired data from FPGA to embedded system
Rozenberg Network Attached Hardware Block (NAHB) Framework
CN117221417A (zh) 一种tcp/ip协议卸载引擎装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid