KR102526770B1 - 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치 - Google Patents

추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치 Download PDF

Info

Publication number
KR102526770B1
KR102526770B1 KR1020180134227A KR20180134227A KR102526770B1 KR 102526770 B1 KR102526770 B1 KR 102526770B1 KR 1020180134227 A KR1020180134227 A KR 1020180134227A KR 20180134227 A KR20180134227 A KR 20180134227A KR 102526770 B1 KR102526770 B1 KR 102526770B1
Authority
KR
South Korea
Prior art keywords
address
packet
packets
processors
processor
Prior art date
Application number
KR1020180134227A
Other languages
English (en)
Other versions
KR20200051196A (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 KR1020180134227A priority Critical patent/KR102526770B1/ko
Priority to US16/504,757 priority patent/US11271897B2/en
Priority to CN201911071274.9A priority patent/CN111147611B/zh
Publication of KR20200051196A publication Critical patent/KR20200051196A/ko
Application granted granted Critical
Publication of KR102526770B1 publication Critical patent/KR102526770B1/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/256NAT traversal
    • 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
    • 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/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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/255Maintenance or indexing of mapping tables
    • 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/2557Translation policies or rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/58Caching of addresses or names

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

전자 장치는 제 1 변환 테이블, 제 2 변환 테이블, 프로세서들, 및 포워딩 관리기를 포함한다. 제 1 변환 테이블은 제 1 주소 및 제 2 주소의 정보를 저장한다. 조건이 충족되는 경우, 제 2 변환 테이블은 제 1 변환 테이블에 기초하여 제 1 주소 및 제 2 주소의 정보를 저장한다. 프로세서들은 제 1 변환 테이블을 참조하여 제 1 패킷의 제 1 주소를 제 2 주소로 변환한다. 제 2 변환 테이블이 제 1 주소 및 제 2 주소의 정보를 저장한 후에 제 1 주소를 포함하는 제 2 패킷이 수신되는 경우, 포워딩 관리기는 제 2 패킷을 처리하는 것이 프로세서들로 할당되기 전에 제 2 변환 테이블을 참조하여 제 2 패킷의 제 1 주소를 제 2 주소로 변환한다.

Description

추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치 {ELECTRONIC DEVICE PROVIDING FAST PACKET FORWARDING WITH REFERENCE TO ADDITIONAL NETWORK ADDRESS TRANSLATION TABLE}
본 개시는 전자 장치에 관한 것으로, 좀 더 구체적으로는 네트워크 주소 변환을 수행하는 전자 장치에 관한 것이다.
근래 다양한 유형의 전자 장치들이 이용되고 있다. 전자 장치는 그 전자 장치에 포함되는 전자 회로들의 동작들에 따라 고유의 기능들을 수행하여 사용자에게 서비스를 제공한다. 전자 장치는 단독으로 동작하면서 또는 다른 전자 장치와 통신하면서 사용자에게 서비스를 제공할 수 있다.
여러 전자 장치가 네트워크를 통해 서로 통신하는 경우, 하나의 전자 장치는 다른 전자 장치와 직접 통신할 수 있다. 또는, 몇몇 경우, 하나의 전자 장치는 또 다른 전자 장치를 통해서 다른 전자 장치와 통신할 수 있다. 이 경우, 중간의(Intermediate) 전자 장치는 두 전자 장치 사이에서 네트워크 주소 변환을 수행할 수 있다.
IP 자원의 한정에 기인하여, 두 전자 장치에서 다루어지는 네트워크 주소들(예컨대, IP(Internet Protocol) 주소들)은 상이할 수 있다. 네트워크 주소 변환은 상이한 네트워크 주소들을 서로 맵핑하여 하나의 네트워크 주소를 다른 네트워크 주소로 변환하기 위해 수행될 수 있다. 네트워크 주소 변환에 따라, 패킷이 의도된 소스(Source) 장치로부터 의도된 목적지(Destination) 장치로 전달될 수 있다.
그러나, 네트워크 주소 변환에 긴 시간이 소요될 수 있고, 이는 통신 성능을 저하시킬 수 있다. 근래 통신되는 데이터의 양이 증가하는 경향이 있고, 많은 양의 데이터를 통신하는 것은 높은 통신 성능을 요구한다. 이와 관련하여, 네트워크 주소 변환에 소요되는 시간을 감소시키는 것은 많은 양의 데이터를 통신하는 데에 유익할 수 있다.
본 개시의 실시 예들은 긴 시간을 요구하는 네트워크 주소 변환 없이, 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 수행할 수 있는 전자 장치를 제공할 수 있다.
몇몇 실시 예에서, 전자 장치는 제 1 변환 테이블, 제 2 변환 테이블, 프로세서들, 및 포워딩 관리기를 포함할 수 있다. 제 1 변환 테이블은 제 1 주소 및 제 2 주소의 정보를 저장할 수 있다. 조건이 충족되는 경우, 제 2 변환 테이블은 제 1 변환 테이블에 기초하여 제 1 주소 및 제 2 주소의 정보를 저장할 수 있다. 조건이 충족되기 전에 제 1 주소를 포함하는 제 1 패킷이 수신되는 경우, 프로세서들은 제 1 변환 테이블을 참조하여 제 1 패킷의 제 1 주소를 제 2 주소로 변환할 수 있다. 제 2 변환 테이블이 제 1 주소 및 제 2 주소의 정보를 저장한 후에 제 1 주소를 포함하는 제 2 패킷이 수신되는 경우, 포워딩 관리기는 제 2 패킷을 처리하는 것이 프로세서들로 할당되기 전에 제 2 변환 테이블을 참조하여 제 2 패킷의 제 1 주소를 제 2 주소로 변환할 수 있다.
몇몇 실시 예에서, 전자 장치는 변환 테이블, 포워딩 관리기, 버퍼, 및 프로세서들을 포함할 수 있다. 조건이 충족되는 경우, 변환 테이블은 제 1 주소 및 제 2 주소의 정보를 저장할 수 있다. 변환 테이블이 제 1 주소 및 제 2 주소의 정보를 저장한 후에 제 1 주소를 포함하는 패킷이 수신되는 경우, 포워딩 관리기는 변환 테이블을 참조하여 패킷의 제 1 주소를 제 2 주소로 변환할 수 있다. 포워딩 관리기가 패킷의 제 1 주소를 제 2 주소로 변환한 경우, 버퍼는 제 2 주소를 포함하는 패킷 및 패킷에 대응하는 표식을 저장할 수 있다. 프로세서들은, 표식을 참조하여, 추가의 주소 변환 없이 패킷이 출력되도록 제 2 주소를 포함하는 패킷을 처리할 수 있다.
몇몇 실시 예에서, 전자 장치는 프로세서들 및 포워딩 관리기를 포함할 수 있다. 프로세서들은, 소스 장치와 목적지 장치 사이의 통신과 관련하여, 제 1 패킷들을 위해 제 1 주소로부터 제 2 주소로의 제 1 주소 변환을 처리한 다음에 제 1 패킷들을 출력하는 것을 처리할 수 있다. 통신과 관련되는 조건이 충족되는 경우, 포워딩 관리기는 제 2 패킷들을 위해 제 1 주소로부터 제 2 주소로의 제 2 주소 변환을 처리할 수 있다. 포워딩 관리기가 제 2 주소 변환을 처리한 경우, 프로세서들은 제 2 패킷들을 위한 제 1 주소 변환 없이 제 2 패킷들을 출력하는 것을 처리할 수 있다.
몇몇 실시 예에서, 전자 장치는 프로세서들 및 인터페이스 회로를 포함할 수 있다. 프로세서들은 각각이 제 1 주소를 포함하는 제 1 패킷들이 수신되는 경우에 제 1 패킷들 각각의 제 1 주소를 제 2 주소로 변환할 수 있다. 프로세서들은 제 1 패킷들이 수신되는 동안 조건이 충족된 후에 각각이 제 2 주소를 포함하는 제 2 패킷들을 수신할 수 있다. 제 2 패킷들의 주소들은 프로세서들이 제 2 패킷들을 수신하기 전에 제 1 주소로부터 제 2 주소로 변환되었을 수 있다. 인터페이스 회로는 각각이 제 2 주소를 포함하는 제 1 패킷들 및 제 2 패킷들이 목적지 장치로 출력되도록 목적지 장치와의 통신을 수행할 수 있다. 제 2 패킷들을 출력하는 것의 대역폭은 제 1 패킷들을 출력하는 것의 대역폭보다 클 수 있다.
실시 예들에 따르면, 네트워크 주소 변환에 소요되는 시간이 감소할 수 있고, 패킷이 소스 장치로부터 목적지 장치로 빠르게 전달될 수 있다. 따라서, 통신 성능이 향상될 수 있다.
도 1은 몇몇 실시 예에 따른 네트워크 주소 변환기들을 포함하는 네트워크 시스템의 예시적인 구성을 보여주는 블록도이다.
도 2 및 도 3은 도 1의 네트워크 시스템과 관련되는 예시적인 구현들을 보여주는 개념도들이다.
도 4는 도 1의 네트워크 주소 변환기와 관련되는 예시적인 구성을 보여주는 블록도이다.
도 5는 도 4의 전자 장치의 예시적인 구성 및 동작을 설명하기 위한 블록도이다.
도 6은 도 4의 전자 장치의 예시적인 동작을 설명하기 위한 개념도이다.
도 7 및 도 8은 도 4의 전자 장치의 예시적인 동작들을 설명하는 흐름도들이다.
도 9는 도 4의 버퍼에 저장되는 정보의 예시적인 구성을 보여주는 개념도이다.
도 10은 도 4의 프로세서 할당기의 예시적인 구성을 보여주는 개념도이다.
도 11은 도 4의 전자 장치의 메인 변환 처리와 관련되는 예시적인 동작을 설명하기 위한 개념도이다.
도 12는 도 4의 메인 NAT(Network Address Translation) 테이블에 저장되는 정보의 예시적인 구성을 보여주는 개념도이다.
도 13은 도 4의 전자 장치의 메인 변환 처리와 관련되는 예시적인 동작을 설명하기 위한 개념도이다.
도 14는 도 4의 전자 장치의 메인 변환 처리와 관련되는 예시적인 동작을 설명하는 흐름도이다.
도 15는 도 4의 전자 장치의 예시적인 동작을 설명하는 흐름도이다.
도 16은 도 4의 빠른 포워딩을 위한 NAT 테이블에 저장되는 정보의 예시적인 구성을 보여주는 개념도이다.
도 17 및 도 18은 도 4의 전자 장치의 빠른 포워딩 처리와 관련되는 예시적인 동작들을 설명하기 위한 개념도들이다.
도 19 및 도 20은 도 4의 전자 장치의 빠른 포워딩 처리와 관련되는 예시적인 동작들을 설명하는 흐름도들이다.
도 21은 도 4의 프로세서 할당기의 예시적인 동작을 설명하기 위한 개념도이다.
도 22는 도 4의 전자 장치의 예시적인 동작을 설명하는 흐름도이다.
도 23 및 도 24는 도 4의 전자 장치의 예시적인 동작들을 설명하기 위한 개념도들이다.
도 25는 도 1의 네트워크 주소 변환기와 관련되는 예시적인 구성을 보여주는 블록도이다.
아래에서, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자들이 본 개시를 용이하게 실시할 수 있도록, 첨부되는 도면들을 참조하여 몇몇 실시 예가 명확하고 상세하게 설명될 것이다.
도 1은 몇몇 실시 예에 따른 네트워크 주소 변환기들(120, 140)을 포함하는 네트워크 시스템(100)의 예시적인 구성을 보여주는 블록도이다.
네트워크 시스템(100)은 네트워크(130)를 통해 연결되는 전자 장치들(110, 150)을 포함할 수 있다. 네트워크(130)는 이더넷(Ethernet), LTE(Long Term Evolution), WIMAX(Worldwide Interoperability for Microwave Access), CDMA(Code Division Multiple Access) 등과 같은 다양한 유선/무선 통신 규약에 따라 통신되는 데이터/신호를 전달하기 위한 유선/무선 채널을 제공할 수 있다.
전자 장치들(110, 150) 각각은 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 웨어러블(Wearable) 장치, 비디오 게임기(Video Game Console), 워크스테이션, 서버, 전기 자동차, 가전기기, 의료기기 등과 같은 전자 장치들 중 하나일 수 있다. 전자 장치들(110, 150)은 사용자들에게 서비스들을 제공하기 위해 네트워크(130)를 통해 서로 통신하면서 데이터/신호를 교환할 수 있다.
예로서, 전자 장치들(110, 150)은 서버-클라이언트 구조로 구성될 수 있다. 또는, 전자 장치들(110, 150)은 동등한 수준의 두 단말 장치일 수 있다. 본 개시는 여기에 한정되지 않고, 전자 장치들(110, 150)의 구성은 다양하게 변경 또는 수정될 수 있다.
예로서, 전자 장치들(110, 150) 사이에서 교환되는 데이터/신호는 패킷의 형태로 전달될 수 있다. 패킷의 헤더(Header)는 패킷을 처음에 생성하였던 소스(Source) 장치의 네트워크 주소(예컨대, IP(Internet Protocol) 주소) 및 패킷을 마지막으로 수신할 목적지(Destination) 장치의 네트워크 주소와 관련되는 정보를 포함할 수 있다. 패킷은 헤더에 포함되는 네트워크 주소 정보에 기초하여 의도된 소스 장치로부터 의도된 목적지 장치로 전달될 수 있다.
IP 자원들의 양이 한정됨에 따라, 내부의 IP 주소가 외부의 IP 주소와 별개로 주어질 수 있다. 이와 관련하여, 네트워크 주소 변환기(120)는 전자 장치(110)와 네트워크(130) 사이에서 네트워크 주소 변환(Network Address Translation)을 수행할 수 있고, 네트워크 주소 변환기(140)는 전자 장치(150)와 네트워크(130) 사이에서 네트워크 주소 변환을 수행할 수 있다.
네트워크 주소 변환기(120)는 전자 장치(110)에서 다루어지는 IP 주소를 네트워크 주소 변환기(120)에서 다루어지는 IP 주소와 맵핑하여 두 IP 주소 사이의 네트워크 주소 변환을 수행할 수 있다. 네트워크 주소 변환기(140)는 전자 장치(150)에서 다루어지는 IP 주소를 네트워크 주소 변환기(140)에서 다루어지는 IP 주소와 맵핑하여 두 IP 주소 사이의 네트워크 주소 변환을 수행할 수 있다.
네트워크 주소 변환기들(120, 140)은 변환된 IP 주소들에 기초하여 전자 장치들(110, 150)을 위해 네트워크(130)를 통해 서로 통신할 수 있다. 네트워크 주소 변환기들(120, 140)은 변환된 IP 주소들과 원래의 IP 주소들 사이의 맵핑 관계들에 기초하여 전자 장치들(110, 150)과 통신할 수 있다. 따라서, 패킷이 전자 장치들(110, 150) 사이에서 의도된 소스 장치로부터 의도된 목적지 장치로 전달될 수 있다.
예로서, 네트워크 주소 변환기들(120, 140)과 전자 장치들(110, 150) 사이의 통신은 USB(Universal Serial Bus), PCIe(Peripheral Component Interconnect Express), M-PCIe(Mobile PCIe), Firewire, Bluetooth, NFC(Near Field Communication), Wi-Fi(Wireless Fidelity) 등과 같은 다양한 유선/무선 인터페이스 규약에 따라 수행될 수 있다.
네트워크 주소 변환기들(120, 140)은 네트워크 주소 변환을 수행하기 위해 NAT(Network Address Translation) 스킴(Scheme), NAT64 스킴, cLAT(Customer-side Translator) 스킴, pLAT(Provider-side Translator) 스킴 등과 같은 다양한 주소 변환 스킴 중 적어도 하나를 채용할 수 있다.
다만, 본 개시는 도 1을 참조하여 설명된 예들로 한정되지 않고, 아래에서 설명될 네트워크 주소 변환 및 패킷 포워딩(Packet Forwarding)을 수행하기 위해 다양하게 변경 또는 수정될 수 있음이 잘 이해될 것이다.
도 2 및 도 3은 도 1의 네트워크 시스템(100)과 관련되는 예시적인 구현들을 보여주는 개념도들이다.
도 2를 참조하면, 도 1의 네트워크 시스템(100)은 도 2의 네트워크 시스템(100a)을 포함할 수 있다. 예로서, 전자 장치(110) 및 네트워크 주소 변환기(120)는 전자 장치(210) 및 통신 중재기(220)를 포함할 수 있다. 전자 장치(210)는 통신 중재기(220)를 통해 네트워크(130)로 연결될 수 있다. 통신 중재기(220)는 전자 장치(210)를 위해 네트워크 주소 변환을 수행할 수 있다.
예로서, 전자 장치(210)는 데스크톱 컴퓨터일 수 있고, 통신 중재기(220)는 라우터(Router), 스위치, 허브, WAP(Wireless Access Point) 등과 같은 전자 장치들 중 하나일 수 있다. 예로서, 전자 장치(210)는 USB, PCIe, WiFi 등과 같은 인터페이스 규약에 따라 통신 중재기(220)와 통신할 수 있고, 통신 중재기(220)는 이더넷, WiFi, WIMAX 등과 같은 통신 규약에 따라 네트워크(130)로 연결될 수 있다.
도 3을 참조하면, 도 1의 네트워크 시스템(100)은 도 3의 네트워크 시스템(100b)을 포함할 수 있다. 예로서, 전자 장치(110) 및 네트워크 주소 변환기(120)는 전자 장치(310) 및 전자 장치(320)를 포함할 수 있다. 전자 장치(310)는 전자 장치(320)를 통해 네트워크(130)로 연결될 수 있다. 전자 장치(320)는 전자 장치(310)를 위해 네트워크 주소 변환을 수행할 수 있다.
예로서, 전자 장치(310)는 랩톱 컴퓨터 또는 태블릿 컴퓨터일 수 있고, 전자 장치(320)는 스마트 폰일 수 있다. 예로서, 전자 장치(310)는 USB, WiFi 등과 같은 인터페이스 규약에 따라 전자 장치(320)와 통신할 수 있고, 전자 장치(320)는 LTE, CDMA, WiFi 등과 같은 통신 규약에 따라 네트워크(130)로 연결될 수 있다.
네트워크 주소 변환기(120)는 통신을 중재하고 네트워크 주소 변환을 수행하는 데에 특화된 전용 장치(예컨대, 통신 중재기(220))일 수 있다. 또는, 네트워크 주소 변환기(120)는 다른 전자 장치를 위해 네트워크 주소 변환을 수행함은 물론 스스로 능동적으로 네트워크(130)를 통해 통신할 수 있는 범용 장치(예컨대, 전자 장치(320))일 수 있다. 본 개시는 여기에 한정되지 않고, 네트워크 주소 변환기(120)의 구현은 다양하게 변경 또는 수정될 수 있다.
도 2 및 도 3은 도 1의 전자 장치(110) 및 네트워크 주소 변환기(120)와 관련하여 설명되었다. 그러나, 도 2 및 도 3의 설명은 도 1의 전자 장치(150) 및 네트워크 주소 변환기(140)와 관련하여서도 적용될 수 있음이 잘 이해될 것이다. 나아가, 네트워크 시스템(100)의 구성은 네트워크 시스템들(100a, 100b)의 구성들과 상이하게 변경 또는 수정될 수 있음이 잘 이해될 것이다. 도 1 내지 도 3은 더 나은 이해를 가능하게 하기 위해 제공되고, 본 개시를 한정하도록 의도되지 않는다.
예로서, 전자 장치(320)가 무선 통신 네트워크로 연결되는 경우, 전자 장치(310)는 (예컨대, USB, WiFi 등의 인터페이스 규약에 따라) 전자 장치(320)로의 테더링(Tethering)을 통해 무선 통신 네트워크로 액세스할 수 있다. 이 경우, 네트워크 주소 변환이 전자 장치(320)에 의해 수행되는 동안, 주소 검색, 주소 변환, 패킷 필터링, 및 패킷 포워딩을 수행하는 데에 긴 시간이 소요될 수 있다.
이러한 이유 때문에, 테더링을 통한 전자 장치(310)와 무선 통신 네트워크 사이의 통신의 성능은 전자 장치(320)와 무선 통신 네트워크 사이의 통신의 성능보다 현저하게 낮을 수 있다(예컨대, 테더링은 직접 통신에서 가용한 대역폭의 약 50%의 대역폭을 지원할 수 있다). 근래 통신되는 데이터의 양이 증가하는 경향이 있고, 테더링의 낮은 성능은 많은 양의 데이터를 통신하는 데에 불충분할 수 있다.
따라서, 실시 예들은 긴 시간을 요구하는 네트워크 주소 변환 없이 빠른 패킷 포워딩을 수행하여 네트워크 주소 변환에 소요되는 시간을 감소시킬 수 있다. 따라서, 통신 성능이 향상될 수 있고, 패킷이 소스 장치로부터 목적지 장치로 빠르게 전달될 수 있다. 다만, 테더링은 더 나은 이해를 가능하게 하기 위해 제공되는 예일 뿐이고, 실시 예들은 네트워크 주소 변환을 수반하는 모든 종류들의 통신을 위해 채용될 수 있음이 잘 이해될 것이다.
도 4는 도 1의 네트워크 주소 변환기(120 또는 140)와 관련되는 예시적인 구성을 보여주는 블록도이다.
몇몇 실시 예에서, 도 1의 네트워크 주소 변환기(120 또는 140)는 전자 장치(1000)로 구현될 수 있다. 전자 장치(1000)는 네트워크 주소 변환을 수행할 수 있는 어떤 종류의 장치로든 구현될 수 있다. 예로서, 전자 장치(1000)는 통신 중재기(220)와 같은 전용 장치일 수 있다. 또는, 예로서, 전자 장치(1000)는 전자 장치(320)와 같은 범용 장치일 수 있고, 네트워크(130)와 전자 장치(310) 사이에서 네트워크 주소 변환을 수행할 수 있다.
아래에서, 더 나은 이해를 가능하게 하기 위해 네트워크(130)와 전자 장치(310) 사이의 네트워크 주소 변환이 설명되지만, 본 개시는 여기에 한정되지 않는다.
몇몇 실시 예에서, 전자 장치(1000)는 수신 인터페이스 회로(1100), 빠른 포워딩 관리기(1200), 빠른 포워딩을 위한 NAT 테이블(1300)(이하, 빠른 포워딩 NAT 테이블(1300)로 언급됨), 프로세서 할당기(1400), 중앙 처리 블록(CPB), 메인 NAT 테이블(1700), 및 송신 인터페이스 회로(1800)를 포함할 수 있다.
수신 인터페이스 회로(1100)는 소스 장치와의 통신을 수행하여, 소스 장치로부터 전달된 패킷을 수신할 수 있다. 예로서, 수신 인터페이스 회로(1100)는 네트워크(130)를 통해 소스 장치로 연결될 수 있고, 소스 장치로부터 전달된 패킷(RPK)을 수신할 수 있다. 수신 인터페이스 회로(1100)는 수신 인터페이스 회로(1100)에 의해 지원되는 인터페이스 규약(예컨대, RmNet)에 따라 패킷(RPK)을 수신할 수 있다.
수신 인터페이스 회로(1100)는 수신되는 패킷(RPK)을 수신하고 처리하기 위한 다양한 하드웨어 회로(예컨대, 아날로그 회로, 논리 회로 등)를 포함할 수 있다. 수신 인터페이스 회로(1100)는 버퍼(1110)를 포함할 수 있다. 수신 인터페이스 회로(1100)는 수신된 패킷(RPK)을 버퍼(1110)에 일시적으로 저장할 수 있다.
빠른 포워딩 관리기(1200)는 패킷(RPK)과 관련하여 빠른 포워딩을 제공할 것인지 판별할 수 있다. 빠른 포워딩 NAT 테이블(1300)은 패킷(RPK)에 대해 빠른 포워딩을 제공하는 데에 이용되는 정보를 저장할 수 있다. 빠른 포워딩 관리기(1200)는 빠른 포워딩 NAT 테이블(1300)을 참조하여 빠른 포워딩을 제공할 수 있다.
중앙 처리 블록(CPB)은 프로세서들(1500) 및 버퍼(1600)를 포함할 수 있다. 프로세서들(1500)은 패킷(RPK)에 대해 다양한 처리를 수행하여, 목적지 장치로 출력될 패킷(예컨대, 패킷(TPK))을 준비할 수 있다. 버퍼(1600)는 프로세서들(1500)에 의해 처리된 및 처리될 정보를 저장할 수 있다. 예로서, 버퍼(1600)는 패킷들(RPK, TPK)과 관련되는 정보를 저장할 수 있다.
프로세서들(1500)은 패킷(RPK)을 위해 네트워크 주소 변환을 수행할 수 있다. 메인 NAT 테이블(1700)은 패킷(RPK)을 위해 네트워크 주소 변환을 수행하는 데에 이용되는 정보를 저장할 수 있다. 프로세서들(1500)은 버퍼(1600) 및 메인 NAT 테이블(1700)을 참조하여, 패킷(RPK)에 포함되는 주소를 다른 주소로 변환 또는 맵핑할 수 있다.
프로세서들(1500)은 프로그램 코드의 명령어 집합들을 실행하도록 구성되는 프로세서 코어들을 포함할 수 있다. 소프트웨어 및/또는 펌웨어의 프로그램 코드가 사용자 공간(User Space) 또는 커널 공간(Kernel Space) 상에서 실행되는 경우, 프로세서들(1500)은 프로그램 코드에 의해 의도되는 동작들이 수행되도록 프로그램 코드에 의해 요청되는 명령어 집합들의 연산들을 처리할 수 있다. 이를 위해, 프로세서들(1500)의 프로세서 코어들은 다양한 산술/논리 연산을 처리할 수 있는 범용 및/또는 전용의 하드웨어 회로들을 포함할 수 있다.
실시 예들에서, 패킷(RPK)과 관련하여 빠른 포워딩이 제공되지 않는 경우, 프로세서들(1500)은 메인 변환 처리(PMT)의 동작들을 수행할 수 있다. 반면, 패킷(RPK)과 관련하여 빠른 포워딩이 제공되는 경우, 프로세서들(1500)은 메인 변환 처리(PMT) 없이 빠른 포워딩 처리(PFF)의 동작들을 수행할 수 있다. 이러한 실시 예들은 아래에서 자세히 설명될 것이다.
프로세서 할당기(1400)는 프로세서들(1500) 중 패킷(RPK)을 처리할 프로세서를 선택할 수 있다. 프로세서 할당기(1400)는 선택된 프로세서가 패킷(RPK)을 처리하도록 패킷(RPK)을 선택된 프로세서로 할당하고 패킷(RPK)을 버퍼(1600)로 제공할 수 있다.
송신 인터페이스 회로(1800)는 프로세서들(1500)에 의해 준비된 패킷(TPK)을 수신할 수 있다. 송신 인터페이스 회로(1800)는 버퍼(1810)를 포함할 수 있다. 송신 인터페이스 회로(1800)는 준비된 패킷(TPK)을 버퍼(1810)에 일시적으로 저장할 수 있다.
송신 인터페이스 회로(1800)는 목적지 장치(예컨대, 전자 장치(310))로 연결될 수 있다. 송신 인터페이스 회로(1800)는 프로세서들(1500)에 의해 처리된 버퍼(1810)의 패킷(TPK)이 목적지 장치로 출력되도록 목적지 장치와의 통신을 수행할 수 있다. 송신 인터페이스 회로(1800)는 송신 인터페이스 회로(1800)에 의해 지원되는 인터페이스 규약(예컨대, USB 또는 WiFi)에 따라 패킷(TPK)을 목적지 장치로 출력할 수 있다. 송신 인터페이스 회로(1800)는 패킷(TPK)을 처리하고 출력하기 위한 다양한 하드웨어 회로(예컨대, 아날로그 회로, 논리 회로 등)를 포함할 수 있다.
버퍼들(1110, 1600, 1800)은 정보 또는 데이터를 저장하도록 구성되는 메모리 소자들을 포함할 수 있다. 예로서, 버퍼들(1110, 1600, 1800) 각각은 SRAM(Static Random Access Memory), DRAM(Dynamic RAM), SDRAM(Synchronous RAM) 등과 같은 휘발성 메모리, 및/또는 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
도 5는 도 4의 전자 장치(1000)의 예시적인 구성 및 동작을 설명하기 위한 블록도이다.
예로서, 도 4의 프로세서들(1500)은 도 5의 8개의 프로세서(1510 내지 1580)를 포함할 수 있다. 본 개시는 프로세서들(1510 내지 1580)로 한정되지 않고, 프로세서들(1500)에 포함되는 프로세서들의 개수는 전자 장치(1000)의 설계에 따라 다양하게 변경 또는 수정될 수 있다. 다만, 더 나은 이해를 가능하게 하기 위해, 아래의 설명들에서 프로세서들(1500)이 8개의 프로세서(1510 내지 1580)를 포함하는 것으로 가정될 것이다.
프로세서들(1510 내지 1580) 각각은 프로그램 코드에 의해 요청되는 명령어 집합들의 연산들을 처리할 수 있다. 예로서, 프로세서들(1510 내지 1580)은 메인 변환 처리(PMT) 및 빠른 포워딩 처리(PFF)와 관련되는 연산들을 처리할 수 있다.
스케줄러(1505)는 프로세서들(1510 내지 1580)에 의해 처리될 태스크들을 스케줄링할 수 있고, 프로세서들(1510 내지 1580)로 태스크들을 할당할 수 있다. 예로서, 스케줄러(1505)는 메인 변환 처리(PMT) 및 빠른 포워딩 처리(PFF)를 수행하기 위한 태스크들을 프로세서들(1510 내지 1580)로 할당할 수 있다. 스케줄러(1505)는 프로세서 할당기(1400) 및 프로세서들(1510 내지 1580)의 동작들에 따라 태스크 스케줄링 및 태스크 할당을 수행할 수 있다.
큐들(1511 내지 1581)은 각 프로세서들(1510 내지 1580)에 대응하여 제공될 수 있다. 큐들(1511 내지 1581)은 스케줄러(1505)의 요청들에 따라 각 프로세서들(1510 내지 1580)에 의해 처리될 태스크들의 목록들을 관리할 수 있다.
프로세서들(1510 내지 1580)은 각 큐들(1511 내지 1581)을 참조하여, 프로세서들(1510 내지 1580)로 할당된 태스크들을 처리할 수 있다. 프로세서들(1510 내지 1580)은 버퍼(1600)에 저장된 데이터 및 정보에 기초하여, 할당된 태스크들을 처리하기 위한 연산들을 수행할 수 있다.
도 6은 도 4의 전자 장치(1000)의 예시적인 동작을 설명하기 위한 개념도이다. 도 7은 도 4의 전자 장치(1000)의 예시적인 동작을 설명하는 흐름도이다.
도 6을 참조하면, 연결 관리기(CM)는 프로세서들(1500)에 의해 실행되는 프로그램 코드로 구현될 수 있다. 연결 관리기(CM)가 실행됨에 따라, 프로세서들(1500)은 목적지 장치(예컨대, 전자 장치(310))가 송신 인터페이스 회로(1800)를 통해 전자 장치(1000)로 연결되는지 검출할 수 있다(도 7의 S110). 목적지 장치가 연결되지 않는 경우(도 7의 S110의 No), 어떤 동작이 요구되지 않을 수 있다.
프로세서들(1500)이 연결을 검출한 경우(도 7의 S110의 Yes), 프로세서들(1500)은 검출된 연결이 송신 인터페이스 회로(1800)와 관련되는지 판별할 수 있다(도 7의 S120). 예로서, 검출된 연결이 송신 인터페이스 회로(1800)와 관련되지 않는 경우(예컨대, 수신 인터페이스 회로(1100)로의 연결이 검출된 경우)(도 7의 S120의 No), 어떤 동작이 요구되지 않을 수 있다.
장치가 송신 인터페이스 회로(1800)를 통해 연결됨을 프로세서들(1500)이 검출한 경우(도 7의 S120의 Yes), 프로세서들(1500)은 연결된 장치와 관련하여 빠른 포워딩 NAT 테이블(1300)을 초기화할 수 있다(도 7의 S130). 초기화에서, 프로세서들(1500)은 빠른 포워딩 NAT 테이블(1300)에 저장된 이전 엔트리를 삭제(Remove)하도록 빠른 포워딩 NAT 테이블(1300)에 요청할 수 있다.
프로세서들(1500)은 연결된 장치의 장치 정보를 획득할 수 있다(도 7의 S140). 예로서, 장치 정보는 연결된 장치와 송신 인터페이스 회로(1800) 사이의 통신을 지원하는 인터페이스 규약(예컨대, USB, WiFi 등)의 정보를 포함할 수 있다. 장치 정보는 연결된 장치의 내부 구성(예컨대, 연결된 장치의 IP 주소 및 포트, 연결된 장치의 MAC(Media Access Control) 주소 등)의 정보를 포함할 수 있다.
그밖에, 장치 정보는 연결된 장치를 식별하기 위해 참조되는 정보(예컨대, 장치 유형, 장치 식별자 등)를 포함할 수 있다. 장치 정보는 버퍼(1600) 및/또는 프로세서들(1500)에 의해 액세스 가능한 다른 메모리에 저장될 수 있다.
프로세서들(1500)은 연결된 장치를 목적지 장치로서 구성할 수 있다(도 7의 S150). 따라서, 프로세서들(1500)은 소스 장치로부터 수신되는 패킷을 목적지 장치로 포워딩하기 위해 동작할 수 있다. 나아가, 프로세서들(1500)은 연결된 목적지 장치에 대한 빠른 포워딩 처리(PFF)를 가능하게(Enable) 할 수 있다(도 7의 S160).
도 8은 도 4의 전자 장치(1000)의 예시적인 동작을 설명하는 흐름도이다.
소스 장치가 수신 인터페이스 회로(1100)(및 네트워크(130))를 통해 전자 장치(1000)로 연결되고 목적지 장치가 송신 인터페이스 회로(1800)를 통해 전자 장치(1000)로 연결된 후, 소스 장치와 목적지 장치 사이의 통신이 전자 장치(1000)를 통해 수행될 수 있다. 수신 인터페이스 회로(1100)는 소스 장치로부터 전달되는 패킷(RPK)을 수신할 수 있고, 패킷(RPK)을 버퍼(1110)에 버퍼링할 수 있다(S210).
패킷(RPK)을 수신함에 응답하여, 패킷 수신을 처리하기 위한 인터럽트가 발생할 수 있다. 인터럽트에 응답하여, 패킷(RPK)이 버퍼(1110)로부터 버퍼(1600)로 복사되거나 이동될 수 있다(S220). 또는, 몇몇 경우, 복사 또는 이동 없이 버퍼(1110)의 패킷(RPK)이 프로세서들(1500)에 의해 액세스 가능할 수 있다.
빠른 포워딩 관리기(1200)는 빠른 포워딩 NAT 테이블(1300)을 참조하여, 패킷(RPK)과 관련하여 빠른 포워딩이 요구되는지 판별할 수 있다(S230). 빠른 포워딩이 요구되지 않는 경우(S230의 No), 프로세서들(1500)은 메인 변환 처리(PMT)를 수행할 수 있다(S300).
빠른 포워딩이 가용한 경우(S230의 Yes), 프로세서들(1500)은 메인 변환 처리(PMT) 없이 빠른 포워딩 처리(PFF)만 수행할 수 있다(S500). 아래에서 설명될 것처럼, 패킷(RPK)을 처리하는 것이 프로세서들(1500)로 할당되기 전에 미리 빠른 포워딩 관리기(1200)가 패킷(RPK)에 대해 전처리를 수행하여 빠른 주소 변환을 제공할 수 있고, 따라서 메인 변환 처리(PMT)가 요구되지 않을 수 있다.
메인 변환 처리(PMT) 또는 빠른 포워딩 처리(PFF)가 수행됨에 따라, 프로세서들(1500)은 패킷(RPK)을 처리하여 목적지 장치로 출력될 패킷(TPK)을 생성할 수 있다. 버퍼(1600)는 처리된 패킷(TPK)을 일시적으로 저장할 수 있다. 프로세서들(1500)은 버퍼(1600)의 패킷(TPK)을 버퍼(1810)로 복사 또는 이동시키기 위해 인터럽트를 야기할 수 있다(S240).
송신 인터페이스 회로(1800)는 버퍼(1810)에 패킷(TPK)을 버퍼링할 수 있고, 패킷(TPK)을 목적지 장치로 출력할 수 있다. 따라서, 패킷이 전자 장치(1000)를 통해 소스 장치로부터 목적지 장치로 전달될 수 있다.
도 9는 도 4의 버퍼(1600)에 저장되는 정보의 예시적인 구성을 보여주는 개념도이다.
버퍼(1600)는 패킷의 헤더 및 데이터를 저장할 수 있다. 예로서, 패킷의 헤더는 패킷을 전달하기 위한 통신 프로토콜의 종류, 패킷의 길이, 패킷 오류를 검사하기 위해 참조되는 체크섬(Checksum), 패킷의 TTL(Time-to-live) 등과 관련되는 정보를 포함할 수 있다. 나아가, 패킷의 헤더는 소스 장치의 IP 주소 및 포트, 및 목적지 장치의 IP 주소 및 포트와 관련되는 정보를 포함할 수 있다. 그밖에, 패킷의 헤더는 패킷을 통신하는 데에 참조되는 다양한 정보를 포함할 수 있다.
버퍼(1600)는 패킷을 통해 전달하고자 의도되는 데이터를 저장할 수 있다.
버퍼(1600)는 수신 인터페이스 회로(1100) 및 송신 인터페이스 회로(1800)에 의해 지원되는 인터페이스 규약들과 관련되는 정보를 포함할 수 있다. 예로서, 버퍼(1600)는 수신 인터페이스 회로(1100)에서 패킷(RPK)을 수신하고 송신 인터페이스 회로(1800)로부터 패킷(TPK)을 출력하는 것과 관련되는 인터페이스 규약들의 정보를 포함할 수 있다(예컨대, 패킷(RPK)이 RmNet 인터페이스 규약에 따라 수신되고 패킷(TPK)이 WiFi 인터페이스 규약에 따라 출력됨). 따라서, 패킷은 패킷을 수신하고 출력하는 것과 관련되는 인터페이스 규약들의 종류들의 정보를 수반할 수 있다.
버퍼(1600)는 빠른 포워딩의 표식(Signature)을 저장할 수 있다. 패킷이 빠른 주소 변환 및 빠른 포워딩 처리(PFF)를 통해 전달되는 경우, 버퍼(1600)는 패킷에 대응하는 표식을 저장할 수 있다. 프로세서들(1500)은 표식을 참조하여, 패킷이 빠른 포워딩 처리(PFF)를 요구함을 판별할 수 있다. 이는 아래에서 더 설명될 것이다.
예로서, 표식은 빠른 포워딩 처리(PFF)를 지시하기 위한 비트들을 포함할 수 있다. 예로서, 표식은 버퍼(1600)에서 예약된(Reserved) 영역 또는 콜 백(Callback) 영역에 저장될 수 있다. 또는, 예로서, 표식은 패킷의 헤더의 예약된 필드에 포함될 수 있다. 본 개시는 여기에 한정되지 않고, 표식의 구성은 프로세서들(1500)에게 빠른 포워딩 처리(PFF)를 요청하기 위해 다양하게 변경 또는 수정될 수 있다.
도 10은 도 4의 프로세서 할당기(1400)의 예시적인 구성을 보여주는 개념도이다.
프로세서 할당기(1400)는 해시 모듈(1410) 및 선택기(1430)를 포함할 수 있다. 프로세서들(1500)에 의해 처리될 패킷이 해시 모듈(1410) 및 선택기(1430)로 입력될 수 있다. 예로서, 패킷은 버퍼(1100) 또는 버퍼(1600)로부터 프로세서 할당기(1400)로 입력될 수 있다.
해시 모듈(1410)은 수신된 패킷에 대해 해시 연산을 수행할 수 있다. 패킷은 패킷을 수신하고 출력하는 것과 관련되는 인터페이스 규약들의 종류들의 정보를 수반할 수 있다. 해시 모듈(1410)은 인터페이스 규약들의 종류들 중 하나를 지시하는 값에 대해 해시 연산을 수행할 수 있다.
선택기(1430)는 해시 연산의 결과에 기초하여, 수신된 패킷을 처리할 프로세서를 프로세서들(1500) 중에서 선택할 수 있다. 따라서, 수신된 패킷을 처리할 프로세서는 수신 인터페이스 회로(1100) 또는 송신 인터페이스 회로(1800)에 의해 지원되는 인터페이스 규약의 종류에 기초하여 선택될 수 있다.
선택기(1430)는 수신된 패킷이 선택된 프로세서로 할당되도록, 해시 연산의 결과에 기초하여, 수신된 패킷을 출력할 수 있다. 프로세서 할당기(1400)가 선택기(1430)로부터 패킷을 출력함에 따라, 스케줄러(1505)는, 선택된 프로세서가 패킷을 처리하도록, 선택된 프로세서에 대응하는 큐에 태스크를 큐잉할 수 있다.
예로서, 패킷을 수신하거나 출력하기 위한 인터페이스 규약이 RmNet인 경우, 패킷을 처리하는 것은 프로세서들(1510, 1520, 1530) 중 하나로 할당될 수 있다. 유사하게, 패킷을 수신하거나 출력하기 위한 인터페이스 규약이 WiFi, USB, PCIe, 또는 그 외 다른 규약인 경우, 패킷을 처리하는 것은 프로세서(1540 또는 1550), 프로세서(1560), 프로세서(1570), 또는 프로세서(1580)로 할당될 수 있다. 이 예는 더 나은 이해를 가능하게 하기 위해 제공되고, 본 개시를 한정하도록 의도되지 않는다.
프로세서 할당기(1400)는 본 개시에서 설명되는 동작들을 수행하도록 구성되는 하드웨어 회로들(예컨대, 아날로그 회로, 논리 회로 등)을 포함할 수 있다. 예로서, 해시 모듈(1410)은 해시 연산을 수행하도록 구성되는 논리 회로를 포함할 수 있고, 선택기(1430)는 해시 연산의 결과에 대응하는 출력 경로를 제공하도록 구성되는 디멀티플렉서(Demultiplexer)를 포함할 수 있다. 또는, 몇몇 경우, 해시 모듈(1410) 및 선택기(1430)의 몇몇 동작은 프로세서에 의해 실행되는 소프트웨어 및/또는 펌웨어의 프로그램 코드로 구현될 수 있다.
도 11 및 도 13은 도 4의 전자 장치(1000)의 메인 변환 처리(PMT)와 관련되는 예시적인 동작들을 설명하기 위한 개념도들이다. 도 12는 도 4의 메인 NAT 테이블(1700)에 저장되는 정보의 예시적인 구성을 보여주는 개념도이다. 도 14는 도 4의 전자 장치(1000)의 메인 변환 처리(PMT)와 관련되는 예시적인 동작을 설명하는 흐름도이다.
도 11을 참조하면, 수신 인터페이스 회로(1100)는 소스 장치로부터 패킷(RPK)을 수신할 수 있다(도 8의 S210). 패킷(RPK)은 소스 장치의 IP 주소로서 제 1 주소(예컨대, 아래에서 설명되는 내부 소스 IP 주소)를 포함할 수 있다. 버퍼(1110)에 버퍼링된 패킷(RPK)은 버퍼(1600)로 복사되거나 이동될 수 있다(도 8의 S220).
소스 장치와 목적지 장치 사이의 통신이 개시된 후 초기의 통신에서, 빠른 포워딩 처리(PFF)를 수행하기 위한 조건은 아직 충족되지 않았을 수 있고(도 8의 S230의 No), 조건이 충족되기 전에 패킷(RPK)이 수신될 수 있다. 따라서, 초기의 통신에서, 패킷(RPK)과 관련하여 메인 변환 처리(PMT)가 수행될 수 있다(도 8의 S300). 도 8의 S300 동작은 도 14의 S310 동작 내지 S370 동작을 포함할 수 있다.
도 11로 돌아오면, 프로세서 할당기(1400)는 수신된 패킷(RPK)을 처리할 프로세서를 프로세서들(1500) 중에서 할당할 수 있다. 네트워크 주소 변환이 아직 수행되지 않았고, 이와 관련하여, 프로세서 할당기(1400)는 패킷(RPK)을 수신하는 것과 관련되는 인터페이스 규약(예컨대, 수신 인터페이스 회로(1100)에 의해 지원되는 인터페이스 규약)의 종류에 기초하여 프로세서를 선택할 수 있다(도 14의 S310). 예로서, 패킷(RPK)이 수신 인터페이스 회로(1100)에서 RmNet 인터페이스 규약에 따라 수신된 경우, 패킷(RPK)을 처리하는 것은 프로세서(1510)로 할당될 수 있다(도 10 참조).
프로세서 할당기(1400) 및 스케줄러(1505)가 동작함에 따라, 패킷(RPK)을 처리하는 것과 관련되는 태스크가 프로세서(1510)에 대응하는 큐(1511)에 큐잉될 수 있다(도 14의 S315). 프로세서(1510)는 패킷(RPK)에 대한 네트워크 주소 변환을 수행하기 위해 메인 변환 처리(PMT)를 시작할 수 있다.
먼저, 프로세서(1510)는 패킷(RPK)의 헤더를 검사할 수 있다(도 14의 S320). 예로서, 프로세서(1510)는 패킷(RPK)에 오류가 없는지, 패킷(RPK)의 데이터가 소실되었는지, 패킷(RPK)의 순서가 적절한지 등을 검사할 수 있다.
이후, 프로세서(1510)는 패킷(RPK)의 주소를 변환하는 것과 관련되는 필터들을 후킹(Hooking)할 수 있다. 예로서, 리눅스 커널(Linux Kernel)이 프로세서들(1500) 상에서 구동되는 경우, 넷필터(Netfilter)의 프리-라우팅 필터, 포워드 필터, 및 포스트-라우팅 필터가 프로세서들(1500)에서 후킹될 수 있다.
프리-라우팅 필터, 포워드 필터, 및 포스트-라우팅 필터는 각 필터들에서 정의되는 규칙(Rule)들에 기초하여 메인 NAT 테이블(1700)의 정보를 참조하여 패킷(RPK)을 처리(예컨대, 라우팅, 포워딩, 또는 드랍(Drop))할 수 있다. 다만, 이 예는 더 나은 이해를 가능하게 하기 위해 제공되고, 본 개시를 한정하도록 의도되지 않는다. 후킹되는 필터, 함수, 또는 프로시저는 프로세서들(1500)의 동작 환경에 따라 다양하게 변경 또는 수정될 수 있다.
예로서, 프리-라우팅 필터가 프로세서(1510)에서 후킹될 수 있고(도 14의 S330), 패킷(RPK)이 프리-라우팅 필터에서 정의되는 규칙들에 기초하여 처리될 수 있다. 프로세서(1510)는 패킷(RPK)과 관련하여 연결 추적(Connection Tracking)을 수립할 수 있고, 메인 NAT 테이블(1700)로부터 패킷(RPK)에 대응하는 엔트리(Entry)를 검색할 수 있다(도 14의 S332).
도 12를 참조하면, 예로서, 메인 NAT 테이블(1700)은 내부 소스 IP 주소, 내부 소스 포트, 외부 소스 포트, 외부 소스 IP 주소, 목적지 IP 주소, 및 목적지 포트의 정보를 저장할 수 있다. 이 주소들 및 포트들은 하나의 엔트리에서 서로 대응하도록 또는 맵핑되도록 관리될 수 있다. 메인 NAT 테이블(1700)은 빠른 포워딩 처리(PFF)를 수행하기 위한 조건과 관계 없이 정보를 저장할 수 있다.
메인 NAT 테이블(1700)은 대응 관계 또는 맵핑 관계에 기초하여 주소들 및 포트들을 저장하고 요청된 정보를 프로세서들(1500)로 출력하도록 구성되는 하드웨어 모듈로 구현될 수 있다. 또는, 메인 NAT 테이블(1700)의 정보의 일부 또는 전부는 프로세서들(1500)에 의해 실행되는 프로그램 코드에 삽입될 수 있고, 메모리(예컨대, 버퍼(1600))에 저장될 수 있다.
도 11로 돌아오면, 프로세서(1510)는 메인 NAT 테이블(1700)을 검색하여, 패킷(RPK)의 내부 소스 IP 주소에 대응하는 목적지 IP 주소가 전자 장치(1000)의 로컬 주소인지 판별할 수 있다. 따라서, 프로세서(1510)는 패킷(RPK)을 목적지 장치를 위해 포워딩할 것인지 판별할 수 있다(도 14의 S334). 패킷(RPK)이 포워딩되지 않는 경우(예컨대, 목적지 IP 주소가 로컬 주소인 경우)(도 14의 S334의 No), 프로세서(1510)는 패킷(RPK)을 전자 장치(1000)에서 사용할 수 있다(도 14의 S335).
패킷(RPK)이 포워딩될 경우(예컨대, 목적지 IP 주소가 로컬 주소가 아닌 경우)(도 14의 S334의 Yes), 프로세서(1510)는 메인 NAT 테이블(1700)의 정보에 기초하여, 패킷(RPK)을 위해 네트워크 주소 변환을 수행하고 목적지 장치를 판별할 수 있다(도 14의 S336).
프로세서(1510)는 메인 NAT 테이블(1700)을 참조하여 패킷(RPK)의 제 1 주소를 제 2 주소(예컨대, 외부 소스 IP 주소)로 변환할 수 있다. 예로서, 도 12를 참조하면, 패킷(RPK)이 "192.168.0.3"의 내부 소스 IP 주소 및 "60000"의 내부 소스 포트를 포함하는 경우, 프로세서(1510)는 패킷(RPK)의 내부 소스 IP 주소 및 내부 소스 포트를 "1.1.1.1"의 외부 소스 IP 주소 및 "50003"의 외부 소스 포트로 변환할 수 있다.
도 11로 돌아오면, 네트워크 주소가 변환됨에 따라, 프로세서(1510)는 패킷(RPK)의 헤더를 갱신할 수 있다(도 14의 S338). 포워드 필터 및 포스트-라우팅 필터가 프로세서(1510)에서 후킹될 수 있고(도 14의 S340 및 S350), 패킷(RPK)이 포워드 필터 및 포스트-라우팅 필터에서 정의되는 규칙들에 기초하여 처리될 수 있다. 전자 장치(1000)로부터 목적지 장치로 출력되는 패킷 역시 포스트-라우팅 필터에 의해 처리될 수 있다.
프로세서(1510)는 패킷(RPK)에 MAC 헤더를 부가할 수 있다(도 14의 S355). MAC 헤더는 목적지 장치의 MAC 주소 등의 정보를 포함할 수 있다. 예로서, 프로세서(1510)는 목적지 장치의 연결에 응답하여 획득한 장치 정보를 참조하여 MAC 헤더를 생성할 수 있다.
프로세서(1510)가 네트워크 주소 변환을 포함하여 도 14의 S320 동작 내지 S355 동작을 통해 패킷(RPK)을 처리한 다음, 목적지 장치로 출력될 패킷(TPK)이 준비될 수 있다. 패킷(TPK)은 버퍼(1600)에 버퍼링될 수 있다. 버퍼(1600)의 패킷(TPK)은 프로세서(1510)에 의해 제 1 주소로부터 변환된 제 2 주소를 포함할 수 있다.
한편, 트래픽 상태 모니터링(TSM)은 프로세서들(1500)에 의해 실행되는 프로그램 코드로 구현될 수 있다. 트래픽 상태 모니터링(TSM)이 실행됨에 따라, 프로세서(1510)는 (패킷(TPK)을 포함하여) 제 2 주소를 포함하는 패킷들에 대한 트래픽 상태를 모니터랑할 수 있다(도 14의 S360). 예로서, 프로세서(1510)는 패킷들의 개수, 패킷들의 전체 데이터 양, 패킷들을 출력하는 것의 대역폭, 패킷들의 오류들, 통신 오류 등과 같은 다양한 상태를 모니터링할 수 있다.
도 13을 참조하면, 프로세서(1510)는 버퍼(1600)의 패킷(TPK)을 출력하는 것을 처리할 프로세서를 프로세서들(1500) 중에서 선택할 수 있다. 패킷(TPK)을 출력하는 것을 처리할 프로세서는 고정될 수 있고, 또는 유휴인 또는 가용한 프로세서가 선택될 수 있다. 그밖에, 패킷(TPK)을 출력하는 것을 처리할 프로세서는 다양한 조건에 따라 선택될 수 있다.
예로서, 프로세서(1580)가 패킷(TPK)을 출력하는 것을 처리하기 위해 선택될 수 있다. 이 경우, 프로세서(1580)가 제 2 주소를 포함하는 패킷(TPK)을 목적지 장치로 출력하는 것을 처리하도록, 프로세서(1510)로부터 프로세서(1580)로의 전환이 발생할 수 있다. 프로세서(1580)가 할당됨에 따라, 패킷(TPK)을 출력하는 것과 관련되는 태스크가 프로세서(1580)에 대응하는 큐(1581)에 큐잉될 수 있다(도 14의 S370).
패킷 송신 관리기(TM)는 프로세서들(1500)에 의해 실행되는 프로그램 코드로 구현될 수 있다. 프로세서(1580)를 할당하기 위해 인터럽트가 발생할 수 있고, 프로세서(1580)는 인터럽트에 응답하여 패킷 송신 관리기(TM)를 실행할 수 있다. 패킷 송신 관리기(TM)가 실행됨에 따라, 프로세서(1580)는 버퍼(1600)에 버퍼링된 패킷(TPK)을 버퍼(1810)로 복사하거나 이동시킬 수 있다(도 8의 S240).
송신 인터페이스 회로(1800)는 제 2 주소를 포함하는 패킷(TPK)을 목적지 장치로 출력할 수 있다(도 8의 S250). 도 8 및 도 11 내지 도 14를 참조하여 설명된 메인 변환 처리(PMT)는 빠른 포워딩 처리(PFF)를 수행하기 위한 조건이 충족되기 전에 하나 이상의 패킷이 수신되는 동안 계속될 수 있다.
도 15는 도 4의 전자 장치(1000)의 예시적인 동작을 설명하는 흐름도이다.
위에서 설명된 예에서, 프로세서(1510)는 제 2 주소를 포함하는 패킷들에 대한 트래픽 상태를 모니터링할 수 있다(S360). 프로세서(1510)는 모니터링되는 트래픽 상태에 기초하여, 빠른 포워딩 처리(PFF)를 수행하기 위한 조건을 판별할 수 있다. 예로서, 빠른 포워딩 처리(PFF)를 수행하기 위한 조건은 패킷들을 출력하는 것의 대역폭이 기준 값 또는 문턱 값보다 커지는 경우에 충족될 수 있다.
이와 관련하여, 프로세서(1510)는 모니터링되는 대역폭이 기준 값보다 큰지 판별할 수 있다(S410). 모니터링되는 대역폭이 기준 값보다 크지 않은 경우(S410의 No), 빠른 포워딩 처리(PFF)는 수행되지 않을 수 있다.
패킷들이 통신되는 동안 모니터링되는 대역폭이 기준 값보다 커진 경우(S410의 Yes), 빠른 포워딩 처리(PFF)가 트리거될 수 있다. 이를 위해, 프로세서(1510)는 패킷들과 관련되는 엔트리를 빠른 포워딩 NAT 테이블(1300)에 추가할 수 있다(S430). 빠른 포워딩 NAT 테이블(1300)은 도 16을 참조하여 설명될 것이다.
본 개시는 위 예로 한정되지 않고, 빠른 포워딩 처리(PFF)를 수행하기 위한 조건은 다양하게 변경 또는 수정될 수 있다. 예로서, 빠른 포워딩 처리(PFF)를 수행하기 위한 조건은 패킷들의 개수가 기준 개수보다 많아지는 경우 또는 패킷들의 누적된 전체 데이터 양이 기준 양보다 많아지는 경우에 충족될 수 있다. 예로서, 빠른 포워딩 처리(PFF)를 수행하기 위한 조건은 패킷들이 높은 우선순위를 갖는 경우 또는 패킷들에 대한 빠른 처리가 요구되는 경우(예컨대, 패킷들이 보안 이슈 또는 시스템 관리와 관련되는 경우)에 충족될 수 있다. 예로서, 빠른 포워딩 처리(PFF)를 수행하기 위한 조건은 사용자의 요청 또는 동작 정책상의 요청에 응답하여 충족될 수 있다. S410 동작은 빠른 포워딩 처리(PFF)를 수행하기 위한 조건에 따라 다양하게 변경 또는 수정될 수 있다.
도 16은 도 4의 빠른 포워딩 NAT 테이블(1300)에 저장되는 정보의 예시적인 구성을 보여주는 개념도이다.
빠른 포워딩 NAT 테이블(1300)은 메인 NAT 테이블(1700)에 기초하여 주소들 및 포트들의 정보를 저장할 수 있다. 예로서, 빠른 포워딩 NAT 테이블(1300)은 내부 소스 IP 주소, 내부 소스 포트, 외부 소스 포트, 외부 소스 IP 주소, 목적지 IP 주소, 및 목적지 포트의 정보를 저장할 수 있다. 이 주소들 및 포트들은 하나의 엔트리에서 서로 대응하도록 또는 맵핑되도록 관리될 수 있다.
몇몇 실시 예에서, 빠른 포워딩 NAT 테이블(1300)은 주소들 및 포트들의 정보를 목적지 장치의 장치 정보의 일부 또는 전부에 대응시켜 관리할 수 있다. 예로서, 목적지 장치의 MAC 주소가 빠른 포워딩 NAT 테이블(1300)에서 주소들 및 포트들에 대응하여 관리될 수 있다.
빠른 포워딩 NAT 테이블(1300)의 정보는 빠른 포워딩 처리(PFF)를 수행하기 위한 조건이 충족되는 경우에 저장될 수 있다. 예로서, "192.168.0.3"의 내부 소스 IP 주소 및 "60000"의 내부 소스 포트를 갖는 소스 장치로부터 "3.3.3.3"의 목적지 IP 주소 및 "30001"의 목적지 포트를 갖는 목적지 장치로 패킷들이 통신되는 동안, 통신 대역폭이 기준 값보다 커지는 경우, 프로세서들(1500)의 제어에 따라, 관련 주소들 및 포트들의 정보가 메인 NAT 테이블(1700)로부터 빠른 포워딩 NAT 테이블(1300)로 제공될 수 있다. 나아가, 프로세서들(1500)의 제어에 따라, 목적지 장치의 장치 정보가 버퍼(1600)로부터 빠른 포워딩 NAT 테이블(1300)로 제공될 수 있다.
빠른 포워딩 NAT 테이블(1300)에 저장된 엔트리는 그 엔트리에 대응하는 통신이 빈번하게 수행되거나 많은 양의 데이터를 수반하고 따라서 높은 통신 성능을 요구함을 의미할 수 있다. 높은 통신 성능을 달성하기 위해, 빠른 포워딩 NAT 테이블(1300)은 메인 NAT 테이블(1700)이 프로세서들(1500)에 의해 참조되기 전에 빠른 포워딩 관리기(1200)에 의해 참조되도록 미리 준비될 수 있다.
빠른 포워딩 NAT 테이블(1300)은 대응 관계 또는 맵핑 관계에 기초하여 주소들 및 포트들을 저장하고 요청된 정보를 빠른 포워딩 관리기(1200)로 출력하도록 구성되는 하드웨어 모듈로 구현될 수 있다. 또는, 빠른 포워딩 NAT 테이블(1300)의 정보의 일부 또는 전부는 프로세서에 의해 실행되는 프로그램 코드에 삽입될 수 있고, 메모리에 저장될 수 있다.
도 17 및 도 18은 도 4의 전자 장치(1000)의 빠른 포워딩 처리(PFF)와 관련되는 예시적인 동작들을 설명하기 위한 개념도들이다. 도 19 및 도 20은 도 4의 전자 장치(1000)의 빠른 포워딩 처리(PFF)와 관련되는 예시적인 동작들을 설명하는 흐름도들이다.
도 17을 참조하면, 메인 변환 처리(PMT)의 경우와 유사하게, 수신 인터페이스 회로(1100)는 소스 장치로부터 패킷(RPK)을 수신할 수 있다(도 8의 S210). 패킷(RPK)은 소스 장치의 IP 주소로서 제 1 주소(예컨대, 내부 소스 IP 주소)를 포함할 수 있다. 패킷(RPK)은 빠른 포워딩 관리기(1200)로 제공될 수 있다.
몇몇 실시 예에서, 빠른 포워딩 관리기(1200)는 테이블 검색기(1210), 변환기(1230), 및 캡슐화기(1250)를 포함할 수 있다. 빠른 포워딩 관리기(1200)는 아래에서 설명되는 동작들을 수행하도록 구성되는 하드웨어 회로들(예컨대, 아날로그 회로, 논리 회로 등)을 포함할 수 있다. 또는, 몇몇 경우, 빠른 포워딩 관리기(1200)의 몇몇 동작은 프로세서에 의해 실행되는 소프트웨어 및/또는 펌웨어의 프로그램 코드로 구현될 수 있다.
도 8의 S230 동작은 도 19의 S231 동작 내지 S235 동작을 포함할 수 있다. 빠른 포워딩 관리기(1200)는 빠른 포워딩 처리(PFF)가 가능하게 되었는지 판별할 수 있다(도 19의 S231). 빠른 포워딩 처리(PFF)가 가능하게 되지 않은 경우(도 19의 S231의 No), 메인 변환 처리(PMT)가 수행될 수 있다(도 8의 S300).
빠른 포워딩 처리(PFF)가 가능하게 된 경우(도 19의 S231의 Yes), 테이블 검색기(1210)는 패킷(RPK)의 제 1 주소에 맞는(Matching) 엔트리가 빠른 포워딩 NAT 테이블(1300)에 저장되었는지 판별하기 위해 빠른 포워딩 NAT 테이블(1300)을 검색할 수 있다(도 19의 S233). 맞는 엔트리가 빠른 포워딩 NAT 테이블(1300)에 없는 경우(도 19의 S235의 No), 메인 변환 처리(PMT)가 수행될 수 있다(도 8의 S300).
맞는 엔트리가 빠른 포워딩 NAT 테이블(1300)에 있는 경우(도 19의 S235의 Yes), 빠른 포워딩 처리(PFF)가 수행될 수 있다(도 8의 S500). 예로서, "192.168.0.3"의 내부 소스 IP 주소를 포함하는 패킷(RPK)이 수신되기 전, 빠른 포워딩 처리(PFF)를 수행하기 위한 조건이 충족될 수 있다. 이 경우, 패킷(RPK)은 빠른 포워딩 NAT 테이블(1300)이 패킷(RPK)에 맞는 엔트리를 저장한 후에 수신될 수 있다(도 16 참조). 도 8의 S500 동작은 도 20의 S503 동작 내지 S510 동작의 빠른 포워딩 전처리 및 도 20의 S515 동작 내지 S570 동작의 빠른 포워딩 처리(PFF)를 포함할 수 있다.
도 17로 돌아오면, 변환기(1230)는 빠른 포워딩 NAT 테이블(1300)을 참조하여 패킷(RPK)의 제 1 주소를 제 2 주소(예컨대, 외부 소스 IP 주소)로 변환할 수 있다(도 20의 S503). 네트워크 주소가 변환됨에 따라, 캡슐화기(1250)는 패킷(RPK)의 헤더를 갱신할 수 있다. 나아가, 캡슐화기(1250)는 빠른 포워딩 NAT 테이블(1300)(또는, 버퍼(1600)의 장치 정보))을 참조하여 패킷(RPK)에 MAC 헤더를 부가할 수 있고, 패킷(RPK)을 위한 목적지 장치를 판별할 수 있다(도 20의 S505).
빠른 포워딩 관리기(1200)는 빠른 포워딩 NAT 테이블(1300)을 참조하여 패킷(RPK)에 대한 네트워크 주소 변환을 수행할 수 있고, 따라서 목적지 장치로 출력될 패킷(RPK_F)이 준비될 수 있다. 패킷(RPK_F)은 도 11 및 도 13의 패킷(TPK)에 대응할 수 있다. 그러나, 패킷(RPK_F)은 프로세서들(1500)이 아닌 빠른 포워딩 관리기(1200)에 의해 패킷(RPK)으로부터 변환될 수 있다.
패킷(RPK_F)은 버퍼(1600)에 버퍼링될 수 있다(도 20의 S507). 버퍼(1600)의 패킷(RPK_F)은 빠른 포워딩 관리기(1200)에 의해 제 1 주소로부터 변환된 제 2 주소를 포함할 수 있다.
빠른 포워딩 관리기(1200)가 패킷(RPK)의 제 1 주소를 제 2 주소로 변환한 경우, 빠른 포워딩 관리기(1200)는 표식(SGN)이 프로세서들(1500)에 의해 참조되도록 표식(SGN)을 생성할 수 있다. 표식(SGN)은 패킷(RPK_F)의 주소가 제 1 주소로부터 제 2 주소로 이미 변환되었음을 지시할 수 있다. 표식(SGN)은 도 9를 참조하여 설명된 빠른 포워딩의 표식일 수 있다.
버퍼(1600)가 제 2 주소를 포함하는 패킷(RPK_F)을 저장하는 경우, 버퍼(1600)는 패킷(RPK_F)에 대응하는 표식(SGN)도 저장할 수 있다(도 20의 S507). 프로세서들(1500)은 표식(SGN)을 참조하여, 패킷(RPK_F)에 대한 네트워크 주소 변환이 이미 완료되었고 패킷(RPK_F)이 빠른 포워딩 처리(PFF)를 요구함을 판별할 수 있다.
프로세서 할당기(1400)는 패킷(RPK_F)을 수신할 수 있다. 프로세서 할당기(1400)는 패킷(RPK_F)을 처리할 프로세서를 프로세서들(1500) 중에서 할당할 수 있다. 네트워크 주소 변환이 이미 완료되었고, 따라서 프로세서 할당기(1400)는 판별된 목적지 장치를 알 수 있다. 이와 관련하여, 프로세서 할당기(1400)는 패킷(RPK_F)을 출력하는 것과 관련되는 인터페이스 규약(예컨대, 송신 인터페이스 회로(1800)에 의해 지원되는 인터페이스 규약)의 종류에 기초하여 프로세서를 선택할 수 있다(도 20의 S510).
예로서, 패킷(RPK_F)이 송신 인터페이스 회로(1800)에서 WiFi 인터페이스 규약에 따라 출력될 경우, 패킷(RPK_F)을 처리하는 것은 프로세서(1540)로 할당될 수 있다(도 10 참조). 빠른 포워딩 관리기(1200)가 네트워크 주소 변환을 완료된 후에 할당되는 프로세서(1540)는 수신 인터페이스 회로(1100)에 의해 지원되는 인터페이스 규약과 무관할 수 있다.
프로세서 할당기(1400) 및 스케줄러(1505)가 동작함에 따라, 패킷(RPK_F)을 처리하는 것과 관련되는 태스크가 프로세서(1540)에 대응하는 큐(1541)에 큐잉될 수 있다(도 20의 S515). 패킷(RPK_F)을 위한 네트워크 주소 변환은 패킷(RPK_F)을 처리하는 것이 프로세서(1540)로 할당되기 전에 이미 수행되었을 수 있다. 따라서, 프로세서(1540)는, 패킷(RPK_F)과 관련하여 제 1 주소를 제 2 주소로 변환하는 것 없이, 제 2 주소를 포함하는 패킷(RPK_F)을 (예컨대, 버퍼(1600)로부터) 수신할 수 있다.
프로세서(1540)는 패킷(RPK_F)과 관련하여 빠른 포워딩 처리(PFF)를 시작할 수 있다. 프로세서(1540)는 패킷(RPK_F)에 대응하는 표식(SGN)이 버퍼(1600)에 저장되었는지 검사할 수 있다(도 20의 S530). 프로세서(1540)는, 표식(SGN)을 참조하여, 추가의 주소 변환 없이 패킷(RPK_F)이 목적지 장치로 출력되도록 제 2 주소를 포함하는 패킷(RPK_F)을 처리할 수 있다.
즉, 프로세서(1540)는 단순히 패킷(RPK_F)을 목적지 장치로 포워딩하는 것을 처리할 수 있다. 따라서, 프로세서(1540)가 제 2 주소를 포함하는 패킷(RPK_F)을 수신한 후, 패킷의 주소를 변환하는 것과 관련되는 필터들이 프로세서들(1500)에서 후킹되지 않을 수 있다.
도 18을 참조하면, 프로세서(1540)는 버퍼(1600)의 패킷(RPK_F)을 출력하는 것을 처리할 프로세서를 프로세서들(1500) 중에서 선택할 수 있다. 패킷(RPK_F)을 출력하는 것을 처리할 프로세서는 고정될 수 있고, 또는 유휴인 또는 가용한 프로세서가 선택될 수 있다. 그밖에, 패킷(RPK_F)을 출력하는 것을 처리할 프로세서는 다양한 조건에 따라 선택될 수 있다.
예로서, 프로세서(1580)가 패킷(RPK_F)을 출력하는 것을 처리하기 위해 선택될 수 있다. 이 경우, 프로세서(1580)가 제 2 주소를 포함하는 패킷(RPK_F)을 목적지 장치로 출력하는 것을 처리하도록, 프로세서(1540)로부터 프로세서(1580)로의 전환이 발생할 수 있다. 프로세서(1580)가 할당됨에 따라, 패킷(RPK_F)을 출력하는 것과 관련되는 태스크가 프로세서(1580)에 대응하는 큐(1581)에 큐잉될 수 있다(도 20의 S570).
프로세서(1580)가 패킷 송신 관리기(TM)를 실행함에 따라, 프로세서(1580)는 버퍼(1600)에 버퍼링된 패킷(RPK_F)을 버퍼(1810)로 복사하거나 이동시킬 수 있다(도 8의 S240). 송신 인터페이스 회로(1800)는 제 2 주소를 포함하는 패킷(RPK_F)을 목적지 장치로 출력할 수 있다(도 8의 S250).
포워딩 관리기(1200)가 빠른 포워딩 전처리를 수행하여 네트워크 주소 변환을 처리한 경우, 프로세서(1580)는 메인 변환 처리(PMT)의 네트워크 주소 변환 없이 패킷(RPK_F)을 출력하는 것을 처리할 수 있다. 도 8 및 도 17 내지 도 20을 참조하여 설명된 빠른 포워딩 처리(PFF)는 빠른 포워딩 처리(PFF)를 수행하기 위한 조건이 충족된 후에 하나 이상의 패킷이 수신되는 동안 계속될 수 있다.
빠른 포워딩 NAT 테이블(1300)은 조건이 충족됨에 응답하여 추가되는 엔트리들을 포함할 수 있다. 따라서, 빠른 포워딩 NAT 테이블(1300)의 사이즈는 메인 NAT 테이블(1700)의 사이즈보다 작을 수 있다. 예로서, 빠른 포워딩 NAT 테이블(1300)이 메인 NAT 테이블(1700)의 사이즈와 동일한 사이즈를 갖는 경우, 두 개의 중복되는 테이블들(1300, 1700)에 기인하여 오버헤드가 증가할 수 있다. 따라서, 빠른 포워딩 NAT 테이블(1300)에 포함되는 엔트리들의 개수는 메인 NAT 테이블(1700)에 포함되는 엔트리들의 개수보다 적을 수 있다.
도 21은 도 4의 프로세서 할당기(1400)의 예시적인 동작을 설명하기 위한 개념도이다.
도 10을 참조하여 설명된 것처럼, 프로세서 할당기(1400)는 인터페이스 규약의 종류에 기초하여, 패킷을 처리할 프로세서를 선택할 수 있다. 몇몇 실시 예에서, 프로세서 할당기(1400)는 인터페이스 규약의 종류에 더하여 빠른 포워딩 처리(PFF)가 수행됨에 기초하여, 패킷을 처리할 프로세서를 선택할 수 있다. 예로서, 프로세서 할당기(1400)에서 수신된 패킷이 빠른 포워딩 처리(PFF)를 요구하는 경우, 프로세서 할당기(1400)는 그 패킷을 처리하는 것을 프로세서(1570)로 할당할 수 있다.
이를 위해, 예로서, 프로세서 할당기(1400)는 버퍼(1600)의 표식(SGN)을 참조할 수 있다. 또는, 예로서, 패킷은 패킷을 수신하고 출력하는 것과 관련되는 인터페이스 규약들의 종류들을 지시하는 값들에 추가로 또는 그 대신에 빠른 포워딩 처리(PFF)를 요청하기 위한 값을 수반할 수 있다. 이 예에서, 프로세서 할당기(1400)는 빠른 포워딩 처리(PFF)를 요청하기 위한 값에 대해 해시 연산을 수행하여 프로세서(1570)를 선택할 수 있다.
도 22는 도 4의 전자 장치(1000)의 예시적인 동작을 설명하는 흐름도이다.
도 15의 예에서, 빠른 포워딩 처리(PFF)를 수행하기 위한 조건이 충족되는 경우, 프로세서(1510)는 관련 엔트리를 빠른 포워딩 NAT 테이블(1300)에 추가할 수 있다(S430). 이후, 빠른 포워딩 처리(PFF)가 수행되는 동안, 프로세서(1510)는 삭제 조건이 충족되는지 모니터링할 수 있다(S610).
삭제 조건은 빠른 포워딩 처리(PFF)를 중단 또는 종료하고 빠른 포워딩 NAT 테이블(1300)에 추가되었던 관련 엔트리를 삭제하기 위한 조건일 수 있다. 예로서, 삭제 조건은 빠른 포워딩 처리(PFF)에 의해 처리되던 패킷들과 관련되는 소스 장치와 목적지 장치 사이의 통신의 세션(Session)이 만료되는 경우에 충족될 수 있다.
본 개시는 위 예로 한정되지 않고, 삭제 조건은 다양하게 변경 또는 수정될 수 있다. 예로서, 삭제 조건은 메인 NAT 테이블(1700)의 대응하는 엔트리가 삭제되 경우 또는 통신 오류나 장애에 기인하여 빠른 포워딩 처리(PFF)가 어려운 경우에 충족될 수 있다. 몇몇 경우, 삭제 조건은 증가된 대역폭 또는 데이터 양이 기준 값보다 작아지는 경우에 충족될 수 있다. 예로서, 삭제 조건은 사용자의 요청 또는 동작 정책상의 요청에 응답하여 충족될 수 있다.
삭제 조건이 충족되지 않는 경우(S610의 No), 빠른 포워딩 처리(PFF)가 계속될 수 있다. 삭제 조건이 충족되는 경우(S610의 Yes), 프로세서들(1500)의 제어에 따라, 관련 엔트리가 빠른 포워딩 NAT 테이블(1300)로부터 삭제될 수 있다(S630). 따라서, 빠른 포워딩 NAT 테이블(1300)에 저장된 제 1 주소 및 제 2 주소의 정보가 삭제될 수 있다.
이후, 빠른 포워딩 NAT 테이블(1300)로부터 삭제된 엔트리에 대응하는 제 1 주소를 포함하는 패킷들은 메인 변환 처리(PMT)를 통해 처리될 수 있다(도 8의 S300). 이와 관련하여, 프로세서들(1500)은 제 2 주소로 변환되지 않은 제 1 주소를 포함하는 패킷을 수신할 수 있고, 버퍼(1600)는 표식(SGN) 없이 제 1 주소를 포함하는 패킷을 저장할 수 있다.
도 23은 도 4의 전자 장치(1000)의 예시적인 동작을 설명하기 위한 개념도이다.
실시 예들에서, 추가의 네트워크 주소 변환 테이블(예컨대, 빠른 포워딩 NAT 테이블(1300))이 메인 NAT 테이블(1700)과 별개로 이용될 수 있다. 패킷(RPK)이 수신되는 경우, 패킷(RPK)에 대응하는 엔트리가 빠른 포워딩 NAT 테이블(1300)에 저장되어 있는지에 기초하여, 두 개의 상이한 처리들 중 하나가 수행될 수 있다.
패킷(RPK)에 대응하는 엔트리가 빠른 포워딩 NAT 테이블(1300)에 저장되지 않은 경우, 프로세서들(1500)이 메인 NAT 테이블(1700)을 참조하여 메인 변환 처리(PMT)를 수행할 수 있다. 프로세서들(1500)은 메인 변환 처리(PMT)를 통해 패킷(RPK)에 대한 네트워크 주소 변환을 수행할 수 있고, 처리된 패킷(TPK)을 출력할 수 있다.
패킷(RPK)에 대응하는 엔트리가 빠른 포워딩 NAT 테이블(1300)에 저장된 경우, 빠른 포워딩 관리기(1200)는 빠른 포워딩 전처리를 수행할 수 있다. 빠른 포워딩 전처리에서, 빠른 포워딩 관리기(1200)는 패킷을 처리하는 것이 프로세서들(1500)로 할당되기 전에 미리 빠른 포워딩 NAT 테이블(1300)을 참조하여 패킷(RPK)에 대한 네트워크 주소 변환을 수행할 수 있다. 따라서, 빠른 포워딩 관리기(1200)는 변환된 제 2 주소를 포함하는 패킷(RPK_F)을 생성할 수 있다.
이후, 프로세서들(1500)은 추가의 주소 변환 없이 패킷(RPK_F)을 포워딩할 수 있다. 프로세서들(1500)은 빠른 포워딩 처리(PFF)를 통해 포워딩된 패킷(RPK_F)을 출력할 수 있다.
도 11을 도 17과 비교하고 도 14를 도 20과 비교하면, 빠른 포워딩 전처리 및 빠른 포워딩 처리(PFF)가 메인 변환 처리(PMT)에 비해 간단하고 빠르게 수행됨이 이해될 수 있다. 포워딩 관리기(1200)에 의해 네트워크 주소 변환을 처리하기 위해 소요되는 시간은 프로세서들(1500)에 의해 네트워크 주소 변환을 처리하기 위해 소요되는 시간보다 짧을 수 있다. 빠른 포워딩 처리(PFF)는 추가의 주소 변환 없이 빠른 포워딩 전처리에서 변환된 패킷(RPK_F)을 이용할 수 있다.
따라서, 빠른 포워딩 처리(PFF)는 네트워크 주소 변환에 소요되는 시간을 감소시킬 수 있고, 패킷이 소스 장치로부터 목적지 장치로 빠르게 전달될 수 있다. 결과적으로, 빠른 포워딩 처리(PFF)는 통신 성능을 향상시킬 수 있고, 많은 양의 데이터가 높은 통신 성능으로 통신될 수 있다.
한편, 빠른 포워딩 처리(PFF)가 더 높은 통신 성능을 제공함에 따라, 포워딩 관리기(1200)가 빠른 포워딩 전처리를 수행한 후에 패킷들을 목적지 장치로 출력하는 것의 대역폭은 프로세서들(1500)이 메인 변환 처리(PMT)를 수행한 후에 패킷들을 목적지 장치로 출력하는 것의 대역폭보다 클 수 있다.
도 24는 도 4의 전자 장치(1000)의 예시적인 동작을 설명하기 위한 개념도이다.
위에서 설명된 것처럼, 메인 변환 처리(PMT)를 위해 할당되는 프로세서(예컨대, 프로세서(1510) 또는 프로세서(1520))는 패킷을 수신하는 것과 관련되는 인터페이스 규약(예컨대, RmNet)에 기초하여 선택될 수 있다. 빠른 포워딩 처리(PFF)를 위해 할당되는 프로세서(예컨대, 프로세서(1540) 또는 프로세서(1550))는 패킷을 출력하는 것과 관련되는 인터페이스 규약(예컨대, WiFi)에 기초하여 선택될 수 있다. 몇몇 경우, 빠른 포워딩 처리(PFF)를 위해 할당되는 프로세서(예컨대, 프로세서(1570))는 빠른 포워딩 처리(PFF)의 요청에 기초하여 선택될 수 있다.
나아가, 패킷을 출력하는 것을 처리할 프로세서(예컨대, 프로세서(1580))는 메인 변환 처리(PMT) 또는 빠른 포워딩 처리(PFF)를 수행하는 프로세서와 상이하게 선택될 수 있다. 따라서, 패킷을 처리하기 위한 태스크가 할당되는 프로세서는 패킷을 수신하고 출력하기 위한 태스크가 할당되는 프로세서와 분리될 수 있다. 예로서, 하나의 프로세서가 패킷들을 출력하는 것을 전담하는 경우, 패킷들을 출력하는 것의 순서가 뒤바뀌는(Out-of-order) 것이 방지될 수 있다.
실시 예들에서, 패킷들과 관련되는 처리들이 여러 프로세서 상에 분산하여 수행될 수 있다. 예로서, 메인 변환 처리(PMT)를 통해 패킷의 제 1 주소를 제 2 주소로 변환하는 것, 제 2 주소를 포함하는 패킷이 목적지 장치로 포워딩되도록 패킷을 처리하는 것, 및 제 2 주소를 포함하는 패킷을 송신 인터페이스 회로(1800)로 제공하는 것이 프로세서들(1500)의 상이한 프로세서들로 분산하여 할당될 수 있다. 따라서, 과도한 부하가 특정 프로세서로 집중되는 것이 방지될 수 있고, 프로세서 자원들이 효율적으로 활용될 수 있다.
도 25는 도 1의 네트워크 주소 변환기(120 또는 140)와 관련되는 예시적인 구성을 보여주는 블록도이다.
몇몇 실시 예에서, 도 1의 네트워크 주소 변환기(120 또는 140)는 전자 장치(2000)로 구현될 수 있다. 전자 장치(2000)는 전자 장치(1000)의 구성 요소들에 더하여, 수신 인터페이스 회로(2100), 빠른 포워딩 관리기(2200), 빠른 포워딩 NAT 테이블(2300), 프로세서 할당기(2400), 및 송신 인터페이스 회로(2800)를 더 포함할 수 있다.
수신 인터페이스 회로(1100), 빠른 포워딩 관리기(1200), 빠른 포워딩 NAT 테이블(1300), 프로세서 할당기(1400), 중앙 처리 블록(CPB), 메인 NAT 테이블(1700), 및 송신 인터페이스 회로(1800)는 도 4 내지 도 24를 참조하여 설명된 실시 예들에 따라 메인 변환 처리(PMT) 및/또는 빠른 포워딩 처리(PFF)를 수행할 수 있고, 따라서 패킷(RPK1)으로부터 변환된 패킷(TPK1)을 출력할 수 있다.
수신 인터페이스 회로(2100), 빠른 포워딩 관리기(2200), 빠른 포워딩 NAT 테이블(2300), 프로세서 할당기(2400), 및 송신 인터페이스 회로(2800)는 수신 인터페이스 회로(1100), 빠른 포워딩 관리기(1200), 빠른 포워딩 NAT 테이블(1300), 프로세서 할당기(1400), 및 송신 인터페이스 회로(1800)와 실질적으로 동일하거나 유사하게 구성되고 동작할 수 있다.
수신 인터페이스 회로(2100), 빠른 포워딩 관리기(2200), 빠른 포워딩 NAT 테이블(2300), 프로세서 할당기(2400), 중앙 처리 블록(CPB), 메인 NAT 테이블(1700), 및 송신 인터페이스 회로(2800)는 도 4 내지 도 24를 참조하여 설명된 실시 예들에 따라 메인 변환 처리(PMT) 및/또는 빠른 포워딩 처리(PFF)를 수행할 수 있고, 따라서 패킷(RPK2)으로부터 변환된 패킷(TPK2)을 출력할 수 있다.
전자 장치(2000)는 수신 인터페이스 회로(1100) 및 송신 인터페이스 회로(2800)를 통해 제 1 장치로 연결될 수 있다. 전자 장치(2000)는 제 1 장치로부터 패킷(RPK1)을 수신할 수 있고, 제 1 장치로 패킷(TPK2)을 출력할 수 있다. 전자 장치(2000)는 수신 인터페이스 회로(2100) 및 송신 인터페이스 회로(1800)를 통해 제 2 장치로 연결될 수 있다. 전자 장치(2000)는 제 2 장치로부터 패킷(RPK2)을 수신할 수 있고, 제 2 장치로 패킷(TPK1)을 출력할 수 있다. 따라서, 메인 변환 처리(PMT) 및 빠른 포워딩 처리(PFF)는 양방향으로 수행될 수 있다.
위 설명들은 본 개시를 구현하기 위한 예시적인 구성들 및 동작들을 제공하도록 의도된다. 본 개시는 위에서 설명된 실시 예들뿐만 아니라, 위 실시 예들을 단순하게 변경하거나 수정하여 얻어질 수 있는 구현들도 포함할 것이다. 또한, 본 개시는 위에서 설명된 실시 예들을 앞으로 용이하게 변경하거나 수정하여 달성될 수 있는 구현들도 포함할 것이다.
100, 100a, 100b : 네트워크 시스템
1000, 2000 : 전자 장치

Claims (20)

  1. 제 1 주소 및 제 2 주소의 정보를 저장하도록 구성되는 제 1 변환 테이블;
    조건이 충족되는 경우, 상기 제 1 변환 테이블에 기초하여 상기 제 1 주소 및 상기 제 2 주소의 상기 정보를 저장하도록 구성되는 제 2 변환 테이블;
    상기 조건이 충족되기 전에 상기 제 1 주소를 포함하는 제 1 패킷이 수신되는 경우, 상기 제 1 변환 테이블을 참조하여 상기 제 1 패킷의 상기 제 1 주소를 상기 제 2 주소로 변환하도록 구성되는 프로세서들; 및
    상기 제 2 변환 테이블이 상기 제 1 주소 및 상기 제 2 주소의 상기 정보를 저장한 후에 상기 제 1 주소를 포함하는 제 2 패킷이 수신되는 경우, 상기 제 2 패킷을 처리하는 것이 상기 프로세서들로 할당되기 전에 상기 제 2 변환 테이블을 참조하여 상기 제 2 패킷의 상기 제 1 주소를 상기 제 2 주소로 변환하도록 구성되는 포워딩 관리기를 포함하되,
    상기 프로세서들은 상기 조건이 충족되기 전에 각각이 상기 제 2 주소를 포함하는 패킷들을 출력하고,
    상기 조건은 상기 패킷들을 출력하는 것의 대역폭이 기준 값보다 커지는 경우에 충족되는 전자 장치.
  2. 제 1 항에 있어서,
    상기 프로세서들에 의해 처리된 상기 제 1 패킷 및 상기 제 2 패킷이 목적지 장치로 출력되도록 상기 목적지 장치와 통신하도록 구성되는 인터페이스 회로를 더 포함하고,
    상기 프로세서들이 상기 목적지 장치가 상기 인터페이스 회로를 통해 연결됨을 검출한 경우, 상기 프로세서들은 상기 목적지 장치의 내부 구성 및 상기 목적지 장치와 상기 인터페이스 회로 사이의 통신을 지원하는 인터페이스 규약과 관련되는 장치 정보를 획득하도록 구성되는 전자 장치.
  3. 제 2 항에 있어서,
    상기 제 2 변환 테이블은 상기 제 1 주소 및 상기 제 2 주소의 상기 정보를 상기 목적지 장치의 상기 장치 정보의 일부 또는 전부에 대응시켜 관리하도록 구성되는 전자 장치.
  4. 제 1 항에 있어서,
    상기 프로세서들은 상기 조건이 충족되기 전에 상기 패킷들에 대한 트래픽 상태를 모니터링하도록 구성되는 전자 장치.
  5. 삭제
  6. 제 1 항에 있어서,
    상기 포워딩 관리기가 상기 제 2 패킷의 상기 제 1 주소를 상기 제 2 주소로 변환한 경우, 상기 포워딩 관리기는 상기 제 2 패킷의 상기 제 1 주소가 상기 제 2 주소로 변환되었음을 지시하는 표식이 상기 프로세서들에 의해 참조되도록 상기 표식을 생성하도록 구성되는 전자 장치.
  7. 제 1 항에 있어서,
    소스 장치로부터 각각이 상기 제 1 주소를 포함하는 상기 제 1 패킷 및 상기 제 2 패킷을 제 1 인터페이스 규약에 따라 수신하도록 구성되는 제 1 인터페이스 회로; 및
    각각이 상기 제 2 주소를 포함하는 상기 제 1 패킷 및 상기 제 2 패킷을 제 2 인터페이스 규약에 따라 목적지 장치로 출력하도록 구성되는 제 2 인터페이스 회로를 더 포함하되,
    상기 프로세서들 중 하나의 프로세서가 상기 제 2 주소를 포함하는 상기 제 2 패킷을 상기 목적지 장치로 포워딩하는 것을 처리하기 위해 할당되고,
    상기 하나의 프로세서는 상기 제 1 인터페이스 규약에 관계 없이 상기 제 2 인터페이스 규약의 종류에 기초하여 선택되는 전자 장치.
  8. 제 1 항에 있어서,
    상기 프로세서들은 상기 제 2 패킷과 관련하여 상기 제 1 주소를 상기 제 2 주소로 변환하는 것 없이 상기 제 2 주소를 포함하는 상기 제 2 패킷을 수신하도록 구성되는 전자 장치.
  9. 제 1 조건이 충족되는 경우, 제 1 주소 및 제 2 주소의 정보를 저장하도록 구성되는 제 1 변환 테이블;
    상기 제 1 변환 테이블이 상기 제 1 주소 및 상기 제 2 주소의 상기 정보를 저장한 후에 상기 제 1 주소를 포함하는 제 1 패킷이 수신되는 경우, 상기 제 1 변환 테이블을 참조하여 상기 제 1 패킷의 상기 제 1 주소를 상기 제 2 주소로 변환하도록 구성되는 포워딩 관리기;
    상기 포워딩 관리기가 상기 제 1 패킷의 상기 제 1 주소를 상기 제 2 주소로 변환한 경우, 상기 제 2 주소를 포함하는 상기 제 1 패킷 및 상기 제 1 패킷에 대응하는 표식을 저장하도록 구성되는 버퍼; 및
    상기 표식을 참조하여, 추가의 주소 변환 없이 상기 제 1 패킷이 출력되도록 상기 제 2 주소를 포함하는 상기 제 1 패킷을 처리하도록 구성되는 프로세서들을 포함하되,
    상기 제 1 조건은 패킷들을 출력하는 것의 대역폭이 기준 값보다 커지는 경우에 충족되는 전자 장치.
  10. 제 9 항에 있어서,
    상기 프로세서들 중 제 1 프로세서가 상기 표식을 참조하여 상기 제 2 주소를 포함하는 상기 제 1 패킷을 목적지 장치로 포워딩하는 것을 처리하기 위해 할당되고,
    상기 프로세서들 중 제 2 프로세서가 상기 제 2 주소를 포함하는 상기 제 1 패킷을 상기 목적지 장치로 출력하는 것을 처리하도록, 상기 제 1 프로세서로부터 상기 제 2 프로세서로의 전환이 발생하고,
    상기 제 1 프로세서는 상기 제 1 패킷을 수신하는 것과 관련되는 제 1 인터페이스 규약에 관계 없이 상기 제 1 패킷을 출력하는 것과 관련되는 제 2 인터페이스 규약의 종류에 기초하여 선택되는 전자 장치.
  11. 제 9 항에 있어서,
    제 2 조건이 충족되는 경우, 상기 제 1 변환 테이블에 저장된 상기 제 1 주소 및 상기 제 2 주소의 상기 정보가 삭제되는 전자 장치.
  12. 제 11 항에 있어서,
    상기 제 2 조건은 상기 제 1 패킷과 관련되는 소스 장치와 목적지 장치 사이의 통신의 세션이 만료되는 경우에 충족되는 전자 장치.
  13. 제 9 항에 있어서,
    상기 제 1 변환 테이블에 저장된 상기 제 1 주소 및 상기 제 2 주소의 상기 정보가 삭제된 후, 상기 프로세서들은 상기 제 1 주소를 포함하는 제 2 패킷을 수신하도록 구성되고, 상기 버퍼는 상기 표식 없이 상기 제 1 주소를 포함하는 상기 제 2 패킷을 저장하도록 구성되는 전자 장치.
  14. 제 13 항에 있어서,
    상기 제 1 조건과 관계 없이 상기 제 1 주소 및 상기 제 2 주소의 상기 정보를 저장하도록 구성되는 제 2 변환 테이블을 더 포함하되,
    상기 프로세서들은 상기 제 2 패킷의 상기 제 1 주소를 상기 제 2 주소로 변환한 다음에 상기 제 2 패킷을 출력하는 것을 처리하도록 구성되는 전자 장치.
  15. 소스 장치와 목적지 장치 사이의 통신과 관련하여, 제 1 패킷들을 위해 제 1 주소로부터 제 2 주소로의 제 1 주소 변환을 처리한 다음에 상기 제 1 패킷들을 출력하는 것을 처리하도록 구성되는 프로세서들; 및
    상기 통신과 관련되는 조건이 충족되는 경우, 제 2 패킷들을 위해 상기 제 1 주소로부터 상기 제 2 주소로의 제 2 주소 변환을 처리하도록 구성되는 포워딩 관리기를 포함하되,
    상기 포워딩 관리기가 상기 제 2 주소 변환을 처리한 경우, 상기 프로세서들은 상기 제 2 패킷들을 위한 상기 제 1 주소 변환 없이 상기 제 2 패킷들을 출력하는 것을 처리하도록 구성되고,
    상기 통신과 관련되는 조건은 패킷들을 출력하는 것의 대역폭이 기준 값보다 커지는 경우에 충족되는 전자 장치.
  16. 제 15 항에 있어서,
    상기 포워딩 관리기가 상기 제 2 주소 변환을 처리한 후에 상기 제 2 패킷들을 상기 목적지 장치로 출력하는 것의 대역폭은 상기 프로세서들이 상기 제 1 주소 변환을 처리한 후에 상기 제 1 패킷들을 상기 목적지 장치로 출력하는 것의 대역폭보다 큰 전자 장치.
  17. 제 15 항에 있어서,
    상기 제 2 주소 변환을 처리하기 위해 소요되는 시간은 상기 제 1 주소 변환을 처리하기 위해 소요되는 시간보다 짧은 전자 장치.
  18. 각각이 제 1 주소를 포함하는 제 1 패킷들이 수신되는 경우에 상기 제 1 패킷들 각각의 상기 제 1 주소를 제 2 주소로 변환하고, 상기 제 1 패킷들이 수신되는 동안 조건이 충족된 후에 각각이 상기 제 2 주소를 포함하는 제 2 패킷들을 수신하도록 구성되는 프로세서들; 및
    각각이 상기 제 2 주소를 포함하는 상기 제 1 패킷들 및 상기 제 2 패킷들이 목적지 장치로 출력되도록 상기 목적지 장치와의 통신을 수행하도록 구성되는 인터페이스 회로를 포함하되,
    상기 제 2 패킷들의 주소들은 상기 프로세서들이 상기 제 2 패킷들을 수신하기 전에 상기 제 1 주소로부터 상기 제 2 주소로 변환되고,
    상기 제 2 패킷들을 출력하는 것의 대역폭은 상기 제 1 패킷들을 출력하는 것의 대역폭보다 크고,
    상기 조건은 패킷들을 출력하는 것의 대역폭이 기준 값보다 커지는 경우에 충족되는 전자 장치.
  19. 제 18 항에 있어서,
    상기 제 1 패킷들 각각의 상기 제 1 주소를 상기 제 2 주소로 변환하는 것, 각각이 상기 제 2 주소를 포함하는 상기 제 2 패킷들이 상기 목적지 장치로 포워딩되도록 상기 제 2 패킷들을 처리하는 것, 및 각각이 상기 제 2 주소를 포함하는 상기 제 1 패킷들 및 상기 제 2 패킷들을 상기 인터페이스 회로로 제공하는 것이 상기 프로세서들의 상이한 프로세서들로 분산하여 할당되는 전자 장치.
  20. 제 18 항에 있어서,
    상기 프로세서들이 각각이 상기 제 2 주소를 포함하는 상기 제 2 패킷들을 수신한 후, 패킷의 주소를 변환하는 것과 관련되는 필터들이 상기 프로세서들에서 후킹되지 않는 전자 장치.
KR1020180134227A 2018-11-05 2018-11-05 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치 KR102526770B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180134227A KR102526770B1 (ko) 2018-11-05 2018-11-05 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치
US16/504,757 US11271897B2 (en) 2018-11-05 2019-07-08 Electronic apparatus for providing fast packet forwarding with reference to additional network address translation table
CN201911071274.9A CN111147611B (zh) 2018-11-05 2019-11-05 参考附加网络地址转换表提供快速分组转发的电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180134227A KR102526770B1 (ko) 2018-11-05 2018-11-05 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치

Publications (2)

Publication Number Publication Date
KR20200051196A KR20200051196A (ko) 2020-05-13
KR102526770B1 true KR102526770B1 (ko) 2023-04-28

Family

ID=70459285

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180134227A KR102526770B1 (ko) 2018-11-05 2018-11-05 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치

Country Status (3)

Country Link
US (1) US11271897B2 (ko)
KR (1) KR102526770B1 (ko)
CN (1) CN111147611B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114598633B (zh) * 2022-03-21 2022-08-26 四川省商投信息技术有限责任公司 一种大型路由信号高效率传输的控制方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098448A1 (en) * 2002-11-20 2004-05-20 Hidehiro Fukushima Data distribution system
US20120203909A1 (en) * 2011-02-08 2012-08-09 Sierra Wireless, Inc. Method and System for Forwarding Data Between Netwowrk Devices
US20170272373A1 (en) * 2016-03-18 2017-09-21 Cisco Technology, Inc. Method and system for network address re-use in network address translation

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100333250B1 (ko) * 1998-10-05 2002-05-17 가나이 쓰토무 패킷 중계 장치
KR100388091B1 (ko) 2001-01-11 2003-06-18 주식회사 엔에스텍 아이피 그룹별로 서로 다른 대역폭 서비스를 제공하는라우터 및 그 라우팅 방법
US7254639B1 (en) * 2002-05-20 2007-08-07 Cisco Technology, Inc. Methods and apparatus for directing packets among a group of processors
JP2004364141A (ja) * 2003-06-06 2004-12-24 Hitachi Communication Technologies Ltd Ipアドレス変換装置およびパケット転送装置
KR100748090B1 (ko) 2005-12-07 2007-08-09 한국전자통신연구원 고속 라우터에서의 패킷 처리 장치 및 그 방법
CN101651721B (zh) * 2008-08-14 2013-11-27 百度在线网络技术(北京)有限公司 网络地址转换设备类型的判断方法和***
US10033650B2 (en) 2010-06-08 2018-07-24 Brocade Communication Systems Llc Preserving quality of service across trill networks
US8902743B2 (en) * 2010-06-28 2014-12-02 Microsoft Corporation Distributed and scalable network address translation
EP2426876A1 (en) 2010-09-03 2012-03-07 Adaptive Mobile Security Ltd Dynamic network address translation system and method
US9900799B2 (en) 2011-08-16 2018-02-20 Qualcomm Incorporated Reverse link control to reduce forward link latency
US9736085B2 (en) 2011-08-29 2017-08-15 Brocade Communications Systems, Inc. End-to end lossless Ethernet in Ethernet fabric
US20150304427A1 (en) * 2014-04-22 2015-10-22 Alcatel-Lucent Canada, Inc. Efficient internet protocol security and network address translation
KR20150133509A (ko) 2014-05-20 2015-11-30 삼성전자주식회사 데이터 플로우 관리 방법 및 전자 장치
US9654389B2 (en) 2014-07-21 2017-05-16 Cisco Technology, Inc. Order-sensitive communications in packet reordering networks
WO2016115406A1 (en) * 2015-01-14 2016-07-21 Hughes Network Systems, Llc Determining link conditions of a client lan/wan from measurement point to client devices and application servers of interest
JP2016149698A (ja) * 2015-02-13 2016-08-18 富士通株式会社 パケット通信装置およびパケット受信処理方法
US10454758B2 (en) * 2016-08-31 2019-10-22 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
US10237183B2 (en) 2016-10-03 2019-03-19 Guavus, Inc. Detecting tethering in networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040098448A1 (en) * 2002-11-20 2004-05-20 Hidehiro Fukushima Data distribution system
US20120203909A1 (en) * 2011-02-08 2012-08-09 Sierra Wireless, Inc. Method and System for Forwarding Data Between Netwowrk Devices
US20170272373A1 (en) * 2016-03-18 2017-09-21 Cisco Technology, Inc. Method and system for network address re-use in network address translation

Also Published As

Publication number Publication date
CN111147611B (zh) 2023-08-22
US11271897B2 (en) 2022-03-08
CN111147611A (zh) 2020-05-12
KR20200051196A (ko) 2020-05-13
US20200145371A1 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
US11706158B2 (en) Technologies for accelerating edge device workloads
US11792132B2 (en) Technologies for aligning network flows to processing resources
CN108270676B (zh) 一种基于Intel DPDK的网络数据处理方法及装置
EP2993838A1 (en) Method for setting identity of gateway device and management gateway device
CN114095430B (zh) 一种访问报文的处理方法、***及工作节点
CN111371694B (zh) 一种分流方法、装置和***、处理设备和存储介质
WO2018000202A1 (zh) 一种负载迁移方法、装置及***
JP2016531372A (ja) メモリモジュールアクセス方法および装置
CN115858160B (zh) 远程直接内存访问虚拟化资源分配方法及装置、存储介质
KR20210049335A (ko) 테더링 서비스 제공을 위한 ip 패킷 변환 방법 및 이를 수행하는 통신 시스템
CN112968965B (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
KR102526770B1 (ko) 추가의 네트워크 주소 변환 테이블을 참조하여 빠른 패킷 포워딩을 제공하는 전자 장치
CN109698845B (zh) 数据传输的方法、服务器、卸载卡及存储介质
WO2018057165A1 (en) Technologies for dynamically transitioning network traffic host buffer queues
JP2009188655A (ja) 通信制御方法、情報処理システム、情報処理装置及びプログラム
CN114697269A (zh) 数据通信方法、装置、设备和介质
CN112104565A (zh) 一种实现报文转发的方法、***及设备
CN114553965B (zh) 内网设备的调度方法、网络设备及存储介质
CN113765805B (zh) 基于调用的通信方法、装置、存储介质及设备
US20240069754A1 (en) Computing system and associated method
WO2020184381A1 (ja) 処理装置、情報処理システム、情報処理方法、及びプログラム
CN111107046B (zh) 一种数据流的传输方法及装置
WO2023222077A1 (zh) 资源配置方法、装置及相关设备
CN116938936A (zh) 负载均衡集群中的数据包处理方法、装置及设备
JP5573434B2 (ja) 情報処理装置の通信プログラム、情報処理装置、情報処理システム及び情報処理システムの通信方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant