[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20210049335A - 테더링 서비스 제공을 위한 ip 패킷 변환 방법 및 이를 수행하는 통신 시스템 - Google Patents

테더링 서비스 제공을 위한 ip 패킷 변환 방법 및 이를 수행하는 통신 시스템 Download PDF

Info

Publication number
KR20210049335A
KR20210049335A KR1020190133517A KR20190133517A KR20210049335A KR 20210049335 A KR20210049335 A KR 20210049335A KR 1020190133517 A KR1020190133517 A KR 1020190133517A KR 20190133517 A KR20190133517 A KR 20190133517A KR 20210049335 A KR20210049335 A KR 20210049335A
Authority
KR
South Korea
Prior art keywords
address
electronic device
packet
destination
forwarding table
Prior art date
Application number
KR1020190133517A
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 KR1020190133517A priority Critical patent/KR20210049335A/ko
Priority to US16/906,297 priority patent/US11483280B2/en
Publication of KR20210049335A publication Critical patent/KR20210049335A/ko

Links

Images

Classifications

    • 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/251Translation of Internet protocol [IP] addresses between different IP versions
    • 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/2521Translation architectures other than single NAT servers
    • H04L61/2525Translation at a client
    • 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
    • H04L61/6022
    • 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/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

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

Abstract

테더링 서비스 제공을 위한 IP 패킷 변환 방법에서, 제1 전자 장치를 통하여 제2 전자 장치가 테더링 서비스를 제공받도록, 내부 네트워크를 통하여 제1 전자 장치에 제2 전자 장치를 연결한다. 제1 전자 장치가 서로 다른 포맷을 가지고 상호 변환 가능한 제1 IP 어드레스 및 제2 IP 어드레스를 제2 전자 장치에 할당하여, 포워딩 테이블을 형성한다. 제2 전자 장치가 내부 네트워크 및 제1 전자 장치를 통하여 외부 네트워크와 통신하는 경우에, 전송되는 제1 IP 패킷이 제2 전자 장치의 제1 IP 어드레스 및 제2 IP 어드레스 중 하나를 포함하도록, 제1 전자 장치가 포워딩 테이블을 기초로 제1 IP 패킷에 대한 IP 어드레스 변환을 수행하여 패킷 처리를 수행한다.

Description

테더링 서비스 제공을 위한 IP 패킷 변환 방법 및 이를 수행하는 통신 시스템{METHOD OF TRANSLATING IP PACKET FOR TETHERING SERVICE AND COMMUNICATION SYSTEM PERFORMING THE SAME}
본 발명은 데이터 통신에 관한 것으로서, 더욱 상세하게는 테더링 서비스 제공을 위한 IP(Internet Protocol) 패킷 변환 방법 및 상기 IP 패킷 변환 방법을 수행하는 통신 시스템에 관한 것이다.
정보통신 기술과 반도체 기술의 발전으로 각종 전자 장치들이 다양한 멀티미디어 서비스를 제공하는 멀티미디어 장치로 발전하고 있다. 전자 장치는 다른 전자 장치가 무선 인터넷 서비스를 사용할 수 있도록 테더링(tethering) 서비스를 제공할 수 있다. 테더링은 인터넷 연결 기능을 가지는 전자 장치가 인터넷 연결을 필요로 하는 다른 전자 장치로 인터넷 연결 서비스를 제공하는 기술이다. 테더링 서비스 제공 시에 IPv4(Internet Protocol version 4) 프로토콜을 따르는 패킷은 포트 변환을 포함하는 NAT(Network Address Translation)를 이용하여 처리되어 왔다.
한편, IPv4 프로토콜의 한계를 극복하기 위해 IPv6(Internet Protocol version 6) 프로토콜이 제안되었고, IPv6 프로토콜 기반의 통신 환경이 구현되고 있다. 하지만 IPv6 프로토콜 기반의 통신 환경에서도 기존의 IPv4 프로토콜을 사용하는 서비스들이 여전히 존재하며, 따라서 NAT를 이용한 패킷 처리는 여전히 필요할 수 있다. 다만 NAT를 이용하는 경우에 처리 시간이 증가하고 이에 따라 주소 변환 시간이 증가하며 메모리 사용량 또한 많아지는 문제가 있다.
본 발명의 일 목적은 NAT 없이 통신 성능을 향상시킬 수 있는 테더링 서비스 제공을 위한 IP 패킷 변환 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 IP 패킷 변환 방법을 수행하는 통신 시스템을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 테더링 서비스 제공을 위한 IP 패킷 변환 방법에서, 제1 전자 장치를 통하여 제2 전자 장치가 테더링 서비스를 제공받도록, 내부 네트워크를 통하여 상기 제1 전자 장치에 상기 제2 전자 장치를 연결한다. 상기 제1 전자 장치가 서로 다른 포맷을 가지고 상호 변환 가능한 제1 IP(Internet Protocol) 어드레스 및 제2 IP 어드레스를 상기 제2 전자 장치에 할당하여, 포워딩 테이블을 형성한다. 상기 제2 전자 장치가 상기 내부 네트워크 및 상기 제1 전자 장치를 통하여 외부 네트워크와 통신하는 경우에, 전송되는 제1 IP 패킷이 상기 제2 전자 장치의 상기 제1 IP 어드레스 및 상기 제2 IP 어드레스 중 하나를 포함하도록, 상기 제1 전자 장치가 상기 포워딩 테이블을 기초로 상기 제1 IP 패킷에 대한 IP 어드레스 변환을 수행하여 패킷 처리를 수행한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 통신 시스템은 제1 전자 장치, 제2 전자 장치, 내부 네트워크 및 외부 네트워크를 포함한다. 상기 제2 전자 장치는 상기 제1 전자 장치를 통하여 테더링 서비스를 제공받는다. 상기 내부 네트워크는 상기 제2 전자 장치가 상기 테더링 서비스를 제공받도록 상기 제1 전자 장치에 상기 제2 전자 장치를 연결한다. 상기 외부 네트워크는 상기 제1 전자 장치와 외부 서버를 연결한다. 상기 내부 네트워크를 통하여 상기 제1 전자 장치에 상기 제2 전자 장치를 연결한 이후에, 상기 제1 전자 장치는 서로 다른 포맷을 가지고 상호 변환 가능한 제1 IP(Internet Protocol) 어드레스 및 제2 IP 어드레스를 상기 제2 전자 장치에 할당하여 포워딩 테이블을 형성한다. 상기 제2 전자 장치가 상기 내부 네트워크 및 상기 제1 전자 장치를 통하여 상기 외부 네트워크와 통신하는 경우에, 전송되는 제1 IP 패킷이 상기 제2 전자 장치의 상기 제1 IP 어드레스 및 상기 제2 IP 어드레스 중 하나를 포함하도록, 상기 제1 전자 장치는 상기 포워딩 테이블을 기초로 상기 제1 IP 패킷에 대한 IP 어드레스 변환을 수행하여 패킷 처리를 수행한다.
상기와 같은 본 발명의 실시예들에 따른 테더링 서비스 제공을 위한 IP 패킷 변환 방법 및 통신 시스템에서는, 테더링 서비스를 제공하는 제1 전자 장치가 테더링 서비스를 제공받는 제2 전자 장치의 IPv4 어드레스 및 CLAT IPv6 어드레스를 포함하는 포워딩 테이블을 형성하며, 제1 전자 장치는 포워딩 테이블을 기초로 제2 전자 장치와 외부 네트워크 사이에서 전송되는 제1 IP 패킷에 대한 IP 어드레스 변환을 수행할 수 있다. 이 때, 제1 IP 패킷은 제1 전자 장치의 어드레스가 아닌 제2 전자 장치의 IPv4 어드레스 및 CLAT IPv6 어드레스 중 하나를 포함할 수 있다. NAT 없이 포워딩 테이블을 이용한 1회의 어드레스 변환만이 수행되며, 따라서 CPU 처리 시간 및 메모리 사용량이 감소되고 메모리 효율성, 통신 성능 및 효율이 향상될 수 있다.
도 1은 본 발명의 실시예들에 따른 테더링 서비스 제공을 위한 IP 패킷 변환 방법을 나타내는 순서도이다.
도 2 및 3은 본 발명의 실시예들에 따른 통신 시스템을 나타내는 블록도들이다.
도 4는 본 발명의 실시예들에 따른 통신 시스템에서 전송되는 IP 패킷의 구조를 나타내는 도면이다.
도 5a, 5b 및 5c는 도 4의 IP 패킷에 포함되는 헤더의 구조를 나타내는 도면들이다.
도 6은 본 발명의 실시예들에 따른 통신 시스템에 포함되는 제1 전자 장치를 나타내는 블록도이다.
도 7은 도 6의 제1 전자 장치에 포함되는 변환 장치의 일 예를 나타내는 블록도이다.
도 8은 도 1의 포워딩 테이블을 형성하는 단계의 일 예를 나타내는 순서도이다.
도 9는 도 8의 동작에 의해 형성되는 포워딩 테이블의 일 예를 나타내는 도면이다.
도 10 및 11은 도 1의 패킷 처리를 수행하는 단계의 예를 나타내는 순서도들이다.
도 12는 도 10 및 11의 동작을 설명하기 위한 도면이다.
도 13은 도 1의 패킷 처리를 수행하는 단계의 다른 예를 나타내는 순서도이다.
도 14는 도 13의 동작을 설명하기 위한 도면이다.
도 15는 도 6의 제1 전자 장치에 포함되는 변환 장치의 다른 예를 나타내는 블록도이다.
도 16 및 17은 도 6의 제1 전자 장치에 포함되는 통신 프로세서 및 어플리케이션 프로세서의 예를 나타내는 블록도들이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 테더링 서비스 제공을 위한 IP 패킷 변환 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 테더링 서비스 제공을 위한 IP 패킷 변환 방법은, 제1 전자 장치, 제2 전자 장치, 내부 네트워크 및 외부 네트워크를 포함하는 통신 시스템에 의해 수행된다. 상기 통신 시스템 및 이에 포함되는 상기 제1 전자 장치의 구조에 대해서는 도 2 내지 7을 참조하여 후술하도록 한다.
본 발명의 실시예들에 따른 테더링 서비스 제공을 위한 IP 패킷 변환 방법에서, 상기 제1 전자 장치를 통하여 상기 제2 전자 장치가 테더링 서비스를 제공받도록, 상기 내부 네트워크를 통하여 상기 제1 전자 장치에 상기 제2 전자 장치를 연결한다(단계 S100).
전자 장치는 다른 전자 장치가 무선 인터넷 서비스를 사용할 수 있도록 테더링(tethering) 서비스를 제공할 수 있다. 테더링은 인터넷 연결 기능을 가지는 전자 장치가 인터넷 연결을 필요로 하는 다른 전자 장치로 인터넷 연결 서비스를 제공하는 기술이다. 예를 들어, 테더링 서비스를 제공하는 전자 장치(예를 들어, 상기 제1 전자 장치)는 테더링 서비스를 제공받는 외부 전자 장치(예를 들어, 상기 제2 전자 장치)로 테더링 서비스를 제공하기 위하여 액세스 포인트(access point)로 동작할 수 있다. 상기 외부 전자 장치는 유/무선 네트워크를 통하여 액세스 포인트로 동작하는 상기 전자 장치에 접속하여 무선 인터넷 서비스를 위한 데이터를 송수신할 수 있다.
상기 내부 네트워크를 통하여 상기 제1 전자 장치에 상기 제2 전자 장치를 연결한 이후에, 상기 제1 전자 장치는 서로 다른 포맷을 가지고 상호 변환 가능한 제1 IP(Internet Protocol) 어드레스 및 제2 IP 어드레스를 상기 제2 전자 장치에 할당하여, 포워딩(forwarding) 테이블을 형성한다(단계 S200). 예를 들어, 상기 포워딩 테이블은 상기 제2 전자 장치의 상기 제1 IP 어드레스 및 상기 제2 IP 어드레스를 포함하며, 그 밖에 상기 제2 전자 장치 및 상기 내부 네트워크에 대한 정보를 더 포함할 수 있다. 상기 포워딩 테이블의 구조에 대해서는 도 9를 참조하여 후술하도록 한다.
일 실시예에서, 상기 포워딩 테이블은 빠른 동작(예를 들어, 빠른 패킷 포워딩)을 위해 제한된 개수의 정보만을 포함할 수 있다. NAT(Network Address Translation)를 구현하기 위한 NAT 테이블과 비교하였을 때, 상기 포워딩 테이블은 매우 작은 크기를 가질 수 있다.
일 실시예에서, 상기 제1 IP 어드레스는 제1 버전의 인터넷 프로토콜의 따르는 제1 포맷을 가지고, 상기 제2 IP 어드레스는 상기 제1 버전과 다른 제2 버전의 인터넷 프로토콜의 따르는 제2 포맷을 가질 수 있다. 예를 들어, 상기 제1 버전의 인터넷 프로토콜은 IPv4(Internet Protocol version 4) 프로토콜이고, 상기 제2 버전의 인터넷 프로토콜은 IPv6(Internet Protocol version 6) 프로토콜일 수 있다. 또한, 상기 제1 IP 어드레스와 상기 제2 IP 어드레스는 CLAT(Client side translator)에 기초하여 상호 변환될 수 있다.
상기 제2 전자 장치가 상기 내부 네트워크 및 상기 제1 전자 장치를 통하여 상기 외부 네트워크와 통신하는 경우에, 전송되는 제1 IP 패킷이 상기 제2 전자 장치의 상기 제1 IP 어드레스 및 상기 제2 IP 어드레스 중 하나를 포함하도록, 상기 제1 전자 장치는 상기 포워딩 테이블을 기초로 상기 제1 IP 패킷에 대한 IP 어드레스 변환을 수행하여 패킷 처리를 수행한다(단계 S300).
일 실시예에서, 상기 내부 네트워크는 상기 제1 버전의 인터넷 프로토콜(예를 들어, IPv4 프로토콜) 기반의 통신 환경이고, 상기 외부 네트워크는 상기 제2 버전의 인터넷 프로토콜(예를 들어, IPv6 프로토콜) 기반의 통신 환경일 수 있다.
일 실시예에서, 상기 제1 IP 패킷에 대한 IP 어드레스 변환을 수행하는 경우에 NAT는 수행되지 않으며, 이에 따라 통신 성능 및 효율이 향상될 수 있다.
일 실시예에서, 상기 제2 전자 장치와 상기 외부 네트워크가 통신하는 경우는, 상기 제1 IP 패킷이 상기 외부 네트워크로부터 상기 제1 전자 장치 및 상기 내부 네트워크를 통하여 상기 제2 전자 장치로 전송되는 제1 케이스, 및 상기 제1 IP 패킷이 상기 제2 전자 장치로부터 상기 내부 네트워크 및 상기 제1 전자 장치를 통하여 상기 외부 네트워크로 전송되는 제2 케이스를 포함할 수 있다. 상기 제1 케이스에 대해서는 도 10 내지 12를 참조하여 후술하고 상기 제2 케이스에 대해서는 도 13 내지 14를 참조하여 후술하도록 한다.
IPv6/CLAT을 사용하는 종래의 유/무선 테더링 환경에서, 원격 서버에서 테더링된 전자 장치로 패킷이 전송되는 경우에, 수신된 CLAT IPv6 어드레스를 가지는 패킷은 테더링 서비스를 제공하는 전자 장치 내에서 변환되어 테더링된 전자 장치로 제공된다. 이 때, CLAT IPv6 어드레스를 가지는 패킷은 먼저 CLAT 변환되어 테더링 서비스를 제공하는 전자 장치의 IPv4 어드레스를 가지는 패킷으로 변환되며, 이후에 NAT 변환되어 테더링된 전자 장치의 IPv4 어드레스를 가지는 패킷으로 변환된다. 다시 말하면, 총 2회의 변환이 수행되며, 이에 따라 통신 성능 및 효율이 저하되는 문제가 있었다. 테더링된 전자 장치에서 원격 서버로 패킷이 전송되는 경우에도 마찬가지로 2회의 변환이 수행된다. 또한, IP 어드레스 변환 및 포트 변환을 포함하는 NAT를 이용하는 경우에 NAT 테이블이 요구되는데, NAT 테이블의 유지/검색/변환에는 사용하는 만큼의 MEMORY가 필요하고, 검색/변환에 CPU를 사용하므로 시간/전류의 소모가 발생하는 문제가 있었다.
본 발명의 실시예들에 따른 테더링 서비스 제공을 위한 IP 패킷 변환 방법에서는, 테더링 서비스를 제공하는 상기 제1 전자 장치가 테더링 서비스를 제공받는(즉, 테더링된) 상기 제2 전자 장치의 IPv4 어드레스 및 CLAT IPv6 어드레스를 포함하는 상기 포워딩 테이블을 형성하며, 상기 제1 전자 장치는 상기 포워딩 테이블을 기초로 상기 제2 전자 장치와 상기 외부 네트워크 사이에서 전송되는 상기 제1 IP 패킷에 대한 IP 어드레스 변환을 수행할 수 있다. 이 때, 상기 제1 IP 패킷은 상기 제1 전자 장치의 어드레스가 아닌 상기 제2 전자 장치의 IPv4 어드레스 및 CLAT IPv6 어드레스 중 하나를 포함할 수 있다. NAT 없이 상기 포워딩 테이블을 이용한 1회의 어드레스 변환만이 수행되며, 따라서 CPU 처리 시간 및 메모리 사용량이 감소되고 메모리 효율성, 통신 성능 및 효율이 향상될 수 있다.
도 2 및 3은 본 발명의 실시예들에 따른 통신 시스템을 나타내는 블록도들이다. 도 2는 테더링된 상기 제2 전자 장치가 연결되기 이전의 상태를 나타내고, 도 3은 테더링된 상기 제2 전자 장치가 연결된 이후의 상태를 나타낸다.
도 2를 참조하면, 통신 시스템(10)은 제1 전자 장치(100) 및 외부 네트워크(IPv6 network)(400)를 포함한다. 통신 시스템(10)은 제1 인터넷 네트워크(IPv6 internet)(410), 제1 서버(IPv6 server)(420), PLAT(Provider side translator)(510), 제2 인터넷 네트워크(IPv4 internet)(520) 및 제2 서버(IPv4 server)(530)를 더 포함할 수 있다.
외부 네트워크(400)는 상대적으로 긴 거리에서 데이터를 주고받기 위한 임의의 무선 네트워크일 수 있다. 예를 들어, 외부 네트워크(400)는 3G 통신, 4G 또는 LTE(Long Term Evolution) 통신, 5G 통신 등과 같은 무선 이동 통신(wireless mobile communication)을 수행할 수 있다.
상술한 것처럼, 외부 네트워크(400)는 상기 제2 버전의 인터넷 프로토콜(예를 들어, IPv6 프로토콜) 기반의 통신 환경일 수 있다. IPv4 프로토콜의 한계를 극복하기 위해 IPv6 프로토콜이 제안되었고, IPv6 프로토콜 기반의 통신 환경이 구현되고 있으나, IPv6 프로토콜 기반의 통신 환경에서도 기존의 IPv4 프로토콜을 사용하는 서비스들이 여전히 존재하며, 따라서 통신 시스템(10)은 IPv4 프로토콜을 사용하는 서비스(또는 서버)와 IPv6 프로토콜을 사용하는 서비스(또는 서버)가 혼재되어 있을 수 있다.
제1 전자 장치(100)는 외부 네트워크(400)를 통하여 외부 서버(예를 들어, 제1 서버(420) 및/또는 제2 서버(530))와 연결되며, 서비스들(SVC11, SVC12)을 실행할 수 있다. 예를 들어, 서비스(SVC11)는 상기 IPv4 프로토콜을 사용하는 서비스이고, 서비스(SVC12)는 상기 IPv6 프로토콜을 사용하는 서비스일 수 있다.
서비스(SVC12)를 실행하고자 하는 경우에, 제1 전자 장치(100)는 공인(public) 또는 공용 IP 어드레스(PUB_ADDR1)를 이용할 수 있다. 공인 IP 어드레스(PUB_ADDR1)는 IPv6 프로토콜을 따르며 외부 네트워크(400) 또한 IPv6 프로토콜 기반의 통신 환경이므로, 제1 전자 장치(100)는 어드레스 변환 없이 공인 IP 어드레스(PUB_ADDR1)를 기초로(예를 들어, 공인 IP 어드레스(PUB_ADDR1)를 포함하는 IP 패킷을 기초로) 외부 네트워크(400) 및 제1 인터넷 네트워크(410)를 통하여 제1 서버(420)에 접속할 수 있다.
서비스(SVC11)를 실행하고자 하는 경우에, 제1 전자 장치(100)는 사설(private) IP 어드레스(PRV_ADDR1)를 이용할 수 있다. 다만, 사설 IP 어드레스(PRV_ADDR1)는 IPv4 프로토콜을 따르며 외부 네트워크(400)는 IPv6 프로토콜 기반의 통신 환경이므로, 제1 전자 장치(100)는 사설 IP 어드레스(PRV_ADDR1)를 IPv6 프로토콜을 따르는 CLAT 어드레스(CLAT_ADDR1)로 변환하며, 변환된 CLAT 어드레스(CLAT_ADDR1)를 기초로(예를 들어, CLAT 어드레스(CLAT_ADDR1)를 포함하는 IP 패킷을 기초로) 외부 네트워크(400), PLAT(510) 및 제2 인터넷 네트워크(520)를 통하여 제2 서버(530)에 접속할 수 있다.
다시 말하면, 상기 IPv4 프로토콜을 사용하는 서비스(예를 들어, SVC11) 및 상기 IPv6 프로토콜을 사용하는 서비스(예를 들어, SVC12) 모두를 실행할 수 있도록, 제1 전자 장치(100)는 사설 IPv4 어드레스(예를 들어, PRV_ADDR1), CLAT IPv6 어드레스(예를 들어, CLAT_ADDR1) 및 공인 IPv6 어드레스(예를 들어, PUB_ADDR1)를 사용하며, 상기 사설 IPv4 어드레스를 상기 CLAT IPv6 어드레스로 변환하기 위한 CLAT이 제1 전자 장치(100)에 탑재될 수 있다. 이 때, 제1 전자 장치(100)의 상기 사설 IPv4 어드레스 및 상기 CLAT IPv6 어드레스는 제1 전자 장치(100)의 고유 어드레스일 수 있다. 편의상 도 2에서는 IP 어드레스만을 도시하였으나, 실제로는 IP 어드레스를 포함하는 IP 패킷이 사용될 수 있다.
일 실시예에서, 제1 전자 장치(100)는 휴대폰(mobile phone), 스마트 폰(smart phone), 태블릿(tablet) PC(Personal Computer), 노트북(laptop computer), PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 디지털 카메라(digital camera), 캠코더(camcorder), 휴대용 게임 콘솔(portable game console), 음악 재생기(music player), 동영상 재생기(video player), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(Internet of Things) 기기, e-북(e-book), VR(Virtual Reality) 기기, AR(Augmented Reality) 기기, 드론(drone) 등의 임의의 모바일 장치일 수 있다.
제1 인터넷 네트워크(410) 및 제1 서버(420)는 상기 IPv6 프로토콜을 사용하는 서비스를 제공하기 위해 구현될 수 있다. 제1 인터넷 네트워크(410) 및 제1 서버(420)는 외부 네트워크(400)와 직접 연결될 수 있다.
제2 인터넷 네트워크(520) 및 제2 서버(530)는 상기 IPv4 프로토콜을 사용하는 서비스를 제공하기 위해 구현될 수 있다. 제2 인터넷 네트워크(520) 및 제2 서버(530)는 IPv6 프로토콜 기반의 통신 환경인 외부 네트워크(400)와 직접 연결될 수 없으며, PLAT(510)을 통하여 외부 네트워크(400)와 연결될 수 있다.
PLAT(510)은 제1 전자 장치(100)에 탑재되는 CLAT에 대응하는 구성요소이며, 외부 네트워크(400)를 통해 제공되는 상기 CLAT IPv6 어드레스를 상기 사설 IPv4 어드레스로 변환할 수 있다. 상기 CLAT 및 PLAT(510)을 이용하여 상기 IPv6 프로토콜 기반의 통신 환경에서 상기 IPv4 프로토콜을 사용하는 서비스를 제공할 수 있다. 상기 CLAT 및 PLAT(510)을 합쳐서 464XLAT이라고 부를 수 있다.
한편, 제1 전자 장치(100)가 상기 외부 서버에 접속하는 동작을 중심으로 설명하였으나, 상기 외부 서버에서 제1 전자 장치(100)에 데이터를 전송하는 경우의 동작은 상술한 동작의 역순으로 수행될 수 있다.
도 3을 참조하면, 통신 시스템(20)은 제1 전자 장치(100), 제2 전자 장치(200), 내부 네트워크(300) 및 외부 네트워크(400)를 포함한다. 통신 시스템(20)은 제1 인터넷 네트워크(410), 제1 서버(420), PLAT(510), 제2 인터넷 네트워크(520) 및 제2 서버(530)를 더 포함할 수 있다.
제2 전자 장치(200) 및 내부 네트워크(300)가 추가되는 것을 제외하면, 도 3의 통신 시스템(20)은 도 2의 통신 시스템(10)과 실질적으로 동일하며, 따라서 중복되는 설명은 생략하도록 한다.
내부 네트워크(300)는 상대적으로 짧은 거리에서 데이터를 주고받기 위한 임의의 유/무선 네트워크일 수 있다. 예를 들어, 내부 네트워크(300)는 USB(Universal Serial Bus), 블루투스(Bluetooth) 및 와이파이(WiFi; Wireless Fidelity) 중 하나에 기초하여 통신을 수행할 수 있다. 일반적으로, 테더링 서비스는 USB 테더링, 블루투스 테더링 및 와이파이와 같은 무선랜(WLAN; Wireless Local Area Network)을 이용하는 핫스팟(또는 모바일 핫스팟)으로 구분될 수 있다. 상술한 것처럼, 내부 네트워크(300)는 상기 제1 버전의 인터넷 프로토콜(예를 들어, IPv4 프로토콜) 기반의 통신 환경일 수 있다.
제2 전자 장치(200)는 내부 네트워크(300)를 통하여 제1 전자 장치(100)에 연결되며, 제1 전자 장치(100)를 통하여 테더링 서비스를 제공받을 수 있다. 예를 들어, 제2 전자 장치(200)는 내부 네트워크(300), 제1 전자 장치(100) 및 외부 네트워크(400)를 통하여 상기 외부 서버와 연결되고, 제1 전자 장치(100)와 유사하게 서비스들(SVC21, SVC22)을 실행할 수 있다. 예를 들어, 서비스(SVC21)는 상기 IPv4 프로토콜을 사용하는 서비스이고, 서비스(SVC22)는 상기 IPv6 프로토콜을 사용하는 서비스일 수 있다.
서비스(SVC21)를 실행하고자 하는 경우에, 제2 전자 장치(200)는 사설 IP 어드레스(PRV_ADDR2)를 이용할 수 있다. 사설 IP 어드레스(PRV_ADDR2)는 IPv4 프로토콜을 따르며 내부 네트워크(300)는 IPv4 프로토콜 기반의 통신 환경이므로, 제2 전자 장치(200)는 내부 네트워크(300)를 통하여 사설 IP 어드레스(PRV_ADDR2)를 제1 전자 장치(100)에 제공할 수 있다. 서비스(SVC11)를 실행하는 경우와 유사하게, 제1 전자 장치(100)는 제2 전자 장치(200)의 사설 IP 어드레스(PRV_ADDR2)를 IPv6 프로토콜을 따르는 CLAT 어드레스(CLAT_ADDR2)로 변환하며, 변환된 CLAT 어드레스(CLAT_ADDR2)를 기초로 외부 네트워크(400), PLAT(510) 및 제2 인터넷 네트워크(520)를 통하여 제2 서버(530)에 접속할 수 있다. 이 때, 제2 전자 장치(200)의 사설 IPv4 어드레스(예를 들어, PRV_ADDR2) 및 CLAT IPv6 어드레스(예를 들어, CLAT_ADDR2)는 제2 전자 장치(200)의 고유 어드레스일 수 있다.
본 발명의 실시예들에 따르면, 제1 전자 장치(100)가 제2 전자 장치(200)에 테더링 서비스를 제공하는 경우에, NAT 없이 CLAT 변환만이 1회 수행될 수 있다.
한편, 서비스(SVC22)를 실행하고자 하는 경우에, 제2 전자 장치(200)는 공인 IP 어드레스(PUB_ADDR2)를 이용할 수 있다. 이를 위해, 도시하지는 않았으나 제1 전자 장치(100) 및 제2 전자 장치(200)는 각각 사설 IPv6 어드레스를 포함할 수 있고, 내부 네트워크(300)는 IPv6 프로토콜 기반의 통신 환경도 포함하거나 IPv6 프로토콜 기반의 통신 환경을 위한 다른 내부 네트워크가 추가될 수도 있다. 다만, 사설 IPv6 어드레스를 이용한 서비스(SVC22) 실행은 본 발명과의 관련성이 적으므로 이에 대한 도시 및 설명은 생략한다.
도 4는 본 발명의 실시예들에 따른 통신 시스템에서 전송되는 IP 패킷의 구조를 나타내는 도면이다. 도 5a, 5b 및 5c는 도 4의 IP 패킷에 포함되는 헤더의 구조를 나타내는 도면들이다. 도 5a는 IPv4 패킷의 헤더를 나타내고, 도 5b는 IPv6 패킷의 기본 헤더를 나타내며, 도 5c는 TCP 헤더를 나타낸다.
도 4를 참조하면, IP 패킷(PK)은 헤더(HD) 및 페이로드(PL)를 포함할 수 있다. 헤더(HD)는 IP 헤더(H1) 및 TCP(Transmission Control Protocol) 헤더(H2)(또는 UDP(User Datagram Protocol) 헤더)를 포함할 수 있으며, 페이로드(PL)는 응용 프로그램에 제공되거나 또는 응용 프로그램에서 생성된 데이터(DT)를 포함할 수 있다. 후술하는 것처럼, IP 헤더(H1)는 어드레스 정보를 포함하며, TCP 헤더(H2)는 포트 정보를 포함할 수 있다.
도 5a를 참조하면, IPv4 패킷의 헤더(H1_IPv4, 이하 IPv4 헤더라고 함)는 버전(version), IP 헤더 길이(IHL), 서비스 타입(ToS), 총길이(Total Length), 지시자(Identifier), 플래그(Flags), 플래그먼트 오프셋(Fragment Offset), 존재시간(Time to Live), 프로토콜(Protocol), 헤더 체크썸(Header Checksum), 소스 어드레스(Source Address), 목적지 어드레스(Destination Address), 옵션(Option) 및 패딩(Padding) 각각을 위한 필드를 포함할 수 있다. 소스 어드레스(Source Address) 및 목적지 어드레스(Destination Address)의 길이는 각각 32bit이고, 옵션(Option) 및 패딩(Padding)의 길이는 가변될 수 있다.
도 5b를 참조하면, IPv6 패킷의 기본 헤더(H1_IPv6, 이하 IPv6 헤더라고 함)는 버전(version), 트래픽 클래스(Traffic Class), 플로우 라벨(Flow Label), 페이로드 길이(Payload Length), 넥스트 헤더(Next Header), 홉 리밋(Hop Limit), 소스 어드레스(Source Address) 및 목적지 어드레스(Destination Address) 각각을 위한 필드를 포함할 수 있다. 소스 어드레스(Source Address) 및 목적지 어드레스(Destination Address)의 길이는 각각 128bit일 수 있다.
도 5a 및 5b에 도시된 것처럼, IPv4 헤더(H1_IPv4)는 12개의 기본 필드를 포함하며, IPv6 헤더(H1_IPv6)는 8개의 기본 필드를 포함한다. 다만, IPv6 패킷은 기본 헤더, 즉 IPv6 헤더(H1_IPv6)외에 확장 헤더를 더 포함할 수 있다. IPv6 헤더(H1_IPv6)에서 넥스트 헤더 필드는 다음에 이어지는 헤더의 유형을 나타낸다. 넥스트 헤더에 표시될 수 있는 헤더는 IPv6의 확장 헤더일 수 있고, 상위 계층인 TCP(또는 UDP)의 헤더일 수 있다. 확장 헤더가 사용되지 않을 경우, 넥스트 헤더에 TCP(또는 UDP)의 헤더가 위치할 수 있다.
IPv4 헤더(H1_IPv4) 및 IPv6 헤더(H1_IPv6)는 공통적으로 버전, 소스 어드레스(Source Address) 및 목적지 어드레스(Destination Address)를 위한 필드들을 포함할 수 있다. 다만, 상술한 것처럼 IPv6 헤더(H1_IPv6)의 소스 어드레스(Source Address) 및 목적지 어드레스(Destination Address)의 길이는 각각 128bit로 IPv4 헤더(H1_IPv4)의 소스 어드레스(Source Address) 및 목적지 어드레스(Destination Address)의 길이인 32bit보다 4배 길다.
IPv4 헤더(H1_IPv4)를 IPv6 헤더(H1_IPv6)로 변환할 때, IPv4 헤더(H1_IPv4)에 포함되는 IP 헤더 길이(IHL), 지시자(Identifier), 플래그(flags), 플래그먼트 오프셋(Fragment Offset), 헤더 체크썸(Header Checksum), 옵션(Option), 및 패딩(Padding)을 위한 필드들은 삭제되며, 플로우 라벨(Flow Label)을 위한 필드가 추가될 수 있다. 반대로, IPv6 헤더(H1_IPv6)를 IPv4 헤더(H1_IPv4)로 변환할 때, 플로우 라벨(Flow Label)을 위한 필드가 삭제되고, IP 헤더 길이(IHL), 지시자(Identifier), 플래그(Flags), 플래그먼트 오프셋(Fragment Offset), 헤더 체크썸(Header Checksum), 옵션(Option), 및 패딩(Padding)을 위한 필드들이 추가될 수 있다. IPv4 헤더(H1_IPv4)의 서비스 타입(ToS), 총길이(Total Length), 프로토콜(Protocol), 존재시간(Time to Live)을 위한 필드들과 IPv6 헤더(H1_IPv6)의 트래픽 클래스(Traffic Class), 페이로드 길이(Payload Length), 넥스트 헤더(Next Header), 홉 리밋(Hop Limit)을 위한 필드들로 변환될 수 있다.
도 5c를 참조하면, TCP 헤더(H2_TCP)는 소스 포트(Source Port), 목적지 포트(Destination Port), 시퀀스 번호(Sequence Number), 인정 번호(Acknowledgement Number), 데이터 오프셋(Data Offset), 예약 필드(Reserved), 6bit의 플래그들(Flags), 윈도우 사이즈(Window Size), TCP 체크썸(TCP Checksum), 긴급 위치(Urgent Pointer), 옵션(Option) 및 패딩(Padding) 각각을 위한 필드를 포함할 수 있다. 한편 도시하지는 않았으나, 전송 프로토콜 중 하나인 UDP 헤더는 도 5c의 TCP 헤더(H2_TCP)와 유사하게 소스 포트, 종착지 포트, UDP 길이 UDP 체크썸 각각을 위한 필드를 포함할 수 있다.
도 6은 본 발명의 실시예들에 따른 통신 시스템에 포함되는 제1 전자 장치를 나타내는 블록도이다. 도 6은 제1 전자 장치의 하드웨어 구성을 나타낼 수 있다.
도 6을 참조하면, 제1 전자 장치(1000)는 어플리케이션 프로세서(AP; Application Processor)(1010), 통신 프로세서(CP; Communication Processor)(1020), 변환 장치(1030), 메모리 장치(1040), 사용자 인터페이스(1050) 및 파워 서플라이(1050)를 포함한다.
일 실시예에서, 제1 전자 장치(1000)는 다른 전자 장치와 데이터 통신을 수행하는 전자 장치일 수 있다, 예를 들어, 제1 전자 장치(1000)는 스마트폰, 태블릿 PC, 랩탑 컴퓨터, 드론, 디지털 카메라, 웨어러블 컴퓨터, IoT 기기, 차량용 주행 장치, 및 각종 스마트 디바이스들 중 하나일 수 있으며, 이 외에도, 유/무선 네트워크를 통해 외부 전자 장치와 데이터 통신을 수행하는 다양한 전자 장치 중 하나일 수 있다.
어플리케이션 프로세서(1010)는 제1 전자 장치(1000)의 OS(Operating System)(1012) 및 각종 응용 프로그램(1014)을 구동하여 어플리케이션 프로세서(1010)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 멀티미디어 데이터를 포함한 각종 데이터 처리 및 연산을 수행할 수 있다. 예를 들어, 어플리케이션 프로세서(1010)는 SoC(System on Chip)로 구현될 수 있다.
통신 프로세서(1020)는 네트워크를 통해 연결된 다른 전자 장치들과의 통신에서 데이터 송수신을 수행할 수 있다. 이 과정에서, 통신 프로세서(1020)는 어플리케이션 프로세서(1010)와 데이터를 송수신할 수 있다. 제1 전자 장치(1000)가 네트워크를 통해 데이터를 수신할 때, 예를 들어 데이터 다운로드(download) 또는 다운링크(downlink)를 수행할 경우, 통신 프로세서(1020)는 수신되는 데이터를 어플리케이션 프로세서(1010)로 전달하고, 어플리케이션 프로세서(1010)가 데이터 연산 및 저장 등과 같은 데이터 처리 동작을 수행할 수 있다. 반대로, 제1 전자 장치(1000)가 네트워크를 통해 데이터를 송신할 때, 예를 들어 데이터 업로드(upload) 또는 업링크(uplink)를 수행할 경우, 어플리케이션 프로세서(1010)가 업로드할 데이터를 통신 프로세서(1020)로 전달하면, 통신 프로세서(1020)는 네트워크를 통해 데이터를 송신할 수 있다.
변환 장치(1030)는 도 1을 참조하여 상술한 본 발명의 실시예들에 따른 IP 패킷 변환 방법을 수행할 수 있다. 도 4를 참조하여 상술한 것처럼, 데이터는 IP 패킷 형태로 송수신될 수 있으며, 변환 장치(1030)는 NAT 없이 CLAT 변환만을 1회 수행하여 IP 패킷의 어드레스를 변환할 수 있다. 예를 들어, 변환 장치(1030)는 외부 네트워크(도 3의 400)를 통해 수신되는 IP 패킷의 목적지 어드레스를 테더링된 제2 전자 장치(도 3의 200)에 적합한 어드레스로 변환하거나, 또는 제2 전자 장치(200) 및 내부 네트워크(도 3의 300)를 통해 수신된 IP 패킷의 소스 어드레스(source address)를 외부 네트워크(400)에 적합한 어드레스로 변환할 수 있다.
한편, CLAT는 특정 전자 장치가 특정 인터넷 프로토콜(예를 들어, IPv6) 기반의 네트워크를 통해 다른 전자 장치들과 자유롭게 통신할 수 있도록 IP 패킷의 IPv4 어드레스를 IPv6 어드레스로 변환하거나 또는 그 반대로 변환하는 기술이고, NAT는 내부 또는 사설 IP 어드레스를 글로벌 또는 공인 IP 어드레스로 변환하거나 또는 그 반대로 변환하는 기술이다. NAT에 따라 소스 어드레스 또는 목적지 어드레스의 IP 어드레스 값 및 포트 번호가 변경될 수 있다.
실시예에 따라서, 변환 장치(1030)의 일부 또는 전부는 하드웨어의 형태로 구현되거나, 소프트웨어(즉, 프로그램)의 형태로 구현되어 저장 장치에 저장될 수 있다. 도 16 및 17을 참조하여 후술하는 것처럼, 변환 장치(1030)는 어플리케이션 프로세서(1010) 또는 통신 프로세서(1020)에 포함될 수 있다. 변환 장치(1030)의 구체적인 구조는 도 7을 참조하여 후술하도록 한다.
메모리 장치(1040)는 어플리케이션 프로세서(1010) 및 통신 프로세서(1020)로부터 수신되거나, 어플리케이션 프로세서(1010)에 의해 생성된 명령 또는 데이터를 저장할 수 있다. 예를 들어, 메모리 장치(1040)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 휘발성 메모리, 및 EEPROM(electrically erasable programmable read-only memory), 플래시 메모리(flash memory), PRAM(phase change random access memory), RRAM(resistance random access memory), NFGM(nano floating gate memory), PoRAM(polymer random access memory), MRAM(magnetic random access memory), FRAM(ferroelectric random access memory) 등과 같은 비휘발성 메모리 중 적어도 하나를 포함할 수 있다.
사용자 인터페이스(1050)는 키패드, 버튼, 마이크, 터치 스크린 등과 같은 하나 이상의 입력 장치, 및/또는 스피커, 디스플레이 장치 등과 같은 하나 이상의 출력 장치를 포함할 수 있다. 파워 서플라이(1060)는 제1 전자 장치(1000)의 동작 전압을 공급할 수 있다.
도 7은 도 6의 제1 전자 장치에 포함되는 변환 장치의 일 예를 나타내는 블록도이다.
도 7을 참조하면, 제1 전자 장치(도 6의 1000)에 포함되는 변환 장치는 수신부(RX; Receiver)(1110), 테더링 인식기(Tethering Recognizer)(1120), 어드레스 변환기(CLAT-Tethering Address Translator)(1130), 저장부(Storage)(1140), 처리기(CLAT-Tethering based Forwarding Module)(1150), 송신 큐(TX Queue)(1160) 및 송신부(TX; Transmitter)(1170)를 포함할 수 있다.
수신부(1110)는 제2 전자 장치(도 3의 200)가 테더링 서비스를 이용하여 외부 네트워크(도 3의 400)와 통신하는 경우에 전송되는 제1 IP 패킷(PK1)을 수신할 수 있다. 예를 들어, 상술한 데이터 다운로드 또는 다운링크 수행 시에 제1 IP 패킷(PK1)은 외부 네트워크(400)로부터 수신되며, 상술한 데이터 업로드 또는 업링크 수행 시에 제1 IP 패킷(PK1)은 제2 전자 장치(200)로부터 수신될 수 있다. 도 5a 및 5b를 참조하여 상술한 것처럼, 제1 IP 패킷(PK1)은 소스 어드레스, 목적지 어드레스, 소스 포트 및 목적지 포트를 포함할 수 있다. 도 7에서, 특별히 신호명이 표기되어 있지 않은 화살표는 상기 제1 IP 패킷 및/또는 이에 대응하는 데이터의 흐름을 나타낸다.
테더링 인식기(1120)는 제2 전자 장치(200)와의 테더링 연결 상태를 관리하고, 제2 전자 장치(200) 및 내부 네트워크(도 3의 300)에 대한 정보(SI)를 획득할 수 있다. 예를 들어, 테더링 인식기(1120)는 내부 네트워크(300)의 상태(예를 들어, 연결 또는 해제)에 대한 정보 또는 이벤트(SE)를 수신하여 제2 전자 장치(200)의 연결을 동적으로 인식하는 이벤트 수신기(Event Listener)로 동작할 수 있다. 또한, 테더링 인식기(1120)는 제2 전자 장치(200)의 MAC(Medium Access Control) 어드레스 및 내부 네트워크(300)의 인터페이스 정보를 포함하는 정보(SI)를 획득하는 정보 획득기로 동작할 수 있다.
어드레스 변환기(1130)는 서로 다른 포맷을 가지고 상호 변환 가능한 제1 IP 어드레스(예를 들어, IPv4 어드레스) 및 제2 IP 어드레스(예를 들어, CLAT IPv6 어드레스)를 생성하고, 상기 제1 IP 어드레스 및 상기 제2 IP 어드레스를 제2 전자 장치(200)에 할당하며, 제1 IP 패킷(PK1)이 제2 전자 장치(200)의 상기 제1 IP 어드레스 및 상기 제2 IP 어드레스 중 하나를 포함하도록 제1 IP 패킷(PK1)에 대한 IP 어드레스 변환을 수행할 수 있다. 예를 들어, 상기 제2 IP 어드레스는 제2 전자 장치(200)에 종속적일 수 있다.
저장부(1140)는 포워딩 테이블(FT)을 저장하고 제공할 수 있다. 포워딩 테이블(FT)은 테더링 인식기(1120) 및 어드레스 변환기(1130)에 의해 형성되며, 상기 제1 IP 어드레스, 상기 제2 IP 어드레스, 상기 MAC 어드레스 및 상기 인터페이스 정보를 포함할 수 있다. 예를 들어, 상기 제1 IP 어드레스 및 상기 제2 IP 어드레스는 어드레스 변환기(1130)로부터 제공되는 정보(ADDR)에 기초하여 획득되며, 상기 MAC 어드레스 및 상기 인터페이스 정보는 테더링 인식기(1120)로부터 제공되는 정보(INF)에 기초하여 획득될 수 있다. 예를 들어, 저장부(1140)는 임의의 휘발성 메모리 및/또는 비휘발성 메모리를 포함할 수 있다.
일 실시예에서, 포워딩 테이블(FT)은 신속한 포워딩을 위해 제한된 개수의 포워딩 테이블을 유지할 수 있다. 예를 들어, 포워딩 테이블(FT)은 유선 인터페이스용 1개의 테이블 및 WiFi 주소 변환을 위한 무선 인터페이스용 최대 15개의 테이블을 허용할 수 있다.
처리기(1150)는 포워딩 테이블(FT)을 기초로 제1 IP 패킷(PK1)에 대한 패킷 처리를 수행할 수 있다. 예를 들어, 처리기(1150)는 제1 IP 패킷(PK1)에 대한 MAC 헤더를 구성하고, 포워딩을 수행할 CPU를 할당하며, 해당 패킷을 액티브 포워딩(active forwarding)으로 요청할 수 있다. 포워딩 테이블(FT)을 기초로 패킷 처리를 수행하기 때문에, NAT를 이용하는 종래의 패킷 처리보다 빠르게 수행되며, 따라서 처리기(1150)를 빠른 포워딩 모듈(fast forwarding module) 또는 CLAT-테더링 기반의 빠른 포워딩 모듈이라고 부를 수 있다. 또한, 처리기(1150)는 인터페이스 선택기(interface selector)라고 부를 수도 있다.
송신 큐(1160)는 상기 패킷 처리된 제1 IP 패킷(PK1)을 큐잉(queuing 또는 queue-in)할 수 있다. 송신부(1170)는 상기 큐잉된 제1 IP 패킷(PK1)을 송신할 수 있다. 송신부(1170)를 통해 송신되는 제1 IP 패킷(PK1')은 IP 어드레스 변환이 수행된 IP 패킷을 나타내며, 따라서 수신부(1110)에서 수신된 제1 IP 패킷(PK1)과 다른 참조부호로 표기하였다. 예를 들어, 상술한 데이터 다운로드 또는 다운링크 수행 시에 IP 어드레스 변환이 수행된 제1 IP 패킷(PK1')은 제2 전자 장치(200)로 전송되며, 상술한 데이터 업로드 또는 업링크 수행 시에 IP 어드레스 변환이 수행된 제1 IP 패킷(PK1')은 외부 네트워크(400)로 전송될 수 있다. 송신 큐(1160) 및 송신부(1170)를 합쳐서 액티브 포워딩 모듈이라고 부를 수 있다.
한편, 사용자 공간에서 실행되는 네트워크 어플리케이션(1101)은 수신된 제1 IP 패킷(PK1) 및/또는 이에 대응하는 데이터에 기초하여 데이터 처리 및 연산을 수행하고 그 결과를 송신부(1170)에 제공할 수 있다. 네트워크 어플리케이션(1101)은 도 6의 응용 프로그램(1014)을 나타낼 수 있다.
한편, 도 7에서는 변환 장치(1030)에 포함되는 구성요소들이 커널 공간에서 실행되는 소프트웨어의 형태로 구현되는 것으로 도시하였으나, 본 발명은 이에 한정되지 않으며, 수신부(1110), 테더링 인식기(1120), 어드레스 변환기(1130), 저장부(1140), 처리기(1150), 송신 큐(1160) 및 송신부(1170) 중 적어도 일부(특히 어드레스 변환기(1130))는 별도 하드웨어의 형태로 구현되거나 어플리케이션 프로세서(1010) 또는 통신 프로세서(1020)에 포함되는 하드웨어의 형태로 구현될 수도 있다.
도 8은 도 1의 포워딩 테이블을 형성하는 단계의 일 예를 나타내는 순서도이다. 도 9는 도 8의 동작에 의해 형성되는 포워딩 테이블의 일 예를 나타내는 도면이다.
도 1, 7 및 8을 참조하면, 상기 포워딩 테이블을 형성하는데 있어서(단계 S200), 상세하게 도시하지는 않았으나 먼저 이벤트 수신기로서 동작하는 테더링 인식기(1120)를 활성화하고(예를 들어, 등록하고), 테더링 서비스를 제공하도록 내부 네트워크(300)를 통하여 제2 전자 장치(200)를 연결할 수 있다.
이후에, IPv4 어드레스를 생성하여 제2 전자 장치(200)에 할당하고(단계 S210), CLAT IPv6 어드레스를 생성하여 제2 전자 장치(200)에 할당할 수 있다(단계 S220). 단계 S210의 상기 IPv4 어드레스는 도 1의 상기 제1 IP 어드레스에 대응하고, 단계 S220의 상기 CLAT IPv6 어드레스는 도 1의 상기 제1 IP 어드레스에 대응할 수 있다. 상기 CLAT IPv6 어드레스는 IPv4-IPv6 상호 변환되는 IPv6 어드레스를 나타낼 수 있다.
또한, 제2 전자 장치(200)의 MAC 어드레스 및 내부 네트워크(300)의 인터페이스 정보를 획득할 수 있다(단계 S230).
일 실시예에서, 상기 제2 IP 어드레스에 대응하는 상기 CLAT IPv6 어드레스 및 상기 MAC 어드레스(또는 상기 인터페이스 정보)가 목적지 어드레스로 등록될 수 있다. 예를 들어, 상기 목적지 어드레스는 처리기(1150)(또는 인터페이스 선택기)에 등록될 수 있다.
상기 IPv4 어드레스, 상기 CLAT IPv6 어드레스, 상기 MAC 어드레스 및 상기 인터페이스 정보를 포워딩 테이블(FT)에 등록함으로써(단계 S240), 본 발명의 실시예들에 따른 CLAT-테더링 기반의 포워딩 또는 패킷 변환 프로세스 또는 NAT 없는(NAT-less) 포워딩 또는 패킷 변환 프로세스가 활성화될 수 있다.
일 실시예에서, 단계 S210 및 S220은 어드레스 변환기(1130)에 의해 수행되고, 단계 S230은 테더링 인식기(1120)에 의해 수행되며, 단계 S240은 어드레스 변환기(1130) 및 테더링 인식기(1120)에 의해 수행될 수 있다.
도 9를 참조하면, 포워딩 테이블(FT)은 제1 테이블(FT1), 제2 테이블(FT2) 및 제3 테이블(FT3)을 포함할 수 있다.
제1 테이블(FT1)은 제2 전자 장치(200)에 대한 IPv4 어드레스, IPv6 어드레스, MAC 어드레스 및 인터페이스 정보를 포함할 수 있다. 상기 IPv6 어드레스는 상기 IPv4 어드레스와 상호 변환되는 CLAT IPv6 어드레스일 수 있다. 이와 유사하게, 제2 테이블(FT2) 및 제3 테이블(FT3)은 제2 전자 장치(200)와 다른 테더링된 제3 전자 장치 및 제4 전자 장치에 대한 IPv4 어드레스, IPv6 어드레스, MAC 어드레스 및 인터페이스 정보를 포함할 수 있다.
한편, 도 9에서는 포워딩 테이블(FT)이 3개의 테이블들(FT1, FT2, FT3)을 포함하는 것으로 도시하였으나, 본 발명은 이에 한정되지 않으며, 포워딩 테이블(FT)에 포함되는 테이블의 개수는 변경될 수 있다. 다만, 상술한 것처럼 신속한 포워딩을 위해 포워딩 테이블(FT)은 제한된 개수의 포워딩 테이블을 포함할 수 있다.
도 10 및 11은 도 1의 패킷 처리를 수행하는 단계의 예를 나타내는 순서도들이다. 도 12는 도 10 및 11의 동작을 설명하기 위한 도면이다. 도 10 및 11은 상기 제1 IP 패킷이 상기 외부 네트워크로부터 상기 제2 전자 장치로 전송되는 상기 제1 케이스를 나타낸다.
도 1, 7 및 10을 참조하면, 상기 패킷 처리를 수행하는데 있어서(단계 S300), 소스 어드레스, 목적지 어드레스, 소스 포트 및 목적지 포트를 포함하는 제1 패킷(PK1)을 외부 네트워크(400)로부터 수신할 수 있다(단계 S310). 예를 들어, 패킷 수신 인터럽트(interrupt)가 생성되고, 패킷 수신 처리를 위한 소프트 인터럽트(soft interrupt)가 트리거링될 수 있다.
CLAT 변환 필터를 통과하여, 제1 패킷(PK1)에 포함되는 상기 목적지 어드레스가 CLAT IPv6 어드레스인지(즉, 포맷 변환 가능한 IP 어드레스인지) 포맷 변환 불가능한 공인 IP 어드레스인지 확인할 수 있다(단계 S320).
상기 목적지 어드레스가 CLAT IPv6 어드레스인 경우에(단계 S320: 예), 포워딩 테이블(FT)을 검색하여, 상기 목적지 어드레스가 포워딩 테이블(FT)에 포함되는 CLAT IPv6 어드레스인지(즉, 상기 제2 IP 어드레스인지) 확인할 수 있다(단계 S330).
상기 목적지 어드레스가 포워딩 테이블(FT)에 포함되는 CLAT IPv6 어드레스인 경우에(단계 S330: 예), 이는 테더링 서비스에 의해 제2 전자 장치(200)로 제공되어야 하는 패킷임을 나타내므로, 포워딩 테이블(FT)에 기초하여 상기 목적지 어드레스를 IPv4 어드레스로(즉, 상기 제1 IP 어드레스로) 변환할 수 있다(단계 S340). 이 때, 상기 목적지 어드레스를 변환하는 어드레스 변환만이 1회 수행되며(상기 소스 어드레스도 함께 변환될 수 있다), NAT는 수행되지 않으므로 상기 목적지 포트는 변환되지 않고 유지될 수 있다.
제1 패킷(PK1)에 대한 MAC 헤더를 구성할 수 있다(단계 S350). 예를 들어, 제2 전자 장치(200)의 MAC 어드레스 및 내부 네트워크(300)의 인터페이스 정보(예를 들어, IPv4에 연결된 인터페이스의 MAC 어드레스)에 기초하여 제1 패킷(PK1)에 대한 MAC 헤더를 구성할 수 있다. 실시예에 따라서, MAC 헤더가 없는 경우에 단계 S350은 생략될 수 있다.
어드레스 변환된 제1 패킷(PK1')을 내부 네트워크(300)를 통하여 제2 전자 장치(200)로 송신할 수 있다(단계 S360). 예를 들어, 액티브 포워딩을 요청하고, 포워딩할 패킷을 큐잉하고, 포워딩을 위한 소프트 인터럽트가 트리거링되며, 전송 처리를 수행할 수 있다.
한편, 상기 목적지 어드레스가 상기 CLAT IPv6 어드레스가 아닌 경우에(단계 S320: 아니오), 또는 상기 목적지 어드레스가 포워딩 테이블(FT)에 포함되는 CLAT IPv6 어드레스가 아닌 경우에(단계 S330: 아니오), 본 발명의 실시예들에 따른 IP 패킷 변환 방법은 종료되며, 공인 IPv6 어드레스 또는 그 밖에 다른 어드레스에 기초하여 서버 접속 동작 또는 데이터 전송 동작이 수행될 수 있다.
도 1, 7 및 11을 참조하면, 상기 패킷 처리를 수행하는데 있어서(단계 S300), 도 11의 단계 S310, S320, S350 및 S360은 도 10의 단계 S310, S320, S350 및 S360과 각각 실질적으로 동일하며, 중복되는 설명은 생략하도록 한다.
상기 목적지 어드레스가 CLAT IPv6 어드레스인 경우에(단계 S320: 예), 상기 목적지 어드레스를 IPv4 어드레스로 포맷 변환할 수 있다(단계 S345).
포워딩 테이블(FT)을 검색하여, 상기 IPv4 어드레스가(즉, 상기 포맷 변환된 목적지 어드레스가) 포워딩 테이블(FT)에 포함되는 IPv4 어드레스인지(즉, 상기 제1 IP 어드레스인지) 확인할 수 있다(단계 S335).
상기 IPv4 어드레스가 포워딩 테이블(FT)에 포함되는 IPv4 어드레스인 경우에(단계 S335: 예), 이는 제2 전자 장치(200)로 제공되어야 하는 패킷임을 나타내므로, 단계 S350 및 S360이 수행될 수 있다.
한편, 상기 IPv4 어드레스가 포워딩 테이블(FT)에 포함되는 IPv4 어드레스가 아닌 경우에(단계 S335: 아니오), 본 발명의 실시예들에 따른 IP 패킷 변환 방법은 종료될 수 있다.
도 12를 참조하면, 제1 패킷(PK1)이 외부 네트워크(IPv6 Network)로부터 제1 전자 장치(D1)를 거쳐 제2 전자 장치(D2)로 전송되는 경우에 제1 패킷(PK1)에 포함되는 소스 어드레스(SADDR), 목적지 어드레스(DADDR), 소스 포트(SPORT) 및 목적지 포트(DPORT)의 변화를 나타낸다.
외부 네트워크(IPv6 Network)에서 제1 패킷(PK1)의 소스 어드레스(SADDR) 및 목적지 어드레스(DADDR)는 IPv6 프로토콜을 따르는 IPv6_P 및 IPv6_D2일 수 있다. 제1 전자 장치(D1) 내에서 변환기(예를 들어, 도 7의 어드레스 변환기(1130))는 포워딩 테이블(FT)을 참조하여 제1 패킷(PK1)의 소스 어드레스(SADDR) 및 목적지 어드레스(DADDR)를 IPv4 프로토콜을 따르는 IPv4_P 및 IPv4_D2로 변환하여 제2 전자 장치(D2)로 전송하며, 제2 전자 장치(D2) 내에서 소스 어드레스(SADDR) 및 목적지 어드레스(DADDR)는 IPv4_P 및 IPv4_D2로 유지될 수 있다. 한편, 모든 경우에 소스 포트(SPORT) 및 목적지 포트(DPORT)는 변화하지 않고 P_P 및 P_D2로 유지될 수 있다.
일 실시예에서, 제2 전자 장치(D2) 내부에서의 제1 IP 패킷(PK1)의 구성(즉, 소스 어드레스(SADDR), 목적지 어드레스(DADDR), 소스 포트(SPORT) 및 목적지 포트(DPORT)의 값)과 제1 전자 장치(D1) 내부에서의 제1 IP 패킷(PK1)의 구성(즉, 상기 변환기를 통과한 이후의 제1 IP 패킷(PK1)의 구성)은 실질적으로 동일할 수 있다.
NAT를 수행하는 종래 기술에서, 외부 네트워크(IPv6 Network)에서의 목적지 어드레스(DADDR) 및 목적지 포트(DPORT)는 제1 전자 장치(D1)에 대한 어드레스 및 포트를 나타내고, 상기 변환기를 통과한 이후에 소스 어드레스(SADDR) 및 목적지 어드레스(DADDR)의 포맷이 IPv6에서 IPv4로 변환되며, 이후에 NAT를 수행하여 목적지 어드레스(DADDR) 및 목적지 포트(DPORT)를 제2 전자 장치(D2)에 대한 어드레스 및 포트로 변환하였다. 이에 비하여, 본 발명에서는 모든 경우에 목적지 어드레스(DADDR) 및 목적지 포트(DPORT)는 제2 전자 장치(D2)에 대한 어드레스 및 포트를 나타낼 수 있다.
도 13은 도 1의 패킷 처리를 수행하는 단계의 다른 예를 나타내는 순서도이다. 도 14는 도 13의 동작을 설명하기 위한 도면이다. 도 13은 상기 제1 IP 패킷이 상기 제2 전자 장치로부터 상기 외부 네트워크로 전송되는 상기 제2 케이스를 나타낸다.
도 1, 7 및 13을 참조하면, 상기 패킷 처리를 수행하는데 있어서(단계 S300), 소스 어드레스, 목적지 어드레스, 소스 포트 및 목적지 포트를 포함하는 제1 패킷(PK1)을 제2 전자 장치(200)로부터 수신할 수 있다(단계 S410). 도 13의 단계 S410은 도 10의 단계 S310과 유사할 수 있다.
제1 패킷(PK1)에 포함되는 상기 목적지 어드레스가 외부 네트워크(400)에 포함되는(또는 속해 있는) 어드레스인지 확인할 수 있다(단계 S420).
상기 목적지 어드레스가 외부 네트워크(400)에 포함되는 어드레스인 경우에(단계 S420: 예), 포워딩 테이블(FT)을 검색하여, 제1 패킷(PK1)에 포함되는 상기 소스 어드레스가 포워딩 테이블(FT)에 포함되는 IPv4 어드레스인지(즉, 상기 제1 IP 어드레스인지) 확인할 수 있다(단계 S430).
상기 소스 어드레스가 포워딩 테이블(FT)에 포함되는 IPv4 어드레스인 경우에(단계 S330: 예), 이는 테더링 서비스에 의해 외부 네트워크(400)로 제공되어야 하는 패킷임을 나타내므로, 포워딩 테이블(FT)에 기초하여 상기 소스 어드레스를 CLAT IPv6 어드레스로(즉, 상기 제2 IP 어드레스로) 변환할 수 있다(단계 S440). 이 때, 상기 소스 어드레스를 변환하는 어드레스 변환만이 1회 수행되며(상기 목적지 어드레스도 함께 변환될 수 있다), NAT는 수행되지 않으므로 상기 소스 포트는 변환되지 않고 유지될 수 있다.
제1 패킷(PK1)에 대한 MAC 헤더를 구성할 수 있다(단계 S450). 예를 들어, 외부 네트워크(400)의 인터페이스 정보(예를 들어, IPv6에 연결된 인터페이스에 해당하는 MAC 어드레스)에 기초하여 제1 패킷(PK1)에 대한 MAC 헤더를 구성할 수 있다. 실시예에 따라서, MAC 헤더가 없는 경우에 단계 S450은 생략될 수 있다.
어드레스 변환된 제1 패킷(PK1')을 외부 네트워크(400)로 송신할 수 있다(단계 S460). 도 13의 단계 S460은 도 10의 단계 S360과 유사할 수 있다.
한편, 상기 목적지 어드레스가 외부 네트워크(400)에 포함되는 어드레스가 아닌 경우에(단계 S420: 아니오), 또는 상기 소스 어드레스가 포워딩 테이블(FT)에 포함되는 IPv4 어드레스가 아닌 경우에(단계 S430: 아니오), 본 발명의 실시예들에 따른 IP 패킷 변환 방법은 종료될 수 있다.
일 실시예에서, 도 10, 11 및 13의 단계 S310 및 S410은 수신부(1110)에 의해 수행되고, 단계 S320, S330, S335, S340, S345, S420, S430 및 S440은 어드레스 변환기(1130)에 의해 수행되고, 단계 S350 및 S450은 처리기(1150)에 의해 수행되며, 단계 S360 및 S460은 처리기(1150), 송신 큐(1160) 및 송신부(1170)에 의해 수행될 수 있다.
도 14를 참조하면, 제1 패킷(PK1)이 제2 전자 장치(D2)로부터 제1 전자 장치(D1)를 거쳐 외부 네트워크(IPv6 Network)로 전송되는 경우에 제1 패킷(PK1)에 포함되는 소스 어드레스(SADDR), 목적지 어드레스(DADDR), 소스 포트(SPORT) 및 목적지 포트(DPORT)의 변화를 나타낸다. 이하 도 12와 중복되는 설명은 생략한다.
제2 전자 장치(D2)에서 제1 패킷(PK1)의 소스 어드레스(SADDR) 및 목적지 어드레스(DADDR)는 IPv4 프로토콜을 따르는 IPv4_D2 및 IPv4_P일 수 있다. 제1 전자 장치(D1) 내에서 소스 어드레스(SADDR) 및 목적지 어드레스(DADDR)는 IPv4_D2 및 IPv4_P로 유지되며, 변환기는 포워딩 테이블(FT)을 참조하여 제1 패킷(PK1)의 소스 어드레스(SADDR) 및 목적지 어드레스(DADDR)를 IPv6 프로토콜을 따르는 IPv6_D2 및 IPv6_P로 변환하여 외부 네트워크(IPv6 Network)로 전송할 수 있다. 한편, 모든 경우에 소스 포트(SPORT) 및 목적지 포트(DPORT)는 변화하지 않고 P_D2 및 P_P로 유지될 수 있다.
일 실시예에서, 제2 전자 장치(D2) 내부에서의 제1 IP 패킷(PK1)의 구성과 제1 전자 장치(D1) 내부에서의 제1 IP 패킷(PK1)의 구성(즉, 상기 변환기를 통과하기 이전의 제1 IP 패킷(PK1)의 구성)은 실질적으로 동일할 수 있다. 본 발명에서는 모든 경우에 소스 어드레스(SADDR) 및 소스 포트(SPORT)는 제2 전자 장치(D2)에 대한 어드레스 및 포트를 나타낼 수 있다.
도 15는 도 6의 제1 전자 장치에 포함되는 변환 장치의 다른 예를 나타내는 블록도이다. 이하 도 7과 중복되는 설명은 생략한다.
도 6 및 15를 참조하면, 도 15의 변환 장치는 네트워크 서브시스템(1200)을 더 포함하는 것을 제외하면 도 7의 변환 장치와 실질적으로 동일할 수 있다.
네트워크 서브시스템(1200)은 NAT를 수행하도록 구현되며, 일반적으로 제1 전자 장치(도 6의 1000)에 포함되도록 구현될 수 있다. 다만, 본 발명의 실시예들에서는 NAT를 수행하지 않으므로, 상술한 과정에 따라 본 발명의 실시예들에 따른 CLAT-테더링 기반의 포워딩 또는 패킷 변환 프로세스 또는 NAT 없는 포워딩 또는 패킷 변환 프로세스가 활성화/수행되는 경우에, 네트워크 서브시스템(1200)은 비활성화될 수 있다. 이에 따라 도 15에서는 비활성화된 네트워크 서브시스템(1200)을 점선으로 표시하였다.
한편, 본 발명의 실시예들은 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수도 있다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다. 예를 들어, 상기 컴퓨터로 판독 가능한 매체는 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, 비일시적은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
도 16 및 17은 도 6의 제1 전자 장치에 포함되는 통신 프로세서 및 어플리케이션 프로세서의 예를 나타내는 블록도들이다.
도 16을 참조하면, 통신 프로세서(1500)는 프로세서(1510), 변환 장치(1520), RAM(1530), DMA 컨트롤러(1540), 모뎀(1550) 및 메모리 인터페이스(1560)를 포함할 수 있다.
프로세서(1510)는 통신 프로세서(1500)의 전반적인 동작을 제어할 수 있다. RAM(1530)은 동작 메모리, 버퍼 메모리, 캐시 메모리 등으로 사용될 수 있다. DMA 컨트롤러(1540)는 통신 프로세서(1500)의 구성들 간의 데이터 전송을 지원하며, 데이터의 전송이 프로세서(1510)의 개입 없이 구성들 간에 직접 이루어질 수 있도록 제어할 수 있다. 메모리 인터페이스(1560)는 프로세서(1510) 또는 DMA 컨트롤러(1540)의 제어 하에, 메모리(1580)에 데이터를 전송하거나 또는 메모리(1580)로부터 데이터를 독출할 수 있다.
모뎀(1550)은 IP 패킷을 네트워크를 통해 전송하기 적합한 신호로 변환하거나, 네트워크를 통해 수신된 신호를 IP 패킷으로 변환할 수 있다. 모뎀(1550)은 IP 패킷을 인코딩 및 변조함으로써, IP 패킷을 송신 신호로 변환할 수 있다. 또한, 모뎀(1550)은 네트워크를 통해 수신되는 수신 신호를 복조 및 디코딩함으로써, 수신 신호를 IP 패킷으로 변환할 수 있다. 모뎀(1550)은 신호를 증폭하거나 필터링하고, 신호의 주파수를 변환하는 RF 칩(1570)과 통신할 수 있다. RF 칩(1570)이 안테나를 통해 송신 신호를 네트워크로 전송하거나 네트워크로부터 수신 신호를 수신할 수 있다.
변환 장치(1520)는 도 6의 변환 장치(1030)와 실질적으로 동일하며, 본 발명의 실시예들에 따른 IP 패킷 변환 방법을 수행할 수 있다.
도 17을 참조하면, 어플리케이션 프로세서(1600)는 CPU(Central Processing Unit)(1610), RAM(1620), DMA 컨트롤러(1630), 모뎀(1640), 변환 장치(1650) 및 메모리 컨트롤러(1660)를 포함할 수 있다. 어플리케이션 프로세서(1600)는 그 내부에 모뎀의 기능이 통합됨에 따라 ModAP이라고 부를 수 있다.
도 17의 CPU(1610), RAM(1620), DMA 컨트롤러(1630), 모뎀(1640), 변환 장치(1650), 메모리 컨트롤러(1660), RF 칩(1670) 및 메모리(1680)의 동작은 도 16의 프로세서(1510), RAM(1530), DMA 컨트롤러(1540), 모뎀(1550), 변환 장치(1520), 메모리 인터페이스(1560), RF 칩(1570) 및 메모리(1580)와 각각 실질적으로 동일 또는 유사할 수 있다.
본 발명의 실시예들은 테더링 서비스를 제공하는 임의의 전자 장치 및 통신 시스템에 유용하게 이용될 수 있다. 예를 들어, 본 발명의 실시예들은 PC(Personal Computer), 서버 컴퓨터(server computer), 데이터 센터(data center), 워크스테이션(workstation), 노트북(laptop), 핸드폰(cellular), 스마트 폰(smart phone), MP3 플레이어, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(Internet of Things) 기기, IoE(Internet of Everything) 기기, e-북(e-book), VR(Virtual Reality) 기기, AR(Augmented Reality) 기기 등과 같은 전자 시스템에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 제1 전자 장치를 통하여 제2 전자 장치가 테더링 서비스를 제공받도록, 내부 네트워크를 통하여 상기 제1 전자 장치에 상기 제2 전자 장치를 연결하는 단계;
    상기 제1 전자 장치가 서로 다른 포맷을 가지고 상호 변환 가능한 제1 IP(Internet Protocol) 어드레스 및 제2 IP 어드레스를 상기 제2 전자 장치에 할당하여, 포워딩 테이블을 형성하는 단계; 및
    상기 제2 전자 장치가 상기 내부 네트워크 및 상기 제1 전자 장치를 통하여 외부 네트워크와 통신하는 경우에, 전송되는 제1 IP 패킷이 상기 제2 전자 장치의 상기 제1 IP 어드레스 및 상기 제2 IP 어드레스 중 하나를 포함하도록, 상기 제1 전자 장치가 상기 포워딩 테이블을 기초로 상기 제1 IP 패킷에 대한 IP 어드레스 변환을 수행하여 패킷 처리를 수행하는 단계를 포함하는 IP 패킷 변환 방법.
  2. 제 1 항에 있어서,
    상기 제1 IP 어드레스는 제1 버전의 인터넷 프로토콜의 따르는 제1 포맷을 가지고,
    상기 제2 IP 어드레스는 상기 제1 버전과 다른 제2 버전의 인터넷 프로토콜의 따르는 제2 포맷을 가지며,
    상기 내부 네트워크는 상기 제1 버전의 인터넷 프로토콜 기반의 통신 환경이고,
    상기 외부 네트워크는 상기 제2 버전의 인터넷 프로토콜 기반의 통신 환경인 것을 특징으로 하는 IP 패킷 변환 방법.
  3. 제 2 항에 있어서,
    상기 제1 IP 어드레스와 상기 제2 IP 어드레스는 CLAT(Client side translator)에 기초하여 상호 변환되는 것을 특징으로 하는 IP 패킷 변환 방법.
  4. 제 1 항에 있어서, 상기 포워딩 테이블을 형성하는 단계는,
    상기 제1 IP 어드레스를 생성하여 상기 제2 전자 장치에 할당하는 단계;
    상기 제2 IP 어드레스를 생성하여 상기 제2 전자 장치에 할당하는 단계;
    상기 제2 전자 장치의 MAC(Medium Access Control) 어드레스 및 상기 내부 네트워크의 인터페이스 정보를 획득하는 단계; 및
    상기 제1 IP 어드레스, 상기 제2 IP 어드레스, 상기 MAC 어드레스 및 상기 인터페이스 정보를 상기 포워딩 테이블에 등록하는 단계를 포함하는 것을 특징으로 하는 IP 패킷 변환 방법.
  5. 제 1 항에 있어서, 상기 패킷 처리를 수행하는 단계는,
    소스 어드레스 및 목적지 어드레스를 포함하는 상기 제1 패킷을 상기 외부 네트워크로부터 수신하는 단계;
    상기 목적지 어드레스가 포맷 변환 가능한 IP 어드레스인지 포맷 변환 불가능한 공인 IP 어드레스인지 확인하는 단계;
    상기 목적지 어드레스가 상기 포맷 변환 가능한 IP 어드레스인 경우에, 상기 목적지 어드레스가 상기 포워딩 테이블에 포함되는 상기 제2 IP 어드레스인지 확인하는 단계;
    상기 목적지 어드레스가 상기 제2 IP 어드레스인 경우에, 상기 제1 패킷의 상기 목적지 어드레스를 상기 제1 IP 어드레스로 변환하는 단계; 및
    상기 어드레스 변환된 제1 패킷을 상기 내부 네트워크를 통하여 상기 제2 전자 장치로 송신하는 단계를 포함하는 것을 특징으로 하는 IP 패킷 변환 방법.
  6. 제 5 항에 있어서,
    상기 제1 패킷은 소스 포트 및 목적지 포트를 더 포함하며,
    상기 제1 패킷의 상기 목적지 어드레스를 변환하는 어드레스 변환만이 1회 수행되고, 상기 제1 패킷의 상기 목적지 포트는 변환되지 않고 유지되는 것을 특징으로 하는 IP 패킷 변환 방법.
  7. 제 6 항에 있어서,
    상기 제2 전자 장치로 송신되는 상기 어드레스 변환된 제1 패킷에 포함되는 상기 목적지 포트는 상기 제2 전자 장치의 포트에 대응하는 것을 특징으로 하는 IP 패킷 변환 방법.
  8. 제 1 항에 있어서, 상기 패킷 처리를 수행하는 단계는,
    소스 어드레스 및 목적지 어드레스를 포함하는 상기 제1 패킷을 상기 외부 네트워크로부터 수신하는 단계;
    상기 목적지 어드레스가 포맷 변환 가능한 IP 어드레스인지 포맷 변환 불가능한 공인 IP 어드레스인지 확인하는 단계;
    상기 목적지 어드레스가 상기 포맷 변환 가능한 IP 어드레스인 경우에, 상기 제1 패킷의 상기 목적지 어드레스를 포맷 변환하는 단계;
    상기 포맷 변환된 목적지 어드레스가 상기 포워딩 테이블에 포함되는 상기 제1 IP 어드레스인지 확인하는 단계; 및
    상기 포맷 변환된 목적지 어드레스가 상기 제1 IP 어드레스인 경우에, 상기 어드레스 변환된 제1 패킷을 상기 내부 네트워크를 통하여 상기 제2 전자 장치로 송신하는 단계를 포함하는 것을 특징으로 하는 IP 패킷 변환 방법.
  9. 제 1 항에 있어서, 상기 패킷 처리를 수행하는 단계는,
    소스 어드레스 및 목적지 어드레스를 포함하는 상기 제1 패킷을 상기 제2 전자 장치로부터 수신하는 단계;
    상기 목적지 어드레스가 상기 외부 네트워크에 포함되는 어드레스인지 확인하는 단계;
    상기 소스 어드레스가 상기 포워딩 테이블에 포함되는 상기 제1 IP 어드레스인지 확인하는 단계;
    상기 목적지 어드레스가 상기 외부 네트워크에 포함되는 어드레스이고 상기 소스 어드레스가 상기 제1 IP 어드레스인 경우에, 상기 제1 패킷의 상기 소스 어드레스를 상기 제2 IP 어드레스로 변환하는 단계; 및
    상기 어드레스 변환된 제1 패킷을 상기 외부 네트워크로 송신하는 단계를 포함하는 것을 특징으로 하는 IP 패킷 변환 방법.
  10. 제1 전자 장치;
    상기 제1 전자 장치를 통하여 테더링 서비스를 제공받는 제2 전자 장치;
    상기 제2 전자 장치가 상기 테더링 서비스를 제공받도록 상기 제1 전자 장치에 상기 제2 전자 장치를 연결하는 내부 네트워크; 및
    상기 제1 전자 장치와 외부 서버를 연결하는 외부 네트워크를 포함하고,
    상기 내부 네트워크를 통하여 상기 제1 전자 장치에 상기 제2 전자 장치를 연결한 이후에, 상기 제1 전자 장치는 서로 다른 포맷을 가지고 상호 변환 가능한 제1 IP(Internet Protocol) 어드레스 및 제2 IP 어드레스를 상기 제2 전자 장치에 할당하여 포워딩 테이블을 형성하고,
    상기 제2 전자 장치가 상기 내부 네트워크 및 상기 제1 전자 장치를 통하여 상기 외부 네트워크와 통신하는 경우에, 전송되는 제1 IP 패킷이 상기 제2 전자 장치의 상기 제1 IP 어드레스 및 상기 제2 IP 어드레스 중 하나를 포함하도록, 상기 제1 전자 장치는 상기 포워딩 테이블을 기초로 상기 제1 IP 패킷에 대한 IP 어드레스 변환을 수행하여 패킷 처리를 수행하는 통신 시스템.
KR1020190133517A 2019-10-25 2019-10-25 테더링 서비스 제공을 위한 ip 패킷 변환 방법 및 이를 수행하는 통신 시스템 KR20210049335A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190133517A KR20210049335A (ko) 2019-10-25 2019-10-25 테더링 서비스 제공을 위한 ip 패킷 변환 방법 및 이를 수행하는 통신 시스템
US16/906,297 US11483280B2 (en) 2019-10-25 2020-06-19 Method of translating IP packet for tethering service, communication system and electronic device for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190133517A KR20210049335A (ko) 2019-10-25 2019-10-25 테더링 서비스 제공을 위한 ip 패킷 변환 방법 및 이를 수행하는 통신 시스템

Publications (1)

Publication Number Publication Date
KR20210049335A true KR20210049335A (ko) 2021-05-06

Family

ID=75586228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190133517A KR20210049335A (ko) 2019-10-25 2019-10-25 테더링 서비스 제공을 위한 ip 패킷 변환 방법 및 이를 수행하는 통신 시스템

Country Status (2)

Country Link
US (1) US11483280B2 (ko)
KR (1) KR20210049335A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024053802A1 (ko) * 2022-09-07 2024-03-14 엘지전자 주식회사 신호 처리 장치 및 이를 구비하는 차량용 통신 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11496439B1 (en) * 2021-03-23 2022-11-08 Amazon Technologies, Inc. Stateless high-capacity network address translation service
US20230216825A1 (en) * 2021-12-31 2023-07-06 T-Mobile Innovations Llc Gateway based ip address translation in communication networks
CN115002016B (zh) * 2022-05-17 2023-08-22 阿里云计算有限公司 报文处理系统、方法、设备和存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434627B1 (en) * 1999-03-15 2002-08-13 Cisco Technology, Inc. IP network for accomodating mobile users with incompatible network addressing
JP3952860B2 (ja) * 2002-05-30 2007-08-01 株式会社日立製作所 プロトコル変換装置
US20040184455A1 (en) * 2003-03-19 2004-09-23 Institute For Information Industry System and method used by a gateway for processing fragmented IP packets from a private network
JP4271988B2 (ja) * 2003-05-19 2009-06-03 株式会社日立コミュニケーションテクノロジー パケット通信装置
US7529852B2 (en) * 2004-05-17 2009-05-05 Cisco Technology, Inc. Method and apparatus for handling IPv4 DNS PTR queries across IPv4 and IPv6 networks
TWI241808B (en) * 2004-07-28 2005-10-11 Realtek Semiconductor Corp Network address-port translation apparatus and method for IP fragment packets
EP2495920A4 (en) * 2009-10-30 2016-07-13 Fujitsu Ltd ADDRESS TRANSLATION DEVICE, ADDRESS TRANSLATION METHOD AND ADDRESS TRANSLATION PROGRAM
WO2012162994A1 (zh) * 2011-09-30 2012-12-06 华为技术有限公司 对数据报文进行策略控制的方法和装置
US8773990B1 (en) 2012-02-03 2014-07-08 Sprint Spectrum L.P. Detecting unauthorized tethering
US20130254264A1 (en) 2012-03-07 2013-09-26 26Ones Inc. Tethering method, computing devices, system and software
US9191362B2 (en) * 2012-06-26 2015-11-17 Cisco Technology, Inc. Determining the type of upstream network address translation from a home gateway
US9226141B1 (en) 2013-11-04 2015-12-29 Sprint Communications Company L.P. Identifying unsubscribed tethering in a wireless network
WO2015173287A1 (en) 2014-05-13 2015-11-19 Telefonaktiebolaget L M Ericsson (Publ) System and method for providing ip address translation services
KR102284050B1 (ko) * 2014-09-11 2021-07-30 삼성전자주식회사 무선통신 시스템에서 전자 장치의 트래픽 제어 방법 및 장치
KR20170001654A (ko) 2015-06-25 2017-01-04 주식회사 케이티 Sdn 스위치를 이용한 네트워크 주소 변환 방법
CN105228213B (zh) * 2015-09-30 2019-03-12 青岛海信移动通信技术股份有限公司 一种移动设备进行中继的方法和装置
US10530736B2 (en) * 2016-01-19 2020-01-07 Cisco Technology, Inc. Method and apparatus for forwarding generic routing encapsulation packets at a network address translation gateway
KR101855310B1 (ko) 2016-05-09 2018-05-08 에스케이텔레콤 주식회사 상이한 주소정보 규격을 가진 송수신측 간의 패킷 전송 방법
US10159101B2 (en) * 2016-05-20 2018-12-18 Blackberry Limited Using WLAN connectivity of a wireless device
US10237183B2 (en) * 2016-10-03 2019-03-19 Guavus, Inc. Detecting tethering in networks
US10659356B2 (en) 2017-06-29 2020-05-19 Juniper Networks, Inc. Translation between a first version of internet protocol and a second version of internet protocol when an application layer gateway (ALG) is involved
US10749842B2 (en) 2017-11-27 2020-08-18 Samsung Electronics Co., Ltd. Communication system and method for network address translation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024053802A1 (ko) * 2022-09-07 2024-03-14 엘지전자 주식회사 신호 처리 장치 및 이를 구비하는 차량용 통신 장치

Also Published As

Publication number Publication date
US11483280B2 (en) 2022-10-25
US20210126897A1 (en) 2021-04-29

Similar Documents

Publication Publication Date Title
US11483280B2 (en) Method of translating IP packet for tethering service, communication system and electronic device for performing the same
US11277313B2 (en) Data transmission method and corresponding device
CN111149384B (zh) 针对mptcp的rohc标头压缩
US8432877B2 (en) Routing control method and system
KR102610823B1 (ko) 네트워크 어드레스 변환을 위한 통신 시스템 및 방법
CN103609082A (zh) 用于传递数据分组的方法和系统
WO2016191990A1 (zh) 一种报文转换方法及装置
JP2014528227A (ja) 電力低減ワイヤレス通信のためのシステムおよび方法
WO2020038443A1 (zh) 桥接通信的方法和设备
US20160315687A1 (en) Repeating method and corresponding communication network device, system, computer readable program product and computer readable storage medium
US11809925B2 (en) Data processing method and apparatus
WO2022001639A1 (zh) 通信方法、移动设备及路由设备
CN111641565B (zh) 一种以太网报文的传输方法、装置及系统
US10749842B2 (en) Communication system and method for network address translation
CN114079675B (zh) 报文处理方法、装置、终端设备及移动宽带上网设备
US11863347B2 (en) Systems and methods for inter-device networking using intra-device protcols
CN114157684B (zh) 一种报文处理的方法、设备以及存储介质
KR102526770B1 (ko) 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치
CN113169936B (zh) 用于数据流处理的服务链机制
WO2024169725A1 (zh) 一种通信方法及装置
CN117082152B (zh) 服务处理方法、系统及装置
CN111953804B (zh) 一种网络数据传输的方法、装置、介质和电子设备
US10206083B2 (en) Using wireless display docking technology over infrastructure networks
CN116113009A (zh) 网格WiFi数据传输系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal