KR20190090118A - 이진데이터 압축에 따른 tcp/ip패킷 데이터 압축 방법 및 그 장치 - Google Patents

이진데이터 압축에 따른 tcp/ip패킷 데이터 압축 방법 및 그 장치 Download PDF

Info

Publication number
KR20190090118A
KR20190090118A KR1020180008529A KR20180008529A KR20190090118A KR 20190090118 A KR20190090118 A KR 20190090118A KR 1020180008529 A KR1020180008529 A KR 1020180008529A KR 20180008529 A KR20180008529 A KR 20180008529A KR 20190090118 A KR20190090118 A KR 20190090118A
Authority
KR
South Korea
Prior art keywords
bits
bit
compression
data
compressed
Prior art date
Application number
KR1020180008529A
Other languages
English (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 KR1020180008529A priority Critical patent/KR20190090118A/ko
Publication of KR20190090118A publication Critical patent/KR20190090118A/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

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

Abstract

임의의 이진데이터의 최상위 비트 앞에 이진수 2비트 "10"을 최초로 1회만 추가한뒤,
압축 연산을 연속적으로 시행해나가는데,
규칙 1: "10" 또는 "11"으로 시작할 경우, 최상위 "1"을 제거하고 나머지비트를 비트반전(반대비트로 반전하는 방식) 하여 1비트 압축을 진행한다.
규칙 2 : 한편 "0"으로 시작할 경우에는, 더이상의 압축은 불가하나, 최상위의 "0"을 제거하여 1비트를 마지막으로 추가압축할수 있다.
예를들어, 임의의 이진수 "0111010110" 이 있다면,
최상위에 "10"을 추가하여,
"100111010110" 로 만든뒤, 압축연산을 시행하면,
11000101001
0111010110
111010110 으로, 압축되는데 최초 2비트의 "10"을 추가하였고, 3비트가 압축되어 이득은 1비트가 발생한다.
이와 같은 현상을 일반화 시키면, 임의의 이진수에 있어서
상기 연산을 적용하면, 최소 1비트이상의 압축의 이득이 발생한다.

Description

이진데이터 압축에 따른 TCP/IP패킷 데이터 압축 방법 및 그 장치{TCP/IP Packet compression method and appratus based on binary compression method}
네트워크, 데이터압축
네트워크, 데이터압축
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
발명을 실시하기 위한 구체적인 내용에 상술
임의의 이진데이터의 최상위 비트 앞에 이진수 2비트 "10"을 최초로 1회만 추가한뒤,
압축 연산을 연속적으로 시행해나가는데,
규칙 1: "10" 또는 "11"으로 시작할 경우, 최상위 "1"을 제거하고 나머지비트를 비트반전(반대비트로 반전하는 방식) 하여 1비트 압축을 진행한다.
규칙 2 : 한편 "0"으로 시작할 경우에는, 더이상의 압축은 불가하나, 최상위의 "0"을 제거하여 1비트를 마지막으로 추가압축할수 있다.
예를들어, 임의의 이진수 "0111010110" 이 있다면,
최상위에 "10"을 추가하여,
"100111010110" 로 만든뒤, 압축연산을 시행하면,
11000101001
0111010110
111010110 으로, 압축되는데 최초 2비트의 "10"을 추가하였고, 3비트가 압축되어 이득은 1비트가 발생한다.
이와 같은 현상을 일반화 시키면, 임의의 이진수에 있어서
상기 연산을 적용하면, 최소 1비트이상의 압축의 이득이 발생한다.
예를들어, 아래와 같은 40비트의 데이터에 대하여
1010010111111001010101111100111110100100
최상위의 "10"을 추가하여 42비트로 한뒤, 상기 압축연산과정을 반복하면,
101010010111111001010101111100111110100100
아래와 같은 과정을 거쳐 7비트가 감소하게 된다.
10101101101111010010000010010011000001001
1010010010000101101111101101100111110110
101101101111010010000010010011000001001
10010010000101101111101101100111110110
1101101111010010000010010011000001001
010010000101101111101101100111110110
10010000101101111101101100111110110
이제 이와 같은 일반적인 현상을 이용하여, 고정비트열 단위로 끊어서 압축하여 동일한 고정비트열로 압축하는 방법을 설명하고자한다.
예를들어, 80 비트의 이진데이터가 하나의 데이터 패킷 내에 있을때
상기 압축연산을 시행하면, 압축결과 1비트 이상 압축되므로, 아래와 같이 79 비트 이하로 압축이 되는데, 8비트 단위로 만들어야 하므로, padding 이 최하위 비트쪽으로 들어가게 된다.
예를들어, 압축결과가 77비트였고, 마지막 최하위 부분이 ....1010111 으로 끝났다면, 8의 배수비트중에 최소비트인 80비트를 만들기 위해,3 비트가 필요한데, 압축결과비트의 마지막 비트 "1"의 반대비트인 "0"을 1비트 추가하여, ....1010111000 으로 패딩하여, 80비트로 만드는 방식이다.
표2를 보면 원본데이터의 압축연산결과 1비트 이상 반드시 압축되어 다양한 경우의 수가 나오고 그때에 따른 데이터 압축결과의 비트수 및 압축결과를 8의 배수의 비트수로 맞추기 위한 padding(압축결과의 최하위 비트의 반대비트로써 동일하게 최소한으로 채워넣음) 비트수, 그리고 원본 data비트수를 고려하여, 추가로 전송이 가능한 비트수를 표현하고, 추가전송비트수 까지 고려한 최종적으로 1개 패킷의 data비트의 길이를 표현하였다.
원본 data
(비트수)
패킷헤더에 표현사항 n (추가전송비트갯수= 8 * n)
(비트수)
data 압축결과
(비트수)
패딩(압축데이터의 최하위 비트와 반대비트로서 8의 배수 비트 길이를 갖도록 하는 최소비트길이로 padding) 추가가능전송비트 최종 데이터 처리 결과비트수
80 0 79 1 0 80
80 0 78 2 0 80
80 0 77 3 0 80
80 0 76 4 0 80
80 0 75 5 0 80
80 0 74 6 0 80
80 0 73 7 0 80
80 0 72 8 0 80
80 1 71 1 8 80
80 1 70 2 8 80
80 1 69 3 8 80
80 1 68 4 8 80
80 1 67 5 8 80
80 1 66 6 8 80
80 1 65 7 8 80
80 1 64 8 8 80
80 2 63 1 16 80
80 2 62 2 16 80
80 2 61 3 16 80
80 2 60 4 16 80
80 2 59 5 16 80
80 2 58 6 16 80
80 2 57 7 16 80
80 2 56 8 16 80
….. ….. ….. ….. ….. …..
표2와 같이, 원본 data비트수와 최종 data 비트수는 동일하도록 맞추어 줄수 있게 된다.
표2에서 보다시피, 압축데이터 비트수가 1비트~ 8비트까지는 동일한 패킷에서 추가전송가능한 데이터가 없으며,
9비트 부터 16비트까지는, 압축데이터를 8의 배수 비트로 만들기 위한 패딩을 추가하더라도 72비트가 되므로, 80비트를 만들기 위해 8비트를 동일한 패킷에 추가 전송할 수 있다.
마찬가지로,
압축비트수 17비트에서 24비트 까지도 8의 배수 비트로 만들기 위한 패팅을 추가하여도 64비트가 되기 때문에, 16비트의 추가데이터를 동일한 패킷에 더 전송할 수 있다.
이때 추가전송 데이터는 다음 패킷에서 전송해야만 했던 데이터를 전송할 수 있으므로,
패킷트래픽이 절감되고 데이터 전송속도의 향상을 기대할 수 있다.
이때, 중요한 부분은, 표2에서 패킷헤더 표현사항이다.
패킷에는 패킷헤더가 포함되게 되는데, 이 패킷헤더에는 패킷이 포함하고 있는 data에 대하여 전송방법, 주소등 다양한 부가정보가 담겨있다. TCP/IP패킷의 예를 들자면, 패킷헤더내에 전송주소, 헤더의 길이등 매우 다양한 정보가 담겨있다.
Figure pat00001
본 발명에서는, 압축데이터의 최종결과 데이터에 추가전송 비트가 몇비트가 포함되어 있는지를 패킷헤더의 reserved영역이나, option영역등 사용자 약속에 따른 packet 헤더내의 특정 영역에, 담도록 하여, 이미 패킷에 overhead 로 붙어있을수 밖에 없는 패킷헤더영역에 추가전송비트에 대한 정보를 담아서 압축률의 저하없이 추가데이터를 전송할 수 있도록 하였다.
추가전송 가능비트가 몇비트인지에 대한 기록방식은 다양한데,
8의 배수 비트로 추가전송가능하므로, n=0,1,2,3,4,... 로 하여, 해독시 8n 비트가 추가전송됨을 decoder측에서 알수있도록 하는 방법 및, unary 코드나 binary 방식으로 실제로, n을 고정비트열 또는 가변비트열로 표현하는 방법으로 packet header의 특정 optional한 영역에 기록할 수 있다
기술적으로 이러한 방식은 TCP/IP 패킷의 경우 raw socket programming을 통해 구현이 가능하다.
상기 상술과정을 도식화 하면 아래와 같다.
먼저 압축을 했으나, 압축된 비트수가 1~8비트에 불과하여, 추가전송 데이터가 없는 경우는 아래와 같은 구조로 패킷과 데이터가 저장된다.
Figure pat00002
압축된 비트수가 9비트 이상이어서, 추가전송 데이터가 존재할 경우의 시나리오에 따른
압축 패킷의 구조는 다음과 같다.
Figure pat00003
두가지 모두 패킷 및 데이터의 전체 크기는 일정하게 압축전후로 일정하게 유지되나, 추가전송 데이터의 존재유무가 다르다.
이제 송신측에서 상기 압축패킷을 전송하고, 수신측에서 압축패킷을 수신받으면,
패킷헤더부분의 특정영역에서 n을 읽어서, n=0일경우는 추가전송 비트가 없으므로,
data 영역에서, padding을 제거한 압축데이터를 상기 압축연산의 역과정으로 아래와 같이 압축해제한다.
1)먼저 0 을 최상위에 추가한뒤,
2)전체 비트 반전후, 최상위에 "1"을 추가
3) 2) 연산을 계속 반복하여, 80비트가 될때 압축해제종료
n >=1 이상일 경우는,
data 영역에서 8*n 비트가 추가전송된 비트이므로 분리해내고,
나머지 data영역에서, padding을 제거한뒤,
압축 data에 대하여는, 상기 1),2),3)과정에 따라 동일하게 압축해제 한다.

Claims (1)

  1. 국내우선권주장을 위한 선출원으로서 별도의 청구범위를 기재하지 아니함.
KR1020180008529A 2018-01-24 2018-01-24 이진데이터 압축에 따른 tcp/ip패킷 데이터 압축 방법 및 그 장치 KR20190090118A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180008529A KR20190090118A (ko) 2018-01-24 2018-01-24 이진데이터 압축에 따른 tcp/ip패킷 데이터 압축 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180008529A KR20190090118A (ko) 2018-01-24 2018-01-24 이진데이터 압축에 따른 tcp/ip패킷 데이터 압축 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20190090118A true KR20190090118A (ko) 2019-08-01

Family

ID=67615552

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180008529A KR20190090118A (ko) 2018-01-24 2018-01-24 이진데이터 압축에 따른 tcp/ip패킷 데이터 압축 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR20190090118A (ko)

Similar Documents

Publication Publication Date Title
JP2001298369A5 (ko)
JP3599673B2 (ja) 無線データ送受信装置及びその方法
US20170155402A1 (en) Encoder, decoder and method
EP1355471A2 (en) Error resilient windows media audio coding
US20060291475A1 (en) Selective forward error correction
US8279947B2 (en) Method, apparatus and system for multiple-description coding and decoding
CN107040334B (zh) 用于设备辅助通信的方法、装置和计算机可读介质
JP2005522084A5 (ko)
CN109327283B (zh) 一种网络自适应的抗丢包方法、装置及终端设备
MX2014013560A (es) Aparato y metodo de transmision y recepcion de paquete en sistema de radiofusion y comunicacion.
JP2006262288A (ja) 映像データの配信サーバおよび映像データ配信方法
US7215683B2 (en) Method and apparatus for protecting against packet losses in packet-oriented data transmission
US8045467B2 (en) Reducing a number of data packets to increase a number of error correcting packets
KR101858040B1 (ko) 비디오 데이터 인코딩 및 디코딩 방법 및 장치
US10833710B2 (en) Bandwidth efficient FEC scheme supporting uneven levels of protection
KR20190090118A (ko) 이진데이터 압축에 따른 tcp/ip패킷 데이터 압축 방법 및 그 장치
CN115811381B (zh) 网络通信方法、网络通信装置、电子设备及存储介质
KR20190091586A (ko) TCP/IP 패킷에 있어서 고정비트 길이 이진데이터의 Octet 규격사이즈 압축을 위한 패킷 데이터 압축 방법 및 그 장치
WO1999062181A1 (fr) Procede et dispositif de protection contre les erreurs
US20190020743A1 (en) Data transmitting apparatus, data receiving apparatus and method thereof
CN109245850B (zh) 基于媒体内容的自适应系统码fec编译码方法
US8077742B1 (en) Data transmission using address encoding
KR101706573B1 (ko) 멀티캐스트 스크린 미러링 장치 및 방법
KR20060011677A (ko) 다중 채널 구조 무선 통신 시스템에서 헤더 정보 송수신장치 및 방법
KR20190091583A (ko) 이진데이터 압축에 따른 패킷 데이터 압축 방법 및 그 장치