KR20080079335A - 통신 방법, 통신 시스템, 노드 및 프로그램 - Google Patents

통신 방법, 통신 시스템, 노드 및 프로그램 Download PDF

Info

Publication number
KR20080079335A
KR20080079335A KR20087018142A KR20087018142A KR20080079335A KR 20080079335 A KR20080079335 A KR 20080079335A KR 20087018142 A KR20087018142 A KR 20087018142A KR 20087018142 A KR20087018142 A KR 20087018142A KR 20080079335 A KR20080079335 A KR 20080079335A
Authority
KR
South Korea
Prior art keywords
packet
control information
block
data
leader
Prior art date
Application number
KR20087018142A
Other languages
English (en)
Inventor
츠네오 나카타
Original Assignee
닛본 덴끼 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 닛본 덴끼 가부시끼가이샤 filed Critical 닛본 덴끼 가부시끼가이샤
Publication of KR20080079335A publication Critical patent/KR20080079335A/ko

Links

Images

Classifications

    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • 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/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control

Abstract

본 발명의 과제는, 데이터 패킷에 관한 제어 정보의 송신에 의한 부하를 경감하고, 통신 효율을 높이는 것에 있다.
본 발명은, 전송 노드 (101) 로부터 전송 노드 (102) 로 패킷을 전송할 때에, 각 데이터 패킷 (301) 에 저장되는 제어 정보를 패킷 블록 (300-1) 의 선두에 배치되는 리더 패킷 (302) 에 통합하여 전송 노드 (101) 로부터 전송 노드 (102) 로 송신한다. 이 패킷 블록 (300-1) 을 수신한 전송 노드 (102) 는, 수신한 리더 패킷의 제어 정보에 기초하여, 전송 노드 (101) 로 전송하는 패킷의 송신을 제어한다.
Figure P1020087018142
데이터 패킷, 리더 패킷, 플로우 제어 정보, 재송 제어 정보, 라우팅 정보

Description

통신 방법, 통신 시스템, 노드 및 프로그램{COMMUNICATION METHOD, COMMUNICATION SYSTEM, NODES AND PROGRAM}
기술분야
본 발명은, 패킷 통신 기술 및 다중화 통신 기술에 관한 것이다.
배경기술
패킷 데이터 통신에 있어서는, 디지털 데이터는 패킷으로 불리는 작은 패키지에 수용되어 네트워크상에서 전송된다. 패킷은, 전송되는 데이터 본체와, 네트워크상의 전송 제어에 사용되는 정보를 수용한 헤더를 포함한다. 계층화 네트워크에서는, 상위 계층의 헤더는 하위 계층에서는 데이터 본체에 포함된다. 패킷 데이터 통신을 실시하는 망 내의 각 노드에는, 입력되는 각 패킷의 헤더를 해독, 필요에 따라서 편집하여 같은 데이터를 다음 노드로 송신하는, 전송 프로토콜 기능이 실장된다. 또한 일반적으로 패킷 전송 프로토콜은 비동기 프로토콜이고, 같은 네트워크상의 상이한 패킷의 전송은 각 노드가 임의의 시각에 실시한다. 따라서 패킷 전송은 송신 노드의 성능이 허용하는 한 임의의 속도로 실시할 수 있게 된다.
그러나 네트워크상의 각 노드나 통신로는 각각 개별 성능이나 부하 하에서 동작하고 있기 때문에, 송신 노드로부터 수신 노드에 이르는 경로 상의 어딘가에서, 전송 능력이 송신 속도를 하회하면, 패킷의 지연 또는 폐기가 일어난다. 이러한 사태를 피하기 위해서, 송신 노드와 수신 노드 사이에서 통신 상태 감시를 위한 시그널링을 실시하여, 그 결과를 송신 속도로 피드백하여 적정한 송신 속도를 유지하는 기구는 플로우 제어라고 불린다.
대표적인 플로우 제어 프로토콜로는 OSI7 층 모델에 있어서의 제 4 층 프로토콜인 TCP 가 알려져 있다 (상세한 것은, 비특허 문헌 1 참조). 제 3 층에 IP (인터넷 프로토콜) 가 사용되고 있는 경우에, TCP 패킷을 송신 노드로부터 수신 노드로 송신하는 예를 도 16 에 나타낸다. TCP 는, 제 3 층 이하가 제공하는 엔드-엔드 접속 상에서, 과잉 부하의 부여로 인한 패킷의 지연이나 결손, 또한 다른 세션에 대한 과잉의 대역 압박을 피하기 위해서, 슬라이딩 윈도우 방식의 플로우 제어를 실장하고 있다 (상세한 것은, 비특허 문헌 2 참조). 슬라이딩 윈도우 방식에서는, 네트워크에 일정량 (예를 들어, 송신한 패킷에 대응하는 ACK 가 도착할 때까지 송신 가능한 양) 이하의 패킷을 유지시킴으로써, 과부하에 의한 전송 장애를 회피하면서, 하위 계층의 접속이 제공하는 대역의 유효 활용을 실현한다.
네트워크에 유지되는 데이터량의 상한치는 윈도우 사이즈라고 불린다. 슬라이딩 윈도우 방식에서는, 대역을 유효 활용하기 위해서는 대역과 왕복 지연의 곱에 비례한 윈도우 사이즈를 설정할 필요가 있다. 예를 들어, 하위층의 전송 노드에 있어서의 처리 지연을 무시할 수 있고, 또한 경로 상의 물리 링크가, 전파 지연을 무시할 수 있을 만큼 단거리의 유선 회선만으로 이루어지는 경우, 패킷의 전송 지연은 대역에 반비례하기 때문에, 대역에 상관없이 윈도우 사이즈는 동일해도 된다.
그러나 하위층의 전송 노드에 있어서의 처리 지연이나 전파 지연을 무시할 수 없는 경우에는, 하위층의 접속의 대역이 넓을수록, 네트워크의 대역을 유효 활용하기 위해서 윈도우 사이즈를 크게 설정할 필요가 있다. 한편, 윈도우 사이즈가 커지면, 결과적으로 네트워크에 대한 부하가 커지고 패킷 지연이나 손실이 생길 가능성이 높아지기 때문에, TCP 에서는 일정 이상의 지연·대역 곱을 갖는 경로에서는 플로우 제어가 전송 대역을 제한하여, 경로 본래의 대역을 유효 활용할 수 없다 (상세한 것은, 비특허 문헌 3 참조). 이러한 경우에도 네트워크에 대한 부하를 일정 이하로 억제하면서 대역을 유효 활용하는 수법으로서, 동일 경로 상에 복수의 TCP 세션을 형성하고, 각 세션의 지연·대역 곱을 일정 이하로 유지함으로써 높은 대역 이용 효율을 확보하는 병렬 TCP 수법이 제안되어 있다 (상세한 것은, 비특허 문헌 4 참조).
또한, 2 노드 사이에 복수의 경로가 존재하는 경우에, 그 2 노드 사이에 경로마다 패킷 전송 세션을 형성하고, 각 세션에 부하 분산시켜 병렬 전송함으로써 2 노드 사이의 통신을 광대역화하는, 역다중화 수법이 알려져 있다. 예를 들어, 각 경로 상에 TCP 세션을 형성하여 병렬 전송하여, 단일 경로를 사용하는 경우에 비해 광대역의 2 노드 간 전송을 실시하는 수법도 제안되어 있다 (상세한 것은, 비특허 문헌 5 참조).
다음으로, 지연이나 대역이 급격히 변동하는 무선 링크를 포함하는 경로 상에 TCP 를 적용하는 경우에 관해서 생각한다. 이 경우, 대역의 유효 활용을 위해서는 지연과 대역의 곱 (이하, 지연·대역 곱이라고 한다) 이 가장 큰 상태 (시 점) 에 맞추어 윈도우 사이즈를 설정할 필요가 있다. 그렇다면 대역이 작아졌을 때에는 지연이 대역에 반비례하여 커지기 때문에, 그와 같은 복수의 경로를 사용하여 병렬 전송한 경우, 경로 사이의 지터 (jitter) 가 커지는 문제가 있다. 이러한 문제를 회피하면서 무선 링크를 포함하는 경로를 다중화하는 수단으로서, 각 경로의 속도 및 지연을 감시하면서, 각 패킷이 최단의 지연 경로를 경유하도록 경로 사이의 부하 분산을 실시하는 Mobile Inverse Mux 가 제안되어 있다 (상세한 것은, 비특허 문헌 6, 8, 10, 11 참조). 이하에서는 Mobile Inverse Mux 를 MIM 으로 약기한다.
MIM 은, 각 경로의 속도와 지연을 감시하지만, 지연이 큰 무선 링크를 포함하는 경로에서는 감시 결과의 피드백에 지연이 생기기 때문에, 유지되어 있는 과거의 송신 이력을 참조하여 피드백 결과가 유효해지는 시각 이후의 이력으로부터, 현재 패킷을 송신한 경우의 지연을 예측한다. 각 경로에 대한 지연 예측치에 기초하여 플로우 제어를 실시함으로써, 대역을 유효 활용하면서 경로를 다중화할 때의 지터를 억제한다.
MIM 등의 역다중화 프로토콜의 대부분에서는, 상이한 경로를 경유하여 전송된 패킷의 순서가 하류 노드로의 전송시에 역전되지 않도록, 패킷 순서 제어 기능이 실장되어 있다. 이 기능은 예를 들어, 순서를 보존하고자 하는 플로우마다, 송신측 노드는 각 패킷에 시퀀스 번호를 부여하고, 수신측 노드는 수신한 시퀀스 번호에 따라서 패킷 순서를 바르게 정렬시킨 후 하류에 전송함으로써 실현된다.
비특허 문헌 1 : RFC793
비특허 문헌 2 : 마스터링 TCP/IP, Phillip Miller 저, 오옴사 개발국 (1998)
비특허 문헌 3 : M. Nakamura 외, "End-Node transmission rate control kind to intermediate routers," PFLDnet 2004.
비특허 문헌 4 : Kakuzawa 외, 「장거리·고대역폭 통신에 있어서의 병렬 TCP 스트림간의 조정(調停)의 실현」, SACSIS 2004.
비특허 문헌 5 : Maki, Hasegawa, Murata, 및 Murase, 「TCP 오버레이 네트워크의 성능 해석 및 평가」, 신학기보 INO4-96 (2004).
비특허 문헌 6 : T. Nakata 외, "Efficient bundling of heterogeneousradio resources for broadband Internet access from moving vehicles," inproceedings of Global Mobile Congress 2004, 2004년 10월 11-13일, Shanghi, China.
비특허 문헌 7 : Dovrolis, Ramanathan, 및 Moore, "What Do Packet Dispersion Techniques Measuere?," IEEE INFOCOM 2001
비특허 문헌 8 : Ono 외, 「이동체 인터넷 (3)- 재송(再送) 제어 방식 -」, 2004년 전자 정보 통신 학회 종합 대회, 논문 B-5-165 (2004).
비특허 문헌 9 : L. S. Brakmo 및 L. L. Peterson, "TCP Vegas : End to End Congestion Avoidance on a Global Internet," IEEE Journal of Selected Areas in Communications, Vol.13, No.8, p1465 (1995).
비특허 문헌 10 : Okanoue 외,「이동체 인터넷 (1)- 기본 컨셉과 시스템 구성-」, 2004년 전자 정보 통신 학회 종합 대회, 논문 B-5-163 (2004).
비특허 문헌 11 : Nakata 외, 「이동체 인터넷 (2)- 플로우 제어 방식-」, 2004년 전자 정보 통신 학회 종합 대회, 논문 B-5-164 (2004).
발명의 개시
발명이 해결하고자 하는 과제
이상 서술한 바와 같이, 종래 패킷 전송 세션의 플로우 제어 방식으로서 널리 사용되고 있는 TCP 에서는, 어느 정도 이상의 지연·대역 곱을 갖는 경로에서 대역을 유효 활용하기 위해서는, 복수 세션을 형성하거나 하여 각 세션이 유지해야 할 지연·대역 곱을 작게 유지하는 기구가 필요하게 된다. 그러나 이래서는, 결과적으로 각 세션 사이로의 부하 분산 등 복잡한 제어가 필요해진다는 문제가 있다. 또한 대역이 변동하는 경로 상에서 사용하는 경우, 대역에 반비례하여 지연이 증가하는 문제가 있다.
한편, 지연을 억제하면서 대역을 유효 활용하기 위한 복잡한 플로우 제어를 실시하는 MIM 에서는, 패킷마다 정보량이 많은 헤더 작성, 송신 이력 정보의 보존 등의 처리 부하가 전송 속도를 제한하고 마는 문제가 있다.
또한, TCP 나 MIM 등의 플로우 제어 프로토콜에서는, 전송의 완전성을 보장하기 위해서, 특히 장애가 없는 경우라도 일정 이상의 주기로 Ack 등의 확인 메시지를 수신측 노드가 회신할 필요가 있다. 특히 셀룰러 회선과 같이 업로드 (upload) 와 다운로드 (download) 의 속도가 현저히 상이한 비대칭 네트워크의 경우, 다운로드 대역이 업로드 대역과 비교하여 넓기 때문에, 업로드 대역에 맞추어 윈도우 사이즈를 설정하면 대역 이용 효율의 저하를 초래하고, 또한, 업로드 대역 의 이용률이 원래 클 때에 Ack 신호를 대량으로 송신하면 왕복 지연의 증가를 초래한다는 문제가 있다.
또한, MIM 과 같이, 추정 속도 등 명시적 (explicit) 경로 상태를 피드백하여 플로우 제어를 실시하는 프로토콜에 있어서는, 당해 경로에 대한 부하를 늘릴수록, 경로의 대역이 큰 방향으로 변화할 때에 대역의 이용 효율을 높게 유지할 수 있다. 한편 경로의 대역이 작은 방향으로 변화할 때에는, 당해 경로에 대한 부하가 높을수록 전송 지연이 증대되어 피드백에 걸리는 시간이 늘어나기 때문에, 잘못된 상태 인식에 기초한 부하 분산을 실시하는 시간이 확대된다. 복수의 경로 중 일부에서 잘못된 상태 인식이 발생하면, 복수의 경로간 지터가 증대하여, 복수의 경로를 통합한 전체로서의 통신에 있어서 패킷 폐기율 또는 재송률도 상승한다. 따라서 경로의 대역의 변화가 상승 경향일 때에 이것에 추종하여 윈도우 사이즈를 크게 해서 패킷의 송출 레이트를 상승시키면, 하강 경향 시에 악영향을 미치는 트레이트 오프의 문제가 있다.
그리고 이들 플로우 제어 프로토콜에서는 패킷 전체의 데이터 사이즈에 대한 헤더의 점유율이 높아, 데이터 전송에 사용할 수 있는 대역이 압박되는 문제가 있다. 이 대책으로서, 헤더 압축의 수법을 적용할 수도 있다. 그러나, 데이터 전송의 신뢰성을 확보하면서 헤더 압축을 실시하기 위해서는 송신측과 수신측에서 압축 및 신장에 필요한 상태 변수를 공유하고 있을 필요가 있어, 그 갱신이나 동기의 확인 등을 위해서 프로토콜이 복잡하게 된다. 또한 지연이나 손실이 큰 링크에서는 상태 변수의 동기(同期)가 따라가지 못하여 압축 효과가 나타나기 어렵 다는 문제가 있다.
또한, 순서 제어 기능을 실장한 역다중화 프로토콜에 있어서, 단일의 유저 플로우가 각 경로에 부하 분산되어 전송되는 경우, 유저 플로우 내에서 전송 순서를 바르게 유지하기 위해서, 수신 노드에 있어서 경로간의 속도차로 인해서 수신이 끝난 최대 시퀀스 번호보다 2 이상 큰 시퀀스 번호의 패킷이 도착한 경우에, 수신이 끝난 최대 시퀀스 번호보다 1 만큼 시퀀스 번호의 패킷 도착까지 전송을 보류하지 않으면 안된다.
그러나 패킷 손실이 있는 경우에는, 손실된 패킷을 기다리는 것은 전송 순서를 구제할 수 없을 뿐 아니라 잉여 지연을 가져오기 때문에 바람직하지 못하다. 역다중화되는 각 경로에 있어서는, 임의의 유저 플로우의 패킷에 계속되는 패킷은 일반적으로 상이한 유저 플로우의 것이기 때문에, 손실된 패킷이 어느 유저 플로우의 것인지 추정할 수 없다. 따라서 본래 불필요한, 손실된 패킷의 대기를 막을 수 없어, 전송의 실시간성이 손상된다는 문제가 있다.
또한, 종래의 패킷 통신에 있어서는, 송신측 노드는 헤더에 포함시키는 제어 정보의 결정을 각 송신 패킷마다 실시하고, 수신 노드는 헤더 판독 및 해석을 각 패킷 수신마다 실시한다. 이때, 노드의 처리 부하는 송수신 데이터 속도의 상승과 함께 높아져, 노드의 처리 능력이 특정한 프로토콜에서의 노드의 최대 전송 속도를 결정한다. MIM 이나 TCP 와 같이 처리가 복잡한 프로토콜에서는 노드의 최대 전송 속도가 경로의 대역보다 낮아지기 쉬워, 본래는 경로의 대역의 유효 활용을 위해 도입하는 플로우 제어의 처리 속도가 보틀넥 (bottleneck) 이 되고, 결 과적으로 경로의 대역의 활용 효율이 저하되는 문제가 있다.
그래서, 본 발명은 상기 과제를 감안하여 발명된 것으로, 그 목적은, 데이터 패킷에 관한 제어 정보의 송신에 따른 부하를 경감하여, 통신 효율을 높이는 통신 기술을 제공하는 것에 있다.
또한, 본 발명의 목적은, 복수의 경로로 연결된 노드 사이에서 패킷 통신을 실시할 때에, 제어 정보를 저장한 리더 패킷을 낮은 지연 경로나 신뢰성이 높은 경로를 사용하여 전송함으로써, 시그널링 정보의 손실이나 지연을 억제할 수 있는 기술을 제공하는 것에 있다.
과제를 해결하기 위한 수단
상기 과제를 해결하기 위한 제 1 발명은,
복수의 데이터 패킷과 리더 패킷을 하나의 블록으로 하고,
상기 복수의 데이터 패킷에 관한 제어 정보를 상기 리더 패킷에 통합하여 송신하고,
수신한 리더 패킷의 제어 정보에 기초하여, 패킷의 송신을 제어하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 2 발명은, 상기 제 1 발명에 있어서,
상기 제어 정보는 플로우 제어 정보인 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 3 발명은, 상기 제 1 발명에 있어서,
상기 제어 정보는 재송 제어 정보인 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 4 발명은, 상기 제 1 발명에 있어서,
상기 제어 정보는 라우팅 (routing) 정보인 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 5 발명은, 상기 제 1 발명에 있어서,
상기 제어 정보는 경로 정보인 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 6 발명은, 상기 제 1 발명 내지 제 5 발명 중 어느 하나의 발명에 있어서,
상기 제어 정보는 상기 데이터 패킷에 공통되는 제어 정보인 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 7 발명은, 상기 제 1 발명 내지 제 6 발명 중 어느 하나의 발명에 있어서,
리더 패킷을 일의적으로 식별하는 식별 정보를 상기 데이터 패킷에 포함시키는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 8 발명은, 상기 제 1 발명 내지 제 7 발명 중 어느 하나의 발명에 있어서,
제어 정보를 통합한 데이터 패킷을 일의적으로 식별하는 식별 정보를 상기 리더 패킷에 포함시키는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 9 발명은, 상기 제 1 발명 내지 제 8 발명 중 어느 하나의 발명에 있어서,
상기 복수의 데이터 패킷 또는 리더 패킷이 복수의 회선을 경유하여 송수신되는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 10 발명은, 상기 제 9 발명에 있어서,
상기 리더 패킷은, 상기 복수 회선 중 최고속의 회선을 이용하여 송신하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 11 발명은, 상기 제 9 발명에 있어서,
상기 제어 정보에 기초하여, 상기 리더 패킷 또는 상기 데이터 패킷을 송신하는 회선을 선택하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 12 발명은, 상기 제 1 발명 내지 제 11 발명 중 어느 하나의 발명에 있어서,
수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 데이터량을 결정하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 13 발명은, 상기 제 1 발명 내지 제 12 발명 중 어느 하나의 발명에 있어서,
수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 송신 시각을 결정하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 14 발명은, 상기 제 1 발명 내지 제 13 발명 중 어느 하나의 발명에 있어서,
동일 블록에 속하는 복수의 데이터 패킷의 수신 시각으로부터 통신 경로의 속도를 추정하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 15 발명은,
복수의 데이터 패킷과 리더 패킷을 하나의 블록으로서 취급하여, 상기 복수의 데이터 패킷에 관한 제어 정보를 상기 리더 패킷에 통합하는 패킷 블록 작성 수 단과,
수신한 리더 패킷에 통합된 제어 정보에 기초하여, 패킷의 송신을 제어하는 스케줄링 수단을 갖는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 16 발명은, 상기 제 15 발명에 있어서,
상기 제어 정보는 플로우 제어 정보인 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 17 발명은, 상기 제 15 발명에 있어서,
상기 제어 정보는 재송 제어 정보인 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 18 발명은, 상기 제 15 발명에 있어서,
상기 제어 정보는 라우팅 정보인 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 19 발명은, 상기 제 15 발명에 있어서,
상기 제어 정보는 경로 정보인 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 20 발명은, 상기 제 15 발명 내지 제 19 발명 중 어느 하나의 발명에 있어서,
상기 패킷 블록 작성 수단은, 상기 데이터 패킷에 공통되는 제어 정보를 상기 리더 패킷에 통합하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 21 발명은, 상기 제 15 발명 내지 제 20 발명 중 어느 하나의 발명에 있어서,
리더 패킷을 일의적으로 식별하는 식별 정보를 상기 데이터 패킷에 포함시키는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 22 발명은, 상기 제 15 발명 내지 제 21 발명 중 어느 하나의 발명에 있어서,
제어 정보를 통합한 데이터 패킷을 일의적으로 식별하는 식별 정보를 상기 리더 패킷에 포함시키는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 23 발명은, 상기 제 15 발명 내지 제 22 발명 중 어느 하나의 발명에 있어서,
상기 복수의 데이터 패킷 또는 리더 패킷을 복수의 회선을 경유하여 송신하는 송신 수단을 갖는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 24 발명은, 상기 제 23 발명에 있어서,
상기 스케줄링 수단은, 리더 패킷을 상기 복수 회선 중 최고속의 회선을 이용하여 송신하도록 제어하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 25 발명은, 상기 제 23 발명에 있어서,
상기 스케줄링 수단은, 제어 정보에 기초하여, 상기 리더 패킷 또는 상기 데이터 패킷을 송신하는 회선을 선택하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 26 발명은, 상기 제 15 발명 내지 제 25 발명 중 어느 하나의 발명에 있어서,
상기 스케줄링 수단은, 수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 데이터량을 결정하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 27 발명은, 상기 제 15 발명 내지 제 26 발명 중 어느 하나의 발명에 있어서,
상기 스케줄링 수단은, 수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 송신 시각을 결정하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 28 발명은, 상기 제 15 발명 내지 제 27 발명 중 어느 하나의 발명에 있어서,
동일 블록에 속하는 복수의 데이터 패킷의 수신 시각으로부터 통신 경로의 속도를 추정하는 패킷 해석부를 갖는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 29 발명은,
복수의 데이터 패킷과 리더 패킷을 하나의 블록으로서 취급하여, 상기 복수의 데이터 패킷에 관한 제어 정보를 상기 리더 패킷에 통합하는 패킷 블록 작성 수단과,
타 노드로부터 수신한 리더 패킷에 통합된 제어 정보에 기초하여, 패킷의 송신을 제어하는 스케줄링 수단을 갖는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 30 발명은, 상기 제 29 발명에 있어서,
상기 패킷 블록 작성 수단은, 상기 데이터 패킷에 공통되는 제어 정보를 상기 리더 패킷에 통합하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 31 발명은, 상기 제 29 발명 또는 제 30 발명에 있어서,
리더 패킷을 일의적으로 식별하는 식별 정보를 상기 데이터 패킷에 포함시키는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 32 발명은, 상기 제 29 발명 내지 제 31 발명 중 어느 하나의 발명에 있어서,
제어 정보를 통합한 데이터 패킷을 일의적으로 식별하는 식별 정보를 상기 리더 패킷에 포함시키는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 33 발명은, 상기 제 29 발명 내지 제 32 발명 중 어느 하나의 발명에 있어서,
상기 복수의 데이터 패킷 또는 리더 패킷을 복수의 회선을 경유하여 송신하는 송신 수단을 갖는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 34 발명은, 상기 제 33 발명에 있어서,
상기 스케줄링 수단은, 리더 패킷을 상기 복수 회선 중 최고속의 회선을 이용하여 송신하도록 제어하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 35 발명은, 상기 제 33 발명 또는 제 34 발명에 있어서,
상기 스케줄링 수단은, 타 노드로부터 수신한 리더 패킷에 통합된 제어 정보에 기초하여, 상기 리더 패킷 또는 상기 데이터 패킷을 송신하는 회선을 선택하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 36 발명은, 상기 제 29 발명 내지 제 35 발명 중 어느 하나의 발명에 있어서,
상기 스케줄링 수단은, 타 노드로부터 수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 데이터량을 결정하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 37 발명은, 상기 제 29 발명 내지 제 36 발명 중 어느 하나의 발명에 있어서,
상기 스케줄링 수단은, 타 노드로부터 수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 송신 시각을 결정하는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 38 발명은, 상기 제 29 발명 내지 제 37 발명 중 어느 하나의 발명에 있어서,
동일 블록에 속하는 복수의 데이터 패킷의 수신 시각으로부터 통신 경로의 속도를 추정하는 패킷 해석부를 갖는 것을 특징으로 한다.
상기 과제를 해결하기 위한 제 39 발명은,
복수의 데이터 패킷과 리더 패킷을 하나의 블록으로서 취급하여, 상기 복수의 데이터 패킷에 관한 제어 정보를 상기 리더 패킷에 통합하는 패킷 블록 작성 처리와,
타 노드로부터 수신한 리더 패킷에 통합된 제어 정보에 기초하여, 패킷의 송신을 제어하는 스케줄링 처리를 컴퓨터에 실시시키는 것을 특징으로 한다.
본 발명은 전술한 바와 같이, 복수의 데이터 패킷과 리더 패킷을 하나의 블록으로 하고, 상기 복수의 데이터 패킷의 제어 정보를 상기 리더 패킷에 통합하고, 상기 리더 패킷의 제어 정보에 기초하여 패킷의 송신을 제어한다. 이 때문에, 노드에 있어서, 제어 정보를 조기에 알 수 있기 때문에, 시그널링을 고속으로 실시하는 것이 가능해진다.
발명의 효과
본 발명은, 1 개 이상의 경로를 선택 가능한 2 노드 사이에 있어서, 패킷 블록마다의 수신 시퀀스에 기초한 경로 상태 추정의 결과를 피드백함으로써, 종래예 에 비하여 정확한 경로 상태 추정에 기초하는 플로우 제어 및 부하 분산을 실현할 수 있다.
또한, 본 발명은, 플로우 제어 및 경로 선택 처리를 복수의 패킷에 대하여 1 회만 실시하기 때문에, 송신 패킷마다 플로우 제어 및 경로 선택 처리를 하는 종래예에 비하여 처리 부하가 경감된다.
또한, 본 발명은, 각 경로의 플로우 제어 정보, 부하 분산 정보, ARQ 정보, 순서 제어 정보를 리더 패킷에 집약하여, 가장 낮은 지연 경로나 신뢰성이 높은 경로로부터 블록의 선두로서 송신함으로써 시그널링 정보의 손실이나 지연을 억제하고, 경로의 대역이 상승 경향일 때의 대역 이용 효율과 하강 경향일 때의 제어의 추종성 사이의 트레이트 오프를 완화시킬 수 있다.
또한, 본 발명은, 수신 노드는 리더의 정보에 의해 당해 블록 내의 패킷 수신 시퀀스를 예측할 수 있기 때문에, 예측과 불일치인 경우에는 통신 이상으로 판단함으로써, 통신 이상의 조기 검출이 가능해진다.
또한, 본 발명은, 순서 제어 버퍼내 데이터의 전송을 필요 이상의 장시간 보류하는 일이 없어져, 엔드-엔드 지터가 개선된다.
또한, 본 발명은, 송신측과 수신측에서의 상태 정보 공유가 필요한 헤더 압축의 종래예에 비하여 간략한 실장에 의해 헤더 정보 삭감을 실현한다.
도면의 간단한 설명
도 1 은 본 발명의 제 1 실시예를 나타내는 시스템 구성도이다.
도 2 는 본 발명의 리더 패킷의 구성도이다.
도 3 은 본 발명의 데이터 패킷의 구성도이다.
도 4 는 플로우 제어 알고리즘 (PAC 스케줄러) 을 본 발명의 제 1 실시예에 응용한 예이다.
도 5 는 스케줄링부가 따르는 플로우차트이다.
도 6 은 패킷 작성부가 따르는 플로우차트이다.
도 7 은 본 발명의 제 2 실시예를 나타내는 시스템 구성도이다.
도 8 은 플로우 제어 알고리즘 (PAC 스케줄러) 을 본 발명의 제 2 실시예에 응용한 예이다.
도 9 는 본 발명의 제 2 실시예의 피드백 주기를 짧게 할 수 있는 예이다.
도 10 은 본 발명의 제 2 실시예의 속도 추정 정밀도를 일정하게 유지하는 예이다.
도 11 은 본 발명의 제 3 실시예를 설명하는 도면이다.
도 12 는 본 발명의 제 4 실시예를 설명하는 도면이다.
도 13 은 본 발명의 제 5 실시예를 설명하는 도면이다.
도 14 는 본 발명의 개요를 설명하는 도면이다.
도 15 는 본 발명의 개요 (데이터 패킷이 3 개 이상인 경우) 를 설명하는 도면이다.
도 16 은, 종래 발명의 개요를 설명하는 도면이다.
(부호의 설명)
003 : 리더 패킷
004, 005, 006 : 데이터 패킷
101, 102 : 전송 노드
201 : 버퍼부
202 : 스케줄링부
203 : 패킷 블록 작성부
204 : 패킷 송신부
205 : 기억부
206 : 패킷 수신부
207 : 패킷 해석부
208 : 패킷 전송부
301 : 데이터 패킷
302 : 리더 패킷
발명을 실시하기 위한 최선의 형태
(발명의 개요)
도 14 를 사용하여, 제 1 실시형태에 관해서 설명한다. 도 14 는, 송신 노드 (001) 로부터 수신 노드 (002) 에 대하여, 본 발명의 패킷 전송을 실시하는 모습을 나타내고 있다. 종래 기술의 제 4 층 프로토콜인 TCP 를 사용한 패킷 전송에서는, 도 16 에 나타낸 바와 같이, 각 패킷은, 선두로부터 IP 헤더, TCP 헤더, 페이로드의 순으로 구성되어 있다. TCP 에서는, 복수의 패킷을 동시 또는 제어 정보가 변화하지 않을 정도의 단시간 내에 송신하는 경우, 각 패킷에 부여되 는 TCP 헤더의 제어 정보는 모두 동일하게 된다.
한편, 본 발명에서는, 복수의 패킷을 동시 또는 제어 정보가 변화하지 않을 정도의 단시간 내에 송신하는 경우, 제어 정보는 선두의 리더 패킷 (003) 용의 헤더에만 저장하고, 당해 본 발명의 리더 패킷용 헤더에 종래와 동일하게 수신처 (destination) 노드를 나타내는 IP 헤더를 부가하여, IP 헤더와 본 발명의 리더 패킷용 헤더로 이루어지는 리더 패킷을 먼저 송신한다.
그리고, 당해 리더 패킷 (003) 에 후속하여, 리더 패킷용 헤더보다 정보량이 적은 본 발명의 데이터 패킷용 헤더를 포함하는 데이터 패킷 (004, 005) 을 송신한다.
이와 같이, 본 발명에서는, 각 패킷의 헤더에 저장되어 있던 제어 정보를 선두의 리더 패킷 (003) 의 헤더에 저장하고 있고, 패킷 (003) 의 수신에 필요한 시간은, 종래의 패킷 (0040) 의 수신에 필요한 시간보다 짧다. 따라서, 수신 노드에서는, 당해 제어 정보 (예를 들어, ACK 정보 등) 에 관하여 종래의 패킷 전송 방법보다 조기에 알 수 있다. 이 결과, 당해 제어 정보에 기초한 시그널링을 고속으로 실시하는 것이 가능해진다.
또한, 상기 서술한 효과는, 송신하는 데이터 패킷이 도 15 에 기재한 바와 같이, 3 개 이상이 된 경우에도 동일하다. 도 15 에서는, 종래 방식에 있어서 동시, 또는 제어 정보가 변화하지 않을 정도의 단시간 내에 송신하는 경우, 데이터 패킷 (004a, 005a, 006a) 각각에, 중복되는 동일한 데이터량의 제 4 층 헤더를 부여하는 데 반하여, 본 발명에서는 종래예에 있어서의 각 패킷 헤더의 중복 부분에 해당하는 제어 정보를 선두 리더 패킷 (003a) 의 헤더에 통합하여 저장하고, 각 데이터 패킷에는, TCP 헤더보다 가벼운 본 발명의 데이터 패킷용 헤더를 제 4 층 헤더로서 부여하고 있다.
이 도 15 에 나타낸 바와 같이, 종래 다수의 패킷에서 중복하여 가지고 있던 정보를 리더 패킷에 대표로 갖게 함으로써, 헤더에 의한 시그널링의 정보량은 TCP 와 동등하게 유지하면서, 전체 패킷의 헤더 사이즈의 합계는 TCP 와 비교하여 저감하는 것이 가능해진다. 이 결과, 패킷 송신 전체의 전송 효율을 향상시키는 것이 가능해진다.
또한, 도 15 에 나타낸 바와 같이 다수의 패킷에 관해서 1 개의 리더 패킷을 작성하여 패킷 송신하는 것에 의한 또 다른 효과는, 경로의 속도 측정의 정밀도가 상승하는 점에 있다. 속도는, 최저 2 패킷이 있으면 측정이 가능하지만, 패킷이 많으면 많을수록, 그 정밀도는 상승한다.
그 하나의 이유는, 어느 하나의 플로우에 포함되는 많은 패킷을 송신한 경우, 각 패킷 사이에 다른 플로우에 속하는 패킷이 끼워질 가능성이 높아진다. 실제의 전송로에서는 그와 같은 일은 통상적으로 일어날 수 있는 일이어서, 패킷 수가 많으면 많을수록, 실제의 전송로에 가까운 상태에서의 속도 측정이 가능해지기 때문이다.
또, 또 다른 이유는, 패킷 블록에 포함되는 패킷 수가 늘어나면, 1 개의 측정에 관련된 패킷의 선두와 말미의 수신 시각의 차가 커지기 때문에 수신 노드에 요구되는 시간 분해능 역시 커도 상관없게 되어, 같은 시간 분해능의 노드이면, 본 발명의 패킷 블록을 사용한 쪽이 속도 정밀도가 향상되게 되기 때문이다.
이상, 본 발명의 개요에 관해서 설명하였다. 이하에, 더욱 상세히 설명한다.
(제 1 실시예)
도 1 에, 본 발명의 제 1 실시예를 나타낸다. 도면에 있어서, 전송 노드 (101) 와 전송 노드 (102) 사이에서는, 본 발명의 패킷 전송 방법을 사용하여 패킷의 전송을 실시한다. 본 실시예는 쌍방향 대칭의 프로토콜을 상정하기 때문에, 전송 노드 (101) 와 전송 노드 (102) 의 구성은 동일하다. 이하, 전송 노드 (101) 로부터 전송 노드 (102) 로의 패킷 전송을 예로 들어 설명하는데, 전송 노드 (102) 로부터 전송 노드 (101) 로의 전송도 동일한 동작으로 실시된다.
먼저 전송 노드 (101) 의 패킷 송신 동작에 관해서 설명한다. 전송 노드 (101) 는, 전송 노드 (102) 에 전송할 데이터를, 다른 노드 또는 같은 노드 상의 유저 애플리케이션 등의 데이터 발생 수단으로부터 수취하여, 버퍼부 (201) 에 수용한다.
스케줄링부 (202) 는, 기억부 (205) 에 저장된 스케줄링 정보에 기초하여 송신을 제어한다. 예를 들어, 패킷 송신을 해야 할 시각과 리더 패킷에 계속해서 송신하는 데이터 패킷 (이하, 패킷군으로 칭한다) 의 구성을 후술하도록 결정하고, 패킷 송신을 해야 할 시각이 오면, 패킷 블록 작성부 (203) 에 리더 패킷 및 패킷군의 구성을 통지한다. 리더 패킷 및 패킷군의 구성을 통지받은 패킷 블록 작성부 (203) 는, 데이터 패킷의 제어 정보를 리더 패킷에 통합한다. 예를 들어, 통지된 구성 및 기억부 (205) 에 저장된 플로우 제어 정보에 기초하여 리더 패킷을 작성하고, 또한 버퍼부 (201) 로부터 통지된 구성에 기초한 수의 데이터를 취출하고, 취출한 데이터의 각각에 소정의 헤더 정보를 부가하여 패킷군을 작성하고, 패킷군과 리더 패킷을 동시 또는 소정의 간격을 두고 패킷 송신부 (204) 에 건넨다. 이때, 송신되는 패킷의 집합을 이하에서는 패킷 블록으로 칭한다.
패킷 송신부 (204) 는 패킷 블록 작성부 (203) 로부터 건네 받은 패킷을 순차, 전송 노드 (102) 내의 패킷 수신부 (206) 에 대하여 전송한다. 300-1 은, 패킷 송신부 (204) 로부터 송신된, 통신 경로 상의 패킷 블록의 모식도로, 리더 패킷 (302) 에 복수의 데이터 패킷 (301) 이 계속되는 것을 나타내고 있다.
다음으로, 전송 노드 (101) 로부터의 패킷 블록 (300-1) 수신시의 전송 노드 (102) 의 동작에 관해서 설명한다. 패킷 해석부 (207) 는, 패킷 블록 (300-1) 으로부터 후술하는 바와 같이 소정의 정보를 추출함과 함께, 수신 패킷에 관한 후술하는 소정의 계측을 실시하여, 그 결과를 플로우 제어 정보로서 기억부 (205) 에 저장한다. 해석부 (207) 에서의 처리를 마친 패킷의 데이터는 순차적으로 패킷 전송부 (208) 로 건네지고, 패킷 전송부 (208) 는 패킷 해석부 (207) 로부터 수취한 데이터를 다음 전송 노드, 또는 동일 노드 내의 유저 애플리케이션 등의 데이터 수신 수단에 전송한다.
전송 노드 (102) 내의 스케줄링부 (202) 는, 전송 노드 (101) 내의 스케줄링부 (202) 와 동일한 동작에 의해, 기억부 (205) 에 저장된 스케줄링 정보에 기초하여 패킷 송신을 해야 할 시각과 패킷군의 구성을 후술하는 바와 같이 결정하여, 패 킷 송신을 해야 할 시각이 오면, 패킷 블록 작성부 (203) 에 리더 패킷 및 패킷군의 구성을 통지한다.
전송 노드 (102) 내의 패킷 블록 작성부 (203) 는, 통지된 구성 및 기억부 (205) 에 저장된 플로우 제어 정보에 기초하여 리더 패킷을 작성하고, 버퍼부 (201) 에 저장된 데이터와 함께 패킷 블록 (300-2) 을 구성하고, 패킷 송신부 (204) 를 통해서 전송 노드 (101) 내의 패킷 수신부 (206) 에 대하여 송신한다. 송신 후, 송신 이력을 기억부 (205) 에 저장한다.
전송 노드 (102) 로부터 새로운 패킷 블록 (300-2) 을 수신하면, 전송 노드 (101) 내의 패킷 해석부 (207) 는 패킷 블록 (300-2) 으로부터 소정의 정보를 추출함과 함께, 수신 패킷에 관한 소정의 계측을 실시하여, 그 결과를 플로우 제어 정보로서 기억부 (205) 에 저장하고, 플로우 제어 정보가 갱신되었음을 스케줄링부 (202) 에 통지한다. 스케줄링부 (202) 는, 갱신된 플로우 제어 정보에 기초하여, 마찬가지로 기억부 (205) 에 저장된 스케줄링 정보를 갱신한다. 이후의 패킷 송신 타이밍 및 패킷 블록 구성의 결정은, 갱신한 스케줄링 정보에 기초하여 이루어진다.
도 2 에, 본 발명에서 사용한 리더 패킷의 구조의 예를 나타낸다. 본 발명은 어떠한 통신 계층 상의 프로토콜로서도 실시 가능하지만, 본 실시예에서는 제 4 층의 프로토콜로서 실장하는 것으로 하여, 하위층의 전송 프로토콜이 IP 인 경우의 구조예를 나타내고 있다.
도 2 에 나타나는 바와 같이, 본 실시예에서의 리더 패킷에는, 선두 IP 헤더 에 이어지는 블록 관리 정보, 플로우 제어 정보가 리더 패킷용 헤더에 포함된다. 한편 데이터 패킷의 구조는 도 3 에 도시되고, IP 헤더 이외에 데이터 패킷용 헤더에 블록 피관리 정보를, 페이로드에 데이터 본체를 포함한다.
블록 관리 정보는, 송신측 노드가 생성하는 패킷 블록 내 패킷의 패킷 수나 패킷의 우선도 등의 속성 정보이다. 한편 블록 피관리 정보는, 리더 패킷을 일의적으로 식별하는 식별 정보이다. 즉, 각 데이터 패킷이 속하는 패킷 블록을 식별하기 위한 정보이다. 본 실시예에서는, 송신 노드는 각 패킷 블록에 고유한 시퀀스 번호를 부여하는 것으로 하고, 이것을 블록 피관리 정보로 한다. 또한 블록 내의 각 패킷은, 리더 패킷을 선두로 하여 순차 송신되는 (패킷 블록 작성부 (203) 로부터 패킷 송신부 (204) 로 건네지는) 것으로 하고, 그 송신시의 타임 스탬프와, 패킷 블록에 속하는 패킷의 시퀀스 번호의 범위를 블록 관리 정보로 한다. 이들 정보를 바탕으로, 수신 노드에서는 지연의 측정 및 비특허 문헌에 기재되어 있는 패킷 트레인 방식 (총 데이터량 / 최후 패킷과 최초 패킷의 수신 시각의 차로부터 대역 추정을 실시하는 방식) 에 의한 통신 경로의 대역 추정을 실시한다.
또한, 제어 정보를 통합한 데이터 패킷을 일의적으로 식별하는 식별 정보를 리더 패킷에 포함시킴으로써, 리더 패킷과 데이터 패킷군과의 관계를 담보해도 된다.
이상의 전제에 기초하여, 다시 도 1 을 참조해서, 본 실시예의 플로우 제어의 기구를 구체적으로 설명한다. 전송 노드 (102) 내의 패킷 해석부 (207) 는, 패킷 수신부 (206) 로부터 패킷 블록 (300-1) 의 리더 패킷 (302) 을 수신하면, 블록 관리 정보로부터 패킷 블록 (300-1) 의 타임 스탬프와 시퀀스 번호의 범위를 추출한다. 또한 수신 시각과 추출한 타임 스탬프의 차를, 경로 지연의 추정 결과로서 기억부 (205) 에 기입한다. 후속 데이터 패킷 (301) 의 수신시에, 시퀀스 번호가 패킷 블록 (300-1) 의 시퀀스 번호 범위 내이면 그 데이터 사이즈를 기억해 놓는다. 또한 수신한 패킷이 블록 내에서 최후에 수신되는 패킷이면, 수신된 패킷 블록 내 데이터 패킷의 패킷 사이즈의 총계를, 당해 패킷의 수신 시각과 리더 패킷의 수신 시각의 차로 나눈 것을, 통신 경로의 대역의 추정 결과로서 기억부 (205) 에 기입한다.
이상의 동작에 의해 전송 노드 (102) 내의 패킷 해석부 (207) 가 기억부 (205) 에 기록한 플로우 제어 정보 (경로 지연의 추정 결과와 경로 대역의 추정 결과) 는, 전송 노드 (102) 로부터 전송 노드 (101) 로 송신하는 패킷 블록 (300-2) 의 리더 패킷에 수용되고, 전송 노드 (101) 내의 패킷 해석부 (207) 를 통해서 기억부 (205) 로 전달된다. 전송 노드 (101) 내의 기억부 (205) 는 새로운 플로우 제어 정보가 전달되어 오면, 플로우 제어 정보 갱신을 스케줄링부 (202) 에 통지하고, 그 통지를 받은 스케줄링부 (202) 는, 갱신된 플로우 제어 정보, 즉 경로 지연의 추정 결과와 경로 대역의 추정 결과를 사용하여 스케줄링 정보를 갱신하고, 이후에는 갱신한 스케줄링 정보에 기초하여 패킷 블록이 구성된다.
이상, 제 1 실시예에 있어서의 패킷 블록 전송 방식을 실장한 노드의 구성과 동작의 예에 관해서 설명하였다. 이하에서는, 도 1 에 있어서 패킷 블록의 송 신 타이밍을 결정하는 스케줄링부 (202) 와, 패킷 블록의 구성을 결정하는 패킷 블록 작성부 (203) 가 따르는 플로우 제어 알고리즘의 예에 관해서 설명한다.
플로우 제어 알고리즘의 제 1 예로서, TCP 에서 사용되고 있는 윈도우 제어를 응용하여, 윈도우 사이즈를 패킷 트레인 방식에 의해 추정한 경로 대역에 기초하여 결정하는 플로우 제어 알고리즘에 관하여 설명한다. 이 실시예에서는, 전송 노드 (102) 로부터 전송 노드 (101) 로 송신하는 리더 패킷 (302) 에는 TCP 에서 사용되는 것과 동일한 Ack 정보, 수신 윈도우 사이즈 (수신 노드측에서 결정한 수신 가능한 데이터량) 를 포함시킨다. 이 리더 패킷 (302) 을 수신한 전송 노드 (101) 는 이하의 순서로 전송 노드 (102) 에 대한 송신 처리를 실시한다. 리더 패킷 (302) 을 수신하면, 패킷 해석부 (207) 는 그 리더 패킷 (302) 에 포함되는 Ack 내용을 기억부 (205) 에 기록하고, 기억부 (205) 는 신규 Ack 수신 이벤트를 스케줄링부 (202) 에 통지한다.
스케줄링부 (202) 는 수신한 리더 패킷으로부터 추출한 수신 윈도우 사이즈와, 기억부에 기록되어 있는 송신 이력으로부터 추출한, Ack 된 패킷의 후에 송신한 패킷의 데이터량의 차를 송신 가능 데이터량으로서 패킷 블록 생성부 (203) 에 통지한다.
패킷 블록 생성부 (203) 는 리더 패킷 (302) 을 포함하는 패킷 블록 사이즈가 송신 가능 데이터량을 초과하지 않는 최대량의 데이터를 버퍼부로부터 취출하여, 각 데이터에 블록 피관리 정보를 부가한 데이터 패킷을 작성한다. 또한, Ack 정보 및 블록 관리 정보를 포함하는 리더 패킷을 작성하여, 양자로 이루어지는 패킷 블록을 패킷 송신부 (204) 로 건넨다. 만일 송신 가능 데이터량이, 미리 정한 하한에 미치지 못하는 경우에는, 다음 스케줄링부 (202) 로부터의 송신 가능 데이터량 통지까지 패킷 블록 작성을 보류한다.
패킷 블록을 송신할 수 있었던 경우, 송신 이력을 기억부 (205) 에 기록한다. 여기서 전송 노드 (101) 가 사용한 수신 윈도우 사이즈는, 전송 노드 (102) 의 패킷 해석부 (207) 가, 전송 노드 (101) 로부터의 패킷 블록을 수신하였을 때에 추정한 경로 속도로부터 결정하고 있다. 수신 윈도우 사이즈의 값은, 예를 들어, 미리 정한 최대 왕복 지연과 추정 속도의 곱에 의해 주어진다.
그리고, 수신 버퍼 잔량 등에 기초한 상한을 별도로 형성하고, 이 상한 미만이면, 수신 윈도우 사이즈의 결정에 추정 속도에 기초한 값을 사용하도록 해도 된다.
이상 설명한 속도 추정 결과를 원용한 윈도우 제어를 사용하여, 종래 복수의 패킷에서 중복하여 가지고 있던 정보를 리더 패킷에 대표로 갖게 함으로써, 노드 처리 부하 경감이나 헤더 사이즈 저감의 효과가 얻어진다. 또한, 이것에 추가하여, 하기 효과가 발생한다. 먼저, 왕로와 복로의 경로 속도차에 의존하지 않고 왕복 지연 시간이, 미리 정한 최대 왕복 지연시간 이하가 되도록 제어하기 때문에, 속도 변동이 있는 경로에서는 종래의 윈도우 제어에 비하여 지연의 분산을 저감하는 효과가 있다. 또한 윈도우 사이즈가 속도 추정 결과를 사용하여 직접 구해지기 때문에, 손실이나 지연 변동이 큰 경로 상에서도 대역을 유효 활용할 수 있다는 특징이 있다. 이 점은, 비특허 문헌 1, 비특허 문헌 9 와 비교하여 유 리한 점이다. 즉, 비특허 문헌 1, 비특허 문헌 9 에서는, 송신측의 혼잡 (congestion; 輻輳) 윈도우 사이즈와 수신 윈도우 사이즈가 작은 쪽을 윈도우 사이즈로서 채용하고 있는 점에서, 패킷 손실이 발생한 경우에 윈도우 사이즈를 작게 하는 제어를 하게 된다. 이에 대하여, 본 발명에서는, 패킷 손실이 발생한 경우에서도, 속도 추정 결과를 사용하여 윈도우 사이즈를 결정하고 있기 때문에 윈도우 사이즈 자체에는 영향이 없으므로, 대역의 유효 활용이 가능해진다.
또한 리더 패킷에는 수신 윈도우 사이즈가 아니라 속도 추정 결과를 포함시키고, 윈도우 사이즈의 계산은 송신측 노드의 패킷 해석부 (207) 가 실시해도 된다. 그리고, 리더 패킷 수신시에 계산한 송신 가능한 데이터량을 동시에 전부 보내는 것이 아니라, 복수의 패킷 블록에 분할하여, 추정 속도로부터 결정되는 송신 간격을 두고 송신해도 된다. 단, 이때의 송신 간격은, 먼저 송신한 패킷 블록과 나중에 송신한 패킷 블록이 경로 상에서 접촉하는 간격일 필요가 있다. 또한, 이와 같이 패킷 블록을 분할하여 송신함으로써, 경로에 송출되는 버스트의 사이즈가 작아지기 때문에, 패킷 손실 확률 저하의 효과를 기대할 수 있다.
플로우 제어 알고리즘의 제 2 예로서, 비특허 문헌 6 에서 공개되어 있는 PAC 스케줄러 방법을 응용한 방법에 관해서 설명한다. 송신 노드에 있어서의 PAC 스케줄러의 기본 동작은, 수신 노드로부터 피드백된 지연과 추정 속도, 및 그들의 경로 상태의 측정에 사용한 패킷 이후의 송신 이력을 바탕으로 현재 상황의 경로 지연을 예측하고, 이 예측 지연이 미리 정한 역치 미만이 되는 시간에 다음 패킷을 송신한다. 이것을 패킷 블록 전송 방식에 응용한 경우의 플로우 제어 프로토콜 동작예를 도 4 를 사용하여 설명한다.
도 4 에 있어서, 「101 시각」수직선은 전송 노드 (101) 상의 시간, 「102 시각」수직선은 전송 노드 (102) 상의 시각을 표시한다. 또한 노드 (102) 상의 시각 T 이후에서는, T 이전보다 경로의 대역이 저하한 것으로 가정하고 있다. 전송 노드 (101) 는, 시각 ts(a) 에 패킷 블록 (300-a) 을 송신하고 있고, 그 선두는 시각 tb(a) 에 전송 노드 (102) 에 도달되어 있다. tb(a) 는 무부하시에 패킷 블록 (300-a) 의 선두가 수신 노드에 도달하는 시각을 의미한다.
요컨대 노드 (101) 에 있어서 ts(a) 이전에는 부하가 없기 때문에, 패킷 블록 (300-a) 의 선두는 무부하시의 지연만으로 노드 (102) 에 도달한다. 노드 (102) 에서는 리더 패킷 (302-a), 데이터 패킷 (301-1) 의 수신 시각에서부터 계산한 추정 속도 및 리더 패킷 (302-a) 에 탑재된 타임 스탬프와 전송 노드 (102) 의 수신 시각에서 추정한 지연의 정보를, ts(f) 에 전송 노드 (102) 로부터 전송 노드 (101) 로 송신하는 패킷 블록 (300-f) 의 리더 패킷 (302-f) 에 수용함으로써 노드 (101) 에 통지한다.
노드 (101) 는 패킷 블록 (300-a) 에 계속하여, 경로의 대역이 일정한 것으로 간주하여 패킷 블록 (300-b) 을 송신하고 있다. 패킷 블록 (300-b) 을 송신 후에 302-f 의 수신에 의해 경로 정보 (추정 속도 및 지연) 를 갱신하는데, 이것은 시각 T 이전의 정보이기 때문에 노드 (101) 는 경로 대역이 여전히 300-a 송신시와 동일하게 무부하 상태라고 판단하여 시각 ts(c) 에 패킷 블록 (300-c) 을 송신한다. 이때, 노드 (101) 는, 이하의 방법으로 시각 ts(c) 를 결정한다. 즉, 수신한 패킷 (302-f) 에 포함되는 경로 정보 (추정 속도 및 지연) 및 그 경로 정보의 측정에 사용된 패킷 블록 (300-a) 이후의 송신 이력으로부터 구한, 패킷 블록 (300-c) 의 선두가 수신될 것으로 예측되는 시각 tf(c) 를, 무부하시 예측 도착 시각 tb(c) 에 역치 th 를 더한 값과 동일하거나 또는 빠른 시각으로서 결정하고 있다.
여기서, 무부하시 예측 도착 시각 tb(c) 란, ts(c) 의 시점에서 통신 경로가 무부하로서 패킷을 송신한 경우에 그 선두가 수신 노드 (102) 에 도착하는 예측 시각이다. 따라서 ts(c) 의 시점에서 노드 (101) 는, 패킷 블록 (300-c) 의 선두가 tb(c)+th 에 도달한다고 예상하고 있다. 또한 패킷 블록 (300-c) 의 사이즈는, 말미의 예측 도착 시각이, tb(c) 에 최대 잉여 지연 to 을 더한 tb(c)+to 안에 들어가도록 결정되어 있다.
또한, 최대 잉여 지연이란, 더 이상의 지연이 예측되는 경로로부터는 패킷 송신을 하지 않는 것으로 하는 역치를 나타내고 있다. 즉 「최대 잉여 지연이 to」일 때에는, 송신측 노드가 패킷 p 를 경로 r 로부터 송신할 때의 예측 도착 시각이 송신 시각 - to 이후가 되는 송신 시각이 될 때까지는 패킷 p 의 경로 r 을 사용한 송신을 하지 않는다. 반대로, 예측 도착 시각 < 현재 시각 - to 인 경로로부터는, 패킷을 즉시에 송신 가능하다.
그러나 본 실시형태에서는, 실제로는 경로 대역은 시각 T 를 경계로 작아져 있기 때문에, 패킷 블록 (300-b) 의 전파 지연은 노드 (101) 의 예측보다 커, 패킷 블록 (300-c) 의 수신 개시는 tf'(c) 까지 늦어지고, 또한 말미의 데이터 패킷 (301-9) 의 수신 완료 시각도 예측한 tb(c)+to 보다 늦어져, tf'(d) 로 되어 있다. 노드 (102) 는 ts(g) 에 패킷 블록 (300-g) 을 송신하고 있고, 이 리더 패킷 (302-g) 에는 패킷 블록 (300-b) 수신에 의해 검출한 경로 정보 (즉, 경로 대역이 저하된 정보) 가 포함된다. 이와 같이 노드 (101) 는 패킷 (302-g) 의 수신에 의해 경로 대역의 저하를 알기 때문에, 그것에 맞추어 경로 정보를 갱신하고, 갱신 이전에는 ts(d) 에 송신 예정이었던 다음 패킷 블록 (300-d) 의 송신 시각을 ts'(d) 로 변경한다. 또한 노드 101 로부터 102 로 송신하는 패킷 블록의 사이즈도 300-b, 300-c 에 비하여 작게 변경하고 있다.
이상의 판단은, 갱신된 경로 정보 및 송신 이력을 사용하여 구한, 블록 선두의 예측 도착 지연 tf(d) 가 tb(d)+th 이하가 되고, 또한 말미의 예측 도착 시각이 tb(d)+to 이하가 되도록 송신 시간과 블록 사이즈를 계산한 결과이다. 실제로는 ts(g) 이후 tf(d) 까지의 사이에도 경로 상태는 변동하기 때문에, 도면에서는 실제로 선두가 도달하는 시간 tf'(d) 는 tf(d) 와 어긋나 있다.
이 어긋남도, 다음의 측정 결과의 피드백에 의해 이후의 패킷 블록의 송신 스케줄링에 반영된다. 이상과 같은 동작에 의해, PAC 스케줄러는 예측 도착 시각의 어긋남을 수정하도록 송신 타이밍을 제어하여, 대역의 유효 이용과 지연 억제의 양립을 도모한다. 먼저 설명한 윈도우 제어는 왕복 지연에 대한 제어를 제공하지만, PAC 스케줄러에서는 또한, 경로의 편도마다의 지연을 개별적으로 측정, 피드백하기 때문에, 왕로와 복로의 상태가 상이한 경로에 있어서, 각각에 적합한 제어가 가능하다는 장점이 있다. 예를 들어, 왕로의 대역이 현 상황의 부하에 대하여 크고, 복로의 대역이 반대로 현 상황의 부하에 대하여 작은 경우에, 복로의 지연의 증대만이 증대한다. 이때, 왕복 지연에 기초하는 제어를 실시하고 있으면 왕로, 복로 양쪽의 송신측 노드가 당해 경로에 대한 부하를 줄이기 때문에, 결과적으로, 왕로의 대역을 유효하게 활용할 수 없게 된다. 그런데 이때, 왕로와 복로의 지연을 별개로 감시하고 있으면, 왕로의 부하 경감이 불필요하다는 것을 알 수 있기 때문에, 왕로의 대역을 유효하게 활용할 수 있다.
상기 플로우 제어 프로토콜의 동작을 실현하기 위해서 스케줄링부 (202) 가 따르는 플로우차트를 도 5 에, 패킷 블록 작성부 (203) 가 따르는 플로우차트를 도 6 에 나타낸다. 스케줄링부 (202) 는 기억부 (205) 의 기억 내용을 갱신할 때마다 다음으로 패킷 블록을 송신 가능하게 하는 시각과 블록 사이즈를 결정하여 패킷 블록 작성부 (203) 에 통지한다.
먼저, 도 5 에 관해서 구체적으로 설명한다. S51 의 처리에서는, 기억부 (205) 로부터, 경로 상태 정보 또는 패킷 송신 이력 정보가 갱신되면 그들의 통지를 받는다. 다음으로, 최신의 송신 경로 상태 정보와, 그 송신 경로 상태 정보가 유효한 송신이 끝난 패킷 이후의 송신 이력으로부터, 다음에 송신하는 패킷의 선두의 도착 예측 시각이 무부하시의 도착 예측 시각 (tb) 에 역치 (th) 를 더한 시각과 동일해지도록, 다음 패킷 송신 시각 (tf) 을 계산한다 (S52). 다음으로, 최신의 송신 경로 상태 정보로부터, 최대 잉여 지연 to 의 전파 지연을 가져올 것으로 예측되는 데이터량 (d) 을 계산한다 (S53). 그리고, 이상에서 구한 패킷 송신 시각 (tf) 및 데이터량 (d) 을 패킷 블록 작성부 (203) 에 통지 (S54) 하 여 처리를 종료한다.
패킷 블록 작성부 (203) 는, 버퍼부 (201) 에 데이터가 있고, 또한 패킷 블록이 송신 가능한 경우에, 스케줄링부 (202) 로부터 통지된 블록 사이즈 이내의 사이즈의 패킷 블록을 구성하여 패킷 송신부 (204) 에 건넨다.
도 6 에서는, 기점이 되는 상태가 대기 (wait) 와 유휴 (idle) 의 2 종류가 있는데, 이것은 「송신 가능한 시각으로 되고 나서 패킷 블록을 송신하는」 처리가 타이머의 원용에 의해 실현되어 있기 때문이다. 이 타이머의 만료 (滿了) 를 기다리는 동안은 스케줄링부 (202) 는 대기 상태에 머무른다. 한편, 유휴 상태는, 타이머를 기다리지도 않고, 처리해야 할 데이터도 수신하고 있지 않은 상태이다.
이하, 도 6 에 관해서 설명한다.
먼저, 유휴 상태 시에 관해서 설명한다. 이 상태에 있어서는, 「버퍼부 (201) 로부터 신규 패킷 수신 통지를 수신」한 경우 (S61), 또는, 「스케줄링부 (202) 로부터, 패킷 송신 시각 (tf) 및 데이터량 (d) 의 갱신 통지를 수신」한 경우 (S62) 에 처리가 시작된다. 처리가 시작되면 우선 패킷 송신 시각 (tf) ≤ 현재를 판단한다 (S63). 이 판단의 결과가 아니오이면, 시각 tf 에 만료하도록 타이머를 기동하여 처리를 종료하고 (S64), 대기 상태가 된다. 또한, S63 의 판단 결과가 예인 경우, 최신의 수신 경로 상태 정보 및 Ack 정보를 포함하는 리더 패킷을 작성한다 (S65). 다음으로, 버퍼의 선두로부터 패킷 블록 사이즈가 데이터량 (d) 이하가 되는 최대량의 데이터를 버퍼부 (201) 로부터 취출하여 데이터 패킷군을 작성한다 (S66). 다음으로, 리더 패킷 및 데이터 패킷군을 패킷 송신부 (204) 에 송신한다 (S67). 다음으로, 송신 기록을 기억부 (205) 에 기입 (S68) 처리를 종료하여 유휴 상태로 되돌아간다.
다음으로, 대기 상태 시에 관해서 설명한다. 대기 상태 시에 「스케줄링부 (202) 로부터, 패킷 송신 시각 (tf) 및 데이터량 (d) 의 갱신 통지를 수신」한 경우 (S71) 의 처리는 상기 유휴 상태 시에 스케줄링부 (202) 로부터, 패킷 송신 시각 (tf) 및 데이터량 (d) 의 갱신 통지를 수신한 경우의 처리와 동일하다.
또한, 대기 상태 시에, 송신 타이머가 만료한 경우의 처리는, 상기 유휴 시의 S65∼S68 의 처리와 동일한 처리를 한다.
또, 이상의 알고리즘의 설명에 있어서, 기억부 (205) 의 기억 내용이 갱신되었을 때의 스케줄링부 (202) 로의 통지는 기억부가 실시하고 있는데, 이것을 패킷 해석부 (207), 패킷 블록 작성부 (203) 또는 패킷 송신부 (204) 가 실시해도 동일한 동작이 실현된다.
상기 PAC 스케줄링을 실시한 경우, tb(a) 등을 구하기 위해서 무부하시의 경로 지연의 지식이 필요하게 된다. 이것은 미리 계측해 두고 상수로서 취급할 수도 있지만, 경로 상태나 시계 (時計) 의 드리프트 등의 영향을 피하기 위해서 갱신하고자 하는 경우, 다음과 같은 순서로 통신 중에 이것을 실시할 수 있다. 먼저, 수신측 노드의 패킷 해석부 (207) 에 있어서, 어느 패킷 블록 A 의 말미의 수신 시각에서부터 다음 패킷 블록 B 의 선두의 수신 시각의 사이에 간격이 있을 경우, 경로에는 여유가 있어, 패킷 블록 B 의 선두 패킷은 무부하 상태에서 도착한 것으로 생각할 수 있다.
도 4 의 예에서는, 패킷 블록 (300-b) 의 리더 패킷 (302-b) 은 직전의 패킷 블록 (300-a) 의 말미의 수신시부터 간격을 두고 수신하고 있기 때문에, 무부하 상태에서 도착하고 있다. 이러한 간격을 검출하였을 때에, 전송 노드 (102) 는 패킷 (302-b) 이 무부하로 도착한 것을 나타내는 정보를 송신 노드에 대한 리더 패킷 (302-g) 에 포함시킴으로써, 무부하 지연 검출을 전송 노드 (101) 에 전달한다.
리더 패킷 (302-g) 을 수신한 전송 노드 (101) 는, 무부하시의 경로 지연치를 302-b 의 지연에 갱신한다.
또한, PAC 스케줄러를 사용하는 경우에는, 정기적으로 무부하 지연치를 사용한다. 이 때문에, 일정 시간 이상 무부하 지연이 검출되지 않은 경우에는, 블록 송신 역치가 되는 잉여 지연 th 를 부 (負) 의 값으로 함으로써, 강제적으로 무부하에서의 전송을 유발하도록 하면, 일정 시간 이내의 주기에서의 부하시 경로 지연치가 실현된다. 그 때문에, th < 0 으로서 경로에 전혀 부하가 가해져 있지 않은 상태에서만, 데이터를 송신할 수 없는 상태를 만들어 내고 있다.
이상 설명한 바와 같이, 전송 노드 (101 및 102) 내의 구성 요소 각각의 동작에 의해, 통신 경로의 지연 및 속도의 감시 결과를 피드백하여 패킷 유량 제어를 실시하기 때문에, 본 발명에서는, 경로 정보 (추정 속도 및 지연) 를 고려한 패킷 송신이 가능해진다. 또한, 이와 같이 시그널링 정보를 리더 패킷에 집약하여 통신하고 있기 때문에, 수신측에서의 플로우 제어 정보의 추출, 송신측에서의 스케줄링 정보의 갱신 모두, 종래예와 같이 패킷 송수신과 같은 빈도로 실시하는 것이 아니고, 패킷 블록 송수신의 빈도로 실시하기 때문에, 전송 노드의 처리 부하가 경감된다.
또한 하나의 패킷 블록에 포함되는 패킷 수가 일정 이상이면, 시그널링 정보를 데이터 패킷으로부터 생략하여, 리더 패킷에 집약하는 만큼, 같은 데이터량에 대하여 종래예에 비해 패킷 사이즈의 합계를 낮게 억제하는 효과가 있다. 또 패킷 트레인 방식에 의한 고정밀도한 경로 대역 추정을, 속도 측정를 위해서만 사용되는 전용 프로브 패킷 (더미 패킷) 등을 사용하여 대역 이용 효율을 손상시키지 않고서 실시할 수 있다.
또, 이상의 설명에서는 속도 측정의 유효성을 최대화하기 위해서, 동일 패킷 블록 내의 패킷은 동시에 송신하고 있지만, 본 발명의 실시로서는, 동시가 아니라, 보틀넥 대역보다 높은 레이트로 복수의 패킷을 일정한 송신 속도로 송신해도 된다. 수신측에서 계측되는 패킷의 분산은 보틀넥 대역을 반영하기 때문에, 대역 추정이 가능하기 때문이다.
그 경우에는, 경로의 보틀넥 대역이 송신 속도 이상이면 추정 속도가 얻어지지 않지만, 예를 들어, 어느 특정한 속도를 필요로 하는 애플리케이션이, 경로가 그 속도 이상에서 전송 가능한지 아닌지를 판단하는 것은 가능하다. 이유는, 수신 레이트가 송신 레이트보다 낮은 경우에는 경로의 속도에 의해 전송 레이트가 제한되게 되어, 속도를 측정할 수 있기 때문이다. 또한, 그렇지 않더라도, 경로 속도가 송신 레이트 이상임은 알 수 있기 때문이다 (경로 상, 송신 레이트보다 낮은 레이트의 링크가 존재하지 않기 때문). 송신 속도를 일정 이하로 유지함 으로써, 동시에 송신하는 경우에 비하여 경로에 가해지는 부하를 억제할 수 있기 때문에, 과잉 부하에 의한 패킷 손실의 가능성을 저하시킬 수 있다.
이상 설명한 제 1 실시예에서는 플로우 제어 정보로서 경로 지연 및 대역의 감시 정보 (경로 정보) 만을 포함하고 있지만, 그 밖에 수신 확인 정보 등을 포함해도 된다. 예를 들어, 리더 패킷의 수신 확인과, 대응하는 패킷 블록 내에서 수신되어 있지 않은 데이터 패킷의 식별 정보 (재송 제어 정보) 를 포함시키면, 송신측이 재송해야 할 패킷을 정확하게 동정하는 것이 가능하다.
리더 패킷이 손실되어 있는 경우에는, 예를 들어, 리더 패킷의 손실을 나타내는 정보와, TCP 에서 사용되는 것과 동일한, 시퀀스 번호에 기초하는 Ack 정보를 병용함으로써 송신의 완전성이 유지된다. 예를 들어, 리더 패킷에도 시퀀스 번호를 부여하고, 수신측이 Ack 정보를 돌려주도록 하면, Ack 되어 있지 않은 패킷을 송신측이 재송함으로써, 리더 패킷, 데이터 패킷 모두 무손실의 전송을 보장할 수 있다.
또한 제 1 실시예에서는 리더 패킷은 단일인 것으로 하고 있지만, 중복성 (redundancy) 를 위해 복수로 해도 상관없다. 그 때 동일한 패킷의 클론을 작성해도 되고, 복수의 리더 패킷을 합하여 블록 전체의 블록 제어 정보가 커버되도록 해도 된다.
또한 본 발명에서의 리더 패킷은, 패킷 블록이 복수의 데이터 패킷으로 이루어지는 경우에는 데이터 본체를 포함하고 있어도 되고, 또한 블록 관리 정보가 블록 내 패킷을 식별하는 데에 기존의 식별자, 예를 들어, IP 헤더 내의 ID (IDentification) 필드를 사용하는 경우에는, 데이터 패킷에 블록 피관리 정보는 필요하지 않다.
또한, 이러한 「리더 패킷이 유저 데이터를 포함하지 않는다」 「데이터 패킷은 블록 비관리 정보를 포함한다」라는 한정을 제거해도, 본 발명의 특징인, 리더 패킷에 블록 내 패킷 및 그것들로부터의 플로우 제어 정보 생성 방법을 동정할 수 있는 정보를 부여하는 것, 또한 수신측 노드에서, 수신 패킷이 소속하는 패킷 블록에 따른 플로우 제어 정보의 생성을 실시하는 것은 가능하기 때문이다.
또, 상기 서술한 제어 정보는, 라우팅 정보일 수도 있다.
또한 송신되는 패킷 모두가 어떠한 하나의 패킷 블록에 속할 필요는 없고, 예를 들어, 정기적인 회선 감시를 할 때에만 패킷 블록을 구성하여 송신하고, 감시 결과를 얻은 후에는 다음 감시 시각까지의 동안은 각 데이터 패킷을 단독으로 송신해도 된다.
(제 2 실시예)
다음으로 본 발명의 제 2 실시예에 관해서 설명한다. 도 7 에, 본 실시예에서 사용되는 전송 노드 (101 및 102) 의 구성을 나타낸다. 전송 노드 (101) 의 구성은 제 1 실시예에서 사용한 도 1 의 구성과 동일하지만, 전송 노드 (102) 는 복수의 패킷 수신부 (206) 및 패킷 송신부 (204) 를 갖고 있다. 전송 노드 (101 와 102) 의 사이에 있는 IP 망 (400) 은, 전송 노드 (101) 의 패킷 송신부 (204) 로부터 전송 노드 (102) 의 패킷 수신부 (206-1) 로의 경로와, 패킷 수신부 (206-2) 로의 경로를 제공하고, 각각의 경로는 일반적으로 물리적으로 떨어진 링크를 포함하며, 대역이나 지연은 서로 독립적으로 변동하는 것으로 한다. 마찬가지로, 전송 노드 (102) 의 패킷 송신부 (206-1) 로부터 전송 노드 (101) 의 패킷 수신부 (204) 로의 경로와, 패킷 수신부 (204-2) 로부터의 경로의 대역이나 지연도, 서로 독립적으로 변동하는 것으로 한다.
본 실시예는 이상과 같은, 2 노드 사이에 복수의 선택 가능한 경로가 있는 경우에 대한 본 발명의 적용예이다. 본 실시예의 패킷 구조 및 플로우 제어를 위한 시그널링 기구는 제 1 실시예와 동일하지만, 플로우 제어 정보 및 스케줄링 정보의 내용, 및 패킷 블록의 구성이 제 1 실시예와 다르다.
본 실시예에서의 패킷 블록은, 복수의 경로의 각각에 송출되는 데이터 패킷과, 1 개 이상의 리더 패킷으로 이루어진다. 시퀀스 번호는 경로마다 주어지는 것으로 하고, 리더 패킷은 블록 관리 정보로서 타임 스탬프와, 경로마다의 패킷 블록 내 패킷의 시퀀스 번호 범위를 포함한다. 패킷 해석부 (207) 에 의한 지연 및 속도의 추정도, 경로마다 행해진다. 동일하게 리더 패킷 상의 플로우 제어 정보도, 경로마다의 지연 및 속도 추정 결과를 포함한다.
도 7 에 나타내는 패킷 블록 (300-1 및 300-2) 은, 선택 가능한 경로가 2 개이고, 리더 패킷이 1 개인 경우의 예이다. 패킷 블록 작성부 (203) 는 복수 경로에 대하여 1 개의 패킷 블록을 작성하고, 패킷 송신부 (204) 는 블록 내의 각 패킷에 관하여, 패킷 블록 작성부 (203) 가 지시한 경로를 경유하여 송출한다.
패킷 트레인 방식에 의한 경로 대역 추정은 당해 경로에 2 개 이상의 패킷이 동시에 또는 그 경로의 보틀넥 대역 이상의 송신 속도로 송신되었을 때에 가능해지 기 때문에, 대역 추정을 가능하게 하기 위해서는 1 개의 패킷 블록에 관하여 각 경로로부터 2 개 이상의 패킷이 송신될 필요가 있다. 이 때문에 패킷 블록 구성의 결과 송신 패킷이 1 개가 된 경로에 대해서는, 송신 대상의 패킷과 함께 더미 패킷을 송신한다. 이 더미 패킷의 내용은, 예를 들어, 시퀀스 번호만이어도 된다.
본 실시예에서 사용하는 플로우 제어 알고리즘으로는, 제 1 실시예에서 사용하는 플로우 제어 알고리즘의 예로서 든 것을 확장하여 적용할 수 있다.
제 1 실시예에 있어서의 제 1 플로우 제어 알고리즘의 예로서 설명한 윈도우 제어 방식은, 제 2 실시예에 있어서는 다음과 같이 확장된다. 리더 패킷에는 전체 경로의 Ack 정보 및 수신 윈도우 사이즈를 포함시킨다. 리더 패킷을 수신한 전송 노드의 스케줄링부 (202) 는, 각 경로의 송신 가능 데이터량을 나중에 나타내는 바와 같이 계산하여 패킷 블록 생성부 (203) 에 통지한다.
패킷 블록 생성부 (203) 는, 패킷 블록의 각 경로 부분이 송신 가능 데이터량을 초과하지 않도록 버퍼부의 데이터를 취출하여, 각 경로에 대한 할당을 결정한다.
단, 송신 가능 데이터량이 미리 정한 하한에 미치지 않는 경로에 대해서는, 데이터의 할당을 행하지 않는다. 리더 패킷은, 송신 가능 데이터량이 가장 큰 경로에 할당한다. 같은 리더 패킷을, 중복성을 위해 다른 경로에도 할당해도 된다.
또한, 리더 및 데이터 합하여 1 패킷밖에 할당되지 않은 경로에 대해서는, 더불어 더미 패킷을 할당한다. 블록 내의 각 패킷에 대한 할당 경로가 결정되면, 할당 정보와 함께 모든 블록 내 패킷을 패킷 송신부 (204) 로 건넨다.
패킷 송신부 (204) 에 건네 준 패킷의 정보는 송신 이력으로서 기억부에 기록한다. 수신측 노드에 있어서의 수신 윈도우 사이즈의 결정은, 제 1 실시예에서와 동일하게 이루어진다.
제 1 실시예에 있어서의 제 2 플로우 제어 알고리즘의 예로서 설명한 PAC 스케줄러 방식은, 제 2 실시예에서는 다음과 같이 확장된다. 2 개의 경로를 포함하는 경우의 동작을, 도 8 을 사용하여 설명한다. 도 8 에는, 2 개의 경로에 대응하여 2 개의 시간 수직선이 있고, 각각 각 경로를 경유한 패킷의 도착 예측 시퀀스가 나타나 있다.
n 번째의 경로에 대하여, tb, tf, th, to 는 각각 tb(n), tf(n), th(n), to(n) 으로 나타나 있고, 각각의 의미는 도 4 에서와 동일하지만, 나타나 있는 패킷이 실제의 도착 시퀀스가 아니라, 송신측 노드가 예측한 도착 시퀀스인 점이 상이하다. 송신측 노드는, 어느 하나의 경로에 관해서, tb(n)+th(n) < tf(n) 이면 패킷 블록 송신 가능한 것으로 한다. 도 8 에서는, tb(1)+th(1) < tf(1) 이기 때문에, 바로 송신이 가능하다.
스케줄링부 (202) 는, 리더 패킷 (302) 의 도착 예측 시각을 각 경로에 관해서 계산하여, 가장 일찍 도착할 것으로 예측되는 경로에 리더 패킷 (302) 을 송신하도록 패킷 블록을 구성한다. 도 8 에서는, 리더 패킷 송신 경로로서 경로 2 가 선택되어 있다.
다음으로 버퍼부 (201) 에 있는 최초의 패킷 (301-1) 의 데이터 사이즈를 취득하고, 리더 패킷과 합하여 송신한 경우에 가장 일찍 도착할 것으로 예측되는 경로에 배속한다. 도 8 에서는, 최초의 데이터 패킷 (301-1) 은 경로 1 에 배속되어 있다. 이하 1 개씩 블록 내 패킷을 늘려 동일하게 배치하고, 어느 경로에 대해서도, 송신되는 패킷 사이즈의 합이 tb(n)+to(n) 이하가 되는 최대의 송신 패킷 수가 구해진 시점에서 패킷 블록의 구성이 결정된다.
도 8 에서는, 경로 1 과 경로 2 를 합하여 5 개의 데이터 패킷 (301-1 에서 301-5) 을 포함하는 패킷 블록 (300) 을 구성하고 있다.
이상 설명한, 확장된 윈도우 제어 및 PAC 스케줄링에서는, 리더 패킷을 가장 낮은 지연으로 예측되는 경로로부터 송신함으로써, 보다 지연이 큰 경로에 관한 플로우 제어 정보의 통지도, 가장 낮은 지연인 경로와 동등한 지연으로 실시할 수 있다.
그러나 수신 노드에 있어서의 패킷 수신으로부터, 그 수신 상태에 기초하여 생성한 플로우 제어 정보가 송신 노드에 통지될 때까지 걸리는 시간에는, 플로우 제어 정보의 전송 지연만이 아니고, 패킷 수신으로부터 플로우 제어 정보의 송신까지의 대기 시간이 포함된다. 이 대기 시간은, 최대로 블록 송신 간격이 되기 때문에, 노드 처리 부하 경감, 패킷 트레인 방식에서의 경로 대역 추정의 정밀도나, 대역의 유효 활용을 위해 경로 상에서 버퍼하는 데이터량을 일정 이상으로 유지하는 등의 목적으로 블록 당 각 경로에 대한 할당량을 크게 하면, 플로우 제어 정보 피드백 지연의 증가를 초래한다.
이하에서는, 동등한 지연의 경로가 복수 존재하는 경우에, 각 경로의 블록 당 데이터량을 일정 이상으로 유지하면서, 플로우 제어 정보 송신까지의 대기 시간도 저감하기 위한 제 3 플로우 제어 알고리즘에 관해서, 도 9 를 참조하여 설명한다.
도 9 에서는, 도 4 와 동일하게 「101 시각」수직선은 전송 노드 (101) 상의 시각, 「102 시각」수직선은 전송 노드 (102) 상의 시각을 나타낸다. 단, 전송 노드 (101) 와 전송 노드 (102) 사이에는 경로 1 과 경로 2 의 2 개의 경로가 있는 것으로 하고, 각각의 경로를 경유한 패킷에 관해서, 전송 노드 (101) 에 의한, 전송 노드 (102) 상에서의 수신 시퀀스의 예측을 「경로 1 수신 예측」및「경로 2 수신 예측」선 상에 나타내고 있다.
각 패킷 블록은 기본적으로 1 개의 경로만으로 구성한다. 각 경로의 패킷 블록의 블록 사이즈는 블록 내 패킷의 전송 지연이 일정, 즉 어느 경로의 블록이나 (블록에 포함되는 패킷 사이즈의 합계/경로의 속도) 동일해지도록 정해진다. 그 위에 각 패킷 블록은, 블록 내 패킷의 전송 지연/시그널링에 사용 가능한 경로 수로 정의되는 블록 송신 주기 ti 만큼 어긋나게 송신되어, 이것이 리더 패킷 송신의 주기가 된다.
그렇게 하면 도 9 에 나타낸 바와 같이, 경로 1 을 사용하는 패킷 블록과 경로 2 를 사용하는 패킷 블록의 도착은 교대가 된다. 이와 같이 패킷 블록 송신을 스케줄링함으로써, 속도 추정에 사용되는 패킷 트레인의 길이에 비하여 리더 패킷의 송신 간격 (피드백 주기) 을 짧게 할 수 있다.
이것은, 제 1 실시예와 같이 1 개의 경로만을 사용하여 패킷 블록을 송신하는 경우에는, 리더 패킷의 도착 간격은 패킷 트레인의 길이와 대략 동일한 것에 반하여, 도 9 에 기재된 바와 같이 복수의 경로를 사용하여 패킷 블록을 송신하는 경우에는, 리더 패킷의 도착은 패킷 트레인의 길이보다 짧은 ti 의 간격으로 수신 가능해지기 때문이다.
경로 상태가 변동하는 경우에는 반드시 도 9 와 같이 정기적인 리포트의 도착이 보장되지 않는다. 예를 들어, 시각 tf(a) 와 시각 tf(c) 의 사이에서 경로 1 의 속도가 저하되면, 리더 패킷 (302-c) 의 도착은 tf(c) 보다 늦어진다. 이러한 경우에는, 노드 (101) 는 ts(f) 또는 ts(g) 에 노드 (102) 로부터 송신된 리더 패킷의 정보에 의해 속도 변화를 검지하고, ts(d) 에 송신되는 패킷 블록 (300-d) 의 데이터량을, 노드 (102) 에 있어서 선두에서 말미까지의 수신에 걸리는 시간 (수신 완료 시간) 이 ti 정도 이하가 되도록 조절한다. 또한 300-d 의 다음으로 송신하는 패킷 블록도, 수신 완료 시간이 ti 정도 이하가 되는 사이즈로서, 경로 2 로부터 송신한다. 이후, 경로 1 이 송신 가능한 상태, 즉 tb+th < tf 가 될 때까지는, 경로 2 로부터만 수신 완료 시간이 ti 정도 이하가 되는 사이즈의 패킷 블록을 송신한다. 이상과 같이 하여, 경로 상태의 변화에 의해 경로 1 의 지연이 커져 있는 상태에 있어서도, 리더 패킷의 송수신 주기를 ti 정도 이하로 유지할 수 있다.
반대로 예를 들어, 시각 tf(a) 과 시각 tf(c) 사이에서 경로 1 의 속도가 상승하면, 리더 패킷 (302-c) 의 도착은 tf(c) 보다 빨라진다. 이러한 경우에는, 노드 (101) 가 속도 변화를 ts(c) 와 ts(d) 사이에서 검지하고, 다음의 경로 1 경유의 리더 패킷의 도착 예정 시각 tf(e) 까지의 사이에 도착 가능한 데이터량만큼 경로 1 경유의 패킷을, ts(d) 에 송신되는 패킷 블록 (300-d) 에 더한다. 이때, 패킷 블록 (300-d) 은 경로 1, 2 쌍방의 패킷을 포함한다. 300-e 이후의 패킷 블록 송신에 관해서는, 블록 사이즈를 새로운 속도에 대하여 전송 지연이 ti 의 사용 가능 경로 수배 이내가 되도록 재결정한다. 이때, 리더 패킷 도착 간격은 속도 변화전과 동일하게 ti 이내로 유지된다. 한편, 패킷 블록에 차지하는 리더 패킷의 데이터량의 비율은 작아지기 때문에, 대역 이용 효율은 향상된다.
이상 설명한 제 2 실시예에 의하면, 각 통신 경로의 지연 및 속도의 감시 결과를 반영한 각 경로로의 부하 분산이 가능해진다.
본 발명은 송신측에서의 송신 타이밍의 결정 및 송신 경로의 결정을, 종래예와 같이 단일 패킷 또는 패킷 쌍마다 실시하는 것이 아니라, 패킷 블록 단위로 실시하기 때문에, 패킷 블록의 데이터량을 크게 하면 전송 노드의 송신 처리에 걸리는 부하가 경감된다.
또한 시그널링 정보를 리더 패킷에 집약하였기 때문에, 수신측에서의 플로우 제어 정보의 추출, 스케줄링 정보의 갱신 모두, 종래예와 같이 패킷 송신과 동일한 빈도로 실시하는 것이 아니고, 패킷 블록 송신의 빈도로 실시하게 되기 때문에, 전송 노드의 수신 처리에 걸리는 부하가 경감된다.
또한, 시그널링 정보가 집약된 리더 패킷을 가장 일찍 도착하는 경로로부터 패킷 블록의 선두로서 송출함으로써, 지연이 큰 경로의 상태 정보를, 당해 지연이 큰 경로 자신을 사용하여 피드백하는 경우에 비하여 단시간에 피드백할 수 있는 효과가 있다. 또한 각 경로의 패킷 블록에 포함되는 패킷 수가 일정 이상이면, 시그널링 정보를 데이터 패킷으로부터 생략하는 만큼, 같은 데이터량에 대하여 종래예에 비해 패킷 사이즈의 합계를 낮게 억제하는 효과가 있다.
그리고 상기 제 2 실시예에서와 같이, 패킷 트레인 방식에 의한 고정밀도의 경로 대역 추정을, 전용 프로브 패킷 등을 사용하여 대역 이용 효율을 손상시키지 않고 실시할 수 있다.
이상에서는, 주로 전송해야 할 데이터가 많은, 고부하 상태에서의 동작을 설명하고 있다. 저부하시에는 보내야 될 데이터가 버퍼부에 없기 때문에, 정기적으로 더미 패킷 등을 송신하여 회선의 상태를 감시할 필요가 있다.
그 경우, 단일 패킷 블록에 포함되는 패킷 수가 작아지기 때문에, 속도 추정의 정밀도가 고부하시에 비하여 부족하다. 이러한 경우에도, 연속하는 패킷 블록에 포함되는 패킷을 연결하여 생각함으로써, 속도 추정 정밀도를 일정 이상으로 유지할 수 있다. 도 10 을 참조하여 설명한다. 도면 중, 3 개의 패킷 블록 (300-a, 300-b, 300-c) 에 속하는 패킷이 어떠한 경로 상에서 수신되고 있고, 선행하는 패킷 블록의 말미와 다음 패킷 블록의 선두 사이에는 아무것도 수신되어 있지 않은 시간이 있다.
이러한 경우, 수신 속도의 추정은, 패킷 블록 (300-b) 에 포함되는 데이터 패킷 (301-2, 301-3) 이 301-1 의 직후에 수신된 것으로 가정하여 실시한다. 또한 동일하게, 패킷 블록 (300-c) 에 포함되는 데이터 패킷 (301-4) 은 301-3 의 직후에 수신된 것으로 가정한다. 그렇게 하면, 패킷 블록 (400) 과 같은 가상 패킷 블록이 구성된다. 이때, 데이터 패킷 (301-2, 301-3) 의 수신에 걸린 시간은 패킷 블록 (300-b) 의 수신시에 측정한 패킷 (302-b) 과 패킷 (301-3) 의 수신 시각차를, 또 데이터 패킷 (301-4) 의 수신에 걸린 시간은 패킷 블록 (300-c) 의 수신시에 측정한 패킷 (302-c) 과 패킷 (301-4) 의 수신 시각차를 이용한다. 그리고 가상 패킷 블록 (400) 의 데이터 패킷 수신에 걸린 시간은, 300-a, 300-b, 300-c 의 수신시에 측정한 데이터 패킷의 수신 소요 시간의 합계로 한다. 수신 속도는, 가상 패킷 블록 (400) 의 데이터 패킷 수신에 걸린 시간으로 301-1 에서 301-4 까지의 4 개 데이터 패킷의 데이터량의 합계를 나눈 값으로 추정한다.
리더도 포함하여 5 개의 패킷으로 이루어지는 가상 패킷 블록 (400) 을 사용하여 속도를 추정함으로써, 보다 구성 패킷 수가 적은 패킷 블록 (300-a, 300-b, 300-c) 에 비하여 측정 정밀도 향상의 효과를 기대할 수 있다.
(제 3 실시예)
이하에서는, 리더 패킷의 블록 관리 정보로서 포함시키는 정보에 의해 새로운 기능을 실현하는 실시예에 관해서 설명한다. 도 11 은, 본 발명의 제 3 실시예로서, 블록 관리 정보 (500) 에, 송신측 노드가 예측한 각 링크의 속도와, 블록 내 데이터의 사이즈를 포함하여, 통신 이상의 조기 검출을 가능하게 하는 동작의 개략을 나타내고 있다.
도 11 은, 어떤 경로에 관하여 시퀀스 번호 1 에서 6 의 패킷을 포함하는 패킷 블록을, 당해 링크의 속도가 350Kbps 로 추정된 경우에 제 3 실시예에 있어서 송신되는 블록 관리 정보와, 수신측 노드에 있어서의 데이터 패킷 수신 타이밍의 관계를 나타내고 있다. 도 11 하부의 시각의 수직선은, 수신 노드에 있어서의 실제의 패킷 도착 시퀀스를 나타낸다.
수신 노드는, 패킷 2 까지는 송신 노드가 예측한 대로의 속도로 도달하기 때문에 아무것도 하지 않지만, 패킷 3 에서 도착 간격의 늘어남을 검출하여, 송신측의 예측 속도와 실제 전송 속도의 어긋남이 발생한 것을 인식한다. 어긋남이 일정 이상이라고 판단한 시점에서 이상 (異常) 리포트를 작성하여 회신함으로써, 송신 노드가 링크 상태를 잘못 인식하고 있는 시간을 최소한으로 할 수 있어, 플로우 제어 동작의 추종성이 향상된다.
(제 4 실시예)
다음으로, 유저 플로우 단위에서의 패킷 손실의 조기 검출을 가능하게 하는 제 4 실시예에 관해서 설명한다.
도 12 는, 본 발명의 제 4 실시예에 있어서의 블록 관리 정보와, 수신측 노드에서의 데이터 패킷 수신 시퀀스의 예를 나타내고 있다. 블록 관리 정보 (500) 에는, 블록 내 각 패킷의 유저 플로우 정보가 포함되어 있다. 여기서 유저 플로우란, 패킷의 도착 순서를 보존하는 대상이 되는, 엔드 호스트간 패킷 전송 세션을 가리키고, 각 유저 플로우에는 고유한 ID 가 부여되어 있는 것으로 한다.
또한 유저 플로우 내의 각 패킷에는, 유저 플로우 내에서 고유한 시퀀스 번호가 경로마다의 시퀀스 번호와는 별도로 부여되어 있는 것으로 한다. 도면에서는, 송신 노드는 임의의 경로에 대해 4 에서 11 까지의 시퀀스 번호의 패킷을 포 함하는 패킷 블록에, 2049 와 2050 이라는 2 개의 유저 플로우가 포함되어 있다. 도 12 하부의 시각의 수직선은, 수신 노드에 있어서의 실제의 패킷 도착 시퀀스를 나타낸다.
도 12 의 예에서는, 송신한 결과, 패킷 5 와 패킷 6 이 손실되는데, 패킷 7 의 수신에 의해 손실은 검출된다. 또한 손실된 패킷 5 과 패킷 6 이 각각 플로우 2049 의 #14 와 플로우 2050 의 #41 인 것을 플로우 관리 정보 (500) 에 의해 알 수 있기 때문에, 그때까지 도착한 이들 2 개의 플로우에 속하는 패킷은, 손실 패킷의 도착을 기다리지 않고 전송된다.
경로마다 및 유저 플로우마다 별개의 시퀀스 번호를 부여하는 종래예에는 비특허 문헌 8 이 있지만, 그 종래예에서도 손실 패킷의 유저 플로우 정보는 제공되지 않아, 따라서 특정한 유저 플로우의 패킷이 순서대로 도달되어 있지 않은 경우에, 원인이 패킷 손실인지 역다중화 링크 통과에 의한 순서 역전인지를 판단하는 것은 불가능하다. 그 때문에 원인이 패킷 손실이었던 경우에도, 순서 역전을 상정하여 일정 시간 전송을 보류하지 않을 수 없었다. 본 실시예는 손실된 패킷의 유저 플로우마다의 시퀀스 번호를 수신 노드가 알 수 있기 때문에, 패킷 손실을 순서 역전과 혼동하는 일 없이 확실하게 검출할 수 있다. 따라서 패킷 손실 검출시에는 전송 보류를 생략할 수 있어, 엔드 호스트간 세션의 지터를 경감하는 효과가 있다.
(제 5 실시예)
다음으로 본 발명의 제 5 실시예로서, 블록 관리 정보에 도 13 에 나타낸 바 와 같은, 블록 내 데이터 패킷의 데이터 공통 부분에 관한 정보를 포함시킴으로써 데이터 압축을 가능하게 하는 동작의 개략을 설명한다. 여기서 압축 대상이 되는 데이터 패킷은, 데이터 영역 내에 공통 부분을 포함하는 것으로 한다. 도면 중, 개시 시퀀스 번호 및 종료 시퀀스 번호는 데이터 압축 대상이 되는 패킷의 범위를 나타낸다.
또한 개시 비트 및 종료 비트는, 압축 대상 패킷의 데이터 영역 중 공통인 범위를, 비트 위치의 시점과 종점에 의해 나타내는 것이다. 개시 비트 ∼ 종료 비트간 데이터에는, 개시 비트에서 종료 비트까지의 사이의 공통 데이터가 수용된다. 이상의 압축 정보를 블록 관리 정보에 포함시키는 한편, 거기서 지정한 공통 데이터는 데이터 패킷의 데이터 필드로부터 삭제함으로써 송신 패킷 사이즈의 총량을 저감한다.
이상과 같은 데이터 압축은, 특히 데이터 자체가 다른 프로토콜의 헤더를 포함하고, 공통 부분이 큰 경우에 유효하다. 공통 부분이 상이한 패킷의 조합이나 비트 범위에 복수 존재하는 경우에는, 도 13 에 나타낸 바와 같은 압축 정보를 복수, 블록 관리 정보에 포함시키면 된다. 본 실시예에 의한 송신 데이터 압축은, 압축 상태를 송수신 노드 사이에서 공유하기 위한 시그널링이 필요한 종래의 데이터 압축 방법에 비하여 제어가 간략해진다.
또, 상기 서술한 제어 정보는, 라우팅 정보일 수도 있다.
본 발명의 노드 (101, 102) 등은, 그 동작을 하드웨어적으로 실현하는 것은 물론이고, 각 부의 기능을 실행하는 프로그램을 컴퓨터에서 실행함으로써 소프트웨 어적으로 실현할 수도 있다. 이 프로그램은, 자기 디스크, 반도체 기억 장치 기타 기록 매체에 유지되어, 그 기록 매체로부터 컴퓨터에 판독되고, 그 동작을 제어함으로써, 상기 서술한 기능을 실현할 수 있다.

Claims (39)

  1. 복수의 데이터 패킷과 리더 패킷을 하나의 블록으로 하고,
    상기 복수의 데이터 패킷에 관한 제어 정보를 상기 리더 패킷에 통합하여 송신하고,
    수신한 리더 패킷의 제어 정보에 기초하여, 패킷의 송신을 제어하는 것을 특징으로 하는 통신 방법.
  2. 제 1 항에 있어서,
    상기 제어 정보는, 플로우 제어 정보인 것을 특징으로 하는 통신 방법.
  3. 제 1 항에 있어서,
    상기 제어 정보는, 재송(再送) 제어 정보인 것을 특징으로 하는 통신 방법.
  4. 제 1 항에 있어서,
    상기 제어 정보는, 라우팅 정보인 것을 특징으로 하는 통신 방법.
  5. 제 1 항에 있어서,
    상기 제어 정보는, 경로 정보인 것을 특징으로 하는 통신 방법.
  6. 제 1 항에 있어서,
    상기 제어 정보는, 상기 데이터 패킷에 공통되는 제어 정보인 것을 특징으로 하는 통신 방법.
  7. 제 1 항에 있어서,
    리더 패킷을 일의적으로 식별하는 식별 정보를 상기 데이터 패킷에 포함시키는 것을 특징으로 하는 통신 방법.
  8. 제 1 항에 있어서,
    제어 정보를 통합한 데이터 패킷을 일의적으로 식별하는 식별 정보를 상기 리더 패킷에 포함시키는 것을 특징으로 하는 통신 방법.
  9. 제 1 항에 있어서,
    상기 복수의 데이터 패킷 또는 리더 패킷이, 복수의 회선을 경유하여 송수신되는 것을 특징으로 하는 통신 방법.
  10. 제 9 항에 있어서,
    상기 리더 패킷은, 상기 복수 회선 중 최고속의 회선을 이용하여 송신하는 것을 특징으로 하는 통신 방법.
  11. 제 9 항에 있어서,
    상기 제어 정보에 기초하여, 상기 리더 패킷 또는 상기 데이터 패킷을 송신하는 회선을 선택하는 것을 특징으로 하는 통신 방법.
  12. 제 1 항에 있어서,
    수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 데이터량을 결정하는 것을 특징으로 하는 통신 방법.
  13. 제 1 항에 있어서,
    수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 송신 시각을 결정하는 것을 특징으로 하는 통신 방법.
  14. 제 1 항에 있어서,
    동일 블록에 속하는 복수의 데이터 패킷의 수신 시각으로부터 통신 경로의 속도를 추정하는 것을 특징으로 하는 통신 방법.
  15. 복수의 데이터 패킷과 리더 패킷을 하나의 블록으로서 취급하여, 상기 복수의 데이터 패킷에 관한 제어 정보를 상기 리더 패킷에 통합하는 패킷 블록 작성 수단과,
    수신한 리더 패킷에 통합된 제어 정보에 기초하여, 패킷의 송신을 제어하는 스케줄링 수단을 갖는 것을 특징으로 하는 통신 시스템.
  16. 제 15 항에 있어서,
    상기 제어 정보는, 플로우 제어 정보인 것을 특징으로 하는 통신 시스템.
  17. 제 15 항에 있어서,
    상기 제어 정보는, 재송 제어 정보인 것을 특징으로 하는 통신 시스템.
  18. 제 15 항에 있어서,
    상기 제어 정보는, 라우팅 정보인 것을 특징으로 하는 통신 시스템.
  19. 제 15 항에 있어서,
    상기 제어 정보는, 경로 정보인 것을 특징으로 하는 통신 시스템.
  20. 제 15 항에 있어서,
    상기 패킷 블록 작성 수단은, 상기 데이터 패킷에 공통되는 제어 정보를 상기 리더 패킷에 통합하는 것을 특징으로 하는 통신 시스템.
  21. 제 15 항에 있어서,
    리더 패킷을 일의적으로 식별하는 식별 정보를 상기 데이터 패킷에 포함시키 는 것을 특징으로 하는 통신 시스템.
  22. 제 15 항에 있어서,
    제어 정보를 통합한 데이터 패킷을 일의적으로 식별하는 식별 정보를 상기 리더 패킷에 포함시키는 것을 특징으로 하는 통신 시스템.
  23. 제 15 항에 있어서,
    상기 복수의 데이터 패킷 또는 리더 패킷을 복수의 회선을 경유하여 송신하는 송신 수단을 갖는 것을 특징으로 하는 통신 시스템.
  24. 제 23 항에 있어서,
    상기 스케줄링 수단은, 리더 패킷을 상기 복수 회선 중 최고속의 회선을 이용하여 송신하도록 제어하는 것을 특징으로 하는 통신 시스템.
  25. 제 23 항에 있어서,
    상기 스케줄링 수단은, 제어 정보에 기초하여, 상기 리더 패킷 또는 상기 데이터 패킷을 송신하는 회선을 선택하는 것을 특징으로 하는 통신 시스템.
  26. 제 15 항에 있어서,
    상기 스케줄링 수단은, 수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 데이터량을 결정하는 것을 특징으로 하는 통신 시스템.
  27. 제 15 항에 있어서,
    상기 스케줄링 수단은, 수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 송신 시각을 결정하는 것을 특징으로 하는 통신 시스템.
  28. 제 15 항에 있어서,
    동일 블록에 속하는 복수의 데이터 패킷의 수신 시각으로부터 통신 경로의 속도를 추정하는 패킷 해석부를 갖는 것을 특징으로 하는 통신 시스템.
  29. 복수의 데이터 패킷과 리더 패킷을 하나의 블록으로서 취급하여, 상기 복수의 데이터 패킷에 관한 제어 정보를 상기 리더 패킷에 통합하는 패킷 블록 작성 수단과,
    타 노드로부터 수신한 리더 패킷에 통합된 제어 정보에 기초하여, 패킷의 송신을 제어하는 스케줄링 수단을 갖는 것을 특징으로 하는 노드.
  30. 제 29 항에 있어서,
    상기 패킷 블록 작성 수단은, 상기 데이터 패킷에 공통되는 제어 정보를 상기 리더 패킷에 통합하는 것을 특징으로 하는 통신 노드.
  31. 제 29 항에 있어서,
    리더 패킷을 일의적으로 식별하는 식별 정보를 상기 데이터 패킷에 포함시키는 것을 특징으로 하는 노드.
  32. 제 29 항에 있어서,
    제어 정보를 통합한 데이터 패킷을 일의적으로 식별하는 식별 정보를 상기 리더 패킷에 포함시키는 것을 특징으로 하는 노드.
  33. 제 29 항에 있어서,
    상기 복수의 데이터 패킷 또는 리더 패킷을 복수의 회선을 경유하여 송신하는 송신 수단을 갖는 것을 특징으로 하는 노드.
  34. 제 33 항에 있어서,
    상기 스케줄링 수단은, 리더 패킷을 상기 복수 회선 중 최고속의 회선을 이용하여 송신하도록 제어하는 것을 특징으로 하는 노드.
  35. 제 33 항에 있어서,
    상기 스케줄링 수단은, 타 노드로부터 수신한 리더 패킷에 통합된 제어 정보에 기초하여, 상기 리더 패킷 또는 상기 데이터 패킷을 송신하는 회선을 선택하는 것을 특징으로 하는 노드.
  36. 제 29 항에 있어서,
    상기 스케줄링 수단은, 타 노드로부터 수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 데이터량을 결정하는 것을 특징으로 하는 노드.
  37. 제 29 항에 있어서,
    상기 스케줄링 수단은, 타 노드로부터 수신한 리더 패킷에 포함되는 제어 정보에 기초하여, 송신하는 블록의 송신 시각을 결정하는 것을 특징으로 하는 노드.
  38. 제 29 항에 있어서,
    동일 블록에 속하는 복수의 데이터 패킷의 수신 시각으로부터 통신 경로의 속도를 추정하는 패킷 해석부를 갖는 것을 특징으로 하는 노드.
  39. 복수의 데이터 패킷과 리더 패킷을 하나의 블록으로서 취급하여, 상기 복수의 데이터 패킷에 관한 제어 정보를 상기 리더 패킷에 통합하는 패킷 블록 작성 처리와,
    타 노드로부터 수신한 리더 패킷에 통합된 제어 정보에 기초하여, 패킷의 송신을 제어하는 스케줄링 처리를 컴퓨터에 실시시키는 것을 특징으로 하는 프로그램.
KR20087018142A 2006-01-23 2007-01-18 통신 방법, 통신 시스템, 노드 및 프로그램 KR20080079335A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006014458 2006-01-23
JPJP-P-2006-00014458 2006-01-23

Publications (1)

Publication Number Publication Date
KR20080079335A true KR20080079335A (ko) 2008-08-29

Family

ID=38287639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20087018142A KR20080079335A (ko) 2006-01-23 2007-01-18 통신 방법, 통신 시스템, 노드 및 프로그램

Country Status (6)

Country Link
US (1) US20090059958A1 (ko)
EP (1) EP1981220A4 (ko)
JP (1) JP4780343B2 (ko)
KR (1) KR20080079335A (ko)
CN (1) CN101379781A (ko)
WO (1) WO2007083687A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190000468A (ko) * 2017-06-23 2019-01-03 (주)넷비젼텔레콤 다중 경로 환경에서의 udp 패킷 처리 방법
KR102502758B1 (ko) 2022-11-24 2023-02-23 펌킨네트웍스(주) 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5103900B2 (ja) * 2006-12-28 2012-12-19 富士通株式会社 パス状態監視方法及び装置
JP2008199605A (ja) * 2007-02-12 2008-08-28 Asustek Computer Inc 無線通信システムにおいてリソース使用効率を向上させる方法及び装置
EP2003799A1 (en) * 2007-06-12 2008-12-17 Sony Deutschland Gmbh Adaptive history aware beam steering
JP4941753B2 (ja) * 2007-08-31 2012-05-30 横河電機株式会社 フィールド制御システム
US8270404B2 (en) * 2008-02-13 2012-09-18 International Business Machines Corporation System, method, and computer program product for improved distribution of data
JP4926113B2 (ja) * 2008-04-07 2012-05-09 三菱電機株式会社 モバイルルータアドホックネットワーク通信システム
US9047421B2 (en) * 2008-04-30 2015-06-02 Alcatel Lucent Serial link buffer fill-level compensation using multi-purpose start of protocol data unit timing characters
US8374091B2 (en) * 2009-03-26 2013-02-12 Empire Technology Development Llc TCP extension and variants for handling heterogeneous applications
WO2011033568A1 (ja) * 2009-09-17 2011-03-24 富士通株式会社 通信方法、通信システム、送信装置、受信装置
CN102227894B (zh) * 2009-09-30 2014-10-08 松下电器产业株式会社 发送装置、接收装置、收发系统及收发方法
US8824285B1 (en) * 2009-12-16 2014-09-02 Dnutch Associates, Inc. System and method for collision detection and avoidance during packet based communications
JP5257373B2 (ja) 2010-01-29 2013-08-07 ブラザー工業株式会社 パケット送信装置、パケット送信方法及びパケット送信プログラム
US9515925B2 (en) 2011-05-19 2016-12-06 Qualcomm Incorporated Apparatus and methods for media access control header compression
US9125181B2 (en) * 2011-08-23 2015-09-01 Qualcomm Incorporated Systems and methods for compressing headers
WO2013042219A1 (ja) * 2011-09-21 2013-03-28 富士通株式会社 データ通信装置,データ送信方法及び計算機システム
US9479979B2 (en) * 2012-06-29 2016-10-25 Nokia Solutions And Networks Oy Success rate improvements for ANR measurements while reducing data loss at a UE
US9451469B2 (en) * 2012-07-23 2016-09-20 Intel Corporation Apparatus and method for tunneled GPM
EP2936739B1 (en) * 2012-12-21 2017-12-13 Telefonaktiebolaget LM Ericsson (publ) Method and node arrangement for providing more accurate estimation of data path conditions
KR102094718B1 (ko) * 2013-09-26 2020-05-27 삼성전자주식회사 무선 네트워크에서 학습에 기반한 중계 노드 선택 방법 및 중계 장치
US9729439B2 (en) * 2014-09-26 2017-08-08 128 Technology, Inc. Network packet flow controller
US10277506B2 (en) 2014-12-08 2019-04-30 128 Technology, Inc. Stateful load balancing in a stateless network
US9736184B2 (en) 2015-03-17 2017-08-15 128 Technology, Inc. Apparatus and method for using certificate data to route data
US9729682B2 (en) 2015-05-18 2017-08-08 128 Technology, Inc. Network device and method for processing a session using a packet signature
US9762485B2 (en) 2015-08-24 2017-09-12 128 Technology, Inc. Network packet flow controller with extended session management
US9871748B2 (en) 2015-12-09 2018-01-16 128 Technology, Inc. Router with optimized statistical functionality
US9985883B2 (en) 2016-02-26 2018-05-29 128 Technology, Inc. Name-based routing system and method
US10205651B2 (en) 2016-05-13 2019-02-12 128 Technology, Inc. Apparatus and method of selecting next hops for a session
US10298616B2 (en) 2016-05-26 2019-05-21 128 Technology, Inc. Apparatus and method of securing network communications
US10841206B2 (en) 2016-05-31 2020-11-17 128 Technology, Inc. Flow modification including shared context
US10091099B2 (en) 2016-05-31 2018-10-02 128 Technology, Inc. Session continuity in the presence of network address translation
US11075836B2 (en) 2016-05-31 2021-07-27 128 Technology, Inc. Reverse forwarding information base enforcement
US10200264B2 (en) 2016-05-31 2019-02-05 128 Technology, Inc. Link status monitoring based on packet loss detection
US9832072B1 (en) 2016-05-31 2017-11-28 128 Technology, Inc. Self-configuring computer network router
US10257061B2 (en) 2016-05-31 2019-04-09 128 Technology, Inc. Detecting source network address translation in a communication system
US10009282B2 (en) 2016-06-06 2018-06-26 128 Technology, Inc. Self-protecting computer network router with queue resource manager
US9985872B2 (en) 2016-10-03 2018-05-29 128 Technology, Inc. Router with bilateral TCP session monitoring
US10425511B2 (en) 2017-01-30 2019-09-24 128 Technology, Inc. Method and apparatus for managing routing disruptions in a computer network
US10833980B2 (en) 2017-03-07 2020-11-10 128 Technology, Inc. Router device using flow duplication
US10432519B2 (en) 2017-05-26 2019-10-01 128 Technology, Inc. Packet redirecting router
US11165863B1 (en) 2017-08-04 2021-11-02 128 Technology, Inc. Network neighborhoods for establishing communication relationships between communication interfaces in an administrative domain
US10897415B2 (en) * 2017-10-05 2021-01-19 Siemens Aktiengesellschaft Method and apparatus for configuring a network and communication network
US20190253341A1 (en) 2018-02-15 2019-08-15 128 Technology, Inc. Service Related Routing Method and Apparatus
GB2575511A (en) 2018-07-13 2020-01-15 Nokia Technologies Oy Spatial audio Augmentation
GB2575509A (en) * 2018-07-13 2020-01-15 Nokia Technologies Oy Spatial audio capture, transmission and reproduction
US11658902B2 (en) 2020-04-23 2023-05-23 Juniper Networks, Inc. Session monitoring using metrics of session establishment

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01101758A (ja) * 1987-10-15 1989-04-19 Oki Electric Ind Co Ltd 固定長パケット通信におけるパケット分解・組立および粉失検出方法
JPH08223217A (ja) * 1995-02-08 1996-08-30 Nippon Telegr & Teleph Corp <Ntt> 無線パケット多重方法
US6021433A (en) * 1996-01-26 2000-02-01 Wireless Internet, Inc. System and method for transmission of data
JP3587352B2 (ja) * 1999-02-04 2004-11-10 富士通株式会社 ネットワーク通信性能測定方法及び装置並びにネットワーク通信性能測定プログラムを格納したコンピュータ読取り可能な記録媒体
US20020031103A1 (en) * 2000-05-02 2002-03-14 Globalstar L.P. User terminal employing quality of service path determination and bandwidth saving mode for a satellite ISP system using non-geosynchronous orbit satellites
JP3816314B2 (ja) * 2000-07-11 2006-08-30 三菱電機株式会社 パケット交換装置
EP1175034A2 (en) * 2000-07-18 2002-01-23 Eastman Kodak Company A packet data transmission system with adaptive packet size
US20020073217A1 (en) * 2000-12-08 2002-06-13 Ma David Yin-Shur Method and apparatus for facilitating communication between a wireless device and disparate devices or systems
JP4187940B2 (ja) * 2001-03-06 2008-11-26 株式会社エヌ・ティ・ティ・ドコモ パケット伝送方法及びシステム、並びにパケット送信装置、受信装置、及び送受信装置
US20020131103A1 (en) * 2001-03-16 2002-09-19 Nicholas Bambos Method and system for reconfiguring a network element such as an optical network element
US7386000B2 (en) * 2001-04-17 2008-06-10 Nokia Corporation Packet mode speech communication
JP2004088208A (ja) * 2002-08-23 2004-03-18 Sony Corp データ伝送システム及びデータ伝送方法
JP4396859B2 (ja) * 2004-01-09 2010-01-13 日本電気株式会社 負荷分散方法、ノード及び制御プログラム
US20060256803A1 (en) * 2004-01-09 2006-11-16 Tsuneo Nakata Communication method
US7778179B2 (en) * 2005-11-23 2010-08-17 Telefonaktiebolaget L M Ericsson (Publ) Using filtering and active probing to evaluate a data transfer path

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190000468A (ko) * 2017-06-23 2019-01-03 (주)넷비젼텔레콤 다중 경로 환경에서의 udp 패킷 처리 방법
KR102502758B1 (ko) 2022-11-24 2023-02-23 펌킨네트웍스(주) 멀티코어 환경의 운영체제에 적합한 패킷 전송 장치

Also Published As

Publication number Publication date
EP1981220A4 (en) 2011-04-13
JP4780343B2 (ja) 2011-09-28
EP1981220A1 (en) 2008-10-15
WO2007083687A1 (ja) 2007-07-26
CN101379781A (zh) 2009-03-04
US20090059958A1 (en) 2009-03-05
JPWO2007083687A1 (ja) 2009-06-11

Similar Documents

Publication Publication Date Title
KR20080079335A (ko) 통신 방법, 통신 시스템, 노드 및 프로그램
US7821939B2 (en) Method, system, and computer program product for adaptive congestion control on virtual lanes for data center ethernet architecture
EP1382219B1 (en) Method and device for robust real-time estimation of bottleneck bandwidth
JP4394541B2 (ja) 通信装置、データ通信方法およびプログラム
JP4433202B2 (ja) トランスポート層中継方法及びトランスポート層中継装置並びにプログラム
US7200111B2 (en) Method for improving TCP performance over wireless links
JP2008518552A (ja) 粗細試験期間を使用したネットワーク・パケットの経験的スケジューリング法
EP1705845A1 (en) Load distributing method
US20020080726A1 (en) System and method for determining network throughput speed and streaming utilization
CN111817977B (zh) 一种网络拥塞控制方法和装置
US20070097865A1 (en) Method for measuring end-to-end delay in asynchronous packet transfer network, and asynchronous packet transmitter and receiver
JP2007527170A (ja) 並列通信のためのシステムおよび方法
EP2754267B1 (en) Feedback protocol for end-to-end multiple path network systems
CN107770085B (zh) 一种网络负载均衡方法、设备及系统
JP2001024678A (ja) データ伝送ネットワーク中で輻輳を予測して制御する方法およびノード
JP5738324B2 (ja) 送信装置、通信装置、通信システムおよび送信方法
JP2009105662A (ja) マルチホップ通信システム、マルチホップ通信方法、端末装置および中継装置
CN116233002A (zh) 一种数据包发送方法、接收方法、报文发送方法和产品
US8711695B2 (en) Transmitter and receiver for streaming media including packet padding
CN115733755A (zh) 一种可填充网络带宽的数据中心传输控制系统及方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application