KR20060085241A - 차동 확인 응답 프로세싱 버퍼 관리자 및 이를 위한 방법 - Google Patents

차동 확인 응답 프로세싱 버퍼 관리자 및 이를 위한 방법 Download PDF

Info

Publication number
KR20060085241A
KR20060085241A KR1020067004628A KR20067004628A KR20060085241A KR 20060085241 A KR20060085241 A KR 20060085241A KR 1020067004628 A KR1020067004628 A KR 1020067004628A KR 20067004628 A KR20067004628 A KR 20067004628A KR 20060085241 A KR20060085241 A KR 20060085241A
Authority
KR
South Korea
Prior art keywords
memory
message
buffer
communication
committed
Prior art date
Application number
KR1020067004628A
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 KR20060085241A publication Critical patent/KR20060085241A/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
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • 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/1874Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/1607Details of the supervisory signal
    • H04L1/1635Cumulative acknowledgement, i.e. the acknowledgement message applying to all previous messages
    • 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/1607Details of the supervisory signal
    • H04L1/1664Details of the supervisory signal the supervisory signal being transmitted together with payload signals; piggybacking
    • 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/1806Go-back-N protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

TCP 와 같은, 확인응답-기반 프로토콜을 이용하여, 이동 통신을 위한 통신 방법, 버퍼 관리 방법, 통신 시스템, 및 통신 디바이스. 통신 버퍼 메모리는 송신 버퍼의 커미트된 메모리에 저장된 확인응답을 기다리는 송신된 메시지의 카피를 가지는, 프리 및 커미트된 메모리를 포함한다. 메모리 제어기는 통신 버퍼 상태를 모니터링하고, 프리 메모리가 메모리 임계값보다 작은 경우에, 제어기는 수신된 호스트 메시지로부터 TCP ACKNUM 을 추출한다. TCP ACKNUM 은 더 작은 서수성의 ACKNUM 을 가지는 송신된 메시지 카피를 확인응답하고, 잠재적으로 데드락 (deadlock) 을 피하면서, 프리 메모리로서 확인응답된 메시지를 저장하는 커미트된 메모리를 지칭한다.
차동 확인응답

Description

차동 확인 응답 프로세싱 버퍼 관리자 및 이를 위한 방법 {DIFFERENTIAL ACK PROCESSING BUFFER MANAGER AND METHOD THEREFOR}
발병의 분야
본 발명은 통신 시스템에 관한 것이고, 구체적으로는 무선 통신 디바이스, 및 가장 구체적으로는 제한된 메모리 통신 디바이스에 관한 것이다.
배경
증가적으로, 무선 통신 디바이스는 인터넷과 같은 공중 네트워크를 포함하는 하나 이상의 구성 링크가 있는 이종의 접속을 통해 메시지를 통신한다. 인터넷은 계층적, 다중층 아키텍처, 서비스 설명, 및 프로토콜에 의해 나타날 수 있는 무선 네트워크를 포함하는, 자율의, 상호접속된, 패킷-기반 네트워크의 느슨하게 조직된 국제적 협조이다. 통신 종점 또는 호스트는 라우터라 칭하는 중간 패킷- 스위칭 컴퓨터를 이용하는 네트워크를 통해 상호 접속될 수 있다. 인터넷을 이용하여 통신하기 위해, 호스트는 하나 이상의 계층적 인터넷 프로토콜 슈트로부터 프로토콜을 구현한다. 각각의 호스트 및 라우터는 정보 통신, 프로세싱, 및 디스플레이를 포함하는 다양한 태스크를 수행하는 하나 이상의 프로그램, 또는 프로세서를 실행한다. 애플리케이션은 인터넷 프로토콜 슈트의 최상의 층에서 자주 동작하고, 별개의, 그러나 상호접속된 네트워크를 통해 전송 층 통신 서비스를 제공하는 낮은 층 전달 프로토콜을 이용할 수도 있는 프로세스가 될 수 있다. 이 번에는, 전송 프로토콜은 통상적으로 네트워크 프로토콜을 사용하여 통신 프로세스 사이의 네트워크를 통해 메시지 전송을 용이하게 한다. 가장 낮은 층에서, 메시지는 논리적으로 및 물리적으로 변형되고, 네트워킹 매체를 통해 전자기적 또는 전기 광학 신호로서 전송될 수 있다.
다수의 프로토콜은 서로 접속된 통신 프로세스로 이용하도록 잘 슈트된 일부 프로토콜과 함께 존재한다. 예를 들어, 전이중 통신방식 (full-duplex) 프로토콜은 이것이 접속된 호스트 사이에 본질적으로 동시발생적인 통신을 허용하기 때문에 유리하다. 또 다른 프로토콜 구별은 프로토콜이 앤드-투-앤드 (end-to-end) 인지 또는 비접속형 (stateless) 인지에 있을 수 있다. 접속지향 (end-to-end) 프로토콜에서, 접속 회로, 또는 양방향성의 논리적 접속은 통상적으로 종점 호스트 사이의 통신 이전에 설립된다. 또한, 접속 지향 프로토콜은 통상적으로 통신 통합, 보안, 및 중간 컴퓨터 또는 라우터에서가 아닌, 통신 호스트에서에의 흐름 관리에 대한 책임을 운용한다. 그러나, 이러한 프로토콜은 호스트를 접속하는 중간 링크 또는 라우터의 하나에서 지연 또는 방해에 의해 중단될 수 있다. 통신 시스템의 견고성을 개선하기 위해, 라우터는 다른 것들과 독립적으로, 각각의 메시지 또는 데이터 유닛을 전송하는 비접속형 네트워크 층 프로토콜을 자주 이용한다. 일반적으로, 비접속형 프로토콜은 어떠한 앤드-투-앤드 메시지 전달 개런티를 제공하지 않는다. 독립적으로 송신된 메시지는 네트워크를 통해 라우팅되는 동안 네트워크 자원의 이용을 위한 경쟁이 강요될 수도 있다. 이러한 메시지는 목적지 호스트에 훼손되고, 중복되고, 파손되어 도착하거나 아예 도착하지 않을 수도 있다. 따라서, 애플리케이션 또는 전송 층 프로세스와 같은 높은 층 프로세스는 통상적으로 비접속형 프로토콜에 의해 전달된 세그멘트, 또는 메시지를 정확히 수신하고, 재명령하고, 수선하고, 수신을 확인 응답하고, 재송신을 요구하는 책임을 진다.
접속지향 프로토콜은 이것이 메시지 전달과 같은 통신 상태에 대하여 직접적으로 또는 간접적으로 송신자와 수신자가 정보를 교환하는 메커니즘을 포함하는 경우, "신뢰할 수 있는 (reliable)" 으로서 설명될 수도 있다. 일반적으로, "확인 응답 (acknowledgement)" 또는 ACK 라 칭하는 메커니즘은 주어진 프로토콜을 위해 원하는 정보를 전달하는 포맷된 응답과 같은 다양한 기술들을 포함할 수도 있다. 호스트와 각각 통신하는 송신자 주도형 확인 응답은 대응하는 수신 종점이 특정 메시지를 ACK 하기까지 재송신을 가능하게 하기 위해 송신된 메시지의 카피 (copy) 를 보유할 수도 있다. 수령인이 수신을 확인 응답하는 경우, 송신자는 보유된 카피가 저장된 메모리 위치를 릴리스 할 수도 있다. 적절한 확인 응답이 수신된 경우에, 전송 종점은 마지막 적절한 ACK 의 포인트에 시작하는 메시지를 송신할 수도 있다. 통상적인 통신에서, 다중 메시지는, 대응하는 ACK 가 수신되기까지 전송된 메시지의 카피를 축적하는 호스트와 함께 송신될 수도 있다. 양 호스트 중 하나 또는 모두가 주어진 시간에 저장되고, 프로세스되고, 수신되고, 송신되는 세그멘트 넘버에 의해 일시적으로 압도당하는 위험이 있을 수도 있다. 이 위험은 예를 들어, 인터넷 통신의 버스티 네이처 (bursty nature), 미리 송신된 메시지의 ACK 관련 보유, 및 다중 메시지를 송신하는 호스트의 능력에 기반을 둘 수도 있다.
인터넷에서 이용되는 인기있는 프로토콜 그룹은 송신 제어 프로토콜/인터넷 프로토콜 (TCP/IP) 프로토콜 슈트이다. 송신 제어 프로토콜 (TCP) 은 한쌍의 호스트 컴퓨터 프로세스 사이의 신뢰할 수 있는 인터프로세스 (interprocess) 통신을 제공하는 앤드-투-앤드, 전이중 통신방식, 전송 프로토콜이다. TCP 를 이용하여, 메시지는 TCP 세그멘트 칭하는 하나 이상의 포맷된 데이터 유닛을 이용하여 통신될 수 있다. 접속지향 프로토콜이 되는 것에 더하여, TCP 는 메시지 에러 검증 및 메시지 수신 확인 응답을 사용함으로써 메시지 전달을 확신한다. 에러 검증은 일반적으로 데이터에 대응하고 각각의 TCP 세그멘트로 통합될 수 있는 검사합계의 형태가 될 수 있다. 인터넷 프로토콜 (IP) 은 각각의 메시지 세그멘트가 자원 또는 목적지 호스트를 위한 IP 주소를 포함하여, 식별자 정보를 통합할 수 있는 견고한, 비접속형 네트워크 프로토콜이다. 목적지 호스트 주소를 이용하여, IP 프로토콜은 다중 경로를 통해 연속적인 세그멘트를 라우트할 수도 있어, 하나 이상의 TCP 세그멘트를 가지는 메시지가 손상되지 않고, 제시간에, 그리고 명령대로 목적지에 도착하는 가능성을 증가시킨다. TCP 와 같은 프로토콜은 IP 와 같은 프로토콜과 함께 이용되어 송신자와 수신자가 비접속형 프로토콜에 의해 전달된 세그멘트에 대한 정보를 교환하고, 신뢰할 수 있는 메시지 교환이 설립될 수 있는 메커니즘을 부가한다. TCP 메시지는 메시지 시퀀싱 (sequencing) 정보, 호스트 메시지 또는 채널 용량, 및 기타로 통신 호스트를 제공할 수도 있는 송신자 주도형 제어, 긍정확인응답-기반을 일반적으로 이용한다. 함축적으로, TCP/IP 가 신뢰할 수 있고, 견고한 통신 프로토콜 슈트이지만, 실제의 세그멘트 흐름은 통신중 버스티 될 수도 있고 즉, 주어진 시간에 송신되는 패킷의 양에서의 폭넓은 다양함에 의존한다.
애플리케이션 프로그램, 또는 프로세스 (예를 들어, HTTP) 는 소켓으로 칭하는 논리적 디바이스를 이용하는 각각의 애플리케이션과 접속된 종점 중 하나에서 TCP/IP 와 같은 프로토콜, 전송 층 프로세스 (예를 들어, TCP) 를 이용하여 또 다른 호스트와 통신한다. TCP 소켓은 IP 주소 및 TCP 포트 넘버를 포함할 수도 있다. 통상적으로, IP 주소는 호스트와 관련될 수 있고, TCP 포트 넘버는 호스트 전송 프로세스를 인보킹 (invoking) 하는 특정 프로세스의 특정 통신 기능과 관련될 수 있다. 특정 지역 소켓을 통해 특정 원격 소켓으로의 직접적인 메시지에 의해, 지역 호스트는 원격 호스트를 가지는 네트워크를 통해 통신할 수도 있다. TCP 접속이 설립되는 경우에, 통신 버퍼는 TCP 접속의 각각의 종점에 할당된다. 각각의 호스트에서의 통신 버퍼는 하나 이상의 송신 버퍼 및 수신 버퍼를 포함한다. 예시적인 버퍼 판독은 데이터가 버퍼로부터 실행 애플리케이션 (프로세스) 에 전송되는 동작이 될 수 있다. 예시적인 버퍼 기록은 데이터가 프로세스로부터 버퍼에 전송되는 동작이 될 수 있다. 통신 동안, 원격 호스트는 클라이언트 호스트에 대한 서버로 작용할 수 있고, 통신 과정 동안 역할의 변경으로 가역으로 작용할 수 있다. 전이중 통신방식으로, 호스트는 동시에 메시지를 통신한다. 그러나, 클라이언트 또는 서버는 자주 2 개의 트랜잭션을 내부적으로 동시에 수행할 수 없고, 예를 들어, 버퍼 판독은 호스트 버퍼에서 버퍼 기록과 동시에 수행될 수 없고, 그 역도 그렇다. 이 양태는 또한 일시적으로 압도당하는, 예를 들어, 많은 양의 메시지의 기간 동안의 호스트에 적합하다.
다른 통신 디바이스와 비교하여, 이동 디바이스는 자주, 이용가능한 통신 메모리 공간으로 메모리 제한적이 될 수 있다. 그러한 제한은 일부 상황하에서 흐름 제어 및 버퍼 관리에 불리하게 영향을 미친다. 예를 들어, 메모리 제한 디바이스는 버퍼락 (buffer deadlock) 및 버퍼 스타베이션 (buffer starvation) 과 같은 메시지 흐름 변칙성에 영향받기 쉬울 수도 있다. 버퍼락은 버퍼를 보유 (hold) 하는 프로세스가 오직 하나의 프로세스가 한번에 버퍼를 이용할 수 있는 경우, 프로세스가 이것의 태스크를 완료한 후에, 오직 자율적으로 버퍼를 릴리스하는 경우, 버퍼를 보유하는 제 1 프로세스가 제 2 프로세스에 의해 보유된 추가적인 버퍼를 수집하도록 기다리는 경우, 및 제 2 프로세스가 제 1 프로세스에 의해 보유된 추가적인 버퍼를 수집하도록 기다리는 경우에 일어날 수도 있다. 버퍼 스타베이션은 활성, 또는 우선 순위, 제 1 프로세스가 거의 모든 이용가능한 버퍼를 소비하여, 그로 인해 릴리스될 제 1 프로세스에 의해 보유된 버퍼를 기다기는 일시적인 비활성, 또는 후 순위, 제 2 프로세스를 블로킹 (blocking) 하는 곳에서 발생할 수도 있다.
임의의 이동 디바이스 프로세스는 진행중인 버퍼 기록 동작이 완료되기까지 통신 버퍼에서 버퍼 판독 동작 수행을 연기하도록 구성될 수도 있다. 그러한 애플리케이션 프로세스가 실행하는 동안, 저장된 TCP 세그멘트는 이동 디바이스의 송신 및 수신 버퍼 모두에서 축적되어, 이용가능한 통신 메모리 공간의 고갈을 야 기한다. 메모리 공간의 고갈로, 프로세스는 진행중인 버퍼 기록을 완료할 수 없을 수도 있고, 동시에, 버퍼 기록의 완료를 기다려서 버퍼 판독 동작을 수행한다. 또한, 이동 디바이스 프로세스는 이용가능한 통신 공간을 일시적으로 고갈시키고, 버퍼 스타베이션을 직면하는 동작 및 프로세스를 야기하는 많은 양의 메시지를 실행할 수도 있다. 통상적으로, 버퍼락 또는 버퍼 스타베이션이 전개된 후의 일부 기간 동안, 이동 디바이스는 TCP 접속 개방을 유지하면서, 통신을 정지시킨다. 많은 TCP 프로토콜 및 프로세스는 이동 디바이스와 서버 사이의 TCP 접속은 소정의 타임아웃 (timeout) 기간 후에 닫힐 수 있는 타임아웃 메커니즘을 제공할 수 있다.
타임아웃 기간이 대략 수초가 될 수도 있기 때문에, 이 복구 기술은 비효율적일 수 있다. 이동 사용자에 대해, 버퍼락, 버퍼 스타베이션, 초기 TCP 복구 메커니즘, 및 많은 메시지량의 기간 동안의 호스트 과부하는, 감축되고, 불만족스러운, 감지된 서비스 질을 야기할 수도 있다. 전체적으로, 이들 요소는 상당한 이동 시스템 자원을 낭비할 수 있는 형 (type) 이다. 따라서, 이러한 요소의 영향을 감축하거나, 상당히 제거하도록 호스트 자원을 관리하는 것이 바람직하다.
본 발명은 통신 시스템 및 이동 통신 디바이스와 같은 통신 디바이스와 함께, 통신 방법 및 통신 버퍼 관리 방법을 제공한다. 통신 방법 및 통신 버퍼 관리 방법은 메시지 프로토콜을 이용하고 소정의 메모리 위치 넘버로 통신 버퍼를 가지는 지역 호스트에 유리할 수 있다. 통신 내에서, 버퍼는 송신된 메시지 식별자를 가지는 송신된 메시지의 카피일 수도 있다. 커미트된 (commited) 메모 리로서 지정된 메모리는 기록금지될 수도 있고, 프리 (free) 메모리로서 지정된 메모리는 기록인에이블될 수도 있다. 송신된 메시지 카피와 관련된 선택된 메모리 위치는 커미트된 메모리로서 표시될 수도 있다. 커미트된 메모리로서 표시되지 않은 메모리 위치는 프리 메모리로서 표시될 수도 있다.
방법은 원격 호스트로부터 수신된 메시지를 수신하는 단계와 지역 호스트 통신 버퍼가 소정의 버퍼 상태에 있는지 여부를 결정하는 단계를 포함하고, 통신 버퍼가 소정의 버퍼 상태에 있지 않은 경우, 관례대로 원격 호스트로부터 수신된 추가적 메시지 및 수신된 메시지를 프로세스한다. 그러나, 통신 버퍼가 소정의 버퍼 상태에 있는 경우에는, 그 후, 수신된 메시지에서 수신된 식별자를 릴리스 식별자로서 지정하는 단계, 이 릴리스 식별자를 이용하여 송신된 메시지의 관련 카피를 위치시키는 단계, 및 관련 카피를 프리 메모리로서 표시하는 단계를 포함한다. 소정의 버퍼 상태는 소정의 메모리 임계값보다 작은 프리 메모리 넘버가 될 수도 있다. 수신된 메시지는 헤더 및 페이로드 (payload) 를 가지는 곳에서, 이 방법은 수신된 메시지가 커미트된 메모리에 저장된 송신된 식별자에 정의된 관계를 가지는 헤더로부터 수신된 식별자를 추출하는 단계를 포함한다. 수신된 메시지는 원격 호스트에 어떤 ACK 도 복귀시키지 않는 바와 같이 확인 응답되지 않고, 또는 수신된 메시지의 ACKNUM 보다 작은 서수성을 가지는 ACKNUM 을 가지는 ACK 를 전송함으로써 확인 응답한다. 또한, 수신된 메시지의 페이로드는 버려질 수도 있다. 수신되고 송신된 메시지 식별자는 각각 순서화된 숫자 시퀀스를 통해 규정될 수 있다. 수신된 식별자와 송신된 식별자 사이의 정의된 관계는 송신된 메시지 식별자가 수신된 메시지 식별자의 서수성보다 작은 서수성을 가지도록 될 수 있다.
메시지 프로토콜은 긍정 확인응답-기반 (ACK) 송신 제어 프로토콜 (TCP) -기반 프로토콜과 같은 확인응답-기반 프로토콜을 포함하는, 응답형 신뢰할 수 있는, 앤드-투-앤드 메시지 프로토콜이 될 수 있다. 수신된 메시지 ACKNUM 식별자의 서수성이 커미트된 메모리송신된 메시지 ACKNUM 의 식별자의 서수성보다 큰 경우에, 커미트된 메모리 통신 버퍼에 저장된 송신된 메시지 카피가 프리 메모리로서 지칭되도록, TCP 가 메시지 프로토콜이 되는 곳에서, 릴리스 및 송신된 메시지 식별자가 TCP 확인 응답 시퀀스 넘버 (ACKNUM) 가 될 수도 있다. 통신 버퍼는 송신 또는 수신 버퍼에 할당될 수도 있다. 송신 버퍼는 이 방법을 이용하여 관리될 수 있고, 수신 버퍼는 이 방법을 이용하여 관리될 수도 있다.
장치는 통신 버퍼 및 버퍼에 결합된 메모리 제어기를 가지는 통신 디바이스 및 통신 시스템을 구비한다. 버퍼는 프리 메모리와 커미트된 메모리로 구성된 소정의 메모리 위치 넘버를 가진다. 이동 통신 디바이스로부터 수신자에 통신네트워크를 통해 송신된 메시지는 선택된 프리 메모리에 송신된 메시지 카피로서 저장될 수도 있다. 송신된 메시지 카피는 내부에 대응하는 송신된 메시지 식별자를 포함한다. 메모리 제어기는 송신된 메시지 식별자로부터, 송신된 메시지 카피가 커미트된 메모리 위치로서 저장될 수도 있는 선택된 프리 메모리를 지칭할지 여부를 판별할 수 있다. 통신 버퍼는 커미트된 송신 메모리, 프리 메모리, 또는 이들의 조합을 포함하는 송신 버퍼로서 할당될 수 있다. 대응하는 송신된 메시지 식별자를 가지는 송신된 메시지 카피는 커미트된 메모리에 저장될 수 있다. 메모리 제어기는 원격 호스트로부터 수신된 메시지에서 수신된 메시지 식별자를 조사하도록 구성될 수도 있다. 메모리 제어기는 송신 버퍼를 모니터 (moniter) 할 수도 있고, 수신된 메시지 식별자와 관련된 송신된 메시지 식별자를 가지는 송신된 메시지 카피를 저장하는 커미트된 송신 메모리를 식별하도록 구성될 수도 있다.
메모리 제어기는 메모리 카운터, 커미트 디렉토리, 맵퍼 (mapper), 및 분석 레지스터를 구비할 수 있다. 메모리 제어기에 의해 모니터링된 소정의 버퍼 상태가 소정의 메모리 임계값보다 작은 프리 메모리내의 메모리 위치 넘버에 의해 나타나는 경우, 메모리 카운터는 프리 메모리에 남아있거나 커미트된 메모리에서 소비된 메모리 위치 넘버를 나열하도록 이용될 수 있다. 분석 레지스터는 수신된 메시지를 중단하고, 그로부터 릴리스 메시지를 추출하도록 이용될 수 있다. 변환용 별도 버퍼 (translation look-aside buffer) 와 같은 맵퍼는, 논리값일 수도 있는 릴리스 식별자를 릴리스 식별자와 관련된 송신된 메시지 카피의 물리적 메모리 위치로 변환할 수 있다. 이동 통신 디바이스는 미리 선택된 무선 통신 프로토콜을 이용하는 원격 프로세스를 가지는 통신 네트워크를 통해 지역 프로세스가 양방향으로 메시지를 통신하는 트랜스시버를 포함할 수도 있다.
호스트 사이에 이용되는 메시지 프로토콜은 앤드-투-앤드 통신 프로토콜일 수도 있다. 또한, 메시지 프로토콜은, 프로토콜 확인 응답이 숫자 시퀀스를 통해 정의된 식별자를 포함하는 긍정 확인 응답, 앤드-투-앤드 프로토콜이 될 수도 있다. 메시지가 TCP 세그멘트인 경우, 메시지는 헤더와 페이로드를 가질 수도 있다. 송신된 메시지와 카피는 헤더에 송신된 메시지 식별자를 가질 수도 있고, 수신된 메시지 헤더는 수신된 메시지 식별자를 가질 수도 있다. TCP 세그멘트 내의 수신된 메시지 식별자는 선택된 송신 메시지 카피와 정의된 관계를 가지는 확인응답 넘버 (ACKNUM) 를 가질 수 있다. 메모리 제어기가 통신 버퍼가 소정의 버퍼 상태에 있음을 결정하는 경우에, 수신된 메시지 식별자는 릴리스 식별자로서 지정될 수도 있다. 송신된 메시지 식별자는 숫자 시퀀스를 통해 규정될 수도 있다. 릴리스 식별자는 숫자 시퀀스 내의 메시지 식별자로부터 선택될 수 있고, 예를 들면, 원격 호스트에 의해 수신된 송신된 메시지에 대응하는 ACKNUM 이다. 메모리 제어기는 릴리스 식별자와 관련된 선택된 송신 메시지 카피에 대응하는 커미트된 송신 메모리를, 프리 메모리로서 지칭할 수도 있다. 릴리스 식별자는 또한 커미트된 송신 메모리 위치 블록과 관련될 수도 있다. 그러한 케이스에서, 메모리 제어기는 릴리스 식별자와 관련된 선택된 송신 메시지 카피 블록에 대응하는 커미트된 송신 메모리 블록을, 프리 송신 메모리로서 지칭할 수도 있다. 커미트된 송신 메모리에서 확인응답되지 않은 송신된 메시지 카피를 식별하도록 이용하는 경우에, 선택된 송신 메시지 카피의 송신된 메시지 식별자 (ACKNUM) 는 수신된 메시지 식별자 (ACKNUM) 의 서수성보다 작은 서수성을 가질 수도 있고, 메모리 제어기에 의해 릴리스 식별자로서 지정될 수도 있다.
통신 버퍼는 커미트된 수신 메모리, 프리 수신 메모리, 또는 이들의 조합을 포함하는 수신 메모리 위치의 소정의 넘버를 가지는 수신 버퍼로 할당될 수도 있 다. 메모리 제어기는 또한, 메모리 제어기가 커미트된 수신 메모리로서 지칭할 수 있는 선택된 프리 수신 메모리에서 수신 버퍼 내의 수신된 메시지를 저장하는 수신 버퍼를 모티터할 수 있다. 메모리 제어기가 통신 버퍼가 소정의 버퍼 상태에 있음을 결정하는 경우에, 수신된 메시지 식별자는 수신된 메시지로부터 추출될 수도 있고 릴리스 식별자로서 지정될 수도 있다. 수신된 메시지는 확이응답되지 않을 수도 있고 수신된 메시지로부터의 페이로드는 버려질 수도 있다. 이 디바이스는 지역 프로세스가 원격 프로세스를 가지는 트랜스시버를 통해 메시지를 양방향으로 통신할 수 있도록 통신 버퍼와 접속된 트랜스시버를 포함할 수도 있다.
도면의 간단한 설명
본 발명은 다음 도면과 함께 취해지는 상세한 설명으로부터 더욱 완전히 이해될 수 있다.
도 1 은 통신 시스템 환경에서 통신 버퍼 관리자의 실시형태의 간단화된 개략 블록도이다.
도 2A 는 통신 버퍼 관리자의 또 다른 실시형태의 간단화된 개략 블록도이다.
도 2B 는 통신 버퍼 관리자의 또 다른 실시형태의 간단화된 개략 블록도이다.
도 3 은 본 발명에 따라, 차동 프로세싱 메모리 관리 프로세스의 실시형태를 설명하는 간단화된 흐름도이다.
실시형태의 상세한 설명
본 명세서의 실시형태는 이동 통신 디바이스에서 이동 디바이스 통신 버퍼를 관리하기 위한 차동 확인응답 프로세싱 (d-ACK) 방법 및 장치를 제공한다. 본 명세서에서 예시적인 방법 및 장치가 메모리 제한 이동 무선 디바이스의 환경에서 차동 확인응답 프로세싱 (d-ACK) 을 제공할 수도 있지만, 이 방법 및 장치는 디바이스, 시스템, 및 환경의 방대한 배열에서 구현될 수도 있다.
용어의 정의
본 명세서에서 이용된 바와 같이, 메시지는 2 개의 통신 종점, 또는 호스트 사이의 통신 동안 전송된 예시적인 데이터 유닛이 될 수도 있다. 메시지의 구성 요소는 TCP 세그멘트 (세그멘트) 와 같은 하나 이상의 데이터 유닛일 수도 있다. TCP 세그멘트 TCP 헤더 및 TCP 페이로드 (각각, 헤더 및 페이로드) 를 포함할 수 있다. 또한, 메시지는 재전송 및 제어 메시지를 포함하여 호스트 또는 호스트의 사용자에게 중요한 비디오, 오디오, 텍스트, 데이터, 멀티미디어, 및 다른 콘텐츠의 하나 이상의 데이터 유닛이 될 수도 있다. 메시지는 제한없이, 데이터 프레임, 패킷, 데이터그램, 범위가 정해진 스트림, 관리 응답, 및 통신 제어 데이터를 포함하는 하나 이상의 데이터 유닛으로 형성될 수도 있다. 제어 메시지는 긍정 또는 부정 확인응답, 상태 업데이트, 요청, 응답, 및 기타의 형태가 될 수도 있다. 메시지라는 용어는 예를 들어, 확인응답 (ACK), ACK 시퀀스 넘버 (또는 ACKNUM), 및 기타를 포함하여 통신된 응답 또는 통신 제어 데이터를 이해할 수 있다.
일반적으로, 메모리 버퍼, 또는 간단히 버퍼는, 하나 이상의 메모리 블록으 로부터 할당될 수 있다. 각각의 메모리 블록은 하나 이상의 유닛 메모리 위치로부터 차례로 할당될 수 있다. 메모리 버퍼를 구성하는 메모리 블록 넘버뿐만 아니라, 메모리 블록을 구성하는 유닛 메모리 위치 넘버는 고정될 수도, 선택될 수도, 다양화될 수도, 또는 이들의 조합이 될 수도 있다. 고정값은 단일값이 될 수도 있고, 통상적으로 동작 이전에 할당된다. 선택가능한 값은 값의 개별 세트로부터 도출될 수 있고, 동작 이전에 자주 할당될 수도 있다. 다양한 값은 동적으로 또는 동작 동안 할당될 수 있는 소정의 범위 내의 값으로 가정할 수도 있다. 환경이 특정 메모리 엔터티 (entity) 를 요구하지 않는 경우에, 메모리 위치, 메모리 블록, 및 메모리 버퍼는 모두 메모리 물건으로 칭할 수도 있다. 버퍼는 단일의 메모리 물건이 될 수도 있고, 또한 다중, 더 작은 메모리 물건으로부터 할당될 수도 있다.
따라서, 시스템 메모리 버퍼는 유닛 메모리 위치의 고정된 넘버로부터 각각 효율적으로 형성된 더 작은 기능적인 버퍼의 고정값을 논리적으로 포함할 수도 있다. 또한, 시스템 메모리 버퍼는 특정 목적에 적합하도록 적용될 수도 있는, 다른 사이즈의 고정된, 선택가능한, 및 다양한 사이즈의 메모리 물건의 집합을 포함할 수도 있어, 낭비된 메모리 공간, 및 기타를 최소화한다. 예를 들어, 모든 통신 인터페이스 제어 구조는 하나의 소정의 사이즈의 메모리 물건을 할당받을 수 있지만, 통신 버퍼는 효율적인 통신을 용이하도록 적합한 물건 사이즈로 다른 사이즈의 메모리 물건으로 구성될 수도 있다. 이용가능한 물리적 통신 메모리 공간은 단일의 통합된 디바이스내에 또는 이로부터, 또는 다중 통합된 또는 별개의 물 리적 메모리 디바이스 또는 모듈 내에 또는 이로부터 형성될 수도 있다. 또한, 유리한 계층적, 분산된, 또는 공유된 메모리 물건 구성이 이용될 수도 있다.
또한 본 명세서에서 이용된 바와 같이, "메모리 제한" 은 디바이스는 제한된 메모리 공간, 또는 메모리 위치 넘버를 가지고 통신 버퍼와 같은 이용을 위해 이용가능한 디바이스가 될 수도 있다. 조밀한 메모리 제한과 이동 통신 디바이스는 예를 들어, 파워, 비용, 또는 디바이스 사이즈 고려로부터 비롯될 수도 있다. 다음의 예 및 실시형태에서, 용어 "지역" 및 "원격" 은 관련 참조 포인트를 제공하고, 통신 호스트 사이의 특정 물리적인 또는 공간적인 관례를 할당하지 않도록 이용될 수도 있다. 또한, 용어 "프리" 및 "커미트된" 은 본 명세서에서 메모리 위치, 버퍼, 및 디바이스를 포함하는 메모리 엔터티에 접합한 바와 같이 각각 "판독-인에이블" 상태 및 "판독-억제" 상태 중 하나에 실질상 대응하는 상태에서와 같은 메모리 엔터티를 지정한다. 판독-인에이블로 지정된 메모리 엔터티는 저장된 새로운 데이터를 허용한다. 판독-억제된 메모리와 새로운 데이터 저장은 일시적으로 방해된다. 통신 버퍼는 프리 메모리 및 커미트된 메모리로 구성된다.
개시된 환경에서, 메모리 관리는 하드웨어, 소프트웨어, 또는 이들의 조합에 의해 영향을 받을 수 있다. 메모리 관리는 정보의 저장을 위한 선택적인 할당 메모리 자원을 포함할 수 있고, 하나 이상의 메모리 할당 정책을 구현하여, 통신 동안 예상된 할당 요청을 만족시키도록 충분한 자원을 제공한다. 컴퓨터 분야에 공지된 할당 정책은 제한없이 조합될 수 있는 메모리 맵핑 및 재맵핑, 정적인 메모리 할당, 역동적인 메모리 할당, 및 이종 할당을 포함하여 이용될 수도 있다.
실시형태의 논의
도 1 은 지역 호스트 (LHOST; 102) 가 원격 호스트 (REMHOST; 110) 와 통신하는 통신 시스템 (100) 을 도시한다. LHOST (102) 는 소정의 무선 프로토콜을 이용하여, 물리적 대기 (Um) 인터페이스를 통해 이동 서비스 제공자 (MSP; 104) 와 통신하는 이동 무선 시스템이 될 수 있다. MSP (104) 는 베이스 트랜스시버 스테이션 (base transceiver station; 도시생략) 및 이동 스위칭 센터 (도시 생략) f를 포함할 수 있고, MSP 라우터 (106) 를 통해 네트워크 (108) 에 접속될 수 있다. MSP 라우터 (106) 는 네트워크 (108) 및 MSP (104) 사이에, 원하는 대로, 물리적 신호 및 논리적 메시지 전송을 수행할 수도 있다. 네트워크 (108) 는 제한없이 회로-스위칭된 네트워크, 패킷-스위칭된 네트워크, 및 이들의 동등한 것 또는 조합을 포함하는 구성 네트워크 부분을 가지는 이종 네트워크를 나타낼 수 있다. 인터넷과 같은 패킷-스위칭된 공중 네트워크를 포함하는 네트워크 (108) 의 부분은 TCP/IP 프로토콜 슈트와 같은 신뢰할 수 있는, 접속지향, 앤드-투-앤드 프로토콜을 이용할 수도 있다.
LHOST (102) 는 메모리 제한이 될 수도 있는 핸드세트 (handset), 개인용 휴대정보 단말기, 또는 다른 콤팩트 통신 디바이스와 같은 이동 통신 (114) 을 통합할 수도 있다. LHOST (102) 는 이동국 관리자 (MM) 을 이용하여 이동 단말기 (114) 와 REMHOST (110) 사이의 통신을 용이하게 한다. MM (112) 은 자주 이동 단말기 (114) 에 통합될 수 있지만, 도 1 에 도시된 바와 같이 MM (112) 은 이동 단말기 (114) 로부터 분리된 엔터티임이 또한 고려될 수도 있다. MM (112) 은 이동 트랜스시버 (XCVR; 116) 에 결합되거나, 포함할 수도 있고, XCVR (116) 과 통신 프로세스 (120), 또는 TCP 프로세스와 같은 서비스 모듈 또는 연합된 인터페이스와의 통신을 용이하게 할 수도 있다. MM (112) 은 통신 버퍼 (118) 과 같은 하나 이상의 통신 버퍼를 포함할 수 있다. 프로세스 (120) 는 이동 단말기 (114) 에서 실행하는 사용자 애플리케이션에 네트워킹 통신 서비스를 제공할 수도 있다. 프로세스 (120) 가 MM (112), 또는 이동 단말기 (114) 에서, 단독으로 또는 조합으로 실행하는 것은 본 발명 실시형태의 영역내에서 가능하다.
이동 단말기 (116) 는 라디오 수신기 (122) 및 라디오 송신기 (124) 를 포함할 수도 있다. 수신기 (126) 는 MSP (104) 로부터 인커밍 (incoming) 무선 메시지를 수신할 수 있고, 수신 버퍼 (126) 에 수신된 메시지를 전송할 수 있다. 송신기 (124) 는 송신 버퍼 (128) 로부터 MSP (104) 에 물리적 대기 (Um) 인터페이스를 통해 아웃고잉 (outgoing) 메시지를 전송한다. UM 인터페이스를 통한 메시지는 통상적으로 메시지 전송이 양방향성 및 전이중 통신방식이 될 수도 있는 소정의 무선 통신 프로토콜을 이용하여 전송될 수도 있다. 통상적으로 통신의 개시시에, REMHOST (110) 및 LHOST 상의 프로세스 (예를 들어, 애플리케이션; 120) 는 선택된 TCP 소켓을 사용하여 이들사이의 접속을 중재한다. 각각의 프로세스는 하나 이상의 소켓을 생성하여 통신에 영향을 미친다. 2 개 이상의 소켓들이 통신 버퍼 (118) 를 공유할 수도 있고, 메모리 공간의 할당을 위해 경쟁할 수도 있 지만, 통신 버퍼 (118) 는 LHOST (102) 에서 생성된 각각의 소켓에 대해 할당될 수도 있다. TCP 접속이 설립되는 경우에, 통신 TCP 프로세스는 또한 REMHOST (110) 및 LHOST (102) 사이에 양방향으로 전송될 TCP 세그멘트량 및 사이즈와 같은 다른 파라미터 및 포트 (port) 넘버를 식별할 수도 있다. 통신 버퍼 (118) 는 송신 버퍼 (128) 에 할당될 수 있고, 수신 버퍼 (126) 에 할당될 수도 있다. 유사하게, REMHOST (110) 에서, 통신 버퍼 (132) 는 수신 버퍼 (134) 및 송신 버퍼 (136) 에 할당될 수도 있다. 수신 버퍼 (126) 및 송신 버퍼 (128) 가 물리적으로 분리된 엔터티로서 나타나지만, 구별은 또한 가상적이 될 수도 있다. 이용가능한 통신 메모리 공간은 하나 이상의 통합된 또는 분리된 메모리 디바이스 또는 모듈로 맵핑될 수 있다.
단말기 (114) 로부터 수신된 아웃고잉 메시지는 예를 들어, 버퍼 판독 동작에 대응하여 송신 버퍼 (128) 에 프로세스 (120) 에 의해 전송될 수 있다. 송신 버퍼 (128) 에서의 메시지는 송신기 (124) 에 의해 MSP (104) 에 전송될 수도 있다. LHOST (102) 로부터 PEMHOST (124) 로의 메시지 송신과 관련하여, 송신된 메시지 카피는 버퍼 (128) 프리 메모리의 선택된 메모리 위치에 저장될 수 있고, 확인응답중에, 커미트된 메모리에 존재하도록 지칭된다. LHOST (102) 및 REMHOST (110) 사이의 통신이 계속되는 경우, 커미트된 메모리에 관련된 송신 버퍼 (128) 내의 메모량은 예를 들어, 프로세스 (120) 으로부터 수신된 아웃고잉 메시지 및 REMHOST (110) 에 전송된, 송신된 메시지 카피 모두를 포함하여 변할 수도 있다.
메시지가 페이로드 및 헤더를 포함하는 경우, 헤더는 통상적으로 대응하는 메시지 식별자를 포함한다. 송신자 호스트로부터 수신자 호스트에 송신된 특정 메시지에 대응하는 메시지 식별자는, 수신자 호스트가 송신자 호스트로부터 전달된 메시지 또는 세그멘트를 정확히 수신하고, 재명령하고, 수리하고, 확인응답하고, 재송신을 요구할 수도 있는 메커니즘을 제공하도록 효율적으로 접합한 응답 지시자이 될 수도 있다. 본 명세서에서 이용된 바와 같이, 수신된 메시지 식별자라는 용어는 수신자 호스트가 송신자 호스트로부터 선택된 메시지의 수신을 확인할 수 있는 응답 지시자를 설명하도록 이용될 수 있다.
양방향성 통신에서, 메시지 흐름은 네트워크를 통해 호스트 통신 사이에서 생성될 수도 있다. 제 1 메시지 흐름은 송신자 호스트로서 제 1 호스트와 수신자 호스트로서 제 2 호스트 사이에 생성될 수도 있다. 제 2 메시지 흐름은 또한 송신자 호스트로서 제 2 호스트와 수신자 호스트로서 제 1 호스트 사이에 설립될 수도 있다. 통신을 용이하게 하도록, 메시지 내의 관리상의 정보를 포함하는 것이 유리할 수도 있다. 예시적인 관리상의 정보는 호스트 IP 주소, 포트 식별자, 에러 검증 표지, 및 메시지 식별자를 포함할 수도 있다. 긍정 확인응답 기술을 이용하는 것과 같은 일부 신뢰할 수 있는 앤드-투-앤드 프로토콜에서, 메시지 흐름과 관련된 메시지 식별자는 증가하는 숫자 시퀀스에서 지칭될 수도 있다. 헤더는 예를 들어, 각각의 메시지 식별자와 같은 통신 행정상의 정보를 포함할 수도 있다. 예를 들어, TCP 세그멘트는 데이터 페이로드 및 헤더로 구성될 수 있다. 각각의 메시지 확인응답 (ACK) 에 대하여, 메시지 흐름내에서 각 각의 메시지 연속적인 위치를 나타내는 메시지 식별자는 확인응답 넘버 (ACKNUM) 으로 칭한다. ACKNUM 값은 ACKNUM 서수성 또는 간단히, 서수성으로 칭할 수도 있다. 통상적으로, 서수성은 메시지 흐름 시퀀스에서 송신된 메시지 넘버에 관하여 증가한다. 따라서, 메시지 식별자는 메시지 ACKNUM 과 관련된 메시지 위치를 나타낼 수도 있고, 메시지 흐름 시퀀스와 관련된 메시지 위치를 가리킬 수도 있다. 일반적으로, 송신된 메시지 식별자는 송신자 호스트로부터 수신자 호스트로 송신된 메시지에 대응할 수도 있다. 유사하게, 수신된 메시지 식별자는 송신자 호스트로부터 수신된 호스트에 의해 성공적으로 수신된 메시지에 대응할 수도 있다. 양방향성 메시지 흐름에서, 지역 호스트로부터 원격 호스트로의 제 1 메시지에서의 ACKNUM 에 대해, 값의 범위, 또는 시퀀스는 일반적으로, 예를 들어, 원격 호스트로부터 지역 호스트로의 제 2 메시지 흐름에 대해 이용된 ACKNUM 시퀀스와 다를 수 있다.
송신자 호스트는 송신된 메시지 식별자를 사용하여 메시지 송신 및 저장을 관리한다. 이러한 식별자는 지역 호스트에 의해 저장될 수는 있지만, 아직 수신자 호스트에 의해 수신된 것으로 확인응답되지 않은 송신된 메시지를 식별하도록 이용된다. 수신자 호스트는 메시지 수신을 관리하고 수신된 메시지를 프로세싱하도록 송신된 메시지 식별자를 이용할 수도 있다. 수신자 호스트는 또한 송신된 메시지 식별자를 이용할 수도 있어, 송신자 호스트로의 ACK 응답에 포함될 수도 있는 수신된 메시지 식별자를 공식화한다. ACK 응답에서, 수신자 호스트는 예상된 이후의 메시지를 나타내는 수신된 메시지 식별자를 포함할 수도 있다. 수 신된 메시지 식별자는, 송신자 호스트에 의해 ACK 에서 수신된 경우에, ACKNUMR 의 서수성을 가지는 메시지로 재개하도록, 수신자 호스트가 송신자 호스트에게 송신을 재개하기를 요구하는 것을 가리키는 수신자 호스트에 의한 ACKNUMR 의 서수성을 할당받을 수도 있다. 함축적으로, ACKNUMR 의 서수성을 가지는 수신된 메시지 식별자를 지니는 ACK 로 송신자 호스트에 대해 응답을 함으로써, 수신자 호스트는 ACKNUMR 보다 작은 서수성을 가지는 수신된 메시지 식별자로 송신된 메시지의 수신을 확인한다. 따라서, 수신된 메시지 식별자는 송신자에 의해 저장될 수도 있지만, 확인응답을 기다리는 송신된 메시지의 카피와 관련될 뿐만 아니라, 이전에 송신된 메시지의 송신된 메시지 식별자에 대응하는 정의된 관계를 가질 수도 있다.
인커밍 호스트에서, 송신된 메시지는 송신 전후에 송신 버퍼에 저장될 수도 있다. 유사하게, 수신된 메시지는 수신된 후, 그리고 애플리케이션에 의해 프로세싱되기 전에 수신 버퍼에 저장될 수도 있다. 송신과 수신 버퍼 사이의 구별은, 통신의 많은 메시지량 기간동안, 유연할 수도 있고, 이용가능한 버퍼 공간은 거의 고갈까지 감소할 수도 있다. 수신된 ACK 가 송신자에 의해 프로세싱되지 않는 경우에, 송신자 호스트는 성공적으로 확인응답된 마지막 메시지를 따르는 메시지를 개시하는 저장된 메시지를 재송신할 수도 있다. 재송신은 ACK 가 수신될 때까지 반복될 수도 있고, 호스트가 예를 들어, 고갈된 메모리 위치때문에 인커밍 애크를 프로세스할 수 없을 수도 있는 경우에, 수신된 ACK 는 서비스 시간완료, 접속손실, 및 수신된 서비스 품질의 품질저하를 초래할 수도 있다.
송신자 호스트로서 LHOST (102) 및 수신자 호스트로서 REMHOST (110) 의 예시적인 환경에서, LHOST (102) 는 REMHOST (110) 에 메시지 시리즈를 송신할 수도 있다. 일반적으로, 송신전에, REMHOST (110) 으로의 메시지 아웃고잉은 예를 들어, TCP 세그멘트와 같은 LHOST 송신 버퍼에 저장될 수도 있다. 연속적인 메시지는 예를 들어, ACKNUMR 보다 작은 서수성을 가지는 증가하는 서수성의 송신된 메시지 식별자를 할당받을 수도 있다. 아웃고잉 메시지는 MSP (104) 로의 UM 인터페이스를 통해, 선정된 무선 통신 프로토콜을 이용하여 트랜스시버 (116) 로부터 송신될 수도 있다. MSP (106) 에 의해 수신된 메시지는 MSP 라우터 (106) 을 통해, REMHOST (110) 에 네트워크 (108) 를 거쳐 통신될 수 있다. REMHOST (110) 는 통신 버퍼 (132) 의 수신 버퍼 (134) 에 수신된 메시지를 저장할 수도 있다. REMHOST (110) 가 ACKNUMR 보다 작은 서수성을 가지는 송신된 메시지 식별자를 가지는 메시지를 포함하는 LHOST (102) 에 의해 송신된 메시지를 성공적으로 수신하는 경우, REMHOST (110) 는 LHOST (102) 에 ACKR 을 송신함으로써 메시지의 수신을 확인응답할 수도 있다. ACKNUMR 의 서수성을 가지는 수신된 메시지 식별자를 ACKR 에 포함함으로써, REMHOST (110) 는, 예를 들어, ACKNUMR 의 서수성을 가지는 송신된 메시지 식별자를 가지는, 메시지 흐름 시퀀스에서 이후의 메시지를 요구하는 것뿐만 아니라, ACKNUMR 보다 작은 서수성을 가지는 메시지의 수신을 확인할 수도 있다. REMHOST (110) 으로부터 네트워크 (108) 을 통해 통신된 후에, MSP 라우터 (106) 는 선정된 무선 통신 프로토콜을 이용하여 LHOST (102) 에 UM 인터페이스를 통해 ACKR 을 송신하는 MSP (104) 에 ACKR 을 직접 연결할 수도 있다. LHOST (102) 의 라디오 수신기는 인커밍 신호를 검증할 수 있고 물리적 신호를 논리적 수신된 메시지 예를 들어, TCP 세그멘트로 변환한다.
REMHOST (110) 에 메시지를 송신하는 LHOST (102) 와 실제적으로 동시에 LHOST (102) 는 또한 REMHOST (110) 로부터 메시지를 수신할 수도 있다. 일반적으로, REMHOST (110) 로부터 LHOST (102) 로 가는 메시지는 예를 들어, TCP 세그멘트와 같은 REMHOST 송신 버퍼 (136) 에서의 송신 이전에 저장될 수도 있다. 아웃고잉 메시지는 MSP (104) 로 네트워크 (108) 를 거쳐, MSP (106) 을 통해 송신될 수도 있다. MSP (104) 는 선정된 무선 통신 프로토콜을 이용하여, LHOST (102) 로 Um 인터페이스를 통해 메시지를 송신할 수 있다. LHOST (102) 내의 라디오 수신기 (122) 는 인커밍 신호를 검증하고 물리적 신호를 논리적 신호 예를 들어, TCP 세그멘트로 변환할 수 있다. 연속적인 메시지는 예를 들어, ACKNUML 보다 작은 서수성을 가지는, 증가하는 서수성의 송신된 메시지 식별자를 할당받을 수도 있다. ACKL 의 서수성을 가지는 수신된 메시지 식별자를 ACKL 에 포함함으로써, 예를 들어 ACKNUML 의 서수성을 가지는 송신된 메시지 식별자를 가지는, 메시지 흐름 시퀀스에서 이후의 메시지를 요구할 뿐만 아니라, ACKNUML 보다 작은 서수성을 가지는 메시지의 수신을 확인할 수도 있다.
일반적으로, 수신된 메시지는 프로세스 (120) 가 선택된 수신된 정보를 요구 할때까지 수신 버퍼 (126) 에 저장될 수도 있다. 프로세스 버퍼 판독 동작에 응답하여, 수신 버퍼 (126) 에 저장된 수신된 페이로드는 프로세스 (120) 에 전달될 수 있고, 데이터는 예를 들어, 이동 단말기 (114) 에 의해 이용을 위해 이용가능하도록 된다. 버퍼 판독 후에, 버퍼 (126) 내의 커미트된 메모리는 프리 메모리로서 지칭된다. 그러나, 버퍼 판독 동작이 계류중에, 추가적인 메시지 또한 REMHOST (110) 로부터 수신될 수도 있다. REMHOST (110) 와 LHOST (102) 사이에 통신이 계속중에, 커미트된 수신 메모리량에 관련된, 수신 버퍼 (126) 내의 프리 수신 메모리량이 축소할 수도 있다. 진행중인 버퍼 기록 동작 완료때까지 프로세스 (120) 은 수신 버퍼 (128) 에 대한 버퍼 판독 동작의 수행을 연기하는 경우, 이용가능한 프리 메모리 위치 넘버 또한 감축될 수도 있다. 버퍼 스타베이션 또는 버퍼락은 예를 들어, REMHOST (110) 으로부터 송신된 많은 메시지량을 수신하는 수신 버퍼 (126) 와 실제적으로 동시에, 프로세스 (120) 가 송신 버퍼 (128) 에 많은 메시지량을 전송하는 경우에, 발생할 수도 있다. 또한, 프로세스 (120) 은 버퍼 (128) 로 진행중인 버퍼 기록 동작을 완료한 후까지, 버퍼 (126) 으로부터 버퍼 판독 동작 수행을 연기하도록 구성될 수도 있다. REMHOST (110) 으로 전송된 메시지 카피를 보유할 뿐만 아니라, 프로세스 (120) 로부터 메시지를 수신하는 송신 버퍼 (128) 와 함께, 통신 버퍼 (118) 내의 이용가능한 메모리는 감소하기 시작한다. 본 발명의 실시형태는, 소정의 버퍼 상태를 모니터링하고, 그 상태가 현재인 경우, 계류중이고 잠재적으로 지연된 동작을 완료하도록 충분한 메모리를 릴리스하여, 통신 버퍼 메모리 관리에 도움을 준다. 임의의 실시형태 에서, 응답 지시자는 소정의 버퍼 상태에 응답하는 수신된 메시지 식별자로부터 얻어질 수도 있다. 이 응답 지시자는 확인응답된 송신된 메시지와 정의된 관계를 가질 수도 있고, 프리 메모리, 송신된 메시지 카피를 저장하는 선택된 커미트된 메모리 위치로서 지칭되도록 이용될 수도 있다. 본 명세서의 실시형태에 따라, 예를 들어, 호스트가 ACKNUM 의 서수성을 가지는 ACK 를 수신하는 경우에, 호스트는 선택된 송신 메시지 카피를 프리 메모리로서 저장하는 커미트된 메모리 위치를 지칭할 수도 있다. ACKNUM 보다 작은 서수성을 가지는 각각의 송신된 메시지 식별자를 가지는 송신된 메시지 카피를 지칭하는 것이 유리할 수도 있다. 프리 메모리 위치는 예를 들어, 새롭거나, 현존하는 프로세스에 의해 유리하게 이용될 수도 있고, 이전에 송신된 메시지의 ACK 관련 보유로 인한 버퍼 고갈은 경감될 수도 있다.
차동 프로세싱 메모리 제어기 (DPMC; 130), 또는 이의 기능적으로 동등한 것이 통신 버퍼 (118) 를 구성하는 메모리 위치의 개선된 관리를 제공하는 것이 바람직할 수도 있다. 이 관리된 메모리 위치는 송신 버퍼 (126), 수신 버퍼 (118), 또는 모두를 포함할 수도 있다. DPMC (130) 는 소정의 버퍼 상태, 예를 들어, 메모리 위치 가능성에 관련된 확인응답된 송신된 메시지 카피를 저장하는 커미트된 메모리 위치를 위해, 통신 버퍼 (118) 를 모니터링할 수도 있다. 버퍼 (118) 내의 소정의 메모리 상태에 응답하여, DPMC (130) 는 REMHOST (110) 로부터 수신된 메시지 또는 TCP 세그멘트를 검사할 수도 있어, 어느 커미트된 메모리가 릴리스될 수도 있는지를 결정한다. 상술한 바와 같이, 편리하게, 수신된 메시지의 ACKNUM 은 송신된 메시지 카피의 ACKNUM 에 대응하고, 송신된 메시지 카피가 저장된 버퍼 (128) 내의 커미트된 메모리 위치에 대응할 수 있다. 수신된 메시지의 ACKNUM 서수성보다 작은 ACKNUM 서수성을 가질 수도 있는, 하나 이상의 송신된 메시지 카피에 대응하는 송신 버퍼 (128; 예를 들어, 통신 버퍼 (118)) 내의 커미트된 메모리는 릴리스되고 프리 메모리로서 지칭될 수도 있다. 예를 들어, 송신 버퍼 (128) 에 대한 버퍼 기록 동작이 진행중인 경우에, 송신 버퍼 (128) 내의 커미트된 메모리의 릴리스가 수행될 수도 있음이 고려된다. 이 릴리스된 메모리 위치는 예를 들어, 송신 버퍼 (128) 상에서, 버퍼 기록과 같은 메모리 동작을 완료하도록 이용될 수도 있다. 유리하게, 버퍼 (128) 상에서 버퍼 기록 동작을 완료함으로써, 프로세스 (120) 는 수신 버퍼 (126) 상에서 버퍼 판독 동작을 수행하고, 그 후, 수신 버퍼 (126) 내의 메모리 위치를 릴리스하도록 향할 수 있다.
도 2A 및 2B 는 도 1 을 참조하여 설명된 원리를 설명한다. 도 2A 는 도 1 의 LHOST (102) 의 MM (112) 에 유사하게, MM (200) 을 설명한다. MM (200) 은 본 명세서에서 차동 프로세싱 메모리 제어기 (DPMC; 210) 의 간단화된 전형적인 실시형태를 포함한다. 유사하게, 도 2B 는 본 명세서에서 차동 프로세싱 메모리 제어기 (270) 의 간단화된 전형적인 실시형태를 포함하는 도 1 의 LHOST (102) 의 MM (112) 와 또한 유사한, MM (250) 을 설명한다. 도 2A 및 2B 에서, 용어 "지역 호스트" 는 각각 MM (200 및 250) 을 포함할 수 있고, "원격 호스트" 는 도 1 에 도시된 REMHOST (110) 에 의해 나타난 것과 유사한 것이 될 수 있다. 도 2A 에서의 DPMC (210) 및 도 2B 에서의 DPMC (270) 은 도 1 에서의 DPMC (130) 의 많은 가능한 구현들의 2 개가 될 수도 있다. 바람직하게, MM (200 및 250) 은 통신 프로토콜의 층을 이룬 계층을 이용하여 각각의 호스트 (도시 생략) 를 가진 양방향성, 전이중통신방식 통신을 수행한다. MM (200 및 250) 중 하나가 이동 무선 호스트 디바이스에 포함되는 경우, 대응하는 XCVR (205, 255) 은 소정의 무선 통신 프로토콜을 사용할 수도 있어, 대응하는 MSP (도시 생략) 로 Um 인터페이스를 통해 통신한다. 응답형 신뢰할 수 있는 통신 프로토콜은 예를 들어, 네트워크, 전송, 또는 애플리케이션 층레벨에서 이용되는 것이 바람직하다. 편리하게, 많은 확인응답-기반 프로토콜이 통신 분야에서 공지돼있다. 도 1 에서와 같이, 도 2A 및 2B 는 메모리 제한 이동 통신 디바이스의 환경에서 공지된 TCP/IP 프로토콜에 관한 것이다. 또한, 도 2A 및 2B 에 관련하여, 설명된 메모리 동작은 각각의 프로세스 (215, 255) 를 실행하는 MM (200, 250) 의 환경에서 존재할 수 있다. 프로세스 (215, 255) 는 원격 호스트로 아웃고잉하는 메시지에 대한 버퍼 기록 동작을 완료한 후에, 원격 호스트로부터 인커밍하는 메시지에 대해 버퍼 판독 동작을 수행한다.
도 2A 로 돌아가서, MM (200) 은 트랜스시버 (XCVR), DPMC (210), 및 원격 호스트 (도시 생략) 와 통신하도록 협력하는 프로세스 (215) 를 포함한다. MM (200) 은 제한된 메모리가 될 수도 있는, 송신 버퍼 (220) 를 포함하는, 소정의 메모리 위치량을 가지는 통신 버퍼를 포함할 수 있다. 원래, DPMC (210) 은 메모리 위치를 프리 메모리 위치로서 지칭할 수도 있다. 프로세스 (215) 로부터의 메시지는 XCVR (205) 를 이용하여 원격 호스트로 송신될 수 있다. 확인응답된 메시지의 송신된 메모리 카피를 버퍼 (220) 내의 메모리 위치에 저장하는 것은 바람직하다. 예를 들어, 가장 최근에 송신된 메시지 카피는 송신 버퍼 (220) 의 메모리 위치 (226) 에 저장될 수도 있다. DPMC (210) 는 메모리 위치 (226) 를 예를 들어, 원격 호스트로부터 응답이 수신될 때까지, 메모리 위치에 이후의 기록을 금지하는, 커미트된 메모리 위치로서 지칭할 수 있다. 유리하게, 버퍼 (220) 내의 각각의 송신된 메시지 카피는 커미트된 메모리 위치에 저장될 수 있고, 송신된 메시지 식별자, 예를 들어, 송신된 TCP ACKNUM 과 관련될 수 있다.
도 1 에 관련하여 설명한 바와 같이, TCP ACKNUM 은 정의된 서수성, 즉, 통신 동안 일반적으로 증가하는 TCP 세그멘트 식별자 서수성을 가지는, 정의된 카운트 명령 또는 숫자 시퀀스를 가지는 넘버가 될 수 있다. 예를 들어, 수신자가 (XACKNUM-1) 의 값을 가지는 메시지 식별자를 가지는 세시지, 또는 TCP 세그멘트를 수신하는 경우에, 수신자는 송신자에게 다음 메시지를 차례로, 즉, (XACKNUM) 의 값을 가지는 TCP ACKNUM 을 가지는 세그멘트를 송신하도록 하는 요청으로 응답한다. 함축적으로, 메시지 (XACKNUM) 에 대한 요청에 의해, 수신자는 (XACKNUM) 보다 작은 서수성을 가지는 메시지 식별자를 가지는 이전에 송신된 세그멘트의 수신을 송신자에게 확인한다. 따라서, (XACKNUM) 보다 작은 서수성을 가지는 송신된 메시지 식별자를 가지는, 커미트된 메모리 (222) 에 저장된 송신된 메시지 카피는 릴리스 될 수도 있다.
XCVR (205) 은 원격 ,호스트에 의해 전송된 수신된 메시지 (236) 를 수신 버퍼 (212) 로 전송할 수 있다. 수신된 메시지 (236) 는 내부에 수신된 메시지 식별자를 가지고, 수신된 메시지 식별자가 커미트된 메모리 (222) 에 저장된 송신된 메시지 카피에 대응하는 송신된 메시지 식별자와의 정의된 관계를 가지는 것은 바람직하다. 소정의 버퍼 상태에 응답하여, DPMC (210) 는 릴리스 식별자를 포함하는, 응답 지시자가 될 수신된 메시지에서 수신된 메시지 식별자를 지정할 수 있다. DPMC (210) 는 또한, 지시자 또는 릴리스 식별자와 관련된 메시지 식별자를 가지는 하나 이상의 송신된 메시지 카피에 대응하는 하나 이상의 커미트된 메모리를 식별하고, 그렇게 식별된 커미트된 메모리를 프리 메모리로서 지칭하도록 구성될 수 있다. 본 발명의 실시형태는 수신된 식별자를 이용할 수 있어, 확인응답된 하나 이상의 송신된 메시지와 관련될 수 있는, 하나 이상의 송신된 메시지 식별자를 식별한다. 유리하게, 송신된 메시지 식별자는 확인응답된 송신된 메시지 카피에 대응할 수 있다. Y이 식별자는 특정 송신된 메시지 카피가 저장될 수도 있는 커미트된 메모리를 식별하도록 이용될 수도 있다.
이용하는 경우, DPMC (210) 는, 예를 들어, 커미트 디렉토리 (230) 및 메모리 카운터 (232) 를 이용하여, 버퍼 (220) 를 모니터링할 수 있다. 통신 버퍼, 예를 들어, 송신 버퍼 (220) 가 소정의 버퍼 상태에 있지 않은 경우에, 수신된 메시지 (238) 는 관례대로 프로세싱되고, 예를 들어, 수신 버퍼 (212) 에 저장된다. 반면에, 통신 버퍼가 소정의 버퍼 상태에 있는 경우에, 수신된 메시지 (238) 는 레지스터 (240) 를 분석하도록 전환될 수 있다. 예시적인 DPMC (210) 에서의 이 용을 위한 적합한 소정의 버퍼 상태는, 카운터 (232) 에 의해 결정될 수도 있는 바와 같이 소정의 메모리 임계값보다 작은 프리 메모리 (224) 의 넘버가 될 수도 있다. 커미트 디렉토리 (230) 는 버퍼 (220) 내의 어느 메모리 위치가 커미트된 메모리 (222) 로서 지칭될 수도 있는지를 식별한다. 카운터 (232) 는 소정의 메모리 위치 넘버에 관련하여, 버퍼 (220) 내에 남아있는 메모리 위치 (224) 의 넘버를 결정하도록 이용될 수도 있다. 또한, 디렉토리 (230) 는 트랙 (track) 프리 메모리에 용이하게 적합할 수 있다. 유사하게, 카운터 (232) 는 대신 커미트된 메모리를 트랙할 수도 있다. 레지스터 (240) 에서, 차동 프로세싱된 수신된 메시지 (238), TCP 세그멘트는 헤더 (242) 및 페이로드 (246) 로 파스될 수 있다. 수신된 메시지 식별자 (244) 는 그로부터 추출될 수 있고, 릴리스 식별자로서 지정될 수 있다. 페이로드 (246) 는 감소하는 메모리 공간에 대한 메모리 요구를 감축할 수도 있는, 원격 호스트로 복귀하는 대응하지 않는 ACK 메시지로, 버려질 수도 있다. 지역 호스트로부터 수신된 메시지 (238) 에 대한 ACK 의 부족은 원격 호스트가, 데이터 부족을 바람직하게 최소화하는, 메시지 (238) 를 재송신하도록 야기할 수 있다. 그러나, 응답은, 수신 버퍼 (212) 로 마지막으로 성공적으로 프로세싱된 수신된 메시지 (236) 의 ACKNUM 을 가지는 ACK 의 복귀와 같이 전송될 수도 있다.
ACKNUM 값에 관하여, 원격 호스트는 지역 호스트로 메시지 (236) 를 (XACKNUM) 의 서수성을 가지는 수신된 메시지 식별자 TCP ACKNUM 을 가지는 TCP 세그멘트로서 송신하고, 원격 호스트는 (XACKNUM-1) 또는 이하의 TCP ACKNUM 서수성을 가지는 송신된 메시지 식별자를 가지는 이전에 송신된 메시지의 수신을 함축적으로 확인한다. 도 2A 에 상술된 예에서, TCP ACKNUM 시퀀스 넘버 (XACKNUM-1) 는 대응하는 메시지가 저장된, 커미트된 송신 메모리 위치 (226) 에 상징적으로 관련될 수도 있다. 논리값이 될 수 있는 릴리스 식별자 (224) 를 물리적 커미트된 메모리 위치, 예를 들어, 메모리 위치 (226) 으로 변환시키는 것은 유용할 수도 있다. 이러한 변환은 변환용 별도 버퍼 (TLB; 234) 와 같은 논리-물리 멥핑 엔터티 (Logical-to-physical mapping entity) 에 의해 제공될 수 있다. TLB (234) 는 릴리스 식별자 (244), 예를 들어, TCP ACKNUM 시퀀스 넘버, (XACKNUM-1) 를 수신하고, 커미트 디렉토리 (230) 에 식별된 커미트된 메모리 위치 (226) 의 물리적 주소를 가리키는 신호를 출력한다. 커미트 디렉토리 (230) 는, TLB (234) 로부터의 상태 신호에 응답하여, 프리 메모리 (224) 로서, 현재 확인응답된, 메모리 위치 (226) 을 지칭할 수 있다.
상술한 바와 같이, 원격 호스트로부터의 응답은 단일의 송신된 메시지 카피뿐만 아니라, 송신된 메시지 카피의 시리즈, 또는 블록의 수신을 확인응답할 수도 있다. 가장 최근에 수신된 메시지 (238) 는 커미트된 메모리 (222) 내의 다중 송신된 메모리 카피의 각각의 송신된 메시지 식별자로 정의된 관계를 가지는, 수신된 메시지 식별자 (244) 를 포함할 수 있다. 다중 송신된 메시지 카피는 커미트된 메모리 (222) 의 메모리 블록, 또는 다중 메모리 위치를 차지할 수도 있다. 따라서 릴리스 식별자 (244) 는 메모리 블록과 관련될 수 있고, 릴리스 식별자 (244) 는 커미트 디렉토리가 커미트된 메모리 블록을 프리 메모리 블록으로서 지칭하도록 야기할 수 있다. DPMC (210) 의 동작에 대등한, FSM (248) 과 같은, 제한된 상태 기계를 이용하는 것이 바람직할 수도 있다.
도 2B 에서, MM (250) 은 DPMC (260) 및 통신 버퍼 (254) 를 포함할 수 있다. 유리하게, 버퍼 (254) 가 소정의 메모리 위치 넘버에 관하여, 메모리 제한이 될 수도 있지만, 통신 버퍼 (254) 에 배치된 메모리 공간은, DPMC (260) 에 의해 용이해지는 바와 같이, 정적으로 또는 동적으로 할당된다. DPMC (260) 는 송신 버퍼 (256a 내지 256c) 상에서와 같이, 하나 이상의 버퍼에 관하여 d-ACK 동작을 구현하도록 구성될 수 있다. DPMC (260) 는 또한 송신 버퍼 (256a 내지 256c) 에 대한 메모리 관리를 제공하도록 적합할 수 있고, 마찬가지로, 수신 버퍼 (258a 내지 258c) 에 대한 메모리 관리 서비스를 제공할 수도 있다. 정적 및 동적 메모리 할당 기술은 이 분야에 공지돼있다.
정적으로 할당된 메모리 공간에서, 하나 이상의 송신 버퍼 (256a 내지 256c), 및 하나 이상의 수신 버퍼 (258a 내지 258c) 는 고정된 사이즈 및 경계로 할당될 수도 있다. 통상적으로, 하나의 버퍼쌍은 각각의 지역 호스트 TCP 소켓을 할당받는다. 고정된 사이즈 및 경계는 각각의 할당된 버퍼에 대해 균일하거나 선택적이 될 수도 있고, 송신 버퍼 또는 수신 버퍼 중 하나에 위치할 수 있다. 또한, 정적으로 할당된 메모리에서, DPMC (260) 는, 예를 들어, 프로세스 (255) 의 실행 이전에, 할당될 수도 있는 메모리 위치 넘버를 설립할 수도 있고, 이 메모리 구성은, 예를 들어, 설계 프로세스동안 설립될 수도 있다. 반대로, 동적으로 할당된 메모리 공간에서, 메모리 위치는 선택된 송신 버퍼 (256a 내지 256c), 수신 버퍼 (258a 내지 258c), 또는 이들의 일부 조합에 대해 할당될 수 있다. 할당은 프로세스 (255) 개시의 실행 전 또는 후에 수행될 수도 있다. Y편리하게, DPMC (260) 는 통신, 예를 들어, 애플리케이션 또는 상위층 서비스 프로세스와 협력하는 것을 개시시에 메모리 공간을 할당하도록 구성될 수도 있다. DPMC (260) 는 프로세스 (255) 의 실행동안, 예를 들어, 실제 시간 메시지 흐름 요구에 응답하여, 적합가능한 버퍼 사이즈 및 경계를 제공할 수도 있다. 일 예에서, DPMC (260) 는, 예를 들어, 송신 요구가 수신 요구를 초과하는 경우, 또는 고폭 송신 프로세스를 실행하는 경우의 기간 동안 수신 버퍼 (258a) 보다는 송신 버퍼 (256a) 로 메모리 공간을 할당할 수도 있다. 유사하게, 예를 들어, 송신 버퍼 (256b) 에 관련된 프로세스 (255) 의 또 다른 소켓이 원격 호스트와 통신하는 고폭 통신에 종사하는 동안, 송신 버퍼 (256c) 에 관련된 프로세스 (255) 의 소켓이 대기 상태에 들어가는 경우에, DPMC (260) 는 송신 버퍼 (256c) 로부터 더 많은 메모리 공간을 송신 버퍼 (256b) 에 할당할 수도 있다.
DPMC (210) 과 유사하게, DPMC (260) 는 예를 들어, 하나 이상의 커미트 디렉토리를 사용함으로써 커미트된 송신 메모리 위치 또는 프리 송신 메모리 위치가 되는, 통신 버퍼 (254) 내의 선택된 메모리 위치를 지칭할 수 있다. DPMC (260) 는 송신 커미트 디렉토리 (262) 를 사용하여, 확인응답된 메시지와 관련된 송신된 메시지 카피에 대응하는 메모리 위치를 식별한다. DPMC (260) 는 또한 수신 커미트 디렉토리 (278) 를 사용하여, 예를 들어, 커미트된 수신 메모리 위치, 프리 메모리 위치, 또는 이들의 조합으로서 지칭될 수도 있는 통신 버퍼 (254) 의 수신 버퍼 (258a 내지 258c) 내의 메모리 위치를 식별한다. 또한, 통신 버퍼 (254) 및 DPMC (260) 는 동적 메모리 할당을 제공하도록 구성될 수 있는 경우, 프리 수신 메모리 위치는 프리 송신 메모리 위치가 되도록 동적으로 재할당될 수도 있고, 그 역도 가능하다.
소정의 버퍼 상태에 응답하여, DPMC (260) 는 인커밍 메시지를, 내부에 수신된 메시지 식별자를 가지는 수신된 메시지로서 차동 프로세스 할 수 있다. 소정의 버퍼 상태가, 예를 들어, 소정의 메모리 임계값에 미치지 않는 프리 메모리량이 되는 것이 편리하다. 이 메모리량은 메모리 위치 카운터 (266) 를 이용하여 결정될 수도 있다. 통상적으로, MM (250) 은 XCVR (252) 를 통해 수신된 메시지를 받아들인다. 통신 버퍼 (254) 가 소정의 버퍼 상태가 아닌 경우, 메시지 (268) 는 버퍼 (258a 내지 258c) 내의 선택된 프리 수신 메모리에 저장될 수 있다. 임의의 실시형태에서, 소정의 버퍼 상태는 버퍼 (256a 내지 256c) 내의 프리 메모리의 실제적인 고갈을 포함할 수도 있다. 그러나, 소정의 버퍼 상태가 통신 버퍼 (254) 내에 존재하는 경우에, DPMC (260) 는 레지스터 (270) 를 분석하도록 메시지 (268), 여기서는 세그멘트를 허용할 수 있고, 이 세그멘트를 헤더 (272) 와 페이로드 (276) 로 파스할 수 있다. 헤더 (272) 내에 있을 수도 있는 수신된 메시지 식별자는 헤더 (272) 로부터 추출될 수 있고, 릴리스 식별자로서 지정될 수 있다.
도 2A 에서의 DPMC (210) 과 유사하게, 릴리스 식별자 (274) 는 커미트된 메모리 내의 하나 이상의 관련 송신 메시지를 식별하도록 도 2B 에서 DPMC (260) 에 의해 이용될 수 있다. 릴리스 식별자 (274) 와 관련 송신 메시지 카피의 물리적 주소 사이의 변환을 제공하는 것이 유용한 경우, TLB (264) 와 같은 맵퍼 는 릴리스 식별자 (274) 를 릴리스 신호로 변환할 수도 있다. TLB (264) 로부터의 릴리스 신호에 응답하여, TX 커미트 디렉토리 (262) 는 릴리스 식별자 (274) 와 관련된 송신된 메시지 카피가 저장될 수도 있는 커미트된 송신 메모리를 식별하고 프리 메모리로서 지칭할 수도 있다. 그러나, TLB (264) 는 맵핑 또는 변환에 적합한 많은 디바이스 및 기술중 하나가 될 수 있다. 다중 메모리 위치 (블록) 가 릴리스 식별자 (274) 에 관련되는 경우, 릴리스 신호는, 커미트된 메모리의 하나 이상의 관련 블록이 프리 메모리가 되도록 지칭될 수 있는, 송신 커미트 디렉토리 (262) 에 제공될 수도 있다. 이러한 확인응답의 차동 프로세싱은 예를 들어, 통신 버퍼 (254) 에서의 메모리 위치가 고갈하는 경향이 될 수도 있는 버퍼 기록 동작동안, 버퍼 (256a 내지 256c) 와 같은 송신 버퍼 내의 프리 충분한 메모리에 바람직할 수 있다. 송신 버퍼 (256a 내지 256c) 상에서 진행중인 버퍼 기록 동작이 완료됨으로써, 프로세스 (255) 는 관련 수신 버퍼 (258a 내지 258c) 상의 버퍼 판독 동작을 수행하도록 허용될 수 있다.
별개의 엔터티로서 도시되었지만, 커미트 디렉토리 (230, 262, 278), 프리 메모리 위치 카운터 (232, 266), TLB (234, 264), 분석 레지스터 (240, 270), 및 FSM (248, 280) 의 일부 또는 모든 기능들은 통합되고, 분화되고, 추가되고, 제거 되고, 또는 바람직한 결과를 생성하도록 수정될 수도 있다.
도 3 은 예를 들어, 메모리 제한 이동 호스트에서 이용될 수도 있는 바와 같은 차동 확인응답 프로세스 (d-ACK) 의 일 실시형태를 설명한다. 예시적인 프로세스 (300) 은 도 1 의 각각의 예시적인 호스트 LHOST (102) 와 REMHOST (110) 사이의 긍정 확인응답과 TCP -기반 통신과 같이, 이동 호스트와 원격 호스트 사이의 응답형 신뢰할 수 있는 통신을 위해 사용될 수 있다. 프로세스 (300) 은 또한 도 2A의 DPMC (210) 에서, 또는 도 2B 의 DPMC (260) 에서 전체적으로 또는 부분으로 구현될 수도 있다. 이동 호스트 (도시 생략) 는 메시지 예를 들어, 원격 호스트로부터의 TCP 세그멘트를 수신하고 (Operation 310) , 통신 버퍼가 소정의 버퍼 상태에 있는지를 결정함으로써 (Op. 320) d-ACK 프로세스 (300) 를 진행할 수 있다. 이러한 상태에서, 예를 들어, TCP 버퍼 내의 프리 통신 버퍼 메모리 위치 넘버는 소정의 메모리 임계값 이하일 수도 있다. 통신 버퍼가 소정의 버퍼 상태에 있지 않은 경우, 메시지는 종래 방법으로 진행한다 (Op. 330). 그러나, 소정의 버퍼 상태가 통신 버퍼에 존재시에, 프로세스 (300) 는 수신된 메시지로부터 수신된 헤더를 추출, 예를 들어, TCP 세그멘트 내의 TCP 헤더를 추출함으로써 계속할 수도 있다 (Op. 340). 소정의 버퍼 상태는 예를 들어, 소정의 메모리 임계값보다 작은 프리 통신 버퍼 메모리 위치 넘버를 포함할 수도 있다. 통상적으로, 수신된 메시지는 수신된 메시지 식별자를 포함하는 헤더 및 페이로드로 구성될 수 있다. 편리한 데로, 프로세스 (300) 는 원격 호스트에 메시지 수신에 대한 응답을 제공하지 않고, 수신된 TCP 세그멘트에 대응하는 TCP 데이터 페이 로드를 버릴 수 있다 (Op. 350). 본 예에서, 확인응답을 전송하지 않음으로써, 원격 호스트는 데이터 손실을 바람직하게 최소화하면서 수신된 메시지를 재송신한다. 수신된 메시지 식별자 (예를 들어, 수신된 TCP 세그멘트 확인응답 넘버) 를 식별하는 헤더를 검사하고, 수신된 메시지 식별자를 릴리스 식별자로서 지정함으로써 프로세스 (300) 는 계속된다 (Op. 360). 릴리스 식별자, 예를 들어 ACKNUM, 는 원격 호스트가 릴리스 식별자보다 작은 서수성을 가지는 송신된 메시지 식별자를 가지는 메시지의 수신을 확인함을 나타낸다. 따라서, 이동 호스트는 릴리스 식별자를 이용할 수 있어, 릴리스 식별자와 관련된 메시지 식별자를 가지는 하나 이상의 송신된 메시지 카피에 대응하는 커미트된 메모리를 식별한다 (Op. 370). 여기서, 송신된 메시지 식별자는 수신된 메시지 식별자와의 정의된 관계를 가질 수 있고, 따라서, 현재 확인응답된, 송신된 메시지 카피를 저장하는 커미트된 메모리는 릴리스 식별자와 관련될 수 있다. 즉, 각각 송신된 TCP 세그멘트 카피의 ACKNUM 의 서수성은 릴리스 식별자로서 지정될 수 있는, 수신된 TCP 세그멘트의 ACKNUM 의 서수성보다 작을 수도 있다. 이와 같이 식별된 메모리 위치는 프리 메모리, 및 이용을 위해 릴리스된 관련 메모리 위치가 되도록 지칭될 수 있다 (Op. 380). 프로세스 (300) 는 또 다른 인커밍 메시지, 또는 TCP 세그멘트를 수신하는 이동 호스트에 의해 계속될 수도 있다 (Op. 380). 또한, 적절한 구성이 고안된 경우에, 소정의 버퍼 상태는 소정의 메모리 임계값 이상의, 버퍼내의 프리 메모리 버퍼 위치에 의해 나타날 수도 있다.
물론, 당업자는 도 3 에서의 프로세스 (300) 를 구현하는 동작뿐만 아니라, 도 1 도 2A, 및 도 2B 에 설명된 구조가 설명적이고 단지 본 명세서에서 발명의 원리를 예시하도록 의도됨을 이해한다. 따라서, 도 1, 도 2A, 도 2B, 및 도 3 에 의해 설명된 예시적인 엔터티는 직접적으로 또는 간접적으로 하드웨어에서, 소프트웨어에서, 또는 사용가능한 이들의 조합에서 전체적으로 또는 부분적으로 이해될 수도 있다. 또한, 하나 이상의 이러한 엔터티는 MM (예를 들어, MM (112), MM (200), MM (250)), 지역 호스트 (예를 들어, LHOST (102)), 통신 시스템 (예를 들어, 통신 시스템 (100)) 을 통해 할당된 기능 및 디바이스의 사용가능한 결과가 될 수도 있다. 본 명세서의 예시적인 방법 및 장치는 계층적, 멀티플레이어, TCP/IP 전송/네트워크 층 프로토콜 슈트의 환경 내에서 설명될 수 있다. 이들은 또한 제한없이, 확인응답-기반 통신 프로토콜을 포함하는 다른 직접 또는 간접적인 응답형 통신 프로토콜을 사용하는 호스트 사이에서 메시지 전달을 제공하도록 이용될 수도 있다. 차동 프로세싱에 적합가능한 확인응답-기반 프로토콜은 긍정 확인응답, 부정 확인응답, 유실된 확인응답, 지연된 확인응답, 통합된 확인응답, 링크 킵 얼라이브 신호 (link keep-alive signal), 확인응답에 대한 요청 (폴링 (polling)), 흐름 제어, 프로토콜 중재, 동적 링크 퀄리티 조정, 및 에러 정정을 포함할 수도 있다.
많은 대체, 수정, 변경 및 동등한 것들이 당업자에 의해, 본 발명의 사상과 영역에서 벗어나지 않고 발생하고 고안될 수도 있다. 따라서, 이전에 설명된 실시형태는 오직 예의 목적을 위함이고, 다음 청구항에 의해 정의된대로 본 발명을 제한하는 것으로서 간주되어서는 안 된다. 따라서, 다음의 청구항은, 문자 그 대로 설명된 구성요소의 조합뿐만 아니라, 실제적으로 동일한 결과를 얻는 실제적으로 동일한 방법에서 실제적으로 동일한 기능을 수행하기 위한 모든 동등한 구성요소를 포함하도록 읽힌다. 청구항은 상기 특별히 설명되고 묘사된 것과, 개념상으로 동등한 것과, 또한 본 발명의 아이디어를 통합하는 것을 포함한다.

Claims (36)

  1. 원격 호스트와 통신하는 지역 호스트에서 통신 버퍼를 관리하기 위한 방법으로서,
    a. 상기 원격 호스트로부터 그 내부에 수신된 메시지 식별자를 가지는 수신된 메시지를 수신하는 단계;
    b. 상기 통신 버퍼가 소정의 버퍼 상태에 있는지를 결정하는 단계로서, 상기 통신 버퍼는 커미트된 메모리, 프리 메모리 중 하나, 및 이들의 조합 중의 하나, 송신된 메시지 카피를 저장하는 커미트된 메모리의 부분을 포함하는 상기 결정하는 단계;
    c. 상기 통신 버퍼가 소정의 버퍼 상태에 있는 경우, 상기 수신된 메시지를 저장하는 단계;
    d. 상기 통신 버퍼가 소정의 버퍼 상태에 있지 않은 경우에, 그 후, 상기 수신된 메시지 식별자를 릴리스 식별자로서 지정하는 단계; 및
    e. a트된 메모리의 부분을 프리 메모리로서 지칭하는 단계를 포함하는, 통신 버퍼 관리 방법.
  2. 제 1 항에 있어서,
    상기 소정의 버퍼 상태는 소정의 메모리 임계값보다 작은 프리 메모리를 포함하고;
    상기 송신된 메시지 카피는 상기 릴리스 식별자와의 정의된 관계에 의해 특징화된 대응하는 송신된 메시지 식별자를 포함하는, 통신 버퍼 관리 방법.
  3. 제 1 항에 있어서,
    상기 수신된 메시지는 헤더 및 페이로드를 포함하고,
    상기 수신된 메시지의 상기 헤더로부터 상기 수신된 메시지 식별자를 추출하는 단계를 더 포함하는, 통신 버퍼 관리 방법.
  4. 제 3 항에 있어서,
    상기 수신된 메시지는 상기 송신된 메시지 카피는 송신 제어 프로토콜 세그멘트를 포함하는, 통신 버퍼 관리 방법.
  5. 제 2 항에 있어서,
    상기 커미트된 메모리 부분은 송신된 메시지 카피를 저장하고, 상기 송신된 메시지 카피 각각은 대응하는 송신된 메시지 식별자를 포함하고, 선택된 대응하는 송신된 메시지 식별자는 상기 릴리스 식별자와의 정의된 관계에 의해 특징화되고;
    상기 정의된 관계는 상기 릴리스 식별자의 서수성 (ordonality) 보다 작은 선택된 대응하는 송신된 메시지 식별자의 서수성을 포함하며;
    상기 선택된 대응하는 송신된 메시지 식별자를 가지는 송신된 메시지 카피를 저장하는 커미트된 메모리 부분이 프리 메모리로서 지칭되는, 통신 버퍼 관리 방 법.
  6. 제 5 항에 있어서,
    상기 원격 호스트로부터 상기 수신된 메시지를 수신하는 단계에서,
    상기 메시지 프로토콜은 신뢰할 수 있는 응답형 앤드-투-앤드 메시지 프로토콜을 더 포함하는, 통신 버퍼 관리 방법.
  7. 제 6 항에 있어서,
    상기 신뢰할 수 있는 응답형 앤드-투-앤드 메시지 프로토콜은 긍정 확인응답-기반 프로토콜을 포함하는, 통신 버퍼 관리 방법.
  8. 제 7 항에 있어서,
    상기 긍정 확인응답-기반 프로토콜은 송신 제어 프로토콜-기반 프로토콜을 포함하고,
    상기 수신된 메시지 및 상기 송신된 메시지 카피는 송신 제어 프로토콜 세그멘트를 포함하는, 통신 버퍼 관리 방법.
  9. 제 8 항에 있어서,
    상기 릴리스 식별자는 수신된 확인응답 넘버를 포함하고,
    선택된 대응하는 송신된 메시지 식별자는 선택된 대응하는 송신된 메시지 확 인응답 넘버를 포함하고,
    상기 수신된 메시지 확인응답 넘버 및 상기 선택된 송신 메시지 확인응답 넘버는 정의된 확인응답 넘버 시퀀스로 배열되며,
    상기 수신된 확인응답 넘버의 서수성은 상기 선택된 대응하는 송신된 메시지 확인응답 넘버의 서수성보다 큰, 통신 버퍼 관리 방법.
  10. a. 커미트된 메모리, 프리 메모리, 및 이들의 조합 중 하나를 포함하는 통신 버퍼; 및
    b. 상기 통신 버퍼에 제어 가능하게 접속되고, 선택된 메모리 위치를 프리 메모리 및 커미트된 메모리 중 하나로서 지칭하도록 구성된 메모리 제어기를 구비하고;
    상기 선택된 메모리 위치는 프리 메모리로서 지칭되고, 송신된 메시지 카피는 상기 선택된 메모리 위치에 저장되며;
    상기 메모리 제어기는 상기 선택된 메모리 위치를, 그 안에 저장된 상기 송신된 메시지 카피에 응답하는 커미트된 메모리로서 지칭하고,
    상기 송신된 메시지 카피는 상기 선택된 메모리 위치를 응답 지시자에 응답하는 프리 메모리 및 커미트된 메모리 중 하나로서 지칭하도록 메모리 제어기를 인식할 수 있는 송신된 메시지 식별자를 포함하는, 이동 통신 디바이스.
  11. 제 10 항에 있어서,
    상기 통신 버퍼는 커미트된 송신 메모리, 프리 송신 메모리, 및 이들의 조합 중 하나를 가지는 송신 버퍼를 더 포함하고;
    선택된 송신 메모리 위치는 상기 메모리 제어기에 의해 프리 메모리로서 지칭되고, 원격 호스트로 통신된 송신된 메시지의 송신된 메시지 카피가 상기 선택된 송신 메모리 위치에 저장되며, 상기 선택된 송신 메모리 위치는 저장된 상기 카피에 응답하는 선택된 커미트된 송신 메모리 위치로서 지칭되고;
    상기 메모리 제어기는 소정의 버퍼 상태에 대해 상기 송신 버퍼를 모니터링하고;
    상기 응답 지시자는 수신된 메시지에서 상기 원격 호스트로부터 통신된 수신된 메시지 식별자이고, 선택된 커미트된 송신 메모리 위치와 관련되며;
    상기 소정의 버퍼 상태가 존재하는 경우, 상기 수신된 메시지 식별자는 상기 메모리 제어기로 하여금 선택된 커미트된 송신 메모리 위치를 프리 메모리로서 지칭하게 하는, 이동 통신 디바이스.
  12. 제 11 항에 있어서,
    상기 이동 통신 디바이스는 지역 통신 프로세스를 실행하는 지역 호스트를 포함하고 상기 원격 호스트는 상기 지역 호스트와 통신하는 원격 통신 프로세스를 실행하며;
    상기 지역 통신 프로세스 및 상기 원격 통신 프로세스는 양방향성, 신뢰할 수 있는, 응답형, 앤드-투-앤드 통신 프로세스이고;
    상기 송신된 메시지 카피 및 수신된 메시지는 각각 페이로드 및 헤더를 포함고, 상기 송신된 메시지 카피의 헤더는 각각의 대응하는 송신된 메시지 식별자를 포함하며, 상기 수신된 메시지의 헤더는 수신된 메시지 식별자를 포함하고;
    상기 수신된 메시지 식별자는 상기 각각의 대응하는 송신된 메시지 식별자와의 정의된 관계를 가지는, 이동 통신 디바이스.
  13. 제 12 항에 있어서,
    상기 지역 호스트 및 원격 프로세스는 전송 제어 프로토콜 (TCP) 프로세스를 포함하고;
    상기 송신된 메시지 카피 및 상기 수신된 메시지는 TCP 세그멘트를 포함하며;
    상기 송신된 메시지 식별자 및 상기 수신된 메시지 식별자는 TCP 확인응답 넘버 (ACKNUM) 이고;
    상기 정의된 관계는 상기 송신된 메시지 식별자의 서수성이 상기 수신된 메시지 식별자의 서수성보다 작은 순서화된 숫자 시퀀스로 배열된 ACKNUM 을 포함하는, 이동 통신 디바이스.
  14. 제 13 항에 있어서,
    상기 소정의 버퍼 상태는 소정의 메모리 임계값보다 작은 프리 송신 메모리를 포함하는, 이동 통신 디바이스.
  15. 제 14 항에 있어서,
    상기 통신 버퍼는, 커미트된 수신 메모리 위치, 프리 수신 메모리 위치, 및 이들의 조합 중 하나를 포함하는 소정의 수신 메모리 위치 넘버를 가지는 수신 버퍼를 더 포함하고,
    상기 원격 프로세스로부터 통신된 수신된 메시지는, 그에 의해 선택된 커미트된 수신 메모리 위치로서 지칭되는 상기 선택된 프리 수신 메모리 위치를 가지는 상기 수신 버퍼내의 선택된 프리 수신 메모리 위치에 저장되고,
    상기 지역 프로세스는 수신된 메시지의 확인응답을 송신하며;
    상기 수신 버퍼는 상기 메모리 제어기에 의해 모니터링되고,
    상기 수신된 메시지 식별자는 상기 선택된 커미트된 송신 메모리 위치 중 하나에 대응하는, 이동 통신 디바이스.
  16. 제 14 항에 있어서,
    상기 데이터 페이로드는 이용되지 않고, 상기 지역 프로세스는 상기 원격 프로세스에 상기 수신된 릴리스 메시지의 확인응답을 송신하지 않는, 이동 통신 디바이스.
  17. 제 10 항에 있어서,
    상기 통신 버퍼는 각각 커미트된 송신 메모리, 프리 송신 메모리, 및 이들의 조합 중 하나를 가지는 송신 버퍼를 더 포함하고;
    각각의 선택된 송신 버퍼 내의 각각의 선택된 송신 메모리 위치는 상기 메모리 제어기에 의해 프리 송신 메모리로서 지칭되며;
    원격 호스트에 통신된 선택된 송신 메시지의 선택된 송신 메시지는 상기 각각의 선택된 송신 메모리 위치에 저장되고;
    상기 선택된 송신 메모리 위치는 상기 카피가 저장되는 경우, 커미트된 송신 메모리 위치로서 지칭되며;
    상기 선택된 커미트된 송신 메모리 위치는 각각의 응답 지시자와 관련되고, 각각의 응답 지시자는 각각의 수신된 메시지내의 상기 원격 호스트로부터 통신된 각각의 수신된 메시지 식별자를 포함하고;
    상기 메모리 제어기는 각각의 소정의 버퍼 상태에 대해 각각의 송신 버퍼를 모니터링하며;
    상기 각각의 소정의 버퍼 상태가 존재하는 경우, 상기 각각의 수신된 메시지 식별자는 상기 메모리 제어기로 하여금 상기 선택된 커미트된 송신 메모리 위치를 프리 메모리로서 지칭하게 하는, 이동 통신 디바이스.
  18. 제 16 항에 있어서,
    상기 통신 버퍼에 접속된 트랜스시버를 더 포함하며, 상기 지역 프로세스는 상기 원격 프로세스와 상기 트랜스시버를 통해 양방향으로 메시지를 통신하는, 이동 통신 디바이스.
  19. 제 18 항에 있어서,
    상기 트랜스시버는 미리 선택된 무선 통신 프로토콜을 이용하여 상기 원격 프로세스와 통신하는, 이동 통신 디바이스.
  20. 제 19 항에 있어서,
    상기 지역 프로세스가 상기 원격 프로세스와 통신하는 상기 통신 네트워크의 최소한의 부분은 공중 패킷-스위칭된 네트워크를 포함하는, 이동 통신 디바이스.
  21. 이동, 메모리 제한 지역 호스트용 통신 방법으로서,
    a. 미리 선택된 신뢰할 수 있는, 앤드-투-앤드 통신 프로토콜을 이용하여 원격 호스트로 통신하는 지역 호스트로부터 송신된 메시지를 송신하는 단계;
    메모리 제한 지역 호스트 통신 버퍼의 선택된 메모리 위치에, 상기 송신된 메시지의 카피를 저장하는 단계로서, 상기 송신된 메시지 카피 각각은, 그 내부에 각각의 송신된 메시지 식별자를 포함하고, 상기 통신 버퍼는 커미트된 메모리, 프리 메모리, 및 이들의 조합 중 하나로서 지칭된 소정의 메모리 위치 넘버를 포함하며, 상기 선택된 메모리 위치는 프리 메모리내에 존재하는, 상기 송신된 메시지의 카피를 저장하는 단계;
    c. 상기 저장하는 단계에 응답하여 커미트된 메모리내에 존재할 선택된 메모리 위치를 지칭하는 단계;
    d. 상기 원격 호스트로부터 그 내부에 수신된 메시지 식별자를 가지는 수신된 메시지를 수신하는 단계;
    e. 소정의 버퍼 상태에 대해 통신 버퍼 상태를 모니터링하는 단계;
    f. c상기 통신 버퍼 상태가 상기 소정의 버퍼 상태에 있는 경우, 상기 통신 버퍼에 상기 수신된 메시지를 저장하는 단계; 및
    상기 통신 버퍼가 상기 소정의 버퍼 상태에 있지 않은 경우, 상기 통신 버퍼를 상기 소정의 버퍼 상태로 릴리싱하는 단계를 포함하고,
    (1) 상기 릴리싱하는 단계는;
    상기 수신된 메시지 식별자를 릴리스 식별자로 지정하는 단계; 및
    (2) 송신된 메시지 식별자가 상기 릴리스 식별자에 대응하는 커미트된 메모리를 프리 메모리로서 지칭하는 단계를 포함하는, 통신 방법.
  22. 제 21 항에 있어서,
    상기 통신 버퍼 상태는 소정의 커미트된 메모리 임계값 이하인 커미트된 메모리량을 포함하는, 통신 방법.
  23. 제 22 항에 있어서,
    상기 수신된 메시지는 헤더 및 페이로드를 포함하고,
    상기 수신된 메시지의 헤더로부터 상기 수신된 메시지 식별자를 추출하는 단계를 더 포함하며,
    상기 수신된 메시지 식별자는 커미트된 메모리에 저장된 송신된 메시지 카피에 송신된 메시지 식별자와의 정의된 관계를 가지는, 통신 방법.
  24. 제 23 항에 있어서,
    상기 지역 호스트와 상기 원격 호스트 사이의 통신을 위한 상기 미리 선택된 신뢰할 수 있는 앤드-투-앤드 통신 프로토콜은 미리선택된 신뢰할 수 있는 긍정확인응답-기반 앤드-투-앤드 통신 프로토콜을 포함하고,
    프로토콜 확인응답은 숫자 시퀀스를 통해 정의된 메시지 식별자를 포함하는, 통신 방법.
  25. 제 24 항에 있어서,
    송신된 메시지 식별자는 상기 숫자 시퀀스를 통해 정의되고, 상기 릴리스 식별자는 상기 원격 호스트에 의해 수신된 상기 송신된 메시지의 하나에 대응하는 상기 숫자 시퀀스내의 하나의 메시지 식별자로부터 선택되는, 통신 방법.
  26. 제 25 항에 있어서,
    상기 미리선택된 신뢰할 수 있는 긍정확인응답-기반 앤드-투-앤드 통신 프로토콜은 TCP 프로토콜을 포함하는, 통신 방법.
  27. 제 21 항에 있어서,
    상기 원격 호스트로 통신하는 상기 지역 호스트에 대한 상기 미리 선택된 앤드-투-앤드 통신 프로토콜은 신뢰할 수 있는, 긍정확인응답-기반, 앤드-투-앤드 TCP 통신 프로토콜을 포함하고,
    송신된 메시지 식별자는 숫자 시퀀스를 통해 정의되며,
    프로토콜 확인응답은 상기 원격 호스트에 의해 수신된 상기 송신된 메시지의 하나에 대응하는 상기 숫자 시퀀스로부터 선택된 릴리스 식별자를 포함하는, 통신 방법.
  28. 제 27 항에 있어서,
    상기 지역 호스트는 Um 인터페이스를 통해 상기 원격 호스트와 통신하고,
    상기 미리 선택된 앤드-투-앤드 통신 프로토콜은 미리 선택된 무선 통신 프로토콜을 더 포함하는, 통신 방법.
  29. a. 지역 호스트에 의해 원격 호스트로부터, 확인응답 시퀀스 넘버를 가지는 확인응답을 수신하는 단계로서, 상기 왁인응답 시퀀스 넘버는 상기 원격 호스트로 송신하기 위한 다음의 선택된 메시지 및 상기 원격 호스트에 의해 수신된 선택된 이전에 확인응답되지 않은 메시지를 상기 지역 호스트에 나타내고, 상기 선택된 이전에 확인응답되지 않은 메시지는 통신 버퍼의 선택된 메모리 위치에 저장되며, 상기 선택된 위치는 가역으로 기록 금지된, 상기 확인응답 수신 단계;
    b. 소정의 버퍼 상태에 대해 상기 통신 버퍼를 모니터링하는 단계;
    c. 상기 통신 버퍼가 상기 소정의 버퍼 상태에 있는 경우에, 상기 확인응답 시퀀스 넘버에 의해 표시된 상기 선택된 이전에 확인응답되지 않은 메시지가 저장되는 상기 선택된 메모리 위치를 가역으로 기록-인에이블링하는 단계를 포함하는, 전기 통신 방법.
  30. a. 패킷-스위칭된 네트워크를 통해 원격 디바이스로 송신된 순서화된 메시지의 버퍼 카피에 적합한 메모리로서,
    확인응답되지 않은 카피가 커미트된 메모리로서 지칭된 메모리에서 버퍼링되고, 상기 커미트된 메모리는 가역으로 기록 금지되고;
    원격 디바이스는 상기 패킷-스위칭된 네트워크를 통해 상기 원격 디바이스에 의해 수신된 상기 순서화된 메시지의 확인응답을 복귀시키며,
    상기 확인응답은 상기 통신에서 선택된 순서화된 메시지를 확인응답하는 응답 지시자를 포함하는 상기 메모리; 및
    b. 미리 선택된 메모리 상태에 응답하여 응답 지시자를 검사하도록 구성되는 차동 프로세싱 메모리 제어기를 포함하며,
    상기 응답 지시자는 선택된 커미트된 메모리에서 카피를 확인응답하며,
    상기 메모리 제어기는 상기 응답 지시자와 관련된 선택된 메모리를 프리 메모리로서 지칭하고, 상기 프리 메모리는 가역으로 기록-인에이블되며;
    상기 메모리 및 차동 프로세싱 메모리 제어기는 이동 무선 통신 디바이스를 구성하는, 전기 통신 시스템.
  31. 제 30 항에 있어서,
    상기 순서화된 메시지는 신뢰할 수 있는, 긍정 확인응답-기반, 앤드-투-앤드 통신 프로토콜을 이용하여 상기 패킷-스위칭된 네트워크를 통해 상기 원격 디바이스로 송신되는, 전기 통신 시스템.
  32. 제 31 항에 있어서,
    상기 앤드-투-앤드 통신 프로토콜은 TCP 통신 프로토콜을 포함하는, 전기 통신 시스템.
  33. 제 30 항에 있어서,
    상기 차동 프로세싱 메모리 제어기는,
    a. 상기 메모리에 접속된 카운터로서,
    상기 메모리는 메모리 위치의 제한된 넘버를 포함하고,
    상기 순서화된 메시지는 정의된 숫자 시퀀스로 배열되며,
    상기 미리 선택된 메모리 상태는 소정의 프리 메모리 임계값보다 적은 프리 메모리 위치를 나나내고,
    상기 카운터는 상기 미리 선택된 메모리 상태를 선언하는 제 1 상태 신호를 제공하는, 상기 카운터; 및
    상기 메모리에 접속되고, 제 1 상태 신호를 수신하고, 상기 메모리 위치의 제한된 넘버 각각을 프리 메모리 및 커미트된 메모리 중 하나로서 지칭하도록 구성되고, 확인응답되지 않은 카피가 그 내부에서 버퍼링될때 상기 선택된 메모리를 커미트된 메모리로서 지칭하고, 상기 상태 신호에 응답하여 상기 선택된 메모리를 프리 메모리로서 지칭하는 커미트 디렉토리를 더 포함하는, 전기 통신 시스템.
  34. 제 33 항에 있어서,
    상기 차동 프로세싱 메모리 제어기는 상기 응답 지시자를 수신하도록 구성되고 응답 내부에 제 2 상태 신호를 생성하는데 적합한 맵퍼를 더 포함하고,
    상기 커미트 디렉토리는 커미트된 메모리의 상기 선택된 메모리를 상기 제 2 상태 신호에 더 응답하여, 프리 메로리로서 지칭하는, 전기 통신 시스템.
  35. 제 31 항에 있어서,
    상기 차동 프로세싱 메모리 제어기는 상기 커미트된 메모리 및 상기 프리 메모리를 정적으로 할당하는데 적합한, 전기 통신 시스템.
  36. 제 31 항에 있어서,
    상기 차동 프로세싱 메모리 제어기는 상기 커미트된 메모리 및 상기 프리 메모리를 동적으로 할당하는데 적합한, 전기 통신 시스템.
KR1020067004628A 2003-09-05 2004-09-01 차동 확인 응답 프로세싱 버퍼 관리자 및 이를 위한 방법 KR20060085241A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/655,691 2003-09-05
US10/655,691 US7212538B2 (en) 2003-09-05 2003-09-05 Differential ack processing buffer manager and method therefor

Publications (1)

Publication Number Publication Date
KR20060085241A true KR20060085241A (ko) 2006-07-26

Family

ID=34226176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067004628A KR20060085241A (ko) 2003-09-05 2004-09-01 차동 확인 응답 프로세싱 버퍼 관리자 및 이를 위한 방법

Country Status (5)

Country Link
US (1) US7212538B2 (ko)
KR (1) KR20060085241A (ko)
BR (1) BRPI0414088A (ko)
IL (1) IL173869A (ko)
WO (1) WO2005027398A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7450937B1 (en) * 2003-09-04 2008-11-11 Emc Corporation Mirrored data message processing
WO2005048019A2 (en) 2003-09-04 2005-05-26 Emc Corporation Data message mirroring and redirection
US7773620B2 (en) * 2003-12-24 2010-08-10 Intel Corporation Method, system, and program for overrun identification
US8059805B2 (en) * 2005-06-30 2011-11-15 Emc Corporation Enhanced services provided using communication redirection and processing
US8605878B2 (en) * 2005-06-30 2013-12-10 Emc Corporation Redirecting and mirroring of telephonic communications
US8831194B2 (en) * 2005-06-30 2014-09-09 Emc Corporation Telephonic communication redirection and compliance processing
US8218657B2 (en) * 2005-09-02 2012-07-10 Netgear, Inc. System and method for automatic adjustment of streaming video bit rate
US7773630B2 (en) * 2005-11-12 2010-08-10 Liquid Computing Corportation High performance memory based communications interface
US7447789B2 (en) * 2006-03-24 2008-11-04 Sun Microsystems, Inc. Method and apparatus for buffering data at a transport layer on a client
WO2007149745A2 (en) * 2006-06-19 2007-12-27 Liquid Computing Corporation Methods, systems and protocols for application to application communications
US7873964B2 (en) * 2006-10-30 2011-01-18 Liquid Computing Corporation Kernel functions for inter-processor communications in high performance multi-processor systems
EP1950932A1 (en) * 2007-01-29 2008-07-30 Stmicroelectronics Sa System for transmitting data within a network between nodes of the network and flow control process for transmitting said data
GB0713613D0 (en) * 2007-07-12 2007-08-22 Cambridge Silicon Radio Ltd Asynchronous coexistence arbitration
US8780704B2 (en) * 2008-01-10 2014-07-15 Qualcomm Incorporated Shared resource allocation
US8863189B2 (en) 2008-02-19 2014-10-14 AT&T Intellectual Properties I, LP System for configuring soft keys in a media communication system
JP4513036B2 (ja) * 2008-04-04 2010-07-28 ソニー株式会社 送信装置および方法、並びにプログラム
KR101616128B1 (ko) * 2009-09-21 2016-04-28 삼성전자주식회사 일대일 통신상에서 데이터를 송수신하기 위한 장치 및 방법
US8605578B1 (en) * 2011-05-25 2013-12-10 Google Inc. System and method for handling of destination host side congestion
US9025475B1 (en) * 2012-01-16 2015-05-05 Amazon Technologies, Inc. Proactively retransmitting data packets in a low latency packet data network
JP5940353B2 (ja) * 2012-04-11 2016-06-29 オリンパス株式会社 無線通信装置、メモリ装置、無線通信システム、無線通信方法、およびプログラム
US8848741B2 (en) * 2012-06-21 2014-09-30 Breakingpoint Systems, Inc. High-speed CLD-based TCP segmentation offload
US8824508B2 (en) 2012-06-21 2014-09-02 Breakingpoint Systems, Inc. High-speed CLD-based TCP assembly offload

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US35438A (en) * 1862-06-03 Improvement in seeding-machines
US36154A (en) * 1862-08-12 Artificial stone
US161280A (en) * 1875-03-23 Improvement in nail blanks or strips for pegging-machines
US6411620B1 (en) * 1991-01-31 2002-06-25 Fujitsu Limited Connectionless communication system
US6078733A (en) * 1996-03-08 2000-06-20 Mitsubishi Electric Information Technolgy Center America, Inc. (Ita) Network interface having support for message processing and an interface to a message coprocessor
US6046817A (en) * 1997-05-12 2000-04-04 Lexmark International, Inc. Method and apparatus for dynamic buffering of input/output ports used for receiving and transmitting print data at a printer
SE9703327L (sv) 1997-09-12 1999-03-13 Ericsson Telefon Ab L M Metod och anordning vid datakommunikation
US6553032B1 (en) 1999-09-01 2003-04-22 Tantivy Communications, Inc. Packeting timeout spoofing in a wireless data communications network
JP3604615B2 (ja) 2000-04-21 2004-12-22 株式会社東芝 通信装置、中継装置および通信制御方法
DE10026927B4 (de) 2000-05-30 2006-07-13 Siemens Ag Verfahren zur Übertragung von Datenpaketen in einem Kommunikationssystem zwischen einem Sender und einem Empfänger sowie entsprechender Sender und Empfänger
US7191449B2 (en) * 2001-02-16 2007-03-13 Microsoft Corporation System and method for providing componentized transports and forms
US7093043B2 (en) * 2001-12-27 2006-08-15 Hewlett-Packard Development Company, L.P. Data array having redundancy messaging between array controllers over the host bus
US7564860B2 (en) * 2003-05-08 2009-07-21 Samsung Electronics Co., Ltd. Apparatus and method for workflow-based routing in a distributed architecture router
US7707320B2 (en) * 2003-09-05 2010-04-27 Qualcomm Incorporated Communication buffer manager and method therefor

Also Published As

Publication number Publication date
BRPI0414088A (pt) 2006-10-31
US7212538B2 (en) 2007-05-01
US20050053084A1 (en) 2005-03-10
IL173869A (en) 2010-11-30
WO2005027398A1 (en) 2005-03-24
IL173869A0 (en) 2006-07-05

Similar Documents

Publication Publication Date Title
KR20060085241A (ko) 차동 확인 응답 프로세싱 버퍼 관리자 및 이를 위한 방법
US8213315B2 (en) Dynamically-connected transport service
US7707320B2 (en) Communication buffer manager and method therefor
US7693952B2 (en) Availability and scalability in a messaging system in a manner transparent to the application
US6347337B1 (en) Credit based flow control scheme over virtual interface architecture for system area networks
US8190960B1 (en) Guaranteed inter-process communication
Velten et al. Reliable data protocol
US7171484B1 (en) Reliable datagram transport service
US7627627B2 (en) Controlling command message flow in a network
KR101365838B1 (ko) 개선된 분산형 커널 운영 시스템
Watson The Delta-T transport protocol: Features and experience
US8583831B2 (en) Thin client discovery
US20060023721A1 (en) Server device, method for controlling a server device, and method for establishing a connection using the server device
US8605578B1 (en) System and method for handling of destination host side congestion
US7536468B2 (en) Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol
JP2007534073A (ja) ユーザーレベルスタック
WO2013144876A1 (en) Communication transport protocol for distributed information technology architectures
US6697863B1 (en) Method and packet-processing device for use in an active node included in an active network to allocate a sequence of packets received by the active node
Ahuja et al. Design, implementation, and performance measurement of a native-mode ATM transport layer (extended version)
EP1225741A1 (en) High speed interconnection for embedded systems within a computer network
Garlick et al. Reliable host-to-host protocols: Problems and techniques
Sivaram et al. Breaking the connection: Rdma deconstructed
Velten et al. RFC0908: Reliable Data Protocol
CN116614208A (zh) 一种基于tcp协议的多路视频原始流接收系统及方法
Dalgeir et al. Implementation of a lightweight transport service over HIPPI on the IBM RISC System/6000

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application