KR102141498B1 - 패킷 전송 방법 및 장치 - Google Patents

패킷 전송 방법 및 장치 Download PDF

Info

Publication number
KR102141498B1
KR102141498B1 KR1020180162417A KR20180162417A KR102141498B1 KR 102141498 B1 KR102141498 B1 KR 102141498B1 KR 1020180162417 A KR1020180162417 A KR 1020180162417A KR 20180162417 A KR20180162417 A KR 20180162417A KR 102141498 B1 KR102141498 B1 KR 102141498B1
Authority
KR
South Korea
Prior art keywords
congestion window
size
packet
design size
calculated
Prior art date
Application number
KR1020180162417A
Other languages
English (en)
Other versions
KR20200073814A (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 KR1020180162417A priority Critical patent/KR102141498B1/ko
Publication of KR20200073814A publication Critical patent/KR20200073814A/ko
Application granted granted Critical
Publication of KR102141498B1 publication Critical patent/KR102141498B1/ko

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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • 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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • 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]
    • H04L47/365Dynamic adaptation of the packet size
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

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

Abstract

개시된 패킷 전송 장치에 의해 수행하는 패킷 전송 방법은, 전송 계층으로부터 네트워크 계층으로 전달되는 패킷의 전송 단위의 크기를 제한하기 위한 혼잡 윈도우의 설계 크기를 기 설정된 패킷 전송 규칙에 기초하여 계산하는 단계와, 응용 계층과 전송 계층 사이의 네트워크 소켓 내에 있는 데이터 패킷의 잔존 크기를 확인하는 단계와, 계산된 혼잡 윈도우의 설계 크기와 데이터 패킷의 잔존 크기를 비교한 결과에 따라 선택적으로 혼잡 윈도우의 설계 크기를 증가시키는 단계와, 네트워크 소켓 내의 데이터 패킷을 네트워크 계층으로 전송하되, 계산된 혼잡 윈도우의 설계 크기 또는 증가시킨 혼잡 윈도우의 설계 크기에 대응하여 전송 단위의 크기를 제한하는 단계를 포함한다.

Description

패킷 전송 방법 및 장치{METHOD AND APPARATUS FOR TRANSMITTING PACKETS}
본 발명은 패킷 전송 방법 및 장치에 관한 것으로서, 보다 구체적으로, 응용 계층의 데이터 패킷을 네트워크 계층으로 전송하는 방법 및 그 장치에 관한 것이다.
일반적인 컴퓨터 시스템에서 네트워크는 국제표준화기구(ISO)에서 정한 OSI 7 계층 구조 또는 TCP/IP 프로토콜 수트(Protocol Suite) 5계층 구조를 가진다. TCP/IP 프로토콜 수트 5계층 구조는 OSI 7 계층 구조 중 7번 계층, 6번 계층, 5번 계층을 하나로 보는 것이고, 최근에는 TCP/IP 프로토콜 수트 5계층 구조로 널리 이해되고 있다.
이러한 TCP/IP 프로토콜 수트 5계층 구조 중 응용 계층의 응용 프로그램으로부터 수신단으로 전달하는 데이터 패킷은 전송 계층 및 네트워크 계층을 순차로 거쳐 네트워크 접속 계층에 연결된 수신단까지 전달된다.
응용 계층과 전송 계층의 사이에는 네트워크 소켓(socket)이 위치하는데, 이러한 네트워크 소켓은 소프트웨어로 작성된 통신 접속점이라고 할 수 있고, 응용 프로그램에서 전송 계층을 이용할 수 있게 하는 창구 역할을 한다. 이러한 네트워크 소켓의 구조 자체는 전송 계층에서 연결형 서비스를 지원하는 TCP(Transmission Control Protocol) 및 비연결형 서비스를 지원하는 UDP(User Datagram Protocol)가 처음 설계된 이후로 크게 변화하지 않았다.
대한민국 공개특허공보 제10-2018-00111479호, 공개일자 2008년 12월 23일.
본 발명의 실시예에 의하면, 응용 계층과 전송 계층 사이의 네트워크 소켓 내에 잔존하는 데이터 패킷의 크기에 따라, 전송 계층으로부터 네트워크 계층으로 전달되는 패킷의 전송 단위의 크기를 제한하기 위한 혼잡 윈도우(congestion window)의 크기를 적응적으로 증가시키는 패킷 전송 방법 및 장치를 제공한다.
본 발명의 해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 제 1 관점에 따른 패킷 전송 장치에 의해 수행하는 패킷 전송 방법은, 전송 계층으로부터 네트워크 계층으로 전달되는 패킷의 전송 단위의 크기를 제한하기 위한 혼잡 윈도우의 설계 크기를 기 설정된 패킷 전송 규칙에 기초하여 계산하는 단계와, 응용 계층과 상기 전송 계층 사이의 네트워크 소켓 내에 있는 데이터 패킷의 잔존 크기를 확인하는 단계와, 상기 계산된 혼잡 윈도우의 설계 크기와 상기 데이터 패킷의 잔존 크기를 비교한 결과에 따라 선택적으로 상기 혼잡 윈도우의 설계 크기를 증가시키는 단계와, 상기 네트워크 소켓 내의 데이터 패킷을 상기 네트워크 계층으로 전송하되, 상기 계산된 혼잡 윈도우의 설계 크기 또는 상기 증가시킨 혼잡 윈도우의 설계 크기에 대응하여 상기 전송 단위의 크기를 제한하는 단계를 포함할 수 있다.
여기서, 상기 데이터 패킷의 잔존 크기가 상기 계산된 혼잡 윈도우의 설계 크기보다 큰 경우에, 상기 데이터 패킷의 잔존 크기 이상이 되도록 상기 혼잡 윈도우의 설계 크기를 증가시킬 수 있다.
상기 패킷 전송 방법에서, 상기 데이터 패킷의 잔존 크기(R)가 상기 계산된 혼잡 윈도우의 설계 크기(CWk)보다 큰 경우에, 상기 데이터 패킷의 잔존 크기(R), 상기 계산된 혼잡 윈도우의 설계 크기(CWk), 상기 네트워크 계층의 전송속도(B) 및 네트워크 계층의 지연시간(RTT) 중 하나 이상이 포함된 관계식을 만족하면, 상기 혼잡 윈도우의 설계 크기를 증가시킬 수 있다.
상기 패킷 전송 방법에서, 상기 관계식은, 하기 식 중 어느 하나
Figure 112018126097806-pat00001
(이때, f(x)는 x에 대한 임의의 함수임)일 수 있다.
상기 패킷 전송 방법에서, 상기 기 설정된 패킷 전송 규칙에 기초하여 기 설정된 간격마다 상기 혼잡 윈도우의 설계 크기를 계산하되, N번째로 계산된 혼잡 윈도우의 설계 크기를 증가시킨 경우, 상기 기 설정된 패킷 전송 규칙에 기초하여 N+1번째로 상기 혼잡 윈도우의 설계 크기를 계산할 때에 상기 N번째로 계산된 혼잡 윈도우의 설계 크기 또는 상기 증가시킨 혼잡 윈도우의 설계 크기를 상기 기 설정된 패킷 전송 규칙에 반영할 수 있다.
본 발명의 제 2 관점에 따르면, 상기 패킷 전송 방법을 프로세서가 수행할 수 있도록 하는 컴퓨터 프로그램이 기록된 컴퓨터 판독 가능한 기록매체를 제공한다.
본 발명의 제 3 관점에 따르면, 상기 패킷 전송 방법을 프로세서가 수행할 수 있도록 컴퓨터 판독 가능한 기록매체에 기록된 컴퓨터 프로그램을 제공한다.
본 발명의 제 4 관점에 따른 패킷 전송 장치는, 응용 계층과 전송 계층 사이의 네트워크 소켓 내에 있는 데이터 패킷의 잔존 크기를 확인하는 패킷 확인부와, 상기 네트워크 소켓 내의 데이터 패킷을 네트워크 계층으로 전송하는 패킷 처리부를 포함하고, 상기 패킷 처리부는, 상기 전송 계층으로부터 상기 네트워크 계층으로 전달되는 패킷의 전송 단위의 크기를 제한하기 위한 혼잡 윈도우의 설계 크기를 기 설정된 패킷 전송 규칙에 기초하여 계산하며, 상기 계산된 혼잡 윈도우의 설계 크기와 상기 데이터 패킷의 잔존 크기를 비교한 결과에 따라 선택적으로 상기 혼잡 윈도우의 설계 크기를 증가시키고, 상기 계산된 혼잡 윈도우의 설계 크기 또는 상기 증가시킨 혼잡 윈도우의 설계 크기에 대응하여 상기 전송 단위의 크기를 제한할 수 있다.
여기서, 상기 패킷 처리부는, 상기 데이터 패킷의 잔존 크기가 상기 계산된 혼잡 윈도우의 설계 크기보다 큰 경우에, 상기 데이터 패킷의 잔존 크기 이상이 되도록 상기 혼잡 윈도우의 설계 크기를 증가시킬 수 있다.
상기 패킷 전송 장치에서, 상기 패킷 처리부는, 상기 데이터 패킷의 잔존 크기(R)가 상기 계산된 혼잡 윈도우의 설계 크기(CWk)보다 큰 경우에, 상기 데이터 패킷의 잔존 크기(R), 상기 계산된 혼잡 윈도우의 설계 크기(CWk), 상기 네트워크 계층의 전송속도(B) 및 네트워크 계층의 지연시간(RTT) 중 하나 이상이 포함된 관계식을 만족하면, 상기 혼잡 윈도우의 설계 크기를 증가시킬 수 있다.
상기 패킷 전송 장치에서, 상기 관계식은, 하기 식 중 어느 하나인
Figure 112018126097806-pat00002
(이때, f(x)는 x에 대한 임의의 함수임)일 수 있다.
상기 패킷 전송 장치에서, 상기 패킷 처리부는, 상기 기 설정된 패킷 전송 규칙에 기초하여 기 설정된 간격마다 상기 혼잡 윈도우의 설계 크기를 계산하되, N번째로 계산된 혼잡 윈도우의 설계 크기를 증가시킨 경우, 상기 기 설정된 패킷 전송 규칙에 기초하여 N+1번째로 상기 혼잡 윈도우의 설계 크기를 계산할 때에 상기 N번째로 계산된 혼잡 윈도우의 설계 크기 또는 상기 증가시킨 혼잡 윈도우의 설계 크기를 상기 기 설정된 패킷 전송 규칙에 반영할 수 있다.
본 발명의 실시예에 의하면, 응용 계층과 전송 계층 사이의 네트워크 소켓 내에 잔존하는 데이터 패킷의 크기에 따라, 전송 계층으로부터 네트워크 계층으로 전달되는 패킷의 전송 단위의 크기를 제한하기 위한 혼잡 윈도우의 크기를 적응적으로 증가시킨다.
이로써, 네트워크 소켓 내에 잔존하는 데이터 패킷을 기 설정된 간격 후의 혼잡 윈도우를 통해 처리하는 종래 기술과 비교할 때에 불필요한 지연이 제거되는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 패킷 전송 장치에 의해 이용되는 통신 프로토콜을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 패킷 전송 장치의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 패킷 전송 장치에 의해 수행되는 패킷 처리 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 패킷 전송 장치(100)에 의해 응용 계층으로부터 네트워크 계층으로 전달되는 데이터의 전송 과정을 시간축에 표현한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 범주는 청구항에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명은 본 발명의 실시예들을 설명함에 있어 실제로 필요한 경우 외에는 생략될 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 패킷 전송 장치에 의해 이용되는 통신 프로토콜을 설명하기 위한 도면이다.
도 1에 나타낸 바와 같이 네트워크 인터페이스는 복수의 응용 프로그램(11, 12)을 포함하는 응용 계층(10)의 아래에 통신 프로토콜을 포함하는 전송 계층(30)이 있고, 전송 계층(30)의 아래에 네트워크 계층(40)이 있으며, 네트워크 계층(40)이 물리 계층(도시 생략됨)을 통하여 수신단에 연결될 수 있다.
응용 계층(10)과 전송 계층(30)의 사이에는 네트워크 소켓(20)이 위치하며, 네트워크 소켓(20)은 응용 프로그램(11, 12)에서 생성한 데이터를 커널에 존재하는 전송 계층(30)에 배치(batch)로 전달하는 역할을 한다. 배치로 전달한다는 것은 데이터를 비트(bit) 또는 바이트(byte) 형태로 매번 전달하는 것이 아니라 수십 바이트에서 수백 메가바이트 이상의 패킷 단위로 간헐적으로 전달한다는 것을 의미한다.
도 1은 2개의 응용 프로그램(11, 12)이 각각의 네트워크 소켓(21, 22)을 통하여 전송 계층(30)을 공유하고 있는 것을 예시하였으나 응용 프로그램(11, 12) 및 네트워크 소켓(21, 22)의 개수는 제한되지 않는다.
도 2는 본 발명의 일 실시예에 따른 패킷 전송 장치(100)의 구성도이다.
도 2에 나타낸 바와 같이 일 실시예에 따른 패킷 전송 장치(100)는 패킷 확인부(110) 및 패킷 처리부(120)를 포함한다.
도 1 및 도 2를 참조하면, 패킷 확인부(110)는 응용 계층(10)과 전송 계층(30) 사이의 네트워크 소켓(20) 내에 있는 데이터 패킷의 잔존 크기를 확인한다.
패킷 처리부(120)는 네트워크 소켓(20) 내의 데이터 패킷을 네트워크 계층(40)으로 전송한다. 이러한 패킷 처리부(120)는 전송 계층(30)으로부터 네트워크 계층(40)으로 전달되는 패킷의 전송 단위의 크기를 제한하기 위한 혼잡 윈도우(CW, Congestion Window)의 설계 크기를 기 설정된 패킷 전송 규칙에 기초하여 계산하며, 계산된 혼잡 윈도우의 설계 크기와 데이터 패킷의 잔존 크기를 비교한 결과에 따라 선택적으로 혼잡 윈도우의 설계 크기를 증가시키고, 계산된 혼잡 윈도우의 설계 크기 또는 증가시킨 혼잡 윈도우의 설계 크기에 대응하여 패킷의 전송 단위의 크기를 제한한다.
아울러, 패킷 처리부(120)는 네트워크 소켓(20)에 남아 있는 데이터 패킷의 잔존 크기가 앞서 계산된 혼잡 윈도우의 설계 크기보다 큰 경우에, 데이터 패킷의 잔존 크기 이상이 되도록 혼잡 윈도우의 설계 크기를 증가시킬 수 있다. 예를 들어, 패킷 처리부(120)는 앞서 계산된 데이터 패킷의 잔존 크기(R)가 앞서 계산된 혼잡 윈도우의 설계 크기(CWk)보다 큰 경우에, 데이터 패킷의 잔존 크기(R), 앞서 계산된 혼잡 윈도우의 설계 크기(CWk), 네트워크 계층의 전송속도(B) 및 네트워크 계층의 지연시간(예컨대, 왕복지연시간(RTT, Round Trip Time)) 중 하나 이상이 포함된 관계식을 만족하면, 혼잡 윈도우의 설계 크기를 증가시킬 수 있다.
예를 들어, 패킷 처리부(120)는 슬로우 스타트(Slow Start) 방식으로 기 설정된 간격마다 혼잡 윈도우의 설계 크기를 계산함에 있어서 기 설정된 패킷 전송 규칙에 앞서 증가시킨 혼잡 윈도우의 설계 크기를 반영할 수도 있고 반영하지 않을 수도 있다. 즉, 패킷 처리부(120)는 슬로우 스타트 방식으로 기 설정된 패킷 전송 규칙에 기초하여 기 설정된 간격마다 혼잡 윈도우의 설계 크기를 계산하되, N번째로 계산된 혼잡 윈도우의 설계 크기를 증가시킨 경우, 기 설정된 패킷 전송 규칙에 기초하여 N+1번째로 혼잡 윈도우의 설계 크기를 계산할 때에 N번째로 계산된 혼잡 윈도우의 설계 크기 또는 N번째로 계산된 후 증가시킨 혼잡 윈도우의 설계 크기를 기 설정된 패킷 전송 규칙에 반영할 수 있다.
이러한 본 발명의 일 실시예에 따른 패킷 전송 장치(100)를 구성하는 패킷 확인부(110) 및 패킷 처리부(120)는 하드웨어 형태로 구현되는 경우에 마이크로프로세서(microprocessor)를 포함할 수 있다. 또는, 패킷 확인부(110) 및 패킷 처리부(120)는 소프트웨어 형태로 구현되어 전송 계층(30)의 내부 또는 외부에 구현될 수 있다. 또는, 패킷 확인부(110) 및 패킷 처리부(120)는 전송 계층(30)에 포함되는 통신 프로토콜의 일부로 구현될 수 있다. 예컨대, 전송 계층(30)에 포함되는 통신 프로토콜은 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol)일 수 있다.
한편, 본 발명의 일 실시예에 따른 패킷 전송 장치(100)는 네트워크 소켓(20) 내의 데이터 패킷의 잔존 크기가 현재의 혼잡 윈도우의 크기와 유사한 상황, 즉 네트워크 소켓(20)으로부터 여러 번에 걸쳐 혼잡 윈도우의 크기만큼 데이터를 소진하여 네트워크 소켓(20)에 남은 데이터 잔량이 혼잡 윈도의 크기와 유사해진 상황에서 동작할 수 있다. 또는, 본 발명의 일 실시예에 따른 패킷 전송 장치(100)는 응용 계층(10)에서 네트워크 소켓(20)으로 전달하는 데이터를 혼잡 윈도우의 크기와 유사하도록 조절하는 것이 가능한 상황(소켓 버퍼의 동작이 기존 소켓 버퍼 동작에 비해 자유도가 높아진 상황을 가정함)에서 동작할 수 있다.
도 3은 본 발명의 일 실시예에 따른 패킷 전송 장치(100)에 의해 수행되는 패킷 처리 방법을 설명하기 위한 흐름도이고, 도 4는 본 발명의 일 실시예에 따른 패킷 전송 장치(100)에 의해 응용 계층으로부터 네트워크 계층으로 전달되는 데이터의 전송 과정을 시간축에 표현한 도면이다.
이하, 도 1 내지 도 4를 참조하여 본 발명의 일 실시예에 따른 패킷 전송 장치(100)에 의해 수행되는 패킷 전송 방법에 대해 자세히 살펴보기로 한다.
먼저, 응용 계층(10)과 전송 계층(30)의 사이에 위치하는 네트워크 소켓(20)이 응용 계층(10)으로부터 전달받은 데이터는 패킷 전송 장치(100)의 패킷 처리부(120)가 계산한 혼잡 윈도우의 크기에 맞춰 순차적으로 네트워크 계층(40)으로 전송된다.
여기서, 패킷 처리부(120)는 네트워크 소켓(20)에 저장된 데이터 패킷을 전송 계층(30)에서 슬로우 스타트 방식을 이용하여 네트워크 계층(40)으로 전송할 수 있다. 예를 들어, 패킷 처리부(120)는 네트워크 세션이 시작된 직후에 기 설정된 초기 크기의 혼잡 윈도우(initial window)를 생성하고, 생성된 혼잡 윈도우의 크기에 맞추어 데이터 패킷을 네트워크 계층(40)으로 배치(batch)로 전달한다. 예컨대, 혼잡 윈도우의 초기 크기가 "10"이면 "10*최대패킷크기(MSS, Max Segment Size)"의 전송 단위로 데이터 패킷을 전달할 수 있다. 이후, 다음 회에 데이터 패킷을 전달할 때마다 혼잡 윈도우의 크기를 2배씩 증가시키다가 네트워크가 허용하는 대역폭 근처에 도달한 이후에는 3차함수(예컨대, 큐빅(cubic) 함수) 형태로 혼잡 윈도우의 크기를 증감시켜 데이터 패킷을 전달할 수 있다.
위와 같이 패킷 전송 장치(100)에 의해 응용 계층(10)으로부터 네트워크 계층(40)으로 전달되는 데이터의 전송 과정을 시간축(t)에 표현하면 도 4와 같다.
네트워크 소켓(20)에 저장된 데이터가 가변 크기의 혼잡 윈도우(CW0, CW1, CW2, CW3, …)에 맞추어 네트워크 계층(40)으로 전달된다. 여기서, 혼잡 윈도우(CWi)와 혼잡 윈도우(CWi+1)의 간격은 1 RTT에 준한다. 데이터 전달(Ai)과 데이터 전달(Ai+1)의 간격은 네트워크 소켓(20)의 버퍼 잔량에 의해 결정된다. 네트워크 소켓(20)의 버퍼 크기는 수동으로 설정, 예컨대 16MB의 크기로 설정될 수 있다. 응용 계층(10)으로부터 받은 데이터로 네트워크 소켓(20)의 버퍼를 가득 채운 후, 전송 계층(30)으로 데이터가 전달되면 네트워크 소켓(20)의 버퍼 잔량이 줄어들게 되고, 네트워크 소켓(20)의 버퍼 잔량이 특정 값(예컨대, 1MB) 이하로 줄어들면 응용 계층(10)으로부터 추가로 데이터를 받아 네트워크 소켓(20)의 버퍼를 다시 채우는 방식으로 동작한다. 응용 계층(10)으로부터 전달받아 네트워크 소켓(20)에 저장하는 데이터의 양은 정해진 상수일 수 있다. 또는, 기 설정 간격마다 데이터를 전송함에 있어서, 이전의 데이터 전송에 이용된 혼잡 윈도우에 대한 함수나 데이터 전송에 현재 이용 중인 혼잡 윈도에 대한 함수로 네트워크 소켓(20)에 저장하는 데이터의 양을 결정할 수 있다. 또는, 이전과 현재의 혼잡 윈도우에 대한 복합함수로 네트워크 소켓(20)에 저장하는 데이터의 양을 결정할 수도 있다.
응용 계층(10)과 커널 내의 전송 계층(30) 간의 데이터 전송은 내부 전송이므로 시스템 버스(또는 PCI버스, USB버스 등 메인 메모리와 네트워크 카드가 연결된 인터페이스)의 속도(S)로 전송이 이루어지고, 커널과 네트워크 계층(40) 간의 데이터 전송은 네트워크 계층(40)의 전송속도(B)로 이루어진다. 일반적인 경우, 시스템 버스 속도(S) ≫ 네트워크 계층의 전송속도(B)이며, 시스템 버스 속도(S)는 수백 Gbps 이상이고, 네트워크 계층의 전송속도(B)는 수 Gbps 이하의 속도를 가진다.
이처럼, 도 4를 참조하여 설명한 바와 같은 통신 프로토콜 및 통신 인터페이스를 이용하는 패킷 전송 장치(100)의 패킷 처리부(120)는 전송 계층(30)으로부터 네트워크 계층(40)으로 전달되는 패킷의 전송 단위의 크기를 제한하기 위한 혼잡 윈도우의 설계 크기를 기 설정된 패킷 전송 규칙에 기초하여 기 설정된 간격마다 계산한다. 예를 들어, 패킷 처리부(120)는 혼잡 윈도우(CWi)와 혼잡 윈도우(CWi+1)의 간격인 1 RTT의 설정 간격으로 혼잡 윈도우의 설계 크기를 계산할 수 있다(S210).
그리고, 패킷 전송 장치(100)의 패킷 확인부(110)는 응용 계층(10)과 전송 계층(30) 사이의 네트워크 소켓(20) 내에 있는 데이터 패킷의 잔존 크기를 확인하여 패킷 처리부(120)에 제공한다(S220).
그러면, 패킷 처리부(120)는 단계 S210에서 계산된 혼잡 윈도우의 설계 크기와 단계 S220에서 확인된 네트워크 소켓(20) 내에 있는 데이터 패킷의 잔존 크기를 비교한 결과에 따라 선택적으로 혼잡 윈도우의 설계 크기를 증가시킬 수 있다.
예를 들어, 패킷 처리부(120)는 단계 S220에서 확인된 네트워크 소켓(20) 내에 있는 데이터 패킷의 잔존 크기(R)가 단계 S210에서 계산된 혼잡 윈도우의 설계 크기(CWk)보다 큰 경우(S230)에, 데이터 패킷의 잔존 크기(R), 상기 계산된 혼잡 윈도우의 설계 크기(CWk), 상기 네트워크 계층의 전송속도(B) 및 네트워크 계층의 지연시간(RTT) 중 하나 이상이 포함된 관계식을 만족하는지를 확인한다(S240).
예컨대, 패킷 처리부(120)가 혼잡 윈도우의 설계 크기를 증가시킬 것인지를 결정하기 위해 이용하는 관계식은 수학식 1 내지 수학식 4 중에서 어느 한 수학식이거나 그 등식일 수 있다. 이들 수학식에서 f(x)는 x에 대한 임의의 함수이다.
Figure 112018126097806-pat00003
Figure 112018126097806-pat00004
Figure 112018126097806-pat00005
Figure 112018126097806-pat00006
수학식 2에서 f(RTT)는 RTTmin(최소 왕복지연시간),
Figure 112018126097806-pat00007
,
Figure 112018126097806-pat00008
,
Figure 112018126097806-pat00009
이며, a와 b 및 c는 임의의 상수이고, 수학식 3 및 수학식 4의 f(x) 또한 수학식 2처럼 최소 왕복지연시간이나 임의의 상수(a, b, c)를 이용하는 함수일 수 있다.
다음으로, 패킷 처리부(120)는 단계 S240에서 관계식을 만족한 것으로 확인되면, 단계 S220에서 확인된 데이터 패킷의 잔존 크기(R) 이상이 혼잡 윈도우의 설계 크기를 증가시킨다(S250).
그리고, 패킷 처리부(120)는 단계 S250에서 증가시킨 혼잡 윈도우의 설계 크기에 대응하는 크기로 전송 단위를 제한하면서 네트워크 소켓(20) 내의 데이터 패킷을 네트워크 계층(40)으로 전송한다. 만약, 단계 S240에서 관계식을 만족하지 않은 것으로 확인되면, 패킷 처리부(120)는 단계 S210에서 계산된 혼잡 윈도우의 설계 크기에 대응하는 크기로 전송 단위를 제한하면서 네트워크 소켓(20) 내의 데이터 패킷을 네트워크 계층(40)으로 전송한다(S260).
그리고, 혼잡 윈도우(CWi)와 혼잡 윈도우(CWi+1)의 간격인 1 RTT의 설정 간격 이후에 혼잡 윈도우의 크기를 다시 계산할 때에 패킷 처리부(120)는 단계 S250을 통해 증가시킨 혼잡 윈도우의 설계 크기를 반영할 수도 있고 반영하지 않을 수도 있다. 즉, 패킷 처리부(120)는 N번째로 계산된 혼잡 윈도우의 설계 크기를 증가시킨 경우, 기 설정된 패킷 전송 규칙에 기초하여 N+1번째로 혼잡 윈도우의 설계 크기를 계산함에 있어서, N번째로 계산된 혼잡 윈도우의 설계 크기를 그대로 기 설정된 패킷 전송 규칙에 반영하여 혼잡 윈도우의 크기를 다시 계산할 수도 있고, N번째로 계산된 후 증가시킨 혼잡 윈도우의 설계 크기를 기 설정된 패킷 전송 규칙에 반영하여 혼잡 윈도우의 크기를 다시 계산할 수도 있다. 예를 들어, 기 설정된 패킷 전송 규칙이라 함은 다음 회에 데이터 패킷을 전달할 때마다 혼잡 윈도우의 크기를 직전보다 2배씩 증가시키다가 네트워크가 허용하는 대역폭 근처에 도달한 이후에는 3차함수 형태로 혼잡 윈도우의 크기를 증감시켜 데이터 패킷을 전달하는 슬로우 스타트 방식일 수 있다. 예컨대, N번째로 계산된 혼잡 윈도우의 설계 크기가 "20"이고, 단계 S250에서 혼잡 윈도우의 설계 크기를 "25"로 증가시킨 경우, N+1번째에서 혼잡 윈도우의 설계 크기는 "40" 또는 "50"이 될 수 있다.
지금까지 설명한 바와 같은 본 발명의 실시예에 의하면, 응용 계층과 전송 계층 사이의 네트워크 소켓 내에 잔존하는 데이터 패킷의 크기에 따라, 전송 계층으로부터 네트워크 계층으로 전달되는 패킷의 전송 단위의 크기를 제한하기 위한 혼잡 윈도우의 크기를 적응적으로 증가시킨다.
이로써, 네트워크 소켓 내에 잔존하는 데이터 패킷을 기 설정된 간격 후의 혼잡 윈도우를 통해 처리하는 종래 기술과 비교할 때에 불필요한 지연이 제거된다.
본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 : 패킷 처리 장치
110 : 패킷 확인부
120 : 패킷 처리부

Claims (12)

  1. 패킷 전송 장치에 의해 수행하는 패킷 전송 방법으로서,
    전송 계층으로부터 네트워크 계층으로 전달되는 패킷의 전송 단위의 크기를 제한하기 위한 혼잡 윈도우의 설계 크기를 기 설정된 패킷 전송 규칙에 기초하여 계산하는 단계와,
    응용 계층과 상기 전송 계층 사이의 네트워크 소켓 내에 있는 데이터 패킷의 잔존 크기를 확인하는 단계와,
    상기 계산된 혼잡 윈도우의 설계 크기와 상기 데이터 패킷의 잔존 크기를 비교한 결과에 따라 선택적으로 상기 혼잡 윈도우의 설계 크기를 증가시키는 단계와,
    상기 네트워크 소켓 내의 데이터 패킷을 상기 네트워크 계층으로 전송하되, 상기 계산된 혼잡 윈도우의 설계 크기 또는 상기 증가시킨 혼잡 윈도우의 설계 크기에 대응하여 상기 전송 단위의 크기를 제한하는 단계를 포함하는
    패킷 전송 방법.
  2. 제 1 항에 있어서,
    상기 데이터 패킷의 잔존 크기가 상기 계산된 혼잡 윈도우의 설계 크기보다 큰 경우에, 상기 데이터 패킷의 잔존 크기 이상이 되도록 상기 혼잡 윈도우의 설계 크기를 증가시키는
    패킷 전송 방법.
  3. 삭제
  4. 제 2 항에 있어서,
    상기 데이터 패킷의 잔존 크기(R)가 상기 계산된 혼잡 윈도우의 설계 크기(CWk)보다 큰 경우에, 하기의 부등식
    Figure 112020040515247-pat00016

    (여기서, B는 네트워크 계층의 전송속도, RTT는 네트워크 계층의 지연시간, f(x)는 x에 대한 임의의 함수)
    중 어느 하나가 성립되면, 상기 혼잡 윈도우의 설계 크기를 증가시키는
    패킷 전송 방법.
  5. 제 1 항에 있어서,
    상기 기 설정된 패킷 전송 규칙에 기초하여 기 설정된 간격마다 상기 혼잡 윈도우의 설계 크기를 계산하되, N번째로 계산된 혼잡 윈도우의 설계 크기를 증가시킨 경우, 상기 기 설정된 패킷 전송 규칙에 기초하여 N+1번째로 상기 혼잡 윈도우의 설계 크기를 계산할 때에 상기 N번째로 계산된 혼잡 윈도우의 설계 크기 또는 상기 증가시킨 혼잡 윈도우의 설계 크기를 상기 기 설정된 패킷 전송 규칙에 반영하는
    패킷 전송 방법.
  6. 제 1 항, 제 2 항, 제 4 항 또는 제 5 항 중 어느 한 항의 패킷 전송 방법을 프로세서가 수행할 수 있도록 하는 컴퓨터 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
  7. 제 1 항, 제 2 항, 제 4 항 또는 제 5 항 중 어느 한 항의 패킷 전송 방법을 프로세서가 수행할 수 있도록 컴퓨터 판독 가능한 기록매체에 기록된 컴퓨터 프로그램.
  8. 응용 계층과 전송 계층 사이의 네트워크 소켓 내에 있는 데이터 패킷의 잔존 크기를 확인하는 패킷 확인부와,
    상기 네트워크 소켓 내의 데이터 패킷을 네트워크 계층으로 전송하는 패킷 처리부를 포함하고,
    상기 패킷 처리부는,
    상기 전송 계층으로부터 상기 네트워크 계층으로 전달되는 패킷의 전송 단위의 크기를 제한하기 위한 혼잡 윈도우의 설계 크기를 기 설정된 패킷 전송 규칙에 기초하여 계산하며,
    상기 계산된 혼잡 윈도우의 설계 크기와 상기 데이터 패킷의 잔존 크기를 비교한 결과에 따라 선택적으로 상기 혼잡 윈도우의 설계 크기를 증가시키고,
    상기 계산된 혼잡 윈도우의 설계 크기 또는 상기 증가시킨 혼잡 윈도우의 설계 크기에 대응하여 상기 전송 단위의 크기를 제한하는
    패킷 전송 장치.
  9. 제 8 항에 있어서,
    상기 패킷 처리부는, 상기 데이터 패킷의 잔존 크기가 상기 계산된 혼잡 윈도우의 설계 크기보다 큰 경우에, 상기 데이터 패킷의 잔존 크기 이상이 되도록 상기 혼잡 윈도우의 설계 크기를 증가시키는
    패킷 전송 장치.
  10. 삭제
  11. 제 9 항에 있어서,
    상기 패킷 처리부는, 상기 데이터 패킷의 잔존 크기(R)가 상기 계산된 혼잡 윈도우의 설계 크기(CWk)보다 큰 경우에, 하기의 부등식
    Figure 112020040515247-pat00017

    (여기서, B는 네트워크 계층의 전송속도, RTT는 네트워크 계층의 지연시간, f(x)는 x에 대한 임의의 함수)
    중 어느 하나가 성립되면, 상기 혼잡 윈도우의 설계 크기를 증가시키는
    패킷 전송 장치.
  12. 제 8 항에 있어서,
    상기 패킷 처리부는, 상기 기 설정된 패킷 전송 규칙에 기초하여 기 설정된 간격마다 상기 혼잡 윈도우의 설계 크기를 계산하되, N번째로 계산된 혼잡 윈도우의 설계 크기를 증가시킨 경우, 상기 기 설정된 패킷 전송 규칙에 기초하여 N+1번째로 상기 혼잡 윈도우의 설계 크기를 계산할 때에 상기 N번째로 계산된 혼잡 윈도우의 설계 크기 또는 상기 증가시킨 혼잡 윈도우의 설계 크기를 상기 기 설정된 패킷 전송 규칙에 반영하는
    패킷 전송 장치.
KR1020180162417A 2018-12-14 2018-12-14 패킷 전송 방법 및 장치 KR102141498B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180162417A KR102141498B1 (ko) 2018-12-14 2018-12-14 패킷 전송 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180162417A KR102141498B1 (ko) 2018-12-14 2018-12-14 패킷 전송 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200073814A KR20200073814A (ko) 2020-06-24
KR102141498B1 true KR102141498B1 (ko) 2020-08-05

Family

ID=71408068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180162417A KR102141498B1 (ko) 2018-12-14 2018-12-14 패킷 전송 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102141498B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102643682B1 (ko) * 2021-12-21 2024-03-05 울산과학기술원 미디어 스트리밍 처리 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015019232A (ja) * 2013-07-10 2015-01-29 キヤノン株式会社 通信装置、通信装置の制御方法およびプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102496060B1 (ko) * 2015-09-14 2023-02-07 삼성전자 주식회사 전자 장치 및 그의 전송 제어 프로토콜(transmission control protocol: TCP) 제어 방법
KR20180111479A (ko) 2017-03-30 2018-10-11 우리나무영농조합법인 미선나무 추출물을 유효성분으로 함유하는 항비만 기능성 조성물

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015019232A (ja) * 2013-07-10 2015-01-29 キヤノン株式会社 通信装置、通信装置の制御方法およびプログラム

Also Published As

Publication number Publication date
KR20200073814A (ko) 2020-06-24

Similar Documents

Publication Publication Date Title
EP3338396B1 (en) Device and method for establishing connection in load-balancing system
US8799504B2 (en) System and method of TCP tunneling
JP4156568B2 (ja) 通信システムの制御方法、通信制御装置、プログラム
US8576847B2 (en) Mechanisms for discovering path maximum transmission unit
CN109714268B (zh) 一种虚拟私有云的流量控制方法及相关装置
CN107342848A (zh) 一种自适应码流传输方法、装置及设备
US10298508B2 (en) Communication system, receiving-side apparatus and transmission-side apparatus
WO2017045501A1 (zh) 一种报文调度方法和装置、存储介质
CN104052676B (zh) 一种发送通路装置及发送通路的数据处理方法
CN115349121A (zh) 一种有状态业务的处理方法及装置
US10567194B2 (en) User station for a bus system and method for increasing the transmission capacity in a bus system
KR102141498B1 (ko) 패킷 전송 방법 및 장치
US10708816B2 (en) Communication apparatus, communication method, and non-transitory computer-readable storage medium for performing packetization processing that does not depend on a network interface
US7773620B2 (en) Method, system, and program for overrun identification
EP2648383A1 (en) Method and device for data transmission
US9667650B2 (en) Anti-replay checking with multiple sequence number spaces
US9876805B2 (en) Apparatus and method for transmitting and receiving messages
CN113259490B (zh) 基于udp传输协议的多级节点网络数据传输方法
US11425040B2 (en) Network switching device and method for performing marking using the same
KR102425919B1 (ko) 서비스 기능의 지연 시간 측정 시스템, 장치 및 방법
US10911983B2 (en) Packet load generation device and packet load generation method
CN115052049A (zh) 一种基于IPsec隧道的报文转发方法及系统
CN111865884B (zh) 一种报文处理方法、装置及设备
JP2006217235A (ja) 輻輳制御方法及び送信端末
CN109039900A (zh) 一种发送credit包的停止信号的方法和装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant