KR100598341B1 - 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷프로토콜(ip)주소정보 관리방법 - Google Patents

이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷프로토콜(ip)주소정보 관리방법 Download PDF

Info

Publication number
KR100598341B1
KR100598341B1 KR1019990058648A KR19990058648A KR100598341B1 KR 100598341 B1 KR100598341 B1 KR 100598341B1 KR 1019990058648 A KR1019990058648 A KR 1019990058648A KR 19990058648 A KR19990058648 A KR 19990058648A KR 100598341 B1 KR100598341 B1 KR 100598341B1
Authority
KR
South Korea
Prior art keywords
address
database
address range
string
binary
Prior art date
Application number
KR1019990058648A
Other languages
English (en)
Other versions
KR20010056948A (ko
Inventor
허태성
진영민
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1019990058648A priority Critical patent/KR100598341B1/ko
Publication of KR20010056948A publication Critical patent/KR20010056948A/ko
Application granted granted Critical
Publication of KR100598341B1 publication Critical patent/KR100598341B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/695Types of network addresses using masks or ranges of addresses

Landscapes

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

Abstract

본 발명은 대량의 IP주소정보를 효율적으로 검색, 관리하는 데이터베이스를 구현하기 위한 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷 프로토콜(IP)주소정보 관리방법에 관한 것으로, 저장된 IP주소범위 정보가 항상 유효한 IP주소범위를 나타냄과 동시에 데이터 무결성을 갖는 IP주소범위 정보 데이터베이스를 구축할 수 있는 잇점이 있고, 한번의 연산을 통해 임의의 IP주소범위 정보의 충돌여부를 검사하는 잇점이 있고, 한번의 연산을 통해 임의의 IP주소범위를 더 작은 서브넷으로 분할하여 새로이 생성된 서브넷을 저장할 수 있는 잇점이 있고, 한번의 연산을 통해 주어진 IP 서브넷의 병합대상이 되는 서브넷을 검색하고 병합하여 새로 생성된 더 큰 규모의 IP주소범위 정보를 저장할 수 있는 잇점이 있고, 응용프로그램에서 별도의 연산을 필요로 하지 않고 데이터베이스의 기능만으로 IP주소범위 정보를 정렬할 수 있는 효율적인 데이터베이스를 구축할 수 있는 잇점이 있다.

Description

이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷 프로토콜(IP)주소정보 관리방법{Method of IP subnet information management on database using binary string}
도 1은 종래 데이터베이스 상에서 IP주소 범위를 표현하는 방법들의 예를 나타내는 도면.
도 2는 종래 IP주소범위 정보를 나타낼 경우 유효하지 않은 IP주소범위를 표현하는 문제점을 나타낸 도면.
도 3은 본 발명에 의해 입력된 IP주소와 넷마스크(netmask) 정보를 이진표기 문자열로 변환하는 과정을 나타내는 도면.
도 4는 본 발명에 의한 이진표기문자열을 사용하여 데이터베이스를 구성할 경우와, 종래 IP주소 표현방식으로 데이터베이스를 구성할 경우를 비교 설명하는 도면.
도 5는 본 발명에 의한 이진표기 문자열로 표현된 IP주소범위 정보의 충돌여부를 판별하는 방법을 나타내는 도면.
도 6은 본 발명에 의해 데이터베이스 상에 저장된 임의의 IP주소범위 정보를 분할하여 더 작은 서브넷(subnet) 정보를 생성하는 방법을 나타내는 도면.
도 7은 본 발명에 의해 데이터베이스 상에 저장된 여러 서브넷 정보를 병합 하여 더 큰 규모를 갖는 하나의 서브넷 정보를 생성하는 방법을 나타내는 도면.
도 8은 본 발명에 의해 데이터베이스 상에 이진표기 문자열의 형태로 저장된 IP주소정보를 IP주소와 넷마스크의 정보로 변화하는 과정을 나타내는 도면.
본 발명은 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷 프로토콜(이하 IP라 칭한다)주소정보 관리방법에 관한 것으로, 더욱 상세하게는 대량의 IP주소정보를 효율적으로 검색, 관리하는 데이터베이스를 구현하기 위한 IP주소정보 관리방법에 관한 것이다.
현대는 인터넷을 사용하는 인구가 폭발적으로 증가해감에 따라 인터넷의 기반이 되는 IP주소자원도 급격히 고갈되고 있다. 현재 사용되고 있는 IP주소는 32비트의 이진수로서 232(=약 40억)개의 서로 다른 주소를 지정할 수 있지만 이미 IP주소의 부족현상이 나타나고 있으며 이러한 문제를 해결하기 위해 IPv6와 같이 더 많은 개수의 주소를 지정할 수 있는 방법 또한 모색되고 있는 실정이다.
이와 같이 IP주소가 한정된 자원의 성격을 띄기 때문에 IP주소블럭의 할당 및 사용은 'InterNIC', 'APNIC', 'KRNIC'과 같은 단체의 조정을 통해 이루어지고 있으며 각 인터넷 서비스 제공자(Internet Service Provider : ISP)에서는 각 인터넷 사용자가 필요한 만큼의 IP주소를 사용하도록 IP주소블럭을 서브넷(subnet)으로 다시 분할하여 제공하고 있다.
이와 같이 인터넷을 이용하는 수많은 이용자들이 각자 보유한 인터넷 시설의 규모에 따라 다양한 크기의 IP 서브넷을 사용하게 되므로써 IP 주소 정보의 관리 문제가 발생하게 된다.
예를 들어 인터넷 서비스 제공자는 자신이 InterNIC, APNIC, KRNIC과 같은 기관으로부터 할당받은 IP주소블럭 중 어떤 서브넷을 어떤 가입자에게 사용하도록 하였고 어떤 범위의 주소가 아직 사용되고 있지 않은지를 정확하게 파악하고 있어야 한다. 만약 이러한 IP주소의 관리가 제대로 이루어지지 않아서 동일한 IP주소범위가 서로 다른 가입자에게 할당이 될 경우 각 가입자는 모두 인터넷을 이용할 수 없게되는 상황이 발생할 수 있기 때문이다. 뿐만 아니라 IP 주소 정보의 관리문제는 네트웍 장비에서도 발생한다. 예를 들어 라우터의 경우 IP주소로 표현되는 각 목적지에 따른 라우팅 테이블을 생성하고 이를 통해 데이터를 올바를 인터넷 경로로 전송하게 된다.
앞서 제시한 두 예시 모두 관리해야 할 IP주소 정보의 양이 상당하므로 데이터베이스를 통한 관리가 필요하고 실제로 데이터베이스를 통해 관리가 이루어지고 있다.
기존의 데이터베이스에서 통상적으로 널리 쓰이는 IP주소범위의 표현 방식은 몇가지로 나누어 볼 수 있는데 도 1a ∼ 도 1d 에 도시된 바와 같이, a) 시작 IP 주소와 넷마스크(netmask)를 이용하는 방법, b) 시작 IP 주소와 비트마스크(bitmask)를 이용하는 방법, c) 시작 IP 주소와 끝 IP 주소를 그대로 이용하는 방법, d) 시작 IP 주소와 끝 IP 주소의 32비트 정수값을 이용하는 방법이 있는데 이 중 a)와 c)방법이 가장 널리 쓰인다.
예를 들어 203.232.127.0에서 203.232.127.255까지의 256개의 IP주소 범위는 각 표현기법에 따라 도 1과 같은 형태로 데이터베이스에 저장되게 된다. 이와 같이 IP 주소 범위를 표현하는 일반적인 방법들은 모두 IP주소범위 정보를 저장하기 위해서 두 개의 값을 데이터베이스에 저장하는 형태를 가지고 있다. 이러한 구조는 데이터베이스에 저장된 IP주소범위 정보가 항상 유효한 것을 보장하지 못하게 되는 문제점이 있고, 또한 IP주소와 관련된 각종 연산을 수행함에 있어서 데이터베이스의 잇점을 활용하지 못하여 그 성능이 좋지 않으며 비효율적이라는 문제를 안고 있다.
IP주소와 관련된 연산으로는 '중복사용 검사', '분할', '병합', '정렬' 등이 있는데 기존의 표현 방법을 사용할 경우 매 연산을 위해 데이터베이스 전체를 읽어들이거나 IP주소범위 정보를 중간단계의 새로운 표현형태로 변환하는 과정을 필요로 한다.
도 2는 도 1에서 예시한 IP주소범위 정보를 나타내는 일반적인 방법들이 유효하지 않은 IP주소범위를 표현할 수 있음을 나타낸 도면으로, 이때 도면에 표기된 a) ∼ d)는 상기 도 1에서 설명한 a) ∼ d) 까지의 방법과 동일한 방법을 사용하였을 경우를 나타낸다.
따라서, 이러한 방법을 이용하여 구성한 데이터베이스를 사용할 때는 데이터 저장 및 검색시 항상 IP주소범위가 유효한지 검사해야만 한다. 대량의 IP주소정보를 처리해야 하는 데이터베이스에서는 이러한 단점이 치명적으로 시스템(또는 응용 프로그램)의 성능을 저하시키는 요인이 된다.
또한 검사과정을 통해서 유효하지 않은 IP주소정보를 발견한다해도 이를 올바른 정보로 수정할 수 있는 방법이 없으므로 기존의 IP주소범위 정보 표현 방식은 데이터베이스의 무결성을 보장하지 못하는 문제점이 있다.
한편, 상기 정렬연산에 대한 문제점은 도 4에서 본 발명과 비교하여 설명한다.
본 발명은 상기에 기술한 바와 같은 종래 문제점 및 요구사항을 감안하여, 대량의 IP주소 정보를 데이터베이스 상에서 효과적으로 저장하고 빠르고 효율적인 IP주소 관련 연산을 수행할 수 있는 IP주소 정보 표현 방법 및 이 표현방식에 근거하여 IP주소 정보와 관련된 각 연산을 수행하는 방법을 포함한 IP주소 관리 방법을 구현하는 것을 목적으로 한다.
본 발명을 통해 구성되는 IP주소정보 관련 데이터베이스는 저장된 IP주소 정보가 반드시 유효한 IP 서브넷 정보임을 보장하고 1회의 연산으로 데이터베이스 내의 IP주소범위의 충돌여부를 검사할 수 있고 1회의 연산으로 IP 서브넷을 분할/병합 할 수 있으며 데이터베이스 내의 정보를 IP주소를 기준으로 정렬하여 출력할 때 데이터베이스의 정렬기능만을 이용하고 응용프로그램에서의 별도의 정렬 연산을 필요로 하지 않는 매우 빠르고 효율적인 구조를 가지면서도 기존의 표현방식을 사용하여 구성한 데이터베이스에 비해 필요한 데이터 저장공간의 크기는 크게 차이가 나지 않게 된다.
상기와 같은 목적을 달성하기 위하여 대량의 인터넷 프로토콜(IP)주소범위 정보를 저장하는 데이터베이스에서 각 IP주소범위 정보를 관리하는 방법에 있어서,
IP 주소와 넷마스크(netmask)를 이진표기 문자열로 변환하는 제 1 과정;
상기 제 1 과정에서 변환된 IP 주소정보와 상기 데이터베이스에 기 저장되어 있는 IP 주소정보 간의 충돌검사를 수행하는 제 2 과정; 및
상기 제 2 과정을 통해 상기 데이터베이스에 기 저장되어 있는 임의의 IP 서브넷(subnet)을 더 작은 서브넷으로 분할하여 상기 데이터베이스에 재입력하는 제 a 과정;
상기 제 2 과정을 통해 상기 데이터베이스에 기 저장되어 있는 임의의 IP 서브넷들을 보다 큰 서브넷으로 병합하여 상기 데이터베이스에 재입력하는 제 b 과정; 또는
상기 제 2 과정을 통해 상기 데이터베이스에 이진표기 문자열로 기 저장되어 있는 IP 주소정보를 IP 주소와 넷마스크로 변환하여 출력하는 제 c 과정 중 어느 하나의 과정인 제 3 과정을 구비하는 것을 특징으로 한다.
삭제
삭제
삭제
삭제
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.
도 3은 본 발명에 의한 이진표기 문자열을 이용한 IP주소범위 표현 방식과 일반적으로 널리 사용되는 시작 IP주소와 넷마스크(netmask)를 이용한 IP주소범위 표현을 이진표기 문자열을 이용한 표현방식으로 변환하는 과정을 나타낸 도면이다.
먼저 시작 IP주소와 넷마스크를 32비트 데이터로 변환한다(A1). 그 다음 주어진 시작 IP주소와 넷마스크가 유효한 IP주소 범위를 나타내는지 검사하는데, 변환된 32비트 데이터를 'AND' 연산하여 그 결과가 시작 IP주소의 32비트 데이터와 동일하고, 넷마스크를 변환한 32비트 데이터가 연속된 '1'과 연속된 '0'이 결합된 형태인지를 검사한다.
상기 검사를 수행하면서 넷마스크를 변환한 32비트 데이터에 포함된 '1'의 개수를 구할 수 있는데 이것이 바로 비트마스크(bitmask)이며, 시작 IP주소를 변환한 32비트 데이터에서 최상위 비트부터 각 비트를 1 byte공간에 '0'과 '1'의 문자로 변환하여 비트마스크 만큼의 비트를 복사하면 이진표기 문자열 형태의 IP주소범위 정보로의 변환이 완료된다(A2).
이진표기 문자열 형태의 IP주소범위 정보는 항상 유효한 IP주소범위로 부터만 변환이 가능하므로 항상 유효한 IP주소범위 정보를 가지게 된다.
도 4는 본 발명에 의한 이진표기문자열을 사용하여 데이터베이스를 구성할 경우와, 종래 IP주소 표현방식으로 데이터베이스를 구성할 경우를 비교 설명하는 도면으로, 도면에서 'e' 부분이 종래 방식에 의해 정렬된 형태이고, 'f' 부분이 본 발명에 의해 정렬된 형태를 나타낸다.
종래의 IP주소를 문자열로 표현할 경우에는 IP주소의 대소비교가 정확히 이루어지지 않아 데이터베이스로부터 IP주소범위 정보를 정렬하여 검색할 경우 도면에서와 같이 정렬된 부분을 보면 결과가 제대로 나오지 않게 된다. 따라서, 정렬기 능을 사용하기 위해서는 데이터베이스로부터 검색된 결과를 변환하여 응용프로그램에서 다시 정렬기능을 수행해야 하는 단점이 있다.
그러나 본 발명에 의한 이진표기 문자열을 사용하여 IP주소 범위 정보 데이터베이스에 기록할 경우에는 도면에서와 같이 데이터베이스에서 바로 정렬된 결과를 얻게 된다.
도 5는 본 발명에 의한 이진표기 문자열 형태의 IP주소 범위정보를 저장하는 데이터베이스에서 IP주소범위 충돌을 검사하는 방법을 나타낸 도면이다. 유효한 IP주소범위라 할지라도 데이터베이스 상에서 충돌이 일어날 수 있다. 예를 들어 203.232.127.64 ∼ 203.232.127.127(B1)의 IP주소범위는 203.232.127.0 ~ 203.232.127.255(B2) 의 IP주소범위에 포함된다.
따라서 IP주소범위 정보를 데이터베이스에 입력하기 전에 항상 IP주소범위의 충돌여부를 검사해야한다. 이진표기 문자열 형태의 IP주소범위 정보를 사용할 경우 IP주소범위 충돌을 검사하는 방법은 매우 간단한데 각기 다른 IP주소범위를 나타내는 이진표기 문자열을 서로 비교하여 한 문자열의 제일 앞부분이 다른 문자열의 전체와 일치하면 IP주소범위가 충돌하는 경우이다.
이와 같이 이진표기 문자열을 사용할 경우 IP주소범위 충돌검사는 한번의 연산으로 수행되지만 기존의 표현방식을 이용할 경우 IP주소범위 충돌검사는 매우 복잡하다. 시작 IP주소와 넷마스크(혹은 bitmask)를 사용하는 방식에서는 크기 비교가 가능하도록 이를 시작 IP주소와 끝 IP주소의 형태로 변환하여야 한다.
또한 시작 IP주소와 끝 IP주소를 사용하는 방식에서도 비교를 위해서는 변환 이 필요한데, 예를 들어 203.232.127.128 ∼ 203.232.127.191(B4)와 203.232.127.64 ∼ 203.232.127.127(B3)의 두 주소 범위를 비교할 경우 문자열 비교에서는 '203.232.127.64'가 '203.232.127.127'이나 '203.232.127.191'보다도 크게 나오므로 '203.232.127.064'와 같은 형식으로 변환한 후 검사를 시행해야 한다.
32비트 정수형식을 사용할 경우에는 기존 방식중 검사가 제일 쉬운 편이지만 여러번의 비교가 필요하다. 예를 들어 '203.232.127.64 ∼ 203.232.127.127'을 의미하는 '3421011776 ∼ 3421011839'과 '203.232.127.128 ∼ 203.232.127.191'를 의미하는 '3421011840 ∼ 3421011903'의 IP주소범위 충돌여부를 조사하기 위해서는 '3421011776 < 3421011903'의 비교와 '3421011839 < 3421011840'의 두 번의 비교가 필요하다. 만약 두 IP주소범위가 유효한 범위임이 증명되지 않은 경우는 추가적인 비교연산이 필요하다.
도 6은 본 발명에 의한 이진표기 문자열 형태의 IP 주소범위 정보를 가지고 있는 데이터베이스에서 임의의 IP주소범위를 분할하여 두 개의 서브넷으로 만드는 방법을 나타낸 도면이다.
기존의 표현방식을 사용할 경우에는 서브넷분할을 위해서 많은 연산이 필요하다. 예를 들어, '203.232.127.0 ∼ 203.232.127.255의 주소범위를 203.232.127.0 / 255.255.255.0와 같이 IP주소범위 정보가 시작 IP주소와 넷마스크로 표현되는 경우에는 새로 생성되는 서브넷의 넷마스크를 구하기 위해 '255.255.255.0'를 32비트 이진데이터나 정수로 변환한 후 이를 2로 나누고 다시 '255.255.255.128'의 형태로 변환하여야 하며 새로 생성되는 서브넷의 시작 IP주소를 계산하는 것은 더욱 복잡 하여 '203.232.127.0'를 32비트 이진데이타로 변환한 후 최상위 비트로부터 기존의 비트마스크 만큼 떨어진 곳에 해당하는 비트를 1로 바꾸어주고 다시 '203.232.127.128'의 형태로 변환하여야 한다.
시작 IP주소 와 끝 IP주소로 표현되는 방식을 사용할 경우에는 두 정보를 모두 32비트 정수의 형식으로 변환한 후 연산을 수행하는데 이는 '3421011712 ~ 3421011967'과 같이 32비트정수형으로 표현되어 있을 경우 두 값의 중간값인 (3421011712+3421011967+1) / 2 = 3421011840 을 계산하여 '3421011712 ~ 3421011839' 와 '3421011840 ~ 3421011967'과 같이 계산하면 되기 때문이다. 그러나, 이진표기 문자열을 사용할 경우(C1) 서브넷 분할은 아주 간단하여 IP주소 범위를 나타내는 임의의 이진표기 문자열의 마지막에 '0' 과 '1'을 각각 추가한 새로운 문자열 두 개를 만들어 데이터베이스에 삽입하고(C2) 기존 문자열을 삭제하기만 하면된다.
도 7은 본 발명에 의한 이진표기 문자열의 형태로 IP주소범위를 표현하는 데이터베이스에서 두 서브넷을 병합하는 방법을 나타낸 도면이다. 이 때, 크기가 같은 인접한 서브넷이라도 병합이 불가능한 경우가 있는데, 예를 들어 '203.232.127.128~203.232.127.255' 서브넷과 '203.232.128.0~203.232.128.127' 서브넷은 크기가 같고 인접해 있지만 병합하여 '203.232.127.128~203.232.128.127'과 같은 형태로 표현할 수 없다.
이진표기 문자열을 사용하는 데이터베이스에서는 임의의 서브넷에 대해 병합대상이 되는 나머지 서브넷을 검색하는 일이 아주 쉬운데 이진표기 문자열의 마지 막 값을 '0'은 '1'로, '1'은 '0'으로 토글하기만 하면 된다(D1). 만약 이러한 병합대상 서브넷이 데이터베이스에서 검색되면 두 서브넷을 데이터베이스에서 삭제하고 기존의 이진표기 문자열에서 마지막 값을 잘라버린 새로운 문자열(D2)을 데이터베이스에 저장하기만 하면된다. 기존의 표현방식을 사용할 경우는 이러한 병합연산을 수행하기위해 복잡한 과정을 거쳐야 한다. 일단 시작주소를 32비트 이진데이타로 변환하고 비트마스크를 계산한 후 병합대상이 되는 서브넷의 시작주소를 계산하고 다시 이를 데이터베이스에 적용한 IP주소범위 표현형식으로 변환하여 데이터베이스를 검색하는 과정이 필요하다. 특히, 시작 IP주소와 끝 IP주소 혹은 이의 32비트정수형을 사용하는 경우에는 넷마스크를 계산하는 과정이 추가적으로 필요하다.
도 8은 본 발명에 의한 이진표기 문자열 형식으로 표현되는 IP주소범위 정보를 시작 IP주소 와 넷마스크의 형태로 변환하는 방법을 나타낸 도면이다. 이진표기 문자열 형식의 IP주소범위 정보를 가지고 있는 데이터베이스로부터 원하는 정보를 검색할 때에는 그 결과를 사용자가 쉽게 인지할 수 있는 시작 IP주소 와 넷마스크형태로 출력할 필요가 있다. 이진표기 문자열 형식의 IP주소범위 정보를 시작 IP주소와 넷마스크로 변환하는 과정은 도 4에서 제시한 시작 IP주소와 넷마스크 정보를 이진표기 문자열 형식의 IP주소정보로 변환하는 방법에서 각 단계의 역순을 취하면 된다.
즉, 먼저 시작 IP주소와 넷마스크 정보를 저장할 32비트 데이터공간을 각각 준비한 후, 시작 IP주소 정보를 저장할 32비트 데이터 공간의 최상위 비트에서부터 이진표기 문자열의 각 byte의 값을 copy한다(E1).
또한 이진표기 문자열의 길이를 계산하면 이것이 비트마스크가 되는데 넷마스크정보를 저장할 32비트 데이터 공간에는 최상위 비트로부터 비트마스크의 수만큼의 비트를 모두 '1'의 값으로 채운다(E2).
이어 각 32비트 데이터공간에서 아직 기록되지 않은 비트부분은 모두 '0'의 값으로 채운다(E3).
마지막으로 각 32비트 데이터를 8비트씩 잘라서 10진수로 변환하여 문자열로 표현하면 시작 IP주소(E4)와 넷마스크(E5)에 해당하는 문자열을 얻을 수 있다.
이와 같이 이진표기 문자열을 이용하여 IP주소범위정보를 표현할 경우 IP주소범위 정보의 충돌여부 검사, 서브넷 분할, 서브넷 병합, 정렬과 같은 연산을 매우 효율적으로 수행하며 데이터 무결성이 보장되는 데이터베이스를 구축, 운영할 수 있다.
이상에서 알 수 있는 바와같이, 상기와 같은 처리방법에 의해 수행되는 본 발명은 다음과 같은 효과가 있다.
첫째, 저장된 IP주소범위 정보가 항상 유효한 IP주소범위를 나타내는, 데이터 무결성을 갖는 IP주소범위 정보 데이터베이스를 구축할 수 있으며, 둘째, 한번의 연산을 통해 임의의 IP주소범위 정보의 충돌여부를 검사하고, 셋째, 한번의 연산을 통해 임의의 IP주소범위를 더 작은 서브넷으로 분할하여 새로이 생성된 서브넷을 저장할 수 있고, 넷째, 한번의 연산을 통해 주어진 IP 서브넷의 병합대상이 되는 서브넷을 검색하고 병합하여 새로 생성된 더 큰 규모의 IP주소범위 정보를 저 장할 수 있고, 다섯째, 응용프로그램에서 별도의 연산을 필요로 하지 않고 데이터베이스의 기능만으로 IP주소범위 정보를 정렬할 수 있는 효율적인 데이터베이스를 구축할 수 있다.
즉, 본 발명의 방법에 의하여 IP주소범위 정보를 저장하는 데이터베이스가 생성될 경우 대량의 IP주소범위 정보를 항상 안정적으로 유지하며 필요한 모든 연산을 빠르고 효율적으로 처리할 수 있는 잇점이 있다.
아울러 본 발명의 바람직한 실시 예들은 예시의 목적을 위해 개시된 것이며, 당업자라면 본 발명의 사상과 범위안에서 다양한 수정, 변경, 부가등이 가능할 것이며, 이러한 수정 변경 등은 이하의 특허 청구의 범위에 속하는 것으로 보아야 할 것이다.

Claims (9)

  1. 대량의 인터넷 프로토콜(IP)주소범위 정보를 저장하는 데이터베이스에서 각 IP주소범위 정보를 관리하는 방법에 있어서,
    IP 주소와 넷마스크(netmask)를 이진표기 문자열로 변환하는 제 1 과정;
    상기 제 1 과정에서 변환된 IP 주소정보와 상기 데이터베이스에 기 저장되어 있는 IP 주소정보 간의 충돌검사를 수행하는 제 2 과정; 및
    상기 제 2 과정을 통해 상기 데이터베이스에 기 저장되어 있는 임의의 IP 서브넷(subnet)을 더 작은 서브넷으로 분할하여 상기 데이터베이스에 재입력하는 제 a 과정;
    상기 제 2 과정을 통해 상기 데이터베이스에 기 저장되어 있는 임의의 IP 서브넷들을 보다 큰 서브넷으로 병합하여 상기 데이터베이스에 재입력하는 제 b 과정; 또는
    상기 제 2 과정을 통해 상기 데이터베이스에 이진표기 문자열로 기 저장되어 있는 IP 주소정보를 IP 주소와 넷마스크로 변환하여 출력하는 제 c 과정 중 어느 하나의 과정인 제 3 과정을 구비하는 것을 특징으로 하는 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷 프로토콜(IP)주소 관리방법.
  2. 제 1 항에 있어서,
    상기 제 1 과정의 이진표기 문자열 변환 과정은 상기 시작 IP주소와 넷마스 크를 32비트 데이터로 변환하는 제 1 단계와;
    상기 시작 IP주소와 넷마스크가 유효한 IP주소 범위를 나타내는지 판단하는 제 2 단계와;
    상기 판단 과정에서 비트마스크(bitmask)를 구한 후, 시작 IP주소를 변환한 32비트 데이터에서 최상위 비트부터 각 비트를 1바이트 공간에 '0'과 '1'의 문자로 변환한 다음, 상기 구한 비트마스크 만큼의 비트를 복사하는 제 3 단계를 구비하는 것을 특징으로 하는 이진표기 문자열을 이용한 데이터베이스 상에서의 IP주소 관리방법.
  3. 제 2 항에 있어서,
    상기 제 2 단계에서 유효 IP주소 범위 판단은, 상기 변환된 32비트 데이터를 논리곱(AND) 연산한 후, 이 결과가 시작 IP주소의 32비트 데이터와 동일하고, 넷마스크를 변환한 32비트 데이터가 연속된 '1'과 연속된 '0'이 결합된 형태인지를 판단하는 것을 특징으로 하는 이진표기 문자열을 이용한 데이터베이스 상에서의 IP주소 관리방법.
  4. 제 1 항에 있어서,
    상기 IP주소와 넷마스크를 이진표기 문자열로 변환하여 IP주소 범위 정보 데이터베이스에 기록하므로써, 별도의 정렬 연산없이 IP 주소 정렬을 처리하는 것을 특징으로 하는 이진표기 문자열을 이용한 데이터베이스 상에서의 IP주소 관리방법.
  5. 제 1 항에 있어서,
    상기 제 2 과정에서 서로 다른 두 IP주소범위 정보를 나타내는 이진표기 문자열을 비교하여 한 문자열 전체가 다른 문자열의 맨앞부분과 일치하면 IP주소 범위가 충돌함을 감지해내는 것을 특징으로 하는 이진표기 문자열을 이용한 데이터베이스 상에서의 IP주소 관리방법.
  6. 제 1 항에 있어서,
    상기 제 a 과정에서 임의의 IP주소범위 정보를 나타내는 이진표기 문자열의 맨 끝에 각각 '0'과 '1'을 추가하여 분할된 서브넷의 IP주소범위 정보를 나타내는 이진표기 문자열을 계산하는 것을 특징으로 하는 이진표기 문자열을 이용한 데이터베이스 상에서의 IP주소 관리방법.
  7. 제 1 항에 있어서,
    상기 제 b 과정에서 임의의 IP주소범위를 나타내는 이진표기 문자열의 맨 마지막 문자값을 '0'은 '1'로, '1'은 '0'으로 토글하여 병합대상이 되는 IP주소범위를 나타내는 이진표기 문자열을 계산하는 것을 특징으로 하는 이진표기 문자열을 이용한 데이터베이스 상에서의 IP주소 관리방법.
  8. 제 1 항에 있어서.
    상기 제 b 과정에서 임의의 IP주소범위 정보에 대해, 병합대상이 되는 IP주소범위 정보가 존재할 경우, 기존 IP주소범위 정보를 나타내는 이진표기 문자열의 맨 마지막을 없앰으로써 병합되어 더 큰 규모를 가지는 새로운 서브넷의 IP주소범위 정보를 나타내는 이진표기 문자열을 계산하는 것을 특징으로 하는 이진표기 문자열을 이용한 데이터베이스 상에서의 IP주소 관리방법.
  9. 제 1 항에 있어서,
    상기 제 c 과정에서 IP주소범위 정보를 표현하는 이진표기 문자열의 길이를 n이라고 할 때, 32-n 개의 '0'을 문자열의 끝에 추가하여 시작 IP주소의 32비트 이진데이타 표현을 계산하고, n개의 '1'과 32-n개의 '0'으로 이루어진 넷마스크의 32비트 이진데이타 표현형태를 계산하는 것을 특징으로 하는 이진표기 문자열을 이용한 데이터베이스 상에서의 IP주소 관리방법.
KR1019990058648A 1999-12-17 1999-12-17 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷프로토콜(ip)주소정보 관리방법 KR100598341B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990058648A KR100598341B1 (ko) 1999-12-17 1999-12-17 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷프로토콜(ip)주소정보 관리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990058648A KR100598341B1 (ko) 1999-12-17 1999-12-17 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷프로토콜(ip)주소정보 관리방법

Publications (2)

Publication Number Publication Date
KR20010056948A KR20010056948A (ko) 2001-07-04
KR100598341B1 true KR100598341B1 (ko) 2006-07-06

Family

ID=19626634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990058648A KR100598341B1 (ko) 1999-12-17 1999-12-17 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷프로토콜(ip)주소정보 관리방법

Country Status (1)

Country Link
KR (1) KR100598341B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102363757B1 (ko) * 2020-12-01 2022-02-16 (주)모니터랩 Ip 주소 비교 방법 및 장치
KR20230031714A (ko) 2021-08-27 2023-03-07 삼성전자주식회사 디스플레이 장치, 전자 장치 및 그 동작 방법
CN114268608A (zh) * 2021-12-20 2022-04-01 卓米私人有限公司 一种地址段检索方法、装置、电子设备及存储介质
CN114465979B (zh) * 2021-12-21 2024-01-02 天翼云科技有限公司 一种ip库生成方法、系统及电子设备
CN117812039B (zh) * 2024-02-24 2024-05-14 深圳赋乐科技集团有限公司 一种网络地址转换日志记录方法、系统、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999014906A1 (en) * 1997-09-15 1999-03-25 Effnet Group Ab Method and system for fast routing lookups
KR20000028645A (ko) * 1998-10-05 2000-05-25 가나이 쓰토무 패킷 중계 장치
KR20000046358A (ko) * 1998-12-31 2000-07-25 강병호 라우터에서 인터넷 프로토콜 패킷의 원천지 주소 할당방법
KR20010098110A (ko) * 2000-04-28 2001-11-08 안종석 비트-벡터 테이블을 이용한 ip 주소 검색방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999014906A1 (en) * 1997-09-15 1999-03-25 Effnet Group Ab Method and system for fast routing lookups
KR20000028645A (ko) * 1998-10-05 2000-05-25 가나이 쓰토무 패킷 중계 장치
KR20000046358A (ko) * 1998-12-31 2000-07-25 강병호 라우터에서 인터넷 프로토콜 패킷의 원천지 주소 할당방법
KR20010098110A (ko) * 2000-04-28 2001-11-08 안종석 비트-벡터 테이블을 이용한 ip 주소 검색방법

Also Published As

Publication number Publication date
KR20010056948A (ko) 2001-07-04

Similar Documents

Publication Publication Date Title
US7089240B2 (en) Longest prefix match lookup using hash function
US6564211B1 (en) Fast flexible search engine for longest prefix match
EP2040184B1 (en) Database and database processing methods
US6614789B1 (en) Method of and apparatus for matching strings of different lengths
US7403494B2 (en) Method for generating nodes in multiway search tree and search method using the same
JP3485262B2 (ja) データ・パケットを分類する方法および手段
Draves et al. Constructing optimal IP routing tables
US7054855B2 (en) Method and system for performing a pattern match search for text strings
JP3278297B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US6067574A (en) High speed routing using compressed tree process
US7415472B2 (en) Comparison tree data structures of particular use in performing lookup operations
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
US7509300B2 (en) Dynamic IP router tables using highest-priority matching
US20040167923A1 (en) Method and apparatus for longest matching prefix determination in a communication network
CN107153647B (zh) 进行数据压缩的方法、装置、系统和计算机程序产品
US20050083937A1 (en) IP address lookup method using pipeline binary tree, hardware architecture, and recording medium
US7478109B1 (en) Identification of a longest matching prefix based on a search of intervals corresponding to the prefixes
Thorup Faster deterministic sorting and priority queues in linear space
KR100999408B1 (ko) 해시트리를 이용한 url 검색방법
KR100598341B1 (ko) 이진표기 문자열을 이용한 데이터베이스 상에서의 인터넷프로토콜(ip)주소정보 관리방법
US20160301658A1 (en) Method, apparatus, and computer-readable medium for efficient subnet identification
Yazdani et al. Prefix trees: new efficient data structures for matching strings of different lengths
Mohan et al. Computationally optimal metric-first code tree search algorithms
KR100420957B1 (ko) 클래스 분할 기법을 이용한 라우팅 테이블 자료구조,라우팅 테이블을 이용한 라우팅 경로 검색방법 및 장치
KR100560420B1 (ko) 트라이를 이용한 인터넷 프로토콜 주소 검색 방법

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
FPAY Annual fee payment

Payment date: 20110609

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee