KR20040071331A - 오류 허용 데이터 통신을 위한 시스템 및 방법 - Google Patents

오류 허용 데이터 통신을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20040071331A
KR20040071331A KR10-2004-7011316A KR20047011316A KR20040071331A KR 20040071331 A KR20040071331 A KR 20040071331A KR 20047011316 A KR20047011316 A KR 20047011316A KR 20040071331 A KR20040071331 A KR 20040071331A
Authority
KR
South Korea
Prior art keywords
data
communication
control unit
communication state
transmission
Prior art date
Application number
KR10-2004-7011316A
Other languages
English (en)
Inventor
애시호크 람푸리아
프라딥 드하라
Original Assignee
애비시 시스템스 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애비시 시스템스 인코포레이티드 filed Critical 애비시 시스템스 인코포레이티드
Publication of KR20040071331A publication Critical patent/KR20040071331A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/033Topology update or discovery by updating distance vector protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/583Stackable routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • 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/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 오류 허용 데이터 통신을 위한 시스템 및 방법에 관한 것이다. 본 발명의 실시예들은 네트워크 환경 내에서 루팅 테이블 업테이트를 교환하는 루터들을 포함해서 다양한 애플리케이션들에 적용될 수 있다. 주 처리는 내용 및 통신 상태의 전송을 포함하는 통신을 원격 처리와 행한다. 주 처리는 내용 및 통신 상태를 데이터 저장부에 저장한다. 주 처리가 실패한 경우에, 원격 처리와의 통신은 데이터 저장부로부터 내용 및 통신 상태를 검색함으로써 주 처리와 동일한 예비 처리로 전환된다. 예비 처리는 따라서 데이터 저장부로부터 검색되는 통신 상태를 사용하여 원격 처리와 통신을 계속한다.

Description

오류 허용 데이터 통신을 위한 시스템 및 방법{SYSTEM AND METHOD FOR PROVIDING A FAULT TOLERANT ROUTING DATA BASE}
인터넷은 SONET(Synchronous Optical NETwork) 및 Gigabit(GigE)와 같이 링크들에 의해서 상호연결되는 개별적인 컴퓨터 네트워크들의 글로벌한 인터네트워크이다. 도 1에 도시된 바와 같이, 루터들(10)은 링크들(15)의 종단들을 이루고, 따라서 인입 네트워크 패킷들을 그들의 최종 목적지로 전송하기 위해서 다중화된 인터페이스를 제공한다.
데이터는 패킷들로서 통상 지칭되고 있는 포맷된 전송 유닛들을 통해서 그러한 인터네트워크들을 경유하여 통신된다. 패킷의 포맷은 TCP/IP(Transmission Control Protocol/Internet Protocol)과 같은 네트워크 전송 프로토콜 집합에 의해 정해진다. 일예로, TCP/IP 패킷은 IP 헤더 및 TCP 세그먼트를 포함한다. IP 헤더는 소스 및 목적지 호스트들의 IP 어드레스들을 식별하는데, 그것들은 링크(15)를통해 TCP/IP 패킷을 목적지 호스트에 전송하기 위해서 루터(10)에 의해 사용된다. TCP 세그먼트는 최종 목적지에 전송될 TCP 헤더 및 애플리케이션 데이터를 또한 포함한다. TCP 헤더는 소스 및 목적지 호스트들에서 실행하는 애플리케이션과 연관있는 내부 포트 어드레스를 규정함으로써 TCP 접속의 종점들을 식별한다. 게다가, TCP는 접속-지향 프로토콜(connection-oriented protocol)이기 때문에, TCP 헤더는 TCP 세그먼트들을 식별하고 확인응답하기 위한 시퀀스 번호들을 또한 포함한다.
패킷 루팅을 수행하기 위해서, 루터들(10)은 내부 루팅 테이블들(12)을 보유하는데, 상기 내부 루팅 테이블들(12)은 네트워크 식별자와 연관있는 "다음 홉(next hop)"을 계산하기 이한 데이터 구조들이다. "다음 홉"은 통상적으로 중간 루터를 유도함으로써 하나 이상의 목적지 네트워크로 향하는 게이트웨이를 제공한다. 루터들(10)은 적절한 링크들(15)을 통해 패킷들을 전송하고자 할 때 그들의 루팅 테이블들(12)을 참조한다. 패킷은 일반적으로 패킷 헤더 및 데이터 페이로드를 포함한다. 루터들(10)은 다음 홉 어드레스에 위해서 자신의 루팅 테이블(12)에 인덱싱하기 위해 패킷 헤더로부터 추출되는 패킷 목적지를 활용한다. 일단 다음 홉이 식별되면, 루터(10)는 적절한 링크(15)를 통해서 패킷을 그것의 최종 목적지로 향하는 경로를 따르는 다음 홉 어드레스에 전송한다.
인터넷 루팅을 통해서, 일예로, 루팅 테이블의 각각의 엔트리는 적어도 두 개의 필드 값들, 즉, IP 어드레스 프리픽스(14a) 및 다음 홉(14b)을 갖는다. 상기 다음 홉(14b)은 이더넷, 직렬 링크, 또는 일부 다른 물리적인 접속을 통해 직접적으로 도달할 수 있는 다른 호스트나 루터의 IP 어드레스이다. IP 어드레스 프리픽스(14a)는 루팅 엔트리가 유효한 목적지 세트를 규정하는 네트워크 식별자이다. 상기 세트에서, 목적지 IP 어드레스의 처음은 IP 어드레스 프리픽스(14a)에 매칭되는데, 상기 IP 어드레스 프리픽스(14a)는 0 내지 32의 유효 비트들을 가질 수 있다. 일예로, 128.8.x.x 형태인 임의의 IP 목적지 어드레스는 128.8.0.0/16의 IP 어드레스 프리픽스(14a)에 매칭될 것이다. 루터들(10)은 네트워크 접속들을 통해서 서로 루팅 테이블 업데이터를 실행함으로써 루팅 테이블 엔트리들을 동적으로 "습득(learn)"하고 업데이팅한다. 인터넷 루터들은 통상적으로 TCP/IP 접속들을 통해 루팅 테이블 업데이트를 교환한다. 그러한 교환을 통해서, 업데이트를 수신한 루터(10)는 변경사항을 자신의 내부 루팅 테이블(12)에 동적으로 통합하며, 인터네트워크(1) 내의 다른 루터들에 상기 업데이트를 전송한다.
일예로, 도 1을 참조하면, 루터(10b)가 새로운 네트워크(30)를 인터네트워크(1)에 접속하는 것을 가정하고 있다. 루터(10b)는 그 결과 루팅 테이블들을 교환하기 위해서 루터(10a)와의 네트워크 접속을 구축할 수 있다. 루터(10b)로부터의 루팅 테이블 업데이트는 루터(10b)를 네트워크(30)를 위한 "다음 홉"으로서 식별할 것이다. 다음으로, 루터(10a)는 다른 루터들(10c, 10d)의 루팅 테이블들(12)을 업데이팅하기 위해서 상기 다른 루터들 각각과의 네트워크 접속들을 구축할 수 있음으로써 네트워크(30)를 엔트리로서 추가할 수 있다. 상기 업데이트를 자신들의 루팅 테이블들(12)에 통합한 이후에, 루터들(10)은 새로이 추가된 목적지 네트워크(30)에 패킷들을 전송할 수 있다.
인터넷 루터들은 루팅 테이블 업데이트들의 교환을 포함해서 루팅 동작들을처리하기 위한 서버 처리들을 구현한다. 루터들의 Avici TSR®군집과같은 일부 인터넷 루터들은 주 서버 처리가 실패하는 경우에 루팅 동작들을 가정하기 위해서 예비 서버 처리를 구현한다.
본 출원은 2002년 1월 24일에 미국 가특허 출원된 제 60/351,717호의 우선권을 청구한다. 상기 미국 가특허 출원의 전반적인 교시는 본 명세서에서 참조로서 병합되어 있다.
본 발명은 오류 허용 데이터 통신을 위한 시스템 및 방법에 관한 것이다.
도 1은 링크들을 통해 컴퓨터 네트워크들을 상호접속시키는 루터들을 도시하는 다이어그램.
도 2는 일실시예에 따라 오류 허용 데이터 통신을 구현하는 스위치 루터의 하드웨어 성분들을 도시하는 다이어그램.
도 3A는 일실시예에 따라 정상 동작 동안에 루터에 대한 오류 허용 데이터 통신을 도시하는 고도의 다이어그램.
도 3B는 일실시예에 따라 예비 모드 동안에 루터에 대한 오류 허용 데이터 통신을 도시하는 고도의 다이어그램.
도 4는 일실시예에 따라 원격 처리와의 오류 허용 TCP 접속들을 구현하는 소프트웨어 성분들을 도시하는 다이어그램.
도 5A는 일실시예에 따라 오류 허용 TCP 접속을 통한 판독 처리를 도시하는 상태 다이어그램.
도 5B는 일실시예에 따라 오류 허용 TCP 접속을 통한 기록 처리를 도시하는 상태 다이어그램.
도 6은 일실시예에 따라 데이터 통신의 예비 모드 동안에 FTTCP 접속들을 주 애플리케이션 처리로부터 예비 애플리케이션 처리로 재구축하기 위한 처리를 도시하는 흐름도.
적절한 패킷 루팅을 위해서, 루팅 테이블 업데이트들은 인터네트워크 내의 루터들 사이에 신뢰적으로 교환되어야 한다. 예비 서버 처리는 주 서버 처리가 실패하는 경우에 루터가 매우 유용하도록 하기 위해 구현된다. 예비 서버 처리를 구현하는 일부 루터들은 그들의 루팅 테이블을 영구적인 저장부에 주기적으로 복제한다. 따라서, 만약 주 서버 처리가 실패하면, 예비 서버 처리는 루팅 테이블의 저장된 엔트리들로부터 재생성되는 내부 루팅 테이블을 통한 루팅 동작들을 가정할 수 있다.
그러나, 만약 주 서버 처리가 루팅 테이블 업데이트의 교환 동안에 실패하면, 상기 업데이트는 영구적인 저장부에서 확보되지 않으며, 루팅 테이블의 저장된 엔트리들을 통한 예비 서버 처리에 이용가능하지 않다. 더 나쁜 경우에는, 실패한 교환에 수반되는 원격 루터는, 비록 상기 실패한 루터가 주 서버 처리로부터 예비 서버 처리로 전환될 수 있을 지라도, 상기 실패한 루터를 이용가능하지 않을 것으로 간주할 수 있으며 그것의 내부 루팅 테이블로부터 그러한 엔트리들을 제거할 수 있다. 그 결과, 루터는 재초기화 처리가 수행될 때까지 시스템으로부터 효과적으로 제거된다.
본 발명의 실시예들은 오류 허용 데이터 통신을 위한 시스템 및 방법을 제공하는데, 이는 주 처리에 의해서 이전에 구축된 네트워크 접속을 통해 예비 처리가 원격 처리와 계속해서 통신할 수 있게 한다. 그러한 실시예들은 처리 중인 통신들의 연속성을 유지함으로써 통신 및 데이터 손실을 방지한다.
본 발명의 실시예들은 원격 처리와 통신 중에 있는 주 처리를 제공함으로써 내용 및 통신 상태를 전송한다. 주 처리는 내용 및 통신 상태를 데이터 저장부에 저장하고, 상기 데이터 저장부는 상기 주 처리가 실패하는 경우에 예비 처리를 위해 이용될 수 있다. 그러한 실패의 경우에, 원격 처리와의 통신은 데이터 저장부로부터 통신 상태 및 내용을 검색함으로써 주 처리를 반영하는 예비 처리로 전환된다. 따라서, 예비 처리는 데이터 저장부로부터 검색되는 통신 상태를 사용하여 원격 처리와 계속해서 통신할 수 있다.
통신 상태는 업데이트가 통신되도록 하는 TCP 접속과 같은 네트워크 접속의 상태를 포함한다. TCP 접속을 위해서, 주 처리는 전송 제어 프로토콜(TCP)을 구현하는 원격 처리와의 통신을 지원하는 오류 허용 접속-지향 전송 프로토콜(fault tolerant connection-oriented transport protocol)을 또한 포함한다. 본 발명의 일실시예에 따르면, 오류 허용 전송 프로토콜은 통신 상태를 데이터 저장부에 저장하는 변경된 버전의 TCP이며, 상기 데이터 저장부는 미리 구축된 네트워크 접속들을 통해 계속해서 통신하기 위해서 예비 처리에 이용가능하다.
본 발명의 실시예들은 네트워크 환경에서 루팅 테이블 업데이트들을 교환하는 루터들을 포함해서 다양한 애플리케이션들에 적용될 수 있다. 이러한 루터들은 하나 이상의 외부 링크들에 연결되는 주 루팅 처리를 포함한다. 주 루팅 처리는외부 링크들 중 하나를 통해 원격 루터와 통신할 수 있음으로써 루팅 데이터 및 통신 상태를 전송한다. 주 루팅 처리는 루팅 데이터 및 통신 상태를 데이터 저장부에 저장하고, 상기 데이터 저장부는 주 처리가 실패하는 경우에 예비 루팅 처리를 위해 이용될 수 있다. 일실시예에 따르면, 통신 상태는 업데이트가 통신되도록 하는 네트워크 접속의 상태이다.
이러한 실패의 경우에, 원격 루터와의 통신은 데이터 저장부로부터 통신 상태 및 루팅 데이터를 검색함으로써 주 루팅 처리를 반영하는 예비 루팅 처리로 전환된다. 따라서, 예비 루팅 처리는 데이터 저장부로부터 검색되는 통신 상태를 사용하여 상기 원격 루터와 계속해서 통신할 수 있다.
일실시예에 따르면, 주 루팅 처리는 TCP(Transmission Control Protocol) 접속을 통해 루팅 테이블 업데이트들을 통상적으로 교환하는 BGP(Border Gateway Protocol)과 같은 인터넷 루팅 프로토콜을 구현할 수 있다. 이러한 실시예들에서, 통신 상태는 TCP 포트 어드레스들, TCP 상태 식별자들(일예로, CLOSED, LISTEN, ESTABLISHED 등), 전송 및 수신 시퀀스 번호들, 확인응답된 시퀀스 번호들 등을 포함해서 TCP 접속의 현재 상태이다.
주 루팅 처리는 저장 상태를 데이터 저장부에 저장하며, 상기 저장 상태는 통신 상태로부터 유도된다. 일예로, 전송 시퀀스 번호(즉, 통신 상태)를 갖는 TCP 세그먼트가 수신되었을 때, TCP 수신 시퀀스 번호(즉, 저장 상태)가 전송 시퀀스 번호로부터 유도되며 접속을 위해 데이터 저장부에 저장된다. 일부 TCP 접속 상태들에 있어서, 통신 상태는 저장 상태와 동일하다
그러나, TCP는 TCP 세그먼트들의 애플리케이션-애플리케이션 전달을 보장하지 않는다. 대신에, TCP 는 TCP 세그먼트를 수신한 것에 대한 응답으로 확인응답응답을 전송하는데, 상기 확인응답응답은 일반적으로 ACK로서 지칭된다. TCP 확인응답은 데이터가 최종 사용자 처리에 전달되는 것은 보장하지 않고 단지 수신 TCP 처리가 그렇게 하도록 책임을 지우는 것을 보장한다. 따라서, 표준 TCP를 통해서는, TCP 확인응답응답이 수신될 때 루팅 테이블 업데이트가 처리되고 주 서버 처리에 의해 예비되는 것이 보장되지 않는다.
본 발명의 실시예들은 통신의 전송단으로부터의 수신(즉, 판독)을 확인응답하거나 통신의 수신단에 데이터를 전송(즉, 기록)하기에 앞서서 내용 및 통신 상태가 데이터 저장부에 복제되도록 보장함으로써 데이터의 애플리케이션-애플리케이션 전송을 제공하기 위한 시스템 및 방법을 또한 제공한다. 따라서, 예비 처리가 개시되었을 때는, 주 처리로부터 예비 처리로의 전환 동안에 데이터의 손실이 회피된다.
이러한 실시예들은 오류 허용 데이터 통신의 실시예들을 구현할 수 없는 주변 루터들(즉, 표준 TCP를 구현하는 루터들)에 대해 명백하다. 따라서, 오류 허용 데이터 통신의 실시예들을 구현하는 루터들과 상호작용하도록 하기 위해서 기존의 루터들을 변경할 필요가 없다.
본 발명의 앞서 설명한 것 및 다른 목적들, 특징들 및 장점들은 첨부 도면들에 도시된 바와 같은 본 발명의 바람직한 실시예들의 다음과 같은 더욱 상세한 설명으로부터 자명해질 것이고, 도면들에서 동일한 참조 문자들은 다른 도면들 전반에 걸쳐 동일한 부분들을 나타낸다. 도면들은 반드시 축적에 맞게 도시되지 않으며, 대신에 본 발명의 원리를 제시하는 것이 강조된다.
본 발명의 바람직한 실시예들에 대한 설명은 다음과 같다.
본 발명의 실시예들은 오류 허용 데이터 통신(fault tolerant data communication)을 위한 시스템 및 방법을 제공한다. 일실시예에 따르면, 애플리케이션 처리를 대신하여 원격 피어들(remote peers)과의 네트워크 접속들을 구축하고 상기 접속의 현재 상태를 리포지터리(repository)에 보존하기 위한 오류 허용 전송 레이어 프로토콜이 구현된다. 애플리케이션이 실패하는 경우에, 네트워크 접속들의 로컬 사이드(local side)가 리포지터리의 상기 저장된 상태들로부터 재생성될 수 있다. 따라서, 예비 애플리케이션 처리는 접속을 재구축하거나 리셋할 필요없이 그러한 네트워크 접속들을 통해 계속해서 통신할 수 있다. 본 발명의 실시예들은 데이터 교환의 신뢰도를 향상시키기 위해서 다양한 애플리케이션들에 적용될 수 있다. 일실시예에 따라, 인터넷 루터들과 같은 루터들은 루팅 테이블 업데이트들을 교환하기 위한 오류 허용 데이터 통신을 구현할 수 있다.
도 2는 일실시예에 따라 오류 허용 데이터 통신을 구현하는 스위치 루터의 하드웨어 성분들을 도시하는 다이어그램이다. 스위치 루터(200)는 TCP/IP 패킷들의 최종 목적지들로 향하는 외부 링크들을 통해 상기 TCP/IP 패킷들을 전송하는 인터넷 루터일 수 있다. 스위치 루터(200)는 주 서버 모듈(220a)에 의해 관리되는 루터 다수의 루터 모듈들(230)을 포함한다. 예비 서버 모듈(220b)은 주 서버 모듈(220a)이 실패하는 경우에 루팅 동작들을 관리하기 위해 스위치 루터(200) 내에 병합된다.
주 서버 모듈(220a)은 전체 시스템(200)을 위한 루팅 동작들을 수행한다. 특히, 주 서버 모듈(200a)은 BGP(Border Gateway Protocol)을 포함해서 다수의 IP 루팅 프로토콜들에 대한 루팅 테이블들을 보유한다. BGP는 1995년 3월에 Y.Rekhter 및 T.Li에 의한 RFC 1771의 "A Border Gateway Protocol 4(BGP-4)"에 더욱 상세히 설명되어 있다. 루팅 테이블들은 외부 링크들을 통해서 스위치 루터(200)에 연결되는 상류부분 및 하류부분 루터들과 루팅 테이블 업데이트들을 교환함으로써 주 서버 모듈(220a)에 의해 동적으로 업데이팅된다.
각각의 루터 모듈(230)은 인터넷 루터와 같은 원격 루터에서 끝나는 외부 링크에 연결된다. 루터 모듈들(230)은 또한 서로 연결됨으로써, 루터(200) 내에 페브릭(fabric)으로 지칭되는 내부 스위치 토폴로지를 생성한다. 그러나, 크로스 바 스위치들 및 버스들에 기초하는 것과 같은 다른 루터 구성들이 루터 모듈들(230)을 상호접속시키기 위해서 적용될 수 있다. 일실시예에 따라, 패브릭은 루터 모듈들(230)을 상호접속시켜 교차상태(deadlock) 및 트리 포화(tree saturation)를 방지함으로써, 다중 경로들이 임의의 소스로부터 임의의 목적지로 상기 패브릭을 통해 제공된다. 일실시예에 따라, 각각의 루터 모듈(230)은 상기 패브릭 내에 내부적으로 및 상기 패브릭으로부터 원격 루터들에 외부적으로 루팅 패킷들을 위한 집적 스위치 및 라인 카드를 포함한다.
이러한 패브릭은 다-차원 환형 패브릭들 및 감마 그래프 패브릭들을 포함한다. 다-차원 환형 패브릭들은 "Method and Apparatus for Event-Driven Routing"이란 명칭으로 2001년 9월 4일에 등록된 미국 특허 제 6,285,679호에 더 상세히 설명되어 있고, 상기 미국 특허의 전체 내용은 본 명세서에 참조로서 병합된다.
주 및 예비 서버 모듈들(220a, 220b)은 서버 부착 모듈들 또는 SAM들로 지칭되는 상이한 루터 모듈들(230)을 통해서 패브릭에 액세스한다. SAM을 통한 패브릭으로의 액세스로 인해서, 액티브 서버 모듈은 외부 링크들을 통해 루팅 테이블 업데이트들을 전송 및 수신할 수 있다.
주 서버 모듈(220a)은 예비 서버 모듈(220b)에 연결되어 데이터 및 제어 메시지들을 전송하기 위한 콘딧(conduit)을 제공한다. 일실시예에 따라, 주 서버 모듈(220a)은 베이 제어기 모듈(250)의 이더넷 중계기를 통해 예비 서버 모듈(220b)에 간접적으로 연결될 뿐만 아니라 교차 케이블링을 통해 예비 서버 모듈(220b)에 직접적으로 연결된다.
도 3A는 일실시예에 따라 정상 동작 동안에 루터에 대한 오류 허용 데이터 통신을 도시하는 고도의 다이어그램이다. 정상 동작 동안에, 주 서버 모듈(220a) 내에서 실행하는 주 서버 처리(310)는 루팅 테이블 업데이트들을 교환하기 위해서 원격 루터들(330)과의 네트워크 접속들을 개시하거나 수용한다. 만약 루팅 테이블 업데이트가 루팅 테이블(315a)의 상태를 변경한다면(즉, 테이블 엔트리를 추가, 삭제, 또는 변경), 주 서버 처리(310)는 예비 서버 모듈(220b)의 리포지터리(350)에 저장을 위한 루팅 상태 변경을 전송한다. 따라서, 주 서버 처리(310)가 실패하였을 때, 정상 동안에 인액티브 상태인 예비 서버 처리(370)는 루팅 테이블(315a)과 연관있는 저장된 루팅 상태(355a)로부터의 루팅 테이블을 통해 생성될 수 있다.
테이블 상태 변경들을 복제하는 것 이외에도, 주 서버 처리(310)는 원격 루터들(330)과 구축된 네트워크 접속들의 접속 상태들(315b)을 또한 복제한다. 따라서, 만약 주 서버 처리(310)가 (ⅰ) 루팅 테이블 업데이트의 교환 동안에 또는 (ⅱ) 루팅 테이블 업데이트가 교환된 이후지만 리포지터리(350)에 보내지기 이전에 실패한다면, 네트워크 접속들의 로컬 사이드는 저장된 접속 상태(355b)로부터 리포지터리(350)에서 재생성될 수 있다. 따라서, 예비 서버 처리(370)는 주 서버 처리(310)가 실패한 지점부터 앞서 구축된 네트워크 접속들을 통해서 현재 진행 중인 교환들로 진행할 수 있다.
도 3B는 일실시예에 따라 예비 모드 동안에 루터에 대한 오류 허용 데이터 통신을 도시하는 고도의 다이어그램이다. 주 서버 처리(310)가 실패하였을 때, 루팅 동작들의 제어가 예비 서버 처리(370)에 전송되는데, 상기 예비 서버 처리는 예비 서버 모듈(220b) 상에서 설명된다. 예비 서버 처리(370)는 리포지터리(350)로부터 검색되는 저장된 루팅 상태(355a)로부터 루팅 테이블(375a)을 생성한다. 또한, 주 서버 처리(310)와 앞서 구축된 네트워크 접속들의 로컬 사이드는 리포지터리(350)의 저장된 접속 상태(355b)로부터 재생성되고, 그로 인해 예비 서버 처리(370)로 하여금 원격 루터들(330)과 동시에 진행 중인 루팅 테이블 업테이트들의 교환을 계속할 수 있게 한다. 이러한 실시예들은 주 서버 처리(310)로부터 예비 서버 처리(370)로의 실패로 인한 전환 동안에 루팅 테이블 업데이트들이 손실되는 것을 방지한다.
인터넷 루터들에 대해서, BGP는 TCP(Transport Control Protocol)을 통해 루팅 테이블 업데이트들을 교환하는 IP 루팅 프로토콜이다. TCP는 접속-지향 전송레이어 프로토콜(connection-oriented transport layer protocol)인데, 상기 프로토콜은 1981년Defense Advanced Research Projects Agencydml의 "RFC 793-Transmission Control Protocol"에 더 상세히 설명되어 있으며, 상기 문헌의 전체 내용은 본 명세서에서 참조로서 병합된다. TCP는 TCP 세그먼트들의 애플리케이션-애플리케이션 전달을 보장하지 않는다. 대신에, TCP는 TCP 세그먼트를 수신한 것에 대한 응답으로 확인응답응답들을 전송하는데, 상기 확인응답응답들은 일반적으로 ACK들로 지칭된다. TCP 확인응답응답은 데이터가 최종 사용자 처리에 전달되는 것을 보장하지는 않고 단지 수신 TCP 처리가 이를 수행할 책임을 갖도록 보장한다. 따라서, 표준 TCP를 통해서는, TCP 확인응답응답이 수신되었을 때 루팅 테이블 업데이트가 처리되고 예비되는 것이 보장되지 않는다.
일실시예에 따르면, TCP 프로토콜은 데이터의 애플리케이션-애플리케이션 전달을 보장하는 오류 허용 데이터 통신을 제공하도록 변경된다. 이러한 변경들은 TCP 세그먼트들의 포맷 변경을 필요로 하지 않는다. 따라서, 이러한 실시예들은 표준 TCP를 구현하는 기존 루터들과의 호환성을 가능하게 함으로써 상호작용을 위한 기존 루터들의 변경 필요성을 방지한다.
도 4는 일실시예에 따라 원격 피어들(remote peers)과의 오류 허용 TCP 접속들을 구현하는 소프트웨어 성분들을 도시하는 다이어그램이다. 오류 허용 TCP(FTTCP)는 (ⅰ) TCP-호환 FTTCP 프로토콜 구동기들(450a, 450b); (ⅱ) FTTCP 소켓 레이어 인터페이스들(420a, 420b); (ⅲ) FTTCP 태스크(430); 및 (ⅳ) 레포지터리 처리(490)를 통해서 주 및 예비 서버 모듈들(220a, 220b)에 구현될 수 있다.TCP 프로토콜 구동기들(460a, 460b) 및 TCP 소켓 레이어 인터페이스들(440a, 440b)이 또한 리포지터리 처리(490)로/로부터의 전송을 위해 사용될 수 있다. 애플리케이션 처리(410a, 410b)는 상류부분 및 하류부분 루터들과 루팅 테이블 업데이트들의 신뢰적인 교환을 위해 FTTCP와 인터페이스한다. IP 프로토콜 구동기들(470a, 470b) 및 네트워크 인터페이스 구동기들(480a, 480b)은 위의 전송 및 애플리케이션 레이어들을 지원한다.
일실시예에 따르면, FTTCP 프로토콜 구동기(450a, 450b)는 변경된 버전의 TCP이며, 그로 인해서 도 5A 및 5B에 도시된 바와 같이 원격 TCP 피어들과의 네트워크 접속들을 통해 판독 및 기록 데이터의 본질적인 의미를 변경함으로써 오류 허용을 제공한다. 주/예비 서버 처리(410a, 410b)와 같은 애플리케이션 처리들은 FTTCP를 위해 변경된 소켓 레이어 인터페이스(420a, 420b)를 통해서 FTTCP 프로토콜 구동기(450a, 450b)로부터 네트워크 서비스들(일예로, 판독 및 기록 서비스들)을 요청한다. 일실시예에 따르면, FTTCP 소켓 레이어 인터페이스(420a, 420b)는 표준 TCP 프로토콜 구동기(460a, 460b)를 위한 TCP 소켓 레이어 인터페이스(440a 440b)와 유사하게 소켓 시스템 호출들의 API(Application Program Interface)를 제공한다. FTTCP 소켓(422)은 전송 레이어 접속의 종점을 나타내며, 커널(kernel)로부터의 네트워크 서비스들을 요청하기 위해 애플리케이션 처리에 의해 사용되는 파일 처리의 특정 타입이다. FTTCP 소켓(422)은 전송 중에 TCP 세그먼트들의 일시적인 저장을 위한 수신 버퍼(423) 및 전송 버퍼(424)와 연관된다.
FTTCP 태스크(430)는 리포지터리 처리(490)와 TCP/IP를 통해 통신하여 FTTCP프로토콜 구동기(450a)로부터 FTTCP 접속들의 접속 상태들을 전송하는 커널 처리일 수 있다. 리포지터리 처리(490)는 예비 서버 모듈(220b) 상에서 실행하는 사용자 모드 처리일 수 있다. 리포지터리 처리(490)는 루팅 테이블의 현재 상태뿐만 아니라 구축된 FTTCP 접속들의 접속 상태들을 유지하기 이한 API 인터페이스를 제공한다. 리포지터리 처리(490)는 또한 저장된 상태들로부터 루팅 테이블 및 네트워크 접속들의 상태를 재생성하기 위한 API 인터페이스를 제공한다. 일실시예에 따라, 리포지터리 처리(490)는 상태 저장을 위한 조합 어레이나 해시 테이블(hash table)을 구현한다.
FTTCP 구현의 실시예들은 서버 실패의 경우에 FTTCP 접속의 양 단부의 동기를 보장하기 위해서 TCP의 판독 및 기록 의미를 변경한다. 이를테면, TCP는 일반적으로 수신시에 TCP 세그먼트의 확인응답응답을 전송한다. 그러나, ACK를 전송한 이후에는, 애플리케이션 처리는 데이터를 판독하여 처리하기 이전에 실패할 수 있다(일예로, 테이블 업데이트를 루팅). 따라서, 예비 애플리케이션 처리가 설명될 때, 리포지터리로부터 재생성되는 루팅 테이블은 루팅 테이블 업데이트를 보유할 수 없다. 재전송은 만약 업데이트를 포함하는 TCP 세그먼트가 앞서 확인응답되지 않았다면 또한 가능성이 없다.
도 5A는 일실시예에 따른 오류 허용 TCP 접속을 통한 판독 처리를 도시하는 상태 다이어그램이다. 일반적으로, FTTCP는 TCP 세그먼트들의 수신을 확인응답응답하지 않는데, 이는 명백하게 그렇게 하도록 지시될 때까지 이루어진다. 일실시예에 따라, 애플리케이션 처리는 데이터가 처리되어 리포지터리 내에 성공적으로확보된 이후에 FTTCP에게 ACK를 전송하도록 지시한다. 만약 데이터가 리포지터리에 확보되기 이전에 애플리케이션 처리가 실패한다면, 확인응답응답은 전송되지 않는다. 따라서, 원격 TCP 피어는 데이터를 계속해서 재전송할 수 있고, 따라서 재전송된 데이터를 처리하고 확인응답응답하기 위한 예비 애플리케이션 처리로의 전환을 가능하게 한다. 비록 FTTCP가 다양한 애플리케이션들에서 활용될 수 있지만, 도 5A는 루터 환경에서 오류 허용 TCP 접속들을 통한 판독 처리를 도시하고 있다.
단계(510)에서는 FTTCP 접속을 통해 전송되는 TCP/IP 패킷이 IP 프로토콜 구동기(470a)에 의해 수신된다. 루팅 테이블 업데이트의 적어도 일부를 포함하고 있는 TCP 세그먼트는 패킷으로부터 추출되며, 변경된 tcp_input 시스템 호출을 통해서 FTTCP 프로토콜 구동기(450a)에 전송된다.
단계(515)에서는, FTTCP 프로토콜 구동기(450a)가 TCP 세그먼트로부터의 데이터를 FTTCP 소켓(422)의 소켓 수신 버퍼(423)에 첨부하는데, 상기 FTTCP 소켓(422)은 TCP 세그먼트 헤더에서 식별되는 목적지 TCP 포트와 연관된다. BGP를 위해 잘 알려진 TCP 포트 식별자는 179이다. TCP와 반대로, FTTCP 프로토콜 구동기(450a)의 변경된 tcp_input 시스템 호출은 TCP 패킷의 수신을 확인응답하지도 않으며 이 단계에서 접속 상태를 갱신하지도 않는다(일예로, 수신하는 그 다음 시퀀스 번호를 증가시킴).
단계(520)에서는, 애플리케이션 처리(410a)가 판독 시스템 호출을 발생시킴으로써 소켓 수신 버퍼(423)로부터 데이터를 판독한다. TCP와는 반대로, 데이터는 판독된 이후에 소켓 수신 버퍼(423)로부터 즉시 "생략"(즉, 제거)되지 않는다. 소켓 수신 버퍼(423)에서 데이터를 생략하기 위해, 주 서버 처리는 소켓 레이어(420a)의 FTTCP 소켓(422)에 명백한 요청을 전송해야 한다.
단계(525)에서는, 주 서버 처리(410a)가 루팅 테이블 업데이트를 BGP 루팅 테이블에 통합하고 처리된 루팅 업데이트를 리포지터리(490)에 저장함으로써 소켓 수신 버퍼(423)로부터 판독되는 데이터를 처리한다. 일실시예에 따라, 주 서버 처리는 처리된 루팅 테이블 업데이트를 TCP/IP 레이어(460a, 470a)를 통해서 리포지터리(490)에 전송한다.
단계(530)에서는, 리포지터리 처리(490)로부터의 확인응답 메시지가 처리된 루팅 테이블 업데이트의 저장을 확인응답시킨다.
단계(535)에서는, 데이터를 소모하였을 때, 주 서버 처리(410a)는 상기 데이터를 소켓 수신 버퍼(423)로부터 생략하도록 지시한다. 일실시예에 따라, 주 서버 처리(410a)는 새로운 소켓 레벨 옵션(SO_FTDROP) 및 생략될 바이트들의 수를 갖는 변경된 setsockopt() 시스템 호출을 발생시킴으로써 데이터를 생략하도록 소켓(422)에 지시한다.
단계(540)에서는, 변경된 setsockopt() 시스템 호출이 SO_FTDROP 옵션을 처리함으로써 FTTCP 태스크(430)와 연관있는 대기열(queue)에 메시지를 배치한다. SO_FTDROP 메시지는 리포지터리(490)에 있는 FTTCP 접속의 접속 상태를 업데이팅하도록 태스크(430)에 요청한다. 일실시예에 따라, 접속 상태는 FTTCP 접속의 현재 수신 상태를 나타내는 수신 다음 시퀀스 번호(receive next sequence number)를 포함한다.
단계(545)에서는, setsockopt() 시스템 호출이 주 서버 처리(410a)에 리턴함으로써 추가적인 애플리케이션 레벨 처리를 가능하게 한다.
단계(550)에서는, FTTCP 태스크(430)가 업데이팅된 접속 상태를 TCP/IP 접속을 통해서 저장을 위해 리포지터리(490)에 전송하고, 이어서 상기 업데이트가 리포지터리(490)에 성공적으로 보내졌는지를 나타내는 확인응답을 기다린다.
단계(555)에서는, 리포지터리 처리(490)로부터 확인응답이 수신된다.
단계(560)에서는, 성공적인 확인응답이 있을 때, FTTCP 태스크(430)는 소켓 수신 버퍼(423)로부터 판독되는 데이터의 제거를 지시한다. 일실시예에 따라, 데이터는 소켓 수신 버퍼(423)의 어드레스 및 생략될 바이트의 수를 규정하는 표준 sbdrop() 시스템 호출을 통해서 수신 버퍼(423)로부터 제거된다.
단계(565)에서는, FTTCP 태스크(430)가 FTTCP 접속의 접속 상태(즉, FTTCP 접속을 위한 수신 다음 시퀀스 번호)를 업데이팅하도록 FTTCP 프로토콜 구동기(450a)에 지시한다. 일실시예에 따라, FTTCP 태스크(430)는 새로운 프로토콜 레벨로서 FTTCP를 식별하며 새로운 옵션 TCP_FT_DROP를 규정하는 변경된 setsockopt() 시스템 호출을 발생시킴으로써 수신 다음 시퀀스 번호의 업데이트를 지시한다. 이러한 옵션은 그것이 tcp_ctloutput() 시스템 호출에 의해 처리되는 FTTCP 프로토콜 구동기(450a)에 필터 다운됨으로써, FTTCP 접속을 위한 수신 다음 시퀀스 번호를 업데이팅한다.
단계(570)에서는, 상기 수신 다음 시퀀스 번호를 업데이팅하였을 때, FTTCP 프로토콜 구동기(450a)는 앞서 수신된 TCP 세그먼트를 확인응답하고 수신될 것으로예상되는 다음 TCP 세그먼트의 시퀀스 번호를 식별하는 FTTCP 접속의 원격 피어에 TCP 세그먼트를 전송한다.
수신 다음 시퀀스 번호를 TCP 세그먼트를 확인응답하기에 앞서 리포지터리에 보냄으로써, 로컬 수신 윈도는 항상 피어의 전송 윈도우와 같거나 그 보다 앞설 것이다. 실패의 경우에, 리포지터리는 TCP 피어와 동일한 정보를 갖거나 클라이언트 보다 더 최근의 정보를 갖는다. 더 최근의 정보는 피어의 전송 윈도우에 앞서 있는 수신 윈도우에 의해서 TCP에 반영된다.
도 5B는 일실시예에 따른 오류 허용 TCP 접속을 통한 기록 처리를 도시하는 상태 다이어그램이다. 일반적으로, FTTCP는 "자동" 기록을 지원한다. 따라서, 애플리케이션 처리가 FTTCP 접속을 통해서 데이터를 기록하기 위해 시스템 호출을 발생하였을 때, FTTCP는 전송할 데이터(즉, 전송 데이터)의 전체 복사본을 리포지터리에 보내기 위해 시도한다. 만약 전체 전송 데이터를 저장하기 위한 충분한 공간이 없다면, 기록 시스템 호출은 에러적으로 리턴한다. 그렇지 않다면, 데이터는 리포지터리에 보내지고, FTTCP는 표준 TCP 처리에 따라 데이터를 전송할 수 있다. 만약 애플리케이션 처리가 전송 데이터의 전송 동안에 실패한다면, 상기 전송 데이터의 복사본이 예비 애플리케이션 처리에 의한 재전송을 위해서 리포지터리에서 이용가능하다. 예비 애플리케이션 처리로의 전환을 통해 전체 전송 데이터를 재전송하는 것을 회피하기 위해서, 원격 피어에 의해 확인응답되는 전송 데이터의 임의의 부분은 업데이팅되는 FTTCP 접속의 상응하는 접속 상태를 갖는 리포지터리로부터 제거된다. 도 5B는 루터 환경에서 FTTCP 접속들을 통한 기록 처리를 도시하고 있다.
단계(610)에서는, 주 서버 처리(410a)가 FTTCP 접속을 통한 전송 데이터의 전송을 개시하기 위해서 기록 시스템 호출을 발생시킨다. FTTCP 소켓(422)의 소켓 전송 버퍼(424)에 전송 데이터를 기록하기 이전에, 기록 시스템 호출은 전체 내용을 보유할 정도로 소켓 전송 버퍼(424)에는 충분한 공간이 있는지 여부를 결정한다. 일실시예에 따라, 소켓 전송 버퍼(424) 공간은 전송 데이터의 크기와 전송 버퍼(424) 대기열에서 대기하고 있는 데이터의 현재 크기의 합과 동일하도록 다시 정해진다. 만약 충분한 공간이 없다면, 기록 시스템 호출은 에러적으로 리턴한다. 그렇지 않다면, 기록 처리는 단계(615)로 진행한다.
단계(615)에서는, 리포지터리(490)에 전송 데이터의 저장할 것을 요청하고 리포지터리에서 소켓 전송 버퍼(424)의 상태를 업데이팅하는 메시지가 FTTCP 태스크(430)에 보내진다. 일실시예에 따라, 소켓 전송 버퍼(424)의 상태는 전송 다음 시퀀스 번호(send next sequence number) 및 전송 비확인응답 시퀀스 번호를 포함한다.
단계(620)에서는, 기록 시스템 호출이 주 서버 처리에 리턴함으로써 추가적인 애플리케이션 레벨 처리를 가능하게 한다.
단계(625)에서는, FTTCP 태스크(430)가 소켓 전송 버퍼(424)의 데이터 및 상태를 TCP/IP 접속을 통해서 리포지터리(490)에 전송하며, 이어서 상기 데이터가 성공적으로 리포지터리(490)에 보내졌는지 여부를 나타내는 리포지터리로부터의 확인응답을 기다린다.
단계(630)에서는, 리포지터리가 FTTCP 태스크(430)에 확인응답을 전송한다.
단계(635)에서는, 성공적인 확인응답을 수신하였을 때, FTTCP 태스크(430)는 FTTCP 접속을 통한 데이터의 전송을 개시하도록 FTTCP 프로토콜 구동기(450a)에 요청한다. 일실시예에 따르면, 시스템 호출은 tcp_usrreq(PRU_SEND)이다.
단계(640)에서는, 전송 요청에 응답하여, FTTCP 프로토콜 구동기(450a)는 기록 시스템 호출과 함께 전송되는 기록 버퍼로부터의 데이터를 sbappend() 시스템 호출을 통해 소켓 전송 버퍼(424)에 전송한다.
단계(645)에서는, TCP 세그먼트들을 생성하고 그것들을 FTTCP 접속을 통해 전송하는 처리가 tcp_output 시스템 호출을 통해 개시된다. 특히, FTTCP 프로토콜 구동기(450a)는 메시지의 내용을 데이터 프래그먼트들로 분할하는데, 상기 데이터 프래그먼트들은 다중 TCP/IP 데이터 패킷들의 페이로드에 추가된다. 전송되는 각각의 TCP 세그먼트는 TCP 프로토콜에 의해 정해지는 전송 시퀀스 번호를 포함한다.
단계(650)에서는, 수신단이 그 다음으로 수신할 것으로 예상한 다음 시퀀스 번호를 식별하는 TCP 세그먼트의 수신을 확인응답한다.
단계(655)에서는, FTTCP 프로토콜 구동기(450a)가 ACK를 포함하고 있는 TCP 세그먼트를 소켓 레이어(420a)에 있는 FTTCP 소켓(422)의 소켓 수신 버퍼(423)에 전송한다.
단계(660)에서는, FTTCP 소켓(422)이 전송 다음 시퀀스 번호와 전송 비확인응답 시퀀스 번호를 업테이팅함으로써 리포지터리(490)에 있는 소켓 전송 버퍼(424)의 상태를 업데이팅하도록 FTTCP 태스크(430)에 지시함으로써, 리포지터리(490)에 저장된 전송 데이터의 확인된 부분을 효과적으로 삭제한다.
단계(665)에서는, FTTCP 태스크(430)가 소켓 전송 버퍼(424)의 업데이팅된 상태를 전송하며, 리포지터리(490)로부터 확인응답 메시지를 기다린다.
단계(670)에서는, 리포지터리(490)가 저장 요청이 성공적이었는지 여부를 나타내는 확인응답 메시지를 전송한다.
단계들(645 내지 670)은 전체 전송 데이터가 전송되고 FTTCP 접속의 수신단에 의해 확인될 때까지 반복된다.
주 서버 처리(410a)가 실패하는 경우에, 리포지터리(490)는 이전에 확인되어진 보다 적은 임의의 데이터를 재전송할 수도 있는 전체 복사본을 유지한다. 심지어 주 서버 처리(410a)가 수신단으로부터의 TCP ACK의 수신에 앞서 실패하면, 앞서 수신되고 확인되었던 BGP 데이터를 재전송하는 것이 용인될 수 있다. 특히, BGP 프로토콜은 이전에 수신되지 않은 패킷들로부터의 내용은 수용하지만 이미 수신된 것들은 버린다.
도 6은 일실시예에 따른 주 애플리케이션 처리로부터 예비 애플리케이션 처리로의 데이터 통신의 예비 모드 동안에 FTTCP 접속들을 재구축하기 위한 방법을 도시하는 흐름도이다. 예비 서버 모듈(220b)에서 동작하는 동안에, GateDTM예비 서버 처리와 같은 예비 서버 처리(410b)는 주 서버 처리(410a)가 실패하는 때에 진행 중이던 모든 FTTCP 접속들의 로컬 사이드를 재구축하기 위해서 리포지터리 처리(490)와 통신한다. 일단 접속이 재구축되면, 예비 서버 처리(410b)는 데이터 손실을 방지하면서 계속해서 데이터를 교환할 수 있다.
FTTCP 접속을 재생성한다는 것은 TCP 제어 블록(TCPCB) 및 인터넷 제어 블록(INPCB)이 자신들이 기능중단되기 이전의 상태와 동일한 상태로 계속 유지되어야 한다. 이러한 데이터 구조를 생성하기 위한 모든 관련 정보는 리포지터리의 접속 정보에 저장된다. 커널은 접속 구조를 가지며 tcpcb 및 inpcb를 차지한다. 소켓 전송 버퍼(424)는 리포지터리의 전송 버퍼(424)를 새롭게 생성된 소켓들 및 버퍼에 추가함으로써 쉽게 재생성될 수 있다. 도 6은 루터 환경에서 FTTCP 접속들을 재구축하는 것을 도시하고 있다.
단계(710)에서는, GateDTM예비 처리(410b)가 FTTCP 접속에 대한 처리(일예로, 소켓 식별자)를 위해서 리포지터리 처리(490)에 요청을 보낸다. 일실시예에 따라, 예비 서버 처리(410b)는 루팅 정보를 서로 교환할 루터들을 식별하는 포린(foreign) 어드레스/포트 쌍 리스트로 미리 구성된다. 따라서, 예비 서버 처리(410b)는 FTTCP 접속을 요청하는 리스트를 반복함으로써 요청 기준으로서 포린 어드레스/포트 쌍을 식별한다.
단계(720)에서는, 리포지터리 처리(490)가 요청 기준에 매칭되는 FTTCP 접속 데이터 구조를 위해 해시 테이블이나 조합 어레이와 같은 자신의 내부 데이터 저장부들을 탐색한다. 만약 단계(730)에서 매칭이 발견되면, 처리는 단계(740)로 진행한다. 그렇지 않다면, 리포지터리 처리(490)는 에러적으로 리턴하여, 예비 서버 처리(410b)로 하여금 다른 FTTCP 접속들 요청할 수 있게 한다.
단계(740)에서는, 리포지터리 처리(490)가 소켓 레이어(420b)를 통해 시스템 호출을 보냄으로써 FTTCP 소켓을 생성한다. 일예로, 시스템 호출은 다음과 같이 표현될 수 있고,
so=소켓(AF_INET, SOCK_STREAM, IPPROTO_FTTCP)
여기서 so는 리턴된 FTTCP 소켓 식별자이다.
단계(750)에서는, FTTCP 소켓에 대한 요청의 응답으로, TCP 및 IP 제어 블록들(즉, tcpcb 및 inpcb)이 소켓에 대해 생성된다.
단계(760)에서는, 리포지터리(490)가 FTTCP 접속을 위한 모든 소켓 전송 버퍼(424) 데이터를 획득하며 상기 데이터를 소켓 레이어(420b)를 통해 소켓에 전송하는데, 여기서 상기 데이터는 FTTCP 소켓의 소켓 전송 버퍼(424)에 첨부된다. 일예로, 시스템 호출은 다음과 같이 표현될 수 있고,
setsockopt(so, SOL_SOCKET, SO_FTCONNDATA, 버퍼, 크기)
여기서, 소켓 전송 버퍼 데이터는 버퍼에 저장된다.
단계(770)에서는, 리포지터리(490)가 FTTCP 접속에 대한 접속 상태를 획득하여 그것을 소켓에 전송한다. 일예로, 시스템 호출은 다음과 같이 표현될 수 있고,
setsockopt(so, SOL_SOCKET, SO_FTCONNSTATE, &connd, sizeof(rep_connection_t))
여기서, connd는 FTTCP 접속 상태 데이터 구조(즉, struct rep_connection_t)를 보유한다. 일실시예에 따라, FTTCP 접속 상태 데이터 구조는 다음과 같은 것들을 저장할 수 있다:
(ⅰ) 접속 타입, 접속되는지 또는 용인되는지 여부;
(ⅱ) 인덱싱을 위해 리포지터리에 의해 제공되는 고유 FTTCP 접속 식별자;
(ⅲ) FTTCP 소켓을 나타내는 접속 집합(일예로, 로컬 및 포린 어드레스/포트 쌍);
(ⅳ) TCP 프로토콜에 의해 정의되는 TCP 상태;
(ⅴ) 수신 다음 및 전송 다음 시퀀스 번호들;
(ⅵ) 전송 비확인 시퀀스 번호;
(ⅶ) 전송 최대 윈도우 시퀀스 번호; 및
(ⅷ) 초기 전송 및 수신 시퀀스 번호들.
단계(780)에서는, TCP 및 IP 제어 블록들이 FTTCP 접속 상태로 점유되며, 로컬 사이드에서 접속을 가능하게 하기 위해 IP 제어 블록을 inpcb 해시 테이블에 추가한다.
단계(790)에서는, 리포지터리가 FTTCP 소켓 접속을 통해 루팅 테이블 업데이트를 계속해서 교환하기 위해 예비 서버 처리(410b)에 처리(즉, 소켓 식별자)를 리턴한다.
단계(800)에서는, 예비 서버 처리(410b)가 미리 구성된 FTTCP 접속 집합들 리스트를 반복함으로써, 상기 리스트가 소모될 때까지 다른 요청을 전송한다.
비록 본 발명은 바람직한 실시예들을 참조하여 상세히 제시되고 설명되었지만, 당업자라면 첨부된 청구항들에 의해 포함되는 본 발명의 범위로부터 벗어나지 않고 형태 및 상세사항들에 있어 다양한 변경이 본 발명에서 이루어질 수 있다는것을 알 것이다.

Claims (48)

  1. 데이터 및 통신 상태의 전송을 포함하는 통신을 소스와 행하는 단계;
    상기 소스로부터 데이터를 수신하는 단계;
    상기 수신된 데이터를 처리하는 단계; 및
    상기 데이터의 수신을 상기 소스에 알리는 단계를 포함하는 오류 허용 데이터 통신 방법(method of fault tolerant data communication).
  2. 제 1항에 있어서, 상기 수신된 데이터를 처리하는 단계는 예비(backup) 목적으로 상기 수신된 데이터를 하나 이상의 데이터 저장부들에 저장하거나 인가하는 단계를 포함하는 오류 허용 데이터 통신 방법.
  3. 제 2항에 있어서, 통신 상태가 상기 하나 이상의 데이터 저장부들에 저장되거나 인가된 상기 데이터와 연관되도록 하기 위해서, 상기 하나 이상의 데이터 저장부들에 상기 통신 상태를 저장하는 단계를 더 포함하는 오류 허용 데이터 통신 방법.
  4. 제 3항에 있어서,
    실패 시에 예비를 활성시키는 단계;
    상기 하나 이상의 데이터 저장부들에 있는 상기 데이터 및 통신 상태로부터데이터 및 통신 상태를 재생성하는 단계; 및
    상기 재생성된 데이터 및 통신 상태로 복원된 상기 통신을 상기 예비를 통해서 계속하는 단계를 더 포함하는 오류 허용 데이터 통신 방법.
  5. 제 4항에 있어서, 상기 통신을 상기 예비를 통해서 계속하는 단계는,
    실패에 앞서서 하나 이상의 데이터 저장부들에 저장된 상기 통신 상태에 대응하는 상기 소스로부터 데이터를 수신하는 단계를 포함하는 오류 허용 데이터 통신 방법.
  6. 제 3항에 있어서, 상기 통신 상태는 이전 통신 상태 및 상기 수신된 데이터로부터 유도되는 오류 허용 데이터 통신 방법.
  7. 제 3항에 있어서, 상기 통신 상태는 TCP 세션 데이터를 포함하는 오류 허용 데이터 통신 방법.
  8. 제 1항에 있어서, 상기 통신은 TCP/IP 통신인 오류 허용 데이터 통신 방법.
  9. 제 1항에 있어서, 상기 수신된 데이터는 루팅 정보(routing information)인 오류 허용 데이터 통신 방법.
  10. 제 9항에 있어서, 상기 루팅 정보는 BGP(Border Gateway Protocol) 루팅 정보인 오류 허용 데이터 통신 방법.
  11. 제 1항에 있어서, 상기 소스는 인터넷 루터인 오류 허용 데이터 통신 방법.
  12. 데이터 및 통신 상태의 전송을 포함하는 통신을 소스와 행하는 단계;
    상기 소스로부터 데이터를 수신하는 단계;
    예비 목적으로 상기 수신된 데이터를 하나 이상의 데이터 저장부들에 저장하거나 인가하는 단계; 및
    통신 상태가 상기 하나 이상의 데이터 저장부들에 저장되거나 인가된 상기 데이터와 연관되도록 하기 위해서, 상기 하나 이상의 데이터 저장부들에 상기 통신 상태를 저장하는 단계를 포함하는 오류 허용 데이터 통신 방법.
  13. 제 12항에 있어서,
    실패 시에 예비를 활성시키는 단계;
    상기 하나 이상의 데이터 저장부들에 있는 상기 데이터 및 통신 상태로부터 데이터 및 통신 상태를 재생성하는 단계; 및
    상기 요청된 데이터 및 통신 상태로 생성된 상기 통신을 상기 예비를 통해서 계속하는 단계를 더 포함하는 오류 허용 데이터 통신 방법.
  14. 제 13항에 있어서, 상기 통신을 상기 예비를 통해서 계속하는 단계는,
    실패에 앞서서 하나 이상의 데이터 저장부들에 저장된 상기 통신 상태에 대응하는 상기 소스로부터 데이터를 수신하는 단계를 포함하는 오류 허용 데이터 통신 방법.
  15. 데이터 및 통신 상태의 전송을 포함하는 통신을 목적지와 행하는 단계;
    상기 목적지로의 전송을 위한 전송 데이터를 하나 이상의 데이터 저장부들에 저장하는 단계; 및
    통신 상태가 상기 전송 데이터와 연관되도록 하기 위해서, 상기 통신 상태를 하나 이상의 데이터 저장부들에 저장하는 단계를 포함하는 오류 허용 데이터 통신 방법.
  16. 제 15항에 있어서,
    프래그먼트들의 상기 전송 데이터를 상기 목적지에 전송하는 단계; 및
    통신 상태가 상기 전송된 프래그먼트들을 반영하도록 하기 위해서, 상기 하나 이상의 데이터 저장부들에 있는 상기 통신 상태를 업데이팅하는 단계를 포함하는 오류 허용 데이터 통신 방법.
  17. 제 16항에 있어서,
    상기 전송된 프래그먼트들에 대응하는 확인응답들을 수신하는 단계; 및
    상기 전송된 프래그먼트들의 상기 확인응답을 반영하기 위해서 상기 하나 이상의 데이터 저장부에 있는 상기 통신 상태를 업데이팅하는 단계를 더 포함하는 오류 허용 데이터 통신 방법.
  18. 제 17항에 있어서, 상기 확인된 전송 프래그먼트들에 대응하는 상기 하나 이상의 데이터 저장부들의 상기 전송 데이터 부분을 삭제하는 단계를 더 포함하는 오류 허용 데이터 통신 방법.
  19. 데이터 및 통신 상태의 전송을 포함하는 통신을 소스와 행하는 제어 유닛을 포함하고,
    상기 제어 유닛은,
    상기 소스로부터 데이터를 수신하고,
    상기 수신된 데이터를 처리하며, 및
    상기 데이터의 수신을 상기 소스에 알리는 오류 허용 데이터 통신 시스템.
  20. 제 19항에 있어서,
    하나 이상의 데이터 저장부들을 더 포함하고,
    상기 수신된 데이터를 처리하는 것은 상기 제어 유닛이 예비 목적으로 상기 수신된 데이터를 하나 이상의 데이터 저장부들에 저장하거나 인가하는 것을 포함하는 오류 허용 데이터 통신 시스템.
  21. 제 20항에 있어서, 통신 상태가 상기 하나 이상의 데이터 저장부들에 저장되거나 인가된 상기 데이터와 연관되도록 하기 위해서, 상기 제어 유닛이 상기 하나 이상의 데이터 저장부들에 상기 통신 상태를 저장하는 것을 더 포함하는 오류 허용 데이터 통신 시스템.
  22. 제 21항에 있어서,
    상기 제어 유닛의 실패 시에 활성되는 예비 제어 유닛을 더 포함하고,
    상기 예비 제어 유닛은,
    상기 하나 이상의 데이터 저장부들에 있는 상기 데이터 및 통신 상태로부터 데이터 및 통신 상태를 재생성하고, 및
    상기 재생성된 데이터 및 통신 상태로 복원된 상기 통신을 계속하는 오류 허용 데이터 통신 시스템.
  23. 제 22항에 있어서, 상기 예비 제어 유닛을 통해 상기 통신을 계속하는 것은,
    상기 예비 제어 유닛이 실패에 앞서서 하나 이상의 데이터 저장부들에 저장된 상기 통신 상태에 대응하는 상기 소스로부터 데이터를 수신하는 것을 포함하는 오류 허용 데이터 통신 시스템.
  24. 제 21항에 있어서, 상기 통신 상태는 이전 통신 상태 및 상기 수신된 데이터로부터 유도되는 오류 허용 데이터 통신 시스템.
  25. 제 21항에 있어서, 상기 통신 상태는 TCP 세션 데이터를 포함하는 오류 허용 데이터 통신 시스템.
  26. 제 19항에 있어서, 상기 통신은 TCP/IP 통신인 오류 허용 데이터 통신 시스템.
  27. 제 19항에 있어서, 상기 수신된 데이터는 루팅 정보인 오류 허용 데이터 통신 시스템.
  28. 제 27항에 있어서, 상기 루팅 정보는 BGP(Border Gateway Protocol) 루팅 정보인 오류 허용 데이터 통신 시스템.
  29. 제 19항에 있어서, 상기 소스는 인터넷 루터인 오류 허용 데이터 통신 시스템.
  30. 데이터 및 통신 상태의 전송을 포함하는 통신을 소스와 행하는 제어 유닛을 포함하고,
    상기 제어 유닛은,
    상기 소스로부터 데이터를 수신하고,
    예비 목적으로 상기 수신된 데이터를 하나 이상의 데이터 저장부들에 저장하거나 인가하며, 및
    통신 상태가 상기 하나 이상의 데이터 저장부들에 저장되거나 인가된 상기 데이터와 연관되도록 하기 위해서, 상기 하나 이상의 데이터 저장부들에 상기 통신 상태를 저장하는 오류 허용 데이터 통신 시스템.
  31. 제 30항에 있어서,
    상기 제어 유닛의 실패 시에 활성되는 예비 제어 유닛을 더 포함하고,
    상기 예비 제어 유닛은,
    상기 하나 이상의 데이터 저장부들에 있는 상기 데이터 및 통신 상태로부터 데이터 및 통신 상태를 재생성하고, 및
    상기 요청된 데이터 및 통신 상태로 생성된 상기 통신을 계속하는 오류 허용 데이터 통신 시스템.
  32. 제 31항에 있어서, 상기 예비 제어 유닛을 통해 상기 통신을 계속하는 것은,
    상기 예비 제어 유닛이 실패에 앞서서 하나 이상의 데이터 저장부들에 저장된 상기 통신 상태에 대응하는 상기 소스로부터 데이터를 수신하는 것을 포함하는 오류 허용 데이터 통신 시스템.
  33. 데이터 및 통신 상태의 전송을 포함하는 통신을 목적지와 행하는 제어 유닛을 포함하고,
    상기 제어 유닛은,
    상기 목적지로의 전송을 위한 전송 데이터를 하나 이상의 데이터 저장부들에 저장하며, 및
    통신 상태가 상기 전송 데이터와 연관되도록 하기 위해서, 상기 통신 상태를 하나 이상의 데이터 저장부들에 저장하는 오류 허용 데이터 통신 시스템.
  34. 제 33항에 있어서,
    상기 제어 유닛이,
    프래그먼트들의 상기 전송 데이터를 상기 목적지에 전송하고, 및
    통신 상태가 상기 전송된 프래그먼트들을 반영하도록 하기 위해서, 상기 하나 이상의 데이터 저장부들에 있는 상기 통신 상태를 업데이팅하는 것을 더 포함하는 오류 허용 데이터 통신 시스템.
  35. 제 34항에 있어서,
    상기 제어 유닛이,
    상기 전송된 프래그먼트들에 대응하는 확인응답들을 수신하고, 및
    상기 전송된 프래그먼트들의 상기 확인응답을 반영하기 위해서 상기하나 이상의 데이터 저장부에 있는 상기 통신 상태를 업데이팅하는 것을 더 포함하는 오류 허용 데이터 통신 시스템.
  36. 제 35항에 있어서, 상기 제어 유닛이 상기 확인된 전송 프래그먼트들에 대응하는 상기 하나 이상의 데이터 저장부들의 상기 전송 데이터 부분을 삭제하는 것을 더 포함하는 오류 허용 데이터 통신 시스템.
  37. 제 19항에 있어서, 상기 제어 유닛은,
    애플리케이션 처리; 및
    접속-지향(connection-oriented) 전송 프로토콜 처리를 포함하고,
    상기 애플리케이션 처리는 상기 전송 프로토콜 처리를 통해 상기 소스와 통신하고,
    상기 전송 프로토콜 처리는 상기 애플리케이션 처리에 의한 처리 이후에 상기 데이터의 수신을 상기 소스에 알리는 오류 허용 데이터 통신 시스템.
  38. 제 37항에 있어서, 통신 상태가 상기 하나 이상의 데이터 저장부들에 저장되거나 인가된 상기 수신 데이터와 연관되도록 하기 위해서, 상기 전송 프로토콜 처리는 상기 하나 이상의 데이터 저장부들에 상기 통신 상태를 저장하는 오류 허용 데이터 통신 시스템.
  39. 제 33항에 있어서, 상기 제어 유닛은,
    애플리케이션 처리; 및
    접속-지향 전송 프로토콜 처리를 포함하고,
    상기 애플리케이션 처리는 상기 전송 프로토콜 처리를 통해서 상기 목적지와 통신하고,
    상기 전송 프로토콜 처리는 상기 목적지로의 전송을 위한 상기 애플리케이션 처리로부터의 전송 데이터를 상기 하나 이상의 데이터 저장부에 저장하며, 및
    상기 전송 프로토콜 처리는 통신 상태가 상기 전송 데이터와 연관되도록 하기 위해서 상기 통신 상태를 상기 하나 이상의 데이터 저장부들에 저장하는 오류 허용 데이터 통신 시스템.
  40. 하나 이상의 외부 링크들에 전기적으로 연결되는 제어 유닛을 포함하고,
    상기 제어 유닛은,
    상기 외부 링크들 중 하나를 통해서 데이터 및 통신 상태의 전송을 포함한 통신을 원격 루터와 행하고,
    상기 원격 루터로부터 루팅 데이터를 수신하고,
    상기 수신된 루팅 데이터를 처리하며, 및
    상기 데이터의 수신을 상기 원격 루터에 알리는 인터넷 루터.
  41. 제 40항에 있어서, 상기 수신된 루팅 데이터를 처리하는 것은, 상기 제어 유닛이 상기 수신된 루팅 데이터를 예비 목적으로 하나 이상의 데이터 저장부들에 저장하거나 인가하는 것을 포함하는 인터넷 루터.
  42. 제 41항에 있어서, 통신 상태가 상기 하나 이상의 데이터 저장부들에 저장되거나 인가된 상기 루팅 데이터와 연관되도록 하기 위해서, 상기 제어 유닛이 상기 하나 이상의 데이터 저장부들에 상기 통신 상태를 저장하는 것을 더 포함하는 인터넷 루터.
  43. 제 42항에 있어서,
    상기 제어 유닛의 실패 시에 활성되는 예비 제어 유닛을 더 포함하고,
    상기 예비 제어 유닛은,
    상기 하나 이상의 데이터 저장부들에 있는 상기 데이터 및 통신 상태로부터 데이터 및 통신 상태를 재생성하고, 및
    상기 재생성된 데이터 및 통신 상태로 복원된 상기 통신을 계속하는 인터넷 루터.
  44. 데이터 및 통신 상태의 전송을 포함하는 통신을 원격 루터와 행하는 제어 유닛을 포함하고,
    상기 제어 유닛은,
    상기 원격 루터로부터 루팅 데이터를 수신하고,
    예비 목적으로 상기 루팅 데이터를 하나 이상의 데이터 저장부들에 저장하거나 인가하며, 및
    통신 상태가 상기 하나 이상의 데이터 저장부들에 저장되거나 인가된 상기 루팅 데이터와 연관되도록 하기 위해서, 상기 하나 이상의 데이터 저장부들에 상기 통신 상태를 저장하는 인터넷 루터.
  45. 데이터 및 통신 상태의 전송을 포함하는 통신을 원격 루터와 행하는 제어 유닛을 포함하고,
    상기 제어 유닛은,
    상기 원격 유닛으로의 전송을 위한 전송 데이터를 하나 이상의 데이터 저장부들에 저장하며, 및
    통신 상태가 상기 전송 데이터와 연관되도록 하기 위해서, 상기 통신 상태를 하나 이상의 데이터 저장부들에 저장하는 인터넷 루터.
  46. 제 45항에 있어서, 상기 제어 유닛이,
    프래그먼트들의 상기 전송 데이터를 상기 목적지에 전송하고, 및
    통신 상태가 상기 전송된 프래그먼트들을 반영하도록 하기 위해서, 상기 하나 이상의 데이터 저장부들에 있는 상기 통신 상태를 업데이팅하는 것을 더 포함하는 인터넷 루터.
  47. 제 46항에 있어서, 상기 제어 유닛이,
    상기 전송된 프래그먼트들에 대응하는 확인응답들을 수신하고, 및
    상기 전송된 프래그먼트들의 상기 확인응답을 반영하기 위해서 상기 하나 이상의 데이터 저장부에 있는 상기 통신 상태를 업데이팅하는 것을 더 포함하는 인터넷 루터.
  48. 제 47항에 있어서, 상기 제어 유닛이 상기 확인된 전송 프래그먼트들에 대응하는 상기 하나 이상의 데이터 저장부들의 상기 전송 데이터 부분을 삭제하는 것을 더 포함하는 인터넷 루터.
KR10-2004-7011316A 2002-01-24 2003-01-24 오류 허용 데이터 통신을 위한 시스템 및 방법 KR20040071331A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US35171702P 2002-01-24 2002-01-24
US60/351,717 2002-01-24
US10/350,306 2003-01-22
US10/350,306 US20040078625A1 (en) 2002-01-24 2003-01-22 System and method for fault tolerant data communication
PCT/US2003/002394 WO2003063430A2 (en) 2002-01-24 2003-01-24 System and method for providing a fault tolerant routing data base

Publications (1)

Publication Number Publication Date
KR20040071331A true KR20040071331A (ko) 2004-08-11

Family

ID=27616769

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7011316A KR20040071331A (ko) 2002-01-24 2003-01-24 오류 허용 데이터 통신을 위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US20040078625A1 (ko)
EP (1) EP1468532A2 (ko)
JP (1) JP2005516478A (ko)
KR (1) KR20040071331A (ko)
AU (1) AU2003217257A1 (ko)
CA (1) CA2473812A1 (ko)
WO (1) WO2003063430A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060068532A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 고장 감내 tcp/ip 프로토콜을 이용한 라우터 이중화장치 및 그 방법

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2827102B1 (fr) * 2001-07-09 2003-10-03 Cit Alcatel Systeme de routage inter systemes autonomes tolerant aux fautes
US8532127B2 (en) * 2001-10-19 2013-09-10 Juniper Networks, Inc. Network routing using indirect next hop data
US7275081B1 (en) 2002-06-10 2007-09-25 Juniper Networks, Inc. Managing state information in a computing environment
US7184437B1 (en) 2002-07-17 2007-02-27 Juniper Networks, Inc. Scalable route resolution
US7911994B2 (en) * 2003-02-28 2011-03-22 Openwave Systems Inc. Confirmation of delivery of content to an HTTP/TCP device
US7739403B1 (en) 2003-10-03 2010-06-15 Juniper Networks, Inc. Synchronizing state information between control units
US7376078B1 (en) * 2004-03-24 2008-05-20 Juniper Networks, Inc. Selective replay of a state information within a computing device
US7688714B2 (en) * 2004-04-28 2010-03-30 Cisco Technology, Inc. Network routing apparatus that performs soft graceful restart
US7447149B1 (en) * 2004-07-13 2008-11-04 Juniper Networks, Inc. Virtual interface with active and backup physical interfaces
US7450498B2 (en) * 2004-10-27 2008-11-11 Morgan Stanley Fault tolerant network architecture
US7417947B1 (en) 2005-01-05 2008-08-26 Juniper Networks, Inc. Routing protocol failover between control units within a network router
FR2881904A1 (fr) * 2005-02-04 2006-08-11 France Telecom Procede de gestion de reinitialisation de session selon un protocole de routage
ES2237346B2 (es) * 2005-03-01 2006-07-16 Universidad De Cantabria Mecanismo de encaminamiento tolerante a fallos altamente escalable.
US7957363B2 (en) * 2005-05-26 2011-06-07 International Business Machines Corporation System, method, and service for dynamically selecting an optimum message pathway
US20060271663A1 (en) * 2005-05-31 2006-11-30 Fabio Barillari A Fault-tolerant Distributed Data Processing System
US8589953B1 (en) 2010-08-06 2013-11-19 Open Invention Network, Llc System and method for transparent consistent application-replication of multi-process multi-threaded applications
US8281184B1 (en) 2010-08-06 2012-10-02 Open Invention Network Llc System and method for reliable non-blocking messaging for multi-process application replication
US8301700B1 (en) 2010-08-06 2012-10-30 Open Invention Network Llc System and method for event-driven live migration of multi-process applications
US8584145B1 (en) 2010-08-06 2013-11-12 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US9043640B1 (en) 2005-08-26 2015-05-26 Open Invention Network, LLP System and method for event-driven live migration of multi-process applications
US9141481B1 (en) 2010-08-06 2015-09-22 Open Invention Network, Llc System and method for reliable non-blocking messaging for multi-process application replication
US8621275B1 (en) 2010-08-06 2013-12-31 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
US9166904B2 (en) * 2005-09-08 2015-10-20 Cisco Technology, Inc. Method and apparatus for transferring BGP state information during asynchronous startup
US7821930B2 (en) * 2005-09-12 2010-10-26 Microsoft Corporation Fault-tolerant communications in routed networks
US7948873B2 (en) * 2005-10-17 2011-05-24 Cisco Technology, Inc. Method for recovery of a controlled failover of a border gateway protocol speaker
US7518986B1 (en) 2005-11-16 2009-04-14 Juniper Networks, Inc. Push-based hierarchical state propagation within a multi-chassis network device
CN101022451B (zh) * 2006-02-14 2014-07-23 杭州华三通信技术有限公司 数据通信中连接状态的同步方法及其应用的通信节点
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
CN101132347A (zh) 2006-08-24 2008-02-27 华为技术有限公司 一种实现tcp连接备份的系统及方法
JP2008072521A (ja) * 2006-09-14 2008-03-27 Fujitsu Ltd 通信装置、通信方法及び通信プログラム
US7936754B2 (en) 2008-12-12 2011-05-03 At&T Intellectual Property I, L.P. Methods and apparatus to dynamically store network routes for a communication network
US8363549B1 (en) 2009-09-02 2013-01-29 Juniper Networks, Inc. Adaptively maintaining sequence numbers on high availability peers
JP2011087302A (ja) * 2009-10-19 2011-04-28 Ip Infusion Inc Bgp経路監視装置、bgp経路監視方法、およびプログラム
US9274851B2 (en) * 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
AP2012006363A0 (en) 2009-12-18 2012-08-31 Vestergaard Frandsen Sa Drinking straw with hollow fibre liquid filter
DE202009019064U1 (de) 2009-12-18 2016-03-01 Lifestraw Sa Trinkhalm mit Hohlfaserflüssigkeitsfilter
US8769155B2 (en) * 2010-03-19 2014-07-01 Brocade Communications Systems, Inc. Techniques for synchronizing application object instances
US8503289B2 (en) 2010-03-19 2013-08-06 Brocade Communications Systems, Inc. Synchronizing multicast information for linecards
US8495418B2 (en) 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
US9135127B1 (en) 2010-08-06 2015-09-15 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US8565069B2 (en) * 2010-11-23 2013-10-22 Force10 Networks, Inc. Method of shrinking a data loss window in a packet network device
US8750096B2 (en) * 2011-01-13 2014-06-10 Tellabs Operations, Inc. Method and apparatus for improving data integrity during a router recovery process
US8614941B2 (en) 2011-05-09 2013-12-24 Telefonaktiebolaget L M Ericsson (Publ) Hitless switchover from active TCP application to standby TCP application
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
US9049148B1 (en) 2012-09-28 2015-06-02 Juniper Networks, Inc. Dynamic forwarding plane reconfiguration in a network device
CN103560867B (zh) * 2013-11-18 2017-01-18 中国人民解放军信息工程大学 通用的网络数据容错接收方法、装置及系统
US10057123B1 (en) * 2013-12-27 2018-08-21 Alarm.Com Incorporated Network topology backup
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
WO2016201620A1 (zh) * 2015-06-16 2016-12-22 华为技术有限公司 进程接替的方法和装置
GB2573352A (en) 2018-05-03 2019-11-06 Pak Vitae Private Ltd Hollow fiber membrane for filtration of liquids
US11669076B2 (en) * 2018-07-27 2023-06-06 Rockwell Automation Technologies, Inc. System and method of communicating unconnected messages over high availability industrial control systems
CN110890984B (zh) * 2019-11-27 2022-07-22 山东九州信泰信息科技股份有限公司 一种基于隔离设备的双机热备的切换方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3286584B2 (ja) * 1997-11-20 2002-05-27 株式会社日立製作所 多重化ルータ装置
US6389552B1 (en) * 1998-12-31 2002-05-14 At&T Corp Methods and systems for remote electronic vaulting
US6947963B1 (en) * 2000-06-28 2005-09-20 Pluris, Inc Methods and apparatus for synchronizing and propagating distributed routing databases
US6973026B1 (en) * 2000-06-30 2005-12-06 Intel Corporation Resilient chassis-based network switching
US6910148B1 (en) * 2000-12-07 2005-06-21 Nokia, Inc. Router and routing protocol redundancy

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060068532A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 고장 감내 tcp/ip 프로토콜을 이용한 라우터 이중화장치 및 그 방법

Also Published As

Publication number Publication date
WO2003063430A2 (en) 2003-07-31
EP1468532A2 (en) 2004-10-20
WO2003063430A3 (en) 2003-11-13
JP2005516478A (ja) 2005-06-02
AU2003217257A1 (en) 2003-09-02
US20040078625A1 (en) 2004-04-22
CA2473812A1 (en) 2003-07-31

Similar Documents

Publication Publication Date Title
KR20040071331A (ko) 오류 허용 데이터 통신을 위한 시스템 및 방법
US6871296B2 (en) Highly available TCP systems with fail over connections
US7859992B2 (en) Router redundancy in data communication networks
US6975587B1 (en) Mechanism for automatic protection switching in a router
US20030014684A1 (en) Connection cache for highly available TCP systems with fail over connections
US7107481B2 (en) Server takeover system and method
US7065059B1 (en) Technique for restoring adjacencies in OSPF in a non-stop forwarding intermediate node of a computer network
US6853617B2 (en) System and method for TCP connection protection switching
US5935215A (en) Methods and systems for actively updating routing in TCP/IP connections using TCP/IP messages
US7631093B2 (en) Scalable, reliable session initiation protocol (SIP) signaling routing node
AU2005236835B2 (en) Routing system and method for transparently recovering routing states after a failover or during a software upgrade
US8014274B1 (en) Selective replay of state information within a computing device
US7248579B1 (en) System and method for providing a link state database (LSDB) snapshot for neighbor synchronization
US8493839B2 (en) Method and system of teamed network adapters with offloaded connections
US7760652B2 (en) Methods and apparatus for improved failure recovery of intermediate systems
US20050257002A1 (en) Apparatus and method for neighbor cache table synchronization
US6061807A (en) Methods systems and computer products for error recovery of endpoint nodes
WO2021077015A1 (en) Neighbor equivalence groups
EP1331772B1 (en) Method and apparatus for facilitating routing protocol redundancy in a network element
Cisco Designing APPN Internetworks
Cisco Designing APPN Internetworks
Cisco Designing APPN Internetworks
Cisco Designing APPN Internetworks
Cisco Designing APPN Internetworks
Cisco Designing APPN Internetworks

Legal Events

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