KR20000022897A - 프로그래머블 네트워크 - Google Patents

프로그래머블 네트워크 Download PDF

Info

Publication number
KR20000022897A
KR20000022897A KR1019990037271A KR19990037271A KR20000022897A KR 20000022897 A KR20000022897 A KR 20000022897A KR 1019990037271 A KR1019990037271 A KR 1019990037271A KR 19990037271 A KR19990037271 A KR 19990037271A KR 20000022897 A KR20000022897 A KR 20000022897A
Authority
KR
South Korea
Prior art keywords
packet
network
communication
program
means
Prior art date
Application number
KR1019990037271A
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
Priority to JP10254228A priority Critical patent/JP2000092118A/ja
Priority to JP98-254228 priority
Application filed by 가나이 쓰토무, 가부시키가이샤 히타치세이사쿠쇼 filed Critical 가나이 쓰토무
Publication of KR20000022897A publication Critical patent/KR20000022897A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/24Flow control or congestion control depending on the type of traffic, e.g. priority or quality of service [QoS]
    • H04L47/2441Flow classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5619Network Node Interface, e.g. tandem connections, transit switching
    • H04L2012/562Routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
    • H04L2012/566Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly using the ATM layer
    • H04L2012/5662Macrocells or frames

Abstract

네트워크 노드에서 패킷 종별 판정 유닛의 판정에 의해, 소프트웨어 처리를 요하는 통신 패킷만을 플로우 대응 처리 프로그램 프로세서(20)에 전송하고, 그 이외는 루팅 프로세서(5)에 직접 전송한다. 또한 네트워크 경로상의 각 네트워크 노드에서 실행한 처리내용의 이력정보(140)를 네트워크 노드 사이에서 통신하고, 이력정보 축적 테이블(24)에 유지하며, 각 노드에서는 그것을 참조하며, 또한 소프트웨어 처리가 필요한 패킷만 플로우 대응 처리 프로그램 프로세서에 전송한다.

Description

프로그래머블 네트워크{PROGRAMMABLE NETWORK}

본 발명은 프로그래머블 네트워크에 관한 것으로, 복수의 계산기를 네트워크로 결합한 네트워크 시스템에 있어서, 통신 플로우의 경로상의 네트워크 노드에 프로그램을 로드하고, 그 통신 플로우를 구성하는 각 통신 패킷에 대한 프로그램 처리를 그 노드로 실행하는 시스템이다.

종래, 통신 데이터를 가공하여 전송하는 네트워크 시스템에 관해서는, 일본 공개특허 7-15609호 공보에 나타나 있는 바와 같이 동화상을 압축하여 웨이브 렛(wavelet) 영역마다 패킷화 하여 전송하는 방법이 알려져 있다. 이 발명에서는 화상 전송매체인 네트워크의 전송능력 및 화상 송신장치의 부호화 능력보다, 화상 수신측의 전송매체인 네트워크의 전송능력 및 화상 수신장치의 복호화 능력이 떨어지더라도, 후자의 능력에 따른 화상 전송을 행할 수 있는 화상 전송방법 및 화상 송신장치, 화상 수신장치 및 화상 전송장치를 제공한다. 화상 송신장치는 화상 데이터를 웨이브 렛 영역마다 패킷화 하고, 그 패킷에 소정의 식별자를 설정하여 송신한다. 또 화상 데이터를 전송하는 매체가 ATM(Asynchronous Transfer Mode)의 경우는 셀 헤더 내에 우선도를 부가하여 전송한다. 그리고, 화상 데이터를 전송하는 네트워크 상에서는 망의 폭주시에 우선도가 높은 셀을 우선적으로 전송한다. 화상 수진장치에서는 수신한 화상 데이터의 식별자를 기초로 화상 수신장치의 복호화 처리 능력에 따라 필요한 화상 데이터만을 선택하여 복호화를 행하는 것에 의해 수신측의 처리능력에 따른 화상 재생이 가능하다.

한편, "IEEE Communications Magazine", 1997년 1월호, 페이지 80 ~ 86 기재의 "A Survey df Active Network Research" 에 나타낸 바와 같이 네트워크를 구성하는 네트워크 노드에서 통신 패킷에 대한 프로그램 처리를 행하는 프로그래머블 네트워크가 알려져 있다. 프로그래머블 네트워크에서는 예를 들어 위에서 설명한 ATM에 의한 우선도가 부가된 전송을 네트워크 노드에 로드한 프로그램을 이용하여 소프트웨어적으로 행하는 것으로 실현한다. 이것에 의해 상기와 같은 시스템을 ATM이 가지는 QoS(Quality of Service) 제어기구를 가지지 않는 네트워크, 예를 들면 인터넷 등의 IP(Internet Protocol) 네트워크 상에서 실현하는 것이 가능하게 된다.

또한, IP 네트워크에 있어서는 네트워크 노드에서의 패킷의 통신 경로를 제어하는 루팅(routing) 처리를 전용 프로세서를 이용하여 고속화 하는 기술도 알려져 있다.

상기 종래 기술에서 설명한 프로그래머블 네트워크 시스템에 있어서는, 전체의 패킷에 대해서 네트워크 노드에 로드된 프로그램에 의해, 소프트웨어 처리가 이루어진다. 그 때문에, 네트워크 노드에는 소프트웨어 처리를 요하는 통신 패킷과 처리를 요하지 않는 통신 패킷이 혼재하여 입력됨에도 불구하고, 소프트웨어 처리가 일률적으로 행하여져 효율이 나쁘다.

본 발명의 목적은 각 네트워크상의 프로그램 노드상에서 통신 패킷의 소프트웨어 처리를 행하는 프로그래머블 네트워크에서, 통신 패킷에 대한 소프트웨어 처리의 실행을, 처리를 필요로 하는 패킷에만 한정하고, 처리를 필요로 하지 않는 패킷에 대해서는 소프트웨어 처리를 통하지 않고 루팅 전용 프로세서를 이용하여, 그것에 의해 통신 속도를 향상시켜 네트워크 시스템의 스루 풋(through put)을 향상시킬 수 있는 프로그래머블 네트워크를 제공하는 것에 있다.

또, 본 발명의 목적은 네트워크에서 관계하는 프로그램 노드에 동적 뿐아니라 효율적으로 프로그램을 로드하는 방법을 제공하는 것에 있다.

상기 목적을 달성하기 위한 네트워크를 구성하는 네트워크 노드로서, 통신 플로우에 대응하고 패킷에 대한 처리 프로그램을 실행하는 프로그램 프로세서와, 입력 패킷에 대하여 루팅 처리를 행하는 루팅 프로세서와, 입력 패킷을 해석하고 이 통신 플로우에 속하는 패킷을 프로그램 프로세서에 전송하며 그 이외의 패킷을 루팅 프로세서에 전송하는 패킷 종별 판정 유닛을 포함한다. 또한, 네트워크 노드는 패킷 처리 프로그램을 네트워크 경유로 수신하고 실행 가능한 상태로 하는 기능을 가진다.

도 1은 본 발명에 의한 프로그래머블 네트워크 시스템의 네트워크 노드의 구성을 나타내는 블록도,

도 2는 본 발명에 의한 프로그래머블 네트워크 시스템의 시스템 구성과 그 동작을 설명하기 위한 블록도,

도 3은 제1 실시예에 관한 통신 패킷(100)의 포맷을 나타내는 도면,

도 4는 도 3의 통신 패킷(100)에서 통신 데이터(120)가 플로우 대응 처리 프로그램일 때의 포맷을 나타내는 도면,

도 5는 도 3의 통신 패킷(100)에서 통신 데이터(120)가 이력정보(140) 일 때의 포맷을 나타내는 도면,

도 6은 제1 실시예에 관한 이력정보(140)의 포맷을 나타내는 모식도,

도 7은 제1 실시예에 관한 패킷처리 대상 플로우 식별 테이블(11)의 포맷을 나타내는 도면,

도 8은 이력정보 축적 테이블(24)의 포맷을 나타내는 도면,

도 9는 제1 실시예에 관한 플로우 대응 처리 프로그램 프로세서(20)내의 통신 패킷 송수신 유닛(21)의 동작을 나타내는 플로우 차트,

도 10은 제1의 실시예에 관한 플로우 대응 처리 프로그램 프로세서(20)내의 이력정보 갱신 유닛(22)의 동작을 나타내는 플로우 차트,

도 11은 제1 실시예에 관한 패킷 종별 판정 유닛(10)의 동작을 나타내는 플로우 차트,

도 12는 제2 실시예에 관한 통신 패킷(100)의 포맷을 나타내는 도면,

도 13은 제2 실시예에 관한 패킷처리 대상 플로우 식별 테이블(11)의 포맷을 나타내는 도면,

도 14는 제2 실시예에 관한 패킷 종별 판정수단(10)의 동작 내용을 나타내는 플로우 차트,

도 15는 본 발명에 의한 데이터 송신의 순서를 나타내는 시퀀스(sequence)도 이다.

(1) 시스템의 구성과 개요

도 2는 프로그래머블 네트워크 시스템의 시스템 구성예와 그 동작을 설명하기 위한 블록도 이다.

본 실시예의 프로그래머블 네트워크 시스템은 도 2에 나타내는 바와 같이 네트워크(2), 서버 계산기(50), 복수의 네트워크 노드(1), 네트워크 노드(51), 클라이언트 계산기(52)에 의해 구성된다.

네트워크는 인터넷 LAN 등이며, 네트워크 노드는 라우터나 게이트웨이 등의 네트워크 기기이다. 서버 계산기, 클라이언트 계산기의 수, 네트워크 노드의 수는 본 실시예에 한정되지 않는다.

또한, 네트워크 노드(1)가 복수인 경우는 노드 번호를 붙여(1 - 1, 1 - 2, ···) 표시하는 것으로 한다. 서버 계산기(50), 네트워크(2) 등에 대해서도 동일한 표기를 사용하는 것으로 한다.

서버 계산기(50 - 1)는 데이터의 일련의 흐름인 통신 플로우(60)를, 서버 계산기(50 - 2)는 통신 플로우(61)를 네트워크(2)에 각각 송출하는 경우를 상정한다.

네트워크 노드는 네트워크를 연결하기 위해서 복수 설치되어 있고, 종래의 네트워크 노드(51)와, 프로그래머블 네트워크 노드(1 - 1, 1 - 2)가 혼재하고 있다고 가정한다.

프로그래머블 네트워크 노드는 패킷 종별 판정 유닛(10), 플로우 대응 처리 프로그램 프로세서(20), 루팅 프로세서(5)를 가진다.

그리고, 네트워크 노드(1 - 1, 1 - 2)의 플로우 대응 처리 프로그램 실행 프로세서(20)에는 지금부터 송신하는 데이터 패킷에 대한 소프트웨어 처리를 실행하기 위해서, 서버 계산기(50 - 1)에서 미리 플로우 대응 처리 프로그램을 송신하고, 실행 가능한 상태로 해 둔다.

여기서, 통신 플로우(60)에 속하는 데이터 패킷이 플로우 대응 처리 프로그램의 대상이 되고, 통신 플로우(61)에 관해서는 플로우 대응 처리 프로그램의 대상이 되어 있지 않게 한다.

이 때, 네트워크 노드(1 - 1, 1 - 2)에서는 서버 계산기(50 - 1)에서 클라이언트 계산기(52)에의 통신 플로우(60)에 속하는 데이터 패킷에 대해서, 각각의 플로우 대응 처리 프로그램 프로세서(20)에서 프로그램 처리를 실시하도록, 각각의 패킷 종별 판정 유닛(10)이 데이터 패킷의 전송선(先)을 제어한다.(도 2의 굵은 선(60 - 10 ~ 60 - 13)을 참조)

한편, 서버 계산기(50 - 2)에서 클라이언트 계산기(52)에의 통신 플로우(61)에 속하는 패킷에 관해서는, 프로그램의 실행을 필요로 하지 않는 패킷이므로, 네트워크 노드(1 - 1, 1 - 2)에서 각각의 패킷 종별 판정 유닛(10)은 플로우 대응 처리 프로그램 프로세서(20)에 데이터 패킷을 전송하지 않고, 그대로 루팅 프로세서(5)에서 처리하도록 통신 패킷의 전송선(先)을 제어한다(도 2 파선(61 - 11 ~ 61 - 13)을 참조).

(2) 프로그래머블 네트워크

(제1 실시예)

다음에, 위에서 설명한 네트워크 노드 중에서 플로우 대응 처리 프로그램 프로세서(20)를 가지는 타입의 네트워크 노드의 구성을 설명한다.

도 1에 나타내는 바와 같이 본 실시예에 의한 네트워크 노드(1)는 네트워크 입력 인터페이스(3)와, 네트워크 출력 인터페이스(4)와, 루팅 프로세서(5)와 플로우 대응 처리 프로그램 프로세서(20)로 구성되어 있다. 그리고, 네트워크 입력 인터페이스(3)(3 - i, i = 1, ···, N)와, 네트워크 출력 인터페이스(4)(4 - i, i = 1, ···, N)는 N개의 네트워크(2)(2 - i, i = 1, ···, N)에 각각 입력과 출력을 위해 접속되어 있다.

네트워크 입력 인터페이스(3)에는 각각 패킷 종별 판정 유닛(10)이 설치되고, 거기에는 각각 패킷처리 대상 플로우 식별 테이블(11)이 유지되어 있다. 패킷처리 대상 플로우 식별 테이블(11)은 각각의 통신 플로우에 속하는 패킷을, 플로우 대응 처리 프로그램 프로세서(20)에 전송할지, 직접 루팅 프로세서(5)에 전송할지를 판정하기 위한 정보를 저장하기 위한 테이블이다.

플로우 대응 처리 프로그램 프로세서(20)는 CPU와 메모리에 의해서 구성되고 통신 패킷 송수신 유닛(21), 이력정보 갱신 유닛(22), 패킷처리 대상 플로우 식별 테이블 설정 유닛(23), 및 이력정보 축적 테이블(24)을 포함한다. 여기서, 패킷처리 대상 플로우 식별 테이블 설정 유닛(23)은 패킷처리 대상 플로우 식별 테이블(11)에 정보를 설정하는 기능을 가진다. 유닛(21, 22, 23)은 CPU에 의해 실행되는 소프트웨어에 의해서 실현된다. 플로우 대응 처리 프로그램도 메모리 위에 놓여져, 필요에 따라서 실행된다.

또, 루팅 프로세서(5)는 패킷의 루팅을 제어하는 부분이며, 루팅 처리 전용 프로세서 등에 의해 실시할 수 있다.

본 실시예에서는 서버 계산기(50)가 계층적으로 부호화된 화상 데이터(6 - 10)를 송출하는 경우를 예로 하여 설명한다.

서버 계산기(50)는 압축 데이터를 주파수 대역별로 각각의 패킷으로 송신한다. 프로그램 네트워크 노드에서는 요구에 따라서 고주파수 대역 데이터를 포함하는 패킷을 폐기하고, 다음 네트워크 노드 또는 클라이언트 계산기(52)에 남은 패킷을 전송한다. 서버 계산기(50)에서는 데이터 송신 전에 플로우 대응 처리 프로그램으로서 데이터 패킷의 주파수 대역을 체크하고, 데이터 패킷을 폐기할지 전송할지 의 판단을 하는 소프트웨어 프로그램이 네트워크 노드에 송신된다.

이 플로우 대응 처리 프로그램은 서버 계산기(50) 또는 클라이언트 계산기에서의 요구에 의해서, 및 접속 네트워크의 상황을 체크하여 그 네트워크 내에서 어느 대역의 데이터 패킷을 폐기할지 를 결정하여 기억하는 기능을 가진다. 여기서는 플로우 대응 처리 프로그램은 외부의 소프트웨어 프로그램으로부터의 맞춤에 따라 폐기 패킷 대역을 결정하고 외부의 소프트웨어 프로그램에 알리는 기능을 가지는 것으로 한다.

프로그래머블 네트워크 노드가 수신하는 패킷의 포맷을 도시 한다.

도 3에 나타내는 바와 같이 통신 패킷(100)은 통신 패킷의 수신처(宛先)정보 등을 저장하는 패킷 헤더부(110)와, 통신 데이터를 저장하는 패킷 데이터부(120)로 구성된다. 패킷 헤더부(110)는 통신 패킷의 전송되는 프로토콜의 종별 등을 식별하는 패킷 종별 식별자(111), 송신측 계산기를 특정하기 위한 송신 어드레스(112)와, 송신 포트(113), 수신측 계산기를 특정하기 위한 수신 어드레스(114)와, 수신 포트(115)로 구성된다. 여기서 자주 이용되고 있는 구체적인 프로토콜에 적용하면, 송신 어드레스(112), 수신 어드레스(114)는 IP(Internet Protocol)의 IP 어드레스가, 송신포트(113), 수신포트(115)는 TCP(Transmission Control Protocol)/UDP(User Datagram Protocol)의 포트 번호가 여기에 해당된다. 이들의 송수신 어드레스, 포트에 의해 통신 플로우가 식별된다.

통신 패킷(100)은 도 4에 나타내는 바와 같이 통신 데이터(120)가 플로우 대응 처리 프로그램(130)인 경우가 있다. 이것은 도 2에 나타낸 바와 같이 서버 계산기(50)가 네트워크 노드(1 - 1, 1 - 2)에 플로우 대응 처리 프로그램을 송신할 때의 통신 패킷의 포맷이다. 여기서, 플로우 대응 처리 프로그램(130)은 네트워크 노드(1)에서 실행 가능한 오브젝 모듈(object module), 텍스트 데이터로 기술된 스크립트, 자바언어에 의한 바이트 코드 등, 그 형태는 상관없다. 또, 플로우 대응 처리 프로그램(130)이 하나의 패킷(100)에 저장할 수 없는 길이인 경우, 복수의 통신 패킷(100)으로 분할하여 송신해도 된다. 도 4의 패킷은 플로우 대응 처리 프로그램(130)의 프로그램 모듈명을 포함해도 좋다.

또, 다른 통신 패킷(100)의 예로서는 도 5에 나타내는 바와 같이 통신 데이터(120)가 이력정보(140)인 경우가 있다. 이것은 도 2에 나타낸 바와 같이 네트워크 노드(1 - 1)가 1 - 2에 이력정보(140)를 송신할 때의 통신 패킷의 포맷이다. 여기서도, 이력정보(140)가 하나의 패킷(100)에 저장할 수 없는 길이인 경우에는, 복수의 통신 패킷(100)으로 분할하여 송신해도 좋다.

이력정보(140)는 예를 들어 도 6에 나타내는 형태를 생각할 수 있다. 이 예에 있어서는, 이력정보(140)는 각 주파수 대의 처리 실시 이력을 나타내는 "1" 또는 "0"의 비트 필드(141), 및 그 비트 정보(142)로 구성되어 있다. 상기의 계층 부호화한 화상정보를 전송하는 예의 경우, 주파수 대역을 K 단계로 구획하여, 가장 주파수 대역이 낮은 데이터를 저장한 패킷의 전송을 141 - 1에 할당하고, 주파수 대역이 높은 데이터를 저장한 패킷의 전송을 141 - K에 할당한다. 각 필드(142)에는 예를 들어 초기치 "1"을 기록해 두고, 플로우 대응 처리 프로그램 프로세서(20)에서 파기한 대역의 패킷에 해당하는 필드(142)에는 "0"을 기록한다. 여기서, 도 6에 나타낸 이력정보(140)는 비트 필드로 실시하는 형태를 갖지만, 이것은 예를 들어 텍스트 데이터로 기술된 스크립트 등을 이용하여 실시해도 좋다.

다음에, 패킷처리 대상 플로우 식별 테이블(11)의 포맷 예를 도 7에 나타낸다. 패킷처리 대상 플로우 식별 테이블(11)은 통신 플로우 식별정보(201)와, 패킷 전송처 식별자(202)에 의해서 구성된다.

통신 플로우 식별정보(201)는 송신 어드레스(212), 송신포트(213), 수신 어드레스(214), 수신 포트(215)에 의해 구성된다. 212 - 215는 각각 도 3에서 나타낸 패킷 헤더부(110) 내의 112 - 115의 정보에 상당한다. 패킷 전송처 식별자(202)에는 통신 패킷(100)의 전송처가 플로우 대응 처리 프로그램 프로세서(20)인가 루팅 프로세서(5)인가를 나타내는 식별자가 저장된다.

이 패킷처리 대상 플로우 식별 테이블(11)은 복수의 엔트리(210)로 구성된다. 여기서, 엔트리(210 - P)에서는 212 - 215의 정보에서 나타나는 통신 플로우를 구성하는 통신 패킷을 플로우 대응 처리 프로그램 프로세서(20)에 전송하는 것을 나타내고, 마찬가지로 엔트리(210 - R)에서는 통신 패킷을 루팅 프로세서(5)에 전송하는 것을 나타내고 있다. 이들의 엔트리(210)는 도 1에 나타내는 플로우 대응 처리 프로그램 프로세서(20)의 안에 있는 패킷처리 대상 플로우 식별 테이블 설정 유닛(23)에 의해서 설정되고, 네트워크 입력 인터페이스(3) 안에 있는 패킷 종별 판정 유닛(10)에 의해서 참조된다.

이력정보 축적 테이블(24)의 포맷 예를 도 8에 나타낸다. 이 예의 이력정보 축적 테이블(24)은 통신 플로우 식별정보(601)와 패킷마다 이력정보(603), 플로우 대응 처리 프로그램 식별정보(604)에 의해서 구성된다. 통신 플로우 식별정보(601)는 송신 어드레스(612), 송신 포트(613), 수신 어드레스(614), 수신 포트(615)에 의해 구성된다. 612 - 615는 각각 도 3에서 나타낸 112 - 115의 정보에 상당한다.

각 패킷의 이력정보(603)에는 도 6에 나타낸 이력정보(140)가 저장된다. 이 패킷마다 이력정보(603)가 재기록되는 타이밍은 도 5에 나타내는 이력정보(140)를 데이터로 하는 통신 패킷(100)이 네트워크 노드에 보내져 왔을 때던가, 또는 이력정보 갱신 유닛(22)이 현재 이 노드에서 실행해야 할 프로그램의 처리내용에 따라서 재기록할 때의 어느 하나이다.

플로우 대응 처리 프로그램 식별정보(604)에는 통신 패킷(100)을 처리하는 프로그램의 정보, 예를 들어 프로그램 명(名)이 저장된다. 이 플로우 대응 처리 프로그램 식별정보(604)가, 재기록되는 타이밍은 도 4에 나타내는 플로우 대응 처리 프로그램(130)을 데이터로 하는 통신 패킷(100)이 네트워크 노드에 보내져 왔을 때이다.

이력정보 축적 테이블(24)은 복수의 엔트리(610)로 구성된다. 여기서 엔트리(610 - 2)에서는 612 - 615의 정보로 나타내어지는 통신 플로우를 구성하는 통신 패킷을 플로우 대응 처리 프로그램 " ×××"로 처리하는 것을 나타내고, 마찬가지로 엔트리(610 - 3)에서는 "y y y"로 처리하는 것을 나타내고 있다.

우선 도 9의 순서를 따라서 플로우 대응 처리 프로그램 프로세서(20) 내의 통신 패킷 송수신 유닛(21)의 동작에 대해서 설명한다.

통신 패킷 송수신 유닛(21)은 패킷 종별 판정 유닛(10)에서 통신 패킷(100)을 받고(S401), 패킷 데이터부(120)에 저장된 데이터의 종별을 판별한다(S402).

데이터 종별은 패킷 헤더에 있는 패킷 종별 식별자(111)로부터 판정할 수 있도록 해도 좋다. 패킷 데이터부(120) 내의 정해진 위치에 데이터 종별을 나타내는 필드도 설치해도 좋다.

패킷 데이터부(120)에 플로루 대응처리 프로그램(130)이 저장되어 있는 경우에는 프로그램 모듈명을 판독함과 동시에 플로우 대응 처리 프로그램(130)이 실행 가능하게 되도록 프로그램을 주기억상에 로드한다(S403).

그리고, 도 8에 나타낸 이력정보 축적 테이블(24)에 엔트리를 등록하여, 통신 플로우 식별정보(601)와, 플로우 대응 처리 프로그램 식별정보(604)의 필드에 값을 설정한다(S404). 도 8에 나타낸 엔트리(610 - 2)의 예에서는 송신 어드레스가 A - 1, 송신 포트 P - 1, 수신 어드레스가 A - 2, 수신 포트가 P - 2에 속하는 통신 플로우에 대해서, 프로그램 모듈명이 " ×××"의 프로그램이 실행되기 위해서 설정된 것을 의미한다.

또 패킷처리 대상 플로우 식별 테이블 설정 유닛(23)에 의뢰하여 도 7에 나타낸 패킷처리 대상 플로우 식별 테이블(11)에도 동일한 엔트리(210 - P)를 설정한다(S411).

그리고, 프로그램을 포함하는 통신 패킷(100)을 루팅 프로세서(5)에 전송한다(S410). 판별의 결과, 패킷 데이터부(120)에 이력정보(140)가 저장되어 있는 경우에는 이력정보 축적 테이블(24)에 저장된 이력정보와 비교한다(S405).

비교의 결과 내용이 일치하고 있으면, 이미 이 이력정보는 축적되어 있다는 것이기 때문에, 이력정보 축적 테이블(24)을 재기록 할 필요가 없기 때문에 다음 스탭으로 이동한다.

그리고 이 통신 패킷에 요구되는 처리가 이미 전 노드에서 실행되고 있다는 것이다. 따라서, 패킷처리 대상 플로우 식별 테이블 설정 유닛(23)을 실행하여 이 통신 패킷과 통신 플로우 식별정보(201)가 일치하는 엔트리를 검색하고, 패킷처리 대상 플로우 식별 테이블(11)의 패킷 전송처 식별자(202)의 필드의 값이 「 플로우 대응 처리 프로그램 프로세서 」로 되어 있을 때에는 「 루팅 프로세서 」에 재기록한다(S409).

그리고, 루팅 프로세서(5)에 이력정보를 포함하는 통신 패킷을 전송한다(S410).

일치하고 있지 않을 경우에는, 이력정보 축적 테이블(24)을 보내져온 이력정보에 따라 갱신한다(S406). 갱신되는 것은, 그 통신 패킷이 나타내는 통신 플로우 식별정보를 가지는 엔트리이다.

패킷처리 대상 플로우 식별 테이블 설정 유닛(23)을 실행하여 패킷처리 대상 플로우 식별 테이블(11)을 갱신한다(S407).

갱신의 방식은 통신 패킷(100)으로 보내져온 이력정보(140)의 내용을 해석하여 행한다. 여기서, 도 8의 이력정보 축적 테이블(24)의 엔트리(610 - 2)의 엔트리를 예로서 설명한다.

예를 들어, 이 엔트리의 통신 플로우에 속하는 통신 패킷에서 이력정보(140)가, 「 "1", "1", "1",···」로 보내져 왔다고 한다. 이 경우 , 3번째에 대응하는 주파수 대역이 "0"에서 "1"로 변하고, 앞의 노드에서 프로그램 처리를 하지 않은 것을 의미한다. 이 네트워크 노드에서 처리하기 위해 패킷처리 대상 플로우 식별 테이블(11)의 통신 플로우 식별정보가 일치하는 엔트리의 패킷 전송처 식별자(202)가 「 루팅 프로세서 」로 되어 있는 경우에는 「 플로우 대응 처리 프로그램 실행 프로세서 」로 재기록된다.

반대로, 이 엔트리의 통신 플로우에 속하는 통신 패킷에서, 이력정보(140)가, 「 "1", "0", "0", ···」 인것이 보내져 왔다고 한다. 이 경우 2번째에 대응하는 주파수 대역이 "1"에서 "0"으로 변하고, 앞의 노드에서 프로그램 처리를 하도록 되었다는 것이다. 따라서, 이 경우에는 이미 2번째의 주파수 대역은 처리할 필요가 없어졌기 때문에, 패킷처리 대상 플로우 식별 테이블(11)의 통신 플로우 식별정보가 일치하는 엔트리의 패킷 전송처 식별자(202)가 「 플로우 대응 처리 프로그램 프로세서 」로 되어 있는 경우에는 「 루팅 프로세서 」로 재기록된다.

그리고 이력정보를 포함하는 통신 패킷(100)을 루팅 프로세서(5)에 전송한다(S410). 이것에 의해서 다음의 노드에도 이력정보가 전하여진다.

통신 데이터(120)가 도 4에 나타내는 바와 같이 플로우 대응 처리 프로그램(130)에서도, 도 5에 나타내는 바와 같이 이력정보에서도 없을 때에는, 이것은 프로그램의 실행 대상이 되는 데이터이다. 이 경우에는 이 통신 패킷(100)에 대해 플로우 대응 처리 프로그램이 실행되고(S408), 그 후 통신 패킷(100)은 루팅 프로세서(15)에 전송된다(S410).

마지막 스탭(409)의 처리가 끝나면, 스탭(401)으로 되돌아가고 패킷 종별 판정 유닛(10)으로부터의 통신 패킷(100)을 기다리게 된다.

다음에, 도 10의 순서를 따라 플로우 대응 처리 프로그램 프로세서(20) 내의 이력정보 갱신 유닛(22)의 동작 내용에 대해서 설명한다.

이 처리를 실행하는 타이밍은 예를 들어 통신 패킷을 송출하는 네트워크(2)의 트래픽(traffic)상황이 변화된 경우나, 클라이언트 계산기(52) 또는 서버 계산기(50)로부터의 통지를 받은 경우, 또 정시간마다 정기적으로 실행하도록 해도 좋다.

우선, 이력정보 갱신 유닛(22)은 플로우 대응 처리 프로그램으로 현재의 이력정보를 알리고 처리 내용을 맞춘다(S501). 이것에 응답하여 플로우 대응 처리 프로그램은 현 시점의 네트워크의 혼잡 상황 등을 체크하고, 어느 프로그램 처리를 이 노드로 하면 좋은가를 결정하여 이력정보 갱신 유닛에 알린다.

여기서도, 도 8의 이력정보 축적 테이블(24)의 엔트리(610 - 2)의 엔트리를 예로 하여 설명한다.

지금 플로우 대응 처리 프로그램이 네트워크의 트래픽을 감소하기 위해, 3번째의 주파수 대역에 대해서, 프로그램 처리를 해야한다고 판정했다 고 한다. 이 경우, 도 8의 패킷마다 이력정보(603)의 엔트리를 보면, 3번째의 주파수 대역에서는 이미 프로그램 처리가 되어 있다는 것이기 때문에 아무 것도 하지 않고 종료한다.

또 다른 경우로서, 플로우 대응 처리 프로그램이 2번째의 주파수 대역에 대해서, 프로그램 처리를 해야한다고 판정했다고 한다. 이 경우, 도 8의 패킷마다 이력정보(603)의 엔트리를 보면, 2번째의 주파수 대역에서는 아직 프로그램 처리는 되어 있지 않다.

따라서, 이 경우에는 이력정보 갱신 유닛은 이력정보 축적 테이블(24)의 해당하는 엔트리(610 - 2)의 패킷마다 이력정보(603)의 값을 「 "1", "0", "0", ··· 」로 재기록된다(S503).

그리고, 이 네트워크 노드에서 처리하기 위해, 패킷처리 대상 플로우 식별 테이블(11)의 통신 플로우 식별정보가 일치하는 엔트리의 패킷 전송처 식별자(202)가 「 루팅 프로세서 」 로 되어 있는 경우에는, 「 플로우 대응 처리 프로그램 프로세서 」로 재기록된다(S504).

다음에, 이력정보(140)로서 「 "1", "0", "0", ··· 」의 값을 가지는 이력정보 패킷(100)을 생성하고 루팅 프로세서(5)에 전송하며, 다음의 노드에 이 이력정보를 전한다(S505).

그리고, 처리를 끝낸다.

마지막으로 도 11의 순서를 따라 패킷 종별 판정 유닛(10)의 동작에 대해서 설명한다.

패킷 종별 판정 유닛(10)은 먼저, 네트워크(2)에서 통신 패킷(100)을 수신한다(S301). 다음에 통신 패킷의 종별을 나타내는 패킷 종별 식별자(111)를 판독하고(S302), 그 통신 패킷(100)이 플로우 대응 처리 프로그램(130)의 처리대상이 되는 통신 패킷인지 아닌지를 판정한다(S303).

어느 패킷 종별이 플로우 대응 처리 프로그램의 대상이 되는가는 미리 결정하여 둔다. 또는 패킷처리 대상 플로우 식별 테이블(11) 내에 패킷 종별 식별자와 플로우 대응 처리 프로그램의 대상인지 아닌지를 나타내는 프래그(flag)의 대응표를 설치하여 그 표에 의거하여 결정되어도 좋다.

여기서, 통신 패킷(100)이 플로우 대응 처리 프로그램(130)의 처리대상이 아니라고 판정되었을 경우에는, 통신 패킷(100)을 루팅 프로세서(5)에 전송하고(S304), 스탭(301)으로 되돌아가며 다음의 통신 패킷의 수신을 기다린다.

통신 패킷(100)이 플로우 대응 처리 프로그램(130)의 처리대상이라고 판정된 경우에는, 패킷 헤더부(110)에서 송신 어드레스(112), 송신 포트(113), 수신 어드레스(114), 수신 포트(115)를 판독하고(S305), 스탭(306)에서 패킷처리 대상 플로우 식별 테이블(11)의 통신 플로우 식별정보(201)를 검색하고, 해당하는 엔트리(210)를 찾는다(S306).

해당하는 엔트리(210)가 발견되지 않았을 경우에는 그대로 통신 패킷(100)을 플로우 대응 처리 프로그램 프로세서(20)에 전송한다(S307). 그리고, 스탭(301)으로 되돌아가며 다음의 통신 패킷의 수신을 기다린다.

해당하는 엔트리(210)가 발견되고, 더구나 통신 패킷이 데이터 패킷인 경우, 그 엔트리의 패킷 전송처 식별자(202)의 내용에 따라, 그것이 「 플로우 대응 처리 프로그램 프로세서 」인 경우에는, 플로우 대응 처리 프로그램 프로세서(20)에 패킷을 전송하고(S307), 「 루팅 프로세서 」인 경우에는, 루팅 프로세서(5)에 패킷을 전송한다.

해당하는 엔트리(210)가 발견 되었지만, 통신 패킷이 데이터 패킷이 아닌 경우, 플로우 대응 처리 프로그램 프로세서(20)에 패킷 전송한다(S307).

이 엔트리의 패킷 전송처 식별자(202)의 내용은 도 9와 도 10에서 설명한 알고리즘으로 설정된 것이다.

(3) 데이터의 송신

데이터 송신의 일련의 순서를 도 15를 사용하여 설명한다. 도 15의 서버(50 - 1), 노드(50, 1 - 1, 1 - 2), 클라이언트(52)는 도 2 내의 요소에 각각 대응한다. 서버(50 - 1)에서 클라이언트(52)에 데이터를 송신하는 예를 설명한다.

우선, 서버(50 - 1)는 클라이언트에 플로우 대응 처리 프로그램을 도 4에 나타낸 포맷의 패킷으로 송신한다(1501). 종래형의 네트워크 노드(50)는 수신 패킷을 다음의 수신처(宛先)에 전송한다. 프로그래머블 네트워크 노드(1 - 1, 1 - 2)는 각각 패킷 내의 플로우 대응 처리 프로그램을 주 메모리에 로드하고, 이력정보 축적 테이블(24)과 패킷처리 대상 플로우 식별 테이블(11)에 그 송수신 어드레스·포트를 등록한 상태에서 다음의 수신처에 패킷을 전송한다. 클라이언트(52)는 프로그램을 포함하는 패킷을 폐기한다.

다음에 서버(50 - 1)는 클라이언트에 데이터를 도 3에 나타낸 포맷의 패킷으로 송신한다(1502). 종래형의 네트워크 노드(50)는 수신 패킷을 다음의 수신처에 전송한다. 프로그래머블 네트워크 노드(1 - 1, 1 - 2)는 이미 로드되어 있는 플로우 대응 처리 프로그램으로 수신 패킷 내의 데이터를 처리하고, 다음의 수신처에 패킷을 전송한다. 클라이언트(52)는 노드(1 - 1, 1 - 2)에서 처리된 데이터를 수신한다.

노드(1 - 1), 노드(1 - 2)의 사이의 네트워크가 폭주하고 있다고 한다. 노드(1 - 1)는 플로우 대응 처리 프로그램과 협동하여 처리 내용을 변경하고, 이력정보 축적 테이블(24)과(필요하면), 패킷처리 대상 플로우 식별 테이블(11)을 갱신한다. 또한, 그 통신 플로우 식별정보 내의 송수신 어드레스·포트를 사용하여 이력정보를 포함하는 도 5에 나타낸 포맷을 작성하고, 다음의 수신처에 송신한다(1503). 노드(1 - 2)는 이력정보 패킷을 수신하면 필요에 따라서 이력정보 축적 테이블(24)과 패킷처리 대상 플로우 식별 테이블(11)을 갱신한다. 클라이언트(52)는 이력정보를 폐기한다.

다시, 서버(50-1)가 데이터의 송신을 재개한다(1504). 도 15의 예에서는 노드(1 - 2)는 데이터를 프로그램으로 처리하는 것을 멈추고, 클라이언트(52)에 전송하고 있다. 이것은 1503으로 이력정보에 의해 패킷처리 대상 플로우 식별 테이블(11)이 재기록되었기 때문이다.

서버(50 - 1)가 최종 데이터 또는 데이터 송신 종료를 알리는 패킷을 클라이언트(52)에 송신한다(1505). 노드(1 - 1, 1 - 2)는 최종 데이터를 다음 수신처에 전송한 후에 메모리상의 플로우 대응 처리 프로그램을 소거하고, 패킷처리 대상 플로우 식별 테이블(11)과 이력정보 축적 테이블(24)의 그 플로우에 대응하는 엔트리를 소거하고 있다.

이들의 순서 때문에 프로토콜은 예를 들어 TCP를 이용한다.

(4) 프로그래머블 네트워크 노드

(제2 실시예)

제2 실시예를 설명한다. 도 12에 나타내는 바와 같이 제2 실시예의 통신 패킷(100)은 실시예1의 것과 거의 동일하지만, 패킷 헤더부(110)의 마지막 끝에 패킷마다 이력정보(140)가 부가되어 있는 점이 다르게 되어 있다. 이 패킷마다 이력정보(140)는 프로그램 프로세서에 의해, 처리가 되었을 때 그 이력으로서 갱신되는 것이다.

또, 도 13에 나타내는 제2의 실시예의 패킷처리 대상 플로우 식별 테이블(11)은 실시예1과 다르게, 최후 필드가 패킷마다 이력정보(203)로 되어 있다. 이것은 통신 플로우 식별정보(201)에 속하는 통신 패킷이 패킷마다 이력정보(203)의 내용에 따라 처리되는 것을 나타내고 있다. 이것에 의해, 통신 패킷(100)의 패킷마다 이력정보(140)와 매칭을 취하고, 그 전송처를 결정하려고 하는 것이다. 그 밖의 구성요소는 실시예1의 도 7에서 나타낸 것과 동일하다.

도 14는 본 발명의 제2 실시예의 패킷 종별 판정 유닛(10)의 동작 내용을 나타내는 플로우차트이다.

패킷 종별 판정 유닛(10)은 우선, 네트워크(2)에서 통신 패킷(100)을 수신한다(S701). 다음에 통신 패킷의 종별을 나타내는 패킷 종별 식별자(111)를 판독하고(S702), 그 통신 패킷(100)이 플로우 대응 처리 프로그램(130)의 처리대상이 되는 통신 패킷인지 아닌지를 판정한다(S703).

여기서, 통신 패킷(100)이 플로우 대응 처리 프로그램(130)의 처리대상이 아니라고 판정된 경우에는, 통신 패킷(100)을 루팅 프로세서(5)에 전송하고(S704), 스탭(701)으로 되돌아가며 다음의 통신 패킷의 수신을 기다린다.

통신 패킷(100)이 플로우 대응 처리 프로그램(130)의 처리대상이라고 판정된 경우에는, 패킷 헤더부(110)에서 송신 어드레스(112), 송신 포트(113), 수신 어드레스(114), 수신 포트(115)를 판독하고(S705), 스탭(706)에서 패킷처리 대상 플로우 식별 테이블(11)의 통신 플로우 식별정보(201)를 검색하고, 해당하는 엔트리(220)를 찾는다(S706).

해당하는 엔트리(220)가 발견되지 않은 경우에는, 그 대로 통신 패킷(100)을 플로우 대응 처리 프로그램 프로세서(20)에 전송한다(S707). 그리고, 스탭(701)으로 되돌아가며 다음의 통신 패킷의 수신을 기다린다.

지금까지의 처리는 실시예1과 동일함에 주의하여 실행한다.

해당하는 엔트리(220)가 발견되었을 경우에는 통신 패킷(100)의 패킷마다 이력정보(140)를 판독하고(S710), 패킷처리 대상 플로우 식별 테이블(11)의 필드인 패킷마다 이력정보(203)와 비교한다(S710).

일치하는 경우에는, 그 처리는 그 통신 패킷에 관하여 이미 실시 완료되었다는 것이기 때문에, 그 대로 루팅 프로세서(5)에 전송한다(S704).

일치하지 않을 경우에는, 플로우 대응 처리 프로그램 프로세서(20)에 패킷을 전송하여(S707), 프로그램 처리를 행한다. 이 도 14의 예에서는 이력정보가 일치하지 않을 때에는 일률적으로 프로그램 처리가 필요하다고 간주하여 플로우 대응 처리 프로그램 프로세서(20)에 패킷을 전송하고 있다.

이 실시형태에서는 이력정보 축적 테이블(24) 및 테이블 조작처리가 필요없게 되기 때문에 알고리즘이 간이화되고, 네트워크 노드의 구성도 간략하게 되는 이점이 있다.

(5) 변형예

도 15의 예에서는 프로그램 송신과 데이터송신이 연속하여 행하여지고 있다. 프로그램 송신시에 패킷처리 대상 플로우 식별 테이블(11)과 이력정보 축적 테이블(24)로의 플로우 등록을 행하고, 데이터 송신 종료시에 테이블로부터의 플로우 삭제 및 프로그램의 삭제를 행하고 있다. 그러나, 프로그램 송신과 데이터 송신은 각각 다른 타이밍으로 행하여도 좋다. 테이블에의 플로우의 등록 및 삭제, 프로그램의 삭제는 서버가 지시 커맨드를 포함하는 패킷을 송신하고, 프로그래머블 네트워크 노드가 그 패킷을 수신하며, 커맨드를 실행하는 것에 의해서 행하여도 좋다.

실시예에서는 이력정보로서 주파수 대역마다 패킷 처리 상황을 나타내는 비트맵을 사용했다. 그러나 이력정보는 플로우 대응 처리 프로그램의 처리내용에 따라서 여러가지 형태로 변화한다.

도 1에 나타낸 실시예에 있어서는 본 발명에 의한 패킷 종별 판정 유닛(10)을 각각의 네트워크 입력 인터페이스(3) 안에 설치하고 있었지만, 그 패킷 종별 판정 유닛(10)은 루팅 프로세서(5) 안에 하나만 설치하여 실시하여도 좋다. 이 경우 네트워크 입력 인터페이스(3)는 수신한 통신 패킷을 전체 루팅 프로세서(5)에 전송한다. 루팅 프로세서(5)에서는 받아들인 통신 패킷을 플로우 대응 처리 프로그램 프로세서(20)에 전송할지 여부룰 루팅 프로세서(5) 안에 있는 패킷 종별 판정 유닛(10)을 이용하여 판정하고, 필요한 패킷만을 플로우 대응 처리 프로그램 프로세서(20)에 전송하고, 그 밖의 통신 패킷은 그대로 각 네트워크 출력 인터페이스(4)에 송출한다.

본 발명에 의하면, 각 네트워크상의 프로그램 노드상에서 통신 패킷의 소프트웨어 처리를 행하는 프로그래머블 네트워크에서, 통신 패킷에 대한 소프트웨어 처리의 실행을, 처리를 필요로 하는 패킷에만 한정하고, 처리를 필요로 하지 않는 패킷에 대해서는, 소프트웨어 처리를 통하지 않고 루팅 전용 프로세서를 이용하여, 그것에 의해 통신 속도를 향상시키고, 네트워크 시스템의 스루 풋을 향상시킬 수 있는 프로그래머블 네트워크를 제공할 수 있다.

Claims (13)

  1. 네트워크 노드를 포함하는 네트워크로서,
    상기 네트워크 노드의 적어도 하나는,
    통신 플로우에 대응하고 패킷에 대한 처리 프로그램을 실행하는 프로그램 실행수단과,
    입력 패킷에 대하여 루팅(routing) 처리를 행하는 루팅 수단과,
    입력 패킷을 해석하고, 이 통신 플로우에 속하는 패킷을 상기 프로그램 실행수단에 전송하고, 그 이외의 패킷을 상기 루팅 수단에 전송하는 패킷 종별 판정수단을 포함하는 것을 특징으로 하는 네트워크.
  2. 제 1 항에 있어서,
    상기 네트워크 노드의 프로그램 실행수단은, 패킷 처리 프로그램을 네트워크 경유로 수신하고 실시 가능한 상태로 하는 것을 특징으로 하는 네트워크.
  3. 제 1 항에 있어서,
    상기 네트워크 노드의 상기 패킷 종별 판정 수단은, 통신 플로우와 상기 처리 프로그램의 대응 테이블을 포함하고, 이 테이블에 의거하여 패킷 전송을 행하는 것을 특징으로 하는 네트워크.
  4. 상기 패킷 종별 판정 수단은,
    그 통신 플로우의 통신 경로상의 다른 네트워크 노드에 의해서, 이미 실행되어 있는 패킷 처리의 이력정보를 유지하는 이력정보 축적수단과,
    상기 네트워크 노드 사이에서 처리 내용의 이력정보를 통지하는 수단을 더 가지고,
    이 패킷 종별 판정수단은,
    이 네트워크 노드에 통신 패킷이 도착하면,
    상기 이력정보 축적수단을 참조하고,
    그 통신 패킷에 속하는 통신 플로우에 대해서, 그 네트워크 노드에서 실행되어야 하는 처리가 미실시(未實施)인 경우만, 그 통신 패킷을 상기 프로그램 실행수단에 전송하고,
    그 이외의 경우에는 상기 루팅 수단에 전송하는 것을 특징으로 하는 네트워크.
  5. 이 네트워크에 이용되는 각 통신 패킷은, 네트워크 경로상에서 이미 실행되어 있는 패킷 처리의 이력정보를 유지하는 필드를 가지고,
    상기 네트워크 노드는 프로그램 처리를 행하였을 때에, 상기 필드를 갱신하고,
    상기 패킷 종별 판정 수단은,
    그 네트워크 노드에 통신 패킷이 도착하면 상기 필드를 참조하고,
    그 통신 패킷에 속하는 통신 플로우에 대해서, 그 네트워크 노드에서 실행되는 처리가 미실시인 경우에만, 그 통신 패킷을 상기 프로그램 실행수단에 전송하고,
    그 이외의 경우에는 상기 루팅 수단에 전송하는 것을 특징으로 하는 네트워크.
  6. 네트워크를 구성하는 네트워크 노드로서,
    통신 플로우에 대응하고 패킷에 대한 처리 프로그램을 실행하는 프로그램 실행수단과,
    입력 패킷에 대해서 루팅 처리를 행하는 루팅 수단과,
    입력 패킷을 해석하고 이 통신 플로우에 속하는 패킷을 상기 프로그램 실행수단에 전송하고, 그 이외의 패킷을 상기 루팅 수단에 전송하는 패킷 종별 판정수단을 포함하는 것을 특징으로 하는 네트워크.
  7. 제 6 항에 있어서,
    상기 프로그램 실행수단은 패킷 처리 프로그램을 네트워크 경유로 수신하고 실행 가능한 상태로 하는 것을 특징으로 하는 네트워크.
  8. 제 6 항에 있어서,
    상기 패킷 종별 판정수단은 통신 플로우와 상기 처리 프로그램의 대응 테이블을 포함하고, 그 테이블에 의거하여 패킷 전송을 행하는 것을 특징으로 하는 네트워크.
  9. 상기 패킷 종별 판정수단은,
    그 통신 플로우의 통신 경로상의 다른 네트워크 노드에 의해서, 이미 실행되어 있는 패킷 처리의 이력정보를 유지하는 이력정보 축적 수단과,
    상기 네트워크 노드 사이에서 처리 내용의 이력정보를 통지하는 수단을 더 가지고,
    상기 패킷 종별 판정 수단은,
    이 네트워크 노드에 통신 패킷이 도착하면, 상기 이력정보 축적 수단을 참조하고,
    그 통신 패킷에 속하는 통신 플로우에 대해서, 그 네트워크 노드에서 실행되는 처리가 미 실시인 경우에만, 그 통신 패킷을 상기 프로그램 실행수단에 전송하고,
    그 이외의 경우에는 상기 루팅 수단에 전송하는 것을 특징으로 하는 네트워크.
  10. 네트워크를 구성하는 네트워크 노드에서의 패킷 처리방법으로서,
    통신 플로우에 대응하여 패킷에 대한 처리 프로그램을 미리 실행 가능한 상태로 하여 두고,
    입력 패킷을 해석하고, 통신 플로우에 속하는 패킷을 상기 패킷 처리 프로그램에 입력하고, 그 이외의 패킷에 대해서 루팅 처리를 행하는 것을 특징으로 하는 네트워크.
  11. 제 10 항에 기재된, 네트워크 노드에서의 패킷 처리 방법으로서,
    상기 패킷 처리 프로그램을 네트워크 경유로 수신하고, 통신 플로우와 패킷 처리 프로그램의 대응관계를 기억하는 것을 특징으로 하는 네트워크.
  12. 네트워크를 구성하는 네트워크 노드에서의 패킷 처리방법을 기억하는 매체로서, 그 패킷 처리방법은,
    상기 패킷 처리 프로그램을 네트워크 경유로 수신하고, 통신 플로우와 패킷 처리 프로그램의 대응관계를 기억하고,
    통신 플로우에 대응하여 패킷에 대한 처리 프로그램을 미리 실행 가능한 상태로 하고,
    입력 패킷을 해석하고, 통신 플로우에 속하는 패킷을 상기 패킷 처리 프로그램에 입력하고, 그 이외의 패킷에 대해 루팅 처리를 행하는 것을 특징으로 하는 네트워크.
  13. 네트워크 노드와 계산기를 포함하는 네트워크에서 데이터를 송신하는 방법으로서,
    송신 계산기에서 수신 계산기에, 통신 플로우에 대응하는 패킷 처리 프로그램을 송신하고,
    송신 계산기에서 수신 계산기의 루트(route)상의 프로그래머블 네트워크 노드가 패킷 처리 프로그램을 수신하여 실행 가능한 상태로 하고, 통신 플로우와 그 패킷 처리 프로그램과의 관계를 기억하고,
    송신 계산기에서 수신 계산기에 통신 플로우에 속하는 데이터 패킷을 송신하고,
    상기 프로그래머블 네트워크 노드는 입력 데이터 패킷을 해석하고, 그 통신 플로우에 속하는 패킷을 상기 패킷 처리 프로그램에 입력하는 것을 특징으로 하는 네트워크.
KR1019990037271A 1998-09-08 1999-09-03 프로그래머블 네트워크 KR20000022897A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10254228A JP2000092118A (ja) 1998-09-08 1998-09-08 プログラマブルネットワーク
JP98-254228 1998-09-08

Publications (1)

Publication Number Publication Date
KR20000022897A true KR20000022897A (ko) 2000-04-25

Family

ID=17262051

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990037271A KR20000022897A (ko) 1998-09-08 1999-09-03 프로그래머블 네트워크

Country Status (5)

Country Link
US (3) US6262983B1 (ko)
EP (1) EP0986220A3 (ko)
JP (1) JP2000092118A (ko)
KR (1) KR20000022897A (ko)
CA (1) CA2281321A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2339368A (en) * 1998-07-08 2000-01-19 Ibm Data communications protocol with efficient packing of datagrams
JP2000092118A (ja) * 1998-09-08 2000-03-31 Hitachi Ltd プログラマブルネットワーク
JP3645735B2 (ja) * 1999-02-24 2005-05-11 株式会社日立インフォメーションテクノロジー ネットワーク中継装置及びネットワーク中継方法
US6604147B1 (en) * 2000-05-09 2003-08-05 Lucent Technologies Inc. Scalable IP edge router
US7075926B2 (en) * 2000-05-24 2006-07-11 Alcatel Internetworking, Inc. (Pe) Programmable packet processor with flow resolution logic
US20020154646A1 (en) * 2001-03-21 2002-10-24 Dubois Jean F. Programmable network services node
US7246173B2 (en) * 2001-04-16 2007-07-17 Nokia Corporation Method and apparatus for classifying IP data
US20020188732A1 (en) * 2001-06-06 2002-12-12 Buckman Charles R. System and method for allocating bandwidth across a network
US7095715B2 (en) 2001-07-02 2006-08-22 3Com Corporation System and method for processing network packet flows
US20030033519A1 (en) * 2001-08-13 2003-02-13 Tippingpoint Technologies,Inc. System and method for programming network nodes
US7142509B1 (en) * 2001-09-12 2006-11-28 Extreme Networks Method and apparatus providing for delivery of streaming media
AUPR893201A0 (en) * 2001-11-16 2001-12-13 Telstra New Wave Pty Ltd Active networks
US7239639B2 (en) * 2001-12-27 2007-07-03 3Com Corporation System and method for dynamically constructing packet classification rules
US7650634B2 (en) 2002-02-08 2010-01-19 Juniper Networks, Inc. Intelligent integrated network security device
US7512129B1 (en) * 2002-02-19 2009-03-31 Redback Networks Inc. Method and apparatus for implementing a switching unit including a bypass path
AT323360T (de) * 2002-04-03 2006-04-15 Cit Alcatel Verfahren und vorrichtungen zur umordnung von paketen in einem netzwerkprozessor
EP1365546B1 (en) * 2002-05-21 2005-12-14 Hitachi Europe Limited Programmable network node for performing multiple processes
KR100497357B1 (ko) * 2002-06-26 2005-06-23 삼성전자주식회사 인터넷 프로토콜 기반 네트워크 환경에 있어서 헤더 압축및 패킷 다중화 장치와 그 방법
KR100560424B1 (ko) * 2003-11-05 2006-03-13 한국전자통신연구원 접근이 제한되는 고비도 검증키를 갖는 변형된 디지털서명을 이용한 안전한 프로그래머블 패킷 전송 방법
IL163092A (en) * 2004-07-19 2010-11-30 Veraz Networks Ltd Processing of packets forwarded in communication networks
JP4514623B2 (ja) * 2005-02-25 2010-07-28 パナソニック株式会社 情報処理システム、情報処理装置、サーバ装置、及び情報処理方法
JP4597705B2 (ja) * 2005-02-25 2010-12-15 パナソニック株式会社 情報処理システム、情報処理装置、サーバ装置、及び情報処理方法
US7889734B1 (en) * 2005-04-05 2011-02-15 Oracle America, Inc. Method and apparatus for arbitrarily mapping functions to preassigned processing entities in a network system
KR100530856B1 (ko) * 2005-05-11 2005-11-17 (주) 위즈네트 임베디드 시스템을 위한 고속 데이터 처리 기능을 가지는통신방법 및 그 장치
JP4665639B2 (ja) * 2005-07-19 2011-04-06 日本電気株式会社 通信品質監視システム、通信品質監視装置、通信品質劣化箇所特定装置、その装置における方法及びプログラム
US7746862B1 (en) * 2005-08-02 2010-06-29 Juniper Networks, Inc. Packet processing in a multiple processor system
US8028337B1 (en) 2005-08-30 2011-09-27 Sprint Communications Company L.P. Profile-aware filtering of network traffic
US8204974B1 (en) * 2005-08-30 2012-06-19 Sprint Communications Company L.P. Identifying significant behaviors within network traffic
US8149732B1 (en) * 2005-09-23 2012-04-03 Chicago Mercantile Exchange, Inc. Clearing message broker system
US10554534B1 (en) 2005-09-23 2020-02-04 Chicago Mercantile Exchange Inc. Clearing message broker system messaging gateway
US9325951B2 (en) 2008-03-03 2016-04-26 Avigilon Patent Holding 2 Corporation Content-aware computer networking devices with video analytics for reducing video storage and video communication bandwidth requirements of a video surveillance network camera system
JP5307792B2 (ja) * 2010-12-24 2013-10-02 株式会社エヌ・ティ・ティ・ドコモ 通信制御システム及び通信制御方法
KR101883892B1 (ko) * 2011-10-13 2018-08-01 한국전자통신연구원 통신 시스템에서 데이터 송수신 장치 및 방법
US10341241B2 (en) * 2016-11-10 2019-07-02 Hughes Network Systems, Llc History-based classification of traffic into QoS class with self-update

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0715609A (ja) 1993-06-17 1995-01-17 Toshiba Corp 画像伝送方法並びに画像送信装置、画像受信装置および画像伝送装置
US5619501A (en) * 1994-04-22 1997-04-08 Thomson Consumer Electronics, Inc. Conditional access filter as for a packet video signal inverse transport system
US5563648A (en) * 1994-04-28 1996-10-08 Thomson Consumer Electronics, Inc. Method for controlling execution of an audio video interactive program
US5473609A (en) * 1994-05-26 1995-12-05 Thomson Consumer Electronics, Inc. Method and apparatus for processing a conditional access program guide as for a satellite TV service
US5666293A (en) * 1994-05-27 1997-09-09 Bell Atlantic Network Services, Inc. Downloading operating system software through a broadcast channel
JP3420664B2 (ja) * 1995-12-20 2003-06-30 株式会社東芝 パケット送信ノード装置、パケット受信ノード装置及びコネクション設定方法
US6188689B1 (en) * 1996-10-04 2001-02-13 Kabushiki Kaisha Toshiba Network node and method of frame transfer
EP0871309B1 (en) * 1997-04-07 2005-10-19 Kabushiki Kaisha Toshiba Router device and frame transfer method using datalink layer frame switching
US6172990B1 (en) * 1997-06-19 2001-01-09 Xaqti Corporation Media access control micro-RISC stream processor and method for implementing the same
US5956721A (en) * 1997-09-19 1999-09-21 Microsoft Corporation Method and computer program product for classifying network communication packets processed in a network stack
JP2000092118A (ja) * 1998-09-08 2000-03-31 Hitachi Ltd プログラマブルネットワーク

Also Published As

Publication number Publication date
EP0986220A2 (en) 2000-03-15
US6333933B2 (en) 2001-12-25
JP2000092118A (ja) 2000-03-31
US20010028650A1 (en) 2001-10-11
US6259690B1 (en) 2001-07-10
CA2281321A1 (en) 2000-03-08
EP0986220A3 (en) 2002-08-21
US6262983B1 (en) 2001-07-17

Similar Documents

Publication Publication Date Title
RU2584449C2 (ru) Система управления связью, коммутационный узел и способ управления связью
CN102104541B (zh) 报头处理引擎
US6460120B1 (en) Network processor, memory organization and methods
US7620048B2 (en) Network switch and components and method of operation
US7333490B2 (en) Table driven programming system for a services processor
US6480500B1 (en) Arrangement for creating multiple virtual queue pairs from a compressed queue pair based on shared attributes
US5590328A (en) Protocol parallel processing apparatus having a plurality of CPUs allocated to process hierarchical protocols
US6714553B1 (en) System and process for flexible queuing of data packets in network switching
US7733864B2 (en) Node apparatus
US5425026A (en) Multi-protocol packet switching network
JP3403971B2 (ja) パケット転送装置
JP4160642B2 (ja) ネットワークデータ転送方法
US5210748A (en) Address filter unit for carrying out address filter processing among plurality of networks and method thereof
US8854996B2 (en) Accelerating data packet parsing
KR100506323B1 (ko) 네트워크 프로세서를 사용하는 네트워크 스위치 및 그의방법
JP4053967B2 (ja) Vlanサーバ
US7289509B2 (en) Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
EP0525174B1 (en) Tracking sequence numbers in packet data communication system
US6907042B1 (en) Packet processing device
EP0530394B1 (en) Message-routing apparatus
AU747484B2 (en) Reduced packet header in wireless communications network
JP4004389B2 (ja) バッファメモリ管理方法及びシステム
CN100465947C (zh) 用于产生和使用改进的树形位图数据结构的方法和装置
JP3717836B2 (ja) ダイナミック・ロード・バランサ
US6226267B1 (en) System and process for application-level flow connection of data processing networks

Legal Events

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