KR20130018306A - 패킷 교환 방식의 통신 네트워크에서 패킷의 누적 체류 시간의 업데이트 - Google Patents

패킷 교환 방식의 통신 네트워크에서 패킷의 누적 체류 시간의 업데이트 Download PDF

Info

Publication number
KR20130018306A
KR20130018306A KR1020127030438A KR20127030438A KR20130018306A KR 20130018306 A KR20130018306 A KR 20130018306A KR 1020127030438 A KR1020127030438 A KR 1020127030438A KR 20127030438 A KR20127030438 A KR 20127030438A KR 20130018306 A KR20130018306 A KR 20130018306A
Authority
KR
South Korea
Prior art keywords
packet
virtual
exit
node
phy
Prior art date
Application number
KR1020127030438A
Other languages
English (en)
Other versions
KR101413506B1 (ko
Inventor
루이지 론케티
리카르도 제멜리
조르지오 카자니가
카를로 코스탄티니
Original Assignee
알까뗄 루슨트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알까뗄 루슨트 filed Critical 알까뗄 루슨트
Publication of KR20130018306A publication Critical patent/KR20130018306A/ko
Application granted granted Critical
Publication of KR101413506B1 publication Critical patent/KR101413506B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0685Clock or time synchronisation in a node; Intranode synchronisation
    • H04J3/0697Synchronisation in a packet node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0858One way delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0682Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

패킷 교환 방식의 통신 네트워크의 노드에서 수신된 동기화 패킷의 누적 체류 시간을 업데이트하기 위한 방법이 개시된다. 누적 체류 시간은 패킷을 생성한 다른 노드와 노드 사이에 개재된 노드들에서 패킷의 체류 시간들의 누적 합과 동일하다. 노드는 입구 회로와 출구 회로를 포함한다. 방법은: 입구 회로로부터의 패킷을 출구 회로에서 수신하는 단계; 출구 회로의 타임스탬프 생성기에서, 타임스탬프를 생성하는 단계; 출구 회로에서, 타임스탬프에 기초하고 타임스탬프 생성기의 다운스트림에 위치된 버퍼에서의 버퍼링으로 인해 패킷에 의해 겪게 될 추정된 가변 지연에 기초하여 가상 타임스탬프를 계산하는 단계; 및 출구 회로에서, 패킷을 또 다른 노드로 송신하기 전에, 누적 체류 시간을 업데이트하기 위해 가상 타임스탬프를 이용하는 단계를 포함한다.

Description

패킷 교환 방식의 통신 네트워크에서 패킷의 누적 체류 시간의 업데이트{UPDATE OF A CUMULATIVE RESIDENCE TIME OF A PACKET IN A PACKET-SWITCHED COMMUNICATION NETWORK}
본 발명은 일반적으로 통신 네트워크들의 분야에 관한 것이다. 특히, 본 발명은 패킷 교환 방식의 통신 네트워크를 통해 송신된 패킷의 누적 체류 시간의 업데이트에 관한 것이다.
패킷 교환 방식의 통신 네트워크에서, 마스터 노드(master node)는 하나 또는 그 이상의 슬레이브 노드들(slave nodes)로 동기화 프로토콜에 따라 포맷된 동기화 정보를 보낼 수 있다. 특히, 마스터 노드는 일반적으로 그의 로컬 클록(주파수 및/또는 하루의 시간)과 관련된 동기화 정보를 생성하고 이러한 정보를 동기화 패킷들 내에서 슬레이브 노드들로 보낸다. 동기화 정보가 슬레이브 노드들에서 한번 수신되면, 이는 슬레이브 노드들이 그들의 각각의 클록들의 주파수 및/또는 하루의 시간을 마스터 노드의 로컬 클록의 것으로 동기화시키는 것을 허용한다.
공지된 동기화 프로토콜들의 예들은 "Network Time Protocol(NTP)", 또는 "Precision Time Protocol(PTP)"로 알려지고 IEEE Instrumentation and Measurements Society에 의한 2008년 7월 24일의 "IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurements and Control Systems"라는 문서에서 정의된 IEEE 1588TM-2008 프로토콜이다.
IEEE 1588TM-2008 프로토콜에 따르면(상기 인용된 문서의, 챕터 6, 단락 6.6.3, 32-34쪽을 참조), 마스터 노드는 Sync 패킷을 슬레이브 노드로 보내고, 마스터 노드가 Sync 패킷을 보낸 시간을 나타내는 제 1 타임스탬프(t1)를 생성한다. 소위 "원스텝 클록(one-step clock)" 메커니즘에 따라, 제 1 타임스탬프(t1)는 Sync 패킷 자체 내에서 슬레이브 노드로 보내진다. 그렇지 않다면, 소위 "투스텝 클록(two-step clock)" 메커니즘에 따라, 제 1 타임스탬프(t1)는 마스터 노드가 Sync 패킷 후에 슬레이브 노드로 보내는 Follow-Up 패킷 내에서 슬레이브 노드로 보내진다. 슬레이브 노드는 차례로 Sync 패킷을 수신하고, 슬레이브 노드가 Sync 패킷을 수신하는 시간을 나타내는 제 2 타임스탬프(t2)를 생성한다. 슬레이브 노드는 이후 마스터 노드에 Delay_req 패킷을 보내고, 슬레이브 노드가 이러한 패킷을 보내는 시간을 나타내는 제 3 타임스탬프(t3)를 생성한다. 마스터 노드는 Delay_Req 패킷을 수신하고, 이러한 패킷을 수신하는 시간을 나타내는 제 4 타임스탬프(t4)를 생성하며, 차례로 Delay_Resp 패킷 내의 제 4 타임스탬프(t4)를 슬레이브 노드로 보낸다.
상술된 패킷 교환의 마지막에서, 4개의 타임스탬프들(t1, t2, t3, t4)이 슬레이브 노드에서 사용가능하다. 상술된 패킷 교환은 일반적으로, 주기적으로 반복된다. 4개의 타임스탬프들(t1, t2, t3, t4)을 이용하는 것에 의해, 슬레이브 노드는 그의 로컬 클록의 주파수 및 하루의 시간을 마스터 노드의 것들로 동기화시킬 수 있다.
패킷 교환 방식의 네트워크, 예를 들면 이더넷(Ethernet) 네트워크를 통해 운송된 패킷들은, 통상적으로 네트워크 트래픽 조건들에 의존한 지연 편차들(delay variations)에 의해 영향을 받는다. 실제로, 패킷 교환 방식의 네트워크 노드들은 선험적으로 예측불가능한 가변 지연들을 생성하는 디바이스들을 포함한다.
예를 들어, 패킷 교환 방식의 네트워크의 노드에서, 각 패킷은 입구 물리 인터페이스(ingress physical interface)에 의해 수신되고, 이후 OSI 모델의 "Medium Access Control(MAC)" 층의 입구 FIFO 버퍼에 저장된다. 패킷은 이후 노드 내에서 처리된다. 다음, 패킷이 MAC 층의 출구 FIFO 버퍼에 저장되고 이후 출구 물리 인터페이스(egress physical interface)에 의해 송신된다. FIFO 버퍼들은 트래픽 우선화 메커니즘들을 가지지 않는다. 따라서, 패킷이 FIFO 버퍼들에 예측불가능한 시간동안 저장되고, 이후 노드 내에서 예측불가능한 체류 시간을 경험한다.
상기 고려사항들은 데이터 패킷들과 동기화 패킷들에 대하여 모두 유효하다. 동기화 패킷들에 관하여는, 그들이 슬레이브 노드들이 마스터 노드에 의해 생성된 동기화 정보를 허용가능한 정밀성으로 회복시키는 것을 막고, 따라서 마스터 노드의 로컬 클록으로 그들의 클록을 동기화하는 것을 막기 때문에, 예측불가능한 지연 편차들이 특히 중요하다.
IEEE 1588TM-2008 프로토콜은 패킷 교환 방식의 네트워크의 각 노드에서 "투명한 클록(transparent clock)" 메커니즘(상기 인용된 문서의 챕터 6, 단략 6.5.4를 참조)을 정의한다. 이러한 메커니즘은 노드 내의 동기화 패킷들의(그리고, 특히, Sync 및 Delay_Req 패킷들의) 체류 시간을 측정하는 것을 허용한다. 이러한 방식으로, 패킷 교환 방식의 네트워크의 노드들 내의 동기화 패킷들의 체류 시간들을 고려하고, 또한 관련된 지연 편차들을 고려하는 것에 의해, 각 슬레이브 노드가 동기화를 회복할 수 있다. 실제로, 동기화 패킷의 수신시, 노드는 입구 타임스탬프를 생성하고, 노드가 패킷들을 송신할 때는 출구 타임스탬프를 생성한다. 노드 내의 동기화 패킷의 체류 시간은 이후 출구 타임스탬프와 입구 타임스탬프 사이의 차이로서 계산된다. 상기 언급된 원스텝 클록 메커니즘에 따라, IEEE 1588TM-2008 프로토콜은 동기화 패킷이 노드에 의해 전달되기 전에 동기화 패킷 자체의 교정 필드(Correction Field)의 콘텐트를 업데이트하기 위해 체류 시간을 이용하는 것을 제공한다. 그렇지 않다면, 상기 언급된 투스텝 클록 메커니즘에 따라, IEEE 1588TM-2008 프로토콜은 동기화 패킷과 연관된 후속 패킷(Follow_Up 패킷 또는 Delay_Resp 패킷)의 교정 필드의 콘텐트를 업데이트하기 위해 동기화 패킷을 전달하고 그의 체류 시간을 이용하는 것을 제공한다.
체류 시간의 계산은 입구 타임스탬프가 동기화 패킷이 노드의 입구 물리 인터페이스에서 수신될 때 정확하게 생성되고, 출구 타임스탬프는 동기화 패킷이 노드의 출구 물리 인터페이스에 의해 송신될 때 정확하게 생성된다는 사실에 기반한다. 따라서, 노드의 입구 및 출구 물리 인터페이스들이 각각의 타임스탬프 생성기들과 협력하기 위해 적절하게 될 필요가 있다.
그러나, 불리하게도, 현재의 패킷 교환 방식의 네트워크들의 노드들의 대부분은 타임스탬프 생성기들과 협력하기 위해 적절한 물리 인터페이스들을 제공하지 않는다.
원칙적으로, 노드 내의 동기화 패킷의 체류 시간은, 노드의 입구와 출구 물리 인터페이스들에서가 아닌, 노드에 포함된(즉, 입구 물리 인터페이스와 출구 물리 인터페이스 사이에 위치된) 두 개의 다른 디바이스들에서 생성되는 두 개의 타임스탬프들 사이의 차이로서 계산될 수 있다.
그러나, 불리하게도, 이렇게 계산된 체류 시간은 아마도 입구 및 출구 물리 인터페이스들과 타임스탬프들이 생성되는 디바이스들 사이에 개재된 구성성분들(예를 들면, MAC 층의 입구 및 출구 FIFO 버퍼들)에 의해 도입된 지연들은 고려하지 않을 것이다. 상기 언급된 바와 같이, 이러한 지연들은 노드의 트래픽 조건들에 의존하여 예측불가능한 방식으로 변동한다. 따라서, 가변적이고 예측불가능한 에러에 의해 불리하게 영향을 받을 것이므로, 이러한 경우에 계산된 체류 시간은 정밀하지 않을 것이다.
따라서, 발명자들은 패킷 교환 방식의 통신 네트워크의 노드에서, 앞서 서술된 단점들을 극복하는 수신된 패킷(특히, 동기화 패킷, 그러나 이에 배타적이지는 않은)의 누적 체류 시간을 업데이트하기 위한 방법을 제공하는 문제를 다루었다.
특히, 발명자들은 패킷 교환 방식의 통신 네트워크의 노드에서, 입구 및 출구 타임스탬프들이 입구 및 출구 물리 인터페이스들에서 반드시 생성되는 것은 아니고, 동시에 정밀한 누적 체류 시간을 제공하는, 수신된 패킷(특히, 동기화 패킷, 그러나 이에 배타적이지는 않은)의 누적 체류 시간을 업데이트하기 위한 방법을 제공하는 문제를 다루었다.
본 명세서 및 청구항들에서, "입구 물리 타임스탬프"와 "출구 물리 타임스탬프"라는 표현들은 노드의 입구/출구 물리 인터페이스(즉, OSI 모델의 계층 1(Layer 1)에서 동작하는 인터페이스)와 협력하기에 적절한 타임스탬프 생성기에 의해 생성된 타임스탬프를 나타낼 것이다. 또한, "입구 논리 타임스탬프"와 "출구 논리 타임스탬프"라는 표현은 OSI 모델의 계층 1보다 높은 계층(예를 들면, 계층 2)에서 패킷들을 처리하는 노드의 디바이스들과 협력하기에 적절한 타임스탬프 생성기에 의해 생성된 타임스탬프를 나타낼 것이다.
또한, "가상(virtual) 논리/물리 타임스탬프"라는 표현은 계산 모듈에 의해 계산된 논리/물리 타임스탬프의 추정치를 나타낼 것이다.
제 1 양태에 따라, 본 발명은 패킷 교환 방식의 통신 네트워크의 노드에서 수신된 동기화 패킷의 누적 체류 시간을 업데이트하기 위한 방법을 제공하며, 누적 체류 시간은 동기화 패킷을 생성한 다른 노드와 노드 사이에 개재된 패킷 교환 방식의 네트워크의 노드들에서의 동기화 패킷의 체류 시간들의 누적 합과 동일하고, 노드는 동기화 패킷을 수신하도록 구성된 입구 회로와 동기화 패킷을 패킷 교환 방식의 통신 네트워크의 또 다른 노드로 송신하도록 구성된 출구 회로를 포함하며, 상기 방법은:
a) 입구 회로로부터의 동기화 패킷을 출구 회로에서 수신하는 단계;
b) 출구 회로의 출구 타임스탬프 생성기에서, 출구 타임스탬프를 생성하는 단계;
c) 출구 회로에서, 출구 타임스탬프에 기초하고, 출구 타임스탬프 생성기의 다운스트림에 위치된 버퍼에서의 버퍼링으로 인해 동기화 패킷에 의해 겪게 될 추정된 가변 지연에 기초하여, 가상 타임스탬프를 계산하는 단계;
d) 출구 회로에서, 동기화 패킷을 또 다른 노드로 송신하기 전에, 누적 체류 시간을 업데이트하기 위해 가상 타임스탬프를 이용하는 단계를 포함한다.
바람직하게는, 단계 b)는 출구 논리 타임스탬프를 생성하는 것을 포함한다.
바람직하게는, 단계 c)는 출구 논리 타임스탬프에 기초하고, 출구 회로에 포함되고 출구 타임스탬프 생성기의 다운스트림에 위치된 출구 버퍼에서의 버퍼링으로 인해 동기화 패킷에 의해 겪게 될 추정된 가변 지연에 기초하여, 가상 출구 물리 타임스탬프를 계산하는 것을 포함한다.
바람직하게는, 단계 c)는 가상 출구 물리 타임스탬프에 기초하고, 또 다른 노드의 다른 입구 회로에 포함된 입구 버퍼의 버퍼링으로 인해 동기화 패킷에 의해 겪게 될 추정된 가변 지연에 기초하여, 가상 입구 논리 타임스탬프를 계산하는 것을 더 포함한다.
바람직하게는, 단계 b)는 출구 물리 타임스탬프를 생성하는 것을 포함한다.
바람직하게는, 단계 c)는 출구 물리 타임스탬프에 기초하고, 또 다른 노드의 다른 입구 회로에 포함된 입구 버퍼의 버퍼링으로 인해 동기화 패킷에 의해 겪어질 추정된 가변 지연에 기초하여, 가상 입구 논리 타임스탬프를 계산하는 것을 포함한다.
바람직하게는, 방법은, 단계 a) 전에, 입구 회로가 동기화 패킷을 수신할 때, 입구 회로에서 입구 타임스탬프를 생성하는 것을 더 포함한다.
바람직하게는, 방법은, 단계 a) 전에, 입구 회로의 동기화 패킷에 입구 타임스탬프를 기록하는 것을 더 포함한다.
바람직하게는, 단계 d)는 동기화 패킷으로부터 입구 타임스탬프를 판독하고, 가상 타임스탬프와 입구 타임스탬프 사이의 차이로서 체류 시간을 계산하고, 체류 시간을 누적 체류 시간에 더하는 것에 의해 누적 체류 시간을 업데이트하는 것을 포함한다.
바람직하게는, 방법은, 단계 a) 전에, 입구 회로의 누적 체류 시간으로부터 입구 타임스탬프를 빼는 것을 더 포함한다.
바람직하게는, 단계 d)는 누적 체류 시간에 가상 타임스탬프를 더하는 것을 포함한다.
바람직하게는, 단계 d)는 또 다른 노드로 그것을 송신하기 전에 동기화 패킷에 업데이트된 누적 체류 시간을 기록하는 것을 또한 포함한다.
본 발명의 제 2 양태에 따라, 본 발명은 프로그램이 컴퓨터 상에서 동작할 때, 상기에서 서술된 바와 같은 방법의 단계들을 수행하는 컴퓨터-수행가능한 명령들을 포함하는 컴퓨터 프로그램 제품을 제공한다.
본 발명의 제 3 양태에 따라, 본 발명은 패킷 교환 방식의 통신 네트워크를 위한 노드를 제공하며, 노드는:
- 동기화 패킷을 생성한 다른 노드와 노드 사이에 개재된 패킷 교환 방식의 네트워크의 노드들의 동기화 패킷의 체류 시간들의 누적 합과 동일한 누적 체류 시간과 연관된 동기화 패킷을 수신하도록 구성된 입구 회로와;
- 입구 회로로부터 동기화 패킷을 수신하고 패킷 교환 방식의 통신 네트워크의 또 다른 노드로 송신하도록 구성된 출구 회로를 포함하며, 상기 출구 회로는:
- 출구 타임스탬프를 생성하도록 구성된 출구 타임스탬프 생성기와;
- 출구 타임스탬프에 기초하고, 출구 타임스탬프 생성기의 다운스트림에 위치된 버퍼에서의 버퍼링으로 인해 동기화 패킷에 의해 겪게 될 추정된 가변 지연에 기초하여, 가상 타임스탬프를 계산하도록 구성된 계산 모듈을 포함하며,
출구 회로는 또한 누적 체류 시간을 업데이트하기 위해 가상 타임스탬프를 사용하도록 구성된다.
본 발명의 제 4 양태에 따라, 본 발명은 상기에서 서술된 바와 같은 노드를 포함하는 패킷 교환 방식의 통신 네트워크를 제공한다.
패킷 교환 방식의 통신 네트워크에서, 입구 및 출구 타임스탬프들이 입구 및 출구 물리 인터페이스들에서 생성될 필요가 없으며, 동시에 정밀한 누적 체류 시간을 제공하는, 수신된 패킷의 누적 체류 시간을 업데이트하기 위한 방법을 제공한다.
도 1은 본 발명의 제 1 실시예에 따른 패킷 교환 방식의 통신 네트워크의 노드의 블록도.
도 2a 및 도 2b는 본 발명의 제 1 실시예의 제 1 및 제 2 변형들에 따른, 도 1의 노드의 동작을 설명하는 흐름도들.
도 3a 및 도 3b는 도 1의 노드에 의해 수신된 동기화 패킷의 포맷을 개략적으로 도시한 도면들.
도 4는 도 1의 노드의 동작을 도시하는 3개의 시간도들.
도 5는 본 발명의 제 2 실시예에 따른 패킷 교환 방식의 통신 네트워크의 한 쌍의 노드들의 블록도.
도 6a 및 도 6b는 본 발명의 제 2 실시예의 제 1 및 제 2 변형들에 따른, 도 5의 한 쌍의 노드들의 동작을 도시하는 흐름도들.
도 7은 본 발명의 제 3 실시예에 따른 패킷 교환 방식의 통신 네트워크의 한 쌍의 노드들의 블록도.
도 8a 및 도 8b는 본 발명의 제 3 실시예의 제 1 및 제 2 변형들에 따른, 도 7의 한 쌍의 노드들의 동작을 도시하는 흐름도들.
첨부 도면들을 참조하여 판독될, 제한이 아닌 예로써 주어진, 다음의 상세한 설명을 읽음으로써 발명의 실시예들이 더 잘 이해될 것이다.
도 1은 본 발명의 제 1 실시예에 따른 패킷 교환 방식의 통신 네트워크의 노드(N)를 도시한다. 바람직하게는, 패킷 교환 방식의 통신 네트워크는 상기 언급된 IEEE 1588TM-2008 동기화 프로토콜을 지원하는 이더넷 네트워크이다.
노드(N)는 바람직하게는, 직렬로 연결된, 입구 물리 인터페이스(PHYin), 입구 버퍼(Bin) 및 입구 패킷 프로세서(PPin)를 차례로 포함하는 입구 회로(IC)를 포함한다. 입구 물리 인터페이스(PHYin)는 바람직하게는, 물리적 링크를 통해 패킷 교환 방식의 통신 네트워크의 다른 노드(도면들에는 도시되지 않음)와 연결된다. 노드(N)는 도 1에는 도시되지 않은, 입구 물리 인터페이스(PHYin)와 입구 패킷 프로세서(PPin) 사이에 개재된 다른 입구 블록들을 포함할 수 있다. 또한, 노드(N)는 바람직하게는, 직렬로 연결된, 출구 패킷 프로세서(PPeg), 출구 버퍼(Beg) 및 출구 물리 인터페이스(PHYeg)를 차례로 포함하는 출구 회로(EC)를 포함한다. 출구 물리 인터페이스(PHYeg)는 바람직하게는, 다른 물리적 링크를 통해 패킷 교환 방식의 통신 네트워크의 또 다른 노드(도면들에는 도시되지 않음)와 연결된다. 노드(N)는 도 1에는 도시되지 않은, 출구 패킷 프로세서(PPeg)와 출구 물리 인터페이스(PHYeg) 사이에 개재된 다른 출구 블록들을 포함할 수 있다.
바람직하게는, 노드(N)는 입구 회로(IC)와 출구 회로(EC) 사이에 개재된 다른 하드웨어 및/또는 소프트웨어 블록들을 더 포함한다. 이러한 블록들은 그들이 본 설명과 관련이 없으므로 도면들에는 도시되지 않는다.
바람직하게는, 입구 패킷 프로세서(PPin)와 출구 패킷 프로세서(PPeg)는 하나 또는 그 이상의 FPGA("Field Programmable Gate Array") 디바이스들 내에서, 예를 들면 노드(N)의 네트워크 프로세서(도 1에는 도시되지 않음) 내에서 구현된다.
입구 회로(IC)는 바람직하게 입구 타임스탬프 생성기(TSGin)를 포함하고, 출구 회로(EC)는 또한 바람직하게 출구 타임스탬프 생성기(TSGeg)를 포함한다. 본 발명의 제 1 실시예에 따라, 이하로 더욱 상세히 설명될 것과 같이, 입구 타임스탬프 생성기(TSGin)는 입구 물리 타임스탬프를 생성하기 위하여 입구 물리 인터페이스(PHYin)와 협력하기에 적절한 반면, 출구 타임스탬프 생성기(TSGeg)는 출구 논리 타임스탬프를 생성하기 위하여 출구 패킷 프로세서(PPeg)와 협력하기에 적절하다.
바람직하게는, 출구 회로(EC)는 또한 출구 패킷 프로세서(PPeg)와 출구 타임스탬프 생성기(TSGeg)에 연결된 계산 모듈(CM)을 포함한다. 바람직하게는, 계산 모듈(CM)은 FPGA 디바이스 내에서, 예를 들면 노드(N)의 네트워크 프로세서(도 1에는 도시되지 않음) 내에서 구현된다.
도 2a, 도 3a, 및 도 3b를 참조하여, 본 발명의 제 1 실시예의 제 1 변형에 따른 노드(N)의 동작이 이제 설명될 것이다.
노드(N)는 그의 입구 물리 인터페이스(PHYin)를 통해 그와 인접한 상기 언급된 다른 노드로부터 패킷들을 수신한다고 가정된다. 이러한 패킷들은 데이터 패킷들 및/또는 동기화 패킷들을 포함할 수 있다. 동기화 패킷들은 바람직하게 동기화 프로토콜, 예를 들면 IEEE 1588TM-2008 프로토콜에 따라 포맷된다.
특히, 단계(200)에서, 노드(N)의 입구 물리 인터페이스(PHYin)가 동기화 패킷(SP)을 수신한다. 동기화 패킷(SP)은 바람직하게 도 3a에 도시된 바와 같이 포맷된다. 바람직하게는, 동기화 패킷(SP)은 헤더(H-SP)와 본체(B-SP)를 포함한다.
바람직하게는, 본체(B-SP)는 타임스탬프(예를 들면, IEEE 1588TM-2008 프로토콜에 의해 제공된 타임스탬프(t1))를 포함하고, 본 설명과 관계가 없기 때문에 도 3a 및 도 3b에 도시되지 않는 다른 정보를 아마도 포함한다.
바람직하게는, 헤더(H-SP)는 조정 필드(AF)와, 본 설명과 관계가 없으므로 도 3a 및 도 3b에는 도시되지 않는 다른 필드들을 포함한다. 바람직하게는, 동기화 패킷(SP)이 IEEE 1588TM-2008 프로토콜 패킷이라면, 조정 필드(AF)는 "교정 필드(Correction Field)"이다. 동기화 패킷(SP)이 노드(N)에서 수신될 때, 조정 필드(AF)는 바람직하게는, 동기화 패킷(SP)을 생성한 노드와 노드(N) 사이에 개재된 패킷 교환 방식의 네트워크의 노드들의 동기화 패킷(SP)의 체류 시간들의 누적 합과 동일한 누적 체류 시간(CRT)을 포함한다.
동기화 패킷(SP)이 입구 물리 인터페이스(PHYin)에 의해 수신되자 마자, 실질적으로 동시에 입구 타임스탬프 생성기(TSGin)는 입구 물리 타임스탬프(TS(IN,PHY))를 생성한다(단계(201)). 이후, 입구 물리 인터페이스(PHYin)는 바람직하게 입구 물리 타임스탬프(TS(IN,PHY))를 동기화 패킷(SP)의 필드에 기록한다(단계(201a)). 바람직하게는, 필드는 헤더(H-SP)의 전용 필드(도 3a에는 도시되지 않음)이다.
동기화 패킷(SP)은 이후 입구 버퍼(Bin)에 저장된다(단계(202)). 이후, 바람직하게는, 동기화 패킷(SP)은 그를 처리하는 입구 패킷 프로세서(PPin)로 전달된다(단계(203)).
동기화 패킷(SP)은 이후 그를 처리하는 출구 패킷 프로세서(PPeg)에 도달한다(단계(204)). 상기 출구 패킷 프로세서(PPeg)는 도 1에 도시된 입구 패킷 프로세서(PPin)로부터 뿐만 아니라, 노드(N)에 포함된 다른 입구 패킷 프로세서들(도 1에 도시되지 않음)로부터도 패킷들을 수신한다는 것이 주의되어야 한다. 단계(204)동안, 출구 패킷 프로세서(PPeg)는 바람직하게는, 시퀀스 넘버(SN)를 동기화 패킷(SP)에 연관시키는데, 시퀀스 넘버(SN)는 패킷들이 출구 패킷 프로세서(PPeg)에서 수신되는 순서를 고려한다. 또한, 처리 동안, 출구 패킷 프로세서(PPeg)는 바람직하게 동기화 패킷(SP)으로부터 입구 물리 타임스탬프(TS(IN,PHY))를 판독한다(단계(204a)).
이후, 출구 타임스탬프 생성기(TSGeg)는 바람직하게 출구 논리 타임스탬프(TS(EG,LOG))를 생성한다(단계(205)). 계산 모듈(CM)은 이후 바람직하게는, 동기화 패킷(SP)이 출구 물리 인터페이스(PHYeg)에 의해 실제로 송신될 시간을 실질적으로 나타내는, 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))를 계산한다(단계(206)). 계산 모듈(CM)은 이후 바람직하게는, 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))와 입구 물리 타임스탬프(TS(IN,PHY)) 사이의 차이로서 체류 시간(RT)을 계산한다(단계(207)), 즉:
RT=VIRTUAL_TS(EG,PHY)-TS(IN,PHY). [2]
이후, 출구 패킷 프로세서(PPeg)는 바람직하게는, 도 3b에 도시된 바와 같이, 체류 시간(RT)을 더하는 것에 의해, 동기화 패킷(SP)의 헤더(H-SP)의 조정 필드(AF)에 포함된 누적 체류 시간(CRT)을 업데이트하기 위해 체류 시간(RT)을 사용한다(단계(208)).
이어서, 동기화 패킷(SP)이 출구 패킷 프로세서(PPeg)에 의해 출구 버퍼(Beg)로 전달되고 그곳에 저장된다(단계(209)). 이후, 동기화 패킷(SP)은, 노드(N)에 인접한 상기 언급된 또 다른 노드로 그를 송신하는, 출구 물리 인터페이스(PHYeg)로 전달된다(단계(210)).
이후로, 계산 모듈(CM)에 의해 단계(206)에서 수행된 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))의 계산이 상세히 설명될 것이다.
바람직하게는, 계산 모듈(CM)은 출구 버퍼(Beg)에 관련된 다수의 파라미터들을 알고 있다. 이러한 다수의 파라미터들은 바람직하게는 다음 파라미터들의 하나 또는 그 이상을 포함한다:
- 기록 비트 레이트(WR);
- 판독 비트 레이트(RR);
- 기록 입도(granularity)(WG), 즉, 출구 버퍼(Beg)에 병렬로 기록된 비트의 수;
- 판독 입도(RG), 즉, 출구 버퍼(Beg)로부터 병렬로 판독된 비트들의 수;
- 기록 컷-스루 지연시간(cut-through latency)(WC), 즉, 출구 버퍼(Beg)로 기록될 때 패킷들이 겪는 일정한 지연;
- 판독 컷-스루 지연시간(RC), 즉, 출구 버퍼(Beg)로부터 판독될 때 패킷들이 겪는 일정한 지연;
- 기록 비트 레이트(WR)와 판독 비트 레이트(RR) 사이의 차이를 고려하는 조정 팩터(A). 특히, 기록 비트 레이트(WR)와 판독 비트 레이트(RR)가 동일한 이상적인 경우에(예를 들면, 그들이 모두 동일한 PLL로 로크되는 경우에), A는 1과 동일하다. 그러나, 전형적으로, WR과 RR 사이의 차이는 +/- 200ppm이며, 따라서 A는 1보다 높다.
단계(206)동안, 계산 모듈(CM)은 바람직하게 다음 하위 단계들을 수행한다:
a) 동기화 패킷(SP)의 시퀀스 번호(SN)와 비트들의 수(L(SN))를 검출한다;
b) 다음 식에 의해, 동기화 패킷(SP)이 출구 버퍼(Beg)로 완전하게 기록될 시간(TT(SN))을 계산한다:
TT(SN)=TS(EG,LOG)+WC+WG x ceil(L(SN)/WG)/WR [3]
여기서 ceil(L(SN)/WG)는 L(SN)과 WG 사이의 비율보다 낮지 않은 가장 작은 정수를 나타낸다;
c) 다음 식에 의해, 동기화 패킷(SP)을 기록하는 동작은 고려하지 않고, 동기화 패킷(SP)이 기록되는 것을 시작하기 전에 출구 버퍼(Beg)에 이미 저장된 비트들을 판독하는 동작만을 고려하여 시간(TT(SN))에서의 출구 버퍼(Beg)의 필링 레벨(filling level)(FLb(SN))을 계산한다:
FLb(SN)=max{0,[FLa(SN-1)-A x RR x (TT(SN)-TT(SN-1))]} . [4]
FLa(SN-1)은 동기화 패킷(SP) 이전의 패킷(즉, SN-1과 동일한 시퀀스 번호를 갖는 패킷)이 출구 버퍼(Beg)로 완전하게 기록될 때, 그의 판독 컷-스루 지연시간(RC)을 또한 고려한 출구 버퍼(Beg)의 필링 레벨이다. max{·}라는 표시는 필링 레벨(FLb(SN))이 중괄호들에 포함된 것들 중 가장 큰 값과 동일하다는 것을 나타내며, TT(SN-1)은 동기화 패킷(SP) 이전의 패킷이 출구 버퍼(Beg)로 완전하게 기록된 시간이다. 따라서, 필링 레벨(FLa(SN-1))과 판독 비트 레이트(RR)가 출구 버퍼(Beg)가 완전하게 비워지는 시간 간격(TT(SN)-TT(SN-1))내에 있을 때 FLb(SN)는 0과 동일하다;
d) 다음 식에 의해 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))를 계산한다:
VIRTUAL_TS(EG,PHY)=TT(SN)+[RG x ceil(FLb(SN)/RG)/RR]+RC; [5]
e) 다음 식에 의해 동기화 패킷(SP)이 출구 버퍼(Beg)에 완전하게 기록될 때 출구 버퍼(Beg)의 필링 레벨(FLa(SN))을 계산한다:
FLa(SN)=FLb(SN)+RC x RR + L(SN). [6]
상기 식[5]에 따라 계산된 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))는 출구 버퍼(Beg) 내에 저장될 때 동기화 패킷(SP)에 의해 누적된 지연만을 고려한다. 식[5]는 예를 들면, 출구 패킷 프로세서(PPeg)와 출구 물리 인터페이스(PHYeg) 사이에 아마도 개재된 다른 블록들(도 1에는 도시되지 않음)에 의한 동기화 패킷(SP)의 처리로 인한, 다른 가능한 지연들은 고려하지 않는다. 두 방향들(TX 대 RX)에서 일정하고 상이한, 이러한 다른 가능한 지연들이 공지된다면, 그들은 IEEE 1588TM-2008 프로토콜에 의해 예견된 것과 같이 보상될 수 있다.
단계들(200-210)(상술된 단계(206)의 하위 단계들(a)-e))을 포함하는)은 바람직하게는, 노드(N)에서 수신된 각 동기화 패킷에 대해 반복된다. 데이터 패킷들의 경우에, 단계(206)의 하위 단계 d)와 단계들(207-208)은 바람직하게 생략된다.
유익하게, 본 발명의 제 1 실시예의 제 1 변형에 따른 방법은 노드(N)의 출구 물리 인터페이스(PHYeg)가 타임스탬프 생성기와 협력하기에 적절하지 않을 때 동기화 패킷(SP)의 체류 시간을 계산하는 것을 허용한다. 유익하게, 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))가 출구 물리 인터페이스(PHYeg)와 출구 타임스탬프가 생성되는 디바이스 사이에 개재된 구성성분들(즉, 출구 버퍼(Beg))에 의해 도입된 지연을 고려하기 때문에, 출구 타임스탬프는 출구 물리 인터페이스(PHYeg)의 업스트림에서 생성될 수 있다. 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))는 각 동기화 패킷에 대해 계산되고, 따라서 노드(N)에서의 현재의 트래픽 조건들에 따라 각 동기화 패킷에 대해 그의 값이 변화한다. 이는 동기화 패킷(SP)에 의해 경험된 가능한 지연 편차를 고려하는 것에 의한 정밀한 방식으로, 특히 MAC 층의 출구 버퍼 내에서, 동기화 패킷(SP)의 조정 필드(AF)를 업데이트하는 것을 허용하며, 이것은 도 4를 참조하여 이후로 상세히 설명된 예들로부터 명백해질 것이다.
도 4는 본 발명의 제 1 실시예의 제 1 변경에 따른 노드(N)의 동작을 도시하는 3개의 예시적인 시간도들을 도시한다. 도 4의 시간도들은 출구 패킷 프로세서(PPeg)의 입력(도 1에서 (a)로 표시됨), 출구 버퍼(Beg)의 입력(도 1에서 (b)로 표시됨), 및 출구 버퍼(Beg)의 출력(도 1에서 (c)로 표시됨)에 관한 것이다. 예로써, 도 4는 다수의 비트들(L(4))을 갖는 데이터 패킷(DP4)과 다수의 비트들(L(5))을 갖는 제 2 동기화 패킷(SP5)이 뒤따르는, 다수의 비트들(L(3))을 갖는 제 1 동기화 패킷(SP3)을 도시한다. 입구 물리 인터페이스(PHYin) 또는 도 1에 도시되지 않은 다른 입구 물리 인터페이스들을 통하여 노드(N)에서 패킷들(SP3, DP4, 및 SP5)이 수신될 수 있다.
패킷들(SP3, DP4, 및 SP5)이 출구 패킷 프로세서(PPeg)에서 수신될 때, 출구 패킷 프로세서(PPeg)는 바람직하게는, 그들을 각각의 연속적인 시퀀스 번호들, 즉, 3, 4, 및 5로 연관시킨다.
제 1 동기화 패킷(SP3)이 출구 패킷 프로세서(PPeg)에서 수신될 때(단계(204)), 출구 타임스탬프 생성기(TSGeg)는 출구 논리 타임스탬프(TS3(EG,LOG))를 생성한다(단계(205)). 이후, 단계(206)동안, 계산 모듈(CM)은:
a) 제 1 동기화 패킷(SP3)의 시퀀스 번호(SN=3)와 비트들의 수(L(3))를 검출한다;
b) 상기 식[3]에 의해, 시간(TT(3))을 계산한다, 즉:
TT(3)=TS3(EG,LOG)+WC+WG x ceil(L(3)/WG)/WR;
c) 상기 식[4]에 의해, 시간(TT(3))에서의 출구 버퍼(Beg)의 필링 레벨(FLb(3))을 계산하는데, 즉:
FLb(3)=max{0,[FLa(2)-A x RR x (TT(3)-TT(2))]},
여기서, FLa(2)은 제 1 동기화 패킷(SP3) 이전의 패킷(즉, 2와 동일한 시퀀스 번호를 갖는 패킷)이 출구 버퍼(Beg)로 완전하게 기록될 때의 출구 버퍼(Beg)의 필링 레벨이다. 다음에서, 간단화를 위해, FLb(3)는 0과 동일하다고, 즉, 제 1 동기화 패킷(SP3)이 출구 버퍼(Beg)로 완전하게 기록될 때, 다른 패킷들의 비트들은 출구 버퍼(Beg)에 존재하지 않는다고 가정된다;
d) 상기 식[5]에 의해 가상 출구 물리 타임스탬프(VIRTUAL_TS3(EG,PHY))를 계산한다, 즉:
VIRTUAL_TS3(EG,PHY)=TT(3)+[RG x ceil(FLb(3)/RG)/RR]+RC; 및
e) 상기 식[6]에 의해 제 1 동기화 패킷(SP3)이 출구 버퍼(Beg)로 완전하게 기록될 때 출구 버퍼(Beg)의 필링 레벨(FLa(3))을 계산한다, 즉:
FLa(3)=FLb(3)+RC x RR + L(3).
전에 가정된 바와 같이, 제 1 동기화 패킷(SP3)이 출구 버퍼(Beg)로 완전하게 기록될 때, 출구 버퍼(Beg)는 비게 된다. 따라서, 가상 출구 물리 타임스탬프(VIRTUAL_TS3(EG,PHY))는 기록 컷-스루 지연시간(WC), 판독 컷-스루 지연시간(RC) 및 제 1 동기화 패킷(SP3)을 출구 버퍼(Beg)로 기록하는데 필요한 시간 간격인, WG x ceil(L(3)/WG)/WR에만 의존한다.
단계(206)의 마지막에서, 계산 모듈(CM)은 상기 식[2]에 따라 체류 시간(RT3)을 계산한다(단계(207)). 체류 시간(RT3)은 이후 제 1 동기화 패킷(SP3)의 조정 필드(AF)의 콘텐트를 업데이트하는데 사용된다(단계(208)). 제 1 동기화 패킷(SP3)의 처리는 이후 도 2a에 도시된 단계들(209-210)에 따라 계속된다.
데이터 패킷(DP4)이 출구 패킷 프로세서(PPeg)에서 수신될 때(단계(204)), 출구 타임스탬프 생성기(TSGeg)는 출구 논리 타임스탬프(TS4(EG, LOG))를 생성한다(단계(205)). 이후, 단계(206)동안, 계산 모듈(CM)은:
a) 데이터 패킷(DP4)의 시퀀스 번호(SN=4)와 비트들의 수(L(4))를 검출한다;
b) 상기 식[3]에 의해, 시간(TT(4))을 계산한다, 즉:
TT(4)=TS4(EG,LOG)+WC+WG x ceil(L(4)/WG)/WR;
c) 상기 식[4]에 의해, 시간(TT(4))에서의 출구 버퍼(Beg)의 필링 레벨(FLb(4))을 계산한다, 즉:
FLb(4)=max{0,[FLa(3)-A x RR x (TT(4)-TT(3))]}.
하위 단계 d)는 바람직하게 생략되고;
e) 상기 식[5]에 의해 데이터 패킷(DP4)이 출구 버퍼(Beg)로 완전하게 기록될 때 출구 버퍼(Beg)의 필링 레벨(FLa(4))을 계산한다, 즉:
FLa(4)=FLb(4)+RC x RR + L(4).
단계(206)의 마지막에서, 계산 모듈(CM)은 단계(207)를 생략한다. 또한 단계(208)가 바람직하게 생략된다. 데이터 패킷(DP4)의 처리는 이후 도 2a에 도시된 다음 단계들(209-210)에 따라 계속된다.
제 2 동기화 패킷(SP5)이 출구 패킷 프로세서(PPeg)에서 수신될 때(단계(204)), 출구 타임스탬프 생성기(TSGeg)는 출구 논리 타임스탬프(TS5(EG,LOG))를 생성한다(단계(205)). 이후, 단계(206)동안, 계산 모듈(CM)은:
a) 제 2 동기화 패킷(SP5)의 시퀀스 번호(SN=5)와 비트들의 수(L(5))를 검출한다;
b) 상기 식[3]에 의해, 시간(TT(5))을 계산한다, 즉:
TT(5)=TS5(EG,LOG)+WC+WG x ceil(L(5)/WG)/WR;
c) 상기 식[4]에 의해, 시간(TT(5))에서의 출구 버퍼(Beg)의 필링 레벨(FLb(5))을 계산한다, 즉:
FLb(5)=max{0,[FLa(4)-A x RR x (TT(5)-TT(4))]};
d) 상기 식[5]에 의해 가상 출구 물리 타임스탬프(VIRTUAL_TS5(EG,PHY))를 계산한다, 즉:
VIRTUAL_TS5(EG,PHY)=TT(5)+[RG x ceil(FLb(5)/RG)/RR]+RC; 및
e) 상기 식[6]에 의해 제 2 동기화 패킷(SP5)이 출구 버퍼(Beg)로 완전하게 기록될 때 출구 버퍼(Beg)의 필링 레벨(FLa(5))을 계산한다, 즉:
FLa(5)=FLb(5)+RC x RR + L(5).
이러한 나중 경우에, 가상 출구 물리 타임스탬프(VIRTUAL_TS5(EG,PHY))는 기록 컷-스루 지연시간(WC), 판독 컷-스루 지연시간(RC), 제 2 동기화 패킷(SP5)을 출구 버퍼(Beg)로 기록하는데 필요한 시간 간격인 WG x ceil(L(5)/WG)/WR, 및 또한 출구 버퍼(Beg)로부터 전체적인 데이터 패킷(DP4)의 판독을 완료하는데 필요한 시간 간격인 [RG x ceil(FLb(5)/RG)/RR]에 의존한다.
단계(206)의 마지막에서, 계산 모듈(CM)은 상기 식[2]에 따라 체류 시간(RT5)을 계산한다(단계(207)). 체류 시간(RT5)은 이후 제 2 동기화 패킷(SP5)의 조정 필드(AF)의 콘텐트를 업데이트하는데 사용된다(단계(208)). 제 2 동기화 패킷(SP5)의 처리는 이후 도 2a에 도시된 다음 단계들(209-210)에 따라 계속된다.
도 2b는 본 발명의 제 1 실시예의 제 2 변형에 따른 노드(N)의 동작을 도시한다.
이러한 제 2 변형에 따라, 단계(201)에서 입구 타임스탬프 생성기(TSGin)가 입구 물리 타임스탬프(TS(IN,PHY))를 생성할 때, 동기화 패킷(SP)의 전용 필드에 이를 기록하는 대신(단계(201a)), 입구 물리 인터페이스(PHYin)는 바람직하게는, 동기화 패킷(SP)의 조정 필드(AF)를 업데이트하는데 입구 물리 타임스탬프(TS(IN,PHY))를 사용한다(단계(201a')). 특히, 입구 물리 인터페이스(PHYin)는 바람직하게 조정 필드(AF)에 포함된 누적 체류 시간(CRT)으로부터 입구 물리 타임스탬프(TS(IN,PHY))를 뺀다.
이후, 단계들(202 내지 206)이 제 1 변형과 유사하게 수행된다.
이후, 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))의 계산이 완료된 후(단계(206)), 체류 시간(RT)을 계산하는 대신(단계(207)), 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))가 동기화 패킷(SP)의 조정 필드(AF)를 업데이트하기 위해 출구 패킷 프로세서(PPeg)에 의해 직접적으로 사용된다(단계(208')). 특히, 출구 패킷 프로세서(PPeg)는 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))를 누적 체류 시간(CRT)에 더한다. 제 2 변형의 단계들(201a' 및 208')에서 수행된 동작들은 기본적으로 제 1 변형의 동작들(207-208)에 대응한다는 것이 주의되어야 한다. 따라서, 유익하게, 이러한 제 2 변형에 따라 입구 물리 타임스탬프(TS(IN,PHY))를 출구 패킷 프로세서(PPeg)로 전달하기 위해 동기화 패킷(SP)에 전용 필드는 필요하지 않다.
도 5는 본 발명의 제 2 실시예에 따른, 패킷 교환 방식의 네트워크의 제 1 노드(N1)와 제 2 노드(N2)의 블록도를 도시한다. 제 1 노드(N1)와 제 2 노드(N2)는 바람직하게 인접하다. 제 1 노드(N1)와 제 2 노드(N2) 모두 상술된 노드(N)와 유사하다.
특히, 제 1 노드(N1)는 바람직하게는, 직렬로 연결된, 출구 패킷 프로세서(PP1eg), 출구 버퍼(B1eg), 및 출구 물리 인터페이스(PHY1eg)를 차례로 포함하는 출구 회로(EC1)를 포함한다. 출구 회로(EC1)는 바람직하게는, 출구 타임스탬프 생성기(TSG1eg)을 더 포함한다. 이러한 제 2 실시예에 따라, 출구 타임스탬프 생성기(TSG1eg)는, 이후로 더욱 상세히 설명될 바와 같이, 출구 물리 타임스탬프를 생성하기 위하여 출구 물리 인터페이스(PHY1eg)와 협력하기에 적절하다. 바람직하게는, 출구 회로(EC1)는 또한 출구 타임스탬프 생성기(TSG1eg)와 물리 출구 인터페이스(PHY1eg)에 연결된 계산 모듈(CM1)을 포함한다. 제 1 노드(N1)의 다른 구성성분들은 그들이 본 설명과 관계가 없기 때문에 도 5에 도시되지 않는다.
한편, 제 2 노드(N2)는 바람직하게는, 직렬로 연결된, 입구 물리 인터페이스(PHY2in), 입구 버퍼(B2in), 및 입구 패킷 프로세서(PP2in)를 차례로 포함하는 입구 회로(IC2)를 포함한다. 입구 회로(IC2)는 바람직하게는, 입구 타임스탬프 생성기(TSG2in)를 더 포함한다. 본 발명의 이러한 제 2 실시예에 따라, 입구 타임스탬프 생성기(TSG2in)는 입구 논리 타임스탬프를 생성하기 위하여 입구 패킷 프로세서(PP2in)와 협력하기에 적절하다. 제 2 노드(N2)의 다른 구성성분들은 그들이 본 설명과 관계가 없기 때문에 도 5에 도시되지 않는다.
도 6a를 참조하여, 본 발명의 제 2 실시예의 제 1 변형에 따른 제 1 노드(N1)의 동작이 이제 설명될 것이다.
제 1 노드(N1)는 패킷들을 생성하며 그와 인접한 다른 노드들(도 5에 도시되지 않음)로부터 패킷들을 수신한다고 가정된다. 이러한 패킷들은 데이터 패킷들 및/또는 동기화 패킷들을 포함할 수 있다. 동기화 패킷들은 바람직하게는, 동기화 프로토콜, 예를 들면, IEEE 1588TM-2008 프로토콜에 따라 포맷된다.
이러한 패킷들은, 그들을 처리하고 그들을 출구 버퍼(B1eg)로 전달하는 출구 패킷 프로세서(PP1eg)에 의해 그의 일부가 수신될 때까지, 제 1 노드(N1)의 다양한 구성성분들을 통해 전달된다. 출구 버퍼(B1eg)는 바람직하게 패킷들을 저장하며 그들을 출구 물리 인터페이스(PHY1eg)로 전달한다.
특히, 출구 물리 인터페이스(PHY1eg)는 출구 버퍼(B1eg)로부터 동기화 패킷(SP)을 수신한다(단계(600)). 동기화 패킷(SP)은 바람직하게는, 도 3a에 도시되고 상술된 바와 같이 포맷된다. 단계(600)동안, 출구 물리 인터페이스(PHY1eg)는 바람직하게 시퀀스 번호(SN)를 동기화 패킷(SP)에 연관시키는데, 시퀀스 번호(SN)는 패킷들이 출구 물리 인터페이스(PHY1eg)에서 수신되는 순서를 고려한다. 또한, 단계(600)동안, 출구 물리 인터페이스(PHY1eg)는 바람직하게는, 동기화 패킷(SP)의 수신시 제 1 노드(N1)에서 생성된 입구 타임스탬프를 동기화 패킷(SP)으로부터 판독한다(단계(600a)). 입구 타임스탬프는 논리(logical)이거나 또는 물리(physical)일 수 있다. 단순화를 위해, 이후로 입구 타임스탬프는 입구 물리 타임스탬프(TS1(IN,PHY))라고 가정된다.
이후, 출구 타임스탬프 생성기(TSG1eg)는 바람직하게 출구 물리 타임스탬프(TS1(EG,PHY))를 생성한다(단계(601)). 계산 모듈(CM1)은 이후 바람직하게는, 동기화 패킷(SP)이 제 2 노드(N2)의 입구 패킷 프로세서(PP2in)에 의해 수신될 시간을 실질적으로 나타내는, 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))를 계산한다(단계(602)). 이러한 목적을 위해 단계(602)동안, 계산 모듈(CM1)은 바람직하게는, 동기화 패킷(SP)이 입구 물리 인터페이스(PHY2in)에 의해 실제로 수신되는 시간을 실질적으로 나타내는 가상 입구 물리 타임스템프(VIRTUAL_TS2(IN,PHY))가 출구 물리 타임스탬프(TS1(EG,PHY))와 동일하다고 가정한다(즉, 제 1 노드(N1)와 제 2 노드(N2)를 연결하는 물리적 링크를 따른 동기화 패킷(SP)의 전파 시간은 실질적으로 0이라고 가정한다).
계산 모듈(CM1)은 이후 바람직하게는, 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))와 입구 물리 타임스탬프(TS1(IN,PHY))사이의 차이로서 체류 시간(RT')을 계산한다(단계(603)), 즉:
RT'=VIRTUAL_TS2(IN,LOG)-TS1(IN,PHY). [7]
출구 물리 인터페이스(PHY1eg)는 이후 바람직하게는, 식[7]에 따라 계산된 체류 시간(RT')을 더하는 것에 의해 동기화 패킷(SP)의 헤더(H-SP)의 조정 필드(AF)에 포함된 누적 체류 시간(CRT)을 업데이트한다(단계(604)). 이후, 출구 물리 인터페이스(PHYeg)는 동기화 패킷(SP)을 제 2 노드(N2)로 송신한다(단계(605)).
이후로, 계산 모듈(CM1)에 의해 단계(602)동안 수행된 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))의 계산이 상세하게 설명될 것이다.
바람직하게는, 계산 모듈(CM1)은 제 2 노드(N2)의 입구 버퍼(B2in)에 관련된 다수의 파라미터들을 알고 있다. 이러한 다수의 파라미터들은 바람직하게 다음 파라미터들의 하나 또는 그 이상을 포함한다:
- 기록 비트 레이트(WR');
- 판독 비트 레이트(RR');
- 기록 입도(WG'), 즉, 입구 버퍼(B2in)에 병렬로 기록된 비트의 수;
- 판독 입도(RG'), 즉, 입구 버퍼(B2in)로부터 병렬로 판독된 비트들의 수;
- 기록 컷-스루 지연시간(WC'), 즉, 그들이 입구 버퍼(B2in)로 기록될 때 패킷들이 겪는 일정한 지연;
- 판독 컷-스루 지연시간(RC'), 즉, 그들이 입구 버퍼(B2in)로부터 판독될 때 패킷들이 겪는 일정한 지연;
- 조정 팩터(A')(제 1 실시예의 조정 팩터(A)와 연관하여 상기에서 설명된 동일한 고려사항을 또한 조정 팩터(A')에 적용하며, 따라서 이는 반복되지 않을 것이다).
단계(602)동안, 계산 모듈(CM1)은 바람직하게 다음 하위 단계들을 수행한다:
a) 동기화 패킷(SP)의 시퀀스 번호(SN)와 비트들의 수(L(SN))를 검출한다;
b) 다음 식에 의해, 동기화 패킷(SP)이 입구 버퍼(B2in)로 완전하게 기록될 시간(TT(SN))을 계산한다:
TT(SN)=TS1(EG,PHY)+WC'+WG' x ceil(L(SN)/WG')/WR'; [8]
여기서, ceil(L(SN)/WG')는 L(SN)과 WG' 사이의 비율보다 낮지 않은 가장 작은 정수를 나타낸다;
c) 다음 식에 의해, 동기화 패킷(SP)을 기록하는 동작은 고려하지 않고, 동기화 패킷(SP)이 기록되는 것을 시작하기 전에 입구 버퍼(B2in)에 이미 저장된 비트들을 판독하는 동작만을 고려하여 시간(TT(SN))에서의 입구 버퍼(B2in)의 필링 레벨(FLb(SN))을 계산한다:
FLb(SN)=max{0,[FLa(SN-1)-A' x RR' x (TT(SN)-TT(SN-1))]} [9]
FLa(SN-1)은 판독 컷-스루 지연시간(RC')을 또한 고려하여, 동기화 패킷(SP) 이전의 패킷(즉, SN-1과 동일한 시퀀스 번호를 갖는 패킷)이 입구 버퍼(B2in)로 완전하게 기록될 때의 입구 버퍼(B2in)의 필링 레벨이다. max{·}라는 표시는 필링 레벨(FLb(SN))이 중괄호들에 포함된 것들 중 가장 큰 값과 동일하다는 것을 나타내며, TT(SN-1)은 동기화 패킷(SP) 이전의 패킷이 입구 버퍼(B2in)로 완전하게 기록된 시간이다. 따라서, 필링 레벨(FLa(SN-1))과 판독 비트 레이트(RR')가 입구 버퍼(B2in)가 완전하게 비워지는 시간 간격(TT(SN)-TT(SN-1))내에 있을 때 FLb(SN)는 0과 동일하다;
d) 다음 식에 의해, 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))를 계산한다:
VIRTUAL_TS2(IN,LOG)=TT(SN)+[RG' x ceil(FLb(SN)/RG')/RR']+RC'; [10]
e) 다음 식에 의해 동기화 패킷(SP)이 입구 버퍼(B2in)에 완전하게 기록될 때 입구 버퍼(B2in)의 필링 레벨(FLa(SN))을 계산한다:
FLa(SN)=FLb(SN)+RC' x RR' + L(SN). [11]
상기 식[10]에 따라 계산된 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))는 입구 버퍼(B2in) 내의 동기화 패킷(SP)에 의해 누적된 지연만을 고려한다. 식[10]은 예를 들면, 입구 물리 인터페이스(PHY2in)와 입구 패킷 프로세서(PP2in) 사이에 아마도 개재된 다른 블록들(도 5에는 도시되지 않음)에 의한 동기화 패킷(SP)의 처리로 인한, 다른 가능한 지연들은 고려하지 않는다. 두 방향들(TX 대 RX)에서 일정하고 상이한, 이러한 다른 가능한 지연들이 공지된다면, 그들은 IEEE 1588TM-2008 프로토콜에 의해 예견된 것과 같이 보상될 수 있다.
단계들(600-605)(상술된 단계(602)의 하위 단계들(a)-e))을 포함하는)은 바람직하게는, 제 1 노드(N1)에 의해 수신되고 제 2 노드(N2)로 전달된 각 동기화 패킷에 대해 반복된다. 데이터 패킷들의 경우에, 단계(602)의 하위 단계 d)와 단계들(603-604)이 바람직하게 생략된다.
도 6b는 본 발명의 제 2 실시예의 제 2 변형에 따른 노드(N1)의 동작을 도시한다.
이러한 제 2 변형에 따라, 동기화 패킷(SP)의 수신시 제 1 노드(N1)에서 생성된 입구 타임스탬프는 동기화 패킷(SP)의 전용 필드에 포함되지 않으며, 대신(제 1 실시예의 제 2 변형과 유사하게), 출구 패킷 프로세서(PP1eg)에서의 수신 전에 동기화 패킷(SP)의 조정 필드(AF)에 포함된 누적 체류 시간(CRT)으로부터 이미 뺄셈이 되었다. 따라서, 이러한 제 2 변형에 따라 단계(600a)는 생략된다.
이후, 제 1 변형과 유사하게 단계들(601 및 602)이 수행된다.
이후, 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))의 계산이 완료된 후(단계(602)), 체류 시간(RT')을 계산하는 대신(단계(603)), 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))가 동기화 패킷(SP)의 조정 필드(AF)를 업데이트하기 위해 출구 물리 인터페이스(PHY1eg)에 의해 사용된다(단계(604')). 특히, 출구 물리 인터페이스(PHY1eg)는 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))를 누적 체류 시간(CRT)에 직접적으로 더한다. 출구 패킷 프로세서(PP1eg)에서의 수신 전에 수행된 뺄셈과 제 2 변형의 단계들(604')에서 수행된 동작은 기본적으로 제 1 변형의 동작들(603-604)에 대응한다는 것이 주의되어야 한다. 따라서, 유익하게, 이러한 제 2 변형에 따라, 입구 타임스탬프를 출구 물리 인터페이스(PHY1eg)로 전달하기 위해 동기화 패킷(SP)에 전용 필드는 필요하지 않다.
도 7은 본 발명의 제 3 실시예에 따른, 제 1 노드(N1)와 제 2 노드(N2)의 다른 블록도를 도시한다.
특히, 이러한 제 3 실시예에 따라, 출구 타임스탬프 생성기(TSG1eg)는, 이후로 더욱 상세히 설명될 바와 같이, 출구 논리 타임스탬프를 생성하기 위하여 출구 패킷 프로세서(PP1eg)와 협력하기에 적절하다.
도 8a를 참조하여, 본 발명의 제 3 실시예의 제 1 변형에 따른 제 1 노드(N1)의 동작이 이제 설명될 것이다.
제 1 노드(N1)는 패킷들을 생성하며 그와 인접한 다른 노드들(도 7에는 도시되지 않음)로부터 패킷들을 수신한다고 가정된다. 이러한 패킷들은 데이터 패킷들 및/또는 동기화 패킷들을 포함할 수 있다. 동기화 패킷들은 바람직하게는, 동기화 프로토콜, 예를 들면, IEEE 1588TM-2008 프로토콜에 따라 포맷된다.
이러한 패킷들은, 그들의 일부가 출구 패킷 프로세서(PP1eg)에 의해 수신될 때까지, 제 1 노드(N1)의 다양한 구성성분들을 통해 전달된다.
특히, 출구 패킷 프로세서(PP1eg)가 동기화 패킷(SP)을 수신한다(단계(800)). 동기화 패킷(SP)은 바람직하게는, 도 3a에 도시되고 상술된 바와 같이 포맷된다. 단계(800)동안, 출구 패킷 프로세서(PP1eg)는 바람직하게는, 시퀀스 번호(SN)를 동기화 패킷(SP)에 연관시키는데, 시퀀스 번호(SN)는 패킷들이 출구 패킷 프로세서(PP1eg)에서 수신되는 순서를 고려한다. 또한, 단계(800)동안, 출구 패킷 프로세서(PP1eg)는 바람직하게는, 동기화 패킷(SP)으로부터, 동기화 패킷(SP)의 수신시 제 1 노드(N1)에서 생성된 입구 타임스탬프를 판독한다(단계(800a)). 입구 타임스탬프는 논리적이거나 또는 물리적일 수 있다. 단순화를 위해, 이후로 입구 타임스탬프는 입구 물리 타임스탬프(TS1(IN,PHY))라고 가정된다.
이후, 출구 타임스탬프 생성기(TSG1eg)는 바람직하게 출구 논리 타임스탬프(TS1(EG,LOG))를 생성한다(단계(801)). 이후, 계산 모듈(CM1)은 동기화 패킷(SP)이 출구 물리 인터페이스(PHY1eg)에 의해 실제로 송신될 시간을 실질적으로 나타내는, 가상 출구 물리 타임스탬프(VIRTUAL_TS1(EG,PHY))를 계산한다(단계(802)). 또한, 계산 모듈(CM1)은 바람직하게는, 동기화 패킷(SP)이 입구 패킷 프로세서(PP2in)에 의해 수신될 시간을 실질적으로 나타내는, 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))를 계산한다(단계(803)).이러한 목적을 위해, 단계(803)에서, 계산 모듈(CM1)은 바람직하게는, 동기화 패킷(SP)이 입구 물리 인터페이스(PHY2in)에 의해 실제로 수신될 시간을 실질적으로 나타내는 가상 입구 물리 타임스템프(VIRTUAL_TS2(IN,PHY))가 가상 출구 물리 타임스탬프(VIRTUAL_TS1(EG,PHY))와 동일하다고 가정한다(즉, 제 1 노드(N1)와 제 2 노드(N2)를 연결하는 물리적 링크를 따른 동기화 패킷(SP)의 전파 시간은 실질적으로 0이라고 가정한다).
계산 모듈(CM1)은 이후 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))와 입구 물리 타임스탬프(TS1(IN,PHY))사이의 차이로서 체류 시간(RT")을 계산한다(단계(804)), 즉:
RT"=VIRTUAL_TS2(IN,LOG)-TS1(IN,PHY). [12]
출구 패킷 프로세서(PP1eg)는 이후 바람직하게는, 식[12]에 따라 계산된 체류 시간(RT")을 동기화 패킷(SP)의 헤더(H-SP)의 조정 필드(AF)에 포함된 누적 체류 시간(CRT)을 업데이트하는데 사용한다(단계(805)). 후속적으로, 동기화 패킷(SP)은 출구 패킷 프로세서(PP1eg)에 의해 출구 버퍼(B1eg)로 전달되고 거기에 저장된다(단계(806)). 이후, 동기화 패킷(SP)은, 제 2 노드(N2)로 이를 송신하는 출구 물리 인터페이스(PHY1eg)로 전달된다(단계(807)).
계산 모듈(CM1)에 의해 단계(802)동안 수행된 가상 출구 물리 타임스탬프(VIRTUAL_TS1(EG,PHY))의 계산은, 본 발명의 제 1 실시예에 따라 제 1 노드(N1)의 출구 버퍼(B1eg)와 관련된 파라미터들을 이용하여 단계(206)에서 수행된 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))의 계산과 실질적으로 동일하다. 또한, 계산 모듈(CM1)에 의해 단계(803)동안 수행된 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))의 계산은, 본 발명의 제 2 실시예에 따라 제 2 노드(N2)의 입구 버퍼(B2in)와 관련된 파라미터들을 이용하여 단계(602)동안 수행된 가상 입구 논리 타임스탬프(VIRTUAL_TS(IN,LOG))의 계산과 실질적으로 동일하다. 따라서, 가상 출구 물리 타임스탬프(VIRTUAL_TS1(EG,PHY))와 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))의 계산의 상세한 설명은 반복되지 않을 것이다.
도 8b는 본 발명의 제 3 실시예의 제 2 변형에 따른 노드(N1)의 동작을 도시한다.
이러한 제 2 변형에 따라, 동기화 패킷(SP)의 수신시 제 1 노드(N1)에서 생성된 입구 타임스탬프가 동기화 패킷(SP)의 전용 필드에 포함되지 않으나, 대신(제 1 및 제 2 실시예들의 제 2 변형과 유사하게), 출구 패킷 프로세서(PP1eg)에서의 수신 전에 동기화 패킷(SP)의 조정 필드(AF)에 포함된 누적 체류 시간(CRT)으로부터 이미 뺄셈이 되었다. 그러므로, 이러한 제 2 변형에 따라, 단계(800a)는 생략된다.
이후, 단계들(801-803)이 제 1 변형과 유사하게 수행된다.
이후, 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))의 계산이 완료된 후(단계(803)), 체류 시간(RT")을 계산하는 대신(단계(804)), 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))가 동기화 패킷(SP)의 조정 필드(AF)를 업데이트하기 위해 출구 패킷 프로세서(PP1eg)에 의해 사용된다(단계(805')). 특히, 출구 패킷 프로세서(PP1eg)는 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))를 누적 체류 시간(CRT)에 직접적으로 더한다. 출구 패킷 프로세서(PP1eg)에서의 수신 전에 수행된 뺄셈과 제 2 변형의 단계들(805')에서 수행된 동작은 기본적으로 제 1 변형의 동작들(804-805)에 대응한다는 것이 주의되어야 한다. 따라서, 유익하게, 이러한 제 2 변형에 따라, 입구 타임스탬프를 출구 패킷 프로세서(PP1eg)로 전달하기 위해 동기화 패킷(SP)에 전용 필드가 필요하지 않다.
따라서, 제 1 실시예에서(즉, 노드가 출구 물리 타임스탬프를 생성할 수 없을 때), 노드 자체가 출구 버퍼(Beg)에 의해 도입된 지연을 고려하여 동기화 패킷(SP)의 체류 시간을 계산할 수 있을 때, 제 2 및 제 3 실시예들(즉, 노드가 입구 물리 타임스탬프를 생성할 수 없을 때)에 따라, 노드 자체가 그의 입구 버퍼(B2in)에 의해 도입된 지연을 고려하기 위하여 계산을 수행할 수 없다. 이는, 동기화 패킷(SP)이 수신되었을 때 노드가 그의 입구 버퍼(B2in)의 필링 레벨을 알 수 없다는 사실 때문이다. 따라서, 노드는 그의 입구 버퍼(B2in)에 의해 도입된 지연을 계산할 수 없다.
이러한 제 2 및 제 3 실시예들에 따라, 업스트림 노드(즉, 이로부터 패킷들이 수신되는 노드)는 체류 시간의 계산을 수행하고, 다운스트림 노드의 입구 버퍼(B2in)에 의해 도입된 지연을 또한 고려하여 동기화 패킷의 누적 체류 시간을 업데이트하기 위해 그를 사용한다. 업스트림 노드는 다운스트림 노드의 트래픽 조건들을 미리 알기 때문에 이것이 가능하며, 이후 다운스트림 노드의 입구 버퍼에 의해 도입된 지연을 예측할 수 있다.
노드가 입구 물리 타임스탬프와 출구 물리 타임스템프 모두를 생성할 수 없다면, 상술된 제 1 및 제 2/제 3 실시예들이 조합될 수 있다.
특히, 노드의 입구 버퍼에 의해 도입된 지연이 업스트림 노드에서 계산될 수 있고 이것이 업스트림 노드 내의 동기화 패킷의 체류 시간에 부가된다(제 2 또는 제 3 실시예 중 하나에 따라). 한편, 출구 버퍼에 의해 도입된 지연이 노드 자체에서 계산되고, 그것이 노드 자체의 동기화 패킷의 체류 시간에 부가된다. 또한 이러한 경우에, 이후 유익하게는, 노드의 입구 및 출구 버퍼들에 의해 도입된 지연들을 고려하기 위하여, 동기화 패킷의 조정 필드(AF)에 포함된 누적 체류 시간(CRT)을 업데이트하는 것이 가능하다.
본 발명의 제 1, 제 2, 및 제 3 실시예들의 상기 설명에서, 노드(N,N1)는 상기 언급된 원스텝 클록 메커니즘을 수행한다는 것, 즉, 노드(N,N1)는 동기화 패킷(SP)의 체류 시간을 계산하고 이를 다른 노드들로 전달하기 전에 동기화 패킷(SP) 자체의 조정 필드를 업데이트하는데 이를 이용하는 것이 가능하다고 가정되었다.
그러나, 다른 유익한 실시예들에 따라, 노드(N,N1)는 상기 언급된 투스텝 클록 메커니즘을 수행할 수 있다. 이러한 유익한 실시예들에 따라, 노드(N,N1)는 상술된 바와 같이 동기화 패킷(SP)의 체류 시간(또는 가상 타임스탬프들)을 계산하고, 이후 후속하는 패킷(아마도 노드(N,N1)에 의해 생성된)의 조정 필드를 업데이트하기 위해 체류 시간(또는 가상 타임스탬프)을 이용한다.
도 1, 도 5, 및 도 7의 노드들에 도시된 다양한 소자들의 기능들이 적절한 소프트웨어와 함께 소프트웨어를 실행할 수 있는 하드웨어 뿐만 아니라, 전용 하드웨어의 사용을 통해 제공될 수 있다. 프로세서(즉, 패킷들의 프로세서들)에 의해 제공될 때, 기능들은 단일의 전용 프로세서들에 의해, 단일의 공유된 프로세서에 의해 또는 그들의 일부가 공유될 수 있는 복수의 개별적인 프로세서들에 의해 제공될 수 있다. 또한, "프로세서"라는 용어의 명백한 사용은 소프트웨어를 실행할 수 있는 하드웨어를 배타적으로 나타내는 것으로 해석되어서는 안되고, 디지털 신호 프로세서(DSP) 하드웨어, 네트워크 프로세서, 주문형 반도체(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 소프트웨어를 저장하기 위한 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM) 및 비휘발성 저장장치를 제한없이, 내재적으로 포함할 수 있다. 종래의 및/또는 맞춤제작된 다른 하드웨어가 또한 포함될 수 있다.

Claims (15)

  1. 패킷 교환 방식의 통신 네트워크의 노드(N, N1)에서 수신된 동기화 패킷(synchronization packet;SP)의 누적 체류 시간(cumulative residence time;CRT)을 업데이트하기 위한 방법으로서, 상기 누적 체류 시간(CRT)은 상기 동기화 패킷(SP)을 생성한 다른 노드와 상기 노드(N, N1) 사이에 개재된 상기 패킷 교환 방식의 네트워크의 노드들에서의 상기 동기화 패킷(SP)의 체류 시간들의 누적 합과 동일하고, 상기 노드(N, N1)는 상기 동기화 패킷(SP)을 수신하도록 구성된 입구 회로(ingress circuit;IC)와 상기 동기화 패킷(SP)을 상기 패킷 교환 방식의 통신 네트워크의 또 다른 노드(N2)로 송신하도록 구성된 출구 회로(egress circuit;EC, EC1)를 포함하는, 상기 방법에 있어서:
    a) 상기 출구 회로(EC, EC1)에서 상기 입구 회로(IC)로부터의 상기 동기화 패킷(SP)을 수신하는 단계와;
    b) 상기 출구 회로(EC, EC1)의 출구 타임스탬프 생성기(TSGeg, TSG1eg)에서, 출구 타임스탬프(TS(EG,LOG), TS1(EG,PHY), TS1(EG,LOG))를 생성하는 단계와;
    c) 상기 출구 회로(EC, EC1)에서, 상기 출구 타임스탬프(TS(EG, LOG), TS1(EG, PHY), TS1(EG,LOG))에 기초하고, 상기 출구 타임스탬프 생성기(TSGeg, TSG1eg)의 다운스트림에 위치된 버퍼(Beg, B1eg, B2in)에서의 버퍼링으로 인해 상기 동기화 패킷(SP)에 의해 겪어질 추정된 가변 지연(estimated variable delay)에 기초하여, 가상(virtual) 타임스탬프(VIRTUAL_TS(EG,PHY), VIRTUAL_TS2(IN,LOG))를 계산하는 단계와;
    d) 상기 출구 회로(EC, EC1)에서, 상기 동기화 패킷(SP)을 상기 또 다른 노드(N2)로 송신하기 전에, 상기 누적 체류 시간(CRT)을 업데이트하기 위해 상기 가상 타임스탬프(VIRTUAL_TS(EG,PHY), VIRTUAL_TS2(IN,LOG))를 이용하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 단계 b)는 출구 논리 타임스탬프(TS(EG,LOG), TS1(EG,LOG))를 생성하는 단계를 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 단계 c)는 상기 출구 논리 타임스탬프(TS(EG,LOG), TS1(EG,LOG))에 기초하고, 상기 출구 회로(EC, EC1)에 포함되고 상기 출구 타임스탬프 생성기(TSGeg, TSG1eg)의 다운스트림에 위치된 출구 버퍼(Beg, B1eg)에서의 버퍼링으로 인해 상기 동기화 패킷(SP)에 의해 겪어질 추정된 가변 지연에 기초하여, 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))를 계산하는 단계를 포함하는, 방법.
  4. 제 3 항에 있어서,
    상기 단계 c)는 상기 가상 출구 물리 타임스탬프(VIRTUAL_TS(EG,PHY))에 기초하고, 상기 또 다른 노드(N2)의 다른 입구 회로(IC2)에 포함된 입구 버퍼(B2in)의 버퍼링으로 인해 상기 동기화 패킷(SP)에 의해 겪어질 추정된 가변 지연에 기초하여, 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))를 계산하는 단계를 더 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 단계 b)는 출구 물리 타임스탬프(TS1(EG,PHY))를 생성하는 단계를 포함하는, 방법.
  6. 제 5 항에 있어서,
    상기 단계 c)는 상기 출구 물리 타임스탬프(TS1(EG,PHY))에 기초하고, 상기 또 다른 노드(N2)의 다른 입구 회로(IC2)에 포함된 입구 버퍼(B2in)의 버퍼링으로 인해 상기 동기화 패킷(SP)에 의해 겪어질 추정된 가변 지연에 기초하여, 가상 입구 논리 타임스탬프(VIRTUAL_TS2(IN,LOG))를 계산하는 단계를 포함하는, 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 단계 a) 전에, 상기 입구 회로(IC)가 상기 동기화 패킷(SP)을 수신할 때, 상기 입구 회로(IC)에서 입구 타임스탬프(TS(IN,PHY))를 생성하는 단계를 더 포함하는, 방법.
  8. 제 7 항에 있어서,
    상기 단계 a) 전에, 상기 입구 회로(IC)의 상기 동기화 패킷(SP)에 상기 입구 타임스탬프(TS(IN,PHY))를 기록하는 단계를 더 포함하는, 방법.
  9. 제 8 항에 있어서,
    상기 단계 d)는 상기 동기화 패킷(SP)으로부터 상기 입구 타임스탬프(TS(IN,PHY))를 판독하는 단계와, 상기 가상 타임스탬프(VIRTUAL_TS(EG,PHY), VIRTUAL_TS2(IN,LOG))와 상기 입구 타임스탬프(TS(IN,PHY)) 사이의 차이로서 체류 시간(RT, RT', RT")을 계산하는 단계와, 상기 체류 시간(RT, RT', RT")을 상기 누적 체류 시간(CRT)에 더하는 것에 의해 상기 누적 체류 시간(CRT)을 업데이트하는 단계를 포함하는, 방법.
  10. 제 7 항에 있어서,
    상기 단계 a) 전에, 상기 입구 회로(IC)의 상기 누적 체류 시간(CRT)으로부터 상기 입구 타임스탬프(TS(IN,PHY))를 빼는 단계를 더 포함하는, 방법.
  11. 제 10 항에 있어서,
    상기 단계 d)는 상기 누적 체류 시간(CRT)에 상기 가상 타임스탬프(VIRTUAL_TS(EG,PHY), VRITUAL_TS2(IN,LOG))를 더하는 단계를 포함하는, 방법.
  12. 제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 단계 d)는 상기 또 다른 노드(N2)로 이를 송신하기 전에 상기 동기화 패킷(SP)에 상기 업데이트된 누적 체류 시간(CRT)을 기록하는 단계를 더 포함하는, 방법.
  13. 프로그램이 컴퓨터 상에서 동작할 때, 제 1 항 내지 제 12 항 중 어느 한 항에 따른 상기 방법의 상기 단계들을 수행하는 컴퓨터-실행가능한 명령들을 포함하는, 컴퓨터 프로그램 제품.
  14. 패킷 교환 방식의 통신 네트워크를 위한 노드(N, N1)에 있어서,
    상기 노드(N, N1)는:
    - 동기화 패킷(SP)을 생성한 다른 노드와 상기 노드(N, N1) 사이에 개재된 상기 패킷 교환 방식의 네트워크의 노드들의 상기 동기화 패킷(SP)의 체류 시간들의 누적 합과 동일한 누적 체류 시간(CRT)과 연관된 상기 동기화 패킷(SP)을 수신하도록 구성된 입구 회로(IC)와;
    - 상기 입구 회로(IC)로부터 상기 동기화 패킷(SP)을 수신하고, 상기 패킷 교환 방식의 통신 네트워크의 또 다른 노드(N2)로 그를 송신하도록 구성된 출구 회로(EC, EC1)를 포함하며, 상기 출구 회로(EC, EC1)는:
    - 출구 타임스탬프(TS(EG,LOG), TS1(EG, PHY), TS1(EG,LOG))를 생성하도록 구성된 출구 타임스탬프 생성기(TSGeg, TSG1eg)와;
    - 상기 출구 타임스탬프(TS(EG,LOG), TS1(EG, PHY), TS1(EG,LOG))에 기초하고, 상기 출구 타임스탬프 생성기(TSGeg, TSG1eg)의 다운스트림에 위치된 버퍼(Beg, B1eg, B2in)에서의 버퍼링으로 인해 상기 동기화 패킷(SP)에 의해 격게 될 추정된 가변 지연에 기초하여, 가상 타임스탬프(VIRTUAL_TS(EG,PHY), VIRTUAL_TS2(IN,LOG))를 계산하도록 구성된 계산 모듈(CM, CM1)을 포함하며,
    상기 출구 회로(EC, EC1)는 또한 상기 누적 체류 시간(CRT)을 업데이트하기 위해 상기 가상 타임스탬프(VIRTUAL_TS(EG,PHY), VIRTUAL_TS2(IN,LOG))를 사용하도록 구성되는, 노드.
  15. 제 14 항에 따른 노드(N, N1)를 포함하는, 패킷 교환 방식의 통신 네트워크.
KR1020127030438A 2010-04-23 2011-04-14 패킷 교환 방식의 통신 네트워크에서 패킷의 누적 체류 시간의 업데이트 KR101413506B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10305432A EP2381622B1 (en) 2010-04-23 2010-04-23 Update of a cumulative residence time of a packet in a packet-switched communication network
EP10305432.6 2010-04-23
PCT/EP2011/055904 WO2011131556A1 (en) 2010-04-23 2011-04-14 Update of a cumulative residence time of a packet in a packet-switched communication network

Publications (2)

Publication Number Publication Date
KR20130018306A true KR20130018306A (ko) 2013-02-20
KR101413506B1 KR101413506B1 (ko) 2014-07-02

Family

ID=42244862

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127030438A KR101413506B1 (ko) 2010-04-23 2011-04-14 패킷 교환 방식의 통신 네트워크에서 패킷의 누적 체류 시간의 업데이트

Country Status (6)

Country Link
US (1) US9203725B2 (ko)
EP (1) EP2381622B1 (ko)
JP (1) JP5548305B2 (ko)
KR (1) KR101413506B1 (ko)
CN (1) CN102859941B (ko)
WO (1) WO2011131556A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8718482B1 (en) * 2009-11-10 2014-05-06 Calix, Inc. Transparent clock for precision timing distribution
JP5682391B2 (ja) * 2011-03-22 2015-03-11 富士通株式会社 データ転送装置、並列計算機システムおよびデータ転送装置の制御方法
CN104012025B (zh) * 2011-11-07 2017-04-19 美高森美通信股份有限公司 时戳及mac安全性的物理层处理
IL217232A0 (en) * 2011-12-27 2012-03-29 Eci Telecom Ltd Technique for monitoring and management of data networks
US8958327B2 (en) * 2012-08-10 2015-02-17 Cisco Technology, Inc. Passive network latency monitoring
EP2712099B1 (en) * 2012-09-19 2015-04-01 Alcatel Lucent Method for managing and maintaining an accurate distribution of time in a network when a failure occurs
US9450846B1 (en) * 2012-10-17 2016-09-20 Cisco Technology, Inc. System and method for tracking packets in a network environment
US8879586B2 (en) * 2012-12-20 2014-11-04 Broadcom Corporation Inband timestamping
JP5850180B2 (ja) * 2013-01-04 2016-02-03 日本電気株式会社 通信装置及び同期制御方法
US20140293825A1 (en) * 2013-03-27 2014-10-02 Broadcom Corporation Timestamping data packets
US10374735B2 (en) 2013-06-18 2019-08-06 Nec Corporation Communication system, communication system control method, transmission device, and reception device
US20160128012A1 (en) * 2013-06-18 2016-05-05 Nec Corporation Communication system, communication system control method, transmission device, and reception device
US9667370B2 (en) * 2013-09-05 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Communication device with peer-to-peer assist to provide synchronization
US9306693B2 (en) 2013-11-15 2016-04-05 Broadcom Corporation Time synchronization architecture in a network device
US9288112B2 (en) * 2013-11-21 2016-03-15 Rockwell Automation Technologies, Inc. Automatic network discovery in precision time protocol networks
EP2919400A1 (en) * 2014-03-13 2015-09-16 Alcatel Lucent Method and device for forwarding a clock synchronization message
WO2016070947A1 (en) * 2014-11-05 2016-05-12 Telefonaktiebolaget L M Ericsson (Publ) Transmitting residence time information in a network
US10015048B2 (en) 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US9929928B1 (en) * 2015-12-24 2018-03-27 Microsemi Solutions (U.S.), Inc. Packet transmitter and method for timestamping packets
US10237587B2 (en) * 2016-06-10 2019-03-19 Nokia Of America Corporation Transporting out-of-band signals in distributed cable systems
CN108155982B (zh) * 2016-12-02 2020-02-21 深圳市中兴微电子技术有限公司 一种时间戳处理方法及设备
US11245572B1 (en) 2017-01-31 2022-02-08 Barefoot Networks, Inc. Messaging between remote controller and forwarding element
US10757028B1 (en) 2017-04-23 2020-08-25 Barefoot Networks, Inc. Configurable forwarding element deparser
US10826840B1 (en) 2017-07-23 2020-11-03 Barefoot Networks, Inc. Multiple copies of stateful tables
US10616085B2 (en) * 2017-08-31 2020-04-07 Zte Corporation Residence time measurement for optimizing network services
US10887211B2 (en) * 2017-09-18 2021-01-05 Microsemi Storage Solutions, Inc. Indirect packet classification timestamping system and method
US11477100B2 (en) 2017-09-26 2022-10-18 Zte Corporation Residence time measurement for traffic engineered network
US10594630B1 (en) 2017-09-28 2020-03-17 Barefoot Networks, Inc. Expansion of packet data within processing pipeline
US11171856B2 (en) * 2017-12-07 2021-11-09 Intel Corporation Distributed timestamping in networks
JP6977668B2 (ja) * 2018-06-04 2021-12-08 日本電信電話株式会社 測定システム、及び測定方法
US10505651B1 (en) * 2018-08-03 2019-12-10 Whelen Engineering Company, Inc. Precision time synchronization over standardized networking protocols
CN111327386B (zh) * 2018-12-14 2023-08-08 深圳市中兴微电子技术有限公司 一种延时抖动补偿方法、装置及计算机存储介质
CN111918380B (zh) * 2020-07-27 2021-08-20 深圳大学 电子设备与无线网络中的参考节点同步的方法及电子设备
US11711283B2 (en) * 2021-03-11 2023-07-25 Mellanox Technologies, Ltd. Cable latency measurement

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793976A (en) * 1996-04-01 1998-08-11 Gte Laboratories Incorporated Method and apparatus for performance monitoring in electronic communications networks
US6502222B1 (en) * 2000-09-28 2002-12-31 Lsi Logic Corporation Method of clock buffer partitioning to minimize clock skew for an integrated circuit design
US6728209B2 (en) * 2001-07-25 2004-04-27 Overture Networks, Inc. Measurement of packet delay variation
US8095640B2 (en) * 2003-12-12 2012-01-10 Alcatel Lucent Distributed architecture for real-time flow measurement at the network domain level
US20080175275A1 (en) * 2007-01-22 2008-07-24 Samsung Electronics Co., Ltd. Time synchronization method between nodes in network and apparatus for implementing the same
US8370110B2 (en) * 2007-12-19 2013-02-05 International Business Machines Corporation Network performance management
JP5228714B2 (ja) * 2008-09-02 2013-07-03 富士通株式会社 時刻同期方法および中継装置
JP2010213101A (ja) 2009-03-11 2010-09-24 Toshiba Corp メッセージを中継する中継装置およびプログラム

Also Published As

Publication number Publication date
CN102859941A (zh) 2013-01-02
WO2011131556A1 (en) 2011-10-27
JP5548305B2 (ja) 2014-07-16
JP2013526167A (ja) 2013-06-20
EP2381622A1 (en) 2011-10-26
EP2381622B1 (en) 2012-06-20
CN102859941B (zh) 2016-07-06
US20130028265A1 (en) 2013-01-31
US9203725B2 (en) 2015-12-01
KR101413506B1 (ko) 2014-07-02

Similar Documents

Publication Publication Date Title
KR101413506B1 (ko) 패킷 교환 방식의 통신 네트워크에서 패킷의 누적 체류 시간의 업데이트
KR101506138B1 (ko) 원격통신 네트워크에서 시간 분배를 위한 방법, 장치 및 시스템
CN104115432B (zh) 用于在时间认知设备之间传达时间信息的方法和装置
US8982897B2 (en) Data block output apparatus, communication system, data block output method, and communication method
CN102197611B (zh) 用于分组网络同步的方法和设备
CN109699199B (zh) 一种报文处理的方法和网络设备
US8644350B2 (en) Packet-based timing measurement
EP2882120B1 (en) A method and apparatus for mitigation of packet delay variation
EP2448168A1 (en) Method and system for bearing time synchronization protocol in optical transport network
US9270607B2 (en) Method and devices for packet selection
EP3231110B1 (en) Method and devices for time transfer using end to end transparent clocks
US9442511B2 (en) Method and a device for maintaining a synchronized local timer using a periodic signal
JP2018125768A (ja) データ伝送装置及びプログラム
JP5168734B2 (ja) キューイング遅延計測方法、その方法を用いた同期システム、その方法及びそのプログラム
EP3080951B1 (en) Method and devices for packet selection
KR20120116842A (ko) 대형 네트워크 상에서 정밀한 클록 분배를 달성하기 위한 원더 누적을 극복하기 위한 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee