用于具有tcp加速的嵌入式汽車采集設備的分布式測量裝置制造方法
【專利摘要】本發明涉及用于具有TCP加速的嵌入式汽車采集設備的分布式測量裝置,其涉及用于在通信系統的客戶端層和/或傳輸層中的任何兩個設備之間在任一方向上傳送數據的方法和通信系統。根據在下文中稱為TCP的傳輸控制協議來執行數據傳輸。為了實現高數據傳輸速率,提出了在通信系統內提供用于緩沖要傳送的數據的中央存儲裝置(12)和TCP協議操作塊(10),其中,TCP協議操作塊(10)處理對存儲在存儲裝置(12)中的已傳輸數據的參考而不是數據本身。本發明還涉及位于通信系統的兩個設備之間的嵌入式采集設備(1),在所述兩個設備之間將傳送數據。所述采集設備(1)包括適合于執行根據本發明的方法的裝置。
【專利說明】用于具有TCP加速的嵌入式汽車采集設備的分布式測量裝【技術領域】
[0001]本發明涉及一種分布式測量系統。在此類系統中,傳輸控制協議(TCP)被廣泛地用于被連接到汽車電子控制單元(ECU)的嵌入式采集設備與在個人計算機(例如,來自ETAS GmbH的INCA)上運行的汽車開發軟件工具之間的測量、校準和診斷(MCD)數據的可靠傳輸。
【背景技術】
[0002]嵌入式采集設備常常被共同定位至E⑶(測試下的設備,DUT),并且必須在與E⑶本身相同的苛刻環境條件下操作。從車輛電池供應的采集設備的功耗必須是低的,以便在不對電池施加過大壓力的情況下保持在待機模式,以便能夠捕捉ECU的啟動行為。
[0003]傳輸控制協議(TCP)是互聯網協議組的核心協議中的一個。TCP是該協議組的兩個原始組成部分中的一個,補充了互聯網協議(IP),并且因此整個協議組一般被稱為TCP / IPo TCP提供八位位組(octet)的流從一個計算機上的程序到另一計算機上的另一程序的可靠、有序輸送。TCP是由諸如萬維網、電子郵件、遠程管理和文件傳輸的主要互聯網應用所使用的協議。不要求可靠數據流服務的其他應用可以使用用戶數據報協議(UDP),其提供相比于可靠性而言強調減少的等待時間的數據報服務。
[0004]該協議對應于TCP / IP組的傳輸層。TCP在應用程序與互聯網協議(IP)之間的中間層級處提供通信服務。也就是說,當應用程序期望使用IP跨越互聯網發送大的數據塊而不是將數據分解成IP尺寸的片并發布一系列IP請求時,軟件能夠向TCP發布單個請求并讓TCP處理IP細節。
[0005]IP通過交換稱為分組的信息片來進行工作。分組是八位位組序列并由后面是主體的報頭組成。報頭描述分組的 目的地和可選地描述將用于進行轉發直至其到達其目的地的路由器。主體包含有效載荷數據。
[0006]由于網絡擁擠、業務量負荷平衡或其他不可預測的網絡行為,IP分組可能丟失、被復制或不按順序輸送。TCP檢測這些問題,請求對丟失數據的重傳,重新布置不按順序的數據,并且甚至幫助使網絡擁擠最小化以減少其他問題的發生。一旦TCP接收器已經重新組裝最初傳送的八位位組序列,則其將它們傳遞至應用程序。因此,TCP從底層聯網細節提取應用的通信。
[0007]TCP廣泛地被許多互聯網最流行的應用所利用,包括萬維網(WWW)、電子郵件、文件傳輸協議、安全殼、對等文件共享以及某些流媒體應用。
[0008]TCP是保證接收到的所有字節將與發送的字節相同并按照正確的順序的可靠流輸送服務。由于分組傳輸是不可靠的,所以能夠使用稱為具有重傳的肯定確認的技術來保證分組傳輸的可靠性。這種基礎技術要求接收器在其接收到數據時用確認消息進行響應。發送器保持其發送的每個分組的記錄。發送器還保持從發送分組時開始的定時器,并且如果該定時器在消息已被確認之前到期,則重傳分組。在分組變為丟失或被損壞的情況下需要該定時器。
[0009]TCP由一組規則組成:對于協議而言,其與互聯網協議一起使用,并且對于IP而言,其被用于通過互聯網在計算機之間“以消息單元的形式”發送數據。雖然IP處理數據的實際輸送,但TCP跟蹤數據傳輸的各個單元,稱為段,消息被劃分成所述段以用于通過網絡進行有效路由。例如,當從網絡服務器發送HTML文件時,該服務器的TCP軟件層將文件的八位位組序列劃分成段并將其單獨地轉發到IP軟件層(互聯網層)。互聯網層通過添加包括(除其他數據之外)目的地IP地址的報頭來將每個TCP段封裝到IP分組中。即使每個分組具有相同的目的地地址,也能夠通過網絡在不同的路徑上將其路由。當目的地計算機上的客戶端程序接收到它們時,TCP層(傳輸層)將各個段重新組裝并在其將這些段流送至應用時確保這些段被正確地排序且沒有錯誤。
[0010]下面描述TCP段結構。傳輸控制協議從數據流接受數據,將其分段成塊,并添加TCP報頭,創建TCP段。TCP段然后被封裝到互聯網協議(IP)數據報中。TCP段是“TCP用來與其對端交換數據的信息分組”。
[0011]雖然有時被非正式地使用,術語TCP分組并不符合當前術語,其中,段指的是TCProu (協議數據單元),數據報指的是IP PDU,以及幀指的是數據鏈路層rou。
[0012]進程通過訪問TCP并將數據的緩沖器作為自變量進行傳遞來傳送數據。TCP將來自這些緩沖器的數據包裝成段并訪問互聯網協議(例如,IP)以將每個段傳送到目的地TCP。
[0013]TCP段由段報頭和數據區段組成。TCP報頭包含10個強制字段以及可選擴展字段(選項、表格形式的橙色背景)。
[0014]數據區段跟隨報頭。其內容是為應用所載送的有效載荷數據。在TCP段報頭中未指定數據區段的長度。其能夠通過用總IP數據報長度(在IP報頭中指定)減去TCP報頭和封裝IP報頭的組合長度來計算。
[0015]圖7示出了 TCP報頭的格式,具體如下:
?源端口(Source port) (16位)-識別發送端口 ?目的地端口 (Destination port) (16位)-識別接收端口
?序列號(Sequence number) (32位)-具有雙重作用:
?如果SYN標志被置位(1),則這是初始序列號。實際第一數據字節的序列號和相應ACK中的已確認的號則是此序列號加I。
?如果SYN被清零(O),則這是用于當前會話的此分組的第一數據字節的累積序列號。?確認號(Acknowledgment number) (32位)-如果ACK標志被置位,則此字段的值是接收器正在預期的下一序列號。其確認所有在先字節(如果有的話)的接收。由每個端點所發送的第一 ACK確認其他端點的初始序列號本身,但沒有數據。
?數據偏移(Data offset) (4位)-以32位字來指定TCP報頭的尺寸。最小尺寸報頭是5個字且最大的是15個字,因此給出20字節的最小尺寸和60字節的最大尺寸,允許報頭中的多達40個字節的選項。此字段因其也是從TCP段的開始至實際數據的偏移的事實而得名。
?預留(Reserved) (3位)_用于未來適用并應被置位為零 ?標志(9位)(也稱為控制位)-包含9個I位標志?NS (I位)-當前ECN(ECN-nonce)隱藏保護(被RFC3540添加到報頭)。
?CWR(1位)-擁擠窗口減少(CWR)標志被發送主機置位以指示其接收到具有被置位的ECE標志的TCP段并已經以擁擠控制機制(被RFC3168添加到報頭)進行響應。
?ECE(1 位)-ECN 回波(echo)指示
?如果SYN標志被置位⑴,則TCP對端具備ECN能力。
?如果SYN標志被清零(O),則在正常傳輸期間接收IP報頭組中的具有經歷擁擠標志的分組(由RFC3168添加到報頭)。
?URG(1位)_指示緊急指針字段是顯著的
?ACK(1位)_指示確認字段是顯著的。由客戶端發送的初始SYN分組之后的所有分組應當使此標志被置位。
?PSH(1位)_推動函數。要求將已緩沖數據推到接收應用。
?RST(1位)-將連接重置
?SYN(1位)_使序列號同步。只有從每個端點發送的第一分組應當使此標志被置位。某些其他標志基于此標志而改變含義,并且某些標志僅在其被置位時是有效的,并且其他標志在其清零時是有效的。
?FIN (I位)-不再有來自發送器的數據
?窗口尺寸(Window Size) (16位)-接收窗口的尺寸,其指定此段的發送器當前正原意接收的字節的數目(超過確認字 段中的序列號)(參見流程控制和窗口縮放)
?校驗和(Checksum) (16位)_16位校驗和字段被用于報頭和數據的檢錯
?緊急指針(Urgent pointer) (16位)-如果URG標志被置位,則此16位字段是與指示最后緊急數據字節的序列號的偏移
?選項(Option)(可變0-320位,可除以32)-此字段的長度由數據偏移字段確定。選項具有多達三個字段:選項-種類(I字節)、選項-長度(I字節)、選項-數據(可變)。選項-種類字段指示選項的類型,并且是不可選的唯一字段。根據正在處理什么種類的選項,可以將接下來的兩個字段置位:選項-長度字段指示選項的總長度,以及選項-數據字段包含選項的值,如果可適用的話。例如,0x01的選項種類字節指示這是僅被用于填充(padding)的無操作選項,并且不具有跟隨其后的選項-長度或選項-數據字節。O的選項-種類字節是選項結束選項,并且也僅是一個字節。0x02的選項-種類字節指示這是最大段尺寸選項,并且后面將是指定MSS字段的長度(應是0x04)的字節。注意到,此長度是給定選項字段的總長度,包括選項-種類和選項-長度字節。因此,雖然通常以兩個字節來表達MSS值,但字段的長度將是4字節(種類和長度的+2字節)。簡而言之,具有0x05B4的值的MSS選項字段在TCP選項區段中將顯示為(0x02 0x04 0x05B4)。
?填充-TCP報頭填充被用來確保TCP報頭結束且數據在32位邊界上開始。填充由零組成。
[0016]某些選項可能只有當SYN被置位時才發送;其在下面被指示為[SYN]。選項-種類和標準長度被給定位(選項-種類,選項-長度)。
?0(8位)-選項列表的結束
?1(8位)_無操作(Ν0Ρ,填充)。這可以被用來使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)。這前兩個字
節后面是被選擇性地確認的1-4個塊的列表,被指定為32位開始/結束指針。
?8,10, TTTT, EEEE (80位)_時間戳和前一時間戳的回波(細節參見TCP時間戳)
?14,3,S (24位)-TCP替換校驗和請求。[SYN]
?15,N,…(可變位)-TCP替換校驗和數據。
[0017](其余選項是過時的、實驗的、尚未被標準化的或未分配的)
具有不同服務質量(QoS)的許多應用需要依賴于TCP,作為底層可靠的傳輸機制或者依賴于UDP作為底層低等待時間的傳輸機制: -高吞吐量流送測量數據傳輸,其使用在單個TCP連接上具有在數十兆字節/秒的范圍內的數據速率的應用特定汽車協議。
[0018]-使用UDP的用于環路中函數(FIL)原型使用情況的低等待時間和低抖動流送測量數據傳輸。
[0019]-使用TCP或UCP的基于交易的控制、校準和診斷服務,具有低等待時間需求以確保低交易往返時間。
[0020]-標準盡力TCP/ IP服務,類似于http、ftp或終端模擬。
[0021]在許多情況下,這些應用共存于單個嵌入式采集設備上,并且每個應用特定且服務感知的汽車協議需要其自己的TCP連接。
[0022]TCP / IP主要是以軟件實現的,并且在CPU的監管模式(核心空間)中作為操作系統服務而運行。然而,基于軟件的協議實施方式主要遭受由于大量的情境切換和必須對每個接收或傳送幀執行的工作量而引起的幀速率限制。對于具有有限CPU性能的小型嵌入式系統而言尤其如此,該小型嵌入式系統被連接到具有其非常高的幀速率的高吞吐量、低等待時間吉比特(Gigabit)以太網鏈路。
[0023]到目前為止在現有技術中已經提出了各種方法以便改善每個幀事件消耗的CPU處理功率的比。這些方法中最流行的是:
-卸載引擎
〇卸載引擎嘗試減少每個IP幀要執行的操作的數目,例如通過以硬件來計算報頭和有效載荷校驗和。
〇這種方法減少了每個事件的處理功率的量,但是其并未減少用于軟件的幀速率。過多情境切換的問題仍存在。
[0024]-中斷節流(throttling)或中斷串聯
〇通過將用于多個幀到達的處理串聯成單個中斷服務動作來減少情境切換的數目。
〇中斷節流很大地幫助減少每個時間單位的情境切換的數目。然而,由于其在鏈路層(以太網)水平上操作,所以其并不是服務感知的且向所有服務引入不期望的等待時間。
[0025]-巨型幀的使用
〇巨型幀是具有通常達到9600字節而不是標準1518字節的擴展長度的以太網幀。這被認為通過允許較大TCP段尺寸而減少幀速率。〇巨型幀已被IEEE801.3標準化,并且很少在局域網(LAN)中使用且幾乎不與TCP相結合地使用。其必須在鏈路的兩端處被支持且并不保證通過每個以太網橋接的或IP路由的網絡。TCP接收器甚至能夠通過使用對應的TCP最大段尺寸選項來迫使具備巨型幀能力的TCP發送器發送較小TCP段。
[0026]-多核技術
〇多核CPU上的并行分組處理相當可觀地改善了計算機的遍及各處的分組吞吐量。
〇這種技術僅在獨立分組會話的情況下是有益的。類似于TCP連接的單個會話并不受益于多個核,因為這些核必須遵守分組序列,這最終導致多個核上的分組的串行化處理,這甚至變得更壞,因為會話在這些核之間跳躍;CPU核的層級I的利用進行高速緩沖且系統性能退化。
[0027]-獨立TCP硬件實施方式(ASIC或FPGAIP)
〇獨立TCP硬件實施方式以硬件來提供完整、但單片的TCP / IP堆棧實施方式。此類實施方式通常示出了朝向包括地址解析協議(ARP)的鏈路層網絡的TCP和IP功能的緊密集成。其提供朝向客戶端層的簡單流送數據接口和朝向連接管理的類似于套接字(socket)的控制接口。
O客戶端層數據按值通過這些部件。為了處理合理數目的TCP連接,硬件實施方式中的獨立TCP要求足夠的私有數據存儲和對應的緩沖器管理以用于重傳和重新排序緩沖器。由于數據存儲和緩沖器管理在外部是不可訪問的,所以任何服務感知客戶端層(例如,以太網上的XCP)必需實現其自己的緩沖方案。這導致增加的存儲器需求。高比特觸發率(toggle rate)導致高系統功耗。TCP、IP和ARP到單片部件的緊密集成使得基于硬件和基于軟件的分組業務量的復用和解復用變得復雜。
[0028]客戶端層是若干應用層中的`一個,在那里,用戶訪問應用。應用可以要求任何類型的客戶端。例如,ECU與設備(例`如,嵌入式采集設備)之間的數據通信在客戶端層中執行。傳輸層為網絡部件和協議的分層架構內的應用提供端對端通信服務。例如,設備(例如,嵌入式采集設備)與外部個人計算機之間的數據通信在傳輸層中執行。
[0029]標準化傳輸控制協議(TCP)是ECU與MCD應用軟件之間的測量、校準和診斷(MCD)數據的可靠傳輸所需的接口模塊中的核心部件。利用具有必要地受限的CPU性能的常規嵌入式ECU接口模塊中的基于軟件的傳輸功能的當前范例,不能滿足即將到來的客戶數據吞吐量要求。相同的限制將適用于具有汽車以太網引入的E⑶本身。
[0030]用于TCP加速的可用解決方案的討論表明了這些解決方案中沒有一個解決了嵌入式汽車采集設備的硬件中特定TCP的問題。因此,本發明的目的是提供通信系統的客戶端層和/或傳輸層中的任何兩個設備之間的快速且可靠的數據傳輸,其中,數據傳輸是根據TCP執行的。特別地,本發明的目的是提供汽車ECU與例如在個人計算機上運行的開發軟件工具之間的快速且可靠的MCD數據傳輸。
【發明內容】
[0031]由根據權利要求1的方法、由根據權利要求7的通信系統以及由根據權利要求11的嵌入式采集設備來解決此目的。
[0032]特別地,提出了一種用于在通信系統的客戶端層和/或傳輸層中的任何兩個設備之間傳送數據的方法。數據傳輸是根據在下文中稱為TCP的傳輸控制協議來執行的。該方法的特征在于要傳送的數據被緩沖在中央存儲裝置中,并且TCP協議操作塊處理對存儲在存儲裝置中的已傳輸數據的參考而不是數據本身。
[0033]此外,提出了適合于在通信系統的客戶端層和/或傳輸層中的任何兩個設備之間傳送數據的通信系統。該數據傳輸是根據在下文中稱為TCP的傳輸控制協議來執行的。該通信系統的特征在于其包括用于緩沖要傳送的數據的中央存儲裝置和適合于處理對存儲在存儲裝置中的已傳輸數據的參考而不是數據本身的TCP協議操作塊。
[0034]最后,提出了位于通信系統的任何兩個設備之間的嵌入式采集設備,在兩個設備之間,在通信系統的客戶端層和/或傳輸層中傳送數據。該采集設備適合于根據在下文中稱為TCP的傳輸控制協議來執行數據傳輸。該米集設備的特征在于其包括適合于處理對被緩沖在通信系統的中央存儲裝置中的要傳送數據的參考而不是數據本身的TCP協議操作塊。
[0035]在本專利申請中,以其最廣泛意義來使用術語“傳送”、“傳輸”和“已傳送”,包括兩個方向上的數據傳輸,亦即包括第一方向上的數據(或幀)的發送和相反方向上的數據(或幀)的接收。
[0036]根據本發明的優選實施例,在通信系統中在一方面的汽車電子控制單兀與另一方面的在外部個人計算機上運行的汽車開發軟件工具之間傳送測量、校準和診斷數據。數據傳輸是跨TCP采集設備執行的,該TCP采集設備處理對要傳送的數據的參考,該數據被緩沖在通信系統的中央存儲裝置中。
[0037]進一步的從屬權利要求包括本發明的有利實施例。在以下描述中詳細地描述其優點。
[0038]在本發明中呈現的解決方案實現了吉比特以太網鏈路上的線速TCP吞吐量并克服了與小型嵌入式系統相關聯的特定限制。提出的TCP協議端接(termination)完全是以硬件實現的,因此將其稱為TCPHW(以硬件的TCP)。該設計是基于以下基本思想和范例:
-客戶端層有效載荷的分段
O客戶端層有效載荷被分段成有限尺寸的數據塊。不同客戶端層的數據塊被交織,允許多個客戶端層利用朝向TCPHW的單個多信道數據接口。這簡化了處理當前用于多個客戶端層應用的多個連接的虛擬并行工作TCP協議引擎的實施方式。
[0039]-網絡層有效載荷的分段
〇網絡層(IP)和鏈路層(以太網)幀也被分段成有限尺寸的數據塊。由TCPHW端接的連接和以軟件堆棧端接的其他連接能夠容易地利用朝向網絡的同一多信道接口。
[0040]-分組的同時協議處理
〇將客戶端和網絡有效載荷段串行化簡化了用于多個連接的同時協議處理。通過使用過采樣技術以時間復用方式來處理屬于不同連接的各段。
〇通過實現硬件支持以節省處理狀態,能夠消除情境切換開銷。該設計確保處理功率在任何時間立即可用于每個接收分組。
〇由于每個段和分組事件被立即處理,所以避免了事件節流和關聯的等待時間。
[0041]-對數據參考而不是數據本身起作用
O TCP端點經由TCP序列號進行通信,該TCP序列號能夠容易地從數據段長度指示符得到;對于TCP功能而言不需要靠其自己來對有效載荷字節進行計數。
〇重傳和重新排序緩沖器存儲數據參考而不是數據值。例如,對128或256字節尺寸的段使用8字節描述符將數據存儲的量減少至達到I / 32。這使得能夠使用內部FPGA RAM來實現用于多個TCP實例的套接字緩沖器,這節省了相當可觀的處理性能和功率。
〇利用數據參考而不是數據值的傳輸,大大地降低了接口上的位觸發率。對于具有高引腳容量的外部接口而言尤其如此。
[0042]-與網絡層的隔離
〇將TCP功能與UDP、IP和ARP功能隔離。
O TCP實現變得更加輕質并避免了朝向鏈路層的分組復用的多個級。這簡化了硬件和軟件堆棧的共存。
【專利附圖】
【附圖說明】
[0043]下文參考附圖來更詳細地描述本發明的優選實施例。本發明不一定包括下文所討論的所有特征和優點或參考優選實施例所描述的特征的組合。而是,本發明也可以僅僅包括以任何期望的組合所描述的特征中的一個或多個所選的特征。附圖示出:
圖1從現有技術獲知的以硬件解決方案的標準TCP,
圖2根據本發明的以硬件解決方案的TCP,
圖3在根據本發明的解決方案中實現的以硬件部件的集成TCP 圖4重傳緩沖器的邏輯結構的實施例,
圖5重新排序緩沖器的邏輯結構的實施例,
圖6與硬件數據平面(硬件處理器)相結合的根據本發明的以硬件解決方案的TCP,
以及
圖7 TCP報頭的格式。
【具體實施方式】
[0044]圖1示出了從現有技術獲知的按照硬件解決方案的標準TCP。特別地,示出了具有硬件部件2中的獨立TCP的嵌入式采集設備I的系統概覽。這種解決方案能夠被實現為ASIC或FPGA IP。已知解決方案提供了以硬件的完整而單片的TCP / IP堆棧實施方式。此類實施方式通常示出朝向包括地址解析協議(ARP)的鏈路層網絡的TCP和IP功能的緊密集成。其提供朝向客戶端層的簡單流送數據接口和朝向連接管理的類似于套接字的控制接口。然而,客戶端層數據按值通過這些部件,亦即處理實際原始數據。為了處理合理數目的TCP連接,以硬件實施方式的獨立TCP要求足夠的私有數據存儲(例如,套接字緩沖器3)和用于重傳和重新排序緩沖器的對應緩沖器管理。由于數據存儲3和緩沖器管理在外部是不可訪問的,所以任何服務感知客戶端層(例如,以太網上的XCP)必須實現其自己的緩沖方案。這導致增加的存儲器需求。高的位觸發率導致高的系統功耗。TCP、IP和ARP到單片部件中的緊密集成使基于硬件和基于軟件的分組業務量的復用和解復用變得復雜。
[0045]在圖1中,參考標號4指示客戶端層復用器/解復用器,并且參考標號5指示分組復用器/解復用器。參考`標號6指示硬件部件中的TCP與用于TCP的客戶端層復用器/解復用器4中的一個之間的高吞吐量服務,并且參考標號7指示硬件部件2中的TCP與用于UDP的客戶端層復用器/解復用器中的一個之間的低等待時間服務。
[0046]在圖2中示出了根據本發明的解決方案的優選實施例。其實現了吉比特以太網鏈路上的線速TCP吞吐量并克服了與小型嵌入式系統相關聯的特定限制。提出的TCP協議端接完全是以硬件實現的,因此將其稱為TCPHW(以硬件的TCP)。該設計是基于以下基本思想和范例:
-客戶端層有效載荷的分段 -網絡層有效載荷的分段 -分組的同時協議處理 -對數據參考而不是數據本身進行操作 -來自UDP、IP和ARP功能的與網絡層的隔離。
[0047]在圖2中,參考標號4指示客戶端層復用器/解復用器,并且參考標號11指示多層復用器/解復用器。由參考標號10來指定根據本發明的TCPHW部件(嵌入式采集設備)。參考標號6指示TCPHW部件10與客戶端層復用器/解復用器4之間的高吞吐量服務,并且參考標號7指示汽車協議數據塊與多層復用器/解復用器11之間的低等待時間服務。參考標號12指示中央緩沖器,其跨越所有通信層被共用并用于存儲實際原始數據。本發明的中央緩沖器12替換圖1的現有技術中的套接字緩沖器3和多個客戶端緩沖器。本發明的TCPHW部件10僅操縱和處理對存儲在中央緩沖器12中的數據的參考而不是實際原始數據。將該實際原始數據在IP / UDP與以太網媒體接入塊與中央緩沖器12之間直接交換而不曾到達TCPHW部件10。圖2的功能塊之間的虛線指示按引用具有低觸發率的接口。功能塊之間的連續線指示按值具有低觸發率的接口。最后,功能塊之間的粗線指示按值具有高觸發率的接口。
[0048]本發明通過將基于軟件的協議實施方式的從前范例朝著并行化的基于硬件的傳輸功能的后續實施方式進行改變來解決現有技術問題。本發明描述了用于將輕質、可縮放且高性能的純基于硬件的TCP部件集成到甚至支持汽車以太網的ECU8中的方法和原理。這些原理和方法是與市場上的以硬件解決方案的少數可用、重質TCP(它們中沒有一個滿足嵌入式汽車設備的特殊要求)的關鍵差別。
[0049]傳輸控制協議(TCP)滿足用于嵌入式E⑶接口設備與運行測量應用軟件工具9、例如來自ETAS GmbH的INCA的成品個人計算機(PC)之間的測量、校準和診斷(MCD)數據的可靠傳輸的客戶要求。
[0050]在現有技術中,由底層操作系統軟件來提供TCP協議功能,該底層操作系統軟件是來自 Research In Motion 公司(RIM)的QNX? 或 PC 內的 Microsoft Windows? 的嵌入式設備內的Embedded Linux。
[0051]用于下一代汽車E⑶8的測量應用請求至少30M字節/ s或者甚至更高的測量數據傳輸速率。要求低等待時間和低抖動原型應用共存。
[0052]已經發現數據吞吐量中相對于當前解決方案的達到5至10倍的此類增加只能通過從軟件完全去除幀速率感知并通過以硬件實現協議堆棧來實現。
[0053]以硬件解決方案的可用TCP已經被調查具有以下結果:
-來自韓國WIZNET的唯一現有ASIC解決方案(最大12.5Mbyts /秒)既不支持也不具有用于吉比特以太網的路線圖(roadmap)且一直缺少第二源。[0054]-以硬件解決方案的所有現有基于FPGA的TCP是要求TCP私有數據緩沖的獨立的實施方式,這增加了相當可觀的復雜性、成本和功耗。它們中沒有一個提供了用于在客戶端或網絡側上的服務復用的擴展支持。所支持連接的量過高或過低。某些實施方式一直缺少特征或者甚至是不服從標準的。不能控制可縮放性。
[0055]本發明通過植入以下特征中的一個或多個來克服這些限制:
-使用與客戶端和網絡層側復用器的共享單個數據緩沖器,降低功耗和成本。
[0056]-提供達到125Mbyts/秒的線速性能。
[0057]-通過對數據指針而不是原始數據進行操作進一步減少了功耗,這將系統的觸發率減小至達到1/16。
[0058]-提供了用于較高層(客戶端側)協議與較低層(網絡側)協議之間的以硬件解決方案的TCP的無縫集成的手段。
[0059]-不增加等待時間或針對原型應用的抖動。
[0060]-允許基于硬件和軟件的協議堆棧的共存。
[0061]-可控可縮放性。
[0062]本發明集中于能夠實現以硬件實施方式的最優TCP的集成方法和原理。TCP功能的內部構件是在外部開發的,并且因此不是本發明的一部分。
[0063]在圖3中示出了 硬件(TCPHW)部件10中的TCP。部件10執行服從標準的TCP協議操作。其使用下面的良好定義的接口連接到數據平面的客戶端層20和網絡層21并連接到控制平面:
-客戶端層接口 27
-網絡層接口 28
-控制接口 29
-描述符庫接口 30
這些接口由以下主要構建塊所服務:
-具有重傳緩沖器23的TCP發送器22 -具有重新排序緩沖器25的TCP接收器24,以及 -控制26
構建塊由以下內部接口所互連:
-命令/狀態接口 cmdstat -TCP 連接接口 tcpcon。
[0064]描述符是用于傳輸和存儲對外部數據緩沖器(例如中央緩沖器12)的參考的容器。每個描述符描述有限尺寸的單個客戶端或網絡層數據段。其承載以下信息:
-緩沖器索引
〇到外部數據緩沖器的用戶定義索引。TCP透明地傳輸此信息。
[0065]-段的長度
〇包含在此段中的有效數據的長度。TCP使用此信息來計算TCP序列號。
[0066]_段內偏移
〇指向緩沖器內的第一有效的有效載荷的偏移。TCP透明地傳輸此信息。
[0067]-擴展字的長度〇用戶定義擴展字的長度。TCP透明地傳輸此信息。
[0068]-擴展字
〇客戶端或網絡層定義擴展字。TCP透明地傳輸此信息。
[0069]在下文中,詳細地描述了外部接口。
[0070]客戶端層接口 27是將TCPHW10的η個TCP功能(連接)與客戶端層相連接的雙向多信道接口。其包括客戶端層傳送接口 27.1和客戶端層接收接口 27.2。接口 27以描述符的形式將客戶端有效載荷載送至有限尺寸的數據段。每個信道表示獨立操作的TCP連接并基于每個段與其他信道交織。
[0071]客戶端層接口 27是主/從接口。TCPHW10是從件。
[0072]TCP發送器22被允許基于每個信道從客戶端層接收接口 27.2對壓業務量進行反壓(backpressure)。反壓可能由于不同的原因而變得活動:
-近端發送器的傳送窗口關閉,因為由于丟失的幀而未接收到確認。
[0073]-遠端接收器關閉TCP窗口,因為接收數據未被遠端客戶端層所處理。
[0074]-TCP連接由于與以太網外出接口上的其他服務或連接的競爭而減慢。
[0075]-TCP連接降低其內部處理速度。
[0076]TCP接收器24必須通過不清空其重新排序緩沖器25并減小向遠端TCP發送器通告的接收窗口尺寸來遵守由客戶端層所主張的反壓。
[0077]網絡層接口 28是將TCPHW10的η個TCP功能(連接)與網絡層的IP和以太網接口相連接的雙向多信道接口。其包括網絡層傳送接口 28.1和網絡層接收接口 28.2。接口28按引用進行操作,將以描述符形式的TCP段有效載荷載送至有限尺寸的數據段。每個信道表示獨立操作的TCP連接且基于每個段與其他信道交織。TCP業務量按IP地址和端口號以及到信道的連接映射的分段和分類是在TCPHW部件10外面完成的。
[0078]要注意的是,TCPHW10將從客戶端層(通過客戶端層接口 27)接收到的各段在沒有任何改變(亦即不對其進行處理)的情況下傳遞至網絡層(通過網絡層接口 28)。
[0079]將TCP段的有效載荷按引用傳輸。TCP段的報頭(TCP協議報頭)由TCP協議功能生成或消耗且必須按值傳輸。
[0080]網絡層接口 28是主/從接口,其中TCPHW10充當從件。要注意的是,這與獨立實施方式(參見圖1)不同,其中,IP層被緊密地聯系到TCP層并充當朝向鏈路層MAC從件的主件。
[0081]TCP發送器22必須基于每個信道遵守由網絡層所主張的反壓。
[0082]TCP接收器24被允許每個信道或通常針對所有信道主張朝向網絡層的反壓。為了避免多個流量控制機制(具有以太網PAUSE幀的鏈路層流量控制、網絡層接口反壓和TCP端對端流量控制)之間的干擾,推薦不依賴于網絡層接收接口 28.2反壓。TCPHW10必須足夠快以便以線速接受來自網絡層接口 28的任何數據。
[0083]控制接口 29是到軟件的存儲器映射寄存器接口。其提供以下服務:
-激活/去激活(全局)
〇軟件將完整的TCPHW10全局地激活或去激活。默認值:去激活。
[0084]-重置(全局)
〇軟件將運行中的TCPHW10重置成其上電狀態。所有寄存器被加載有其默認值。[0085]-本地TCP端口配置(每連接)
〇針對給定鏈接設置本地TCP / IP端口。
[0086]-遠程TCP端口配置(每連接)
〇主動打開(客戶端):設置遠程TCP端口號;
〇被動打開(服務器):獲得遠程TCP端口號。
[0087]-向TCP協議引擎的命令(每連接)
〇軟件向TCPHW發送以下命令中的一個:
?“被動打開”:將TCP狀態機置于LISTEN狀態中
?“主動打開”:將TCP狀態機置于SYN_SENT狀態中
?“關閉”:本地關閉連接;導致向FIN_WAIT1、CL0SE_WAIT或LAST_ACK的過渡
?“刪除Tcb”:立即將連接重置并將本地TCP狀態機轉移至CLOSED狀態。如果連接尚未處于CLOSED或HME_WAIT狀態,則此動作還向遠程主機發送TCP_RST控制。
O明確地向軟件確認命令。
[0088]-來自TCP協議引擎的狀態(每連接)
〇軟件讀取用于每個連接的當前狀態。可能狀態是:CLOSED、LISTEN、SYN_RCVD、SYN_SENT、ESTABLISHED、CL0SE_WAIT、LAST_ACK、FIN_WAIT1、FIN_WAIT2、CLOSING、HME_WAIT。
[0089]-最大發送段尺寸(每連`接)
〇軟件設置每連接的TCP發送段的最大尺寸。默認值:356字節。
[0090]-最大接收段尺寸(每連接)
〇軟件設置每連接的TCP接收段的最大尺寸。將此值在連接建立期間向遠端通告。默認值:1480字節。
[0091]-啟用/禁用Nagle算法(每連接)、
〇軟件在給定連接上禁用Nagle算法。默認值:啟用。
[0092]-配置延遲確認算法(每連接)
〇兩個值被軟件用來控制延遲確認算法:
?確認計數(每連接)定義在發送即時確認之前必須已經接收到的段數。
?最大延遲(每連接)定義發送器必須等待確認的最大延遲。
[0093]-通知和中斷
O TCPHW使用中斷向軟件發送以下異步通知:
?由于遠程主機控制而改變的TCP狀態 ?由于定時器事件而改變的TCP狀態 ?遠程TCP發送FIN ?遠程TCP發送RST ?緩慢重傳定時器引起的重傳 ?快速重傳被觸發。
[0094]緩沖器描述符接口 30 (或描述符庫接口):TCP發送器22必須存儲描述符直至對應段已被遠端接收器所確認。一旦已經接收到確認,則TCP發送器22經由接口 30向外部描述符庫返回與已確認段相關聯的描述符(參考)。
[0095]另一方面,TCP接收器24不可向客戶端層輸送任何TCP內容兩次。因此,必須通過將關聯描述符返回至外部描述符庫來釋放每個復制的接收TCP段。
[0096]要注意的是,TCP接收器24和TCP發送器22都不曾從該庫分配描述符。
[0097]在任何情況下,當連接被近端或遠端所關閉時,與該連接相關聯的所有描述符必須被返回至外部描述符庫。
[0098]緩沖器描述符接口 30是簡單的同步握手接口,其提供單個服務“自由緩沖器”,具有兩個關聯參數:緩沖器庫和該庫內的緩沖器索引。
[0099]TCPHW部件10由三個主構建塊組成:
-TCP發送器22和重傳緩沖器23,
-TCP接收器24和重新排序緩沖器25,以及 -控制26。
[0100]下文給出這些構建塊的短黑框描述。這些構建塊的詳細內部設計不在本發明的范圍內。然而,定義了外部接口 27-30,并且上文已討論了用于實現的基本方針。
[0101]TCP發送器22和重傳緩沖器23:TCP發送器22根據IETF (互聯網工程任務組)標準來執行用于多個連接的標準TCP協議處理。連接同時地運行。TCP發送器22保持用于每個連接的重傳緩沖器23。此緩沖器23被設計成存儲TCP段。每個TCP段由對位于外部數據存儲器(例如中央緩沖器12)中的數據緩沖器的參考列表組成,其不是TCPHW10的一部分。這些參考源自于客戶端層且被封裝在如上所描述的描述符結構中。
[0102]如圖4中所示的重傳緩沖器23具有三個基本區:
-自由緩沖器40 (用連續線加陰影),其尚未被客戶端層填充,
-已占用緩沖器41 (帶點的),TCP段已被發送并等待由遠端TCP接收器進行確認。這些TCP段被保持直至重傳或被確認。TCP發送器變量expectedSN標記此區的開始。將ExpectedSN用每個接收到的新確認序列號更新。已確認TCP段將其色彩從“帶點的”改變成“用連續線加陰影”并變為自由緩沖器。必須使用描述符庫接口將與TCP段相關聯的所有參考盡可能快地返回至外部描述符庫以用于稍后重新使用。
[0103]-已占用緩沖器42(用虛線加陰影),具有被允許發送的數據(如果可用的話)。此區的開始由TCP發送器變量nextSN來標記。NextSN在已經將TCP段朝著網絡層發送之后增量。TCP段的色彩從“用虛線加陰影”改變成“帶點的”。屬于對應TCP段的所有參考現在為TCPHW所擁有,直至其被確認并釋放。
[0104]圖4示出了重傳緩沖器23的邏輯結構。緩沖器23條目由TCP序列號編所索引。TCP發送器22通過添加在來自客戶端層的描述符內所接收到的長度指示符直至達到或幾乎達到TCP段的最大段尺寸MMS來構造序列號。詳細行為取決于Nagle算法設置。如果此算法被開啟,則如上所描述地收集數據。如果其被關閉,則TCP發送器根據其速度可以或可以不將客戶端數據收集到TCP段中。
[0105]要注意的是,也許不可能最佳地填充TCP段,因為添加下一接收客戶端層段Si的長度可能超過最大段尺寸麗S。然而,客戶端層可以將段Si虛擬地分成子段Sil和si2。兩個子段都承載相同的緩沖器索引,但是使用到同一外部數據緩沖器(例如中央緩沖器12)中的不同偏移。
[0106]重傳緩沖器23的物理尺寸必須足夠大以保持用于可用TCP窗口尺寸的充足的數據參考,該可用TCP窗口尺寸從O至min(cwnd、rwnd)的范圍變動,其中,cwnd是TCP擁擠窗口,并且rwnd表示從遠端TCP接收器通告的接收窗口尺寸。
[0107]假設具有低誤碼率的無擁擠、小型局域網,要支持的最小重傳緩沖器尺寸由相對小的往返時間RTT和TCP連接的期望保持吞吐量R所支配:
Beff = R* RTT
示例:
其中R= (30至125)M字節/ s,RTT= (0.5至I)ms,必定支持Beff= (15至125) k字節的緩沖器尺寸。
[0108]對物理描述符存儲器的需求取決于TCP層的最大段尺寸mss和客戶端層的最小段長度msl。
【權利要求】
1.一種用于在通信系統的客戶端層和/或傳輸層中的任何兩個設備之間傳送數據的方法,其中,根據在下文中稱為TCP的傳輸控制協議來執行數據傳輸,其特征在于要傳送的數據被緩沖在中央存儲裝置(12)中,并且在于TCP協議操作塊(10)處理對存儲在存儲裝置(12)中的已傳輸數據的參考而不是數據本身。
2.根據權利要求1所述的方法,其特征在于在通信系統中在一方面的汽車電子控制單元(8)與另一方面的在外部個人計算機上運行的汽車開發軟件工具(9)之間傳送測量、校準和診斷數據。
3.根據權利要求1或2所述的方法,其特征在于跨越所有通信層使用中央存儲裝置(12)。
4.根據前述權利要求中的一項所述的方法,其特征在于以數據幀來傳送數據,并且客戶端層幀和網絡層幀在傳送之前被分段成較小數據塊。
5.根據前述權利要求中的一項所述的方法,其特征在于TCP協議操作塊(10)包括重傳緩沖器(23 ),并且將對已傳輸數據的參考而不是數據本身存儲在重傳緩沖器(23 )中。
6.根據前述權利要求中的一項所述的方法,其特征在于TCP協議操作塊(10)包括重新排序緩沖器(25),并且將對已傳輸數據的參考而不是數據本身存儲在重新排序緩沖器(25)中。
7.一種適合于在通信系統的客戶端層和/或傳輸層中的任何兩個設備之間傳送數據的通信系統,其中,根據在下文中稱為TCP的傳輸控制協議來執行數據傳輸,其特征在于該通信系統包括用于緩沖要傳送的數據的中央存儲裝置(12)和適合于處理對存儲在存儲裝置(12 )中的已傳輸數據的參考而不是數據本身的TCP協議操作塊(10 )。
8.根據權利要求7所述的通信系統,其特征在于在通信系統中在一方面的汽車電子控制單元(8)與另一方面的在外部個人計算機上運行的汽車開發軟件工具(9)之間傳送測量、校準和診斷數據。
9.根據權利要求8所述的通信系統,其特征在于所述通信系統包括位于所述汽車電子控制單元(8)與所述開發軟件工具(9)之間的嵌入式采集設備(I)且所述TCP協議操作塊(10)是所述嵌入式采集設備(I)的一部分。
10.根據權利要求8或9所述的通信系統,其特征在于通信系統,特別是位于所述汽車電子控制單元(8 )與所述開發軟件工具(9 )之間的嵌入式采集設備(I),包括適合于執行權利要求3至6中的一項的方法的裝置。
11.一種位于通信系統的任何兩個設備之間的嵌入式采集設備(1),在所述兩個設備之間,在通信系統的客戶端層和/或傳輸層中傳送數據,其中,所述采集設備(I)適合于根據在下文中稱為TCP的傳輸控制協議來執行數據傳輸,其特征在于所述采集設備(I)包括適合于處理對緩沖在通信系統的中央存儲裝置(12)中的要傳送的數據的參考而不是數據本身的TCP協議操作塊(10 )。
12.根據權利要求11所述的嵌入式采集設備(1),其特征在于在通信系統中傳送校準和診斷數據,并且所述采集設備(I)位于一方面的汽車電子控制單元(8)與另一方面的在外部個人計算機上運行的汽車開發軟件工具(9)之間。
13.根據權利要求11或12所述的嵌入式采集設備(1),其特征在于所述采集設備(I)包括用于執行權利要求3至6中的一項的方法的裝置。
【文檔編號】H04L29/06GK103731409SQ201310481321
【公開日】2014年4月16日 申請日期:2013年10月15日 優先權日:2012年10月16日
【發明者】P.莫爾, S.施特勞布, C.波爾, K.勒特格, H.洛伊韋爾, T.拜爾 申請人:羅伯特·博世有限公司