KR20020070180A - IPv6 프로토콜 구현 장치와 이 장치에 사용되는 물리매체 인터페이스 유닛, IPv6 헤더 처리 유닛, 상위계층 인터페이스 유닛 - Google Patents

IPv6 프로토콜 구현 장치와 이 장치에 사용되는 물리매체 인터페이스 유닛, IPv6 헤더 처리 유닛, 상위계층 인터페이스 유닛 Download PDF

Info

Publication number
KR20020070180A
KR20020070180A KR1020020034230A KR20020034230A KR20020070180A KR 20020070180 A KR20020070180 A KR 20020070180A KR 1020020034230 A KR1020020034230 A KR 1020020034230A KR 20020034230 A KR20020034230 A KR 20020034230A KR 20020070180 A KR20020070180 A KR 20020070180A
Authority
KR
South Korea
Prior art keywords
ipv6
header
interface
data
unit
Prior art date
Application number
KR1020020034230A
Other languages
English (en)
Other versions
KR100475969B1 (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 KR10-2002-0034230A priority Critical patent/KR100475969B1/ko
Publication of KR20020070180A publication Critical patent/KR20020070180A/ko
Priority to PCT/KR2003/001195 priority patent/WO2004002114A1/en
Priority to AU2003244234A priority patent/AU2003244234A1/en
Application granted granted Critical
Publication of KR100475969B1 publication Critical patent/KR100475969B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/167Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 소프트웨어나 OS에 의해 처리되던 IPv6와 ICMPv6 인터넷 통신 프로토콜을 하드웨어 장치를 통해 통신 속도의 손실 없이 실시간으로 구현한다. 본 발명에 따른 IPv6 구현 장치는 물리 인터페이스 계층과 연결되는 물리 매체 인터페이스 유닛과, IPv6 프로토콜의 표준 헤더와 확장 헤더를 처리하며 상기 물리 매체 인터페이스 유닛과 연결되는 IPv6 헤더 처리 유닛과, TCP와 UDP를 포함하는 상위 계층 프로토콜과 연결되는 상위 계층 인터페이스 유닛을 포함한다. IPv6 구현 장치는 서로 분리되어 있는 헤더 버스와 데이터 버스를 포함할 수 있으며, 장치의 내부 유닛들에는 동기화 동작을 위한 기준 신호가 제공되고, 이 기준 신호와 동기된 제어 신호가 사용되며, 상기 데이터 버스를 통한 물리 매체 인터페이스 유닛과 상위 계층 사이의 데이터 송수신은 상기 IPv6 헤더 처리 유닛에 의해 제어된다. 제어 신호는 데이터의 유효 범위를 나타내고 제어 신호를 받는 유닛의 동작을 인에이블(enable)시킨다. 본 발명의 하드웨어 장치는 소프트웨어 방식에 비해 저가이며, 사용이 편리하고, 멀티미디어 응용에서의 지연 최소화 및 고성능의 장점 뿐만 아니라, SoC (System on Chip)적용을 위한 설계자산화에 용이하고, 고가의 복잡한 장치를 사용하지 않는 임베디드 시스템 환경에 유리하게 활용될 수 있고 다양한 형태의 하드웨어와 쉽게 접목할 수 있으며, 낮은 클록 주파수로 고속의 데이터 전송이 가능하며, OS 의존성이 없이 하드웨어적으로 IPv6와 ICMPv6를 처리할 수 있다. 또한, 본 발명 기술은 이동 단말기, 정보가전, 산업용 정보 단말기, 초고속 데이터 처리 장치 등에 유리하게 적용할 수 있다.

Description

IPv6 프로토콜 구현 장치와 이 장치에 사용되는 물리 매체 인터페이스 유닛, IPv6 헤더 처리 유닛, 상위 계층 인터페이스 유닛 {Apparatus For Implementing IPv6 Protocol and Physical Media Interface Unit, IPv6 Header Processing Unit and Upper Layer Interface Unit Suitable For Use in Such an Apparatus}
본 발명은 통신 기술에 관한 것으로서, 좀 더 구체적으로는 IPv6 프로토콜을통신 속도의 손실 없이 실시간으로 구현하는 하드웨어 장치와 이러한 장치에 사용하기에 적합한 물리 매체 인터페이스 유닛, IPv6 헤더 처리 유닛 및 상위 계층 인터페이스 유닛에 관한 것이다.
컴퓨터의 인터넷(Internet) 통신을 제공하는 표준 프로토콜인 TCP/IP (Transport Control Protocol/Internet Protocol)는 다른 네트워크 프로토콜과 마찬가지로 계층으로 이루어져 있는데, 이를 프로토콜 스택(stack), 프로토콜 슈트(suite) 또는 프로토콜 구조라고 한다. TCP/IP 프로토콜 스택은 TCP와 IP라는 2개의 가장 중요한 프로토콜을 기반으로 이루어져 있는데, IP 프로토콜은 OSI (Open Systems Interface) 계층 3에 해당하는 프로토콜로 현재 버전 4 (IPv4)가 주로 사용되고 있으며, 물리적인 서브네트워킹들의 연결과 목적지 IP 주소를 찾아가는 경로를 선택하는 기능이 있다. 이를 위해 IP 프로토콜은 인터넷에 연결된 많은 단말(terminals)이나 노드(node; IP 프로토콜을 구현하는 장치)들의 송신 주소와 수신 주소를 부여하고 해석한다. 현재 인터네트워크 층에서는 32-비트 IP 주소를 사용하여 네트워크 상의 호스트들 간에 상호 통신을 한다. IP 주소는 네트워크 IP와 노드 IP(호스트 IP)를 사용하여 특정 노드를 구별한다.
90년대 이후 인터넷 사용의 폭발적인 증가로 IPv4 프로토콜은 할당 가능한 자원의 부족, 이동성(mobility) 결여, 보안성 결여 등의 단점으로 개선의 필요성이 요구되었고, 이러한 단점을 해결하기 위한 새로운 표준 프로토콜인 IP 버전 6 (IPv6)이 개발되었다. 차세대 IP(IPng; Internet Protocol next generation)라고도 불리는 IPv6 프로토콜은 RFC 2460 표준문서에 기술되어 있다. IPv6 프로토콜은 IP주소의 길이를 기존의 32-비트에서 128-비트로 확장했기 때문에 인터넷 주소 자원 고갈 문제를 해결할 수 있으며, 멀티미디어 데이터를 실시간으로 처리할 수 있도록 하고, IPv4 프로토콜에서는 보안기능을 위해 'Ipsec (Internet Protocol Security Protocol)'이라는 패치(patch) 형태의 프로토콜을 별도로 설치해야 했던 문제를 해결해 IPsec을 프로토콜 내에 탑재함으로써 보안 기능을 강화할 수 있도록 하는 등의 장점이 있다. 그런데, IPv6 프로토콜은 IPv4 프로토콜과 서로 다른 헤더 구조를 가지고 있기 때문에, 두 프로토콜 사이에는 호환성이 없다. 따라서, 향후에는 IPv4 망이 점차 IPv6 망이나 IPv4와 IPv6를 동시에 지원하는 망으로 대체될 전망이다. 또한, 최근에는 IPv6 프로토콜이 다양한 시험망과 일부 상용망을 통해 그 사용이 점차 확대되고 있다.
도 1은 IPv6을 응용하기 위한 표준 프로토콜의 구성도이다.
도 1을 참조하면, IPv6 응용 TCP/IP 표준 프로토콜(10)은 응용 계층(12, Application Layer)과 TCP 또는 UDP (User Datagram Protocol)로 구현되는 전송 계층(14, Transport Layer), IPv6 및/또는 ICMPv6 (Internet Control Message Protocol for IPv6)로 구현되는 인터네트워크 계층(16, Internetwork Layer) 및 물리 계층(18, Physical Layer)으로 구성된다.
IPv6 데이터그램은 IPv4와 마찬가지로 헤더와 페이로드(payload) 2개 부분으로 구성된다. 페이로드는 2개의 호스트 사이에서 전송될 데이터를 전달하는 부분이다. IPv6 헤더는 40-바이트의 고정 크기를 가지며, IPv4에서 심각한 병목으로 밝혀진 헤더 체크섬 필드를 가지지 않는다. IPv6 프로토콜은 IPv4 프로토콜에서는 지원하지 않는 이동성 지원, 보안성 지원, 멀티미디어 응용의 품질 보장 등을 위하여 도 2와 같은 헤더 구조를 가진다.
도 2를 참조하면, IPv6 표준 프로토콜의 헤더(20)는 4-비트의 버전 필드(22), 8-비트의 트래픽 클래스 필드(24), QoS (Quality of Service)와 관련된 20-비트의 흐름 라벨 필드(26), 내용물의 길이를 나타내는 16-비트의 무부호 정수 페이로드 길이 필드(28), IPv6 헤더에서 다음에 이어지는 헤더의 유형을 정의하는 8-비트의 NH (Next Header) 필드(30), 패킷을 포워드하는 각각의 노드에서 1씩 감소하는 8-비트의 무부호 정수 홉 필드(32), 패킷 전송자의 128-비트 주소를 나타내는 발신지 주소 필드(34), 패킷 수신자의 128-비트 주소를 나타내는 목적지 주소 필드(36)를 기본 헤더 필드로 포함한다. IPv6을 완벽하게 구현하기 위해서 포함되는 확장 헤더 필드는 홉-바이-홉 옵션 필드(40), 목적지 옵션 헤더(42), 라우팅 헤더(44), 프레그먼트 헤더(46), 인증 헤더(48), ESP (Encapsulating Security Payload) 헤더(50) 등을 포함한다.
그런데, 이러한 IPv6 표준 프로토콜은 주로 PC를 사용하는 환경에 적합하도록 소프트웨어로 구현되어 있으며, 보통은 윈도(Windows), 리눅스(Linux), 리얼타임 (Real-time) OS 등과 같은 운영체제에 의해 처리되고 있다.
도 3은 종래 소프트웨어 IPv6 처리를 위한 시스템의 구조를 나타내며, 도 4는 도 3의 시스템에서 CPU가 IPv6 프로토콜을 구현하는 소프트웨어의 구성을 보여준다.
인터넷으로부터 받은 데이터는 물리 매체 칩(67)을 통과하여 CPU 버스(65)를통해 CPU(61)에 전달되고 CPU(61)는 도 4와 같은 OS(70) 및 TCP/IPv6 소프트웨어(78)를 수행하여 수신한 데이터를 처리한 후 RAM(63)에 저장한다. 이후 CPU(61)는 도 4의 응용 프로토콜(73)과 응용 프로그램(71)을 처리하면서 RAM(63)에 저장된 데이터를 다시 읽은 후 응용에 맞게 사용한다. 인터넷으로 데이터를 보내는 송신의 경우에는 수신과 반대의 과정을 거쳐 데이터를 보낸다. 즉, 도 4에서 CPU(61)는 응용 프로그램(71)을 처리하여 필요한 데이터를 생성한 후 RAM(63)에 저장하고 OS와 TCP/IP 소프트웨어를 실행하여 RAM(63)의 데이터를 다시 읽어 들여 TCP/IP 처리를 수행한 후 도 3의 CPU 버스(65)를 통해 물리 매체 칩(67)으로 패킷을 전달한다. 도 3에서 물리 매체 칩(67)은 수신한 데이터를 전기적 특성 등을 고려하여 인터넷으로 전송하는 역할을 하는 장치로서, 주로 이더넷 LAN 카드에 사용되는 이더넷 MAC 제어기와 물리 칩을 비롯하여 FDDI (Fiber Distributed-Data Interface), 무선 LAN, 모뎀, PPP (Point-to-Point Protocol) 등과 같이 다양한 칩들이 사용될 수 있다.
그런데, 이러한 종래 소프트웨어 구현 방식은 PC와 같은 대형 장치에는 적합하지만, 간단하고 단순한 기능을 반복적으로 수행하고 가격에 민감한 정보가전, 산업체의 원격 제어용 통신 단말, 이동통신 단말 등의 경우에는, 소프트웨어 구동을 위한 메모리 등의 주변 하드웨어 가격 상승, OS의 구매 비용 부담, 멀티미디어 응용에서의 지연 발생, 소프트웨어 처리에 의한 통신성능 저하 등의 단점이 나타난다.
또한, 종래 기술에서는 IPv6, ICMPv6 프로토콜을 처리하기 위해서 항상 소프트웨어를 구동할 수 있는 CPU를 필요로 하며, IPv6와 ICMPv6의 소프트웨어 코드를 저장하고 OS의 코드를 저장하기 위한 코드 ROM이 요구되며 CPU가 OS를 구동하고 IPv6와 ICMPv6 코드를 실행하기 위한 대용량이 RAM이 요구된다. 그러나 이러한 종래 방법은 가정의 정보가전, 저가형 고속의 데이터 처리 장치, 이동 통신용 저전력 단말기, 단순한 기능의 정보 단말기에의 응용에서는 가격, 성능, 데이터 전송의 품질면에서 한계가 있다. 특히, 대량 생산을 위한 시스템-온-칩 기술을 적용하거나 다른 하드웨어와의 접목 등에 응용하기 위해서는 새로운 기술적인 해결책이 절실하다.
본 발명의 목적은 종래 소프트웨어에 의한 IPv6 처리의 단점을 극복할 수 있는 하드웨어 IPv6 구현 장치를 제공하는 것이다.
본 발명의 다른 목적은 물리 계층의 통신 속도를 상위 계층에서 손실없이 실현할 수 있는 IPv6 프로토콜 실시간 구현 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 사용이 편리하고 경제적이며 멀티미디어 응용에서 시간 지연이 최소화되고 고성능의 하드웨어 IPv6 구현 장치를 제공하는 것이다.
본 발명의 또 다른 목적은 SoC (System on Chip)를 위한 반도체 설계자산(IP; Intellectual Property)화가 용이하고 다양한 형태의 하드웨어에 쉽게 접목할 수 있으며 낮은 클록 주파수로 고속의 데이터 전송이 가능하고, OS 의존성 없이 하드웨어적으로 IPv6와 ICMPv6 프로토콜을 처리할 수 있는 기술을 제공하는 것이다.
본 발명의 또 다른 목적은 임베디드 시스템(Embedded System) 환경에 유리하게 활용될 수 있는 IPv6 구현 장치를 제공하는 것이다.
도 1은 IPv6을 응용하기 위한 표준 프로토콜의 구성도.
도 2는 IPv6 표준 프로토콜의 헤더 구성도.
도 3은 종래 소프트웨어 IPv6 처리를 위한 시스템의 구조도.
도 4는 도 3의 시스템에서 IPv6 프로토콜을 구현하는 소프트웨어의 구성도.
도 5는 본 발명에 따른 IPv6 구현 장치의 전체 구성도.
도 6은 본 발명에 따른 IPv6 구현 장치에 사용되기에 적합한 물리 매체 인터페이스 유닛(110)의 세부 구성도.
도 7은 소프트웨어 MAC 제어기를 이용한 종래 기술을 나타내는 블록도.
도 8은 본 발명의 IPv6 구현 장치의 물리 매체 인터페이스 유닛이 사용하는 인터페이스 신호를 보여주는 타이밍도.
도 9는 본 발명의 IPv6 구현 장치의 IPv6 헤더 처리 유닛의 내부 구성을 나타내는 블록도.
도 10a와 10b는 IPv6 헤더 처리 유닛의 내부 기능 블록들간의 제어 신호 구성 방법과 실제 동작예를 나타내는 블록도.
도 11은 IPv6 헤더 처리 유닛의 송신 동작의 일례를 나타내는 블록도.
도 12a와 12b는 IPv6 헤더 처리 유닛의 각각의 기능 블록의 내부 구조도.
도 13은 본 발명의 IPv6 헤더 처리 유닛의 AH 기능 블록과 ESPH 기능 블록에서 특정 보안 알고리즘을 처리하기 위한 내부 구조도.
도 14는 상위 계층 인터페이스 유닛의 내부 구조를 나타내는 블록도.
도 15는 본 발명의 IPv6 구현 장치에서 송신부와 수신부가 버퍼를 기준으로 병렬로 구성된 실시예를 나타내는 블록도.
<도면의 주요 부호에 대한 설명>
100: IPv6 구현 장치102: 데이터 버스
104: 헤더 버스 및 제어 신호106: 헤더 및 데이터 버스
110: 물리 매체 인터페이스 유닛130: IPv6 헤더 처리 유닛
140: 제1 버퍼150: 상위 계층 인터페이스 유닛
160: ICMPv6 처리 유닛170: 제2 버퍼
180: 물리 인터페이스 계층185: 외부 보안 유닛
본 발명에 따른 IPv6 구현 장치는 물리 인터페이스 계층과 연결되는 물리 매체 인터페이스 유닛; IPv6 프로토콜의 표준 헤더와 확장 헤더를 처리하며, 상기 물리 매체 인터페이스 유닛과 연결되는 IPv6 헤더 처리 유닛; TCP와 UDP를 포함하는 상위 계층 프로토콜과 연결되는 상위 계층 인터페이스 유닛을 포함한다. IPv6 구현 장치는 서로 분리되어 있는 헤더 버스와 데이터 버스를 포함할 수 있으며, 이 장치의 유닛들은 동기화 동작을 위한 기준 신호를 사용하고 이 기준 신호와 동기된 제어 신호를 사용하는데, 제어 신호는 데이터의 유효 범위를 나타냄과 동시에 이 신호를 수신하는 유닛의 동작을 인에이블한다. 데이터 버스를 통한 물리 매체 인터페이스 유닛과 상위 계층 사이의 데이터 송수신은 상기 IPv6 헤더 처리 유닛에 의해 제어된다. 본 발명의 IPv6 구현 장치는 하드웨어로 구성되며 헤더와 데이터를 분리하여 별도로 처리하고, 물리 계층이나 상위 계층이 제공하는 속도의 손실없이 데이터를 실시간으로 처리한다.
본 발명에서, 물리 매체 인터페이스 유닛은, 상기 물리 인터페이스 계층과의 인터페이스를 위한 인터페이스 로직과, 데이터 링크층에서 데이터의 전달을 위해 정보를 프레임화하고 데이터의 오류 검사를 하며 상기 인터페이스 로직과 연결되는 DLC 처리 로직을 포함하고, IPv6 헤더 처리 유닛은, 하위 계층과의 인터페이스를 위한 하위 계층 인터페이스 로직과, 상위 계층과의 인터페이스를 위한 상위 계층인터페이스 로직과, IPv6 프로토콜의 기본 헤더를 처리하는 기능 블록과 IPv6 프로토콜의 확장 헤더를 처리하는 기능 블록을 포함하는 IPv6 헤더 처리 로직을 포함하며, 상위 계층 인터페이스 유닛은, 상기 IPv6 헤더 처리 유닛과의 인터페이스를 위한 인터페이스 로직과, 상위 계층과의 인터페이스를 담당하는 CPU 인터페이스 로직과, 응용 프로토콜과 명령과 데이터를 주고받는 API 처리 로직을 포함한다.
본 발명의 장치에 사용되는 제어 신호(인에이블 신호)는 상위 계층까지 그대로 전달되어 시간 지연 없이 실시간 데이터 전달과 처리가 가능하고, 물리 계층의 라인 속도를 지원하고 시간 지연 없이 실시간으로 IPv6, ICMPv6 프로토콜을 처리하는 하드웨어 로직이 구현된다. 또한, 장치의 내부 유닛을 송신부와 수신부를 분리하여 병렬 구성함으로써, 송신 동작과 수신 동작을 동시에 독립적으로 처리할 수 있다.
구현예
이하, 도면을 참조로 본 발명의 구체적인 구현예에 대해 설명한다.
도 5는 본 발명에 따른 IPv6 구현 장치의 전체 구성도이다.
IPv6 구현 장치(100)는 물리 매체 인터페이스 유닛(110), IPv6 헤더 처리 유닛(130), 제1 버퍼 유닛(140), 상위 계층 인터페이스 유닛(150), ICMPv6 처리 유닛(160), 제1 버퍼 유닛(170)을 포함하며, 서로 분리되어 독립적으로 구성되어 있는 데이터 버스(102)와 헤더 버스(104)를 포함한다. 본 발명의 IPv6 구현 장치(100)는 소프트웨어의 개입 없이 순수하게 하드웨어적으로 IPv6 표준 프로토콜을 처리하며, 프로토콜의 헤더와 데이터를 완전히 분리하여 별도로 처리한다. 즉, 물리 인터페이스 계층(180)에서 헤더 및 데이터 버스(106)를 통해 물리 매체 인터페이스 유닛(110)으로 전달된 데이터그램은 헤더와 데이터로 분리되어, 헤더는 헤더 버스(104)에 실려 IPv6 헤더 처리 유닛(130)에 제공되고, 데이터는 데이터 버스(102)에 실린다. 또한, 본 발명의 IPv6 구현 장치(100)는 그 내부 유닛들의 동기화 동작을 위한 기준 신호를 사용한다. 기준 신호는 내부 유닛들에 공통으로 적용되는 하나의 시스템 클록을 사용하여 실현될 수도 있고, 내부 유닛에 서로 다른 클록 신호를 사용하고 이들 클록 신호들을 동기시킴으로써 실현될 수도 있다.
물리 매체 인터페이스 유닛(110)은 IPv6 표준 프로토콜의 하위 계층인 물리 인터페이스 계층(180) 예컨대, 이더넷(Ethernet), 토큰링(Token Ring), ARCNET (Attached Resource Computer Network), MAN (Metropolitan Area Network) 또는 WAN (Wide Area Network)과 같은 매체 접근 제어기(MAC; Media Access Controller)와 연결되는 논리 회로이다. 물리 매체 인터페이스 유닛(110)과 물리 인터페이스 계층(180)은 패킷 데이터 및 헤더 버스(106)를 통해 연결된다. 물리 매체 인터페이스 유닛(110)의 내부 구성과 동작에 대해서는 도 6과 도 8을 참조로 후술한다.
IPv6 헤더 처리 유닛(130)은 도 2에 나타낸 IPv6 표준 프로토콜의 헤더를 처리하는 하드웨어로서, 표준 헤더와 확장 헤더 각각을 처리하는 기능 블록으로 구성되어 있다. IPv6 헤더 처리 유닛(130)은 물리 매체 인터페이스 유닛(110)과 헤더 버스(104)를 통해 연결되어 있고, 제1 버퍼 유닛(140), 상위 계층 인터페이스 유닛(150), ICMPv6 처리 유닛(160) 및 외부 보안 유닛(185)과 통신하는데, 이것은도 6과 도 8을 참조로 후술되는 바와 같다. IPv6 헤더 처리 유닛(130)의 내부 구조와 동작에 대해서는 도 9 내지 도 12를 참조로 후술한다.
제1 버퍼 유닛(140)은 IPv6 프로토콜과 물리 계층을 위한 데이터 저장 공간이다. 예컨대, 물리 계층이 이더넷인 경우 물리 매체 인터페이스 유닛(110)에서는 이더넷으로부터 실시간으로 계속 들어오는 데이터를 오류 검사하는 CRC 검사를 실시하는데, 오류 검사 결과 오류가 없으면 버퍼 유닛(140)에 저장되어 있던 데이터가 데이터 버스(102)에 실려 상위 계층으로 전달되고 오류가 있는 경우에는 버퍼 유닛(140)에 저장되어 있던 데이터가 삭제된다.
상위 계층 인터페이스 유닛(150)은 상위 계층 프로토콜(190) 예컨대, 전송 계층(도 1의 '14')의 TCP 프로토콜이나 UDP 프로토콜과의 접속을 위한 인터페이스 논리 회로이다. 이에 대해서는 도 14를 참조로 후술한다.
ICMPv6 처리 유닛(160)은 ICMP 메시지를 처리하는데, ICMPv6는 IPv6 노드에서 패킷 또는 데이터그램을 처리할 때 발생하는 오류를 보고하고 기타 인터넷 계층에서 하는 기능을 수행한다. 이 프로토콜은 RFC 2463 표준문서에 기술되어 있다.
제2 버퍼 유닛(170)은 ICMPv6 프로토콜을 위한 임시 데이터 저장 공간이다.
본 발명에 따른 IPv6 구현 장치(100)에서 하위 계층 인터페이스 유닛(110)과 상위 계층 인터페이스 유닛(150)은 어떠한 소프트웨어의 개입없이 순수하게 하드웨어적으로 연결되며, 물리 인터페이스 계층(180)이나 상위 계층(190)이 제공하는 속도의 손실없이 IPv6 구현 장치(100)가 데이터를 교환할 수 있도록 한다.
도 5의 IPv6 구현 장치에 대한 앞의 설명으로부터 알 수 있는 것처럼, 본 발명에 따르면, IPv6 응용 표준 통신 프로토콜에서 응용 계층은 소프트웨어로 구현되지만, IPv6 계층의 하위 계층인 물리 계층 하드웨어와의 연결을 제1 하드웨어 인터페이스 로직을 통해 처리하며, 상기 물리 계층 하드웨어를 제어하고 물리 계층 프레임을 생성하고 해석하고 제거하는 기능을 하드웨어적으로 처리하며, IPv6 프로토콜의 헤더를 하드웨어 기능 블록으로 처리하고, IPv6 계층의 상위 계층과의 정보 교환과 명령 교환을 제2 하드웨어 인터페이스 유닛으로 처리하며, 상기 제1 하드웨어 인터페이스 로직은 물리 계층 하드웨어 제어기와 제어 신호와 데이터를 전달하는 인터페이스를 통해 구현한다.
물리 매체 인터페이스 유닛
도 6은 본 발명에 따른 IPv6 구현 장치에 사용되기에 적합한 물리 매체 인터페이스 유닛(110)의 세부 구성도이다.
도 6을 참조하면, 물리 매체 인터페이스 유닛(110)은 인터페이스 로직(112), DLC (Data Link Control) 처리 로직(114), 다중화/역다중화기(116)를 포함한다. 도 6에는 물리 인터페이스 계층으로서 이더넷 MAC 유닛(180)을 예로 들었지만, 본 발명의 장치가 이더넷 MAC 유닛과 인터페이스 하는 것으로 한정되지 않는다는 점은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 쉽게 알 수 있을 것이다. 이더넷 MAC 유닛(180)은 인터페이스 로직(182)과 MAC 제어기(184)를 포함한다. 본 발명의 구성을 명확하게 하기 위해, 우선 종래 소프트웨어 MAC 제어기(184)를 이용하는 기술을 도 7을 참조로 설명한다.
도 7에서, 종래 이더넷 MAC 유닛(180)은 CPU(80)에서 수행되는 OS(81)와 연동하기 위해 PCI (Peripheral Component Interconnect), ISA (Industry Standard Architecture), PCMCIA (Personal Computer Memory Card International Association) 등의 인터페이스(182a)를 지원하며 MAC 제어기(184a)를 제어하기 위해 CPU(80)에서 실행되는 OS(81) 내부에 구동 프로그램(82)이 탑재되며, DLC 프로토콜은 OS(81) 내부의 소프트웨어(82)에 의해 처리된다. OS(81)는 DLC와 드라이버 프로그램을 처리하는 과정에서 데이터를 메모리(87)에 저장하기도 하고, 메모리(87)로부터 필요한 데이터를 불러온다. 예를 들어, 물리 계층(195)이 이더넷인 경우, OS(81) 내부의 이더넷 구동 프로그램(82)은 PCI 등의 외부 인터페이스(85)를 통해 이더넷 MAC 제어기(184a)로부터 받은 데이터를 이용하여 이더넷 프레임을 해석하고 상위의 IPv6(83)로 전달해 주는 기능을 수행하는 소프트웨어이다. 이러한 종래 방법에서는 LAN 카드에 사용되는 이더넷 MAC 프로토콜과 PC에 사용되는 PCI 인터페이스는 하드웨어로 구현되어 있지만, 이더넷 구동 프로그램(82)과 상위의 IPv6 프로토콜(83)은 소프트웨어로 구현되어 있음을 알 수 있다.
이에 비해, 도 6에 도시한 본 발명의 물리 매체 인터페이스 유닛(110)은 종래 OS의 구동 프로그램에 의해 소프트웨어적으로 처리되었던 물리 계층 구동 프로그램을 소프트웨어의 개입없이 순수 하드웨어적으로 처리하여 IPv6 프로토콜에 네트워크 데이터를 직접 전달하는 기능을 수행한다. 즉, 물리 매체 인터페이스 유닛(110)은 IPv6 프로토콜 계층까지 소프트웨어의 개입없이 하드웨어적으로 데이터를 전달할 수 있도록 하기 위해, 이더넷 MAC 칩과 같은 물리 계층 하드웨어(195)를 제어하고 기존의 소프트웨어 구동 프로그램에서 수행하던 물리 계층 프레임(header와 trailer)을 생성하거나 해석하고 제거하는 기능을 하드웨어적으로 처리하며 필요한 경우 각종 CRC 검사와 같은 에러 처리를 하드웨어적으로 처리한다.
도 6의 물리 매체 인터페이스 유닛(110)에서 인터페이스 로직(112)은 MAC 유닛(180)과 IPv6 구현 장치(100)를 하드웨어적으로 직접 연결하기 위해 제어 신호와 데이터를 전달하는 간단한 인터페이스를 통해 구현된다.
DLC 처리 로직(114)은 데이터 링크층에서 데이터의 전달을 위해 정보를 프레임화하고, 전송하는 프레임의 정확한 수신을 위해 프레임 번호를 이용한다. DLC에서 처리되는 프레임은 프리엠블(preamble), IP 헤더, TCP 헤더, 데이터, 테일러(tailer)로 구성될 수 있는데, DLC 처리 로직(114)은 데이터를 CRC 검사한 후 그 결과를 테일러에 들어 있는 값과 비교하여 에러가 있으면 버퍼 유닛(140)에 롤-백 신호(roll-back signal)를 보내 버퍼 유닛(140)에 저장되어 있던 데이터를 삭제하도록 하고, 프리엠블과 테일러를 제거하여 상위로 전달한다. DLC 처리 로직(114)은 제1 버퍼 유닛(140)에 롤백 신호를 보내는데, 이 신호가 없으면 데이터가 오류없는 유효 데이터임을 나타낸다.
다중화 및 역다중화기(116)는 헤더 버스(104) 및 패킷 데이터 버스(102)와 연결된다. 다중화기는 데이터 송신에서 동작하며 헤더와 데이터를 결합하여 패킷으로 만들고 역다중화기는 데이터 수신에서 동작하며 패킷을 헤더와 데이터로 분리하여 헤더는 제어 신호와 함께 헤더 버스(104)에 올리고 데이터는 데이터 버스(102)에 싣는다.
도 8은 본 발명의 IPv6 구현 장치(100)에서 내부 유닛들 사이에서 또는 내부 유닛과 외부 유닛 사이에서 사용하는 인터페이스 신호를 보여준다. 도 8의 인터페이스 신호는 예컨대, 도 6에서 물리 매체 인터페이스 유닛(110)의 인터페이스 로직(112)과 MAC 유닛(180)의 인터페이스 로직(182)이 주고 받는다. 여기서 클록 신호(202)는 IPv6 구현 장치(100)의 내부 유닛들의 동기화를 위한 기준 신호이다. 물리 매체 인터페이스 유닛(110)은 물리 계층으로부터 데이터를 끊김없이 연속적으로 수신하기 위해 물리 계층이 동작하는 클록과 동기화된 클록 신호(202)를 사용하거나, 내부 FIFO(First In First Out) 메모리 등의 완충 버퍼 공간을 이용하여 물리 계층과 서로 다른 클록 신호(202)를 사용할 수 있다. 여기서, 동기화란 하나의 클록이 다른 클록의 정수배의 주기를 가지며, 한 클록의 상승 모서리(rising edge)가 다른 클록이나 신호(예컨대, 인에이블(enable) 신호(204)나 데이터(206) 신호의 상승 모서리 또는 하강 모서리와 일치하거나 그 차이가 일정한 오차범위 이내에 있음을 의미한다.
도 8에서 인에이블 신호(204)는 데이터(206)의 유효 범위를 나타내고 인에이블 신호를 받는 유닛의 동작을 인에이블시키는 두 가지의 의미를 가진다. 즉, 인에이블 신호(204)가 활성(active)인 시점에 존재하는 데이터(206)는 유효 데이터이다. 도 8에서는 인에이블 신호(204)가 하이(high)인 경우 활성인 것을 예시하였지만, 인에이블 신호(204)가 로우(low)인 경우에 활성이 되도록 구성하는 것도 가능하다. 마찬가지로, 클록 신호(202)가 하이로 갈 때, 인에이블 신호(204)와 데이터(206)의 전환이 일어나는 것을 나타내었지만, 클록 신호(202)의 하강 모서리에서 신호(204)와 데이터(206) 전환이 일어나도록 구성할 수도 있다. 여기서 데이터(206)는 4-비트, 8-비트, 16비트, 32-비트 또는 64-비트의 데이터 폭을 가질 수 있는 데이터 버스이다. 또한, 데이터(206)는 헤더 데이터가 될 수도 있고, TCP 세그먼트나 UDP 데이터그램이 될 수도 있다.
이상, 물리 매체 인터페이스 유닛(110)의 내부 구성과 클록, 제어 신호에 대해서 설명하였는데, 도 5의 IPv6 헤더 처리 유닛(130), 제1 버퍼(140), 상위 계층 인터페이스 유닛(150), ICMPv6 처리 유닛(160) 및 제2 버퍼(170) 사이에도 데이터 전달을 위해 물리 매체 인터페이스 유닛(110)의 인터페이스 로직(112)과 도 8의 인터페이스 신호를 사용할 수 있다. 또한, 도 6에서 물리 계층(195)은 이더넷 뿐만 아니라, 무선 LAN, 전력선 통신선로(Power-line Communication), 불루투쓰 (Bluetooth), 홈 PNA (Home Phoneline Networking Alliance), 홈 RF (Home Radio Frequency), CDMA (Code Division Multiple Access), GSM (Global System for Mobile communication) 등 다양한 물리 계층을 포함한다.
도 6과 도 8을 참조로 설명한 바와 같이, IPv6 프로토콜을 하드웨어로 처리하는 상위 계층과 하위 계층 간의 데이터 전달을 위한 인터페이스 블록(120)은, 상위 계층에 속한 제1 인터페이스 로직(예컨대, 도 6의 '112')과 하위 계층에 속한 제2 인터페이스 로직(예컨대, 도 6의 '182')을 포함한다. 여기서 제1 인터페이스 로직과 제2 인터페이스 로직은, 상위 계층의 동작과 하위 계층의 동작이 동기되도록 하는 기준 신호와, 이 기준 신호에 동기된 제어 신호를 사용하며, 상기 제어 신호는 상기 데이터의 유효 범위를 나타내고 이 제어 신호를 받는 유닛의 동작을 인에이블하는 것을 특징으로 한다.
IPv6 헤더 처리 유닛
물리 계층의 라인 속도를 보장하기 위해 IPv6의 기본 헤더와 확장 헤더를 지연없이 처리하기 위한 구조와 제어 방법에 대해 설명한다.
도 9는 본 발명의 IPv6 구현 장치(100)의 IPv6 헤더 처리 유닛(130)의 내부 구성을 나타내는 블록도이다. IPv6 헤더 처리 유닛(130)은 하위 계층 인터페이스 로직(132), IPv6 헤더 처리 로직(135), 상위 계층 인터페이스 로직(138)을 포함한다. 인터페이스 로직들(132, 138)은 앞에서 도 8을 참조로 설명했던 인터페이스 신호를 사용한다. IPv6 헤더 처리 로직(135)은 IPv6 프로토콜의 기본 헤더를 처리하는 기능 블록 BH(210)와 확장 헤더를 처리하는 기능 블록들 HOH(212), DOH(214), RH(216), FH(218), AH(220), ESPH(222), DOH(224)과, 제어 신호선(226), 헤더 버스(228)을 포함한다. 헤더 처리 기능 블록들은 도 9에 도시한 순서로 배열되는 것이 바람직하며, 확장 헤더들의 순서를 바뀌는 것은 가능하지만, HOH 헤더는 BH 헤더 바로 다음에 위치하여야 한다. IPv6 헤더 처리 유닛(130)에는 동기화를 위한 기준 신호가 제공되고, 제어 신호선(226)에는 인에이블 신호가 유통된다.
기능 블록들의 명칭과 기능은 아래의 표 1과 같으며, 확장 헤더의 처리를 위한 기능 블록들은 응용 기술에 따라 생략되거나 추가될 수 있다는 점은 본 발명이속하는 기술 분야에서 통상의 지식을 가진 자라면 쉽게 이해할 것이다. 예컨대, DOH 헤더 다음에 상위 계층 헤더가 추가될 수 있다.
기능 블럭 명칭 및 기능
BH IPv6 Basic Header 처리 블럭
HOH Hop-by-Hop Options Header 처리 블럭
DOH Destination Options Header 처리 블럭
RH Routing Header 처리 블럭
FH Fragment Header 처리 블럭
AH Authentication Header 처리 블럭
ESP Encapsulation Security Payload 헤더 처리 블럭
DOH Destination Options Header 처리 블럭
위의 표에서 기능 블록 BH(210)는 도 2에 나타낸 IPv6 프로토콜 헤더 중 기본 헤더에 해당하는 버전 필드(22)에서 목적지 주소 필드(36)까지의 40-바이트를 하드웨어적으로 처리하는 블록이다. HOH 기능 블록(212)과 제1 DOH 기능 블록(214)은 TLV(Type-Length-Value) 부호화된 옵션들의 변수를 전달하는데, 이 변수는 옵션 유형-옵션 데이터 길이-옵션 데이터의 포맷으로 되어 있다. HOH 기능 블록(212)은 어느 패킷의 전송 경로상에 존재하는 모든 노드에 의해 조사되어야만 하는 추가 정보(옵션 정보)를 전달한다. IPv6 헤더의 NH 필드의 값 0에 의해 HOH 옵션 헤더를 식별한다. RH 기능 블록(216)은 패킷의 목적지로 가는 동안 방문해야 하는 중간 노드(intermediate node)들을 IPv6 소스가 리스트하는 데에 사용된다. RH 헤더는 그 앞단에 존재하는 헤더의 NH 필드의 값 43에 의해 식별된다. FH 기능 블록(218)은 목적지까지의 경로에서 처리할 수 있는 최대전송 단위(MTU; Maximum Transmission Unit)로 수용할 수 있는 것 이상의 패킷을 IPv6 소스가 전달하는 데에 사용된다.FH 헤더는 그 앞단에 존재하는 헤더의 NH 필드의 값 44에 의해 식별된다. AH 기능 블록(220)과 ESP 기능 블록(222)은 보안 기능을 제공하는데, 예컨대 IPsec의 기능을 수행하며, 전송 모드(transport mode) 또는 터널 모드(tunnel mode)로 구현될 수 있다. AH 기능 블록(220)은 IP 데이터그램의 인증과 무결성을 제공하며, ESP 기능 블록(222)은 IP 데이터그램의 무결성과 기밀성(confidentiality)을 보장한다. 제2 DOH 기능 블록(224)은 패킷의 목적지 노드에서만 조사할 필요가 있는 추가 정보를 전달하는 데에 사용된다.
RH 기능 블록(216)과 제2 DOH 기능 블록(224)은 IPv6 프로토콜의 이동성(mobility)을 제공하며, AH 기능 블록(220)과 ESP 기능 블록(222)은 보안 기능을 제공한다.
도 9의 IPv6 헤더 처리 유닛(130)의 동작에 대해 먼저 수신 동작을 설명한다. 물리 매체 인터페이스 유닛(110)에서 필요한 처리를 종료한 후 신호선(226)을 통해 IPv6 헤더 처리 유닛(130)으로 인에이블 신호를 주고, IPv6 헤더 처리 유닛(130)의 BH 기능 블록(210)이 최초로 인에이블되어 IPv6 프로토콜의 기본 헤더에 대한 처리를 수행한다. 기본 헤더에 대한 처리는 바이트 단위로 실시간으로 처리된다. 여기서, 실시간 처리란 도 9에서 헤더 버스(228)에는 연속적으로 물리 계층으로부터 수신한 헤더 정보가 실리게 되고, 각각의 기능 블록들은 자신이 동작을 시작해야 할 시점을 인에이블 신호를 통해 알게 되며, 동작 시에는 시스템 클록에 맞추어 인에이블 신호가 활성인 동안 헤더 버스(228)의 8-비트 또는 16-비트 데이터를 처리하는데, 헤더를 처리할 때 헤더 정보를 나중에 처리하기 위해 임시 저장하거나 다른 처리를 위해 보류하는 등의 동작을 수행하지 않고 물리 계층으로부터 받는 즉시 모든 처리를 종료하는 것을 말한다. BH 기능 블록(210)은 기본 헤더의 처리가 끝나면, 기본 헤더 내의 NH 필드를 보고, 다음 기능 블록의 인에이블 신호를 생성한다. 도 9의 각각의 기능 블록은 도면에 나타낸 것처럼 왼쪽에서 오른쪽으로 차례대로 인에이블되며, 활성화될 확장 헤더가 아닌 경우에는 해당 확장 헤더를 건너 뛰어 그 다음 확장 헤더가 인에이블된다. BH 기능 블록(210)은 물리 매체 인터페이스 유닛(110)에 의해서만 인에이블되며 항상 동작한다.
IPv6 헤더 처리 유닛(130)의 각각의 기능 블록들은 인에이블 신호에 의해 동작을 시작하고, 동작을 종료하는 시점에서 NH 필드를 검사하여 다음에 인에이블시킬 기능 블록에게 인에이블 신호를 보낸다. 따라서, 도 9의 구조를 예로 들면, 도10a에 나타낸 바와 같이, BH 기능 블록(210)은 하나의 인에이블 입력과 7개의 인에이블 출력을 가진다. 한편, RH 기능 블록(216)은 BH(210), HOH(212), DOH(214) 기능 블록에 의해서만 인에이블될 수 있고, RH 기능 블록(216)은 FH(218), AH(220), ESPH(222), DOH(224) 기능 블록을 인에이블시킬 수 있으므로, RH 기능 블록(216)은 3개의 인에이블 입력과 4개의 인에이블 출력을 가진다. 인에이블 신호는 한 순간에 하나의 신호만 활성화된다. 인에이블 신호에 의한 기능 블록들의 실제 동작을 예로 들면, IPv6 헤더가 기본 헤더와 RH, DOH를 확장 헤더로 가지는 경우 도 10b와 같은 인에이블 신호가 생성된다.
도 10b를 참조하면, 인에이블 신호가 활성 상태가 아닌 기능 블록들 HOH(212), DOH(214), FH(218), AH(220), ESPH(222)은 헤더 버스(228)의 어떠한 데이터도 참조하지 않으며, 이러한 기능 블록들은 구현 방법에 따라 전력 소모를 줄이기 위해 휴면 모드(sleeping mode) 상태에 있거나 동작을 중지시킬 수 있다. 도 10으로부터 알 수 있는 것처럼, 최초의 인에이블 신호는 물리 매체 인터페이스 유닛(110)으로부터 BH 기능 블록(210)으로 전달되며, BH 기능 블록(210)에서부터 RH 기능 블록(216), DOH 기능 블록(224)을 거쳐 마지막 인에이블 신호는 DOH의 NH 필드에 따라 ICMPv6, TCP, UDP 등의 상위 프로토콜 중 하나를 인에이블 시킨다.
IPv6 헤더 처리 유닛(130)의 인에이블 신호는 상위 계층까지 그대로 전달되기 때문에, TCP, UDP, ICMPv6 등의 상위 계층과도 시간 지연없이 실시간 데이터 전달과 처리가 가능하다. 또한, 헤더 버스(228)에는 클록에 동기된 4-비트 8-비트 또는 16-비트 단위의 헤더 정보가 시간에 따라 연속으로 실린다. 따라서, 이러한 인에이블 신호 및 클록 신호와 함께 클록에 동기되어 연속적으로 실리는 헤더 버스 및 데이터 버스의 정보를 이용하여 물리 계층의 라인 속도를 지원하고 시간 지연 없이 실시간으로 모든 프로토콜을 처리하는 하드웨어 로직을 구현할 수 있다.
IPv6 헤더 처리 유닛(130)의 송신 동작도 위에서 설명했던 수신의 경우와 마찬가지로, 인에이블 신호가 생성되며 인에이블 신호를 수신한 각각의 기능 블록은 해당 확장 헤더를 클록에 동기되어 생성하여 이를 헤더 버스(228)에 실어 하위 계층으로 전달한다. 도 11은 IPv6 헤더 처리 유닛(130)의 송신 동작의 일례를 나타낸다.
도 11에서 송신 동작은 수신 동작과 달리 지연없는 실시간 송신을 위해서 최하위 게층인 물리 매체 인터페이스 유닛(110)이 가장 먼저 이더넷의 DLC 헤더를 생성하여 물리 계층으로 전송하여야 하므로, 상위 계층에서는 물리 매체 인터페이스 유닛(110)으로 인에이블 신호를 준다. 물리 매체 인터페이스 유닛(110)은 인에이블 신호를 받으면, 이더넷 DLC 헤더를 처리한 후 IPv6 헤더 처리 유닛(130)의 BH 기능 블록(210)으로 인에이블 신호를 보낸다. BH 기능 블록(210)은 수신 동작때와는 달리 클록에 동기하여 헤더 정보를 생성한 후 헤더 버스(228)에 차례로 실어준다. 이때, BH 기능 블록(210)은 기본 헤더 필드의 다음 헤더(NH)를 알기 위해 상위 계층에서 전달되는 다음 헤더 정보를 이용한다. 동일한 방법으로 나머지 기능 블록들에 대한 처리가 이루어지며, 마지막으로 DOH 기능 블록(224)은 모든 헤더의 생성 및 전송이 완료되었음을 알리고 데이터의 전송을 시작하도록 하기 위해, 인에이블 신호를 상위 계층으로 다시 보낸다.
이와 같은 실시간 처리를 위해 IPv6 헤더 처리 유닛(130)의 각각의 기능 블록들은 도 12a와 도 12b에 나타낸 내부 구조를 가진다.
도 12를 참조하면, IPv6 헤더 처리 유닛(130)의 기능 블록들(210~224)은 각각 헤더 버스(228)와 연결된 헤더 처리 로직(250)과 NH 인에이블 로직(260)을 포함하며, 도 12b의 송신 동작시 기능 블록은 앞에서 설명했던 바와 같이 도 12a의 수신 동작과 달리 다음 헤더(NH) 정보를 참조한다.
한편, AH 기능 블록(220)과 ESPH 기능 블록(222)은 특정 보안 알고리즘을 처리하기 위한 외부 접속을 위해 도 13과 같은 구조를 가질 수도 있다. AH 기능 블록(220)과 ESPH 기능 블록(222)은 각 응용에 따라 다양한 형태의 보안 알고리즘을 지원해야 하므로, 하드웨어적으로 미리 기능을 고정시키는 것은 가격면에서 불리하다. 본 발명에서는 AH 기능 블록(220)과 ESPH 기능 블록(222)을 인터페이스를 이용하여 외부 보안 장치와 하드웨어적으로 접목하는 방법을 채택하는 것이 바람직하다.
도 13을 참조하면, AH 기능 블록(220)과 ESPH 기능 블록(222)은 다른 기능 블록의 헤더 처리 로직(250), NH 인에이블 로직(260)에 더하여, 데이터 버퍼(270)와 외부 보안 인터페이스 로직(280)을 더 포함한다. 외부 보안 인터페이스 로직(280)은 외부 보안 유닛(290)과 연결되는데, 외부 보안 유닛(290)은 보안 알고리즘을 수행하는 상용 로직, 프로세서, DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit), ASSP (Application Specific Standard Products) 또는 CPU를 의미한다. 외부 보안 인터페이스 유닛(280)은 ISA, PCI, PCMCIA, I2C (Inter-IC Control), SPI (Service Provider Interface) 등의 다양한 형태의 표준 인터페이스를 이용하여 외부의 보안 유닛(290)과 하드웨어적으로 직접 접속하며, 이들 외부 유닛(290)과 동기를 맞추거나 일정한 데이터의 버퍼링이 필요한 경우 데이터 버퍼(270)에 보안 처리가 필요한 데이터를 임시로 저장한다.
상위 계층 인터페이스 유닛
도 14는 상위 계층 인터페이스 유닛의 내부 구성을 나타내는 블록도이다.
상위 계층 인터페이스 유닛(150)은 상위 계층과 정보 교환과 명령의 교환을 담담하는 유닛으로, 인터페이스 로직(152), API (Application Program Interface)처리 로직(155), CPU 인터페이스 로직(158)을 포함한다. 인터페이스 로직(152)은 IPv6 헤더 처리 유닛(130)과의 인터페이스를 담당하는데, 예컨대 도 8을 참조로 앞에서 설명했던 인터페이스 신호들을 사용한다. CPU 인터페이스 로직(158)은 CPU 버스를 통해 상위 계층과의 인터페이스를 담당하며, API 처리 로직(155)은 예컨대, 도 4에 나타낸 응용 프로토콜(73)로부터 필요한 명령과 데이터를 주고 받는다. 여기서 API 처리 로직(155)은 레지스터와 내부 버퍼(도시 아니함)를 이용하여 종래 소프트웨어로 처리되던 것을 하드웨어적으로 처리한다.
상위 계층 인터페이스 유닛(150)은 물리 매체 인터페이스 유닛(110)과 마찬가지로 데이터의 연속적인 전달을 위해 상위 계층의 동작 클록과 동기화를 하거나 서로 동기가 맞지 않는 경우 FIFO를 두어 손실없이 데이터를 전달한다.
병렬 구성
본 발명의 다른 구현예에 따르면, 도 5의 IPv6 구현 장치(100)의 모든 유닛을 송신 동작과 수신 동작을 동시에 독립적으로 처리하기 위해 송신부와 수신부로 나누어 병렬 구성한다. 예를 들어서, 도 15에 나타낸 것처럼, IPv6 헤더 처리 유닛(130)을 IPv6 구현 장치(100)의 제1 버퍼(140)를 기준으로 송신 기능 블록(210a, 212a, …, 224a)과 수신 기능 블록(210b, 212b, …, 224b)이 좌우 병렬로 배열된다. 제1 버퍼(140)도 내부적으로 송신부와 수신부를 분리하여 구성할 수 있다. 마찬가지로, 물리 매체 인터페이스 유닛(110)과 상위 계층 인터페이스 유닛(150) 및 ICMPv6 처리 유닛(160)도 송신부와 수신부로 분리하여 병렬 구성하는것도 가능하다. 이와 같은 병렬 구성으로 된 IPv6 구현 장치(100)에서는 물리 계층의 라인 속도를 보장하면서 실시간 데이터 처리가 가능하다.
본 발명에 따르면, 종래 소프트웨어에 의한 IPv6 처리의 단점을 극복할 수 있으며, 물리 계층의 통신 속도를 손실없이 실현할 수 있는 하드웨어 IPv6 구현 장치가 제공되며, 사용이 편리하고 경제적이며 멀티미디어 응용에서 시간 지연이 최소화되고 성능이 우수할 뿐만 아니라, 다양한 형태의 하드웨어에 쉽게 접목할 수 있으며 낮은 클록 주파수로 고속의 데이터 전송이 가능하고, OS 의존성 없이 하드웨어적으로 IPv6와 ICMPv6 프로토콜을 처리할 수 있다.
또한, 본 발명에 따르면 물리 계층의 라인 속도를 필요로 하는 각종 통신 장비 및 단말이나 이동통신 단말, 정보가전, 산업용 통신장비, 계측 장비 등에 적용될 수 있으며, 하드웨어 로직으로 구현되어 있기 때문에, 각종 SoC (System-On-Chip) 제작을 위한 반도체 설계자산으로 이용되어 다양한 종류의 칩 속에 내장할 수 있다.
이상 도면을 참조로 본 발명을 그 구현예를 중심으로 설명하였지만, 이것은 설명을 위한 예시적인 것이고 발명의 범위를 한정하거나 제한하기 위한 것은 아니다. 따라서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면, 이하의 특허청구범위에 의해 정해지는 권리의 범위와 발명의 사상을 벗어나지 않는 범위 내에서 본 발명의 구현예들을 다양하게 변형하고 수정하여 구현할 수 있다는 점을 쉽게 이해할 수 있을 것이다.

Claims (18)

  1. IPv6 구현 장치로서,
    물리 인터페이스 계층과 연결되는 물리 매체 인터페이스 유닛;
    IPv6 프로토콜의 표준 헤더와 확장 헤더를 처리하며, 상기 물리 매체 인터페이스 유닛과 연결되는 IPv6 헤더 처리 유닛; 및
    TCP와 UDP를 포함하는 상위 계층 프로토콜과 연결되는 상위 계층 인터페이스 유닛을 포함하는 IPv6 구현 장치.
  2. 제1항에서,
    서로 분리되어 있는 헤더 버스와 데이터 버스를 더 포함하며, 상기 유닛들에는 동기화 동작을 위한 기준 신호와 제어 신호가 제공되고, 상기 제어 신호는 데이터의 유효 범위를 나타내고 상기 기준 신호와 동기되며, 물리 매체 인터페이스 유닛과 상위 계층 사이의 데이터 송수신은 상기 데이터 버스를 통해 상기 IPv6 헤더 처리 유닛에 의해 제어되는 것을 특징으로 하는 IPv6 구현 장치.
  3. 제1항에서, 상기 기준 신호는 클록 신호이고 상기 제어 신호는 이 신호를 받는 유닛들의 동작을 인에이블하는 신호인 것을 특징으로 하는 IPv6 구현 장치.
  4. 제1항에서, IPv6 프로토콜과 물리 계층을 위한 데이터 저장 기능을 하며, 상기 IPv6 헤더 처리 유닛과 데이터 버스 사이에 연결되는 버퍼 수단을 더 포함하는 것을 특징으로 하는 IPv6 구현 장치.
  5. 제1항에서, 상기 IPv6 헤더 처리 유닛과 통신하며 ICMP 메시지를 처리하는 ICMPv6 처리 유닛을 더 포함하는 것을 특징으로 하는 IPv6 구현 장치.
  6. 제1항에서, 상기 IPv6 헤더 처리 유닛은 외부 보안 유닛과 하드웨어적으로 연결되는 보안 인터페이스 로직을 더 포함하는 것을 특징으로 하는 IPv6 구현 장치.
  7. IPv6 구현 장치로서,
    물리 인터페이스 계층과 연결되는 물리 매체 인터페이스 유닛;
    IPv6 프로토콜의 표준 헤더와 확장 헤더를 처리하며, 상기 물리 매체 인터페이스 유닛과 연결되는 IPv6 헤더 처리 유닛;
    TCP와 UDP를 포함하는 상위 계층 프로토콜과 연결되는 상위 계층 인터페이스 유닛;
    IPv6 프로토콜과 물리 계층을 위한 데이터 저장 기능을 하며, 상기 IPv6 헤더 처리 유닛과 데이터 버스 사이에 연결되는 버퍼 수단; 및
    서로 분리되어 있는 헤더 버스와 데이터 버스를 포함하며,
    상기 유닛들에는 동기화 동작을 위한 기준 신호와 제어 신호가 제공되고, 상기 제어 신호는 데이터의 유효 범위를 나타내고 상기 기준 신호와 동기되며, 물리 매체 인터페이스 유닛과 상위 계층 사이의 데이터 송수신은 상기 데이터 버스를 통해 상기 IPv6 헤더 처리 유닛에 의해 제어되고,
    상기 물리 매체 인터페이스 유닛, IPv6 헤더 처리 유닛, 상위 계층 인터페이스 유닛 중 최소한 하나의 유닛은 송신부와 수신부를 포함하고, 이 송신부와 수신부는 상기 버퍼 수단을 기준으로 병렬로 배열되어 있는 것을 특징으로 하는 IPv6 구현 장치.
  8. 청구항 제1항의 IPv6 구현 장치에 사용되는 물리 매체 인터페이스 유닛으로서,
    상기 물리 인터페이스 계층과의 인터페이스를 위한 인터페이스 로직과,
    데이터 링크층에서 데이터의 전달을 위해 정보를 프레임화하고 데이터의 오류 검사를 하며 상기 인터페이스 로직과 연결되는 DLC 처리 로직을 포함하는 것을 특징으로 하는 물리 매체 인터페이스 유닛.
  9. 제8항에서, 상기 DLC 처리 로직과 연결되며 송신 동작에서는 헤더와 데이터를 결합하고 수신 동작에서는 헤더와 데이터를 분리하는 다중화 및 역다중화기를 더 포함하는 것을 특징으로 하는 물리 매체 인터페이스 유닛.
  10. IPv6 프로토콜을 하드웨어로 처리하는 상위 계층과 하위 계층 간의 데이터 전달을 위한 인터페이스 블록으로서,
    상위 계층에 속한 제1 인터페이스 로직과 하위 계층에 속한 제2 인터페이스 로직을 포함하며,
    상기 제1 인터페이스 로직과 제2 인터페이스 로직은, 상위 계층의 동작과 하위 계층의 동작이 동기되도록 하는 기준 신호와, 이 기준 신호에 동기된 제어 신호를 사용하며, 상기 제어 신호는 상기 데이터의 유효 범위를 나타내고 이 제어 신호를 받는 유닛의 동작을 인에이블하는 것을 특징으로 하는 인터페이스 블록.
  11. 청구항 제1항의 IPv6 구현 장치에 사용되는 IPv6 헤더 처리 유닛으로서,
    하위 계층과의 인터페이스를 위한 하위 계층 인터페이스 로직과,
    상위 계층과의 인터페이스를 위한 상위 계층 인터페이스 로직과,
    IPv6 프로토콜의 기본 헤더를 처리하는 기능 블록과 IPv6 프로토콜의 확장 헤더를 처리하는 기능 블록을 포함하는 IPv6 헤더 처리 로직을 포함하는 IPv6 헤더 처리 유닛.
  12. 제11항에서, 상기 기본 헤더 처리 기능 블록과 확장 헤더 처리 기능 블록들은 상기 제어 신호에 의해 동작 시점이 결정되고 상기 기준 신호와 동기된 상태에서 상기 제어 신호가 활성 상태인 동안 헤더 버스의 데이터를 실시간으로 처리하는 것을 특징으로 하는 IPv6 헤더 처리 유닛.
  13. 제12항에서, 상기 기능 블록들은 자신의 동작을 종료하는 시점에서 다음 헤더(NH: Next Header) 필드를 참조하여 다음에 인에이블시킬 기능 블록에게 제어 신호를 보내는 것을 특징으로 하는 IPv6 헤더 처리 유닛.
  14. 제11항에서, 상기 IPv6 헤더 처리 로직은 보안 알고리즘을 수행하는 외부 보안 유닛과 하드웨어 인터페이스를 통해 연결되는 보안 기능 블록을 더 포함하는 것을 특징으로 하는 IPv6 헤더 처리 유닛.
  15. 제11항에서, 상기 확장 헤더 처리 기능 블록들은 HOH(Hop-by-Hop Options Header) 처리 블록, 제1 DOH(Destination Option Header) 처리 블록, RH(Routing Header) 처리 블록, FA(Fragment Header) 처리 블록, AH(Authentication Header) 처리 블록, ESP(Encapsulation Security Payload) 처리 블록, 제2 DOH(Destination Options Header) 처리 블록을 포함하며, 상기 확장 헤더 처리 기능 블록들은 상기 기본 헤더 처리 기능 블록 바로 다음에 이 순서대로 배열되어 있는 것을 특징으로 하는 IPv6 헤더 처리 유닛.
  16. 제15항에서, 상기 기본 헤더 처리 기능 블록은 상기 하위 계층에 의해 인에이블되고, 상기 확장 헤더 처리 기능 블록들 모두에게 인에이블 신호를 보낼 수 있으며, 상기 확장 헤더 처리 기능 블록들 각각은 기본 헤더 처리 기능 블록과 자신보다 앞에 배열되어 있는 확장 헤더 처리 기능 블록에 의해 인에이블되고, 자신보다 뒤에 배열되어 있는 확장 헤더 처리 기능 블록 모두에게 인에이블 신호를 보낼 수 있는 것을 특징으로 하는 IPv6 헤더 처리 유닛.
  17. 청구항 제1항의 IPv6 구현 장치에 사용되는 상위 계층 인터페이스 유닛으로서,
    상기 IPv6 헤더 처리 유닛과의 인터페이스를 위한 인터페이스 로직과,
    상위 계층과의 인터페이스를 담당하는 CPU 인터페이스 로직과,
    응용 프로토콜과 명령과 데이터를 주고 받는 API 처리 로직을 포함하는 것을 특징으로 하는 상위 계층 인터페이스 유닛.
  18. IPv6 구현 장치로서,
    물리 인터페이스 계층과 연결되는 물리 매체 인터페이스 유닛;
    IPv6 프로토콜의 표준 헤더와 확장 헤더를 처리하며, 상기 물리 매체 인터페이스 유닛과 연결되는 IPv6 헤더 처리 유닛;
    TCP와 UDP를 포함하는 상위 계층 프로토콜과 연결되는 상위 계층 인터페이스 유닛; 및
    서로 분리되어 있는 헤더 버스와 데이터 버스를 포함하며,
    상기 유닛들에는 동기화 동작을 위한 기준 신호와 제어 신호가 제공되고, 상기 제어 신호는 데이터의 유효 범위를 나타내고 상기 기준 신호와 동기되며, 물리 매체 인터페이스 유닛과 상위 계층 사이의 데이터 송수신은 상기 데이터 버스를 통해 상기 IPv6 헤더 처리 유닛에 의해 제어되고,
    상기 물리 매체 인터페이스 유닛은, 상기 물리 인터페이스 계층과의 인터페이스를 위한 인터페이스 로직과, 데이터 링크층에서 데이터의 전달을 위해 정보를 프레임화하고 데이터의 오류 검사를 하며 상기 인터페이스 로직과 연결되는 DLC 처리 로직을 포함하며,
    상기 IPv6 헤더 처리 유닛은, 하위 계층과의 인터페이스를 위한 하위 계층 인터페이스 로직과, 상위 계층과의 인터페이스를 위한 상위 계층 인터페이스 로직과, IPv6 프로토콜의 기본 헤더를 처리하는 기능 블록과 IPv6 프로토콜의 확장 헤더를 처리하는 기능 블록을 포함하는 IPv6 헤더 처리 로직을 포함하고,
    상기 상위 계층 인터페이스 유닛은, 상기 IPv6 헤더 처리 유닛과의 인터페이스를 위한 인터페이스 로직과, 상위 계층과의 인터페이스를 담당하는 CPU 인터페이스 로직과, 응용 프로토콜과 명령과 데이터를 주고 받는 API 처리 로직을 포함하는 것을 특징으로 하는 IPv6 구현 장치.
KR10-2002-0034230A 2002-06-19 2002-06-19 IPv6 프로토콜 구현 장치와 이 장치에 사용되는 물리매체 인터페이스 유닛, IPv6 헤더 처리 유닛, 상위계층 인터페이스 유닛 KR100475969B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR10-2002-0034230A KR100475969B1 (ko) 2002-06-19 2002-06-19 IPv6 프로토콜 구현 장치와 이 장치에 사용되는 물리매체 인터페이스 유닛, IPv6 헤더 처리 유닛, 상위계층 인터페이스 유닛
PCT/KR2003/001195 WO2004002114A1 (en) 2002-06-19 2003-06-19 Apparatus for implementing ipv6 protocol and physical media interface unit, ipv6 header processing unit and upper layer interface unit suitable for use in such an apparatus
AU2003244234A AU2003244234A1 (en) 2002-06-19 2003-06-19 Apparatus for implementing ipv6 protocol and physical media interface unit, ipv6 header processing unit and upper layer interface unit suitable for use in such an apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0034230A KR100475969B1 (ko) 2002-06-19 2002-06-19 IPv6 프로토콜 구현 장치와 이 장치에 사용되는 물리매체 인터페이스 유닛, IPv6 헤더 처리 유닛, 상위계층 인터페이스 유닛

Publications (2)

Publication Number Publication Date
KR20020070180A true KR20020070180A (ko) 2002-09-05
KR100475969B1 KR100475969B1 (ko) 2005-03-17

Family

ID=27726905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0034230A KR100475969B1 (ko) 2002-06-19 2002-06-19 IPv6 프로토콜 구현 장치와 이 장치에 사용되는 물리매체 인터페이스 유닛, IPv6 헤더 처리 유닛, 상위계층 인터페이스 유닛

Country Status (3)

Country Link
KR (1) KR100475969B1 (ko)
AU (1) AU2003244234A1 (ko)
WO (1) WO2004002114A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100767394B1 (ko) * 2005-07-12 2007-10-18 아주대학교산학협력단 인터넷 프로토콜 버전6 기반의 저전력 무선 개인 영역네트워크에서 외부 인터넷 프로토콜 버전6 기반 네트워크와연동하기 위한 게이트웨이 및 이를 이용한 상호 연동 방법
US8451838B2 (en) 2006-12-04 2013-05-28 Electronics And Telecommunications Research Institute Apparatus and method for forwarding packet in packet switch system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005065630A1 (ja) * 2004-01-06 2005-07-21 Shiseido Co., Ltd. 一相マイクロエマルション組成物、o/w超微細エマルション外用剤、及びその製造方法
KR100666948B1 (ko) 2005-02-02 2007-01-10 삼성전자주식회사 아이피 버전 6 패킷 처리 장치 및 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2842530B2 (ja) * 1997-01-08 1999-01-06 日本電気株式会社 Atm vlanクライアント−サーバシステム
IL131595A0 (en) * 1998-08-28 2001-01-28 Nokia Oy Ab Internet protocol flow detection
JP2000201183A (ja) * 1999-01-08 2000-07-18 Sony Corp デ―タ送信方法
JP2001119399A (ja) * 1999-10-15 2001-04-27 Nec Commun Syst Ltd IPv6ネットワークシステム
EP1126678A1 (en) * 2000-02-16 2001-08-22 Lucent Technologies Inc. Privacy for mobile terminal in telecommunications network
JP4347497B2 (ja) * 2000-04-03 2009-10-21 株式会社日立製作所 通信制御装置及びパケット変換方法
JP2001326697A (ja) * 2000-05-17 2001-11-22 Hitachi Ltd 移動体通信網、端末装置、パケット通信制御方法、及び、関門装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100767394B1 (ko) * 2005-07-12 2007-10-18 아주대학교산학협력단 인터넷 프로토콜 버전6 기반의 저전력 무선 개인 영역네트워크에서 외부 인터넷 프로토콜 버전6 기반 네트워크와연동하기 위한 게이트웨이 및 이를 이용한 상호 연동 방법
US8451838B2 (en) 2006-12-04 2013-05-28 Electronics And Telecommunications Research Institute Apparatus and method for forwarding packet in packet switch system

Also Published As

Publication number Publication date
AU2003244234A1 (en) 2004-01-06
WO2004002114A1 (en) 2003-12-31
KR100475969B1 (ko) 2005-03-17

Similar Documents

Publication Publication Date Title
US7382749B2 (en) Systems, methods, and apparatus with a common wireless communications protocol
JP4230663B2 (ja) 無線通信ネットワークにおけるパケット・ヘッダの削減
US8036108B2 (en) Method and apparatus for providing gateway to transmit IPv6 packet in a wireless local area network system
US20030223433A1 (en) Internet protocol system using hardware protocol processing logic and parallel data processing method using the same
US7685287B2 (en) Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports
EP3846405B1 (en) Method for processing tcp message, toe assembly, and network device
TWI788627B (zh) 封包發送方法、封包接收方法以及相關設備
MXPA03003787A (es) Metodo para sincronizar y cargar una conexion de pila de red descargada con una pila de la red.
US7293113B1 (en) Data communication system with hardware protocol parser and method therefor
US20030182440A1 (en) Network processor with high-speed transceiver
US7969977B2 (en) Processing apparatus and method for processing IP packets
Pediredla et al. A 6LoWPAN implementation for memory constrained and power efficient wireless sensor nodes
US20060101090A1 (en) Method and system for reliable datagram tunnels for clusters
Harvan Connecting wireless sensor networks to the internet-a 6lowpan implementation for tinyos 2.0
US20030093540A1 (en) Proxy network layer protocol support in a wireless communication network
KR100475969B1 (ko) IPv6 프로토콜 구현 장치와 이 장치에 사용되는 물리매체 인터페이스 유닛, IPv6 헤더 처리 유닛, 상위계층 인터페이스 유닛
JP3618277B2 (ja) 通信プロトコル処理方法および通信プロトコル処理装置
KR20050044982A (ko) 패킷의 헤더를 압축하는 방법 및 그 장치
CN111917621A (zh) 通信设备的网管服务器与网元的通信方法及系统
US8583822B2 (en) Method and system for minimum frame size support for a communication protocol encapsulated over Ethernet
US7437548B1 (en) Network level protocol negotiation and operation
EP4009613A1 (en) Secure data connections in low data rate networks
CN115002833B (zh) 以太帧的发送方法、接收方法、装置、设备和介质
WO2024041064A1 (zh) Quic报文的传输方法及相关设备
CN114520839B (zh) 数据转发方法、控制器及数据转发设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130220

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140214

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150213

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160222

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170112

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20180307

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20200217

Year of fee payment: 16