KR102376393B1 - Method and apparatus for transmission of large data - Google Patents

Method and apparatus for transmission of large data Download PDF

Info

Publication number
KR102376393B1
KR102376393B1 KR1020170112776A KR20170112776A KR102376393B1 KR 102376393 B1 KR102376393 B1 KR 102376393B1 KR 1020170112776 A KR1020170112776 A KR 1020170112776A KR 20170112776 A KR20170112776 A KR 20170112776A KR 102376393 B1 KR102376393 B1 KR 102376393B1
Authority
KR
South Korea
Prior art keywords
size
data
block
determined
partition
Prior art date
Application number
KR1020170112776A
Other languages
Korean (ko)
Other versions
KR20190026266A (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 KR1020170112776A priority Critical patent/KR102376393B1/en
Publication of KR20190026266A publication Critical patent/KR20190026266A/en
Application granted granted Critical
Publication of KR102376393B1 publication Critical patent/KR102376393B1/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]
    • H04L47/365Dynamic adaptation of the packet size
    • 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/17Interaction among intermediate nodes, e.g. hop by hop
    • 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
    • H04L67/327
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Abstract

대용량 데이터를 전송하기 위한 방법 및 장치가 개시된다. 송신 단말은 대용량 데이터를 전송함에 있어서, 대용량 데이터를 하나 이상의 블록들로 분할할 수 있고, 하나 이상의 블록들을 수신 단말로 전송할 수 있다. 분할 크기는 송신 단말 또는 수신 단말에 탑재된 분할 크기 결정 장치에 의해 결정될 수 있다. 분할 크기 결정 장치는 대용량 데이터의 크기 및 대용량 데이터의 전송에 관련된 파라미터에 기반하여 분할 크기를 결정할 수 있다. 대용량 데이터는 결정된 분할 크기의 하나 이상의 블록들로 분할될 수 있다.A method and apparatus for transmitting large amounts of data are disclosed. In transmitting the large-capacity data, the transmitting terminal may divide the large-capacity data into one or more blocks, and may transmit the one or more blocks to the receiving terminal. The division size may be determined by a division size determining device mounted on the transmitting terminal or the receiving terminal. The partition size determining apparatus may determine the partition size based on the size of the large data and a parameter related to the transmission of the large data. The large-capacity data may be divided into one or more blocks of the determined partition size.

Description

대용량 데이터 전송을 위한 방법 및 장치{METHOD AND APPARATUS FOR TRANSMISSION OF LARGE DATA}METHOD AND APPARATUS FOR TRANSMISSION OF LARGE DATA

아래의 실시예들은 통신 방법 및 장치에 관한 것으로, 보다 상세히는 대용량 데이터를 전송하기 위한 방법 및 장치가 개시된다.The following embodiments relate to a communication method and apparatus, and in more detail, a method and apparatus for transmitting large-capacity data are disclosed.

사물인터넷(Internet of Things; IoT) 기기(device)도 경우에 따라서 대용량 데이터를 송신 및/또는 수신할 수 있다.An Internet of Things (IoT) device may also transmit and/or receive large-capacity data in some cases.

예를 들면, IoT 기기가 펌웨어 업데이트를 진행하는 경우, IoT 기기가 센싱 데이터를 축적한 후 하나의 통합 메시지에 축적된 센싱 데이터를 담아서 전송하는 경우 및 IoT 기기가 이미지 등 멀티미디어 데이터를 전송하는 경우 등이 IoT 기기가 대용량 데이터를 전송하는 경우의 예들일 수 있다.For example, when the IoT device performs a firmware update, when the IoT device accumulates sensing data and transmits the accumulated sensing data in one integrated message, and when the IoT device transmits multimedia data such as an image, etc. This may be an example of a case in which this IoT device transmits a large amount of data.

일반적으로, IoT 기기는 비용 절감을 위해 저성능의 하드웨어를 사용할 수 있다. 저성능의 하드웨어를 사용하기 때문에 IoT 기기, IoT 기기의 하드웨어 및 IoT 기기에 탑재된 통신 기술은 대용량 데이터의 송신 및 수신에는 적합하지 않을 수 있다.In general, IoT devices may use low-performance hardware to reduce costs. Because low-performance hardware is used, the IoT device, the hardware of the IoT device, and the communication technology installed in the IoT device may not be suitable for transmitting and receiving large amounts of data.

또한, IoT 기기는 저성능의 하드웨어를 가지고 있기 때문에, IoT 기기의 데이터의 송신 및 수신의 속도는 낮을 수 있다. 이러한 낮은 속도 때문에 IoT 기기에 의한 IoT 서비스가 원활하게 수행되지 않을 수 있다.Also, since the IoT device has low-performance hardware, the data transmission and reception speed of the IoT device may be low. Due to such low speed, IoT services by IoT devices may not be performed smoothly.

한국 공개 특허 제10-2007-0080265호, 2007년 8월 10일 공개 (명칭: 다중 홉 릴레이 방식을 사용하는 무선 접속 통신시스템에서 기회적 패킷 스케줄링 장치 및 방법)Korean Patent Laid-Open Patent No. 10-2007-0080265, published on August 10, 2007 (Title: Apparatus and method for opportunistic packet scheduling in wireless access communication system using multi-hop relay method)

일 실시예는 최적의 블록 크기를 예측 및 활용하는 장치 및 방법을 제공할 수 있다.An embodiment may provide an apparatus and method for predicting and utilizing an optimal block size.

일 실시예는 펌웨어 업데이트 등에 사용되는 대용량 데이터의 송신 및 수신의 효율을 증가시키는 장치 및 방법을 제공할 수 있다.An embodiment may provide an apparatus and method for increasing the efficiency of transmission and reception of large-capacity data used for firmware update or the like.

일 실시예는 저성능의 하드웨어를 가지고도 안정적인 네트워크의 운용을 가능하게 하는 장치 및 방법을 제공할 수 있다.An embodiment may provide an apparatus and method for enabling stable network operation even with low-performance hardware.

일 측에 있어서, 데이터의 크기 및 상기 데이터의 전송에 관련된 파라미터 중 적어도 하나에 기반하여 분할 크기를 결정하는 단계; 및 상기 결정된 분할 크기에 따라서 상기 데이터를 하나 이상의 블록들로 분할하고, 상기 하나 이상의 블록들을 수신 단말로 전송하는 단계를 포함하는 통신 방법이 제공된다.In one aspect, the method comprising: determining a partition size based on at least one of a size of data and a parameter related to transmission of the data; and dividing the data into one or more blocks according to the determined partition size, and transmitting the one or more blocks to a receiving terminal.

상기 파라미터는 블록의 전송의 레이턴시, 데이터의 예상된 전송 시간 및 블록이 전송되는 네트워크의 쓰루풋 중 적어도 하나를 포함할 수 있다.The parameter may include at least one of a latency of transmission of the block, an expected transmission time of data, and a throughput of a network through which the block is transmitted.

상기 분할 크기는 파라미터 함수에 기반하여 결정될 수 있다.The partition size may be determined based on a parameter function.

상기 파라미터 함수의 출력 값은 상기 데이터가 블록 크기의 블록으로 분할될 경우의 상기 파라미터의 값일 수 있다.The output value of the parameter function may be a value of the parameter when the data is divided into blocks of block size.

상기 파라미터 함수의 입력 값은 홉 거리를 포함할 수 있다.The input value of the parameter function may include a hop distance.

상기 홉 거리는 상기 하나 이상의 블록들을 전송하는 송신 단말 및 상기 수신 단말 간의 거리일 수 있다.The hop distance may be a distance between a transmitting terminal transmitting the one or more blocks and the receiving terminal.

상기 파라미터 함수의 입력 값은 상기 하나 이상의 블록들이 전송되는 네트워크에서의 데이터 프레임의 전송 시간을 포함할 수 있다.The input value of the parameter function may include a transmission time of a data frame in a network in which the one or more blocks are transmitted.

상기 결정된 분할 크기는 복수의 후보 분할 크기들 중에서 선택될 수 있다.The determined partition size may be selected from among a plurality of candidate partition sizes.

상기 복수의 후보 분할 크기들의 각 후보 분할 크기는 파라미터 함수의 입력 값으로서 사용될 수 있다.Each candidate partition size of the plurality of candidate partition sizes may be used as an input value of a parameter function.

상기 결정된 분할 크기는 상기 파라미터 함수의 출력 값들 중 최소의 값에 대한 후보 분할 크기일 수 있다.The determined partition size may be a candidate partition size for a minimum value among output values of the parameter function.

상기 결정된 분할 크기의 블록은 하나 이상의 데이터 프레임들로서 전송될 수 있다.A block of the determined partition size may be transmitted as one or more data frames.

상기 파라미터 함수의 출력 값은 상기 하나 이상의 데이터 프레임들의 개수에 기반하여 결정될 수 있다.The output value of the parameter function may be determined based on the number of the one or more data frames.

상기 파라미터들은 복수일 수 있다.The parameters may be plural.

상기 분할 크기는 점수 함수에 기반하여 결정될 수 있다.The partition size may be determined based on a score function.

상기 점수 함수는 상기 복수의 파라미터들의 가중치가 부여된 합일 수 있다.The score function may be a weighted sum of the plurality of parameters.

상기 결정된 분할 크기는 상기 점수 함수의 출력 값을 최소화하는 크기인 통신 방법.The determined division size is a size that minimizes an output value of the score function.

상기 점수 함수는 복수의 후보 분할 크기들에 대해 복수의 출력 값들을 각각 생성할 수 있다.The score function may each generate a plurality of output values for a plurality of candidate partition sizes.

상기 결정된 분할 크기는 상기 복수의 출력 값들 중 최소의 값에 대한 후보 분할 크기일 수 있다.The determined division size may be a candidate division size for a minimum value among the plurality of output values.

상기 분할 크기는 어플리케이션 레이어 및 상기 어플리케이션 레이어 외의 다른 네트워크 레이어의 정보에 기반하여 결정될 수 있다.The division size may be determined based on information on an application layer and other network layers other than the application layer.

상기 분할 크기는 홉 거리, 최대 전송 유닛(Maximum Transmission Unit; MTU) 및 타임 슬롯 길이 중 적어도 하나를 사용하여 결정될 수 있다.The division size may be determined using at least one of a hop distance, a maximum transmission unit (MTU), and a time slot length.

상기 통신 방법은, 상기 결정된 분할 크기의 정보를 상기 수신 단말로 전송하는 단계를 더 포함할 수 있다.The communication method may further include transmitting information of the determined division size to the receiving terminal.

상기 데이터는 어플리케이션 레이어에서 상기 하나 이상의 블록들로서 상기 수신 단말로 전송될 수 있다.The data may be transmitted to the receiving terminal as the one or more blocks in the application layer.

상기 하나 이상의 블록들의 각 블록은 상기 어플리케이션 레이어의 하위의 레이어에서 하나 이상의 데이터 프레임들로서 상기 수신 단말로의 경로 상의 다음의 단말로 전송될 수 있다.Each block of the one or more blocks may be transmitted as one or more data frames in a lower layer of the application layer to the next terminal on the path to the receiving terminal.

상기 데이터는 상기 데이터를 전송하는 송신 단말의 하드웨어 제약에 따라 상기 하나 이상의 블록들로서 상기 수신 단말로 전송될 수 있다.The data may be transmitted to the receiving terminal as the one or more blocks according to a hardware constraint of the transmitting terminal transmitting the data.

상기 결정된 분할 크기는 블록의 크기에 따라서 제공되는 서비스 품질 또는 네트워크 성능에 기반하여 결정될 수 있다.The determined partition size may be determined based on service quality or network performance provided according to the size of the block.

다른 일 측에 있어서, 데이터의 크기 및 상기 데이터의 전송에 관련된 파라미터 중 적어도 하나에 기반하여 분할 크기를 결정하는 단계; 상기 결정된 분할 크기의 정보를 송신 단말로 전송하는 단계; 및 상기 송신 단말로부터 상기 결정된 분할 크기의 하나 이상의 블록들을 수신하는 단계를 포함하는 통신 방법이 제공된다.In another aspect, the method comprising: determining a partition size based on at least one of a size of data and a parameter related to transmission of the data; transmitting information of the determined division size to a transmitting terminal; and receiving one or more blocks of the determined partition size from the transmitting terminal.

상기 통신 방법은, 상기 데이터의 첫 번째의 블록을 수신하는 단계를 더 포함할 수 있다.The communication method may further include receiving a first block of data.

상기 결정하는 단계는 상기 첫 번째의 블록이 수신되면 수행될 수 있다.The determining may be performed when the first block is received.

상기 결정된 분할 크기의 하나 이상의 블록들은 상기 첫 번째의 블록의 이후의 블록들일 수 있다.One or more blocks of the determined partition size may be blocks after the first block.

상기 분할 크기의 정보는 상기 첫 번째의 블록의 전송에 대한 응답 메시지의 일부로서 전송될 수 있다.The division size information may be transmitted as a part of a response message for transmission of the first block.

또 다른 일 측에 있어서, 데이터의 전송에 관련된 파라미터를 획득하는 단계; 및 상기 파라미터 및 상기 데이터의 크기 중 적어도 하나에 기반하여 상기 데이터를 하나 이상의 블록들로 분할하기 위한 분할 크기를 결정하는 단계를 포함하는 분할 크기를 결정하는 방법이 제공된다.In another aspect, the method comprising: obtaining a parameter related to data transmission; and determining a partition size for partitioning the data into one or more blocks based on at least one of the parameter and the size of the data.

이 외에도, 본 발명을 구현하기 위한 다른 방법, 장치, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.In addition to this, another method, apparatus, system for implementing the present invention, and a computer-readable recording medium for recording a computer program for executing the method are further provided.

최적의 블록 크기를 예측 및 활용하는 장치 및 방법 이 제공된다.An apparatus and method for predicting and utilizing an optimal block size are provided.

펌웨어 업데이트 등에 사용되는 대용량 데이터의 송신 및 수신의 효율을 증가시키는 장치 및 방법 이 제공된다.An apparatus and method for increasing the efficiency of transmission and reception of large-capacity data used for firmware update and the like are provided.

저성능의 하드웨어를 가지고도 안정적인 네트워크의 운용을 가능하게 하는 장치 및 방법이 제공된다.An apparatus and method for enabling stable network operation even with low-performance hardware are provided.

도 1은 일 예에 따른 6LoWPAN 시스템을 도시한다.
도 2는 일 예에 따른 재전송 매커니즘을 갖춘 블록의 전송을 나타낸다.
도 3은 일 예에 따른 데이터의 분할 및 분할된 데이터가 전송되는 과정을 도시한다.
도 4는 일 예에 따른 IoT 기기의 네트워크 스택 및 데이터 흐름을 예시한다.
도 5a 및 도 5b는 일 예에 따른 MAC 레이어에서의 요청 메시지 및 응답 메시지의 멀티-홉들 전송을 나타낸다.
도 6은 일 실시예에 따른 메시지들의 왕복 시간이 재전송(retransmission) 타임아웃의 시간보다 더 크기 때문에 불필요한 재전송 메시지가 발생하는 경우를 나타낸다.
도 7은 일 실시예에 따른 분할 크기 결정 장치의 구조도이다.
도 8은 일 실시예에 따른 분할 크기를 결정하는 방법의 흐름도이다.
도 9는 일 예에 따른 파라미터 함수를 도시한다.
도 10은 일 예에 따른 점수 함수를 나타낸다.
도 11은 일 예에 따른 최적의 블록 크기 선택 함수를 나타낸다.
도 12은 일 실시예에 따른 송신 단말의 통신 방법의 흐름도이다.
도 13는 일 실시예에 따른 수신 단말의 통신 방법의 흐름도이다.
도 14은 일 실시예에 따른 단말의 구조도이다.
1 illustrates a 6LoWPAN system according to an example.
2 illustrates transmission of a block with a retransmission mechanism according to an example.
3 illustrates a process of dividing data and transmitting the divided data according to an example.
4 illustrates a network stack and data flow of an IoT device according to an example.
5A and 5B illustrate multi-hops transmission of a request message and a response message in a MAC layer according to an example.
6 illustrates a case in which an unnecessary retransmission message is generated because a round trip time of messages is greater than a time of a retransmission timeout according to an embodiment.
7 is a structural diagram of an apparatus for determining a division size according to an exemplary embodiment.
8 is a flowchart of a method for determining a partition size according to an embodiment.
9 shows a parametric function according to an example.
10 illustrates a score function according to an example.
11 illustrates an optimal block size selection function according to an example.
12 is a flowchart of a communication method of a transmitting terminal according to an embodiment.
13 is a flowchart of a communication method of a receiving terminal according to an embodiment.
14 is a structural diagram of a terminal according to an embodiment.

후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0010] Reference is made to the accompanying drawings, which illustrate specific embodiments by way of example. These embodiments are described in sufficient detail to enable those skilled in the art to practice the embodiments. It should be understood that various embodiments are different, but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein with respect to one embodiment may be implemented in other embodiments without departing from the spirit and scope of the invention. In addition, it should be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the embodiment. Accordingly, the detailed description set forth below is not intended to be taken in a limiting sense, and the scope of exemplary embodiments, if properly described, is limited only by the appended claims, along with all scope equivalents to those claimed.

도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.Like reference numerals in the drawings refer to the same or similar functions throughout the various aspects. The shapes and sizes of elements in the drawings may be exaggerated for clearer description.

실시예에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 실시예에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않으며, 추가적인 구성이 예시적 실시예들의 실시 또는 예시적 실시예들의 기술적 사상의 범위에 포함될 수 있음을 의미한다. 어떤 구성요소(component)가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들이 서로 간에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 상기의 2개의 구성요소들의 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.The terms used in the examples are for describing the examples and are not intended to limit the present invention. In embodiments, the singular also includes the plural unless the phrase specifically dictates otherwise. As used herein, "comprises" and/or "comprising" refers to the presence of one or more other components, steps, operations and/or elements mentioned. Or addition is not excluded, and it means that an additional configuration may be included in the practice of the exemplary embodiments or the scope of the technical spirit of the exemplary embodiments. When a component is referred to as being “connected” or “connected” to another component, the two components may be directly connected or connected to each other, but in the above 2 It should be understood that other components may exist in the middle of the components.

제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기의 구성요소들은 상기의 용어들에 의해 한정되어서는 안 된다. 상기의 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하여 지칭하기 위해서 사용된다. 예를 들어, 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as first and second may be used to describe various components, but the above components should not be limited by the above terms. The above terms are used to distinguish one component from another component. For example, without departing from the scope of rights, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component.

또한, 실시예들에 나타나는 구성요소들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성요소가 분리된 하드웨어나 하나의 소프트웨어 구성 단위로만 이루어짐을 의미하지 않는다. 즉, 각 구성요소는 설명의 편의상 각각의 구성요소로 나열된 것이다. 예를 들면, 구성요소들 중 적어도 두 개의 구성요소들이 하나의 구성요소로 합쳐질 수 있다. 또한, 하나의 구성요소가 복수의 구성요소들로 나뉠 수 있다. 이러한 각 구성요소의 통합된 실시예 및 분리된 실시예 또한 본질에서 벗어나지 않는 한 권리범위에 포함된다.In addition, components shown in the embodiments are shown independently to represent different characteristic functions, and it does not mean that each component is formed of separate hardware or only one software component unit. That is, each component is listed as each component for convenience of description. For example, at least two components among the components may be combined into one component. Also, one component may be divided into a plurality of components. Integrated embodiments and separate embodiments of each of these components are also included in the scope of rights without departing from the essence.

또한, 일부의 구성요소는 본질적인 기능을 수행하는 필수적인 구성요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성요소일 수 있다. 실시예들은 실시예의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 예를 들면, 단지 성능 향상을 위해 사용되는 구성요소와 같은, 선택적 구성요소가 제외된 구조 또한 권리 범위에 포함된다.In addition, some of the components are not essential components to perform essential functions, but may be optional components only to improve performance. Embodiments may be implemented including only components essential for implementing the essence of the embodiment, and for example, structures in which optional components are excluded, such as components used only to improve performance, are also included in the scope of rights.

이하에서는, 기술분야에서 통상의 지식을 가진 자가 실시예들을 용이하게 실시할 수 있도록 하기 위하여, 첨부된 도면을 참조하여 실시예들을 상세히 설명하기로 한다. 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings in order to enable those of ordinary skill in the art to easily implement the embodiments. In describing the embodiments, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present specification, the detailed description thereof will be omitted.

이하에서, 용어 "단말"과 용어 "노드"는 동일한 의미로 사용될 수 있으며, 서로 간에 대체될 수 있다.Hereinafter, the term “terminal” and the term “node” may be used with the same meaning, and may be substituted for each other.

이하에서, 용어 "확인(acknowledgement; ACK)" 및 용어 "응답(response)"은 동일한 의미로 사용될 수 있으며, 서로 간에 대체될 수 있다.Hereinafter, the term “acknowledgment (ACK)” and the term “response” may be used interchangeably and may be substituted for each other.

이하여서, 용어 "메시지"는 용어 "데이터"와 동일한 의미로 사용될 수 있으며, 서로 간에 대체될 수 있다.Hereinafter, the term “message” may be used synonymously with the term “data” and may be substituted for each other.

이하여서, 용어 "분할 크기"는 용어 "블록 크기"와 동일한 의미로 사용될 수 있으며, 서로 간에 대체될 수 있다.
Hereinafter, the term “partition size” may be used synonymously with the term “block size” and may be substituted for each other.

도 1은 일 예에 따른 6LoWPAN 시스템을 도시한다.1 illustrates a 6LoWPAN system according to an example.

도 1에서는, 저-전력 무선 개인 영역 네트워크 상의 IPv6(IPv6 over Low power Wireless Personal Area Networks; 6LoWPAN) 시스템이 도시되었다.In FIG. 1, an IPv6 over Low power Wireless Personal Area Networks (IPv6) system on a low-power wireless personal area network is shown.

사용자의 단말은 인터넷을 통해 6LoWPAN 내의 다른 단말과 통신할 수 있다.A user's terminal can communicate with other terminals in 6LoWPAN through the Internet.

6LoWPAN은 6LoWPAN/RPL 보더 라우터 솔루션(6LoWPAN/RPL Border Router Solution; 6LBR)을 포함할 수 있다. RPL은 "LLN들을 위한 IPv6 라우팅 프로토콜(IPv6 Routing Protocol for LLNs)"을 나타낼 수 있다. LLN은 "저전력의 손실이 잦은 네트워크(Low power and Lossy Network)"을 나타낼 수 있다.6LoWPAN may include a 6LoWPAN/RPL Border Router Solution (6LBR). RPL may represent "IPv6 Routing Protocol for LLNs". LLN may represent "a low power and lossy network".

6LoWPAN은 6LoWPAN 라우터(6LoWPAN Router; 6LR)를 포함할 수 있다.6LoWPAN may include a 6LoWPAN router (6LoWPAN Router; 6LR).

사용자의 단말은 6LBR을 통해 6LoWPAN 내의 다른 단말과 통신할 수 있다.
A user's terminal may communicate with other terminals in 6LoWPAN through 6LBR.

도 2는 일 예에 따른 재전송 매커니즘을 갖춘 블록의 전송을 나타낸다.2 illustrates transmission of a block with a retransmission mechanism according to an example.

IoT 기기는 대용량 데이터를 송신 및 수신하기 위해, 대용량 데이터를 작은 메시지들로 나눌 수 있고, 나뉘어진 데이터를 포함하는 메시지들을 전송할 수 있다. 말하자면, IoT 기기의 한정된 하드웨어 성능은 소프트웨어를 통해 극복될 수 있다.In order to transmit and receive large-capacity data, the IoT device may divide large-capacity data into small messages and transmit messages including the divided data. In other words, the limited hardware capabilities of IoT devices can be overcome through software.

예를 들면, 6LoWPAN은 IPv6 패킷을 송신 및 수신할 수 있는 WPAN일 수 있다.For example, 6LoWPAN may be a WPAN capable of transmitting and receiving IPv6 packets.

6LoWPAN이 처리할 수 있는 IPv6 패킷의 최대 크기는 1280 바이트로 정의될 수 있다. 따라서, 하나의 IPv6 패킷에 포함될 수 없는 대용량 데이터는 응용 레이어을 통해 분할 전송될 수 있다. 분할 전송된 대용량 데이터는 재조립될 수 있다.The maximum size of an IPv6 packet that 6LoWPAN can handle can be defined as 1280 bytes. Accordingly, large-capacity data that cannot be included in one IPv6 packet may be divided and transmitted through the application layer. The large amount of data transmitted by division can be reassembled.

도 2에서는 대용량 데이터가 송신 단말의 송신자 어플리케이션 하위 레이어(sender application lower layer)로부터 전송될 수 있다. 송신자 어플리케이션 하위 레이어는 대용량 데이터를 복수의 블록들로 분할할 수 있고, 분할된 복수의 블록들의 각 블록을 수신 단말의 수신자 어플리케이션 하위 레이어(receiver application lower layer)로 전송할 수 있다. 블록이 수신되면, 수신 단말의 수신자 어플리케이션 하위 레이어는 블록에 대한 블록 확인(block ack)을 송신 단말로 전송할 수 있다.In FIG. 2 , large-capacity data may be transmitted from a sender application lower layer of the transmitting terminal. The sender application lower layer may divide large-capacity data into a plurality of blocks, and each block of the plurality of divided blocks may be transmitted to a receiver application lower layer of the receiving terminal. When the block is received, the receiver application lower layer of the receiving terminal may transmit a block ack for the block to the transmitting terminal.

도 2에서, 블록 1의 첫 번째 전송은 실패하고, 송신 단말의 송신자 어플리케이션 하위 레이어가 기정의된 시간 동안 블록 1에 대한 블록 확인 1을 수신하지 못하면서 블록 1에 대한 재전송 타임아웃(retransmission timeout)이 발생할 수 있다. 재전송 타임아웃이 발생하면, 송신 단말의 송신자 어플리케이션 하위 레이어는 재전송 타임아웃이 발생한 블록 1을 수신 단말의 수신자 어플리케이션 하위 레이어로 재전송(retransmit)할 수 있다.
In FIG. 2, the first transmission of block 1 fails, and the sender application lower layer of the transmitting terminal does not receive block confirmation 1 for block 1 for a predefined time, and a retransmission timeout for block 1 is can occur When the retransmission timeout occurs, the sender application lower layer of the transmitting terminal may retransmit block 1 in which the retransmission timeout occurs to the receiver application lower layer of the receiving terminal.

도 3은 일 예에 따른 데이터의 분할 및 분할된 데이터가 전송되는 과정을 도시한다.3 illustrates a process of dividing data and transmitting the divided data according to an example.

어플리케이션 상위 레이어(application higher layer)의 데이터는 어플리케이션 하위 레이어(application lower layer)의 블록들로 분할될 수 있다.Data of an application higher layer may be divided into blocks of an application lower layer.

도 3에서, 분할된 블록들은 블록 1, 블록 2 및 블록 3으로 예시되었다.In FIG. 3 , the divided blocks are illustrated as block 1 , block 2 and block 3 .

어플리케이션 하위 레이어의 분할된 블록들은 인터넷 프로토콜 레이어(Internet Protocol layer; IP layer}의 IP 패킷들로서 전송될 수 있다.The divided blocks of the application lower layer may be transmitted as IP packets of an Internet Protocol layer (IP layer).

도 3에서, 분할된 블록들에 대응하는 IP 패킷들로서 IP 패킷 1, IP 패킷 2 및 IP 패킷 3이 도시되었다.In FIG. 3, IP packet 1, IP packet 2, and IP packet 3 are shown as IP packets corresponding to the divided blocks.

IP 레이어의 IP 패킷은 어댑테이션(adaptation layer)의 프래그먼트들로서 전송될 수 있다.An IP packet of the IP layer may be transmitted as fragments of an adaptation layer.

도 3에서, IP 패킷들에 대응하는 프래그먼트들로서 프래그먼트 1 내지 프래그먼트 9가 도시되었다. 예를 들면, IP 패킷 1은 프래그먼트 1, 프래그먼트 2 및 프래그먼트 3로 분할될 수 있다.In FIG. 3 , fragments 1 to 9 are shown as fragments corresponding to IP packets. For example, IP packet 1 may be divided into fragment 1, fragment 2, and fragment 3.

말하자면, 하나의 데이터는 레이어들에 따라서 분할될 수 있고, 분할된 데이터가 전송될 수 있다.
That is, one piece of data may be divided according to layers, and the divided data may be transmitted.

도 4는 일 예에 따른 IoT 기기의 네트워크 스택 및 데이터 흐름을 예시한다.4 illustrates a network stack and data flow of an IoT device according to an example.

도 4의 좌측에는 송신 단말의 네트워크 스택이 도시되었다. 도 4의 가운데에는 송신 단말 및 수신 단말의 사이의 게이트웨이의 네트워크 스택이 도시되었다. 도 4의 우측에는 수신 단말의 네트워크 스택이 도시되었다.A network stack of a transmitting terminal is shown on the left side of FIG. 4 . In the middle of FIG. 4, a network stack of a gateway between a transmitting terminal and a receiving terminal is shown. A network stack of the receiving terminal is shown on the right side of FIG. 4 .

송신 단말 및 수신 단말의 각각에서, 데이터의 송신 및 수신에 대한 네트워크 스택은, 씨오에이피(Constrained Application Protocol; CoAP), 유디피(User Datagram Protocol; UDP), 아이피(Internet Protocol; IP), 6LoWPAN, 802.15.4 맥(Media Access Protocol; Mac) 및 802.15.4 물리 레이어(physical layer; PHY)를 포함할 수 있다.In each of the transmitting terminal and the receiving terminal, the network stack for transmission and reception of data is: Constrained Application Protocol (CoAP), User Datagram Protocol (UDP), IP (Internet Protocol; IP), 6LoWPAN, 802.15.4 MAC (Media Access Protocol; Mac) and 802.15.4 physical layer (PHY) may be included.

게이트웨이에서, 데이터의 전달에 대한 네트워크 스택은, IP, 6LoWPAN, 802.15.4 MAC 및 802.15.4 PHY를 포함할 수 있다.At the gateway, the network stack for data delivery may include IP, 6LoWPAN, 802.15.4 MAC and 802.15.4 PHY.

CoAP는 블록형 전송을 지원할 수 있다. 블록형 전송은 어플리케이션 레이어에서의 1) 데이터의 분할, 2) 분할된 데이터의 전송 및 3) 분할된 데이터의 재조립(reassembly)을 의미할 수 있다. 재조립은 전송된 프래그먼트들을 IP 패킷으로 다시 조립하는 것일 수 있다.CoAP may support block-type transmission. Block-type transmission may mean 1) data segmentation, 2) segmented data transfer, and 3) segmented data reassembly in the application layer. The reassembly may be to reassemble the transmitted fragments into an IP packet.

CoAP는 "블록" 옵션을 제공할 수 있다. 블록 옵션에 의해, 하나의 메시지 또는 데이터는 다수의 블록들로 분할될 수 있다. 다수의 분할된 블록들은 일련의 연속적인 CoAP 요청 및 CoAP 응답을 통해 전송될 수 있다.CoAP may provide a “block” option. By the block option, one message or data can be divided into multiple blocks. Multiple partitioned blocks may be transmitted through a series of successive CoAP requests and CoAP responses.

블록 옵션을 사용함으로써, 송신 단말 또는 서버는 연결 설정(connection establishment) 또는 이전의 블록 전송을 위해서 다른 서버 측 메모리를 사용하지 않고 각각의 블록의 전송을 개별적으로 처리할 수 있다. 또한, CoAP는, 재전송 타임아웃에 따라서, 기정의된 시간 동안 블록의 전송에 대한 응답이 수신되지 않은 경우, 블록을 재전송하는 매커니즘을 제공할 수 있다.By using the block option, the transmitting terminal or server can individually process the transmission of each block without using other server-side memory for connection establishment or previous block transmission. In addition, the CoAP may provide a mechanism for retransmitting the block when a response to the transmission of the block is not received for a predefined time according to the retransmission timeout.

CoAP는 서버 및 클라이언트 간의 블록 크기의 협상의 매커니즘을 정의할 수 있다. 그러나, 블록 크기를 결정하는 방법은 CoAP에 의해 정의되지 않을 수 있다. 아래의 실시예들에서는 블록의 크기를 결정하는 방법이 설명된다. 예를 들면, 블록의 크기는 오류 발생률에 기반하여 결정될 수 있다.
CoAP can define a mechanism for negotiation of block size between a server and a client. However, the method of determining the block size may not be defined by CoAP. In the following embodiments, a method for determining the size of a block is described. For example, the size of the block may be determined based on an error rate.

도 5a 및 도 5b는 일 예에 따른 MAC 레이어에서의 요청 메시지 및 응답 메시지의 멀티-홉들 전송을 나타낸다.5A and 5B illustrate multi-hops transmission of a request message and a response message in a MAC layer according to an example.

도 5a 및 도 5b에서, 소스(source) 노드는 송신 단말을 나타낼 수 있다. 목적지 노드(destination)는 수신 단말을 나타낼 수 있다. 1 홉 노드 내지 N-1 홉 노드는 소스 노드 및 목적지 노드의 사이의 노드들일 수 있다.5A and 5B , a source node may represent a transmitting terminal. A destination node may indicate a receiving terminal. The 1 hop node to the N-1 hop node may be nodes between the source node and the destination node.

도 5a는 멀티-홉들 전송의 앞의 단계들을 나타낼 수 있다. 도 5b는 멀티-홉들 전송의 뒤의 단계들을 나타낼 수 있다. 말하자면, 도 5a의 동작들이 수행된 후, 이어서 도 5b의 동작들이 수행될 수 있다.5A may represent the preceding steps of multi-hops transmission. 5B may represent the subsequent steps of a multi-hops transmission. That is, after the operations of FIG. 5A are performed, the operations of FIG. 5B may then be performed.

요청 메시지의 데이터는 소스 노드로부터 목적지 노드로 전송될 수 있다. 요청 메시지에 대한 응답 메시지는 목적지 노드로부터 소스 노드로 전송될 수 있다. 요청 메시지에 대한 응답 메시지는 요청 메시지에 대한 확인 메시지일 수 있다.The data of the request message may be transmitted from the source node to the destination node. A response message to the request message may be transmitted from the destination node to the source node. The response message to the request message may be a confirmation message to the request message.

도 5a 및 도 5b에서, 요청 메시지는 n 개의 데이터 프레임들로서 전송될 수 있다. 요청 메시지에 대한 확인 메시지는 1 개의 데이터 프레임으로서 전송될 수 있다.5A and 5B, the request message may be transmitted as n data frames. The confirmation message for the request message may be transmitted as one data frame.

블록의 크기는 서비스 품질 및 네트워크 성능 등 여러 측면들에 대해 영향을 미칠 수 있다.The size of a block may affect several aspects such as quality of service and network performance.

예를 들면, 블록의 크기에 따라서 블록의 전송의 레이턴시(latency)가 다를 수 있다. 레이턴시는 송신 단말의 어플리케이션이 메지시를 전송할 때부터, 송신 단말이 어플리케이션이 전송된 메시지에 대한 응답을 수신할 때까지의 시간일 수 있다.For example, the latency of block transmission may be different according to the size of the block. The latency may be a time from when the application of the transmitting terminal transmits a message until the transmitting terminal receives a response to the message transmitted by the application.

6LoWPAN에서는, 홉의 IP 패킷의 전달(delivery) 시간이 클 수 있다. IP 패킷을 MAC 데이터 프레임에 담는 과정에서 발생하는 프래그멘테이션(fragmentation)이 전달 시간의 증가의 원인이 될 수 있다.In 6LoWPAN, the delivery time of the IP packet of the hop may be large. Fragmentation occurring in the process of putting an IP packet into a MAC data frame may cause an increase in the delivery time.

프래그멘테이션은 IPv6 패킷의 크기가 MAC 레이어에서 한 번에 전송될 수 있는 데이터의 크기보다 더 크기 때문에 발생할 수 있다. 6LoWPAN 스택은 802.15.4 MAC을 사용할 수 있다. 802.15.4 MAC에서는, 데이터 프레임의 최대 전송 유닛(Maximum Transmission Unit; MTU)을 127 바이트들로 정의할 수 있다. 반면, 6LoWPAN 스택이 지원하는 IPv6 패킷의 최대 크기는 1280 바이트들일 수 있다. 따라서, 127 바이트들보다 더 큰 IPv6 패킷을 송신하기 위해서는 IPv6 패킷이 여러 개의 데이터 프레임들로 분할되어야 할 수 있고, 데이터 프레임들이 전송되어야 할 수 있다. 또한, 수신된 데이터 프레임들의 조각들도 IPv6 패킷으로 재조립되어야 할 수 있다. 프래그멘테이션은 이러한 분할 전송 및 재조립의 메커니즘을 의미할 수 있다.Fragmentation may occur because the size of an IPv6 packet is larger than the size of data that can be transmitted at once in the MAC layer. 6LoWPAN stack can use 802.15.4 MAC. In 802.15.4 MAC, a Maximum Transmission Unit (MTU) of a data frame may be defined as 127 bytes. On the other hand, the maximum size of an IPv6 packet supported by the 6LoWPAN stack may be 1280 bytes. Therefore, in order to transmit an IPv6 packet larger than 127 bytes, the IPv6 packet may have to be divided into several data frames, and the data frames may have to be transmitted. Also, fragments of received data frames may have to be reassembled into IPv6 packets. Fragmentation may refer to such a mechanism of split transmission and reassembly.

프래그멘테이션에 의해 소요되는 시간은 아래의 수식 1과 같이 표현될 수 있다.The time required by fragmentation can be expressed as in Equation 1 below.

[수식 1][Formula 1]

F * t F * t

F는 데이터 프레임들의 개수일 수 있다. t는 하나의 데이터 프레임을 다음의 홉으로 전달하는데 소요되는 시간일 수 있다. 프래그멘테이션에 의해 소요되는 시간은 Ft의 곱일 수 있다. F may be the number of data frames. t may be a time required to transfer one data frame to the next hop. The time required by fragmentation may be a product of F and t .

데이터 프레임을 수신한 노드는 데이터 프레임을 송신한 노드에 대해서 데이터 프레임에 대한 확인 프레임을 전송할 수 있다.The node receiving the data frame may transmit an acknowledgment frame for the data frame to the node transmitting the data frame.

예를 들면, t는 하나의 데이터 프레임을 다음의 홉으로 전달하는데 소요되는 시간 및 상기의 데이터 프레임에 대한 응답 프레임을 다음의 홉으로부터 수신하는데 소요되는 시간을 포함할 수 있다.For example, t may include a time required to transmit one data frame to a next hop and a time required to receive a response frame to the data frame from the next hop.

이하에서, 데이터 프레임의 전송에 대한 설명은 상기의 데이터 프레임에 대한 응답 프레임을 수신하는 것을 포함할 수 있다. 말하자면, 인접한 2 개의 노드들 사이에서 데이터 프레임이 전송된 경우, 데이터 프레임을 수신한 수신 단말은 데이터 프레임에 대한 확인 프레임을 데이터 프레임을 전송한 전송 단말로 전송할 수 있다.Hereinafter, a description of transmission of the data frame may include receiving a response frame to the data frame. That is, when a data frame is transmitted between two adjacent nodes, the receiving terminal receiving the data frame may transmit an acknowledgment frame for the data frame to the transmitting terminal transmitting the data frame.

각 홉에 대해서, 프래그멘테이션의 과정이 반복될 수 있다. 따라서, H의 홉 거리에 위치한 노드에게 데이터를 전송하기 위해 소요되는 시간은 아래의 수식 2와 같이 표현될 수 있다.For each hop, the process of fragmentation may be repeated. Accordingly, the time required to transmit data to a node located at a hop distance of H can be expressed as Equation 2 below.

[수식 2][Formula 2]

H * t * F H * t * F

레이턴시는 데이터가 수신 단말로 전송되는 시간뿐만이 아니라 송신 단말이 요청 메시지에 대한 확인 메시지를 수신하는 시간을 포함할 수 있다. 확인 메시지가 하나의 데이터 프레임으로서 전달된다고 가정된 경우, 레이턴시는 아래의 수식 3과 같이 표현될 수 있다.The latency may include not only the time at which data is transmitted to the receiving terminal, but also the time at which the transmitting terminal receives a confirmation message for the request message. If it is assumed that the confirmation message is transmitted as one data frame, the latency may be expressed as in Equation 3 below.

[수식 3][Equation 3]

H * t * {F + 1} H * t * { F + 1}

응답 메시지가 다수의 데이터 프레임들로 전달되는 경우, 레이턴시는 아래의 수식 4와 같이 표현될 수 있다.When the response message is transmitted in a plurality of data frames, the latency may be expressed as in Equation 4 below.

[수식 4][Equation 4]

H * t * {F data + F ack} H * t * { F data + F ack }

F data는 데이터의 데이터 프레임들의 개수일 수 있다. F ack는 확인 메시지의 데이터 프레임들의 개수일 수 있다.
F data may be the number of data frames of data. F ack may be the number of data frames of the acknowledgment message.

도 6은 일 실시예에 따른 메시지들의 왕복 시간이 재전송(retransmission) 타임아웃의 시간보다 더 크기 때문에 불필요한 재전송 메시지가 발생하는 경우를 나타낸다.6 illustrates a case in which an unnecessary retransmission message is generated because a round trip time of messages is greater than a time of a retransmission timeout according to an embodiment.

도 6에서는, 소스 노드로부터 목적지 노드로 메시지가 전송되고, 전송된 메시지에 대한 응답 메시지는 기정의된 시간 내에 소스 노드로 전송되지 않아서 재전송 타임아웃이 발생한 것이 도시되었다.6 illustrates that a message is transmitted from a source node to a destination node, and a retransmission timeout occurs because a response message to the transmitted message is not transmitted to the source node within a predefined time.

재전송 타임아웃이 발생한 후, 소스 노드는 메시지를 목적지 노드로 재전송할 수 있다. 목적지 노드로부터 전송된 응답 메시지는 소스 노드로부터 메시지가 재전송된 후 소스 노드에 도착할 수 있다.After the retransmission timeout occurs, the source node may retransmit the message to the destination node. The response message transmitted from the destination node may arrive at the source node after the message is retransmitted from the source node.

레이턴시가 큰 경우 서비스 품질이 저하될 수 있다. 레이턴시가 큰 경우 서비스의 제공자는 빠른 응답이 요구되는 서비스를 제공하지 못할 수 있다. 또한, 레이턴시가 큰 경우 네트워크 트래픽도 의도하지 않게 증가할 수 있다. 도 6에서 도시된 것과 같이, 네트워크 트래픽의 증가는 응용 프로토콜의 재전송의 매커니즘에 기인할 수 있다.If the latency is large, the quality of service may be degraded. If the latency is large, the service provider may not be able to provide a service requiring a quick response. In addition, if the latency is large, network traffic may also increase unintentionally. As shown in FIG. 6 , the increase in network traffic may be due to a mechanism of retransmission of an application protocol.

메시지를 전송한 전송 단말은 전송된 요청 메시지에 대한 확인 메시지를 대기할 수 있다. 전송 단말은 기정의된 시간 (즉, 재전송 타임아웃의 시간) 이내로 확인 메시지를 수신하지 못한 경우 요청 메시지의 재전송을 시도할 수 있다. 말하자면, 재전송 타임아웃의 시간의 이내로 확인 메시지가 수신될 수 없을 정도로 메시지들의 왕복 시간이 큰 경우, 도 6에서 도시된 것과 같이 불필요한 재전송이 발생할 수 있다.The transmitting terminal that has transmitted the message may wait for a confirmation message for the transmitted request message. The transmitting terminal may attempt to retransmit the request message when it does not receive the confirmation message within a predefined time (ie, the time of the retransmission timeout). In other words, when the round trip time of messages is large enough that an acknowledgment message cannot be received within the time of the retransmission timeout, unnecessary retransmission may occur as shown in FIG. 6 .

또한, 블록 크기에 따라서 네트워크 트래픽의 발생량이 다를 수 있다. 대용량 데이터를 전송하기 위해 작은 블록 크기가 사용될 경우, 큰 블록 크기가 사용될 경우에 비해, 네트워크 트래픽이 더 증가할 수 있다. 블록 크기가 더 작을수록 더 많은 횟수의 메시지의 송신 및 수신이 요구되기 때문이다.Also, the amount of network traffic generated may vary according to the block size. When a small block size is used to transmit a large amount of data, network traffic may further increase compared to a case where a large block size is used. This is because a smaller block size requires a greater number of messages to be sent and received.

대용량 데이터의 크기가 D이고, 블록 크기가 b이고, 확인 메시지가 하나의 데이터 프레임에 적재될 수 있는 경우, 트래픽 발생량 Traffic(b, D)는 아래의 수식 5와 같이 표현될 수 있다.When the size of large data is D, the block size is b, and a confirmation message can be loaded into one data frame, the traffic generation amount Traffic ( b , D ) can be expressed as Equation 5 below.

[수식 5][Equation 5]

Traffic(b,D) = H * {F(b) + 1} * D / b Traffic ( b , D ) = H * { F ( b ) + 1} * D / b

Traffic(b,D)는 대용량 데이터의 크기가 D이고, 블록 크기가 b일 때의 트래픽 발생량일 수 있다. Traffic ( b , D ) may be the amount of traffic generated when the size of large data is D and the block size is b .

F(b)는 블록이 MAC 레이어에서 몇 개의 데이터 프레임들로 나뉘어서 전송되는 가를 나타낼 수 있다. 또는, F(b)는 블록을 구성하는 데이터 프레임들의 개수일 수 있다. F ( b ) may indicate how many data frames the block is divided into and transmitted in the MAC layer. Alternatively, F ( b ) may be the number of data frames constituting the block.

예를 들면, 1024 바이트들의 크기의 데이터가 512 바이트들의 블록 크기의 블록들로 전송되는 경우 트래픽 발생량은 아래의 수식 6과 같을 수 있다.For example, when data having a size of 1024 bytes is transmitted in blocks having a block size of 512 bytes, the amount of traffic generated may be as shown in Equation 6 below.

[수식 6][Equation 6]

Traffic(512,1024) = H * {5 + 1} * 1024 / 512 = 12H Traffic (512,1024) = H * {5 + 1} * 1024 / 512 = 12 H

블록 크기가 16 바이트들인 경우 트래픽 발생량은 아래의 수식 7과 같을 수 있다.When the block size is 16 bytes, the amount of traffic generated may be as in Equation 7 below.

[수식 7][Equation 7]

Traffic(16,1024) = H * {1 + 1} * 1024 / 16 = 128H
Traffic (16,1024) = H * {1 + 1} * 1024 / 16 = 128 H

도 7은 일 실시예에 따른 분할 크기 결정 장치의 구조도이다.7 is a structural diagram of an apparatus for determining a division size according to an exemplary embodiment.

분할 크기 결정 장치(700)는 블록 크기 계산기(710), 블록 전송 프로세서(720) 및 메시지 프로세서(730)를 포함할 수 있다.The partition size determination apparatus 700 may include a block size calculator 710 , a block transfer processor 720 , and a message processor 730 .

데이터를 어떤 크기의 블록으로 분할하는 가에 따라서, 블록의 전송으로 인한 네트워크 트래픽 및 블록의 전송의 레이턴시 등이 변할 수 있다. 말하자면, 네트워크 트래픽 및 레이턴시는 분할된 블록의 크기에 의해 영향을 받는 요소들일 수 있다.Network traffic due to block transmission and latency of block transmission, etc. may vary depending on the size of the data divided into blocks. In other words, network traffic and latency may be factors affected by the size of a partitioned block.

분할 크기 결정 장치(700)의 알고리즘은 블록의 분할 크기에 따라서 네트워크 트래픽 및 레이턴시 등과 같은 요소들에서 발생하는 차이를 계산할 수 있고, 요소들에게 가중치들을 각각 부여함으로써 최적의 분할 크기를 선택할 수 있다. 여기에서, 요소의 가중치는 요소의 중요도일 수 있다.The algorithm of the partition size determining apparatus 700 may calculate a difference occurring in factors such as network traffic and latency according to the partition size of a block, and may select an optimal partition size by assigning weights to each of the factors. Here, the weight of the element may be the importance of the element.

이러한 알고리즘은 어플리케이션 레이어에 위치한 블록 크기 계산기(710)에서 구현될 수 있다. 도 7은 분할 크기 결정 장치(700)의 어플리케이션 레이어 또는 어플리케이션 프로세서의 구성을 나타낼 수 있다.Such an algorithm may be implemented in the block size calculator 710 located in the application layer. FIG. 7 may show the configuration of an application layer or an application processor of the division size determining apparatus 700 .

데이터는 송신 단말의 어플리케이션 레이어에서 하나 이상의 블록들로서 수신 단말로 전송될 수 있다. 하나 이상의 블록들의 각 블록은 어플리케이션 레이어의 하위의 레이어에서 하나 이상의 데이터 프레임들로서 단말로 전송될 수 있다. 여기에서, 단말은 송신 단말로부터 수신 단말로의 경로 상의 다음의 단말일 수 있다.Data may be transmitted to the receiving terminal as one or more blocks in the application layer of the transmitting terminal. Each block of the one or more blocks may be transmitted to the terminal as one or more data frames in a lower layer of the application layer. Here, the terminal may be the next terminal on the path from the transmitting terminal to the receiving terminal.

데이터는 데이터를 전송하는 송신 단말의 하드웨어 제약 또는 데이터를 수신하는 수신 단말의 하드웨어 제약에 따라 하나 이상의 블록들로서 수신 단말로 전송될 수 있다. 결정된 분할 크기는 블록의 크기에 따라서 제공되는 서비스 품질 또는 네트워크 성능에 기반하여 결정될 수 있다.Data may be transmitted to the receiving terminal as one or more blocks according to the hardware constraint of the transmitting terminal transmitting the data or the hardware constraining of the receiving terminal receiving the data. The determined partition size may be determined based on the quality of service provided according to the size of the block or network performance.

분할 크기 결정 장치(700)가 최적의 분할 크기를 결정함에 따라서, IoT 기기와 같은 저성능의 장치가 대용량 데이터의 송신 및 수신을 효과적으로 처리하게 될 수 있다.As the partition size determining device 700 determines the optimal partition size, a low-performance device such as an IoT device may effectively process transmission and reception of large-capacity data.

분할 크기 결정 장치(700)는 최적의 분할 크기를 예측 및 활용할 수 있다. 예를 들면, 펌웨어 업데이트와 같이 동일한 데이터를 다수의 IoT 기기들에게 제공해야할 경우, 다수의 IoT 기기들에게 동일한 데이터가 전송되지만 기기로의 홉 거리에 따라서, 기기에 대한 최적의 블록 크기가 기기마다 서로 다를 수 있다.The partition size determining apparatus 700 may predict and utilize an optimal partition size. For example, when the same data needs to be provided to multiple IoT devices, such as a firmware update, the same data is transmitted to multiple IoT devices, but depending on the hop distance to the device, the optimal block size for the device is determined for each device. may be different.

최적의 분할 크기를 사용하는 것은 사용자 및 네트워크의 운영자에게 이익이 될 수 있다.Using an optimal partition size may benefit users and operators of the network.

사용자는 대용량 데이터를 IoT 기기로 빠르게 제공할 수 있고, IoT 기기로부터 대용량 데이터를 빠르게 제공받을 수 있다. 최적의 분할 크기는 펌웨어 업데이트 등 다양한 응용에 활용될 수 있다.A user can quickly provide large-capacity data to an IoT device, and can quickly receive large-capacity data from an IoT device. The optimal partition size can be utilized for various applications such as firmware update.

네트워크의 운영자는 저렴한 하드웨어를 안정적으로 운용할 수 있다. 최적의 분할 크기에 따라 단위 시간 당 트래픽이 감소될 수 있고, 트래픽의 감소에 따라 네트워크 부하가 감소될 수 있다.Network operators can reliably operate inexpensive hardware. Traffic per unit time may be reduced according to the optimal partition size, and network load may be reduced according to the decrease in traffic.

블록 크기 계산기(710), 블록 전송 프로세서(720) 및 메시지 프로세서(730)의 각각의 기능 또는 동작에 대해서는 아래에서 상세하게 설명된다.
Each function or operation of the block size calculator 710 , the block transfer processor 720 , and the message processor 730 is described in detail below.

도 8은 일 실시예에 따른 분할 크기를 결정하는 방법의 흐름도이다.8 is a flowchart of a method for determining a partition size according to an embodiment.

단계(810)에서, 블록 크기 계산기(710)는 데이터의 전송에 관련된 파라미터를 획득할 수 있다.In step 810 , the block size calculator 710 may obtain parameters related to data transmission.

파라미터는 분할 크기 결정 장치(700)가 탑재된 단말에 의해 계산되거나, 분할 크기 결정 장치(700)가 탑재된 단말로부터 데이터를 수신하는 단말 또는 분할 크기 결정 장치(700)가 탑재된 단말로 데이터를 전송하는 단말로부터 제공될 수 있다.The parameter is calculated by a terminal equipped with the division size determining device 700, or data to a terminal receiving data from a terminal equipped with the division size determining device 700 or a terminal equipped with the division size determining device 700. It may be provided from a transmitting terminal.

단계(820)에서, 블록 크기 계산기(710)는 데이터의 크기 및 파라미터 중 적어도 하나에 기반하여 분할 크기를 결정할 수 있다.In operation 820 , the block size calculator 710 may determine a partition size based on at least one of a data size and a parameter.

블록 크기 계산기(710)는 어플리케이션 레이어의 정보에 기반하여 분할 크기를 결정할 수 있다. 또한, 블록 크기 계산기(710)는 어플리케이션 레이어 및 어플리케이션 레이어 외의 다른 네트워크 레이어의 정보에 기반하여 분할 크기를 결정할 수 있다.The block size calculator 710 may determine the partition size based on information on the application layer. In addition, the block size calculator 710 may determine the division size based on the application layer and information of a network layer other than the application layer.

예를 들면, 블록 크기 계산기(710)는 1) 라우팅 프로토콜의 홉 거리, 2) IP 레이어 및 MAC 레이어의 MTU 및 3) 시분할 다중 접근(Time-Division Multiple Access; TDMA) MAC의 타임 슬롯 길이 중 적어도 하나를 사용하여 분할 크기를 결정할 수 있다.
For example, the block size calculator 710 calculates at least one of 1) a hop distance of a routing protocol, 2) an MTU of an IP layer and a MAC layer, and 3) a time slot length of a Time-Division Multiple Access (TDMA) MAC. You can use one to determine the partition size.

도 9는 일 예에 따른 파라미터 함수를 도시한다.9 shows a parametric function according to an example.

블록 크기 계산기(710)를 계산하기 위해 아래의 조건들이 충족되어야 할 수 있다.In order to calculate the block size calculator 710, the following conditions may have to be satisfied.

1) 파라미터가 선정되어야 할 수 있다. 파라미터는 분할 크기를 계산함에 있어서 고려되어야 할 대상일 수 있다. 블록 크기 계산기(710)는 파라미터 함수에 기반하여 분할 크기를 결정할 수 있다. 예를 들면, 파라미터는 블록의 전송의 레이턴시, 데이터의 예상된 전송 시간 및 블록이 전송되는 네트워크의 쓰루풋 중 적어도 하나를 포함할 수 있다.1) A parameter may have to be selected. The parameter may be a subject to be considered in calculating the partition size. The block size calculator 710 may determine the partition size based on the parameter function. For example, the parameter may include at least one of a latency of transmission of the block, an expected transmission time of data, and a throughput of a network through which the block is transmitted.

2) 파라미터에 대한 파라미터 함수 V가 준비되어야 할 수 있다. 파라미터 함수는 파라미터를 수치로 나타내는 함수일 수 있다. 파라미터는 하나 이상일 수 있다. 파라미터가 하나 이상일 경우, 하나 이상의 파라미터들의 각 파라미터에 대하여 파라미터 함수 V가 존재할 수 있다.2) The parameter function V for the parameter may need to be prepared. The parameter function may be a function representing a parameter numerically. The parameter may be one or more. When there is more than one parameter, there may be a parameter function V for each parameter of the one or more parameters.

파라미터 함수의 입력 값은 데이터의 크기 D 및 블록의 크기 b를 포함할 수 있다.The input value of the parameter function may include the size D of data and the size b of the block.

파라미터 함수의 입력 값은 홉 거리 H를 포함할 수 있다. 홉 거리 H는 하나 이상의 블록들을 전송하는 송신 단말 및 하나 이상의 블록들을 수신하는 수신 단말 간의 거리일 수 있다. 또는, 송신 단말이 6LoWPAN의 외부에 위치할 경우, 홉 거리 H는 루트 노드 및 수신 단말 간의 거리일 수 있다. 홉 거리 H는 하나 이상의 블록들이 6LoWPAN을 통해 전송될 때, 6LoWPAN 내에서의 출발 점 및 6LoWPAN 내에서의 도착 점 간의 거리일 수 있다.An input value of the parameter function may include a hop distance H. The hop distance H may be a distance between a transmitting terminal transmitting one or more blocks and a receiving terminal receiving one or more blocks. Alternatively, when the transmitting terminal is located outside the 6LoWPAN, the hop distance H may be a distance between the root node and the receiving terminal. The hop distance H may be a distance between a departure point in 6LoWPAN and an arrival point in 6LoWPAN when one or more blocks are transmitted over 6LoWPAN.

홉 거리 H는 802.15.4e MAC 피아이비(Personal area network Information Base; PIB)의 조인 우선순위(Join Priority)에 의해서도 획득될 수 있다.The hop distance H may also be obtained by join priority of the 802.15.4e MAC personal area network information base (PIB).

블록 크기 계산기(710)의 장치가 RPL 라우팅 프로토콜을 지원할 경우, 홉 거리 H는 RPL 라우팅 프로토콜의 RPL 랭크(rank)의 값에 의해서도 획득될 수 있다.If the device of the block size calculator 710 supports the RPL routing protocol, the hop distance H may also be obtained by the value of the RPL rank of the RPL routing protocol.

파라미터 함수의 입력 값은 하나 이상의 블록들이 전송되는 네트워크에서의 데이터 프레임의 전송 시간 t을 포함할 수 있다. 여기에서, 전송 시간 t는 블록을 1 홉의 거리만큼 전송하는데 소요되는 시간일 수 있다.The input value of the parameter function may include a transmission time t of a data frame in a network over which one or more blocks are transmitted. Here, the transmission time t may be a time required to transmit a block by a distance of 1 hop.

파리미터 함수의 입력 값은 데이터 프레임 개수 F(b)를 포함할 수 있다. 데이터 프레임 개수 F(b)는 블록이 MAC 레이어에서 몇 개의 데이터 프레임들로 나뉘어서 전송되는 가를 나타낼 수 있다. 블록 크기 계산기(710)에 의해 분할 크기가 결정되고, 데이터가 결정된 분할 크기의 하나 이상의 블록들로 분할되면, 결정된 분할 크기의 블록은 하나 이상의 데이터 프레임들로 분할될 수 있고, 하나 이상의 데이터 프레임들로서 전송될 수 있다. 말하자면, 분할 크기의 블록은 블록 하나의 전체로서 한 번에 전송되지 않을 수 있고, 하나 이상의 데이터 프레임들로서 전송될 수 있다.The input value of the parameter function may include the number of data frames F ( b ). The number of data frames F ( b ) may indicate how many data frames the block is divided into and transmitted in the MAC layer. When the partition size is determined by the block size calculator 710 and the data is divided into one or more blocks of the determined partition size, the block of the determined partition size may be partitioned into one or more data frames, as one or more data frames. can be transmitted. In other words, a block of divided size may not be transmitted as a whole of one block at a time, but may be transmitted as one or more data frames.

또는, 전술된 홉 거리 H, 전송 시간 t 및 데이터 프레임 개수 F(b)은 파라미터 함수 V의 출력 값 Value을 계산하기 위해 사용되는 설정 값들 또는 기정의된 값들일 수 있다. 설정 값들은 송신 단말의 특성, 수신 단말의 특성 및 네트워크 특성에 따라서 결정될 수 있다. 또한, 설정 값들은 송신 단말 또는 수신 단말에 의해 제공될 수 있다.Alternatively, the above-described hop distance H , transmission time t and the number of data frames F ( b ) may be set values or predefined values used to calculate the output value Value of the parameter function V . The setting values may be determined according to the characteristics of the transmitting terminal, the characteristics of the receiving terminal, and the network characteristics. In addition, the setting values may be provided by the transmitting terminal or the receiving terminal.

파라미터 함수 V의 출력 값 Value는 하나 이상의 데이터 프레임들의 개수에 기반하여 결정될 수 있다.The output value Value of the parameter function V may be determined based on the number of one or more data frames.

파라미터 함수 V의 출력 값 Value는 데이터가 블록 크기의 블록으로 분할될 경우의 파라미터의 값일 수 있다. 말하자면, 주어진 블록 크기가 특정된 블록 크기의 하나 이상의 블록들로 분할될 때, 파라미터가 어떤 값을 갖게 되는가는 파라미터 함수 V에 의해 계산될 수 있다.The output value Value of the parameter function V may be a parameter value when data is divided into blocks having a block size. In other words, when a given block size is divided into one or more blocks of the specified block size, what value the parameter will have can be calculated by the parameter function V .

예를 들면, 레이턴시가 파라미터로서 선정된 경우, 레이턴시 V Latency 에 대한 파라미터 함수 V는 아래의 수식 8과 같이 표현될 수 있다.For example, when latency is selected as a parameter, a parameter function V for latency V Latency may be expressed as in Equation 8 below.

[수식 8][Equation 8]

V Latency = H * t * {F(b) + 1}
V Latency = H * t * { F ( b ) + 1}

도 10은 일 예에 따른 점수 함수를 나타낸다.10 illustrates a score function according to an example.

파라미터는 복수일 수 있다. 블록 크기 계산기(710)는 복수의 파라미터들에 기반하여 분할 크기를 결정할 수 있다.The parameter may be plural. The block size calculator 710 may determine a partition size based on a plurality of parameters.

복수의 파라미터들이 분할 크기의 결정을 위해 고려될 경우, 어떤 파라미터는 다른 파라미터보다 더 중요할 수 있다. 예를 들어, 빠른 응답이 요구되는 서비스에 대해서는, 레이턴시가 다른 무엇보다도 중요하게 고려되어야 할 요소일 수 있다. 말하자면, 복수의 파라미터들의 가중치들을 서로 다르게 함으로써 복수의 파라미터들의 중요도들을 각각 설정할 수 있다. 가중치는 아래의 수식 9와 같이 표현될 수 있다.When a plurality of parameters are considered for determining the partition size, some parameters may be more important than others. For example, for a service requiring a fast response, latency may be a factor to be considered more important than anything else. That is, by making the weights of the plurality of parameters different from each other, the importance levels of the plurality of parameters may be respectively set. The weight can be expressed as in Equation 9 below.

[수식 9][Equation 9]

WW vv

블록 크기 계산기(710)는 점수 함수 S(b, D)에 기반하여 분할 크기를 결정할 수 있다.The block size calculator 710 may determine the partition size based on the score function S ( b , D ).

점수 함수 S(b, D)는 복수의 파라미터들의 가중치가 부여된 합(weighted-sum)일 수 있다. 점수 함수 S(b, D)의 입력 값은 데이터의 크기 D 및 블록의 크기 b를 포함할 수 있다. 점수 함수 S(b, D)의 입력 값은 점수 함수 S(b, D)를 구성하는 복수의 파라미터들의 각각의 입력 값이 될 수 있다.The score function S ( b , D ) may be a weighted-sum of a plurality of parameters. The input value of the score function S ( b , D ) may include the size D of the data and the size b of the block. An input value of the score function S ( b , D ) may be an input value of each of a plurality of parameters constituting the score function S ( b , D ).

점수 함수 S(b, D)는 아래의 수식 10과 같이 표현될 수 있다.The score function S ( b , D ) can be expressed as Equation 10 below.

[수식 10][Equation 10]

Figure 112017085808786-pat00001
Figure 112017085808786-pat00001

V j (b, D)는 복수의 파라미터들 중 j 번째 파라미터일 수 있다.

Figure 112017085808786-pat00002
j 번째 파라미터 V j (b, D)의 가중치일 수 있다. V j ( b , D ) may be a j -th parameter among the plurality of parameters.
Figure 112017085808786-pat00002
may be the weight of the j -th parameter V j ( b , D ).

예를 들면, 복수의 파라미터들이 레이턴시 및 네트워크 트래픽이면, 점수 함수 S(b, D)는 아래의 수식 11과 같이 표현될 수 있다.For example, if the plurality of parameters are latency and network traffic, the score function S ( b , D ) may be expressed as in Equation 11 below.

[수식 11][Equation 11]

S(b, D) = V Latency * W Latency + V Traffic * W Traffic S ( b , D ) = V Latency * W Latency + V Traffic * W Traffic

V Latency 는 레이턴시일 수 있다. W Latency 는 레이턴시의 가중치일 수 있다. V Traffic 는 네트워크 트래픽일 수 있다. W Traffic 는 네트워크 트래픽의 가중치일 수 있다.
V Latency may be latency. W Latency may be a weight of latency. V Traffic may be network traffic. W Traffic may be a weight of network traffic.

도 11은 일 예에 따른 최적의 블록 크기 선택 함수를 나타낸다.11 illustrates an optimal block size selection function according to an example.

수식 11의 점수 함수 S(b, D)에 따르면, 최적의 분할 크기는 레이턴시 및 네트워크 트래픽을 동시에 최소화하는 크기로 정의될 수 있다.According to the score function S ( b , D ) of Equation 11, the optimal partition size can be defined as a size that simultaneously minimizes latency and network traffic.

점수 함수 S(b, D)의 점수가 더 높을수록 더 적합한 분할 크기라고 설정된 경우, 점수 함수 S(b, D)의 출력 값을 가장 크게 하는 블록의 크기 b가 선택된 분할 크기가 될 수 있다. 말하자면, 최적 블록 크기 선택 함수는 점수 함수 S(b, D)의 출력 값을 가장 크게 하는 블록의 크기 b를 분할 크기로서 선택할 수 있다.If the higher score of the score function S ( b , D ) is set to be a more suitable partition size, the size b of the block that maximizes the output value of the score function S ( b , D ) may be the selected partition size. In other words, the optimal block size selection function can select the size b of the block that has the largest output value of the score function S ( b , D ) as the partition size.

반대로, 점수 함수 S(b, D)의 점수가 더 낮을수록 더 적합한 분할 크기라고 설정된 경우, 점수 함수 S(b, D)의 출력 값을 가장 작게 하는 블록의 크기 b가 선택된 분할 크기가 될 수 있다. 말하자면, 최적 블록 크기 선택 함수는 점수 함수 S(b, D)의 출력 값을 가장 작게 하는 블록의 크기 b를 분할 크기로서 선택할 수 있다.Conversely, if the lower score of the scoring function S ( b , D ) is set to be a more suitable partition size, then the size b of the block that has the smallest output value of the scoring function S ( b , D ) can be the selected partition size. there is. In other words, the optimal block size selection function can select the size b of the block that has the smallest output value of the score function S ( b , D ) as the partition size.

이하에서는, 점수 함수 S(b, D)의 점수가 더 낮을수록 더 적합한 분할 크기라고 가정된다. 말하자면, 블록 크기 계산기(710)에 의해 결정된 분할 크기는 점수 함수 S(b, D)의 출력 값을 최소화하는 크기일 수 있다.In the following, it is assumed that the lower the score of the score function S ( b , D ), the more suitable the partition size. In other words, the partition size determined by the block size calculator 710 may be a size that minimizes the output value of the score function S ( b , D ).

블록의 크기 b는 기정의된 값들로 제한될 수 있다. 블록의 크기 b는 후보 분할 크기들 중 하나일 수 있다. 예를 들면, 후보 분할 크기들은 16, 32, 64, 128, 256, 512 및 1024 바이트들일 수 있다. 또한, 후보 분할 크기들은 블록의 크기 b에 대한 도메인 B일 수 있다.The size b of the block may be limited to predefined values. The size b of the block may be one of the candidate partition sizes. For example, the candidate partition sizes may be 16, 32, 64, 128, 256, 512 and 1024 bytes. Also, the candidate partition sizes may be domain B with respect to the size b of the block.

도메인 B가 {16, 32, 64, 128, 256, 512, 1024 (바이트들)}일 때, 분할 크기로서 선택되는 최적 블록 크기(Optimal Block Size)는 아래의 수식 12와 같이 정의될 수 있다.When domain B is {16, 32, 64, 128, 256, 512, 1024 (bytes)}, the optimal block size selected as the partition size may be defined as in Equation 12 below.

[수식 12][Equation 12]

Figure 112017085808786-pat00003
Figure 112017085808786-pat00003

블록 크기 계산기(710)는 최적의 블록 크기 선택 함수를 사용하여 복수의 후보 분할 크기들 중 분할 크기를 선택할 수 있다. 점수 함수 S(b, D)의 출력 값을 최소화하는 후보 분할 크기가 결정된 분할 크기일 수 있다. 블록 크기 계산기(710)에 의해 점수 함수 S(b, D)는 복수의 후보 분할 크기들에 대해 복수의 출력 값들을 각각 생성할 수 있고, 결정된 분할 크기는 복수의 출력 값들 중 최소의 값에 대한 후보 분할 크기일 수 있다.The block size calculator 710 may select a partition size from among a plurality of candidate partition sizes using an optimal block size selection function. A candidate partition size that minimizes an output value of the score function S ( b , D ) may be a determined partition size. The score function S ( b , D ) by the block size calculator 710 may generate a plurality of output values for a plurality of candidate partition sizes, respectively, and the determined partition size corresponds to the smallest value among the plurality of output values. It may be a candidate partition size.

예를 들면, 전술된 수식 11에 따른 점수 함수 S(b, D)에 대하여, W Latency 의 값이 10이고, W Traffic 의 값이 1이고, D의 값이 4096이고, t의 값이 0.01이면, 각 블록 크기 b에 대한 점수 함수 S(b, D)는 아래의 표 1과 같다.For example, with respect to the score function S ( b , D ) according to Equation 11 above, if the value of W Latency is 10, the value of W Traffic is 1, the value of D is 4096, and the value of t is 0.01 , the score function S ( b , D ) for each block size b is shown in Table 1 below.

[표 1][Table 1]

Figure 112017085808786-pat00004
Figure 112017085808786-pat00004

표 1에 따르면, 점수 함수 S(b, D)의 출력 값들 중 최소의 값은 583.2이고, 이 때의 블록 크기는 512 바이트들이다. 블록 크기 계산기(710)는 복수의 후보 분할 크기들 중 점수 함수 S(b, D)의 출력 값을 최소화하는 512 바이트들을 분할 크기로서 선택할 수 있다. 블록 크기 계산기(710)는 512 바이트들의 값을 선택된 분할 크기로서 블록 전송 프로세서(720)에게 리턴할 수 있다.According to Table 1, the minimum value among the output values of the score function S ( b , D ) is 583.2, and the block size at this time is 512 bytes. The block size calculator 710 may select 512 bytes that minimize the output value of the score function S ( b , D ) from among the plurality of candidate partition sizes as the partition size. The block size calculator 710 may return a value of 512 bytes to the block transfer processor 720 as the selected partition size.

또한, 단일한 파라미터에 의해 분할 크기가 결정되는 경우, 복수의 후보 분할 크기들의 각 후보 분할 크기는 파라미터 함수 V의 입력 값으로서 사용될 수 있다. 결정된 분할 크기는 파라미터 함수 V의 출력 값들 중 최소의 값에 대한 후보 분할 크기일 수 있다.In addition, when the partition size is determined by a single parameter, each candidate partition size of a plurality of candidate partition sizes may be used as an input value of the parameter function V . The determined partition size may be a candidate partition size for a minimum value among output values of the parameter function V.

전술된 것과 같이, 블록 크기 계산기(710)는 파라미터 함수, 점수 함수 및 최적의 블록 크기 선택 함수를 사용하여 분할 크기를 선택할 수 있다.
As described above, the block size calculator 710 may select a partition size using a parametric function, a score function, and an optimal block size selection function.

도 12는 일 실시예에 따른 송신 단말의 통신 방법의 흐름도이다.12 is a flowchart of a communication method of a transmitting terminal according to an embodiment.

송신 단말은 데이터를 송신하는 장치일 수 있다. 분할 크기 결정 장치(700)는 송신 단말에 탑재될 수 있다.The transmitting terminal may be a device for transmitting data. The division size determining apparatus 700 may be mounted on a transmitting terminal.

본 실시예에서는, 송신 단말이 분할 크기를 결정하는 방식에 대하여 설명된다.In this embodiment, a method in which the transmitting terminal determines the division size will be described.

단계(1210)에서, 블록 크기 계산기(710)는 분할 크기를 결정할 수 있다.In step 1210 , the block size calculator 710 may determine a partition size.

블록 크기 계산기(710)는 1) 데이터의 크기 및 2) 데이터의 전송에 관련된 파라미터 중 적어도 하나에 기반하여 분할 크기를 결정할 수 있다.The block size calculator 710 may determine the partition size based on at least one of 1) a size of data and 2) a parameter related to data transmission.

송신 단말이 데이터를 송신하고자 할 때, 블록 전송 프로세서(720)는 블록 크기 계산기(710)를 호출할 수 있다. 호출에 의해, 블록 크기 계산기(710)는 첫 번째의 블록의 전송에 사용될 적합한 블록 크기를 계산할 수 있다. 블록 크기 계산기(710)는 결정된 분할 크기를 블록 전송 프로세서(720)에게 제공할 수 있다.When the transmitting terminal wants to transmit data, the block transmission processor 720 may call the block size calculator 710 . By call, block size calculator 710 may calculate an appropriate block size to be used for transmission of the first block. The block size calculator 710 may provide the determined partition size to the block transfer processor 720 .

단계(1220)에서, 블록 전송 프로세서(720)는 분할 크기 메시지를 생성할 수 있다. 분할 크기 메시지는 단계(1210)에서 결정된 분할 크기의 정보일 수 있다. 메시지 프로세서(730)는 분할 크기 메시지를 수신 단말로 전송할 수 있다.At step 1220, the block transfer processor 720 may generate a split size message. The partition size message may be information on the partition size determined in step 1210 . The message processor 730 may transmit the split size message to the receiving terminal.

단계(1230)에서, 블록 전송 프로세서(720)는 결정된 분할 크기에 따라서 데이터를 하나 이상의 블록들로 분할할 수 있고, 메시지 프로세서(730)는 하나 이상의 블록들을 수신 단말로 전송할 수 있다.In operation 1230, the block transmission processor 720 may divide the data into one or more blocks according to the determined partition size, and the message processor 730 may transmit the one or more blocks to the receiving terminal.

블록 전송 프로세서는 분할된 블록을 메시지 프로세서(730)로 전달할 수 있고, 메시지 프로세서(730)는 전달된 블록을 수신 단말로 전송할 수 있다.The block transmission processor may transmit the divided block to the message processor 730 , and the message processor 730 may transmit the transmitted block to the receiving terminal.

블록 전송 프로세서(720)는 하나 이상의 블록들을 하나 이상의 메시지들에 각각 담을 수 있다. 블록 전송 프로세서(720)는 메시지 프로세서(730)를 통해 하나 이상의 메시지들을 하나씩 전송할 수 있고, 전송된 메시지의 수신을 확인할 수 있다.The block transfer processor 720 may contain one or more blocks in one or more messages, respectively. The block transmission processor 720 may transmit one or more messages one by one through the message processor 730 , and may confirm reception of the transmitted message.

메시지의 전송 및 수신을 위해, 메시지 프로세서(730)는 메시지의 조립 및 메시지의 파싱을 수행할 수 있다.For sending and receiving messages, the message processor 730 may perform message assembly and message parsing.

송신 단말 및 수신 단말 간의 네트워크는 멀티 홉 네트워크일 수 있다.The network between the transmitting terminal and the receiving terminal may be a multi-hop network.

전술된 송신 단말에 의해 분할 크기가 결정되는 방식은, 송신 단말이 최적의 분할 크기를 계산하기 위해 요구되는 정보를 모두 확보한 경우에 유용할 수 있다.
The above-described method in which the division size is determined by the transmitting terminal may be useful when the transmitting terminal secures all information required to calculate the optimal division size.

도 13은 일 실시예에 따른 수신 단말의 통신 방법의 흐름도이다.13 is a flowchart of a communication method of a receiving terminal according to an embodiment.

수신 단말은 데이터를 수신하는 장치일 수 있다. 분할 크기 결정 장치(700)는 수신 단말에 탑재될 수 있다.The receiving terminal may be a device for receiving data. The division size determining apparatus 700 may be mounted on the receiving terminal.

본 실시예에서는, 수신 단말이 분할 크기를 결정하는 방식에 대하여 설명된다.In this embodiment, a method for the receiving terminal to determine the division size will be described.

예를 들면, 송신 단말은 6LoWPAN의 루트 노드일 수 있다. 송신 단말은 12 홉들의 거리에 있는 수신 단말에게 4096 바이트들의 펌웨어 업데이트 데이터를 전송할 수 있다. 우선, 송신 단말은 데이터를 임의의 크기 또는 기정의된 크기인 1024 바이트들의 블록들로 분할할 수 있다. 말하자면, 첫 번째의 블록은 1024 바이트들일 수 있다.For example, the transmitting terminal may be a root node of 6LoWPAN. The transmitting terminal may transmit 4096 bytes of firmware update data to the receiving terminal which is at a distance of 12 hops. First, the transmitting terminal may divide the data into blocks of 1024 bytes having an arbitrary size or a predefined size. In other words, the first block may be 1024 bytes.

단계(1310)에서, 블록 전송 프로세서(720)는 메시지 프로세서(730)를 통해 송신 단말로부터 데이터의 첫 번째의 블록을 수신할 수 있다.In operation 1310 , the block transmission processor 720 may receive a first block of data from the transmitting terminal through the message processor 730 .

메시지 프로세서(730)가 첫 번째의 블록을 수신함에 따라 블록 전송 프로세서(720)가 동작할 수 있다.As the message processor 730 receives the first block, the block transfer processor 720 may operate.

블록 전송 프로세서(720)는 데이터의 첫 번째의 블록을 수신했을 때 블록 크기 계산기(710)를 호출할 수 있다. 호출과 함께, 블록 전송 프로세서(720)는 데이터의 크기의 정보를 블록 크기 계산기(710)에게 제공할 수 있다.The block transfer processor 720 may call the block size calculator 710 when it receives the first block of data. With the call, the block transfer processor 720 may provide information on the size of the data to the block size calculator 710 .

호출을 통해, 블록 크기 계산기(710)는 이후의 블록의 전송부터 사용될 적합한 분할 크기를 계산할 수 있고, 블록 전송 프로세서(720)는 첫 번째의 블록의 이후의 블록들에 사용할 분할 크기를 결정할 수 있다.Through the call, the block size calculator 710 may calculate a suitable partition size to be used from the transmission of subsequent blocks, and the block transfer processor 720 may determine the partition size to use for subsequent blocks of the first block. .

블록 전송 프로세서(720)는 메시지 프로세서(730)를 통해 송신 단말로부터 데이터의 크기의 정보를 수신할 수 있다. 데이터의 크기의 정보는 첫 번째 블록과 함께 수신되거나, 첫 번째 블록이 수신되기 전에 수신되거나, 첫 번째 블록이 수신된 후에 수신될 수 있다.The block transmission processor 720 may receive information on the size of data from the transmitting terminal through the message processor 730 . The information on the size of data may be received together with the first block, received before the first block is received, or may be received after the first block is received.

블록 전송 프로세서(720)는 메시지 프로세서(730)를 통해 송신 단말로부터 파라미터의 정보를 수신할 수 있다. 분할 크기를 결정하기 위해 사용되는 파라미터 또는 파라미터의 일부는 송신 단말에게 알려진 정보일 수 있다. 이러한 경우, 송신 단말은 자신에게 알려진 파라미터의 정보를 수신 단말에게 제공할 수 있다.The block transmission processor 720 may receive parameter information from the transmitting terminal through the message processor 730 . A parameter or a part of the parameter used to determine the partition size may be information known to the transmitting terminal. In this case, the transmitting terminal may provide the information of the parameter known to the receiving terminal to the receiving terminal.

파라미터의 정보는 첫 번째의 블록과 함께 수신되거나, 첫 번째의 블록이 수신되기 전에 수신되거나, 첫 번째의 블록이 수신된 후에 수신될 수 있다.The parameter information may be received together with the first block, received before the first block is received, or may be received after the first block is received.

첫 번째의 블록이 수신되면, 아래의 분할 크기를 결정하는 단계(1320)가 수행될 수 있다.When the first block is received, the step 1320 of determining the partition size below may be performed.

단계(1320)에서, 블록 크기 계산기(710)는 분할 크기를 결정할 수 있다. 블록 크기 계산기(710)는 1) 데이터의 크기 및 2) 데이터의 전송에 관련된 파라미터 중 적어도 하나에 기반하여 분할 크기를 결정할 수 있다. 블록 크기 계산기(710)는 결정된 분할 크기를 블록 전송 프로세서(720)에게 제공할 수 있다.At step 1320 , the block size calculator 710 may determine a partition size. The block size calculator 710 may determine the partition size based on at least one of 1) a size of data and 2) a parameter related to data transmission. The block size calculator 710 may provide the determined partition size to the block transfer processor 720 .

단계(1330)에서, 블록 전송 프로세서(720)는 분할 크기 메시지를 생성할 수 있다. 분할 크기 메시지는 단계(1320)에서 결정된 분할 크기의 정보일 수 있다. 메시지 프로세서(730)는 분할 크기 메시지를 송신 단말로 전송할 수 있다.At step 1330, the block transfer processor 720 may generate a split size message. The partition size message may be information on the partition size determined in step 1320 . The message processor 730 may transmit the split size message to the transmitting terminal.

분할 크기 메시지는 첫 번째의 블록의 전송에 대한 수신 단말의 응답 메시지일 수 있다. 말하자면, 분할 크기의 정보는 첫 번째의 블록의 전송에 대한 응답 메시지의 일부로서 송신 단말로 전송될 수 있다.The split size message may be a response message of the receiving terminal to the transmission of the first block. In other words, information on the split size may be transmitted to the transmitting terminal as a part of a response message for transmission of the first block.

분할 크기의 정보가 송신 단말로 전송되면, 송신 단말은 데이터 중 첫 번째의 블록을 제외한 나머지를 결정된 분할 크기의 하나 이상의 블록들로 분할할 수 있다. 결정된 분할 크기의 하나 이상의 블록들은 첫 번째의 블록의 이후의 블록들일 수 있다.When information of the division size is transmitted to the transmitting terminal, the transmitting terminal may divide the remainder of the data except for the first block into one or more blocks of the determined division size. One or more blocks of the determined partition size may be blocks after the first block.

송신 단말이 응답 메시지를 수신하면, 송신 단말은 응답 메시지 내에 결정된 분할 크기의 정보가 존재하는지 여부를 확인할 수 있다. 결정된 분할 크기의 정보가 응답 메시지 내에 존재하면, 송신 단말은 데이터의 두 번째의 블록 및 그 이후의 블록에 대해서는 데이터를 결정된 분할 크기로 나눌 수 있다.When the transmitting terminal receives the response message, the transmitting terminal may check whether information of the determined division size exists in the response message. If information of the determined partition size is present in the response message, the transmitting terminal may divide the data into the determined partition size for the second block and subsequent blocks of data.

단계(1340)에서, 블록 전송 프로세서(720)는 메시지 프로세서(730)를 통해 송신 단말로부터 결정된 분할 크기의 하나 이상의 블록들을 수신할 수 있다. 블록 전송 프로세서(720)는 첫 번째의 블록 및 수신된 하나 이상의 블록들로부터 데이터를 조립할 수 있다.
In step 1340 , the block transmission processor 720 may receive one or more blocks of the determined division size from the transmitting terminal through the message processor 730 . The block transfer processor 720 may assemble data from the first block and one or more blocks received.

도 14은 일 실시예에 따른 단말의 구조도이다.14 is a structural diagram of a terminal according to an embodiment.

장치(1400)는 전술된 송신 단말 및/또는 수신 단말일 수 있다. 말하자면, 장치(1400)가 데이터를 전송하는 경우, 장치(1400)는 송신 단말로 간주될 수 있다. 장치(1400)가 데이터를 수신하는 경우, 장치(1400)는 수신 단말로 간주될 수 있다.The apparatus 1400 may be the above-described transmitting terminal and/or receiving terminal. In other words, when the device 1400 transmits data, the device 1400 may be regarded as a transmitting terminal. When the device 1400 receives data, the device 1400 may be regarded as a receiving terminal.

도 14에서 도시된 바와 같이, 장치(1400)는 처리부(1410), 통신부(1420), 메모리(1430), 저장소(1440) 및 버스(1490) 중 적어도 일부를 포함할 수 있다. 처리부(1410), 통신부(1420), 메모리(1430) 및 저장소(1440) 등과 같은 장치(1400)의 구성요소들은 버스(1490)를 통해 서로 간에 통신할 수 있다.14 , the device 1400 may include at least some of a processing unit 1410 , a communication unit 1420 , a memory 1430 , a storage 1440 , and a bus 1490 . Components of the device 1400 , such as the processing unit 1410 , the communication unit 1420 , the memory 1430 , and the storage 1440 , may communicate with each other through the bus 1490 .

처리부(1410)는 메모리(1430) 또는 저장소(1440)에 저장된 프로세싱(processing) 명령어(instruction)들을 실행하는 반도체 장치일 수 있다. 예를 들면, 처리부(1410)는 적어도 하나의 하드웨어 프로세서(processor)일 수 있다.The processing unit 1410 may be a semiconductor device that executes processing instructions stored in the memory 1430 or the storage 1440 . For example, the processor 1410 may be at least one hardware processor.

처리부(1410)는 장치(1400)의 동작을 위해 요구되는 작업을 처리할 수 있다. 처리부(1410)는 실시예들에서 설명된 처리부(1410)의 동작 또는 단계의 코드를 실행(execute)할 수 있다.The processing unit 1410 may process a job required for the operation of the device 1400 . The processing unit 1410 may execute codes of operations or steps of the processing unit 1410 described in the embodiments.

처리부(1410)는 전술된 정보의 생성, 저장 및 출력을 수행할 수 있으며, 기타 장치(1400)에서 이루어지는 단계의 동작을 수행할 수 있다.The processing unit 1410 may generate, store, and output the above-described information, and may perform operations of steps performed in the other device 1400 .

처리부(1410)는 블록 크기 계산기(710) 및 블록 전송 프로세서(720)를 포함할 수 있다.The processing unit 1410 may include a block size calculator 710 and a block transfer processor 720 .

통신부(1420)는 네트워크(1499)에 연결될 수 있다. 장치(1400)의 동작을 위해 요구되는 데이터 또는 정보를 수신할 수 있으며, 장치(1400)의 동작을 위해 요구되는 데이터 또는 정보를 전송할 수 있다. 통신부(1420)는 네트워크(1499)를 통해 다른 장치로 데이터를 전송할 수 있고, 다른 장치로부터 데이터를 수신할 수 있다. 예를 들면, 통신부(1420)는 네트워크 칩(chip) 또는 포트(port)일 수 있다.The communication unit 1420 may be connected to the network 1499 . Data or information required for the operation of the device 1400 may be received, and data or information required for the operation of the device 1400 may be transmitted. The communication unit 1420 may transmit data to another device through the network 1499 and may receive data from the other device. For example, the communication unit 1420 may be a network chip or a port.

통신부(1420)는 메시지 프로세서(730)를 포함할 수 있다.The communication unit 1420 may include a message processor 730 .

메모리(1430) 및 저장소(1440)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리(1430)는 롬(ROM)(1431) 및 램(RAM)(1432) 중 적어도 하나를 포함할 수 있다. 저장소(1440)는 램, 플레시(flash) 메모리 및 하드 디스크(hard disk) 등과 같은 내장형의 저장 매체를 포함할 수 있고, 메모리 카드 등과 같은 탈착 가능한 저장 매체를 포함할 수 있다.The memory 1430 and the storage 1440 may be various types of volatile or non-volatile storage media. For example, the memory 1430 may include at least one of a ROM 1431 and a RAM 1432 . The storage 1440 may include a built-in storage medium such as RAM, a flash memory, and a hard disk, and may include a removable storage medium such as a memory card.

장치(1400)의 기능 또는 동작은 처리부(1410)가 적어도 하나의 프로그램 모듈을 실행함에 따라 수행될 수 있다. 메모리(1430) 및/또는 저장소(1440)는 적어도 하나의 프로그램 모듈을 저장할 수 있다. 적어도 하나의 프로그램 모듈은 처리부(1410)에 의해 실행되도록 구성될 수 있다.A function or operation of the device 1400 may be performed when the processing unit 1410 executes at least one program module. The memory 1430 and/or the storage 1440 may store at least one program module. At least one program module may be configured to be executed by the processing unit 1410 .

전술된 분할 크기 결정 장치(700)의 블록 크기 계산기(710), 블록 전송 프로세서(720) 및 메시지 프로세서(730) 중 적어도 일부는 적어도 하나의 프로그램 모듈일 수 있다.At least some of the block size calculator 710 , the block transfer processor 720 , and the message processor 730 of the partition size determining apparatus 700 described above may be at least one program module.

프로그램 모듈들은 운영 체제(Operating System), 어플리케이션 모듈, 라이브러리(library) 및 기타 프로그램 모듈의 형태로 장치(1400)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 장치(1400)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 실시예에 따른 특정 동작 또는 특정 테스크(task)를 수행하거나 특정 추상 데이터 타입(abstract data type)을 실행하는 루틴(routine), 서브루틴(subroutine), 프로그램(program), 오브젝트(object), 컴포넌트(component) 및 데이터 구조(data structure) 등을 포괄할 수 있고, 이러한 것들에 제한되지는 않을 수 있다.The program modules may be included in the device 1400 in the form of an operating system, an application module, a library, and other program modules, and may be physically stored in various known storage devices. Also, at least some of these program modules may be stored in a remote storage device capable of communicating with the device 1400 . Meanwhile, these program modules include routines, subroutines, programs, and objects that perform a specific operation or a specific task or execute a specific abstract data type according to an embodiment. (object), component (component) and data structure (data structure) and the like may be encompassed, but may not be limited thereto.

장치(1400)는 사용자 인터페이스(User Interface; UI) 입력 디바이스(1450) 및 UI 출력 디바이스(1460)를 더 포함할 수 있다. UI 입력 디바이스(1450)는 장치(1400)의 동작을 위해 요구되는 사용자의 입력을 수신할 수 있다. UI 출력 디바이스(1460)는 장치(1400)의 동작에 따른 정보 또는 데이터를 출력할 수 있다.
The apparatus 1400 may further include a user interface (UI) input device 1450 and a UI output device 1460 . The UI input device 1450 may receive a user input required for the operation of the apparatus 1400 . The UI output device 1460 may output information or data according to the operation of the apparatus 1400 .

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), 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. A processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or apparatus, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in 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 the embodiment may be implemented in the form of program instructions 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, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes 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.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible from the above description by those skilled in the art. For example, the described techniques are performed in an order different from the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

700: 분할 크기 결정 장치
710: 블록 크기 계산기
720: 블록 전송 프로세서
730: 메시지 프로세서
700: division size determination device
710: block size calculator
720: block transfer processor
730: message processor

Claims (20)

송신 단말에서 수행되는 통신 방법에 있어서,
데이터의 크기 및 상기 데이터의 전송에 관련된 파라미터 중 적어도 하나에 기반하여 분할 크기를 결정하는 단계; 및
상기 결정된 분할 크기에 따라서 상기 데이터를 하나 이상의 블록들로 분할하고, 상기 하나 이상의 블록들을 수신 단말로 전송하는 단계를 포함하고,
상기 분할 크기는 점수 함수에 기반하여 결정되고,
상기 점수 함수는 복수의 후보 분할 크기들에 대해 복수의 출력 값들을 각각 생성하고,
상기 결정된 분할 크기는 상기 복수의 출력 값들 중 기설정된 조건에 상응하는 후보 분할 크기인 통신 방법.
In the communication method performed in the transmitting terminal,
determining a partition size based on at least one of a size of data and a parameter related to transmission of the data; and
dividing the data into one or more blocks according to the determined partition size, and transmitting the one or more blocks to a receiving terminal;
the split size is determined based on a score function,
the score function generates a plurality of output values for a plurality of candidate partition sizes, respectively;
The determined division size is a candidate division size corresponding to a preset condition among the plurality of output values.
제1항에 있어서,
상기 파라미터는 블록의 전송의 레이턴시, 데이터의 예상된 전송 시간 및 블록이 전송되는 네트워크의 쓰루풋 중 적어도 하나를 포함하는 통신 방법.
According to claim 1,
wherein the parameter comprises at least one of a latency of transmission of the block, an expected transmission time of data, and a throughput of a network over which the block is transmitted.
제1항에 있어서,
상기 분할 크기는 파라미터 함수에 기반하여 결정되고,
상기 파라미터 함수의 출력 값은 상기 데이터가 블록 크기의 블록으로 분할될 경우의 상기 파라미터의 값인 통신 방법.
According to claim 1,
The partition size is determined based on a parameter function,
The output value of the parameter function is the value of the parameter when the data is divided into blocks of block size.
제3항에 있어서,
상기 파라미터 함수의 입력 값은 홉 거리를 포함하고,
상기 홉 거리는 상기 하나 이상의 블록들을 전송하는 송신 단말 및 상기 수신 단말 간의 거리인 통신 방법.
4. The method of claim 3,
The input value of the parameter function includes a hop distance,
The hop distance is a distance between a transmitting terminal transmitting the one or more blocks and the receiving terminal.
제3항에 있어서,
상기 파라미터 함수의 입력 값은 상기 하나 이상의 블록들이 전송되는 네트워크에서의 데이터 프레임의 전송 시간을 포함하는 통신 방법.
4. The method of claim 3,
and the input value of the parameter function includes a transmission time of a data frame in a network over which the one or more blocks are transmitted.
제1항에 있어서,
상기 결정된 분할 크기는 복수의 후보 분할 크기들 중에서 선택되는 통신 방법.
According to claim 1,
The determined partition size is selected from among a plurality of candidate partition sizes.
제6항에 있어서,
상기 복수의 후보 분할 크기들의 각 후보 분할 크기는 파라미터 함수의 입력 값으로서 사용되고,
상기 결정된 분할 크기는 상기 파라미터 함수의 출력 값들 중 최소의 값에 대한 후보 분할 크기인 통신 방법.
7. The method of claim 6,
Each candidate partition size of the plurality of candidate partition sizes is used as an input value of a parameter function;
The determined partition size is a candidate partition size for a minimum value among output values of the parameter function.
제1항에 있어서,
상기 분할 크기는 파라미터 함수에 기반하여 결정되고,
상기 결정된 분할 크기의 블록은 하나 이상의 데이터 프레임들로서 전송되고,
상기 파라미터 함수의 출력 값은 상기 하나 이상의 데이터 프레임들의 개수에 기반하여 결정되는 통신 방법.
According to claim 1,
The partition size is determined based on a parameter function,
A block of the determined partition size is transmitted as one or more data frames,
and the output value of the parameter function is determined based on the number of the one or more data frames.
제1항에 있어서,
상기 파라미터들은 복수이고,
상기 점수 함수는 상기 복수의 파라미터들의 가중치가 부여된 합인 통신 방법.
According to claim 1,
The parameters are plural,
wherein the score function is a weighted sum of the plurality of parameters.
제1항에 있어서,
상기 결정된 분할 크기는 상기 점수 함수의 출력 값을 최소화하는 크기인 통신 방법.
According to claim 1,
The determined division size is a size that minimizes an output value of the score function.
삭제delete 제1항에 있어서,
상기 분할 크기는 어플리케이션 레이어 및 상기 어플리케이션 레이어 외의 다른 네트워크 레이어의 정보에 기반하여 결정되는 통신 방법.
According to claim 1,
The division size is determined based on information of an application layer and a network layer other than the application layer.
제12항에 있어서,
상기 분할 크기는 홉 거리, 최대 전송 유닛(Maximum Transmission Unit; MTU) 및 타임 슬롯 길이 중 적어도 하나를 사용하여 결정되는 통신 방법.
13. The method of claim 12,
The division size is determined using at least one of a hop distance, a maximum transmission unit (MTU), and a time slot length.
제1항에 있어서,
상기 결정된 분할 크기의 정보를 상기 수신 단말로 전송하는 단계
를 더 포함하는 통신 방법.
According to claim 1,
Transmitting information of the determined division size to the receiving terminal
A communication method further comprising a.
제1항에 있어서,
상기 데이터는 어플리케이션 레이어에서 상기 하나 이상의 블록들로서 상기 수신 단말로 전송되고,
상기 하나 이상의 블록들의 각 블록은 상기 어플리케이션 레이어의 하위의 레이어에서 하나 이상의 데이터 프레임들로서 상기 수신 단말로의 경로 상의 다음의 단말로 전송되는 통신 방법.
According to claim 1,
The data is transmitted to the receiving terminal as the one or more blocks in the application layer,
Each block of the one or more blocks is transmitted as one or more data frames in a lower layer of the application layer to a next terminal on a path to the receiving terminal.
제1항에 있어서,
상기 데이터는 상기 데이터를 전송하는 송신 단말의 하드웨어 제약에 따라 상기 하나 이상의 블록들로서 상기 수신 단말로 전송되고,
상기 결정된 분할 크기는 블록의 크기에 따라서 제공되는 서비스 품질 또는 네트워크 성능에 기반하여 결정되는 통신 방법.
According to claim 1,
The data is transmitted to the receiving terminal as the one or more blocks according to a hardware constraint of the transmitting terminal transmitting the data,
The determined partition size is determined based on the quality of service or network performance provided according to the size of the block.
수신 단말에서 수행되는 통신방법에 있어서,
데이터의 크기 및 상기 데이터의 전송에 관련된 파라미터 중 적어도 하나에 기반하여 분할 크기를 결정하는 단계;
상기 결정된 분할 크기의 정보를 송신 단말로 전송하는 단계; 및
상기 송신 단말로부터 상기 결정된 분할 크기의 하나 이상의 블록들을 수신하는 단계를 포함하고,
상기 분할 크기는 점수 함수에 기반하여 결정되고,
상기 점수 함수는 복수의 후보 분할 크기들에 대해 복수의 출력 값들을 각각 생성하고,
상기 결정된 분할 크기는 상기 복수의 출력 값들 중 기설정된 조건에 상응하는 후보 분할 크기인 통신 방법.
In the communication method performed in the receiving terminal,
determining a partition size based on at least one of a size of data and a parameter related to transmission of the data;
transmitting information of the determined division size to a transmitting terminal; and
Receiving one or more blocks of the determined partition size from the transmitting terminal,
the split size is determined based on a score function,
the score function generates a plurality of output values for a plurality of candidate partition sizes, respectively;
The determined division size is a candidate division size corresponding to a preset condition among the plurality of output values.
제17항에 있어서,
상기 데이터의 첫 번째의 블록을 수신하는 단계
를 더 포함하고,
상기 결정하는 단계는 상기 첫 번째의 블록이 수신되면 수행되고,
상기 결정된 분할 크기의 하나 이상의 블록들은 상기 첫 번째의 블록의 이후의 블록들인 통신 방법.
18. The method of claim 17,
receiving the first block of data
further comprising,
The determining step is performed when the first block is received,
The one or more blocks of the determined partition size are blocks after the first block.
제18항에 있어서,
상기 분할 크기의 정보는 상기 첫 번째의 블록의 전송에 대한 응답 메시지의 일부로서 전송되는 통신 방법.
19. The method of claim 18,
The information of the division size is transmitted as a part of a response message to the transmission of the first block.
통신 단말에서 수행되는 분할 크기를 결정하는 방법에 있어서,
데이터의 전송에 관련된 파라미터를 획득하는 단계; 및
상기 파라미터 및 상기 데이터의 크기 중 적어도 하나에 기반하여 상기 데이터를 하나 이상의 블록들로 분할하기 위한 분할 크기를 결정하는 단계를 포함하고,
상기 분할 크기는 점수 함수에 기반하여 결정되고,
상기 점수 함수는 복수의 후보 분할 크기들에 대해 복수의 출력 값들을 각각 생성하고,
상기 결정된 분할 크기는 상기 복수의 출력 값들 중 기설정된 조건에 상응하는 후보 분할 크기인 분할 크기를 결정하는 방법.
A method for determining a division size performed in a communication terminal, the method comprising:
obtaining a parameter related to transmission of data; and
determining a partition size for partitioning the data into one or more blocks based on at least one of the parameter and the size of the data;
the split size is determined based on a score function,
the score function generates a plurality of output values for a plurality of candidate partition sizes, respectively;
The method of determining a division size, wherein the determined division size is a candidate division size corresponding to a preset condition among the plurality of output values.
KR1020170112776A 2017-09-04 2017-09-04 Method and apparatus for transmission of large data KR102376393B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170112776A KR102376393B1 (en) 2017-09-04 2017-09-04 Method and apparatus for transmission of large data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170112776A KR102376393B1 (en) 2017-09-04 2017-09-04 Method and apparatus for transmission of large data

Publications (2)

Publication Number Publication Date
KR20190026266A KR20190026266A (en) 2019-03-13
KR102376393B1 true KR102376393B1 (en) 2022-03-21

Family

ID=65761980

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170112776A KR102376393B1 (en) 2017-09-04 2017-09-04 Method and apparatus for transmission of large data

Country Status (1)

Country Link
KR (1) KR102376393B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102348943B1 (en) * 2020-02-11 2022-01-11 한국조선해양 주식회사 Server for interacting with digial welding machine including network card for welding machine

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179749A (en) * 2013-03-14 2014-09-25 Nec Corp Communication system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070080265A (en) 2006-02-07 2007-08-10 삼성전자주식회사 Apparatus and method for opportunistic packet scheduling in a multi-hop relay wireless access communication system
KR101226012B1 (en) * 2011-05-31 2013-01-24 삼성중공업 주식회사 System and method for transmiting/receiving data in satellite communication environments
KR20130093745A (en) * 2011-12-27 2013-08-23 연세대학교 산학협력단 System of delay tolerant network using the optimum number of fragment packet and the transmission method
KR101359822B1 (en) * 2012-02-03 2014-02-10 충북대학교 산학협력단 Data Compression and Transmission Scheme in Wireless Multimedia Sensor Networks
KR101738247B1 (en) * 2015-07-28 2017-05-29 백상은 Home gateway and method for processing big data in home gateway

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179749A (en) * 2013-03-14 2014-09-25 Nec Corp Communication system

Also Published As

Publication number Publication date
KR20190026266A (en) 2019-03-13

Similar Documents

Publication Publication Date Title
EP3100420B1 (en) Buffer sizing for multi-hop networks
US9276832B2 (en) Buffer sizing for multi-hop networks
EP3278514B1 (en) Data transmission
CN108881008B (en) Data transmission method, device and system
CA3010308C (en) Maximizing quality of service for qos adaptive video streaming via dynamic application-layer throughput rate shaping
EP2959645B1 (en) Dynamic optimization of tcp connections
KR101961049B1 (en) Efficient centralized resource and schedule management in time slotted channel hopping networks
US10498868B2 (en) Multipath transport communications
JP2020502948A (en) Packet transmission system and method
US20130311614A1 (en) Method for retrieving content and wireless communication device for performing same
US20160112502A1 (en) Distributed computing based on deep packet inspection by network devices along network path to computing device
US8787157B2 (en) Multi-streaming multi-homing delay tolerant network protocol
US11937123B2 (en) Systems and methods for congestion control on mobile edge networks
US9356989B2 (en) Learning values of transmission control protocol (TCP) options
Kikuchi et al. Mobile edge computing based VM migration for QoS improvement
US9548921B2 (en) Compression of routing information exchanges
US10432298B2 (en) Method and apparatus for dynamic load balancing of communications channels for controlling traffic load in a communications system
KR102376393B1 (en) Method and apparatus for transmission of large data
US11895531B2 (en) Method and device for regulating flow of data transmission in a wireless network
Utsumi et al. A new explicit congestion notification scheme for satellite IP networks
Huang et al. Network layer support for gigabit tcp flows in wireless mesh networks
Casoni et al. A congestion control middleware layer with dynamic bandwidth management for satellite communications
US20210092065A1 (en) Multihop network routing
US11425040B2 (en) Network switching device and method for performing marking using the same
JP2012134907A (en) Tcp transfer apparatus and program thereof

Legal Events

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