KR20060111323A - Apparatus and method for controlling data transmission in tcp - Google Patents
Apparatus and method for controlling data transmission in tcp Download PDFInfo
- Publication number
- KR20060111323A KR20060111323A KR1020050033822A KR20050033822A KR20060111323A KR 20060111323 A KR20060111323 A KR 20060111323A KR 1020050033822 A KR1020050033822 A KR 1020050033822A KR 20050033822 A KR20050033822 A KR 20050033822A KR 20060111323 A KR20060111323 A KR 20060111323A
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- packet loss
- tcp
- error
- lost due
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
- H04L1/1819—Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1861—Physical mapping arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
Abstract
Description
도 1은 일반적인 TCP 기반 통신시스템에서의 데이터 전송 알고리듬을 도시한 흐름도이다. 1 is a flowchart illustrating a data transmission algorithm in a general TCP-based communication system.
도 2는 일반적인 네트워크 시스템의 구성을 도시한 블록도이다.2 is a block diagram showing the configuration of a general network system.
도 3은 도 2의 네트워크 통신모듈의 세부적인 구성을 도시한 블록도이다.3 is a block diagram illustrating a detailed configuration of a network communication module of FIG. 2.
도 4는 본 발명의 일실시예에 따른 TCP 기반 통신제어 장치의 구성을 도시한 블록도이다.4 is a block diagram showing the configuration of a TCP-based communication control apparatus according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 TCP 기반 통신제어 방법을 흐름도로 나타낸 것이다.5 is a flowchart illustrating a TCP-based communication control method according to an embodiment of the present invention.
도 6a 및 도 6b는 일반적인 통신제어 방법과 본 발명에 의한 통신제어 방법을 방법 간의 성능을 비교한 것이다.6a and 6b compare the performance between the general communication control method and the communication control method according to the present invention.
본 발명은 전송제어 프로토콜(Transmission Control Protocol : 이하 TCP라 칭한다) 기반 통신시스템에 관한 것으로서, 특히 수신측의 응답에 따라 윈도우 사 이즈 조절 및 백오프시간 대기 등으로 데이터 송신속도를 조절하는 시스템에 대해서 효율적인 전송을 위한 TCP 기반 통신제어 장치 및 방법에 관한 것이다.The present invention relates to a communication system based on a transmission control protocol (hereinafter referred to as TCP), and more particularly to a system for adjusting a data transmission speed by adjusting a window size and waiting for a backoff time according to a response of a receiver. The present invention relates to a TCP-based communication control apparatus and method for efficient transmission.
TCP는 인터넷을 통해 노드들간에 데이터를 패킷의 형태로 전송하기 위해 사용되며, 네트워크 상태를 고려하여 전송률을 조절한다.TCP is used to transmit data in the form of packets between nodes through the Internet, and adjusts the transmission rate in consideration of network conditions.
TCP 기반 통신시스템에서 송신측은 전송하고자 하는 패킷 데이터를 소정 포맷의 데이터 세그먼트들로 변환하여 윈도우사이즈 단위로 수신측에게 제공한다. 여기서, 데이터 세그먼트들은 순서 정렬을 위한 시퀀스 번호를 포함하며, 윈도우 사이즈는 혼잡 윈도우(Congestion window : 이하, CWND라 칭한다)와 수신고지 윈도우(Advertised window : 이하, ADWND라 칭한다) 중 적은 값으로 결정된다. 여기서, CWND는 네트워크의 전송능력을 추정한 값이며 ADWND는 수신측의 수신능력을 나타내는 값으로 수신측의 현재 남은 버퍼 크기를 나타낸다. In a TCP-based communication system, a transmitting side converts packet data to be transmitted into data segments of a predetermined format and provides the receiving side in window size units. Here, the data segments include sequence numbers for ordering, and the window size is determined by a smaller value between a congestion window (hereinafter referred to as CWND) and a notification window (hereinafter referred to as ADWND). . Here, CWND is a value for estimating the transmission capacity of the network and ADWND is a value representing the reception capability of the receiver, and represents the current buffer size remaining on the receiver.
수신측은 데이터 세그먼트를 정상적으로 수신하면 승인신호(Acknowledge : 이하 ACK라 칭한다)을 전송한다. ACK는 정상적으로 수신된 바로 다음 데이터 세그먼트의 시퀀스 번호를 담는다. The receiving end transmits an acknowledgment signal (hereinafter referred to as ACK) when the data segment is normally received. The ACK contains the sequence number of the next data segment normally received.
송신측은 미리 설정된 타임아웃 시간내에 ACK를 받지 못하면 네트워크상 혼잡이 발생한 것으로 간주하여 CWND를 1 세그먼트 사이즈로 줄이고, 상기 혼잡이 없어지기 위한 일반적인 시간인 지수 백오프 시간(exponential backoff time)만큼 기다려 다시 재전송을 하게 된다.If the sender does not receive an ACK within the preset timeout period, the network assumes that congestion has occurred on the network and reduces the CWND to one segment size. Will be
하지만, 송신측에서 ACK를 받지 못한 원인 즉, 패킷 분실의 원인이 네트워크상 혼잡뿐만 아니라 DMA(Direct Memory Access)의 버스 점유 실패 등 수신측의 문 제로 발생할 수 있다. 이 경우는 혼잡이 발생하지 않았기 때문에 CWND를 1 세그먼트 사이즈로 줄이고, 지수 백오프 시간만큼 기다리는 등의 전송률 감소는 불필요하다.However, the cause of not receiving the ACK, that is, the packet loss, may occur not only in congestion on the network but also in the receiving side such as a failure of the bus occupied by DMA (Direct Memory Access). In this case, since no congestion has occurred, it is unnecessary to reduce the transmission rate such as reducing the CWND to one segment size and waiting for the exponential backoff time.
따라서, 일반적인 TCP 기반 통신시스템에서 종래에는 패킷 분실 원인이 네트워크 혼잡(congestion)이 아니라 수신측의 문제로 기인한 경우라도 송신측이 ACK를 받지 못하였다는 이유로 윈도우 사이즈를 줄이고, 일정한 지수 백오프 시간 동안 대기함으로써 결과적으로 비효율적인 송신을 하게 된다.Therefore, in a general TCP-based communication system, even if the cause of packet loss is caused by a problem on the receiver side rather than network congestion, the window size is reduced because the sender does not receive an ACK. Waiting for a while results in inefficient transmission.
본 발명이 이루고자 하는 기술적 과제는, TCP 기반 통신시스템에 있어서, BUS, 메모리, CPU 등과 같은 자원 부족에 기인한 수신측 문제로 패킷이 분실된 경우에는 송신측에서 별도로 백오프시간을 대기하지 않고 바로 이전 윈도우 사이즈 만큼의 데이터 패킷을 전송함으로써, 전체 데이터 송수신에 소요되는 시간을 단축시키는 등 전송효율을 대폭 향상시킬 수 있는 TCP 기반 통신제어 장치 및 방법을 제공하는 것이다.The technical problem to be solved by the present invention is that in a TCP-based communication system, when a packet is lost due to a problem on the receiving side due to a resource shortage such as BUS, memory, CPU, etc. It is to provide a TCP-based communication control device and method that can greatly improve the transmission efficiency, such as by reducing the time required to transmit and receive the entire data by transmitting data packets as much as the previous window size.
상기의 기술적 과제를 이루기 위한 본 발명에 의한 TCP 기반 통신제어 장치는 이더넷 제어부를 포함하는 전송제어 프로토콜(TCP) 기반 통신시스템에 있어서, 송신측으로부터 전송된 패킷이 수신측의 오류로 분실되었는지를 검출하는 패킷분실 검출부; 및 상기 수신측 오류로 상기 패킷이 분실된 경우, 상기의 패킷 분실을 나타내는 응답신호를 송신하는 패킷분실신호 송신부를 포함함을 특징으로 한다.TCP-based communication control apparatus according to the present invention for achieving the above technical problem is a transmission control protocol (TCP) based communication system including an Ethernet control unit, detecting whether a packet transmitted from a transmitting side is lost due to an error on the receiving side A packet loss detector; And a packet loss signal transmitter configured to transmit a response signal indicating the packet loss when the packet is lost due to the reception side error.
상기 장치에 있어서 상기 응답신호는 복수 개의 동일한 ACK를 연속 송신함이 바람직하다. 또한, 상기 장치에 있어서 상기 패킷분실 검출부는 상기 이더넷 제어부의 상태정보 또는 수신된 패킷으로부터 상기 수신측 오류를 검출함이 바람직하다.In the apparatus, the response signal preferably transmits a plurality of identical ACKs. In the apparatus, preferably, the packet loss detection unit detects the reception error from the state information of the Ethernet control unit or the received packet.
상기의 기술적 과제를 이루기 위한 본 발명에 의한 TCP 기반 통신제어 방법은 이더넷 제어부를 포함하는 전송제어 프로토콜(TCP) 기반 통신시스템에 있어서, 송신측으로부터 전송된 패킷이 수신측의 오류로 분실되었는지를 검출하는 단계; 및 상기의 수신측 오류로 상기 패킷이 분실된 경우, 상기의 패킷 분실을 나타내는 응답신호를 송신하는 단계를 포함함을 특징으로 한다.The TCP-based communication control method according to the present invention for achieving the above technical problem is a transmission control protocol (TCP) based communication system including an Ethernet control unit, detecting whether the packet transmitted from the transmitting side is lost due to the error of the receiving side Doing; And transmitting the response signal indicating the packet loss when the packet is lost due to the error in the receiving side.
상기 방법에 있어서, 상기 응답신호는 복수 개의 동일한 ACK를 연속 송신함이 바람직하다.In the above method, it is preferable that the response signal continuously transmits a plurality of identical ACKs.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 방법 및 장치에 대해 상세히 설명한다.Hereinafter, a method and an apparatus according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 일반적인 TCP 기반 통신시스템에서의 데이터 전송 알고리듬을 도시한 흐름도이다. 1 is a flowchart illustrating a data transmission algorithm in a general TCP-based communication system.
먼저, 송신측과 수신측은 3 방향 핸드쉐이크(Three way handshake) 방식으로 TCP 연결을 한다(100단계).First, the transmitting side and the receiving side make a TCP connection in a three way handshake (step 100).
송신측과 수신측간에 TCP 연결이 이루어지면, 송신측에서는 패킷들을 데이터 세그먼트 형식으로 바꾸고 윈도우 사이즈 만큼 데이터 세그먼트들을 전송한다(105단계). 상기 데이터 패킷 전송 후 미리 설정된 타임아웃 시간을 한도로 수신측에서 보낸 ACK를 기다린다(110단계).If a TCP connection is established between the transmitting side and the receiving side, the transmitting side converts the packets into the data segment format and transmits the data segments by the window size (step 105). After transmitting the data packet, the receiver waits for an ACK sent by the receiver with a preset timeout time (step 110).
다음, 타임아웃 시간동안 ACK를 수신하였는지를 판단하고(115단계) 네트워크 혼잡(congestion)이 발생하였다고 간주하여, 슬로우 스타트 모드의 임계값(Slow Start Threshold : 이하 SSTHRESH로 칭한다)를 현재 윈도우 사이즈의 반으로 줄이고, CWND를 1 세그먼트 사이즈로 대폭 줄이고, 혼잡이 없어지기 위해 미리 설정된 지수 백오프 시간(exponential backoff time)동안 기다린 후(120단계) 데이터 전송 모드(105단계)로 복귀한다. 만약 CWND가 상기 SSTHRESH보다 작으면 슬로우 스타트 모드로, 그렇지 않으면 혼잡 회피 모드로 결정된다. 상기 두 가지 모드의 차이점은 수신측으로부터 ACK를 받는 경우 CWND를 증가시키는 방식으로서, 상기 슬로우 스타트 모드에서는 지수적으로, 혼잡 회피 모드에서는 선형적으로 CWND를 증가시키게 된다.Next, it is determined whether an ACK has been received during the timeout period (step 115), and it is assumed that network congestion has occurred, and the slow start threshold (hereinafter referred to as SSTHRESH) is half of the current window size. Reduce the CWND to one segment size, wait for a predetermined exponential backoff time (step 120) to eliminate congestion, and then return to the data transfer mode (step 105). If CWND is less than the SSTHRESH, it is determined as a slow start mode, otherwise it is determined as a congestion avoidance mode. The difference between the two modes is a method of increasing the CWND when receiving an ACK from the receiving side. The CWND is increased exponentially in the slow start mode and linearly in the congestion avoidance mode.
한편, 타임아웃 시간내에 ACK를 수신한 경우, 상기 ACK가 기대했던 시퀀스 번호를 가지고 있는지를 판단한다(125단계).On the other hand, if the ACK is received within the timeout time, it is determined whether the ACK has the expected sequence number (step 125).
수신된 ACK가 기대했던 ACK가 아니라면, 트리플 중복 ACK(triple duplicate ack)인지를 판단한다(130단계). 현재 수신된 ACK의 시퀀스 번호와 동일한 시퀀스 번호를 가진 ACK를 이전에 두 번 더 받았는지를 판단한다. 중복 ACK(duplicate ACK)는 수신된 세그먼트들의 순서가 틀린 경우 수신측에서 발생시키는 신호로서 빠른 재전송을 위해 사용된다. 빠른 재전송은 소정 개수의 중복 ACK들이 수신되는 경우에 해당 시퀀스 번호를 가지는 세그먼트가 손실된 것으로 간주하고, 상기 손실간주된 세그먼트를 즉시 재전송하는 전송모드이다. 즉, 재전송 임계값(Retransmit Threshold) 이상의 연속된 중복 ACK들을 수신하는 경우 송신측은 해당 세그먼트를 재전송 타이머가 만료되는 것과 상관없이 즉시 재전송한다. 보통의 경우 재전송 임계값은 3이다.If the received ACK is not the expected ACK, it is determined whether it is a triple duplicate ack (step 130). It is determined whether an ACK having the same sequence number as the sequence number of the currently received ACK has been received twice before. Duplicate ACK is a signal generated by the receiver when the received segments are out of order and used for fast retransmission. Fast retransmission is a transmission mode in which a segment having a corresponding sequence number is considered lost when a predetermined number of duplicate ACKs are received, and immediately retransmits the missed segment. That is, when receiving consecutive duplicate ACKs of more than the Retransmit Threshold, the sender immediately retransmits the segment regardless of whether the retransmission timer expires. Normally, the retransmission threshold is three.
130단계에서, 수신된 ACK가 트리플 중복 ACK가 아닌 것으로 판단되면, 타임아웃이 되기전까지 ACK를 기다리는 대기 단계(110단계)로 복귀한다.If it is determined in
한편, 130단계에서, 수신된 ACK가 트리플 중복 ACK인 것으로 판단되면, SSTHRESH를 현재 윈도우 사이즈의 반으로, CWND는 SSTHRESH보다 3 세그먼트 사이즈만큼 크게 설정한다(135단계). 즉, 상기 120단계와 달리 트리플 중복 ACK를 수신한 경우에는 CWND를 대폭 감소시키지도 지수 백오프 시간을 기다리지도 않는다. 즉, 재전송 타이머가 만료되지 않더라도 데이터 전송단계(105단계)로 진행하여 트리플 중복 ACK에 포함된 시퀀스 번호를 가진 세그먼트를 재전송하게 된다.On the other hand, if it is determined in
125단계에서, 수신된 ACK가 기대했던 ACK인 것으로 판단되면, 모든 데이터의 전송이 완료되었는지 판단한다.(140단계) If it is determined in
전송할 데이터가 남아 있으면, CWND를 증가시키고(145단계) 데이터 전송 단계(105단계)로 복귀한다. 여기서, CWND를 증가하는 방식으로는 앞서 설명한 바와 같이, 슬로우 스타트 모드에서는 지수적으로, 혼잡 회피 모드에서는 선형적으로 CWND를 증가시킨다. If there is data left to be transmitted, the CWND is incremented (step 145) and the data returns to step 105 (step 105). In this case, as described above, the CWND is increased exponentially in the slow start mode and linearly in the congestion avoidance mode.
전송할 데이터가 없다면, TCP 연결을 끊고(150단계), 데이터 전송 알고리듬을 종료한다.If there is no data to transmit, the TCP connection is disconnected (step 150), and the data transmission algorithm is terminated.
도 2는 일반적인 네트워크 시스템의 구성을 도시한 블록도로서 CPU 코어 (200), 네트워크 통신모듈(210), SDRAM 제어부(220), 기타유닛(230, 240)을 포함하여 이루어진다. FIG. 2 is a block diagram illustrating a general network system including a
상기 CPU 코어(200)는 연산처리를 담당하며, 상기 네트워크 통신모듈(210)은 LAN을 이용하여 패킷을 송수신한다. 상기 SDRAM 제어부(220)는 SDRAM의 제어를 담당한다.The
도 3은 도 2의 상기 네트워크 통신모듈(210)의 세부적인 구성을 도시한 블록도로서 물리 레이어(physical layer) 처리부(300), 이더넷 제어부(310)를 포함하며, 이더넷 제어부(310)는 MAC(Media Access Control) 코어(320), DMA(Direct Memory Access)(330)을 포함하여 이루어진다.3 is a block diagram illustrating a detailed configuration of the
이하 각 블록에 대한 작용을 데이터 수신의 관점에서 기술한다. The operation of each block is described below in terms of data reception.
상기 물리 레이어 처리부(300)는 물리 레이어를 담당하며 유무선 LAN과 연결된다. 즉, 상기 물리 레이어 처리부(300)는 설정된 값에 따라서 상대방 네트워크 시스템 또는 중계장치에 링크(Link)를 설정하며, 링크가 설정되면 네트워크로부터 패킷을 수신하고 이를 상기 이더넷 제어부(310) 내에 있는 MAC 코어(320)에 전달한다. The
상기 이더넷 제어부(310)에 있어서, 상기 MAC 코어(320)는 물리 레이어 처리부(300)로부터 이더넷 패킷을 전달 받고 상기 패킷의 이상유무를 검사하고 목적지 주소를 검사하여 수신할 것인지 여부를 판단한다. 수신하여 저장할 것으로 판단되면 DMA(330)에 수신한 패킷을 전달한다. 상기 DMA(330)는 버스를 점유해 상기 패킷을 SDRAM에 저장하고 인터럽트를 발생시킨다. 한편 상기 패킷의 이상유무의 검사결 과 및 상기 DMA(330)가 버스 점유에 실패했는지 여부, SDRAM에 저장할 공간이 없어 상기 수신 패킷을 잃어버렸는지 여부 등의 상태 정보는 이더넷 제어부(310) 내의 상태정보 저장장소에 저장되며, 상기 상태정보 저장장소는 일반적으로 레지스터 등으로 구현된다. In the Ethernet
네트워크 통신모듈(210)으로부터 인터럽트를 받은 CPU 코어(200)는 상기 DMA(330)에 의해 SDRAM에 저장된 패킷 데이터를 데이터 링크 레이어(data-link layer), IP 레이어, TCP 레이어의 순서대로 처리한다. TCP 레이어에서는 수신된 패킷에 대한 ACK를 송신측에 전송한다. The
한편, 송신측은 송신 데이터에 대한 ACK를 받지 못하는 경우, 네트워크상 혼잡이 발생하여 보낸 데이터를 잃어버린 것으로 판단하고, 도 1의 120단계처럼 윈도우 사이즈를 줄이고 지수 백오프 시간 동안 전송을 중지하여 데이터 전송 속도를 늦추게 한다. 하지만, 네트워크상 혼잡이 발생하지 않음에도 불구하고 수신측의 문제로 인해 데이터를 잃어버리는 상황이 발생할 수 있다. 그러한 상황의 예는 아래와 같다.On the other hand, when the sender does not receive the ACK for the transmitted data, it is determined that congestion has occurred on the network, and thus the lost data is lost. As shown in
1. DMA(330)가 버스 점유에 실패하여 데이터를 잃어버리는 경우 - 네트워크 통신모듈(210)이 내장된 시스템 내에서 특정 작업을 수행하는 도중 버스 사용이 많아져 DMA(330)가 버스 점유에 실패할 수 있다.1.
2. DMA(330)가 SDRAM에 데이터를 쌓아 둘 공간이 없어 데이터를 잃어버리는 경우 - 네트워크 통신모듈(210)이 내장된 시스템 내에서 특정 작업을 수행하는 도중 CPU 사용이 많아져 SDRAM 내에 DMA가 저장해 놓은 데이터를 빨리 처리하지 못해 저장공간을 비워두지 못하게 되어 데이터를 잃어버릴 수 있다.2. When
3. 기타 MAC 코어(320)에서 할당오류(alignment error), CRC(Cyclic Redundancy Check) 오류 등의 오류가 발생하여 데이터를 잃어버릴 수 있다.3.
따라서, 상기와 같이 수신측의 문제로 패킷 분실이 있는 경우에는 종래의 재전송 처리방식과는 달리 소정의 응답신호를 송신측에 보내어 송신측에서 네트워크 혼잡에 의한 패킷 손실이 아님을 판단할 수 있도록 하고, 그 판단결과 불필요한 송신속도 감소를 방지하고자 함이 본 발명의 원리이다.Therefore, if there is a packet loss due to the problem of the receiver as described above, unlike the conventional retransmission processing method, a predetermined response signal is sent to the transmitter so that the transmitter can determine that the packet is not lost due to network congestion. As a result of this determination, it is a principle of the present invention to prevent unnecessary transmission speed reduction.
도 4는 본 발명의 일실시예에 따른 TCP 기반 통신제어 장치의 구성을 도시한 블록도로서, 이더넷 제어부(400), 수신패킷 저장부(410), 패킷분실 검출부(420), 패킷분실신호 송신부(430)를 포함하여 이루어진다. 4 is a block diagram showing the configuration of the TCP-based communication control apparatus according to an embodiment of the present invention, the
상기 이더넷 제어부(400)에는 수신된 이더넷 패킷의 이상유무 및 목적지 주소를 검사하여 수신할 것인지 판단한 다음, 수신가능한 패킷인 경우 상기 패킷을 DMA 등을 통하여 SDRAM 등과 같은 수신 패킷 저장부(410)로 제공하고, 수신가능한 패킷이 아닌 경우 상기 패킷을 폐기한다. 상기 수신된 패킷의 이상유무는 CRC 체크 등을 통해 할 수 있다. CRC 체크는 수신 패킷 저장부(410)에 저장하기 전에 이더넷 제어부(400)에서 수행될 수도 있으며, 수신 패킷 저장부(410)에 일단 수신 패킷을 저장한 후에 필요시 다시 저장된 패킷을 불러내어 CRC 체크를 수행할 수도 있다. 한편 상기 패킷의 이상유무의 검사결과 및 상기 DMA가 버스 점유에 실패했는지 여부, SDRAM 등에 저장할 공간이 없어 상기 수신 패킷을 잃어버렸는지 여부 등의 상태 정보는 이더넷 제어부(400)에 내장된 소정의 저장장소에 저장되며, 상기 저장장 소는 일반적으로 레지스터 등으로 구현된다. The
상기 수신 패킷 저장부(410)은 상기 수신가능한 패킷을 저장한다. 여기서, CRC 체크를 이더넷 제어부에서 하는 경우에는 상기 저장된 패킷을 상기 패킷분실 검출부(420)에 전달할 필요가 없으나, CRC 체크를 이더넷 제어부(400)가 아니라 패킷분실 검출부(420)에서 하는 경우에는 상기 저장된 패킷을 CRC 체크를 위해 상기 패킷 분실 검출부(420)에 전달된다.The received
상기 패킷분실 검출부(420)는 상기 이더넷 제어부(400)의 상태정보를 통하거나 또는 상기 수신 패킷 저장부(410)에 저장된 패킷의 CRC 체크를 통하여 수신측의 문제로 패킷이 분실된 것인지를 판단하고, 그 결과를 상기 패킷분실신호 송신부(430)에 전달한다.The packet
상기 패킷분실신호 송신부(430)는 수신측의 문제로 패킷이 분실되었음을 전달받은 경우에는 수신측 문제로 인해 패킷분실되었다는 소정의 응답신호를 송신측에 보낸다. 여기서, 소정의 응답 신호는 도 1과 같은 일반적인 전송 알고리듬과 호환될 수 있도록 소정 횟수의 중복 ACK(duplicate ack)를 함이 바람직하며, 그 중에서 빠른 재전송을 위해 일반적으로 많이 사용하는 트리플 중복 ACK인 것이 바람직하다.When the packet
송신측에서는 수신측으로부터 상기 소정의 응답신호를 받은 경우 도 1의 120단계 대신 135단계를 거치게 되어 불필요한 전송속도 감소를 막을 수 있게 된다.When the transmission side receives the predetermined response signal from the reception side, the transmission side goes through
도 5는 본 발명의 일 실시예에 따른 TCP 기반 통신제어 방법을 흐름도로 나타낸 것이다.5 is a flowchart illustrating a TCP-based communication control method according to an embodiment of the present invention.
상기 이더넷 제어부(400)는 수신 패킷의 이상유무를 검사한 후 이상이 없다고 판단되면 상기 수신 패킷을 상기 수신 패킷 저장부(410)에 저장하고, 이상이 있다고 판단되면 상기 수신 패킷을 폐기한다(500단계). 상기 수신 패킷의 이상유무는 목적지 주소가 맞는지를 판단하거나 CRC 체크를 통해 알 수 있다. 상기 CRC 체크는 이더넷 제어부(400) 또는 상기 패킷 분실 검출부(420)에서 수행될 수 있는데, 상기 이더넷 제어부(400)에서 수행될 경우에는 그 체크 결과가 이더넷 제어부(400)내의 상태 정보 레지스터 등에 저장된다. 상기 수신 패킷 저장부(410)의 저장은 DMA(300)에서 버스 점유를 하여 SDRAM에 저장하는 방법으로 수행될 수 있다. 여기서, DMA(330)가 버스 점유에 실패하여 데이터를 잃어버리는 경우 또는 DMA(330)가 SDRAM에 데이터를 쌓아 둘 공간이 없어 데이터를 잃어버리는 경우 등이 발생될 수 있는데, 이러한 정보도 이더넷 제어부(400)내의 상태 정보 레지스터 등에 저장된다.The
상기 패킷 분실 검출부(420)에서는 이더넷 제어부(400)내의 상태정보를 체크한다(510단계). CRC 체크를 이더넷 제어부(400)에서 수행한 경우에는 상기 CRC 체크 결과가 상태정보에 포함되어지며, CRC 체크를 상기 패킷 분실 검출부(420)에서 수행할 경우에는 상기 저장된 수신 패킷을 불러들여 CRC 체크를 수행한다.The
상기 패킷 분실 검출부(420)에서는 상기 상태정보로부터 패킷이 분실되었는지를 판단한다(520단계).The packet
520단계에서, 패킷이 분실되었다고 판단되면, 상기 패킷분실신호 송신부(530)는 트리플 중복 ACK를 송신측에 송신한다(530단계). 이후, 송신측은 상기 트 리플 중복 ACK를 받으면 상기 분실된 패킷을 빠른 재전송 모드로 송신하게 된다. 즉, 윈도우 사이즈를 줄이고 지수 백오프 시간을 대기하는 도 1의 135 단계를 수행하지 않는 대신 120단계를 수행하게 되며, 그 결과 불필요한 전송속도 감소를 하지 않게 되어 효율적인 전송을 할 수 있게 된다.If it is determined in
520단계에서, 패킷이 분실되지 않았다고 판단되면, 일반적인 패킷 처리를 한다(540단계). 즉, 수신 패킷은 데이터 링크 레이어를 거쳐 TCP/IP 레이어 단계 등을 밟게 된다.If it is determined in
도 6a 및 도 6b는 수신측의 문제로 패킷이 분실된 경우에 있어서 일반적인 통신제어 방법과 본 발명에 의한 통신제어방법의 성능을 비교한 것이다.6A and 6B compare the performances of the general communication control method and the communication control method according to the present invention when a packet is lost due to a problem on the receiving side.
도 6a는 수신측의 문제로 패킷이 분실된 경우에 있어서 일반적인 통신제어 방법의 동작을 나타낸 것이다.6A shows the operation of the general communication control method when a packet is lost due to a problem on the receiving side.
송신측에서 현재의 윈도우 사이즈 만큼인 1 내지 6번째 세그먼트를 송신한다. 한편, 수신측에서 1 내지 6 번째 세그먼트가 버스 점유 실패 등으로 인해 패킷이 분실된 경우에는 일반적인 패킷분실처럼 처리하여 ACK를 보내지 않게 된다. 송신측은 타임아웃 시간내에 1 번째 패킷에 대한 ACK를 받지 못했으므로 도 1의 120단계를 거치게 되어 지수 백오프 시간을 기다린 후 윈도우 사이즈를 1로 줄여 1번째 세그먼트만을 보내게 된다. 다음 송신측에서 1 번째 세그먼트에 대한 ACK를 받으면 다시 윈도우 사이즈를 2 세그먼트를 증가시켜 2, 3 번째 세그먼트를 전송하게 된다.The transmitting side transmits the first to sixth segments corresponding to the current window size. On the other hand, if a packet is lost due to a bus occupancy failure or the like in the first to sixth segments, the receiving side does not send an ACK by treating it like a normal packet loss. Since the sender did not receive the ACK for the first packet within the timeout time, the transmitter proceeds to step 120 of FIG. 1 and waits for the exponential backoff time to reduce the window size to 1 to send only the first segment. When the next sender receives the ACK for the first segment, the window size is increased by two segments to transmit the second and third segments.
도 6b는 수신측의 문제로 패킷이 분실된 경우에 있어서 일반적인 통신제어 방법의 동작을 나타낸 것이다.6B illustrates the operation of a general communication control method in the case where a packet is lost due to a problem on the receiving side.
송신측에서 현재의 윈도우 사이즈 만큼인 1 내지 6번째 세그먼트를 송신한다. 한편, 수신측에서 1 내지 6 번째 세그먼트가 버스 점유 실패 등으로 인해 패킷이 분실된 경우에는 트리플 중복 ACK를 송신측에 보낸다. 송신측은 트리플 중복 ACK를 받은 즉시 지수 백오프 시간의 대기 없이 이전의 윈도우 사이즈인 6 세그먼트 사이즈로 상기 1 내지 6 번째 세그먼트를 재전송한다. 결과적으로 본 발명에 의하면 지수 백오프 시간만큼 전송시간이 단축되는 결과가 있으며, 윈도우 사이즈의 불필요한 감소가 없으므로 그만큼의 전송시간도 줄이는 효과도 있게 된다.The transmitting side transmits the first to sixth segments corresponding to the current window size. On the other hand, when a packet is lost due to a bus occupancy failure or the like in the first to sixth segments, the receiver sends a triple redundant ACK to the transmitter. The transmitting side retransmits the first to sixth segments at the six-segment size, which is the previous window size, without waiting for the exponential backoff time upon receiving the triple overlap ACK. As a result, according to the present invention, the transmission time is shortened by the exponential backoff time, and since there is no unnecessary reduction of the window size, the transmission time is also reduced.
이러한 본원 발명인 방법 및 장치는 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.Such a method and apparatus of the present invention have been described with reference to the embodiments shown in the drawings for clarity, but these are merely exemplary, and various modifications and equivalent other embodiments are possible to those skilled in the art. Will understand. Therefore, the true technical protection scope of the present invention will be defined by the appended claims.
본 발명은 TCP 기반 통신시스템에 있어서, BUS, 메모리, CPU 등과 같은 자원 부족에 기인한 수신측 문제로 패킷이 분실된 경우에는 송신측에서 별도로 백오프시간을 대기하지 않고 바로 이전 윈도우 사이즈 만큼의 데이터 패킷을 전송함으로써, 전체 데이터 송수신에 소요되는 시간을 단축시키는 등 전송효율을 대폭 향상시킬 수 있다.In the TCP-based communication system, when a packet is lost due to a problem on the receiving side due to lack of resources such as BUS, memory, CPU, etc., the data of the previous window size is not waited for by the transmitting side. By transmitting the packet, the transmission efficiency can be greatly improved, such as reducing the time required for transmitting and receiving the entire data.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050033822A KR20060111323A (en) | 2005-04-23 | 2005-04-23 | Apparatus and method for controlling data transmission in tcp |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050033822A KR20060111323A (en) | 2005-04-23 | 2005-04-23 | Apparatus and method for controlling data transmission in tcp |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20060111323A true KR20060111323A (en) | 2006-10-27 |
Family
ID=37620142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050033822A KR20060111323A (en) | 2005-04-23 | 2005-04-23 | Apparatus and method for controlling data transmission in tcp |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20060111323A (en) |
-
2005
- 2005-04-23 KR KR1020050033822A patent/KR20060111323A/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11063884B2 (en) | Ethernet enhancements | |
US10430374B2 (en) | Selective acknowledgement of RDMA packets | |
US8284669B2 (en) | Data acknowledgement apparatus and method | |
US7149181B2 (en) | Apparatus and method for re-transmitting erroneous packet data | |
US7236494B2 (en) | Limited automatic repeat request protocol for frame-based communications channels | |
JP5523350B2 (en) | Method and apparatus for TCP flow control | |
US9577791B2 (en) | Notification by network element of packet drops | |
US20050013246A1 (en) | Communication device, transmission control method, and program product | |
JP2006287981A (en) | Error correcting communication method to transmit data packet in network communication system | |
EP1507370B1 (en) | Communication control method and system | |
WO2014092779A1 (en) | Notification by network element of packet drops | |
EP3490293B1 (en) | Data receiving method, data sending method, receiving device and system | |
US7349978B2 (en) | Spurious timeout detection in TCP based networks | |
CN109981385B (en) | Method, device and system for realizing packet loss detection | |
US7590888B2 (en) | Receiving device and transmitting device for determining errors in transmission | |
KR100825542B1 (en) | Transmission control system and method of wireless packet data using Transmission Control Protocol | |
US8769137B2 (en) | Systems and methods for negotiated accelerated block option for trivial file transfer protocol (TFTP) | |
CN102201901A (en) | Data retransmission method and device | |
CN113541874A (en) | Data transmission method and network equipment | |
JP2000022744A (en) | Packet communication system, packet communication device and packet communication method | |
EP1505759B1 (en) | Method and device for transmitting/receiving data using acknowledged transport layer protocols | |
KR20060111323A (en) | Apparatus and method for controlling data transmission in tcp | |
JP2001136209A (en) | Communication apparatus | |
KR102184363B1 (en) | Communicating method between host and client with network connector, and network connector proceeding the same | |
Liqing et al. | TCP optimization implementation of a small embedded system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |