KR20140139406A - Randomization of packet size - Google Patents

Randomization of packet size Download PDF

Info

Publication number
KR20140139406A
KR20140139406A KR1020140039905A KR20140039905A KR20140139406A KR 20140139406 A KR20140139406 A KR 20140139406A KR 1020140039905 A KR1020140039905 A KR 1020140039905A KR 20140039905 A KR20140039905 A KR 20140039905A KR 20140139406 A KR20140139406 A KR 20140139406A
Authority
KR
South Korea
Prior art keywords
randomization
packet
degree
size
determining
Prior art date
Application number
KR1020140039905A
Other languages
Korean (ko)
Other versions
KR102177737B1 (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 US14/288,035 priority Critical patent/US10084834B2/en
Priority to CN201410228090.XA priority patent/CN104184794B/en
Publication of KR20140139406A publication Critical patent/KR20140139406A/en
Application granted granted Critical
Publication of KR102177737B1 publication Critical patent/KR102177737B1/en

Links

Images

Classifications

    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • 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/11Identifying congestion
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method of randomizing a size of a packet is provided. A randomization method includes: identifying a maximum segment size (MSS) defined for transmission and reception of a packet with a reception terminal; and randomizing a size of the packet to be less than the defined MSS.

Description

패킷 크기 난수화 기법 {RANDOMIZATION OF PACKET SIZE}[0002] RANDOMIZATION OF PACKET SIZE [0003]

본 개시는 패킷 크기 난수화 기법에 관한 것으로, 더욱 상세하게는 수신 단말과 패킷을 송수신하는 송신 단말의 패킷 크기 난수화 기법에 관한 것이다.This disclosure relates to a packet size randomization technique, and more particularly to a packet size randomization technique for a transmitting terminal that sends and receives packets to and from a receiving terminal.

데이터센터 내에서는 다대일 전송 패턴(예, MapReduce)의 사용이 증가하고 있다. 이 경우 데이터 플로우(data flow)들은 수신측 인그레스 포인트(ingress point)에서 서로 경쟁하게 된다. 데이터센터에서 널리 사용되는 저가형 스위치의 경우 드롭-테일 큐잉 정책(drop-tail queueing policy)을 사용하게 되므로, 패킷 드롭(packet drop)은 인그레스 포인트의 입력 포트(input port)들에 대하여 공정하게 일어나게 된다.Within the data center, the use of many-to-one transmission patterns (eg, MapReduce) is increasing. In this case, the data flows compete with each other at the receiving ingress point. For low-cost switches that are widely used in the data center, drop-tail queuing policy is used, so packet drops occur fairly to input ports of ingress points. do.

하지만, 특정 X 입력 포트(input port X)의 수신 데이터 플로우 수가 타 Y 입력 포트(input port Y)의 수신 데이터 플로우 수보다 작을 경우, X 입력 포트로 들어오는 데이터 플로우들은 TCP(Transmission Control Protocol) 타임 아웃(timeout)을 발생시키게 되어 결과적으로 TCP 쓰루풋(throughput)의 심각한 손실을 야기할 수 있다. 이를 TCP 아웃캐스트 문제(outcast problem)이라 한다. However, if the number of received data flows for a particular X input port (X) is less than the number of received data flows for another Y input port (Y), the data flows coming in to the X input port will have a Transmission Control Protocol (timeout), which can result in severe loss of TCP throughput. This is called the TCP outcast problem.

이에 따라, TCP 아웃캐스트 문제를 해결하기 위한 기술의 개발이 요청되는 실정이다.Accordingly, there is a need to develop a technique for solving the TCP outcast problem.

본 개시는 상술한 기술 개발에 응답하여 안출된 것으로, 본 개시는 패킷의 크기를 난수화하여 수신 단말과 패킷을 송수신하는 송신 단말의 패킷 크기 난수화 기법을 제공한다.The present disclosure has been devised in response to the above-described technology development, and the present disclosure provides a packet size randomization technique of a transmitting terminal that randomizes a size of a packet and transmits and receives a packet to and from a receiving terminal.

일 실시 예에 의한 송신 단말의 난수화 기법은, 수신 단말과 패킷을 송수신함에 있어 정의된 최대 세그먼트 크기(Maximum segment size:MSS)를 파악하는 단계 및 상기 패킷의 크기를 상기 정의된 최대 세그먼트 크기 미만으로 난수화하는 단계를 포함할 수 있다.According to an embodiment of the present invention, there is provided a random number generation method of a transmitting terminal, comprising: determining a maximum segment size (MSS) defined when transmitting and receiving a packet to and from a receiving terminal; and determining a size of the packet to be less than the defined maximum segment size And a step of marshalling the signal.

상기 패킷의 크기를 난수화하는 단계는, 상기 난수화의 정도를 결정하는 단계를 포함할 수 있다.The step of randomizing the size of the packet may comprise the step of determining the degree of randomization.

상기 난수화의 정도를 결정하는 단계는, 상기 난수화의 정도를 조정하는 파라미터를 수신하고, 수신된 파라미터에 기초하여 상기 난수화의 정도를 결정할 수 있다.The step of determining the degree of randomization may receive a parameter that adjusts the degree of randomization and determine the degree of randomization based on the received parameter.

상기 난수화의 정도를 결정하는 단계는, 상기 송신 단말이 상기 난수화의 정도를 조정하는 파라미터를 결정할 수 있다.The step of determining the degree of randomization may determine the parameter for adjusting the degree of randomization of the transmitting terminal.

송신 단말의 난수화 기법은 상기 난수화 정도를 결정하기 위한 난수화 관련 정보를 수집하는 단계를 더 포함할 수 있다.The transmitting terminal may further include a step of collecting randomization-related information for determining the degree of randomization.

상기 난수화 관련 정보는, 멀티플라이어(multiplier) 정보 및 컨제스쳔 위도우(congestion window) 정보 중 적어도 하나일 수 있다.The randomization related information may be at least one of multiplier information and congestion window information.

상기 난수화의 정도를 결정하는 단계는, 운영체제의 커널의 TCP 스택(TCP stactk)의 파라미터를 통하여 상기 멀티플라이어를 수집할 수 있다.In the step of determining the degree of randomization, the multiplier may be collected through a parameter of a TCP stack (TCP stactk) of an operating system kernel.

상기 난수화의 정도를 결정하는 단계는, 상기 멀티플라이어 정보 및 컨제스쳔 위도우 정보 중 적어도 하나의 변동에 대응하여 상기 패킷의 송수신의 타임 아웃(timeout) 여부를 결정하는 단계를 더 포함할 수도 있다.The step of determining the degree of randomization may further comprise determining whether or not to timeout the transmission and reception of the packet in response to a variation of at least one of the multiplier information and the congestion windowing information .

상기 난수화의 정도를 결정하는 단계는, 상기 멀티플라이어의 값이 제 1 수치인 경우에는 상기 패킷의 송수신의 타임 아웃이 발생하지 않은 것으로 판단하거나 또는 상기 멀티플라이어의 값이 제 2 수치인 경우에는 상기 패킷의 송수신의 타임 아웃이 발생한 것으로 판단할 수 있다.Wherein the step of determining the degree of randomization determines whether a timeout of transmission and reception of the packet has not occurred when the value of the multiplier is a first value or if the value of the multiplier is a second value It can be determined that a timeout of transmission and reception of the packet has occurred.

상기 난수화의 정도를 결정하는 단계는, 상기 멀티플라이어 정보 및 컨제스쳔 위도우 정보 중 적어도 하나의 수치가 증가할수록 상기 패킷의 송수신의 타임 아웃이 연속 발생한 것으로 판단할 수 있다.The step of determining the degree of randomization may determine that the timeout of transmission and reception of the packet occurs continuously as the value of at least one of the multiplier information and the congestion windowing information increases.

상기 난수화의 정도를 결정하는 단계는, 상기 멀티플라이어 정보 및 컨제스쳔 위도우 정보 중 적어도 하나의 수치에 대응하여 상기 난수화 정도를 결정할 수 있다.The step of determining the degree of randomization may determine the degree of randomization according to at least one of the multiplier information and the congestion windowing information.

상기 난수화의 정도는, 난수화된 값의 최대치, 난수화된 값의 최저치, 난수화된 값의 기댓값 및 난수화된 값의 분포의 표준 편차 중 적어도 하나를 포함할 수 있다.The degree of randomization may include at least one of a maximum value of the randomized value, a minimum value of the randomized value, an expected value of the randomized value, and a standard deviation of the distribution of the randomized value.

상기 패킷의 크기를 난수화하는 단계는, 트랜스포트 계층(transport layer)에서 난수화 기능을 통하여 상기 패킷의 페이로드의 크기를 조절할 수 있다.The step of randomizing the size of the packet may adjust the size of the payload of the packet through a randomization function in a transport layer.

송신 단말의 난수화 기법은 상기 페이로드 사이즈의 크기가 조절된 패킷을 하부 계층으로 전송하는 단계를 더 포함할 수 있다.The transmitting terminal may further include a step of transmitting a packet whose size is adjusted in the payload size to a lower layer.

상기 패킷의 페이로드의 크기를 난수화하는 단계는, TSO(Transmit segmentation offload)가 활성화된 경우에는, 상부 레이어로부터 입력된 최대 세그먼트 단위보다 큰 세그먼트를 세그먼테이션(segmentation)할 수 있다.The step of randomizing the size of the payload of the packet may segment a segment larger than the maximum segment unit input from the upper layer when Transmit segmentation offload (TSO) is activated.

송신 단말의 난수화 기법은 라우터(router) 및 스위치(switch) 중 적어도 하나의 단계에서 소프트웨어 정의 난수화 알고리즘에 따라서 난수화를 수행할 수 있다.The randomization technique of the transmitting terminal may perform randomization according to a software defined randomization algorithm in at least one of a router and a switch.

다른 실시 예에 의한 송신 단말의 난수화 기법은 운영체제의 커널의 TCP 스택(TCP stactk)의 멀티플라이어 정보 및 컨제스쳔 위도우 정보 중 적어도 하나를 모니터링하는 단계, 상기 모니터링 결과에 기초하여, 수신 단말로 송신하는 패킷의 크기의 난수화 여부를 판단하는 단계 및 상기 패킷을 상기 수신 단말로 송신하는 단계를 포함할 수 있다.According to another embodiment of the present invention, there is provided a random number generation method of a transmitting terminal, comprising: monitoring at least one of multiplier information and congestion windowing information of a TCP stack (TCP stactk) of an operating system kernel; Determining whether the size of a packet to be transmitted is randomized, and transmitting the packet to the receiving terminal.

상기 페이로드의 크기의 난수화 여부를 판단하는 단계는, 상기 멀티플라이어 정보 및 컨제스쳔 위도우 정보 중 적어도 하나가 제 1 수치인 경우에는, 상기 난수화를 수행하지 않는 것으로 판단할 수 있다.The step of determining whether the size of the payload is randomized may determine that the randomization is not performed when at least one of the multiplier information and the congestion windowing information is a first value.

상기 멀티플라이어 정보 및 컨제스쳔 위도우 정보 중 적어도 하나가 제 2 수치인 경우에는 상기 난수화를 수행하고, 상기 멀티플라이어 정보 및 컨제스쳔 위도우 정보 중 적어도 하나가 증가할수록 난수화의 정도를 증가시킬 수 있다.Wherein if the at least one of the multiplier information and the congestion windowing information is a second value, the randomization is performed, and the degree of randomization increases as at least one of the multiplier information and the congestion windowing information increases .

다른 실시 예에 의한 송신 단말은, 수신 단말과 패킷을 송수신함에 있어 정의된 최대 세그먼트 크기(Maximum segment size:MSS)를 파악하고, 상기 패킷의 크기를 상기 정의된 최대 세그먼트 크기 미만으로 난수화하는 제어부 및 상기 패킷을 상기 수신 단말로 송신하는 통신부를 포함할 수 있다.The transmitting terminal according to another embodiment may be configured to determine a maximum segment size (MSS) defined when transmitting and receiving a packet to and from a receiving terminal, and to randomize the packet size to less than the defined maximum segment size And a communication unit for transmitting the packet to the receiving terminal.

다양한 실시 예들에 의하여, 패킷의 헤더 및 페이로드(payload) 중 적어도 하나의 크기를 난수화하여 수신 단말과 패킷을 송수신하는 송신 단말의 패킷 크기 난수화 기법이 제공될 수 있다. 특히, 패킷의 헤더 및 페이로드 중 적어도 하나의 크기를 최대 세그먼트 크기(Maximum segment size:MSS) 미만으로 난수화함에 따라서 TCP 아웃캐스트 문제가 해결될 수 있다.According to various embodiments, a packet size randomization technique of a transmitting terminal that transmits / receives a packet to / from a receiving terminal by randomizing the size of at least one of a header and a payload of the packet can be provided. In particular, the TCP outcast problem can be solved by sizing at least one of the header and payload of the packet to less than the maximum segment size (MSS).

특히, 다양한 실시 예들은 운영체제의 TCP 스택(stack), NIC(Network Interface Card)의 오프로드 엔진(offload Engine), 라우터/스위치(Router/switch) 등의 다양한 구현 예에서 적용될 수 있다. In particular, various embodiments can be applied to various implementations such as a TCP stack of an operating system, an offload engine of a network interface card (NIC), a router / switch, and the like.

뿐만 아니라, 운영체제의 TCP 스택에 적용될 경우, Windows/Unix 계열의 서버급 OS 등에 장착될 수 있어, 호환성이 극대화될 수 있다. 전송속도의 향상으로 향후 10Gbps 가 일반화되면 NIC의 라지 세그먼트 오프로드(large segment offload)의 사용이 필수 불가결해질 것으로 전망되는데, 다양한 실시 예들이 적용된 오프로드 엔진에 장착되어 하드웨어 시장에서 이용될 수도 있다.In addition, when applied to the TCP stack of the operating system, it can be mounted on a Windows-based / Unix-based server-class OS, and thus compatibility can be maximized. It is expected that the use of the large segment offload of the NIC will become indispensable when the 10 Gbps is generalized in the future due to the improvement of the transmission speed, and it may be used in the hardware market by being attached to the offload engine to which various embodiments are applied.

아울러, 다양한 실시 예들은 소프트웨어 정의된 라우터/스위치((Software Defined Router/switch)등에 장착되어 트래픽 관리(traffic management)에 능동적으로 사용될 수도 있다.In addition, various embodiments may be actively used in traffic management by being installed in a software defined router / switch or the like.

도 1은 다양한 실시 예들이 적용되는 토폴리지를 설명하기 위한 개념도이다.
도 2는 비교 예에 의한 2개의 입력 포트(input port)(X,Y) 와 1개의 출력 포트(output port)(Z)로 구성된 인그레스 스위치 환경에서의 플로우 처리를 설명하기 위한 개념도이다.
도 3은 쓰루풋-송수신 단말 RTT 사이의 관계를 나타내는 그래프이다.
도 4는 비교 예에 의한 적용 가능한 방법을 설명하기 위한 개념도이다.
도 5는 일 실시 예에 의한 송신 단말의 난수화 기법을 설명하기 위한 흐름도이다.
도 6은 일 실시 예에 의한 난수화 정도를 결정하는 방법을 설명하기 위한 흐름도이다.
도 7은 일 실시 예에 의한 송신 노드의 블록도이다.
도 8a는 일 실시 예에 의하여 난수화된 패킷의 개념도이다.
도 8b는 일 실시 예에 의한 난수화 기법 적용에 따른 플로우 처리 향상을 설명하기 위한 개념도이다.
도 9는 네트워크 시뮬레이터 상 실험 결과를 나타낸다.
도 10a는 리눅스 커널에서 디폴트로 사용하는 컨제스쳔 제어 알고리즘(congestion control algorithm)인 CUBIC의 예에서의 컨제스쳔 윈도우의 그래프이다.
도 10b는 도 10a의 컨제스쳔 윈도우 상황에 대응한 송신 단말의 난수화 정도 변경을 나타내는 그래프이다.
1 is a conceptual diagram for explaining a topology to which various embodiments are applied.
2 is a conceptual diagram for explaining a flow process in an ingress switch environment composed of two input ports (X, Y) and one output port (Z) according to a comparative example.
3 is a graph showing the relationship between the throughput-transmission / reception terminal RTT.
4 is a conceptual diagram for explaining a applicable method according to a comparative example.
FIG. 5 is a flowchart illustrating a randomization technique of a transmitting terminal according to an embodiment.
FIG. 6 is a flowchart for explaining a method for determining the degree of randomization according to an embodiment.
7 is a block diagram of a transmitting node according to one embodiment.
8A is a conceptual diagram of a packet that has been randomized according to an embodiment.
8B is a conceptual diagram for explaining a flow processing improvement according to an embodiment of the randomization technique.
9 shows experimental results on a network simulator.
10A is a graph of a congestion window in the example of CUBIC, which is a congestion control algorithm used by default in the Linux kernel.
10B is a graph showing a change in the degree of randomization of the transmitting terminal corresponding to the congestion window situation of FIG. 10A.

본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 설명하고자 한다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. The present disclosure is capable of various modifications and various embodiments, and specific embodiments are illustrated and described in the drawings. It should be understood, however, that this disclosure is not intended to be limited to any particular embodiment, but is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the disclosure.

제2, 제1 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms including ordinal, such as second, first, etc., may be used to describe various elements, but the elements are not limited to these terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present disclosure, the second component may be referred to as a first component, and similarly, the first component may also be referred to as a second component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the disclosure. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 첨부된 도면을 참조하여 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings, wherein like or corresponding elements are denoted by the same reference numerals, and redundant description thereof will be omitted.

도 1은 다양한 실시 예들이 적용되는 토폴리지를 설명하기 위한 개념도이다.1 is a conceptual diagram for explaining a topology to which various embodiments are applied.

도 1에 도시된 바와 같이, 다양한 실시 예들이 적용되는 토폴리지는 적어도 하나의 Core(Core 1 내지 Core 4), 적어도 하나의 Aggr(Aggr1 내지 Aggr8), 적어도 하나의 Edge(Edge 1 내지 Edge 8), 적어도 하나의 단말(R, S1 내지 S15)을 포함할 수 있다. 1, the topology to which various embodiments are applied includes at least one Core (Core 1 to Core 4), at least one Aggr (Aggr 1 to Aggr 8), at least one Edge (Edge 1 to Edge 8) , And at least one terminal (R, S1 to S15).

적어도 하나의 Core(Core 1 내지 Core 4) 각각에는 적어도 하나의 Aggr(Aggr1 내지 Aggr8)이 연결될 수 있다. 아울러, 적어도 하나의 Aggr(Aggr1 내지 Aggr8) 각각에는 어도 하나의 Edge(Edge 1 내지 Edge 8)가 연결될 수 있다. 또한, 적어도 하나의 Edge(Edge 1 내지 Edge 8) 각각에는 적어도 하나의 단말(R, S1 내지 S15)이 연결될 수 있다. Core, Aggr, Edge 및 단말은 상기의 순서대로 팻-트리 구조를 형성할 수 있다. 즉, 도 1의 실시 예에 의한 토폴리지는 팻-트리(fat-tree) 토폴리지에 의거한 것일 수 있으며, 다점 루트화된 계층 토폴로지(multi-rooted and hierachial topology)로 명명될 수도 있다. 한편, 상기의 토폴리지는 단순히 예시적인 것으로, 당업자는 본 개시에 의한 실시 예가 다양한 토폴리지에 적용될 수 있으며, 적용되는 토폴로지의 종류에는 제한이 없음을 용이하게 이해할 수 있을 것이다.At least one Aggr (Aggr1 to Aggr8) may be connected to each of at least one Core (Core 1 to Core 4). In addition, one edge (Edge 1 to Edge 8) may be connected to each of at least one Aggr (Aggr1 to Aggr8). At least one terminal (R, S1 to S15) may be connected to each of at least one edge (Edge 1 to Edge 8). Core, Aggr, Edge, and terminal can form a fat-tree structure in the above-described order. That is, the topology according to the embodiment of FIG. 1 may be based on a fat-tree topology and may be referred to as a multi-rooted and hierachical topology. On the other hand, the above-described topology is merely exemplary, and one skilled in the art will readily understand that the embodiments of the present disclosure can be applied to various topologies and that there is no limitation on the type of topology applied.

도 1의 Core(Core 1 내지 Core 4), Aggr(Aggr1 내지 Aggr8) 및 Edge(Edge 1 내지 Edge 8)는 토폴로지를 구성하는 스위치 집합일 수 있다. 한편, 단말(R, S1 내지 S15)은 서로 데이터 플로우 또는 패킷을 송수신하는 토폴로지의 리프(leaf) 노드일 수 있다.Core (Core 1 to Core 4), Aggr (Aggr 1 to Aggr 8), and Edge (Edge 1 to Edge 8) in FIG. 1 may be a switch set constituting the topology. On the other hand, the terminals R, S1 to S15 may be leaf nodes of a topology in which data flows or packets are transmitted and received.

한편, 비교 예에 의한 MapReduce 등과 같은 다대일(many-to-one) 전송 애플리케이션에서는, 멀티플 플로우(multiple flow)들이 수신단말의 인그레스 스위치(ingress switch)의 각 포트에 집중적으로 몰리게 된다.On the other hand, in a many-to-one transmission application such as MapReduce according to the comparative example, multiple flows are concentrated in each port of the ingress switch of the receiving terminal.

결국, 플로우 간에는 인그레스 스위치의 송신큐에 들어가기 위하여 경쟁이 일어나게 된다. 비교 예에 의한 상용 스위치는 드롭-테일 FIFO 큐잉(drop-tail FIFO queueing)방식을 채택한다. 비교 예에 의한 경우에는, 포트 블랙아웃(port blackout) 문제가 발생할 수 있다. 여기에서, 포트 블랙아웃이란 인그레스 스위치의 임의의 포트로 들어온 패킷이 연속적으로 드롭(drop)되는 현상을 말한다.Eventually, there is a competition between the flows to enter the ingress queue of the ingress switch. The commercial switch according to the comparative example employs a drop-tail FIFO queuing method. In the case of the comparative example, a port blackout problem may occur. Here, the port blackout refers to a phenomenon in which packets arriving at an arbitrary port of the ingress switch are continuously dropped.

도 2는 비교 예에 의한 2개의 입력 포트(input port)(X,Y) 와 1개의 출력 포트(output port)(Z)로 구성된 인그레스 스위치 환경에서의 플로우 처리를 설명하기 위한 개념도이다.2 is a conceptual diagram for explaining a flow process in an ingress switch environment composed of two input ports (X, Y) and one output port (Z) according to a comparative example.

X 입력 포트(Port X)로 입력되는 제 1 패킷(X1,X2,X3,X4)의 입력시간 및 Y 입력 포트(Port Y)로 입력되는 제 2 패킷(Y1,Y2,Y3,Y4)의 입력 시간, 즉 제 1 패킷(X1,X2,X3,X4)의 도착시간 및 제 2 패킷(Y1,Y2,Y3,Y4)의 도착시간은 차이가 있을 수 있다. 예를 들어, 도 2의 비교 예에서는 제 1 패킷(X1,X2,X3,X4)의 도착시간(T[X1],T[X2],T[X3],T[X4])보다 제 2 패킷(Y1,Y2,Y3,Y4)의 도착시간(T[Y1],T[Y2],T[Y3],T[Y4])이 더 빠를 수 있다. 비교 예에 의한 포트는 드롭-테일 FIFO 큐잉(drop-tail FIFO queueing)방식을 채택하기 때문에, 도 2에 도시된 바와 같이 입력 포트(Port X)로 입력되는 제 1 패킷(X1,X2,X3,X4)은 모두 드롭된다. 결과적으로, Y 입력 포트(Port Y)로 입력되는 제 2 패킷(Y1,Y2,Y3,Y4)만이 출력 포트(output port)(Z)로 출력되는 결과가 초래된다.The input time of the first packet (X1, X2, X3, X4) input to the X input port (Port X) and the input of the second packet (Y1, Y2, Y3, Y4) input to the Y input port The arrival times of the first packets (X1, X2, X3, X4) and the arrival times of the second packets (Y1, Y2, Y3, Y4) may be different. For example, in the comparative example of Fig. 2, the arrival time (T [X1], T [X2], T [X3], T [X4]) of the first packet (X1, X2, X3, X4) The arrival times T [Y1], T [Y2], T [Y3], and T [Y4] of the Y1, Y2, Y3 and Y4 may be faster. Since the port according to the comparative example employs a drop-tail FIFO queuing scheme, the first packet (X1, X2, X3, X3) input to the input port (Port X) X4 are all dropped. As a result, only the second packets (Y1, Y2, Y3, Y4) input to the Y input port (Port Y) are output to the output port (Z).

포트 블랙아웃(Port blackout)은 특정 포트에 국한되어 나타나는 현상이 아니라, 모든 포트에 대하여 발생한다. 하지만, 연속된 패킷드롭은 TCP 타임 아웃(time out)을 발생시키게 되어, 결국 송신 레이트(sending rate)를 급격히 저하시키는 문제를 야기한다. 이와 같은 문제를 TCP 아웃캐스트 문제(outcast problem)이라고 한다. TCP 아웃캐스트 문제는 특히 팻-트리와 같은 계층 토폴로지 에서 발생하기 쉽다. 예를 들어, 도 1의 1개의 수신 단말(R)과 15개의 송신단말(S) 사이의 다대일(many-to-one)(15-to-1)의 경우에서, 송수신 단말간 거리에 따라 아래와 같이 세 가지 타입의 플로우(flow)가 존재한다.Port blackout occurs not on a specific port but on all ports. However, a continuous packet drop causes a TCP time-out, which results in a problem of rapidly lowering the sending rate. This problem is called the TCP outcast problem. TCP outcast problems are particularly likely to occur in tiered topologies such as fat-trees. For example, in the case of many-to-one (15-to-1) between one receiving terminal R and fifteen transmitting terminals S in Fig. 1, There are three types of flow as follows.

1) 2hop flow: S1->R1) 2hop flow: S1-> R

2) 4hop flows: S2->R, S3->R2) 4hop flows: S2-> R, S3-> R

3) 6hop flows: [S4,,,S15]->R3) 6hop flows: [S4 ,,, S15] -> R

일반적으로 TCP 쓰루풋은 송수신 단말간 RTT에 반비례하다. 따라서, 1)>2)>3) 순으로 쓰루풋이 클 것으로 예상할 수 있으나, 결과는 도 3에 도시된 바와 같이 있듯 반대로 결정된다. 도 3은 쓰루풋-송수신 단말 RTT 사이의 관계를 나타내는 그래프이다. 도 3의 결과는, 도 1의 Edge1에서 발생하는 포트 블랙아웃(port blackout)과 관련된다.In general, TCP throughput is inversely proportional to RTT between transmitting and receiving terminals. Therefore, it can be expected that the throughput is large in order of 1)> 2)> 3), but the result is determined as shown in FIG. 3 is a graph showing the relationship between the throughput-transmission / reception terminal RTT. The result of FIG. 3 relates to the port blackout occurring in Edge 1 of FIG.

Edge1은 두 개의 입력 포트를 사용하는데, Edge1:S1 과 Edge1:Aggr1 이다. 여기에서, Edge1:Aggr2 는 리던던트(redundant)로 상정할 수 있다. 이때 Edge1:S1으로 들어오는 플로우의 수는 1개 (S1->R)이다. 반면 Edge1:Aggr1으로 들어오는 플로우의 수는 14개이다. 이 경우 Edge1:S1 과 Edge1:Aggr1에서 각각 포트 블랙아웃이 발생한다. Edge1:S1의 경우 포트 블랙아웃으로 연속해서 드롭되는 모든 packet 이 S1->R의 일부이므로, S1->R 은 TCP 컨제스천 컨트롤(congestion control)에 의해 TCP 타임아웃(timeout)을 발생시키고, 컨제스천 윈도우 크기(congestion window size)를 1로 낮춘다. 즉 심각한 전송속도 저하가 야기될 수 있다.Edge1 uses two input ports, Edge1: S1 and Edge1: Aggr1. Here, Edge1: Aggr2 can be assumed to be redundant. At this time, the number of flows entering Edge1: S1 is one (S1-> R). On the other hand, the number of flows to Edge1: Aggr1 is 14. In this case, port blackout occurs in Edge1: S1 and Edge1: Aggr1 respectively. In the case of Edge1: S1, since all packets dropped continuously by port blackout are part of S1-> R, S1-> R causes a TCP timeout by congestion control of the TCP, Lower the congestion window size to 1. That is, a serious transmission speed degradation may be caused.

반면, Edge1:Aggr1 으로는 14개 플로우가 섞여서 들어오게 된다. 따라서, 연속적으로 패킷 드롭된다 하더라도, 각각의 플로우 입장에서는 손실이 크지는 않을 수 있다.On the other hand, Edge1: Aggr1 contains 14 flows. Therefore, even if a packet is continuously dropped, the loss may not be large in each flow.

이 문제를 해결하기 위한 비교 예에 의한 방법이 도 4와 같이 테스트되었다. 도 4는 비교 예에 의한 적용 가능한 방법을 설명하기 위한 개념도이다. RED/SFQ 는 링크 계층 솔루션(link layer solution)으로서 드롭-테일 큐잉(drop-tail queueing)을 수행하지 않는다. 이에 따라, 아웃캐스트 문제가 발생하지 않는다.A method according to a comparative example for solving this problem was tested as shown in Fig. 4 is a conceptual diagram for explaining a applicable method according to a comparative example. RED / SFQ does not perform drop-tail queuing as a link layer solution. As a result, the outcast problem does not occur.

하지만, RED 장비는 고가인데다, RTT 바이어스(bias)를 보인다. SFQ 는 매우 고가이며 상용 스위치에서 거의 쓰이지 않는다. TCP 페이싱(pacing)은 트랜스포트 계층 솔루션(transport layer solution)으로서 패킷 송신시 패킷 간 시간간격을 조절하는 기법이지만, 위 문제에 적용하기 위해서는 마이크로세컨드(microsecond) 레벨의 시간정확도를 담보하여야 한다. 다만, 이는 현재 CPU/OS 구조상 구현이 불가능하다. 등거리 라우팅(Equal-length routing)은 네트워크 계층 솔루션(network layer solution)으로 모든 플로우를 동일한 경로로 우회시키는 방법이나, 이는 최단 경로(shortest path) 대신 의도적으로 우회 경로(detour path)를 택하게 되어 네트워크의 효율을 심각히 저하시키는 문제가 있다.However, RED equipment is expensive and exhibits RTT bias. SFQ is very expensive and rarely used in commercial switches. TCP pacing is a transport layer solution that adjusts the time interval between packets during packet transmission. However, in order to apply the above problem, microsecond level time accuracy must be guaranteed. However, this can not be implemented in the current CPU / OS architecture. Equal-length routing is a network layer solution that diverts all flows to the same path, but instead deliberately chooses a detour path instead of a shortest path, There is a problem of seriously degrading the efficiency.

본 개시에 의한 실시 예는 상술한 비교 예에 의한 문제를 해결하기 위해 패킷 크기, 더욱 상세하게는 패킷의 페이로드의 크기를 난수화하는 난수화 기법을 제안한다.The embodiment of the present disclosure proposes a randomization technique for randomizing a packet size, and more specifically, a packet payload size, in order to solve the problem of the above-described comparative example.

비교 예에 의한 종래의 패킷 크기 결정 방법은, 예를 들어 TCP 페이로드의 크기(payload size)는 최대 세그먼트 크기(Maximum segment size:MSS)로 항상 최대값과 같도록 설정하였다. 비교 예에 의한 종래의 패킷 크기 결정 방법은 헤더 오버헤드(header overhead)의 감축을 위하여 상술한 바와 같은 페이로드 크기 결정 방법을 이용하였다. 하지만, TCP 아웃캐스트 문제(outcast problem)가 발생하는 경우 비교 예에 의한 문제를 해결하기 위하여, 본 개시에 의한 실시 예는 TCP 페이로드 크기(payload Size)를 MSS 보다 작은 범위 내에서 난수화하는 방법을 제안한다.In the conventional packet size determination method according to the comparative example, for example, the payload size of the TCP payload is set to be the maximum segment size (MSS), which is always equal to the maximum value. In the conventional packet size determination method according to the comparative example, the above-described payload size determination method is used in order to reduce the header overhead. However, in order to solve the problem of the comparative example in the case where a TCP outcast problem occurs, the embodiment of the present disclosure provides a method of randomizing the TCP payload size within a range smaller than the MSS .

도 5는 일 실시 예에 의한 송신 단말의 난수화 기법을 설명하기 위한 흐름도이다.FIG. 5 is a flowchart illustrating a randomization technique of a transmitting terminal according to an embodiment.

단계 510에서, 송신 단말은 수신 단말과 패킷을 송수신함에 있어 기정의된 최대 세그먼트 크기(Maximum segment size:MSS)를 파악할 수 있다. 여기에서, 최대 세그먼트 크기는, 패킷의 세그먼테이션(segmentation)을 수행하는 과정에서 최대로 허용된 크기를 의미할 수 있다.In step 510, the transmitting terminal can determine the maximum segment size (MSS) in transmitting and receiving packets with the receiving terminal. Here, the maximum segment size may mean the maximum allowable size in the course of performing packet segmentation.

송신 단말 및 수신 단말은 기설정된 프로토콜을 설치하는 과정에서 최대 세그먼트의 크기를 파악할 수 있다. 또는 송신 단말 및 수신 단말은 서로 메시지를 교환하여 최대 세그먼트의 크기를 파악할 수도 있다. 아울러, 송신 단말은 관리자로부터 최대 세그먼트의 크기에 대한 정보를 수신할 수도 있다.The transmitting terminal and the receiving terminal can determine the size of the maximum segment in the process of installing the predetermined protocol. Or the transmitting terminal and the receiving terminal may exchange messages with each other to determine the size of the maximum segment. In addition, the transmitting terminal may receive information on the maximum segment size from the manager.

단계 520에서, 송신 단말은 패킷의 크기를 기정의된 최대 세그먼트 크기 미만으로 난수화할 수 있다. 예를 들어, 송신 단말은 패킷의 페이로드(payload)의 크기를 기정의된 최대 세그먼트 크기 미만으로 난수화할 수 있다.At step 520, the transmitting terminal may randomize the packet size to less than the predetermined maximum segment size. For example, the sending terminal can randomize the size of the payload of a packet to less than a predetermined maximum segment size.

송신 단말은 페이로드의 크기를 [1, MSS] 사이 값으로 결정할 수 있다. 송신 단말은 최대 세그먼트 크기 이상의 난수화는 별도의 프래그먼테이션(fragmentation)을 야기할 수 있기 때문에, 패킷의 크기를 최대 세그먼트 크기 미만으로 난수화할 수 있다.The transmitting terminal can determine the size of the payload as a value between [1, MSS]. The sending terminal can randomize the packet size to less than the maximum segment size since randomization above the maximum segment size can cause separate fragmentation.

한편, 송신 단말은 패킷의 페이로드의 크기를 난수화하는 과정에서, 난수화 정도(degree of randomness)를 결정할 수도 있다. 여기에서, 난수화 정도는 난수화된 값의 최대치(randMAX), 난수화된 값의 최저치(randMIN), 난수화된 값의 기댓값(randEXP) 및 난수화된 값 분포의 표준 편차(randSTDV) 중 적어도 하나를 포함할 수 있다. 송신 단말은 난수화의 정도를 파라미터로 조절할 수 있다. Meanwhile, the transmitting terminal may determine the degree of randomness in randomizing the packet payload size. Here, the degree of randomization may be at least one of the maximum value (randMAX) of the randomized value, the lowest value (randMIN) of the randomized value, the expected value (randEXP) of the randomized value, and the standard deviation randSTDV of the randomized value distribution One can be included. The transmitting terminal can adjust the degree of randomization by parameters.

일 실시 예에서, 송신 단말은 수동 모드로 동작하여 난수화 정도를 결정할 수 있다. 예를 들어, 송신 단말은 입력되거나 기설정된 운영자의 정책에 의하여 난수화 정도를 셋업할 수 있다. 다수의 TCP 파라미터는 운영체제에 디폴트(default)된 값으로 설정되어 있고, 필요시에 시스템 관리자 또는 운영자가 변경할 수 있으며, 이에 따라 송신 단말은 난수화 정도를 셋업 및 변경할 수 있다.In one embodiment, the transmitting terminal may operate in a passive mode to determine the degree of randomization. For example, the transmitting terminal may set the degree of randomization according to the input or preset operator's policy. Many TCP parameters are set to default values in the operating system and can be changed by a system administrator or an operator when necessary, so that the transmitting terminal can set up and change the degree of randomization.

일 예로, 데이터 센터(data center)의 경우에는, 시스템 관리자, 프로그램 또는 특정 알고리즘은 특정 다대일 플로우의 특징에 대하여 피리 파악할 수 있다. 시스템 관리자, 프로그램 또는 특정 알고리즘은 다양한 경우에 따라 특화된 난수화 정도를 미리 분석할 수 있으며, 이후 분석 결과에 기초하여 수동에 의하여 난수화 정도가 설정될 수 있다.As an example, in the case of a data center, a system administrator, a program, or a specific algorithm can grasp the characteristics of a particular many-to-one flow. A system administrator, a program, or a specific algorithm can analyze the degree of specialized randomization according to various cases in advance, and then the degree of randomization can be set manually based on the analysis result.

다른 실시 예에서, 송신 단말은 자동 모드로 동작하여 난수화 정도를 결정할 수 있다. 송신 단말은 난수화 정도를 결정하기 위한 다양한 난수화 관련 정보를 수집할 수 있다. 송신 단말은 수집한 난수화 관련 정보에 기초하여 난수화 정도를 결정할 수 있다. 일 실시 예에 의한 송신 단말은 TCP 멀티플라이어(multiplier)를 난수화 관련 정보로서 수집할 수 있으며, 예를 들어 TCP 멀티플라이어를 모니터링할 수 있다.In another embodiment, the transmitting terminal may operate in an automatic mode to determine the degree of randomization. The transmitting terminal can collect various randomization related information for determining the degree of randomization. The transmitting terminal can determine the degree of randomization based on the collected randomization-related information. A transmitting terminal according to an exemplary embodiment may collect a TCP multiplier as randomization related information, and may monitor a TCP multiplier, for example.

실험 결과, TCP의 RTO(retransmit timeout) 시 백오프(back off)에 사용되는 멀티플라이어가 TCP 아웃캐스트 문제 발생을 유추할 수 있는 중요 인자임이 밝혀졌기 때문이다.Experimental results show that the multiplier used for backoff in TCP retransmit timeout is an important factor in predicting TCP outcast problem.

더욱 상세하게, 송신 단말은 송신하는 패킷에 대한 애크(ack)를 수신하지 못하면, 타임 아웃에 진입할 수 있다. 즉, 송신 단말은 특정 시간 동안 패킷을 송신하지 못한다. 한편, 타임 아웃이 종료되면, 슬로우 스타트(slow start)에 의하여 송신 단말은 송신을 다시 재개하지 못할 수 있다. 이 경우, 송신된 패킷에 대한 애크를 또 수신하지 못하면, 타임 아웃이 재시작된다. 상술한 바와 같이, 타임 아웃이 연속하여 발생하기 때문에, 타임 아웃의 기간은 기하급수적으로 증가하게 된다. 이러한 상황이 반복되면, 송신 효율은 저하된다.More specifically, if the transmitting terminal does not receive an ack for a packet to be transmitted, it can enter a timeout. That is, the transmitting terminal can not transmit a packet for a specific time. On the other hand, when the timeout is terminated, the transmitting terminal may not be able to resume transmission by slow start. In this case, if no acknowledgment is received for the transmitted packet, the timeout is restarted. As described above, because the timeouts occur consecutively, the timeout period increases exponentially. If such a situation is repeated, the transmission efficiency is lowered.

일 실시 예에서, 송신 단말은 특정 플로우의 멀티플라이어가 변동함을 모니터링할 수 있다. 송신 단말은 해당 플로우가 타임 아웃에 진입하여 송신 환경이 악화되는지 여부를 멀티플라이어 변동의 모니터링으로 용이하게 파악할 수 있다.In one embodiment, the transmitting terminal may monitor the fluctuation of the multiplier of a particular flow. The transmitting terminal can easily grasp by monitoring the multiplier variation whether or not the flow enters the timeout and the transmission environment deteriorates.

일 실시 예에서, 송신 단말은 특정 플로우의 멀티플라이어를 운영 체제의 커널 TCP 스택(stack)의 파라미터를 통하여 파악할 수 있다. 예를 들어, 송신 단말은 멀티플라이어가 제 1 수치, 예를 들어 1인 경우에는, 타임 아웃이 발생하지 않은 것으로 판단할 수 있다. 아울러, 송신 단말은 타임 아웃이 발생하면 멀티플라이어가 증가하는 것으로 판단할 수 있다. 또는 송신 단말은 멀티플라이어가 증가하면 타임 아웃이 연속하여 발생하는 것으로 판단할 수도 있다. 예를 들어, 송신 모듈은, 멀티플라이어가 2인 경우에는 타임 아웃이 1회 발생, 멀티플라이어가 4인 경우에는 타임 아웃이 2회 연속 발생, 멀티플라이어가 8인 경우에는 타임 아웃이 3회 연속 발생한 것으로 판단할 수 있다. 송신 단말은, RTO와 멀티플라이어의 곱이 타임 아웃의 최댓값보다 작은 경우에 대하여, 상술한 멀티플라이어와 타임 아웃의 발생 빈도의 선형 관계를 판단할 수 있다.In one embodiment, the sending terminal can grasp the multiplier of a particular flow through the parameters of the operating system's kernel TCP stack. For example, the transmitting terminal may determine that no timeout occurs when the multiplier is a first number, e.g., 1. In addition, the transmitting terminal can determine that the multiplier increases when a timeout occurs. Alternatively, the transmitting terminal may determine that a timeout occurs consecutively when the multiplier increases. For example, if the multiplier is 2, the timeout occurs once. When the multiplier is 4, the timeout occurs twice. When the multiplier is 8, the timeout occurs 3 times It can be judged that it has occurred. The transmitting terminal can determine the linear relationship between the frequency of occurrence of the timeout and the multiplier described above when the product of the RTO and the multiplier is smaller than the maximum value of the timeout.

도 6은 일 실시 예에 의한 난수화 정도를 결정하는 방법을 설명하기 위한 흐름도이다.FIG. 6 is a flowchart for explaining a method for determining the degree of randomization according to an embodiment.

단계 610에서, 송신 단말은 멀티플라이어를 모니터링할 수 있다. 상술한 바와 같이, 송신 단말은 운영 체제의 커널 TCP 스택(stack)의 파라미터를 통하여 특정 플로우의 멀티플라이어를 파악할 수 있다.In step 610, the sending terminal may monitor the multiplier. As described above, the transmitting terminal can grasp the multiplier of the specific flow through the parameters of the kernel TCP stack of the operating system.

단계 620에서, 송신 단말은 멀티플라이어가 제 1 수치, 예를 들어 1이면, 단계 630으로 진입하여 난수화를 수행하지 않을 수 있다. 즉, 송신 단말은 타임 아웃이 발생하지 않은 것으로 판단하여 난수화 정도를 0으로 설정할 수 있다.In step 620, the transmitting terminal may enter step 630 and not perform randomization if the multiplier is a first number, e.g., 1. That is, the transmitting terminal can determine that no timeout has occurred and can set the degree of randomization to zero.

한편, 단계 640에서 송신 단말은 멀티플라이어 정도에 대응하여 난수화 정도를 결정할 수 있다. 예를 들어, 송신 단말은 RTO와 멀티플라이어의 곱이 타임 아웃의 최댓값보다 작은 경우에 대하여서는, 멀티플라이어가 증가할수록 난수화 정도도 함께 증가시킬 수 있다. 즉, 송신 단말은 멀티플라이어가 증가할수록 타임 아웃의 발생빈도도 증가한 것으로 판단하여 난수화 정도를 증가시킬 수 있다. 한편, 다양한 실시 예는 난수화 정도의 증가 폭을 한정하지 않으며, 난수화 정도의 증가 구현에 의하여 권리범위가 제한되지 않음을 당업자는 용이하게 이해할 수 있을 것이다.On the other hand, in step 640, the transmitting terminal can determine the degree of randomization corresponding to the multiplier degree. For example, if the product of the RTO and the multiplier is smaller than the maximum value of the timeout, the transmitting terminal can increase the degree of randomization as the multiplier increases. That is, the transmitting terminal determines that the frequency of the timeout increases as the multiplier increases, and thus the degree of randomization can be increased. It will be readily understood by those skilled in the art that the various embodiments do not limit the increase in the degree of randomization and that the range of the right is not limited by the increase in the degree of randomization.

다양한 실시 예에 의한 난수화 기능은 하기와 같은 다양한 실시 예에 따라 구현될 수 있다.The randomization function according to various embodiments may be implemented according to various embodiments as follows.

일 실시 예에 의한 난수화 기능은 운영 체제 커널(kernel)의 TCP 스택(stack)에서 구현될 수 있다. 더욱 상세하게, 송신 모듈은 트랜스포트 계층(Transport layer)에서 난수화 기능을 통한 페이로드 크기(payload size)의 조절을 수행한 후, 이후 하부 계층으로 패킷을 송신할 수 있다.The randomization function according to one embodiment can be implemented in the TCP stack of the operating system kernel. In more detail, the transmitting module may adjust the payload size through the randomization function in the transport layer, and then transmit the packet to the lower layer.

이러한 실시 예에서, 컨제스천 제어(congestion control)를 담당하는 트랜스포트 계층(Transport layer) 자체에서 세그먼트 크기 난수화까지 수행하기 때문에, 다양한 정보에 기초한 난수화의 구현이 가능할 수 있다. 또한, 운영체제 커널(Software) 의 수정만으로도 실시 예에 따른 난수화의 구현이 가능할 수 있다.In this embodiment, since the transport layer itself responsible for congestion control carries out up to the segment size randomization, it is possible to implement randomization based on various information. In addition, it is possible to implement the randomization according to the embodiment only by modifying the operating system kernel (Software).

다른 실시 예에 의한 난수화 기능은 NIC (Network Interface Card)의 오프로드 엔진(offload Engine)에서 구현될 수 있다. 특히, TSO (Transmit segmentation offload)가 활성화된(enabled) 경우, NIC는 상부 계층으로부터 MSS 단위의 세그먼트가 아닌, MSS 보다 큰 크기의 라지 세그먼트(large segment)를 입력받을 수 있다. NIC의 오프로드 엔진이 입력된 라지 세그먼트를 세그먼테이션할 수 있다. 이에 따라, CPU 사이클(cycle)의 소모를 최소화하며 하드웨어(Hardware) 차원의 패킷 크기 난수화가 구현 가능할 수 있다. 한편, 트랜스포트 계층에서는 NIC로부터 패킷 크기 난수화에 필요한 각종 정보, 예를 들어 난수화 모듈과, 난수화 정도 계산 모듈의 입력 파라미터들을 전달받을 수 있다.The randomization function according to another embodiment may be implemented in an offload engine of a network interface card (NIC). In particular, when Transmit segmentation offload (TSO) is enabled, the NIC can receive a large segment larger than the MSS, rather than an MSS segment, from the upper layer. The offload engine of the NIC can segment the input large segment. Accordingly, the consumption of the CPU cycle can be minimized and a hardware-level packet size randomization can be realized. Meanwhile, in the transport layer, various information necessary for packet size randomization from the NIC, for example, the randomization module and the input parameters of the randomization degree calculation module, can be received.

또 다른 실시 예에 의한 난수화 기능은 소프트웨어 정의된 라우터/스위치에서 구현될 수도 있으며, 이 경우에는 난수화 알고리즘의 적용이 가능할 수 있다.The randomization function according to another embodiment may be implemented in a software defined router / switch, in which case the application of the randomization algorithm may be possible.

도 7은 일 실시 예에 의한 송신 노드의 블록도이다.7 is a block diagram of a transmitting node according to one embodiment.

송신 노드(700)는 제어부(710) 및 통신부(720)를 포함할 수 있다.The transmitting node 700 may include a control unit 710 and a communication unit 720.

제어부(710)는 통신부(720)에서 송신하는 패킷을 생성할 수 있다. 제어부(710)는 기설정된 프로토콜에 따른 패킷을 생성할 수 있으며, 패킷의 크기를 결정할 수 있다. 제어부(710)는 수신 단말과 패킷을 송수신함에 있어 기정의된 최대 세그먼트 크기를 파악할 수 있다. 제어부(710)는 패킷의 페이로드(payload)의 크기를 상기 기정의된 최대 세그먼트 크기 미만으로 난수화할 수 있다. 제어부(710)는 IC 칩, 마이크로프로세서, 미니 컴퓨터 등으로 구현될 수 있다.The control unit 710 can generate a packet to be transmitted by the communication unit 720. [ The control unit 710 can generate a packet according to a predetermined protocol and determine the packet size. The control unit 710 can determine the predetermined maximum segment size when transmitting and receiving packets with the receiving terminal. The control unit 710 may randomize the size of the payload of the packet to less than the predetermined maximum segment size. The controller 710 may be implemented as an IC chip, a microprocessor, a mini computer, or the like.

통신부(720)는 크기가 난수화된 패킷을 수신 단말로 송신할 수 있다. 통신부(720)는, 안테나, 복/변조기, 주파수 처리 장치, 필터 장치와 같은 다양한 통신 모듈을 포함할 수 있다.The communication unit 720 can transmit the packet whose size is unordered to the receiving terminal. The communication unit 720 may include various communication modules such as an antenna, a comb / modulator, a frequency processing unit, and a filter unit.

제어부(710)는 난수화의 정도를 결정할 수도 있다. 제어부(710)는 외부로부터 상기 난수화의 정도를 조정하는 파라미터를 수신하여 상기 난수화의 정도를 결정하는 수동 모드로 동작할 수 있다. 또는 제어부(710)는 상기 송신 단말이 상기 난수화의 정도를 조정하는 파라미터를 결정하는 자동 모드로 동작할 수도 있다.The control unit 710 may determine the degree of randomization. The controller 710 may operate in a passive mode in which the parameter for adjusting the degree of randomization is received from outside and the degree of randomization is determined. Alternatively, the control unit 710 may operate in an automatic mode in which the transmitting terminal determines parameters for adjusting the degree of randomization.

제어부(710)는 상기 난수화 정도를 결정하기 위한 난수화 관련 정보를 수집할 수도 있다. 여기에서, 상기 난수화 관련 정보는, 상술한 바와 같이 멀티플라이어(multiplier) 정보일 수 있다. 제어부(710)는 운영체제의 커널의 TCP 스택(TCP stack)의 파라미터를 통하여 상기 멀티플라이어를 수집할 수 있다.The control unit 710 may collect the randomization-related information for determining the degree of randomization. Here, the randomization related information may be multiplier information as described above. The controller 710 may collect the multiplier through a parameter of the TCP stack of the operating system kernel.

제어부(710)는 상기 멀티플라이어의 변동에 대응하여 상기 패킷의 송수신의 타임 아웃(timeout) 여부를 결정할 수 있다. 제어부(710)는 상기 멀티플라이어의 값이 제 1 수치인 경우에는 상기 패킷의 송수신의 타임 아웃이 발생하지 않은 것으로 판단하거나 또는 상기 멀티플라이어의 값이 제 2 수치인 경우에는 상기 패킷의 송수신의 타임 아웃이 발생한 것으로 판단할 수 있다. 제어부(710)는 상기 멀티플라이어의 수치가 증가할수록 상기 패킷의 송수신의 타임 아웃이 연속 발생한 것으로 판단할 수도 있다.The control unit 710 can determine whether or not to time out the transmission / reception of the packet in response to the variation of the multiplier. If the value of the multiplier is a first value, the control unit 710 determines that the timeout of the transmission / reception of the packet has not occurred, or if the value of the multiplier is the second value, Out can be determined to have occurred. The control unit 710 may determine that the timeout of transmission and reception of the packet occurs continuously as the value of the multiplier increases.

제어부(710)는 상기 멀티플라이어의 수치에 대응하여 상기 난수화 정도를 결정할 수 있다. 상기 난수화의 정도는, 난수화된 값의 최대치, 난수화된 값의 최저치, 난수화된 값의 기댓값 및 난수화된 값의 분포의 표준 편차 중 적어도 하나를 포함할 수 있다.The control unit 710 can determine the degree of randomization according to the numerical value of the multiplier. The degree of randomization may include at least one of a maximum value of the randomized value, a minimum value of the randomized value, an expected value of the randomized value, and a standard deviation of the distribution of the randomized value.

일 실시 예에 의한 제어부(710)는 상기 패킷의 페이로드의 크기를 난수화하는 단계는, 트랜스포트 계층(transport layer)에서 난수화 기능을 통하여 상기 페이로드의 크기를 조절할 수 있다. 통신부(720)는 상기 페이로드 사이즈의 크기가 조절된 패킷을 하부 계층으로 전송할 수 있다.The controller 710 according to an exemplary embodiment of the present invention may randomize the payload size of the packet by adjusting a size of the payload through a randomization function in a transport layer. The communication unit 720 may transmit the packet whose size is adjusted to the payload size to the lower layer.

제어부(710)는 TSO(Transmit segmentation offload)가 활성화된 경우에는, 상부 레이어로부터 입력된 최대 세그먼트 단위보다 큰 세그먼트를 세그먼테이션(segmentation)할 수 있다.When the TSO (Transmit segmentation offload) is activated, the controller 710 may segment a segment larger than the maximum segment unit input from the upper layer.

제어부(710)는 라우터(router) 및 스위치(switch) 중 적어도 하나의 단계에서 소프트웨어 정의 난수화 알고리즘에 따라서 난수화를 수행할 수 있다.The controller 710 may perform randomization according to a software defined randomization algorithm in at least one of a router and a switch.

도 8a는 일 실시 예에 의하여 난수화된 패킷의 개념도이다.8A is a conceptual diagram of a packet that has been randomized according to an embodiment.

도 8a에 도시된 바와 같이 제 1 패킷(X1,X2,X3,X4) 각각의 페이로드(802,812,822,832)의 크기는 난수화되어 상이할 수 있다. 이에 따라, 제 1 패킷(X1,X2,X3,X4) 각각의 크기는 상이할 수 있다. 아울러, 도 8a의 실시 예에서의 제 1 패킷(X1,X2,X3,X4)은 페이로드의 크기가 난수화된 것으로 설명되었지만, 이는 단순히 예시적인 것으로 일 실시 예에 의한 난수화 기법은 헤더의 일부의 크기를 난수화할 수도 있다.As shown in FIG. 8A, the sizes of the payloads 802, 812, 822 and 832 of the first packets X1, X2, X3 and X4 may be randomized and different. Accordingly, the size of each of the first packets X1, X2, X3, and X4 may be different. In addition, although the first packet (X1, X2, X3, X4) in the embodiment of FIG. 8A has been described that the size of the payload is randomized, it is merely an example. Some sizes can be randomized.

도 8b는 일 실시 예에 의한 난수화 기법 적용에 따른 플로우 처리 향상을 설명하기 위한 개념도이다. 도 8b는 도 2의 비교 예와 같이, 2개의 입력 포트(input port)(X,Y) 와 1개의 출력 포트(output port)(Z)로 구성된 인그레스 스위치 환경을 가진다.8B is a conceptual diagram for explaining a flow processing improvement according to an embodiment of the randomization technique. 8B has an ingress switch environment composed of two input ports (X, Y) and one output port (Z), as in the comparative example of FIG.

도 8b에 도시된 바와 같이, 다양한 실시 예에 의한 난수화 기법이 적용된 패킷은 각각 랜덤한 크기를 가질 수 있다. 더욱 상세하게, 패킷의 페이로드의 크기는 실시 예에 따라 최대 세그먼트 크기 미만으로 설정되므로, 각각의 패킷들(X1 내지 X4, Y1 내지 Y4)은 랜덤한 크기를 가질 수 있다.As shown in FIG. 8B, the packets to which the randomization technique according to various embodiments are applied may have a random size, respectively. More specifically, since the size of the payload of the packet is set to less than the maximum segment size according to the embodiment, each packet (X1 to X4, Y1 to Y4) may have a random size.

이에 따라, X 입력 포트(Port X)로 입력되는 제 1 패킷(X1,X2,X3,X4) 및 Y 입력 포트(Port Y)로 입력되는 제 2 패킷(Y1,Y2,Y3,Y4)의 처리, 즉 Z 출력 포트(Port Z)로의 출력이 도 2의 비교 예에 비하여 공정하게 수행될 수 있다.Thus, the processing of the first packet (X1, X2, X3, X4) input to the X input port (Port X) and the second packet (Y1, Y2, Y3, Y4) input to the Y input port , That is, output to the Z output port (Port Z), can be performed fairly in comparison with the comparative example of FIG.

예를 들어 도 8b와 같이, 제 1 패킷(X2)의 크기가 제 2 패킷(Y2)의 크기보다 작게 난수화될 수 있다. 이에 따라, 도 2의 비교 예와는 대조적으로 제 1 패킷의 도착 시간(T[X2])이 제 2 패킷의 도착 시간(T[Y2])보다 빠를 수 있으며, 출력 큐(Output Queue)에는 제 2 패킷(Y2)가 아닌 제 1 패킷(X2)이 입력될 수 있다. 이에 따라, 제 1 패킷(X1 내지 X4)이 제 2 패킷(Y1 내지 Y4)보다 약간 늦게 동기화된 경우에 있어서도, 제 1 패킷(X1 내지 X4) 및 제 2 패킷(Y1 내지 Y4)이 적절하게 출력 큐로 입력될 수 있다.For example, as shown in FIG. 8B, the size of the first packet X2 may be smaller than the size of the second packet Y2. Accordingly, the arrival time T [X2] of the first packet may be earlier than the arrival time T [Y2] of the second packet in contrast to the comparative example of Fig. 2, and the output queue The first packet X2 other than the second packet Y2 may be input. Accordingly, even when the first packets X1 to X4 are synchronized slightly later than the second packets Y1 to Y4, the first packets X1 to X4 and the second packets Y1 to Y4 are appropriately output Can be input to the queue.

도 9는 네트워크 시뮬레이터 상 실험 결과를 나타낸다. 먼저 패킷 크기 난수화를 전혀 하지 않았을 경우 (rand=0), S1->R 의 송신 성능이 최저였다. 그 다음으로 [S2, S3]->R 의 송신 성능이 낮았다. 하지만, 난수화 정도(rand)를 점점 증가시켜 난수화 정도가 0.8 내지 0.9 사이에서는 모든 플로우의 송신 성능이 비슷해지는 것을 확인할 수 있다.9 shows experimental results on a network simulator. First, when the packet size is not randomized (rand = 0), the transmission performance of S1-> R is the lowest. Next, the transmission performance of [S2, S3] -> R was low. However, it can be seen that the transmission performance of all the flows becomes similar when the degree of hydration is increased from 0.8 to 0.9 by gradually increasing the degree of hydration (rand).

한편, 다른 실시 예에 의한 송신 단말은 컨제스천 윈도우(congestion window)를 난수화 관련 정보로서 수집할 수 있으며, 예를 들어 컨제스천 윈도우를 모니터링할 수 있다. TCP는 컨제스천 컨트롤 알고리즘을 통해 패킷 손실이 감지되면 컨제스천 윈도우를 감소시킨다. 컨제스천 윈도우를 감소시킨 직후에는 다음 패킷 손실이 감지되기 전까지는 컨제스천 윈도우를 점진적으로 증가시키며, 컨제스천 윈도우의 증가는 운영체제 특유의 알고리즘에 의하여 수행될 수 있다. 송신 단말은 패킷 손실이 감지된 직후 컨제스천 윈도우를 감소시킨 경우에는 네트워크 혼잡이 상대적으로 적을 것으로 판단할 수 있다. 왜냐하면 손실을 감지한 플로우가 전송률(sending rate)을 감소시켰기 때문에 네트워크 혼잡도가 감소했을 것이기 때문이다. 반대로 컨제스천 윈도우가 점점 증가하게 되면 네트워크 혼잡이 더 커질 것으로 판단할 수 있다.On the other hand, the transmitting terminal according to another embodiment can collect a congestion window as randomization related information, and can monitor a congested window, for example. TCP reduces the congestion window when packet loss is detected through the congestion control algorithm. Immediately after decrementing the congested window, the congested window is incrementally increased until the next packet loss is detected, and the increase in the congested window can be performed by an operating system specific algorithm. When the congestion window is reduced immediately after the packet loss is detected, the transmitting terminal can determine that the network congestion is relatively small. Because the flow that detected the loss would have reduced the network congestion because it reduced the sending rate. Conversely, if congestion windows increase, network congestion will increase.

이에 따라, 송신 단말은 컨제스천 윈도우의 증감에 따라서 난수화 정도를 결정할 수 있다. 예를 들어, 도 10a는 리눅스 커널에서 디폴트로 사용하는 컨제스천 제어 알고리즘(congestion control algorithm)인 CUBIC의 예로, 시간(t) 및 컨제스천 윈도우(cwnd) 사이의 관계를 나타낸다. 도 10a에 도시된 바와 같이, 시간의 흐름에 따라서, 컨제스천 윈도우는 증가하는 것을 확인할 수 있다.Thus, the transmitting terminal can determine the degree of randomization according to the increase / decrease of the congestion window. For example, FIG. 10A shows an example of a CUBIC, which is a congestion control algorithm used by default in the Linux kernel, and shows the relationship between the time t and the concatenation window cwnd. As shown in Fig. 10A, it can be seen that the congestion window increases with the passage of time.

송신 단말은 컨제스천 윈도우를 모니터링하면서 난수화 정도를 결정할 수 있다. 예를 들어, 도 10b는 도 10a의 컨제스천 윈도우 상황에 대응한 송신 단말의 난수화 정도 변경을 나타내는 그래프이다. 도 10b에 도시된 바와 같이, 송신 단말은 컨제스천 윈도우가 증가함에 따라서 난수화 정도 또한 증가시킬 수도 있다.The transmitting terminal can monitor the congestion window and determine the degree of randomization. For example, FIG. 10B is a graph showing a change in the degree of randomization of a transmitting terminal corresponding to the congestion window state of FIG. 10A. As shown in FIG. 10B, the transmitting terminal may also increase the degree of randomization as the congestion window increases.

한편, 상술한 10a의 리눅스 환경은 단순히 예시적인 것으로, 당업자는 운영체제의 종류에 관계없이 컨제스천 윈도우를 이용하여 난수화 정도를 결정할 수 있다는 것을 이해할 수 있을 것이며, 운영 체제의 종류에 따라서 권리범위는 제한되지 않는다.It should be understood that the Linux environment 10a described above is merely an example, and those skilled in the art will understand that the randomization degree can be determined using the congestion window regardless of the type of the operating system, Is not limited.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (20)

수신 단말과 패킷을 송수신함에 있어 정의된 최대 세그먼트 크기(Maximum segment size:MSS)를 파악하는 단계; 및
상기 패킷의 크기를 상기 정의된 최대 세그먼트 크기 미만으로 난수화하는 단계
를 포함하는 송신 단말의 난수화 기법.
Determining a maximum segment size (MSS) defined in transmitting and receiving a packet to / from a receiving terminal; And
Randomizing the size of the packet to less than the defined maximum segment size
A random number generator for generating a random number;
제 1 항에 있어서,
상기 패킷의 크기를 난수화하는 단계는,
상기 난수화의 정도를 결정하는 단계를 포함하는 송신 단말의 난수화 기법.
The method according to claim 1,
The step of randomizing the size of the packet comprises:
And determining a degree of randomization of the transmitting terminal.
제 2 항에 있어서,
상기 난수화의 정도를 결정하는 단계는,
상기 난수화의 정도를 조정하는 파라미터를 수신하고, 수신된 파라미터에 기초하여 상기 난수화의 정도를 결정하는 송신 단말의 난수화 기법.
3. The method of claim 2,
Wherein the step of determining the degree of randomization comprises:
A random number generating method of a transmitting terminal that receives a parameter for adjusting the degree of randomization and determines the degree of randomization based on the received parameter.
제 2 항에 있어서,
상기 난수화의 정도를 결정하는 단계는,
상기 송신 단말이 상기 난수화의 정도를 조정하는 파라미터를 결정하는 송신 단말의 난수화 기법.
3. The method of claim 2,
Wherein the step of determining the degree of randomization comprises:
And the transmitting terminal determines a parameter for adjusting the degree of randomization of the transmitting terminal.
제 4 항에 있어서,
상기 난수화 정도를 결정하기 위한 난수화 관련 정보를 수집하는 단계
를 더 포함하는 송신 단말의 난수화 기법.
5. The method of claim 4,
Collecting information related to randomization to determine the degree of randomization;
The random number generating method of the transmitting terminal.
제 5 항에 있어서,
상기 난수화 관련 정보는, 멀티플라이어(multiplier) 정보 및 컨제스천 윈도우(congestion window) 정보 중 적어도 하나인 송신 단말의 난수화 기법.
6. The method of claim 5,
The randomization related information is at least one of multiplier information and congestion window information.
제 6 항에 있어서,
상기 난수화의 정도를 결정하는 단계는,
운영체제의 커널의 TCP 스택(TCP stack)의 파라미터를 통하여 상기 멀티플라이어를 수집하는 송신 단말의 난수화 기법.
The method according to claim 6,
Wherein the step of determining the degree of randomization comprises:
The randomization technique of the transmitting terminal that collects the multipliers through parameters of the TCP stack of the operating system kernel (TCP stack).
제 6 항에 있어서,
상기 난수화의 정도를 결정하는 단계는,
상기 멀티플라이어 정보의 변동에 대응하여 상기 패킷의 송수신의 타임 아웃(timeout) 여부를 결정하는 단계를 더 포함하는 송신 단말의 난수화 기법.
The method according to claim 6,
Wherein the step of determining the degree of randomization comprises:
Further comprising the step of determining whether or not to timeout the transmission and reception of the packet in accordance with the variation of the multiplier information.
제 6 항에 있어서,
상기 난수화의 정도를 결정하는 단계는,
상기 컨제스천 윈도우 정보의 변동에 대응하여 상기 패킷의 송수신의 손실 여부를 결정하는 단계를 더 포함하는 송신 단말의 난수화 기법.
The method according to claim 6,
Wherein the step of determining the degree of randomization comprises:
Further comprising the step of determining whether transmission / reception of the packet is lost corresponding to the variation of the congestion window information.
제 8 항 또는 제 9 항에 있어서,
상기 난수화의 정도를 결정하는 단계는,
상기 멀티플라이어의 값이 제 1 수치인 경우에는 상기 패킷의 송수신의 타임 아웃이 발생하지 않은 것으로 판단하거나 또는 상기 멀티플라이어의 값이 제 2 수치인 경우에는 상기 패킷의 송수신의 타임 아웃이 발생한 것으로 판단하는 송신 단말의 난수화 기법.
10. The method according to claim 8 or 9,
Wherein the step of determining the degree of randomization comprises:
If the value of the multiplier is a first value, it is determined that a timeout of transmission / reception of the packet has not occurred, or if a value of the multiplier is a second value, a timeout of transmission / reception of the packet has occurred Randomization technique of transmitting terminal.
제 10 항에 있어서,
상기 난수화의 정도를 결정하는 단계는,
상기 멀티플라이어 정보의 수치가 증가할수록 상기 패킷의 송수신의 타임 아웃이 연속 발생한 것으로 판단하는 송신 단말의 난수화 기법.
11. The method of claim 10,
Wherein the step of determining the degree of randomization comprises:
The random number generating method of the transmitting terminal determines that the timeout of transmission and reception of the packet occurs continuously as the value of the multiplier information increases.
제 10 항에 있어서,
상기 난수화의 정도를 결정하는 단계는,
상기 컨제스천 윈도우 정보의 수치가 증가할수록 상기 패킷의 송수신의 손실이 발생한 것으로 판단하는 송신 단말의 난수화 기법.
11. The method of claim 10,
Wherein the step of determining the degree of randomization comprises:
The random number generating method of the transmitting terminal determines that loss of transmission / reception of the packet occurs as the value of the congestion window information increases.
제 10 항에 있어서,
상기 난수화의 정도를 결정하는 단계는,
상기 멀티플라이어 정보 및 컨제스천 윈도우 정보 중 적어도 하나의 수치에 대응하여 상기 난수화 정도를 결정하는 송신 단말의 난수화 기법.
11. The method of claim 10,
Wherein the step of determining the degree of randomization comprises:
And the randomization degree is determined according to at least one of the multiplier information and the concatenated window information.
제 2 항에 있어서,
상기 난수화의 정도는, 난수화된 값의 최대치, 난수화된 값의 최저치, 난수화된 값의 기댓값 및 난수화된 값의 분포의 표준 편차 중 적어도 하나를 포함하는 송신 단말의 난수화 기법.
3. The method of claim 2,
Wherein the degree of randomization includes at least one of a maximum value of the randomized value, a minimum value of the randomized value, an expected value of the randomized value, and a standard deviation of the distribution of the randomized value.
제 1 항에 있어서,
상기 패킷의 크기를 난수화하는 단계는, 트랜스포트 계층(transport layer)에서 난수화 기능을 통하여 상기 패킷의 페이로드의 크기를 조절하는 송신 단말의 난수화 기법.
The method according to claim 1,
The step of randomizing the size of the packet comprises: adjusting a size of a payload of the packet through a randomization function in a transport layer.
제 15 항에 있어서,
상기 페이로드 사이즈의 크기가 조절된 패킷을 하부 계층으로 전송하는 단계
를 더 포함하는 송신 단말의 난수화 기법.
16. The method of claim 15,
Transmitting a packet whose size is adjusted in the payload size to a lower layer
The random number generating method of the transmitting terminal.
제 1 항에 있어서,
상기 패킷의 페이로드의 크기를 난수화하는 단계는, TSO(Transmit segmentation offload)가 활성화된 경우에는, 상부 레이어로부터 입력된 최대 세그먼트 단위보다 큰 세그먼트를 세그먼테이션(segmentation)하는 송신 단말의 난수화 기법.
The method according to claim 1,
The step of randomizing the size of the payload of the packet comprises segmenting a segment larger than a maximum segment unit inputted from the upper layer when TSO (Transmit segmentation offload) is activated.
제 1 항에 있어서,
라우터(router) 및 스위치(switch) 중 적어도 하나의 단계에서 소프트웨어 혹은 하드웨어적으로 정의된 난수화 알고리즘에 따라서 난수화를 수행하는 송신 단말의 난수화 기법.
The method according to claim 1,
The randomization technique of a transmitting terminal that performs randomization according to a software or hardware defined randomization algorithm in at least one of a router and a switch.
운영체제의 커널의 TCP 스택(TCP stack)의 멀티플라이어 정보 및 컨제스천 윈도우 정보 중 적어도 하나를 모니터링하는 단계;
상기 모니터링 결과에 기초하여, 수신 단말로 송신하는 패킷의 크기의 난수화 여부를 판단하는 단계; 및
상기 패킷을 상기 수신 단말로 송신하는 단계
를 포함하는 송신 단말의 난수화 기법.
Monitoring at least one of multiplier information and congestion window information of a TCP stack of an operating system kernel;
Determining whether the size of a packet to be transmitted to a receiving terminal is randomized based on the monitoring result; And
Transmitting the packet to the receiving terminal
A random number generator for generating a random number;
수신 단말과 패킷을 송수신함에 있어 정의된 최대 세그먼트 크기(Maximum segment size:MSS)를 파악하고, 상기 패킷의 크기를 상기 정의된 최대 세그먼트 크기 미만으로 난수화하는 제어부; 및
상기 패킷을 상기 수신 단말로 송신하는 통신부
를 포함하는 송신 단말.


A controller for determining a maximum segment size (MSS) defined when transmitting and receiving a packet to and from a receiving terminal, and for randomizing the packet size to less than the defined maximum segment size; And
And a communication unit for transmitting the packet to the receiving terminal
.


KR1020140039905A 2013-05-27 2014-04-03 Randomization of packet size KR102177737B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/288,035 US10084834B2 (en) 2013-05-27 2014-05-27 Randomization of packet size
CN201410228090.XA CN104184794B (en) 2013-05-27 2014-05-27 Data package size method of randomization

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130059468 2013-05-27
KR1020130059468 2013-05-27

Publications (2)

Publication Number Publication Date
KR20140139406A true KR20140139406A (en) 2014-12-05
KR102177737B1 KR102177737B1 (en) 2020-11-11

Family

ID=52459428

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140039905A KR102177737B1 (en) 2013-05-27 2014-04-03 Randomization of packet size

Country Status (1)

Country Link
KR (1) KR102177737B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101644402B1 (en) * 2015-12-24 2016-08-01 주식회사 파이오링크 Record size control method for high speed SSL packet processing and apparatus using the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010015956A1 (en) * 2000-02-23 2001-08-23 Nec Corporation Packet size control technique
US20050213586A1 (en) * 2004-02-05 2005-09-29 David Cyganski System and method to increase network throughput
US20050254420A1 (en) * 2002-07-19 2005-11-17 Stefan Wager Method for calculating a transmission window size
JP3857598B2 (en) * 2002-02-25 2006-12-13 株式会社リコー Data transfer method, device control module using the data transfer method, and image forming apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010015956A1 (en) * 2000-02-23 2001-08-23 Nec Corporation Packet size control technique
JP3857598B2 (en) * 2002-02-25 2006-12-13 株式会社リコー Data transfer method, device control module using the data transfer method, and image forming apparatus
US20050254420A1 (en) * 2002-07-19 2005-11-17 Stefan Wager Method for calculating a transmission window size
US20050213586A1 (en) * 2004-02-05 2005-09-29 David Cyganski System and method to increase network throughput

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101644402B1 (en) * 2015-12-24 2016-08-01 주식회사 파이오링크 Record size control method for high speed SSL packet processing and apparatus using the same

Also Published As

Publication number Publication date
KR102177737B1 (en) 2020-11-11

Similar Documents

Publication Publication Date Title
US11736402B2 (en) Fast data center congestion response based on QoS of VL
US9407560B2 (en) Software defined network-based load balancing for physical and virtual networks
EP3275140B1 (en) Technique for achieving low latency in data center network environments
US9819590B2 (en) Method and apparatus for notifying network abnormality
US10965546B2 (en) Control of network nodes in computer network systems
US9007962B2 (en) Deadlock-free routing using edge-disjoint sub-networks
WO2014140952A1 (en) Dynamic port type detection
JP2010050857A (en) Route control apparatus and packet discarding method
US10922250B2 (en) Monitoring and steering service requests to acceleration components
CN104734988A (en) Route control method and open flow controller in software defined network
CN111092840B (en) Processing strategy generation method, system and storage medium
Zec et al. Estimating the impact of interrupt coalescing delays on steady state TCP throughput
CN105099938A (en) Determining method and device of congestion window in network
US20180167337A1 (en) Application of network flow rule action based on packet counter
Mehra et al. Network load balancing in software defined network: A survey
US7903558B1 (en) Method and system for monitoring a network link in network systems
JP6376609B2 (en) Access control apparatus and authentication control method
KR102177737B1 (en) Randomization of packet size
US10084834B2 (en) Randomization of packet size
KR102371485B1 (en) Method of controlling traffic in ethernet-based network
US20200145478A1 (en) Method, electronic device, and computer program product for handling congestion of data transmission
JP2018533327A (en) Real-time distributed engine framework for Ethernet virtual connectivity
US11637739B2 (en) Direct memory access (DMA) engine for diagnostic data
US10637734B2 (en) Techniques for adaptively and selectively protecting control plane of communications network
CN117061331A (en) Fault positioning method, device, equipment and storage medium

Legal Events

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