KR20050079409A - 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법 - Google Patents

네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법 Download PDF

Info

Publication number
KR20050079409A
KR20050079409A KR1020040007657A KR20040007657A KR20050079409A KR 20050079409 A KR20050079409 A KR 20050079409A KR 1020040007657 A KR1020040007657 A KR 1020040007657A KR 20040007657 A KR20040007657 A KR 20040007657A KR 20050079409 A KR20050079409 A KR 20050079409A
Authority
KR
South Korea
Prior art keywords
client
server
address
turn
port
Prior art date
Application number
KR1020040007657A
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 KR1020040007657A priority Critical patent/KR20050079409A/ko
Publication of KR20050079409A publication Critical patent/KR20050079409A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • 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

Landscapes

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

Abstract

1. 청구범위에 기재된 발명이 속하는 기술분야
본 발명은, 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 네트워크 패킷 전달(TURN) 서버에서 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 포트(TMAC)를 별도로 할당하고 이를 포트 순으로 연동 테이블에 저장하여 관리함으로써, 데이터 패킷의 순방향 전달시 발생하는 연동 테이블 검색 부하를 효과적으로 줄이고, 제어 패킷과 데이터 패킷의 구분에 소요되는 지연시간을 없애기 위한, 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있음.
3. 발명의 해결 방법의 요지
본 발명은, 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법에 있어서, 상기 네트워크 패킷 전달(TURN) 서버가 클라이언트로부터의 요청에 따라 상기 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 포트(TMAC)를 할당하고, 외부 클라이언트와의 데이터 송수신을 위한 공인 주소 및 포트(TMARC)를 할당한 후, 포트 순으로 연동 테이블에 등록하는 연동 테이블 등록 단계; 상기 네트워크 패킷 전달(TURN) 서버가 상기 클라이언트 또는 상기 외부 클라이언트로부터 데이터 패킷을 수신하는 데이터 패킷 수신 단계; 상기 네트워크 패킷 전달(TURN) 서버가 상기 수신한 데이터 패킷의 목적지 포트에 상응하는 목적지 주소를 상기 연동 테이블로부터 검색하는 연동 테이블 검색 단계; 및 상기 네트워크 패킷 전달(TURN) 서버가 상기 수신한 데이터 패킷을 상기 검색한 목적지 주소로 전달하는 데이터 패킷 전달 단계를 포함함.
4. 발명의 중요한 용도
본 발명은 네트워크 주소 변환 환경에서의 인터넷전화 시스템 등에 이용됨.

Description

네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법{METHOD FOR FAST RELAY PROCESSING IN TURN SERVER}
본 발명은, 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 더욱 상세하게는 네트워크 패킷 전달(TURN) 서버에서 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 포트(TMAC)를 별도로 할당하고 이를 포트 순으로 연동 테이블에 저장하여 관리함으로써, 데이터 패킷의 순방향 전달시 발생하는 연동 테이블 검색 부하를 효과적으로 줄이고, 제어 패킷과 데이터 패킷의 구분에 소요되는 지연시간을 없애기 위한, 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
네트워크 주소 변환 연동을 이용한 운행법(Traversal Using Relay NAT : 이하, "TURN"이라 한다.)은 인터넷 엔지니어링 태스크 포스(IETF : Internet Engineering Task Force) 표준화 단체에서 2003년 3월에 제안한 기술로서, 네트워크 주소 변환(NAT) 환경에서의 인터넷전화 서비스 등과 같은 양방향 응용 서비스를 제공하기 위하여 제안되었다.
네트워크 주소 변환(NAT)이란 특정한 IP(Internet Protocol) 주소를 한 그룹에서 다른 그룹으로 매핑하는 기능으로서, IP 주소의 유한성을 극복하고 보안문제를 해결하기 위한 기술이다. 즉, 네트워크 주소 변환(NAT) 기술은 외부 네트워크에 알려진 공인 IP 주소를 내부 네트워크의 사설 IP 주소로 변환하거나, 사설 IP 주소를 정적인 공인 IP 주소로 변환할 수 있도록 한다. 이 때, IP 주소를 N : N 형태로 매핑하는 것을 정적 네트워크 주소 변환(NAT)이라고 하고, M : N(M<N) 형태로 매핑하는 것을 동적 네트워크 주소 변환(NAT)이라고 한다.
네트워크 주소 변환(NAT)을 사용하는 목적에는 2가지가 있는데, 첫째는 인터넷의 공인 IP 주소를 절약할 수 있다는 점이고, 둘째는 인터넷과 같은 공공망과 연결된 사설망을 침입자들로부터 보호할 수 있다는 점이다. 즉, 네트워크 주소 변환(NAT)을 이용하면 사설 IP 주소를 공인 IP 주소와 상호 변환할 수 있으므로, 공인 IP 주소를 다수가 함께 사용할 수 있게 되어 IP 주소를 절약할 수 있다. 특히, 인터넷의 공인 IP 주소는 그 수가 한정되어 있기 때문에 이와 같이 공인 IP 주소를 공유하여 사용할 수 있는 방법이 필요하다.
또한, 네트워크 주소 변환(NAT)을 이용하여 공공망(인터넷)과 사설망 사이에 방화벽(Firewall)을 설치하면 외부 공격으로부터 사설망을 보호할 수 있다. 즉, 사설망과 외부 통신망(인터넷)을 연결하는 장비인 라우터에 네트워크 주소 변환(NAT)을 설정하면, 라우터는 자신에게 할당된 공인 IP 주소만을 외부에 알리고, 외부로부터 패킷을 수신하였을 때 공인 IP 주소를 사설 IP 주소로 변환시켜줌으로써 외부 침입자가 사설망의 내부 사설 IP 주소를 직접 공격하는 것을 막아 내부 네트워크(사설망)를 보호할 수 있다.
한편, 네트워크 주소 변환(NAT) 장치 뒤에 있는 클라이언트는 일반적으로 동적 호스트 설정 프로토콜(DHCP : Dynamic Host Configuration Protocol) 또는 관리자에 의한 정적 구성을 통하여 사설 IP 주소를 할당받는다. 일반적으로 사설망의 내부와 외부 공인망 간의 통신은 다음과 같은 과정에 의하여 이루어진다.
먼저, 사설망 내부 클라이언트의 응용 프로그램이 외부 공인망의 클라이언트와 통신을 시도하고자 하면 소켓을 사용하여 사설망 내부 클라이언트의 사설 IP 주소(소스 IP 주소) 및 포트(소스 포트)를 패킷의 소스 필드에 삽입한 후 전송한다. 이 때, 사설망 내부 클라이언트가 전송하는 패킷의 대상 필드에는 외부 클라이언트의 IP 주소(원격 호스트 - 대상 IP 주소) 및 포트가 포함된다. 그리고, 상기 전송 패킷은 사설망 외부의 지점(외부 클라이언트)에 도달해야 하므로 지정된 기본 게이트웨이, 즉 네트워크 주소 변환(NAT) 장치로 전달된다.
그러면, 네트워크 주소 변환(NAT) 장치는 사설망 내부 클라이언트가 응용 프로그램을 통하여 전송한 패킷을 가로채어 대상 IP 주소, 대상 포트, 네트워크 주소 변환(NAT) 장치의 외부 IP 주소 및 포트, 네트워크 프로토콜, 사설망 내부 클라이언트의 IP 주소 및 포트를 사용하여 포트 매핑을 생성하고, 이를 포트 매핑 테이블에 저장하여 관리한다. 이 때, 네트워크 주소 변환(NAT) 장치의 외부 IP 주소 및 포트는 사설망 내부 클라이언트의 IP 주소 및 포트가 아닌 데이터 트래픽을 위한 공용 IP 주소 및 포트이다.
이와 같이 네트워크 주소 변환(NAT) 장치는 사설망 내부 클라이언트로부터 수신한 패킷의 내부 IP 주소 및 포트를 네트워크 주소 변환(NAT) 장치의 외부 IP 주소 및 포트로 변환하여 대상(외부) 클라이언트로 전송한다.
한편, 상기 사설망 내부 클라이언트로부터 전송된 패킷을 수신한 대상(외부) 클라이언트는 자신이 현재 전역적으로 라우팅 가능한 IP 주소를 가진 단일 컴퓨터와 통신하고 있는 것으로 인식한다. 따라서, 외부 클라이언트에서는 자신의 IP 주소 및 포트를 소스 필드에 삽입한 후, 네트워크 주소 변환(NAT) 장치의 외부 IP 주소 및 포트로 응답 패킷을 보낸다.
그러면, 네트워크 주소 변환(NAT) 장치는 상기 외부 클라이언트로부터 수신한 패킷을 자신이 관리하는 포트 매핑 테이블과 비교한다. 그리고, 수신한 패킷의 소스 IP 주소, 소스 포트, 대상 포트 및 네트워크 프로토콜이 상기 포트 매핑 테이블의 원격 호스트 IP 주소, 원격 포트, 외부 포트 및 네트워크 프로토콜과 일치하는 항목을 찾아내어 역변환을 수행한다.
이 때, 상기 네트워크 주소 변환(NAT) 장치는 수신 패킷의 대상 필드에 포함된 외부 IP 주소 및 외부 포트를 클라이언트의 사설 IP 주소 및 내부 포트로 변환한다. 그리고, 수신 패킷을 사설망 내부를 통하여 해당 클라이언트로 전달한다. 한편, 포트 매핑 테이블에 일치하는 패킷이 없으면 패킷을 삭제하고 연결을 끊는다. 이와 같이, 네트워크 주소 변환(NAT)의 장점은 응용 프로그램 또는 클라이언트 측에서 별도의 API(Application Process Invocation)를 호출하지 않고도 개인 IP 주소를 이용하여 인터넷을 이용한 통신이 가능하다는 점이다.
한편, 인터넷전화 프로토콜(VoIP)은 음성 패킷 및 시그널 패킷을 송수신하기 위하여 자신의 수신 포트를 동적으로 할당하고, 상대방에게 자신의 주소 및 동적 할당 포트를 알려주게 된다.
그런데, 네트워크 주소 변환(NAT) 환경에서 인터넷전화 프로토콜(VoIP) 응용을 사용하는 경우에는 상대측으로부터 패킷을 수신할 사설 주소 및 포트가 인터넷전화 프로토콜(VoIP) 메시지에 포함된다. 따라서, 인터넷전화 프로토콜(VoIP)에서 네트워크 주소 변환(NAT)을 위한 포트 맵핑 테이블에는 인터넷전화 프로토콜에 따라 내부에서 동적으로 할당한 포트에 대한 정보가 존재하지 않는다. 그러면, 인터넷전화 프로토콜(VoIP)에 따라 동적으로 할당된 주소로 들어오는 패킷은 네트워크 주소 변환(NAT) 장치를 통과할 수 없기 때문에 상대측으로부터 전달되는 음성 패킷을 수신할 수 없게 된다.
이러한 문제점을 해결하기 위하여 TURN 알고리즘이 제안되었다. 즉, TURN 알고리즘은 네트워크 주소 변환(NAT) 환경 외부의 공인망에서 인터넷전화 프로토콜(VoIP) 클라이언트가 동적으로 할당한 포트 및 사설 주소로 패킷을 전송할 수 있는 방법을 제공한다. 이를 위하여 TURN 알고리즘은 네트워크 주소 변환(NAT) 환경 내부의 인터넷전화 프로토콜(VoIP) 클라이언트가 패킷을 전달(Relay)해 줄 수 있는 공인 주소를 TURN 서버로부터 할당받아 인터넷전화 프로토콜(VoIP) 메시지에 포함시키도록 한다. 따라서, 사설망 내부의 인터넷전화 프로토콜(VoIP) 클라이언트는 외부의 공인망으로부터 전송되는 음성 패킷을 수신할 수 있게 된다.
즉, TURN 서버는 네트워크 주소 변환(NAT) 환경 내부의 인터넷전화 프로토콜(VoIP) 클라이언트가 공인 주소를 요청하면, 자신이 가지고 있는 공인 주소 및 포트를 할당한 후, 이를 자신이 관리하는 연동 테이블(Relay Table)에 저장한다. 그러면, 이후에 TURN 서버의 공인 주소로 들어오는 패킷은 상기 TURN 서버가 자신이 관리하는 연동 테이블의 정보를 이용하여 네트워크 주소 변환(NAT) 환경 내부의 해당 인터넷전화 프로토콜(VoIP) 클라이언트로 수신 패킷을 전달한다.
한편, TURN 서버를 포함하는 기본적인 네트워크 환경은 도 1에 도시된 바와 같다. 이 때, TURN 클라이언트(CPE : Customer Premises Equipment)(11)는 TURN 서버(12)로 공인 주소를 요청하는 사설망 내부의 클라이언트로서, 일반적인 인터넷전화(VoIP) 단말 장치 등이 해당한다. 그리고, TURN 서버(12)는 네트워크 주소 변환(NAT) 환경 내부의 호스트(TRUN 클라이언트)에게 공인 주소를 할당하는 서버로서, 네트워크 주소 변환(NAT) 환경 내부의 TURN 클라이언트(CPE)(11)와 네트워크 주소 변환(NAT) 환경 외부의 클라이언트(13) 사이에서 패킷을 전달하는 역할을 한다.
한편, 클라이언트 주소(CA)는 사설망 내부에서 TURN 클라이언트(11)가 데이터 전송을 위하여 사용하는 사설 주소이고, NMAC(NAT Mapped Address for Client)는 네트워크 주소 변환(NAT) 장치가 상기 클라이언트 주소(CA)에 대하여 할당한 공인 주소이다.
그리고, TMAC(TURN Mapped Address for Client)는 TURN 클라이언트(11)가 공인 주소로 접속한 외부 클라이언트(Remote Client)(13)와의 데이터 전송에 사용하는 TURN 서버(12)의 주소이고, TMARC(TURN Mapped Address for Remote Client)는 TURN 클라이언트(11)가 외부 클라이언트(Remote Client)(13)와의 데이터 전송을 위하여 획득한 공인 주소(Public Address)이며, RCA(Remote Client Address)는 TURN 클라이언트(11)가 획득한 공인 주소로 접속한 외부 클라이언트(Remote client)(13)의 주소이다. 도 2를 참조하여 종래에 TURN 서버(12)가 TURN 클라이언트(11)의 서비스 요청에 따라 네트워크 주소를 등록하는 과정에 대하여 상세히 살펴보기로 한다.
도 2는 종래의 TURN 서버에서 TURN 클라이언트의 서비스 요청에 따른 네트워크 주소 등록 과정에 대한 일실시예 흐름도이다.
먼저, TURN 서버(12)가 TURN 클라이언트(11)로부터 등록 요청 메시지를 수신하면(201) 인증 과정을 수행한다(202). 그 결과, 인증에 실패하였으면 등록 에러 메시지를 TURN 클라이언트로 전달하고(203), 인증에 성공하였으면 TMARC(TURN Mapped Address for Remote Client)를 할당하고(204), 연동 테이블(Relay Table)을 갱신한 후(205), 등록 응답 메시지를 TURN 클라이언트(11)로 전달한다(206).
이 때, TURN 서버(12)는 공인 주소를 요청하는 네트워크 주소 변환(NAT) 환경 내부의 TURN 클라이언트(11)에게 자신이 가지고 있는 공인 주소 및 포트(TMARC)를 동적으로 할당한다. 그리고, 상기 연동 테이블(Relay Table)에는 TURN 서버가 할당한 공인 주소 및 포트와 TRUN 클라이언트(11)가 등록 요청시 사용한 네트워크 주소 변환(NAT)에 의한 주소 및 포트와 TURN 서버가 할당한 주소를 이용하여 패킷을 전송한 상대측의 주소 및 포트가 저장된다.
이와 같이, 상기 TURN 서버는 상기 연동 테이블(relay Table)을 이용하여 네트워크 주소 변환(NAT) 환경 외부의 클라이언트(13)로부터 수신한 패킷을 네트워크 주소 변환(NAT) 환경 내부의 TURN 클라이언트(11)로 전달하고, 네트워크 주소 변환(NAT) 환경 내부의 TURN 클라이언트로(11)로부터 수신한 패킷을 네트워크 주소 변환(NAT) 환경 외부의 클라이언트(13)로 전달한다.
한편, 상기 TURN 서버(12)는 "204" 과정에서 외부 클라이언트(13)와의 데이터 패킷 송수신을 위한 주소(TMARC) 및 포트를 순차적으로 할당하며, 도 3에 도시된 바와 같이 클라이언트(11)와의 데이터 패킷 송수신을 위한 주소(TMAC)는 제어 평면의 TURN 서버(12)의 주소(IP 주소 : 44.33.22.11, 포트 : 50000)를 함께 사용한다.
이 때, 제어 평면과 데이터 평면의 개념은 인터넷 프로토콜에 일반적으로 적용되는 개념이다. 예를 들어, 인터넷 방송의 경우에 사용자 인증, 과금 결정, 코덱 결정(Nego) 등이 제어 평면에 속하고, 제어 평면 이후의 실질적인 인터넷 방송 데이터 수신 방법이 데이터 평면에 속한다.
다른 예로서, 요즘 많이 사용되는 P2P(Peer to Peer) 다운로드 툴을 예로 들면, 사용자 단말이 영화를 다운로드받기 위하여 서버에 접속하고 특정 영화를 소유하고 있는 상대방을 검색하는 과정이 제어 평면에 속한다면, 검색 결과에 따라 특정 영화를 다운로드받는 과정이 데이터 평면에 속한다.
또 다른 예로서, 인터넷전화 프로토콜(VoIP)의 경우에 음성을 전달하기 위하여 호를 연결하는 절차가 제어 평면에 속하고, 호 연결 과정 이후에 이루어지는 음성 송수신(통화) 절차가 데이터 평면에 속한다.
이와 같이, 일반적으로 제어 평면은 데이터 평면을 위하여 이루어지는 선행 과정이다. TURN 시스템에서는 TURN 클라이언트 간에 패킷을 전달(Relay)하기 위한 전달 경로를 결정하는 것이 제어 평면에 해당하며, 이후에 패킷을 전달하는 과정이 데이터 평면에 해당한다.
한편, 앞에서도 설명하였듯이, 종래의 TURN 서버(12)는 클라이언트(11)와의 제어 평면을 위한 주소와 데이터 평면을 위한 주소(예 : IP 주소-44.33.22.11, 포트-50000)를 함께 사용하였다. 이와 같이 데이터 평면 주소와 제어 평면 주소를 함께 사용하는 기존 방식은 도 4에 도시된 바와 같은 데이터 패킷 전달 과정을 거치게 된다.
도 4는 종래의 TURN 서버에서의 패킷 전달 과정에 대한 일실시예 흐름도이다.
먼저, TURN 서버(12)가 패킷을 수신하면(401), 수신한 패킷의 특정 위치를 매직 쿠키(Magic Cookie)와 동일한지를 비교하여(402), 새로 수신한 패킷이 매직 쿠키(Magic Cookie)와 같다면 제어 평면 패킷이므로 제어 평면에 대한 처리를 수행하고(403), 새로 수신한 패킷이 매직 쿠키(Magic Cookie)와 같지 않다면 데이터 평면 패킷이므로 하기의 [표 1]과 같은 연동 테이블 검색에 의하여(404) 패킷을 전달한다(405).
TMARC NMAC RCA
30000 NAT-1 매핑 주소 CPE-1 주소
30001 NAT-2 매핑 주소 CPE-2 주소
30002 NAT-3 매핑 주소 CPE-3 주소
30003 NAT-4 매핑 주소 CPE-4 주소
..... ..... .....
30000 + n - 1 NAT-n 매핑 주소 CPE-n 주소
그런데, 이와 같은 종래 방식은 후술하는 처리 지연을 발생시킨다.
첫째, 제어 평면의 패킷과 데이터 평면의 패킷을 구분하기 위한 메시지 처리 지연이 발생한다. 즉, 기존의 TURN 기술은 제어 평면의 패킷(메시지)과 데이터 평면의 패킷(메시지)이 하나의 주소를 사용한다. 따라서, TURN 서버(12)에서는 수신한 패킷을 구분하기 위하여 패킷의 특정 위치의 값을 매직 쿠키(예를 들어, 0x72c64bc6)와 비교하는 과정을 수행하기 때문에 그에 따른 처리 지연이 발생한다.
둘째, 데이터 평면의 패킷을 전달하는 과정에서 연동 테이블 검색으로 인한 지연이 발생한다. 즉, 도 5에 도시된 바와 같이 TURN 서버(12)에 여러 개의 세션이 생긴 경우에 모든 TURN 클라이언트들이 TURN 서버의 동일한 주소로 제어 평면 패킷(메시지) 및 데이터 평면 패킷(메시지)을 전송한다. 따라서, TURN 서버(12)는 다수의 TURN 클라이언트로부터 수신한 데이터 평면 패킷을 구분하여 전달하기 위하여 상기의 [표 2]와 같은 연동 테이블 검색 과정을 거친다. 이 때, TURN서버(12)는 데이터 평면의 패킷 흐름 방향에 따라 각각 다른 방법에 의하여 연동 테이블을 검색한다.
즉, TURN 클라이언트(11)로부터 TURN 서버(12)로 전달되어 외부 클라이언트(13)로 전송되는 패킷의 방향을 순방향(Forward)으로 정의하고, 반대로 외부 클라이언트(13)로부터 TURN 서버(12)로 전달되어 TURN 클라이언트(11)로 전송되는 패킷의 방향을 역방향(Backward)으로 정의하였을 때, 먼저 역방향(Backward)의 경우에 연동 테이블의 인덱스는 수신 데이터 패킷의 목적지 주소 및 포트 즉, TMARC이다. 이 때, TMARC는 순차적으로 할당된 포트로 정렬되어 있으므로 검색과정 없이 패킷의 전달 목적지인 네트워크 주소 변환(NAT) 장치에 할당된 주소(NMAC)를 바로 얻을 수 있다.
이에 비해, 순방향(Forward)의 경우에는 역방향(Backward)과 달리 수신 패킷의 목적지 포트가 모두 같기 때문에 수신 패킷의 송신처(Source) 주소(NMAC)를 기준으로 패킷의 전달 목적지를 검색하여야 한다. 따라서, NMAC가 테이블의 인덱스가 된다.
그런데, NMAC는 인터넷 주소로서 순차적으로 정렬될 수 없으므로 TURN 서버(12)는 패킷의 송신처 주소를 연동 테이블에서 검색하여 외부 클라이언트(13)의 주소(RCA)를 찾는다. 여기서, 네트워크 주소 변환(NAT)에 할당된 주소(NMAC)를 찾기 위한 여러 가지 최적화 검색 알고리즘이 존재할 수 있다.
그러나, 검색 알고리즘을 최적화하더라도 테이블이 커지면 커질수록 검색에 걸리는 시간은 늘어날 수 밖에 없다. 이것은 네트워크 지연을 초래하고, 역방향(Backward)과 순방향(Forward)의 비대칭적 처리 지연이 발생하기 때문에 양방향 실시간 서비스의 품질을 저하시키는 문제점이 있다.
본 발명은, 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 네트워크 패킷 전달(TURN) 서버에서 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 포트(TMAC)를 별도로 할당하고 이를 포트 순으로 연동 테이블에 저장하여 관리함으로써, 데이터 패킷의 순방향 전달시 발생하는 연동 테이블 검색 부하를 효과적으로 줄이고, 제어 패킷과 데이터 패킷의 구분에 소요되는 지연시간을 없애기 위한, 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
상기의 목적을 달성하기 위한 본 발명은, 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법에 있어서, 상기 네트워크 패킷 전달(TURN) 서버가 클라이언트로부터의 요청에 따라 상기 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 포트(TMAC)를 할당하고, 외부 클라이언트와의 데이터 송수신을 위한 공인 주소 및 포트(TMARC)를 할당한 후, 포트 순으로 연동 테이블에 등록하는 연동 테이블 등록 단계; 상기 네트워크 패킷 전달(TURN) 서버가 상기 클라이언트 또는 상기 외부 클라이언트로부터 데이터 패킷을 수신하는 데이터 패킷 수신 단계; 상기 네트워크 패킷 전달(TURN) 서버가 상기 수신한 데이터 패킷의 목적지 포트에 상응하는 목적지 주소를 상기 연동 테이블로부터 검색하는 연동 테이블 검색 단계; 및 상기 네트워크 패킷 전달(TURN) 서버가 상기 수신한 데이터 패킷을 상기 검색한 목적지 주소로 전달하는 데이터 패킷 전달 단계를 포함하는 것을 특징으로 한다.
한편, 본 발명은, 프로세서를 구비한 네트워크 패킷 전달(TURN) 서버에, 상기 네트워크 패킷 전달(TURN) 서버가 클라이언트로부터의 요청에 따라 상기 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 포트(TMAC)를 할당하고, 외부 클라이언트와의 데이터 송수신을 위한 공인 주소 및 포트(TMARC)를 할당한 후, 포트 순으로 연동 테이블에 등록하는 연동 테이블 등록 기능; 상기 네트워크 패킷 전달(TURN) 서버가 상기 클라이언트 또는 상기 외부 클라이언트로부터 데이터 패킷을 수신하는 데이터 패킷 수신 기능; 상기 네트워크 패킷 전달(TURN) 서버가 상기 수신한 데이터 패킷의 목적지 포트에 상응하는 목적지 주소를 상기 연동 테이블로부터 검색하는 연동 테이블 검색 기능; 및 상기 네트워크 패킷 전달(TURN) 서버가 상기 수신한 데이터 패킷을 상기 검색한 목적지 주소로 전달하는 데이터 패킷 전달 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 6은 본 발명에 따른 네트워크 패킷 전달(TURN) 서버에서의 고속 데이터 전달 방법에 대한 일실시예 설명도이다.
도 6에 도시된 바와 같이, 본 발명에 따른 TURN 서버(12)는 TURN 클라이언트(11)와의 데이터 패킷 송수신을 위한 주소(TMAC)를 별도로 할당한다. 따라서, 본 발명에 따른 TURN 서버(12)는 TURN 클라이언트(11)와의 패킷 송수신을 위한 제어 평면 주소과 데이터 평면 주소를 명확히 구분하여 처리하기 때문에 데이터 패킷 처리 지연 요인이 제거된다. 즉, 종래의 TURN 서버(12)에서 제어 평면 패킷(메시지)과 데이터 평면 패킷(메시지)을 구분하는 과정과 연동 테이블 검색 과정이 생략되기 때문에 데이터 패킷을 고속으로 전송할 수 있게 된다.
도 7은 본 발명에 따른 네트워크 패킷 전달(TURN) 서버에서의 고속 데이터 전달 방법 중 TURN 클라이언트 등록 과정에 대한 일실시예 흐름도이다.
먼저, TURN 서버(12)가 TURN 클라이언트(11)로부터 등록 요청 메시지를 수신하면(701) 인증 과정을 거쳐(702), 인증에 실패하였으면 등록 에러 메시지를 TURN 클라이언트(11)로 전달한다(703).
한편, 인증에 성공하였으면 클라이언트(11)와의 데이터 패킷 송수신을 위한 주소인 TMAC(TURN Mapped Address for Client)를 할당하고(704), TURN 클라이언트(11)가 외부 클라이언트(Remote Client)(13)와의 데이터 전송을 위하여 획득한 공인 주소인 TMARC(TURN Mapped Address for Remote Client)를 할당한다(705). 그리고, 연동 테이블(Relay Table)을 갱신한 후(706), 등록 응답 메시지를 TURN 클라이언트(11)로 전달한다(707).
이 때, TURN 서버(12)는 "704" 과정에서 TMARC와 마찬가지로 TMAC의 포트도 순차적으로 할당한다. 따라서, TURN 서버(12)는 수신한 패킷의 목적지 포트가 TMAC이거나 또는 TMARC이거나 관계없이 연동 테이블에서 포트를 기준으로 패킷을 전달할 수 있으며, 별도의 검색 과정이 필요없게 된다.
즉, 본 발명에서 TURN 서버(12)는 각각 다른 주소를 사용하여 제어 패킷 및 데이터 패킷을 수신하기 때문에, 종래에 매직 쿠키(Magic Cookie)를 비교하여 제어 패킷과 데이터 패킷을 구분하는 과정이 생략된다. 따라서, 데이터 패킷을 보다 빠르게 전달할 수 있다.
또한, 본 발명에서는 데이터 패킷 전달시에 필요한 연동 테이블 검색 과정이 간단해진다.
본 발명에 따른 연동 테이블은 하기의 [표 2]와 같다.
TURN 서버의 포트 목적지 주소
30000 NAT-1 매핑 주소
30001 CPE-1 주소
30002 NAT-2 매핑 주소
30003 CPE-2 주소
..... .....
30000 + (n-1)×2 - 1 NAT-n 매핑 주소
30000 + (n-1)×2 CPE-n 주소
상기 [표 2]에 도시된 바와 같이, 본 발명에 따른 연동 테이블은 새로운 TURN 클라이언트(11)가 등록할 때마다 새로운 TMAC 및 TMARC를 순차적으로 할당한다. 따라서, 본 발명에 따른 연동 테이블의 인덱스는 역방향(Backward)과 순방향(Forward) 모두 수신 데이터 패킷의 목적지 포트가 된다.
이와 같이, 본 발명에 따른 연동 테이블은 TURN 서버의 포트로 정렬되어 있기 때문에 목적지를 검색하지 않고도 목적지 주소를 알아낼 수 있고, 종래의 네트워크 주소 변환 방식에서 발생하는 지연을 방지할 수 있으며, 순방향(Forward) 및 역방향(Backward)의 데이터 패킷 전달 시간의 비대칭성도 해결할 수 있다. 본 발명의 효과는 도 8에 도시된 바와 같은 모의실험 결과 그래프에서 더욱 확연히 드러난다.
도 8은 네트워크 패킷 전달(TURN) 서버에서 연동 테이블 검색시 발생하는 부하(Overload)에 대한 일실시예 설명도이다.
현재 일반적으로 연동 테이블 검색시 사용되는 최적화 검색 알고리즘은 log n 차수(order)의 복잡도를 갖는다. 따라서, 연동 테이블 검색에서 1회 검색하는 것을 “1”의 부하 값으로 정의하고 복잡도의 계수를 “1”로 하면, 본 발명에 따른 네트워크 패킷 전달 방법과 종래의 네트워크 패킷 전달 방법에서 연동 테이블 검색시 발생하는 부하는 도 8에 도시된 바와 같다.
즉, 도 8에 도시된 바와 같이, 종래의 네트워크 패킷 전달 방법에서 연동 테이블 검색시 발생하는 부하는 일정수준에서 비록 포화(Saturation)되기는 하지만, 포화되기 전까지는 테이블이 증가할수록(등록된 클라이언트가 증가할수록) 증가하며, 포화된 경우에도 본 발명보다 4배 정도 많은 부하를 가짐을 확인할 수 있다.
이에 비해, 본 발명에 따른 네트워크 패킷 전달 방법에서 연동 테이블 검색시 발생하는 부하는 테이블이 증감에 관계없이 일정수준으로 유지된다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같이 본 발명은, 데이터 패킷의 전달 방향이 역방향(Backward) 또는 순방향(Forward)인지에 상관없이 수신 데이터 패킷의 목적지 포트 번호로 목적지 주소의 검색이 가능하기 때문에, 종래의 순방향(Forward) 네트워크 주소 변환에서 발생하는 연동 테이블 검색에 따른 지연을 방지할 수 있으며, 순방향(Forward) 및 역방향(Backward)의 데이터 패킷 전달 시간의 비대칭성을 제거할 수 있는 효과가 있다.
또한, 본 발명은, 네트워크 패킷 전달(TURN) 서버가 각각 다른 주소를 사용하여 제어 패킷과 데이터 패킷을 수신하기 때문에, 종래에 매직 쿠키(Magic Cookie)를 비교하여 제어 패킷과 데이터 패킷을 구분하는 과정이 생략되어 데이터 패킷을 보다 빠르게 전달할 수 있는 효과가 있다.
도 1은 본 발명이 적용되는 네트워크의 일실시예 구성도.
도 2는 종래의 TURN 서버에서 TURN 클라이언트의 서비스 요청에 따른 네트워크 주소 등록 과정에 대한 일실시예 흐름도.
도 3은 종래의 TURN 서버에서의 네트워크 주소 변환 과정에 대한 일실시예 설명도.
도 4는 종래의 TURN 서버에서의 패킷 전달 과정에 대한 일실시예 흐름도.
도 5는 종래의 TURN 서버에서의 네트워크 주소 변환 과정에 대한 다른 실시예 설명도.
도 6은 본 발명에 따른 네트워크 패킷 전달(TURN) 서버에서의 고속 데이터 전달 방법에 대한 일실시예 설명도.
도 7은 본 발명에 따른 네트워크 패킷 전달(TURN) 서버에서의 고속 데이터 전달 방법 중 TURN 클라이언트 등록 과정에 대한 일실시예 흐름도.
도 8은 네트워크 패킷 전달(TURN) 서버에서 연동 테이블 검색시 발생하는 부하(Overload)에 대한 일실시예 설명도.
* 도면의 주요 부분에 대한 부호 설명
11 : TURN 클라이언트 12 : TURN 서버
13 : 외부 클라이언트

Claims (4)

  1. 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법에 있어서,
    상기 네트워크 패킷 전달(TURN) 서버가 클라이언트로부터의 요청에 따라 상기 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 포트(TMAC)를 할당하고, 외부 클라이언트와의 데이터 송수신을 위한 공인 주소 및 포트(TMARC)를 할당한 후, 포트 순으로 연동 테이블에 등록하는 연동 테이블 등록 단계;
    상기 네트워크 패킷 전달(TURN) 서버가 상기 클라이언트 또는 상기 외부 클라이언트로부터 데이터 패킷을 수신하는 데이터 패킷 수신 단계;
    상기 네트워크 패킷 전달(TURN) 서버가 상기 수신한 데이터 패킷의 목적지 포트에 상응하는 목적지 주소를 상기 연동 테이블로부터 검색하는 연동 테이블 검색 단계; 및
    상기 네트워크 패킷 전달(TURN) 서버가 상기 수신한 데이터 패킷을 상기 검색한 목적지 주소로 전달하는 데이터 패킷 전달 단계
    를 포함하는 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법.
  2. 제 1 항에 있어서,
    상기 연동 테이블 등록 단계는,
    상기 네트워크 패킷 전달(TURN) 서버가 상기 클라이언트로부터 등록 요청 메시지를 수신하여 인증을 수행하는 단계;
    상기 네트워크 패킷 전달(TURN) 서버가 상기 클라이언트의 인증에 성공함에 따라 상기 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 포트(TMAC)를 할당하고, 상기 외부 클라이언트와의 데이터 송수신을 위한 공인 주소 및 포트(TMARC)를 할당하는 단계;
    상기 네트워크 패킷 전달(TURN) 서버가 상기 할당한 상기 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 상기 외부 클라이언트와의 데이터 송수신을 위한 공인 주소를 포트 순으로 연동 테이블에 등록하는 단계; 및
    상기 네트워크 패킷 전달(TURN) 서버가 등록 응답 메시지를 상기 클라이언트로 전달하는 단계
    를 포함하는 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 연동 테이블은,
    상기 네트워크 패킷 전달(TURN) 서버가 상기 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 상기 외부 클라이언트와의 데이터 송수신을 위한 공인 주소에 대하여 할당한 순차적인 포트 번호를 저장하기 위한 포트 번호 필드 및 포트 번호에 상응하는 목적지 주소를 저장하기 위한 목적지 주소 필드를 포함하는 것을 특징으로 하는 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법.
  4. 프로세서를 구비한 네트워크 패킷 전달 서버에,
    상기 네트워크 패킷 전달(TURN) 서버가 클라이언트로부터의 요청에 따라 상기 클라이언트와의 데이터 패킷 송수신을 위한 주소 및 포트(TMAC)를 할당하고, 외부 클라이언트와의 데이터 송수신을 위한 공인 주소 및 포트(TMARC)를 할당한 후, 포트 순으로 연동 테이블에 등록하는 연동 테이블 등록 기능;
    상기 네트워크 패킷 전달(TURN) 서버가 상기 클라이언트 또는 상기 외부 클라이언트로부터 데이터 패킷을 수신하는 데이터 패킷 수신 기능;
    상기 네트워크 패킷 전달(TURN) 서버가 상기 수신한 데이터 패킷의 목적지 포트에 상응하는 목적지 주소를 상기 연동 테이블로부터 검색하는 연동 테이블 검색 기능; 및
    상기 네트워크 패킷 전달(TURN) 서버가 상기 수신한 데이터 패킷을 상기 검색한 목적지 주소로 전달하는 데이터 패킷 전달 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020040007657A 2004-02-05 2004-02-05 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법 KR20050079409A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040007657A KR20050079409A (ko) 2004-02-05 2004-02-05 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040007657A KR20050079409A (ko) 2004-02-05 2004-02-05 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법

Publications (1)

Publication Number Publication Date
KR20050079409A true KR20050079409A (ko) 2005-08-10

Family

ID=37266347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040007657A KR20050079409A (ko) 2004-02-05 2004-02-05 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법

Country Status (1)

Country Link
KR (1) KR20050079409A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100871729B1 (ko) * 2006-01-17 2008-12-05 (주)케이티에프테크놀로지스 멀티모드 단말기 및 데이터 패킷 전달 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100871729B1 (ko) * 2006-01-17 2008-12-05 (주)케이티에프테크놀로지스 멀티모드 단말기 및 데이터 패킷 전달 방법

Similar Documents

Publication Publication Date Title
US7684397B2 (en) Symmetric network address translation system using STUN technique and method for implementing the same
US6360265B1 (en) Arrangement of delivering internet protocol datagrams for multimedia services to the same server
US8837483B2 (en) Mapping private and public addresses
US7068655B2 (en) Network address and/or port translation
JP5185435B2 (ja) UPnPとSTUNを組み合わせることに基づくNAT越え方法
US7609701B2 (en) Communication using private IP addresses of local networks
US20130308628A1 (en) Nat traversal for voip
US9407495B2 (en) Combining locally addressed devices and wide area network (WAN) addressed devices on a single network
US8650312B2 (en) Connection establishing management methods for use in a network system and network systems using the same
US8554946B2 (en) NAT traversal method and apparatus
US20040148439A1 (en) Apparatus and method for peer to peer network connectivty
US20060056420A1 (en) Communication apparatus selecting a source address
US20120084382A1 (en) On-the-fly reverse mapping
WO2020248963A1 (zh) 一种建立端到端网络连接的方法、装置及网络***
US20070192508A1 (en) Providing network address translation information
CN107094110B (zh) 一种dhcp报文转发方法及装置
US8978126B2 (en) Method and system for TCP turn operation behind a restrictive firewall
US20130117460A1 (en) Data management methods for use in a network system and network systems using the same
WO2011131088A1 (zh) 数据报文处理方法、入口隧道路由器及***
RU2373654C1 (ru) Способ установления однорангового соединения и предназначенная для этого система
US8457111B2 (en) Voice communication method and system in ubiquitous robotic companion environment
CA2884382C (en) Method and system for tcp turn operation behind a restrictive firewall
US20220337547A1 (en) Domain routing for private networks
KR20050079409A (ko) 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법
KR101124635B1 (ko) IPv4/IPv6 연동 게이트웨이

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid