TWI497970B - 用於改良之時脈偏移測量之技術 - Google Patents
用於改良之時脈偏移測量之技術 Download PDFInfo
- Publication number
- TWI497970B TWI497970B TW099137673A TW99137673A TWI497970B TW I497970 B TWI497970 B TW I497970B TW 099137673 A TW099137673 A TW 099137673A TW 99137673 A TW99137673 A TW 99137673A TW I497970 B TWI497970 B TW I497970B
- Authority
- TW
- Taiwan
- Prior art keywords
- network node
- ping
- pong
- single byte
- timing
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0682—Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Computer And Data Communications (AREA)
Description
本發明大體而言係關於網路,且更具體言之,係關於測量網路節點之時脈偏移。
廣泛認為,關於時脈同步之唯軟體解決方案遭受將準確度限於10微秒或大於10微秒之不可避免的「系統雜訊」(處理程序分派、中斷處置等)。當需要微秒級同步時,使用硬體解決方案,例如,在通信鏈路之兩端處具有IEEE 1588(精確時間協定)支援之網路配接器。
如圖1中所描繪,典型軟體時戳交換使用戶端節點A將一時戳T1發送至伺服器節點B,該伺服器節點B在時間T2接收該時戳T1。伺服器節點B接著在時間T3發送一回覆,且用戶端節點A在時間T4接收該回覆。使用用戶端節點A之時脈來測量T1及T4;在伺服器節點B之時脈上測量T2及T3。自此資訊可判定用戶端A之時脈與伺服器B之時脈之間的偏移,但軟體以及硬體延遲促使高抖動。IEEE 1588在硬體級處獲取時戳,且提供一介面以收集彼等時戳。然而,如在IEEE 1588中之硬體實施比軟體實施昂貴且比軟體實施難於修改。
因此,將需要提供克服此等限制之技術。
在本發明之一例示性態樣中,揭示一種在一網路節點上執行之方法。該方法包括執行與另一網路節點之至少單一位元組的若干次交換,其中該等單一位元組之值對於該等交換為不同的。該方法亦包括擷取並儲存在該網路節點上執行之該若干次交換中之每一者的時戳。
在另一例示性態樣中,揭示一種網路節點,其經組態以執行與另一網路節點之至少單一位元組的若干次交換,其中該等單一位元組之值對於該等交換為不同的。該網路節點亦經組態以擷取並儲存在該網路節點上執行之該若干次交換中之每一者的時戳。
在另一態樣中,揭示一種在一網路節點上執行之方法。該方法包括擷取並保存自另一網路節點接收之一時序訊息集合中的若干時序訊息中之每一者的到達時戳。該方法亦包括回應於該時序訊息集合之完成而將該等時戳發送至至少該另一節點。
在一額外例示性態樣中,揭示一種網路節點,其經組態以擷取並保存自另一網路節點所接收之一時序訊息集合中的若干時序訊息中之每一者的到達時戳,且經組態以回應於該時序訊息集合之完成而將該等時戳發送至至少該另一節點。
當結合所附圖式閱讀時,本發明之實施例之前述及其他態樣在以下例示性實施例之[實施方式]中更顯而易見。
在一例示性實施例中,揭示一種用於時脈偏移測量之新技術,該技術使用將時脈偏移減小至絕對最小值之一系列「乒乓(ping pong)」交換,其中每一交換涉及對於每一交換為不同之單一位元組(例如,使剩餘訊息計數遞減),且可用以判定該單一位元組是否為該系列中之最後交換。在交換之每一側上之網路節點私下記錄到達時戳及離開時戳,且在交換結束時,所收集之時戳(例如)在一非時間關鍵訊息中被傳回至另一側(對於網路節點中之一節點或兩個節點)。在一實施例中,一協定實施確保位元組交換之每一側知曉在一逾時之後是否仍預期另一封包,且僅可存在一個此經延遲之封包。此情形極大地簡化了逾時恢復,且移除在歸因於不確定性之逾時之後重新初始化鏈路之需要(儘管並非唯一恢復方法,但係最簡單恢復方法)。
單一位元組交換之額外益處(在一例示性實施例中)包括(但不限於)此等交換准許簡單資料驅動旋轉迴圈(data-driven spin-loop)用於遠端直接記憶體存取(RDMA)狀況下:目標位元組一改變,回覆位元組即可發送,而不必首先輪詢完成狀態。在InfiniBand(主要用於高效能計算中之通信鏈路)之例示性狀況下,此可將已經為低之延時減小至少一微秒。
現參看圖2,此圖描繪兩個網路節點(用戶端100及伺服器200)之硬體方塊圖。如所展示,用戶端100包括經配置以存取一或多個記憶體103之一或多個處理器101,其中記憶體103包括電腦程式102。用戶端100亦包括時脈109。同樣地,伺服器200包括經配置以存取一或多個記憶體203之一或多個處理器201,其中記憶體203包括電腦程式202。伺服器200包括時脈209。用戶端與伺服器在由每一側上之鏈路配接器104/204控制之實體鏈路300上且經由網路310進行通信。在一例示性實施例中,可在每一記憶體103/203之間經由直接記憶體存取(DMA)傳達記憶體103/203中之資訊,且兩個記憶體之間經由鏈路300之互動准許實施遠端直接記憶體存取(RDMA)協定,其為用於本發明之特定實施例之協定。應注意,可使用其他協定在鏈路300上交換資料。用戶端100之時脈109與伺服器200之時脈209之間的時脈偏移待在本文中之例示性實施例中判定。應注意,本發明之態樣適用於任何兩個網路節點,且並不限於伺服器200及用戶端100。
在此非限制性實例中,該一或多個記憶體103亦包括表示輸送時間105、輸送延遲及時脈偏移107之資料。下文更詳細地描述此等資料。伺服器200亦可將表示輸送時間105、輸送延遲及時脈偏移107之資料包括於其一或多個記憶體203中(圖2中未展示)。時戳亦駐留於記憶體103/203中,如下文更詳細地描述。
程式102/202在由其各別一或多個處理器101/201執行時組態用戶端100及伺服器200以執行本文中所描述之動作。詳言之,可藉由經組態之用戶端100/伺服器200(如由各別程式101/201組態)來執行圖3至圖10中之動作中之任一者。
本發明之一例示性實施例包括執行於伺服器200上之程式202,程式202與執行於用戶端100上之程式102通信。伺服器200與用戶端100協調以開始一用戶端偏移測量處理程序。在一實施例中,該協調包括伺服器程式202等待來自用戶端100之「門鈴」(或「初始化」)請求以開始乒乓訊息交換之序列,從而在交換期間收集時戳測量。實施例可能或可能不要求伺服器200對該請求作出應答(ACK)。可使用來自伺服器200以及用戶端100兩者之此等時戳以估計用戶端時脈與伺服器時脈之間的相對時間誤差及偏移。此實例中之用戶端程式102起始乒乓訊息交換。在乒乓交換期間,在用戶端與伺服器之間的每一訊息中發送一單一位元組。在諸圖所展示之實施例中,位元組之值比待交換之剩餘封包大1,其中零對於信號具有如下單獨意義:發送者經歷逾時且因此確實預期再一次之回覆。然而,本發明不限於此。在一例示性實施例中,用戶端程式102在每一往返之後負責使位元組遞減。伺服器200(例如,程式202)在每次伺服器200接收到單一位元組時記錄時戳。在一實施例中,伺服器200將相同位元組發送回至用戶端。當位元組等於1(一)或0(零)時,伺服器200立即(例如)發送回伺服器200在當前乒乓交換期間已收集之所有時戳。在用戶端100發送具有值1之位元組之後,用戶端100預期來自伺服器200之下一訊息含有所有時戳而非單一位元組。
在一例示性實施例中,將一實施建立為建置於使用鏈路300之可靠通信頻道上的通信協定。此例示性協定(及流程圖)展示於圖3中。所有訊息將以其發送次序來遞送,其中在遞送中可能存在延遲。在一例示性實施例中,因為在訊息遞送中可能存在延遲,所以用戶端程式與伺服器程式兩者使用逾時機制以防止過長時間的乒乓交換。下文描述例示性逾時機制。
圖3說明如上文所描述之例示性情境。在圖3之實例中,排程四次乒乓交換。用戶端100與伺服器200協調以藉由請求4(四)次乒乓交換來開始時脈偏移測量處理程序,且在此實例中,伺服器200以應答(ACK)作出回應。
接著藉由在用戶端100與伺服器200之間進行時序訊息之第一次交換來開始時脈偏移測量處理程序。該交換包括:用戶端100發送具有值4(四)之位元組310-1,且伺服器200接收此位元組310-1。用戶端100擷取並儲存用戶端時戳T1,且伺服器擷取並儲存伺服器時戳T2。該交換以伺服器200將位元組310-1發送回至用戶端100而結束。用戶端100擷取並儲存用戶端時戳T3,且接著進行第二次交換。擷取並儲存用戶端時戳T3可視為第一次交換或第二次交換之部分。
第二次交換包括第一次發送及接收具有值3(三)之位元組310-2,擷取並儲存用戶端時戳T4,發送及接收位元組310-2,以及擷取並儲存伺服器時戳T5。第三次交換及第四次交換包括交換分別具有值2(二)及1(一)之位元組310-3及310-4及儲存時戳T6、T7、T8及T9。
回應於預定數目次交換之完成,伺服器200將伺服器時戳T2、T4、T6及T8發送至用戶端100。在圖3之實例中,伺服器200藉由接收及發送具有值1(一)之位元組310來判定完成。
應注意,正進行交換之單一位元組為含有單一位元組資料有效負載之時序訊息,且含有時序訊息之封包可具有額外資訊。亦應注意,發送單一位元組之單一元素至少因為單一位元組消除一些潛在額外處理而為有益的。舉例而言,當將一訊息自一電腦發送至另一電腦時,該等電腦中之一者可(例如)因為「位元排列順序」而必須改變訊息中之位元組之次序。如在此項技術中已知,「位元排列順序」為用以表示資料之位元組(或較大記憶體元素)之排序。舉例而言,兩個位元組A及B(因此組成一個字)可儲存為AB或BA。接收BA之網路節點將必須判定位元組需要切換至AB以在該特定網路節點上使用。若僅存在單一位元組,則電腦中之每一者使用哪一位元排列順序無關緊要。因此,發送諸如字或雙字之單一記憶體元素將需要解決位元排列順序。然而,若實施可處置此處理,則可使用字或雙字之其他單一元素。對於使用TCP/IP(傳輸控制協定/網際網路協定)之網路,避免位元排列順序問題之優勢主要在於簡單性;效能影響通常可忽略。當在乒乓交換結束時傳輸時戳時,將必須考慮位元排列順序,因此不能夠完全避免此問題。然而,對於使用RDMA之網路,自技術觀點而言,單一位元組旋轉迴圈能力更為重要,且可導致可測量效能改良。
應注意,圖3中之協定僅為例示性的,且可對此協定進行許多改變且該等改變在本發明之例示性實施例之範疇內。在另一例示性實施例中,用戶端100在交換之間使位元組310中之數目遞減。在另一實施例中,用戶端100回應於發送前一位元組310而使下一數目準備好進行傳輸。舉例而言,在發送位元組310-1之後,用戶端100可預備具有值3(三)之另一位元組以在一旦自伺服器200接收到位元組310-4後便準備發送該位元組。作為另一實例,用戶端100可預備具有適當值之四個位元組,且接著將此等位元組作為位元組310來傳達。另外,用戶端100可使位元組310中之數目的值遞增,或可使用某一其他數學或邏輯運算(例如,移位)以預備位元組。
不管判定之位元組310中之值,位元組310之值對於每一交換不同係有益的,否則將不會知曉位元組310之接收次序。在圖3之例示性實施例中,每一位元組310在一交換中具有相同值,但亦可修改此值,使得用戶端100及伺服器200能夠辨別每一位元組之接收次序。舉例而言,用戶端100可發送具有值8(八)之位元組310,伺服器200使此位元組遞減且將具有值7(七)之位元組310發送回至用戶端100。下一交換將涉及值6(六)(來自用戶端100)及值5(五)(來自伺服器200)。位元組310之值在每一交換之間仍不同。不同位元組值用於兩個目的:(1)區別遠端逾時與常規交換,及(2)准許偵測位元組之改變的旋轉迴圈。所呈現之協定假定依序遞送,因此無序遞送通常不在討論範圍之內。
在特定例示性實施例中,使用圖3所展示之協定包括(但不限於)以下益處:
1)較低延時改良時脈時間誤差及偏移之估計,且導致增加之同步準確性。
2)網路訊息在執行同時發生於兩個節點上時交換。
3)時序交換訊息藉由僅使用單一位元組封包有效負載而得以簡化,從而消除與網路位元組次序或一致性相關聯之問題。對於RDMA網路,此亦消除在時間敏感訊息交換期間等待接收完成通知之需要。
4)自時戳收集解耦時序訊息交換。每一網路節點記錄單一位元組訊息到達及離開時間,且在該系列單一位元組訊息完成時與另一節點交換到達/離開時間。
5)相比其他硬體時間同步方法,此方法之軟體實施具有減少成本且便於安裝、更新及維護的其他益處。
因此,在圖3之協定之實例中,在用戶端節點與伺服器節點之間自時戳收集解耦時序訊息交換。另外,時序訊息不含有來自另一節點之到達時戳。在交換之一叢發中,一時戳可表示位元組之到達及回覆之離開,此係因為應立即進行回覆。在用戶端與伺服器節點之間發送單一位元組時序訊息之一叢發,其中立即回覆除交換之最後位元組之外的所有位元組。在已完成叢發時序訊息交換之一叢發之後,交換時序訊息之到達時間之集合。
如上文所陳述,例示性通信協定建置於可靠通信頻道上。所有訊息以發送其之次序遞送,其中在遞送中可能存在延遲。因為在訊息遞送中可能存在延遲,所以用戶端程式與伺服器程式兩者使用逾時機制以防止過長時間的乒乓交換。現論述例示性逾時機制。
當用戶端100或伺服器200逾時等待來自另一側之乒乓回覆(例如,等待節點已發送具有大於1之值的位元組)時,等待節點發送具有一預定值之位元組(在此實例中,具有值0的位元組)以指示逾時且終止當前乒乓交換。逾時為在一預定時間段內單一位元組未到達網路節點時發生之狀況。
參看圖4,此圖說明用於在用戶端逾時時執行時脈偏移測量之例示性協定。用戶端100逾時等待來自伺服器200之對具有值1之位元組的答覆。用戶端100藉由將具有值0(零)之位元組發送至伺服器200來對逾時作出回應。逾時用戶端100接著預期來自伺服器200之下一訊息為未決單一位元組,其後接著具有所收集之時戳的訊息。注意到,若用戶端100發送位元組=1(一),則用戶端100預期來自伺服器200之下一訊息含有時戳。用戶端100將保持等待時戳。
參看圖5及圖6,此等圖說明用於在伺服器200逾時時執行時脈偏移測量之例示性協定。逾時伺服器200將發送位元組=0(零),其後接著伺服器200目前已收集之時戳。在此等狀況下,伺服器應預期位元組=*(星號)之訊息(例如,具有具任何值之位元組的訊息)在發送途中,此係因為用戶端100並不知曉伺服器200在發送位元組=*(星號)之訊息之前已逾時。在此等狀況下,伺服器200應捨棄位元組=*(星號)之訊息。
圖7為在正常行為下之用戶端狀態及動作的圖。圖8為在例外行為下之用戶端狀態及動作的圖。注意到,對於可靠連接,應遞送且以訊息發送之次序來遞送所有訊息。
圖9為在正常行為下之伺服器狀態及動作的圖。圖10為在例外行為下之伺服器狀態及動作的圖。注意到,伺服器200不應在發送位元組=0(零)與接收時戳之間接收任何訊息。
轉向圖11,此圖說明用於執行時脈偏移測量之例示性流程圖。流程圖中之動作將藉由用戶端100及伺服器200執行,在一例示性實施例中,用戶端100及伺服器200各自由各別程式102、202組態以執行該等動作。另外,圖11之流程圖中之動作可藉由硬體或軟體之任何組合來執行。
在動作A中,網路節點協調以開始時脈偏移測量處理程序。協調通常包括(但不限於):使用戶端100請求若干次單一位元組乒乓交換,及使伺服器200發送一應答訊息(例如,如圖3所展示)。交換之數目將大體上在4與10之間,但可使用小於4或大於10之數目。
在動作B中,網路節點交換一單一位元組達預定數量次,其中該單一位元組之值對於該等交換為不同的(例如,如圖3所展示及上文參看圖3所描述)。在一例示性實施例中,程式102/202實施遠端直接記憶體存取(RDMA)存取以便交換動作B之位元組。此等交換准許將簡單之資料驅動旋轉迴圈用於RDMA之狀況下:目標位元組一改變,回覆位元組即可發送,而不必首先輪詢完成狀態。在InfiniBand之例示性狀況下,此可將已經為低之延時減小至少一微秒。
在動作C中,每一節點擷取並儲存在節點上執行之交換之每一部分的時戳。舉例而言(見圖3),用戶端100擷取並儲存時戳T1、T3、T5及T7,且伺服器200擷取並儲存時戳T2、T4、T6及T8。應注意,圖11展示用於正常處理之流程圖。在圖4至圖6、圖8及圖10中展示例外處理。
在動作D中,節點中之至少一者將所儲存之時戳傳達至另一節點或額外節點。通常,伺服器200會將其所儲存之時戳發送至用戶端100,用戶端100接著執行動作E、F及G。然而,用戶端100亦可將其所儲存之時戳發送至伺服器200,伺服器200將接著執行動作E、F及G。用戶端100及伺服器200亦可交換其所儲存之時戳,且用戶端100及伺服器200中之一者或兩者亦可將時戳發送至另一網路節點。
在動作E中,使用時戳(諸如,圖3所展示之時戳T1至T8)來判定輸送時間105。使用相鄰時戳之間的差T偶數-T奇數(例如,T2-T1)來判定前向輸送時間,且使用T奇數與T偶數之間的差(例如,T3-T2)來判定後向輸送時間。在動作F中,接著至少基於在動作E中所判定之最小值(對於每一方向)來選擇表觀前向及後向輸送延遲106。亦可使用其他技術,諸如凸包(convex hull)濾波。在使用凸包濾波技術之情況下,可有利地單獨收集前向及後向輸送延遲106,且將濾除任何系統雜訊。
在動作G中,節點(通常為用戶端100)基於在動作F中所判定之表觀前向及後向延遲來判定用戶端或伺服器時脈偏移107。在動作H中,使用時脈偏移107來使網路節點之時脈同步。通常,此意謂將使用戶端之時脈(例如,圖2之用戶端100的時脈109)與伺服器之時脈(例如,圖2之伺服器200的時脈209)同步。
舉例而言,若用戶端100想要追蹤伺服器200之時脈,則用戶端100重複地請求時戳交換以便測量當前時脈偏移,且自此等測量之歷史記錄及適當濾波技術,用戶端100可接著導引其時脈109匹配伺服器200之時脈。此情形可能每秒進行幾次,使得若本地振盪器之頻率穩定在(例如)1 ppm(百萬分之一)或2 ppm,則可將時脈偏移控制在微秒級。
本發明之一例示性實施用以較佳地使網路節點叢集中之時脈同步,且因此允許使用者獲得對正在網路節點間處理之異動的準確延遲測量。因為在叢集中之節點之間所發送之極小封包及緊耦合乒乓處理程序,所以本發明之實施例中之技術提供對時脈之間的偏移及時間誤差之更準確測量。
如熟習此項技術者應瞭解,本發明之態樣可體現為一系統、方法或電腦程式產品。相應地,本發明之態樣可採用完全硬體實施例、完全軟體實施例(包括韌體、常駐軟體、微碼等)或組合軟體與硬體態樣之實施例的形式,該等實施例大體上在本文中皆可稱為「電路」、「模組」或「系統」。此外,本發明之態樣可採取體現於一或多個電腦可讀媒體中之電腦程式產品之形式,該電腦程式產品具有體現於其上之電腦可讀程式碼。
可利用一或多個電腦可讀媒體之任何組合。該電腦可讀媒體可為電腦可讀信號媒體或電腦可讀儲存媒體。舉例而言,電腦可讀儲存媒體可為(但不限於)電子、磁性、光學、電磁、紅外線或半導體系統、裝置、或器件或前述各者之任何合適組合。電腦可讀儲存媒體之更特定實例(非詳盡清單)將包括以下各者:具有一或多個導線之電連接件、攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、光纖、攜帶型光碟唯讀記憶體(CD-ROM)、光學儲存器件、磁性儲存器件,或前述各者之任何合適組合。在此文件之情形中,電腦可讀儲存媒體可為可含有或儲存供指令執行系統、裝置或器件使用或結合指令執行系統、裝置或器件而使用之程式的任何有形媒體。
電腦可讀信號媒體可包括(例如)以基頻形式或作為載波之部分的傳播資料信號,其中電腦可讀程式碼體現於該傳播資料信號中。此傳播信號可採用各種形式,包括(但不限於)電磁、光學或其任何合適組合。電腦可讀信號媒體可為不為電腦可讀儲存媒體且可傳達、傳播或輸送供指令執行系統、裝置或器件使用或結合指令執行系統、裝置或器件而使用之程式的任何電腦可讀媒體。
體現於電腦可讀媒體上之程式碼可使用任何適當媒體來傳輸,該等媒體包括(但不限於)無線、有線、光纖纜線、RF等,或前述各者之任何合適組合。
可以一或多種程式設計語言之任何組合撰寫用於執行本發明之態樣之操作的電腦程式碼,該一或多種程式設計語言包括諸如Java、Smalltalk、C++或其類似者之物件導向式程式設計語言及諸如「C」程式設計語言或組合語言或類似程式設計語言之習知程序性程式設計語言。此電腦程式碼亦可包括用於場可程式化閘陣列之程式碼,諸如,VHDL(超高速積體電路硬體描述語言)。
上文參考根據本發明之實施例之方法、裝置(系統)及電腦程式產品的流程圖說明及/或方塊圖來描述本發明之態樣。將理解,可由電腦程式指令來實施流程圖說明及/或方塊圖之每一區塊及該等流程圖說明及/或方塊圖中之區塊的組合。可將此等電腦程式指令提供至通用電腦、專用電腦或其他可程式化資料處理裝置之處理器以產生一機器,以使得經由該電腦或其他可程式化資料處理裝置之處理器而執行之指令建立用於實施該或該等流程圖及/或方塊圖區塊中所指定之功能/動作之構件。
此等電腦程式指令亦可儲存於一電腦可讀媒體中,該電腦可讀媒體可指導電腦、其他可程式化資料處理裝置或其他器件以特定方式起作用,以使得儲存於該電腦可讀媒體中之指令產生一製造物件,該製造物件包括實施該或該等流程圖及/或方塊圖區塊中所指定之功能/動作之指令。
該等電腦程式指令亦可載入至電腦、其他可程式化資料處理裝置或其他器件上,以使一系列操作步驟在該電腦、其他可程式化裝置或其他器件上執行以產生一電腦實施處理程序,使得在該電腦或其他可程式化裝置上執行之指令提供用於實施該或該等流程圖及/或方塊圖區塊中所指定之功能/動作之處理程序。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例的系統、方法及電腦程式產品之可能實施的架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示程式碼之模組、區段或部分,其包含用於實施指定邏輯功能的一或多個可執行指令。亦應注意,在一些替代實施中,區塊中所註明之功能可能不以圖中所註明之次序發生。舉例而言,事實上,視所涉及之功能性而定,連續地展示之兩個區塊可能實質上同時地執行,或該等區塊有時可能以相反次序執行。亦將注意,方塊圖及/或流程圖說明之每一區塊及方塊圖及/或流程圖說明中之區塊的組合可藉由執行指定功能或動作之基於硬體之專用系統來實施,或藉由專用硬體與電腦指令之組合來實施。
前文描述已藉由例示性及非限制性實例來提供對執行本發明之實施例之發明者目前所預期之最佳技術的充分及資訊性描述。然而,當結合隨附圖式及附加申請專利範圍閱讀時,鑒於前文描述,各種修改及調適對於熟習此項技術者將變得顯而易見。對本發明之教示之所有此等及類似修改仍將屬於本發明之範疇。
此外,本發明之例示性實施例之一些特徵可在無其他特徵之相應使用的情況下有利地使用。因而,前文描述應視為僅說明本發明之實施例之原理,且並非其限制。
100...用戶端
101...處理器
102...電腦程式
103...記憶體
104...鏈路配接器
105...輸送時間
106...輸送延遲
107...時脈偏移
109...時脈
200...伺服器
201...處理器
202...電腦程式
203...記憶體
204...鏈路配接器
209...時脈
300...實體鏈路
310...網路
310-1...位元組
310-2...位元組
310-3...位元組
310-4...位元組
A...用戶端節點
B...伺服器節點
圖1描繪一現有時戳交換方法;
圖2描繪展示兩個網路節點之間的通信之硬體方塊圖;
圖3說明用於在正常行為下執行時脈偏移測量之例示性協定;
圖4說明用於在用戶端逾時時執行時脈偏移測量之例示性協定;
圖5及圖6說明用於在伺服器逾時時執行時脈偏移測量之例示性協定;
圖7為在正常行為下之用戶端狀態及動作的圖;
圖8為在例外行為下之用戶端狀態及動作的圖;
圖9為在正常行為下之伺服器狀態及動作的圖;
圖10為在例外行為下之伺服器狀態及動作的圖;及
圖11為用於執行時脈偏移測量之例示性流程圖。
(無元件符號說明)
Claims (21)
- 一種在一網路節點上執行之方法,其包含:執行與另一網路節點之複數次含有單一位元組有效負載(payload)之時序訊息之乒乓交換,其中該等單一位元組之值對於該等乒乓交換為不同的,且其中每一交換之該等單一位元組之值之間存在一預定之差;擷取並儲存在該網路節點上執行之該複數次交換中之每一者的第一時戳;在該執行該複數次乒乓交換完成之後從該另一網路節點接收第二時戳,該等第二時戳對應於該複數次乒乓交換中每一者;及基於該等第一時戳及第二時戳判定時脈偏移。
- 如請求項1之方法,其中判定時脈偏移進一步包含至少部分地基於該等第一及第二時戳來測量該等網路節點之間的複數個輸送時間,及至少基於該等輸送時間來判定該網路節點之時脈偏移。
- 如請求項2之方法,其中該網路節點包含一用戶端且該另一網路節點包含一伺服器。
- 如請求項1之方法,其進一步包含在該等乒乓交換中之每一者之間修改該等單一位元組之該等值以建立該預定之差。
- 如請求項1之方法,其進一步包含回應於接收含有一單一位元組資料有效負載之一時序訊息而將所有該等所儲存之時戳傳輸至該另一網路節點,該單一位元組資料有 效負載於該單一位元組中具有一預定值且該預定值指示該複數次乒乓交換之一集合之完成。
- 如請求項1之方法,其進一步包含回應於在一預定時間段期間未接收到一含有一單一位元組資料有效負載之時序訊息而判定已發生一逾時,及將該單一位元組中之具有指示該逾時之一預定值之一含有一單一位元組資料有效負載之時序訊息傳輸至該另一網路節點。
- 如請求項6之方法,其中存在預定數目之該複數次乒乓交換,該逾時發生在小於該預定數目次交換發生的情況下,且該方法進一步包含以下操作中之一者:將該等第一時戳傳輸至該另一網路節點;或等待自該另一網路節點接收在該另一網路節點上執行之該複數次乒乓交換中之每一者的第二時戳。
- 如請求項1之方法,其中在每一乒乓交換期間或在每一乒乓交換之間修改該等單一位元組之該等值。
- 一種網路節點,其包含:一處理器,其經組態以致使該網路節點執行與另一網路節點之複數次含有單一位元組有效負載(payload)之時序訊息之乒乓交換,其中該等單一位元組之值對於該等乒乓交換為不同的,且其中每一交換之該等單一位元組之值之間具有一預定之差,該處理器經組態以致使該網路節點擷取並儲存在該網路節點上執行之該複數次交換中之每一者的第一時戳,致使該網路節點在該執行該複數次乒乓交換完成之後從該另一網路節點接收第二時戳,該等第 二時戳對應於該複數次乒乓交換中每一者,及致使該網路節點基於該等第一時戳及第二時戳判定時脈偏移。
- 如請求項9之網路節點,其中該處理器進一步經組態以致使當該網路節點判定時脈偏移時至少部分地基於該等第一及第二時戳來測量該等網路節點之間的複數個輸送時間,及至少基於該等輸送時間來判定該網路節點之時脈偏移。
- 如請求項10之網路節點,其中該網路節點包含一用戶端且該另一網路節點包含一伺服器。
- 如請求項9之網路節點,其中該處理器進一步經組態以致使該網路節點在該等交換中之每一者之間修改該等單一位元組之該等值以建立該預定之差。
- 如請求項9之網路節點,其中該處理器進一步經組態以致使該網路節點回應於接收含有一單一位元組資料有效負載之一時序訊息而將所有該等所儲存之時戳傳輸至該另一網路節點,該單一位元組資料有效負載於該單一位元組中具有一預定值且該預定值指示該複數次乒乓交換之一集合之完成。
- 如請求項9之網路節點,其中該處理器進一步經組態致使該網路節點回應於在一預定時間段期間未接收到一含有一單一位元組資料有效負載之時序訊息而判定已發生一逾時,及將該單一位元組中之具有指示該逾時之一預定值之一含有一單一位元組資料有效負載之時序訊息傳輸至該另一網路節點。
- 如請求項14之網路節點,其中存在預定數目之該複數次乒乓交換,該逾時發生在小於該預定數目次交換發生的情況下,且該網路節點進一步經組態以執行以下操作中之一者:將該等第一時戳傳輸至該另一網路節點;或等待自該另一網路節點接收在該另一網路節點上執行之該複數次乒乓交換中之每一者的第二時戳。
- 如請求項9之網路節點,其中該處理器進一步經組態以致使該網路節點在每一乒乓交換期間或在每一乒乓交換之間修改該等單一位元組之該等值。
- 一種在一網路節點上執行之方法,其包含:從另一網路節點接收含有單一位元組資料有效負載(payload)之一時序訊息集合;擷取並保存該時序訊息集合中每一者的到達時戳;回應於該接收,將一相應的時序訊息集合發送至該另一網路節點,該相應的時序訊息集合與相應的接收時序訊息含有一相同的單一位元組資料有效負載,其中接收一時序訊息及發送一時序訊息形成一乒乓交換,且其中每一交換之該等單一位元組之值之間存在一預定之差;及回應於接收時序訊號之該集合及發送該時序訊號之相應集合之完成而將該等時戳發送至至少該另一節點。
- 如請求項17之方法,其進一步包含藉由判定一時序訊息來判定時序訊息之該集合之完成,該時序訊息包含於該單一位元組中具有一預定數值之一單一位元組有效負載。
- 一種非暫態電腦可讀取媒體,其具有指令以致使一電腦執行請求項17之方法。
- 一種網路節點,其包含:一處理器,其經組態以致使該網路節點從另一網路節點接收含有單一位元組資料有效負載(payload)之一時序訊息集合,致使該網路節點擷取並保存該時序訊息集合中每一者的到達時戳,致使該網路節點回應於該接收,將一相應的時序訊息集合發送至該另一網路節點,該相應的時序訊息集合與相應的接收時序訊息含有一相同的單一位元組資料有效負載,其中接收一時序訊息及發送一時序訊息形成一乒乓交換,且其中每一交換之該等單一位元組之值之間存在一預定之差,及致使該網路節點回應於接收時序訊號之該集合及發送該時序訊號之相應集合之完成而將該等時戳發送至至少該另一節點。
- 如請求項20之網路節點,其中該處理器進一步經組態以致使該網路節點藉由判定一時序訊息來判定時序訊息之該集合之完成,該時序訊息包含於該單一位元組中具有一預定數值之一單一位元組有效負載。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/610,430 US8533355B2 (en) | 2009-11-02 | 2009-11-02 | Techniques for improved clock offset measuring |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201132095A TW201132095A (en) | 2011-09-16 |
TWI497970B true TWI497970B (zh) | 2015-08-21 |
Family
ID=43922478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099137673A TWI497970B (zh) | 2009-11-02 | 2010-11-02 | 用於改良之時脈偏移測量之技術 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8533355B2 (zh) |
JP (1) | JP5669853B2 (zh) |
CN (1) | CN102597793A (zh) |
DE (1) | DE112010004237B4 (zh) |
GB (1) | GB2486376B (zh) |
TW (1) | TWI497970B (zh) |
WO (1) | WO2011053544A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8139489B2 (en) * | 2008-08-06 | 2012-03-20 | International Business Machines Corporation | Robust jitter-free remote clock offset measuring method |
US8533355B2 (en) | 2009-11-02 | 2013-09-10 | International Business Machines Corporation | Techniques for improved clock offset measuring |
US9100277B2 (en) * | 2012-08-28 | 2015-08-04 | Alcatel Lucent | Client credentials data structure and method of employing the same |
US9916585B2 (en) | 2013-03-12 | 2018-03-13 | Mastercard International Incorporated | Methods and systems for generating a transaction lifecycle output for a payment card transaction |
EP3089386A1 (en) * | 2015-04-29 | 2016-11-02 | ABB Technology AG | Method, system and device for clock synchronization over time-varying and lossy networks |
US10718870B2 (en) * | 2017-05-12 | 2020-07-21 | Iposi, Inc. | Internet-based time and frequency recovery for position fixing of GNSS receiver |
EP3659277A1 (en) * | 2017-07-25 | 2020-06-03 | Telefonaktiebolaget LM Ericsson (publ.) | Methods, apparatus and computer-readable media for synchronization over an optical network |
CN111757391B (zh) * | 2019-03-29 | 2024-04-12 | 华为技术有限公司 | 一种通信方法及装置 |
CN110445848B (zh) * | 2019-07-22 | 2023-02-24 | 创新先进技术有限公司 | 用于事务处理的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0697774A1 (en) * | 1994-08-15 | 1996-02-21 | Hewlett-Packard Company | Clock offset estimation |
EP1088426B1 (en) * | 1998-06-05 | 2004-02-18 | Nokia Corporation | Synchronization of atm-based network system using variable bit rate atm adaptation layer protocols |
TW200926660A (en) * | 2007-08-22 | 2009-06-16 | Koninkl Philips Electronics Nv | Synchronisation method |
CN101459502A (zh) * | 2007-12-13 | 2009-06-17 | 华为技术有限公司 | 一种网络时钟同步的方法与装置 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8004A (en) * | 1851-03-25 | Francis b | ||
US3023A (en) * | 1843-03-30 | peters | ||
CN1109695A (zh) * | 1993-05-10 | 1995-10-04 | 塔里根特公司 | 多媒体同步系统 |
US6167465A (en) * | 1998-05-20 | 2000-12-26 | Aureal Semiconductor, Inc. | System for managing multiple DMA connections between a peripheral device and a memory and performing real-time operations on data carried by a selected DMA connection |
US6662223B1 (en) | 1999-07-01 | 2003-12-09 | Cisco Technology, Inc. | Protocol to coordinate network end points to measure network latency |
US6898204B2 (en) * | 2000-04-07 | 2005-05-24 | Broadcom Corporation | Method of determining a collision between a plurality of transmitting stations in a frame-based communications network |
AU2001259868A1 (en) | 2000-05-18 | 2001-11-26 | Brix Networks, Inc. | Ip packet identification method and system for tcp connection and udp stream |
US6928473B1 (en) | 2000-09-26 | 2005-08-09 | Microsoft Corporation | Measuring network jitter on application packet flows |
US6957357B2 (en) | 2000-10-30 | 2005-10-18 | International Business Machines Corporation | Clock synchronization with removal of clock skews through network measurements in derivation of a convext hull |
US7194649B2 (en) | 2000-10-30 | 2007-03-20 | International Business Machines Corporation | Clock synchronization for network measurements with clock resets |
US7023816B2 (en) * | 2000-12-13 | 2006-04-04 | Safenet, Inc. | Method and system for time synchronization |
US7047435B2 (en) | 2000-12-19 | 2006-05-16 | Siemens Corporate Research, Inc. | System and method for clock-synchronization in distributed systems |
US7200158B2 (en) * | 2002-06-24 | 2007-04-03 | Honeywell International | Clock synchronizing method over fault-tolerant Ethernet |
US7103541B2 (en) * | 2002-06-27 | 2006-09-05 | Microsoft Corporation | Microphone array signal enhancement using mixture models |
US7072432B2 (en) | 2002-07-05 | 2006-07-04 | Meshnetworks, Inc. | System and method for correcting the clock drift and maintaining the synchronization of low quality clocks in wireless networks |
US7257133B2 (en) | 2002-09-30 | 2007-08-14 | Lucent Technologies Inc. | Method for estimating offset for clocks at network elements |
WO2005002100A1 (en) | 2003-06-30 | 2005-01-06 | Koninklijke Philips Electronics N.V. | High accuracy network clock synchronization |
US7126800B2 (en) * | 2003-07-11 | 2006-10-24 | General Electric Company | Method and system for communications channel delay asymmetry compensation using global positioning systems |
US7590151B2 (en) | 2004-02-09 | 2009-09-15 | Semtech Corporation | Method and apparatus for aligning time references when separated by an unreliable data packet network |
JP2006227225A (ja) * | 2005-02-16 | 2006-08-31 | Alpine Electronics Inc | コンテンツ提供装置及び方法 |
US7359919B2 (en) | 2005-03-08 | 2008-04-15 | Microsoft Corporation | Reliable request-response messaging over a request-response transport |
GB2425234B (en) | 2005-04-15 | 2010-04-14 | Zarlink Semiconductor Inc | Method of recovering timing over a granular packet network |
US7103514B1 (en) | 2005-09-09 | 2006-09-05 | International Business Machines Corporation | Filter turning point detection |
US7688865B2 (en) | 2005-09-09 | 2010-03-30 | International Business Machines Corporation | Method and system for clock skew and offset estimation |
US7475272B2 (en) | 2005-09-09 | 2009-01-06 | International Business Machines Corporation | Method for calculating clock offset and skew |
US7643430B2 (en) | 2005-11-30 | 2010-01-05 | Cisco Technology, Inc. | Methods and apparatus for determining reverse path delay |
US8064484B2 (en) * | 2006-02-01 | 2011-11-22 | Symmetricom, Inc. | Enhanced clock control in packet networks |
US8327192B2 (en) | 2006-02-06 | 2012-12-04 | Intel Corporation | Method for memory integrity |
US7630397B2 (en) * | 2006-10-26 | 2009-12-08 | Transwitch Corporation | Efficient scalable implementation of VCAT/LCAS for SDH and PDH signals |
EP1936867B1 (en) | 2006-12-22 | 2013-02-20 | Corvil Limited | Delay measurements in network traffic |
EP1990938A1 (en) | 2007-05-10 | 2008-11-12 | Deutsche Thomson OHG | Method for synchronizing a clock of a network component with a clock of a further network component and network component therefor |
EP2023456A1 (en) * | 2007-08-06 | 2009-02-11 | Abb Research Ltd. | Estimating a time offset between stationary clocks |
EP2026485A1 (en) | 2007-08-17 | 2009-02-18 | Nokia Siemens Networks Oy | Method and device for a packet based clock recovery |
US8249049B2 (en) * | 2009-03-17 | 2012-08-21 | Cisco Technology, Inc. | Clock synchronization |
US8533355B2 (en) | 2009-11-02 | 2013-09-10 | International Business Machines Corporation | Techniques for improved clock offset measuring |
-
2009
- 2009-11-02 US US12/610,430 patent/US8533355B2/en not_active Expired - Fee Related
-
2010
- 2010-10-25 CN CN2010800481976A patent/CN102597793A/zh active Pending
- 2010-10-25 WO PCT/US2010/053913 patent/WO2011053544A1/en active Application Filing
- 2010-10-25 DE DE112010004237.3T patent/DE112010004237B4/de active Active
- 2010-10-25 GB GB1205460.7A patent/GB2486376B/en active Active
- 2010-10-25 JP JP2012536918A patent/JP5669853B2/ja active Active
- 2010-11-02 TW TW099137673A patent/TWI497970B/zh not_active IP Right Cessation
-
2012
- 2012-07-20 US US13/554,000 patent/US8788689B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0697774A1 (en) * | 1994-08-15 | 1996-02-21 | Hewlett-Packard Company | Clock offset estimation |
EP1088426B1 (en) * | 1998-06-05 | 2004-02-18 | Nokia Corporation | Synchronization of atm-based network system using variable bit rate atm adaptation layer protocols |
TW200926660A (en) * | 2007-08-22 | 2009-06-16 | Koninkl Philips Electronics Nv | Synchronisation method |
CN101459502A (zh) * | 2007-12-13 | 2009-06-17 | 华为技术有限公司 | 一种网络时钟同步的方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
GB201205460D0 (en) | 2012-05-09 |
US8533355B2 (en) | 2013-09-10 |
JP5669853B2 (ja) | 2015-02-18 |
CN102597793A (zh) | 2012-07-18 |
US8788689B2 (en) | 2014-07-22 |
GB2486376A (en) | 2012-06-13 |
DE112010004237T5 (de) | 2012-12-20 |
JP2013509814A (ja) | 2013-03-14 |
GB2486376B (en) | 2018-06-27 |
WO2011053544A1 (en) | 2011-05-05 |
DE112010004237B4 (de) | 2016-04-14 |
TW201132095A (en) | 2011-09-16 |
US20120284418A1 (en) | 2012-11-08 |
US20110106968A1 (en) | 2011-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI497970B (zh) | 用於改良之時脈偏移測量之技術 | |
US11438544B2 (en) | Image transmission device and method including an image data receiver and a processor | |
US10742555B1 (en) | Network congestion detection and resolution | |
JP5079018B2 (ja) | タイミング・ネットワークの処理装置の同期を促進するためのメッセージを交換する方法、システム、およびコンピュータ・プログラム | |
US9946677B2 (en) | Managing single-wire communications | |
CN104144088A (zh) | 一种提高时延测量精度的网络时延测量方法 | |
TW201826853A (zh) | 藉由使用高準確度時戳輔助裝置於乙太網路之精密時間協定下的奈秒準確度 | |
CN109254941B (zh) | 基于fpga的串行信号时钟同步方法、串转并方法及装置 | |
US20150134864A1 (en) | Synchronisation of a system of distributed computers | |
CN112583529B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US10762013B2 (en) | Driver for network timing systems | |
CN115002047B (zh) | 一种远程直接数据存取方法、装置、设备以及存储介质 | |
CN103141050A (zh) | 快速通道互联系统中数据包重传方法、节点 | |
US6470031B1 (en) | Method and apparatus for accurate packet time stamping | |
CN115514682B (zh) | 一种数据传输方法、装置、设备及存储介质 | |
JP6670851B2 (ja) | ネットワークイベントタイマの最適化技術 | |
CN110445666B (zh) | 一种网络质量检测方法、装置及服务器 | |
WO2016196486A1 (en) | Systems and methods for improved trivial file transfer protocol | |
WO2017036286A1 (zh) | 测量远端时间戳单位的方法和装置 | |
CN113300874A (zh) | 网络性能检测系统及方法 | |
WO2011160489A1 (zh) | 板间信息传递方法和装置 | |
WO2020132834A1 (zh) | 一种打戳处理方法及装置 | |
WO2020062225A1 (zh) | 一种mac装置及时间点估算方法 | |
US12063287B1 (en) | Methods, systems, and computer readable media for determining an internal time of a time-sensitive networking (TSN) network card | |
JP2015198399A (ja) | 通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |