KR20040105224A - 데이터 관리 방법, 시스템 및 컴퓨터 판독가능한 기록 매체 - Google Patents

데이터 관리 방법, 시스템 및 컴퓨터 판독가능한 기록 매체 Download PDF

Info

Publication number
KR20040105224A
KR20040105224A KR10-2004-7015246A KR20047015246A KR20040105224A KR 20040105224 A KR20040105224 A KR 20040105224A KR 20047015246 A KR20047015246 A KR 20047015246A KR 20040105224 A KR20040105224 A KR 20040105224A
Authority
KR
South Korea
Prior art keywords
end node
logical connection
instance number
packet
node
Prior art date
Application number
KR10-2004-7015246A
Other languages
English (en)
Other versions
KR100651571B1 (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 KR20040105224A publication Critical patent/KR20040105224A/ko
Application granted granted Critical
Publication of KR100651571B1 publication Critical patent/KR100651571B1/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • General Factory Administration (AREA)

Abstract

데이터 처리 시스템에 포함된 제 1 엔드 노드로부터 제 2 엔드 노드로 전송된 데이터를 관리하는 방법, 시스템 및 데이터 처리 시스템의 컴퓨터 프로그램 제품이 개시된다. 엔드 노드들 사이에 데이터를 전송하기 전에 제 1 엔드 노드와 제 2 엔드 노드 사이에 논리적 접속이 설정된다. 인스턴스 번호가 논리적 접속에 연관되고, 이 접속이 계속 유지되는 동안 엔드 노드들 사이에 전송된 각 패킷에 포함된다. 인스턴스 번호는 이 접속 동안 일정하게 유지되지만, 이들 노드들 사이의 논리적 접속이 재설정될 때마다 그것을 증가시키는 것 등에 의해 변경된다. 각 패킷은 특정한 경우의 논리적 접속과 연관되고, 그것이 수신될 때, 그 번호는 패킷이 엔드 노드들 사이의 이전의 논리적 접속 동안 송신된 실효 패킷인지를 판단하는데에 사용될 수 있다.

Description

네트워크에서의 데이터 전송 관리 시스템, 방법 및 컴퓨터 프로그램 제품{SYSTEM, METHOD, AND PRODUCT FOR MANAGING DATA TRANSFERS IN A NETWORK}
많은 현존하는 컴퓨터 시스템은 컴퓨터 시스템 내에서 내부적으로 시스템의 다양한 프로세서와 I/O 소자 사이에 데이터를 전송하는 수단으로서 주변 성분 상호접속부(Peripheral Component Interconnect : PCI)와 같은 공유형 버스 구조를 사용한다. 이들 현존하는 공유형 버스 구조는 통상의 처리기의 성능 향상에 보조를 맞추지 못한다. 따라서, 컴퓨터 시스템 내에서 내부적으로 처리기와 I/O 소자 사이에서 데이터를 전송하기 위해 보통 "인피니밴드(infiniband)"라 불리는 새로운 구조가 개발되었다. 이 새로운 구조는 보다 큰 대역폭과 증가된 확장성(expandability)을 제공할 수 있다.
이 새로운 구조는 채널 기준 조직 교환 기술을 포함하는 시스템 영역 네트워크를 제공한다. 그런 시스템 영역 네트워크(system-area network : SAN)에서, 데이터는 패킷으로 이루어지는 메시지를 통해 전송된다. 각 소자(처리기 또는 I/O 소자)는 채널 어댑터를 포함한다. 메시지들은 스위치들을 통해 한 소자의 채널 어댑터로부터 다른 소자의 채널 어댑터로 전송된다. 각 채널 어댑터는 "엔드 노드"로 언급될 수도 있다.
도 1은 종래 기술에 따라 각각 큐 쌍을 포함하는 두개의 엔드 노드를 도시한다. 엔드 노드 A(100)가 엔드 노드 B(108)로 데이터를 전송해야 할 때, 엔드 노드 A에 포함된 큐 쌍과 엔드 노드 B에 포함된 큐 쌍 사이에 논리적 접속이 설정된다. 다음에 엔드 노드 A의 큐 쌍의 송신 큐로부터 엔드 노드 B의 큐 쌍의 수신 큐로 데이터가 전송된다. 엔드 노드 B의 큐 쌍의 송신 큐로부터 엔드 노드 A의 큐 쌍의 수신 큐로 응답이 전송된다. 엔드 노드 A(100)는 큐 쌍(102)을 포함한다. 큐 쌍(102)은 송신 큐(104) 및 수신 큐(106)를 포함한다. 엔드 노드 B(108)는 큐 쌍(110)을 포함한다. 큐 쌍(110)은 수신 큐(112) 및 송신 큐(114)를 포함한다. 송신 큐로부터 수신 큐로 요청이 송신되고 수신 큐로부터 송신 큐로 다시 응답이 송신된다. 요청(116)은 응답(118)에 의해 전송확인된다. 요청(120)은 응답(122)에 의해 전송확인된다.
메시지들, 따라서 패킷들은 5개의 다른 전송 유형 즉, 신뢰 접속(RC), 신뢰 데이터그램(RD), 비신뢰 접속(UC), 비신뢰 데이터그램(UD), 순수 데이터그램(RawD) 중 하나를 사용하여 전송될 수 있다. 신뢰 접속 전송형이 사용될 때, 각 패킷에는 시퀀스 번호가 포함되고, 패킷 전송은 전송확인된다.
두 개의 엔드 사이에 논리적 접속이 설정될 때 시작 시퀀스 번호가 설정된다. 패킷이 전송될 때마다 시퀀스 번호가 증가되어 패킷내에 포함된다. 따라서 패킷의 시퀀스 번호는 패킷들의 시퀀스 내에서 그 패킷의 위치를 식별하는데에 사용된다.
종래기술에서는, 시퀀스 번호를 나타내기 위해 각 패킷에 특정한 비트 세트 즉 필드가 포함된다. 따라서, 시퀀스 번호는 이 비트 세트 전체이다.
요청(116)에 포함되는 패킷 시퀀스 번호(packet sequence number : PSN)는 응답(118)에 포함되는 PSN과 동일하다. 요청(120)에 포함되는 PSN은 응답(122)에 포함되는 PSN과 동일하다. 모두 동일한 큐 쌍의 세트를 사용하더라도 요청(116) 및 응답(118)에 포함된 PSN은 요청(120) 및 응답(122)에 포함된 PSN과 관계가 없다.
통상, 요청자 노드는 요청 패킷이 전송될 때마다 PSN을 1씩 증가시킨다. 응답자 노드는 수신된 요청의 PSN을, 요청 패킷이 수신될 때마다 응답자가 역시 1씩 증가시키는 자신의 PSN(예상된 PSN)과 비교한다. PSN이 일치하면, 다음에 응답자는 전송확인될 요청 패킷에 포함된 것과 동일한 PSN을 사용하여 그 요청에 관한 응답(전송확인)을 송신할 수 있다. 다음에 요청자에게로 돌아가서, 그 응답 패킷의 PSN은 그것이 요청자가 또 1만큼 증가시키는 요청자의 응답 PSN(예상된 PSN)과 동일한지를 알아보기위해 요청자의 응답 PSN과 비교된다.
요청자는 응답 패킷의 수신없이도 다중 패킷을 송신할 수 있다. 응답 패킷은 나중에 요청자에게 수신될 수도 있으나 이들 응답 패킷의 PSN은 요청자의 응답PSN 카운터와 비교된다. 요청 패킷 PSN의 전부가 응답자의 내부 PSN과 일치하고 응답 패킷 PSN의 전부가 요청자의 내부 PSN과 일치하면, 그 패킷 전부가 한 노드에서 다른 노드로(송신 큐에서 수신 큐로) 성공적으로 전송된 것이다.
신뢰가능한 동작을 보장하기 위해 응답자에서 검출되어 해결되어야 할 두 가지 비정상적인 상태가 존재한다. 첫번째 상태는 이중 패킷이고 두번째 상태는 무효 패킷이다.
이중 패킷은 요청자가 요청 패킷을 두번이상 송신할 경우 응답자에서 검출된다. 요청자는 그 패킷이 손실되었을 지도 모른다는 것을 검출할 경우 패킷을 두번이상 송신할 것이다. 도 2는 종래기술에 따른 이중 패킷의 전송을 도시하는 사다리형 도면이다. PSN=1을 포함하는 요청 패킷(204)이 엔드 노드(200)에 의해 전송되어 응답자, 즉 엔드 노드(202)에 의해 수신된다. PSN=1을 포함하는 응답, 즉 전송확인(206)은 손실되거나 지연된다. 이 경우, 요청자, 즉 엔드 노드(200)는 타임아웃 상태를 검출하고 동일한 PSN(PSN=1)을 포함하는 요청(208)을 재송신한다. 응답자, 즉 엔드 노드(202)가 그 PSN이 이중이라고 판단하면(즉, 그것이 엔드 노드(202)의 내부 카운트보다 '이전의' PSN을 가지면), 응답자는 동일한 PSN(PSN=1)을 갖는 응답을 전송확인(210)으로서 다시 송신한다.
무효 패킷은 응답자가 그 내부 카운트 보다 '앞서는' PSN을 갖는 패킷을 수신할 때 응답자에서 검출된다. 도 3은 종래기술에 따른 무효 패킷의 수신을 도시하는 사다리형 도면이다. 요청자, 즉 엔드 노드(300)는 PSN=1을 포함하는 요청(304), PSN=2를 갖는 요청(308) 및 PSN=3을 갖는 요청(310)을 전송한다. 요청(304)은 PSN=1을 포함하는 전송확인(306)에 의해 적절하게 전송확인된다. PSN=2를 포함하는 요청(308)은 조직내에서 손실된다. 따라서, 응답자, 즉 엔드 노드(302)는 PSN=1을 갖는 요청(304) 다음에 PSN=3을 갖는 요청(310)이 이어진다는 것을 알게된다. 따라서, 요청(310)은 무효 패킷이다. 이 경우, 응답자, 즉 엔드 노드(302)는 PSN=1을 갖는 요청 패킷에 대한 전송 확인(312)을 재송신하고, 요청자는 PSN=2을 갖는 요청(314)에 의해 시작하는 모든 패킷을 재송신한다.
요청자에서, 응답 패킷들은 유사한 규칙을 갖는다. 요청자에 의해 검출된 이중 패킷은 버려진다. 이 경우는 요청 패킷이 손실되지 않고 단지 요청자가 그것을 전송할 수 있을 정도로 충분히 긴 구조내에서 지연되는 경우에만 발생할 수 있다. 이중 PSN을 갖는 제 2 응답은 버려진다. 요청자에서의 무효 PSN은 다중 패킷 응답내의 하나 이상의 패킷이 조직내에서 손실될 경우에 발생할 수 있다. 이 경우, 요청자는 그 요청을 재송신한다.
PSN은 각 패킷에 포함되는 전송 헤더에 소정의 유한수의 비트를 사용한다. 따라서, PSN은 그들을 발생시키는 카운터가 최대값에서 0으로 감길 때마다 연속적으로 재사용된다. 패킷의 수보다 훨씬 더 큰 눈에 띄는 PSN을 사용함으로써, 요청자 및 응답자는 이중 및 무효 범위의 패킷 시퀀스 번호의 범위를 설정한다.
패킷의 이동중에 두개의 엔드 노드간의 논리적 접속이 단절(파기)되어 재설정될 경우 PSN에 문제가 발생한다. 이 경우, 이전의 실효 접속으로부터의 패킷이 응답자에 도달할 수도 있다. 응답자는 그것이 실제로 이전의 접속으로부터의 실효 패킷임에도 이 패킷을 유효 패킷으로 해석할 수 있다.
공지 기술에서 설명된 해결책 중의 하나는 두개의 특정한 큐 쌍 세트 사이에 설정된 논리적 접속을 파기하고 이들 동일한 두개의 큐 쌍 세트 사이에 논리적 접속을 재설정하는 사이에 대기 상태를 부가하는 것이다. 따라서, 엔드 노드는 이전의 접속으로부터 가능한 실효 패킷이 더이상 존재하지 않을 정도로 충분히 긴 시간동안 대기한다. 이 해결책은 상기 문제를 해결한다 할지라도, 특히 접속이 자주 파기되어 재설정될 때 엔드 노드의 성능에 상당한 영향을 준다.
따라서, 네트워크의 데이터 전송을 효율적으로 관리하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품이 필요하다.
본 발명은 일반적으로 컴퓨터 시스템의 분야에 관한 것이고, 보다 구체적으로는 네트워크에서 데이터 전송을 관리하는 데이터 처리 시스템, 방법 및 컴퓨터 프로그램 제품(product)에 관한 것이다.
도 1은 종래기술에 따른, 각각 큐 쌍을 포함하는 두개의 엔드 노드를 도시하는 도면.
도 2는 종래기술에 따른 이중 패킷의 전송을 도시하는 사다리형 도면.
도 3은 종래기술에 따른 무효 패킷의 수신을 도시하는 사다리형 도면.
도 4는 본 발명에 따라 데이터를 전송하는 채널 기준 조직 교환 구조를 구현하는 데이터 처리 시스템을 도시하는 도면.
도 5는 본 발명에 따른 호스트 처리기 노드의 기능적 블럭도.
도 6은 본 발명에 따른 예시적 요청 및 전송확인 트랜잭션(transaction)을 도시하는 분산 컴퓨터 시스템의 일부의 도면.
도 7은 본 발명에 따라 분산 처리간에 통신하기 위해 신뢰 접속(RC)을 사용하는 분산 컴퓨터 시스템의 일부를 도시하는 도면.
도 8은 본 발명에 따른 패킷을 도시하는 도면.
도 9는 본 발명에 따라 각 패킷에 인스턴스 번호를 포함시키는 것을 도시하는 고레벨 흐름도.
도 10은 본 발명에 따라 엔드 노드가 수신된 패킷이 현재의 논리적 접속 동안 전송되었는지를 판단하는 것을 도시하는 고레벨 흐름도.
제 1 측면으로, 본 발명은 데이터 처리 시스템의 제 1 엔드 노드로부터 제 2 엔드 노드로 전송되는 데이터를 관리하는 방법으로서, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 데이터를 전송하기 전에 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 설정하는 단계와, 인스턴스 번호(instance number)를 상기 논리적 접속과 연관시키는 단계와, 상기 논리적 접속이 계속 설정되어 있는 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷에 상기 인스턴스 번호를 포함시키는 단계를 포함하고, 상기 인스턴스 번호는 상기 논리적 접속 동안 일정하게 유지되는 데이터 관리 방법을 제공한다.
양호하게는 상기 방법은 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 상기 논리적 접속을 재설정하는 단계와, 상기 인스턴스 번호를 증가시켜 증가된 인스턴스 번호를 상기 재설정된 논리적 접속과 연관시키는 단계와, 상기 재설정된 논리적 접속 중에 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷에 상기 증가된 인스턴스 번호를 포함시키는 단계를 더 포함하고, 상기 증가된 인스턴스 번호는 상기 재설정된 논리적 접속 동안 일정하게 유지된다.
양호하게는, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 설정하는 단계는 상기 제 1 엔드 노드의 큐 쌍을 상기 제 2 엔드 노드의 큐 쌍과 연관시키는 단계를 더 포함한다.
양호하게는, 상기 제 1 엔드 노드의 큐 쌍을 상기 제 2 엔드 노드의 큐 쌍과 연관시키는 단계는, 상기 제 1 엔드 노드의 큐 쌍의 테이블을 설정하는 단계와, 상기 제 1 엔드 노드의 상기 큐 쌍과 상기 제 2 엔드 노드의 큐 쌍과의 연관을 나타내는 표시를 상기 테이블내에 저장하는 단계를 더 포함한다.
양호하게는, 상기 방법은, 특정 논리적 접속을 사용하여 상기 제 2 엔드 노드로부터 상기 제 1 엔드 노드로 패킷을 전송하는 단계와, 상기 제 1 엔드 노드를 사용하여 상기 패킷을 수신하는 단계와, 상기 테이블을 사용하여 상기 특정 논리적 접속이 이전에 설정되었는지를 판단하는 단계를 더 포함한다.
양호하게는, 상기 테이블을 사용하여 상기 특정 논리 접속이 이전에 설정되었는지를 판단하는 상기 단계는, 상기 제 1 엔드 노드의 큐 쌍과 상기 제 2 엔드 노드의 큐 쌍과의 연관을 나타내는 표시가 상기 테이블에 저장되어 있는지를 판단하는 단계를 더 포함한다.
양호하게는, 상기 방법은 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷의 전송 헤더에 상기 인스턴스 번호를 포함시키는 단계를 더 포함한다.
양호하게는, 상기 방법은 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷의 전송 헤더의 시퀀스 번호 필드에 상기 인스턴스 번호를 포함시키는 단계를 더 포함한다.
양호하게는, 상기 방법은 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 패킷들에 포함된 각 시퀀스 번호에 상기 인스턴스 번호를 포함시키는 단계를 더 포함한다.
양호하게는, 상기 방법은, 상기 논리적 접속이 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이의 제 1 논리적 접속인지를 판단하는 단계와, 상기 논리적 접속이 제 1 논리적 접속이라는 판단에 응답하여, 인스턴스 번호를 상기 논리적 접속에 연관시키는 단계와, 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷에 상기 인스턴스 번호를 포함시키는 단계로서, 상기 인스턴스 번호는 상기 논리적 접속 동안 일정하게 유지되는 단계와, 상기 인스턴스 번호를 현재의 인스턴스 번호로 사용하는 단계와, 상기 논리적 접속이 제 1 논리적 접속이 아니라는 판단에 응답하여, 상기 현재의 인스턴스 번호를 증가시키는 단계와, 상기 증가된 인스턴스 번호를 현재의 인스턴스 번호로 사용하는 단계와, 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷에 상기 증가된 인스턴스 번호를 포함시키는 단계를 더 포함한다.
양호하게는, 상기 방법은, 상기 논리적 접속을 손실하는 단계와, 상기 논리적 접속의 손실과 상기 논리적 접속의 재설정 사이에 어떠한 대기 상태도 실행시키지 않고 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 상기 논리적 접속을 재설정하는 단계를 더 포함한다.
양호하게는, 상기 방법은, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로 패킷을 전송하는 단계와, 상기 패킷에 현재의 인스턴스 번호를 포함시키는 단계를 더 포함한다.
양호하게는, 상기 방법은, 상기 제 2 엔드 노드에 의해 패킷을 수신하는 단계와, 상기 제 2 엔드 노드를 사용하여 상기 수신된 패킷에 포함된 인스턴스 번호를 식별하는 단계와, 현재의 인스턴스 번호를 판단하는 단계와, 상기 수신된 패킷에 포함된 상기 인스턴스 번호가 상기 현재의 인스턴스 번호인지를 판단하는 단계와, 상기 수신된 패킷에 포함된 인스턴스 번호가 상기 현재의 인스턴스 번호라는 판단에 응답하여, 상기 제 2 엔드 노드에 의해 상기 패킷을 정상적으로 처리하는 단계와, 상기 수신된 패킷에 포함된 인스턴스 번호가 상기 현재의 인스턴스 번호가 아니라는 판단에 응답하여, 상기 제 2 엔드 노드에 의해 상기 패킷을 폐기하는 단계를 더 포함한다.
양호하게는, 상기 방법은, 상기 논리적 접속을 설정한 후, 상기 제 1 엔드 노드에 의해 시퀀스 번호를 설정하는 단계와, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로의 패킷의 각각의 전송후에 상기 시퀀스 번호를 증가시키는 단계와, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로의 패킷의 각각의 전송후에, 상기 증가된 시퀀스 번호와 같은 현재의 시퀀스 번호를 설정하는 단계와, 상기 제 1엔드 노드로부터 상기 제 2 엔드 노드로 전송된 각 패킷에 현재의 시퀀스 번호를 포함시키는 단계를 더 포함한다.
제 2 측면으로, 본 발명은, 데이터 처리 시스템의 제 1 엔드 노드로부터 제 2 엔드 노드로 전송된 데이터를 관리하는 방법으로서, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 데이터를 전송하기 전에, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 설정하는 단계와, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로 전송된 각 패킷에, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로 패킷이 전송될 때마다 증가되는 현재의 시퀀스 번호를 포함시키는 단계와, 인스턴스 번호를 상기 논리적 접속과 연관시키는 단계와, 각 시퀀스 번호에 상기 인스턴스 번호를 포함시키는 단계를 포함하고, 상기 인스턴스 번호는 상기 논리적 접속 동안 일정하게 유지되는 데이터 관리 방법을 제공한다.
양호하게는, 상기 방법은, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 상기 논리적 접속을 재설정하는 단계와, 상기 인스턴스 번호를 증가시켜 증가된 인스턴스 번호를 상기 재설정된 논리적 접속과 연관시키는 단계와, 상기 증가된 인스턴스 번호를 각 시퀀스 번호에 포함시키는 단계를 더 포함하고, 상기 증가된 인스턴스 번호는 상기 재설정된 논리적 접속 중에 일정하게 유지된다.
양호하게는, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 설정하는 단계는, 상기 제 1 엔드 노드의 큐 쌍을 상기 제 2 엔드 노드의 큐 쌍과 연관시키는 단계를 더 포함한다.
양호하게는, 상기 제 1 엔드 노드의 큐 쌍을 상기 제 2 엔드 노드의 큐 쌍과연관시키는 상기 단계는, 상기 제 1 엔드 노드의 큐 쌍의 테이블을 설정하는 단계와, 상기 제 1 엔드 노드의 상기 큐 쌍과 상기 제 2 엔드 노드의 큐 쌍과의 연관을 나타내는 표시를 상기 테이블 내에 저장하는 단계를 더 포함한다.
양호하게는, 상기 방법은, 특정 논리적 접속을 사용하여 상기 제 2 엔드 노드로부터 상기 제 1 엔드 노드로 패킷을 전송하는 단계, 상기 제 1 엔드 노드를 사용하여 상기 패킷을 수신하는 단계와, 상기 테이블을 사용하여 상기 특정 논리적 접속이 이전에 설정되었는지를 판단하는 단계를 더 포함한다.
양호하게는, 상기 테이블을 사용하여 상기 특정 논리적 접속이 이전에 설정되었는지를 판단하는 상기 단계는, 상기 제 1 엔드 노드의 큐 쌍과 상기 제 2 엔드 노드의 큐 쌍과의 연관을 나타내는 표시가 상기 테이블에 저장되어 있는지를 판단하는 단계를 더 포함한다.
양호하게는, 상기 방법은, 상기 논리적 접속이 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이의 제 1 논리적 접속인지를 판단하는 단계와, 상기 논리적 접속이 제 1 논리적 접속이라는 판단에 응답하여, 인스턴스 번호를 상기 논리적 접속과 연관시키는 단계와, 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 시퀀스 번호에 상기 인스턴스 번호를 포함시키는 단계와, 상기 인스턴스 번호를 현재의 인스턴스 번호로 사용하는 단계와, 상기 논리적 접속이 제 1 논리적 접속이 아니라는 판단에 응답하여, 상기 현재의 인스턴스 번호를 증가시키는 단계와, 상기 증가된 현재의 인스턴스 번호를 현재의 인스턴스 번호로 사용하는 단계와, 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 시퀀스 번호에 상기 증가된 인스턴스 번호를 포함시키는 단계를 더 포함한다.
양호하게는, 상기 방법은, 상기 논리적 접속을 손실하는 단계 및; 상기 논리적 접속의 손실과 상기 논리적 접속의 재설정 사이에 어떠한 대기 상태도 실행시키지 않고 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 상기 논리적 접속을 재설정하는 단계를 더 포함한다.
양호하게는, 상기 방법은, 상기 제 2 엔드 노드에 의해 패킷을 수신하는 단계와, 상기 제 2 엔드 노드를 사용하여 상기 수신된 패킷에 포함된 인스턴스 번호를 식별하는 단계와, 현재의 인스턴스 번호를 판단하는 단계와; 상기 수신된 패킷에 포함된 상기 인스턴스 번호가 상기 현재의 인스턴스 번호인지를 판단하는 단계와, 상기 수신된 패킷에 포함된 상기 인스턴스 번호가 상기 현재의 인스턴스 번호라는 판단에 응답하여, 상기 제 2 엔드 노드에 의해 상기 패킷을 정상적으로 처리하는 단계와, 상기 수신된 패킷에 포함된 상기 인스턴스 번호가 상기 현재의 인스턴스 번호가 아니라는 판단에 응답하여, 상기 제 2 엔드 노드에 의해 상기 패킷을 폐기하는 단계를 더 포함한다.
제 3 측면으로, 본 발명은, 데이터 처리 시스템의 제 1 엔드 노드로부터 제 2 엔드 노드로 송신된 데이터를 관리하는 데이터 처리 시스템으로서, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 데이터를 전송하기 전에 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 설정하는 수단과, 인스턴스 번호를 상기 논리적 접속과 연관시키는 수단과, 상기 논리적 접속이 계속 설정되어 있는 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷에 상기 인스턴스 번호를 포함시키는 수단을 포함하고, 상기 인스턴스 번호는 상기 논리적 접속 동안 일정하게 유지되는 데이터 처리 시스템을 제공한다.
양호하게는, 상기 시스템은, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 상기 논리적 접속을 재설정하는 수단과, 상기 인스턴스 번호를 증가시켜 증가된 인스턴스 번호를 상기 재설정된 논리적 접속과 연관시키는 수단과, 상기 재설정된 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷에 상기 증가된 인스턴스 번호를 포함시키는 수단을 더 포함하고, 상기 증가된 인스턴스 번호는 상기 재설정된 논리적 접속 동안 일정하게 유지된다.
양호하게는, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 설정하는 상기 수단은, 상기 제 1 엔드 노드의 큐 쌍을 상기 제 2 엔드 노드의 큐 쌍과 연관시키는 수단을 더 포함한다.
양호하게는, 상기 제 1 엔드 노드의 큐 쌍을 상기 제 2 엔드 노드의 큐 쌍과 연관시키는 상기 수단은, 상기 제 1 엔드 노드의 큐 쌍의 테이블을 설정하는 수단과, 상기 제 1 엔드 노드의 상기 큐 쌍과 상기 제 2 엔드 노드의 큐 쌍과의 연관을 나타내는 표시를 상기 테이블내에 저장하는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 특정 논리적 접속을 사용하여 상기 제 2 엔드로부터 상기 제 1 엔드로 패킷을 전송하는 수단과, 상기 제 1 엔드 노드를 사용하여 상기 패킷을 수신하는 수단과, 상기 테이블을 사용하여 상기 특정 논리적 접속이 이전에 설정된 것인지를 판단하는 수단을 더 포함한다.
양호하게는, 상기 특정 논리적 접속이 이전에 설정된 것인지를 판단하는 상기 수단은, 상기 제 1 엔드 노드의 큐 쌍과 상기 제 2 엔드 노드의 큐 쌍과의 연관을 나타내는 표시가 상기 테이블에 저장되어 있는지를 판단하는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷의 전송 헤더에 상기 인스턴스 번호를 포함시키는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷의 전송 헤더의 시퀀스 번호 필드에 상기 인스턴스 번호를 포함시키는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 패킷들에 포함된 각 시퀀스 번호에 상기 인스턴스 번호를 포함시키는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 논리적 접속이 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이의 제 1 논리적 접속인지를 판단하는 수단과, 상기 논리적 접속이 제 1 논리적 접속이라는 판단에 응답하여, 인스턴스 번호를 상기 논리적 접속과 연관시키는 수단과, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷에 상기 인스턴스 번호를 포함시키는 수단으로서, 상기 인스턴스 번호는 상기 논리적 접속 동안 일정하게 유지되는 수단과, 상기 인스턴스 번호를 현재의 인스턴스 번호로 사용하는 수단과, 상기 논리적 접속이 제 1 논리적 접속이 아니라는 판단에 응답하여, 상기 현재의 인스턴스 번호를 증가시키는 수단과, 상기 증가된 현재의 인스턴스 번호를 현재의 인스턴스 번호로 사용하는 수단과, 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 송신된 각 패킷에 상기 증가된 현재의 인스턴스 번호를 포함시키는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 논리적 접속을 손실시키는 수단과; 상기 논리적 접속의 손실과 상기 논리적 접속의 재설정 사이에 어떠한 대기 상태도 실행시키지 않고 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 상기 논리적 접속을 재설정하는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로 패킷을 전송하는 수단과, 상기 패킷에 현재의 인스턴스 번호를 포함시키는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 제 2 엔드 노드에 의해 패킷을 수신하는 수단과, 상기 제 2 엔드 노드를 사용하여 상기 수신된 패킷에 포함된 인스턴스 번호를 식별하는 수단과, 현재의 인스턴스 번호를 판단하는 수단과, 상기 수신된 패킷에 포함된 상기 인스턴스 번호가 상기 현재의 인스턴스 번호인지를 판단하는 수단과, 상기 수신된 패킷에 포함된 상기 인스턴스 번호가 상기 현재의 인스턴스 번호라는 판단에 응답하여, 상기 제 2 엔드 노드에 의해 상기 패킷을 정상적으로 처리하는 수단과, 상기 수신된 패킷에 포함된 상기 인스턴스 번호가 상기 현재의 인스턴스 번호가 아니라는 판단에 응답하여, 상기 제 2 엔드 노드에 의해 상기 패킷을 폐기하는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 논리적 접속을 설정한 후, 상기 제 1 엔드 노드에 의해 시퀀스 번호를 설정하는 수단과, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로의 패킷의 각각의 전송 후에 상기 시퀀스 번호를 증가시키는 수단과, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로의 패킷의 각각의 전송후에, 상기 증가된 시퀀스 번호와 같은 현재의 시퀀스 번호를 설정하는 수단과, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로 전송된 각 패킷에 현재의 시퀀스 번호를 포함시키는 수단을 더 포함한다.
제 4 측면으로, 본 발명은, 데이터 처리 시스템의 제 1 엔드 노드로부터 제 2 엔드 노드로 전송된 데이터를 관리하는 시스템으로서, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 데이터를 전송하기 전에 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 설정하는 수단과, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로 전송된 각 패킷에, 상기 제 1 엔드 노드로부터 상기 제 2 엔드 노드로 패킷이 전송될 때마다 증가되는 현재의 시퀀스 번호를 포함시키는 수단과, 인스턴스 번호를 상기 논리적 접속과 연관시키는 수단과, 각 시퀀스 번호에 상기 인스턴스 번호를 포함시키는 수단을 포함하고, 상기 인스턴스 번호는 상기 논리적 접속 동안 일정하게 유지되는 데이터 관리 시스템을 제공한다.
양호하게는, 상기 시스템은, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 상기 논리적 접속을 재설정하는 수단과, 상기 인스턴스 번호를 증가시켜 증가된 인스턴스 번호를 상기 재설정된 논리적 접속과 연관시키는 수단과, 상기 증가된 인스턴스 번호를 각 시퀀스 번호에 포함시키는 수단을 더 포함하고, 상기 증가된인스턴스 번호는 상기 재설정된 논리적 접속 동안 일정하게 유지된다.
양호하게는, 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 재설정하는 수단은, 상기 제 1 엔드 노드의 큐 쌍을 상기 제 2 엔드 노드의 큐 쌍과 연관시키는 수단을 더 포함한다.
양호하게는, 상기 제 1 엔드 노드의 큐 쌍을 상기 제 2 엔드 노드의 큐 쌍과 연관시키는 수단은, 상기 제 1 엔드 노드의 큐 쌍의 테이블을 설정하는 수단과, 상기 제 1 엔드 노드의 큐 쌍과 상기 제 2 엔드 노드의 큐 쌍과의 연관을 나타내는 표시를 상기 테이블내에 저장하는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 특정 논리적 접속을 사용하여 상기 제 2 엔드 노드로부터 상기 제 1 엔드 노드에 패킷을 전송하는 수단과, 상기 제 1 엔드 노드를 사용하여 상기 패킷을 수신하는 수단과, 상기 테이블을 사용하여 상기 특정 논리적 접속이 이전에 설정되었는지를 판단하는 수단을 더 포함한다.
양호하게는, 상기 테이블을 사용하여 상기 특정 논리적 접속이 이전에 설정되었는지를 판단하는 상기 수단은, 상기 제 1 엔드 노드의 큐 쌍과 상기 제 2 엔드 노드의 큐 쌍과의 연관을 나타내는 표시가 상기 테이블에 저장되어 있는지를 판단하는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 논리적 접속이 제 1 논리적 접속인지를 판단하는 수단과, 상기 논리적 접속이 제 1 논리적 접속이라는 판단에 응답하여, 인스턴스 번호를 상기 논리적 접속과 연관시키는 수단과, 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 시퀀스 번호에 상기인스턴스 번호를 포함시키는 수단과, 상기 인스턴스 번호를 현재의 인스턴스 번호로 사용하는 수단과, 상기 논리적 접속이 제 1 논리적 접속이 아니라는 판단에 응답하여, 상기 현재의 인스턴스 번호를 증가시키는 수단과, 상기 증가된 현재의 인스턴스 번호를 현재의 인스턴스 번호로 사용하는 수단과, 상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 시퀀스 번호에 상기 증가된 현재의 인스턴스 번호를 포함시키는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 논리적 접속을 손실시키는 수단 및; 상기 논리적 접속의 손실과 상기 논리적 접속의 재설정 사이에 어떠한 대기 상태도 실행시키지 않고 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 상기 논리적 접속을 재설정하는 수단을 더 포함한다.
양호하게는, 상기 시스템은, 상기 제 2 엔드 노드에 의해 패킷을 수신하는 수단과, 상기 제 2 엔드 노드를 사용하여 상기 수신된 패킷에 포함된 인스턴스 번호를 식별하는 수단과; 현재의 인스턴스 번호를 판단하는 수단과, 상기 수신된 패킷에 포함된 인스턴스 번호가 상기 현재의 인스턴스 번호인지를 판단하는 수단과, 상기 수신된 패킷에 포함된 상기 인스턴스 번호가 상기 현재의 인스턴스 번호라는 판단에 응답하여, 상기 제 2 엔드 노드에 의해 상기 패킷을 정상적으로 처리하는 수단과, 상기 수신된 패킷에 포함된 상기 인스턴스 번호가 상기 현재의 인스턴스 번호가 아니라는 판단에 응답하여, 상기 제 2 엔드 노드에 의해 상기 패킷을 패기하는 수단을 더 포함한다.
제 5 측면으로, 본 발명은, 컴퓨터 시스템에 로딩되어 실행될 때 상기 제 1및 제 2 측면의 방법들 중 임의의 방법의 단계들을 수행하는 컴퓨터 프로그램을 제공한다. 이 컴퓨터 프로그램의 양호한 특징들은 제 1 및 제 2 측면의 방법들의 양호한 단계들에 대응한다.
데이터 처리 시스템에 포함된 제 1 엔드 노드로부터 제 2 엔드 노드로 송신된 데이터를 관리하기 위한 데이터 처리 시스템에서의 방법, 시스템 및 컴퓨터 프로그램 제품이 개시된다. 엔드 노드들 사이에 데이터를 전송하기 전에 제 1 엔드 노드와 제 2 엔드 노드 사이에 논리적 접속이 설정된다. 인스턴스 번호가 이 특정 논리적 접속과 연관된다. 인스턴스 번호는 이 논리적 접속이 계속 설정되는 동안 엔드 노드들 사이에 전송된 각 패킷에 포함된다. 이 인스턴스 번호는 이 논리적 접속 동안 일정하게 유지된다. 인스턴스 번호는 이들 엔드 노드들 사이의 논리적 접속이 재설정될 때마다 증가시키는 것등에 의해 변경된다. 따라서, 각 패킷은 논리적 접속의 특정 인스턴스와 연관된다. 패킷이 수신될 때, 그 패킷에 포함된 인스턴스 번호는 그 패킷이 엔드 노드들 사이의 이전의 논리적 접속 동안 전송된 실효 패킷인지를 판단하는 데에 사용될 수 있다.
양호한 실시예에서, 인스턴스 번호는 시퀀스 번호의 일부로 포함된다. 시퀀스 번호로서 각 패킷내에 지정되는 비트들은 본 발명에 따라 시퀀스 번호 비트와 인스턴스 번호 비트로 분할된다. 특정 논리적 접속 동안 모든 패킷들에 대해 일정하게 유지되는 인스턴스 번호는 인스턴스 번호 비트들을 사용하여 표시된다. 각각의 전송된 패킷에 대해 증가되는 시퀀스 번호는 시퀀스 번호 비트들을 사용하여 표시된다.
본 발명의 상기 및 추가적 목적, 특징 및 이점은 다음의 상세한 설명으로부터 명백해 질 것이다.
본 발명의 양호한 예시적 실시예는, 제 1 엔드 노드로부터 제 2 엔드 노드로 전송된 데이터를 관리하기 위한 방법, 시스템 및 데이터 처리 시스템내의 컴퓨터 프로그램 제품을 제공한다. 엔드 노드들 사이에 데이터를 전송하기 전에 제 1 엔드 노드와 제 2 엔드 노드 사이에 논리적 접속이 설정된다. 논리적 접속은 제 1 엔드 노드에 포함된 특정 큐 쌍과 제 2 엔드 노드에 포함된 특정 큐 쌍 사이에 설정된다.
인스턴스 번호가 이들 두개의 특정 큐 쌍 세트 사이에 설정된 논리적 접속과 연관된다. 인스턴스 번호는 이 논리적 접속이 계속 설정되는 동안 엔드 노드들 사이에서 전송된 각 패킷에 포함된다. 이들 두개의 큐 쌍 세트 사이에 논리적 접속이 재설정될 때마다, 인스턴스 번호는 증가된다. 패킷들은 또한 패킷이 전송될 때마다 증가되는 패킷 시퀀스 번호들을 포함한다.
본 발명의 양호한 예시적 실시예에서는, 인스턴스 번호를 전통적인 시퀀스 번호의 일부로서 구현한다. 공지 기술의 시퀀스 번호에 대해 확보된 비트 세트는 시퀀스 번호 비트 세트와 인스턴스 번호 비트 세트로 분할된다. 본 발명의 인스턴스 번호는 인스턴스 번호 비트 세트에 의해 표시된다. 본 발명의 시퀀스 번호는 시퀀스 번호 비트 세트에 의해 표시된다. 따라서, 본 발명에 따르면, 전통적인 종래기술의 시퀀스 번호는 인스턴스 번호와 시퀀스 번호를 모두 표시하는 데에 사용된다. 인스턴스 번호 비트 세트는 동일한 논리적 접속 동안 내내 일정하게 유지된다. 시퀀스 번호 비트 세트는 종래기술에서 설명된 것처럼 패킷이 전송될 때마다증가된다.
최대 시퀀스 번호가 증가될 때, 시퀀스 번호 비트 세트는 종래 기술에서 공지된 방식으로 0으로 되감긴다. 인스턴스 번호는 증가되거나 0으로 되감기는 시퀀스 번호에 의해 영향받지 않는다. 논리적 접속이 재설정되지 않은 한 인스턴스 번호는 일정하게 유지된다. 따라서, 전통적인 시퀀스 번호 비트의 일부가 인스턴스 번호를 위해 확보되므로, 최대 시퀀스 번호는 시퀀스 번호 비트 전부에 의해 표현될 수 있었던 번호보다 작다.
본 발명의 양호한 예시적 실시예는 엔드 노드들, 스위치들, 라우터들 및 이들 성분들을 상호접속하는 링크들을 갖는 분산 컴퓨터 시스템을 제공한다. 각 엔드 노드는 송신 및 수신 큐 쌍을 사용하여 메시지들을 송수신한다. 엔드 노드들은 메시지를 패킷들로 분할하고, 그 패킷들을 링크들을 통해 전송한다. 스위치들과 라우터들은 엔드 노드들을 상호접속하고 패킷들을 적절한 엔드 노드로 인도한다. 엔드 노드들은 목적지에서 그 패킷들을 메시지로 재합성한다.
본 발명의 양호한 실시예에서, 큐 쌍들은 인스턴스 번호를 특정 큐 쌍 세트 사이의 논리적 접속과 연관시키는데에 사용된다. 제 1 엔드 노드와 제 2 엔드 노드 사이에 논리적 접속이 처음 설정될 때, 통상 큐 쌍 테이블을 사용하여 제 1 엔드 노드의 큐 쌍은 제 2 엔드 노드의 큐 쌍과 연관된다. 따라서, 두개의 큐 쌍 사이에 논리적 접속이 설정될 때마다, 이들 두개의 큐 쌍 세트가 이미 연관되었는지를 판단하기 위해 큐 쌍 테이블이 사용될 수 있다. 이들 두개의 큐 쌍 세트가 이미 연관되었다면, 이들 두개의 큐 쌍 세트 사이의 논리적 접속은 재설정되고 인스턴스 번호가 증가된다.
도 4는 본 발명에 따라 데이터를 전송하는 채널 기준 조직 교환 구조를 구현하는 데이터 처리 시스템을 도시한다. 본 발명을 구현하는 컴퓨터 시스템은 하나의 처리기와 소수의 입출력(I/O) 어댑터를 갖는 작은 서버에서 수 백 또는 수 천개의 처리기와 수천개의 I/O 어댑터를 갖는 광대한 병렬 수퍼 컴퓨터 시스템에 이르는 범위가 될 수 있다. 또한, 본 발명은 인터넷 또는 인트라넷에 의해 접속된 원격 컴퓨터 시스템의 기반에서 구현될 수 있다.
데이터 처리 시스템(402)은 기억 영역 네트워크(424)를 포함한다. 기억 영역 네트워크는 "서브넷"으로도 언급될 수 있다. 서브넷은 단일 유닛으로 다루어지는 엔드 노드들과 종속접속된 스위치들의 그룹이다. 통상, 서브넷은 단일의 지리적 또는 기능적 영역을 차지한다. 예컨대, 한 방(room)의 단일 컴퓨 컴퓨터 시스템이 서브넷으로 규정될 수 있다.
데이터 처리 시스템(402)은 분산 컴퓨터 시스템 내에서 노드들을 상호접속하는 고대역 저지연 네트워크를 포함한다. 노드는 네트워크의 하나이상의 링크에 부착되어 네트워크내에서 메시지의 출발지 및/또는 목적지를 형성하는 임의의 성분이다. 도시된 예에서, 데이터 처리 시스템(402)은 호스트 처리기 노드(406), 호스트 처리기 노드(408), 중복 어레이 독립 디스크(redundant array independent disk : RAID) 서브 시스템 노드(462) 및, I/O 섀시 노드(412) 형태의 노드들을 포함한다. 도 4에 도시된 노드들은 단지 예시를 위한 것들이며, 따라서, SAN(424)은 임의 개수 및 임의 형태의 독립 처리기 노드, I/O 어댑터 노드 및 I/O 소자 노드를 접속시킬 수 있다. 노드들 중 임의의 한 노드는 엔드 노드로 기능하는데, 본 명세서에서 이것은 SAN(424)에서 메시지를 발생시키고 마지막에 소비하는 소자인 것으로 규정된다.
SAN(424)은 I/O 및 프로세서간 통신(IPC)을 둘다 지원하는 통신 및 관리 기반을 포함한다. SAN(424)은 많은 소자가 안전한 원격 관리 환경에서 고대역 저지연을 갖는 데이터를 동시에 전송할 수 있도록 하는 통신 교환 조직을 포함한다. 엔드 노드들은 다중 포트들을 통해 통신하고 SAN(424)을 통해 다중 경로들을 사용할 수 있다.
SAN(424)은 호스트 채널 어댑터들(HCAs)(426, 428, 430, 432), 타겟 채널 어댑터들(TCAs)(458, 460, 468), 스위치들(414, 416, 452) 및 라우터(420)를 포함한다. 스위치는 다중 링크들을 함께 접속시키는 소자이며, 작은 헤더 목적지 지역 식별기(Destination Local Identifier : DLID) 필드를 사용하여 서브넷내에서 한 링크에서 다른 링크로 패킷의 라우팅을 허용한다. 일반적으로, 스위치는 상기 스위치상의 한 포트에서 임의의 다른 포트로 패킷들을 라우팅할 수 있다.
라우터는 다중 서브넷들을 함께 접속시키는 소자이며, 큰 헤더 목적지 광범위 단일 식별기(Destination Globally Unique Identifier : DGUID)를 사용하여 제 1 서브넷의 한 링크에서 제 2 서브넷의 다른 링크로 패킷들을 라우팅할 수 있다.
링크는 엔드 노드들, 스위치들 또는 라우터들과 같은 임의의 두개의 네트워크 조직 요소 사이의 완전한 이중 채널이다. 예시에 적합한 링크들은 동 케이블, 광 케이블 및, 백플레인 및 인쇄 회로 보드상의 인쇄 회로 동 트레이스을 포함하지만 여기에 한정되는 것은 아니다.
데이터 처리 시스템(402)의 각 노드는 적어도 하나의 채널 어댑터(CA)를 포함한다. 각 채널 어댑터는 기억 영역 네트워크(SAN)(424)를 사용하여 전송된 소스 또는 싱크 패킷들에 대해 충분히 상세하게 채널 어댑터 인터페이스를 구현하는 엔드이다. SAN(424)은 또한 조직으로 언급될 수도 있다. 처리기 노드에 포함된 채널 어댑터는 호스트 채널 어댑터(HCA)이다. 처리기 노드 이외의 노드에 포함된 채널 어댑터는 타겟 채널 어댑터(TCA)이다.
호스트 처리기 노드(406)는 호스트 채널 어댑터(426) 및 호스트 채널 어댑터(428) 형태의 채널 어댑터들을 포함한다. 호스트 처리기 노드(408)는 호스트 채널 어댑터(430) 및 호스트 채널 어댑터(432)를 포함한다. 호스트 처리기 노드(406)는 또한 중앙 처리 유닛들(434, 436) 및, 버스 시스템(442)에 의해 상호접속된 메모리(440)를 포함한다. 마찬가지로, 호스트 처리기 노드(408)는 중앙 처리 유닛들(444, 446) 및, 버스 시스템(450)에 의해 상호접속된 메모리(448)를 포함한다.
호스트 채널 어댑터(426)는 스위치(414)에 대한 접속을 제공한다. 호스트 채널 어댑터(428)는 스위치들(414, 416)에 대한 접속을 제공한다. 호스트 채널 어댑터(430)는 스위치들(414, 416)에 대한 접속을 제공한다. 그리고, 호스트 채널 어댑터(432)는 스위치(416)에 대한 접속을 제공한다.
양호하게는, 호스트 채널 어댑터들은 하드웨어로 구현된다. 이 구현에서, 호스트 채널 어댑터 하드웨어는 중앙 처리 유닛 및 I/O 어댑터 통신 오버헤드를 상당히 덜어준다. 호스트 채널 어댑터의 이 하드웨어 구현은 또한 통신 프로토콜과관련된 전통적인 오버헤드 없이 교환 네트워크를 통한 다수의 동시 통신을 허용한다.
I/O 섀시(412)는 SAN(424) 및 다중 I/O 모듈들(454, 456)에 어댑터 카드들을 연관시키기 위해 I/O 어댑터 백플레인에 I/O 스위치(452)를 포함한다. 이 예에서, I/O 모듈들은 어댑터 카드의 형태를 취한다.
어댑터 카드들은 SCSI 어댑터 카드, 섬유 채널 중심 및 섬유 채널 조정 루프(FC-AL) 소자들에 대한 어댑터 카드, 이서넷(Ethernet) 어댑터 카드, 그래픽 어댑터 카드 또는 비디오 어댑터 카드를 포함할 수도 있다.
각 I/O 모듈은 타겟 채널 어댑터를 포함한다. I/O 모듈(454)은 타겟 채널 어댑터(TCA)(458)를 포함하고, I/O 모듈(456)은 타겟 채널 어댑터(TCA)(460)를 포함한다.
또한 데이터 처리 시스템(402)에는 RAID 서브 시스템 노드(462)가 포함된다. 노드(462)는 처리기(464), 메모리(466), 타겟 채널 어댑터(TCA)(468) 및, 다중 중복 및/또는 스트립된(striped) 기억 디스크 유닛(470)을 포함한다. 타겟 채널 어댑터(468)는 전기능 호스트 채널 어댑터가 될 수 있다.
SAN(424)은 오퍼레이팅 시스템 커널 처리를 사용하지 않고 제로 처리기 복사 데이터 전송을 갖는 분산 컴퓨터 시스템의 I/O 및 처리기간 통신(IPC) 소비자를 제공하고, 신뢰가능한 오류없는 통신을 제공하는 하드웨어를 사용한다.
도 5는 본 발명에 따른 호스트 처리기 노드의 기능적 블럭도이다. 호스트 처리기 노드(500)는 도 4에 도시된 호스트 처리기 노드(406 또는 408)와 같은 호스트 처리기 노드의 예이다.
호스트 처리기 노드(500)는 호스트 처리기 노드(500)상에서 처리들을 실행하는 소비자의 세트(502, 504, 506, 508)를 포함한다. 호스트 처리기 노드(500)는 또한 채널 어댑터들(510, 512)을 포함한다. 채널 어댑터(510)는 포트들(514, 516)을 포함하고, 채널 어댑터(512)는 포트들(518, 520)을 포함한다. 각 포트는 링크에 접속된다.
소비자들(502-508)은 동사 인터페이스(verbs interface)(522) 및 메시지 및 데이터 서비스(524)를 통해 SAN(424)과 같은 SAN에 메시지를 전송한다. 동사 인터페이스는 근본적으로 호스트 채널 어댑터의 기능성의 요약 표현이다. 오퍼레이팅 시스템은 그 프로그래밍 인터페이스를 통해 동사 기능성의 일부 또는 전부를 노출시킬 수 있다. 이 인터페이스는 호스트의 행동을 규정한다. 메시지 및 데이터 서비스(524)는 동사 계층보다 더 높은 레벨의 인터페이스이며, 채널 어댑터들(510, 512)을 통해 수신된 메시지 및 데이터를 처리하는데에 사용된다. 메시지 및 데이터 서비스(524)는 메시지 및 다른 데이터를 처리하도록 소비자들(502-508)에 인터페이스를 제공한다.
도 6은 본 발명에 따른 예시적 요청 및 전송 확인 트랜잭션을 도시하는 분산 컴퓨터 시스템의 일부를 도시한다. 도 6의 분산 컴퓨터 시스템(600)은 호스트 처리기 노드(602) 및 호스트 처리기 노드(604)를 포함한다. 호스트 처리기 노드(602)는 호스트 채널 어댑터(606)를 포함한다. 호스트 처리기 노드(604)는 호스트 채널 어댑터(608)를 포함한다. 도 6의 분산 컴퓨터 시스템은 스위치(612) 및 스위치(614)를 포함하는 SAN 조직(610)을 포함한다. SAN 조직은 호스트 채널 어댑터(606)를 스위치(612)에 연관시키는 링크, 스위치(612)를 스위치(614)에 연관시키는 링크 및, 호스트 채널 어댑터(608)를 스위치(614)에 연관시키는 링크를 포함한다.
예시적 트랜잭션에서, 호스트 처리기 노드(602)는 클라이언트 처리 A를 포함한다. 호스트 처리기 노드(604)는 클라이언트 처리 B를 포함한다. 클라이언트 처리 A는 큐 쌍(620)을 통해 호스트 채널 어댑터(606)와 상호작용한다. 클라이언트 처리 B는 큐 쌍(622)을 통해 호스트 채널 어댑터(608)와 상호작용한다.
큐 쌍들(620, 622)은 각각 송신 큐 및 수신 큐를 포함하는 구조이다. 통상, 큐 쌍은 채널 어댑터내에 제어 레지스터를 포함한다. 큐 쌍(620)은 송신 큐(624) 및 수신 큐(626)를 포함한다. 큐 쌍(622)은 송신 큐(628) 및 수신 큐(630)를 포함한다.
처리 A는 큐 쌍(620)의 송신 큐(624)에 큐 요소들을 전달함으로써 메시지 요청을 개시한다. 호스트 채널 어댑터(606)의 하드웨어는 수신 큐(630)의 큐 요소를 수신한다. 다음에 처리 B는 그 큐 요소를 판독하여 메시지를 도 8에 도시된 패킷과 같은 패킷들로 분할한다. 처리 B는 큐 요소들을 송신 큐(628)에 전달함으로써 메시지를 개시하고, 다음에 이들은 수신 큐(626)를 통해 처리 A에 의해 수신된다.
패킷들은 SAN 조직을 통해 라우팅되고, 신뢰가능한 전송 서비스에 있어서는 마지막 목적지 엔드 노드에 의해 전송확인된다. 성공적으로 전송확인되지 않으면, 소스 엔드 노드에 의해 패킷이 재전송된다. 패킷들은 소스 엔드 노드에 의해 발생되고 목적지 엔드 노드에 의해 소비된다.
도 7은 본 발명에 따라 분산 처리들 사이에 통신하기 위해 신뢰가능한 접속 서비스를 채용하는 분산 컴퓨터 시스템(100)의 일부를 도시한다.
큐 쌍이 생성될 때, 큐 쌍은 선택된 유형의 전송 서비스를 제공하도록 설정된다. 본 발명의 양호한 실시예를 구현하는 분산 컴퓨터 시스템은 4가지 유형의 전송 서비스, 즉 신뢰 접속(RC), 비신뢰 접속(UC), 비신뢰 데이터그램(UD) 및, 신뢰 데이터 그램(RD)의 전송 서비스를 지원한다.
신뢰 및 비신뢰 접속 서비스들은 지역 큐 쌍을 하나의 원격지 큐 쌍과 연관시킨다. 접속 서비스들은 SAN 구조를 통해 다른 처리와 통신하기 위해 그 처리에 대한 큐 쌍을 생성하는 처리를 필요로한다. 따라서, N개의 호스트 처리기 노드들 각각이 P개의 처리들을 포함하고, 각 노드 상의 P개의 처리들이 모두 다른 모든 노드들 상의 모든 처리들과 통신하기를 원한다면, 각각의 처리기 노드는 P2x (N-1)개의 큐 쌍들을 필요로 한다. 아울러, 처리는 큐 쌍을 동일한 호스트 채널 어댑터상의 다른 큐 쌍에 접속시킬 수 있다.
도 7의 분산 컴퓨터 시스템(700)은 호스트 처리기 노드(1), 호스트 처리기 노드(2) 및, 호스트 처리기 노드(3)를 포함한다. 호스트 처리기 노드(1)는 처리 A(710)를 포함한다. 호스트 처리기 노드(2)는 처리 C(720) 및 처리 D(730)를 포함한다. 호스트 처리기 노드(3)는 처리 E(740)를 포함한다.
호스트 처리기 노드(1)는, 각각 송신 큐 및 수신 큐를 갖는 큐 쌍들(4, 6, 7)을 포함한다. 호스트 처리기 노드(2)는 큐 쌍들(2, 5)을 갖고, 호스트 처리기노드(3)는 큐 쌍(9)을 갖는다. 분산 컴퓨터 시스템(700)의 신뢰 접속(RC) 서비스는 지역 큐 쌍을 단 하나의 원격지 큐 쌍과 연관시킨다. 따라서, 큐 쌍(4)은 큐 쌍(2)과 통신하기 위해 사용되고, 큐 쌍(7)은 큐 쌍(5)과 통신하기 위해 사용되고, 큐 쌍(6)은 큐 쌍(9)과 통신하기 위해 사용된다.
신뢰 접속(RC) 서비스는 하드웨어가 시퀀스 번호들을 유지하고 모든 패킷 전송을 전송확인하므로 신뢰가능하게 된다. 하드웨어 및 SAN 드라이버 소프트웨어의 연관은 임의의 실패한 통신을 재개시킨다. 큐 쌍의 처리 클라이언트는 비트 에러, 수신 부족(under-runs) 및 네트워크 혼잡이 존재하더라도 신뢰할 수 있는 통신을 획득한다. SAN 조직내에 대안적인 경로가 존재한다면, 조직 스위치들, 링크들 또는 채널 어댑터 포트들의 고장이 있을 때에도 신뢰가능한 통신이 유지될 수 있다.
또한, SAN 조직을 가로질러 데이터를 신뢰가능하게 전달하기 위해 전송확인이 사용될 수 있다. 전송확인은 처리 레벨의 전송확인, 즉 수신 처리가 그 데이터를 소비하였음을 인정하는 전송확인이 될 수도 있고 아닐 수도 있다.
대안적으로, 전송확인은 단지 데이터가 그 목적지에 도착했음을 표시하는 것이 될 수도 있다.
도 8은 본 발명에 따른 패킷을 도시한다. 본원에서 사용되는 메시지는 데이터 교환의 응용 한정 유닛(application-defined unit)으로서, 이것은 협력 처리들 간의 원시적 통신 유닛이다. 메시지들은 패킷으로 분할된다. 패킷은 프로토콜 헤더들 및/또는 트레일러들을 네트워크화함으로써 밀봉된 하나의 데이터 유닛이다. 일반적으로, 헤더들은 SAN을 통해 패킷을 전달하기 위한 제어 및 라우팅 정보를 제공한다. 일반적으로, 트레일러들은 손상된 내용을 갖는 패킷들이 전송되지 않는 것을 보장하기 위한 제어 및 순환 중복 검사(cyclic redundancy check : CRC) 데이터를 포함한다.
패킷은 SAN 조직을 통해 라우팅되는 정보의 유닛이다. 패킷은 엔드 노드간 구성물이며, 따라서 엔드 노드들에 의해 발생되고 소비된다. 채널 어댑터(호스트 또는 타겟)로 향하는 패킷들에 있어서, 그 패킷들은 SAN 조직의 스위치들 및 라우터들에 의해 발생되지도 소비되지도 않는다. 채널 어댑터로 향하는 패킷들 대신에, 스위치들 및 라우터들은 처리에서 가변 링크 헤더 필드들을 변경시킴으로써 단순히 요청 패킷들 또는 전송확인 패킷들을 최종 목적지에 더 가까이 이동시킨다. 또한, 라우터들은 그 패킷이 서브넷 경계를 교차할 때 패킷의 네트워크 헤더를 변경시킨다. 서브넷의 횡단시, 단일 서비스 레벨에 단일 패킷이 지원된다.
신뢰 접속(RC) 전송 서비스와 같은 신뢰 가능한 서비스 유형에 있어서, 호스트 엔드 노드들 및 I/O 어댑터 엔드 노드들과 같은 엔드 노드들은 요청 패킷들을 발생시키고 전송확인 패킷들을 돌려받는다. 스위치들 및 라우터들은 패킷들을 소스에서 목적지까지 전달한다. 네드워크의 각 스테이지에서 갱신되는 가변 CRC 트레일러 필드를 제외하고, 스위치들은 패킷들을 변경시키지 않고 전달한다. 패킷이 라우팅될 때 라우터들은 가변 CRC 트레일러 필드를 갱신하고 헤더의 다른 필드들을 변경시킨다.
출력 메시지는 하나 이상의 데이터 패킷으로 분할된다. 채널 어댑터 하드웨어는 전송 헤더 및 네트워크 헤더를 각 패킷에 부가한다. 본 발명에 따라, 전송헤더는 시퀀스 번호, 인스턴스 번호 및, 다른 전송 정보를 포함한다. 네트워크 헤더는 목적지 IP 주소 및 다른 네트워크 라우팅 정보와 같은 라우팅 정보를 포함한다. 링크 헤더는 목적지 지역 식별자(Destination Local Identifier : DLID) 또는 다른 지역 라우팅 정보를 포함한다. 패킷에는 항상 적절한 링크 헤더가 부가된다. 목적지 엔드 노드가 원격지 서브넷에 위치하면 주어진 패킷에 적절한 광역 네트워크 헤더가 부가된다.
신뢰가능한 전송 서비스가 사용되면, 요청 데이터 패킷이 그 목적지 엔드 노드에 도착할 경우, 그 요청 데이터 패킷이 목적지에 무사히 도착하여 수령되었음을 그 요청 데이터 패킷의 송신자가 알 수 있도록 하기 위해 전송확인 데이터 패킷들이 목적지 엔드 노드에 의해 사용된다. 전송확인 데이터 패킷들은 하나 이상의 유효하고 수령된 요청 데이터 패킷들을 전송확인한다. 요청자는 임의의 전송확인을 수신하기 전에 출력되는 다수의 요청 데이터 패킷들을 가질 수 있다. 한 실시예에서, 다수의 출력 메시지들, 즉 요청 데이터 패킷들의 개수는 큐 쌍이 생성될 때 판단된다.
패킷(800)은 라우팅 헤더(802), 전송 헤더(804), 패킷 페이로드(payload)(806) 및, CRC(808)를 포함한다. 라우팅 헤더(802)는 패킷 페이로드(806)에 대한 소스 및 목적지 엔드 노드들의 채널 어댑터내의 포트들을 식별하는데에 사용된다.
전송 헤더(804)는 패킷 페이로드(806)에 대한 목적지 큐 쌍을 지정한다. 전송 헤더(804)에는 큐 번호 필드가 위치한다. 종래기술에서, 큐 번호는 시퀀스 번호 필드(810)에 포함된 모든 비트에 의해 표시되었다. 그러나, 본 발명에 따르면, 시퀀스 번호 및 인스턴스 번호가 둘다 시퀀스 번호 필드(810)의 모든 비트에 의해 표시된다. 본 발명에 따르면, 시퀀스 번호는 인스턴스 부분(812)과 시퀀스 부분(814)을 둘다 포함한다. 따라서, 본 발명의 인스턴스 번호들은 패킷마다 증가되는 시퀀스 부분 및, 각각의 논리적 접속 동안 일정하게 유지되는 인스턴스 부분을 모두 포함한다. 또한, 전송 헤더(804)는 동작 코드, 패킷 페이로드(806)에 대한 파티션(partition)과 같은 정보를 제공한다. CRC(808)는 에러 조사에 사용된다.
동작 코드는 패킷이 메시지의 앞, 뒤, 중간 또는 유일한 패킷인지를 식별한다. 또한, 동작 코드는 동작이 송신 RDMA 기록, 판독 또는 어토믹(atomic)인지를 지정한다.
본 발명에 따르면, 인스턴스 번호는 각 패킷에 대한 필드(812)에 저장된다. 인스턴스 번호는 논리적 접속의 존재중에 일정하게 유지된다. 논리적 접속이 단절되고 그 후에 재설정되면, 인스턴스 번호는 증가된다. 다음에 이 증가된 인스턴스 번호는 이 재설정된 논리 접속을 사용하여 전송된 각 패킷에 대한 필드(812)에 저장된다.
패킷이 전송될 때마다, 시퀀스 부분(814)은 증가된다.
도 9는 본 발명에 따라 각 패킷에 인스턴스 번호가 포함되는 것을 도시하는 고레벨 흐름도이다. 블럭(900)으로 도시된 것처럼 처리가 시작되고 다음에 처리기 노드의 소비자의 실행을 시작하는 것을 나타내는 블럭(902)으로 이동한다. 다음에, 블럭(904)은 처리기 엔드 노드와 제 2 엔드 노드 사이에 논리적 접속을 설정하는 것을 도시한다. 이들 엔드 노드들 사이의 논리적 접속이 설정될 때, 제 1 엔드 노드의 송신 및 수신 큐 쌍은 제 2 엔드 노드의 송신 및 수신 큐 쌍과 연관된다. 이 연관은 엔드 노드의 통신 관리자에 의해 각 엔드 노드에서 유지되는 큐 쌍들의 테이블을 사용하여 이루어질 수도 있다.
다음에, 블럭(906)은 처리기 엔드 노드에 의한, 처리기 엔드 노드의 특정 큐 쌍과 제 2 엔드 노드의 특정 큐 쌍 사이에 논리적 접속이 설정된 것이 처음인지 아닌지의 판단을 나타낸다. 엔드 노드는 큐 쌍의 테이블을 사용하여 논리적 접속이 설정된 것이 처음인지를 판단할 수도 있다. 큐 쌍들의 테이블은 논리적 접속이 이미 설정되었는지를 표시할 것이다. 논리적 접속이 단절될 때, 두 엔드 노드들의 큐 쌍들은 휴지 상태에 들어가고 더이상 함께 연관되지 않는다. 각 엔드 노드의 큐 쌍 테이블들은 휴지 상태에 있는 큐 쌍들을 반영할 것이다.
논리적 접속이 이미 설정되었고 단절되지 않았으면, 각 엔드 노드의 큐 쌍들은 계속 서로 연관되어 있게 된다. 각 엔드 노드의 큐 쌍 테이블들은 큐 쌍들이 여전히 서로 접속되어 있음을 표시할 것이다.
엔드 노드는 자신의 큐 쌍 테이블을 사용하여 특정 큐 쌍이 제 2 노드의 큐 쌍과 연관되었는지를 판단함으로써 논리적 접속이 이미 설정되었는지를 판단할 수도 있다.
이 노드의 큐 쌍이 제 2 노드의 큐 쌍에 연관되면, 이들 엔드 노드 사이의 논리적 접속은 이미 설정된 것이다. 이 노드의 큐 쌍이 제 2 노드의 큐 쌍과 연관되지 않으면, 이들 엔드 노드 사이의 논리적 접속은 이미 설정된 것이 아니다.
다시 블럭(906)을 참조하면, 이들 두개의 특정 큐 쌍 세트 사이에 논리적 접속이 설정된 것이 처음이라는 판단이 이루어지면, 처리는 각 엔드 노드에 대한 논리적 접속 관리자들이 시작 인스턴스 번호를 교환하는 것을 도시하는 블럭(908)으로 이동한다. 이 시작 인스턴스 번호는 현재의 인스턴스 번호가 되고 이 논리적 접속이 계속 설정되어 있는 동안 일정하게 유지된다.
다음에 처리는 논리적 접속 관리자가 그들의 시작 시퀀스 번호를 교환하는 것을 나타내는 블럭(910)으로 이동한다. 시퀀스 번호는 시퀀스 번호 필드의 시퀀스 번호 부분에 저장되고 일정하게 유지되지 않는다. 이것은 패킷이 전송될 때마다 증가된다. 또한, 각 엔드 노드는 다른 엔드 노드에 의해 선택된 시퀀스 번호와 상관없는 자신의 시퀀스 번호를 선택할 수도 있다. 이 인스턴스 번호는 시퀀스 번호 필드의 인스턴스 번호 부분에 저장되고 이 논리적 접속이 계속 설정되어 있는 한 일정하게 유지된다.
다음에, 블럭(912)은 각 패킷에서 시퀀스 번호 부분에 저장된 패킷 시퀀스 번호를 증가시키는 엔드 노드간의 패킷들의 전송을 도시한다. 다음에, 블럭(914)은 각 패킷에 현재의 인스턴스 번호를 포함시키는 것을 나타낸다. 그 인스턴스 번호는 이 논리적 접속 동안 송신된 각 패킷에 대해 일정하게 유지된다.
다음에 블럭(916)은 현재의 논리적 접속이 손실되었는지 아닌지의 판단을 나타낸다. 현재의 논리적 접속이 손실되지 않았다는 판단이 이루어지면, 처리는 다시 블럭(912)으로 이동한다. 다시 블럭(916)을 참조하면, 논리적 접속이 손실되었다는 판단이 이루어지면, 처리는 블럭(918)으로 이동한다. 블럭(918)은 이들 두개의 큐 쌍들 사이에 논리적 접속을 재설정해야 하는지 아닌지의 판단을 도시한다. 이들 두개의 큐 쌍 사이의 논리적 접속이 재설정될 필요가 없다는 판단이 이루어지면, 처리는 블럭(920)으로 이동한다. 다시 블럭(918)을 참조하면, 이들 두개의 큐 쌍 사이의 논리적 접속을 재설정해야 한다는 판단이 이루어지면, 처리는 블럭(922)으로 이동한다. 블럭(922)은 이들 두개의 큐 쌍들 사이에 논리적 접속을 재설정하는 것을 나타낸다. 처리는 다시 블럭(906)으로 이동한다.
다시 블럭(906)을 참조하면, 이 서비스 동안 이들 두개의 특정 큐 쌍들 사이의 논리적 접속이 설정된 것이 처음이 아니라는 판단이 이루어지면, 처리는 블럭(934)으로 이동한다. 블럭(934)은 이들 두개의 특정 큐 쌍들에 대해 설정된 마지막 논리적 접속 동안 전송에 사용된 인스턴스 번호를 판단하는 것을 도시한다. 다음에, 블럭(936)은 그 마지막 인스턴스 번호를 새로운 인스턴스 번호로 변경시키는 것을 나타낸다. 이제 이 새로운 인스턴스 번호가 현재의 인스턴스 번호로 사용된다. 인스턴스 번호는 보통 인스턴스 번호를 증가시킴으로써 변경될 것이지만, 인스턴스 번호는 인스턴스 번호를 감소시키는 것과 같은 다른 수단에 의해 변경될 수도 있다. 이제 처리는 블럭(910)으로 이동한다.
도 10은 본 발명에 따라, 엔드 노드가 수신된 패킷이 현재의 논리적 접속 동안 전송되었는지를 판단하는 것을 도시하는 고레벨 흐름도이다. 블럭(1000)에 의해 도시된 것처럼 처리가 시작되고, 그 후 엔드 노드가 인스턴스 번호를 포함하는 패킷을 수신하는 것을 도시하는 블럭(1002)으로 이동한다. 다음에, 블럭(1004)은 엔드 노드가 현재의 인스턴스 번호를 판단하는 것을 나타낸다. 그 다음에, 블럭(1006)은 엔드 노드가 현재의 인스턴스 번호와 수신된 패킷내에 포함된 인스턴스 번호를 비교하는 것을 도시한다. 다음에 처리는 패킷이 현재의 인스턴스 번호를 포함하는지 아닌지의 판단을 나타내는 블럭(1008)으로 이동한다. 패킷이 현재의 인스턴스 번호를 포함한다는 판단이 이루어지면, 처리는 엔드 노드가 패킷을 정상적으로 처리하는 것을 도시하는 블럭(1010)으로 이동한다. 이제 처리는 다시 블럭(1002)으로 이동한다. 다시 블럭(1008)을 참조하면, 패킷이 현재의 인스턴스 번호를 포함하지 않는다는 판단이 이루어지면, 처리는 엔드 노드가 그 패킷을 폐기하는 것을 나타내는 블럭(1012)으로 이동한다.
본 발명은 논리적 접속이 단절되어 재설정되는 임의의 경우에 사용될 수 있다. 논리적 접속은 다양한 이유 때문에 단절되고 재설정된다. 많은 이유는 단순히 패킷을 재전송하는 것에 의해 회복될 수 없는, 엔드 노드들에서 검출되는 에러 상태이다. 예컨대, 잘못 형성된 패킷들과 시퀀싱 에러들은 큐 쌍을 이 에러 상태가 되게 할 수 있다.
접속을 단절시켜 재설정하는 다른 이유는 구조의 경로 MTU 변경이다. 한 링크상에서 전송될 수 있는 최대 패킷 페이로드의 크기를 최대 전송 유닛(MTU)이라 한다. 예컨대, 조직내의 단일 링크를 고려한다. 그 링크의 한 쪽의 패킷 버퍼들이 패킷 페이로드를 512 바이트까지 조절하고 그 링크의 다른 쪽의 패킷 버퍼들이 패킷 페이로드를 1025 바이트까지 조절한다면, 이 링크를 통해 전송될 수 있는 최대 패킷 페이로드는 링크의 두 쪽 중에서 더 작은 512 바이트보다 더 클 수 없다. 간편성을 위해, 패킷 페이로드 크기는 패킷의 크기를 설명할 때에서 사용된다.
한 노드에서 다른 노드까지의 경로가 임의의 스위치들 및/또는 라우터들을 포함하면, 경로에 하나 이상의 링크가 존재한다. 이 경우, MTU는 이제 경로 MTU라 칭해지고, 그 경로의 모든 링크들 중에서 가장 작은 MTU이다. 예컨대, 경로내 링크들 중 하나는 512 바이트의 MTU를 가지고 나머지 모든 링크들은 4096 바이트의 MTU를 가진다면, 그 경로상에서 전송될 수 있는 최대 패킷은 단지 512 바이트이다.
페일오버(fail-over)의 결과 경로 MTU가 증가되면, 접속은 고갈(새로운 패킷이 전혀 발생되지 않고 모든 현저한 패킷들은 전송확인된 상태)되거나 단절되고, 새로운 더 큰 경로 MTU를 이용하기 위해 재설정된다. 이 상황은 실효 패킷 대기 기간이 더이상 필요없기 때문에 본 발명을 사용하여 효과적으로 조절될 수 있다. 논리적 접속은 대기 상태에 대한 요구없이 단절되고 즉시 재설정될 수 있다.
본 발명은 완전히 기능적인 데이터 처리 시스템에 비추어 설명되었지만, 당업자라면, 본 발명의 처리가 명령들의 컴퓨터 판독가능 매체의 형태 및 다양한 형태로 분산될 수 있으며 본 발명은 그 분산을 수행하는데 실제로 사용된 신호 탑재 매체의 유형에 상관없이 동일하게 적용된다는 것을 인정할 수 있을 것이다. 컴퓨터 판독가능 매체의 예에는 플로피 디스크, 하드 디스크 드라이브, RAM, CD-ROM 및 전송형 매체와 같은 기록가능형 매체와, 디지털 및 아날로그 링크, 예컨대 무선 주파수 및 광파 전송과 같은 전송 형태를 사용하는 유선 또는 무선 통신 링크와 같은 전송형 매체가 포함된다. 컴퓨터 판독가능 매체는 특정 데이터 처리 시스템에서의실제 사용을 위해 디코딩되는 코딩된 포맷의 형태를 취할 수도 있다.
본 발명의 상세한 설명은 예시 및 설명의 목적으로 제공된 것이며, 본 발명을 총망라하거나 개시된 형태로 한정하려는 것이 아니다. 당업자에게는 많은 수정 및 변형이 명백할 것이다. 실시예는 본 발명의 원리와 실제 응용을 가장 잘 설명하고 의도된 특정 용도에 적합한 다양한 수정을 갖는 다양한 실시예들에 대해 당업자가 본 발명을 이해할 수 있도록 하기 위해 선택되고 설명된 것이다.

Claims (10)

  1. 데이터 처리 시스템의 제 1 엔드 노드로부터 제 2 엔드 노드로 송신된 데이터를 관리하는 방법에 있어서,
    상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 데이터를 전송하기 전에 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 설정하는 단계와,
    상기 논리적 접속과 인스턴스 번호를 연관시키는 단계와,
    상기 논리적 접속이 계속 설정되어 있는 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 송신된 각 패킷에 상기 인스턴스 번호를 포함시키는―상기 인스턴스 번호는 상기 논리적 접속 동안 일정하게 유지됨― 단계를 포함하는
    데이터 관리 방법.
  2. 제 1 항에 있어서,
    상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 상기 논리적 접속을 재설정하는 단계와,
    상기 인스턴스 번호를 증가시키는―상기 증가된 인스턴스 번호는 상기 재설정된 논리적 접속과 연관됨― 단계와,
    상기 재설정된 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷에 상기 증가된 인스턴스 번호를 포함시키는―상기 증가된 인스턴스 번호는 상기 재설정된 논리적 접속 동안 일정하게 유지됨― 단계를 더 포함하는
    데이터 관리 방법.
  3. 제 1 항에 있어서,
    상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 설정하는 상기 단계는,
    상기 제 1 엔드 노드의 큐 쌍(queue pair)을 상기 제 2 엔드 노드의 큐 쌍과 연관시키는 단계를 더 포함하는
    데이터 관리 방법.
  4. 제 3 항에 있어서,
    상기 제 1 엔드 노드의 큐 쌍을 상기 제 2 엔드 노드의 큐 쌍과 연관시키는 상기 단계는,
    상기 제 1 엔드 노드의 큐 쌍들의 테이블을 설정하는 단계와,
    상기 제 1 엔드 노드의 큐 쌍과 상기 제 2 엔드 노드의 큐 쌍과의 연관을 나타내는 표시를 상기 테이블 내에 저장하는 단계를 더 포함하는
    데이터 관리 방법.
  5. 제 4 항에 있어서,
    특정 논리적 접속을 사용하여 상기 제 2 엔드 노드로부터 상기 제 1 엔드 노드로 패킷을 전송하는 단계와,
    상기 제 1 엔드 노드를 사용하여 상기 패킷을 수신하는 단계와,
    상기 테이블을 사용하여 상기 특정 논리적 접속이 이전에 설정되었었는지를 판단하는 단계를 더 포함하는
    데이터 관리 방법.
  6. 제 5 항에 있어서,
    상기 테이블을 사용하여 상기 특정 논리적 접속이 이전에 설정되었었는지를 판단하는 상기 단계는,
    상기 제 1 엔드 노드의 큐 쌍과 상기 제 2 엔드 노드의 큐 쌍과의 연관을 나타내는 표시가 상기 테이블에 저장되어 있는지를 판단하는 단계를 더 포함하는
    데이터 관리 방법.
  7. 제 1 항에 있어서,
    상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷의 전송 헤더에 상기 인스턴스 번호를 포함시키는 단계를 더 포함하는
    데이터 관리 방법.
  8. 제 1 항에 있어서,
    상기 논리적 접속이 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이의 제 1 논리적 접속인지를 판단하는 단계를 더 포함하고,
    상기 논리적 접속이 제 1 논리적 접속이다면,
    인스턴스 번호를 상기 논리적 접속과 연관시키는 단계와,
    상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 송신된 각 패킷에 상기 인스턴스 번호를 포함시키는―상기 인스턴스 번호는 상기 논리적 접속 동안 일정하게 유지됨― 단계와,
    상기 인스턴스 번호를 현재의 인스턴스 번호로서 사용하는 단계를 더 포함하고,
    상기 논리적 접속이 제 1 논리적 접속이 아니다면,
    상기 현재의 인스턴스 번호를 증가시키는 단계와,
    상기 증가된 현재의 인스턴스 번호를 현재의 인스턴스 번호로 사용하는 단계와,
    상기 논리적 접속 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 송신된 각 패킷에 상기 증가된 현재의 인스턴스 번호를 포함시키는 단계를 더 포함하는
    데이터 관리 방법.
  9. 자신의 제 1 엔드 노드로부터 제 2 엔드 노드로 전송된 데이터를 관리하는 데이터 처리 시스템에 있어서,
    상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 데이터를 전송하기 전에 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 논리적 접속을 설정하는 수단과,
    인스턴스 번호를 상기 논리적 접속과 연관시키는 수단과,
    상기 논리적 접속이 계속 설정되어 있는 동안 상기 제 1 엔드 노드와 상기 제 2 엔드 노드 사이에 전송된 각 패킷에 상기 인스턴스 번호를 포함시키는―상기 인스턴스 번호는 상기 논리적 접속 동안 일정하게 유지됨― 수단을 포함하는
    데이터 처리 시스템.
  10. 컴퓨터 시스템에 로딩되어 실행될 경우, 제 1 항 내지 제 8 항 중 어느 한 항에 따른 방법의 모든 단계를 수행하는 컴퓨터 프로그램.
KR1020047015246A 2002-04-25 2003-04-01 데이터 관리 방법, 시스템 및 컴퓨터 판독가능한 기록 매체 KR100651571B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/132,456 US7149220B2 (en) 2002-04-25 2002-04-25 System, method, and product for managing data transfers in a network
US10/132,456 2002-04-25
PCT/GB2003/001416 WO2003091888A2 (en) 2002-04-25 2003-04-01 System, method, and product for managing data transfers in a network

Publications (2)

Publication Number Publication Date
KR20040105224A true KR20040105224A (ko) 2004-12-14
KR100651571B1 KR100651571B1 (ko) 2006-11-29

Family

ID=29248774

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047015246A KR100651571B1 (ko) 2002-04-25 2003-04-01 데이터 관리 방법, 시스템 및 컴퓨터 판독가능한 기록 매체

Country Status (13)

Country Link
US (1) US7149220B2 (ko)
EP (1) EP1499984B1 (ko)
JP (1) JP4099170B2 (ko)
KR (1) KR100651571B1 (ko)
CN (1) CN1633647B (ko)
AT (1) ATE314691T1 (ko)
AU (1) AU2003214470A1 (ko)
CA (1) CA2483197C (ko)
DE (1) DE60303026T2 (ko)
IL (1) IL164724A0 (ko)
MX (1) MXPA04010437A (ko)
TW (1) TWI252651B (ko)
WO (1) WO2003091888A2 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9094226B2 (en) 2000-08-30 2015-07-28 Broadcom Corporation Home network system and method
US8724485B2 (en) 2000-08-30 2014-05-13 Broadcom Corporation Home network system and method
WO2002019623A2 (en) 2000-08-30 2002-03-07 Tiaris, Inc. A home network system and method
US7430623B2 (en) * 2003-02-08 2008-09-30 Hewlett-Packard Development Company, L.P. System and method for buffering data received from a network
US7673070B1 (en) * 2003-03-17 2010-03-02 Network Equipment Technologies, Inc. Method of sharing telecommunications node equipment facilities
US7620693B1 (en) * 2004-03-29 2009-11-17 Sun Microsystems, Inc. System and method for tracking infiniband RDMA read responses
US8055818B2 (en) * 2004-08-30 2011-11-08 International Business Machines Corporation Low latency queue pairs for I/O adapters
CN100442256C (zh) * 2004-11-10 2008-12-10 国际商业机器公司 提供用于i/o适配器的队列对的方法、系统和存储介质
US20060259570A1 (en) * 2005-05-13 2006-11-16 Microsoft Corporation Method and system for closing an RDMA connection
US7761619B2 (en) * 2005-05-13 2010-07-20 Microsoft Corporation Method and system for parallelizing completion event processing
US20070011287A1 (en) * 2005-05-16 2007-01-11 Charbel Khawand Systems and methods for seamless handover in a streaming data application
US8090043B2 (en) 2006-11-20 2012-01-03 Broadcom Corporation Apparatus and methods for compensating for signal imbalance in a receiver
US7742495B2 (en) 2006-11-20 2010-06-22 Broadcom Corporation System and method for retransmitting packets over a network of communication channels
US7782850B2 (en) * 2006-11-20 2010-08-24 Broadcom Corporation MAC to PHY interface apparatus and methods for transmission of packets through a communications network
US8345553B2 (en) 2007-05-31 2013-01-01 Broadcom Corporation Apparatus and methods for reduction of transmission delay in a communication network
US9112717B2 (en) 2008-07-31 2015-08-18 Broadcom Corporation Systems and methods for providing a MoCA power management strategy
US20100097931A1 (en) * 2008-10-21 2010-04-22 Shakeel Mustafa Management of packet flow in a network
US8213309B2 (en) 2008-12-22 2012-07-03 Broadcom Corporation Systems and methods for reducing latency and reservation request overhead in a communications network
US8238227B2 (en) 2008-12-22 2012-08-07 Broadcom Corporation Systems and methods for providing a MoCA improved performance for short burst packets
US8254413B2 (en) 2008-12-22 2012-08-28 Broadcom Corporation Systems and methods for physical layer (“PHY”) concatenation in a multimedia over coax alliance network
US8553547B2 (en) 2009-03-30 2013-10-08 Broadcom Corporation Systems and methods for retransmitting packets over a network of communication channels
US20100254278A1 (en) 2009-04-07 2010-10-07 Broadcom Corporation Assessment in an information network
US8730798B2 (en) 2009-05-05 2014-05-20 Broadcom Corporation Transmitter channel throughput in an information network
US8867355B2 (en) 2009-07-14 2014-10-21 Broadcom Corporation MoCA multicast handling
US8942250B2 (en) 2009-10-07 2015-01-27 Broadcom Corporation Systems and methods for providing service (“SRV”) node selection
US8611327B2 (en) 2010-02-22 2013-12-17 Broadcom Corporation Method and apparatus for policing a QoS flow in a MoCA 2.0 network
US8514860B2 (en) 2010-02-23 2013-08-20 Broadcom Corporation Systems and methods for implementing a high throughput mode for a MoCA device
JP2015216450A (ja) 2014-05-08 2015-12-03 富士通株式会社 情報処理装置、情報処理システム及び中継プログラム
US10498654B2 (en) 2015-12-28 2019-12-03 Amazon Technologies, Inc. Multi-path transport design
US9985903B2 (en) 2015-12-29 2018-05-29 Amazon Technologies, Inc. Reliable, out-of-order receipt of packets
US9985904B2 (en) 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission of packets
US10148570B2 (en) 2015-12-29 2018-12-04 Amazon Technologies, Inc. Connectionless reliable transport
KR101941416B1 (ko) * 2015-12-29 2019-04-12 아마존 테크놀로지스, 인크. 네트워킹 기술들

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3032419B2 (ja) * 1993-02-17 2000-04-17 三菱電機株式会社 データ転送方法
JPH0746287A (ja) * 1993-06-29 1995-02-14 Toshiba Corp オンラインシステム
WO1997028505A1 (en) 1996-01-31 1997-08-07 Ipsilon Networks, Inc. Improved method and apparatus for dynamically shifting between routing and switching packets in a transmission network
US5857188A (en) * 1996-04-29 1999-01-05 Ncr Corporation Management of client requests in a client-server environment
JPH10177548A (ja) * 1996-12-18 1998-06-30 Casio Comput Co Ltd セッション管理システム
JP3088683B2 (ja) * 1997-05-29 2000-09-18 三菱電機株式会社 データ通信システム
JP3608905B2 (ja) * 1997-05-29 2005-01-12 三菱電機株式会社 データ通信システム及びデータ通信方法
US6545981B1 (en) * 1998-01-07 2003-04-08 Compaq Computer Corporation System and method for implementing error detection and recovery in a system area network
US6493343B1 (en) 1998-01-07 2002-12-10 Compaq Information Technologies Group System and method for implementing multi-pathing data transfers in a system area network
US6798742B1 (en) * 1998-01-16 2004-09-28 Paradyne Corporation System and method for the measurement of service quality in a communication network
JP2000156707A (ja) * 1998-11-19 2000-06-06 Nec Corp パケット交換局及びパケット交換ネットワークシステム
JP2000242434A (ja) * 1998-12-22 2000-09-08 Hitachi Ltd 記憶装置システム
US6483804B1 (en) 1999-03-01 2002-11-19 Sun Microsystems, Inc. Method and apparatus for dynamic packet batching with a high performance network interface
JP2000347965A (ja) * 1999-06-07 2000-12-15 Toshiba Corp モバイル通信システム、及びモバイル通信方法
JP2001057583A (ja) * 1999-08-17 2001-02-27 Mitsubishi Electric Corp データ転送制御方法およびデータ転送制御装置

Also Published As

Publication number Publication date
TW200306719A (en) 2003-11-16
KR100651571B1 (ko) 2006-11-29
DE60303026D1 (de) 2006-02-02
EP1499984B1 (en) 2005-12-28
DE60303026T2 (de) 2006-07-27
TWI252651B (en) 2006-04-01
CA2483197C (en) 2010-07-13
WO2003091888A2 (en) 2003-11-06
MXPA04010437A (es) 2004-12-13
AU2003214470A1 (en) 2003-11-10
US7149220B2 (en) 2006-12-12
AU2003214470A8 (en) 2003-11-10
JP4099170B2 (ja) 2008-06-11
CA2483197A1 (en) 2003-11-06
CN1633647B (zh) 2010-09-08
WO2003091888A3 (en) 2004-03-04
US20030202519A1 (en) 2003-10-30
CN1633647A (zh) 2005-06-29
IL164724A0 (en) 2005-12-18
ATE314691T1 (de) 2006-01-15
EP1499984A2 (en) 2005-01-26
JP2005524264A (ja) 2005-08-11

Similar Documents

Publication Publication Date Title
KR100651571B1 (ko) 데이터 관리 방법, 시스템 및 컴퓨터 판독가능한 기록 매체
US7165110B2 (en) System and method for simultaneously establishing multiple connections
US6766467B1 (en) Method and apparatus for pausing a send queue without causing sympathy errors
US7133405B2 (en) IP datagram over multiple queue pairs
US7095750B2 (en) Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts
US7876751B2 (en) Reliable link layer packet retry
US6941350B1 (en) Method and apparatus for reliably choosing a master network manager during initialization of a network computing system
US6981025B1 (en) Method and apparatus for ensuring scalable mastership during initialization of a system area network
US6748559B1 (en) Method and system for reliably defining and determining timeout values in unreliable datagrams
US6978300B1 (en) Method and apparatus to perform fabric management
US20050018669A1 (en) Infiniband subnet management queue pair emulation for multiple logical ports on a single physical port
US20140334290A1 (en) Implementing redundancy on infiniband (ib) networks
US20030031183A1 (en) Queue pair resolution in infiniband fabrics
US20130170494A1 (en) Operating an infiniband network having nodes and at least one ib switch
KR100464195B1 (ko) 데이터를 전송하기 위한 신뢰성 있는 프로토콜을 제공하는방법 및 장치
US20020198927A1 (en) Apparatus and method for routing internet protocol frames over a system area network
US6990528B1 (en) System area network of end-to-end context via reliable datagram domains
US6980551B2 (en) Full transmission control protocol off-load
US7099955B1 (en) End node partitioning using LMC for a system area network
JP2003216592A (ja) ヘッド・オンリ循環バッファを介してインフィニバンド・ワーク及び完了キューを管理する方法及び装置
US20020078265A1 (en) Method and apparatus for transferring data in a network data processing system
US6691217B2 (en) Method and apparatus for associating memory windows with memory regions in a data storage system
CN117354253A (zh) 一种网络拥塞通知方法、装置及存储介质
US7155537B1 (en) Infiniband isolation bridge merged with architecture of an infiniband translation bridge
US8055818B2 (en) Low latency queue pairs for I/O adapters

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: 20121024

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131025

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141024

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee