KR20060031534A - 전송제어 프로토콜을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 송수신 방법 및 장치 - Google Patents

전송제어 프로토콜을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 송수신 방법 및 장치 Download PDF

Info

Publication number
KR20060031534A
KR20060031534A KR1020040080600A KR20040080600A KR20060031534A KR 20060031534 A KR20060031534 A KR 20060031534A KR 1020040080600 A KR1020040080600 A KR 1020040080600A KR 20040080600 A KR20040080600 A KR 20040080600A KR 20060031534 A KR20060031534 A KR 20060031534A
Authority
KR
South Korea
Prior art keywords
block
bit
virtual
size
tcp
Prior art date
Application number
KR1020040080600A
Other languages
English (en)
Other versions
KR100663465B1 (ko
Inventor
장정식
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040080600A priority Critical patent/KR100663465B1/ko
Priority to US11/245,422 priority patent/US20060107168A1/en
Publication of KR20060031534A publication Critical patent/KR20060031534A/ko
Application granted granted Critical
Publication of KR100663465B1 publication Critical patent/KR100663465B1/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/1607Details of the supervisory signal
    • H04L1/1614Details of the supervisory signal using bitmaps
    • 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/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • 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/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 데이터 네트워크의 통신에 관한 것으로서, 특히 데이터 네트워크에서 전송제어 프로토콜(TCP)을 이용한 데이터의 전송에서 다중 세그먼트의 복구를 위해 비트화된 블록의 수신확인 방법에 관한 것이다. 송신자는, 각각의 비트들이 소정 크기의 가상 블록을 나타내는 비트 어레이로 구성된 가상 블록 정보를 포함하는 비트화된 블록 애크를 생성하여 수신자에게 전송한다. 상기 각각의 비트들은 해당 가상 블록이 실제 스트림의 손상 블록들과 오버랩되는 경우에 '1'로 설정된다. 수신자는 비트화된 블록 애크를 수신하고, 상기 비트 어레이의 모든 비트들이 '0'이 아니면, 상기 비트 어레이의 비트 '1'이 나타내는 가상 블록을 재전송한다.
TCP, IP, MULTIPLE SEGMENTS RECOVERY, BITWISE BLOCK ACKNOWLEDGEMENT

Description

전송제어 프로토콜을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 송수신 방법{METHOD OF TRANSMITTING AND RECEIVING BITWISE VIRTUAL BLOCK INFORMATION FOR MULTIPLE SEGMENT RECOVERY IN DATA NETWORK USING TCP}
도 1은 본 발명의 바람직한 실시예에 따른 데이터 네트워크를 도시한 도면.
도 2는 도 1에 도시한 데이터 네트워크의 프로토콜 스택을 도시한 도면.
도 3은 도 2의 IP 계층에서 송신되고 라우트되는 IP 패킷을 도시한 도면.
도 4는 본 발명의 바람직한 실시예에 따른 비트 어레이의 일 예를 보인 도면.
도 5는 본 발명의 바람직한 실시예에 따라 IP 패킷의 옵션 필드에 포함되는 비트화된 블록 애크(BBACK)의 포맷.
도 6은 본 발명에 따른 BBACK를 이용한 세그먼트들의 송수신을 나타낸 도면.
도 7은 본 발명의 바람직한 실시예에 따른 송신측 네트워크 장치(송신자)의 TCP 수신확인 동작을 나타낸 흐름도.
도 8은 본 발명의 바람직한 실시예에 따른 수신측 네트워크 장치(수신자)의 TCP 수신확인 동작을 나타낸 흐름도.
도 9는 본 발명의 BBACK를 기존의 SACK과 비교한 도면.
도 10은 본 발명의 BBACK에 따른 가상 블록들의 재전송을 나타낸 도면.
본 발명은 데이터 네트워크의 통신에 관한 것으로서, 특히 데이터 네트워크에서 전송제어 프로토콜(Transmission Control Protocol: 이하 "TCP"라 칭함)을 이용한 데이터의 전송에서 다중 세그먼트(Multiple Segment) 복구를 위해 비트화된 블록(Bitwise Block)의 수신확인 방법에 관한 것이다.
TCP는 공용 인터넷 등의 데이터 네트워크에서 충돌 제어(congestion-conscious)을 위하여 개발된 것이다. TCP 충돌제어 매커니즘은 느린 시작(Slow Start), 충돌 회피(Congestion Avoidance), 빠른 재전송(Fast Retransmit), 및 빠른 복구(Fast Recovery)로 구성된다. 종래의 TCP 충돌제어 매커니즘은 송신자의 윈도우 내에서 단지 하나의 데이터 단위(이하 세그먼트(Segment)라 칭함)만이 손실되는 경우를 고려하여 설계되었다. 따라서 한 윈도우 내에서 다중 세그먼트의 손실이 발생한 경우에는 정상적인 동작이 이루어지지 못한다.
이러한 다중 세그먼트의 손실에 대하여 TCP의 효율을 향상시키기 위한 여러 시도들이 있어 왔다. 그 중 하나는 TCP New Reno와 TCP 선택 응답(Selective Acknowledgement: 이하 "SACK"라 칭함)이다. TCP New Reno는 빠른 재전송과 빠른 복구가 시작되기 이전에 성공적으로 송신된 옥텟 블록(Octet Block)의 최대 시퀀스 번호를 생략(save)한다. TCP New Reno는 부분적인 긍정응답(Acknowledgement: 이하 "애크(ACK)"라 칭함)이 수신된 경우에 더 낮은 시퀀스 번호를 통지하여 더 많은 세그먼트들의 손실이 있었음을 알 수 있다. 기존의 TCP(Reno)가 중복된 애크를 수신할 때마다 빠른 재전송과 빠른 복구를 수행하였기 때문에, 매 손실 세그먼트마다 중복 애크를 적용하기 위한 시간이 필요했다. 이에 비해 TCP New Reno는 모든 손실된 세그먼트들을 성공적으로 수신할 때까지 빠른 복구를 지속하기 때문에, 하나의 세그먼트를 복구하기 위해서는 단지 하나의 라운트 트립 시간(Round Trip Time: 이하 "RTT"라 칭함)이 요구된다.
TCP SACK는 한 RTT 동안에 다중 세그먼트 손실을 복구하기 위하여 고안된 것으로서, 여기서 애크는 최근의 옥텟 블록들을 성공적으로 수신하였음을 의미한다. 옥텟 블록들은 가변 크기를 가지며, 블록 시작 옥텟과 블록 종료 옥텟의 다음 옥텟을 나타내는 두 개의 시퀀스 번호들(각 8바이트)에 의해 표현된다. TCP 옵션 비트들의 길이 제한이 40바이트이기 때문에 불연속 옥텟 블록들의 최대 개수는 4개이다. 송신자는 한 RTT 내에서 모든 손실들을 복구하려고 시도할 수 있다.
TCP의 효율성은 한 윈도우내에서 관리될 수 있는 링크의 유용성에 의해 측정된다. 윈도우 관리는 윈도우의 크기를 네트워크와 통신 상대측의 조건에 따라 정확하게 조정되어야 한다. 한 윈도우 내에서 다중 세그먼트의 복구에 있어서, TCP New Reno는 기존의 TCP(Reno)의 과도한 빠른 복구 회수를 절반으로 감소시킨다. 또한 TCP SACK는 TCP New Reno의 전체 복구 시간(RTT의 정수배)을 한(single) RTT로 감 소시킨다. 그러나 TCP SACK는 적은 블록 정보에 비해 너무 많은 옵션 비트들(부가 정보를 포함하면, 최대 4개의 불연속 블록들에 대해 34바이트)을 필요로 한다는 문제점이 있었다.
따라서 상기한 바와 같이 동작되는 종래 기술의 문제점을 해결하기 위하여 창안된 본 발명의 목적은, 송신자가 한 RTT 내에서 다중 세그먼트의 손실을 복구하기 위하여 TCP 애크를 운용하기 위한 방법을 제공하는 것이다.
본 발명의 다른 목적은, 각각의 비트가 세그먼트 크기의 가상 옥텟 블록을 나타내는 비트 어레이 상에서 수신자의 윈도우로부터 초록을 제공하는 방법을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여 창안된 본 발명의 실시예는, 전송제어 프로토콜(TCP)을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 송신 방법에 있어서,
각각의 비트들이 소정 크기의 가상 블록을 나타내는 비트 어레이로 구성된 가상 블록 정보를 포함하는 비트화된 블록 애크를 생성하는 과정과, 상기 각각의 비트들은 해당 가상 블록이 실제 스트림의 손상 블록들과 오버랩되는 경우에 '1'로 설정되며,
상기 비트화된 블록 애크를 전송하는 과정을 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예는, 전송제어 프로토콜(TCP)을 사용하는 데이터 네트 워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 수신 방법에 있어서,
각각의 비트들이 소정 크기의 가상 블록을 나타내는 비트 어레이로 구성된 가상 블록 정보를 포함하는 비트화된 블록 애크를 수신하는 과정과, 상기 각각의 비트들은 해당 가상 블록이 실제 스트림의 손상 블록들과 오버랩되는 경우에 '1'로 설정되며,
상기 비트 어레이의 모든 비트들이 '0'인지를 판별하는 과정과,
상기 비트 어레이의 모든 비트들이 '0'이 아니면, 상기 비트 어레이의 비트 '1'이 나타내는 가상 블록을 재전송하는 과정을 포함하는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대한 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
후술되는 본 발명은 비트 어레이와 개별 애크(Individual Acknowledgement)를 이용하여 수신자 윈도우로부터 수신 세그먼트들의 수신확인 정보를 제공한다. 여기서 상기 비트 어레이의 각각의 비트가 소정 크기의 가상 블록을 나타내며, 고정된 크기, 예를 들어 4바이트(32비트)만을 사용하여 기본적으로 32개의 가상 블록들을 표현한다.
도 1은 본 발명의 바람직한 실시예에 따른 데이터 네트워크를 도시한 것으로서, 참조번호 10은 상기 데이터 네트워크를 의미한다.
도 1을 참조하면, 데이터 네트워크(10)는 인터넷과 같은 백본(Backbone) 네트워크(12)와 제1 네트워크 장치(14)와 제2 네트워크 장치(16)를 포함한다. 백본 네트워크(12)는 통신할 수 있는 다수의 사용자들에 의해 액세스될 수 있는 공용 네트워크가 될 수 있다. 부가적으로 사설 네트워크와 같은 다수의 근거리 네트워크(Local Area Network: 이하 "LAN"이라 칭함)(20)가 있다. 데이터 패킷들은 백본 네트워크(12)를 통해서 제1 네트워크 장치(14)와 제2 네트워크 장치(16) 사이에서 운반된다. 상기 네트워크 장치들(14, 16)은 데이터 네트워크에서 식별될 수 있는 공용 네트워크 주소들을 할당받을 수 있다. 상기 네트워크 장치들(14, 16) 간의 데이터 채널은 다수의 라우터들 또는 게이트웨이들(24, 26)을 포함할 수 있다. 도시하지 않을 것이지만, 상기 네트워크 장치들(14, 16)은 패킷 데이터 네트워크의 네트워크 장치로 제한되는 것은 아니며, 예를 들어 무선 액세스 네트워크를 액세스할 수 있는 이동 노드가 될 수 있다.
도 2는 도 1에 도시한 데이터 네트워크(10)의 프로토콜 스택을 도시한 것이다. 참조번호 50은 개방형 시스템 접속(Open System Interconnection: OSI) 모델에 따른 프로토콜 스택을 의미한다. 알려진 바와 같이 OSI 모델은 물리, 데이터-링크, 네트워크, 전송, 세션, 프리젠테이션, 응용과 같은 7개의 계층들(Layers)을 포함한다. 여기서 물리 계층은 통신 링크를 통해 비트들을 전송하며, 데이터의 에러에 무관(free)하다. 네트워크 계층은 데이터 패킷들을 전송하고 라우트한다.
도 2를 참조하면, 가장 하위의 물리 계층은 와이어, 동축 케이블, 전자기파와 같은 물리 매체 인터페이스(52)를 포함한다. 데이터 링크 계층은 매체 액세스 제어(Medium Access Control: 이하 "MAC"이라 칭함) 계층(54)이라 불린다. MAC 계층(54)은 물리 계층을 통한 전송 매체의 액세스를 제어한다. 데이터 링크 계층의 상위는 인터넷 프로토콜(Internet Protocol: 이하 "IP"라 칭함) 계층(58)이다. IP 계층(56)은 통상 OSI 3계층인 네트워크 계층에 속하는 것으로 간주될 수 있다. IP 계층(58)은 메시지 어드레싱과 트래픽의 라우트를 담당한다.
인터넷 제어 메시지 프로토콜(Internet Control Message Protocol: 이하 "ICMP"라 칭함) 계층(56)은 네트워크 관리를 위하여 사용된다. ICMP 계층(56)의 주된 기능은 에러 보고, 핑잉(pinging)과 같은 도달성 검사(reachability testing), 충돌 제어, 경로 절체 통지(route-change notification), 성능(performance), 서브넷 어드레싱 등이다.
IP 계층(58)과 ICMP 계층(56)의 상위는, 사용자 데이터그램 프로토콜(User Datagram Protocol: 이하 "UDP"라 칭함) 계층(60)이다. UDP 계층(60)은 통상 OSI 4계층인 전송 계층에 속하는 것으로 간주될 수 있다. UDP는 데이터그램들의 통신을 위한 접속모드를 제공한다. 또한 전송 계층은 접속-기반(connection-oriented)의 전송제어 프로토콜(TCP) 계층(62)을 포함한다. TCP 계층(62)에 대한 상세한 설명은 후술될 것이다.
전송계층의 상위는 응용 계층으로, 여기서 세션 및 프리젠테이션 계층은 생략되었다. 응용 계층 내에는 동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol: 이하 "DHCP"라 칭함) 계층(66)과 파일 전송 프로토콜(File Transfer Protocol: 이하 "FTP"라 칭함) 계층(68) 등이 위치한다. DHCP 계층(66)은 IP 계층(58) 상의 호스트에게 구성 정보를 전달하기 위한 프로토콜이며, FTP 계층(68)은 파일과 구성 정보의 다운로드에 사용되는 프로토콜이다.
상기에 도시한 프로토콜 스택은 본 발명이 적용될 수 있는 일 예를 나타낸 것으로, 본 발명의 적용 분야가 상기 도 2에 의해 제한되는 것이 아님에 유의하여야 한다. 오히려 본 발명은 IP와 TCP를 기반으로 하는 모든 종류의 통신에 적용될 수 있다.
도 3은 도 2의 IP 계층(58)에서 송신되고 라우트되는 IP 패킷을 도시한 것이다. 참조번호 70은 상기 IP 패킷을 의미한다.
도 3을 참조하면, IP 패킷(70)은 IP 헤더 필드(72)와 TCP 헤더 필드(74)와 페이로드 필드(76)로 이루어진다. 페이로드 필드(76)는 통상 하나의 네트워크 장치로부터 다른 장치로 운반되기 위한 데이터를 포함한다. 다른 경우 페이로드 필드(76)는 ICMP 네트워크 관리 메시지들 또는 UDP, TCP, FTP, DHCP 등의 다른 프로토콜의 데이터 패킷들을 포함할 수 있다.
상기 IP 헤더(72)의 정보들을 간략히 설명하면 다음과 같다. 4비트의 프로토콜 버전(Protocol Version)은 인터넷 헤더의 포맷을 나타낸다. 이하 RFC 791에 개 시된 버전 4 포맷을 설명한다. 4비트의 헤더 길이(Header Length)는 인터넷 헤더의 길이이며 데이터의 시작을 지시한다. 서비스 유형(Type Of Service)은 지연(Delay)과 신뢰성(Reliability) 및 효율성(Throughput)의 측면에서 원하는 서비스의 품질을 나타내는 8비트의 정보이다. 16비트의 전체 길이(Total Length)는 옥텟 단위로 측정된 패킷(헤더 및 데이터)의 길이이다.
패킷 식별자(Packet Identifier)는 데이터그램의 조각들(fragments)을 조립하기 위해 송신 노드에서 할당한 16비트의 식별값이다. 각각 1비트인 3개의 플래그들 중 첫 번째 예비된 비트는 0으로 설정되며, 두 번째 비트인 DF는 조각(Fragment)인지의 여부를 나타내고, 세 번째 비트인 MF는 마지막 조각인지의 여부를 나타낸다. 13비트의 프래그먼트 옵셋(Fragment Offset)은 해당 조각이 데이터그램의 어느 위치에 속하는지를 나타낸다. 유효시간(Time To Live: TTL)은 해당 데이터그램이 잔류할 수 있는 최대 시간을 8비트로 나타낸다. 8비트의 프로토콜 식별자(Protocol Identifier)는 데이터그램의 데이터 부분에서 사용되는 프로토콜(여기서는 TCP)을 나타낸다. 16비트의 헤더 체크섬(Header Checksum)은 헤더만의 오류정정 정보이다. 소스 주소(Source Address)와 목적지 주소(Destination Address)는 각각 근원지와 목적지의 32비트 IP 주소를 나타낸다.
또한 상기 TCP 헤더(74)에 대해 설명하면 다음과 같다. 근원지 포트(Source Port)와 목적지 포트(Destination Port)는 각각 근원지와 목적지의 16비트 포트번호를 나타낸다. 32비트의 시퀀스 번호(Sequence Number: SN)는 페이로드 필드(76)에 포함되는 첫 번째 데이터 옥텟의 시퀀스 번호를 나타낸다. 32비트의 애크 번호 (Acknowledge Number)는 송신 노드에서 수신하기를 기대하는 다음 시퀀스 번호이다. 4비트의 데이터 옵셋은 32비트 워드의 단위로 TCP 헤더(74)의 길이를 나타낸다. 6비트의 예비된 필드는 0으로 설정되어야 한다. 제어 비트들(Control Bits)은 표준화된 TCP 응답(Acknowledge: ACK)의 경우에 응답(Acknowledge)의 유형을 결정하는데 사용되는 6개의 비트들(URG, ACK, PSH, RST, SYN, FIN)이다. 상기 제어 비트들의 의미는 하기에 나타낸 바와 같다.
URG(Urgent Pointer) : 긴급 지시자(Urgent Pointer) 필드의 유효 여부를 나타냄.
ACK(Acknowledge) : 패킷이 응답을 구성하는지의 여부를 나타냄.
PSH(Push) : "푸쉬(Push)" 기능이 요구되었는지를 나타냄.
RST(Reset) : 접속 리셋이 요구되었는지를 나타냄.
SYN(Synchronization) : 시퀀스 번호들을 동기화함.
FIN(Final) : 송신 노드에서 더 이상 전송할 데이터가 없음을 나타냄.
16비트의 윈도우 크기(Window Size)는 송신 노드에서 수용할 수 있는 시퀀스 번호의 최대 크기를 나타낸다. 16비트의 TCP 체크섬은 헤더와 데이터의 체크섬이다. 16비트의 긴급 지시자(Urgent Pointer)는 이어지는 긴급 데이터의 시퀀스 번호를 나타낸다. 옵셋 필드는 사용자에 의해 설정될 수 있는 다양한 정보를 포함하며, 특히 본 발명의 바람직한 실시예에 따라 가상 옥텟 블록들에 대한 비트 어레이와 개별 애크(Individual Ack) 등으로 이루어진 비트화된 블록 애크를 포함한다.
TCP는 스트림-기반의 흐름 제어 메커니즘을 가지므로, 보통의 경우 송신자는 이전 전송된 세그먼트들에 대한 어떠한 이력도 저장하지 않으며, 단지 시작 시퀀스 번호(starting sequence number)와 윈도우 크기 및 전송되는 옥텟 블록의 시퀀스 번호만을 알 수 있다. TCP는 누적 시퀀스 번호에서 시작하는 하나의 세그먼트-크기의 블록만을 전송하지는 않기 때문에, 재전송되는 세그먼트는 손실 세그먼트와 동일하지 않을 수 있다. 여기서 누적 시퀀스 번호란 중복하여 전송한 첫 번째 세그먼트, 즉 애크되지 않은 첫 번째 세그먼트의 시퀀스 번호를 의미한다.
본 발명은 비트화된 블록 애크(Bitwise Block Acknowledgement: 이하 BBACK라 칭함)에 기초하여 동작한다. 먼저 수신기는 송신자에게 수신자 윈도우의 현재 상태를 통보하며, 송신자는 수신자와 윈도우를 효과적으로 동기된다. 그러면 상기 수신자 윈도우로부터 비트 어레이 구조의 가상 블록 정보가 만들어진다. 상기 비트 어레이의 각 비트들은 소정 크기를 가지는 하나의 가상 블록을 나타낸다. 상기 가상 블록의 크기는 하나의 세그먼트 크기가 되는 것이 바람직하나, 네트워크 조건에 따라 하나 또는 그 이상의 옥텟들(Octets)이 될 수 있다.
상기 비트 어레이의 최하위 비트(Least Significant Bit:이하 "LSB"라 칭함)는 애크되지 않은(손실된) 첫 번째 세그먼트의 시퀀스 번호, 즉 누적 시퀀스 번호에서 시작하는 가상 블록을 나타내며, 이어지는 다음 가상 블록들은 순서대로 상기 비트 어레이의 상위 비트들에 매핑된다. 가상 블록들의 크기는 가변 크기를 가지는 전체 윈도우를 커버할 수 있도록 조정된다. 어떤 가상 블록이 물리적으로 손실된 부분과 적어도 부분적으로 일치(즉, 오버랩(overlap))하면 상기 가상 블록에 매핑되는 비트의 값은 '1'이 되고, 그렇지 않으면 '0'이 된다. 가상 블록들의 설정 (set)은 모든 실제 손실된 블록들을 포함한다.
도 4는 본 발명의 바람직한 실시예에 따른 비트 어레이의 일 예를 보인 것이다.
도시한 바와 같이, 물리적인(즉 실제의) TCP 스트림(100)은 여러 크기들을 가지는 일련의 TCP 세그먼트들로 구성된다. TCP 세그먼트들은 여러 크기들을 가질 수 있지만, TCP 스트림(100)의 시작 시퀀스 번호는 애크되지 않은 첫 번째 세그먼트의 시퀀스 번호, 즉 누적 시퀀스 번호(102)로 고정된다. TCP 스트림(100)은 불연속적인 복수의 손실 블록들(loss blocks)(104)을 포함하며, 마지막 블록은 최대 시퀀스 번호(106)를 가진다.
상기 TCP 스트림(100)에 대응하는 가상 TCP 스트림(110)은 소정 크기를 가지는 일련의 가상 블록들로 구성된다. 상기 가상 블록들 각각을 나타내는 비트 어레이의 비트들은, 해당 가상 블록이 손실 블록들(104)의 적어도 일부와 오버랩되는 경우에 '1'로 설정된다. 따라서 상기 TCP 스트림(100)에 대한 비트 어레이는 '1011011'이 된다. 상기 비트 어레이의 크기는 다양한 네트워크 조건에 따라 동적으로 결정될 수 있다.
도 5는 본 발명의 바람직한 실시예에 따라 IP 패킷의 옵션 필드에 포함되는 비트화된 블록 애크(BBACK)의 포맷을 나타낸 것이다. 여기에는 기본적인 12바이트 크기를 가지는 BBACK(120)를 나타내었다. 참조번호 122와 124는 각각 비트화된 블록 애크(BBACK)의 종류와 길이를 나타내는 부분이다.
도 5를 참조하면, 종류(122) 및 길이(124) 이후의 처음 4바이트는 해당 세그 먼트가 정상적으로(손실없이) 수신되었음을 나타내는 개별 애크(Individual Ack)(126)이다. 상기 개별 애크(126)는 상기 해당 세그먼트의 시퀀스 번호로서 "누적(cumulative) 애크"에 해당한다. 다음 4바이트는 가상 블록의 크기를 나타내는 입자성 정보(128)이다. 마지막 4바이트는 비트화된 가상 블록 정보(130)를 포함하며, 상기 비트화된 가상 블록 정보(130)는 소정 크기의 가상 TCP 스트림을 구성하는 가상 블록들 각각의 손실 여부를 나타내는 비트 어레이를 포함한다.
여기에서는 4바이트(1워드) 크기의 비트 어레이를 나타내었으나, 상기 비트 어레이의 크기는 네트워크 조건에 따라 4바이트 이상으로 확장될 수 있음은 물론이다. 즉, 가상 블록 정보(130)의 크기는 수신자 윈도우의 어떠한 크기라도 지원할 수 있도록 조정될 수 있다. 이때 기본적인 12바이트 크기의 비트화된 블록 애크에 포함되는 4바이트의 비트 어레이를 가상 블록 워드라 칭하면, 옵션 필드의 길이 제한이 40바이트이고 종류와 길이 필드들의 길이가 2바이트이므로, 하기 <수학식 1>에 의해 가상 블록 정보(130)에는 최대 7개의 가상 블록 워드들이 포함될 수 있다.
Figure 112004045861945-PAT00001
이와 같이 BBACK는 비트화된 블록들(Bitwise Blocks)을 미세한 입자성(granularity)을 가지고 표현할 수 있다.
송신자가 비트화된 블록 애크의 가상 블록 정보를 수신하면, 상기 가상 블록 정보의 비트 '1'에 해당하는 가상 블록을 커버하는 실제 블록들(physical blocks) 이 재전송된다. 메모리 할당의 내부 분할 방식에 따라, 송신자는 가상 블록들에 기초하여 전체 유실된 실제 블록들을 복구할 수 있도록 손실되지 않은 실제 블록들을 재전송할 수도 있다. 한 TCP 세션에서 세그먼트 크기가 동일한 크기로 유지되더라도, 가상 블록의 크기는 조정될 수 있다. 따라서 가상 블록의 크기를 적절하게 조정하면, 손실되지 않은 블록들의 재전송으로 인한 트래픽 낭비를 최소화할 수 있다. 누적 시퀀스 번호로부터 시작하는 첫 번째 블록의 재전송은 트래픽의 낭비가 아님은 물론이다.
도 6은 본 발명에 따른 BBACK를 이용한 세그먼트들의 송수신을 나타낸 것이다. 여기에서 복구 메커니즘에 대한 상세한 설명은 생략하였다. 도시된 예에서 비트화된 블록의 입자성은 1 세그먼트이다. 이는 복구 메커니즘이 세그먼트의 단위로 이루어짐을 의미한다. BBACK의 가상 블록 정보 전체는 수신자 윈도우의 상태를 나타낸다. 따라서 송신자는 한 RTT 동안에 불연속적으로 손실된 세그먼트들을 알 수 있다.
도 6을 참조하면, 세그먼트 #6의 애크와 세그먼트 #7이 유실되었으나 세그먼트 #8의 개별 애크는 세그먼트 #2 내지 #8에 대한 비트 어레이를 포함하는 가상 블록 정보와 함께 송신자에게 정확하게 전달된다. 또한 세그먼트 #2의 재전송은 실패하였으나, 송신자는 세그먼트 #2의 재전송 이후에 수신된 세그먼트 #9의 개별 애크를 인식할 수 있다. 각각의 개별 애크는 수신자가 정상적으로 수신한 최종 세그먼트가 무엇인지를 통지하여, 송신자가 세그먼트들의 중복을 검출할 수 있도록 한다.
도 7은 본 발명의 바람직한 실시예에 따른 송신측 네트워크 장치(송신자)의 TCP 수신확인 동작을 나타낸 흐름도이다.
도 7을 참조하면, 과정(202)에서 비트화된 블록 애크(BBACK)가 송신자에게로 수신된다. 상기 비트화된 블록 애크는 개별 애크와 가상 블록 정보를 포함하고 있다. 과정(204)에서 송신자는 상기 가상 블록 정보의 모든 비트들이 '0'인지를 판별한다. 만일 상기 가상 블록 정보가 0이면 과정(202)으로 복귀한다.
반면 상기 가상 블록 정보의 비트들이 모두 모두 0이 아니면, 과정(206)에서 송신자는 상기 가상 블록 정보에서, 시작 시퀀스 번호(즉 누적 시퀀스 번호)와 상기 개별 애크에 해당하는 시퀀스 번호 사이에 비트 어레이 중 비트 '1'에 해당하는 가상 블록의 시퀀스 번호를 검출한다. 과정(208)에서는 상기 검출한 시퀀스 번호의 세그먼트를 포함하는 실제 블록이 재전송된다.
도 8은 본 발명의 바람직한 실시예에 따른 수신측 네트워크 장치(수신자)의 TCP 수신확인 동작을 나타낸 흐름도이다.
도 8을 참조하면, 과정(210)에서 수신자는 적어도 한 가상 블록에 대응하는 세그먼트들이 모두 수신되기까지 대기한다. 과정(212)에서 수신자는 상기 수신된 가상 블록에 손실 세그먼트의 적어도 일부가 존재하는지, 즉 상기 수신된 블록이 손실 부분과 오버랩되는지를 판별한다. 만일 손실 부분과 오버랩되면, 과정(214)에서 수신자는 자신이 알고 있는 시작 시퀀스 번호로 시작하는 가상 블록 정보의 비트 어레이에서 상기 가상 블록에 해당하는 비트를 '1'로 설정한다. 반면 손실 부분과 오버랩되지 않으면, 과정(216)에서 수신자는 상기 가상 블록 정보의 비트 어레이에서 상기 가상 블록에 해당하는 비트를 '0'으로 설정한다. 과정(218)에서 수신 자는 개별 애크를 손실 없이 수신한 최종 세그먼트의 시퀀스 번호로 설정하고, 상기 개별 애크와 상기 가상 블록 정보를 포함하는 BBACK를 송신자로 전송한다.
이상에서 설명한 바와 같이, BBACK(본 발명)는 TCP(Reno), TCP New Reno 및 TCP SACK의 문제점과 기능을 커버할 수 있다. TCP(Reno)는 한 세그먼트마다 복구 절차 전체, 즉 빠른 복구와 빠른 재전송을 필요로 하며, TCP New Reno는 모든 세그먼트들이 복구될 때까지 빠른 복구의 상태를 유지한다. 따라서 TCP(Reno) 및 TCP New Reno는 각 세그먼트들이 복구될 때까지 한 RTT가 낭비된다.그 이유는 이전에 복구된 세그먼트의 애크가 수신되어야만 송신자가 다음 세그먼트의 손실을 알 수 있기 때문이다. SACK와 BBACK는 송신자가 한 RTT 동안에 다중 세그먼트 손실을 복구할 수 있다. 도 9에는 SACK에 비해 향상된 BBACK의 기능을 도시하였다.
도 9를 참조하면, SACK는 한 블록당 8바이트의 애크 정보를 필요로 하며 BBACK는 고정적으로 12바이트(각 4바이트의 개별 애크, 입자성 정보, 가상 블록 정보)만을 필요로 한다. 세그먼트 중복의 검출을 위해 SACK는 검출 SACK(Detecting SACK:이하 "D-SACK"라 칭함)라는 보다 확장된 기술을 필요로 하며, 재전송 손실을 검출할 수 있는 방법이 없다. BBACK는 개별 ACK를 이용하여 세그먼트 중복과 재전송 손실을 모두 검출할 수 있다. 여기서 D-SACK는 SACK에서 확장된 것으로 세그먼트 중복을 표현하기 위한 추가의 8 바이트를 필요로 하며, 송신자가 중복되어 전송된 블록들과 세그먼트들을 검출할 수 있도록 하는 개별 애크를 제공하지는 않는다.
TCP의 SACK는 송신자가 손실 세그먼트를 재전송하는 송신자측 상태를 생략한다. 따라서 재전송 세그먼트가 손실된다면 송신자는 상기 손실을 인지할 수 있는 방법이 없다. 이는 SACK가 단지 수신자의 상태 정보만을 제공하기 때문이다. 이에 비해 본 발명의 개별 애크는 이러한 문제를 해결한다. 즉 송신자는 개별 애크에 의해, 손실 세그먼트의 재전송 이후에 전송한 다음 세그먼트의 상태를 알 수 있다. 송신자가 상기 다음 세그먼트에 대한 애크를 수신한다면, 상기 손실 세그먼트의 재전송은 실패한 것이다. 이상과 같이, SACK는 최소 8바이트에서 최대 32 바이트를 필요로 하는 것에 비하여, 본 발명의 BBACK는 모든 기능들을 제공하면서 고정적인 12 바이트만을 필요로 한다.
{{위 예의 경우, 만일 손실 세그먼트의 재전송이 성공하였다면 수신자는 손실 세그먼트의 개별 애크를 전송하게 되나요??}}
TCP는 스트림 기반의 흐름 제어 구조를 사용하기 때문에, 본 발명은 손실 세그먼트의 재전송시에 약간의 오버헤드를 가질 수 있다. 즉, 손실 세그먼트 전체에 대한 재전송이 요구되면 일부 옥텟들이 불필요하게 재전송될 수 있다. 도 10은 본 발명의 BBACK에 따른 가상 블록들의 재전송을 나타낸 것이다. 여기서 Si는 마지막 누적 애크로부터 i번째 세그먼트의 시작 시퀀스 번호 옵셋이며, Ei는 상기 마지막 누적 애크로부터 i번째 세그먼트의 종료 시퀀스 번호 옵셋이고, g는 가상 블록의 크기이다. 따라서 "Si-[Si/g]*g"와 "<Ei/g>*g-E i"의 합 만큼의 재전송 오버헤드가 발생한다. 여기서 [ ]는 라운드-오프 연산자이고, < >는 라운드-업 연산자이다.
도 10을 참조하면, 최대 오버헤드는 한 가상 블록 크기의 두 배가 될 수 있으며, 평균적으로 한 가상 블록 크기가 된다. 이는 가상 블록들이 세그먼트 블록들 과 정확하게 동기되지 않은 경우에 발생한다. 따라서 가상 블록의 크기를 실제 세그먼트의 크기와 동일하게 하면, 가상 블록 정보가 손실 세그먼트들을 정확하게 표시하게 되어 세그먼트 단위의 복구 동작은 오버헤드를 발생하지 않는다. 다른 경우 송신자는 이전 전송된 세그먼트들의 이력 정보를 저장하여 두면, 실제 전송된 세그먼트의 단위로 복구 동작이 수행될 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상에서 상세히 설명한 바와 같이 동작하는 본 발명에 있어서, 개시되는 발명중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은, 실제 TCP 스트림에 대응하는 가상 TCP 스트림의 손실 여부를 표시하는 비트 어레이를 TCP 헤더의 옵셋 필드를 이용하여 수신자로부터 송신자로 전송함으로써, 블록 정보의 양에 비해 상대적으로 적은 양의 옵셋 정보만으로 복구 동작을 신속하고 정확하게 수행할 수 있으며 세그먼트들의 중복 및 재전송 손실의 검출을 가능하게 한다.

Claims (14)

  1. 전송제어 프로토콜(TCP)을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 송신 방법에 있어서,
    각각의 비트들이 소정 크기의 가상 블록을 나타내는 비트 어레이로 구성된 가상 블록 정보를 포함하는 비트화된 블록 애크를 생성하는 과정과, 상기 각각의 비트들은 해당 가상 블록이 실제 스트림의 손상 블록들과 오버랩되는 경우에 '1'로 설정되며,
    상기 비트화된 블록 애크를 전송하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  2. 제 1 항에 있어서, 상기 가상 블록의 크기는,
    상기 실제 스트림 상의 한 세그먼트 크기와 동일한 것을 특징으로 하는 상기 방법.
  3. 제 1 항에 있어서, 상기 가상 블록들의 크기는,
    전송제어 프로토콜 동작을 위한 전체 윈도우의 크기를 커버하도록 정해지는 것을 특징으로 하는 상기 방법.
  4. 제 1 항에 있어서, 상기 비트화된 블록 애크는,
    손실없이 수신한 최종 세그먼트의 시퀀스 번호를 나타내는 개별 애크를 더 포함하는 것을 특징으로 하는 상기 방법.
  5. 제 4 항에 있어서, 상기 비트 어레이는,
    애크되지 않은 첫 번째 세그먼트의 시퀀스 번호로부터 상기 개별 애크까지의 세그먼트들에 대응하는 가상 블록들을 나타내는 것을 특징으로 하는 상기 방법.
  6. 제 1 항에 있어서, 상기 비트화된 블록 애크는,
    상기 비트화된 블록 애크의 종류 및 길이를 나타내는 필드와,
    상기 가상 블록의 크기를 나타내는 입자성 정보를 더 포함하는 것을 특징으로 하는 상기 방법.
  7. 제 1 항에 있어서, 상기 비트화된 블록 애크는,
    전송제어 프로토콜 헤더의 옵션 필드 내에 포함되는 것을 특징으로 하는 상기 방법.
  8. 전송제어 프로토콜(TCP)을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 수신 방법에 있어서,
    각각의 비트들이 소정 크기의 가상 블록을 나타내는 비트 어레이로 구성된 가상 블록 정보를 포함하는 비트화된 블록 애크를 수신하는 과정과, 상기 각각의 비트들은 해당 가상 블록이 실제 스트림의 손상 블록들과 오버랩되는 경우에 '1'로 설정되며,
    상기 비트 어레이의 모든 비트들이 '0'인지를 판별하는 과정과,
    상기 비트 어레이의 모든 비트들이 '0'이 아니면, 상기 비트 어레이의 비트 '1'이 나타내는 가상 블록을 재전송하는 과정을 포함하는 것을 특징으로 하는 상기 방법.
  9. 제 8 항에 있어서, 상기 가상 블록의 크기는,
    상기 실제 스트림 상의 한 세그먼트 크기와 동일한 것을 특징으로 하는 상기 방법.
  10. 제 8 항에 있어서, 상기 가상 블록들의 크기는,
    전송제어 프로토콜 동작을 위한 전체 윈도우의 크기를 커버하는 것을 특징으 로 하는 상기 방법.
  11. 제 8 항에 있어서, 상기 비트화된 블록 애크는,
    손실없이 수신한 최종 세그먼트의 시퀀스 번호를 나타내는 개별 애크를 더 포함하는 것을 특징으로 하는 상기 방법.
  12. 제 11 항에 있어서, 상기 비트 어레이는,
    애크되지 않은 첫 번째 세그먼트의 시퀀스 번호로부터 상기 개별 애크까지의 세그먼트들에 대응하는 가상 블록들을 나타내는 것을 특징으로 하는 상기 방법.
  13. 제 8 항에 있어서, 상기 비트화된 블록 애크는,
    상기 비트화된 블록 애크의 종류 및 길이를 나타내는 필드와,
    상기 가상 블록의 크기를 나타내는 입자성 정보를 더 포함하는 것을 특징으로 하는 상기 방법.
  14. 제 8 항에 있어서, 상기 비트화된 블록 애크는,
    전송제어 프로토콜 헤더의 옵션 필드 내에 포함되는 것을 특징으로 하는 상기 방법.
KR1020040080600A 2004-10-08 2004-10-08 전송제어 프로토콜을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 송수신 방법 및 장치 KR100663465B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040080600A KR100663465B1 (ko) 2004-10-08 2004-10-08 전송제어 프로토콜을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 송수신 방법 및 장치
US11/245,422 US20060107168A1 (en) 2004-10-08 2005-10-07 Method and apparatus for transmitting/receiving virtual block information for multiple segment recovery in data network using transmission control protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040080600A KR100663465B1 (ko) 2004-10-08 2004-10-08 전송제어 프로토콜을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 송수신 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20060031534A true KR20060031534A (ko) 2006-04-12
KR100663465B1 KR100663465B1 (ko) 2007-01-02

Family

ID=36387903

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040080600A KR100663465B1 (ko) 2004-10-08 2004-10-08 전송제어 프로토콜을 사용하는 데이터 네트워크에서 다중 세그먼트 복구를 위한 가상 블록 정보의 송수신 방법 및 장치

Country Status (2)

Country Link
US (1) US20060107168A1 (ko)
KR (1) KR100663465B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100936142B1 (ko) * 2007-11-16 2010-01-13 (주)씨디네트웍스 Ack 메시지의 전송 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060112287A (ko) * 2005-04-25 2006-10-31 삼성전자주식회사 유무선 통신시스템에서 비트화 데이터 청크 수신응답 방법및 장치
JP5494298B2 (ja) * 2010-07-06 2014-05-14 富士通株式会社 計算機装置,障害復旧制御プログラムおよび障害復旧制御方法
US10666397B2 (en) * 2016-04-01 2020-05-26 Mediatek Inc. Method and apparatus for control signaling
CN109525374B (zh) * 2017-09-20 2020-10-16 华为技术有限公司 数据传输的方法、无线接入点、用户设备及传输设备
CN111435866B (zh) 2019-01-14 2023-02-10 华为技术有限公司 数据传输方法及相关装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697331B1 (en) * 1999-11-17 2004-02-24 Telefonaktiebolaget Lm Ericsson (Publ) Link layer acknowledgement and retransmission for cellular telecommunications
US6658619B1 (en) 2000-10-06 2003-12-02 Ericsson Inc. Systems and methods for implementing hierarchical acknowledgement bitmaps in an ARQ protocol
KR20020093543A (ko) * 2001-06-09 2002-12-16 주식회사 하이닉스반도체 다중 패킷 손실 제어 방법
US6744766B2 (en) 2002-06-05 2004-06-01 Meshnetworks, Inc. Hybrid ARQ for a wireless Ad-Hoc network and a method for using the same
US7676580B2 (en) * 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
US7385976B2 (en) * 2004-08-12 2008-06-10 Mitsubishi Electric Research Laboratories, Inc. Method for acknowledging data packets in a network
KR100678943B1 (ko) * 2004-08-24 2007-02-07 삼성전자주식회사 블록 ack 프레임 전송방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100936142B1 (ko) * 2007-11-16 2010-01-13 (주)씨디네트웍스 Ack 메시지의 전송 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체

Also Published As

Publication number Publication date
KR100663465B1 (ko) 2007-01-02
US20060107168A1 (en) 2006-05-18

Similar Documents

Publication Publication Date Title
US7483376B2 (en) Method and apparatus for discovering path maximum transmission unit (PMTU)
US6934257B2 (en) Transferring transmission control protocol packets
US7965674B2 (en) Sub-segment based transport layer protocol for wireless medium
US7089312B2 (en) System and method for reducing retransmissions due to tunneled TCP-in-TCP communication in a network
US20030131079A1 (en) Performance enhancing proxy techniques for internet protocol traffic
US6445717B1 (en) System for recovering lost information in a data stream
US7061856B2 (en) Data throughput over lossy communication links
US7881205B2 (en) Configurable delay limit for error control communications
US7460472B2 (en) System and method for transmitting information in a communication network
US8085669B2 (en) Session relay device and session relay method
US6198735B1 (en) Method for retransmitting a data packet in a packet network
US7480301B2 (en) Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
US20060259845A1 (en) Method and apparatus for acknowledging a bitwise data chunk in wireline and wireless communication systems
US20060107168A1 (en) Method and apparatus for transmitting/receiving virtual block information for multiple segment recovery in data network using transmission control protocol
Vangala et al. The TCP SACK-aware snoop protocol for TCP over wireless networks
Caro et al. Retransmission policies with transport layer multihoming
WO2009027301A1 (en) Method, system, and apparatus for reliable data packet recovery
Wang et al. Concurrent multipath transfer protocol used in ad hoc networks
JP2003515273A (ja) 通信システムにおけるデータスループットを改善する方法と装置
EP1505759A2 (en) Method and device for transmitting/receiving data using acknowledged transport layer protocols
KR100913897B1 (ko) 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법
Buchholcz et al. Explicit loss notification to improve TCP performance over wireless networks
KR20110078564A (ko) 멀티-호밍 기능을 제공하는 통신 프로토콜에 있어서의 패킷 왕복 시간 업데이트 방법 및 멀티-호밍 기능을 제공하는 통신 장치
Ye et al. Independent per path congestion control for reliable data transmission between multi-homed hosts
Rebok Active router communication layer

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee