KR101059752B1 - 고정 주소 기반의 tcp 재전송 처리 방법 - Google Patents

고정 주소 기반의 tcp 재전송 처리 방법 Download PDF

Info

Publication number
KR101059752B1
KR101059752B1 KR1020100115086A KR20100115086A KR101059752B1 KR 101059752 B1 KR101059752 B1 KR 101059752B1 KR 1020100115086 A KR1020100115086 A KR 1020100115086A KR 20100115086 A KR20100115086 A KR 20100115086A KR 101059752 B1 KR101059752 B1 KR 101059752B1
Authority
KR
South Korea
Prior art keywords
transmission buffer
data
buffer
transmission
tcp
Prior art date
Application number
KR1020100115086A
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 (주) 위즈네트
Priority to KR1020100115086A priority Critical patent/KR101059752B1/ko
Application granted granted Critical
Publication of KR101059752B1 publication Critical patent/KR101059752B1/ko
Priority to US13/295,042 priority patent/US20120311179A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 이더넷 프레임 크기 n개의 수신 버퍼에 대한 시작 포인터를 고정적으로 선언하여 송신 버퍼에 대해 고정 주소를 할당한 상태에서, 재전송시 동적인 포인터 연산을 수행하지 않고, 송신 버퍼의 고정 주소를 이용하여 안정적으로 패킷을 재전송하는 기술에 관한 것이다.
이를 위해, 본 발명에 따른 고정 주소 기반의 TCP 재전송 처리 방법은 (a) 고정 주소를 갖는 복수의 송신 버퍼를 설정하는 단계; (b) 상기 송신 버퍼 중 쓰기 금지 플래그가 잠금 해제된 n번째 송신 버퍼에 전송할 k번째 데이터를 저장하면서 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 설정하는 단계; (c) 상기 k번째 데이터를 수신 단말측으로 전송하고 상기 k번째 데이터에 대한 수신 확인 신호의 수신 여부를 판단하는 단계; 및 (d) 상기 수신 확인 신호가 수신되면 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 해제하고, 상기 수신 확인 신호가 기설정 시간 내에 수신되지 않으면 상기 n번째 송신 버퍼에 저장된 k번째 데이터를 재전송하는 단계를 포함한다.

Description

고정 주소 기반의 TCP 재전송 처리 방법{METHOD FOR PROCESSING TCP RE-TRANSMISSION BASED ON THE FIXED ADDRESS}
본 발명은 고정 주소 기반의 TCP 재전송 처리 방법에 관한 것으로서, 특히 이더넷 프레임 크기 n개의 송신 버퍼에 대한 시작 포인터를 고정적으로 선언한 상태에서, 재전송시 동적인 포인터 연산을 수행하지 않고, 고정 시작 포인터에 의한 고정 주소를 기반으로 간단하게 패킷을 재전송하는 기술에 관한 것이다.
네트워크의 정보 전달을 통제하는 대표적인 프로토콜로서, TCP(Transmission Control Protocol)가 있다. TCP는 IP(Internet Protocol)를 기반으로 서로 다른 시스템들을 가진 컴퓨터들을 서로 연결하고, 데이터를 전송하는데 사용하는 통신 프로토콜이다.
이러한 TCP는 송신 단말이 데이터를 패킷 단위로 나누어 전송하면 수신 단말이 수신한 패킷들을 재조합하여 원래의 데이터를 복원한다. 수신 단말은 각각의 패킷이 수신되면 수신 확인 신호를 송신 단말측으로 전송하여, 해당 데이터에 대한 패킷이 모두 성공적으로 수신 완료되었음을 통보한다. 만일 수신 확인 신호가 수신되지 않으면, 송신 단말은 수신 단말로부터 수신 확인 신호가 수신될 때까지 패킷을 재전송하게 된다.
일반적으로 TCP는 프로토콜 스택(protocol stack)으로 구현되어 통신 시스템 상에 탑재되어 구현되며, TCP가 리눅스 및 임베디드 시스템(embedded system)에 탑재되는 경우, 리눅스 및 임베디드 시스템은 재전송을 위해 복수의 이더넷 프레임 크기의 송신 버퍼를 구비한다. 송신 버퍼 크기만큼의 이더넷 프레임이 미리 저장되어 있으므로 수신 단말로부터 수신 확인 신호가 수신되지 않으면, 송신 단말이 송신 버퍼에서 해당 패킷을 수신 단말로 전송할 수 있다.
이러한 재전송 과정에서 복수의 전송 데이터(패킷)를 송신 버퍼에 저장하고 그 송신 버퍼에 저장된 데이터를 전송하기 위한 스케줄링 알고리즘과 동적인 송신 버퍼의 시작 포인터 연산이 필요하다. 송신 버퍼를 위한 스케줄링 알고리즘은 시스템의 복잡성을 증가시키고, 송신 버퍼의 동적인 포인터 연산은 포인터 연산으로 인한 시스템의 불안정 요소를 증가시킬 수 있다.
본 발명은 상기한 사정을 감안하여 창출되어진 것으로서, 이더넷 프레임 크기 n개의 송신 버퍼의 크기를 n x 이더넷 프레임으로 설정하고, n번째 송신 버퍼가 시작되는 지점을 n번째 송신 버퍼의 시작 포인터로 고정적으로 선언하여 n번째 송신 버퍼에 대해 고정 주소를 할당함으로써 송신 버퍼를 위한 스케줄링 알고리즘과 송신 버퍼의 포인터 연산을 단순화시켜 시스템의 동작을 개선시키는 것을 목적으로 한다.
본 발명에 따른 고정 주소 기반의 TCP 재전송 처리 방법은 (a) 고정 주소를 갖는 복수의 송신 버퍼를 설정하는 단계; (b) 상기 송신 버퍼 중 쓰기 금지 플래그가 잠금 해제된 n번째 송신 버퍼에 전송할 k번째 데이터를 저장하면서 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 설정하는 단계; (c) 상기 k번째 데이터를 수신 단말측으로 전송하고 상기 k번째 데이터에 대한 수신 확인 신호의 수신 여부를 판단하는 단계; 및 (d) 상기 수신 확인 신호가 수신되면 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 해제하고, 상기 수신 확인 신호가 기설정 시간 내에 수신되지 않으면 상기 n번째 송신 버퍼에 저장된 k번째 데이터를 재전송하는 단계를 포함할 수 있다.
바람직하게, 본 발명의 상기 (a) 단계에서 각 송신 버퍼는 이더넷 프레임 크기로 설정되고, 각 송신 버퍼의 시작 포인터가 고정적으로 선언되어 각 송신 버퍼가 고정 주소를 갖을 수 있다.
바람직하게, 본 발명의 상기 (b)단계는 전송할 k 번째 데이터가 입력되면 상기 복수의 송신 버퍼의 각 쓰기 금지 플래그를 스캔하여 잠금 해제된 송신 버퍼를 검색하는 단계; 쓰기 금지 플래그가 잠금 해제된 n번째 송신 버퍼가 검색되면 상기 k번째 데이터를 상기 n번째 송신 버퍼에 저장하는 단계; 및 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 설정하는 단계를 포함할 수 있다.
바람직하게, 본 발명의 상기 (d) 단계에서 상기 k번째 데이터에 대한 수신 확인 신호가 수신되면 상기 n번째 송신 버퍼의 고정 주소를 이용하여 상기 n번째 송신 버퍼를 탐색한 후, 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 해제할 수 있다.
바람직하게, 본 발명의 상기 (d) 단계에서 상기 k번째 데이터에 대한 수신 확인 신호가 수신되지 않으면 상기 n번째 송신 버퍼의 고정 주소를 이용하여 상기 n번째 송신 버퍼를 탐색한 후, 상기 n번째 송신 버퍼에 저장된 k번째 데이터를 재전송할 수 있다.
본 발명은 이더넷 프레임 크기 n개의 송신 버퍼의 크기를 n x 이더넷 프레임으로 설정하고, n번째 송신 버퍼가 시작되는 지점을 n번째 송신 버퍼의 시작 포인터로 고정적으로 선언하여 n번째 송신 버퍼에 대해 고정 주소를 할당함으로써 송신 버퍼를 위한 스케줄링 알고리즘과 송신 버퍼의 포인터 연산을 단순화시켜 시스템의 동작을 개선시키는 효과가 있다.
도 1은 본 발명의 실시예에 따른 고정 주소 기반의 TCP 재전송 처리 방법이 실행되는 시스템의 기능적 블록구성도이고,
도 2는 본 발명의 실시예에 따른 고정 주소 기반의 TCP 재전송 처리 방법에 적용되는 송신 버퍼 구조 및 시작 포인터 선언을 예시적으로 도시한 도면이고,
도 3은 본 발명의 실시예에 따른 고정 주소 기반의 TCP 재전송 처리 방법을 예시적으로 설명하는 플로우차트이고,
도 4는 본 발명의 실시예에 따른 고정 주소 기반의 TCP 전송 처리 방법을 예시적으로 설명하는 데이터 흐름도이고,
도 5는 일반적인 TCP 패킷 구조를 나타낸 도면이고,
도 6은 본 발명의 실시예에 따른 고정 주소 기반의 TCP 재전송 처리 방법을 예시적으로 설명하는 데이터 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 구체적으로 설명한다.
도 1은 본 발명의 실시예에 따른 고정 주소 기반의 TCP 재전송 처리 방법이 실행되는 시스템의 기능적 블록구성도이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 고정 주소 기반의 TCP 재전송 처리 시스템은 송신 버퍼 초기화부(10), 송신 버퍼 스캔부(20), 송신 버퍼 데이터 처리부(30), 송신 버퍼 잠금 제어부(40), 데이터 전송부(50), 및 수신 확인 처리부(60)를 구비한다.
송신 버퍼 초기화부(10)는 도 2에 도시된 바와 같이, 이더넷 프레임 크기를 단위로 이더넷 프레임을 n개로 나누어 저장 가능하도록 송신 버퍼의 크기를 초기화한다. n개의 송신 버퍼(B)는 모두 동일한 크기를 가지며, n번째 송신 버퍼가 시작되는 지점이 n번째 송신 버퍼의 시작 포인터로 선언된다. 이로써, n번째 송신 버퍼는 고정 주소(즉, 시작 포인터)를 갖게 된다. 본 발명의 실시예에서 송신 버퍼가 고정 주소를 갖기 때문에, 종래 기술과 달리 동적으로 포인터를 할당함으로써 갖는 포인터 연산을 수행하지 않아도 된다. 송신 버퍼 초기화부(10)는 선언된 n번째 송신 버퍼의 고정 주소를 송신 버퍼 스캔부(20)로 전달한다.
포인터가 선언된 송신 버퍼(B)에는 쓰기 금지 상태를 나타내기 위한 쓰기 금지 플래그(flag)가 마련된다.
송신 버퍼 스캔부(20)는 n개의 송신 버퍼를 순서대로 스캔하여 각 송신 버퍼의 쓰기 금지 플래그를 검색한다. 그 검색결과에 따라, 쓰기 금지 플래그가 해제되어 있는 송신 버퍼(예컨대, i번째 송신 버퍼)의 정보를 송신 버퍼 데이터 처리부(30)에 전송한다.
송신 버퍼 데이터 처리부(30)는 전송할 TCP 데이터가 상위 계층(즉, TCP/IP 4계층)으로부터 수신되면, 송신 버퍼 스캔부(20)로 송신 버퍼 스캔을 명령한다. 그 명령의 응답으로서, 송신 버퍼 스캔부(20)로부터 송신 버퍼 정보가 수신되면, 상기 송신 버퍼 정보에 상응하는 i번째 송신 버퍼에 TCP 데이터를 저장한다. TCP 데이터를 저장한 후, 송신 버퍼 데이터 처리부(30)는 데이터 전송부(50)에 i번째 송신 버퍼에 TCP 데이터에 대한 전송 명령을 전달한다. 또한, 송신 버퍼 데이터 처리부(30)는 수신 확인 처리부(60)로 TCP 데이터가 저장된 송신 버퍼의 정보(예컨대, 시작 포인터 정보)와 TCP 데이터에 대한 정보(시퀀스 번호(sequence number)와 수신 확인 번호(acknowledgement number))를 전송하여, 이후 수신 확인 처리부(60)를 통해 i번째 수신 버퍼에 저장된 TCP 데이터에 대한 수신 확인이 이루어지도록 한다.
송신 버퍼 잠금 제어부(40)는 송신 버퍼 데이터 처리부(30)로부터 전송받은 상기 i번째 송신 버퍼의 정보에 기초하여 상기 i번째 송신 버퍼의 쓰기 잠금 플래그를 잠금으로 설정한다. 또한, 송신 버퍼 잠금 제어부(40)는 수신 확인 처리부(60)로부터 i번째 송신 버퍼의 정보가 전송되면, 상기 i번째 송신 버퍼의 쓰기 잠금 플래그를 잠금 해제로 설정한다. 즉, 송신 버퍼 잠금 제어부(40)는 송신 버퍼 데이터 처리부(30)로부터 전송받는 송신 버퍼 정보에 근거하여 송신 버퍼(B)의 쓰기 잠금 플래그를 잠금 설정하고, 수신 확인 처리부(60)로부터 전송받는 송신 버퍼 정보에 근거하여 송신 버퍼(B)의 쓰기 잠금 플래그를 잠금 해제한다.
데이터 전송부(50)는 송신 버퍼 데이터 처리부(30)의 명령에 따라 i번째 송신 버퍼에 저장된 TCP 데이터(즉, 이더넷 패킷)를 전송하는 블록으로서, 송신 버퍼 데이터 처리부(30)로부터 전송받은 송신 버퍼의 정보를 이용하여 i번째 송신 버퍼에서 TCP 데이터를 리드(read)하여 수신측으로 전송한다. 또한, 데이터 전송부(50)는 수신확인 처리부(60)의 명령에 따라 수신 확인 신호가 기설정 시간 이내에 수신되지 않은 특정 번째의 송신 버퍼에 저장된 TCP 데이터에 대한 재전송을 수행한다.
수신 확인 처리부(60)는 수신 단말로부터 수신된 TCP 데이터로부터 송신한 데이터의 수신 확인 신호가 수신되었는가를 판단하여, 그 결과에 따라 송신 버퍼 잠금 제어부(40)와 데이터 전송부(50)를 제어한다. 구체적으로, 수신 확인 처리부(60)는 수신된 TCP 데이터로부터 시퀀스 번호/수신 확인 번호를 추출하여 송신 버퍼 데이터 처리부(30)로부터 전송받은 시퀀스 번호/수신 확인 번호와 비교한 후, 일치하는 것이 존재하면 해당 시퀀스 번호와 수신 확인 번호에 해당하는 TCP 데이터가 저장된 송신 버퍼의 정보를 송신 버퍼 잠금 제어부(40)로 전송하여, 송신 버퍼 잠금 제어부(40)가 해당하는 특정 번째의 송신 버퍼의 쓰기 금지 플래그를 잠금 해제하도록 한다.
이 수신 확인 처리부(60)에는 타임 아웃 처리부가 내장되어, 특정 TCP 데이터에 대해 수신 확인 신호가 수신될 때까지의 대기 시간을 계시하고, 수신 확인 신호에 대한 대기 시간이 기설정 시간을 초과하면, 데이터 전송부(50)로 상기 TCP 데이터에 대한 재전송을 명령한다.
이어, 도 3에 도시된 플로우차트를 참조하여 본 발명의 실시예에 따른 고정 주소 기반의 TCP 재전송 처리 방법을 상세하게 설명한다.
송신 버퍼 초기화부(10)는 TCP 송신을 위해 이더넷 프레임 크기의 n개의 송신 버퍼를 설정한다(S10). S10 단계에서 설정된 각 송신 버퍼는 고정된 데이터 크기를 갖도록 시작 포인터가 선언된다. 여기서, 선언되는 시작 포인터(즉, 고정 주소)는 고정적이다. 송신 버퍼 초기화부(10)는 설정된 송신 버퍼에 대한 정보를 송신 버퍼 스캔부(20)로 전송한다.
송신 버퍼 데이터 처리부(30)는 전송할 TCP 데이터(예를 들어, k번째 데이터)가 상위 계층인 TCP/IP 계층으로부터 입력되면(S20), 송신 버퍼 스캔부(20)로 송신 버퍼의 스캔을 명령한다.
상기 명령에 응답하여, 송신 버퍼 스캔부(20)는 n 개의 송신 버퍼를 순서대로 스캔하여 쓰기 금지 플래그가 잠금 해제된 송신 버퍼를 검색한다(S30). 상기 검색 결과, n 개의 모든 송신 버퍼의 쓰기 금지 플래그가 잠금 설정되어 잠금 해제된 쓰기 금지 플래그가 검색되지 않으면(S30에서 "없음"), 송신 버퍼 스캔부(20)는 계속해서 단계 S30을 수행한다.
반면, 단계 S30의 검색 결과, n 개의 송신 버퍼 중 i번째 송신 버퍼의 쓰기 금지 플래그가 잠금 해제로 검색되면(S30에서 "있음"), 송신 버퍼 스캔부(20)는 i번째에 해당하는 송신 버퍼의 정보(예컨대, 고정 주소)를 송신 버퍼 데이터 처리부(30)에 반환한다. 송신 버퍼 데이터 저장부(30)는 선택된 i번째 송신 버퍼의 시작 포인터부터 k번째 데이터에 해당하는 TCP 데이터를 저장한다(S40).
송신 버퍼 데이터 처리부(30)는 상기 TCP 데이터에 대한 저장이 완료되면, 송신 버퍼 잠금 제어부(40)로 i번째 송신 버퍼의 정보를 전송하고, 수신 확인 처리부(60)로는 TCP 데이터로부터 추출한 시퀀스 번호와 수신확인 번호를 전송한다. 또 송신 버퍼 데이터 처리부(50)는 데이터 전송부(50)로 i번째 송신 버퍼에 저장된 TCP 데이터에 대한 전송을 명령한다. 참고로, 수신확인 번호는 상기 시퀀스 번호와 TCP 데이터에 해당하는 데이터 길이로서 생성되는 값이다.
송신 버퍼 잠금 제어부(40)는 전송받은 i번째 송신 버퍼의 정보에 기초하여 송신 버퍼(B) 중에서 i번째 송신 버퍼의 쓰기 금지 플래그를 잠금 설정한다(S50).
데이터 전송부(50)는 상기 명령에 응답하여 송신 버퍼(B)의 i번째 송신 버퍼의 시작 포인터부터 데이터를 리드하여 리드된 데이터에 해당하는 TCP 패킷을 수신측으로 전송한다(S60).
한편, 수신 확인 처리부(60)는 송신 버퍼 데이터 처리부(30)로부터 전송받은 시퀀스 번호와 수신확인 번호를 저장한 상태에서, TCP 데이터가 수신되면 그 수신된 TCP 데이터로부터 시퀀스 번호/수신확인 번호를 추출하여 미리 저장된 시퀀스 번호/수신확인 번호와 비교함으로써, k번째 데이터의 수신 확인 신호에 대한 수신 여부를 판단한다(S70).
S70 단계에서, 미리 저장된 시퀀스 번호/수신확인 번호 중에서 수신된 TCP 데이터로부터의 시퀀스 번호/수신확인 번호가 존재하면, 수신 확인 처리부(60)는 k번째 데이터의 수신 확인 신호가 수신된 것으로 판단한다(S70에서 "예"). 반면에, 미리 저장된 시퀀스 번호/수신확인 번호 중에서 수신된 TCP 데이터로부터의 시퀀스 번호/수신확인 번호가 존재하지 않으면, 수신 확인 처리부(60)는 k번째 데이터의 수신 확인 신호가 수신되지 않은 것으로 판단한다(S70에서 "아니오").
수신 확인 처리부(60)는 S70 단계에서 k번째 데이터의 수신 확인 신호에 대한 수신 확인 신호의 수신이 확인되지 않으면, 재전송을 위한 타임-아웃을 판단한다(S80). S80의 판단결과, 타임-아웃이 판단되면(S80에서 "예"), S60 단계로 진행하여 데이터 전송부(50)로 i번째 송신 버퍼에 저장된 k번째 데이터의 재전송을 명령한다. 반면, S80의 판단결과, 타임-아웃이 판단되지 않으면(S80에서 "아니오"), S70 단계로 진행하여 계속해서 k번째 데이터에 대한 수신 확인 신호의 수신을 판단한다.
한편, 수신 확인 처리부(60)는 S70 단계에서 k번째 데이터에 대한 수신 확인 신호의 수신이 확인되면, k번째 데이터를 저장하고 있는 i번째 송신 버퍼 정보를 송신 버퍼 잠금 제어부(40)로 전송한다. 송신 버퍼 잠금 제어부(40)는 i번째 송신 버퍼의 쓰기 금지 플래그를 잠금 해제한다(S90).
도 3에 도시된 플로우차트에서는 k 번째 데이터가 입력된 경우를 예로서 설명하였지만, S30 단계 내지 S90 단계가 실행되는 동안 입력되는 다음 순서의 데이터(예컨대, k+1 번째 데이터, k+2 번째 데이터, k+3 번째 데이터 등)에 대해서도 각각 병렬적으로 S30 단계 내지 S90 단계가 실행될 수 있다.
상기의 경우, k 번째 데이터를 저장하고 있는 n 번째 수신 버퍼의 쓰기 금지 플래그가 잠금 설정된 상태에서, k+1 번째 데이터가 입력된다면 k+1 번째 데이터는 n 번째 수신 버퍼에 저장되지 못할 것이다. 그러나, k 번째 데이터에 대한 수신 확인이 완료되어 n 번째 수신 버퍼의 쓰기 금지 플래그가 잠금 해제된 상태에서, k+2 번째 데이터가 입력된다면 k+2 번째 데이터는 n 번째 수신 버퍼에 저장될 수도 있다.
도 4는 본 발명의 실시예에 따른 고정 주소 기반의 TCP 재전송 처리 방법에서 실행되는 TCP 데이터 전송 절차를 예시적으로 도시한 도면이다.
도 4를 참고하면, n번째 송신 버퍼에 데이터 #1이 저장되면, 본 발명이 적용된 송신 단말은 데이터 #1을 수신 단말로 전송하고(①), n번째 송신 버퍼에 쓰기 잠금 플래그를 잠금 설정한다(②). 이때 발신 단말은 데이터 #1의 시퀀스 번호와 수신확인 번호를 저장한다. 이 시퀀스 번호(Sequence Number)와 수신 확인 번호(Acknowledgment Number)는 도 5에 도시된 바와 같이, TCP 패킷의 규격에 정의되어 있으며, 수신 확인 번호는 상기 시퀀스 번호와 데이터 길이로부터 생성된 값이다.
수신 단말은 데이터 #1에 대한 수신이 정상적으로 이루어졌으면, 데이터 #1에 대한 수신 확인 신호를 전송하는데(③), 수신 확인 신호에는 시퀀스 번호와 수신확인 번호가 포함된다.
발신 단말은 수신된 수신 확인 신호로부터 시퀀스 번호와 수신 확인 번호를 추출하여, 저장된 시퀀스 번호/수신 확인 번호와 비교하여 데이터 #1에 대한 수신 확인 신호 수신을 판단한다(④).
수신 확인 신호 수신이 확인되면, 발신 단말은 n번째 송신 버퍼의 쓰기 잠금 플래그를 잠금 해제하고(⑤), 다음 순서로 입력된 데이터 #2를 n번째 송신 버퍼에 저장하여 데이터 #2를 수신 단말로 전송한다(⑥). 도 4에서는 n번째 송신 버퍼에 데이터 #1이 저장된 후, 그 다음 순서인 데이터 #2가 저장되는 경우가 예시되었지만, n번째 송신 버퍼의 쓰기 잠금 플래그가 잠금 설정되었을 때 데이터 #2가 입력되었다면 데이터 #2는 n번째 송신 버퍼에 저장되지 못하고, n번째 송신 버퍼의 쓰기 잠금 플래그가 잠금 해제된 후에 입력된 임의의 데이터가 n번째 송신 버퍼에 저장될 것이다.
한편, 데이터 #2에 대한 수신 확인이 이루어지기 전까지 n번째 송신 버퍼의 쓰기 잠금 플래그는 잠금 설정된다(⑦).
도 4에 의하면, n번째 송신 버퍼는 동일한 주소를 가지며, 고정된 이더넷 프레임 크기를 갖는다는 것을 알 수 있으며, 도 4에 도시된 바와 같이 데이터 #1과 데이터 #2의 크기가 다르더라도 고정된 크기의 이더넷 프레임으로 수신 단말에 전송된다. 따라서, 본 발명은 데이터 크기에 따라 송신 버퍼의 시작 포인터의 위치를 동적으로 할당해 주거나 송신 버퍼의 스케줄링시 포인터에 대한 복잡한 연산을 수행하지 않아도 된다.
도 6은 본 발명의 실시예에 따른 고정 주소 기반의 TCP 재전송 처리 방법에서 실행되는 TCP 데이터 재전송 절차를 예시적으로 도시한 도면이다.
도 6에 도시된 TCP 데이터 재전송 절차는 도 4에 도시된 데이터 #1의 수신 확인 신호 수신 단계(④)에서 정해진 시간 내에 수신 확인 신호가 수신되지 않는 경우에 행해지는 것이다.
도 6을 참조하면, 데이터 전송부(50)가 n번째 송신 버퍼에 저장된 데이터 #1을 전송한 후(①), 수신 확인 처리부(60)는 데이터 #1에 대한 수신 확인 신호에 대한 타이머를 동작하여 기설정 시간 이내에 데이터 #1에 대한 수신 확인 신호가 수신되는지를 판단한다. 상기 판단 결과, 데이터 #1에 대한 수신 확인 신호가 기설정 시간 이내에 수신되지 않아 타임-아웃이 발생하면(③), 수신 확인 처리부(60)는 데이터 전송부(50)로 n번째 송신 버퍼에 저장된 데이터 #1에 대한 재전송을 명령한다.
상기 명령에 응답하여 데이터 전송부(50)는 n번째 송신 버퍼에 저장된 데이터 #1를 재전송한다(④).
한편, 데이터 #1이 저장된 송신 버퍼는 수신 확인 처리부(60)에 의해 수신 확인 신호가 확인될 때까지 쓰기 잠금 플래그가 잠금 설정된다(②).
이상 설명한 내용을 통해 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 기술 사상을 일탈하지 않는 범위에서 다양한 변경과 수정 실시가 가능함을 알 수 있을 것이다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10: 송신 버퍼 초기화부
20: 송신 버퍼 스캔부
30: 송신 버퍼 데이터 처리부
40: 송신 버퍼 잠금 제어부
50: 데이터 전송부
60: 수신 확인 처리부

Claims (5)

  1. 송신 버퍼 초기화부, 송신 버퍼 스캔부, 송신 버퍼 데이터 처리부, 송신 버퍼 잠금 제어부, 데이터 전송부, 및 수신 확인 처리부를 구비한 고정 주소 기반의 TCP 재전송 처리 시스템에서 실행되는 방법으로서,
    (a) 상기 송신 버퍼 초기화부가 고정 주소를 갖는 복수의 송신 버퍼를 설정하는 단계;
    (b) 전송할 TCP 데이터의 k번째 데이터가 입력되면, 상기 송신 버퍼 데이터 처리부가 상기 송신 버퍼 중 쓰기 금지 플래그가 잠금 해제된 n번째 송신 버퍼에 상기 k번째 데이터를 저장함과 아울러, 송신 버퍼 잠금 제어부를 통해 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 설정하는 단계;
    (c) 상기 송신 버퍼 데이터 처리부의 명령에 의해 상기 데이터 전송부가 상기 k번째 데이터를 수신 단말측으로 전송하고, 상기 수신 확인 처리부가 상기 k번째 데이터에 대한 수신 확인 신호의 수신 여부를 판단하는 단계; 및
    (d) 상기 수신 확인 처리부의 판단 결과, 상기 수신 확인 신호가 수신되면 상기 송신 버퍼 잠금 제어부를 통해 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 해제하고, 상기 수신 확인 신호가 기설정 시간 내에 수신되지 않으면 상기 데이터 전송부를 통해 상기 n번째 송신 버퍼에 저장된 k번째 데이터를 재전송하는 단계를 포함하고,
    상기 송신 버퍼 각각의 시작 포인터가 고정적으로 선언되어 각 송신 버퍼의 고정 주소를 갖는 것을 특징으로 하는 고정 주소 기반의 TCP 재전송 처리 방법.
  2. 청구항 1에 있어서, 상기 (a) 단계에서 상기 송신 버퍼 각각은
    이더넷 프레임 크기로 설정되는 것을 특징으로 하는 고정 주소 기반의 TCP 재전송 처리 방법.
  3. 청구항 1에 있어서, 상기 (b)단계는
    상기 송신 버퍼 데이터 처리부는 상기 k 번째 데이터가 입력되면, 상기 송신 버퍼 스캔부를 통해 상기 복수의 송신 버퍼의 각 쓰기 금지 플래그를 스캔하여 잠금 해제된 송신 버퍼를 검색하는 단계;
    상기 송신 버퍼 스캔부를 통해 쓰기 금지 플래그가 잠금 해제된 n번째 송신 버퍼가 검색되면, 상기 k번째 데이터를 상기 n번째 송신 버퍼에 저장함과 아울러 상기 버퍼 잠금 제어부로 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 설정을 명령하는 단계; 및
    상기 버퍼 잠금 제어부가 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 설정하는 단계를 포함하는 것을 특징으로 하는 고정 주소 기반의 TCP 재전송 처리 방법.
  4. 청구항 1에 있어서, 상기 (d) 단계에서
    상기 k번째 데이터에 대한 수신 확인 신호가 수신되면, 상기 송신 버퍼 잠금 제어부는 상기 수신 확인 처리부로부터 제공되는 상기 n번째 송신 버퍼의 고정 주소를 이용하여 상기 n번째 송신 버퍼를 탐색한 후, 상기 n번째 송신 버퍼의 쓰기 금지 플래그를 잠금 해제하는 것을 특징으로 하는 고정 주소 기반의 TCP 재전송 처리 방법.
  5. 청구항 1에 있어서, 상기 (d) 단계에서
    상기 k번째 데이터에 대한 수신 확인 신호가 수신되지 않으면, 상기 데이터 전송부는 상기 수신 확인 처리부로부터 제공되는 상기 n번째 송신 버퍼의 고정 주소를 이용하여 상기 n번째 송신 버퍼를 탐색한 후, 상기 n번째 송신 버퍼에 저장된 k번째 데이터를 재전송하는 것을 특징으로 하는 고정 주소 기반의 TCP 재전송 처리 방법.


KR1020100115086A 2010-11-18 2010-11-18 고정 주소 기반의 tcp 재전송 처리 방법 KR101059752B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100115086A KR101059752B1 (ko) 2010-11-18 2010-11-18 고정 주소 기반의 tcp 재전송 처리 방법
US13/295,042 US20120311179A1 (en) 2010-11-18 2011-11-12 Method for processing tcp re-transmission based on fixed address

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100115086A KR101059752B1 (ko) 2010-11-18 2010-11-18 고정 주소 기반의 tcp 재전송 처리 방법

Publications (1)

Publication Number Publication Date
KR101059752B1 true KR101059752B1 (ko) 2011-08-26

Family

ID=44933817

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100115086A KR101059752B1 (ko) 2010-11-18 2010-11-18 고정 주소 기반의 tcp 재전송 처리 방법

Country Status (2)

Country Link
US (1) US20120311179A1 (ko)
KR (1) KR101059752B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201703159XA (en) * 2015-12-14 2017-07-28 Huawei Tech Co Ltd Lock management method in cluster, lock server, and client
US20190199833A1 (en) * 2016-05-18 2019-06-27 Nec Corporation Transmission device, method, program, and recording medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860119A (en) * 1996-11-25 1999-01-12 Vlsi Technology, Inc. Data-packet fifo buffer system with end-of-packet flags
US5978935A (en) * 1997-10-08 1999-11-02 Lucent Technologies Inc Method for built-in self-testing of ring-address FIFOs having a data input register with transparent latches
US8578040B2 (en) * 2003-08-14 2013-11-05 International Business Machines Corporation Method, system and article for client application control of network transmission loss tolerance
US7694312B2 (en) * 2004-09-10 2010-04-06 Pleora Technologies Inc. Methods and apparatus for enabling bus connectivity over a data network
US8214341B2 (en) * 2008-03-31 2012-07-03 International Business Machines Corporation Determining when to apply writes received to data units being transferred to a secondary storage

Also Published As

Publication number Publication date
US20120311179A1 (en) 2012-12-06

Similar Documents

Publication Publication Date Title
US4430651A (en) Expandable and contractible local area network system
JPH11143845A (ja) ネットワークノード間のメッセージ送信用システム及び方法
US20150188985A1 (en) Device and method for unidirectional data transfer
KR101059752B1 (ko) 고정 주소 기반의 tcp 재전송 처리 방법
US9781691B2 (en) Wireless communication device, non-transitory computer readable medium, and wireless communication system
JP5664646B2 (ja) パケット整列装置、パケット整列方法、及び記憶媒体
KR101769133B1 (ko) Tcp/ udp를 적응적으로 선택하는 전자기기 및 이의 패킷 송수신 방법
CN104683647B (zh) 进行通信速度改变处理的通信装置及通信控制方法
CN106209764A (zh) 一种基于udp协议的数据传输方法及系统
CN110266446B (zh) 一种基于sack模式调整乱序时长的方法和装置
US10135578B2 (en) Method of re-transmitting data and electronic device therefor
CN109729101B (zh) 多层次低耦合的通信系统
KR100859499B1 (ko) 데이터 송수신 방법 및 그에 따른 통신 시스템
US9172654B2 (en) Transfer device and transfer method
CN101932008A (zh) 一种自动重传的方法和装置
JP6182779B1 (ja) 転送装置、転送方法およびプログラム
JP2003218876A (ja) データ通信システム
JPH09326843A (ja) 通信システム
JPH04356845A (ja) 通信パケットの制御方式
JP2007096426A (ja) データ送信装置とその制御方法
JPH0728733A (ja) ネットワークトラフィック制御方法
KR20030024380A (ko) 비동기 전송 방식 교환기에서 응답 대기 지연을 이용한로딩 데이터 전송 방법 및 장치
JP2000174779A (ja) データ処理装置
JP2005070975A (ja) 中継装置及び制御システム
JPS58107952A (ja) バツフアメモリ制御方式

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140626

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150820

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180807

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190723

Year of fee payment: 9