KR20090042110A - Tcp 기반의 채널 설정방법 - Google Patents

Tcp 기반의 채널 설정방법 Download PDF

Info

Publication number
KR20090042110A
KR20090042110A KR1020070108028A KR20070108028A KR20090042110A KR 20090042110 A KR20090042110 A KR 20090042110A KR 1020070108028 A KR1020070108028 A KR 1020070108028A KR 20070108028 A KR20070108028 A KR 20070108028A KR 20090042110 A KR20090042110 A KR 20090042110A
Authority
KR
South Korea
Prior art keywords
nat
tcp
terminal
server
dummy packet
Prior art date
Application number
KR1020070108028A
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 KR1020070108028A priority Critical patent/KR20090042110A/ko
Publication of KR20090042110A publication Critical patent/KR20090042110A/ko

Links

Images

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/72Routing based on the source address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

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

Abstract

본 발명은 TCP(Transmission Control Protocol) 기반의 채널 설정방법에 관한 것이다. 본 채널 설정방법은, 제1 NAT를 통해 네트워크에 접속되는 제1 단말기와, 제2 NAT를 통해 상기 네트워크에 접속되는 제2 단말기를 포함하는 통신시스템에서, 제1 단말기에서 NAT 서버로 제1 TCP 더미 패킷을 전송하는 단계, NAT 서버에서 제1 TCP 더미 패킷으로부터 파악된 제1 NAT의 연결정보를 제2 단말기로 전송하는 단계, 제2 단말기에서 제2 및 제3 TCP 더미 패킷을 각각 NAT 서버와 제1 NAT로 전송하는 단계, NAT 서버에서 제2 TCP 더미 패킷으로부터 파악된 제2 NAT의 연결정보를 제1 단말기로 전송하는 단계, 및 제1 단말기에서 제2 NAT 연결정보에 기초하여 제2 NAT와 TCP 채널을 형성하는 단계를 포함한다. 이에 의해, 서로 다른 NAT에 접속되어 있는 단말기 간에 TCP 채널을 형성할 수 있다.
Figure P1020070108028
통신방법, TCP, IP 주소, 채널

Description

TCP 기반의 채널 설정방법{Channel structuring method in TCP}
본 발명은 TCP 기반의 채널 설정방법에 관한 것으로, 더욱 상세하게는 NAT (Network Address Translation) 및 방화벽 장비를 통과할 수 있도록 TCP 통신 채널을 설정하는 TCP 기반의 채널 설정방법에 관한 것이다.
일반적으로 NAT(Network Address Translation)를 사용하면 홈 네트워크나 소규모 사무실 네트워크가 단일 인터넷 연결을 공유하도록 구성할 수 있다. 즉, NAT는 외부 네트워크에 알려진 것과 다른 IP 주소를 사용하는 내부 네트워크에서 IP 주소를 변환한다. 따라서, NAT를 사용하여 내부 네트워크 주소를 하나 또는 그 이상의 공인 IP 주소로 사상할 수 있으며, 내부 네트워크로 들어오는 패킷들 상의 공인 IP(Public IP)를 다시 사설 IP(Private IP) 주소로 변환할 수 있다.
이와 같은 NAT은 라우터의 일부로서 포함되며, 종종 통합된 방화벽의 일부가 되기도 한다. 네트워크 관리자들은 공인 IP 주소에서 사설 IP 주소로, 사설 IP 주소에서 공인 IP 주소로 사상하기 위한 NAT 표를 만든다. NAT는 라우팅 정책과 함께 사용될 수도 있으며, NAT는 IP 주소를 정적으로 정의하거나, 또는 동적으로 변환하도록 설정될 수 있다.
그런데, 공인 IP 주소를 다시 사설 IP 주소로 변환하는 NAT 등이 설치된 네트워크 간에 직접 TCP(Transmission Control Protocol) 통신 채널을 형성시키기 위한 방법은 제안되고 있지 않다. 따라서, 인터넷상의 단말기들 사이에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용되는 프로토콜인 TCP를 사용하여 서로 다른 NAT에 접속되어 있는 단말기 간에 TCP 통신 채널을 형성할 수 없으므로, NAT 및 방화벽 장비 등을 통과할 수 있는 TCP 채널의 설정을 통해 직접 데이터를 송수신을 할 수 없게 된다.
따라서, 본 발명의 목적은, NAT 및 방화벽 장비 등을 통과할 수 있도록 TCP 채널을 설정하는 채널 설정방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명에 따른 통신방법은, 제1 NAT를 통해 네트워크에 접속되는 제1 단말기와, 제2 NAT를 통해 상기 네트워크에 접속되는 제2 단말기를 포함하는 통신시스템에서, 상기 제1 단말기에서 NAT 서버로 제1 TCP 더미 패킷을 전송하는 단계, 상기 NAT 서버에서 상기 제1 TCP 더미 패킷으로부터 파악된 상기 제1 NAT의 연결정보를 상기 제2 단말기로 전송하는 단계, 상기 제2 단말기에서 제2 및 제3 TCP 더미 패킷을 각각 상기 NAT 서버와 상기 제1 NAT로 전송하는 단계, 상기 NAT 서버에서 상기 제2 TCP 더미 패킷으로부터 파악된 상기 제2 NAT의 연결정보를 제1 단말기로 전송하는 단계, 및 상기 제1 단말기에서 상기 제2 NAT 연결 정보에 기초하여 상기 제2 NAT와 TCP 채널을 형성하는 단계를 포함한다.
상기 목적을 달성하기 위하여 본 발명에서는, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명에 따르면, 서로 다른 NAT에 접속되어 있는 단말기 간에 TCP 통신 채널을 형성할 수 있다. 따라서, TCP 통신 채널을 통해 NAT 및 방화벽 장비 등을 통과할 수 있도록 설정된 TCP 통신 채널을 통해 직접 데이터를 송수신할 수 있다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명에 따른 채널 설정방법이 적용되는 시스템의 구성의 일 예를 나타낸 것이다. 도 1을 참조하면, 제1 단말기(100)는 제1 NAT(110)에 접속되고, 제2 단말기(200)는 제2 NAT(210)에 접속되어 있다. 제1 단말기(100)는 제1 NAT(110)를 통해 인터넷(10)에 접속가능하며, 제2 단말기(200)는 제2 NAT(210)를 통해 인터넷(10)에 접속가능하다.
제1 및 제2 단말기(100, 200)는 화상통화 등과 같이 서로 데이터 통신이 가능한 단말기이며, 제1 및 제2 단말기(100, 200)는 각각 제1 및 제2 NAT(110, 210)를 통해 인터넷(10)에 접속된 NAT 서버(300)와 통신 가능하다.
제1 및 제2 NAT(110, 210)는 각각 내부 네트워크에서 사용하는 사설 IP를 공인 IP로 사상하거나, 인터넷(10)을 통해 수신되는 패킷들 상의 공인 IP를 다시 사설 IP로 변환한다.
그리고, NAT 서버(300)는 제1 및 제2 단말기(100, 200)에 대한 정보 등이 저장되는 데이터 베이스(310)와 접속된다. 데이터 베이스(310)는 별도의 서버에 구성될 수도 있고, NAT 서버(300) 내에 설치될 수 있다.
제1 및 제2 단말기(100, 200)는 사설 IP와 TCP 포트 번호가 할당되고, 제1 및 제2 NAT(110, 210)와 NAT 서버(300)는 각각 공인 IP 주소와 TCP 포트 번호가 할당되는데, 도 2는 그 일 예를 나타낸 것이다.
도 3은 본 발명의 일실시예에 따른 통신방법의 설명에 제공되는 신호 흐름도이다. 도 3을 참조하면, 먼저, 제1 단말기(100)와 제2 단말기(200)는 NAT(Network Address Translation) 세션(Session) 초기화 과정을 수행한다(S400, S405). 이 과정에서, 제1 단말기(100)와 제2 단말기(200)는 부팅하면서, 각각 NAT 서버(300)의 TCP 포트 번호(99)를 통해 TCP 연결되고, 연결된 채널을 통해서 자신의 ID 및 보유한 IP를 각각 전송한다. NAT 서버(300)는 제1 및 제2 단말기(100, 200)이 전송한 IP와 TCP 패킷을 통해 알아낸 IP를 데이터 베이스(310)에 저장하여, 후에 사설 IP(Private IP) 인지 공인 IP(Public IP)인지 여부를 구분한다.
다음으로, 제1 및 제2 단말기(100, 200) 간의 TCP 세션 연결과정을 수행한다. 제1 단말기(100)가 전송측, 제2 단말기(200)가 수신측이라고 가정하면, 제1 단말기(100)는 TCP 포트 번호 '1111'을 TCP 클라이언트 소켓으로 열고, 제2 단말기(200)는 TCP 포트 번호 '2222'를 TCP 서버 소켓으로 연다.
제1 단말기(100)은 NAT 세션으로 제2 단말기(200)로의 연결을 NAT 서버(300)에게 요청한다(S410). NAT 서버(300)는 데이터 베이스(310)에 저장된 제2 단말 기(200)에 대한 ID 등을 참조하여, 제2 단말기(200)에 대한 연결 요청이 유효한 경우, 제1 단말기(100)에 NAT TCP 세션으로 ACK 한다(S415).
제1 단말기(100)는 NAT 서버(300)로부터 ACK를 받은 후, raw 소켓(socket)를 열어 패킷 헤더에 근원지 정보(192:168.1.1:1111)와 목적지 정보(211.45.0.1:100)을 삽입한 TCP 더미 패킷을 NAT 서버(300)로 전송한다(S420).
NAT 서버(300)는 제1 단말기(100)가 전송한 TCP 더미 패킷으로 제1 NAT(110)의 IP 주소(211.45.1.1)와 포트 번호(11111)를 알아낸다. NAT 서버(300)는 제2 단말기(200)에게 NAT TCP 세션으로 제1 NAT(110)의 IP주소(211.45.1.1)와 포트번호(11111) 등을 포함하는 연결정보를 전송한다(S425).
제2 단말기(200)는 raw 소켓을 열어, 헤더에 근원지 정보( (192.168.2.2:2222), 목적지 정보(211.45.1.0:100)를 삽입하여 TCP 더미 패킷을 보내고(S430), 역시 같은 raw 소캣으로 패킷 헤더에 근원지 IP 주소:포트 번호(192.168.2.2:2222)와 목적지 정보(211.45.1.1:11111)를 삽입하여 TCP 더미 패킷을 보낸다(S435).
이에 따라, 제2 NAT(210)의 IP 주소:포트 번호(211.45.2.2:22222)는 제1 NAT(110)의 IP 주소: 포트 번호(211.45.1.1:11112)에 대해 유효한 TCP 핀홀이 유지된다. NAT 서버(300)는 제2 단말기(200)에 전송한 TCP 더미 패킷으로 알아낸 제2 NAT(210)의 IP 주소(211.45.2.2)와 포트 번호(22222)를 NAT 세션을 통해 제1 단말기(100)에 전달한다(S440). 이에 따라, 제1 단말기(100)의 클라이언트 소켓(191.168.1.1:1111)은 211.45.2.2:22222 로 TCP 연결한다(S445).
이와 같은 과정에 의해, 제1 단말기(100)와 제2 단말기(200) 간에 TCP 통신 채널이 형성되어, 형성된 TCP 채널을 통해 서로 데이터를 송수신할 수 있다. 또한, 상기한 실시예에서는 NAT에 접속된 단말기를 예로 들어 설명하였지만, 이것은 하나의 예일 뿐이며, 본 발명은 이에 한정되지 않는다.
한편, 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
도 1은 본 발명에 따른 채널 설정방법이 적용되는 시스템의 구성을 나타낸 도면,
도 2는 도 1의 시스템에 부여된 IP 주소와 포트 번호의 일 예를 나타낸 도면, 그리고
도 3은 본 발명의 일실시예에 따른 채널 설정방법의 설명에 제공되는 신호 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
100 : 제1 단말기 110 : 제1 NAT
200 : 제2 단말기 210 : 제2 NAT
300 : NAT 서버 310 : 데이터 베이스

Claims (5)

  1. 제1 NAT를 통해 네트워크에 접속되는 제1 단말기와, 제2 NAT를 통해 상기 네트워크에 접속되는 제2 단말기를 포함하는 통신시스템에서 채널 설정방법에 있어서,
    상기 제1 단말기에서 NAT 서버로 제1 TCP 더미 패킷을 전송하는 단계;
    상기 NAT 서버에서 상기 제1 TCP 더미 패킷으로부터 파악된 상기 제1 NAT의 연결정보를 상기 제2 단말기로 전송하는 단계;
    상기 제2 단말기에서 제2 및 제3 TCP 더미 패킷을 각각 상기 NAT 서버와 상기 제1 NAT로 전송하는 단계;
    상기 NAT 서버에서 상기 제2 TCP 더미 패킷으로부터 파악된 상기 제2 NAT의 연결정보를 제1 단말기로 전송하는 단계; 및
    상기 제1 단말기에서 상기 제3 TCP 더미 패킷 및 상기 제2 NAT 연결정보에 기초하여 상기 제2 NAT와 TCP 채널을 형성하는 단계;를 포함하는 것을 특징으로 하는 채널 설정방법.
  2. 제1항에 있어서,
    상기 제1 및 제2 단말기가 상기 NAT 서버와 각각 TCP 연결을 통해 자신의 ID와 할당된 IP 주소를 전송하여 등록하는 단계;를 더 포함하는 것을 특징으로 하는 채널 설정방법.
  3. 제2항에 있어서,
    상기 제1 단말기에서 상기 NAT 서버를 통해 상기 제2 단말기와의 접속을 요청하고, 상기 NAT 서버에서 상기 제2 단말기에 대한 정보가 등록되어 있으며, ACK를 전송하는 단계;를 더 포함하는 것을 특징으로 하는 채널 설정방법.
  4. 제1항에 있어서,
    상기 형성된 TCP 채널을 통해 상기 제1 단말기와 상기 제2 단말기 간에 데이터를 송수신하는 단계;를 더 포함하는 것을 특징으로 하는 채널 설정방법.
  5. 제1항에 있어서,
    상기 연결정보는, IP 주소와 TCP 포트 번호를 포함하는 것을 특징으로 하는 채널 설정방법.
KR1020070108028A 2007-10-25 2007-10-25 Tcp 기반의 채널 설정방법 KR20090042110A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070108028A KR20090042110A (ko) 2007-10-25 2007-10-25 Tcp 기반의 채널 설정방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070108028A KR20090042110A (ko) 2007-10-25 2007-10-25 Tcp 기반의 채널 설정방법

Publications (1)

Publication Number Publication Date
KR20090042110A true KR20090042110A (ko) 2009-04-29

Family

ID=40765022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070108028A KR20090042110A (ko) 2007-10-25 2007-10-25 Tcp 기반의 채널 설정방법

Country Status (1)

Country Link
KR (1) KR20090042110A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101337111B1 (ko) * 2011-12-29 2013-12-05 주식회사 엘지유플러스 원격 영상 모니터링을 위한 서버, 시스템 및, 제어방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101337111B1 (ko) * 2011-12-29 2013-12-05 주식회사 엘지유플러스 원격 영상 모니터링을 위한 서버, 시스템 및, 제어방법

Similar Documents

Publication Publication Date Title
JP4083737B2 (ja) ネットワークアドレス変換(nat)によるピアツーピアネットワーク通信
US7684397B2 (en) Symmetric network address translation system using STUN technique and method for implementing the same
JP3868449B2 (ja) ネットワークアドレス変換(nat)によるピアツーピアネットワーク通信
US7245622B2 (en) Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload
JP4142014B2 (ja) ユーザ特定システム、ユーザ特定装置、ユーザ特定方法、アドレス変換装置、及びプログラム
US9497168B2 (en) Method and apparatus for supporting communications between a computing device within a network and an external computing device
US8194566B2 (en) Information processing device, and bubble packet transmission method and program
US9137313B2 (en) Data transmission system and method using relay server
US20080133774A1 (en) Method for implementing transparent gateway or proxy in a network
US20090138611A1 (en) System And Method For Connection Of Hosts Behind NATs
US8611354B2 (en) Method and apparatus for relaying packets
US20070094411A1 (en) Network communications system and method
US20040100976A1 (en) Dynamic network address translation system and method of transparent private network device
CN100464540C (zh) 一种跨网关通信的方法
JP2011515945A (ja) ローカル・ネットワーク間でデータ・パケットを通信するための方法および装置
EP2466806B1 (en) Method and system for implementing network intercommunication
US20100002701A1 (en) System and method for media communication through network address translation
US9413590B2 (en) Method for management of a secured transfer session through an address translation device, corresponding server and computer program
JPH11252172A (ja) パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体
US20030031173A1 (en) Multilayer internet protocol (MLIP) for peer-to-peer service of private internet and method for transmitting/receiving MLIP packet
US7499448B2 (en) Method for data exchange between network elements in networks with different address ranges
KR20090042110A (ko) Tcp 기반의 채널 설정방법
CN114531417A (zh) 一种通信方法及装置
JP2008079059A (ja) IPsecの複数セッションを処理する通信装置及びその処理方法
KR20130085556A (ko) 메시지 인증 방법 및 그를 위한 ip-pbx 시스템

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination