KR20060111323A - Apparatus and method for controlling data transmission in tcp - Google Patents

Apparatus and method for controlling data transmission in tcp Download PDF

Info

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
Application number
KR1020050033822A
Other languages
Korean (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 KR1020050033822A priority Critical patent/KR20060111323A/en
Publication of KR20060111323A publication Critical patent/KR20060111323A/en

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
    • 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/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • 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/1861Physical mapping arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related

Abstract

An apparatus and a method for controlling TCP-based communication are provided to shorten the time required for transmitting/receiving the overall data and considerably improve transmission efficiency. A packet loss detecting unit(420) detects whether a packet transmitted from a transmission side has been lost due to an error at a receiving side. When a packet has been lost due to an error of the receiving side, a packet loss signal transmission unit(430) transmits a response signal indicating the packet loss. As the response signal, a plurality of same ACKs are continuously transmitted. The packet loss detecting unit(420) detects the error of the receiving side from state information of an Ethernet controller(400) or a received packet.

Description

TCP 기반 통신제어 장치 및 방법{Apparatus and method for controlling data transmission in TCP}TCCP-based communication control device and method {Apparatus and method for controlling data transmission in TCP}

도 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 step 130 that the received ACK is not a triple redundant ACK, the process returns to the waiting step (step 110) for waiting for the ACK before timeout.

한편, 130단계에서, 수신된 ACK가 트리플 중복 ACK인 것으로 판단되면, SSTHRESH를 현재 윈도우 사이즈의 반으로, CWND는 SSTHRESH보다 3 세그먼트 사이즈만큼 크게 설정한다(135단계). 즉, 상기 120단계와 달리 트리플 중복 ACK를 수신한 경우에는 CWND를 대폭 감소시키지도 지수 백오프 시간을 기다리지도 않는다. 즉, 재전송 타이머가 만료되지 않더라도 데이터 전송단계(105단계)로 진행하여 트리플 중복 ACK에 포함된 시퀀스 번호를 가진 세그먼트를 재전송하게 된다.On the other hand, if it is determined in step 130 that the received ACK is a triple redundant ACK, SSTHRESH is set to half of the current window size, and CWND is set to be 3 segments larger than SSTHRESH (step 135). That is, unlike the step 120, if a triple redundant ACK is received, the CWND is not significantly reduced or the exponential backoff time is waited. That is, even if the retransmission timer does not expire, the process proceeds to the data transmission step 105 and retransmits the segment having the sequence number included in the triple redundant ACK.

125단계에서, 수신된 ACK가 기대했던 ACK인 것으로 판단되면, 모든 데이터의 전송이 완료되었는지 판단한다.(140단계) If it is determined in step 125 that the received ACK is the expected ACK, it is determined whether all data transmission is completed (step 140).

전송할 데이터가 남아 있으면, 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 core 200, a network communication module 210, an SDRAM controller 220, and other units 230 and 240.

상기 CPU 코어(200)는 연산처리를 담당하며, 상기 네트워크 통신모듈(210)은 LAN을 이용하여 패킷을 송수신한다. 상기 SDRAM 제어부(220)는 SDRAM의 제어를 담당한다.The CPU core 200 is responsible for arithmetic processing, and the network communication module 210 transmits and receives packets using a LAN. The SDRAM controller 220 is in charge of controlling the SDRAM.

도 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 network communication module 210 of FIG. 2, which includes a physical layer processor 300 and an Ethernet controller 310, and the Ethernet controller 310 is a MAC. (Media Access Control) core 320, DMA (Direct Memory Access) 330 is included.

이하 각 블록에 대한 작용을 데이터 수신의 관점에서 기술한다. The operation of each block is described below in terms of data reception.

상기 물리 레이어 처리부(300)는 물리 레이어를 담당하며 유무선 LAN과 연결된다. 즉, 상기 물리 레이어 처리부(300)는 설정된 값에 따라서 상대방 네트워크 시스템 또는 중계장치에 링크(Link)를 설정하며, 링크가 설정되면 네트워크로부터 패킷을 수신하고 이를 상기 이더넷 제어부(310) 내에 있는 MAC 코어(320)에 전달한다. The physical layer processor 300 is in charge of a physical layer and is connected to a wired or wireless LAN. That is, the physical layer processing unit 300 establishes a link to the counterpart network system or the relay device according to the set value, and when the link is established, receives the packet from the network and sets the MAC core in the Ethernet control unit 310. Forward to 320.

상기 이더넷 제어부(310)에 있어서, 상기 MAC 코어(320)는 물리 레이어 처리부(300)로부터 이더넷 패킷을 전달 받고 상기 패킷의 이상유무를 검사하고 목적지 주소를 검사하여 수신할 것인지 여부를 판단한다. 수신하여 저장할 것으로 판단되면 DMA(330)에 수신한 패킷을 전달한다. 상기 DMA(330)는 버스를 점유해 상기 패킷을 SDRAM에 저장하고 인터럽트를 발생시킨다. 한편 상기 패킷의 이상유무의 검사결 과 및 상기 DMA(330)가 버스 점유에 실패했는지 여부, SDRAM에 저장할 공간이 없어 상기 수신 패킷을 잃어버렸는지 여부 등의 상태 정보는 이더넷 제어부(310) 내의 상태정보 저장장소에 저장되며, 상기 상태정보 저장장소는 일반적으로 레지스터 등으로 구현된다. In the Ethernet control unit 310, the MAC core 320 receives the Ethernet packet from the physical layer processing unit 300 and checks whether there is an abnormality of the packet, and determines whether to receive and receive a destination address. If it is determined to receive and store, the received packet is delivered to the DMA 330. The DMA 330 occupies a bus to store the packet in SDRAM and to generate an interrupt. On the other hand, the result of the inspection of the abnormality of the packet and the status information such as whether the DMA 330 has failed to occupy the bus and whether the received packet is lost because there is no space to store in the SDRAM, the status information in the Ethernet controller 310 Stored in a storage location, the state information storage location is generally implemented as a register or the like.

네트워크 통신모듈(210)으로부터 인터럽트를 받은 CPU 코어(200)는 상기 DMA(330)에 의해 SDRAM에 저장된 패킷 데이터를 데이터 링크 레이어(data-link layer), IP 레이어, TCP 레이어의 순서대로 처리한다. TCP 레이어에서는 수신된 패킷에 대한 ACK를 송신측에 전송한다. The CPU core 200 receiving the interrupt from the network communication module 210 processes the packet data stored in the SDRAM by the DMA 330 in the order of a data-link layer, an IP layer, and a TCP layer. The TCP layer transmits an ACK for the received packet to the sender.

한편, 송신측은 송신 데이터에 대한 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 step 120 of FIG. 1, the sender reduces the window size and stops the transmission during the exponential backoff time. To slow down. However, even though there is no congestion on the network, a situation may occur in which data is lost due to a problem at the receiving end. An example of such a situation is shown below.

1. DMA(330)가 버스 점유에 실패하여 데이터를 잃어버리는 경우 - 네트워크 통신모듈(210)이 내장된 시스템 내에서 특정 작업을 수행하는 도중 버스 사용이 많아져 DMA(330)가 버스 점유에 실패할 수 있다.1. DMA 330 fails to occupy the bus and loses data-DMA 330 fails to occupy the bus due to high bus usage during certain tasks in the system in which the network communication module 210 is embedded. can do.

2. DMA(330)가 SDRAM에 데이터를 쌓아 둘 공간이 없어 데이터를 잃어버리는 경우 - 네트워크 통신모듈(210)이 내장된 시스템 내에서 특정 작업을 수행하는 도중 CPU 사용이 많아져 SDRAM 내에 DMA가 저장해 놓은 데이터를 빨리 처리하지 못해 저장공간을 비워두지 못하게 되어 데이터를 잃어버릴 수 있다.2. When DMA 330 loses data because there is no space to accumulate data in SDRAM-While using a specific operation in the system in which the network communication module 210 is embedded, the CPU usage increases and the DMA is stored in the SDRAM. You can't process the data you've placed quickly, and you won't be able to free up storage space, which can result in data loss.

3. 기타 MAC 코어(320)에서 할당오류(alignment error), CRC(Cyclic Redundancy Check) 오류 등의 오류가 발생하여 데이터를 잃어버릴 수 있다.3. Other MAC cores 320 may encounter an error such as an alignment error or a cyclic redundancy check (CRC) error, thereby losing data.

따라서, 상기와 같이 수신측의 문제로 패킷 분실이 있는 경우에는 종래의 재전송 처리방식과는 달리 소정의 응답신호를 송신측에 보내어 송신측에서 네트워크 혼잡에 의한 패킷 손실이 아님을 판단할 수 있도록 하고, 그 판단결과 불필요한 송신속도 감소를 방지하고자 함이 본 발명의 원리이다.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 Ethernet control unit 400, the receiving packet storage unit 410, packet loss detection unit 420, packet loss signal transmission unit 430.

상기 이더넷 제어부(400)에는 수신된 이더넷 패킷의 이상유무 및 목적지 주소를 검사하여 수신할 것인지 판단한 다음, 수신가능한 패킷인 경우 상기 패킷을 DMA 등을 통하여 SDRAM 등과 같은 수신 패킷 저장부(410)로 제공하고, 수신가능한 패킷이 아닌 경우 상기 패킷을 폐기한다. 상기 수신된 패킷의 이상유무는 CRC 체크 등을 통해 할 수 있다. CRC 체크는 수신 패킷 저장부(410)에 저장하기 전에 이더넷 제어부(400)에서 수행될 수도 있으며, 수신 패킷 저장부(410)에 일단 수신 패킷을 저장한 후에 필요시 다시 저장된 패킷을 불러내어 CRC 체크를 수행할 수도 있다. 한편 상기 패킷의 이상유무의 검사결과 및 상기 DMA가 버스 점유에 실패했는지 여부, SDRAM 등에 저장할 공간이 없어 상기 수신 패킷을 잃어버렸는지 여부 등의 상태 정보는 이더넷 제어부(400)에 내장된 소정의 저장장소에 저장되며, 상기 저장장 소는 일반적으로 레지스터 등으로 구현된다. The Ethernet controller 400 checks whether there is an abnormality of the received Ethernet packet and a destination address and determines whether to receive the received Ethernet packet, and then provides the packet to a received packet storage unit 410 such as an SDRAM through DMA in the case of a receivable packet. If it is not a receivable packet, the packet is discarded. The abnormality of the received packet may be performed through a CRC check. The CRC check may be performed by the Ethernet controller 400 before storing in the received packet storage 410, and once the received packet is stored in the received packet storage 410, the CRC check may be called again if necessary. You can also do On the other hand, the status information such as the result of the inspection of the abnormality of the packet and whether the DMA has failed to occupy the bus, or whether the received packet is lost because there is no space to store in the SDRAM or the like is stored in the Ethernet control unit 400. It is stored in a place, the storage place is generally implemented as a register or the like.

상기 수신 패킷 저장부(410)은 상기 수신가능한 패킷을 저장한다. 여기서, CRC 체크를 이더넷 제어부에서 하는 경우에는 상기 저장된 패킷을 상기 패킷분실 검출부(420)에 전달할 필요가 없으나, CRC 체크를 이더넷 제어부(400)가 아니라 패킷분실 검출부(420)에서 하는 경우에는 상기 저장된 패킷을 CRC 체크를 위해 상기 패킷 분실 검출부(420)에 전달된다.The received packet storage unit 410 stores the received packet. Here, when the CRC check is performed by the Ethernet controller, it is not necessary to transfer the stored packet to the packet loss detector 420. However, when the CRC check is performed by the packet loss detector 420 instead of the Ethernet controller 400, the stored packet is stored. The packet is delivered to the packet loss detector 420 for CRC checking.

상기 패킷분실 검출부(420)는 상기 이더넷 제어부(400)의 상태정보를 통하거나 또는 상기 수신 패킷 저장부(410)에 저장된 패킷의 CRC 체크를 통하여 수신측의 문제로 패킷이 분실된 것인지를 판단하고, 그 결과를 상기 패킷분실신호 송신부(430)에 전달한다.The packet loss detecting unit 420 determines whether the packet is lost due to a problem of the receiving side through the state information of the Ethernet control unit 400 or through a CRC check of the packet stored in the receiving packet storage unit 410. The result is transmitted to the packet loss signal transmitter 430.

상기 패킷분실신호 송신부(430)는 수신측의 문제로 패킷이 분실되었음을 전달받은 경우에는 수신측 문제로 인해 패킷분실되었다는 소정의 응답신호를 송신측에 보낸다. 여기서, 소정의 응답 신호는 도 1과 같은 일반적인 전송 알고리듬과 호환될 수 있도록 소정 횟수의 중복 ACK(duplicate ack)를 함이 바람직하며, 그 중에서 빠른 재전송을 위해 일반적으로 많이 사용하는 트리플 중복 ACK인 것이 바람직하다.When the packet loss signal transmitter 430 receives that the packet is lost due to a problem on the receiver side, the packet loss signal transmitter 430 sends a predetermined response signal indicating that the packet is lost due to the problem on the receiver side. Here, the predetermined response signal is preferably a predetermined number of duplicate ACKs (duplicate ack) to be compatible with the general transmission algorithm as shown in Figure 1, among which is a triple duplicate ACK commonly used for fast retransmission desirable.

송신측에서는 수신측으로부터 상기 소정의 응답신호를 받은 경우 도 1의 120단계 대신 135단계를 거치게 되어 불필요한 전송속도 감소를 막을 수 있게 된다.When the transmission side receives the predetermined response signal from the reception side, the transmission side goes through step 135 instead of step 120 of FIG. 1, thereby preventing unnecessary transmission speed reduction.

도 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 Ethernet control unit 400 stores the received packet in the received packet storage unit 410 when it is determined that there is no abnormality after checking whether there is an abnormality of the received packet, and discards the received packet if it is determined that there is an error (500). step). The abnormality of the received packet can be determined by determining whether the destination address is correct or by checking the CRC. The CRC check may be performed by the Ethernet controller 400 or the packet loss detector 420. When the CRC check is performed by the Ethernet controller 400, the result of the check is stored in a status information register in the Ethernet controller 400. . The storage of the received packet storage unit 410 may be performed by storing the data in the SDRAM by occupying the bus in the DMA 300. In this case, when the DMA 330 fails to occupy the bus and loses data, or when the DMA 330 loses data because there is no space to store data in the SDRAM, such information may also be generated. In the status information register in 400).

상기 패킷 분실 검출부(420)에서는 이더넷 제어부(400)내의 상태정보를 체크한다(510단계). CRC 체크를 이더넷 제어부(400)에서 수행한 경우에는 상기 CRC 체크 결과가 상태정보에 포함되어지며, CRC 체크를 상기 패킷 분실 검출부(420)에서 수행할 경우에는 상기 저장된 수신 패킷을 불러들여 CRC 체크를 수행한다.The packet loss detector 420 checks the state information in the Ethernet controller 400 (step 510). When the CRC check is performed by the Ethernet control unit 400, the CRC check result is included in the status information. When the CRC check is performed by the packet loss detecting unit 420, the CRC check is performed by loading the stored received packet. Perform.

상기 패킷 분실 검출부(420)에서는 상기 상태정보로부터 패킷이 분실되었는지를 판단한다(520단계).The packet loss detecting unit 420 determines whether a packet is lost from the state information (step 520).

520단계에서, 패킷이 분실되었다고 판단되면, 상기 패킷분실신호 송신부(530)는 트리플 중복 ACK를 송신측에 송신한다(530단계). 이후, 송신측은 상기 트 리플 중복 ACK를 받으면 상기 분실된 패킷을 빠른 재전송 모드로 송신하게 된다. 즉, 윈도우 사이즈를 줄이고 지수 백오프 시간을 대기하는 도 1의 135 단계를 수행하지 않는 대신 120단계를 수행하게 되며, 그 결과 불필요한 전송속도 감소를 하지 않게 되어 효율적인 전송을 할 수 있게 된다.If it is determined in step 520 that the packet is lost, the packet loss signal transmitter 530 transmits a triple redundant ACK to the transmitter (step 530). Thereafter, the transmitting side transmits the lost packet in a fast retransmission mode upon receiving the ripple duplicate ACK. That is, instead of performing step 135 of FIG. 1 which reduces the window size and waits for the exponential backoff time, step 120 is performed. As a result, unnecessary transmission speed is not reduced, thereby enabling efficient transmission.

520단계에서, 패킷이 분실되지 않았다고 판단되면, 일반적인 패킷 처리를 한다(540단계). 즉, 수신 패킷은 데이터 링크 레이어를 거쳐 TCP/IP 레이어 단계 등을 밟게 된다.If it is determined in step 520 that the packet is not lost, normal packet processing is performed (step 540). That is, the received packet goes through the TCP / IP layer step through the data link layer.

도 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)

이더넷 제어부를 포함하는 전송제어 프로토콜(TCP) 기반 통신시스템에 있어서,A transmission control protocol (TCP) based communication system comprising an Ethernet control unit, 송신측으로부터 전송된 패킷이 수신측의 오류로 분실되었는지를 검출하는 패킷분실 검출부; 및A packet loss detector for detecting whether a packet transmitted from the transmitting side is lost due to an error of the receiving side; And 상기 수신측 오류로 상기 패킷이 분실된 경우, 상기의 패킷 분실을 나타내는 응답신호를 송신하는 패킷분실신호 송신부를 포함함을 특징으로 하는 통신제어 장치.And a packet loss signal transmission unit for transmitting a response signal indicating the packet loss when the packet is lost due to the reception side error. 제1항에 있어서, The method of claim 1, 상기 응답신호는 복수 개의 동일한 ACK를 연속 송신함을 특징으로 하는 통신제어 장치.And the response signal transmits a plurality of identical ACKs in series. 제1항 또는 제2항에 있어서, The method according to claim 1 or 2, 상기 패킷분실 검출부는 상기 이더넷 제어부의 상태정보 또는 수신된 패킷으로부터 상기 수신측 오류를 검출함을 특징으로 하는 통신제어 장치.The packet loss detecting unit detects the reception side error from the state information of the Ethernet control unit or the received packet. 이더넷 제어부를 포함하는 전송제어 프로토콜(TCP) 기반 통신시스템에 있어서,A transmission control protocol (TCP) based communication system comprising an Ethernet control unit, 송신측으로부터 전송된 패킷이 수신측의 오류로 분실되었는지를 검출하는 단 계; 및Detecting whether a packet transmitted from a transmitting side is lost due to an error at the receiving side; And 상기의 수신측 오류로 상기 패킷이 분실된 경우, 상기의 패킷 분실을 나타내는 응답신호를 송신하는 단계를 포함함을 특징으로 하는 통신제어 방법.And transmitting a response signal indicating the packet loss when the packet is lost due to the reception error. 제4항에 있어서, The method of claim 4, wherein 상기 응답신호는 복수 개의 동일한 ACK를 연속 송신함을 특징으로 하는 통신제어 방법.The response signal is a communication control method, characterized in that for transmitting a plurality of the same ACK consecutively.
KR1020050033822A 2005-04-23 2005-04-23 Apparatus and method for controlling data transmission in tcp KR20060111323A (en)

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)

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