KR20040074434A - 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및그 방법 - Google Patents

분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및그 방법 Download PDF

Info

Publication number
KR20040074434A
KR20040074434A KR1020030010190A KR20030010190A KR20040074434A KR 20040074434 A KR20040074434 A KR 20040074434A KR 1020030010190 A KR1020030010190 A KR 1020030010190A KR 20030010190 A KR20030010190 A KR 20030010190A KR 20040074434 A KR20040074434 A KR 20040074434A
Authority
KR
South Korea
Prior art keywords
packet
buffer
maximum value
module
received
Prior art date
Application number
KR1020030010190A
Other languages
English (en)
Other versions
KR100534625B1 (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 삼성전자주식회사
Priority to KR10-2003-0010190A priority Critical patent/KR100534625B1/ko
Priority to CNB2004100052765A priority patent/CN100364295C/zh
Priority to US10/778,347 priority patent/US20050074010A1/en
Publication of KR20040074434A publication Critical patent/KR20040074434A/ko
Application granted granted Critical
Publication of KR100534625B1 publication Critical patent/KR100534625B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 분산형 라우터(distributed router)에 관한 것으로서, 더욱 상세하게는 라우팅 프로세서간에 신뢰성 있게 라우팅 정보를 교환할 수 있도록 하는 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및 그 방법에 관한 것으로, 라우팅 프로토콜 데몬으로부터 전송받은 업데이트 정보에 순서 번호를 할당하고 할당된 순서 번호가 포함된 헤더를 붙여 다른 내부 라우팅 프로세서로 전송하고, 송수신부가 다른 내부 라우팅 프로세서로부터 순차적인 업데이트 패킷을 수신하면 수신한 순차적인 업데이트 패킷과 버퍼에 저장되어 있는 연속적인 업데이트 패킷을 상기 라우팅 프로토콜 데몬으로 전송하고, 송수신부가 다른 내부 라우팅 프로세서로부터 비순차적인 업데이트 패킷을 수신하면 버퍼에 저장하며, 다른 내부 라우팅 프로세서로부터 동기 신호를 수신하여 버퍼를 복구하고, 최대값을 전송받아 손실 패킷에 대한 재전송을 요구하며, 주기적으로 동기 신호와 최대값을 전송하고, 송수신부를 통하여 다른 내부 라우팅 프로세서로부터 재전송 요구 신호가 수신되면 버퍼에서 손실된 패킷을 읽어와 송수신부를 통하여 재전송하는 것을 특징으로 한다.

Description

분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및 그 방법{method and apparatus for reliable routing information exchange in distributed router}
본 발명은 분산형 라우터(distributed router)에 관한 것으로서, 더욱 상세하게는 라우팅 프로세서간에 신뢰성 있게 라우팅 정보를 교환할 수 있도록 하는 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및 그 방법에 관한 것이다.
일반적으로 라우터(router)는 입력 포트(input port), 출력 포트(output port), 스위칭 패브릭(switching fabric), 라우팅 프로세서(routing processor)의 4가지 구성 요소로 이루어져 있다.
입력 포트는 물리적 링크와의 접점이며 패킷(packet)을 받아 들이기 위한 관문이다. 스위칭 패브릭은 입력 포트를 출력 포트로 내부 접속시킨다. 출력 포트는 패킷을 출력 링크로 내보내기 위해 패킷을 축적하고 스케쥴링(scheduling)한다.
마지막으로 라우팅 프로세서는 라우팅 프로토콜(protocol)을 처리하고, 패킷포워딩(forwarding)에 이용되는 포워딩 테이블을 생성한다.
라우팅 기능을 프로세싱 환경에서 실행되는 소프트웨어로 구현하는 경우, 그 처리 성능이 패킷의 입력 속도를 따라가지 못하면 병목현상이 발생한다. 또한 라우팅 과정에서도 입력된 패킷에 새로운 헤더 정보를 붙여 다시 송신하는 패킷 포워딩 부분이 트래픽의 흐름속도에 종속된 부분이다.
최근에 인터넷 트래픽이 기하급수적으로 증가하면서 이러한 인터넷 트래픽의 증가를 수용하기 위해 분산 구조를 가진 분산 라우터가 제안되고 있다.
또한 라우팅 기능을 고속화하기 위해서 패킷 포워딩 부분을 분리시킨 고속 포워딩 엔진 기술이 개발되고 있는 실정이다.
따라서 시스템 구조 측면에서 포워딩 엔진 유니트를 공유하는 형태인 서버형 구조 보다는 포워딩 엔진을 각 라인접속 유니트에 분산 위치시키는 분산형 구조를 선호하는 추세이다.
이러한 분산형 라우터는 라우팅 기능 및 패킷 포워딩 기능을 서로 다른 프로세서에서 분산적으로 수행하는데 상세한 내용을 도면을 참고로 하여 설명하기로 한다.
도 1은 종래의 분산형 라우터에서 라우팅 엔트리 구성하는 형태를 설명하기 위한 구성도이다.
도 1을 참조하면, 분산형 라우터는 입출력을 위한 물리적 연결부(11∼1n)와, 라우팅 기능 및 패킷 포워딩 기능을 수행하는 라우팅 프로세서(21∼2n)와, 각 라우팅 프로세서(21∼2n)간의 라우팅 정보 교환 및 연결 버스를 제공하는 스위칭부(30)및 리던던시(redundancy)를 위한 백업용 스위칭부(31)로 구성된다.
라우팅 프로세서(21∼2n)는 패킷이 들어오면 패킷의 목적지 주소에 해당하는 게이트웨이로 패킷을 포워딩하기 위해 라우팅 테이블(21a∼2na)을 검색한다.
예를 들면, 물리적 연결부(11)를 통하여 라우팅 프로세서(21)로 목적지주소가 200.1.1.1인 패킷이 들어오면, 라우팅 프로세서(21)는 라우팅 테이블(21a)을 검색한다.
이때 라우팅 테이블(21a)의 라우팅 엔트리에서 목적지 주소 200.1.1.1에 해당하는 게이트웨이 주소 10.2.1.1이 검색된다. 따라서 스위칭부(30)에서 패킷이 스위칭되어 라우팅 프로세서(22)를 통해 물리적 연결부(12)로 패킷이 포워딩된다.
도 1의 구조를 가진 분산형 라우터는 각 라우팅 프로세서(21~2n)가 독립적인 라우터로 동작하기에 위해 각각 BGP, OSPF 혹은 RIP 등 라우팅 프로토콜 데몬을 실행시킬 수가 있으며 각자 인접한 라우팅 프로세서(21~2n)와 피어링을 맺어서 라우팅 정보를 교환할 수 있다.
하지만 또한 이러한 여러 개의 라우팅 프로세서(21~2n)가 한 개의 라우터 시스템으로 동작하기 위해서는 각 라우팅 프로세서(21~2n)가 라우팅 정보의 일관성( consistency)을 유지해야 한다.
그러므로, 하나의 라우팅 프로세서(21~2n)에서는 해당 라우팅 프로세서(21~2n)의 피어(peer) 혹은 기타 경로를 통해서 얻은 라우팅 정보를 분산형 라우터의 다른 모든 라우팅 프로세서(21~2n)에게 전달해주어야 한다.
이러한 라우팅 정보의 전달은 신뢰성을 기반으로 해야하며 한편으로는 분산형 라우터의 부하를 줄이기 위해 데이터 전송량을 줄여야 한다.
라우팅 프로세서(21~2n)간 라우팅 정보 전송 기법으로 TCP를 이용하는 방법과 브로드캐스팅 혹은 멀티캐스팅 기법이 있다.
TCP를 이용하는 방법은 각 라우팅 프로세서(21~2n)간의 TCP 연결을 설정하여 정보를 주고 받는 것을 의미한다.
라우팅 프로세서(21~2n)가 n개인 경우, 각 라우팅 프로세서(21~2n)는 n-1개의 기타 라우팅 프로세서(21~2n)와 TCP 연결을 설정하고 유지관리를 해야하며, 전송하고자 하는 라우팅 정보는 TCP 연결을 통해서 n-1번 전송하게 된다.
다음으로, 브로드캐스팅 혹은 멀티캐스팅 기법은 UDP나 IP 로 소켓(raw socket)을 이용하여 라우팅 정보를 동시에 여러 라우팅 프로세서(21~2n)에 전송하는 기법이다.
이러한 방법은 UDP나 IP 특성상 모든 라우팅 프로세서(21~2n)에게 정보가 전달되었음을 보장할 수도 없으며 송신측에서는 어느 라우팅 프로세서(21~2n)에 정보가 전달되지 않았는지 알 수가 없다.
이처럼 라우팅 프로세서(21~2n)간 라우팅 정보 전송 기법으로 TCP를 이용하여 정보를 전송할 경우, 신뢰성 있는 정보전달을 제공하지만, 각 라우팅 프로세서(21~2n)간 TCP 연결을 설정 유지해야하기 때문에 n*(n-1)/2개의 TCP 연결이 필요하며, 이는 분산형 라우터의 트래픽을 가중시킬 뿐만아니라 각 라우팅 프로세서(21~2n)에서 (n-1)개의 TCP 연결을 유지관리해야하기 때문에 오버헤드(Overhead)가 증가되게 되는 문제가 있었으며, 또한 동일 패킷을 여러번전송해야하기 때문에 분산형 라우터 내부 트래픽을 증가시키는 문제점이 있었다.
그리고, 멀티캐스팅 혹은 브로드캐스팅 기법은 TCP을 이용하는 것에 비해 효율적이지만 신뢰성을 보장할 수 없다는 문제점이 있었다.
즉, 동일한 정보에 대해서 어떤 라우팅 프로세서(21~2n)에서는 받을 수 있는 반면 일부 라우팅 프로세서(21~2n)에서는 받지 못했을 수도 있으며, 이에 따라 분산형 라우터의 전체 시스템의 라우팅 정보의 일관성(consistency)을 보장하기 어렵다는 문제점이 있었다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로서, 분산형 라우터의 라우팅 프로세서간에 신뢰성이 있는 라우팅 정보 교환을 제공하는 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및 그 방법을 제공하는 것을 그 목적으로 한다.
도 1은 종래의 분산형 라우터에서 라우팅 엔트리를 구성하는 형태를 설명하기 위한 구성도,
도 2는 본 발명의 일실시예에 따른 라우팅 프로세서간 신뢰성 있는 라우팅 정보 장치의 내부 구성도이다.
도 3은 본 발명의 일실시예에 따른 라우팅 프로세서간 신뢰성 있는 라우팅 정보 장치의 라우팅 정보 송신측 라우팅 프로세서와 수신측 라우팅 프로세서의 내부 구성도로서 송신측 라우팅 프로세서에는 라우팅 정보를 송신하기 위해 필요한 구성만을 그리고 수신측 라우팅 프로세서에는 라우팅 정보를 수신하기 위해 필요한 구성만을 예시한 도면이다.
도 4는 본 발명의 분산형 라우터를 위한 신뢰성 있는 멀티캐스트 트랜스포트 프로토콜(RMTPDR: Reliable Multicast Transport Protocol for DR)의 스택 구조를 나타내는 도면이다.
도 5는 본 발명의 분산형 라우터를 위한 신뢰성 있는 멀티캐스트 트랜스포크 프로토콜에서 지원하는 메시지 헤더의 구조도이다.
도 6은 본 발명의 일실시예에 따른 초기화 과정을 설명하기 위한 신호 흐름도이다.
도 7은 본 발명의 일실시예에 따른 업데이트 라우팅 정보 전송 과정의 흐름도이다.
도 8은 본 발명의 일실시예에 따른 제어 모듈에서 수신한 제어 신호 처리 과정의 흐름도이다.
도 9는 본 발명의 일실시예에 따른 재전송 과정의 흐름도이다.
도 10은 본 발명의 일실시예에 따른 최대값 전송 과정의 흐름도이다.
도 11은 본 발명의 일실시예에 따른 송신 버퍼 관리 과정의 흐름도이다.
도 12는 본 발명의 일실시예에 따른 업데이트 라우팅 정보를 수신하여 처리하는 과정의 흐름도이다.
도 13은 본 발명의 일실시예에 따른 재전송 처리 과정의 흐름도이다.
도 14는 본 발명의 일실시예에 따른 최대값 처리 과정의 흐름도이다.
도 15는 본 발명의 일실시예에 따른 동기 신호 전송 과정의 흐름도이다.
도 16은 본 발명의 일실시예에 따른 수신 버퍼 관리 과정의 흐름도이다.
<도면의 주요 부분에 대한 부호 설명>
210 : 초기화 모듈 220 : 버퍼 관리부
221 : 송신 버퍼 관리 모듈 222 : 수신 버퍼 관리 모듈
223 : 송신 버퍼 224 : 수신 버퍼
230 : 패킷 송수신부 231 : 패킷 송신 모듈
232 : 패킷 수신 모듈 240 : 최대값 처리부
241 : 최대값 전송 모듈 242 : 최대값 비교 모듈
243 : 재전송 요구 모듈 244 : 재전송 모듈
250 : 제어 모듈 260 : 동기신호 전송 모듈
이러한 목적을 달성하기 위한 본 발명에 따른 라우팅 프로토콜 데몬 구동시에 초기화를 수행하는 초기화 모듈; 상기 라우팅 프로토콜 데몬으로부터 전송받은 업데이트 정보에 순서 번호를 할당하고 할당된 순서 번호가 포함된 헤더를 붙여 다른 내부 라우팅 프로세서로 멀티캐스트 기법으로 전송하고, 다른 내부 라우팅 프로세서로부터 패킷을 수신하는 송수신부; 상기 송수신부가 다른 내부 라우팅 프로세서로 전송한 업데이트 패킷을 저장하고, 상기 송수신부가 다른 내부 라우팅 프로세서로부터 전송받은 비순차적인 업데이트 패킷을 저장하는 버퍼; 및 상기 송수신부가 다른 내부 라우팅 프로세서로부터 순차적인 업데이트 패킷을 수신하면 수신한 순차적인 업데이트 패킷과 상기 버퍼에 저장되어 있는 연속적인 업데이트 패킷을 상기 라우팅 프로토콜 데몬으로 전송하고, 상기 송수신부가 다른 내부 라우팅 프로세서로부터 비순차적인 업데이트 패킷을 수신하면 상기 버퍼에 저장하며, 다른 내부 라우팅 프로세서로부터 동기 신호를 수신하여 상기 버퍼를 복구하고, 최대값을 전송받아 손실 패킷에 대한 재전송을 요구하며, 주기적으로 동기 신호와 최대값을 전송하고, 상기 송수신부를 통하여 다른 내부 라우팅 프로세서로부터 재전송 요구 신호가 수신되면 상기 버퍼에서 손실된 패킷을 읽어와 상기 송수신부를 통하여 재전송하는 제어부를 포함하는 것을 특징으로 한다.
또한, 본 발명은 초기화 모듈이 라우팅 프로토콜 데몬 구동시에 초기화를 수행하는 제 1 단계; 송수신부가 상기 라우팅 프로토콜 데몬으로부터 전송받은 업데이트 정보에 순서 번호를 포함한 헤더를 붙여 다른 내부 라우팅 프로세서로 멀티캐스트 기법으로 전송하고 송신 버퍼에 저장하는 제 2 단계; 제어부는 상기 송수신부가 다른 내부 라우팅 프로세서로부터 순차적인 업데이트 패킷을 수신하면 수신한 업데이트 패킷과 수신 버퍼에 저장되어 있는 연속적인 업데이트 패킷을 상기 라우팅 프로토콜 데몬으로 전송하는 제 3 단계; 상기 제어부는 상기 송수신부가 다른 내부 라우팅 프로세서로부터 비순차적인 업데이트 패킷을 수신하면 상기 수신 버퍼에 저장하는 제 4 단계; 상기 제어부는 다른 내부 라우팅 프로세서로부터 동기 신호를 수신하여 상기 송신 버퍼를 복구하는 제 5 단계; 상기 제어부는 최대값을 전송받아 손실 패킷에 대한 재전송을 요구하며, 주기적으로 동기 신호와 최대값을 전송하는 제 6 단계; 및 상기 송수신부를 통하여 다른 내부 라우팅 프로세서로부터 재전송 요구 신호가 수신되면 상기 송신 버퍼에서 손실된 패킷을 읽어와 상기 송수신부를 통하여 재전송하는 제 7 단계를 포함하여 이루어진 것을 특징으로 한다.
이하, 본 발명이 속하는 분야에 통상의 지식을 지닌자가 본 발명을 용이하게 실시할 수 있도록 본 발명의 바람직한 일실시 예를 첨부된 도면을 참조하여 상세히 설명한다.
도 2는 본 발명의 일실시예에 따른 라우팅 프로세서간 신뢰성 있는 라우팅 정보 장치의 내부 구성도이다.
도 2를 참조하면, 라우팅 프로세서간 신뢰성 있는 라우팅 정보 교환 장치는 초기화 모듈(210)과, 버퍼 관리부(220)와, 패킷 송수신부(230)와, 최대값 처리부(240)와, 제어 모듈(250)과, 동기신호 전송 모듈(260)을 포함하고 있다.
그리고, 버퍼 관리부(220)는 송신버퍼 관리 모듈(221)과 수신버퍼 관리 모듈(222)과 송신버퍼(223) 그리고 수신버퍼(224)를 구비하고 있다.
패킷 송수신부(230)는 패킷 송신 모듈(231)과 패킷 수신 모듈(232)을 구비하고 있으며, 최대값 처리부(240)는 최대값 전송 모듈(241)과 최대값 비교 모듈(242)과, 재전송 요구 모듈(243)과 재전송 모듈(244)을 구비하고 있다.
여기에서 제어 모듈(250)은 송신 버퍼(223) 및 수신 버퍼(224)를 관리하기 위한 버퍼 구조체를 정의하여 메모리에 저장하고 송신 버퍼(223) 및 수신버퍼(224)를 관리하고 있는데 버퍼 구조체는 송신 버퍼(223) 및 수신 버퍼(224)를 정의하기 위한 데이터 구조이며 (표 1)과 같다.
타입 이름 정의
structRMTP_PACKET_BUFFER* next 다음 패킷 버퍼의 포인트
structRMTP_PACKET_BUFFER* prev 이전 패킷 버퍼의 포인트
struct stream* s 데이터 버퍼의 포인트
u_int32_t seq 패킷의 순서 번호
그리고, 제어 모듈(250)은 라우팅 정보의 송수신 상태를 파악하고 라우팅 정보를 송수신하기 위해서 송수신 상태 구조체를 정의하여 메모리에 저장하여 라우팅 정보의 송수신을 위해 사용하는데 이때 송수신 상태 구조체의 데이터 구조는 (표 2)와 같다.
타입 이름 정의
struct PEER_STATUS * next 다음 피어의 상태 구조의 포인트
in_addr peer_ip 피어의 IP 주소
u_int32_t adv_seq 피어로부터 전송받은 마지막 순서번호
u_int32_t rcv_nxt 피어로부터 수신하기를 원하는 다음 순서 번호
u_int32_t rcv_max 피어로부터 최후로 수신한 패킷의 순서번호
u_int32 max_sent 피어로부터 전송받은 최대값
u_int32_t reassem_count 리어셈블에 있는 패킷의 개수
struct RMTP_PACKET_BUFFER * reassem_buffer 리어셈블 버퍼의 첫번째 패킷을 가르키는 포인터
struct NACK_record * nack_list 재전송을 요구받은 패킷의 순서번호 리스트
또한, 제어 모듈(250)은 라우팅 정보 송수신을 위해 피어 상태 구조체를 정의하여 사용하고 있으며 이러한 피어 상태 구조체의 데이터 구조는 (표 3)과 같다.
타입 이름 정의
struct RMTP_PACKET_BUFFER * sent_buffer 송신버퍼의 첫번째 패킷을 가르키는 포인트
struct RMTP_PACKET_BUFFER * sent_buffer_last 송신버퍼의 마자막 패킷을 가르키는 포인트
u_int32_t snd_una 수신 완료 신호를 수신하지 못한 첫번째 패킷의 순서번호
u_int32_t snd_nxt 다음 패킷의 순서 번호
int sent_count 업데이트 패킷의 전송 개수
int sent_last 마지막으로 전송한 패킷의 순서번호
int nack_count 재전송 요구를 받은 패킷의 개수
struct PEER_STATUS * peer_list 피어 라우팅 프로세서 리스트를 가르키는 포인트
struct thread * t_sync 동기신호 전송을 위한 타이머 쓰레드
struct thread * t_max 최대값 전송을 위한 타이머 쓰레드
struct thread * t_write 망으로 패킷을 전송해야 할 쓰기 쓰레드
struct stream_fifo * obuf_control 제어 패킷의 선입선출 쓰레드
struct stream_fifo * obuf_update 업데이트 패킷의 선입선출 쓰레드
도 3는 본 발명의 일실시예에 따른 라우팅 프로세서간 신뢰성 있는 라우팅 정보 장치의 라우팅 정보 송신측 라우팅 프로세서와 수신측 라우팅 프로세서의 내부 구성도로서 송신측 라우팅 프로세서에는 라우팅 정보를 송신하기 위해 필요한 구성만을 그리고 수신측 라우팅 프로세서에는 라우팅 정보를 수신하기 위해 필요한 구성만을 예시한 도면이다.
도 3을 참조하면 본 발명의 일실시예에 따른 라우팅 프로세서간 신뢰성 있는 라우팅 정보 교환 방법을 설명하기 위한 라우팅 정보 송신측 라우팅 프로세서의 내부 구성은 초기화 모듈(210a), 송신버퍼 관리 모듈(221), 송신 버퍼(223), 패킷 송신 모듈(231), 패킷 수신 모듈(232a), 최대값 전송 모듈(241)과, 재전송 모듈(244), 제어 모듈(250a)을 구비하고 있다.
또한, 도 3을 참조하면 본 발명의 일실시예에 따른 라우팅 프로세서간 신뢰성 있는 라우팅 정보 교환 방법을 설명하기 위한 라우팅 정보 수신측 라우팅 프로세서의 내부 구성은 초기화 모듈(210b), 수신버퍼 관리 모듈(222), 수신 버퍼(224), 패킷 수신 모듈(232b), 최대값 비교 모듈(242)과, 재전송 요구 모듈(243), 제어 모듈(250b)을 구비하고 있다.
초기화 모듈(210)은 라우팅 프로세서의 라우팅 프로토콜 데몬이 실행되면 다른 라우팅 프로세서에게 HELLO 패킷을 전송해서 동기화를 맞추고 신뢰성 있는 라우팅 정보의 교환을 관리하기 위한 데이터구조를 초기화한다.
그리고, 패킷송신 모듈(231)은 RPD(Routing Protocol Daemon)가 기타 라우팅 프로세서에게 전송하기 위해 전달해준 라우팅 정보에 대해서 신뢰성 전송을 위해서 순서(Sequence) 번호를 부여하고 송신버퍼(223)에 저장한 다음 IP 로 소켓(raw socket)을 통해서 전송한다.
제어 모듈(250a)은 송신측에서 다른 라우팅 프로세서에서 패킷 수신 모듈(232a)을 통하여 수신한 NACK, SYNC 등 제어 관련 패킷을 처리한다.
즉, 제어 모듈(250a)은 수신측 재전송 요구 모듈(243)로부터 패킷의 재전송 요구가 있으면 재전송 모듈(244)로 재전송이 요구된 순서 번호를 전송하여 해당 순서 번호의 패킷이 재전송되도록 한다.
또한, 제어 모듈(250a)은 수신측 동기 신호 전송 모듈(260)로부터 주기적으로 현재까지 받은 순서(sequence) 번호를 전송받으면 송신 버퍼 관리 모듈(221)로 전송받은 순서 번호를 알려주어 송신 버퍼 관리 모듈(221)이 송신 버퍼(223)를 복구(release)하도록 한다.
최대값 전송 모듈(241)은 송신측에서 주기적으로 현재까지 송신한 최대 순서(sequence) 번호를 다른 라우팅 프로세서에게 알려서 동기화를 맞추도록 한다.
송신버퍼관리 모듈(221)은 송신한 패킷에 대한 재전송 요청을 대비해 임시로 송신한 패킷을 송신버퍼(223)에 저장하고 또한 SYNC등 제어패킷에 의해 효율적으로 송신 버퍼(223)를 복구(release)하도록 한다.
한편, 수신측 라우팅 프로세서의 패킷 수신 모듈(232a)은 송신 라우팅 프로세서가 멀티캐스팅 소켓을 통해서 보내온 패킷을 수신하여 제어 모듈(250b)로 전송하여 처리한다.
제어 모듈(250b)은 수신한 패킷이 라우팅 정보이면 수신 버퍼 관리 모듈(222)로 전송하여 수신 버퍼(224)에 버퍼링하도록 한다.
그리고, 제어 모듈(250b)은 라우팅 정보가 아닌 최대값 정보인 경우에는 최대값 비교 모듈(242)에 최대값을 전송하여 처리하도록 한다.
재전송 요구 모듈(243)은 패킷 수신 모듈(232b)에서 비순차적인 패킷을 수신하였을 경우 손실된 패킷에 대해서 재전송을 요청하는 NACK 제어 패킷을 전송하는 기능을 제공한다.
동기 신호 전송 모듈(260)은 수신측에서 주기적으로 현재까지 받은 순서(sequence) 번호를 송신측에 알려 줘서 송신 버퍼 관리 모듈(221)을 통해서 송신 버퍼(223)를 복구(release)하도록 하는 기능을 제공한다.
최대값 비교 모듈(242)은 송신측에서 보낸 최대값 정보에 대해서 수신측에서 수신한 최근의 순서 번호와 비교하여 손실된 패킷이 있으면 재전송 요구 모듈(243)이 손실된 패킷에 대하여 송신측으로 재전송을 요구하도록 한다.
마지막으로 수신 버퍼 관리 모듈(222)은 비순차적으로 도착한 패킷을 임시로 보관했다가 순서가 되면 처리하고 버퍼를 복구(release)하는 기능을 제공한다.
도 4는 본 발명의 분산형 라우터를 위한 신뢰성 있는 멀티캐스트 트랜스포트 프로토콜(RMTPDR: Reliable Multicast Transport Protocol for DR)의 스택 구조를 나타내는 도면이다.
도면을 참조하면, 송신측 및 수신측의 RPD에서는 RMTPDR 프로토콜(430)에서 제공하는 API를 이용해서 RMTPDR 프로토콜(430)을 통해서 패킷을 송수신하게 된다.
RMTPDR 프로토콜은 시스템 라이브러리(system library) 형태로 IP계층(420)과 응용계층(440)간의 트랜스포트 계층 기능을 제공하는 것으로 구현할 수 있다.
도 5는 본 발명의 분산형 라우터를 위한 신뢰성 있는 멀티캐스트 트랜스포크 프로토콜에서 지원하는 메시지 헤더의 구조도이다.
도면을 참조하면, 발명의 분산형 라우터를 위한 신뢰성 있는 멀티캐스트 트랜스포크 프로토콜에서 지원하는 메시지 헤더의 구조는 8비트의 타입 필드(500), 8비트의 예약 필드(510), 16비트의 길이 필드(520) 그리고 순서 번호를 지정하기 위한 순서 번호 필드(530)를 구비하고 있다.
이때 타입 필드(500)에는 전송하고자 하는 메시지 종류를 지정하며 이때 지정된 타입 값은 (표 4)와 같다.
메시지 정의
1 RMTP_MSG_HELLO 활성화 알림 메시지
2 RMTP_MSG_HELLO_REPLY 활성화 알림 신호에 대한 응답 메시지
3 RMTP_MSG_UPDATE 업데이트 알림 메시지
4 RMTP_MSG_SYNC 동기 신호 저송 메시지
5 RMTP_MSG_NACK 재전송 요구 메시지
6 RMTP_MSG_MAX 최대값 알림 메시지
도 6은 본 발명의 일실시예에 따른 초기화 과정을 설명하기 위한 신호 흐름도이다.
초기화 모듈(210)은 RMTPDR 프로토콜을 이용하여 신뢰성 있는 패킷 전송을 수행하기 위하여, 라우팅 정보 송수신 구조체에 대한 글로벌 변수를 할당하고 내용을 초기화한다.
그리고, 초기화 모듈(210)은 다른 라우팅 프로세서의 라우팅 프로토콜과 신뢰성 있는 데이터 전송 관계를 갖기 위해 활성화 알림 메시지(RMTP_MSG_HELLO)를 전송해서 해당 라우팅 프로세서의 특정 RPD가 수행되었음을 알린다(단계 S110).
활성화 알림 메시지를 수신한 각 라우팅 프로세서의 초기화 모듈(210)은 특정 RPD는 동기화를 위해서 자신이 RMTPDR를 통해서 전송할 다음 패킷의 순서번호를 활성화 알림 메시지에 대한 응답 메시지( RMTP__MSG_HELLO_REPLY)를 통해 알려준다(단계 S112).
이를 수신한 라우팅 프로세서의 초기화 모듈(210)은 라우팅 정보 송수신 구조체에 해당 라우팅 프로세서와 관련된 피어 상태 구조체를 만들고 수신한 정보를 저장한다.
그 외에 초기화 모듈(210)에서는 또한 신뢰성 전송을 위한 동기 신호 전송 타이머와 최대값 전송 타이머를 초기화한다.
도 7은 본 발명의 일실시예에 따른 업데이트 라우팅 정보 전송 과정의 흐름도이다.
도면을 참조하면, 송신측 제어 모듈(250a)은 다른 내부 라우팅 프로세서로 전송하고자 하는 업데이트 정보를 패킷 송신 모듈(231)로 전송한다(단계 S210).
패킷송신 모듈(231)에서는 패킷에 순서번호를 할당하고 헤더를 붙인 후에 (단계 S212), 순차적으로 증가하는 정수 값을 snd_nxt에 부여한다(단계 S214).
패킷 송신 모듈(231)은 순서 번호가 부여된 패킷은 송신버퍼(223)에 저장한 후에(단계 S216) IP 로 소켓(raw socket)을 통해서 각 라우팅 프로세서로 멀티캐스팅을 통해서 전송하게 된다(단계 S218).
도 8은 본 발명의 일실시예에 따른 제어 모듈에서 수신한 제어 신호 처리 과정의 흐름도이다.
도면을 참조하면, 제어 모듈(250)은 수신측으로부터 제어 메시지를 수신하면(단계 S310), 수신한 제어 메시지가 손실 패킷에 대한 재전송을 요청하는 NACK 제어 메시지인 경우에 요청된 패킷의 존재여부를 확인하고(단계 S314) 재전송처리 모듈을 통해서 요구된 패킷을 재전송하도록 한다(단계 S316).
그리고, 수신한 제어 메시지가 SYNC 제어 메시지이면 동기신호 전송 메시지에 있는 순서번호를 확인하여(단계 S318), 패킷 정보에 의해서 송수신 상태 구조체의 snd_una를 업데이트한 후에 송신버퍼 관리 모듈(221)을 통해서 송신버퍼(223)의 일부 자원을 삭제(release)하도록 한다(단계 S320).
도 9는 본 발명의 일실시예에 따른 재전송 과정의 흐름도이다.
도면을 참조하면, 재전송 모듈(244)은 제어 모듈(250a)로부터 재전송 요구를 받으면(단계 S410), 요구된 순서 번호( Sequence number)를 가진 패킷을 송신버퍼(223)로부터 찾아서(단계 S412) 재전송한다(단계 S414).
도 10은 본 발명의 일실시예에 따른 최대값 전송 과정의 흐름도이다.
도면을 참조하면, 최대값 전송 모듈(241)은 최대값 전송 타이머가 구동된 상태에서(단계 S510) 패킷 전송 시간이 도래하였는지를 판단한다(단계 S512).
판단 결과, 패킷 전송시간이 도래하였으면 업데이트 패킷이 송신되었는지 판단하여(단계 S514), 전송한 업데이트 패킷의 모든 순서 번호를 포함한 최대값 알림 메시지를 전송한다(단계 S516).
송신버퍼 관리 모듈(221)은 RMTPDR 프로토콜에서는 정보전달의 신뢰성을 보장하기 위하여 타 라우팅 프로세서로 전송한 라우팅 정보에 대해서 송신버퍼(223)에 저장을 했다가 필요시 재전송을 하게 된다.
하지만 송신버퍼(223)의 패킷은 계속 보유할 필요가 없다. 신뢰성 보장을 위해 기타 라우팅 프로세서들의 수신이 확인되면 송신 버퍼(223)로부터 제거해야 한다.
도 11은 본 발명의 일실시예에 따른 송신 버퍼 관리 과정의 흐름도이다.
도면을 참조하면, 송신 버퍼 관리 모듈(221)은 제어 모듈(250a)로부터 동기 신호를 전송받으면(단계 S610) 제일 작은 값을 찾아낸다(단계 S612).
그리고 송신 버퍼(223)에서 제일 작은 순서 번호를 기준으로 이 번호보다 작거나 혹은 같은 패킷을 제거하고 버퍼를 복구(release)하게 된다(단계 S614).
도 12는 본 발명의 일실시예에 따른 업데이트 라우팅 정보를 수신하여 처리하는 과정의 흐름도이다.
도면을 참조하면, 수신측에서 송신 라우팅 프로세서가 멀티캐스트를 통해서 전송해온 패킷을 수신후의 처리 과정은 패킷 수신 모듈(232b), 제어 모듈(250b), 최대값 비교 모듈(242), 재전송 요구 모듈(243), 수신 버퍼 관리 모듈(222)을 통해 이루어진다.
제어 모듈(250b)은 라우팅 정보를 포함한 패킷을 수신하면(단계 S710), 순서 번호가 순차적인지를 판단하여(단계 S712), 순차적이면 라우팅 테이블에 저장하고(단계 S714), 수신 버퍼에 상위 순서번호를 가진 패킷이 존재하는지를 판단하여(단계 S716) 존재하면 패킷을 읽어와서 라우팅 테이블에 저장한다(단계 S718).
제어 모듈(250b)은 순서번호가 순차적이 아니면 최대값보다 큰지를 판단하여(단계 S720), 최대값보다 크면 수신버퍼(224)에 저장하고, 크지 않으면 수신 버퍼에 저장한 후에(단계 S724), 손실 패킷이 있는지를 파악하여 손실 패킷에 대한 재전송를 요구한다(단계 S726).
도 13은 본 발명의 일실시예에 따른 재전송 처리 과정의 흐름도이다.
도면을 참조하면, 재전송 요구 모듈(243)은 재전송 요청이 있을 경우, 재전송 모듈에서는 스트림 버퍼를 할당하고(단계 S812), 요청된 순서 번호를 포함한 재전송 요구 신호를 생성하여(단계 S814), 생성된 재전송 요구 신호를 전송한다(단계 S816).
이후에, 요청된 순서 번호에 대해 재전송 타이머를 설정하고(단계 S818) 타이머가 expire되기 전에 송신측에서 패킷을 재전송해오면(단계 S820) 타이머를 중단시킨다(단계 S822).
도 14는 본 발명의 일실시예에 따른 최대값 처리 과정의 흐름도이다.
도면을 참조하면, 최대값 비교 모듈(242)은 최대값을 전송받으면(단계 S910), 동기 신호 전송값보다 작은가를 판단한다(단계 S912).
판단 결과 작으면 동기 신호 메시지를 재전송하고(단계 S914), 동기 신호 전송값보다 크면 수신 순서번호보다 큰가를 판단한다(단계 S916).
판단 결과, 작으면 최대값을 업데이트하며(단계 S922), 크면 최대값을 업데이트한 후에(단계 S918), 손실된 패킷에 대한 재전송을 요구한다(단계 S920).
도 15는 본 발명의 일실시예에 따른 동기 신호 전송 과정의 흐름도이다.
도면을 참조하면, 동기 신호 전송 모듈(260)은 동기신호 전송 타이머에 의해 실행되며, 초기화 설정 시, 동기신호 전송 타이머가 설정된다(단계 S1010).
동기 신호 전송 모듈(260)은 시간이 되었는지를 판단하여(단계 S1012), 시간이 되었으면 업데이트 패킷을 수신하였는지를 판단한다(단계 S1014).
판단 결과, 패킷을 수신하였으면 스트림 버퍼를 할당한 후에(단계 S1016), 동기신호를 생성하여(단계 S1018), 생성된 동기 신호를 전송한다(단계 S1020).
수신 버퍼 관리 모듈(222)은 수신버퍼(224)의 패킷들을 처리할 순서가 되었는지 판단을 해서 처리한 다음 수신버퍼(224)를 복구(release)하는 기능을 제공하고 있다.
도 16은 본 발명의 일실시예에 따른 수신 버퍼 관리 과정의 흐름도이다.
도면을 참조하면, 제어 모듈(250b)은 순차적으로 도착한 업데이트 패킷이면 RPD에 넘겨서 처리한 다음, 수신버퍼 관리 모듈(222)에게 다음에 처리해야하는 패킷 순서 번호를 알려준다(단계 S1100).
수신 버퍼 관리 모듈(222)에서는 이 값과 현재 수신버퍼(224)의 첫 번째 패킷의 순서 번호를 비교한다.
만약 같으면 라우팅 테이블을 갱신하고(단계 S104) 수신 버퍼(224)를 복구하고(단계 S1108), rcv_max를 업데이트한다(단계 S1108).
이상 본 발명의 바람직한 실시예에 대해 상세히 기술되었지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구 범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
이상 설명한 바와 같이, 본 발명에 따르면 분산형 라우터의 라우팅 프로세서간에 라우팅 정보를 TCP를 통하여 주고 받는 경우의 오버헤드를 줄일 수 있도록 하는 효과가 있다.
또한, 본 발명에 따르면, 분산형 라우터의 라우팅 프로세서간에 멀티캐스트에 의한 라우팅 정보를 교환하는데 있어서 신뢰성 있는 라우팅 정보를 교환할 수있도록 해주는 효과가 있다.

Claims (17)

  1. 라우팅 프로토콜 데몬 구동시에 초기화를 수행하는 초기화 모듈;
    상기 라우팅 프로토콜 데몬으로부터 전송받은 업데이트 정보에 순서 번호를 할당하고 할당된 순서 번호가 포함된 헤더를 붙여 다른 내부 라우팅 프로세서로 멀티캐스트 기법으로 전송하고, 다른 내부 라우팅 프로세서로부터 패킷을 수신하는 송수신부;
    상기 송수신부가 다른 내부 라우팅 프로세서로 전송한 업데이트 패킷을 저장하고, 상기 송수신부가 다른 내부 라우팅 프로세서로부터 전송받은 비순차적인 업데이트 패킷을 저장하는 버퍼; 및
    상기 송수신부가 다른 내부 라우팅 프로세서로부터 순차적인 업데이트 패킷을 수신하면 수신한 순차적인 업데이트 패킷과 상기 버퍼에 저장되어 있는 연속적인 업데이트 패킷을 상기 라우팅 프로토콜 데몬으로 전송하고, 상기 송수신부가 다른 내부 라우팅 프로세서로부터 비순차적인 업데이트 패킷을 수신하면 상기 버퍼에 저장하며, 다른 내부 라우팅 프로세서로부터 동기 신호를 수신하여 상기 버퍼를 복구하고, 최대값을 전송받아 손실 패킷에 대한 재전송을 요구하며, 주기적으로 동기 신호와 최대값을 전송하고, 상기 송수신부를 통하여 다른 내부 라우팅 프로세서로부터 재전송 요구 신호가 수신되면 상기 버퍼에서 손실된 패킷을 읽어와 상기 송수신부를 통하여 재전송하는 제어부를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치.
  2. 제 1 항에 있어서,
    상기 송수신부는,
    상기 라우팅 프로토콜 데몬으로부터 전송받은 업데이트 정보에 순서 번호를 할당하고 할당된 순서 번호가 포함된 헤더를 붙여 다른 내부 라우팅 프로세서로 멀티캐스트 기법으로 전송하는 패킷 송신 모듈; 및
    다른 내부 라우팅 프로세서로부터 패킷을 수신하여 상기 제어부로 전송하는 패킷 수신 모듈을 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치.
  3. 제 1 항에 있어서,
    상기 버퍼는,
    상기 송수신부가 다른 내부 라우팅 프로세서로 전송한 업데이트 패킷을 저장하는 송신 버퍼; 및
    상기 송수신부가 다른 내부 라우팅 프로세서로부터 전송받은 비순차적인 업데이트 패킷을 저장하는 수신 버퍼를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치.
  4. 제 1 항에 있어서,
    상기 제어부는,
    상기 송수신부로부터 순서 번호가 할당된 업데이트 패킷을 전송받아 상기 버퍼에 저장하고, 상기 송수신부가 다른 라우팅 프로세서로부터 전송받은 비순차적인 업데이트 패킷을 상기 버퍼에 저장한 후에 순차적인 업데이트 패킷이 도달하면 상기 버퍼에서 연속적인 업데이트 패킷을 읽어와서 상기 라우팅 프로토콜 데몬으로 전송하는 버퍼 관리 모듈;
    초기화시에 구동된 동기 신호 전송 타이머에 의해 전송시간이 도래하면 수신한 업데이트 패킷의 순차적인 최대값을 동기 신호를 이용하여 업데이트 패킷을 전송한 다른 내부 라우팅 프로세서로 전송하는 동기 신호 전송 모듈;
    초기화시에 구동된 최대값 전송 타이머에 의해 전송시간이 도래하면 전송한 업데이트 패킷의 최대값을 멀티캐스트 기법으로 전송하고, 다른 라우팅 프로세서로부터 최대값을 전송받으면 전송받은 최대값과 현재 수신한 업데이트 라우팅 정보 패킷의 최대값을 비교하여 손실 패킷에 대한 재전송을 요구하며, 다른 라우팅 프로세서로부터 재전송 요구를 수신하면 상기 버퍼에서 손실된 패킷을 읽어와서 전송하는 최대값 처리 모듈; 및
    상기 송수신부를 통하여 동기 신호가 수신되면 상기 버퍼 관리 모듈로 전송하여 상기 버퍼를 복구하도록 하고, 상기 송수신 모듈을 통해 최대값을 수신하면 상기 최대값 처리 모듈로 전송하여 처리하도록 하며, 상기 송수신부를 통하여 재전송 요구 신호가 수신되면 상기 최대값 처리 모듈로 전송하여 패킷을 재전송하도록 하며, 상기 송수신부가 다른 내부 라우팅 프로세서로부터 순차적인 업데이트 패킷을 수신하면 수신한 순차적인 업데이트 패킷과 상기 버퍼에 저장되어 있는 연속적인 업데이트 패킷을 상기 라우팅 프로토콜 데몬으로 전송하고, 상기 송수신부가 다른 내부 라우팅 프로세서로부터 비순차적인 업데이트 패킷을 수신하면 상기 버퍼에 저장하는 제어 모듈을 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치.
  5. 제 4 항에 있어서,
    상기 버퍼 관리 모듈은,
    상기 송수신부로부터 순서 번호가 할당된 업데이트 패킷을 전송받아 상기 버퍼에 저장하는 송신 버퍼 관리 모듈; 및
    상기 송수신부가 다른 라우팅 프로세서로부터 전송받은 비순차적인 업데이트 패킷을 상기 버퍼에 저장한 후에 순차적인 업데이트 패킷이 도달하면 상기 버퍼에서 연속적인 업데이트 패킷을 읽어와서 상기 라우팅 프로토콜 데몬으로 전송하는 수신 버퍼 관리 모듈을 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치.
  6. 제 4 항에 있어서,
    상기 최대값 처리 모듈은,
    초기화시에 구동된 최대값 전송 타이머에 의해 전송시간이 도래하면 전송한 업데이트 패킷의 최대값을 멀티캐스트 기법으로 전송하는 최대값 전송 모듈;
    다른 라우팅 프로세서로부터 최대값을 전송받으면 전송받은 최대값과 현재 수신한 업데이트 라우팅 정보 패킷의 최대값을 비교하는 최대값 비교 모듈;
    상기 최대값 비교 모듈의 비교 결과 손실 패킷에 대한 재전송을 요구하는 재전송 요구 모듈; 및
    다른 라우팅 프로세서로부터 재전송 요구를 수신하면 상기 버퍼에서 손실된 패킷을 읽어와서 전송하는 재전송 모듈을 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치.
  7. 제 6 항에 있어서,
    상기 재전송 요구 모듈은,
    다른 라우팅 프로세서로부터 비순차적인 업데이트 패킷이 수신되면 손실 패킷에 대한 재전송 요구 신호를 전송하는 것을 특징으로 하는 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치.
  8. 초기화 모듈이 라우팅 프로토콜 데몬 구동시에 초기화를 수행하는 제 1 단계;
    송수신부가 상기 라우팅 프로토콜 데몬으로부터 전송받은 업데이트 정보에 순서 번호를 포함한 헤더를 붙여 다른 내부 라우팅 프로세서로 멀티캐스트 기법으로 전송하고 송신 버퍼에 저장하는 제 2 단계;
    제어부는 상기 송수신부가 다른 내부 라우팅 프로세서로부터 순차적인 업데이트 패킷을 수신하면 수신한 업데이트 패킷과 수신 버퍼에 저장되어 있는 연속적인 업데이트 패킷을 상기 라우팅 프로토콜 데몬으로 전송하는 제 3 단계;
    상기 제어부는 상기 송수신부가 다른 내부 라우팅 프로세서로부터 비순차적인 업데이트 패킷을 수신하면 상기 수신 버퍼에 저장하는 제 4 단계;
    상기 제어부는 다른 내부 라우팅 프로세서로부터 동기 신호를 수신하여 상기 송신 버퍼를 복구하는 제 5 단계;
    상기 제어부는 최대값을 전송받아 손실 패킷에 대한 재전송을 요구하며, 주기적으로 동기 신호와 최대값을 전송하는 제 6 단계; 및
    상기 송수신부를 통하여 다른 내부 라우팅 프로세서로부터 재전송 요구 신호가 수신되면 상기 송신 버퍼에서 손실된 패킷을 읽어와 상기 송수신부를 통하여 재전송하는 제 7 단계를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 방법.
  9. 제 8 항에 있어서,
    상기 제 1 단계는,
    상기 초기화 모듈이 라우팅 정보 송수신 구조체에 대한 글로벌 변수를 할당하고 내용을 초기화하는 제 1-1 단계;
    상기 초기화 모듈이 다른 라우팅 프로세서로 활성화 알림 메시지를 전송하는 제 1-2 단계; 및
    상기 초기화 모듈이 동기 신호 전송 타이머와 최대값 전송 타이머를 초기화하는 제 1-3 단계를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 방법.
  10. 제 8 항에 있어서,
    상기 제 2 단계는,
    상기 송수신부가 상기 라우팅 프로토콜 데몬으로부터 업데이트 정보를 수신하면 순서 번호를 할당하는 제 2-1 단계;
    상기 송수신부가 업데이트 정보에 할당된 순서 번호를 포함한 헤더를 붙인 후에 헤더가 붙은 업데이트 패킷을 멀티캐스트 기법으로 다른 내부 라우팅 프로세서로 전송하는 제 2-2 단계; 및
    상기 송수신부가 다른 내부 라우팅 프로세서로 전송한 업데이트 패킷을 상기 송신 버퍼에 저장하는 제 2-3 단계를 포함하여 이루어진 분산형 라우터의 신뢰성있는 라우팅 정보 교환 방법.
  11. 제 8 항에 있어서,
    상기 제 3 단계는,
    상기 제어부는 상기 송수신부가 다른 내부 라우팅 프로세서로부터 순차적인 업데이트 패킷을 수신하면 수신한 순차적인 업데이트 패킷을 상기 라우팅 프로토콜 데몬으로 전송하는 제 3-1 단계;
    상기 제어부는 상기 수신 버퍼에 연속적인 업데이트 패킷이 있는지를 검색하는 제 3-2 단계; 및
    상기 제 3-2 단계의 검색 결과, 연속적인 업데이트 패킷이 있으면 연속적인 업데이트 패킷을 상기 라우팅 프로토콜 데몬으로 전송하는 제 3-3 단계를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 방법.
  12. 제 8 항에 있어서,
    상기 제 5 단계는,
    상기 제어부는 다른 복수의 내부 라우팅 프로세서로부터 복수의 동기 신호를 수신하는 제 5-1 단계;
    상기 제어부는 전송받은 복수의 동기신호에서 제일 작은 순서번호를 찾아내는 제 5-2 단계; 및
    상기 제어부는 상기 제 5-2 단계에서 발견한 제일 작은 순서번호와 같거나 작은 순서번호의 업데이트 패킷을 상기 송신 버퍼에서 제거하여 상기 송신 버퍼를 복구하는 제 5-3 단계를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 방법.
  13. 제 8 항에 있어서,
    상기 제 6 단계는,
    상기 제어부는 최대값을 전송받아 손실 패킷에 대한 재전송을 요구하는 제 6-1 단계;
    상기 제어부는 주기적으로 동기 신호를 전송하는 제 6-2 단계; 및
    상기 제어부는 주기적으로 최대값을 전송하는 제 6-3 단계를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 방법.
  14. 제 13 항에 있어서,
    상기 제 6-1 단계는,
    상기 제어부는 최대값을 전송받으면, 동기 신호 전송값보다 작은가를 판단하는 제 6-1-1 단계;
    상기 제 6-1-1 단계의 판단 결과, 작으면 동기 신호 메시지를 재전송하고 동기 신호 전송값보다 크면 수신 순서번호보다 큰가를 판단하는 제 6-1-2 단계; 및
    상기 제 6-1-2 단계보다 작으면 최대값을 업데이트하며, 크면 최대값을 업데이트한 후에, 손실된 패킷에 대한 재전송을 요구하는 제 6-1-3 단계를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 방법.
  15. 제 13 항에 있어서,
    상기 제 6-2 단계는,
    상기 제어부는 동기신호 전송 타이머에 의해 동기 신호 전송 시간이 되었는지를 판단하는 제 6-2-1 단계;
    상기 제 6-2-1 단계의 판단 결과, 동기 신호 전송 시간이 되었으면 업데이트 패킷을 수신하였는지를 판단하는 제 6-2-2 단계; 및
    상기 제 6-2-2 단계의 판단 결과, 패킷을 수신하였으면 스트림 버퍼를 할당한 후에, 동기신호를 생성하여, 생성된 동기 신호를 전송하는 제 6-2-3 단계를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 방법.
  16. 제 13 항에 있어서,
    상기 제 6-3 단계는,
    상기 제어부는 최대값 전송 타이머가 구동된 상태에서 패킷 전송 시간이 도래하였는지를 판단하는 제 6-3-1 단계;
    상기 제 6-3-1 단계의 판단 결과, 패킷 전송시간이 도래하였으면 업데이트 패킷이 송신되었는지 판단하는 제 6-3-2 단계;
    상기 제 6-3-2 단계의 판단 결과, 업데이트 패킷이 송신되었으면 전송한 업데이트 패킷의 모든 순서 번호를 포함한 최대값 전송 메시지를 전송하는 제 6-3-3 단계를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 방법.
  17. 제 8 항에 있어서,
    상기 제 7 단계는,
    상기 제어부는 상기 송수신부를 통하여 다른 내부 라우팅 프로세서로부터 재전송 요구 신호를 수신하는 제 7-1 단계;
    상기 제어부는 요청된 패킷의 존재여부를 확인하는 제 7-2 단계; 및
    상기 제어부는 송신 버퍼에서 요청된 패킷을 읽어와서 전송하는 제 7-3 단계를 포함하여 이루어진 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 방법.
KR10-2003-0010190A 2003-02-18 2003-02-18 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및그 방법 KR100534625B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR10-2003-0010190A KR100534625B1 (ko) 2003-02-18 2003-02-18 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및그 방법
CNB2004100052765A CN100364295C (zh) 2003-02-18 2004-02-17 在分布式路由器系统中交换路由选择信息的方法和设备
US10/778,347 US20050074010A1 (en) 2003-02-18 2004-02-17 Method and apparatus for exchanging routing information in distributed router system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0010190A KR100534625B1 (ko) 2003-02-18 2003-02-18 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및그 방법

Publications (2)

Publication Number Publication Date
KR20040074434A true KR20040074434A (ko) 2004-08-25
KR100534625B1 KR100534625B1 (ko) 2005-12-07

Family

ID=34309359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0010190A KR100534625B1 (ko) 2003-02-18 2003-02-18 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및그 방법

Country Status (3)

Country Link
US (1) US20050074010A1 (ko)
KR (1) KR100534625B1 (ko)
CN (1) CN100364295C (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100666996B1 (ko) * 2006-01-19 2007-01-10 삼성전자주식회사 라우팅 시스템 및 라우트 업데이트 방법
KR101388580B1 (ko) * 2007-12-24 2014-04-23 연세대학교 산학협력단 이동 통신 시스템에서 복합자동재송요구를 사용하여 패킷을 송수신하는 장치 및 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100440799C (zh) * 2005-09-06 2008-12-03 华为技术有限公司 一种接入设备中主备板备份及倒换的方法
CN1801687B (zh) * 2005-09-08 2013-08-07 华为技术有限公司 一种基于非应答机制的数据帧重传方法和系统
US8625601B2 (en) * 2005-10-31 2014-01-07 Qualcomm Incorporated Method and apparatus for low-overhead packet data transmission and control of reception mode
US8489128B2 (en) * 2005-10-31 2013-07-16 Qualcomm Incorporated Efficient transmission on a shared data channel for wireless communication
US8462627B2 (en) * 2005-12-30 2013-06-11 Altec Lansing Australia Pty Ltd Media data transfer in a network environment
CN100423514C (zh) * 2006-06-01 2008-10-01 杭州华三通信技术有限公司 分布式设备中地址解析协议数据同步的方法
JP2010224935A (ja) * 2009-03-24 2010-10-07 Olympus Corp 分散処理システム
JP5289587B2 (ja) * 2010-01-05 2013-09-11 三菱電機株式会社 ルーチング情報生成装置、ルーチング情報生成方法およびルーチング情報生成プログラム
CN104702530B (zh) * 2013-12-06 2018-02-13 北京东土科技股份有限公司 一种环网中Goose报文的发送方法及装置
CN105591931B (zh) * 2015-07-02 2019-06-28 新华三技术有限公司 一种路由更新的方法和装置
KR102460350B1 (ko) * 2015-11-06 2022-10-28 삼성전자주식회사 통신 시스템에서 데이터 송수신 방법 및 장치
US10411990B2 (en) * 2017-12-18 2019-09-10 At&T Intellectual Property I, L.P. Routing stability in hybrid software-defined networking networks

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005867A (en) * 1986-09-16 1999-12-21 Hitachi, Ltd. Time-division channel arrangement
US5243592A (en) * 1990-10-15 1993-09-07 Digital Equipment Corporation Method and apparatus for distance vector routing on datagram point-to-point links
US5742760A (en) * 1992-05-12 1998-04-21 Compaq Computer Corporation Network packet switch using shared memory for repeating and bridging packets at media rate
US6108304A (en) * 1996-03-08 2000-08-22 Abe; Hajime Packet switching network, packet switching equipment, and network management equipment
GB9624916D0 (en) * 1996-11-29 1997-01-15 Northern Telecom Ltd Scaleable data network router
WO1998025382A2 (en) * 1996-12-04 1998-06-11 Alcatel Usa Sourcing L.P. Distributed telecommunications switching system and method
US6370584B1 (en) * 1998-01-13 2002-04-09 Trustees Of Boston University Distributed routing
FI114132B (fi) * 1998-01-28 2004-08-13 Nokia Corp Tiedonsiirron laatutason tukeminen langattomassa tiedonsiirrossa
KR20000001120A (ko) * 1998-06-02 2000-01-15 양현택 광대역 통신망에서 간선 링크 고장시 트래픽채널 재연결 방법
US6104696A (en) * 1998-07-08 2000-08-15 Broadcom Corporation Method for sending packets between trunk ports of network switches
US6611519B1 (en) * 1998-08-19 2003-08-26 Swxtch The Rules, Llc Layer one switching in a packet, cell, or frame-based network
US6584101B2 (en) * 1998-12-04 2003-06-24 Pmc-Sierra Ltd. Communication method for packet switching systems
US6594268B1 (en) * 1999-03-11 2003-07-15 Lucent Technologies Inc. Adaptive routing system and method for QOS packet networks
US6269080B1 (en) * 1999-04-13 2001-07-31 Glenayre Electronics, Inc. Method of multicast file distribution and synchronization
US6606326B1 (en) * 1999-07-02 2003-08-12 International Business Machines Corporation Packet switch employing dynamic transfer of data packet from central shared queue path to cross-point switching matrix path
US6584071B1 (en) * 1999-08-03 2003-06-24 Lucent Technologies Inc. Routing with service level guarantees between ingress-egress points in a packet network
US6532088B1 (en) * 1999-09-10 2003-03-11 Alcatel System and method for packet level distributed routing in fiber optic rings
CA2323695A1 (en) * 1999-12-23 2001-06-23 Nortel Networks Limited Automatic (dynamic) network skill-based routing
US6944127B1 (en) * 2000-08-07 2005-09-13 Bbnt Solutions Llc System for detecting spurious network traffic
CN1200368C (zh) * 2000-08-18 2005-05-04 清华大学 一种将tcp用于不可靠传输网络的局域重传方法
US6553030B2 (en) * 2000-12-28 2003-04-22 Maple Optical Systems Inc. Technique for forwarding multi-cast data packets
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
WO2002069583A1 (en) * 2001-02-26 2002-09-06 Maple Optical Systems, Inc. Data packet transmission scheduling using a partitioned heap
US7310336B2 (en) * 2001-05-18 2007-12-18 Esa Malkamaki Hybrid automatic repeat request (HARQ) scheme with in-sequence delivery of packets
US7483433B2 (en) * 2001-09-17 2009-01-27 Foundry Networks, Inc. System and method for router data distribution
KR100455880B1 (ko) * 2002-10-30 2004-11-06 한국전자통신연구원 분산 라우터 시스템의 포워딩 테이블 송수신 방법
KR100487127B1 (ko) * 2003-01-16 2005-05-03 삼성전자주식회사 분산형 라우터에 있어서 멀티캐스트 라우팅 테이블 관리방법
KR100918733B1 (ko) * 2003-01-30 2009-09-24 삼성전자주식회사 포워딩정보를 동적으로 관리하는 분산구조라우터 및 그방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100666996B1 (ko) * 2006-01-19 2007-01-10 삼성전자주식회사 라우팅 시스템 및 라우트 업데이트 방법
KR101388580B1 (ko) * 2007-12-24 2014-04-23 연세대학교 산학협력단 이동 통신 시스템에서 복합자동재송요구를 사용하여 패킷을 송수신하는 장치 및 방법

Also Published As

Publication number Publication date
US20050074010A1 (en) 2005-04-07
CN100364295C (zh) 2008-01-23
CN1523840A (zh) 2004-08-25
KR100534625B1 (ko) 2005-12-07

Similar Documents

Publication Publication Date Title
CN102377666B (zh) 具有平均速率和突发速率控制的基于泛洪的路由协议
Johnson Routing in ad hoc networks of mobile hosts
US5519704A (en) Reliable transport protocol for internetwork routing
US7277383B2 (en) Redundancy mechanization protocol for a massively parallel router
US6341129B1 (en) TCP resegmentation
WO2012066824A1 (ja) 通信装置および通信システム
KR100534625B1 (ko) 분산형 라우터의 신뢰성 있는 라우팅 정보 교환 장치 및그 방법
US5805818A (en) System for acknowledging availability of neighbor node using data packet containing data that is ordinarily fowarded to neighbor node
US20080077710A1 (en) RPF multi-party reliable transport
EP1002408B1 (en) Communication method and system
US6611874B1 (en) Method for improving routing distribution within an internet and system for implementing said method
JP2009525013A (ja) データ通信における接続状態を同期するための方法および同方法を用いる通信ノード
US11115343B2 (en) Transport layer providing deterministic transport across multiple deterministic data links
US10461886B2 (en) Transport layer identifying failure cause and mitigation for deterministic transport across multiple deterministic data links
US7688819B2 (en) Faster routing protocol convergence using efficient message markup
KR100450951B1 (ko) 대용량 평행 라우터용 리던던시 기계화 프로토콜
WO2005069552A1 (en) Redundant pipelined file transfer
JPH11177621A (ja) データ送信装置及びデータ通信システム
JP4990187B2 (ja) データ転送装置
CN114070495A (zh) 数据传输方法、装置、电子装置和存储介质
WO2021005756A1 (ja) コンテンツ配信システム、ユニキャストマルチキャスト変換装置、コンテンツ配信方法及びコンテンツ配信プログラム
JP3808882B2 (ja) ゲートウェイ装置および無線端末装置
JP3965201B1 (ja) ネットワーク通信機器および双方向リング型ネットワーク用通信プログラム。
JP3482634B2 (ja) Ip網での通信資源予約方法
JP4220530B2 (ja) ゲートウェイ装置および無線端末装置

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

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee