KR101104046B1 - 혼잡을 감소시키는 신뢰적인 전송 패킷 재시도 엔진 - Google Patents

혼잡을 감소시키는 신뢰적인 전송 패킷 재시도 엔진 Download PDF

Info

Publication number
KR101104046B1
KR101104046B1 KR1020097015548A KR20097015548A KR101104046B1 KR 101104046 B1 KR101104046 B1 KR 101104046B1 KR 1020097015548 A KR1020097015548 A KR 1020097015548A KR 20097015548 A KR20097015548 A KR 20097015548A KR 101104046 B1 KR101104046 B1 KR 101104046B1
Authority
KR
South Korea
Prior art keywords
packet
packets
network endpoint
retry
network
Prior art date
Application number
KR1020097015548A
Other languages
English (en)
Other versions
KR20090118916A (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 KR20090118916A publication Critical patent/KR20090118916A/ko
Application granted granted Critical
Publication of KR101104046B1 publication Critical patent/KR101104046B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1803Stop-and-wait protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • H04L1/1883Time-out mechanisms using multiple timers
    • 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/28Timers or timing mechanisms used in protocols

Abstract

적어도 하나의 네트워크 종단점에 의한 수신이 예정된 네트워크를 통해 적어도 하나의 패킷을 송신하기 위한 방법, 장치 및 컴퓨터 판독가능 매체가 제공된다. 복수의 패킷들이 적어도 하나의 네트워크 종단점으로 송신되기 위해 큐로부터 순차적으로 프로세싱된다. 복수의 패킷들로부터 적어도 제1 패킷이 적어도 하나의 네트워크 종단점에 송신된다. 적어도 하나의 네트워크 종단점에 송신된 적어도 제1 패킷이 수신확인되지 않은 것으로 판단된다. 적어도 제1 패킷과 연계된 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 송신된다. 적어도 하나의 네트워크 종단점으로의 제1 재시도 패킷 이외의 다른 패킷들의 송신이 중지된다. 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인된 것으로 판단된다. 복수의 패킷들에서의 나머지 패킷들의 적어도 하나의 네트워크 종단점으로의 송신이 재개된다.
Figure R1020097015548
네트워크, 종단점, 패킷, 큐, 수신확인.

Description

혼잡을 감소시키는 신뢰적인 전송 패킷 재시도 엔진{CONGESTION REDUCING RELIABLE TRANSPORT PACKET RETRY ENGINE}
본 발명은 일반적으로 네트워크를 통해 데이터를 송신하는 분야에 관한 것으로서, 보다 구체적으로는 신뢰적인 전송 프로토콜을 이용하여 네트워크를 통한 패킷의 발송을 관리하는 것에 관한 것이다.
송신에서 에러가 발생한 경우에 데이터가 정확하게 수신되는 것을 보장하기 위한 신뢰적인 전송 프로토콜이 네트워크에서 사용된다. 일반적으로, 신뢰적인 전송 프로토콜은 패킷이 처음으로 송신될 때 순차적 시퀀스 번호들을 패킷들에 할당한다. 패킷이 목적지에서(다음 홉에서, 또는 자신의 최종적인 목적지에서) 수신되면, 수신기는 어느 시퀀스 번호가 수신되었는지를 표시하는 수신확인 패킷을 발송자에게 되돌려 보낸다. 수신확인되지 않은 패킷들은 일반적으로 미리정의된 타임아웃 지속기간이 발생한 후에 발송자에 의해 리큐잉(re-queue)되어 재송신된다. 하지만, 통상적인 신뢰적 전송 시스템에서는, 노드가 타임아웃을 탐지하면(즉, 수신확인이 수신되지 않은 경우), 노드는 큐에 올려진 모든 패킷들을 재송신한다. 이것은 수 많은 패킷들로 네트워크를 범람시킨다는 단점을 갖는다. 만약, 종단점으로의 성공적인 송신을 막는 통신 난제들이 해결되지 않으면, 모든 패킷들은 폐기될 것이 다. 성공적으로 전달되지 않은 모든 패킷들의 재송신에 의한 통신 자원의 소비는 공유된 통신 자원의 이용가능성이 줄어들 것이기 때문에 네트워크내에서 통신 난제들을 경험하고 있지 않는 비관련된 노드들의 동작에 악영향을 미칠 수 있다.
따라서, 상술한 바와 같은 종래기술에서의 문제점을 극복하기 위한 필요성이 존재한다.
따라서, 본 발명은 적어도 하나의 네트워크 종단점에 의한 수신이 예정된 네트워크를 통해 적어도 하나의 패킷을 송신하기 위한, 정보 프로세싱 시스템을 동작시키는 방법을 제공하며, 본 방법은: 적어도 하나의 네트워크 종단점으로 송신되는 복수의 패킷들을 큐로부터 순차적으로 프로세싱하며; 복수의 패킷들로부터 적어도 제1 패킷을 적어도 하나의 네트워크 종단점에 송신하며; 적어도 하나의 네트워크 종단점에 송신된 적어도 제1 패킷이 수신확인되지 않은 것으로 판단하며; 적어도 제1 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인되지 않은 것으로 판단한 것에 응답하여, 적어도 제1 패킷과 연계된 제1 재시도 패킷을 적어도 하나의 네트워크 종단점에 송신하며; 적어도 하나의 네트워크 종단점으로의 제1 재시도 패킷 이외의 다른 패킷들의 송신을 중지하며; 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인된 것으로 판단하며; 제1 재시도 패킷이 수신확인된 것으로 판단한 것에 응답하여, 복수의 패킷들에서의 나머지 패킷들의 적어도 하나의 네트워크 종단점으로의 송신을 재개하는 것을 포함한다.
본 방법은 적어도 제1 패킷을 송신한 것에 응답하여, 적어도 제1 패킷과 연계된 복수의 타이머들을 개시하는 것을 더 포함할 수 있다.
바람직하게, 각각의 네트워크 종단점에 대한 복수의 패킷들내의 패킷들은 적어도 하나의 네트워크 종단점에서 각자에 대한 시퀀스 번호에 따라 순서가 정해지며, 각각의 패킷들은 각자의 시퀀스 번호에 대응하는 순서로 각자의 네트워크 종단점에 송신된다.
바람직하게, 송신을 중지시키는 것은 적어도 하나의 네트워크 노드로의 제1 재시도 패킷 이외의 다른 패킷들의 송신을 중지하는 것을 더 포함하며, 다른 네트워크 종단점으로의 패킷들의 송신은 중지되지 않는다.
바람직하게, 복수의 타이머들에서의 제1 타이머는 적어도 하나의 네트워크 종단점으로부터의 수신확인을 수신하기 위한 제1의 주어진 문턱값과 연계된다.
바람직하게, 적어도 하나의 네트워크 종단점에 송신된 제1 재시도 패킷이 수신확인되지 않은 것으로 판단하는 것은: 적어도 하나의 네트워크 종단점에 송신된 제1 재시도 패킷과 연계된 수신확인 패킷을 모니터링하고; 제1 타이머와 연계된 값이 제1의 주어진 문턱값보다 큰 것에 응답하여, 제1의 주어진 문턱값 이후에 수신확인 패킷이 수신되지 않은 것으로 판단하는 것을 더 포함한다.
바람직하게, 제1 재시도 패킷의 송신은: 적어도 제1 패킷이, 연계된 수신확인 패킷 없이, 적어도 하나의 네트워크 종단점에 송신된 최초의 패킷인 것으로 판단하고; 상기 판단에 응답하여, 제1 재시도 데이터 패킷을 적어도 하나의 네트워크 종단점에 송신하는 것을 더 포함하며, 제1 재시도 패킷과 연계된 수신확인 패킷이 적어도 하나의 네트워크 종단점으로부터 수신될 때 까지 적어도 하나의 네트워크 종단점에 어떠한 다른 패킷도 송신되지 않는다.
본 방법은: 상기 송신에 응답하여, 제1 재시도 패킷과 연계된 적어도 하나의 타이머를 개시하는 것을 더 포함할 수 있다.
본 방법은: 제1 재시도 패킷의 송신과 연계된 수신확인이 적어도 하나의 네트워크 종단점으로부터 수신될 때 까지 계속 동작하는 제2 타이머를 제1 재시도 패킷의 제1 송신시에 개시하며; 제2 타이머에 기초하여, 제2 주어진 문턱값이 적어도 하나의 네트워크 종단점으로 재시도되는 패킷에 대하여 발생한 것으로 판단하며; 제2 문턱값이 발생한 것으로 판단한 것에 응답하여, 이전에 제1 재시도 패킷을 송신할 때에 사용되었던 송신 경로와 다른 대체 송신 경로를 이용하여 제1 재시도 패킷을 적어도 하나의 네트워크 종단점에 재송신하는 것을 더 포함할 수 있다.
본 방법은: 적어도 하나의 네트워크 종단점으로의 모든 패킷 송신을 중지할 때를 판단하기 위한 주어진 문턱값과 연계된, 복수의 타이머들에서의 적어도 하나의 타이머를 모니터링하며; 상기 모니터링에 응답하여, 적어도 하나의 타이머와 연계된 주어진 문턱값이 발생한 것으로 판단하며; 상기 문턱값이 발생한 것으로 판단한 것에 응답하여, 적어도 하나의 네트워크 종단점으로의 모든 패킷 송신들을 중지하는 것을 더 포함할 수 있다.
본 방법은 적어도 하나의 네트워크 종단점상에서 에러 복구를 실행하는 것을 더 포함할 수 있다.
본 방법은: 적어도 하나의 네트워크 종단점으로부터 수신확인 패킷을 수신하며; 수신확인 패킷과 연계된 시퀀스 번호를 분석하며; 상기 분석에 응답하여, 시퀀스 번호가, 적어도 하나의 네트워크 종단점과 연계된 현재의 시퀀스 번호보다 크며, 적어도 하나의 네트워크 종단점으로 송신된 일련의 패킷들에서 최종 송신된 패킷과 연계된 시퀀스 번호보다 작은 것과 동일한 것 중 적어도 하나인 것으로 판단하며; 시퀀스 번호가, 적어도 하나의 네트워크 종단점과 연계된 현재의 시퀀스 번호보다 크며, 적어도 하나의 네트워크 종단점으로 송신된 일련의 패킷들에서 최종 송신된 패킷과 연계된 시퀀스 번호보다 작은 것과 동일한 것 중 적어도 하나인 것으로 판단한 것에 응답하여, 시퀀스 번호를 적어도 하나의 목적지 네트워크로부터 수신된 수신확인으로서 저장하며; 시퀀스 번호 중 적어도 하나가, 적어도 하나의 네트워크 종단점과 연계된 현재의 시퀀스 번호보다 크며, 적어도 하나의 네트워크 종단점으로 송신된 일련의 패킷들에서 최종 송신된 패킷과 연계된 시퀀스 번호보다 작은 것과 동일한 것 중 적어도 하나인 것으로 판단한 것에 응답하여, 수신확인 패킷을 폐기하는 것을 더 포함할 수 있다.
제2 실시양태에서는 적어도 하나의 네트워크 종단점에 의한 수신이 예정된 네트워크를 통해 적어도 하나의 패킷을 송신하는 정보 프로세싱 시스템이 제공되며, 상기 정보 프로세싱 시스템은: 메모리; 메모리와 통신가능하게 결합된 프로세서; 네트워크 종단점에 송신되는 복수의 패킷들을 저장하도록 구성된 큐; 메모리 및 프로세서와 통신가능한 패킷 관리기를 포함하며, 상기 패킷 관리기는: 적어도 하나의 네트워크 종단점에 송신되는 복수의 패킷들을 큐로부터 순차적으로 프로세싱하며; 복수의 패킷들로부터 적어도 제1 패킷을 적어도 하나의 네트워크 종단점에 송신하며; 적어도 하나의 네트워크 종단점에 송신된 적어도 제1 패킷이 수신확인되지 않은 것으로 판단하며; 적어도 제1 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인되지 않은 것으로 판단한 것에 응답하여, 적어도 제1 패킷과 연계된 제1 재시도 패킷을 적어도 하나의 네트워크 종단점에 송신하며; 적어도 하나의 네트워크 종단점으로의 제1 재시도 패킷 이외의 다른 패킷들의 송신을 중지하며; 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인된 것으로 판단하며; 제1 재시도 패킷이 수신확인된 것으로 판단한 것에 응답하여, 복수의 패킷들에서의 나머지 패킷들의 적어도 하나의 네트워크 종단점으로의 송신을 재개하도록 구성된다.
바람직하게, 패킷 관리기는 또한, 적어도 제1 패킷을 송신한 것에 응답하여, 적어도 제1 패킷과 연계된 복수의 타이머들을 개시한다.
바람직하게, 패킷 관리기에 의해 송신을 중지시키는 것은, 적어도 하나의 네트워크 노드로의 제1 재시도 패킷 이외의 다른 패킷들의 송신을 중지하는 것을 더 포함하며, 다른 네트워크 종단점으로의 패킷들의 송신은 중지되지 않는다.
바람직하게, 복수의 타이머들에서의 제1 타이머는 적어도 하나의 네트워크 종단점으로부터의 수신확인을 수신하기 위한 제1의 주어진 문턱값과 연계된다.
바람직하게, 적어도 하나의 네트워크 종단점에 송신된 제1 재시도 패킷이 수신확인되지 않은 것으로 판단하는 것은: 적어도 하나의 네트워크 종단점에 송신된 제1 재시도 패킷과 연계된 수신확인 패킷을 모니터링하고; 제1 타이머와 연계된 값이 제1의 주어진 문턱값보다 큰 것에 응답하여, 제1의 주어진 문턱값 이후에 수신확인 패킷이 수신되지 않은 것으로 판단하는 것을 더 포함한다.
바람직하게, 제1 재시도 패킷의 송신은: 적어도 제1 패킷이, 연계된 수신확인 패킷 없이, 적어도 하나의 네트워크 종단점에 송신된 최초의 패킷인 것으로 판단하고; 상기 판단에 응답하여, 제1 재시도 데이터 패킷을 적어도 하나의 네트워크 종단점에 송신하는 것을 더 포함하며, 제1 재시도 패킷과 연계된 수신확인 패킷이 적어도 하나의 네트워크 종단점으로부터 수신될 때 까지 적어도 하나의 네트워크 종단점에 어떠한 다른 패킷도 송신되지 않는다.
바람직하게, 패킷 관리기는 또한, 제1 재시도 패킷의 송신과 연계된 수신확인이 적어도 하나의 네트워크 종단점으로부터 수신될 때 까지 계속 동작하는 제2 타이머를 제1 재시도 패킷의 제1 송신시에 개시하며; 제2 타이머에 기초하여, 제2의 주어진 문턱값이 적어도 하나의 네트워크 종단점으로 재시도되는 패킷에 대하여 발생한 것으로 판단하며; 제2 문턱값이 발생한 것으로 판단한 것에 응답하여, 이전에 제1 재시도 패킷을 송신할 때에 사용되었던 송신 경로와 다른 대체 송신 경로를 이용하여 제1 재시도 패킷을 적어도 하나의 네트워크 종단점에 재송신하도록 구성된다.
바람직하게, 패킷 관리기는 또한, 적어도 하나의 네트워크 종단점으로의 모든 패킷 송신을 중지할 때를 판단하기 위한 주어진 문턱값과 연계된, 복수의 타이머들에서의 적어도 하나의 타이머를 모니터링하며; 상기 모니터링에 응답하여, 적어도 하나의 타이머와 연계된 주어진 문턱값이 발생한 것으로 판단하며; 상기 문턱값이 발생한 것으로 판단한 것에 응답하여, 적어도 하나의 네트워크 종단점으로의 모든 패킷 송신들을 중지하도록 구성된다.
바람직하게, 패킷 관리기는 또한, 적어도 하나의 네트워크 종단점상에서 에러 복구를 실행하도록 구성된다.
제3 실시양태에서는, 컴퓨터 시스템내로 로딩되어 실행될 때에 상기 컴퓨터 시스템으로 하여금 제1 실시양태에 따른 방법의 모든 단계들을 수행하게 만드는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램이 제공된다.
컴퓨터 프로그램은 적어도 하나의 네트워크 종단점에 의한 수신이 예정된 네트워크를 통해 적어도 하나의 패킷을 송신하기 위한 머신 실행가능 프로그램을 내장한 컴퓨터 판독가능 매체로서 형체화될 수 있으며, 상기 머신 실행가능 프로그램은: 적어도 하나의 네트워크 종단점으로 송신되는 복수의 패킷들을 큐로부터 순차적으로 프로세싱하며; 복수의 패킷들로부터 적어도 제1 패킷을 적어도 하나의 네트워크 종단점에 송신하며; 적어도 하나의 네트워크 종단점에 송신된 적어도 제1 패킷이 수신확인되지 않은 것으로 판단하며; 적어도 제1 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인되지 않은 것으로 판단한 것에 응답하여, 적어도 제1 패킷과 연계된 제1 재시도 패킷을 적어도 하나의 네트워크 종단점에 송신하며; 적어도 하나의 네트워크 종단점으로의 제1 재시도 패킷 이외의 다른 패킷들의 송신을 중지하며; 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인된 것으로 판단하며; 제1 재시도 패킷이 수신확인된 것으로 판단한 것에 응답하여, 복수의 패킷들에서의 나머지 패킷들의 적어도 하나의 네트워크 종단점으로의 송신을 재개하기 위한 명령어를 포함한다.
컴퓨터 프로그램은, 적어도 제1 패킷을 송신한 것에 응답하여, 적어도 제1 패킷과 연계된 복수의 타이머들을 개시하기 위한 명령어를 더 포함할 수 있다.
바람직하게, 송신을 중지시키기 위한 명령어는 적어도 하나의 네트워크 노드로의 제1 재시도 패킷 이외의 다른 패킷들의 송신을 중지하기 위한 명령어를 더 포함하며, 다른 네트워크 종단점으로의 패킷들의 송신은 중지되지 않는다.
바람직하게, 복수의 타이머들에서의 제1 타이머는 적어도 하나의 네트워크 종단점으로부터의 수신확인을 수신하기 위한 제1의 주어진 문턱값과 연계된다.
바람직하게, 제1 재시도 패킷을 송신하기 위한 명령어는, 적어도 제1 패킷이, 연계된 수신확인 패킷 없이, 적어도 하나의 네트워크 종단점에 송신된 최초의 패킷인 것으로 판단하고; 상기 판단에 응답하여, 제1 재시도 데이터 패킷을 적어도 하나의 네트워크 종단점에 송신하기 위한 명령어를 더 포함하며, 제1 재시도 패킷과 연계된 수신확인 패킷이 적어도 하나의 네트워크 종단점으로부터 수신될 때 까지 적어도 하나의 네트워크 종단점에 어떠한 다른 패킷도 송신되지 않는다.
컴퓨터 프로그램은, 제1 재시도 패킷의 송신과 연계된 수신확인이 적어도 하나의 네트워크 종단점으로부터 수신될 때 까지 계속 동작하는 제2 타이머를 제1 재시도 패킷의 제1 송신시에 개시하며; 제2 타이머에 기초하여, 제2의 주어진 문턱값이 적어도 하나의 네트워크 종단점으로 재시도되는 패킷에 대하여 발생한 것으로 판단하며; 제2 문턱값이 발생한 것으로 판단한 것에 응답하여, 이전에 제1 재시도 패킷을 송신할 때에 사용되었던 송신 경로와 다른 대체 송신 경로를 이용하여 제1 재시도 패킷을 적어도 하나의 네트워크 종단점에 재송신하기 위한 명령어를 더 포함할 수 있다.
컴퓨터 프로그램은, 적어도 하나의 네트워크 종단점으로의 모든 패킷 송신을 중지할 때를 판단하기 위한 주어진 문턱값과 연계된, 복수의 타이머들에서의 적어도 하나의 타이머를 모니터링하며; 상기 모니터링에 응답하여, 적어도 하나의 타이머와 연계된 주어진 문턱값이 발생한 것으로 판단하며; 상기 문턱값이 발생한 것으로 판단한 것에 응답하여, 적어도 하나의 네트워크 종단점으로의 모든 패킷 송신들을 중지하기 위한 명령어를 더 포함할 수 있다.
메모리; 메모리와 통신가능하게 결합된 프로세서; 메모리 및 프로세서와 통신가능하게 결합된 적어도 하나의 네트워크 아답터; 적어도 네트워크 종단점에 송신되는 복수의 패킷들을 저장하도록 구성된 큐; 및 메모리, 큐 및 프로세서와 통신가능한 패킷 관리기를 포함하는 네트워크 장치가 또한 제공될 수 있으며, 상기 패킷 관리기는: 적어도 하나의 네트워크 종단점으로 송신되는 복수의 패킷들을 큐로부터 순차적으로 프로세싱하며; 복수의 패킷들로부터의 적어도 제1 패킷을 적어도 하나의 네트워크 종단점에 송신하며; 적어도 하나의 네트워크 종단점에 송신된 적어도 제1 패킷이 수신확인되지 않은 것으로 판단하며; 적어도 제1 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인되지 않은 것으로 판단한 것에 응답하여, 적어도 제1 패킷과 연계된 제1 재시도 패킷을 적어도 하나의 네트워크 종단점에 송신하며; 적어도 하나의 네트워크 종단점으로의 제1 재시도 패킷 이외의 다른 패킷들의 송신을 중지하며; 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인된 것으로 판단하며; 제1 재시도 패킷이 수신확인된 것으로 판단한 것에 응답하여, 복수의 패킷들에서의 나머지 패킷들의 적어도 하나의 네트워크 종단점으로의 송신을 재개하도록 구성된다.
바람직하게, 패킷 관리기는 또한, 적어도 제1 패킷을 송신한 것에 응답하여, 적어도 제1 패킷과 연계된 복수의 타이머들을 개시한다.
바람직하게, 패킷 관리기에 의해 송신을 중지시키는 것은, 적어도 하나의 네트워크 노드로의 제1 재시도 패킷 이외의 다른 패킷들의 송신을 중지하는 것을 더 포함하며, 다른 네트워크 종단점으로의 패킷들의 송신은 중지되지 않는다.
바람직하게, 복수의 타이머들에서의 제1 타이머는 적어도 하나의 네트워크 종단점으로부터의 수신확인을 수신하기 위한 제1의 주어진 문턱값과 연계된다.
바람직하게, 적어도 하나의 네트워크 종단점에 송신된 제1 재시도 패킷이 수신확인되지 않은 것으로 판단하는 것은: 적어도 하나의 네트워크 종단점에 송신된 제1 재시도 패킷과 연계된 수신확인 패킷을 모니터링하고; 제1 타이머에 응답하여, 제1의 주어진 문턱값 이후에 수신확인 패킷이 수신되지 않은 것으로 판단하는 것을 더 포함한다.
바람직하게, 제1 재시도 패킷의 송신은: 적어도 제1 패킷이, 연계된 수신확인 패킷 없이, 적어도 하나의 네트워크 종단점에 송신된 최초의 패킷인 것으로 판단하고; 상기 판단에 응답하여, 제1 재시도 데이터 패킷을 적어도 하나의 네트워크 종단점에 송신하는 것을 더 포함하며, 제1 재시도 패킷과 연계된 수신확인 패킷이 적어도 하나의 네트워크 종단점으로부터 수신될 때 까지 적어도 하나의 네트워크 종단점에 어떠한 다른 패킷도 송신되지 않는다.
바람직하게, 패킷 관리기는 또한, 제1 재시도 패킷의 송신과 연계된 수신확인이 적어도 하나의 네트워크 종단점으로부터 수신될 때 까지 계속 동작하는 제2 타이머를 제1 재시도 패킷의 제1 송신시에 개시하며; 제2 타이머에 기초하여, 제2의 주어진 문턱값이 적어도 하나의 네트워크 종단점으로 재시도되는 패킷에 대하여 발생한 것으로 판단하며; 제2 문턱값이 발생한 것으로 판단한 것에 응답하여, 이전에 제1 재시도 패킷을 송신할 때에 사용되었던 송신 경로와 다른 대체 송신 경로를 이용하여 제1 재시도 패킷을 적어도 하나의 네트워크 종단점에 재송신하도록 구성된다.
따라서, 본 발명의 바람직한 실시예들은 적어도 하나의 네트워크 종단점에 의한 수신이 예정된 네트워크를 통해 적어도 하나의 패킷을 송신하기 위한 방법, 정보 프로세싱 시스템, 컴퓨터 판독가능 매체, 및 네트워크 장치를 포함한다. 본 방법은 적어도 하나의 네트워크 종단점에 송신되는 복수의 패킷들을 큐로부터 순차적으로 프로세싱하는 것을 포함한다. 복수의 패킷들로부터의 적어도 제1 패킷은 적어도 하나의 네트워크 종단점에 송신된다. 적어도 하나의 네트워크 종단점에 송신된 적어도 제1 패킷은 수신확인되지 않은 것으로 판단된다. 적어도 제1 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인되지 않은 것으로 판단한 것에 응답하여 적어도 제1 패킷과 연계된 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 송신된다. 제1 재시도 패킷 이외의 다른 패킷들의 적어도 하나의 네트워크 종단점으로의 송신은 중지된다. 제1 재시도 패킷은 적어도 하나의 네트워크 종단점에 의해 수신확인된 것으로 판단된다. 제1 재시도 패킷이 수신확인된 것으로 판단한 것에 응답하여, 복수의 패킷들에서의 나머지 패킷들의 적어도 하나의 네트워크 종단점으로의 송신이 재개된다.
다른 실시예에서는, 적어도 하나의 네트워크 종단점에 의한 수신이 예정된 네트워크를 통해 적어도 하나의 패킷을 송신하기 위한 정보 프로세싱 시스템이 개시된다. 정보 프로세싱 시스템은 메모리 및, 메모리와 통신가능하게 결합된 프로세서를 포함한다. 정보 프로세싱 시스템은 또한 네트워크 종단점에 송신되는 복수의 패킷들을 저장하도록 구성된 큐를 포함한다. 패킷 관리기는 메모리 및 프로세서와 통신가능하다. 패킷 관리기는, 적어도 하나의 네트워크 종단점으로 송신되는 복수의 패킷들을 큐로부터 순차적으로 프로세싱하도록 구성된다. 복수의 패킷들로부터의 적어도 제1 패킷은 적어도 하나의 네트워크 종단점에 송신된다. 적어도 하나의 네트워크 종단점에 송신된 적어도 제1 패킷이 수신확인되지 않은 것으로 판단된다. 적어도 제1 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인되지 않은 것으로 판단한 것에 응답하여, 적어도 제1 패킷과 연계된 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 송신된다. 적어도 하나의 네트워크 종단점으로의 제1 재시도 패킷 이외의 다른 패킷들의 송신은 중지된다. 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인된 것으로 판단된다. 제1 재시도 패킷이 수신확인된 것으로 판단한 것에 응답하여, 복수의 패킷들에서의 나머지 패킷들의 적어도 하나의 네트워크 종단점으로의 송신이 재개된다.
또 다른 실시예에서는, 적어도 하나의 네트워크 종단점에 의한 수신이 예정된 네트워크를 통해 적어도 하나의 패킷을 송신하기 위한 컴퓨터 판독가능 매체가 개시된다. 컴퓨터 판독가능 매체는 적어도 하나의 네트워크 종단점에 송신되는 복수의 패킷들을 큐로부터 순차적으로 프로세싱하기 위한 명령어를 포함한다. 복수의 패킷들로부터의 적어도 제1 패킷은 적어도 하나의 네트워크 종단점에 송신된다. 적어도 하나의 네트워크 종단점에 송신된 적어도 제1 패킷이 수신확인되지 않은 것으로 판단된다. 적어도 제1 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인되지 않은 것으로 판단한 것에 응답하여, 적어도 제1 패킷과 연계된 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 송신된다. 적어도 하나의 네트워크 종단점으로의 제1 재시도 패킷 이외의 다른 패킷들의 송신은 중지된다. 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인된 것으로 판단된다. 제1 재시도 패킷이 수신확인된 것으로 판단한 것에 응답하여, 복수의 패킷들에서의 나머지 패킷들의 적어도 하나의 네트워크 종단점으로의 송신이 재개된다.
다른 실시예에서는 네트워크 장치가 개시된다. 네트워크 장치는 메모리 및, 메모리와 통신가능하게 결합된 프로세서를 포함한다. 네트워크 장치는 또한 메모리 및 프로세서와 통신가능하게 결합된 적어도 하나의 네트워크 아답터를 포함한다. 큐는 적어도 네트워크 종단점으로 송신되는 복수의 패킷들을 저장하도록 구성된다. 메모리, 큐 및 프로세서와 통신가능한 패킷 관리기는, 적어도 하나의 네트워크 종단점으로 송신되는 복수의 패킷들을 큐로부터 순차적으로 프로세싱하도록 구성된다. 복수의 패킷들로부터의 적어도 제1 패킷은 적어도 하나의 네트워크 종단점에 송신된다. 적어도 하나의 네트워크 종단점에 송신된 적어도 제1 패킷이 수신확인되지 않은 것으로 판단된다. 적어도 제1 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인되지 않은 것으로 판단한 것에 응답하여, 적어도 제1 패킷과 연계된 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 송신된다. 적어도 하나의 네트워크 종단점으로의 제1 재시도 패킷 이외의 다른 패킷들의 송신은 중지된다. 제1 재시도 패킷이 적어도 하나의 네트워크 종단점에 의해 수신확인된 것으로 판단된다. 제1 재시도 패킷이 수신확인된 것으로 판단한 것에 응답하여, 복수의 패킷들에서의 나머지 패킷들의 적어도 하나의 네트워크 종단점으로의 송신이 재개된다.
본 발명의 한가지 장점은 수신확인되지 않은 패킷의 재송신으로 인한 네트워크내에서의 혼잡이 감소되도록 하는 방식으로 네트워크를 통해 패킷을 재송신하는 패킷 재송신 모듈이 제공된다는 것이다. 예를 들어, 패킷 재송신 모듈은 특정 종단점들 간의 손실 패킷들의 재송신을 오로지 수신확인되지 않은 제1 패킷으로만 제한시키고, 그런 후 해당 단일 패킷에 대한 응답을 기다린다. 수신확인되지 않은 제1 패킷이 수신확인된 후에야만 제송신 모듈은 아직 송신되지 않은 패킷이 보내졌음을 탐지할 때 까지 모든 다른 송신미처리 패킷(outstanding packet)을 보내는 것을 진행하며, 이 때 재송신 모듈은 자신의 정규 송신 메카니즘으로 되돌아간다(즉, 송신미처리 패킷들의 갯수의 제한에 도달될 때 까지 즉시적 수신확인을 기다리는 것 없이 송신을 한다). 본 발명의 실시예들은 수신확인되지 않은 패킷들로 네트워크를 범람시키는 것을 방지해주며, 이 경우 수신확인 타임아웃 및 패킷들은 수신되었던 원래 순서로 재송신된다.
이하에서는, 단지 예시로서의 본 발명의 실시예들이 첨부된 도면들을 참조하여 자세하게 설명된다.
도 1은 본 발명의 실시예에 따라 패킷을 송신하기 위한 예시적인 네트워크를 도시하는 블럭도이다.
도 2는 본 발명의 실시예에 따른 패킷 재송신 모듈의 보다 자세한 모습이다.
도 3은 본 발명의 실시예에 따른 재시도 상태 머신의 상세도이다.
도 4는 본 발명의 실시예에 따른 도 3의 재시도 상태 머신의 연장이다.
도 5는 본 발명의 실시예에 따른 도 1의 정보 프로세싱 시스템의 상세도이다.
도 6은 본 발명의 실시예에 따른, 새롭게 수신된 패킷을 프로세싱하기 위한 예시적인 프로세스를 도시하는 동작 흐름도이다.
도 7은 본 발명의 실시예에 따른, 새롭게 수신된 패킷을 프로세싱하기 위한 예시적인 프로세스를 도시하는 동작 흐름도이다.
도 8은 본 발명의 실시예에 따른, 타이머를 관리하기 위한 예시적인 프로세스를 도시하는 동작 흐름도이다.
도 9는 본 발명의 실시예에 따라, 노드가 네 개의 서로 다른 송신 상태들을 거쳐 이동할 때 노드에 송신되는 일련의 패킷들의 하이 레벨 예시의 개략도이다.
본 명세서에서 사용되는 용어인 프로그램, 소프트웨어 애플리케이션 등은 컴퓨터 시스템상에서의 실행을 위해 설계된 명령어 시퀀스로서 정의된다. 프로그램, 컴퓨터 프로그램, 또는 소프트웨어 애플리케이션은 서브루틴, 함수, 프로시저, 오브젝트 방법, 오브젝트 구현, 실행가능 애플리케이션, 애플릿, 서블릿, 소스 코드, 오브젝트 코드, 공유 라이브러리/동적 로드 라이브러리 및/또는 컴퓨터 시스템상에서의 실행을 위해 설계된 기타 명령어 시퀀스를 포함할 수 있다.
예시적 네트워크
도 1에서 도시된 바와 같이, 본 발명의 실시예에 따른 예시적인 네트워크(100)가 도시된다. 도 1은 정보 프로세싱 시스템(104), 종단점 A(106), 및 종단점 N(108)과 같은 네트워크 노드들과 통신가능하게 결합된 네트워크(102)를 도시한다. 각각의 종단점들(106, 108)은 정보 프로세싱 시스템, 라우터, 게이트웨이, 네트워크 허브 등일 수 있다. 즉, 종단점들(106, 108)은 송신된 패킷을 수신하도록 예정된 임의의 네트워크 컴포넌트이다. 일 실시예에서, 종단점들(106, 108)은 서로 관련되어 있지 않으며, 즉 이들은 서로간에 서로 다른 시퀀스 번호들을 갖는다.
일 실시예에서, 정보 프로세싱 시스템(104)은 패킷 관리기(110)를 포함한다. 패킷 관리기(110)는 종단점들(106, 108)로의 송신을 위한 패킷을 패킷 소스(112)로부터 수신하고, 이 패킷을 종단점들(106, 108)에 확실하게 송신한다. 패킷 관리기(110)는, 무엇 보다도, 패킷을 종단점들(106, 108)에 재송신하기 위한 패킷 재송신 모듈(114)을 포함한다. 일 실시예에서, 패킷 소스(112)는 패킷 관리기(110)와 통신가능하게 결합된 하나 이상의 다른 정보 프로세싱 시스템일 수 있다. 패킷 소스(112)는 또한 정보 프로세싱 시스템(104)내에 위치하는 하나 이상의 프로세스들일 수 있다. 예를 들어, 패킷 소스(112)는, 일 실시예에서, 종단점들(106, 108)에 송신되는 패킷들을 생성하는 애플리케이션이다.
패킷 관리기(110)는 패킷을 종단점들(106, 108)에 송신할 때에 하나 이상의 신뢰적인 전송 프로토콜들을 이용한다. 통상적으로, 패킷이 처음으로 송신될 때에 패킷에는 증분되는 시퀀스 번호가 할당된다. 패킷이 목적지(다양한 통신 시스템의 요건에 따라, 다음 홉 또는 최종 목적지)에서 수신되면, 수신기는 어느 시퀀스 번호가 수신되었는지를 표시하는 수신확인 패킷을 발송자에게 되돌려 보낸다. 이와 달리 신뢰적 전송은 수신확인 패킷들을 일원화시킬 수 있다. 수신확인 패킷을 일원화시키는 것은 여러 개의 패킷들을 수신하고 최종 패킷에 대응하는 하나의 수신확인을 보내는 것을 포함한다. 신뢰적 전송을 통해 송신하는 시스템에서, 송신측 노드는 수신되었던 최종 수신확인 패킷에서 제공된 시퀀스 번호에 대응하는 패킷까지 포함하여, 수신확인안된 모든 패킷의 복사본을 유지시킨다. 수신확인안된 패킷들은 일반적으로 미리정의된 타임아웃 지속기간이 발생한 후에 송신 노드에 의해 재송신된다. 대안 포트 또는 경로에 재송신하거나, 또는 패킷을 폐기하는 것을 포함하는 다른 대응책이 가능하다.
신뢰적 프로토콜은 다차선 또는 다중 컨텍스트 시퀀스 번호의 이용을 지원할 수 있거나 지원하지 않을 수 있다. 다차선 또는 다중 컨텍스트 시퀀스 번호는 개개별의 시퀀스 번호 세트들이 비상관적 통신의 여러 스트림들을 동시적으로 유지시키는데 사용되는 경우를 포함한다. 이 모드에서, 서로 다른 스트림들(때때로, 이것을 "노드"라고 부른다)은 자신들 사이에 어떠한 관계도 갖지 않는다. 본 발명의 바람직한 실시예는 이러한 모드를 지원하며, 노드의 갯수, 송신미처리 패킷들의 최대 갯수, 또는 시퀀스 번호의 크기에 제한받지 않는다.
모든 패킷들이 종단점(106, 108)에 다시보내지는 통상적인 재송신 방식과 비 교해 볼때, 몇몇 실시예들의 패킷 재송신 모듈(114)은 손실 패킷의 재송신을 오로지 수신확인을 수신하지 않은 첫번째 패킷으로 한정시킨다. 패킷의 송신 이후에, 패킷 재송신 모듈(114)은 패킷의 성공적인 수신을 수신확인해주는 종단점(106, 108)으로부터의 응답을 기다린다. 수신확인안된 송신 패킷들은 이전에 타임 아웃된 패킷들이 수신확인될 때 까지 송신기에 의해 축적된다. 예를 들어, 수신확인안된 송신 패킷들은 재시도 큐(queue)(미도시)에서 축적된다. 재시도 큐(미도시)는 재송신을 필요로 하는 패킷을 위한 것이고; 홀딩 버퍼는 네트워크 백 프레서(back-pressure)로 인하여 원래 송신이 차단된 패킷들을 위한 것이며; 및/또는 스테이징 버퍼는 성공적인 송신 또는 복구불가능한 에러로 인하여 정보 프로세싱 시스템(104)으로부터 폐기처분대기중인 패킷들을 위한 것이다. 일 실시예에서, 패킷의 재송신, 패킷의 홀딩, 및 패킷의 리큐잉(requeing)은 동시에 발생할 수 있다. 재시도 큐는 공유 회로 다중 포트 FIFO 버퍼일 수 있다.
재송신되는 패킷, 즉 수신기로부터 적절한 시기에 수신확인 메세지를 수신하지 못했던 첫번째 패킷이 수신기에 의해 수신확인된 후, 패킷 재송신 모듈(114)은 송신할 다음 패킷이 송신되지 않은 패킷임을 탐지할 때 까지 송신미처리되고 수신확인안된 패킷들을 보내는 것을 계속한다. 송신되지 않은 패킷이 송신할 다음 패킷으로서 탐지되는 경우, 패킷 관리기(110)는 자신의 정규 송신 메카니즘으로 되돌아온다(즉, 송신미처리 패킷들의 갯수의 한도에 도달될 때 까지 즉시적 수신확인을 기다리는 것 없이 송신을 행한다). 패킷 재송신 모듈(114)은 아래에서 보다 상세하게 설명된다.
패킷 재송신 모듈
도 2는 패킷 재송신 모듈(114)의 보다 상세한 모습을 도시하는 블럭도이다. 도 2는 패킷 관리기(110)내에 위치하는 패킷 재송신 모듈(114)을 도시한다. 일 실시예에서, 패킷 재송신 모듈(114)은 패킷 디스패처(packet dispatcher)(202)와 통신가능하게 결합된다. 따라서, 패킷 디스패처(202)내에 위치하는 것으로 도시된 컴포넌트들은 설명하지 않는다. 본 발명의 추가적인 실시예들에서, 테이블(240)과 같이 패킷 재송신 모듈(114)내에 위치하는 것으로 도시된 컴포넌트들은 패킷 재송신 모듈(114)과 분리될 수 있다.
패킷들(204, 206)은 패킷 재송신 모듈(114)내로의 통로를 거쳐서 독립적으로, 그리고 택일적사항으로서 동시적으로 패킷 재송신 모듈(114)내로 입력될 수 있다. 새로운 패킷(204)은 애플리케이션으로부터 온 것이며 이전에 전혀 송신된 적이 없거나, 또는 현재 송신될 수 없는 이유로(즉, 네트워크 백 프레서로 인해, 또는 노드 동작의 모드 변경으로 인해) 재시도 큐에 배치된 패킷이다. 패킷 관리기에 의해 수신된 패킷들의 한가지 예는 패킷 소스(112)로부터 수신된 새로운 패킷(204)이다. 일 실시예에서, 패킷 관리기(110)는 단축된 패킷을 수신한다. 예를 들어, 패킷이 수신되면, 패킷 분석기(미도시)는 수신된 패킷을 분석하여 패킷내의 어떠한 데이터를 추출할지를 판단한다. 이러한 분석에 기초하여, 데이터 추출기(미도시)는 패킷을 송신하는 대상의 종단점과 어느 출력 포트로 패킷을 보내야할지를 판단하기 위해 패킷 디스패처(202)에 의해 사용되는 데이터를 수신된 패킷으로부터 추출한다.
패킷 디스패처(202)로 보내지는 추출된 데이터를 "단축 패킷"으로서 부른다. 즉, 패킷 디스패처(202)로 보내지는 패킷은 패킷 단축기(미도시)에 의해 수신된 완전한 패킷은 아니다. 단축 패킷은 패킷 관리기(110)의 데이터 처리를 단순화시키기 위해 오로지 패킷 재송신 모듈(114)이 수신 종단점을 판단하는데 필요로 하는 정보와, 패킷 버퍼내에 저장된 패킷내에 포함된 나머지 데이터에 대한 포인터만을 포함한다. 패킷 관리기(110)에 의해 수신되는 패킷의 다른 예시는 지금 당장 송신될 수 없거나 또는 수신기에 의해 수신확인되지 않았기 때문에 잠재적인 재송신을 기다리는 패킷을 저장하는데 사용되는 데이터 저장 메모리인 재시도 큐로부터 회수된 재시도 패킷(206)이다. 따라서, 일 실시예에서, 재시도 패킷(206)은 이전에 송신되는 것이 금지되었던 패킷이거나, 및/또는 이미 송신되었으나 자신의 수신확인 타임아웃을 기다리거나 또는 수신 장치로부터 수신확인을 되돌려 받지 않은 패킷이다.
일 실시예에서, 수신된 패킷(204, 206)은 어떤 종단점 또는 컨텍스트가 패킷을 수신하도록 예정되어 있는지를 표시하는 노드 목적지, 패킷과 연계된 시퀀스 번호, 패킷 버퍼내에 저장된 패킷의 나머지들을 가리켜주는 버퍼 포인터 등과 같은 정보를 포함한다. 본 발명의 일 실시예에서의 패킷은 패킷이 수신확인되거나 폐기될 때 까지 패킷 버퍼에 저장된다. 이 실시예에서, 각각의 송신된 패킷은 수신확인이 수신될 때 까지 저장된다.
새로운 패킷(204)은 새로운 패킷 테이블 업데이트 모듈(210)에 의해 평가된다. 이 모듈(210)은 첫번째 통과로 송신될 수 있는 새로운 패킷에 대한 응답으로 컨텍스트 테이블(240)을 업데이트하는 방법과 이 테이블들이 즉시 송신되거나 리큐 잉될 필요가 있는지를 판단한다. 컨텍스트 테이블(240)을 업데이트하는 방법과 이 테이블들이 다시 송신되거나 리큐잉될 필요가 있는지를 판단하기 위해 재시도 패킷(206)은 재시도 패킷 평가기(224)에 의해 평가된다. 새로운 패킷 테이블 업데이트 모듈(210) 및 평가기(224)로부터의 정보는 (송신기 분주 신호(260)와 같은) 패킷 송신 정보와 함께 테이블 업데이트 로직(212) 모듈에 의해 프로세싱되며, 테이블 업데이트 로직(212) 모듈은 어떤 테이블 엔트리들이 업데이트되고 패킷 디스패처(202)에게 어떤 송신할 패킷을 운송해줄지를 판단한다. 테이블 업데이트 로직(212)은 재시도 평가기(224)와 테이블 업데이트 로직(210) 모두로부터의 노드 정보를 디코딩하여 만약 재시도 평가기(224)와 테이블 업데이트 로직(210)이 두 개의 서로 다른 노드들상에서 동작하는 경우에, 테이블(240)내의 양쪽 노드들을 위한 각각의 테이블들이 동시발생적으로 업데이트되도록 한다. 또한 테이블 메카니즘에 따라 RAM 또는 레지스터를 직접 조작하기 위한 로직이 포함되며, 이것은 비제한적인 예시로서 재개시될 필요가 있는 타이머; 증분될 필요가 있는 시퀀스 번호; 또는 단지 직접 기입과 같다.
보다 상세하게, 새로운 패킷(204)이 패킷 재송신 모듈(114)에 의해 수신되면, 새로운 패킷 테이블 업데이터(210)는 패킷을 수신하도록 예정된 종단점과 연계된 송신 모드를 판단한다. 예를 들어, 송신 모드는 "정규", "재시도", "데드", 또는 "복구"일 수 있다. "정규" 모드에서 패킷은 송신미처리 패킷의 갯수의 한도에 도달될 때 까지 즉시 수신확인을 기다리는 것 없이 송신된다. "재시도" 모드에서, 손실 패킷의 재송신은 수신 노드에 의해 수신확인되지 않은 이전에 처음으로 송신 되었던 패킷만으로 제한된다. "복구" 모드에서, (송신되지 않은 패킷이 탐지될 때 까지의) 모든 송신미처리 패킷들은 이전에 수신확인되지 않아 재송신된 패킷과 연계된 수신확인이 수신 노드로부터 수신된 후에 목적지 노드로 보내진다.
만약 송신 모드가 "정규"이면, 패킷 디스패처(202)는 각자의 목적지로 새로운 패킷(204)을 송신한다. 새로운 패킷(204)이 송신되면, 재시도 타이머 및 데드 타이머와 같은 패킷 타이머들이 개시된다. 재시도 타이머는 패킷 재송신 모듈(114)이 목적지 노드로부터의 수신확인을 기다리는 최대 시간 및 언제 패킷의 송신을 재시도하는지를 판단할 때에 사용된다. 데드 타이머는 패킷 재송신 모듈(114)이 수신확인안된 패킷의 재시도를 언제 중단하며 패킷 송신을 위한 에러 복구 프로세싱을 언제 개시할지를 판단할 때에 사용된다. 만약 송신 모드가 "재시도"이면, 패킷 재송신 모듈(114)에 의해 수신된 새로운 패킷(204)은 재시도 큐로 보내진다. 새로운 패킷과 재시도 패킷은 패킷 재송신 모듈(114)에 의해 동시적으로 수신될 수 있음을 유념해야 한다.
패킷 재송신 모듈(114)은 종단점(106, 108)으로의 패킷의 재송신을 관리한다. 패킷 재송신 모듈(114)은 패킷이 송신된 때부터 수신확인이 예상되는 때 까지의 지속기간을 모니터링한다. 패킷 재송신 모듈(114)은, 언제 패킷의 송신을 재시도할지와, 재송신이 목적지로의 다른 포트 또는 경로를 이용하여야 하는지, 또는 패킷의 재송신이 종료되어야 하는지를 판단한다. 패킷 재송신 모듈(114)은 또한 패킷이 자신의 목적지 노드에 의해 규정된 시간 내에 그리고 규정된 재송신 시도 횟수 이후에 수신확인안된 것으로 판단함으로써 재송신이 성공했는지의 여부를 판단 한다.
패킷 재송신 모듈(114)은 송신된 패킷에 대한 수신확인이 수신되었는지 여부를 판단하기 위해 재시도 큐로부터 재시도 패킷을 모니터링한다. 만약 임의의 노드에 대한 재시도 큐로부터의 패킷이 재시도 타이머를 기초로 타임아웃된 것으로 재송신 모듈이 판단한 경우(예컨대, 패킷에 대한 수신확인이 주어진 시간 간격내에서 수신되지 않은 경우), 패킷 재송신 모듈(114)은 "재시도" 상태로 이동하고, 패킷 디스패처(202)는 패킷을 재시도 큐내에 보존한다. 하지만, 패킷과 연계된 데드 타이머가 만료된 것으로 패킷 재송신 모듈(114)이 판단하는 경우, 패킷이 속한 노드는 "데드" 상태로 이동한다. 패킷 디스패처(202)는 이 상태 정보를 이용하여 이 패킷들의 처리를 판단한다.
상술한 바와 같이, 패킷 재송신 모듈(114)은 언제 패킷을 재송신할지를 판단하기 위하여 분석되고 업데이트된 테이블 세트(240)에 결합된다. 예를 들어, 도 2는 "다음으로 진행"("N2G") 테이블(226), "Mode" 테이블(228), "대안 포트"("AltPort") 테이블(230), "최종 수신확인된 시퀀스 번호"("LastAck") 테이블(232), "재시도 타이머" 테이블(234), "데드 타이머" 테이블(236), "대안 경로 타이머"("AltTimer") 테이블(238), 및 LastSQN 테이블(280)을 도시한다. 이러한 테이블들은 하나의 실시예의 예시로서 나열된 것이며, 본 발명의 추가적인 실시예들은 이와 다른 데이터 유지 테이블을 활용할 수 있음을 유념해야 한다.
N2G 테이블(226)은 각각의 활성 데이터 스트림에 대한 특정 목적지에 송신되는 다음 패킷의 시퀀스 번호를 포함한다. 예를 들어, 특정 데이터 스트림에 대한 시퀀스 번호 7이 노드 N에 방금 보내진 경우, N2G 테이블(226)은 이 데이터 스트림에 대한 엔트리 8을 포함한다. 일 실시예에서, N2G 테이블(226)은 노드 번호로 색인표시되며, 이것은 레지스터 어레이를 통해 구현된다.
일 실시예에서, Mode 테이블(228)은 노드 번호로 색인표시되며, 이것은 각각의 색인표시된 노드의 모드를 포함한다. 하나의 예시에서, Mode 테이블(228)은 특정 노드에 대한 네 개의 서로 다른 모드들, 즉 정규, 재시도, 복구, 및 데드 모드들을 참조표시해둔다. 재시도 모드는 노드에 대한 특정 패킷과 연계된 재시도 타이머가 만료되었음을 표시한다. N2G 번호는 이전에 보내진 패킷을 다시보내기 위해 복귀된다. 이 모드 동안에서는, 오로지 N2G 패킷만이 노드에 송신되고 다른 패킷들은 이 노드에 송신되지 않는다. 재시도 모드는 또한 패킷이 대안 포트를 통해 재송신될 수 있도록 해준다. 추가적인 노드 색인표시된 타이머의 이용을 통해, 서로 다른 패킷을 동일한 시도 포트에 재송신할지의 여부에 관하여 심도 있는 결정을 내릴 수 있다. 데드 모드는 노드상에서 데드 타이머가 만료되었음을 표시한다. 데드 모드 동안에서, 패킷 재송신 모듈은, 링크의 다른 쪽끝이 더이상 기능을 하지 않으며 추가적인 송신은 시도되지 않는 것으로 가정한다. 복구 모드는 패킷이 재송신된 노드로부터 Ack가 수신되었음을 표시한다. 나머지 패킷들은 패킷 재송신 모듈(114)이 이전에 송신되지 않았던 패킷을 확인할 때 까지 순서를 갖고 재송신될 수 있다. 정규 모드는 패킷이 차례가 되면 이 패킷이 노드에 송신되도록 해준다.
일 실시예에서 AltPort 테이블(230)은 또한 노드 번호로 색인표시되며, 이것은 패킷 재경로 솔루션이 데이터 통신 에러를 극복하는 것을 시도할 필요가 있음을 표시한다. 예를 들어, 아주 많은 재송신 시도이후에도 수신확인이 수신되지 않으면, AltPort 테이블(230)은 새로운 경로 솔루션이 사용될 필요가 있음을 패킷 재송신 모듈(114)에게 표시할 수 있다.
일 실시예에서 LastSqn 테이블(280)은 또한 노드 번호로 색인표시되며, 이것은 목적지 종단점을 향하는 패킷에 할당된 최종 시퀀스 번호를 표시한다. 패킷이 처음으로 수신되고 이와 달리 지속될 때에 최종 시퀀스 번호 엔트리가 LastSqn 테이블(280)내로 생성된다. 일 실시예에서 LastAck 테이블(232)은 또한 노드 번호로 색인표시되고, 이것은 목적지 노드에 의해 수신확인되었던 최종 패킷의 시퀀스 번호를 표시한다. 수신확인 패킷이 수신 로직(250)에 의해 수신될 때 이 테이블은 패킷 재송신 모듈(114)에 의해 업데이트된다. 만약 수신된 수신확인의 시퀀스 번호가 특정 종단점에 대한 LastAck 테이블(232)내에 현재 저장된 값보다 크면서, 이 종단점에 대한 최종 패킷에 가장 마지막에 할당되었던 시퀀스 번호[(LastSqn(280)]의 값보다 작거나 동일한 경우, 수신된 수신확인의 시퀀스 번호가 LastSqn 시퀀스 번호 테이블(232)에 기록될 수 있다. 그렇지 않은 경우, 수신된 수신확인 패킷은 폐기된다. 이와 같이 수신된 수신확인 메세지를 폐기하는 것은 불량한 시퀀스 번호가 LastSqn 시퀀스 번호 테이블(232)내로 기록되지 않도록 보장해주며, 이것은 패킷을 재송신할 때를 패킷 재송신 모듈(114)가 판단할 때에 사용되는 재시도 상태 머신의 적절한 동작에 영향을 미칠 것이다. 재시도 상태 머신은 아래에서 보다 자세하게 설명된다.
재시도 타이머 테이블(234)과 데드 타이머 테이블(236)은 유사하게 구성되 며, 이들은 일 실시예에서 버퍼 포인터로 색인표시된다. 몇몇 실시예들은 버퍼 포인터마다 2 비트 타이머를 이용하며, 타이머가 업데이트되는 빈도수를 구축하도록 "SYNC" 펄스가 제공된다. 일 실시예에서, 재시도 타이머 테이블(234)과 데드 타이머 테이블(236)은 상술한 재시도 타이머 및 데드 타이머의 상태를 반영한다. 패킷 재송신 모듈(114)은 재시도 타이머 테이블(234)과 데드 타이머 테이블(236)을 분석하여 패킷의 송신을 언제 재시도할 것인지 또는 패킷의 재송신을 언제 중단할 것인지를 판단하고 에러 복구 동작을 수행할 수 있다. 버퍼 포인터가 아닌 노드 번호로 색인표시되는 AltTimer 테이블(238)은 대안 경로 타이머의 상태를 반영하며, 이것은 패킷 재송신 모듈(114)이 패킷을 재송신하기 위한 대안 경로를 언제 사용할지를 판단하는데 사용된다.
재시도 패킷(206)이 패킷 관리기(114)에 의해 수신되면, 재시도 패킷 평가기(224)는 재시도 패킷(206)과 연계된 정보를 재시도 패킷 테이블 업데이터(212)에 전달하기 위해 재시도 패킷(206)을 분석한다. 재시도 패킷 평가기(224)는 재시도 패킷(206)을 재송신할 것인지와 노드가 어떤 상태로 이동하는지를 판단하기 위해 유입되는 재시도 패킷(206)과 이에 연계된 노드와 관련된 상술한 테이블 세트(240)와 재시도 상태 머신(242)(아래에서 보다 상세히 설명됨)을 분석한다.
예를 들어, 테이블 세트(240)는 타이머 상태들, 각각의 노드와 연계된 현재의 송신 모드들, 각각의 노드와 데이터 스트림으로부터의 최종 수신확인된 송신 패킷 등의 기록을 유지한다. 만약 패킷에 대하여 재시도 타이머가 초기화되었으며, 주어진 응답 문턱값이 초과된 것으로 재시도 패킷 평가기(224)가 판단한 경우, 재 시도 평가기는 해당 노드와 연계된 통신 모드를 "정규"에서 "재시도"로 변경할 것을 재시도 패킷 테이블 업데이트 모듈(212)에 시그널링할 수 있다. 이것은 임의의 새로운 패킷들이 해당 노드에 송신되는 것을 방지해준다.
재시도 모드 동안, 패킷 재송신 모듈(114)이 수신확인을 놓친 최초의 패킷에 대응하는 송신용 패킷을 재시도 큐로부터 수신하고, 재시도 타이머가 타임아웃된 경우, 패킷 송신 모듈(202)은 해당 패킷을 다시 보내도록 시그널링되고, 패킷 타이머(예컨대, 재시도 타이머)(234)는 재개시된다. 이 때 어떠한 다른 패킷들도 해당 노드에 송신되지 않는다. 하지만, 하나 이상의 노드들이 "재시도" 상태에 놓여있을지라도 패킷들은 유사한 "재시도" 상태에 있지 않는 다른 노드들에 여전히 송신될 수 있다. 재시도 시간이 다시 만료된 후 해당 노드가 후속하여 재시도 큐로부터 수신되면, 해당 패킷 및 오로지 해당 패킷만이 해당 노드에 재송신된다.
만일 이러한 싸이클이 주어진 간격보다 오랫동안 계속되면(예컨대, 대안 경로 타이머가 주어진 문턱값을 초과하고, 대안 통신 경로를 사용하여 해당 특정 노드와 데이터를 전달해야함을 표시하는 경우), 택일적 경로 변경을 갖는 재송신이 패킷 송신 모듈(202)에 보내진다. 예를 들어, 재시도 패킷 평가기(224)는, 이 데이터 스트림에 대해서 AltPort 테이블(230)내의 엔트리에 의해 규정된 통로에 대해 경로 변경이 필요함을 AltTimer 테이블(238)로부터 판단한다. 오로지 해당 패킷에 대한 해당 노드를 위해 패킷 재송신과 패킷 타이머(234)의 재개시가 해당 데이터 스트림에 대한 데드 타이머가 문턱값을 초과할 때 까지 계속된다. 데드 타이머가 문턱값을 초과하면, 패킷 재송신 모듈(114)은 해당 노드의 모드를 "데드"로 변경하 고 패킷 재송신 모듈(114)은 패킷 송신 모듈(214)이 해당 네트워크를 위한 복구 프로토콜(들)을 수행하도록 시그널링한다. 예를 들어, 해당 노드로의 모든 패킷들은 일반적으로 재시도 큐에서 삭제된다.
하지만, 만약 재시도 기간 동안에, 해당 노드에 대한 임의의 송신미처리 패킷에 대응하는 수신확인이 수신되면, 해당 노드의 모드는 "재시도"에서 "복구"로 변경된다. 패킷 모니터(114)는 N2G 시퀀스 번호 패킷에 대응하는 패킷을 위해 유입되는 재시도 패킷들(206)을 모니터링한다. 일단 상기 패킷이 탐지되면, 패킷 모니터(220)는 해당 패킷을 다시보내고 대응하는 재시도 타이머를 다시시작하도록 패킷 송신 모듈(202)에게 시그널링한다.
패킷 모니터(220)가 재시도 큐로부터 수신된 모든 패킷들을 모니터링하고 패킷(들)이 재송신되어야 하는지를 판단하는 동안 "복구" 모드는 계속된다. 복구 모드 동안에, 송신되지 않았던 패킷(204, 206)을 패킷 재송신 모듈(114)이 탐지할 때 까지, 재시도 타이머(234)는 무시된다. 이 실시예에서, 이것은 패킷에 연계된 재시도 타이머가 초기화되지 않은 것을 통지함으로써 판단내려진다. 이것은 예컨대, 패킷들이 보내지는 노드가 "재시도" 모드에 있는 동안에 새로운 패킷들이 도착할 때 일어나며, 해당 패킷은 재시도 큐에 직접 보내진다. 새로운 패킷들은 "재시도" 모드에서 송신되지 않기 때문에, 해당 패킷을 위한 타이머는 설정되지 않았다. 송신되지 않았던 패킷을 만나면, 노드는 자신의 "정규" 모드로 되돌아오고, 송신기는 새로운 패킷들을 보낸다.
알 수 있는 바와 같이, 본 발명의 바람직한 실시예들의 패킷 재송신 모 듈(114)은 오로지 "재시도" 모드에 있는 노드에 대한 하나의 패킷을 송신만하며, 종단점이 다시 동작하는지 및 언제 해당 노드의 모드가 통신이 재구축되었음을 반영하도록 변경되어야 하는지를 테스트하는데 해당 패킷에 대한 수신확인이 사용된다. 상기 하나의 패킷에 대한 수신확인이 수신되면, 오로지 그 때에서만 송신미처리 패킷의 보다 빠른 재송신이 시도된다. 문제의 노드로의 송신미처리 패킷의 재송신은 다른 노드로의 패킷 송신과 혼합되는데, 아마도 어려움을 경험하지는 않을 것이거나 또는 아마도 병렬적으로 복구할 것이다. 종래 기술에 비해 본 알고리즘의 장점은, 타임아웃이 탐지될 때에 수신확인안된 패킷들로 네트워크를 범람시키지 않는 다는 것이며, 본 알고리즘은 패킷들이 수신되었던 원래 순서로 다시 보내지도록 보장해준다.
패킷을 언제 재송신할지를 판단하기 위한 상태 머신도
도 3은 언제 패킷을 재송신할지를 판단하기 위하여 패킷 재송신 모듈(114)에 의해 사용되는 예시적인 상태 머신(300)을 나타내는 도면이다. 만약 관련된 노드의 모드가 "정규"이면, 아래에 뒤따르는 판단들이 행해진다. 만약 재시도 타이머가 개시되었지만(단계 302), 재시도 타이머 또는 데드 타이머는 만료되지 않은 경우, 수행할 일은 없으며, 현재의 패킷은 송신되지 않는다(단계 304). 타이머가 개시되거나 개시되지 않았는지 여부를 판단하는 것은 해당 버퍼 포인터의 타이머 값(상태)이 유휴 상태에 있지 않음을 조사함으로써 달성된다. 만약, 데드 타이머가 만료되면(단계 306), 모드는 "데드"로 변경되고, N2G는 LASTACK+1 값으로 남는다(단계 308)(이 노드는 이러한 상태에 놓여지면 송신되는 임의의 패킷을 갖지 않기 때문 에, 이것은 단지 형식적인 것임에 불과하다).
만약 데드 타이머가 만료되지 않았지만, 재시도 타이머가 만료된 경우(단계 310), 모드는 "재시도"로 설정되고, N2G는 마찬가지로 LASTACK+1로 설정된다(단계 312). 이것은 수신확인 되지 않았으며, 재송신되는 패킷인 최초의 패킷을 나타낸다. 이것은 자체적으로 재송신을 야기시키지는 않으며, 노드가 단지 재시도 상태에 놓여있음을 유념하라. 만약 이 노드상의 이 패킷에 대하여 재시도 타이머가 개시되지 않은 경우, 패킷의 SQN이 N2G와 동일한지를 알아보기 위해(즉, 패킷이 차례가 왔는지를 알아보기 위해) 패킷의 SQN이 조사된다(단계 314). 만약 패킷의 SQN 차례가 왔으면, 이 패킷은 송신을 위해 인에이블되고, N2G 값은 증분된다(단계 316). 이러한 동작은 이전에 송신이 연기되었던 패킷이 발견되었음을 표시한다. 이 패킷이 StartRetryTimer와 StartDeadTimer 신호들을 통해 송신될 때에 재시도 타이머 및 데드 타이머가 개시된다.
만약 패킷의 SQN 차례가 아닌 경우, 이 엔트리는 리큐잉되고 어떠한 동작도 이 패킷에 대해서 취해지지 않는다(단계 304). 만약 이 노드의 모드가 "데드"이면(단계 318), 엔트리는 리큐잉되고 이 노드에 대해 아무것도 추가적으로 행해지지 않는다. 만약 이 노드의 모드가 "재시도"이면(단계 320), 아래에 뒤따르는 판단들이 행해진다. 만약 LastAck SQN이 이 노드의 N2G SQN 보다 크거나 또는 이와 동일하면(단계 322), 이것은 이 노드에 대해 현재 재송신되는 시퀀스 번호의 값보다 큰 수신확인이 이 노드에 대해서 관찰되었음을 나타낸다; 즉, 링크의 다른쪽 끝으로부터 유효한 응답이였다. 만약 그런 경우, N2G를 다음 순서의 시퀀스 번 호(LastAck+1)로 재설정하고 모드를 "복구"로 업데이트한다(단계 324). 만약 LastAck SQN가 이 노드에 대한 N2G SQN보다 크지 않거나 또는 이와 동일하면, 타이머들이 조사된다. 만약 이 노드에 대한 데드 타이머가 만료되었으면(단계 326), 모드를 "데드"로 업데이트한다(단계 328). 만약 데드 타이머가 만료되지 않았으며(단계 330), 재시도 타이머도 만료되지 않은 경우(단계 332), 어떠한 동작도 행해지지 않으며, 패킷은 리큐잉된다(단계 334).
만약 재시도 타이머가 만료되었으면(단계 336), 이것은 이 패킷이 재송신될 필요가 있으며, 모드는 변경되지 않고 유지됨을 나타낸다. 하지만, 재시도 타이머는 StartRetryTimer를 어서팅(assert)함으로써 재개시된다. 이 경우 AltPort 타이머(338)에 대한 택일적 조사가 행해질 수 있다. 만약 처음으로 패킷이 재송신되는 경우라면, AltPort 타이머는 동작하지 않으며, 이것은 또한 StartAltPTimer 신호를 통해 개시된다. 만약 패킷이 재송신된 것이 처음이 아니였으며, AltPort 타이머가 또한 만료된 것으로 관측되면, AltPort_Next(342)가 어서팅되어 송신 로직이 자신의 경로 테이블(340)을 업데이트할 필요가 있음을 표시한다.
정규 상태에서 재시도 상태로의 천이를 행할 때에, 재시도 타이머는 재개시되지 않았음을 유념해야 한다. 이것은 재송신이 처음으로 스케쥴링되고 재시도 상태 머신은 이 패킷을 다시 프로세싱하는 것을 보장해준다. 재시도되고 있는 패킷의 시퀀스 번호가 N2G SQN일 때, ATTN 신호가 어서팅된다. 이 모드 동안에, 재시도 타이머가 만료되는 때마다 오직 이 패킷만이 송신됨을 유념해라.
도 4는 도 3의 상태도의 연장이다. 만약 이 노드의 모드가 "복구"이면(단계 402), 아래의 뒤따르는 판단들이 행해진다. 만약 이 노드에 대하여 데드 타이머가 만료되었으면(단계 404), 모드를 "데드"로 업데이트한다(단계 406). 패킷의 시퀀스 번호가 N2G와 동일하지 않으면(단계 408), 즉 패킷이 다음 차례가 아닌 경우, 패킷은 리큐잉되고 재송신이 인에이블되지 않는다; 그런 후 시퀀스 번호가 N2G보다 작은지를 알아보기 위해 조사된다(단계 410). 즉, 모든 다른 송신미처리 패킷들이 재송신되기 전에 이 패킷이 두번째로 관찰되었는가? 만일 그렇다면, 재시도 타이머가 다시 만료되었는지 알아보기 위해 조사된다(단계 412). 만약 그런 경우, N2G_next가 설정되고 모드는 "재시도"로 다시 설정된다(단계 414). 그렇지 않은 경우, 수신 로직으로부터 LastAck 시퀀스 번호의 값이 N2G보다 큰지를 알아보기 위해 조사된다(단계 416). 만약 그런 경우, N2G_next가 이 값 + 1 로 설정되며, 복구 모드가 이 시퀀스 번호에 대해 계속된다(단계 418). 이것은 마지막에 이 노드가 평가되었기 때문에 추가적인 ACK 패킷이 수신됨을 나타낸다. 정확한 패킷을 기다리는 동안 N2G의 값을 업데이트하는 것은 차례 밖이기 때문에 최종적으로 거절된 패킷이 다른 종단점에 의해 송신되지 않도록 방지하는 것을 도와준다. 만약 그렇지 않은 경우에는, 어떠한 변경도 없다(단계 426). 재시도 타임아웃 조사는 택일적임을 유념하라. 본 회로의 다른 실시예는 이것을 무시하고 단지 상태 머신의 "No" 분기를 따라 계속진행한다.
하지만, 만약 시퀀스 번호가 N2G와 동일하면, 재시도 타이머가 이미 개시되었는지를 알아보기 위해 재시도 타이머의 추가적인 조사가 행해진다(단계 420). 만약 재시도 타이머가 개시되지 않았다면, 이것은 현재의 패킷이 이전에 송신되지 않 았음을 나타낸다. 이것은 또한 노드가 이전에 수신확인되지 않은 모든 패킷들을 재송신하였으며, "정규" 모드로 되돌아갈 필요가 있음을 의미해준다(단계 422). 만약 그렇지 않은 경우라면, 재시도 타이머가 다시 개시될 필요가 있음을 나타내는 것 뿐만이 아니라, 시퀀스 번호가 N2G 값과 일치할 때마다 ATTN을 어서팅함으로써 노드는 복구 모드로 유지된다(단계 424). 정규 모드로의 이동시, 데드 타이머가 개시된다(이 패킷이 처음 장소에서 송신되지 않았기 때문에, 패킷의 데드 타이머가 아직 개시되지 않는다. 데드 타이머는 재송신이 발생할 때 재개시되지 않으며; 오직 패킷이 처음으로 송신될 때에만 재개시된다). 도 2에 따르면, 이러한 계산의 결과치들, 즉 N2G, Mode, AltPort에 대한 다음 상태 천이를 표시하는 N2G_Next, Mode_Next, AltPort_Next, 및 타이머 개시 펄스, StartAltTimer, StartRetryTimer, StartDeadTimer는 재시도 패킷 테이블 업데이트 모듈(212)에 제공된다.
예시적인 정보 프로세싱 시스템
도 5는 도 1의 정보 프로세싱 시스템(104)의 보다 자세한 모습을 보여주는 블럭도이다. 정보 프로세싱 시스템(104)은 본 발명의 예시적인 실시예를 구현하도록 적절히 구성된 프로세싱 시스템에 기초한다. 임의의 적절히 구성된 프로세싱 시스템, 예컨대 개인 컴퓨터, 워크스테이션 등이 마찬가지로 본 발명의 실시예들에 의한 정보 프로세싱 시스템(104)으로서 사용될 수 있다.
정보 프로세싱 시스템(104)은 컴퓨터(502)를 포함한다. 컴퓨터(502)는 메인 메모리(506)(예컨대, 휘발성 메모리), 대량 저장소 인터페이스(508), 단말 인터페이스(510), 및 네트워크 아답터 하드웨어(512)와 통신가능하게 연결된 프로세 서(504)를 갖는다. 시스템 버스(514)는 이러한 시스템 컴포넌트들을 상호연결시켜준다. 대량 저장소 인터페이스(508)는 데이터 저장 장치(516)와 같은 대량 저장 장치를 정보 프로세싱 시스템(104)에 연결시키는데 사용된다. 한가지 특정 유형의 데이터 저장 장치는 CD 드라이브와 같은 컴퓨터 판독가능 매체이며, 이것은 CD(518) 또는 DVD 또는 플로피 디스켓(미도시)으로부터 데이터를 판독하고 여기에 데이터를 저장하는데 사용될 수 있다. 다른 유형의 데이터 저장 장치는 예컨대 고정 디스켓 유형 파일 시스템 동작을 지원하도록 구성된 데이터 저장 장치이다.
일 실시예에서, 메인 메모리(506)는 패킷 관리기(110)를 포함하며, 상술한 바와 같이 패킷 관리기는 패킷 재송신 모듈(114)을 포함한다. 일 실시예에서 패킷 재송신 모듈(114)은 패킷 디스패처(202)내에 위치할 수 있거나 또는 패킷 디스패처(202)로부터 분리될 수 있다. 도 2에서 도시된 패킷 재송신 모듈(114)에 관하여 도시되고 설명된 컴포넌트들은 명료함을 위해 도 5에서는 반복되지 않는다. 일 실시예에서, 프로그램이 메인 메모리(506)와 데이터 저장 장치(516)와 같은 다수의 작은 저장 엔티티들에 액세스하는 것 대신에, 마치 거대한 단일 저장 엔티티(본 명세서에서는 이를 컴퓨터 시스템 메모리로 부른다)에 액세스한 것처럼 행동할 수 있도록, 정보 프로세싱 시스템(104)은 통상적인 가상 어드레싱 메카니즘을 활용한다. 용어 "컴퓨터 시스템 메모리"는 본 명세서에서 정보 프로세싱 시스템(104)의 전체적인 가상 메모리를 통칭하는데 사용된다.
컴퓨터(502)에서 오직 하나의 CPU(504)가 도시되고 있지만, 다수의 CPU를 갖춘 컴퓨터 시스템이 동일한 효과를 갖도록 사용될 수 있다. 본 발명의 실시예들은 CPU(504)로부터의 오프 로드 프로세싱하는데 사용되는 개별적인 완전 프로그램화된 마이크로프로세서들을 각각 포함하는 인터페이스들을 더 포함한다. 단말 인터페이스(510)는 컴퓨터(502)에 대한 사용자 인터페이스를 제공하기 위해 하나 이상의 단말기(520)를 컴퓨터(502)에 직접 연결시키는데 사용된다. 비지능적이거나 또는 완전히 프로그램화가능한 워크스테이션일 수 있는 이러한 단말기(520)는 시스템 관리자와 사용자가 정보 프로세싱 시스템(104)과 통신할 수 있게 해주는데 사용된다. 단말기(520)는 또한 컴퓨터(502)에 연결되어 있고, 비디오 아답터 및 키보드, 포인팅 장치 등을 위한 인터페이스를 포함하는 단말기 I/F(510)내에 포함된 단말기 인터페이스 하드웨어에 의해 제어되는 사용자 인터페이스와 주변 장치를 포함할 수 있다.
실시예에 따른 운영 시스템(미도시)은 메인 메모리(506)내에 포함될 수 있으며, 이것은 Linux, UNIX, Windows XP, and Windows 서버 운영 시스템과 같은 적절한 멀티태스킹 운영 시스템이다. 본 발명의 실시예들은 임의의 기타 적절한 운영 시스템, 또는 커널, 또는 기타 적절한 제어 소프트웨어를 이용할 수 있다. 본 발명의 몇몇 실시예들은 운영 시스템(미도시)의 컴포넌트들의 명령어가 클라이언트내에 위치한 임의의 프로세서상에서 실행될 수 있게 해주는 객체 지향 프레임워크 메카니즘과 같은 아키텍처를 활용한다. 네트워크 아답터 하드웨어(512)는 네트워크(102)에 대한 인터페이스를 제공하는데 사용된다. 본 발명의 실시예들은 오늘날의 아날로그 및/또는 디지털 기술들을 포함하는 임의의 데이터 통신 접속을 통해 또는 미래의 네트워킹 메카니즘을 통해 동작하도록 구성될 수 있다.
비록 본 발명의 예시적인 실시예들이 완전히 기능적인 컴퓨터 시스템을 통해서 설명되었지만, 본 발명의 당업자라면 이 실시예들이 예컨대 플로피 디스켓, CD-롬(518), 또는 기타 형태의 기록가능 매체를 통해, 또는 임의의 유형의 전자적 운송 메카니즘을 통해 프로그램 제품으로서 배포될 수 있음을 이해할 것이다.
패킷을 재송신하기 위한 예시적인 프로세스
도 6은 재송신된 패킷을 프로세싱하기 위한 예시적인 프로세스를 나타내는 동작 흐름도이다. 이 실시예에서, 재시도 패킷은 패킷 디스패처(202)내에 위치한 재시도 큐로부터 발생한다. 패킷들은 불확정적인 빈도수로 임의의 노드에 대한 임의의 순서로 발생하며, 상술한 바와 같이, "이전"은 실제적으로 송신되는 것 없이 리큐잉되었던 패킷까지 나타낼 수 있다. 프로세스는 재시도 패킷 평가기(224)에 대한 엔트리를 가지면서 단계 602에서 시작한다. 패킷은 노드, 시퀀스 번호, 및 BufPtr로 나타난다. 단계 604에서, 재시도 상태 머신(242)의 프로세스가 적용되어 N2G_Next, Mode_Next, AltPort_Next, ATTN, StartRetryTimer, StartAltPTimer, 및 StartDeadTimer 계산에 대한 결과를 산출시킨다. 그런 다음 단계 606에서 ATTN의 값이 검사된다. 만약 값의 결과가 부정이면, 이것은 현재의 후보 패킷이 송신가능하지 않으며 다음의 동작들이 취해짐을 나타낸다.
제일 먼저, 단계 640에서, 테이블 업데이트 로직(212)은 이전의 계산에 따라 테이블(240)의 값을 업데이트할 수 있게 만든다. 단계 650에서, 패킷 디스패처(202)는 패킷(276)을 리큐잉하도록 시그널링된다. 그런 다음 단계 690에서 이 패킷에 대한 프로세스는 종료되며, 다음 패킷에 대하여 다시 시작한다. 하지만, 만약 ATTN 신호가 단계 606에서 긍정이면, 테이블 업데이트 로직(212)은 단계 610에서 송신기가 분주한지 아닌지를 알아보기 위해 송신기의 상태를 검사한다. 만약 송신기가 분주신호(260)를 시그널링하면, 단계 616에서는 아무것도 행해지지 않는다. 단계 692에서 이 패킷에 대한 프로세스는 종료되며, 패킷 디스패처(202)가 어떠한 것을 하도록 시그널링되지 않았기 때문에 아마도 동일한 패킷에 대해 다시 재시작할 것이다.
만약 단계 610에서의 판단의 결과가 송신기가 분주하지 않는 것으로 나오면, 테이블 업데이트 로직(212)은 인에이블되고, 단계 642에서, 이전의 계산에 따라 테이블(240)의 값을 업데이트한다. 단계 660에서, 패킷 디스패처(202)는 패킷(274)을 송신하도록 시그널링된다. 단계 694에서 이 패킷에 대한 프로세스는 종료되며 다음 패킷에 대해 재시작한다.
새롭게 수신된 패킷을 프로세싱하기 위한 예시적인 프로세스
도 7은 노드 id, 할당된 시퀀스 번호, 및 버퍼 포인터에 의해 확인된 새롭게 수신된 패킷(204)을 프로세싱하기 위해 테이블 업데이트 로직(210)에 따른 예시적인 프로세스를 나타내는 동작 흐름도이다. 도 7의 동작 흐름도는 단계 702에서 시작하여 단계 703으로 바로 흐른다. 새로운 패킷이 도착하면, 단계 703에서 새로운 시퀀스 번호가 해당 패킷에 할당되고, 시퀀스 번호 값은 증분된다. 단계 704에서, 테이블 업데이트 로직(210)은, 유입하는 패킷과 연계된 노드의 모드가 정규인지 판단한다. 만약 판단의 결과가 부정이면, 패킷은 송신되지 않을 수 있고, 단계 706에서 테이블 업데이트 로직(210)은 패킷을 리큐잉한다. 단계 730에서 제어 흐름은 종 료된다. 만약 이 판단의 결과가 긍정이면, 단계 708에서, 테이블 업데이트 로직(210)은 해당 노드의 SQN가 N2G SQN와 동일하다는 증거로서 해당 노드에 대한 패킷의 SQN가 N2G와 동일한지를 판단한다. 만약 이 판단의 결과가 부정이면, 해당 패킷은 또한 송신되지 않을 수 있으며 패킷은 리큐잉된다(단계 706).
만약 이 판단의 결과가 긍정이면, 단계 710에서 새로운 패킷의 노드는 재시도 평가기(224)가 동작중에 있는 노드와 비교된다. 만약 이들이 동일한 노드가 아닌 경우, 이것은 새로운 패킷 테이블 업데이트 모듈(210)과 재시도 패킷 테이블 업데이트 로직(212)이 동일한 노드 또는 버퍼 포인터에 대한 테이블들을 변경하는 것을 시도하지 않으며, 이들 모두는 독립적으로 진행할 수 있음을 나타낸다. 단계 712에서, 새로운 패킷이 송신될 수 있으며, 단계 714에서 해당 노드의 N2G값은 N2G+1로 올라간다. 또한, 이 패킷이 송신되는 것이 첫번째이기 때문에, 단계 716에서 RetryTimer와 DeadTimer 모두가 개시된다. 그 후 제어 흐름은 단계 718에서 종료된다.
만약 단계 710에서 새로운 패킷 및 패킷 재시도 평가기(224)가 모두 동일한 노드로부터의 서로 다른 패킷들을 프로세싱하는 경우, 단계 720에서 패킷 재송신 모듈(114)은 재시도(다음 모드) = 정규인지를 판단한다. 만약 이 판단이 부정이면, 즉 재시도 상태 머신(242)이 모드가 ("다음 모드" 신호로부터의 증거로서) 정규 모드로부터 변경되는 것으로 판단한 경우, 새로운 패킷은 송신되지 않아야 하며 단계 706에서 리큐잉된다. 이 패킷이 재시도 큐로부터 다시 돌아오면 재시도 상태 머신은 이 패킷을 순차적으로 다룬다. 하지만, 만약 재시도 상태 머신(242)이 "정규" 모드를 벗어나 변경하는 것을 시도하지 않는 다면, 단계 726에서 이 패킷은 송신될 수 있지만, 단계 722에서 새로운 패킷 테이블 업데이트 모듈(210)에 대한 해당 노드의 N2G 테이블 엔트리의 제어를 낳는다. 단계 724에서 이 새로운 패킷의 버퍼 포인터에 대해 재시도 타이머 및 데드 타이머가 또한 개시된다. 그런 후 단계 728에서 제어 흐름은 종료한다.
예시적인 타이머 로직 흐름
도 8은 본 발명의 일 실시예에 따른 예시적인 타이머 로직 흐름을 나타내는 동작 흐름도이다. 도 8의 동작 흐름도는 단계 802에서 시작하며 단계 804로 바로 흐른다. 단계 804에서 현재의 타이머는 클리어된다. 단계 806에서 타이머는 유휴상태에 있는다. 단계 808에서 패킷 관리기(110)는 타이머가 개시될 필요가 있는지를 판단한다. 만약 이 판단의 결과가 부정이면, 타이머는 유휴상태로 남는다. 만약 이 판단의 결과가 긍정이면, 단계 810에서 타이머는 개시된다. 단계 812에서 패킷 관리기(110)는 타이머가 동기화되었는지를 판단한다. 만약 이 판단의 결과가 부정이면, 제어는 단계 810으로 되돌아간다. 만약 이 판단의 결과가 긍정이면, 타이머는 단계 814에서 구동을 계속한다. 단계 816에서 패킷 관리기(110)는 타이머가 동기화되었는지를 판단한다. 만약 이 판단의 결과가 부정이면, 단계 814에서 타이머는 구동을 계속한다. 만약 이 판단의 결과가 긍정이면, 단계 818에서 타이머는 동기화되고 타임아웃된다.
노드가 네 개의 노드들을 거쳐 이동할 때에 노드에 송신되는 패킷들의 예
도 9는 노드가 상술한 네 개의 모드들을 거쳐 이동할 때에 노드에 송신되는 일련의 패킷들의 하이 레벨 예를 도시한다. 제일 처음으로, 시퀀스 번호 1,2,3,4,5,6,7,8,9,10를 갖는 패킷들이 보내진다(901). 노드는 정규이며, 따라서 이러한 패킷들은 시퀀스 번호 1,2,3,4,5,6,7를 연속으로 거쳐 발송된다(902). (이 예시에서) 시퀀스 번호 7이 송신된 후 재시도 상태 머신(242)은 SQN 1가 수신확인되지 않았으며 재시도 타이머상에서 만료되었음을 (독립적으로) 탐지한다. 재시도 상태 머신(242)은 노드의 상태를 "재시도"로 이동시키고, 오로지 SQN #1 만이 재송신될 것을 나타내고, 그 후 TX 포트에 의해 실행된다(902). 재시도 상태 머신(242)은 이어서 해당 노드에 대하여 제2 타임아웃을 탐지하고 SQN #1가 다시 송신되는 것을 나타낸다. 궁극적으로, 이 후 시점에서, #3에 대한 ACK가 탐지되어 이 노드에 대한 LASTACK SQN은 3으로 업데이트된다. 이 노드에 대한 임의의 패킷이 재시도 평가기(224)에 의해 관찰되면, 이 노드의 상태는 "복구"로 변경되고 N2G SQN는 "4"로 업데이트된다.
이 노드에 대한 SQN 4,5,6,...가 재시도 평가기(224)에 의해 관찰되면, 이 패킷이 재송신되는 것을 나타내며, 4,5,6,7,8,9,10가 TX 포트(902)에서 이러한 순서로 송신되도록 하는 순서로 이들을 실행시킨다. 패킷 #8이 송신되면, 패킷 8은 이전에 송신되지 않았던 패킷을 나타내기 때문에 재시도 상태 머신(242)은 해당 노드의 모드를 "정규"로 이동시킨다.
비제한적 예시들
본 발명분야의 당업자에게 자명하듯이 본 발명은 하드웨어 또는 소프트웨어 에서 실시될 수 있거나, 또는 하드웨어와 소프트웨어의 조합으로 실시될 수 있다. 하지만 일 실시예에서 본 발명은 소프트웨어로 구현된다. 바람직한 실시예와 관련하여 개시된 본 발명 원리에 따른 시스템 또는 방법은 개시되거나 청구된 임의의 기능 또는 단계의 수행을 결합하는 설명되거나 청구된 각각의 기능 또는 단계 또는 하나 이상의 엘리먼트 또는 수단을 수행하기 위한 개별적인 엘리먼트 또는 수단을 갖는 단일 컴퓨터 시스템으로 실시될 수 있거나, 또는 본 발명의 당업자에게 자명한 임의의 적절한 수단에 의해 상호결합된 분산형 컴퓨터 시스템으로 구성될 수 있다.
바람직한 실시예와 관련하여 개시된 발명원리에 따르면, 본 발명 및 발명원리는 본 발명분야의 당업자에게 자명한 바와 같이, 임의의 특정한 유형의 컴퓨터 시스템으로 한정되지는 않으며, 설명된 기능과 설명된 방법 단계를 수행하도록 구성된 임의의 범용 컴퓨터와 함께 사용될 수 있다. 상술한 바와 같이, 이와 같은 컴퓨터 동작은 본 발명의 당업자에게 자명한 바와 같이, 컴퓨터의 동작 또는 제어에서 사용되는 매체상에 포함된 컴퓨터 프로그램에 따를 수 있다. 컴퓨터 프로그램 제품을 보유하거나 포함하는데 사용될 수 있는 컴퓨터 매체는, 본 발명분야의 당업자에게 자명한 바와 같이, 엠베디드 메모리와 같은 컴퓨터 장비일 수 있거나 또는 디스크와 같은 전송 매체일 수 있다.
본 발명분야의 당업자에게 자명한 바와 같이, 본 발명은 임의의 특정한 컴퓨터 프로그램 또는 로직 또는 언어 또는 명령어에 한정되지는 않으며, 임의의 적절한 프로그램, 로직 또는 언어, 또는 명령어로 실행될 수 있다. 개시된 본 발명의 원리를 제한시키는 것없이, 임의의 컴퓨터 시스템은 그 중에서도 특히, 컴퓨터로 하여금 데이터, 명령어, 메세지 또는 메세지 패킷, 또는 컴퓨터 판독가능 매체로부터의 기타 컴퓨터 판독가능 정보를 판독할 수 있게 해주는 적어도 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 ROM, 플래시 메모리, 플로피 디스크, 디스크 드라이브 메모리, CD-ROM, 및 기타 영구 저장소와 같은 비휘발성 메모리를 포함할 수 있다. 추가적으로, 컴퓨터 판독가능 매체는 예컨대 RAM, 버퍼, 캐시 메모리, 및 네트워크 회로와 같은 휘발성 저장소를 포함할 수 있다.
또한, 컴퓨터 판독가능 매체는, 컴퓨터로 하여금 컴퓨터 판독가능 정보를 판독할 수 있도록 해주는 유선 네트워크 또는 무선 네트워크를 포함하여, 네트워크 링크 및/또는 네트워크 인터페이스와 같은 임시 상태 매체내에 컴퓨터 판독가능 정보를 포함시킬 수 있다.

Claims (10)

  1. 네트워크를 통해 적어도 하나의 네트워크 종단점에 의한 수신이 예정된 적어도 하나의 패킷을 송신하기 위한 정보 프로세싱 시스템을 동작시키는 방법에 있어서,
    적어도 하나의 네트워크 종단점으로 송신될 복수의 패킷들을 큐(queue)로부터 순차적으로 프로세싱하는 단계;
    상기 복수의 패킷들 중 제1 패킷을 상기 적어도 하나의 네트워크 종단점에 송신하는 단계;
    상기 제1 패킷의 송신에 후속하여, 상기 복수의 패킷들 중 적어도 하나의 추가 패킷을 상기 적어도 하나의 네트워크 종단점에 송신하는 단계;
    상기 적어도 하나의 추가 패킷의 송신에 후속하여, 상기 적어도 하나의 네트워크 종단점에 송신된 상기 제1 패킷이 수신확인되지 않은 것으로 판단하는 단계;
    상기 제1 패킷이 수신확인되지 않은 것으로 판단한 것에 응답하여, 상기 제1 패킷과 연계된 제1 재시도 패킷을 상기 적어도 하나의 네트워크 종단점에 송신하는 단계;
    상기 제1 패킷이 수신확인되지 않은 것으로 판단한 것에 응답하여, 상기 적어도 하나의 네트워크 종단점에 의한 수신확인이 없는 것으로 인한 상기 적어도 하나의 추가 패킷의 재송신을, 중지하는 단계;
    상기 제1 패킷이 수신확인되지 않은 것으로 판단한 것에 응답하여, 상기 적어도 하나의 네트워크 종단점으로의 상기 제1 재시도 패킷 이외의 다른 패킷들의 송신을 중지하는 단계;
    상기 제1 재시도 패킷이 상기 적어도 하나의 네트워크 종단점에 의해 수신확인된 것으로 판단하는 단계; 및
    상기 제1 재시도 패킷이 수신확인된 것으로 판단한 것에 응답하여, 상기 복수의 패킷들에서의 나머지 패킷들의 상기 적어도 하나의 네트워크 종단점으로의 송신을 재개하는 단계
    를 포함하는 정보 프로세싱 시스템을 동작시키는 방법.
  2. 제 1 항에 있어서, 상기 제1 패킷의 송신에 응답하여, 상기 제1 패킷과 연계된 복수의 타이머들을 개시하는 단계를 더 포함하는 정보 프로세싱 시스템을 동작시키는 방법.
  3. 제 2 항에 있어서, 상기 복수의 타이머들 중 제1 타이머는, 상기 적어도 하나의 네트워크 종단점으로부터의 수신확인을 수신하기 위한 제1의 주어진 문턱값과 연계되는 것인, 정보 프로세싱 시스템을 동작시키는 방법.
  4. 제 1 항에 있어서, 상기 적어도 하나의 네트워크 종단점의 각 네트워크 종단점에 대한 복수의 패킷들 내의 패킷들은, 개개의 패킷에 대한 시퀀스 번호에 따라 순서가 정해지고(ordered), 각 패킷은 각각의 시퀀스 번호에 대응하는 순서로 각각의 네트워크 종단점으로 송신되는 것인, 정보 프로세싱 시스템을 동작시키는 방법.
  5. 제 1 항에 있어서, 상기 적어도 하나의 네트워크 종단점으로의 상기 제1 재시도 패킷 이외의 다른 패킷들의 송신을 중지하는 단계는, 다른 네트워크 종단점들에 의한 수신이 예정된 패킷들의 송신은 중지되지 않으면서, 상기 적어도 하나의 네트워크 종단점으로의 상기 제1 재시도 패킷 이외의 패킷들의 송신을 중단하는 것을 더 포함하는 것인, 정보 프로세싱 시스템을 동작시키는 방법.
  6. 제 1 항에 있어서, 상기 제1 재시도 패킷을 송신하는 단계는,
    상기 제1 패킷이, 연계된 수신확인 패킷 없이, 상기 적어도 하나의 네트워크 종단점에 송신된 최초의 패킷인 것으로 판단하고;
    상기 판단에 응답하여, 상기 제1 재시도 데이터 패킷을 상기 적어도 하나의 네트워크 종단점에 송신하는 것을 더 포함하며,
    상기 제1 재시도 패킷과 연계된 수신확인 패킷이 상기 적어도 하나의 네트워크 종단점으로부터 수신될 때까지, 수신확인 대기중인 패킷의 수와 관계없이, 상기 적어도 하나의 네트워크 종단점에는 어떠한 다른 패킷도 송신되지 않는 것인, 정보 프로세싱 시스템을 동작시키는 방법.
  7. 제 1 항에 있어서,
    상기 적어도 하나의 네트워크 종단점으로부터 수신확인 패킷을 수신하는 단계;
    상기 수신확인 패킷과 연계된 시퀀스 번호를 분석하는 단계;
    상기 분석에 응답하여, 상기 시퀀스 번호가, 상기 적어도 하나의 네트워크 종단점과 연계된 현재의 시퀀스 번호보다 크며, 상기 적어도 하나의 네트워크 종단점으로 송신된 일련의 패킷들 중에서 마지막으로 송신된 패킷과 연계된 시퀀스 번호보다 작은 것과 동일한 것 중 적어도 하나인 것으로 판단하는 단계;
    상기 시퀀스 번호가, 상기 적어도 하나의 네트워크 종단점과 연계된 현재의 시퀀스 번호보다 크며, 상기 적어도 하나의 네트워크 종단점으로 송신된 일련의 패킷들 중에서 마지막으로 송신된 패킷과 연계된 시퀀스 번호보다 작은 것과 동일한 것 중 적어도 하나인 것으로 판단한 것에 응답하여, 상기 시퀀스 번호를 적어도 하나의 목적지 네트워크로부터 수신된 수신확인으로서 저장하는 단계; 및
    상기 시퀀스 번호 중 적어도 하나가, 상기 적어도 하나의 네트워크 종단점과 연계된 현재의 시퀀스 번호보다 크며, 상기 적어도 하나의 네트워크 종단점으로 송신된 일련의 패킷들 중에서 마지막으로 송신된 패킷과 연계된 시퀀스 번호보다 작은 것과 동일한 것 중 적어도 하나인 것으로 판단한 것에 응답하여, 상기 수신확인 패킷을 폐기하는 단계
    를 더 포함하는 정보 프로세싱 시스템을 동작시키는 방법.
  8. 네트워크를 통해 적어도 하나의 네트워크 종단점에 의한 수신이 예정된 적어도 하나의 패킷을 송신하기 위한 정보 프로세싱 시스템에 있어서,
    메모리;
    상기 메모리와 통신가능하게 결합된 프로세서;
    네트워크 종단점에 송신될 복수의 패킷들을 저장하도록 구성된 큐(queue); 및
    상기 메모리, 상기 프로세서, 및 상기 큐와 통신가능하게 결합된 패킷 관리기
    를 포함하며,
    상기 패킷 관리기는, 제 1 항 내지 제 7 항 중 임의의 한 항에서 청구된 방법의 모든 단계들을 수행하도록 구성되는 것인, 정보 프로세싱 시스템.
  9. 컴퓨터 시스템내로 로딩되어 실행될 때에, 상기 컴퓨터 시스템으로 하여금 제 1 항 내지 제 7 항 중 임의의 한 항에서 청구된 방법의 모든 단계들을 수행하게 하는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 저장매체.
  10. 네트워크 디바이스에 있어서,
    메모리;
    상기 메모리와 통신가능하게 결합된 프로세서;
    상기 메모리 및 상기 프로세서와 동작가능하게 결합된 적어도 하나의 네트워크 어댑터;
    적어도 하나의 네트워크 종단점에 송신될 복수의 패킷들을 저장하도록 구성된 큐(queue); 및
    상기 메모리, 상기 프로세서, 및 상기 큐와 통신가능하게 결합된 패킷 관리기
    를 포함하며,
    상기 패킷 관리기는, 제 1 항 내지 제 7 항 중 임의의 한 항에서 청구된 방법의 모든 단계들을 수행하도록 구성되는 것인, 네트워크 디바이스.
KR1020097015548A 2007-03-15 2008-02-15 혼잡을 감소시키는 신뢰적인 전송 패킷 재시도 엔진 KR101104046B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/686,417 2007-03-15
US11/686,417 US7693070B2 (en) 2007-03-15 2007-03-15 Congestion reducing reliable transport packet retry engine
PCT/EP2008/051833 WO2008110424A1 (en) 2007-03-15 2008-02-15 Congestion reducing reliable transport packet retry engine

Publications (2)

Publication Number Publication Date
KR20090118916A KR20090118916A (ko) 2009-11-18
KR101104046B1 true KR101104046B1 (ko) 2012-01-09

Family

ID=39577831

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097015548A KR101104046B1 (ko) 2007-03-15 2008-02-15 혼잡을 감소시키는 신뢰적인 전송 패킷 재시도 엔진

Country Status (6)

Country Link
US (1) US7693070B2 (ko)
EP (1) EP2137869A1 (ko)
JP (1) JP4932008B2 (ko)
KR (1) KR101104046B1 (ko)
TW (1) TW200901669A (ko)
WO (1) WO2008110424A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806037B1 (en) 2008-02-29 2014-08-12 Netapp, Inc. Remote support automation for a storage server
US7913115B1 (en) * 2008-04-30 2011-03-22 Netapp, Inc. Core file transfer
US8086909B1 (en) 2008-11-05 2011-12-27 Network Appliance, Inc. Automatic core file upload
US8553547B2 (en) * 2009-03-30 2013-10-08 Broadcom Corporation Systems and methods for retransmitting packets over a network of communication channels
JP2012014452A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 情報処理装置、情報処理プログラム、情報処理方法
US20120008573A1 (en) 2010-07-08 2012-01-12 Apple Inc. Radio resource signaling during network congestion in a mobile wireless device
JP5919727B2 (ja) * 2011-10-26 2016-05-18 富士通株式会社 バッファ管理のためのプログラム、中継装置及び制御方法
US9264414B2 (en) * 2013-03-15 2016-02-16 Microsoft Technology Licensing, Llc Retry and snapshot enabled cross-platform synchronized communication queue
US8831008B1 (en) * 2013-04-19 2014-09-09 Cubic Corporation Reliable message delivery in mesh networks
US20150055482A1 (en) * 2013-08-20 2015-02-26 Brocade Communications Systems, Inc. TCP Extended Fast Recovery and Segment Timing
US9754007B2 (en) * 2013-09-16 2017-09-05 International Business Machines Corporation Checkpoint capture and tracking in a high availability system
FR3022094B1 (fr) * 2014-06-06 2017-12-08 Bull Sas Methode et systeme de controle de flux
US9660719B2 (en) * 2014-11-17 2017-05-23 Honeywell International Inc. Minimizing propagation times of queued-up datalink TPDUs
US9998360B2 (en) 2014-11-17 2018-06-12 Honeywell International Inc. Minimizining message propagation times when brief datalink interruptions occur
WO2016206043A1 (en) * 2015-06-25 2016-12-29 Thomson Licensing Method and device for data transmission
GB2540988B (en) 2015-08-03 2018-01-03 Advanced Risc Mach Ltd Adaptive wait in data communications
US11194500B2 (en) * 2016-01-28 2021-12-07 Netapp, Inc. Resilient implementation of client file operations and replication
US11581980B2 (en) * 2019-09-13 2023-02-14 Apple Inc. Block acknowledgement operation for multi-link WLAN

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050281243A1 (en) 2004-06-18 2005-12-22 Qualcomm Incorporated Radio link protocols for a wireless communication system
EP1638240A1 (en) * 2004-09-16 2006-03-22 Lucent Technologies Inc. Selecting a subset of automatic request retransmission processes
US20070168022A1 (en) * 2006-01-17 2007-07-19 Eldridge Charles J Heart valve

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5036518A (en) * 1988-11-02 1991-07-30 Tseung Lawrence C N Guaranteed reliable broadcast network
GB8928699D0 (en) * 1989-12-20 1990-02-28 Int Computers Ltd Data communications system
US5459725A (en) * 1994-03-22 1995-10-17 International Business Machines Corporation Reliable multicasting over spanning trees in packet communications networks
US5699367A (en) * 1995-12-29 1997-12-16 Telefonaktiebolaget Lm Ericsson Concatenated error detection coding and packet numbering for hierarchical ARQ schemes
SE520465C2 (sv) 1997-07-11 2003-07-15 Ericsson Telefon Ab L M Redundansterminering i flerstegsväxel för ATM-trafik
JP3428883B2 (ja) * 1997-12-03 2003-07-22 三菱電機株式会社 データ通信方法およびデータ通信装置
US6392993B1 (en) 1998-06-29 2002-05-21 Microsoft Corporation Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems
JP3882354B2 (ja) 1998-08-31 2007-02-14 ブラザー工業株式会社 無線通信方法及び無線通信システム
US6629318B1 (en) 1998-11-18 2003-09-30 Koninklijke Philips Electronics N.V. Decoder buffer for streaming video receiver and method of operation
US6415312B1 (en) 1999-01-29 2002-07-02 International Business Machines Corporation Reliable multicast for small groups
US6438105B1 (en) * 1999-02-08 2002-08-20 3Com Corporation Reliable internet facsimile protocol
US6636488B1 (en) 2000-10-11 2003-10-21 Aperto Networks, Inc. Automatic retransmission and error recovery for packet oriented point-to-multipoint communication
US6763491B2 (en) * 2001-02-07 2004-07-13 Telefonaktiebolaget Lm Ericsson (Publ) Methods and systems for avoiding unnecessary retransmissions associated with automatic retransmission query schemes in radiocommunication systems
US7016304B2 (en) 2001-05-18 2006-03-21 Intel Corporation Link level retry scheme
US7379434B2 (en) 2001-10-19 2008-05-27 Koninklijke Philips Electronics N.V. Radio communication system
US6922804B2 (en) * 2002-03-08 2005-07-26 Hewlett-Packard Development Company, L.P. Dynamic end to end retransmit apparatus and method
EP1435704B1 (en) * 2002-12-27 2011-08-17 NTT DoCoMo, Inc. Transmission control method and system
US20040179485A1 (en) 2003-03-12 2004-09-16 Terrier Carl M. Method of transmitting and receiving two-way serial digital signals in a wireless network utilizing a simplified baseband processor
US7450512B1 (en) 2003-07-29 2008-11-11 Rockwell Collins, Inc. Recirculating retransmission queuing system and method
JP4452983B2 (ja) 2004-01-08 2010-04-21 ソニー株式会社 受信装置および方法、プログラム、並びに記録媒体
US7643503B2 (en) 2004-07-30 2010-01-05 Sony Corporation System and method for dynamically determining retransmit buffer time
GB0421664D0 (en) 2004-09-29 2004-10-27 Nokia Corp Method for commuication over a lossy interface
US20060179392A1 (en) 2005-02-08 2006-08-10 Takaaki Ota Handshakeless retransmission protocol
JP2007053588A (ja) * 2005-08-18 2007-03-01 Nec Corp パケット再送方式、パケット再送システム、パケット再送プログラム及びプログラム記録媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050281243A1 (en) 2004-06-18 2005-12-22 Qualcomm Incorporated Radio link protocols for a wireless communication system
EP1638240A1 (en) * 2004-09-16 2006-03-22 Lucent Technologies Inc. Selecting a subset of automatic request retransmission processes
US20070168022A1 (en) * 2006-01-17 2007-07-19 Eldridge Charles J Heart valve

Also Published As

Publication number Publication date
EP2137869A1 (en) 2009-12-30
KR20090118916A (ko) 2009-11-18
US7693070B2 (en) 2010-04-06
JP2010521848A (ja) 2010-06-24
TW200901669A (en) 2009-01-01
US20080225703A1 (en) 2008-09-18
JP4932008B2 (ja) 2012-05-16
WO2008110424A1 (en) 2008-09-18

Similar Documents

Publication Publication Date Title
KR101104046B1 (ko) 혼잡을 감소시키는 신뢰적인 전송 패킷 재시도 엔진
US20220014312A1 (en) Data transmission method and apparatus
US6393023B1 (en) System and method for acknowledging receipt of messages within a packet based communication network
JP4199439B2 (ja) 網通信システムにおいてデータパケットを伝送するための誤り訂正通信方法
US10430374B2 (en) Selective acknowledgement of RDMA packets
KR100998546B1 (ko) Mac 층 리셋 후 노드-b 에서 버퍼링된 데이터의효과적인 복구를 위한 시스템
US8069250B2 (en) One-way proxy system
JP3761517B2 (ja) 高速ワイヤレスコミュニケーションシステムのタイマーによる停止防止メカニズム
JP3932994B2 (ja) サーバ引継システムおよびその方法
US7840682B2 (en) Distributed kernel operating system
US7496038B2 (en) Method for faster detection and retransmission of lost TCP segments
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US8667184B2 (en) Distributed kernel operating system
US9197373B2 (en) Method, apparatus, and system for retransmitting data packet in quick path interconnect system
Tam et al. Preventing TCP incast throughput collapse at the initiation, continuation, and termination
JPH09160858A (ja) データ再送方法及びサーバ
US8769137B2 (en) Systems and methods for negotiated accelerated block option for trivial file transfer protocol (TFTP)
JPWO2012014397A1 (ja) 通信装置、通信システム、パケット再送制御方法およびパケット再送制御プログラム
CN117176809A (zh) 一种数据交互方法及系统
AU2007203286A1 (en) System for efficient recovery of node-B buffered data following MAC layer reset
Wang et al. Improving event-to-sink throughput in wireless sensor networks
KR20030053896A (ko) 전송장비에서 이벤트 관리시스템의 이벤트 동적 처리 방법
KR20060111323A (ko) Tcp 기반 통신제어 장치 및 방법

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
LAPS Lapse due to unpaid annual fee