KR102240801B1 - 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법 - Google Patents

다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법 Download PDF

Info

Publication number
KR102240801B1
KR102240801B1 KR1020200152920A KR20200152920A KR102240801B1 KR 102240801 B1 KR102240801 B1 KR 102240801B1 KR 1020200152920 A KR1020200152920 A KR 1020200152920A KR 20200152920 A KR20200152920 A KR 20200152920A KR 102240801 B1 KR102240801 B1 KR 102240801B1
Authority
KR
South Korea
Prior art keywords
node
packet
hop
nrq
nodes
Prior art date
Application number
KR1020200152920A
Other languages
English (en)
Inventor
최영철
조아라
Original Assignee
한국해양과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국해양과학기술원 filed Critical 한국해양과학기술원
Priority to KR1020200152920A priority Critical patent/KR102240801B1/ko
Application granted granted Critical
Publication of KR102240801B1 publication Critical patent/KR102240801B1/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
    • H04L47/17Interaction among intermediate nodes, e.g. hop by hop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/326Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames with random discard, e.g. random early discard [RED]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법에 관한 것으로, 특히 매체 접속 제어 프로토콜과 라우팅 프로토콜을 융합하여 네트워킹을 위한 패킷 교환과 오버헤드를 최소화시킨, 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법에 관한 것이다.

Description

다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법{IMPLEMENTAION METHOD OF MULTI-HOP UNDERWATER SHORT-RANGE NETWORK, RECEIVED PACKET PROCESSING METHOD OF INITIALIZATION PHASE, RECEIVED PACKET PROCESSING METHOD OF NORMAL PHASE, PACKET PARSING METHOD, SCHEDULING METHOD OF SINK NODE AND ANCHOR NODE IN INITIALIZATION PHASE, AND SCHEDULING METHOD OF SINK NODE AND ANCHOR NODE IN NORMAL PHASE}
본 발명은 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법에 관한 것으로, 특히 매체 접속 제어 프로토콜과 라우팅 프로토콜을 융합하여 네트워킹을 위한 패킷 교환과 오버헤드를 최소화시킨, 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법에 관한 것이다.
통상적으로, 수중 무선 네트워크는 음파를 이용하며, 이렇게 음파를 사용하는 수중 무선 네트워크에서는 전자파에 비해서 상대적으로 전달 속도가 매우 느린 음파의 전달 속도에서 기인하는 매우 긴 전파 지연, 그리고 수중음향 모뎀의 협소한 대역폭에 기인하는 물리계층의 느린 데이터 전달 속도에 의해서 길어지는 패킷 길이로 인해 발생하는 네트워크 효율성 저하를 극복하는 것이 가장 중요하다.
수중 무선 네트워크 토폴로지는 하나 또는 다수의 싱크 노드로 다수의 노드들이 정보를 전달하는 것을 주 트래픽으로 하는 중앙 집중 방식과, 분산형의 다중홉 방식이 있다.
다중홉 네트워크 기술은 수중음향 네트워크의 커버리지 확장을 위해 이웃 노드를 중계 노드로 활용한다. 이러한 다중홉 네트워크 기술은 네트워킹을 위한 패킷 교환 및 오버헤드가 수반되어 홉 수가 증가할수록 네트워크 수율이 저하되는 문제점이 있었다.
따라서, 수중음향 네트워크는 물리계층의 데이터 전송률이 낮으므로, 계층간 융합을 통한 패킷 교환 및 오버헤드 최소화가 매우 중요하다. 수중음향 네트워크는 통상적으로 다수의 노드들이 수상 또는 해저에 있는 싱크 노드에 데이터를 주기적 또는 비주기적으로 전달하는데, 이러한 싱크 중심(sink-oriented) 네트워크에 최적화된 다중홉 네트워크 기술에 있어서 매체접속제어 프로토콜과 라우팅 프로토콜을 융합하여 효율을 향상시킬 필요가 있었다.
국내 특허 공개 10-2013-0128698호 공보
따라서 본 발명은 상기와 같은 점에 착안하여 이루어진 것으로서, 본 발명의 목적은 매체접속제어 프로토콜과 라우팅 프로토콜을 융합하여 네트워킹을 위한 패킷 교환과 오버헤드를 최소화함으로써 데이터 전송률이 낮은 수중음향 네트워크의 효율을 크게 향상시킬 수 있는, 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법을 제공하는 데에 있다.
상기의 목적을 달성하기 위해 본 발명의 제 1 실시형태에 의한, 다중홉 수중 근거리 네트워크 구현 방법은 하나의 싱크 노드와 다수의 홉 노드들로 구성된 네트워크 토폴로지에서 다중홉 수중 근거리 네트워크 구현 방법으로서: 싱크 노드가 내부 메모리로부터 글로벌 변수들을 읽어들이는 단계(S100); 상기 싱크 노드가 내부 메모리로부터 초기화 과정에서의 스케쥴 계산 함수를 호출하여 초기화 스케쥴을 계산하는 단계(S200); 상기 싱크 노드가 iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷)을 생성하여 상기 홉 노드들에게 전송하는 단계(S300); 상기 싱크 노드가 iSBR 패킷(iSB 패킷에 대한 응답 패킷)이 모두 수신될 수 있는 대기 시간(Wait_iSBR) 동안 대기하는 단계(S400); 상기 싱크 노드가 상기 iSBR 패킷을 모두 수신하면 iSB 패킷 전송 수(iSB_seq)를 1 증가시키는 단계(S500); 상기 싱크 노드가 num_IID(식별된 전체 노드 수)가 maxK(싱크 노드를 제외한 전체 노드 수)와 같은지의 여부를 결정하는 단계(S600); 상기 결정 단계(S600)에서 상기 num_IID가 maxK와 같지 않으면 상기 싱크 노드가 상기 iSB_seq가 maxHop(최대 홉수)보다 큰 지의 여부를 결정하는 단계(S700); 상기 iSB_seq가 상기 maxHop보다 크면, 상기 싱크 노드는 NRQ(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷) 테이블을 생성하는 단계(S800); 상기 싱크 노드가 상기 NRQ 정보를 확인하고 스케쥴을 계산하는 단계(S900); 상기 싱크 노드가 홉 노드에 SB 패킷(싱크 노드가 링크 손상된 노드 파악을 위한 패킷)을 송신하는 단계(S1000); 상기 싱크 노드가 SBR 패킷(SB 패킷에 대한 응답 패킷)이 모두 수신될 수 있는 대기 시간(Wait_SBR) 동안 대기하는 단계(S1100); 상기 싱크 노드가 SBR 패킷을 모두 수신하면, SB_seq(SB 패킷 전송 수)를 1 증가시키는 단계(S1200); 및 상기 싱크 노드가 StopNet(네트워크 중지 변수)가 활성화되는 지의 여부를 결정하는 단계(S1300);를 포함하고, 상기 결정 단계(S1300)에서 상기 StopNet가 활성화되면 동작이 종료되는 한편, 상기 StopNet가 활성화되지 않으면 상기 단계(S800)로 진행되는 것을 특징으로 한다.
상기 제 1 실시형태에 의한 다중홉 수중 근거리 네트워크 구현 방법에 있어서, 상기 단계(S700)에서, 상기 iSB_seq가 상기 maxHop보다 크지 않으면, 상기 단계(S200)로 진행될 수 있다.
상기 제 1 실시형태에 의한 다중홉 수중 근거리 네트워크 구현 방법에 있어서, 상기 단계(S600)에서, 상기 num_IID가 상기 maxK와 같으면, 상기 단계(S800)로 진행될 수 있다.
상기 제 1 실시형태에 의한 다중홉 수중 근거리 네트워크 구현 방법에 있어서, 상기 글로벌 변수는 StartNet(네트워크 시작 변수), StopNet, maxHop, maxRTT(최대 라운드 트립 시간), maxK, DT[단위 패킷 프레임의 듀레이션(duration)], 및 GT(가드 타임)을 포함할 수 있다.
상기의 목적을 달성하기 위해, 본 발명의 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은, 임의의 노드가 Sender_ID(송신 노드 아이디)가 S인 노드로부터 패킷을 수신하는 단계(S10); 상기 임의의 노드가 상기 단계(S10)에서 수신한 패킷의 타입이 iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷) 타입인지의 여부를 결정하는 단계(S20); 상기 결정 단계(S20)에서 수신한 패킷의 타입이 iSB 패킷 타입이 아니면, 상기 임의의 노드가 수신한 패킷의 타입이 iSBR 패킷(iSB 패킷에 대한 응답 패킷) 타입인지의 여부를 결정하는 단계(S30); 상기 결정 단계(S30)에서 수신한 패킷의 타입이 iSBR 패킷 타입이 아니면, 상기 임의의 노드가 수신한 패킷의 타입이 iAB 패킷(앵커 노드가 하위 노드를 식별하기 위한 초기화 패킷) 타입 인지의 여부를 결정하는 단계(S40); 상기 결정 단계(S40)에서 수신한 패킷의 타입이 iAB 패킷 타입이 아니면, 상기 임의의 노드가 수신한 패킷의 타입이 iABR 패킷(iAB 패킷에 대한 응답 패킷) 타입 인지의 여부를 결정하는 단계(S50); 및 상기 결정 단계(S50)에서 상기 수신한 패킷의 타입이 iABR 패킷 타입이 아니면, 상기 임의의 노드가 어브노멀 이벤트(abnormal event)를 기록하는 단계(S60);를 포함하는 것을 특징으로 한다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S20)에서 상기 수신한 패킷의 타입이 iSB 패킷 타입이면, 상기 임의의 노드는 iSB_seq(iSB 패킷 전송 수)가 maxHop(최대 홉수)이하 인지의 여부를 결정하는 단계(S20-1); 상기 결정 단계(S20-1)에서 상기 iSB_seq가 maxHop이하이면, 상기 임의의 노드는 노드 자신이 스케쥴에 포함되는 지의 여부를 결정하는 단계(S20-3); 상기 결정 단계(S20-3)에서 노드 자신이 스케쥴에 포함되면, 상기 임의의 노드는 iSB_seq가 1보다 큰지의 여부를 결정하는 단계(S20-5); 상기 결정 단계(S20-5)에서 iSB_seq가 1보다 크면, 상기 임의의 노드는 N(hop)(싱크 노드로부터 노드까지의 홉 수)가 1보다 큰지의 여부를 결정하는 단계(S20-8); 및 상기 N(hop)가 1보다 크면 상기 임의의 노드가 어브노멀 이벤트를 기록하는 단계(S20-13);를 더 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S20-1)에서 상기 iSB_seq가 maxHop미만이면, 상기 임의의 노드가 어브노멀 이벤트를 기록하는 단계(S20-2)를 더 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S20-3)에서 노드 자신이 스케쥴에 포함되지 않으면, 상기 임의의 노드가 패킷을 무시하는 단계(S20-4)를 더 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S20-5)에서 iSB_seq가 1이하이면, 상기 임의의 노드는 노드 자신의 소요 홉수를 1로 설정하여 자신을 1홉 노드로 인식하는 단계(S20-6); 및 상기 1홉 노드가 iSBR 패킷을 생성한 후에, iSB 패킷에 지정된 시간만큼 대기한 후에 싱크 노드에게 iSBR 패킷을 전송하는 단계(S20-7);를 더 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S20-8)에서 상기 N(hop)가 1 이하이면, 자신을 1홉 노드로 인식하고, 이 1홉 노드는 하위 노드 식별을 위해서, iSB_seq에 해당하는 홉(iSB_seq hop) 까지 고려한 스케쥴링 정보를 계산하는 단계(S20-9); 1홉 노드는 iAB 패킷을 생성한 후에, iSB 패킷에 지정되어 있는 자신의 스케쥴 시각에 맞추어 하위 노드들에게 iAB 패킷을 전송하는 단계(S20-10); 상기 1홉 노드는 하위 노드들로부터 iABR 패킷을 모두 수신할 수 있는 시간(Wait_iABR) 만큼 대기하는 단계(S20-11); 및 상기 1홉 노드는 하위 노드들로부터 iABR 패킷이 수신 완료되면 iSBR 패킷을 생성하여 싱크 노드에 전송하는 단계(S20-12)를 더 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S30)에서 수신한 패킷의 타입이 iSBR 패킷 타입이면, 상기 임의의 노드가 싱크 노드인 지의 여부를 결정하는 단계(S30-1); 상기 결정 단계(S30-1)에서 자신의 노드가 싱크 노드가 아니면, 상기 임의의 노드가 패킷을 무시하는 단계(S30-2); 및 상기 결정 단계(S30-1)에서 자신의 노드가 싱크 노드이면, 이 싱크 노드는 iSBR 패킷을 파싱하여 관련 정보를 갱신하는 단계(S30-3);를 더 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S50)에서 상기 수신한 패킷의 타입이 iABR 패킷 타입이면, 상기 임의의 노드는 자신이 스케쥴링에 포함되는 지의 여부를 결정하는 단계(S40-1); 상기 결정 단계(S40-1)에서 상기 임의의 노드 자신이 스케쥴링에 포함되면, 상기 임의의 노드는 iAB_seq가 1인지의 여부를 결정하는 단계(S40-3); 상기 결정 단계(S40-3)에서 상기 iAB_seq가 1이 아니면, 상기 임의의 노드는 iAB_seq가 2인지의 여부를 결정하는 단계(S40-7); 및 상기 결정 단계(S40-7)에서, 상기 iAB_seq가 2가 아니면, 상기 임의의 노드는 어브노멀 이벤트를 기록하는 단계(S40-8);를 더 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S40-1)에서 상기 임의의 노드 자신이 스케쥴링에 포함되지 않으면, 패킷을 무시하는 단계(S40-2); 상기 단계(S40-2)에서 상기 iAB_seq가 1이면, 상기 임의의 노드는 자신의 홉 수[N(Hop)]가 디폴트 값(inf) 인지의 여부를 결정하는 단계(S40-4); 상기 결정 단계(S40-4)에서 자신의 N(Hop)이 inf가 아니면, 상기 임의의 노드는 상기 단계(S40-2)로 진행되는 한편, 자신의 N(Hop)이 inf이면 자신의 노드를 2홉 노드로서 인식하고, 이 2홉 노드는 iAB 패킷 송신 노드(S)에게 2-홉 노드로서 연결하기 위해서, 목적지인 상위 노드의 ID를 S로 설정하고, N(Hop)을 2로 설정하며, iABR_seq(iABR 패킷 전송수)를 1로 설정하는 단계(S40-5); 및 상기 2홉 노드는 iAB 패킷에 지정된 시간동안 대기 후에, S 홉 수 노드에 iABR 패킷을 전송하는 단계(S40-6);를 더 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S40-7)에서 상기 iAB_seq가 2이면, 상기 임의의 노드는 N(Hop)가 2이고 상위 노드의 홉수[N(S)]가 1인지의 여부를 결정하는 단계(S40-9); 상기 결정 단계(S40-9)에서 N(Hop)이 2이고 N(S)가 1이면, 자신이 홉노드(S)에 2홉 노드로서 연결되었고, 이 2홉 노드는 3홉 노드를 식별하기 위한 스케쥴을 계산하고, iAB_seq를 2로 설정하는 단계(S40-10); 상기 2홉 노드가 iAB 패킷에 지정된 노드에 iAB 패킷을 전송하는 단계(S40-11); 상기 2홉 노드가 3홉 노드의 패킷 수신 대기 시간(Wait_iABR) 동안 대기 후에 수신한 iABR 패킷을 해석하여 관련 정보들을 갱신하는 단계(S40-12); 및 상기 2홉 노드가 다음 홉 노드에 대한 스케쥴링 시간 전까지 iABR 패킷을 홉 노드(S)에 전송하는 단계(S40-13);를 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S40-9)에서 N(Hop)=2 및 N(S)=1인 조건을 만족하지 않으면, 상기 임의의 노드가 N(Hop)=디폴트값(inf) 및 N(S)=2 인지의 여부를 결정하는 단계(S40-14); 상기 결정 단계(S40-14)에서 N(Hop)=inf 및 N(S)=2인 조건을 만족하면, 상기 임의의 노드는 자신을 3홉 노드로서 인식하고, 홉 노드(S)로부터 받은 iAB 패킷이 최초의 iAB 패킷이므로 홉 노드(S)를 통해서 싱크 노드까지 연결하는 절차를 시작하기 위해, N(Hop)를 3으로 설정하고, NextHop(일반 노드들이 연결되어 있는 상위 노드 ID)를 S로 설정하며, iABR_seq를 2로 설정하는 단계(S40-15); 3홉 노드는 수신한 iAB 패킷에 지정된 자신의 스케쥴에 맞추어서 iABR 패킷을 홉 노드(S)에 전송하는 단계(S40-16); 및 상기 결정 단계(S40-14)에서 N(Hop)=inf 및 N(S)=2인 조건을 만족하지 못하면, 상기 임의의 노드는 패킷을 무시하는 단계(S40-17);를 더 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S50)에서 상기 수신한 패킷의 타입이 iABR 패킷 타입이면, 상기 임의의 노드는 자신의 목적지가 iABR 패킷의 목적지인지의 여부를 결정하는 단계(S50-1); 상기 결정 단계(S50-1)에서 자신의 목적지가 iABR 패킷의 목적지이면, 상기 임의의 노드는 iABR_seq가 1인지의 여부를 결정하는 단계(S50-3); 상기 결정 단계(S50-3)에서 iABR_seq가 1이 아니면, 상기 임의의 노드는 iABR_seq가 2인지의 여부를 결정하는 단계(S50-5); 상기 결정 단계(S50-5)에서 iABR_seq가 2이면, 상기 임의의 노드는 N(Hop)가 1인지의 여부를 결정하는 단계(S50-7); 상기 결정 단계(S50-7)에서 N(Hop)가 1이 아니면, 상기 임의의 노드는 N(Hop)가 2인지의 여부를 결정하는 단계(S50-9); 및 상기 결정 단계(S50-9)에서 N(Hop)가 2이면, 상기 임의의 노드는 자신이 2홉 노드로서 인식하고, 수신한 iABR 패킷을 파싱하여 3홉 노드들을 식별하는 단계(S50-11);를 더 포함할 수 있다.
상기 제 2 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은 상기 결정 단계(S50-1)에서 자신의 목적지가 iABR 패킷의 목적지가 아니면, 상기 임의의 노드는 패킷을 무시하는 단계(S50-2); 상기 결정 단계(S50-3)에서 iABR_seq가 1이면, 상기 임의의 노드는 자신을 1홉 노드로서 인식하고, 이 1홉 노드는 수신 패킷을 해석하여 2홉 노드를 식별하는 단계(S50-4); 상기 결정 단계(S50-5)에서 iABR_seq가 2가 아니면, 상기 임의의 노드는 어브노멀 이벤트를 기록하는 단계(S50-6); 상기 결정 단계(S50-7)에서 N(Hop)이 1이면, 상기 임의의 노드는 자신을 1홉 노드로 인식하고, 이 1홉 노드는 수신한 iABR 패킷을 파싱하여 2홉 노드들 및 3홉 노드들을 식별하는 단계(S50-8); 및 상기 결정 단계(S50-9)에서 N(Hop)이 2가 아니면, 상기 임의의 노드는 어브노멀 이벤트를 기록하는 단계(S50-10);를 더 포함할 수 있다.
상기 목적을 달성하기 위해, 본 발명의 제 3 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법은 임의의 노드가 Sender_ID(송신 노드 아이디)가 S인 노드로부터 패킷을 수신하는 단계(S10); 상기 임의의 노드는 상기 단계(S10)에서 수신한 패킷의 타입이 SB 패킷(싱크 노드가 링크 손상된 노드 파악을 위한 패킷) 타입인지의 여부를 결정하는 단계(S20); 상기 결정 단계(S20)에서 수신한 패킷의 타입이 SB 패킷 타입이 아니면, 상기 임의의 노드가 수신한 패킷의 타입이 SBR 패킷(SB 패킷에 대한 응답 패킷) 타입인지의 여부를 결정하는 단계(S30); 상기 결정 단계(S30)에서 수신한 패킷의 타입이 SBR 패킷 타입이 아니면, 상기 임의의 노드는 수신한 패킷의 타입이, AB 패킷(1홉 노드 또는 2홉 노드들이 하위 노드들에게 스케쥴을 전달하고 링크가 손상된 노드를 파악하는 패킷) 타입 인지의 여부를 결정하는 단계(S40); 상기 결정 단계(S40)에서 수신한 패킷의 타입이 AB 패킷 타입이 아니면, 상기 임의의 노드는 수신한 패킷의 타입이 ABR 패킷(AB 패킷에 대한 응답 패킷) 타입 인지의 여부를 결정하는 단계(S50); 상기 결정 단계(S50)에서 상기 수신한 패킷의 타입이 ABR 패킷 타입이 아니면, 상기 임의의 노드는 수신한 패킷의 타입이 NRQ(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷) 인지의 여부를 결정하는 단계(S60); 및 상기 결정 단계(S60)에서 수신한 패킷의 타입이 NRQ 패킷 타입이 아니면, 상기 임의의 노드는 이벤트를 기록하는 단계(S70)를 포함하는 것을 특징으로 한다.
본 발명의 제 3 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법은 상기 결정 단계(S20)에서 수신한 패킷의 타입이 SB 패킷 타입이면, 임의의 노드는 노드 자신이 일반 스케쥴에 포함되어 있는지 결정하는 단계(S20-1); 상기 결정 단계(S20-1)에서 노드 자신이 일반 스케쥴에 포함되어 있으면, 상기 임의의 노드는 하위 노드 존재 유무를 결정하는 단계(S20-2); 상기 결정 단계(S20-2)에서 하위 노드가 존재하면, 상기 임의의 노드는 자신의 노드에 연결되어 있는 하위 노드 노드들을 위한 스케쥴을 계산하는 단계(S20-3); 상기 임의의 노드가 AB 패킷을 생성하는 단계(S20-4); 상기 임의의 노드가 상기 SB 패킷에 지정된 자신의 스케쥴에 맞추어 상기 AB 패킷을 전송하는 단계(S20-5); 상기 임의의 노드가 자신의 하위 노드들로부터 ABR 패킷을 모두 수신할 수 있을 것으로 예상되는 시간(Wait_ABR)만큼 대기 후에, 수신된 ABR 패킷을 파싱하여 관련 정보를 갱신하는 단계(S20-6); 및 상기 임의의 노드가 SBR 패킷을 생성하여 SB 패킷에 있는 다음 홉 노드에 대한 스케쥴링 시간 전까지 싱크 노드에 전송하는 단계(S20-7);를 포함할 수 있다.
본 발명의 제 3 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법은 상기 결정 단계(S20-1)에서 노드 자신이 일반 스케쥴에 포함되지 않으면, 상기 임의의 노드는 NRQ 스케쥴에 포함되는 지의 여부를 결정하는 단계(S20-8); 상기 결정 단계(S20-8)에서 상기 임의의 노드가 NRQ 스케쥴에 포함되지 않은 경우 패킷을 무시하는 단계(S20-9); 상기 결정 단계(S20-8)에서 상기 임의의 노드가 NRQ 스케줄에 포함되어 있으면, 상기 임의의 노드는 u_NRQ(자신이 현재 다른 노드에게 NRQ 패킷을 전송해서 NRQ를 통한 연결을 시도 중인지의 여부를 나타내는 로컬 변수값)이 0인지 여부를 결정하는 단계(S20-10); 상기 u_NRQ가 0이 아니면 상기 단계(S20-9)로 진행되는 단계(S20-10); 상기 u_NRQ가 0이면, 상기 임의의 노드는 u_NRQ를 1로 설정하고, 싱크 노드로부터 노드까지의 홉 수[N(Hop)]를 1로 설정하며, NextHop(일반 노드들이 연결되어 있는 상위 노드 ID)를 싱크 노드(SN)로 설정하며, u_NRQ_Timer(현재 진행 중인 NRQ 종료 시각)를 vtime_u_NRQ(현재 시각으로부터 NRQ 종료까지 소요될 것으로 예상되는 시각)로 설정하는 단계(S20-11); 및 상기 임의의 노드는 자신이 1홉 노드라는 것을 확인하고, SB 패킷에 지정되어 있는 자신의 NRQ 스케쥴에 따라서 싱크 노드에게 NRQ 패킷을 전송하는 단계(S20-12);를 더 포함할 수 있다.
본 발명의 제 3 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법은 상기 결정 단계(S20-2)에서 하위 노드가 존재하지 않으면, 상기 임의의 노드는 SB 패킷에 지정된 자신의 스케쥴에 따라 SBR 패킷을 싱크 노드에 송신하는 단계(S20-13)를 더 포함할 수 있다.
본 발명의 제 3 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법은 상기 결정 단계(S30)에서 수신한 패킷의 타입이 SBR 패킷 타입이면, 상기 임의의 노드는 자신이 싱크 노드인지의 여부를 결정하는 단계(S30-1); 상기 결정 단계(S30-1)에서 자신이 싱크 노드가 아니면 패킷을 무시하는 단계(S30-2); 및 상기 결정 단계(S30-1)에서 자신이 싱크 노드이면, 상기 임의의 노드는 SBR 패킷을 파싱하여 관련 정보를 갱신하는 단계(S30-3)를 더 포함할 수 있다.
본 발명의 제 3 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법은 상기 결정 단계(S40)에서 수신한 패킷의 타입이 AB 패킷 타입이면, 상기 임의의 노드는 자신이 일반 스케쥴에 포함되어 있는지의 여부를 결정하는 단계(S40-1); 상기 결정 단계(S40-1)에서, 임의의 노드 자신이 일반 스케쥴에 포함되어 있으면, 상기 임의의 노드는 연결되어 있는 하위 노드 존재 유무를 결정하는 단계(S40-2); 상기 결정 단계(S40-2)에서 하위 노드가 존재하면, 상기 임의의 노드는 N(Hop)이 2인지의 여부를 결정하는 단계(S40-3); 상기 결정 단계(S40-3)에서 N(Hop)가 2이면, 상기 임의의 노드는 자신이 2홉 노드임을 인식하고, 자신에게 연결되어 있는 3홉 노드를 고려해서 스케쥴을 계산하는 단계(S40-4); 상기 2홉 노드는 AB 패킷을 생성하는 단계(S40-5); 상기 2홉 노드는 상기 AB 패킷에 지정된 자신의 스케쥴에 맞추어 AB 패킷을 전송하는 단계(S40-6); 상기 2홉 노드는 자신의 하위 노드들로부터 ABR 패킷을 모두 받을 수 있을 것으로 예상되는 시간(Wait_ABR)만큼 대기 후에, 수신된 ABR 패킷을 파싱하여 관련 정보를 갱신하는 단계(S40-7); 및 상기 2홉 노드는 ABR 패킷을 생성하여 상위 노드인 1홉 노드에 전송하는 단계(S40-8);를 더 포함할 수 있다.
본 발명의 제 3 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법은 상기 결정 단계(S40-1)에서, 임의의 노드 자신이 일반 스케쥴에 포함되지 않으면, 상기 임의의 노드는 자신이 NRQ 스케쥴에 포함되어 있는지의 여부를 결정하는 단계(S40-9); 상기 결정 단계(S40-9)에서 상기 임의의 노드가 NRQ 스케쥴에 포함되어 있으면, 상기 임의의 노드는 u_NRQ가 0인지 여부를 결정하는 단계(S40-10); 상기 결정 단계(S40-10)에서, u_NRQ가 0이 아니면, 상기 임의의 노드는 패킷을 무시하는 단계(S40-11); 상기 결정 단계(S40-10)에서, u_NRQ가 0이면, u_NRQ=1로 설정하고, N(Hop)=N(S)+1로 설정하며, u_NRQ_Timer를 vtime_u_NRQ로 설정하는 단계(S40-12); 및 상기 임의의 노드가 AB 패킷에 지정되어 있는 자신의 NRQ 스케쥴에 따라서 상위 노드인 홉 노드(S)에게 NRQ 패킷을 전송하는 단계(S40-13);를 더 포함할 수 있다.
본 발명의 제 3 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법은 상기 결정 단계(S40-3)에서 N(Hop)가 2가 아니면 상기 임의의 노드는 이벤트를 기록하는 단계(S40-14); 및 상기 결정 단계(S40-2)에서 하위 노드가 존재하지 않으면, 상기 임의의 노드가 AB 패킷에 지정되어 있는 자신의 스케쥴에 따라서 ABR 패킷을 상위 노드(NextHop)에 전송하는 단계(S40-15);를 더 포함할 수 있다.
본 발명의 제 3 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법은 상기 결정 단계(S50)에서 상기 수신한 패킷의 타입이 ABR 패킷 타입이면, 상기 임의의 노드는 자신이 ABR의 목적지인지의 여부를 결정하는 단계(S50-1); 상기 결정 단계(S50-1)에서 상기 임의의 노드 자신이 ABR의 목적지이면, ABR 패킷을 파싱하여 관련 정보를 갱신하는 단계(S50-2); 상기 결정 단계(S50-1)에서 상기 임의의 노드 자신이 ABR의 목적지가 아니면, 수신 패킷을 무시하는 단계(S50-3); 상기 결정 단계(S60)에서 수신한 패킷의 타입이 NRQ 패킷 타입이면, 상기 임의의 노드 자신이 NRQ 목적지인지의 여부를 결정하는 단계(S60-1); 상기 결정 단계(S60-1)에서 상기 임의의 노드 자신이 NRQ 목적지이면, NRQ 패킷을 파싱하여 관련 정보를 갱신하는 단계(S60-2); 및 상기 결정 단계(S60-1)에서 상기 임의의 노드 자신이 NRQ의 목적지가 아니면, 수신 패킷을 무시하는 단계(S60-3)를 더 포함할 수 있다.
상기 목적을 달성하기 위해, 본 발명의 제 4 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 패킷 파싱 방법은 iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷) 파싱은, 수신한 패킷에 있는 iSB_seq(iSB 패킷 전송 수) 값을 내부 로컬 변수에 갱신하는 단계; 수신한 패킷에 있는 num_uID(식별되지 않은 노드 수) 및 uIDs(식별되지 않은 노드 ID)는 iAB 패킷(앵커 노드가 하위 노드를 식별하기 위한 초기화 패킷)을 생성할 때 필요한 정보이므로 내부 로컬 변수를 갱신하는 단계; 수신한 패킷에 있는 num_sID(스케쥴링 대상 노드수), sID(스케쥴 대상 노드 ID), 및 w_k(k번째 노드에게 시간이 할당되기 까지의 대기시간) 정보를 읽어들여서 자신의 스케쥴 정보(패킷의 sID와 노드 자신의 ID가 일치하는 부분의 w_k)에 해당하는 부분을 식별하여 읽어들이는 단계; 일반 노드들이 연결되어 있는 상위 노드 ID(NextHop) = 싱크 노드(SN)로 설정하는 단계;를 포함하고, iSBR 패킷(iSB 패킷에 대한 응답 패킷) 파싱은, 수신한 패킷에 있는 iSBR 패킷 송신 노드 ID(ID_Sender), num_K_2(노드 자신에게 연결된 2홉 노드의 수), iSBR 송신 노드의 토폴로지 정보(num_tID, tIDs)를 이용하여 SN의 토폴로지를 갱신하는 단계를 포함하고, iAB 패킷 파싱은, 수신한 패킷에 있는 num_uID 및 uIDs는 노드 자신이 2홉 노드인 경우에는 3홉 노드를 식별하기 위해서 iAB 패킷을 생성할 때 필요한 정보이므로, 내부 로컬 변수를 갱신하는 단계; 수신한 패킷에 있는 num_sID, sID, 및 w_k 정보를 읽어들여서, 노드 자신의 스케쥴 정보(패킷의 sID와 노드 자신의 ID가 일치하는 부분의 w_k)에 해당하는 부분을 식별하여 읽어들이는 단계; 및 NextHop=ID_Sender로 설정하는 단계;를 포함하고, iABR 패킷(iAB 패킷에 대한 응답 패킷) 파싱은 수신한 패킷에 있는 iABR 패킷 송신 노드 ID(ID_Sender), num_K_3(노드 자신에게 연결된 3홉 노드의 수), 및 iSBR 송신 노드의 토폴로지 정보(num_tID, tIDs)를 이용하여 토폴로지를 갱신하는 단계를 포함하며, SB 패킷(싱크 노드가 링크 손상된 노드 파악을 위한 패킷) 파싱은 수신한 패킷에 있는, num_NRQ(링크가 손상되어 싱크 노드에 데이터가 전달되지 않는 노드수), num_sID, (sID, w_k), (NRQ_ID, w_k) 정보를 이용하여 정보를 읽어들여서, 노드 자신의 스케쥴 정보[패킷의 sID(또는 NRQ_ID)와 노드 자신의 ID가 일치하는 부분의 w_k] 에 해당하는 부분을 식별하여 읽어들이는 단계; num_NRQ, NRQ_IDs는 AB 패킷(1홉 노드 또는 2홉 노드들이 하위 노드들에게 스케쥴을 전달하고 링크가 손상된 노드를 파악하는 패킷)을 생성하는데 필요하므로, 로컬 변수에 저장하여 갱신하는 단계를 포함하되, NRQ_IDs 들은 자신의 토폴로지에서 삭제하며, SBR 패킷(SB 패킷에 대한 응답 패킷) 파싱은 수신한 패킷에 있는 ID_Sender, num_rNRQ(자신을 목적지로 NRQ 패킷이 수신된 노드의 수), [dNRQ(응답된 NRQ의 깊이), tIDs(iSBR 송신 노드의 토폴로지 정보)] 정보를 이용하여 나 자신(SN)의 토폴로지를 갱신하는 단계; 수신한 데이터 페이로드인 (ID, Data, CRC) 정보를 이용하여, 응용 계층에서 처리하는 단계;를 포함하고, AB 패킷(1홉 노드 또는 2홉 노드들이 하위 노드들에게 스케쥴을 전달하고 링크가 손상된 노드를 파악하는 패킷) 파싱은 수신한 패킷에 있는 AB_seq(AB 패킷 발생 횟수) 정보는 ABR 패킷을 생성할 때 필요하므로, 로컬 변수로 갱신하는 단계; NextHop=ID_Sender로 하는 단계; 수신한 패킷에 있는 num_NRQ, num_sID, (sID, w_k), (NRQ_ID, w_k) 정보를 이용하여 정보를 읽어들여서, 노드 자신의 스케쥴[패킷의 sID(또는 NRQ_ID)와 자신의 ID가 일치하는 부분의 w_k] 정보에 해당하는 부분을 식별하여 읽어들이는 단계; num_NRQ, NRQ_IDs(NRQ 대상 ID)는, 노드 자신이 2홉 노드인 경우에는 3홉 노드 식별을 위한 AB 패킷을 생성하는데 필요하므로, 로컬 변수에 저장하여 갱신하는 단계; NRQ_IDs 들은 노드 자신의 토폴로지에서 삭제하는 단계;를 포함하며, ABR 패킷(AB 패킷에 대한 응답 패킷) 파싱은 수신한 패킷에 있는 ID_Sender, num_rNRQ, rNRQ_IDs 정보를 이용하여 노드 자신의 토폴로지를 갱신하는 단계; 노드 자신이 1홉 노드인 경우에는 SBR 패킷을 생성하는데 상기 ID_Sender, num_rNRQ(자신을 목적지로 NRQ 패킷이 수신된 노드의 수), rNRQ_IDs(자신을 목적지로 NRQ 패킷이 수신된 노드의 ID 목록) 정보가 필요하므로 별도로 로컬변수로 저장해두는 단계; 수신한 데이터 페이로드(ID, Data, CRC) 정보는 피기백(piggyback)하여 상위 노드에게 보내는 ABR 또는 SBR 패킷에 포함되도록 하는 단계;를 포함하고, NRQ 패킷(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷) 파싱은 수신된 패킷에 있는 ID_Sender 정보가 NRQ를 통해서 얻어진 정보이므로 저장하고, ABR 또는 SBR 패킷을 생성할 때 NRQ 관련 정보에 포함되도록 하는 단계; 및 NextHop=ID_Sender로 설정하는 단계; 및 N(Hop)=N(S)+1로 설정하는 단계;를 포함하되, 타입이 SB 패킷이면 N(S)=0임에 유의하는 것을 특징으로 한다.
상기 목적을 달성하기 위해, 본 발명의 제 5 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 싱크 노드(SN)의 초기화 스케쥴링 방법은 싱크 노드가 초기화 스테이지에서 스케쥴링을 요청받는 단계(S10); 상기 싱크 노드가 iSB_seq[iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷)의 전송 수]=1인지의 여부의 여부를 결정하는 단계(S20); 상기 결정 단계(S20)에서 iSB_seq=1이 아니면, 상기 싱크 노드는 iSB_seq=2 인지의 여부를 결정하는 단계(S30); 상기 결정 단계(S30)에서 iSB_seq=2이 아니면, 상기 싱크 노드는 iSB_seq=3 인지의 여부를 결정하는 단계(S40); 상기 결정 단계(S40)에서 iSB_seq=3이 아니면, 상기 싱크 노드가 어브노멀 이벤트를 기록하는 단계(S50); 상기 결정 단계(S20)에서 iSB_seq=1이면, 상기 싱크 노드는 모든 Kmax 개의 노드가 자신과 1홉으로 연결된다고 가정하고서 스케쥴링을 하는 단계(S20-1); 상기 결정 단계(S30)에서 iSB_seq=2이면, 상기 싱크 노드는 1홉 노드는 모두 식별되었고, 식별되지 않은 전체 노드가 1홉 노드에 연결될 수 있다고 가정하고서 스케쥴링을 하는 단계(S20-2); 및 상기 결정 단계(S40)에서 iSB_seq=3이면, 상기 싱크 노드는 2홉 노드까지 모두 식별되었고, 식별되지 않은 K_max - K_1 - K_2 개의 노드가 모두 각각의 2홉 노드에게 연결될 수 있다고 가정하고서 스케쥴링하는 단계(S20-3);를 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위해, 본 발명의 제 6 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 앵커 노드(AN)의 초기화 스케쥴링 방법은 앵커 노드가 초기화 스테이지에서 스케쥴링을 요청받는 단계(S10); 상기 앵커 노드가 iAB_seq[iAB 패킷(앵커 노드가 하위 노드를 식별하기 위한 초기화 패킷)의 전송 수]=1인지의 여부의 여부를 결정하는 단계(S20); 상기 결정 단계(S20)에서 iAB_seq=1이 아니면, 상기 앵커 노드는 iAB_seq=2 인지의 여부를 결정하는 단계(S30); 상기 결정 단계(S30)에서 iAB_seq=2이 아니면, 상기 앵커 노드가 어브노멀 이벤트를 기록하는 단계(S40); 상기 결정 단계(S20)에서 iAB_seq=1이면, 1홉 노드가 2홉 노드를 식별하는 경우로서, 식별되지 않은 모든 노드가 자신에게 연결될 수 있다고 가정하고서 스케쥴링하는 단계(S20-1); 상기 결정 단계(S30)에서 iAB_seq=2이면, 상기 앵커 노드는 N(Hop)(자신의 홉 수)=1인지의 여부를 결정하는 단계(S30-1); 상기 결정 단계(S30-1)에서 N(Hop)=1이면, 1홉 노드가 자신에게 연결된 2홉 노드들이 3홉 노드를 식별하는 경우로서, 1홉 노드가 자신에게 연결된 2홉 노드 각각에 식별되지 않은 모든 K_R 개의 노드가 3홉 노드로 연결될 수 있다고 가정하고서 스케쥴링하는 단계(S30-2); 상기 결정 단계(S30-1)에서 N(Hop)=1이 아니면, 상기 앵커 노드는 N(Hop)=2인지의 여부를 결정하는 단계(S30-3); 및 상기 결정 단계(S30-3)에서 N(Hop)=2이면, 2홉 노드가 3홉 노드를 식별하는 경우에 해당하며, K_R 개의 식별되지 않은 모든 노드가 자신에게 연결될 수 있다고 가정하고서 스케쥴링하는 단계(S30-4)를 포함하며, 상기 결정 단계(S30-3)에서 N(Hop)=2가 아니면, 상기 단계(S40)로 진행되는 것을 특징으로 한다.
상기 목적을 달성하기 위해, 본 발명의 제 7 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 싱크 노드(SN)의 정규 과정 스케쥴링 방법은 싱크 노드가 일반 스테이지에서 스케쥴링을 요청받는 단계(S10); 상기 싱크 노드가 num_NRQ(링크가 손상되어 싱크 노드에 데이터가 전달되지 않는 노드 수)=0인지의 여부를 결정하는 단계(S20); 상기 결정 단계(S20)에서 num_NRQ=0이면, 싱크 노드는 3홉 노드의 데이터가 상위 노드인 1홉 노드와 2홉 노드에서 각각 1번씩 피기백되어 중계되므로 총 2번의 중계가 이루어지고, 2홉 노드의 데이터가 상위 노드인 1홉 노드에서 1번 피기백되어 중계되는 단계(S20-1); 및 상기 결정 단계(S20)에서 num_NRQ=0이 아니면, 싱크 노드는 3홉 노드를 제외한 모든 노드에 K_NRQ 개의 노드가 NRQ를 통하여 연결될 수 있는 절차가 가능하도록 스케쥴링하는 단계(S20-2);를 포함하는 것을 특징으로 한다.
상기 목적을 달성하기 위해, 본 발명의 제 8 실시형태에 의한 다중홉 수중 근거리 네트워크 구현시 앵커 노드(AN)의 정규 과정 스케쥴링 방법은 앵커 노드가 일반 스테이지에서 스케쥴링을 요청받는 단계(S10); 상기 앵커 노드가 N(Hop)(자신의 홉 수)=1인지의 여부를 결정하는 단계(S20); 상기 결정 단계(S20)에서 N(Hop)=1이 아니면, 상기 앵커 노드는 N(Hop)=2인지의 여부를 결정하는 단계(S30); 상기 결정 단계(S30)에서 N(Hop)=2가 아니면, 상기 앵커 노드는 어브노말 이벤트를 기록하는 단계(S40); 상기 결정 단계(S20)에서 N(Hop)=1이면, 상기 앵커 노드는 num_NRQ=0(링크가 손상되어 싱크 노드에 데이터가 전달되지 않는 노드 수)인지의 여부를 결정하는 단계(S20-1); 상기 결정 단계(S20-1)에서 num_NRQ=0이면, 1홉 노드는 자신에게 연결되는 2홉 노드들의 스케쥴을 계산함에 있어서, 스케쥴 대상인 2홉 노드로부터 데이터 패킷이 수신되기까지 2홉 노드에서 발생하는 3홉 노드들의 데이터 패킷이 중계가 이루어지는 DT*NC_3,i 만큼의 시간을 고려해야 하고, UT*NC_i 만큼의 시간이 필요하고, 해당 2홉 노드의 하위 노드 깊이만큼 GT(가드 타임)를 추가하여 안정적인 충돌 회피를 위한 여분의 시간을 주는 단계(S20-2); 상기 결정 단계(S20-1)에서 num_NRQ=0이 아니면, 상기 앵커 노드는 3홉 노드를 제외한 모든 노드에 K_NRQ 개의 노드가 NRQ 패킷(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷)을 통하여 연결될 수 있는 절차가 가능하도록 스케쥴링하는 단계(S20-3); 상기 결정 단계(S30)에서 N(Hop)=2이면, 상기 앵커 노드는 num_NRQ=0인지의 여부를 결정하는 단계(S30-1); 상기 결정 단계(S30-1)에서 num_NRQ=0이면, 상기 앵커 노드는 스케쥴 대상인 K_3 개의 노드를 대상으로 스케쥴링하는 단계(S30-2); 및 상기 결정 단계(S30-1)에서 num_NRQ=0이 아니면, 상기 앵커 노드는 일반 스케쥴에 해당하는 K_3 개의 노드를 대상으로 스케쥴링 후에, K_NRQ 개의 노드가 NRQ를 통해서 자신에게 연결될 수 있도록 스케쥴을 계산하는 단계(S30-3);를 포함하는 것을 특징으로 한다.
본 발명의 실시형태에 의한 다중홉 수중 근거리 네트워크 구현 방법에 의하면, 하나의 싱크 노드와 다수의 홉 노드들로 구성된 네트워크 토폴로지에서 다중홉 수중 근거리 네트워크 구현 방법으로서: 싱크 노드가 내부 메모리로부터 글로벌 변수들을 읽어들이는 단계(S100); 상기 싱크 노드가 내부 메모리로부터 초기화 과정에서의 스케쥴 계산 함수를 호출하여 초기화 스케쥴을 계산하는 단계(S200); 상기 싱크 노드가 iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷)을 생성하여 상기 홉 노드들에게 전송하는 단계(S300); 상기 싱크 노드가 iSBR 패킷(iSB 패킷에 대한 응답 패킷)이 모두 수신될 수 있는 대기 시간(Wait_iSBR) 동안 대기하는 단계(S400); 상기 싱크 노드가 상기 iSBR 패킷을 모두 수신하면 iSB 패킷 전송 수(iSB_seq)를 1 증가시키는 단계(S500); 상기 싱크 노드가 num_IID(식별된 전체 노드 수)가 maxK(싱크 노드를 제외한 전체 노드 수)와 같은지의 여부를 결정하는 단계(S600); 상기 결정 단계(S600)에서 상기 num_IID가 maxK와 같지 않으면 상기 싱크 노드가 상기 iSB_seq가 maxHop(최대 홉수)보다 큰 지의 여부를 결정하는 단계(S700); 상기 iSB_seq가 상기 maxHop보다 크면, 상기 싱크 노드는 NRQ(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷) 테이블을 생성하는 단계(S800); 상기 싱크 노드가 상기 NRQ 정보를 확인하고 스케쥴을 계산하는 단계(S900); 상기 싱크 노드가 홉 노드에 SB 패킷(싱크 노드가 링크 손상된 노드 파악을 위한 패킷)을 송신하는 단계(S1000); 상기 싱크 노드가 SBR 패킷(SB 패킷에 대한 응답 패킷)이 모두 수신될 수 있는 대기 시간(Wait_SBR) 동안 대기하는 단계(S1100); 상기 싱크 노드가 SBR 패킷을 모두 수신하면, SB_seq(SB 패킷 전송 수)를 1 증가시키는 단계(S1200); 및 상기 싱크 노드가 StopNet(네트워크 중지 변수)가 활성화되는 지의 여부를 결정하는 단계(S1300);를 포함하고, 상기 결정 단계(S1300)에서 상기 StopNet가 활성화되면 동작이 종료되는 한편, 상기 StopNet가 활성화되지 않으면 상기 단계(S800)로 진행되도록 구성됨으로써, 매체접속제어 프로토콜과 라우팅 프로토콜을 융합하여 네트워킹을 위한 패킷 교환과 오버헤드를 최소화하므로 데이터 전송률이 낮은 수중음향 네트워크의 효율을 크게 향상시킬 수 있다는 뛰어난 효과가 있다.
도 1은 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크의 토폴로지를 나타낸 도면이다.
도 2a 및 도 2b는 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현 방법을 설명하기 위한 플로우챠트이다.
도 3a 내지 도 3e는 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법을 설명하기 위한 플로우챠트이다.
도 4a 내지 도 4c는 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법을 설명하기 위한 플로우챠트이다.
도 5는 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 싱크 노드(SN)의 초기화 스케쥴링 방법을 설명하기 위한 플로우챠트이다.
도 6은 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 앵커 노드(AN)의 초기화 스케쥴링 방법을 설명하기 위한 플로우챠트이다.
도 7은 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 싱크 노드(SN)의 정규 과정 스케쥴링 방법을 설명하기 위한 플로우챠트이다.
도 8은 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 앵커 노드(AN)의 정규 과정 스케쥴링 방법을 설명하기 위한 플로우챠트이다.
도 9는 본 발명의 실시예에 의한 iSB 패킷을 나타낸 도면이다.
도 10은 본 발명의 실시예에 의한 iSBR 패킷을 나타낸 도면이다.
도 11은 본 발명의 실시예에 의한 iAB 패킷을 나타낸 도면이다.
도 12는 본 발명의 실시예에 의한 iABR 패킷을 나타낸 도면이다.
도 13은 본 발명의 실시예에 의한 SB 패킷을 나타낸 도면이다.
도 14는 본 발명의 실시예에 의한 SBR 패킷을 나타낸 도면이다.
도 15는 본 발명의 실시예에 의한 AB 패킷을 나타낸 도면이다.
도 16은 본 발명의 실시예에 의한 ABR 패킷을 나타낸 도면이다.
도 17은 본 발명의 실시예에 의한 NRQ 패킷을 나타낸 도면이다.
도 18은 본 발명의 실시예에 의한 글로벌 변수를 나타낸 표이다.
도 19는 본 발명의 실시예에 의한 패킷 해석 절차에 사용되는 로컬 변수를 나타낸 표이다.
도 20은 본 발명의 실시예에 의한 NRQ 테이블을 나타낸 도면이다.
도 21은 본 발명의 실시예에 의한 iSB 패킷 생성 절차를 나타낸 표이다.
도 22는 본 발명의 실시예에 의한 iSBR 패킷 생성 절차를 나타낸 표이다.
도 23은 본 발명의 실시예에 의한 iAB 패킷 생성 절차를 나타낸 표이다.
도 24는 본 발명의 실시예에 의한 iABR 패킷 생성 절차를 나타낸 표이다.
도 25는 본 발명의 실시예에 의한 SB 패킷 생성 절차를 나타낸 표이다.
도 26은 본 발명의 실시예에 의한 SBR 패킷 생성 절차를 나타낸 표이다.
도 27은 본 발명의 실시예에 의한 AB 패킷 생성 절차를 나타낸 표이다.
도 28은 본 발명의 실시예에 의한 ABR 패킷 생성 절차를 나타낸 표이다.
도 29는 본 발명의 실시예에 의한 NRQ 패킷 생성 절차를 나타낸 표이다.
도 30a 및 도 30b는 본 발명의 실시예에 의한 스케쥴링을 의한 변수를 정의한 표이다.
본 발명의 실시예를 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예를 기술하기 위한 것이며, 결코 제한적으로 해석되어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하는 것으로 해석되어서는 안 된다.
도면에서 도시된 각 시스템에서, 몇몇 경우에서의 요소는 각각 동일한 참조 번호 또는 상이한 참조 번호를 가져서 표현된 요소가 상이하거나 유사할 수가 있음을 시사할 수 있다. 그러나 요소는 상이한 구현을 가지고 본 명세서에서 보여지거나 기술된 시스템 중 몇몇 또는 전부와 작동할 수 있다. 도면에서 도시된 다양한 요소는 동일하거나 상이할 수 있다. 어느 것이 제1 요소로 지칭되는지 및 어느 것이 제2 요소로 불리는지는 임의적이다.
본 명세서에서 어느 하나의 구성요소가 다른 구성요소로 데이터 또는 신호를 '전송', '전달' 또는 '제공'한다 함은 어느 한 구성요소가 다른 구성요소로 직접 데이터 또는 신호를 전송하는 것은 물론, 적어도 하나의 또 다른 구성요소를 통하여 데이터 또는 신호를 다른 구성요소로 전송하는 것을 포함한다.
본 발명의 실시예를 설명하기에 앞서, 본 발명에 적용되는 패킷 종류 및 패킷 포맷과, 네트워크 파라미터(상수/변수)에 대해 설명하기로 한다.
[패킷 종류 및 패킷 포맷]
CN(Child Node)이 있으면 스케쥴의 시각은 하위 노드들을 위한 노드 자신의 비콘을 송신하기까지 대기하는 시간이고, CN이 없으면 스케쥴의 시간은 노드 자신이 받은 비콘에 대한 응답 신호를 송신하기까지 대기하는 시간이다. CN이 있는 경우에 다음 노드의 스케쥴 시간 전까지 상위 노드에게 응답 신호를 보내도록 관리하는 것이 필요하다.
패킷 종류는 다음과 같이 8가지로 정의한다.
[Initialization Beacon of Sink Node (iSB): multicast]
- 정의: 네트워크 구성을 시작하기 위해서 싱크 노드(SN)가 최초로 방송하는 초기화 패킷이다.
- 기능: 싱크 노드가 네트워크 전체 토폴로지를 파악할 수 있도록 한다. iSB를 k-번 전송(iSB_seq=k)하면 k-홉까지 식별가능하다. 최대 3-홉을 생각한다. 최대 홉수까지 iSB_seq는 증가할 수 있지만, 그 전에 모든 노드들이 식별되면 종료하도록 한다. 예를 들면, 2-홉에서 모든 노드들이 식별되면 iSB_seq=3 이벤트는 발생하지 않는다.
- iSB 패킷은, 도 9에 도시된 바와 같이, type, iSB_seq, number of un-identified node IDs (num_uIDs), uIDs, number of schduled ID (num_sID), (sID, w_k), CRC_iSB 필드를 가지고 있다. 패킷을 받은 후 대기 시각을 표현하는 w_k는 이전 싱글홉과 같은 개념이다.
- 물리계층에서 패킷 길이 변화를 허용하지 않으므로, zero-padding을 통하여 패킷 길이를 일원화한다. 다른 패킷 타입에서도 마찬가지이다.
[Response to iSB(iSBR): Unicast]
정의: 싱크 노드(SN)가 방송한 iSB 패킷을 1-홉 노드들이 수신했을 때, 이에 대한 응답으로서 싱크 노드에게 전송하는 패킷
- 기능: 자기 자신의 토폴로지 정보를 싱크 노드에게 전송
- iSBR 패킷은, 도 10에 도시된 바와 같이, Type, iSBR_seq, ID_Sender, 노드 자신에게 연결되어 있는 2-홉 노드의 수를 나타내는 num_K_2, 토폴로지를 표현하는 num_K_2 개수 만큼의 (num_tID, tIDs), CRC_iSBR 필드를 가지고 있다
- 예를 들면 ID가 1, 2, 3, 4, 5, 6, 7인 노드가 나한테 연결되어 있고, 이 중에서 2-홉 노드는 1, 2 두 개이고, 1번 노드에 3, 4 두 개의 3-홉 노드가 연결되고, 2번 노드에 5, 6, 7 세 개의 3-홉 노드가 연결되는 토폴로지의 경우에, num_K_2 = 2, 첫 번째 (num_tID, tIDs)는 (3, {1, 3, 4}) (4-Byte)가 되고, 두 번째 (num_tID, tIDs)는 (4, {2, 5, 6, 7}) (5-Byte)가 된다. 첫 번째 (num_tID, tIDs) -> (3, {1, 3, 4})의 경우의 의미는, 총 3개의 노드의 하나의 트리를 구성하며, 처음 나오는 노드 ID인 1번이 2-홉 노드이고 나머지 3, 4 번 노드는 3-홉 노드임을 의미한다. 만약 2-홉 노드에 3-홉 노드가 연결되어 있지 않으면, num_tID가 1이다.
[Initialization Beacon of 앵커 노드 (iAB): multicast]
- 정의/기능: 앵커 노드(AN)가 하위 노드를 식별하기 위한 초기화 패킷. 1-홉 노드는 최대 2번, 2-홉 노드는 1번 전송하고, 3-홉 노드는 전송하지 않음
- iAB 패킷은, 도 11에 도시된 바와 같이, type, iAB_seq, ID_Sender, N(S)(송신 노드의 홉 수), number of un-identified node IDs (num_uIDs), uIDs, number of schduled ID (num_sID), (sID, w_k), CRC_iAB 필드 가짐
- iAB 패킷의 num_uID, uIDs 필드는 iAB 패킷을 받은 하위 노드가 노드 자신하고 연결될 수 있는 후보가 누구인지를 알려주는 기능을 한다. 따라서, 실제적으로, 2-홉 노드의 iAB 패킷에는 num_uID, uIDs 필드는 필요가 없다. 왜냐하면, 2-홉 노드의 iAB 패킷을 받은 3-홉 노드는 더 이상 iAB 패킷을 전송하지 않기 때문이다.
[Response to iAB (iABR): Unicast]
- 정의/기능: iAB 패킷을 수신한 노드가 iAB 패킷을 송신한 노드에게 전송하는 응답 패킷으로서, 자기 자신의 토폴로지를 전송한다. 2-홉 노드들은 총 2번 전송하고, 3-홉 노드들은 1번만 전송하며, 1-홉 노드들은 전송하지 않는다.
-도 12에 도시된 바와 같이, Type, iABR_seq, ID_Sender, 목적지인 ID_Dest, 노드 자신에게 연결되어 있는 3-홉 노드의 수를 나타내는 num_K_3, num_K_3 개수 만큼의 tIDs, CRC_iABR 필드를 가지고 있다
- 3-홉 노드들은 num_K_3 = 0으로 하고, 따라서 tIDs 필드는 없어진다.
[Sink node's Beacon (SB): multicast]
- 정의: 싱크 노드가 1-홉 노드들에게 스케쥴을 전달하고 링크가 손상된 노드를 파악하는 기능을 함
- SB 패킷은, 도 13에 도시된 바와 같이, Type, SB_seq, 링크가 손상되어 데이터가 올라오지 않고 있는 노드에 대한 식별 절차, 즉 NRQ 실시 여부 및 NRQ 대상 노드 수를 나타내는 num_NRQ, 한 노드 수인 num_NRQ, 스케쥴링이 필요한 1-홉 노드의 수인 num_sID, 스케쥴 정보인 num_sID 개수 만큼의 (sID, w_k), num_NRQ가 1 이상인 경우에만 존재하는 NRQ 대상 노드들의 스케쥴 정보인 num_NRQ개 만큼의 (NRQ_ID, w_k), CRC_SB 필드를 가지고 있다.
[SB Response (SBR): Unicast]
- 정의/기능: SBR 패킷은 싱크 노드가 방송한 SB 패킷을 1-홉 노드들이 수신했을 때, 이에 대한 응답으로서 싱크 노드에게 전송하는 패킷으로서, SB 패킷에 지정되어 있는 대기 시간 후에 SBR 패킷을 싱크 노드에게 전송한다.
- SBR 패킷은 1-홉 노드가 하위 노드들의 데이터 패킷들을 싱크 노드(SN)에게 전달한다. 따라서, 각 하위 노드 당 데이터 패킷 길이가 짧으면 하나의 패킷 프레임만으로 다 전달할 수 있지만, 패킷 길이가 길면 각 노드 데이터 단위로 쪼개서 하나의 패킷 프레임에 한 개의 노드 데이터만 포함되도록 하는 것이 처리가 가장 편리하고, 만약 이것이 낭비가 너무 심한 경우에는 한 개의 패킷 프레임에 여러 개 노드의 데이터를 포함하도록 할 수 있다. 또한, NRQ 시도가 이루어져 새롭게 연결된 노드가 있을 때는 이 정보도 포함할 수 있어야 한다.
- SBR 패킷은, 도 14에 도시된 바와 같이, Type, ID_Sender, 자신을 목적지로 NRQ 패킷이 수신되었거나 자신에게 연결되어 있는 하위 노드들에게 NRQ 패킷이 수신된 (즉 자신에게 신규로 연결된) 하위 노드의 존재 유무 및 그 개수를 알려주는 필드인 num_rNRQ, NRQ에 의해서 새롭게 연결되는 노드들의 토폴로지를 표현하는 (dNRQ, tIDs), 데이터 패킷의 수를 나타내는 num_D, CRC_SBR, num_D 개수 만큼의 실제 데이터 패킷을 나타내는 (ID, Data, CRC) 필드를 가지고 있다(각 데이터마다 CRC가 있음에 유의. 이렇게 해야 데이터를 최대한 살릴 수 있음). dNRQ는 Depth of NRQ. dNRQ는 NRQ에 의해서 연결되는 새로운 노드의 토폴로지에 대한 깊이로서 이어지는 tIDs에 나열되는 ID의 개수이다. dNRQ=1이면, 현재의 1-홉 노드에 새로운 노드가 바로 연결된 것이고, dNRQ=2이면, 현재의 1-홉 노드에 연결되어 있는 2-홉 노드에 새로운 노드가 연결된 것이다. 예를 들어, 현재 1-홉 노드의 ID가 2이고 dNRQ=2이며 tIDs=(3, 5)이면, 5번 노드가 NRQ에 의해서 새롭게 연결되는 노드이고, 2-3-5의 연결 토폴로지를 가지는 것을 의미한다.
[Anchor node's Beacon (AB): multicast]
- 정의/기능: 1-홉 또는 2-홉 노드들이 하위 노드들에게 스케쥴을 전달하고 링크가 손상된 노드를 파악하는 기능을 함
- 도 15에 도시된 바와 같이, Type, AB_seq, ID_Sender, N(S), ID_Dest, 링크가 손상되어 데이터가 올라오지 않고 있는 노드에 대한 식별 절차, 즉 NRQ 실시 여부 및 NRQ 대상 노드 수를 나타내는 num_NRQ, 스케쥴링이 필요한 하위 노드의 수인 num_sID, 스케쥴 정보인 num_sID 개수 만큼의 (sID, w_k), num_NRQ가 1 이상인 경우에만 존재하는 NRQ 대상 노드들의 스케쥴 정보인 num_NRQ개 만큼의 (NRQ_ID, w_k), CRC_AB 필드를 가지고 있다.
[AB Response (ABR): Unicast]
- 정의/기능: ABR 패킷은 상위 노드(1-홉 또는 2-홉 노드들만 가능)가 방송한 AB 패킷을 그 하위 노드들이 수신했을 때, 이에 대한 응답으로서 상위 노드에게 전송하는 패킷으로서, AB 패킷에 지정되어 있는 대기 시간 후에 ABR 패킷을 상위 노드에게 전송한다.
- ABR 패킷은, SBR 패킷과 마찬가지로, 각 하위 노드 당 데이터 패킷 길이가 짧으면 하나의 패킷 프레임만으로 다 전달할 수 있지만, 패킷 길이가 길면 각 노드 데이터 단위로 쪼개서 하나의 패킷 프레임에 한 개의 노드 데이터만 포함되도록 하는 것이 처리가 가장 편리하고, 만약 이것이 낭비가 너무 심한 경우에는 한 개의 패킷 프레임에 여러 개 노드의 데이터를 포함하도록 할 수 있다. 또한, NRQ 시도가 이루어져 새롭게 연결된 노드들이 있을 때는 이 정보도 포함할 수 있어야 한다.
- 도 16에 도시된 바와 같이, Type, ID_Sender, 목적지인 ID_Dest, 자신을 목적지로 NRQ 패킷이 수신되었거나 자신에게 연결되어 있는 하위 노드들에게 NRQ 패킷이 수신된(즉, 자신에게 신규로 연결된) 하위 노드의 존재 유무 및 그 개수를 알려주는 필드인 num_rNRQ, num_rNRQ 개 만큼의 rNRQ_ID, 데이터 패킷의 수를 나타내는 num_D, CRC_ABR, num_D 개 만큼의 실제 데이터 패킷을 나타내는(ID, Data, CRC) 필드를 가지고 있다(각 데이터마다 CRC가 있음에 유의. 이렇게 해야 데이터를 최대한 살릴 수 있음). SBR과는 달리 ABR에는 dNRQ가 없다. 2-hop 또는 3-hop 노드들만이 ABR 패킷을 송신하는데, 3-홉 노드들에게는 NRQ를 통해서 새로운 노드들이 연결되지 않고, 2-홉 노드들에게 NRQ를 통해서 새롭게 연결되는 노드들은 3-홉 노드들로서 토폴로지 깊이가 없기 때문이다. 3-홉 노드들의 ABR 패킷은 항상 num_rNRQ=0이고, 따라서 rNRQ_ID 필드는 없다. SBR-ABR 관계는 iSBR-iAR과 유사하다.
[New ReQuest (NRQ): Unicast]
- 정의/기능: 수신한 SB 또는 AB 패킷에 자신이 NRQ 스케쥴에 포함되어 있을 경우에, 이에 대한 응답으로서 SB 또는 AB 패킷 송신 노드를 목적지로 설정하여 송신하는 패킷이다.
- 도 17에 도시된 바와 같이, Type, ID_Sender, 목적지인 ID_Dest, CRC_NRQ 필드를 가지고 있다
도 18에는 본 발명의 실시예에 적용되는 글로벌 변수가 도시되어 있고, 도 19에는 패킷 해석 절차에 사용되는 로컬 변수가 도시되어 있다.
참고로, 스케쥴링 관련 변수는 스케쥴링 파트에 개시되어 있고, 프레임 포맷의 필드명 관련 변수는 패킷 생성 절차에 개시되어 있다.
이하, 본 발명의 실시예를 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크의 토폴로지를 나타낸 도면이다.
최상위에는 싱크 노드가 배치되어 있고, 싱크 노드 하부에는 2개의 1홉 노드가 연결되어 있다. 1홉 노드 각각에는 2개의 2홉 노드가 연결되어 있고, 2홉 노드 각각에는 2개의 3홉 노드가 연결된 형태를 갖는다.
[다중홉 수중 근거리 네트워크 구현 방법]
도 2a 및 도 2b는 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현 방법을 설명하기 위한 플로우챠트로서, 여기서 S는 스텝(step)을 의미한다.
네트워크 동작은 싱크 노드(SN)가 생성하는 패킷에 의해서 진행되며 SN 이외의 노드들은 SN으로부터 받은 패킷 또는 그로부터 발생하는 순차적인 패킷을 해석함으로서 동작한다. 따라서 네트워크 동작 절차는 SN의 동작 절차로 간주할 수 있다
먼저, 싱크 노드가 내부 메모리로부터 도 18에 정의된 글로벌 변수들을 읽어들인다(S100).
다음, 싱크 노드가 내부 메모리로부터 초기화 과정에서의 스케쥴 계산 함수를 호출하여 초기화 스케쥴을 계산한다(S200).
다음, 싱크 노드가 iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷)을 생성하여 홉 노드들에게 전송한다(S300).
다음, 싱크 노드가 iSBR 패킷(iSB 패킷에 대한 응답 패킷)이 모두 수신될 수 있는 대기 시간(Wait_iSBR) 동안 대기한다(S400).
대기 시간(Wait_iSBR)은 스케줄 계산 함수에서 제공된다.
다음, 싱크 노드가 iSBR 패킷을 모두 수신하면(iSB_seq 홉까지 노드들이 모두 식별되면) iSB 패킷 전송 수(iSB_seq)를 1 증가시킨다(S500).
다음, 싱크 노드가 num_IID(식별된 전체 노드 수)가 maxK(싱크 노드를 제외한 전체 노드 수)와 같은지의 여부를 결정한다(S600).
상기 스텝(S600)에서 num_IID가 maxK와 같지 않으면(N), 싱크 노드가 iSB_seq가 maxHop(최대 홉수)보다 큰 지의 여부를 결정한다(S700).
상기 스텝(S700)에서 iSB_seq가 maxHop보다 크면(Y), 싱크 노드는 NRQ(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷) 테이블(도 20 참조)을 생성한다(S800).
NRQ 테이블에서, 두 번째 컬럼은 특정 노드로부터 몇 회 연속해서 데이터를 받지 못하고 있는지를 나타내는 것으로서 일시적인 링크 손상 후 링크가 복구되어 새로운 데이터를 받으면 "0"으로 리셋되어야 한다. num_CPL(ID)가 Thr_NRQ 이상이 되는 노드가 있으면, 그 노드들을 대상으로 NRQ를 허용하도록 스케쥴링하고 SB 패킷에 정보를 실어 보낸다.
다음, 싱크 노드가 NRQ 정보를 확인하고 스케쥴을 계산한다(S900).
다음, 싱크 노드가 홉 노드에 SB 패킷(싱크 노드가 링크 손상된 노드 파악을 위한 패킷)을 송신한다(S1000).
다음, 싱크 노드가 SBR 패킷(SB 패킷에 대한 응답 패킷)이 모두 수신될 수 있는 대기 시간(Wait_SBR) 동안 대기한다(S1100).
Wait_SBR은 스케쥴 함수에서 제공된다.
다음, 싱크 노드가 SBR 패킷을 모두 수신하면, 수신된 데이터를 처리가 완료되고 NRQ 테이블 또한 갱신된다. 이후, SB_seq(SB 패킷 전송 수)를 1 증가시킨다(S1200).
다음, 싱크 노드가 StopNet(네트워크 중지 변수)가 활성화되는 지의 여부를 결정한다(S1300).
상기 스텝(S1300)에서 StopNet가 활성화되면(Y) 동작이 종료되는 한편, StopNet가 활성화되지 않으면(N) 스텝(S800)로 진행되어 정규 과정을 반복한다.
한편, 상기 스텝(S700)에서, iSB_seq가 maxHop보다 크지 않으면(N), 스텝(S200)로 진행된다.
한편, 상기 스텝(S600)에서, num_IID가 maxK와 같으면(Y), 더 이상 초기화 과정을 진행할 필요가 없으므로 스텝(S800)으로 진행되어 정규 과정이 수행된다.
[다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법]
도 3a 내지 도 3e는 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법을 설명하기 위한 플로우챠트로서, 여기서 S는 스텝(step)을 의미한다.
싱크 노드(SN)과 일반 노드가 따로 구별되지 않고, 통합하여 구성되었음에 유의해야 한다.
먼저, 임의의 노드가 Sender_ID(송신 노드 아이디)가 S인 노드로부터 패킷을 수신한다(S10).
다음, 임의의 노드가 스텝(S10)에서 수신한 패킷의 타입이 iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷) 타입인지의 여부를 결정한다(S20).
상기 스텝(S20)에서 수신한 패킷의 타입이 iSB 패킷 타입이 아니면(N), 임의의 노드가 수신한 패킷의 타입이 iSBR 패킷(iSB 패킷에 대한 응답 패킷) 타입인지의 여부를 결정한다(S30).
만약, 상기 스텝(S30)에서 수신한 패킷의 타입이 iSBR 패킷 타입이 아니면(N), 임의의 노드가 수신한 패킷의 타입이 iAB 패킷(앵커 노드가 하위 노드를 식별하기 위한 초기화 패킷) 타입 인지의 여부를 결정한다(S40).
상기 스텝(S40)에서 수신한 패킷의 타입이 iAB 패킷 타입이 아니면(N), 임의의 노드가 수신한 패킷의 타입이 iABR 패킷(iAB 패킷에 대한 응답 패킷) 타입 인지의 여부를 결정한다(S50).
상기 스텝(S50)에서 수신한 패킷의 타입이 iABR 패킷 타입이 아니면(N), 임의의 노드가 이 이벤트는 발생할 수 없으므로 어브노멀 이벤트(abnormal event)를 기록한다(S60)
한편, 상기 스텝(S20)에서 수신한 패킷의 타입이 iSB 패킷 타입이면(Y), 임의의 노드는 iSB_seq(iSB 패킷 전송 수)가 maxHop(최대 홉수)이하 인지의 여부를 결정한다(S20-1).
상기 스텝(S20-1)에서 iSB_seq가 maxHop이하이면(Y), 임의의 노드는 노드 자신이 스케쥴에 포함되는 지의 여부를 결정한다(S20-3).
상기 스텝(S20-3)에서 노드 자신이 스케쥴에 포함되면(Y), 임의의 노드는 iSB_seq가 1보다 큰지의 여부를 결정한다(S20-5).
상기 스텝(S20-5)에서 iSB_seq가 1보다 크면(Y), 1홉 노드들은 이미 식별이 완료된 상태를 뜻하며 iSB 패킷은 1홉 노드들만 수신해서 처리해야 하므로, 임의의 노드는 자신이 1홉 노드인지를 확인하기 위해 N(hop)(싱크 노드로부터 노드까지의 홉 수)가 1보다 큰지의 여부를 결정한다(S20-8).
실제로는 스텝(S20-3)에서 이미 한 번 1홉 노드인지 여부에 대해서 스케쥴에 포함되는 지의 유무를 통해서 확인한 것이어서 더블 체크 개념이다.
상기 스텝(S20-8)에서 N(hop)가 1보다 크면(Y), 이것은 발생해서는 안되는 이벤트로서, 임의의 노드가 어브노멀 이벤트를 기록한다(S20-13).
한편, 상기 스텝(S20-1)에서 iSB_seq가 maxHop미만이면(N), 이 이벤트는 발생할 수 없으므로, 임의의 노드가 어브노멀 이벤트를 기록한다(S20-2).
한편, 상기 스텝(S20-3)에서 노드 자신이 스케쥴에 포함되지 않으면, 임의의 노드가 패킷을 무시한다(S20-4).
이러한 노드들은 iSB_seq=1인 패킷을 제대로 수신하지 못해서 1홉 노드로 인식되지 못했는데, iSB_seq=2, 3인 패킷을 제대로 수신한 경우에 해당할 수 있다. 이러한 노드들은 NRQ를 통해서 연결 시도를 하면 된다.
한편, 상기 스텝(S20-5)에서 iSB_seq가 1이하이면(N), 임의의 노드는 노드 자신의 소요 홉수를 1로 설정하여 자신을 1홉 노드로 인식한다(S20-6).
다음, 1홉 노드가 iSBR 패킷을 생성한 후에, iSB 패킷에 지정된 시간만큼 대기한 후에 싱크 노드에게 iSBR 패킷을 전송한다(S20-7).
한편, 상기 스텝(S20-8)에서 N(hop)가 1 이하이면(N), 자신을 1홉 노드로 인식하고, 이 1홉 노드는 하위 노드 식별을 위해서, iSB_seq에 해당하는 홉(iSB_seq hop) 까지 고려한 스케쥴링 정보를 계산한다(S20-9).
다음, 1홉 노드는 iAB 패킷을 생성한 후에, iSB 패킷에 지정되어 있는 자신의 스케쥴 시각에 맞추어 하위 노드들에게 iAB 패킷을 전송한다(S20-10).
다음, 1홉 노드는 하위 노드들로부터 iABR 패킷을 모두 수신할 수 있는 시간(Wait_iABR) 만큼 대기한다(S20-11).
다음, 1홉 노드는 하위 노드들로부터 iABR 패킷이 수신 완료되면 iSBR 패킷을 생성하여 싱크 노드에 전송한다(S20-12).
한편, 상기 스텝(S30)에서 수신한 패킷의 타입이 iSBR 패킷 타입이면(Y), 임의의 노드가 자신이 싱크 노드인 지의 여부를 결정한다(S30-1).
상기 스텝(S30-1)에서 자신의 노드가 싱크 노드가 아니면(N)(즉, 자신이 1홉 노드이고 다른 1홉 노드가 전송하는 iSBR 패킷이거나, 내가 2홉 노드이고 1홉 노드가 전송하는 iSBR 패킷인 경우에 해당함), 임의의 노드가 패킷을 무시한다(패킷을 해석하지 않고 버린다)(S30-2).
한편, 상기 스텝(S30-1)에서 자신의 노드가 싱크 노드이면(Y), 이 싱크 노드는 iSBR 패킷을 파싱하여 관련 정보를 갱신한다(S30-3).
한편, 상기 스텝(S50)에서 수신한 패킷의 타입이 iABR 패킷 타입이면(Y), 임의의 노드는 자신이 스케쥴링에 포함되는 지의 여부를 결정한다(S40-1).
상기 스텝(S40-1)에서 임의의 노드 자신이 스케쥴링에 포함되면(Y), 임의의 노드는 iAB_seq가 1인지의 여부를 결정한다(S40-3).
상기 스텝(S40-3)에서 iAB_seq가 1이 아니면(N), 임의의 노드는 iAB_seq가 2인지의 여부를 결정한다(S40-7).
상기 스텝(S40-7)에서, iAB_seq가 2가 아니면(N), 임의의 노드는 어브노멀 이벤트를 기록한다(S40-8).
한편, 상기 스텝(S40-1)에서 임의의 노드 자신이 스케쥴링에 포함되지 않으면(N), 패킷을 무시한다(S40-2).
한편, 상기 스텝(S40-3)에서 iAB_seq가 1이면(Y), 임의의 노드는 자신의 홉 수[N(Hop)]가 디폴트 값(inf) 인지의 여부를 결정한다(S40-4).
상기 스텝(S40-4)에서 자신의 N(Hop)이 inf가 아니면(N), 스텝(S40-2)으로 진행되는 한편, 자신의 N(Hop)이 inf이면(Y) 자신의 노드를 2홉 노드로서 인식하고, 이 2홉 노드는 iAB 패킷 송신 노드(S)에게 2-홉 노드로서 연결하기 위해서, 목적지인 상위 노드의 ID를 S로 설정하고, N(Hop)을 2로 설정하며, iABR_seq(iABR 패킷 전송수)를 1로 설정한다(S40-5).
다음, 2홉 노드는 iAB 패킷에 지정된 시간동안 대기 후에, S 홉 수 노드에 iABR 패킷을 전송한다(S40-6).
한편, 상기 스텝(S40-7)에서 iAB_seq가 2이면(Y), 임의의 노드는 N(Hop)가 2이고 상위 노드의 홉수[N(S)]가 1인지의 여부를 결정한다(S40-9).
상기 스텝(S40-9)에서 N(Hop)이 2이고 N(S)가 1이면(Y), 자신이 홉노드(S)에 2홉 노드로서 연결되었고, 이 2홉 노드는 3홉 노드를 식별하기 위한 스케쥴을 계산하고, iAB_seq를 2로 설정한다(S40-10).
다음, 2홉 노드가 iAB 패킷에 지정된 노드에 iAB 패킷을 전송하고(S40-11), 2홉 노드가 3홉 노드의 패킷 수신 대기 시간(Wait_iABR) 동안 대기 후에 수신한 iABR 패킷을 해석하여 관련 정보들을 갱신한다(S40-12).
다음, 2홉 노드가 다음 홉 노드에 대한 스케쥴링 시간 전까지 iABR 패킷을 홉 노드(S)에 전송한다(S40-13).
이 때 주의할 점은, 수신한 iAB 패킷에 있는 다음 홉 노드에 대한 스케쥴링 시간 전까지 NextHop인 S에게 iABR 패킷이 도달할 수 있도록 해야 한다는 것이다.
한편, 상기 스텝(S40-9)에서 N(Hop)=2 및 N(S)=1인 조건을 만족하지 않으면(N), 임의의 노드가 N(Hop)=디폴트값(inf) 및 N(S)=2 인지의 여부를 결정한다(S40-14).
상기 스텝(S40-14)에서 N(Hop)=inf 및 N(S)=2인 조건을 만족하면(Y), 임의의 노드는 자신을 3홉 노드로서 인식하고, 홉 노드(S)로부터 받은 iAB 패킷이 최초의 iAB 패킷이므로 홉 노드(S)를 통해서 싱크 노드까지 연결하는 절차를 시작하기 위해, N(Hop)를 3으로 설정하고, NextHop(일반 노드들이 연결되어 있는 상위 노드 ID)를 S로 설정하며, iABR_seq를 2로 설정한다(S40-15).
다음, 3홉 노드는 수신한 iAB 패킷에 지정된 자신의 스케쥴에 맞추어서 iABR 패킷을 홉 노드(S)에 전송한다(S40-16).
한편, 상기 스텝(S40-14)에서 N(Hop)=inf 및 N(S)=2인 조건을 만족하지 못하면(N), 임의의 노드는 패킷을 무시한다(S40-17).
한편, 상기 스텝(S50)에서 수신한 패킷의 타입이 iABR 패킷 타입이면(Y), 임의의 노드는 자신의 목적지가 iABR 패킷의 목적지인지의 여부를 결정한다(S50-1).
상기 스텝(S50-1)에서 자신의 목적지가 iABR 패킷의 목적지이면(Y), 임의의 노드는 iABR_seq가 1인지의 여부를 결정한다(S50-3).
상기 스텝(S50-3)에서 iABR_seq가 1이 아니면(N), 임의의 노드는 iABR_seq가 2인지의 여부를 결정한다(S50-5).
상기 스텝(S50-5)에서 iABR_seq가 2이면(Y), 임의의 노드는 N(Hop)가 1인지의 여부를 결정한다(S50-7).
상기 스텝(S50-7)에서 N(Hop)가 1이 아니면(N), 임의의 노드는 N(Hop)가 2인지의 여부를 결정한다(S50-9).
상기 스텝(S50-9)에서 N(Hop)가 2이면(Y), 임의의 노드는 자신이 2홉 노드로서 인식하고, 수신한 iABR 패킷을 파싱하여 3홉 노드들을 식별한다(S50-11).
한편, 상기 스텝(S50-1)에서 자신의 목적지가 iABR 패킷의 목적지가 아니면(N), 임의의 노드는 패킷을 무시한다(S50-2).
한편, 상기 스텝(S50-3)에서 iABR_seq가 1이면(Y), 임의의 노드는 자신을 1홉 노드로서 인식하고, 이 1홉 노드는 수신 패킷을 해석하여 2홉 노드를 식별한다(S50-4).
한편, 상기 스텝(S50-5)에서 iABR_seq가 2가 아니면(N), 임의의 노드는 어브노멀 이벤트를 기록한다(S50-6).
한편, 상기 스텝(S50-7)에서 N(Hop)이 1이면(Y), 임의의 노드는 자신을 1홉 노드로 인식하고, 이 1홉 노드는 수신한 iABR 패킷을 파싱하여 2홉 노드들 및 3홉 노드들을 식별한다(S50-8).
한편, 상기 스텝(S50-9)에서 N(Hop)이 2가 아니면(N), 임의의 노드는 어브노멀 이벤트를 기록한다(S50-10).
[다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법]
도 4a 내지 도 4c는 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법을 설명하기 위한 플로우챠트로서, 여기서 S는 스텝(step)을 의미한다.
먼저, 임의의 노드가 Sender_ID(송신 노드 아이디)가 S인 노드로부터 패킷을 수신한다(S10).
다음, 임의의 노드는 스텝(S10)에서 수신한 패킷의 타입이 SB 패킷(싱크 노드가 링크 손상된 노드 파악을 위한 패킷) 타입인지의 여부를 결정한다(S20).
상기 스텝(S20)에서 수신한 패킷의 타입이 SB 패킷 타입이 아니면(N), 임의의 노드는 수신한 패킷의 타입이 SBR 패킷(SB 패킷에 대한 응답 패킷) 타입인지의 여부를 결정한다(S30).
상기 스텝(S30)에서 수신한 패킷의 타입이 SBR 패킷 타입이 아니면(N), 임의의 노드는 수신한 패킷의 타입이, AB 패킷(1홉 노드 또는 2홉 노드들이 하위 노드들에게 스케쥴을 전달하고 링크가 손상된 노드를 파악하는 패킷) 타입 인지의 여부를 결정한다(S40).
상기 스텝(S40)에서 수신한 패킷의 타입이 AB 패킷 타입이 아니면(N), 임의의 노드는 수신한 패킷의 타입이 ABR 패킷(AB 패킷에 대한 응답 패킷) 타입 인지의 여부를 결정한다(S50).
상기 스텝(S50)에서 수신한 패킷의 타입이 ABR 패킷 타입이 아니면(N), 임의의 노드는 수신한 패킷의 타입이 NRQ(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷) 인지의 여부를 결정한다(S60).
상기 스텝(S60)에서 수신한 패킷의 타입이 NRQ 패킷 타입이 아니면(N), 임의의 노드는 이벤트를 기록한다(S70).
상기 스텝(S20)에서 수신한 패킷의 타입이 SB 패킷 타입이면(Y), 임의의 노드는 노드 자신이 일반 스케쥴에 포함되어 있는지 결정한다(S20-1).
상기 스텝(S20-1)에서 노드 자신이 일반 스케쥴에 포함되어 있으면(Y), 임의의 노드는 하위 노드 존재 유무를 결정한다(S20-2).
상기 스텝(S20-2)에서 하위 노드가 존재하면(Y), 임의의 노드는 자신의 노드에 연결되어 있는 하위 노드 노드들을 위한 스케쥴을 계산한다(S20-3).
다음, 임의의 노드가 AB 패킷을 생성하고(S20-4), SB 패킷에 지정된 자신의 스케쥴에 맞추어 AB 패킷을 전송한다(S20-5).
다음, 임의의 노드가 자신의 하위 노드들로부터 ABR 패킷을 모두 수신할 수 있을 것으로 예상되는 시간(Wait_ABR)만큼 대기 후에, 수신된 ABR 패킷을 파싱하여 관련 정보를 갱신한다(S20-6).
다음, 임의의 노드가 위의 갱신된 관련 정보를 기반으로 SBR 패킷을 생성하여 SB 패킷에 있는 다음 홉 노드에 대한 스케쥴링 시간 전까지 싱크 노드에 전송한다(S20-7).
한편, 상기 스텝(S20-1)에서 노드 자신이 일반 스케쥴에 포함되지 않으면(N), 임의의 노드는 NRQ 스케쥴에 포함되는 지의 여부를 결정한다(S20-8).
NRQ 스케쥴 포함 유무 판단은, 수신한 SB 패킷의 num_NRQ 값이 0보다 크면 NRQ 스케쥴이 포함되어 있고, NRQ_ID에 내 ID가 있는지 확인하면 된다.
상기 스텝(S20-8)에서 임의의 노드가 NRQ 스케쥴에 포함되지 않은 경우(N), 패킷을 무시한다(S20-9).
상기 스텝(S20-8)에서 임의의 노드가 NRQ 스케줄에 포함되어 있으면(Y), 임의의 노드는 u_NRQ(자신이 현재 다른 노드에게 NRQ 패킷을 전송해서 NRQ를 통한 연결을 시도 중인지의 여부를 나타내는 로컬 변수값)이 0인지 여부를 결정한다(S20-10).
상기 스텝(S20-10)에서 u_NRQ가 0이 아니면(N), 상기 스텝(S20-9)으로 진행된다(S20-10).
한편, 상기 스텝(20-10)에서 u_NRQ가 0이면(Y), 임의의 노드는 u_NRQ를 1로 설정하고, 싱크 노드로부터 노드까지의 홉 수[N(Hop)]를 1로 설정하며, NextHop(일반 노드들이 연결되어 있는 상위 노드 ID)를 싱크 노드(SN)로 설정하며, u_NRQ_Timer를 vtime_u_NRQ로 설정한다(S20-11).
다음, 임의의 노드는 자신이 1홉 노드라는 것을 확인하고, SB 패킷에 지정되어 있는 자신의 NRQ 스케쥴에 따라서 싱크 노드에게 NRQ 패킷을 전송한다(S20-12).
한편, 상기 스텝(S20-2)에서 하위 노드가 존재하지 않으면(N), 임의의 노드는 SB 패킷에 지정된 자신의 스케쥴에 따라 SBR 패킷을 싱크 노드에 송신한다(S20-13).
상기 스텝(S30)에서 수신한 패킷의 타입이 SBR 패킷 타입이면(Y), 임의의 노드는 자신이 싱크 노드인지의 여부를 결정한다(SBR의 목적지는 싱크 노드 뿐임에 유의해야 한다)(S30-1).
상기 스텝(S30-1)에서 자신이 싱크 노드가 아니면(N), 패킷을 무시한다(S30-2).
한편, 상기 스텝(S30-1)에서 자신이 싱크 노드이면(Y), 임의의 노드는 SBR 패킷을 파싱하여 관련 정보를 갱신한다(S30-3).
한편, 상기 스텝(S40)에서 수신한 패킷의 타입이 AB 패킷 타입이면(Y), 임의의 노드는 자신이 일반 스케쥴에 포함되어 있는지의 여부를 결정한다(S40-1).
상기 스텝(S40-1)에서, 임의의 노드 자신이 일반 스케쥴에 포함되어 있으면(Y), 임의의 노드는 연결되어 있는 하위 노드 존재 유무를 결정한다(S40-2).
상기 스텝(S40-2)에서 하위 노드가 존재하면(Y), 임의의 노드는 N(Hop)이 2인지의 여부를 결정한다(S40-3).
상기 스텝(S40-3)에서 N(Hop)가 2이면(Y), 임의의 노드는 자신이 2홉 노드임을 인식하고, 자신에게 연결되어 있는 3홉 노드를 고려해서 스케쥴을 계산한다(S40-4).
다음, 2홉 노드는 AB 패킷을 생성하고(S40-5), AB 패킷에 지정된 자신의 스케쥴에 맞추어 AB 패킷을 전송한다(S40-6).
다음, 2홉 노드는 자신의 하위 노드들로부터 ABR 패킷을 모두 받을 수 있을 것으로 예상되는 시간(Wait_ABR)만큼 대기 후에, 수신된 ABR 패킷을 파싱하여 관련 정보를 갱신한다(S40-7).
다음, 2홉 노드는 위의 갱신된 관련 정보를 기반으로 ABR 패킷을 생성하여 상위 노드인 1홉 노드에 전송한다(S40-8). 여기서 주의해야 할 점은 수신한 AB 패킷에 있는 다음 홉 노드에 대한 스케쥴링 시간 전까지 상위 노드인 NextHop에게 ABR 패킷이 도달할 수 있도록 해야 한다.
한편, 상기 스텝(S40-1)에서, 임의의 노드 자신이 일반 스케쥴에 포함되지 않으면(N), 임의의 노드는 자신이 NRQ 스케쥴에 포함되어 있는지의 여부를 결정한다(S40-9).
상기 스텝(S40-9)에서 임의의 노드가 NRQ 스케쥴에 포함되어 있으면(Y), 임의의 노드는 u_NRQ가 0인지 여부를 결정한다(S40-10).
상기 스텝(S40-10)에서, u_NRQ가 0이 아니면(N), 임의의 노드는 패킷을 무시한다(S40-11).
한편, 상기 스텝(S40-10)에서, u_NRQ가 0이면(Y)[즉, 노드 자신이 현재 다른 노드에게 NRQ 패킷을 전송하지 않은 상태라면, 달리 말하면 내가 NRQ 스케쥴에 포함되어 있는 최초의 패킷이라면(여기서, SB, AB 패킷에 모두 같은 NRQ_ID가 포함되어 있음에 유의해야 한다)], 임의의 노드는 u_NRQ=1로 설정하고, N(Hop)=N(S)+1로 설정하며 NextHop=S로 한 후, u_NRQ_Timer를 vtime_u_NRQ로 설정한다(즉, 지금부터 valid_time_u_NRQ 후에 u_NRQ=0으로 하도록 한다)(S40-12).
다음, 임의의 노드가 AB 패킷에 지정되어 있는 자신의 NRQ 스케쥴에 따라서 상위 노드인 홉 노드(S)에게 NRQ 패킷을 전송한다(S40-13).
한편, 상기 스텝(S40-3)에서 N(Hop)가 2가 아니면(N), 임의의 노드는 이벤트를 기록한다(S40-14).
한편, 상기 스텝(S40-2)에서 하위 노드가 존재하지 않으면(N), 임의의 노드가 AB 패킷에 지정되어 있는 자신의 스케쥴에 따라서 ABR 패킷을 상위 노드(NextHop)에 전송한다(S40-15).
한편, 상기 스텝(S50)에서 수신한 패킷의 타입이 ABR 패킷 타입이면(Y), 임의의 노드는 자신이 ABR의 목적지인지의 여부를 결정한다(S50-1).
상기 스텝(S50-1)에서 임의의 노드 자신이 ABR의 목적지이면(Y), 임의의 노드는 ABR 패킷을 파싱하여 관련 정보를 갱신한다(S50-2).
상기 스텝(S50-1)에서 임의의 노드 자신이 ABR의 목적지가 아니면(N), 임의의 노드는 수신 패킷을 무시한다(S50-3).
한편, 상기 스텝(S60)에서 수신한 패킷의 타입이 NRQ 패킷 타입이면(Y), 임의의 노드 자신이 NRQ 목적지인지의 여부를 결정한다(S60-1).
상기 스텝(S60-1)에서 임의의 노드 자신이 NRQ 목적지이면(Y), 임의 노드는 NRQ 패킷을 파싱하여 관련 정보를 갱신한다(S를 자신의 스케쥴링에 추가, 자신의 토폴로지 갱신 -> 변경된(추가된) 토폴로지를 ABR 패킷에 포함하여 보내야 한다. 이를 위한 ABR 필드 추가 필요함)(S60-2).
한편, 상기 스텝(S60-1)에서 임의의 노드 자신이 NRQ의 목적지가 아니면(N), 임의의 노드는 수신 패킷을 무시한다(S60-3).
[패킷 생성 절차]
(iSB 패킷 생성 절차)
iSB 패킷의 생성 절차는 도 21에 도시된 바와 같다.
(iSBR 패킷 생성 절차)
iSBR 패킷 생성 절차는 도 22에 도시된 바와 같다.
(iAB 패킷 생성 절차)
iAB 패킷 생성 절차는 도 23에 도시된 바와 같다.
## num_sID 및 sID 정하는 방법
1) 1홉 노드인 경우
- iAB_seq=1이면, iSB_seq=2인 iSB 패킷에 의해서 유발된 것으로서 맨 처음 시도하는 iAB이므로, iSB에 포함되어 있는 num_uID 값이 num_sID이고, uIDs 전체 목록이 sID가 된다.
- iAB_seq=2이면, iSB_seq=3인 iSB 패킷에 의해서 유발된 것으로서 두 번째 시도하는 iAB이므로, 나의 토폴로지에 있는 2홉 노드들의 전체 수가 num_sID이고 2홉 노드들 전체 ID가 sID가 된다.
2) 2홉 노드인 경우
- iAB_seq=2이면, 상위 1홉 노드로부터 3홉 노드를 식별하기 위해서 수신된 iAB 패킷에 의해서 유발되는 것으로서, 상위 1홉 노드로부터 수신된 iAB 패킷(iAB_seq=2)에 포함되어 있는 num_uID 값이 num_sID이고, uIDs 전체 목록이 sID가 된다.
- (참고) 2홉 노드는 iAB_seq=2인 iAB 패킷만을 생성한다
(iABR 패킷 생성 절차)
iABR 패킷 생성 절차는 도 24에 도시된 바와 같다.
## num_K_3 및 tIDs 정하는 방법
** 노드 자신의 토폴로지 정보로부터 자신에게 연결되어 있는 3홉 노드의 수 및 ID 목록으로부터 얻어진다.
1) 1홉 노드인 경우
- iABR 패킷을 생성하지 않음에 유의
2) 2홉 노드인 경우
- iABR_seq=1이면, 상위 노드인 1홉 노드의 iAB_seq=1인 iAB 패킷에 대한 응답으로서의 iABR이므로 num_K_3=0이다(토폴로지 정보가 아무것도 없으며, 토폴로지 정보로부터도 num_K_3=0이다).
- iABR_seq=2이면, 상위 노드인 1홉 노드의 iAB_seq=2인 iAB 패킷에 대한 응답으로서의 iABR이므로, 3홉 노드들로부터 수신된 iABR 패킷으로부터 형성되는 토폴로지 정보로부터 나에게 연결된 3홉 노드의 전체 수를 num_K_3로 한다.
2) 3홉 노드인 경우
- 하위 노드가 없으므로 토폴로지 정보가 없으며, 따라서 num_K_3=0이다.
(SB 패킷 생성 절차)
SB 패킷 생성 절차는 도 25에 도시된 바와 같다.
(SBR 패킷 생성 절차)
SBR 패킷 생성 절차는 도 26에 도시된 바와 같다.
- dNRQ는 Depth of NRQ. dNRQ는 NRQ에 의해서 연결되는 새로운 노드의 토폴로지에 대한 깊이로서 이어지는 tIDs에 나열되는 ID의 개수이다. dNRQ=1이면 현재의 1홉 노드에 새로운 노드가 바로 연결된 것이고, dNRQ=2이면 현재의 1홉 노드에 연결되어 있는 2홉 노드에 새로운 노드가 연결된 것이다. 예를 들어, 현재 1홉 노드의 ID가 2이고 dNRQ=2이며 tIDs=(3, 5)이면 5번 노드가 NRQ에 의해서 새롭게 연결되는 노드이고, 2-3-5의 연결 토폴로지를 가지는 것을 의미한다. SBR 패킷을 생성하는 노드는 1-hop 노드인데, 2-hop 노드들로부터 ABR 패킷을 모두 수신한 후에 SBR 패킷을 생성한다. ABR 패킷에 들어 있는 (ID_Sender, num_rNRQ, rNRQ_IDs) 정보를 이용하여 위와 같은 방법으로 [num_rNRQ, (dNRQ, tIDs)] 필드를 생성한다. 예를 들면, 자신의 ID가 2이고, 이 노드에는 ID가 3과 4인 2홉 노드가 연결되어 있으며, 3번 노드로부터 num_rNRQ=2, rNRQ_IDs=5,6인 ABR 패킷을 수신했고, 4번 노드로부터 num_rNRQ=1, rNRQ_IDs=7 인 ABR 패킷을 수신했다고 가정하자. 또한, 2번 노드가 ID가 8인 노드로부터 NRQ 패킷을 수신했다고 가정하자. 그러면, 2번 노드가 생성하는 SBR 패킷은, num_rNRQ=4이고, (dNRQ, tIDs)는, (2, (3,5)), (2, (3,6)), (2, (4,7)), (1, 8)이 된다.
- SBR 패킷은 1홉 노드가 하위 노드들의 데이터 패킷들을 SN에게 전달한다. 따라서, 각 하위 노드 당 데이터 패킷 길이가 짧으면 하나의 패킷 프레임만으로 다 전달할 수 있지만, 패킷 길이가 길면 각 노드 데이터 단위로 쪼개서 하나의 패킷 프레임에 한 개의 노드 데이터만 포함되도록 하는 것이 처리가 가장 편리하고, 만약 이것이 낭비가 너무 심한 경우에는 한 개의 패킷 프레임에 여러 개 노드의 데이터를 포함하도록 할 수 있다. 이것은 상황에 맞게 구현하면서 적절히 조절해야 한다.
(AB 패킷 생성 절차)
AB 패킷 생성 절차는 도 27에 도시된 바와 같다.
(ABR 패킷 생성 절차)
ABR 패킷 생성 절차는 도 28에 도시된 바와 같다.
- SBR과는 달리 ABR에는 dNRQ가 없다. 2홉 또는 3홉 노드들만이 ABR 패킷을 송신하는데, 3홉 노드들에게는 NRQ를 통해서 새로운 노드들이 연결되지 않고, 2홉 노드들에게 NRQ를 통해서 새롭게 연결되는 노드들은 3홉 노드들로서 토폴로지 깊이가 없기 때문이다. 3홉 노드들의 ABR 패킷은 항상 num_rNRQ=0이고, 따라서 rNRQ_ID 필드는 없다.
- ABR 패킷은 2홉 또는 3홉 노드가 생성하는데, 3홉 노드는 다른 노드들의 데이터를 중계(piggyback)하지 않지만, 2홉 노드들은 자신한테 연결되어 있는 3홉 노드들이 있는 경우에는 피기백(piggyback)을 한다. 따라서, 피기백이 있는 2홉 노드의 ABR 패킷은 SBR 패킷과 마찬가지로, 각 하위 노드 당 데이터 패킷 길이가 짧으면 하나의 패킷 프레임만으로 다 전달할 수 있지만, 패킷 길이가 길면 각 노드 데이터 단위로 쪼개서 하나의 패킷 프레임에 한 개의 노드 데이터만 포함되도록 하는 것이 처리가 가장 편리하고, 만약 이것이 낭비가 너무 심한 경우에는 한 개의 패킷 프레임에 여러 개 노드의 데이터를 포함하도록 할 수 있다. 이것은 상황에 맞게 구현하면서 적절히 조절하면 된다.
(NRQ 패킷 생성 절차)
NRQ 패킷 생성 절차는 도 29에 도시된 바와 같다.
[다중홉 수중 근거리 네트워크 구현시 패킷 파싱 방법]
(iSB 패킷 파싱 절차)
- 수신한 패킷에 있는 iSB_seq(iSB 패킷 전송 수) 값을 내부 로컬 변수에 갱신한다.
- 수신한 패킷에 있는 num_uID(식별되지 않은 노드 수) 및 uIDs(식별되지 않은 노드 ID)는 iAB 패킷(앵커 노드가 하위 노드를 식별하기 위한 초기화 패킷)을 생성할 때 필요한 정보이므로 내부 로컬 변수를 갱신한다
- 수신한 패킷에 있는 num_sID(스케쥴링 대상 노드수), sID(스케쥴 대상 노드 ID), 및 w_k(k번째 노드에게 시간이 할당되기 까지의 대기시간) 정보를 읽어들여서 자신의 스케쥴 정보(패킷의 sID와 노드 자신의 ID가 일치하는 부분의 w_k)에 해당하는 부분을 식별하여 읽어들인다
- 일반 노드들이 연결되어 있는 상위 노드 ID(NextHop) = 싱크 노드(SN)로 설정한다.
(iSB 패킷의 송신 노드는 SN이고, iSBR 패킷의 목적지는 SN이므로, 따로 정보를 두지 않았으며, 추가해도 무방함)
(iSBR 패킷 파싱 절차)
- 수신한 패킷에 있는 iSBR 패킷 송신 노드 ID(ID_Sender), num_K_2(노드 자신에게 연결된 2홉 노드의 수), iSBR 송신 노드의 토폴로지 정보(num_tID, tIDs)를 이용하여 SN의 토폴로지를 갱신한다.
(iAB 패킷 파싱 절차)
- 수신한 패킷에 있는 num_uID 및 uIDs는 노드 자신이 2홉 노드인 경우에는 3홉 노드를 식별하기 위해서 iAB 패킷을 생성할 때 필요한 정보이므로, 내부 로컬 변수를 갱신한다.
- 수신한 패킷에 있는 num_sID, sID, 및 w_k 정보를 읽어들여서, 노드 자신의 스케쥴 정보(패킷의 sID와 노드 자신의 ID가 일치하는 부분의 w_k)에 해당하는 부분을 식별하여 읽어들인다.
- NextHop=ID_Sender로 설정한다.
(iABR 패킷 파싱 절차)
- 수신한 패킷에 있는 iABR 패킷 송신 노드 ID(ID_Sender), num_K_3(노드 자신에게 연결된 3홉 노드의 수), 및 iSBR 송신 노드의 토폴로지 정보(num_tID, tIDs)를 이용하여 토폴로지를 갱신한다.
(SB 패킷 파싱 절차)
- 수신한 패킷에 있는, num_NRQ(링크가 손상되어 싱크 노드에 데이터가 전달되지 않는 노드수), num_sID, (sID, w_k), (NRQ_ID, w_k) 정보를 이용하여 정보를 읽어들여서, 노드 자신의 스케쥴 정보[패킷의 sID(또는 NRQ_ID)와 노드 자신의 ID가 일치하는 부분의 w_k] 에 해당하는 부분을 식별하여 읽어들인다
- num_NRQ, NRQ_IDs는 AB 패킷(1홉 노드 또는 2홉 노드들이 하위 노드들에게 스케쥴을 전달하고 링크가 손상된 노드를 파악하는 패킷)을 생성하는데 필요하므로, 로컬 변수에 저장하여 갱신한다. NRQ_IDs 들은 자신의 토폴로지에서 삭제한다[그렇지 않으면, NRQ_IDs에 포함되어 있는 노드들은 중복(일반 스케쥴에서 한 번, NRQ 스케쥴에서 한 번) 스케쥴링이 될 수 있음]
(SBR 패킷 파싱 절차)
- 수신한 패킷에 있는 ID_Sender, num_rNRQ(자신을 목적지로 NRQ 패킷이 수신된 노드의 수), [dNRQ(응답된 NRQ의 깊이), tIDs(iSBR 송신 노드의 토폴로지 정보)] 정보를 이용하여 나 자신(SN)의 토폴로지를 갱신한다.
- 수신한 데이터 페이로드인 (ID, Data, CRC) 정보를 이용하여, 응용 계층에서 처리한다.
(AB 패킷 파싱 절차)
- 수신한 패킷에 있는 AB_seq(AB 패킷 발생 횟수) 정보는 ABR 패킷을 생성할 때 필요하므로, 로컬 변수로 갱신한다
- NextHop=ID_Sender로 설정한다.
- 수신한 패킷에 있는 num_NRQ, num_sID, (sID, w_k), (NRQ_ID, w_k) 정보를 이용하여 정보를 읽어들여서, 노드 자신의 스케쥴[패킷의 sID(또는 NRQ_ID)와 자신의 ID가 일치하는 부분의 w_k] 정보에 해당하는 부분을 식별하여 읽어들인다.
- num_NRQ, NRQ_IDs(NRQ 대상 ID)는, 노드 자신이 2홉 노드인 경우에는 3홉 노드 식별을 위한 AB 패킷을 생성하는데 필요하므로, 로컬 변수에 저장하여 갱신한다. NRQ_IDs 들은 노드 자신의 토폴로지에서 삭제한다[그렇지 않으면, NRQ_IDs에 포함되어 있는 노드들은 중복(일반 스케쥴에서 한 번, NRQ 스케쥴에서 한 번) 스케쥴링이 될 수 있음].
(ABR 패킷 파싱 절차)
- 수신한 패킷에 있는 ID_Sender, num_rNRQ, rNRQ_IDs 정보를 이용하여 노드 자신의 토폴로지를 갱신하는 단계; 노드 자신이 1홉 노드인 경우에는 SBR 패킷을 생성하는데 상기 ID_Sender, num_rNRQ(자신을 목적지로 NRQ 패킷이 수신된 노드의 수), rNRQ_IDs(자신을 목적지로 NRQ 패킷이 수신된 노드의 ID 목록) 정보가 필요하므로 별도로 로컬변수로 저장해둔다. 만약, 자신이 2홉 노드이면 3홉 노드들로부터 수신되는 ABR 패킷은 num_rNRQ=0이므로 파싱할 정보가 없다
- 수신한 데이터 페이로드(ID, Data, CRC) 정보는 피기백(piggyback)하여 상위 노드에게 보내는 ABR 또는 SBR 패킷에 포함되도록 한다.
(NRQ 패킷 파싱 절차)
- 수신된 패킷에 있는 ID_Sender 정보가 NRQ를 통해서 얻어진 정보이므로 저장하고, ABR 또는 SBR 패킷을 생성할 때 NRQ 관련 정보에 포함되도록 한다.
- NextHop=ID_Sender로 설정한다.
- N(Hop)=N(S)+1로 설정하고, 타입이 SB 패킷이면 N(S)=0임에 유의해야 한다.
[스케쥴링 변수 정의]
도 30a 및 도 30b에는 스케쥴링 변수가 도시되어 있음.
여기서, 범위는 전체 노드의 개수가 5이고, 이 중에서 SN 1개를 제외하면 4개의 일반 노드가 존재한다는 가정 하에 만들어질 수 있는 범위임
[다중홉 수중 근거리 네트워크 구현시 싱크 노드(SN)의 초기화 스케쥴링 방법]
도 5는 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 싱크 노드(SN)의 초기화 스케쥴링 방법을 설명하기 위한 플로우챠트로서, 여기서 S는 스텝(step)을 의미한다.
- SN의 초기화 스케쥴링은 iSB_seq 값에 따라서 달라진다. iSB_seq = k 일때는, k-홉 깊이까지 토폴로지 식별이 이루어진다, 즉 iSB_seq 값이 1 증가할 때마다 식별 깊이(홉 수)가 1씩 증가한다.
- 최대 홉 수는 3을 생각하고 있으므로, iSB_seq 값은 최대 3이다.
- SN이 iSB 패킷을 방송하고 나서 1홉 노드에게 수신되기까지 걸리는 시각은 최대 RTT_max/2 이고, 하나의 노드가 iSB 패킷을 수신한 후에 바로 응답한다고 가정하면 (이 노드가 iSBR 패킷을 생성하는데 소요되는 시간을 무시하면) 이 노드가 iSBR 패킷을 전송해서 SN에 수신되기까지는 하나의 데이터 패킷 길이인 DT + RTT_max/2 시간만큼 소요된다. 패킷 생성에 소요되는 시간 및 시스템의 시간 지연 등을 고려한 GT를 고려하면, 하나의 노드가 SN으로부터 iSB 패킷을 받고 이 노드로부터 iSBR 패킷이 SN에 수신되기까지 소요되는 시간이 UT = RTT_max + DT + GT 이다. 이 원리는 모든 1홉 통신에 적용된다.
싱크 노드(SN)의 초기화 스케쥴링 방법에 대해 설명하기로 한다.
먼저, 싱크 노드가 초기화 스테이지에서 스케쥴링을 요청받는다(S10).
다음, 싱크 노드가 iSB_seq[iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷)의 전송 수]=1인지의 여부의 여부를 결정한다(S20).
다음, 상기 스텝(S20)에서 iSB_seq=1이 아니면(N), 싱크 노드는 iSB_seq=2 인지의 여부를 결정한다(S30).
상기 스텝(S30)에서 iSB_seq=2이 아니면(N), 싱크 노드는 iSB_seq=3 인지의 여부를 결정한다(S40).
상기 스텝(S40)에서 iSB_seq=3이 아니면(N), 싱크 노드가 어브노멀 이벤트를 기록한다(S50).
한편, 상기 스텝(S20)에서 iSB_seq=1이면(Y)(즉, 최초의 iSB 일 때는), 싱크 노드는 모든 Kmax 개의 노드가 자신과 1홉으로 연결된다고 가정하고서 스케쥴링을 한다(S20-1).
즉, 각 노드가 순차적으로 iSBR 패킷을 응답하는 방식으로 하면, 첫 번째 노드의 대기 시간은 w_1=0이다. 그 다음 부터는 순차적으로 UT 씩 증가시키면 되므로 도 5에 도시된 바와 같다. 마지막 노드의 iSBR 패킷이 수신 완료될 것으로 예상되는 시각이 Wait_iSBR인데, 이것은 하나의 노드가 더 있다고 생각했을 때 마지막의 대기 시간이 된다.
상기 스텝(S30)에서 iSB_seq=2이면(Y), 싱크 노드는 1홉 노드가 모두 식별되었고, 식별되지 않은 전체 노드가 1홉 노드에 연결될 수 있다고 가정하고서 스케쥴링을 한다(S20-2). 식별된 1홉 노드의 수가 K_1이므로, 식별되지 않은 노드의 수는 K_max - K_1이다. 즉, 모든 1홉 노드에 K_max - K_1개의 잠재적 2홉 노드를 식별할 수 있도록 대기 시간을 부여한다. 한 개의 1홉 노드가 K_max - K_1 개의 노드를 식별하기 위해 필요한 시간이므로, SN이 K_max - K_1개의 1홉 노드를 식별하는데 소요되는 시간하고 같은 개념이고, 따라서, iSB_seq=1일 때는 UT 만큼씩 증가시켰지만, iSB_seq = 2 일때는 해당 1홉 노드가 SN하고 통신하는데 필요한 UT 그리고 해당 1홉 노드가 K_max - K_1개의 2홉 노드를 식별하는데 필요한 UT*(K_max - K_1)을 더한 만큼씩 증가시키고, 그 사이에 GT를 한 번 더 부여하여, 안정적인 충돌 회피를 위한 여분의 시간을 주도록 한다.
상기 결정 단계(S40)에서 iSB_seq=3이면(Y), 상기 싱크 노드는 2홉 노드까지 모두 식별되었고, 식별되지 않은 K_max - K_1 - K_2개의 노드가 모두 각각의 2홉 노드에게 연결될 수 있다고 가정하고서 스케쥴링한다(S20-3).
각 2홉 노드가 K_max - K_1 - K_2개의 노드를 식별하는데 소요되는 시간은 UT*(K_max - K_1 - K_2)이다. 따라서, i-번째 1홉 노드가 자신에게 연결된 2홉 노드와 통신하는데 필요한 시간이 UT*NC_2,i 인데 NC_2,i 개의 2-hop 노드가 K_max - K_1 - K_2 개의 노드를 식별해야하므로, i-번째 1-hop 노드가 자신에게 연결된 NC_2,i 개의 모든 2-hop 노드들과 통신을 완료하기 위해서 필요한 시각은 UT*NC_2,i + UT*(K_max - K_1 - K_2)*NC_2,i 이다. 따라서, 대기 시간은 도 5와 같다.
[다중홉 수중 근거리 네트워크 구현시 앵커 노드(AN)의 초기화 스케쥴링 방법]
도 6은 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 앵커 노드(AN)의 초기화 스케쥴링 방법을 설명하기 위한 플로우챠트로서, 여기서 S는 스텝(step)을 의미한다.
앵커 노드(AN)의 초기화 스케쥴링 방법에 대해 설명하기로 한다.
먼저, 앵커 노드가 초기화 스테이지에서 스케쥴링을 요청받는다(S10).
다음, 앵커 노드가 iAB_seq[iAB 패킷(앵커 노드가 하위 노드를 식별하기 위한 초기화 패킷)의 전송 수]=1인지의 여부의 여부를 결정한다(S20).
상기 스텝(S20)에서 iAB_seq=1이 아니면(N), 앵커 노드는 iAB_seq=2 인지의 여부를 결정한다(S30).
상기 스텝(S30)에서 iAB_seq=2이 아니면(N), 앵커 노드가 어브노멀 이벤트를 기록한다(S40).
한편, 상기 스텝(S20)에서 iAB_seq=1이면(Y), 1홉 노드가 2홉 노드를 식별하는 경우로서, 식별되지 않은 모든 노드가 자신에게 연결될 수 있다고 가정하고서 스케쥴링한다(S20-1).
식별되지 않은 노드의 수인 K_R은 수신한 iSB 패킷에 들어있는 정보임에 유의한다. SN이 K_R개의 노드와 통신하는 경우와 같은 스케쥴링이다.
한편, 상기 스텝(S30)에서 iAB_seq=2이면(Y), 앵커 노드는 N(Hop)(자신의 홉 수)=1인지의 여부를 결정한다(S30-1).
상기 스텝(S30-1)에서 N(Hop)=1이면(Y), 1홉 노드가 자신에게 연결된 2홉 노드들이 3홉 노드를 식별하는 경우로서, 1홉 노드가 자신에게 연결된 2홉 노드 각각에 식별되지 않은 모든 K_R개의 노드가 3홉 노드로 연결될 수 있다고 가정하고서 스케쥴링한다(S30-2).
1홉 노드가 해당 2홉 노드하고 통신하는데 필요한 UT 그리고 해당 2홉 노드가 K_R개의 노드를 식별하는데 필요한 UT*K_R을 더한 만큼씩 증가시키고, 그 사이에 GT(가드 타임)를 한 번 더 부여하여, 안정적인 충돌 회피를 위한 여분의 시간을 주도록 한다.
한편, 상기 스텝(S30-1)에서 N(Hop)=1이 아니면(N), 앵커 노드는 N(Hop)=2인지의 여부를 결정한다(S30-3).
상기 스텝(S30-3)에서 N(Hop)=2이면(Y), 2홉 노드가 3홉 노드를 식별하는 경우에 해당하며, K_R개의 식별되지 않은 모든 노드가 자신에게 연결될 수 있다고 가정하고서 스케쥴링한다(S30-4).
상기 스텝(S30-3)에서 N(Hop)=2가 아니면(N), 상기 스텝(S40)으로 진행된다.
[다중홉 수중 근거리 네트워크 구현시 싱크 노드(SN)의 정규 과정 스케쥴링 방법]
도 7은 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 싱크 노드(SN)의 정규 과정 스케쥴링 방법을 설명하기 위한 플로우챠트로서, 여기서 S는 스텝(step)을 의미한다.
정규 과정에서 특히 주의해야하는 것은, 하위 노드를 가지고 있는 1홉 노드와 2홉 노드는 하위 노드들의 데이터 패킷을 피기백하여 전달하므로, 이를 고려해서 스케쥴링해야 한다는 것이다.
그리고, 정규 과정의 스케쥴링은 num_NRQ 가 0보다 큰지의 유무, 즉 신규 진입 노드 허용 여부에 따라서 달라진다
싱크 노드(SN)의 정규 과정 스케쥴링 방법에 대해 설명하기로 한다.
먼저, 싱크 노드가 일반 스테이지에서 스케쥴링을 요청받는다(S10).
다음, 싱크 노드가 num_NRQ(링크가 손상되어 싱크 노드에 데이터가 전달되지 않는 노드 수)=0인지의 여부를 결정한다(S20).
상기 스텝(S20)에서 num_NRQ=0이면(Y)(즉, NRQ를 통한 신규 노드의 진입을 허용하지 않는 경우에는), 싱크 노드는 3홉 노드의 데이터가 상위 노드인 1홉 노드와 2홉 노드에서 각각 1번씩 피기백되어 중계되므로 총 2번의 중계가 이루어지고, 2홉 노드의 데이터가 상위 노드인 1홉 노드에서 1번 피기백되어 중계된다(S20-1).
이에 따라 SN은 각 1홉 노드의 스케쥴링을 할 때 해당 1홉 노드로부터 데이터 패킷이 수신되기까지 1홉 노드와 2홉 노드에서 발생하는 하위 노드들의 데이터 패킷이 중계가 이루어지는 DT*(2*NC_3,i + NC_2,i)만큼의 시간을 고려해야 한다. 그리고, 해당 1홉 노드의 전체 하위 노드 수만큼 통신이 이루어지므로 UT*NC_i만큼의 시간이 필요하고, 1홉 노드의 하위 노드 깊이만큼 GT를 추가하여 안정적인 충돌 회피를 위한 여분의 시간을 주면 된다. 맨 처음 항목은 SN과 각 1홉 노드간 통신에 필요한 시간이다.
상기 스텝(S20)에서 num_NRQ=0이 아니면(N)(즉, NRQ를 통한 신규 노드의 진입을 허용하는 경우에는), 싱크 노드는 3홉 노드를 제외한 모든 노드에 K_NRQ 개의 노드가 NRQ를 통하여 연결될 수 있는 절차가 가능하도록 스케쥴링한다(20-2)
이것을 가장 간단하게 생각하는 방법은, 각 1홉 노드에 K_NRQ 개의 신규 노드가 연결될 수 있고, 해당 1홉 노드에 연결된 2홉 노드마다 K_NRQ 개의 신규 노드가 연결될 수 있으므로, 이 과정에 UT*(NC_2,i + 1)*K_NRQ 만큼의 시간이 필요하다.
[다중홉 수중 근거리 네트워크 구현시 앵커 노드(AN)의 정규 과정 스케쥴링 방법]
도 8은 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현시 앵커 노드(AN)의 정규 과정 스케쥴링 방법을 설명하기 위한 플로우챠트로서, 여기서 S는 스텝(step)을 의미한다.
- SN의 정규 과정과 마찬가지로 AN의 정규 과정에서도 특히 주의해야하는 것은, 하위 노드를 가지고 있는 2홉 노드는 하위 노드들의 데이터 패킷을 피기백하여 전달하므로, 이를 고려해서 스케쥴링해야한다는 것이고, 정규 과정의 스케쥴링은 num_NRQ 가 0보다 큰지의 여부, 즉 신규 진입 노드 허용 여부에 따라서 달라진다.
- SN의 정규 과정 과정과의 차이점은 N(Hop)에 따라서 스케쥴링이 약간 차이가 있다. 사실, 이 부분은 일반적으로는 하나로 묶어서 표시할 수 있으나, 구현의 직관성을 높이기 위해서 편의상 구분했다.
앵커 노드(AN)의 정규 과정 스케쥴링 방법에 대해 설명하기로 한다
먼저, 앵커 노드가 일반 스테이지에서 스케쥴링을 요청받는다(S10).
다음, 앵커 노드가 N(Hop)(자신의 홉 수)=1인지의 여부를 결정한다(S20).
상기 스텝(S20)에서 N(Hop)=1이 아니면(N), 앵커 노드는 N(Hop)=2인지의 여부를 결정한다(S30).
상기 스텝(S30)에서 N(Hop)=2가 아니면(N), 상기 앵커 노드는 어브노말 이벤트를 기록한다(S40).
한편, 상기 스텝(S20)에서 N(Hop)=1이면(Y),(하위 노드를 가지고 있는 2홉 노드는 하위 노드(3홉 노드)들의 데이터 패킷을 피기백하여 전달하므로, 이를 고려해서 스케쥴링해야 하기 때문에), 앵커 노드는 num_NRQ=0(링크가 손상되어 싱크 노드에 데이터가 전달되지 않는 노드 수)인지의 여부를 결정한다(S20-1).
상기 스텝(S20-1)에서 num_NRQ=0이면(Y)(즉, NRQ를 통한 신규 노드의 진입을 허용하지 않는 경우에는), (3홉 노드의 데이터가 해당 3홉 노드의 상위 노드인 2홉노드에서 피기백되어 중계되므로) 1홉 노드는 자신에게 연결되는 2홉 노드들의 스케쥴을 계산함에 있어서, 스케쥴 대상인 2홉 노드로부터 데이터 패킷이 수신되기까지 2홉 노드에서 발생하는 3홉 노드들의 데이터 패킷이 중계가 이루어지는 DT*NC_3,i만큼의 시간을 고려해야 하고, 스케쥴 해당 2홉 노드의 전체 하위 노드 수만큼 통신이 이루어지므로 UT*NC_i 만큼의 시간이 필요하고, 해당 2홉 노드의 하위 노드 깊이만큼 GT(가드 타임)를 추가하여 안정적인 충돌 회피를 위한 여분의 시간을 준다(S20-2)
맨 처음 항목은 나 자신과 각 2홉 노드간 통신에 필요한 시간이다.
상기 스텝(S20-1)에서 num_NRQ=0이 아니면(N)(즉, NRQ를 통한 신규 노드의 진입을 허용하는 경우에는), 앵커 노드는 3홉 노드를 제외한 모든 노드에 K_NRQ 개의 노드가 NRQ 패킷(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷)을 통하여 연결될 수 있는 절차가 가능하도록 스케쥴링한다(S20-3).
이것을 가장 간단하게 생각하는 방법은, 스케쥴 대상인 각 2홉 노드에 K_NRQ 개의 신규 노드가 연결될 수 있으므로, 이 과정에 UT*K_NRQ 만큼의 시간이 필요하다. 링크가 유지되고 있어서 일반 스케쥴에 해당하는 노드들의 스케쥴 계산이 끝나면, 그 후에 K_NRQ 개의 노드가 NRQ를 통해서 나에게 연결될 수 있도록 스케쥴을 계산하며, 이 때는 단순히 K_NRQ개의 노드와 순차적인 통신을 하는데 필요한 UT만큼의 시간을 부여하면 된다.
한편, 상기 스텝(S30)에서 N(Hop)=2이면(Y), (3홉의 하위노드만 존재하며, 3홉 노드들은 누군가의 패킷을 피기백하여 중계하는 경우가 없다는 것이 N(Hop)=1인 경우와의 차이임) 앵커 노드는 num_NRQ=0인지의 여부를 결정한다(S30-1).
상기 스텝(S30-1)에서 num_NRQ=0이면(Y), 앵커 노드는 스케쥴 대상인 K_3 개의 노드를 대상으로 스케쥴링한다(S30-2).
한편, 상기 스텝(S30-1)에서 num_NRQ=0이 아니면(N), 앵커 노드는 (링크가 유지되고 있어서) 일반 스케쥴에 해당하는 K_3개의 노드를 대상으로 스케쥴링 후에, K_NRQ 개의 노드가 NRQ를 통해서 자신에게 연결될 수 있도록 스케쥴을 계산한다(S30-3).
위와 같이 구성된 본 발명의 실시예에 의한 다중홉 수중 근거리 네트워크 구현 방법에 의하면, 하나의 싱크 노드와 다수의 홉 노드들로 구성된 네트워크 토폴로지에서 다중홉 수중 근거리 네트워크 구현 방법으로서: 싱크 노드가 내부 메모리로부터 글로벌 변수들을 읽어들이는 단계(S100); 상기 싱크 노드가 내부 메모리로부터 초기화 과정에서의 스케쥴 계산 함수를 호출하여 초기화 스케쥴을 계산하는 단계(S200); 상기 싱크 노드가 iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷)을 생성하여 상기 홉 노드들에게 전송하는 단계(S300); 상기 싱크 노드가 iSBR 패킷(iSB 패킷에 대한 응답 패킷)이 모두 수신될 수 있는 대기 시간(Wait_iSBR) 동안 대기하는 단계(S400); 상기 싱크 노드가 상기 iSBR 패킷을 모두 수신하면 iSB 패킷 전송 수(iSB_seq)를 1 증가시키는 단계(S500); 상기 싱크 노드가 num_IID(식별된 전체 노드 수)가 maxK(싱크 노드를 제외한 전체 노드 수)와 같은지의 여부를 결정하는 단계(S600); 상기 결정 단계(S600)에서 상기 num_IID가 maxK와 같지 않으면 상기 싱크 노드가 상기 iSB_seq가 maxHop(최대 홉수)보다 큰 지의 여부를 결정하는 단계(S700); 상기 iSB_seq가 상기 maxHop보다 크면, 상기 싱크 노드는 NRQ(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷) 테이블을 생성하는 단계(S800); 상기 싱크 노드가 상기 NRQ 정보를 확인하고 스케쥴을 계산하는 단계(S900); 상기 싱크 노드가 홉 노드에 SB 패킷(싱크 노드가 링크 손상된 노드 파악을 위한 패킷)을 송신하는 단계(S1000); 상기 싱크 노드가 SBR 패킷(SB 패킷에 대한 응답 패킷)이 모두 수신될 수 있는 대기 시간(Wait_SBR) 동안 대기하는 단계(S1100); 상기 싱크 노드가 SBR 패킷을 모두 수신하면, SB_seq(SB 패킷 전송 수)를 1 증가시키는 단계(S1200); 및 상기 싱크 노드가 StopNet(네트워크 중지 변수)가 활성화되는 지의 여부를 결정하는 단계(S1300);를 포함하고, 상기 결정 단계(S1300)에서 상기 StopNet가 활성화되면 동작이 종료되는 한편, 상기 StopNet가 활성화되지 않으면 상기 단계(S800)로 진행되도록 구성됨으로써, 매체접속제어 프로토콜과 라우팅 프로토콜을 융합하여 네트워킹을 위한 패킷 교환과 오버헤드를 최소화하므로 데이터 전송률이 낮은 수중음향 네트워크의 효율을 크게 향상시킬 수 있다.
도면과 명세서에는 최적의 실시예가 개시되었으며, 특정한 용어들이 사용되었으나 이는 단지 본 발명의 실시형태를 설명하기 위한 목적으로 사용된 것이지 의미를 한정하거나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
SN : 싱크 노드
AN : 앵커 노드
iSB_seq: iSB 패킷 전송 수
Wait_iSBR: iSBR 패킷이 모두 수신될 수 있는 대기 시간
num_IID: 식별된 전체 노드 수
maxK: 싱크 노드를 제외한 전체 노드 수
maxHop: 최대 홉수
NRQ: 링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷
StopNet: 네트워크 중지 변수
maxRTT: 최대 라운드 트립 시간
DT: 단위 패킷 프레임의 듀레이션(duration)
GT: 가드 타임
Sender_ID: 송신 노드 아이디
N(hop): 싱크 노드로부터 노드까지의 홉 수
Wait_iABR: iABR 패킷을 모두 수신할 수 있는 시간
iABR_seq: iABR 패킷 전송수
NextHop: 일반 노드들이 연결되어 있는 상위 노드 ID
Wait_ABR: ABR 패킷을 모두 수신할 수 있을 것으로 예상되는 시간

Claims (31)

  1. 하나의 싱크 노드와 다수의 홉 노드들로 구성된 네트워크 토폴로지에서 다중홉 수중 근거리 네트워크 구현 방법으로서:
    싱크 노드가 내부 메모리로부터 글로벌 변수들을 읽어들이는 단계(S100);
    상기 싱크 노드가 내부 메모리로부터 초기화 과정에서의 스케쥴 계산 함수를 호출하여 초기화 스케쥴을 계산하는 단계(S200);
    상기 싱크 노드가 iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷)을 생성하여 상기 홉 노드들에게 전송하는 단계(S300);
    상기 싱크 노드가 iSBR 패킷(iSB 패킷에 대한 응답 패킷)이 모두 수신될 수 있는 대기 시간(Wait_iSBR) 동안 대기하는 단계(S400);
    상기 싱크 노드가 상기 iSBR 패킷을 모두 수신하면 iSB 패킷 전송 수(iSB_seq)를 1 증가시키는 단계(S500);
    상기 싱크 노드가 num_IID(식별된 전체 노드 수)가 maxK(싱크 노드를 제외한 전체 노드 수)와 같은지의 여부를 결정하는 단계(S600);
    상기 결정 단계(S600)에서 상기 num_IID가 maxK와 같지 않으면 상기 싱크 노드가 상기 iSB_seq가 maxHop(최대 홉수)보다 큰 지의 여부를 결정하는 단계(S700);
    상기 iSB_seq가 상기 maxHop보다 크면, 상기 싱크 노드는 NRQ(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷) 테이블을 생성하는 단계(S800);
    상기 싱크 노드가 상기 NRQ 정보를 확인하고 스케쥴을 계산하는 단계(S900);
    상기 싱크 노드가 홉 노드에 SB 패킷(싱크 노드가 링크 손상된 노드 파악을 위한 패킷)을 송신하는 단계(S1000);
    상기 싱크 노드가 SBR 패킷(SB 패킷에 대한 응답 패킷)이 모두 수신될 수 있는 대기 시간(Wait_SBR) 동안 대기하는 단계(S1100);
    상기 싱크 노드가 SBR 패킷을 모두 수신하면, SB_seq(SB 패킷 전송 수)를 1 증가시키는 단계(S1200); 및
    상기 싱크 노드가 StopNet(네트워크 중지 변수)가 활성화되는 지의 여부를 결정하는 단계(S1300);를 포함하고,
    상기 결정 단계(S1300)에서 상기 StopNet가 활성화되면 동작이 종료되는 한편, 상기 StopNet가 활성화되지 않으면 상기 단계(S800)로 진행되는, 다중홉 수중 근거리 네트워크 구현 방법.
  2. 제 1 항에 있어서,
    상기 단계(S700)에서, 상기 iSB_seq가 상기 maxHop보다 크지 않으면, 상기 단계(S200)로 진행되는, 다중홉 수중 근거리 네트워크 구현 방법.
  3. 제 1 항에 있어서,
    상기 단계(S600)에서, 상기 num_IID가 상기 maxK와 같으면, 상기 단계(S800)로 진행되는, 다중홉 수중 근거리 네트워크 구현 방법.
  4. 제 1 항에 있어서,
    상기 글로벌 변수는
    StartNet(네트워크 시작 변수), StopNet, maxHop, maxRTT(최대 라운드 트립 시간), maxK, DT[단위 패킷 프레임의 듀레이션(duration)], 및 GT(가드 타임)을 포함하는, 다중홉 수중 근거리 네트워크 구현 방법.
  5. 다중홉 수중 근거리 네트워크 구현시 초기화 과정의 수신 패킷 처리 방법은,
    임의의 노드가 Sender_ID(송신 노드 아이디)가 S인 노드로부터 패킷을 수신하는 단계(S10);
    상기 임의의 노드가 상기 단계(S10)에서 수신한 패킷의 타입이 iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷) 타입인지의 여부를 결정하는 단계(S20);
    상기 결정 단계(S20)에서 수신한 패킷의 타입이 iSB 패킷 타입이 아니면, 상기 임의의 노드가 수신한 패킷의 타입이 iSBR 패킷(iSB 패킷에 대한 응답 패킷) 타입인지의 여부를 결정하는 단계(S30);
    상기 결정 단계(S30)에서 수신한 패킷의 타입이 iSBR 패킷 타입이 아니면, 상기 임의의 노드가 수신한 패킷의 타입이 iAB 패킷(앵커 노드가 하위 노드를 식별하기 위한 초기화 패킷) 타입 인지의 여부를 결정하는 단계(S40);
    상기 결정 단계(S40)에서 수신한 패킷의 타입이 iAB 패킷 타입이 아니면, 상기 임의의 노드가 수신한 패킷의 타입이 iABR 패킷(iAB 패킷에 대한 응답 패킷) 타입 인지의 여부를 결정하는 단계(S50); 및
    상기 결정 단계(S50)에서 상기 수신한 패킷의 타입이 iABR 패킷 타입이 아니면, 상기 임의의 노드가 어브노멀 이벤트(abnormal event)를 기록하는 단계(S60);를 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  6. 제 5 항에 있어서,
    상기 결정 단계(S20)에서 상기 수신한 패킷의 타입이 iSB 패킷 타입이면, 상기 임의의 노드는 iSB_seq(iSB 패킷 전송 수)가 maxHop(최대 홉수)이하 인지의 여부를 결정하는 단계(S20-1);
    상기 결정 단계(S20-1)에서 상기 iSB_seq가 maxHop이하이면, 상기 임의의 노드는 노드 자신이 스케쥴에 포함되는 지의 여부를 결정하는 단계(S20-3);
    상기 결정 단계(S20-3)에서 노드 자신이 스케쥴에 포함되면, 상기 임의의 노드는 iSB_seq가 1보다 큰지의 여부를 결정하는 단계(S20-5);
    상기 결정 단계(S20-5)에서 iSB_seq가 1보다 크면, 상기 임의의 노드는 N(hop)(싱크 노드로부터 노드까지의 홉 수)가 1보다 큰지의 여부를 결정하는 단계(S20-8); 및
    상기 N(hop)가 1보다 크면 상기 임의의 노드가 어브노멀 이벤트를 기록하는 단계(S20-13);를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  7. 제 6 항에 있어서,
    상기 결정 단계(S20-1)에서 상기 iSB_seq가 maxHop미만이면, 상기 임의의 노드가 어브노멀 이벤트를 기록하는 단계(S20-2)를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  8. 제 6 항에 있어서,
    상기 결정 단계(S20-3)에서 노드 자신이 스케쥴에 포함되지 않으면, 상기 임의의 노드가 패킷을 무시하는 단계(S20-4)를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  9. 제 6 항에 있어서,
    상기 결정 단계(S20-5)에서 iSB_seq가 1이하이면, 상기 임의의 노드는 노드 자신의 소요 홉수를 1로 설정하여 자신을 1홉 노드로 인식하는 단계(S20-6); 및
    상기 1홉 노드가 iSBR 패킷을 생성한 후에, iSB 패킷에 지정된 시간만큼 대기한 후에 싱크 노드에게 iSBR 패킷을 전송하는 단계(S20-7);를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  10. 제 6 항에 있어서,
    상기 결정 단계(S20-8)에서 상기 N(hop)가 1 이하이면, 자신을 1홉 노드로 인식하고, 이 1홉 노드는 하위 노드 식별을 위해서, iSB_seq에 해당하는 홉(iSB_seq hop) 까지 고려한 스케쥴링 정보를 계산하는 단계(S20-9);
    1홉 노드는 iAB 패킷을 생성한 후에, iSB 패킷에 지정되어 있는 자신의 스케쥴 시각에 맞추어 하위 노드들에게 iAB 패킷을 전송하는 단계(S20-10);
    상기 1홉 노드는 하위 노드들로부터 iABR 패킷을 모두 수신할 수 있는 시간(Wait_iABR) 만큼 대기하는 단계(S20-11); 및
    상기 1홉 노드는 하위 노드들로부터 iABR 패킷이 수신 완료되면 iSBR 패킷을 생성하여 싱크 노드에 전송하는 단계(S20-12)를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  11. 제 5 항에 있어서,
    상기 결정 단계(S30)에서 수신한 패킷의 타입이 iSBR 패킷 타입이면, 상기 임의의 노드가 싱크 노드인 지의 여부를 결정하는 단계(S30-1);
    상기 결정 단계(S30-1)에서 자신의 노드가 싱크 노드가 아니면, 상기 임의의 노드가 패킷을 무시하는 단계(S30-2); 및
    상기 결정 단계(S30-1)에서 자신의 노드가 싱크 노드이면, 이 싱크 노드는 iSBR 패킷을 파싱하여 관련 정보를 갱신하는 단계(S30-3);를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  12. 제 5 항에 있어서,
    상기 결정 단계(S50)에서 상기 수신한 패킷의 타입이 iABR 패킷 타입이면, 상기 임의의 노드는 자신이 스케쥴링에 포함되는 지의 여부를 결정하는 단계(S40-1);
    상기 결정 단계(S40-1)에서 상기 임의의 노드 자신이 스케쥴링에 포함되면, 상기 임의의 노드는 iAB_seq가 1인지의 여부를 결정하는 단계(S40-3);
    상기 결정 단계(S40-3)에서 상기 iAB_seq가 1이 아니면, 상기 임의의 노드는 iAB_seq가 2인지의 여부를 결정하는 단계(S40-7); 및
    상기 결정 단계(S40-7)에서, 상기 iAB_seq가 2가 아니면, 상기 임의의 노드는 어브노멀 이벤트를 기록하는 단계(S40-8);를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  13. 제 12 항에 있어서,
    상기 결정 단계(S40-1)에서 상기 임의의 노드 자신이 스케쥴링에 포함되지 않으면, 패킷을 무시하는 단계(S40-2);
    상기 단계(S40-3)에서 상기 iAB_seq가 1이면, 상기 임의의 노드는 자신의 홉 수[N(Hop)]가 디폴트 값(inf) 인지의 여부를 결정하는 단계(S40-4);
    상기 결정 단계(S40-4)에서 자신의 N(Hop)이 inf가 아니면, 상기 임의의 노드는 상기 단계(S40-2)로 진행되는 한편, 자신의 N(Hop)이 inf이면 자신의 노드를 2홉 노드로서 인식하고, 이 2홉 노드는 iAB 패킷 송신 노드(S)에게 2-홉 노드로서 연결하기 위해서, 목적지인 상위 노드의 ID를 S로 설정하고, N(Hop)을 2로 설정하며, iABR_seq(iABR 패킷 전송수)를 1로 설정하는 단계(S40-5); 및
    상기 2홉 노드는 iAB 패킷에 지정된 시간동안 대기 후에, S 홉 수 노드에 iABR 패킷을 전송하는 단계(S40-6);를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  14. 제 12 항에 있어서,
    상기 결정 단계(S40-7)에서 상기 iAB_seq가 2이면,
    상기 임의의 노드는 N(Hop)가 2이고 상위 노드의 홉수[N(S)]가 1인지의 여부를 결정하는 단계(S40-9);
    상기 결정 단계(S40-9)에서 N(Hop)이 2이고 N(S)가 1이면, 자신이 홉노드(S)에 2홉 노드로서 연결되었고, 이 2홉 노드는 3홉 노드를 식별하기 위한 스케쥴을 계산하고, iAB_seq를 2로 설정하는 단계(S40-10);
    상기 2홉 노드가 iAB 패킷에 지정된 노드에 iAB 패킷을 전송하는 단계(S40-11);
    상기 2홉 노드가 3홉 노드의 패킷 수신 대기 시간(Wait_iABR) 동안 대기 후에 수신한 iABR 패킷을 해석하여 관련 정보들을 갱신하는 단계(S40-12); 및
    상기 2홉 노드가 다음 홉 노드에 대한 스케쥴링 시간 전까지 iABR 패킷을 홉 노드(S)에 전송하는 단계(S40-13);를 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  15. 제 14 항에 있어서,
    상기 결정 단계(S40-9)에서 N(Hop)=2 및 N(S)=1인 조건을 만족하지 않으면, 상기 임의의 노드가 N(Hop)=디폴트값(inf) 및 N(S)=2 인지의 여부를 결정하는 단계(S40-14);
    상기 결정 단계(S40-14)에서 N(Hop)=inf 및 N(S)=2인 조건을 만족하면, 상기 임의의 노드는 자신을 3홉 노드로서 인식하고, 홉 노드(S)로부터 받은 iAB 패킷이 최초의 iAB 패킷이므로 홉 노드(S)를 통해서 싱크 노드까지 연결하는 절차를 시작하기 위해, N(Hop)를 3으로 설정하고, NextHop(일반 노드들이 연결되어 있는 상위 노드 ID)를 S로 설정하며, iABR_seq를 2로 설정하는 단계(S40-15);
    3홉 노드는 수신한 iAB 패킷에 지정된 자신의 스케쥴에 맞추어서 iABR 패킷을 홉 노드(S)에 전송하는 단계(S40-16); 및
    상기 결정 단계(S40-14)에서 N(Hop)=inf 및 N(S)=2인 조건을 만족하지 못하면, 상기 임의의 노드는 패킷을 무시하는 단계(S40-17);를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  16. 제 5 항에 있어서,
    상기 결정 단계(S50)에서 상기 수신한 패킷의 타입이 iABR 패킷 타입이면,
    상기 임의의 노드는 자신의 목적지가 iABR 패킷의 목적지인지의 여부를 결정하는 단계(S50-1);
    상기 결정 단계(S50-1)에서 자신의 목적지가 iABR 패킷의 목적지이면, 상기 임의의 노드는 iABR_seq가 1인지의 여부를 결정하는 단계(S50-3);
    상기 결정 단계(S50-3)에서 iABR_seq가 1이 아니면, 상기 임의의 노드는 iABR_seq가 2인지의 여부를 결정하는 단계(S50-5);
    상기 결정 단계(S50-5)에서 iABR_seq가 2이면, 상기 임의의 노드는 N(Hop)가 1인지의 여부를 결정하는 단계(S50-7);
    상기 결정 단계(S50-7)에서 N(Hop)가 1이 아니면, 상기 임의의 노드는 N(Hop)가 2인지의 여부를 결정하는 단계(S50-9); 및
    상기 결정 단계(S50-9)에서 N(Hop)가 2이면, 상기 임의의 노드는 자신이 2홉 노드로서 인식하고, 수신한 iABR 패킷을 파싱하여 3홉 노드들을 식별하는 단계(S50-11);를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  17. 제 16 항에 있어서,
    상기 결정 단계(S50-1)에서 자신의 목적지가 iABR 패킷의 목적지가 아니면, 상기 임의의 노드는 패킷을 무시하는 단계(S50-2);
    상기 결정 단계(S50-3)에서 iABR_seq가 1이면, 상기 임의의 노드는 자신을 1홉 노드로서 인식하고, 이 1홉 노드는 수신 패킷을 해석하여 2홉 노드를 식별하는 단계(S50-4);
    상기 결정 단계(S50-5)에서 iABR_seq가 2가 아니면, 상기 임의의 노드는 어브노멀 이벤트를 기록하는 단계(S50-6);
    상기 결정 단계(S50-7)에서 N(Hop)이 1이면, 상기 임의의 노드는 자신을 1홉 노드로 인식하고, 이 1홉 노드는 수신한 iABR 패킷을 파싱하여 2홉 노드들 및 3홉 노드들을 식별하는 단계(S50-8); 및
    상기 결정 단계(S50-9)에서 N(Hop)이 2가 아니면, 상기 임의의 노드는 어브노멀 이벤트를 기록하는 단계(S50-10);를 더 포함하는, 초기화 과정의 수신 패킷 처리 방법.
  18. 다중홉 수중 근거리 네트워크 구현시 정규 과정에서 패킷 수신시 처리 방법은,
    임의의 노드가 Sender_ID(송신 노드 아이디)가 S인 노드로부터 패킷을 수신하는 단계(S10);
    상기 임의의 노드는 상기 단계(S10)에서 수신한 패킷의 타입이 SB 패킷(싱크 노드가 링크 손상된 노드 파악을 위한 패킷) 타입인지의 여부를 결정하는 단계(S20);
    상기 결정 단계(S20)에서 수신한 패킷의 타입이 SB 패킷 타입이 아니면, 상기 임의의 노드가 수신한 패킷의 타입이 SBR 패킷(SB 패킷에 대한 응답 패킷) 타입인지의 여부를 결정하는 단계(S30);
    상기 결정 단계(S30)에서 수신한 패킷의 타입이 SBR 패킷 타입이 아니면, 상기 임의의 노드는 수신한 패킷의 타입이, AB 패킷(1홉 노드 또는 2홉 노드들이 하위 노드들에게 스케쥴을 전달하고 링크가 손상된 노드를 파악하는 패킷) 타입 인지의 여부를 결정하는 단계(S40);
    상기 결정 단계(S40)에서 수신한 패킷의 타입이 AB 패킷 타입이 아니면, 상기 임의의 노드는 수신한 패킷의 타입이 ABR 패킷(AB 패킷에 대한 응답 패킷) 타입 인지의 여부를 결정하는 단계(S50);
    상기 결정 단계(S50)에서 상기 수신한 패킷의 타입이 ABR 패킷 타입이 아니면, 상기 임의의 노드는 수신한 패킷의 타입이 NRQ(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷) 인지의 여부를 결정하는 단계(S60); 및
    상기 결정 단계(S60)에서 수신한 패킷의 타입이 NRQ 패킷 타입이 아니면, 상기 임의의 노드는 이벤트를 기록하는 단계(S70)를 포함하는, 정규 과정에서 패킷 수신시 처리 방법.
  19. 제 18 항에 있어서,
    상기 결정 단계(S20)에서 수신한 패킷의 타입이 SB 패킷 타입이면,
    임의의 노드는 노드 자신이 일반 스케쥴에 포함되어 있는지 결정하는 단계(S20-1);
    상기 결정 단계(S20-1)에서 노드 자신이 일반 스케쥴에 포함되어 있으면, 상기 임의의 노드는 하위 노드 존재 유무를 결정하는 단계(S20-2);
    상기 결정 단계(S20-2)에서 하위 노드가 존재하면, 상기 임의의 노드는 자신의 노드에 연결되어 있는 하위 노드 노드들을 위한 스케쥴을 계산하는 단계(S20-3);
    상기 임의의 노드가 AB 패킷을 생성하는 단계(S20-4);
    상기 임의의 노드가 상기 SB 패킷에 지정된 자신의 스케쥴에 맞추어 상기 AB 패킷을 전송하는 단계(S20-5);
    상기 임의의 노드가 자신의 하위 노드들로부터 ABR 패킷을 모두 수신할 수 있을 것으로 예상되는 시간(Wait_ABR)만큼 대기 후에, 수신된 ABR 패킷을 파싱하여 관련 정보를 갱신하는 단계(S20-6); 및
    상기 임의의 노드가 SBR 패킷을 생성하여 SB 패킷에 있는 다음 홉 노드에 대한 스케쥴링 시간 전까지 싱크 노드에 전송하는 단계(S20-7);를 더 포함하는, 정규 과정에서 패킷 수신시 처리 방법.
  20. 제 19 항에 있어서,
    상기 결정 단계(S20-1)에서 노드 자신이 일반 스케쥴에 포함되지 않으면, 상기 임의의 노드는 NRQ 스케쥴에 포함되는 지의 여부를 결정하는 단계(S20-8);
    상기 결정 단계(S20-8)에서 상기 임의의 노드가 NRQ 스케쥴에 포함되지 않은 경우 패킷을 무시하는 단계(S20-9);
    상기 결정 단계(S20-8)에서 상기 임의의 노드가 NRQ 스케줄에 포함되어 있으면, 상기 임의의 노드는 u_NRQ(자신이 현재 다른 노드에게 NRQ 패킷을 전송해서 NRQ를 통한 연결을 시도 중인지의 여부를 나타내는 로컬 변수값)이 0인지 여부를 결정하는 단계(S20-10);
    상기 u_NRQ가 0이 아니면 상기 단계(S20-9)로 진행되는 단계(S20-10);
    상기 u_NRQ가 0이면, 상기 임의의 노드는 u_NRQ를 1로 설정하고, 싱크 노드로부터 노드까지의 홉 수[N(Hop)]를 1로 설정하며, NextHop(일반 노드들이 연결되어 있는 상위 노드 ID)를 싱크 노드(SN)로 설정하며, u_NRQ_Timer(현재 진행 중인 NRQ 종료 시각)를 vtime_u_NRQ(현재 시각으로부터 NRQ 종료까지 소요될 것으로 예상되는 시각)로 설정하는 단계(S20-11); 및
    상기 임의의 노드는 자신이 1홉 노드라는 것을 확인하고, SB 패킷에 지정되어 있는 자신의 NRQ 스케쥴에 따라서 싱크 노드에게 NRQ 패킷을 전송하는 단계(S20-12);를 더 포함하는, 정규 과정에서 패킷 수신시 처리 방법.
  21. 제 19 항에 있어서,
    상기 결정 단계(S20-2)에서 하위 노드가 존재하지 않으면, 상기 임의의 노드는 SB 패킷에 지정된 자신의 스케쥴에 따라 SBR 패킷을 싱크 노드에 송신하는 단계(S20-13)를 더 포함하는, 정규 과정에서 패킷 수신시 처리 방법.
  22. 제 18 항에 있어서,
    상기 결정 단계(S30)에서 수신한 패킷의 타입이 SBR 패킷 타입이면,
    상기 임의의 노드는 자신이 싱크 노드인지의 여부를 결정하는 단계(S30-1);
    상기 결정 단계(S30-1)에서 자신이 싱크 노드가 아니면 패킷을 무시하는 단계(S30-2); 및
    상기 결정 단계(S30-1)에서 자신이 싱크 노드이면, 상기 임의의 노드는 SBR 패킷을 파싱하여 관련 정보를 갱신하는 단계(S30-3)를 더 포함하는, 정규 과정에서 패킷 수신시 처리 방법.
  23. 제 18 항에 있어서,
    상기 결정 단계(S40)에서 수신한 패킷의 타입이 AB 패킷 타입이면,
    상기 임의의 노드는 자신이 일반 스케쥴에 포함되어 있는지의 여부를 결정하는 단계(S40-1);
    상기 결정 단계(S40-1)에서, 임의의 노드 자신이 일반 스케쥴에 포함되어 있으면, 상기 임의의 노드는 연결되어 있는 하위 노드 존재 유무를 결정하는 단계(S40-2);
    상기 결정 단계(S40-2)에서 하위 노드가 존재하면, 상기 임의의 노드는 N(Hop)이 2인지의 여부를 결정하는 단계(S40-3);
    상기 결정 단계(S40-3)에서 N(Hop)가 2이면, 상기 임의의 노드는 자신이 2홉 노드임을 인식하고, 자신에게 연결되어 있는 3홉 노드를 고려해서 스케쥴을 계산하는 단계(S40-4);
    상기 2홉 노드는 AB 패킷을 생성하는 단계(S40-5);
    상기 2홉 노드는 상기 AB 패킷에 지정된 자신의 스케쥴에 맞추어 AB 패킷을 전송하는 단계(S40-6);
    상기 2홉 노드는 자신의 하위 노드들로부터 ABR 패킷을 모두 받을 수 있을 것으로 예상되는 시간(Wait_ABR)만큼 대기 후에, 수신된 ABR 패킷을 파싱하여 관련 정보를 갱신하는 단계(S40-7); 및
    상기 2홉 노드는 ABR 패킷을 생성하여 상위 노드인 1홉 노드에 전송하는 단계(S40-8);를 더 포함하는, 정규 과정에서 패킷 수신시 처리 방법.
  24. 제 23 항에 있어서,
    상기 결정 단계(S40-1)에서, 임의의 노드 자신이 일반 스케쥴에 포함되지 않으면, 상기 임의의 노드는 자신이 NRQ 스케쥴에 포함되어 있는지의 여부를 결정하는 단계(S40-9);
    상기 결정 단계(S40-9)에서 상기 임의의 노드가 NRQ 스케쥴에 포함되어 있으면, 상기 임의의 노드는 u_NRQ가 0인지 여부를 결정하는 단계(S40-10);
    상기 결정 단계(S40-10)에서, u_NRQ가 0이 아니면, 상기 임의의 노드는 패킷을 무시하는 단계(S40-11);
    상기 결정 단계(S40-10)에서, u_NRQ가 0이면, u_NRQ=1로 설정하고, N(Hop)=N(S)+1로 설정하며, u_NRQ_Timer를 vtime_u_NRQ로 설정하는 단계(S40-12); 및
    상기 임의의 노드가 AB 패킷에 지정되어 있는 자신의 NRQ 스케쥴에 따라서 상위 노드인 홉 노드(S)에게 NRQ 패킷을 전송하는 단계(S40-13);를 더 포함하는, 정규 과정에서 패킷 수신시 처리 방법.
  25. 제 23 항에 있어서,
    상기 결정 단계(S40-3)에서 N(Hop)가 2가 아니면 상기 임의의 노드는 이벤트를 기록하는 단계(S40-14); 및
    상기 결정 단계(S40-2)에서 하위 노드가 존재하지 않으면, 상기 임의의 노드가 AB 패킷에 지정되어 있는 자신의 스케쥴에 따라서 ABR 패킷을 상위 노드(NextHop)에 전송하는 단계(S40-15);를 더 포함하는, 정규 과정에서 패킷 수신시 처리 방법.
  26. 제 18 항에 있어서,
    상기 결정 단계(S50)에서 상기 수신한 패킷의 타입이 ABR 패킷 타입이면, 상기 임의의 노드는 자신이 ABR의 목적지인지의 여부를 결정하는 단계(S50-1)
    상기 결정 단계(S50-1)에서 상기 임의의 노드 자신이 ABR의 목적지이면, ABR 패킷을 파싱하여 관련 정보를 갱신하는 단계(S50-2);
    상기 결정 단계(S50-1)에서 상기 임의의 노드 자신이 ABR의 목적지가 아니면, 수신 패킷을 무시하는 단계(S50-3);
    상기 결정 단계(S60)에서 수신한 패킷의 타입이 NRQ 패킷 타입이면, 상기 임의의 노드 자신이 NRQ 목적지인지의 여부를 결정하는 단계(S60-1);
    상기 결정 단계(S60-1)에서 상기 임의의 노드 자신이 NRQ 목적지이면, NRQ 패킷을 파싱하여 관련 정보를 갱신하는 단계(S60-2); 및
    상기 결정 단계(S60-1)에서 상기 임의의 노드 자신이 NRQ의 목적지가 아니면, 수신 패킷을 무시하는 단계(S60-3)를 포함하는, 정규 과정에서 패킷 수신시 처리 방법.
  27. 다중홉 수중 근거리 네트워크 구현시 패킷 파싱 방법으로서,
    싱크 노드의 하위 노드에 의한 iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷) 파싱은, 수신한 패킷에 있는 iSB_seq(iSB 패킷 전송 수) 값을 내부 로컬 변수에 갱신하는 단계; 수신한 패킷에 있는 num_uID(식별되지 않은 노드 수) 및 uIDs(식별되지 않은 노드 ID)는 iAB 패킷(앵커 노드가 하위 노드를 식별하기 위한 초기화 패킷)을 생성할 때 필요한 정보이므로 내부 로컬 변수를 갱신하는 단계; 수신한 패킷에 있는 num_sID(스케쥴링 대상 노드수), sID(스케쥴 대상 노드 ID), 및 w_k(k번째 노드에게 시간이 할당되기 까지의 대기시간) 정보를 읽어들여서 자신의 스케쥴 정보(패킷의 sID와 노드 자신의 ID가 일치하는 부분의 w_k)에 해당하는 부분을 식별하여 읽어들이는 단계; 일반 노드들이 연결되어 있는 상위 노드 ID(NextHop) = 싱크 노드(SN)로 설정하는 단계;를 포함하고,
    상기 싱크 노드에 의한 iSBR 패킷(iSB 패킷에 대한 응답 패킷) 파싱은, 수신한 패킷에 있는 iSBR 패킷 송신 노드 ID(ID_Sender), num_K_2(노드 자신에게 연결된 2홉 노드의 수), iSBR 송신 노드의 토폴로지 정보(num_tID, tIDs)를 이용하여 SN의 토폴로지를 갱신하는 단계를 포함하고,
    앵커 노드의 하위 노드에 의한 iAB 패킷 파싱은, 수신한 패킷에 있는 num_uID 및 uIDs는 노드 자신이 2홉 노드인 경우에는 3홉 노드를 식별하기 위해서 iAB 패킷을 생성할 때 필요한 정보이므로, 내부 로컬 변수를 갱신하는 단계; 수신한 패킷에 있는 num_sID, sID, 및 w_k 정보를 읽어들여서, 노드 자신의 스케쥴 정보(패킷의 sID와 노드 자신의 ID가 일치하는 부분의 w_k)에 해당하는 부분을 식별하여 읽어들이는 단계; 및 NextHop=ID_Sender로 설정하는 단계;를 포함하고,
    상기 앵커 노드에 의한 iABR 패킷(iAB 패킷에 대한 응답 패킷) 파싱은 수신한 패킷에 있는 iABR 패킷 송신 노드 ID(ID_Sender), num_K_3(노드 자신에게 연결된 3홉 노드의 수), 및 iSBR 송신 노드의 토폴로지 정보(num_tID, tIDs)를 이용하여 토폴로지를 갱신하는 단계를 포함하며,
    상기 싱크 노드의 하위 노드에 의한 SB 패킷(싱크 노드가 링크 손상된 노드 파악을 위한 패킷) 파싱은 수신한 패킷에 있는, num_NRQ(링크가 손상되어 싱크 노드에 데이터가 전달되지 않는 노드수), num_sID, (sID, w_k), (NRQ_ID, w_k) 정보를 이용하여 정보를 읽어들여서, 노드 자신의 스케쥴 정보[패킷의 sID(또는 NRQ_ID)와 노드 자신의 ID가 일치하는 부분의 w_k] 에 해당하는 부분을 식별하여 읽어들이는 단계; num_NRQ, NRQ_IDs는 AB 패킷(1홉 노드 또는 2홉 노드들이 하위 노드들에게 스케쥴을 전달하고 링크가 손상된 노드를 파악하는 패킷)을 생성하는데 필요하므로, 로컬 변수에 저장하여 갱신하는 단계를 포함하되, NRQ_IDs 들은 자신의 토폴로지에서 삭제하며,
    상기 싱크 노드에 의한 SBR 패킷(SB 패킷에 대한 응답 패킷) 파싱은 수신한 패킷에 있는 ID_Sender, num_rNRQ(자신을 목적지로 NRQ 패킷이 수신된 노드의 수), [dNRQ(응답된 NRQ의 깊이), tIDs(iSBR 송신 노드의 토폴로지 정보)] 정보를 이용하여 나 자신(SN)의 토폴로지를 갱신하는 단계; 수신한 데이터 페이로드인 (ID, Data, CRC) 정보를 이용하여, 응용 계층에서 처리하는 단계;를 포함하고,
    상기 앵커 노드의 하위 노드에 의한 AB 패킷(1홉 노드 또는 2홉 노드들이 하위 노드들에게 스케쥴을 전달하고 링크가 손상된 노드를 파악하는 패킷) 파싱은 수신한 패킷에 있는 AB_seq(AB 패킷 발생 횟수) 정보는 ABR 패킷을 생성할 때 필요하므로, 로컬 변수로 갱신하는 단계; NextHop=ID_Sender로 하는 단계; 수신한 패킷에 있는 num_NRQ, num_sID, (sID, w_k), (NRQ_ID, w_k) 정보를 이용하여 정보를 읽어들여서, 노드 자신의 스케쥴[패킷의 sID(또는 NRQ_ID)와 자신의 ID가 일치하는 부분의 w_k] 정보에 해당하는 부분을 식별하여 읽어들이는 단계; num_NRQ, NRQ_IDs(NRQ 대상 ID)는, 노드 자신이 2홉 노드인 경우에는 3홉 노드 식별을 위한 AB 패킷을 생성하는데 필요하므로, 로컬 변수에 저장하여 갱신하는 단계; NRQ_IDs 들은 노드 자신의 토폴로지에서 삭제하는 단계;를 포함하며,
    상기 앵커 노드에 의한 ABR 패킷(AB 패킷에 대한 응답 패킷) 파싱은 수신한 패킷에 있는 ID_Sender, num_rNRQ, rNRQ_IDs 정보를 이용하여 노드 자신의 토폴로지를 갱신하는 단계; 노드 자신이 1홉 노드인 경우에는 SBR 패킷을 생성하는데 상기 ID_Sender, num_rNRQ(자신을 목적지로 NRQ 패킷이 수신된 노드의 수), rNRQ_IDs(자신을 목적지로 NRQ 패킷이 수신된 노드의 ID 목록) 정보가 필요하므로 별도로 로컬변수로 저장해두는 단계; 수신한 데이터 페이로드(ID, Data, CRC) 정보는 피기백(piggyback)하여 상위 노드에게 보내는 ABR 또는 SBR 패킷에 포함되도록 하는 단계;를 포함하고,
    임의의 노드에 의한 NRQ 패킷(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷) 파싱은 수신된 패킷에 있는 ID_Sender 정보가 NRQ를 통해서 얻어진 정보이므로 저장하고, ABR 또는 SBR 패킷을 생성할 때 NRQ 관련 정보에 포함되도록 하는 단계; 및 NextHop=ID_Sender로 설정하는 단계; 및 N(Hop)=N(S)+1로 설정하는 단계;를 포함하되, 타입이 SB 패킷이면 N(S)=0임에 유의하는, 패킷 파싱 방법.
  28. 다중홉 수중 근거리 네트워크 구현시 싱크 노드(SN)의 초기화 스케쥴링 방법으로서,
    싱크 노드가 초기화 스테이지에서 스케쥴링을 요청받는 단계(S10);
    상기 싱크 노드가 iSB_seq[iSB 패킷(싱크 노드가 최초로 방송하는 초기화 패킷)의 전송 수]=1인지의 여부의 여부를 결정하는 단계(S20);
    상기 결정 단계(S20)에서 iSB_seq=1이 아니면, 상기 싱크 노드는 iSB_seq=2 인지의 여부를 결정하는 단계(S30);
    상기 결정 단계(S30)에서 iSB_seq=2이 아니면, 상기 싱크 노드는 iSB_seq=3 인지의 여부를 결정하는 단계(S40);
    상기 결정 단계(S40)에서 iSB_seq=3이 아니면, 상기 싱크 노드가 어브노멀 이벤트를 기록하는 단계(S50);
    상기 결정 단계(S20)에서 iSB_seq=1이면, 상기 싱크 노드는 모든 Kmax 개의 노드가 자신과 1홉으로 연결된다고 가정하고서 스케쥴링을 하는 단계(S20-1);
    상기 결정 단계(S30)에서 iSB_seq=2이면, 상기 싱크 노드는 1홉 노드는 모두 식별되었고, 식별되지 않은 전체 노드가 1홉 노드에 연결될 수 있다고 가정하고서 스케쥴링을 하는 단계(S20-2); 및
    상기 결정 단계(S40)에서 iSB_seq=3이면, 상기 싱크 노드는 2홉 노드까지 모두 식별되었고, 식별되지 않은 K_max - K_1 - K_2 개의 노드가 모두 각각의 2홉 노드에게 연결될 수 있다고 가정하고서 스케쥴링하는 단계(S20-3);를 포함하는, 싱크 노드의 초기화 스케쥴링 방법.
  29. 다중홉 수중 근거리 네트워크 구현시 앵커 노드(AN)의 초기화 스케쥴링 방법으로서,
    앵커 노드가 초기화 스테이지에서 스케쥴링을 요청받는 단계(S10);
    상기 앵커 노드가 iAB_seq[iAB 패킷(앵커 노드가 하위 노드를 식별하기 위한 초기화 패킷)의 전송 수]=1인지의 여부의 여부를 결정하는 단계(S20);
    상기 결정 단계(S20)에서 iAB_seq=1이 아니면, 상기 앵커 노드는 iAB_seq=2 인지의 여부를 결정하는 단계(S30);
    상기 결정 단계(S30)에서 iAB_seq=2이 아니면, 상기 앵커 노드가 어브노멀 이벤트를 기록하는 단계(S40);
    상기 결정 단계(S20)에서 iAB_seq=1이면, 1홉 노드가 2홉 노드를 식별하는 경우로서, 식별되지 않은 모든 노드가 자신에게 연결될 수 있다고 가정하고서 스케쥴링하는 단계(S20-1);
    상기 결정 단계(S30)에서 iAB_seq=2이면, 상기 앵커 노드는 N(Hop)(자신의 홉 수)=1인지의 여부를 결정하는 단계(S30-1);
    상기 결정 단계(S30-1)에서 N(Hop)=1이면, 1홉 노드가 자신에게 연결된 2홉 노드들이 3홉 노드를 식별하는 경우로서, 1홉 노드가 자신에게 연결된 2홉 노드 각각에 식별되지 않은 모든 K_R 개의 노드가 3홉 노드로 연결될 수 있다고 가정하고서 스케쥴링하는 단계(S30-2);
    상기 결정 단계(S30-1)에서 N(Hop)=1이 아니면, 상기 앵커 노드는 N(Hop)=2인지의 여부를 결정하는 단계(S30-3); 및
    상기 결정 단계(S30-3)에서 N(Hop)=2이면, 2홉 노드가 3홉 노드를 식별하는 경우에 해당하며, K_R 개의 식별되지 않은 모든 노드가 자신에게 연결될 수 있다고 가정하고서 스케쥴링하는 단계(S30-4)를 포함하며,
    상기 결정 단계(S30-3)에서 N(Hop)=2가 아니면, 상기 단계(S40)로 진행되는, 앵커 노드(AN)의 초기화 스케쥴링 방법.
  30. 다중홉 수중 근거리 네트워크 구현시 싱크 노드(SN)의 정규 과정 스케쥴링 방법으로서,
    싱크 노드가 일반 스테이지에서 스케쥴링을 요청받는 단계(S10);
    상기 싱크 노드가 num_NRQ(링크가 손상되어 싱크 노드에 데이터가 전달되지 않는 노드 수)=0인지의 여부를 결정하는 단계(S20);
    상기 결정 단계(S20)에서 num_NRQ=0이면, 싱크 노드는 3홉 노드의 데이터가 상위 노드인 1홉 노드와 2홉 노드에서 각각 1번씩 피기백되어 중계되므로 총 2번의 중계가 이루어지고, 2홉 노드의 데이터가 상위 노드인 1홉 노드에서 1번 피기백되어 중계되는 단계(S20-1); 및
    상기 결정 단계(S20)에서 num_NRQ=0이 아니면, 싱크 노드는 3홉 노드를 제외한 모든 노드에 K_NRQ 개의 노드가 NRQ를 통하여 연결될 수 있는 절차가 가능하도록 스케쥴링하는 단계(S20-2);를 포함하는, 싱크 노드의 정규 과정 스케쥴링 방법.
  31. 다중홉 수중 근거리 네트워크 구현시 앵커 노드(AN)의 정규 과정 스케쥴링 방법으로서,
    앵커 노드가 일반 스테이지에서 스케쥴링을 요청받는 단계(S10);
    상기 앵커 노드가 N(Hop)(자신의 홉 수)=1인지의 여부를 결정하는 단계(S20);
    상기 결정 단계(S20)에서 N(Hop)=1이 아니면, 상기 앵커 노드는 N(Hop)=2인지의 여부를 결정하는 단계(S30);
    상기 결정 단계(S30)에서 N(Hop)=2가 아니면, 상기 앵커 노드는 어브노말 이벤트를 기록하는 단계(S40);
    상기 결정 단계(S20)에서 N(Hop)=1이면, 상기 앵커 노드는 num_NRQ=0(링크가 손상되어 싱크 노드에 데이터가 전달되지 않는 노드 수)인지의 여부를 결정하는 단계(S20-1);
    상기 결정 단계(S20-1)에서 num_NRQ=0이면, 1홉 노드는 자신에게 연결되는 2홉 노드들의 스케쥴을 계산함에 있어서, 스케쥴 대상인 2홉 노드로부터 데이터 패킷이 수신되기까지 2홉 노드에서 발생하는 3홉 노드들의 데이터 패킷이 중계가 이루어지는 DT*NC_3,i 만큼의 시간을 고려해야 하고, UT*NC_i 만큼의 시간이 필요하고, 해당 2홉 노드의 하위 노드 깊이만큼 GT(가드 타임)를 추가하여 안정적인 충돌 회피를 위한 여분의 시간을 주는 단계(S20-2);
    상기 결정 단계(S20-1)에서 num_NRQ=0이 아니면, 상기 앵커 노드는 3홉 노드를 제외한 모든 노드에 K_NRQ 개의 노드가 NRQ 패킷(링크가 끊어져서 연결이 안되는 노드들을 식별하기 위한 패킷)을 통하여 연결될 수 있는 절차가 가능하도록 스케쥴링하는 단계(S20-3);
    상기 결정 단계(S30)에서 N(Hop)=2이면, 상기 앵커 노드는 num_NRQ=0인지의 여부를 결정하는 단계(S30-1);
    상기 결정 단계(S30-1)에서 num_NRQ=0이면, 상기 앵커 노드는 스케쥴 대상인 K_3 개의 노드를 대상으로 스케쥴링하는 단계(S30-2); 및
    상기 결정 단계(S30-1)에서 num_NRQ=0이 아니면, 상기 앵커 노드는 일반 스케쥴에 해당하는 K_3 개의 노드를 대상으로 스케쥴링 후에, K_NRQ 개의 노드가 NRQ를 통해서 자신에게 연결될 수 있도록 스케쥴을 계산하는 단계(S30-3);를 포함하는, 앵커 노드의 정규 과정 스케쥴링 방법.
KR1020200152920A 2020-11-16 2020-11-16 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법 KR102240801B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200152920A KR102240801B1 (ko) 2020-11-16 2020-11-16 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200152920A KR102240801B1 (ko) 2020-11-16 2020-11-16 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법

Publications (1)

Publication Number Publication Date
KR102240801B1 true KR102240801B1 (ko) 2021-04-15

Family

ID=75440908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200152920A KR102240801B1 (ko) 2020-11-16 2020-11-16 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법

Country Status (1)

Country Link
KR (1) KR102240801B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115514690A (zh) * 2022-09-01 2022-12-23 西北工业大学 一种非合作水声网络mac协议识别方法
CN115514424A (zh) * 2022-09-01 2022-12-23 西北工业大学 一种非合作水声网络接收信号生成方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130128698A (ko) 2012-05-17 2013-11-27 목포대학교산학협력단 다중-홉 무선 센서 네트워크를 위한 신뢰성 있는 데이터 전달 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130128698A (ko) 2012-05-17 2013-11-27 목포대학교산학협력단 다중-홉 무선 센서 네트워크를 위한 신뢰성 있는 데이터 전달 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115514690A (zh) * 2022-09-01 2022-12-23 西北工业大学 一种非合作水声网络mac协议识别方法
CN115514424A (zh) * 2022-09-01 2022-12-23 西北工业大学 一种非合作水声网络接收信号生成方法
CN115514424B (zh) * 2022-09-01 2023-07-25 西北工业大学 一种非合作水声网络接收信号生成方法
CN115514690B (zh) * 2022-09-01 2023-08-22 西北工业大学 一种非合作水声网络mac协议识别方法

Similar Documents

Publication Publication Date Title
JP2546555B2 (ja) マルチプラットホーム及び装置の通信システムにおけるメッセージルーチングの適合管理方法
EP2217936B1 (en) Method for determining transmission channels for a vehicle communication network
US7693119B2 (en) Transmission power control over a wireless ad-hoc network
Li et al. Scheduling messages with deadlines in multi-hop real-time sensor networks
US11589333B2 (en) Enhanced broadcast transmission in unslotted channel hopping medium access control
US7889713B2 (en) Transmission of management messages for relay networks
EP1826964B1 (en) Configuration of a mobile adhoc network
JP5231634B2 (ja) ローカルピアグループ(lpg)間ルーティング方法
KR102240801B1 (ko) 다중홉 수중 근거리 네트워크 구현 방법, 초기화 과정의 수신 패킷 처리 방법, 정규 과정에서 패킷 수신시 처리 방법, 패킷 파싱 방법, 싱크 및 앵커 노드의 초기화 스케쥴링 방법, 싱크 및 앵커 노드의 정규 과정 스케쥴링 방법
Stine et al. A paradigm for quality-of-service in wireless ad hoc networks using synchronous signaling and node states
US20030104829A1 (en) Technique for establishing a virtual backbone in an ad hoc wireless network
Lakas et al. A multiconstrained QoS-compliant routing scheme for highway-based vehicular networks
US7355991B2 (en) Method and apparatus for message flooding within a communication system
Amouris Space-time division multiple access (STDMA) and coordinated, power-aware MACA for mobile ad hoc networks
KR20090060931A (ko) 무선 센서 네트워크에서의 크로스 레이어 라우팅 방법
JP2001237875A (ja) 無線パケットの中継経路構築方法
CN109922441A (zh) 一种多跳网络通信方法、装置和系统
KR100982298B1 (ko) 차량간 통신에서 긴급메시지전파를 위한 적응적 릴레이노드선정방법
KR101319553B1 (ko) 단일채널을 이용한 데이터중계시스템 및 방법
WO2007144836A2 (en) Method for selecting relay in wireless broadcast ad hoc networks
EP2034669A1 (en) Method for determining the distance between a route and a node of a possible parallel route for data transmission
Meijerink et al. Infrastructure support for contention-based forwarding
US20110090843A1 (en) Wireless infrastructure access network and method for communication on such network
JP2006005653A (ja) 無線アクセス制御方法およびシステム
Yang et al. A mobility based architecture for underwater acoustic sensor networks