KR102067527B1 - 수중 이동 네트워크 방법 - Google Patents

수중 이동 네트워크 방법 Download PDF

Info

Publication number
KR102067527B1
KR102067527B1 KR1020180086861A KR20180086861A KR102067527B1 KR 102067527 B1 KR102067527 B1 KR 102067527B1 KR 1020180086861 A KR1020180086861 A KR 1020180086861A KR 20180086861 A KR20180086861 A KR 20180086861A KR 102067527 B1 KR102067527 B1 KR 102067527B1
Authority
KR
South Korea
Prior art keywords
packet
nodes
sink node
initialization
time
Prior art date
Application number
KR1020180086861A
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 KR1020180086861A priority Critical patent/KR102067527B1/ko
Application granted granted Critical
Publication of KR102067527B1 publication Critical patent/KR102067527B1/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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • H04L47/14
    • 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/37Slow start
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]

Landscapes

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

Abstract

본 발명은 특정 시각에 전송 시간이 겹치지 않도록 시간 자원을 직교화하지 않고, 음파의 느린 전달 속도에서 기인하는 긴 전파 지연 시간과 패킷 길이를 고려해서, 특정 노드에서 수신 충돌이 발생하지 않으면서 특정 시각에 중복 송신할 수 있는 수중 이동 네트워크 방법에 관한 것으로서, 싱크노드와 노드 간 수중 통신에 있어서 네트워크가 시작되는 최초 시점에 싱크노드와 노드들간 수중 통신 네트워크를 스케줄링하기 위한 상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화단계; 및 상기 싱크노드가 싱크노드의 패킷들을 방송 형태로 전송하고 노드들은 싱크노드의 패킷들을 수신하면 응답을 싱크노드(10)에게 유니캐스트 방식으로 전송하는 정규단계;를 포함하여 구성되어 항법 정보를 필요로하지 않으며, 시간 동기화를 위한 별도의 패킷 교환이 불필요하여 시간 동기화가 필요한 기존의 방법에 비하여 네트워크 수율이 향상되는 효과가 있다.

Description

수중 이동 네트워크 방법{METHOD FOR UNDERWATER MOBILE NETWORK}
본 발명은 수중 이동 네트워크 방법에 관한 것으로서, 더욱 상세하게는 특정 시각에 전송 시간이 겹치지 않도록 시간 자원을 직교화하지 않고, 음파의 느린 전달 속도에서 기인하는 긴 전파 지연 시간과 패킷 길이를 고려해서, 특정 노드에서 수신 충돌이 발생하지 않으면서 특정 시각에 중복 송신할 수 있는 수중 이동 네트워크 방법에 관한 것이다.
일반적으로 수중 무선 네트워크는 일반적으로 음파를 이용하며, 이렇게 음파를 사용하는 수중 음향 무선 네트워크에서는 전자파에 비해서 상대적으로 전달 속도가 매우 느린 음파의 전달 속도에서 기인하는 매우 긴 전파 지연, 그리고 수중음향 모뎀의 협소한 대역폭에서 기인하는 물리 계층의 느린 데이터 전달 속도와 길어지는 패킷 길이에 의해서 발생하는 네트워크 효율성 저하를 극복하는 것이 가장 중요하다.
수중 무선 네트워크 토폴로지는 하나 또는 다수의 싱크노드(10)로 다수의 노드들이 정보를 전달하는 것을 주 트래픽으로 하는 중앙 집중 방식과, 분산형의 다중홉 방식이 있는데, 네트워크 효율 측면에서 중앙 집중 방식이 유리하기 때문에 현재 상용으로 운용되고 있는 모든 네트워크 방식 또한 중앙 집중식을 사용하고 있다.
중앙 집중식은 공간/시간/주파수/부호 등의 자원을 직교화하여 사용하는 것이 일반적이며, 우리는 시간 영역에서 직교화할 수 있는 방향(시분할 다중접속(Time-Division Multiple Access, 이하 TDMA로 칭함)으로 설계한다.
일반적으로 기존 공기 중에서의 TDMA는 전자파의 전달 속도가 빨라서 전파 전달 시간 지연을 고려하지 않고서, 특정 시각에 오직 하나의 노드만이 데이터를 전송하도록 스케줄링을 하는데, 이러한 방식을 차용할 경우, 수중에서는 음파의 전달 속도가 느려서 채널 사용 효율이 크게 저하된다는 문제점이 있다.
대한민국 등록특허 제10-1082465호(발명의 명칭 : 애드혹 통신을 위한 수중 노드 및 이를 위한 패킷과 통신방법)
따라서 본 발명은 전술한 종래기술의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 특정 시각에 전송 시간이 겹치지 않도록 시간 자원을 직교화하지 않고, 음파의 느린 전달 속도에서 기인하는 긴 전파 지연 시간과 패킷 길이를 고려해서, 특정 노드에서 수신 충돌이 발생하지 않으면서 특정 시각에 중복 송신을 허용함으로써 채널 사용 효율을 향상시킨 수중 이동 네트워크 방법을 제공하기 위한 것이다.
또한 본 발명은 싱크노드에서 노드들의 데이터 패킷 수신 시각이 겹치지 않으면서 이웃하는 수신 데이터 패킷 사이의 갭을 최소화(즉, 촘촘한 패킷 트레인 형태로 수신) 함으로써 싱크노드에서 노드들의 데이터 패킷 수신 시각이 겹칠 때 발생하는 싱크노드에서 수신 충돌을 회피시켜 채널 사용 효율을 증대시킨 수중 이동 네트워크 방법을 제공하기 위한 것이다.
또한, 본 발명은 싱크노드의 비콘 패킷을 수신한 이후 비콘 패킷에 지정된 시간 지연만큼 대기한 후에 데이터 패킷을 전달하도록 함으로써 다른 노드들이 싱크노드로 전송하는 데이터 패킷이 싱크노드의 비콘 패킷을 수신하는데 충돌을 일으키는 노드에서 수신 충돌을 회피시켜 채널 사용 효율을 증대시킨 수중 이동 네트워크 방법을 제공하기 위한 것이다.
상술한 목적을 달성하기 위한 수중 이동 네트워크 방법은, 싱크노드와 노드 간 수중 통신에 있어서 네트워크가 시작되는 최초 시점에 싱크노드와 노드들간 수중 통신 네트워크를 스케줄링하기 위한 상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화단계; 및
상기 싱크노드가 싱크노드의 패킷들을 방송 형태로 전송하고 노드들은 싱크노드의 패킷들을 수신하면 응답을 싱크노드(10)에게 유니캐스트 방식으로 전송하는 정규단계;를 포함하고,
상기 초기화단계는,
상기 싱크노드가 상기 다수의 노드들에게 네트워크가 시작되었음을 알리는 제1 초기화패킷과 다수의 노드들 중 상기 네트워크의 시작을 알리는 패킷을 수신하지 못한 노드들에게만 전송하는 제2 초기화패킷을 방송하는 초기화패킷 방송단계;
상기 각각의 노드는 상기 싱크노드로부터 제1 초기화패킷 또는 제2 초기화패킷을 수신하여 상기 제1 초기화패킷 또는 제2 초기화패킷에 대한 각각의 응답을 생성하여 상기 싱크노드로 전송하는 제1 응답단계;
상기 싱크노드는 상기 패킷들에 대한 각각의 응답을 상기 각각의 노드들로부터 수신하는 제1 수신단계;를 포함하고,
상기 정규단계는,
상기 싱크노드가 주기적으로 비콘 패킷을 통하여 노드들에게 스케줄 패킷을 브로드캐스팅 형태로 방송하는 스케줄 방송단계;
상기 노드들은 상기 싱크노드로부터 상기 비콘 패킷을 수신하면 상기 스케줄 패킷에 대응하는 응답 패킷을 상기 싱크노드에게 유니캐스팅 방식으로 송신하는 제2 응답단계;
상기 싱크노드는 상기 노드들로부터 상기 응답 패킷을 수신하는 제2 수신단계;
상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화단계; 및
상기 싱크노드는 상기 응답패킷에 대응하는 노드의 스케줄을 계산하는 단계;를 포함하여 구성된다.
상기 초기화단계는,
상기 싱크노드가 상기 다수의 노드들에게 네트워크가 시작되었음을 알리는 제1 초기화패킷과 다수의 노드들 중 상기 네트워크의 시작을 알리는 패킷을 수신하지 못한 노드들에게만 전송하는 제2 초기화패킷을 방송하는 초기화패킷 방송단계;
상기 각각의 노드는 상기 싱크노드로부터 제1 초기화패킷 또는 제2 초기화패킷을 수신하여 상기 제1 초기화패킷 또는 제2 초기화패킷에 대한 각각의 응답을 생성하여 상기 싱크노드로 전송하는 제1 응답단계;
상기 싱크노드는 상기 패킷들에 대한 각각의 응답을 상기 각각의 노드들로부터 수신하는 제1 수신단계;를 포함하여 구성될 수 있다.
상기 싱크노드가 상기 다수의 노드로 초기화패킷을 방송하는 초기화패킷 방송단계는,
초기화 시도 횟수를 나타내는 로컬 변수인 Num_Init(Number of Initialization)을 "0"으로 설정하고 유효한 왕복시간지연 정보의 존재 여부를 나타내는 변수인
Figure 112018073768419-pat00001
는 0으로 설정하는 단계;
초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartInit)가 TRUE로 설정되어 있는 지의 여부를 판단하는 제1 판단단계;
상기 제1 판단단계에서 판단하여 초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartInit)가 TRUE로 설정되어 있는 경우 상기 스케줄 패킷(IRQ(Initialization ReQuest) 패킷)을 다수의 노드에 대하여 방송하는 단계;를 포함하여 구성될 수 있다.
싱크노드에게 응답 패킷을 송신하는 제1 응답단계는,
상기 IRQ 패킷 방송 후에, 설정된 대기시간(
Figure 112018073768419-pat00002
시간) 동안 노드들로부터 응답패킷(IRP(Initialization ResPonse) 패킷)을 수신하는 단계;
상기 설정된 대기시간(
Figure 112018073768419-pat00003
)이 경과하면, 싱크노드는 초기화에 실패한 노드 수(Num_IFN (Number of Initializatin Fail Node))를 계산하는 단계;
상기 싱크노드가 초기스케줄을 계산하는 초기스케줄 계산단계;를 포함하여 구성될 수 있다.
상기 설정된 대기시간(
Figure 112018073768419-pat00004
)은 다음의 수학식으로 구하도록 구성될 수 있다.
Figure 112018073768419-pat00005
여기서, 모뎀의 최대 통신 반경을
Figure 112018073768419-pat00006
이라고 하고, 음파의 최소 전달 속도를
Figure 112018073768419-pat00007
라고 하며, 싱크노드는 IRQ 패킷 방송 후에
Figure 112018073768419-pat00008
시간 이내에 모든 노드들로부터 초기화 응답 패킷 수신이 완료되는 것으로 가정되며,
Figure 112018073768419-pat00009
는 싱크노드와 노드간 왕복시간지연의 최대값으로서, 다음의 수학식으로 계산되고,
Figure 112018073768419-pat00010
Figure 112018073768419-pat00011
는 각각 IRQ 패킷 길이와 IRP 패킷 길이를 시간으로 환산한 값은 나타냄.
Figure 112018073768419-pat00012
상기 Num_IFN을 계산하는 단계에서, 상기 초기화에 실패한 노드 수(Num_IFN)는 다음의 수학식으로 구하도록 할 수 있다.
Figure 112018073768419-pat00013
여기서, K는 싱크 노드를 제외한 총 노드 수를 나타내고,
Figure 112018073768419-pat00014
Figure 112018073768419-pat00015
(
Figure 112018073768419-pat00016
-번째로 왕복시간지연(Round-trip time delay, RTT)이 작은 노드)의 RTT 정보의 존재 여부를 나타내는 변수유효성 여부를 나타냄.
상기 초기스케줄 계산단계는,
상기
Figure 112018073768419-pat00017
가 "1"인 노드들을 추출하는 단계;
상기 추출된
Figure 112018073768419-pat00018
가 "1"인 노드들에 대해서 왕복시간지연이 작은 순으로 노드들을 정렬하는 단계;
상기
Figure 112018073768419-pat00019
가 "0"인 노드들을 추출하는 단계;
상기
Figure 112018073768419-pat00020
가 "1"인 노드들 다음에 ID 순으로 정렬해서, 총
Figure 112018073768419-pat00021
개의 노드들을 정렬시키는 단계; 및
상기 싱크노드는 위와 같이 정렬된 노드 순으로 스케줄을 계산하는 단계;를 포함하여 구성된다.
상기 노드 순으로 스케줄을 계산하는 단계는,
n번째 데이터패킷(
Figure 112018073768419-pat00022
)에 대한 왕복시간지연(
Figure 112018073768419-pat00023
)을 구하는 단계;
왕복시간지연(
Figure 112018073768419-pat00024
)을 획득하지 못한 노드들은, 즉,
Figure 112018073768419-pat00025
가 "0"인 노드들은
Figure 112018073768419-pat00026
가 1인 노드들 다음에 ID 순으로 정렬해서, 총
Figure 112018073768419-pat00027
개의 노드들이 정렬되도록 한다.
Figure 112018073768419-pat00028
은 SB 패킷을 수신하자마자 대기 시간 없이 바로 데이터 패킷을 송신한다.
Figure 112018073768419-pat00029
의 데이터 패킷이 싱크 노드에 수신되기 시작하는 시각이 가질 수 있는 이론적인 최대값
Figure 112018073768419-pat00030
을 계산하는 단계;
Figure 112018073768419-pat00031
의 데이터 패킷이 싱크 노드에서 가장 빠르게 수신될 수 있는 시각
Figure 112018073768419-pat00032
을 계산하는 단계;
Figure 112018073768419-pat00033
인 경우에는,
Figure 112018073768419-pat00034
의 스케줄
Figure 112018073768419-pat00035
이 계산될 때까지 회귀적으로
Figure 112018073768419-pat00036
의 스케줄
Figure 112018073768419-pat00037
을 계산하는 단계;를 포함하여 구성된다.
상기 정규단계는,
상기 싱크노드가 주기적으로 비콘 패킷을 통하여 노드들에게 스케줄 패킷을 브로드캐스팅 형태로 방송하는 스케줄 방송단계;
상기 노드들은 상기 싱크노드로부터 상기 비콘 패킷을 수신하면 상기 스케줄 패킷에 대응하는 응답 패킷을 상기 싱크노드에게 유니캐스팅 방식으로 송신하는 제2 응답단계;
상기 싱크노드는 상기 노드들로부터 상기 응답 패킷을 수신하는 제2 수신단계;
상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화단계; 및
상기 싱크노드는 상기 응답패킷에 대응하는 노드의 스케줄을 계산하는 단계;를 포함하여 구성될 수 있다.
상기 스케줄 방송단계는,
싱크노드비콘(Sink node Beacon, SB)패킷을 생성하여 방송하는 단계;
모든
Figure 112018073768419-pat00038
(노드)에 대해서
Figure 112018073768419-pat00039
으로 설정하는 단계;
네트워크 중지 플래그(FLAG_StopNet)가 트루인지의 여부를 판단하는 제3 판단단계;
상기 제3 판단단계에서 판단하여 사이클 종료 시점에 네트워크 중지 플래그(FLAG_StopNet)가 false이면
Figure 112018073768419-pat00040
번째 사이클의 스케줄을 계산하는 단계;
상기 계산된 n번째 스케줄의 싱크노드비콘(SB)패킷을 방송하는 단계로 리턴하여 n번째 SB 패킷을 방송함으로써 네트워크를 계속 유지하는 단계;를 포함하여 구될 수 있다.
여기서,
Figure 112018073768419-pat00041
는 왕복시간지연 정보의 존재 여부를 나타내는 변수를 나타내고, 네트워크 중지 플래그(FLAG_StopNet)는 네트워크 지속 여부를 결정하는 변수로써, 디폴트 값은 FALSE로 설정하고, 사용자 GUI에서 네트워크를 중단하는 버튼을 클릭하면 TRUE로 설정되도록 하여 종료되도록 구성됨.
n번째 사이클 스케줄을 계산하는 단계는
n번째 데이터패킷(
Figure 112018073768419-pat00042
)에 대한 왕복시간지연(
Figure 112018073768419-pat00043
)을 구하는 단계;
Figure 112018073768419-pat00044
번째 사이클이 종료되면,
Figure 112018073768419-pat00045
가 "1"인 노드들에 대해서 왕복시간지연이 작은 순으로 노드들을 정렬하는 단계;
한 사이클 동안 변화할 수 있는 노드의 왕복시간지연의 변동폭
Figure 112018073768419-pat00046
을 구하는 단계; 및
스케줄 계산이 완료된
Figure 112018073768419-pat00047
의 SBR 패킷이 싱크 노드에서 수신 완료 되는 시각의 이론적인 최대 값보다 크도록 설정하는 단계;를 포함하여 구성될 수 있다.
상기 방송단계 이후에, 상기 싱크노드는,
상기 싱크노드는 상기 노드로부터 패킷 수신을 대기하는 대기단계;
수신을 대기하여 패킷이 수신되면 응답패킷(IRP(Initialization ResPonse) 패킷)의 CRC 체크하는 단계;
상기 응답패킷(IRP(Initialization ResPonse) 패킷)의 CRC 체크 결과 오류가 발생하지 않은 경우에는 응답패킷(IRP(Initialization ResPonse) 패킷)의 왕복시간지연을 계산하고 대기단계로 리턴하는 제1 왕복 시잔 지연 계산 단계;
수신된 RIRP 패킷의 CRC를 체크하는 단계;
상기 RIRP 패킷의 CRC 체크 결과 오류가 발생하지 않은 경우에는 RIRP 패킷의 왕복시간지연을 계산하고 대기단계로 리턴하는 제2 왕복시간지연 계산 단계;
수신된 SBR 패킷의 CRC를 체크하는 단계;
상기 SBR 패킷의 CRC 체크 결과 오류가 발생하지 않은 경우에는 SBR 패킷에 포함된 페이로드를 판독하는 단계; 및
SBR 패킷의 왕복시간지연을 계산하고 대기단계로 리턴하는 제3 왕복시간지연 계산 단계;를 포함하여 구성될 수 있다.
상기 제1 왕복시간지연 계산 단계에서의 응답패킷(IRP(Initialization ResPonse) 패킷)의 왕복시간지연은 다음의 수학식으로 구하도록 구성될 수 있다.
Figure 112018073768419-pat00048
여기서,
Figure 112018073768419-pat00049
값을 "1"로 설정하고,
Figure 112018073768419-pat00050
는 패킷 수신 시각으로 설정하며,
Figure 112018073768419-pat00051
는 IRQ 패킷 송신 시각을 나타내며,
Figure 112018073768419-pat00052
는 IRQ 패킷 길이를 시간으로 환산한 값을 나타내고,
Figure 112018073768419-pat00053
는 패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간을 나타냄.
상기 제2 왕복시간지연 계산 단계에서의 RIRP 패킷의 왕복시간지연은 다음의 수학식으로 구하도록 구성될 수 있다.
Figure 112018073768419-pat00054
여기서,
Figure 112018073768419-pat00055
값을 "1"로 설정하고,
Figure 112018073768419-pat00056
는 패킷 수신 시각으로 설정하며,
Figure 112018073768419-pat00057
는 RIRQ 패킷 송신 시각을 나타내고,
Figure 112018073768419-pat00058
는 RIRQ 패킷 길이를 시간으로 환산한 값을 나타내고, Num_RB는 random backoff 윈도우의 개수를 나타내고,
Figure 112018073768419-pat00059
는 random backoff 윈도우의 단위 시간을 나타냄.
상기 제3왕복시간지연 계산 단계에서의 SBR 패킷왕복시간지연은 다음의 수학식으로 구하도록 구성될 수 있다.
Figure 112018073768419-pat00060
여기서,
Figure 112018073768419-pat00061
값을 "1"로 설정하고,
Figure 112018073768419-pat00062
는 패킷 수신 시각으로 설정하고,
Figure 112018073768419-pat00063
Figure 112018073768419-pat00064
-번째 사이클에서
Figure 112018073768419-pat00065
의 스케쥴 정보를 나타내고,
Figure 112018073768419-pat00066
-번째 사이클에서 SB 패킷 송신 시각을 나타내며,
Figure 112018073768419-pat00067
Figure 112018073768419-pat00068
-번째 사이클에서 SB 패킷의 길이를 시간으로 환산한 값을 나타내고,
Figure 112018073768419-pat00069
는 패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간을 나타냄.
상기 방송단계 이후에, 상기 노드들 중 소정의 노드는
상기 싱크노드로 패킷 수신이 이루어지면 패킷 수신 시간을 획득하는 단계;
수신된 패킷의 "Type" 필드가 IRQ이면, "CRC_IRQ" 필드를 확인해서 오류 발생 여부를 확인하는 제1 확인단계;
상기 제1 확인단계에서 판단하여 오류가 발생하지 않은 경우에는 패킷 수신 시각으로부터
Figure 112018073768419-pat00070
시간 만큼 경과한 후에 IRP 패킷이 송신되도록 한 후에 패킷 수신 대기 상태로 리턴하는 단계;
수신된 패킷의 "Type" 필드가 RIRQ이면, "CRC_RIRQ" 필드를 확인해서 오류 발생 여부를 확인하는 제2 확인단계;
상기 제2 확인단계에서 오류가 발생하지 않은 것으로 판단되면 나의 ID가 "Pay Load" 필드의 "List_ID"에 포함되어 있는 경우에는 RIRP 패킷을 생성하여 송신하는 단계;
수신된 패킷의 "Type" 필드가 SB이면, "CRC_SB" 필드를 확인해서 오류 발생 여부를 확인하는 제3 확인단계;
상기 제3 확인단계에서 오류가 발생하지 않은 것으로 판단되면 나의 ID가 "Pay Load" 필드의 "ID_Node"와 일치하는 항목인 (ID_Node, Wait_Time, CRC_PL, RSV_PL) 항목을 판독하는 단계; 및
SB 패킷을 수신한 시각으로부터
Figure 112018073768419-pat00071
시간 만큼 경과한 후에 SBR 패킷이 송신되도록 하는 단계;를 포함하여 구성되고,
상기 송신하는 단계에서, 0부터 31 사이의 정수 값을 가지는 임의의 random backoff 양을 결정하고 해당 값을 "Num_RB" 필드로 하는 RIRP 패킷을 패킷 수신 시각으로부터
Figure 112018073768419-pat00072
시간 만큼 경과한 후에 RIRP 패킷이 송신되도록 하고, RIRP 패킷 송신이 완료되면 패킷 수신 대기 상태로 돌아가도록 구성될 수 있다.
따라서 본 발명의 수중 이동 네트워크 방법은 시간 차이만을 이용하여 스케줄링이 이루어지므로 시간 동기화가 불필요하고, 위치/속도 등과 같은 항법 정보를 필요로하지 않으며, 시간 동기화를 위한 별도의 패킷 교환이 불필요하여 시간 동기화가 필요한 기존의 방법에 비하여 네트워크 수율이 향상되는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 수중 이동 네트워크 방법이 적용되는 네트워크 토폴로지를 나타내는 도면.
도 2는 본 발명의 일 실시예에 따른 수중 이동 네트워를 위한 스케줄링하는 과정을 나타낸 순서도.
도 3은 본 발명의 일 실시예에 따른 도 2의 초기화단계를 나타낸 순서도.
도 4는 본 발명의 일 실시예에 따른 도 3의 초기화패킷 방송단계를 나타낸 순서도.
도 5는 본 발명의 일 실시예에 따른 도 3의 제1 응답단계를 나타낸 순서도.
도 6은 본 발명의 일 실시예에 따른 상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화단계를 나타낸 순서도.
도 7은 본 발명의 일 실시예에 따른 도 2의 정규단계를 나타나내 순서도.
도 8은 본 발명의 일 실시예에 따른 도 7의 상기 스케줄 방송단계를 보다 상세하게 나타낸 순서도.
도 9는 본 발명의 일 실시예에 따른 시간축 상에서 사이클 단위의 스케줄링 개념을 나타낸 도면.
도 10은 본 발명의 일 실시예에 따른 도 7에서의 n번째 사이클 스케줄을 계산하는 단계를 나타낸 순서도이다.
도 11은 본 발명의 일 실시예에 따른 시간축 상에서 n-번째 사이클에서 각 노드의 대기 시간을 도출하는 원리에 대한 개념도.
도 12는 본 발명의 일 실시예에 따른 시간축 상에서 n-번째 사이클에서 각 노드의 대기 시간을 도출하는 원리에 대한 개념도.
도 13은 본 발명의 일 실시예에 따른 싱크 노드에서의 수신 패킷 처리 절차를 나타낸 순서도.
도 14는 본 발명의 일 실시예에 따라 상기 방송단계 이후에, 상기 노드들 중 소정의 노드에서의 패킷 송수신 과정을 나타낸 순서도.
이하, 본 발명의 실시예를 나타내는 첨부 도면을 참조하여 본 발명을 더욱 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 수중 이동 네트워크 방법이 적용되는 네트워크 토폴로지를 나타내는 도면이다.
도 1을 참조하면, 네트워크 토폴로지는 하나의 싱크노드(10)과 다수의 노드(20)들로 이루어져 있다. 본 발명은 수중에서 음파를 이용하여 다수의 노드(20)가 하나의 싱크노드(10)로 데이터 패킷을 보내는 중앙 집중식 네트워크 토폴로지에서의 스케줄링 방법에 관한 것이다.
싱크노드(10) 이외의 노드(20)는 간략하게 노드로 부르기로 한다. 싱크노드(10)는 노드(20)들의 전송 스케줄을 포함하고 있는 싱크노드비콘패킷(Sink node Beacon packet, SB packet)을 방송하고, SB패킷을 수신한 노드(20)들은 SB패킷에 지시되어 있는 각 노드(20)들의 전송 스케줄에 따라서 데이터 패킷을 싱크노드(10)로 전송한다.
이하, 위와 같이 구성된 네트워크 토폴로지에서 이루어지는, 본 발명의 실시예에 의한 수중 이동 네트워크를 위한 스케줄링 방법에 대해서 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 수중 이동 네트워를 위한 스케줄링하는 과정을 나타낸 순서도이다.
도 2를 참조하면, 먼저, S202단계에서 싱크노드(10)와 노드(20) 간 수중 통신에 있어서 네트워크가 시작되는 최초 시점에 싱크노드(10)와 노드(20)들간 수중 통신 네트워크를 스케줄링하기 위한 상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화한다.
S202단계에서 싱크노드(10)가 싱크노드(10)의 패킷들을 방송 형태로 노드(20)들로 전송하고 노드(20)들은 싱크노드(10)의 패킷들을 수신하면 응답을 싱크노드(10)에게 유니캐스트 방식으로 전송한다. 이와 같이 초기화 단계에 대한 응답을 하는 과정을 정규단계로 칭하기로 한다.
즉, 네트워킹 과정은 네트워크 스케줄링 과정으로 풀어 말할 수 있으며, 크게 초기화단계와 정규단계으로 구분된다. 싱크노드(10)와 노드(10) 간 왕복시간지연정보가 네트워크 스케줄링에 있어서 가장 핵심이 되는 정보인데, 초기화단계는 네트워크가 시작되는 최초 시점에 싱크노드(10)와 노드(20)들 간 왕복시간지연정보를 얻기 위한 과정이다.
싱크 노드와 노드 간에 왕복시간지연 정보가 획득되면, 네트워크는 정규 과정에 진입한다. 정규 과정은 싱크 노드가 SB를 방송하고 노드들은 SB에 대한 응답으로서 SBR을 싱크 노드에게 전송한다.
도 3은 본 발명의 일 실시예에 따른 도 2의 초기화단계를 나타낸 순서도이다.
도 3을 참조하면, 먼저 S302단계에서 싱크노드(10)가 상기 다수의 노드(20)들에게 네트워크가 시작되었음을 알리는 제1 초기화패킷과 다수의 노드들 중 상기 네트워크의 시작을 알리는 패킷을 수신하지 못한 노드들에게만 전송하는 제2 초기화패킷을 방송한다.
S304단계에서 상기 각각의 노드(20)는 상기 싱크노드(10)로부터 제1 초기화패킷 또는 제2 초기화패킷을 수신하여 상기 제1 초기화패킷 또는 제2 초기화패킷에 대한 각각의 응답을 생성하여 상기 싱크노드(10)로 전송한다.
S306단계에서 싱크노드(10)는 상기 패킷들에 대한 각각의 응답을 각각의 노드들로부터 수신한다.
싱크 노드와 노드 간 왕복시간지연 정보가 네트워크 스케줄링에 있어서 가장 핵심이 되는 정보인데, 초기화 과정은 네트워크가 시작되는 최초 시점에 싱크 노드와 노드들간 왕복시간지연 정보를 얻기 위한 과정이다. 초기화 과정에 사용되는 패킷은 총 4가지(IRQ/IRP, RIRQ/RIRP)이다. 참고로 IRQ은 최초로 방송하는 스케줄 (Initialization ReQuest, IRQ) 패킷이고, IRP 패킷은 이에 대한 응답패킷(IRP(Initialization ResPonse) 패킷이다. RIRQ(Re-Initialization ReQuest, RIRQ) 패킷은, IRP/RIRP 패킷이 수신되지 않은 노드들만을 대상으로 전송하는 초기화 패킷이고, RIRP(Re-Initialization ResPonse, RIRP) 패킷은 싱크 노드가 방송한 RIRQ 패킷을 노드들(Ni)이 수신했을 때, 자신의 노드 ID가 RIRP 페이 로드의 ID_Node에 포함되었을 경우에, 이에 대한 응답으로서 싱크 노드에게 전송하는 패킷을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 도 3의 초기화패킷 방송단계를 나타낸 순서도이다.
도 4를 참조하면, 싱크노드(10)의 사용자 운용 GUI에서 네트워크를 시작하는 버튼을 누름으로써 싱크 노드의 네트워킹 동작은 시작될 수 있다.
S402단계에서 초기화 시도 횟수를 나타내는 로컬 변수인 Num_Init(Number of Initialization)을 "0"으로 설정하고 유효한 왕복시간지연 정보의 존재 여부를 나타내는 변수인
Figure 112018073768419-pat00073
는 0으로 설정한다. 여기서, 유효한 왕복시간지연 정보의 존재 여부를 나타내는 변수인
Figure 112018073768419-pat00074
는, 유효한 왕복시간지연 정보가 최초에는 모든
Figure 112018073768419-pat00075
에 대해서 없으므로,
Figure 112018073768419-pat00076
으로 한다. 한편, 다음의 표 1은 본 발명에서 사용된 기호와 약자를 정의하여 나타낸 표이다.
기호 정의 Default GUI
설정
FLAG_StartNet 네트워크 시작 플래그 FALSE
FLAG_StopNet 네트워크 중지 플래그 FALSE
FLAG_StartInit 초기화 실행 여부 플래그 FALSE
FLAG_FinInit 초기화 완료 여부 플래그 FALSE
Num_Init 초기화 시도 횟수 0
Num_IFN 초기화 실패 노드 수 0
Max_RIN 재초기화 가능 최대 노드 수 2
Max_Init 허용 가능한 최대 재초기화 시도 횟수 2
Figure 112018073768419-pat00077
싱크 노드를 제외한 총 노드 수 4
Figure 112018073768419-pat00078
Figure 112018073768419-pat00079
-번째로 RTT가 작은 노드
Figure 112018073768419-pat00080
Figure 112018073768419-pat00081
의 RTT 유효성 여부
Figure 112018073768419-pat00082
IRQ 패킷 송신 시각
Figure 112018073768419-pat00083
예상되는 최초 초기화 소요 시간 TBD
Figure 112018073768419-pat00084
싱크 노드와 노드간 최대 RTT
Figure 112018073768419-pat00085
IRQ 패킷 길이를 시간으로 환산한 값
Figure 112018073768419-pat00086
IRP 패킷 길이를 시간으로 환산한 값
Figure 112018073768419-pat00087
RIRQ 패킷 길이를 시간으로 환산한 값
Figure 112018073768419-pat00088
RIRP 패킷 길이를 시간으로 환산한 값
Figure 112018073768419-pat00089
패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간 TBD
Figure 112018073768419-pat00090
모뎀의 통신 반경 TBD
Figure 112018073768419-pat00091
음파 전달 속도의 최솟값 1,450m/s
Figure 112018073768419-pat00092
RIRQ 패킷 송신 시각
Figure 112018073768419-pat00093
예상되는 재초기화 소요 시간 TBD
Figure 112018073768419-pat00094
Figure 112018073768419-pat00095
-번째 사이클에서
Figure 112018073768419-pat00096
의 RTT
Figure 112018073768419-pat00097
Figure 112018073768419-pat00098
-번째 사이클에서
Figure 112018073768419-pat00099
의 SBR 패킷 수신 시각
Figure 112018073768419-pat00100
Figure 112018073768419-pat00101
-번째 사이클에서 SB 패킷 송신 시각
Figure 112018073768419-pat00102
Figure 112018073768419-pat00103
의 IRP 또는 RIRP 패킷 수신 시각
Figure 112018073768419-pat00104
초기화에서 얻어진
Figure 112018073768419-pat00105
의 RTT
Figure 112018073768419-pat00106
Figure 112018073768419-pat00107
-번째 사이클에서
Figure 112018073768419-pat00108
의 스케줄 정보
Figure 112018073768419-pat00109
Figure 112018073768419-pat00110
-번째 사이클에서
Figure 112018073768419-pat00111
의 SBR 패킷 수신 시각의 최대값
Figure 112018073768419-pat00112
Figure 112018073768419-pat00113
-번째 사이클에서
Figure 112018073768419-pat00114
의 SBR 패킷 수신 시각의 최솟값
Figure 112018073768419-pat00115
Figure 112018073768419-pat00116
-번째 사이클에서 SB 패킷의 길이를 시간으로 환산한 값
Figure 112018073768419-pat00117
싱크 노드와 노드간 최대 상대 속도 3 m/s
Figure 112018073768419-pat00118
최초 사이클에서
Figure 112018073768419-pat00119
의 RTT 최대 변동폭
Figure 112018073768419-pat00120
Figure 112018073768419-pat00121
-번째 사이클에서
Figure 112018073768419-pat00122
의 SBR 패킷 길이를 시간으로 환산한 값
Figure 112018073768419-pat00123
Figure 112018073768419-pat00124
-번째 사이클의 지속 시간
Figure 112018073768419-pat00125
최초 사이클을 제외한 사이클에서 노드들의 RTT 최대 변동폭
Figure 112018073768419-pat00126
random backoff 윈도우의 단위 시간
Figure 112018073768419-pat00127
Figure 112018073768419-pat00128
Wait_Time의 양자화 단위 시간 10ms
Figure 112018073768419-pat00129
유효한 RTT가 획득된 노드 수
S404단계에서 초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartInit)가 TRUE로 설정되어 있는 지의 여부를 판단한다.
여기서 FLAG_StartNet은 초기화 실행 여부를 결정할 수 있는 플래그를 나타낸다. 초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartNet)는 디폴트로 FALSE(=0)로 설정되어 있으며, 싱크노드(10)의 사용자 운용 GUI(Graphic User Interface)에서 네트워크 시작 버튼이 눌리면 TRUE(=1)로 설정된다.
FLAG_StartInit=FALSE이면 싱크 노드는 초기화 과정을 수행하지 않고, 바로 스케줄 계산 과정에 진입한다. FLAG_StartInit=TRUE이면 싱크 노드는 초기화 과정을 수행한다.
상기 S404단계에서 판단하여 초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartInit)가 TRUE로 설정되어 있는 경우 IRQ 패킷을 방송한다(S406단계). 이 때 중요한 것은, IRQ 패킷이 방송되기 시작하는 시각
Figure 112018073768419-pat00130
을 (싱크 노드의 로컬 클럭 기준으로) 알 수 있어야 하고, 싱크 노드는 이 시각 정보를 저장하고 있어야 한다.
도 5는 본 발명의 일 실시예에 따른 도 3의 제1 응답단계를 나타낸 순서도이다.
도 5를 참조하면, S502단계에서 상기 IRQ 패킷 방송 후에, 설정된 대기시간(
Figure 112018073768419-pat00131
시간) 동안 노드들로부터 응답패킷(IRP(Initialization ResPonse) 패킷)을 수신한다. 다음의
Figure 112018073768419-pat00132
시간을 구하는 식은 다음의 수학식 1로 나타낼 수 있다.
Figure 112018073768419-pat00133
여기서, 모뎀의 최대 통신 반경을
Figure 112018073768419-pat00134
이라고 하고, 음파의 최소 전달 속도를
Figure 112018073768419-pat00135
라고 하면, 싱크 노드는 IRQ 패킷 방송 후에
Figure 112018073768419-pat00136
시간 이내에 모든 노드들로부터 초기화 응답 패킷 수신이 완료된다.
Figure 112018073768419-pat00137
는 싱크 노드와 노드간 왕복시간지연의 최대값으로서, 다음의 수학식 2로 계산될 수 있다.
Figure 112018073768419-pat00138
한편,
Figure 112018073768419-pat00139
Figure 112018073768419-pat00140
는 각각 IRQ 패킷 길이와 IRP 패킷 길이를 시간으로 환산한 값이다.
Figure 112018073768419-pat00141
Figure 112018073768419-pat00142
는 물리 계층에서 다양하게 패킷 길이를 수용할 수 있다면 최소화될 수 있으나, 변동성에 한계가 있으므로 이에 대한 고려가 필요하다.
Figure 112018073768419-pat00143
는 노드가 초기화 패킷 수신 완료 후에 초기화 응답 패킷을 송신 시작하기까지 소요되는 시간으로서, 시스템에서 발생하는 각종 시간 지연, 송신/수신 스위칭 시간 등을 포함한다.
Figure 112018073768419-pat00144
는 통계적으로 확률 변수로 표현할 수 있지만, 어느 값 이하로 작다는 것을 경험적으로 알 수 있다. 따라서 GUI 환경에서
Figure 112018073768419-pat00145
값을 입력할 수 있도록 환경 변수로 인식하도록 한다. 그리고, 싱크 노드 이외의 모든 노드들은 시간 지연을 부여할 때 반드시
Figure 112018073768419-pat00146
대기 후에 추가적인 시간 지연을 부여하도록 한다. 싱크 노드는 IRP 패킷을 수신하면 해당 노드에 대한 왕복시간지연을 계산하며 이것은 패킷 수신 처리 절차에서 자세하게 설명하기로 한다.
S504단계에서 설정된 대기시간(
Figure 112018073768419-pat00147
)이 경과하면, 싱크노드(10)는 초기화에 실패한 노드 수(Num_IFN (Number of Initialization Fail Node))를 다음의 수학식 3으로 계산한다. 여기서
Figure 112018073768419-pat00148
는 총 노드 수이다.
Figure 112018073768419-pat00149
의 디폴트 값은 "5"이다.
Figure 112018073768419-pat00150
여기서, K는 싱크 노드를 제외한 총 노드 수를 나타내고,
Figure 112018073768419-pat00151
Figure 112018073768419-pat00152
(
Figure 112018073768419-pat00153
-번째로 왕복시간지연(Round-trip time delay, RTT)이 작은 노드)의 RTT 정보의 존재 여부를 나타내는 변수유효성 여부를 나타낸다.
Num_IFN 계산 후에 싱크노드(10)는 초기화 과정이 완료되었는지 확인한다. 초기화 과정이 완료되었다 함은, 모든 노드에 대해서 왕복시간지연(RTT)이 획득되었음을 의미한다. 이 경우에 FLAG_FinInit은 TRUE로 설정된다. 즉, "Num_IFN = 0"이면, "FLAG_FinInit = TRUE"로 설정한다. FLAG_FinInit의 디폴트 값은 FALSE 이다. FLAG_FinInit은 GUI에서 LED 형태로 디스플레이 되도록 한다. 본 발명의 실시예에서는 초기화 완료 여부를 FLAG_FinInit을 가지고 판별했는데, Num_IFN=0 만족 여부로 판단해도 무방하다.
S202단계에서의 초기화단계가 완료되지 않았으면, 즉, FLAG_FinInit이 FALSE라면, 재초기화 여부를 결정한다.
초기화에 실패한 노드 수 Num_IFN가 재초기화 절차 진행이 가능한 최대 재초기화 노드 수 Max_RIN (Maximum Re-Initialization Nodes) 보다 작고 재초기화 시도 횟수(Num_Init)가 허용 가능한 최대 재초기화 시도 횟수 (Max_Init, Maximum Initialization) 보다 작은 경우에만 Num_Init 값을 1만큼 증가시키고 RIRQ(Re-Initialization ReQuest) 패킷을 방송하여 재초기화 과정에 진입한다. (IRQ 패킷 방송과 마찬가지로) RIRQ 패킷이 방송되기 시작하는 시각
Figure 112018073768419-pat00154
를 (싱크 노드의 로컬 클럭 기준으로) 알 수 있어야 하고, 싱크 노드는 이 시각 정보를 저장하고 있어야 한다. Max_RIN, Max_Init은 사용자 GUI에서 설정 가능하도록 한다. Max_RIN, Max_Init의 디폴트 값은 각각 "5", "2"로 설정 한다.
싱크노드(10)는 (IRQ 송신 및 IRP 수신의 경우와 마찬가지로), RIRQ 방송 후에 아래와 같이 하기의 수학식에 의해 계산된
Figure 112018073768419-pat00155
시간 이내에 모든 노드들로부터 RIRP(Re-Initialization ResPonse) 패킷 수신이 완료된다. 즉, 싱크노드(10)는 상기 IRQ 패킷 방송 후에, 설정된 대기시간(
Figure 112018073768419-pat00156
시간) 동안 노드들로부터 응답패킷(IRP(Initialization ResPonse) 패킷)을 수신한다.
Figure 112018073768419-pat00157
시간은 다음의 수학식 4에 의해 계산된다.
Figure 112018073768419-pat00158
여기서,
Figure 112018073768419-pat00159
Figure 112018073768419-pat00160
는 각각 재초기화 패킷 길이와 재초기화 응답 패킷 길이를 시간으로 환산한 값이다.
RIRQ 패킷에는 초기화에 성공하지 못한 노드들, 즉,
Figure 112018073768419-pat00161
인 노드들의 ID를 페이로드(pay load)의 "List_ID" 필드에 포함하도록 한다. 페이로드의 "Num_Node" 필드는 계산된 Num_IFN으로 한다.
Figure 112018073768419-pat00162
대기 시간이 지나면, S604단계에서 싱크 노드는 초기화에 실패한 노드 수 Num_IFN를 전술한 수학식 3으로 계산한다.
수학식 3의 계산이 완료되면, 초기화 완료 여부를 판단하는 절차에 다시 진입한다. 즉, 초기화 과정이 완료되었으면, 즉, FLAG_FinInit이 TRUE라면, 스케줄 계산 절차에 진입한다. 또한, 초기화 과정이 완료되지 않았더라도, Num_IFN ≥ Max_RIN 또는 Num_Init ≥ Max_Init 경우에는, 재초기화 과정에 진입하지 않고 초기 스케줄 계산 절차에 진입한다.
S506단계에서 싱크노드(10)가 초기스케줄을 계산한다.
도 6은 본 발명의 일 실시예에 따른 스케줄링하기 위한 상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화단계를 나타낸 순서도이다.
도 6을 참조하면, S602단계에서
Figure 112018073768419-pat00163
가 "1"인 노드들을 추출한다.
S604단계에서 상기 추출된
Figure 112018073768419-pat00164
가 "1"인 노드들에 대해서 왕복시간지연이 작은 순으로 노드(20)들을 정렬한다. 이때,
Figure 112018073768419-pat00165
와 노드 ID의 순서가 일치하지 않음에 유의해야 한다. 또한,
Figure 112018073768419-pat00166
와 노드 ID간 매치가 매 사이클 마다 변화됨에 유의해야 한다.
Figure 112018073768419-pat00167
개의 노드에 대해서, 왕복시간지연이
Figure 112018073768419-pat00168
-번째로 작은 노드를 "k-번째 노드"
Figure 112018073768419-pat00169
로 표시한다. 채널 사용 효율 측면에서, 이와 같이 왕복 지연 시간이 작은 노드부터 우선적으로 서비스 하는 것이 최적이다. 특히 모뎀의 통신 반경
Figure 112018073768419-pat00170
이 커질수록 최적의 서비스 순서를 적용한 경우와 그렇지 않은 경우의 차이가 커진다. 하지만, 통신 거리가 수백 미터 내외인 근거리 고속 네트워크 경우에는 모뎀 통신 반경이 매우 작으므로 성능에 큰 영향을 주지 않는다. 따라서 ID와
Figure 112018073768419-pat00171
를 일치시키고 매 사이클 변동시키지 말고 고정해도 무방하다.
Figure 112018073768419-pat00172
의 왕복시간지연을
Figure 112018073768419-pat00173
라고 표시한다. 첫 번째 아래 첨자
Figure 112018073768419-pat00174
Figure 112018073768419-pat00175
의 아래 첨자에서 가져온 것이고, 두 번째 첨자 "0"은 초기화 과정을 0번째 사이클로 표현한 것이다.
Figure 112018073768419-pat00176
가 획득된 시각을
Figure 112018073768419-pat00177
라고 표시한다.
Figure 112018073768419-pat00178
Figure 112018073768419-pat00179
가 획득된 시간으로서, 초기화 또는 재초기화 과정에서 싱크노드(10)가
Figure 112018073768419-pat00180
의 IRP/RIRP 패킷을 수신한 시각인
Figure 112018073768419-pat00181
또는
Figure 112018073768419-pat00182
값이다.
S606단계에서 상기
Figure 112018073768419-pat00183
가 "0"인 노드들을 추출한다.
S608단계에서 상기
Figure 112018073768419-pat00184
가 "1"인 노드들 다음에 ID 순으로 정렬해서, 총
Figure 112018073768419-pat00185
개의 노드들을 정렬시킨다.
초기화/재초기화 과정에서 왕복시간지연을 획득하지 못한 노드들, 즉,
Figure 112018073768419-pat00186
가 "0"인 노드(20)들은
Figure 112018073768419-pat00187
가 1인 노드들 다음에 ID 순으로 정렬해서, 총
Figure 112018073768419-pat00188
개의 노드(20)들이 정렬되도록 한다. 초기화 과정을 시행하지 않는 경우에는 모든 노드(20)들에 대해서
Figure 112018073768419-pat00189
가 "0"이고, 따라서 총
Figure 112018073768419-pat00190
개의 노드들은 ID 순으로 정렬이 된다. 싱크노드(10)가 최초로 SB 패킷을 방송하는 시각을
Figure 112018073768419-pat00191
로 표시한다. 즉,
Figure 112018073768419-pat00192
시각에 싱크 노드는 최초의 SB 패킷을 방송한다.
S610단계에서 상기 싱크노드는 위와 같이 정렬된 노드 순으로 스케줄을 계산한다. 싱크 노드는 위와 같이 정렬된 노드 순으로 스케줄을 계산한다. 여기에서
Figure 112018073768419-pat00193
의 스케줄이라 함은,
Figure 112018073768419-pat00194
가 SB 패킷을 수신한 후에 데이터 패킷을 송신하기까지 대기하는 시간으로서, 이와 같은
Figure 112018073768419-pat00195
의 대기 시간을
Figure 112018073768419-pat00196
으로 표시한다.
먼저,
Figure 112018073768419-pat00197
은 SB 패킷을 수신하자마자 대기 시간 없이 바로 데이터 패킷을 송신한다. 즉
Figure 112018073768419-pat00198
을 의미한다.
그러면,
Figure 112018073768419-pat00199
의 데이터 패킷이 싱크 노드에 수신되기 시작하는 시각이 가질 수 있는 이론적인 최대값
Figure 112018073768419-pat00200
Figure 112018073768419-pat00201
값에 따라서 계산이 달라진다. 먼저,
Figure 112018073768419-pat00202
인 경우에는 다음의 수학식 5로 나타낼 수 있다.
Figure 112018073768419-pat00203
위와 같이 계산하는 방법은,
Figure 112018073768419-pat00204
의 RTT 획득 시점부터,
Figure 112018073768419-pat00205
이 SB 패킷 수신 후에 데이터 패킷을 송신할 때까지
Figure 112018073768419-pat00206
의 이동성으로 인해서 발생하는
Figure 112018073768419-pat00207
의 왕복시간지연의 최대 변동폭을 고려하는 방법이다. 여기에서
Figure 112018073768419-pat00208
는 SB 패킷의 길이를 시간으로 환산한 값이다.
Figure 112018073768419-pat00209
의 RTT가 획득된 시점은
Figure 112018073768419-pat00210
이므로
Figure 112018073768419-pat00211
의 RTT가 결정된 시점은
Figure 112018073768419-pat00212
이고,
Figure 112018073768419-pat00213
Figure 112018073768419-pat00214
시각 이전에는 SB 패킷을 반드시 수신한다. 따라서,
Figure 112018073768419-pat00215
의 RTT 결정 시점부터
Figure 112018073768419-pat00216
이 데이터 패킷을 전송하기 시작하는 시점까지
Figure 112018073768419-pat00217
이 싱크 노드와 최대 상대 속력
Figure 112018073768419-pat00218
로 멀어질 때 왕복시간지연은 최대로 증가하게 되는데, 이것이
Figure 112018073768419-pat00219
으로 표현되고 있다. 표현의 간략화를 위하여, 왕복시간지연(1-번째 사이클에서
Figure 112018073768419-pat00220
의 RTT)을 다음의 수학식 6으로 나타낼 수 있다. 여기서,
Figure 112018073768419-pat00221
의 디폴트 값은 3 m/s 이다.
Figure 112018073768419-pat00222
따라서,
Figure 112018073768419-pat00223
값은
Figure 112018073768419-pat00224
이 가질 수 있는 왕복시간지연(RTT의 최대 값)이 된다. 왕복시간지연(RTT)은
Figure 112018073768419-pat00225
를 초과할 수 없으므로, 다음의 수학식 7과 같이 제한되어야 한다.
Figure 112018073768419-pat00226
여기에서
Figure 112018073768419-pat00227
는 A와 B 중에서 더 작은 것을 선택하는 함수이다. 한편,
Figure 112018073768419-pat00228
인 경우에는,
Figure 112018073768419-pat00229
의 RTT 값을 알 수 없는 상태에서 가장 보수적으로
Figure 112018073768419-pat00230
값을 정해야 하는데,
Figure 112018073768419-pat00231
값을 가질 수 있는 최대 값인
Figure 112018073768419-pat00232
로 설정하면 된다. 따라서,
Figure 112018073768419-pat00233
인 경우에
Figure 112018073768419-pat00234
값은 다음의 수학식 8로 정할 수 있다.
Figure 112018073768419-pat00235
이제,
Figure 112018073768419-pat00236
의 데이터 패킷이 싱크 노드에 수신 완료되는 시각의 최대값은 다음의 수학식 9로 표현할 수 있다.
Figure 112018073768419-pat00237
즉,
Figure 112018073768419-pat00238
시각 이전에 싱크 노드는
Figure 112018073768419-pat00239
의 데이터 패킷 수신이 완료된다. 여기에서,
Figure 112018073768419-pat00240
는 최초 사이클에서
Figure 112018073768419-pat00241
의 데이터 패킷 길이를 시간으로 환산한 것이다.
Figure 112018073768419-pat00242
Figure 112018073768419-pat00243
의 데이터 패킷이 싱크 노드에 도착하는 시각의 최대 값이다. 따라서
Figure 112018073768419-pat00244
의 데이터 패킷이 싱크 노드에 가장 빠르게 수신되는 경우에도
Figure 112018073768419-pat00245
의 데이터 패킷이 싱크 노드에서 수신 완료된 후에
Figure 112018073768419-pat00246
의 데이터 패킷 수신이 시작되도록
Figure 112018073768419-pat00247
에게 대기 시간을 부여하는 것이 싱크 노드에서 노드들의 데이터 패킷 수신 충돌을 회피하는 핵심 아이디어이다.
Figure 112018073768419-pat00248
의 데이터 패킷이 싱크 노드에 가장 빠르게 수신이 시작되는 경우는,
Figure 112018073768419-pat00249
가 싱크 노드가 움직이는 방향과 정확히 반대 방향으로 최대 속도로 움직이는 경우인데, 즉,
Figure 112018073768419-pat00250
와 싱크 노드가 최대 상대 속도로 가까워 질 때이다. 이 때
Figure 112018073768419-pat00251
가 SB 패킷 수신 후에 시간 지연 없이 바로 데이터 패킷을 송신하는 경우가 싱크 노드에서
Figure 112018073768419-pat00252
의 데이터 패킷이 이론적으로 가장 빠르게 수신된다. 이와 같이
Figure 112018073768419-pat00253
의 데이터 패킷이 싱크 노드에서 가장 빠르게 수신될 수 있는 시각
Figure 112018073768419-pat00254
은,
Figure 112018073768419-pat00255
인 경우에는, 다음의 수학식 10과 같이 계산된다.
Figure 112018073768419-pat00256
여기서,
Figure 112018073768419-pat00257
값은
Figure 112018073768419-pat00258
가 가질 수 있는 RTT의 최소 값이 된다. RTT는 0 이상이므로, 다음의 수학식 11와 같이 제한되어야 한다.
Figure 112018073768419-pat00259
여기에서
Figure 112018073768419-pat00260
는 A와 B 중에서 더 큰 것을 선택하는 함수이다. 한편,
Figure 112018073768419-pat00261
인 경우에는,
Figure 112018073768419-pat00262
의 RTT 값을 알 수 없는 상태에서 가장 보수적으로
Figure 112018073768419-pat00263
값을 정해야 하는데,
Figure 112018073768419-pat00264
값을 가질 수 있는 최소 값인 "0"으로 하면 된다. 따라서,
Figure 112018073768419-pat00265
인 경우에
Figure 112018073768419-pat00266
값은 다음의 수학식 12와 같이 정한다.
Figure 112018073768419-pat00267
Figure 112018073768419-pat00268
Figure 112018073768419-pat00269
의 데이터 패킷이 싱크 노드에 도착하는 시각의 최소값이다. 따라서, 다음과 같이
Figure 112018073768419-pat00270
에게 시간 지연을 부여하여 스케줄을 정하면 싱크노드(10)에서
Figure 112018073768419-pat00271
의 데이터 패킷과의 수신 충돌을 피할 수가 있다.
Figure 112018073768419-pat00272
같은 방법으로,
Figure 112018073768419-pat00273
의 스케줄
Figure 112018073768419-pat00274
이 계산될 때까지 회귀적으로
Figure 112018073768419-pat00275
의 스케줄
Figure 112018073768419-pat00276
을 계산하며 이는 수학식 13에 나타나 있다.
이와 같은 초기 스케줄 계산 방법을 Pseudo-Code로 표현하면 다음과 같다.
초기 스케줄 계산에서의 Pseudo-code(Pseudo-code for the initial schedule computation)
Figure 112018073768419-pat00277
are given for
Figure 112018073768419-pat00278
nodes, and
Figure 112018073768419-pat00279
,
Figure 112018073768419-pat00280
are given for
Figure 112018073768419-pat00281
nodes;
Figure 112018073768419-pat00282
nodes that have
Figure 112018073768419-pat00283
are sorted in ascending order of round-trip-time, and subsequently,
Figure 112018073768419-pat00284
nodes that have
Figure 112018073768419-pat00285
are sorted in ascending order of ID;
SET
Figure 112018073768419-pat00286
;
FOR
Figure 112018073768419-pat00287
IF
Figure 112018073768419-pat00288
Figure 112018073768419-pat00289
;
(
Figure 112018073768419-pat00290
)
ELSE
Figure 112018073768419-pat00291
;
END
IF
Figure 112018073768419-pat00292
Figure 112018073768419-pat00293
;
(
Figure 112018073768419-pat00294
)
ELSE
Figure 112018073768419-pat00295
;
END
Figure 112018073768419-pat00296
;
END
위 PSEUDO-CODE에서 첫 번째 IF-ELSE-END 와 두 번째 IF-ELSE-END 는 순서가 바뀌어도 무방하다.
한편, 전술한 PSEUDO-CODE에서
Figure 112018073768419-pat00297
Figure 112018073768419-pat00298
값에 공통적으로 들어가 있는 값은
Figure 112018073768419-pat00299
인데,
Figure 112018073768419-pat00300
을 계산하는 과정은
Figure 112018073768419-pat00301
Figure 112018073768419-pat00302
의 차이에 기반하므로, 공통된
Figure 112018073768419-pat00303
은 삭제해도 무방하다. 이 때의 간략화된 Pseudo-code는 다음과 같다.
COMPACT Pseudo-code for the initial schedule computation
Figure 112018073768419-pat00304
are given for
Figure 112018073768419-pat00305
nodes, and
Figure 112018073768419-pat00306
,
Figure 112018073768419-pat00307
are given for
Figure 112018073768419-pat00308
nodes;
Figure 112018073768419-pat00309
nodes that have
Figure 112018073768419-pat00310
are sorted in ascending order of round-trip-time, and subsequently,
Figure 112018073768419-pat00311
nodes that have
Figure 112018073768419-pat00312
are sorted in ascending order of ID;
SET
Figure 112018073768419-pat00313
;
FOR
Figure 112018073768419-pat00314
IF
Figure 112018073768419-pat00315
Figure 112018073768419-pat00316
;
(
Figure 112018073768419-pat00317
)
ELSE
Figure 112018073768419-pat00318
;
END
IF
Figure 112018073768419-pat00319
Figure 112018073768419-pat00320
;
(
Figure 112018073768419-pat00321
)
ELSE
Figure 112018073768419-pat00322
;
END
Figure 112018073768419-pat00323
;
END
위 PSEUDO-CODE에서 첫 번째 IF-ELSE-END 와 두 번째 IF-ELSE-END 는 순서가 바뀌어도 무방하다
도 7은 본 발명의 일 실시예에 따른 도 2의 정규단계를 나타나내 순서도이다.
도 7을 참조하면, 초기 스케줄 계산이 완료되면, 싱크 노드는 각 노드별 스케줄 정보를 포함하는 SB 패킷을 생성해서
Figure 112018073768419-pat00324
시각에 SB를 방송함으로써 정규 과정에 진입한다.
즉, S702단계에서 싱크노드(10)가 주기적으로 비콘패킷을 통하여 노드들에게 스케줄 패킷을 브로드캐스팅 형태로 방송한다.
S704단계에서 노드(20)들은 상기 싱크노드(10)로부터 상기 비콘패킷을 수신하면 상기 스케줄 패킷에 대응하는 응답패킷을 상기 싱크노드(10)에게 유니캐스팅 방식으로 송신한다.
S706단계에서 싱크노드(10)는 상기 노드(20)들로부터 상기 응답 패킷을 수신한다.
S708단계에서 싱크노드(10)와 상기 노드(10)들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하여 초기화시킨다.
상기 왕복시간지연정보를 상기 노드(20)와 공유한다.
S710단계에서 싱크노드(10)는 상기 응답패킷에 대응하는 노드의 스케줄을 계산한다.
S712단계에서 싱크노드(10)와 노드(20) 간에 왕복시간지연 정보가 획득된다. 싱크노드(10)와 노드(20) 간에 왕복시간지연 정보가 획득되면, 네트워크는 정규단계정에 진입한다. 정규단계는 싱크노드(10)가 SB패킷을 방송하고 노드들은 SB패킷에 대한 응답으로서 SBR을 싱크 노드에게 전송한다. 즉, 정규과정에 사용되는 패킷은 총 2가지(SB/SBR)이다.
도 8은 본 발명의 일 실시예에 따른 도 7의 상기 스케줄 방송단계를 보다 상세하게 나타낸 순서도이다.
도 8을 참조하면, S802단계에서 싱크노드(10)는 노드(20)들에 대하여 SB패킷을 생성하여 방송한다. 이때, 싱크노드비콘(Sink node Beacon, SB)패킷의 "Num_Nodes" 필드는 스케줄링 정보가 포함되는 노드의 수로서, 총 노드 수인
Figure 112018073768419-pat00325
로 한다. "Pay Load" 필드에는, "Num_nodes" 개의 노드에 대해서, 각 노드별 (ID_Node (6-bit), Wait_Time (15-bit), CRC_PL (9-bit), RSV_PL (2-bit)) 정보가 포함되도록 한다. 이 때, "ID_Node"는 해당 노드의 ID, "Wait_Time"은 다음의 수학식 14로 나타낼 수 있다.
Figure 112018073768419-pat00326
이 때,
Figure 112018073768419-pat00327
값을
Figure 112018073768419-pat00328
단위로만 설정할 수 있으므로, 수학식 15는 다음의 수학식 15으로 정리될 수 있다.
Figure 112018073768419-pat00329
여기에서,
Figure 112018073768419-pat00330
Figure 112018073768419-pat00331
보다 크거나 같은 정수 중에서 가장 작은 정수를 의미한다 (ceil operation).
Figure 112018073768419-pat00332
은 사용자 운용 GUI에서 설정 가능하도록 하며, 디폴트 값은 10ms로 한다.
Figure 112018073768419-pat00333
은 최적화가 필요한 파라미터이다. 특히, 데이터 전송속도(data rate)가 낮은 장거리 네트워크의 경우에는 중요할 수 있다. Wait_Time의 허용 범위도 고려되어야 한다. 하지만, 통신 거리가 수백 미터 내외인 근거리 고속 네트워크에서는 데이터 전송 속도가 빠르기 때문에 큰 영향을 주지는 않는다.
S804단계에서 모든
Figure 112018073768419-pat00334
에 대해서
Figure 112018073768419-pat00335
으로 설정한다. 이렇게 초기화를 해주어야,
Figure 112018073768419-pat00336
-번째 사이클에서 SBR 패킷의 성공적 수신에 따른 왕복시간지연 정보의 유효성이 타당하게 갱신된다.
도 9는 도 9는 본 발명의 일 실시예에 따른 시간축 상에서 사이클 단위의 스케줄링 개념을 나타낸 도면이다.
도 9를 참조하면, 정규 과정은 싸이클 단위로 반복된다.
한편, S902단계에서 싱크 노드가
Figure 112018073768419-pat00337
-번째 SB 패킷을 방송한다. 그리고,
Figure 112018073768419-pat00338
-번째 사이클이란, 노드들로부터 데이터 패킷 수신이 완료되는 순간까지, 즉, 싱크 노드가
Figure 112018073768419-pat00339
-번째 SB 패킷을 방송하기 직전까지를 의미한다.
Figure 112018073768419-pat00340
-번째 사이클 지속 시간을
Figure 112018073768419-pat00341
이라고 표시한다.
S806단계에서 모든
Figure 112018073768419-pat00342
(노드)에 대해서
Figure 112018073768419-pat00343
으로 설정한다.
Figure 112018073768419-pat00344
-번째 사이클에서
Figure 112018073768419-pat00345
-번째 SB 패킷 방송 후에
Figure 112018073768419-pat00346
시간 동안 노드들로부터 SBR 패킷을 수신하고,
Figure 112018073768419-pat00347
-번째 사이클 종료 시점에 FLAG_StopNet이 FALSE이면
Figure 112018073768419-pat00348
-번째 사이클의 스케쥴을 계산하고
Figure 112018073768419-pat00349
-번째 SB 패킷을 방송함으로써 네트워크를 계속 유지한다. FLAG_StopNet은 네트워크 지속 여부를 결정하는 변수로써, 디폴트 값은 FALSE이고, 사용자 GUI에서 네트워크를 중단하는 버튼을 클릭하면 TRUE로 설정되도록 한다.
S808단계에서 네트워크 중지 플래그(FLAG_StopNet)가 트루인지의 여부를 판단한다.
여기서,
Figure 112018073768419-pat00350
-번째 사이클의 종료 시점이라 하면,
Figure 112018073768419-pat00351
로부터 SBR 패킷이 수신 완료되거나
Figure 112018073768419-pat00352
-번째 SB 패킷 방송 후에
Figure 112018073768419-pat00353
시각이 경과한 경우를 의미한다. 즉,
Figure 112018073768419-pat00354
Figure 112018073768419-pat00355
시각부터
Figure 112018073768419-pat00356
의 SBR 패킷이 수신 완료되거나
Figure 112018073768419-pat00357
시각 까지의 시간을 의미한다.
S808단계에서 판단하여 사이클 종료 시점에 네트워크 중지 플래그(FLAG_StopNet)가 false이면, 즉, 네트워크 중지 플래그가 FALSE이면
Figure 112018073768419-pat00358
번째 사이클의 스케줄을 계산한다(S810단계). S808단계에서 판단하여 사이클 종료 시점에 네트워크 중지 플래그(FLAG_StopNet)가 진실이면 종료한다.
상기 계산된 n번째 스케줄의 SB패킷을 방송하는 단계로 리턴(S702단계) 하여 n번째 SB 패킷을 방송함으로써 네트워크를 계속 유지한다. 즉,
Figure 112018073768419-pat00359
-번째 SB 패킷을 방송함으로써 네트워크를 계속 유지한다. FLAG_StopNet은 네트워크 지속 여부를 결정하는 변수로써, 디폴트 값은 FALSE이고, 사용자 GUI에서 네트워크를 중단하는 버튼을 클릭하면 TRUE로 설정되도록 한다.
도 10은 본 발명의 일 실시예에 따른 도 7에서의 n번째 사이클 스케줄을 계산하는 단계를 나타낸 순서도이다.
도 10을 참조하면, S902단계에서 n번째 데이터패킷(
Figure 112018073768419-pat00360
)에 대한 왕복시간지연(
Figure 112018073768419-pat00361
)을 구한다. 여기서,
Figure 112018073768419-pat00362
-번째 사이클에서 SB 패킷이 방송되는 시각을
Figure 112018073768419-pat00363
으로 표기한다.
Figure 112018073768419-pat00364
-번째 사이클에서
Figure 112018073768419-pat00365
의 데이터 패킷이 수신되기 시작하는 시각을
Figure 112018073768419-pat00366
으로 표기한다.
Figure 112018073768419-pat00367
-번째 사이클에서
Figure 112018073768419-pat00368
에게 부여되는 스케쥴링 정보인 대기 시간을
Figure 112018073768419-pat00369
으로 표기한다. 그러면,
Figure 112018073768419-pat00370
-번째 사이클이 종료되면
Figure 112018073768419-pat00371
의 왕복시간지연
Figure 112018073768419-pat00372
은 다음의 수학식 16과 같이 얻어진다.
Figure 112018073768419-pat00373
여기에서
Figure 112018073768419-pat00374
Figure 112018073768419-pat00375
-번째 사이클에서 SB 패킷의 길이를 시간으로 환산한 값이다. 일반적으로 사이클마다
Figure 112018073768419-pat00376
값이 달라지지는 않겠지만, 달라질 수 있는 경우에 대비하기 위해서 이와 같이 정의한다.
Figure 112018073768419-pat00377
값은 항상 일정하게 정해지는 것이 아니라, 통계적인 특성을 가지는 확률 변수로 표현하는 것이 정확하겠으나, 어느 시간 이내에는 수신에서 송신으로 전환될 수 있다는 것은 알 수 있으므로, 이런 값들을 사용하면 된다. 즉, 경험적으로 적당히 큰 값을 사용하고, 대기 시간을 부여할 때 적어도
Figure 112018073768419-pat00378
이상의 시간이 지난 후에
Figure 112018073768419-pat00379
만큼 추가적으로 대기 시간이 부여되도록 각 노드에서 제어하면 된다.
S904단계에서
Figure 112018073768419-pat00380
번째 사이클이 종료되면,
Figure 112018073768419-pat00381
가 "1"인 노드들에 대해서 왕복시간지연이 작은 순으로 노드들을 정렬한다. 즉,
Figure 112018073768419-pat00382
-개의 모든 노드들로부터 SBR 패킷을 수신 완료하였거나, 수신 완료 예상 시각이 되면, 초기 스케쥴 계산과 마찬가지로, 먼저,
Figure 112018073768419-pat00383
가 "1"인 노드들에 대해서 왕복시간지연이 작은 순으로 노드들을 정렬한다.
Figure 112018073768419-pat00384
가 "0"인 노드들은
Figure 112018073768419-pat00385
가 1인 노드들 다음에 ID 순으로 정렬해서, 총
Figure 112018073768419-pat00386
개의 노드들이 정렬되도록 한다.
S906단계에서 한 사이클 동안 변화할 수 있는 노드의 왕복시간지연의 변동폭
Figure 112018073768419-pat00387
를 구한다. 싱크 노드가 스케쥴을 정하는 가장 기본 원칙은, 싱크 노드에 노드들의 SBR 패킷이 패킷 트레인 형태로 수신되도록 하여 유휴 시간을 최소화하되, 이동성을 고려하여 충돌이 발생하지 않도록 하는 것이다.
도 11은 본 발명의 일 실시예에 따른 시간축 상에서 n-번째 사이클에서 각 노드의 대기 시간을 도출하는 원리에 대한 개념도이다.
도 11을 참조하면, 싱크노드비콘(SB) 패킷 수신 후에 바로 SBR 패킷을 송신하더라도 충돌이 발생하지 않으면, 대기 시간 없이 바로 송신하고, 충돌이 발생할 것으로 예측되면, 충돌이 발생하지 않을 만큼의 대기 시간을 부여하도록 한다.
노드의 왕복시간지연의 변동폭
Figure 112018073768419-pat00388
은 다음의 수학식 17과 같이 정의될 수 있다.
Figure 112018073768419-pat00389
S908단계에서 스케줄 계산이 완료된
Figure 112018073768419-pat00390
의 SBR 패킷이 싱크 노드에서 수신 완료 되는 시각의 이론적인 최대 값보다 크도록 설정한다.
즉, 싱크노드(10)는
Figure 112018073768419-pat00391
-번째 사이클의 SB 패킷 송신 시각 및 각 노드(20)들로부터의 SBR 패킷 수신 시각을 이용하여 싱크노드(10)와 각 노드(20) 간 왕복시간지연 값을 얻을 수 있지만,
Figure 112018073768419-pat00392
-번째 사이클에서 각 노드가 데이터 패킷을 송신하는 시점에서의 싱크노드(10)와 각 노드(20) 간 왕복시간지연은 노드의 이동성으로 인하여 정확하게 알 수 없다. 또한,
Figure 112018073768419-pat00393
-번째 사이클 종료 시점에서
Figure 112018073768419-pat00394
-번째 사이클에서 각 노드의 SBR 패킷의 수신 시각을 정확하게 알 수 없다.
Figure 112018073768419-pat00395
-번째 사이클 종료 시점에, 모든 노드들에 대해서
Figure 112018073768419-pat00396
-번째 사이클에서 획득한 왕복시간지연 정보가,
Figure 112018073768419-pat00397
-번째 사이클에서 각 노드의 SBR 패킷이 수신될 때까지 얼마 만큼의 변동폭을 가질지 정확하게 알 수 없으므로, 변동폭을 근사적으로 추정하여 사용한다. 그 변동폭 추정 결과가 전술한
Figure 112018073768419-pat00398
이다. 이와 같이 추정한 근거는,
Figure 112018073768419-pat00399
-번째 사이클에서
Figure 112018073768419-pat00400
의 SBR 패킷이 수신된 시각
Figure 112018073768419-pat00401
Figure 112018073768419-pat00402
-번째 사이클에서
Figure 112018073768419-pat00403
의 SBR 패킷이 수신되는 시각
Figure 112018073768419-pat00404
의 차이를 다음과 같이 SB 패킷이 송신되는 시각의 차이로 다음의 수학식 18와 같이 근사하는 것이다.
Figure 112018073768419-pat00405
그리고, 최대 상대 속도로 이동하는 경우를 산정하여 변동폭을 정의한 것이
Figure 112018073768419-pat00406
이다.
도 11에서 표시된 것처럼,
Figure 112018073768419-pat00407
-번째 사이클에서
Figure 112018073768419-pat00408
의 SBR 패킷은
Figure 112018073768419-pat00409
-번째 SB 패킷 방송 시각
Figure 112018073768419-pat00410
을 기준으로
Figure 112018073768419-pat00411
에서
Figure 112018073768419-pat00412
사이에 수신 완료된다. 즉, 다음의 수학식 19로 표현될 수 있다.
Figure 112018073768419-pat00413
따라서,
Figure 112018073768419-pat00414
의 SBR 패킷이 싱크 노드에 도착하는 시각의 이론적인 최소 값인
Figure 112018073768419-pat00415
에 대기 시간
Figure 112018073768419-pat00416
을 부여한
Figure 112018073768419-pat00417
이 (스케쥴 계산이 완료된)
Figure 112018073768419-pat00418
의 SBR 패킷이 싱크 노드에서 수신 완료 되는 시각의 이론적인 최대 값인
Figure 112018073768419-pat00419
보다 크도록 하여,
Figure 112018073768419-pat00420
의 SBR 패킷과
Figure 112018073768419-pat00421
의 SBR 패킷이 싱크 노드에서 수신 충돌이 발생하지 않도록 한다.
정규과정을 Pseudo code로 정리하면 다음과 같다
Figure 112018073768419-pat00422
-th cycle의 스케줄 계산에 대한 Pseudo-code(Pseudo-code for the schedule computation of
Figure 112018073768419-pat00423
-th cycle)
Figure 112018073768419-pat00424
are given for
Figure 112018073768419-pat00425
nodes, and
Figure 112018073768419-pat00426
,
Figure 112018073768419-pat00427
are given for
Figure 112018073768419-pat00428
nodes;
Figure 112018073768419-pat00429
nodes that have
Figure 112018073768419-pat00430
are sorted in ascending order of round-trip-time, and subsequently,
Figure 112018073768419-pat00431
nodes that have
Figure 112018073768419-pat00432
are sorted in ascending order of ID;
SET
Figure 112018073768419-pat00433
;
SET ;
Figure 112018073768419-pat00434
FOR
Figure 112018073768419-pat00435
IF
Figure 112018073768419-pat00436
Figure 112018073768419-pat00437
;
ELSE
Figure 112018073768419-pat00438
;
END
IF
Figure 112018073768419-pat00439
Figure 112018073768419-pat00440
;
ELSE
Figure 112018073768419-pat00441
;
END
Figure 112018073768419-pat00442
;
END
위 PSEUDO-CODE에서 첫 번째 IF-ELSE-END 와 두 번째 IF-ELSE-END 는 순서가 바뀌어도 무방하다.
앞의 정규과정에 대한 Pseudo-code를 보면
Figure 112018073768419-pat00443
Figure 112018073768419-pat00444
값에 공통적으로
Figure 112018073768419-pat00445
을 포함하고 있는데,
Figure 112018073768419-pat00446
을 계산하는 과정은
Figure 112018073768419-pat00447
Figure 112018073768419-pat00448
의 차이에 기반하므로, 공통된
Figure 112018073768419-pat00449
은 삭제해도 무방하다. 이 때의 간략화된 Pseudo-code는 다음과 같다.
COMPACT Pseudo-code for the schedule computation of
Figure 112018073768419-pat00450
-th cycle
Figure 112018073768419-pat00451
are given for
Figure 112018073768419-pat00452
nodes, and
Figure 112018073768419-pat00453
,
Figure 112018073768419-pat00454
are given for
Figure 112018073768419-pat00455
nodes;
Figure 112018073768419-pat00456
nodes that have
Figure 112018073768419-pat00457
are sorted in ascending order of round-trip-time, and subsequently,
Figure 112018073768419-pat00458
nodes that have
Figure 112018073768419-pat00459
are sorted in ascending order of ID;
SET
Figure 112018073768419-pat00460
;
SET
Figure 112018073768419-pat00461
;
FOR
Figure 112018073768419-pat00462
IF
Figure 112018073768419-pat00463
Figure 112018073768419-pat00464
;
ELSE
Figure 112018073768419-pat00465
;
END
IF
Figure 112018073768419-pat00466
Figure 112018073768419-pat00467
;
ELSE
Figure 112018073768419-pat00468
;
END
Figure 112018073768419-pat00469
;
END
위 PSEUDO-CODE에서 첫 번째 IF-ELSE-END 와 두 번째 IF-ELSE-END 는 순서가 바뀌어도 무방하다
도 12는 본 발명의 일 실시예에 따른 시간축 상에서 n-번째 사이클에서 각 노드의 대기 시간을 도출하는 원리에 대한 개념도이다.
도 12를 참조하면, 앞의 PSEUDO-CODE에서와 같이 공통된 부분을 삭제하고 간략화시킨 스케줄이 도시되어 있다.
도 13은 본 발명의 일 실시예에 따른 싱크 노드에서의 수신 패킷 처리 절차를 나타낸 순서도이다.
도 13을 참조하면, 상기 방송단계 이후에, 상기 싱크노드(10)는, S1002단계에서 상기 노드로부터 패킷 수신을 대기한다. S1002단계에서 수신을 대기하여 패킷이 수신되면(S1004단계), 패킷 수신 시간을 획득한다(S1006단계).
S1008단계에서 싱크노드(10)는 수신된 패킷이 IRP패킷인지의 여부를 판단한다.
수신된 패킷이 응답패킷(IRP(Initialization ResPonse) 패킷)인 경우, S1010단계에서 응답패킷(IRP(Initialization ResPonse) 패킷)의 CRC를 체크한다.
S1010단계에서의 체크 결과 상기 IRP 패킷의 CRC 오류가 발생하지 않은 경우에는 IRP 패킷의 왕복시간지연을 계산하고(S1012단계) 대기단계인 S1002단계로 리턴한다. 도면에서는 편의상 종료로 표시하였다.
상기 S1012단계에서의 왕복시간지연은 다음의 수학식 20으로 구한다.
Figure 112018073768419-pat00470
여기서,
Figure 112018073768419-pat00471
값을 "1"로 설정하고,
Figure 112018073768419-pat00472
는 패킷 수신 시각으로 설정하며,
Figure 112018073768419-pat00473
는 IRQ 패킷 송신 시각을 나타내며,
Figure 112018073768419-pat00474
는 IRQ 패킷 길이를 시간으로 환산한 값을 나타내고,
Figure 112018073768419-pat00475
는 패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간을 나타낸다.
S1014단계에서 수신된 패킷이 RIRP패킷인지의 여부를 판단한다.
수신된 패킷이 RIRP패킷인 경우, S1016단계에서 수신된 RIRP 패킷의 CRC를 체크한다.
S1016단계에서 상기 RIRP 패킷의 CRC 체크 결과 오류가 발생하지 않은 경우에는 RIRP패킷의 왕복시간지연을 계산하고(S1018단계) 대기단계로 리턴한다.
S1018단계에서의 RIRP 패킷의 왕복시간지연은 다음의 수학식 21로 구한다.
Figure 112018073768419-pat00476
여기서,
Figure 112018073768419-pat00477
는 패킷 수신 시각으로 설정하며,
Figure 112018073768419-pat00478
는 RIRQ 패킷 송신 시각을 나타내고,
Figure 112018073768419-pat00479
는 RIRQ 패킷 길이를 시간으로 환산한 값을 나타내고, NUM_RB는 random backoff 윈도우의 개수를 나타내고,
Figure 112018073768419-pat00480
는 random backoff 윈도우의 단위 시간을 나타낸다.
S1020단계에서 수신된 패킷이 SBR 패킷인지의 여부를 판단한다.
수신된 패킷이 SBR패킷인 경우, S1022단계에서 수신된 SBR 패킷의 CRC를 체크한다.
S1022단계에서의 SBR 패킷의 CRC 체크 결과 오류가 발생하지 않은 경우에는 패킷에 포함된 페이로드를 판독한다(S1024단계).
SBR 패킷의 왕복시간지연을 계산(S1026)하고 대기단계로 리턴한다.
도 14는 본 발명의 일 실시예에 따라 상기 방송단계 이후에, 상기 노드들 중 소정의 노드에서의 패킷 송수신 과정을 나타낸 순서도이다.
도 14를 참조하면, 상기 방송단계 이후에, S1102단계에서 상기 노드(20)들 중 소정의 노드(20)는 상기 싱크노드(10)로 패킷 수신을 대기한다.
S1104단계에서 패킷 수신이 이루어지면 패킷 수신 시간을 획득한다.
S1106단계에서 수신된 패킷의 "Type" 필드가 IRQ인지의 여부를 판단한다. 즉, 수신된 패킷이 IRQ패킷인지의 여부를 판단한다
수신된 패킷이 IRQ패킷이면, "CRC_IRQ" 필드를 확인해서 오류 발생 여부를 확인한다(S1108단계).
S1108단계에서 판단하여 오류가 발생하지 않은 경우에는 패킷 수신 시각으로부터
Figure 112018073768419-pat00481
시간 만큼 경과한 후에 IRP 패킷이 송신되도록 한 후에 패킷 수신 대기 상태로 리턴한다(S1110단계).
S1112단계에서 수신된 패킷의 "Type" 필드가 RIRQ인지의 여부를 판단한다.
S1112단계에서 판단하여 수신된 패킷이 RIRQ 패킷이면, "CRC_RIRQ" 필드를 확인해서 오류 발생 여부를 확인한다(S1114단계).
상기 S1114단계에서 오류가 발생하지 않은 것으로 판단되면 나의 ID가 "Pay Load" 필드의 "List_ID"에 포함되어 있는 경우에는 RIRP 패킷을 생성하여 송신한다.
이 때, 0부터 31 사이의 정수 값을 가지는 임의의 random backoff 양을 결정하고 해당 값을 "Num_RB" 필드로 하는 RIRP 패킷을 패킷 수신 시각으로부터
Figure 112018073768419-pat00482
시간 만큼 경과한 후에 RIRP 패킷이 송신되도록 한다(S1110단계). RIRP 패킷 송신이 완료되면 패킷 수신 대기 상태로 돌아간다.
S1118단계에서 수신된 패킷의 "Type" 필드가 SB인지의 여부를 판단한다.
수신된 패킷의 "Type" 필드가 SB이면, "CRC_SB" 필드를 확인해서 오류 발생 여부를 확인한다(S1120단계).
상기 S1120단계에서 오류가 발생하지 않은 것으로 판단되면 나의 ID가 "Pay Load" 필드의 "ID_Node"와 일치하는 항목인 (ID_Node, Wait_Time, CRC_PL, RSV_PL) 항목을 판독한다(S1222단계).
S1216단계에서 SB 패킷을 수신한 시각으로부터
Figure 112018073768419-pat00483
시간 만큼 경과한 후에 SBR 패킷이 송신되도록 한다.
상기 본 발명의 내용은 도면에 도식된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 싱크노드 20 : 노드

Claims (14)

  1. 싱크노드와 노드 간 수중 통신에 있어서 네트워크가 시작되는 최초 시점에 싱크노드와 노드들간 수중 통신 네트워크를 스케줄링하기 위한 상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화단계; 및
    상기 싱크노드가 싱크노드의 패킷들을 방송 형태로 전송하고 노드들은 싱크노드의 패킷들을 수신하면 응답을 싱크노드(10)에게 유니캐스트 방식으로 전송하는 정규단계;를 포함하고,
    상기 초기화단계는,
    상기 싱크노드가 상기 다수의 노드들에게 네트워크가 시작되었음을 알리는 제1 초기화패킷과 다수의 노드들 중 상기 네트워크의 시작을 알리는 패킷을 수신하지 못한 노드들에게만 전송하는 제2 초기화패킷을 방송하는 초기화패킷 방송단계;
    상기 각각의 노드는 상기 싱크노드로부터 제1 초기화패킷 또는 제2 초기화패킷을 수신하여 상기 제1 초기화패킷 또는 제2 초기화패킷에 대한 각각의 응답을 생성하여 상기 싱크노드로 전송하는 제1 응답단계;
    상기 싱크노드는 상기 패킷들에 대한 각각의 응답을 상기 각각의 노드들로부터 수신하는 제1 수신단계;를 포함하고,
    상기 정규단계는,
    상기 싱크노드가 주기적으로 비콘 패킷을 통하여 노드들에게 스케줄 패킷(IRQ(Initialization ReQuest) 패킷)을 브로드캐스팅 형태로 방송하는 스케줄 방송단계;
    상기 노드들은 상기 싱크노드로부터 상기 비콘 패킷을 수신하면 상기 스케줄 패킷(IRQ(Initialization ReQuest) 패킷)에 대응하는 응답패킷(IRP(Initialization ResPonse) 패킷)을 상기 싱크노드에게 유니캐스트 방식으로 송신하는 제2 응답단계;
    상기 싱크노드는 상기 노드들로부터 상기 응답패킷(IRP(Initialization ResPonse) 패킷)을 수신하는 제2 수신단계;
    상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화단계; 및
    상기 싱크노드는 상기 응답패킷(IRP(Initialization ResPonse) 패킷)에 대응하는 노드의 스케줄을 계산하는 단계;를 포함하며,
    상기 싱크노드가 상기 다수의 노드로 초기화패킷을 방송하는 초기화패킷 방송단계는,
    초기화 시도 횟수를 나타내는 로컬 변수인 Num_Init(Number of Initialization)을 "0"으로 설정하고 유효한 왕복시간지연 정보의 존재 여부를 나타내는 변수인
    Figure 112019111607538-pat00569
    는 0으로 설정하는 단계;
    초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartInit)가 TRUE로 설정되어 있는 지의 여부를 판단하는 제1 판단단계;
    상기 제1 판단단계에서 판단하여 초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartInit)가 TRUE로 설정되어 있는 경우 상기 스케줄 패킷(IRQ(Initialization ReQuest) 패킷)을 다수의 노드에 대하여 방송하는 단계;를 포함하는 것인 수중 이동 네트워크 방법.
  2. 삭제
  3. 제1항에 있어서,
    싱크노드에게 응답패킷(IRP(Initialization ResPonse) 패킷)을 송신하는 제1 응답단계는,
    상기 스케줄 패킷(IRQ(Initialization ReQuest) 패킷) 방송 후에, 설정된 대기시간(
    Figure 112019111607538-pat00485
    시간) 동안 노드들로부터 응답패킷(IRP(Initialization ResPonse) 패킷)을 수신하는 단계;
    상기 설정된 대기시간(
    Figure 112019111607538-pat00486
    )이 경과하면, 싱크노드는 초기화에 실패한 노드 수(Num_IFN (Number of Initializatin Fail Node))를 계산하는 단계;
    상기 싱크노드가 초기스케줄을 계산하는 초기스케줄 계산단계;를 포함하는 것인 수중 이동 네트워크 방법.
  4. 제3항에 있어서, 상기 설정된 대기시간(
    Figure 112019111607538-pat00487
    )은 다음의 수학식으로 구하도록 구성되는 것인 수중 이동 네트워크 방법.
    Figure 112019111607538-pat00488

    여기서, 모뎀의 최대 통신 반경을
    Figure 112019111607538-pat00489
    이라고 하고, 음파의 최소 전달 속도를
    Figure 112019111607538-pat00490
    라고 하며, 싱크노드는 상기 스케줄 패킷(IRQ(Initialization ReQuest) 패킷) 방송 후에
    Figure 112019111607538-pat00491
    시간 이내에 모든 노드들로부터 초기화 응답패킷(IRP(Initialization ResPonse) 패킷) 수신이 완료되는 것으로 가정되며,
    Figure 112019111607538-pat00492
    는 싱크노드와 노드간 왕복시간지연의 최대값으로서, 다음의 수학식으로 계산되고,
    Figure 112019111607538-pat00493
    Figure 112019111607538-pat00494
    는 각각 스케줄 패킷(IRQ(Initialization ReQuest) 패킷) 길이와 응답패킷(IRP(Initialization ResPonse) 패킷) 길이를 시간으로 환산한 값은 나타냄.
    Figure 112019111607538-pat00495
  5. 제3항에 있어서, 상기 Num_IFN을 계산하는 단계에서,
    상기 초기화에 실패한 노드 수(Num_IFN)는 다음의 수학식으로 구하는 것인 수중 이동 네트워크 방법.
    Figure 112018073768419-pat00496

    여기서, K는 싱크 노드를 제외한 총 노드 수를 나타내고,
    Figure 112018073768419-pat00497
    Figure 112018073768419-pat00498
    (
    Figure 112018073768419-pat00499
    -번째로 왕복시간지연(RTT) 작은 노드)의 RTT 정보의 존재 여부를 나타내는 변수유효성 여부를 나타냄.
  6. 제3항에 있어서, 상기 초기스케줄 계산단계는,
    상기
    Figure 112018073768419-pat00500
    가 "1"인 노드들을 추출하는 단계;
    상기 추출된
    Figure 112018073768419-pat00501
    가 "1"인 노드들에 대해서 왕복시간지연이 작은 순으로 노드들을 정렬하는 단계;
    상기
    Figure 112018073768419-pat00502
    가 "0"인 노드들을 추출하는 단계;
    상기
    Figure 112018073768419-pat00503
    가 "1"인 노드들 다음에 ID 순으로 정렬해서, 총
    Figure 112018073768419-pat00504
    개의 노드들을 정렬시키는 단계; 및
    상기 싱크노드는 정렬된 노드 순으로 스케줄을 계산하는 단계;를 포함하는 것인 수중 이동 네트워크 방법.
  7. 제6항에 있어서, 상기 노드 순으로 스케줄을 계산하는 단계는,
    n번째 데이터패킷(
    Figure 112018073768419-pat00505
    )에 대한 왕복시간지연(
    Figure 112018073768419-pat00506
    )을 구하는 단계;
    왕복시간지연(
    Figure 112018073768419-pat00507
    )을 획득하지 못한 노드들은, 즉,
    Figure 112018073768419-pat00508
    가 "0"인 노드들은
    Figure 112018073768419-pat00509
    가 1인 노드들 다음에 ID 순으로 정렬해서, 총
    Figure 112018073768419-pat00510
    개의 노드들이 정렬되도록 하는 단계;
    Figure 112018073768419-pat00511
    은 SB 패킷을 수신하자마자 대기 시간 없이 바로 데이터 패킷을 송신하는 단계;
    Figure 112018073768419-pat00512
    의 데이터 패킷이 싱크 노드에 수신되기 시작하는 시각이 가질 수 있는 이론적인 최대값
    Figure 112018073768419-pat00513
    을 계산하는 단계;
    Figure 112018073768419-pat00514
    의 데이터 패킷이 싱크 노드에서 가장 빠르게 수신될 수 있는 시각
    Figure 112018073768419-pat00515
    을 계산하는 단계; 및
    은,
    Figure 112018073768419-pat00516
    인 경우에는,
    Figure 112018073768419-pat00517
    의 스케줄
    Figure 112018073768419-pat00518
    이 계산될 때까지 회귀적으로
    Figure 112018073768419-pat00519
    의 스케줄
    Figure 112018073768419-pat00520
    을 계산하는 단계;를 포함하는 수중 이동 네트워크 방법.
  8. 제1항에 있어서, 상기 스케줄 방송단계는,
    싱크노드비콘(Sink node Beacon, SB) 패킷을 생성하여 방송하는 단계;
    모든
    Figure 112018073768419-pat00521
    에 대해서
    Figure 112018073768419-pat00522
    으로 설정하는 단계;
    네트워크 중지 플래그(FLAG_StopNet)가 트루인지의 여부를 판단하는 제3 판단단계;
    상기 제3 판단단계에서 판단하여 사이클 종료 시점에 네트워크 중지 플래그(FLAG_StopNet)가 false이면
    Figure 112018073768419-pat00523
    번째 사이클의 스케줄을 계산하는 단계; 및
    상기 계산된 n번째 스케줄의 SB패킷을 방송하는 단계로 리턴하여 n번째 SB 패킷을 방송함으로써 네트워크를 계속 유지하는 단계;를 포함하여 구성된다.
    여기서, 네트워크 중지 플래그(FLAG_StopNet)는 네트워크 지속 여부를 결정하는 변수로써, 디폴트 값은 FALSE로 설정하고, 사용자 GUI에서 네트워크를 중단하는 버튼을 클릭하면 TRUE로 설정되도록 하여 종료되도록 구성되는 것인 수중 이동 네트워크 방법.
  9. 제8항에 있어서, n번째 사이클 스케줄을 계산하는 단계는
    n번째 데이터패킷(
    Figure 112018073768419-pat00524
    )에 대한 왕복시간지연(
    Figure 112018073768419-pat00525
    )을 구하는 단계;
    Figure 112018073768419-pat00526
    번째 사이클이 종료되면,
    Figure 112018073768419-pat00527
    가 "1"인 노드들에 대해서 왕복시간지연이 작은 순으로 노드들을 정렬하는 단계;
    한 사이클 동안 변화할 수 있는 노드의 왕복시간지연의 변동폭
    Figure 112018073768419-pat00528
    을 구하는 단계;
    스케줄 계산이 완료된
    Figure 112018073768419-pat00529
    의 SBR 패킷이 싱크 노드에서 수신 완료 되는 시각의 이론적인 최대 값보다 크도록 설정하는 단계;를 포함하는 수중 이동 네트워크 방법.
  10. 제1항에 있어서, 상기 초기화패킷 방송단계 이후에, 상기 싱크노드는,
    상기 싱크노드는 상기 노드로부터 패킷 수신을 대기하는 대기단계;
    수신을 대기하여 패킷이 수신되면 응답패킷(IRP(Initialization ResPonse) 패킷)의 CRC 체크하는 단계;
    상기 응답패킷(IRP(Initialization ResPonse) 패킷)의 CRC 체크 결과 오류가 발생하지 않은 경우에는 응답패킷(IRP(Initialization ResPonse) 패킷)의 왕복시간지연을 계산하고 대기단계로 리턴하는 제1 왕복시간지연 계산 단계;
    수신된 RIRP 패킷의 CRC를 체크하는 단계;
    상기 RIRP 패킷의 CRC 체크 결과 오류가 발생하지 않은 경우에는 RIRP 패킷의 왕복시간지연을 계산하고 대기단계로 리턴하는 제2 왕복시간지연 계산 단계;
    수신된 SBR 패킷의 CRC를 체크하는 단계;
    상기 SBR 패킷의 CRC 체크 결과 오류가 발생하지 않은 경우에는 SBR 패킷에 포함된 페이로드를 판독하는 단계; 및
    SBR 패킷의 왕복시간지연을 계산하고 대기단계로 리턴하는 제3 왕복시간지연 계산 단계;를 포함하는 것인 수중 이동 네트워크 방법.
  11. 제10항에 있어서,
    상기 제1 왕복시간지연 계산 단계에서의 응답패킷(IRP(Initialization ResPonse) 패킷)의 왕복시간지연은 다음의 수학식으로 구하는 것인 수중 이동 네트워크 방법.
    Figure 112019111607538-pat00530

    여기서,
    Figure 112019111607538-pat00531
    값을 "1"로 설정하고,
    Figure 112019111607538-pat00532
    는 패킷 수신 시각으로 설정하며,
    Figure 112019111607538-pat00533
    는 스케줄 패킷(IRQ(Initialization ReQuest) 패킷) 송신 시각을 나타내며,
    Figure 112019111607538-pat00534
    는 스케줄 패킷(IRQ(Initialization ReQuest) 패킷) 길이를 시간으로 환산한 값을 나타내고,
    Figure 112019111607538-pat00535
    는 패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간을 나타냄.
  12. 제10항에 있어서,
    상기 제2 왕복시간지연 계산 단계에서의 RIRP 패킷의 왕복시간지연은 다음의 수학식으로 구하는 것인 수중 이동 네트워크 방법.
    Figure 112018073768419-pat00536

    여기서,
    Figure 112018073768419-pat00537
    값을 "1"로 설정하고,
    Figure 112018073768419-pat00538
    는 패킷 수신 시각으로 설정하며,
    Figure 112018073768419-pat00539
    는 RIRQ 패킷 송신 시각을 나타내고,
    Figure 112018073768419-pat00540
    는 RIRQ 패킷 길이를 시간으로 환산한 값을 나타내고, Num_RB는 random backoff 윈도우의 개수를 나타내고,
    Figure 112018073768419-pat00541
    는 random backoff 윈도우의 단위 시간을 나타냄.
  13. 제10항에 있어서,
    상기 제3왕복시간지연 계산 단계에서의 SBR 패킷왕복시간지연은 다음의 수학식으로 구하는 것인 수중 이동 네트워크 방법.
    Figure 112018073768419-pat00542

    여기서,
    Figure 112018073768419-pat00543
    값을 "1"로 설정하고,
    Figure 112018073768419-pat00544
    는 패킷 수신 시각으로 설정하고,
    Figure 112018073768419-pat00545
    Figure 112018073768419-pat00546
    -번째 사이클에서
    Figure 112018073768419-pat00547
    의 스케쥴 정보를 나타내고,
    Figure 112018073768419-pat00548
    -번째 사이클에서 SB 패킷 송신 시각을 나타내며,
    Figure 112018073768419-pat00549
    Figure 112018073768419-pat00550
    -번째 사이클에서 SB 패킷의 길이를 시간으로 환산한 값을 나타내고,
    Figure 112018073768419-pat00551
    는 패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간을 나타냄.
  14. 제1항에 있어서, 상기 스케줄 방송단계 이후에, 상기 노드들 중 소정의 노드는
    상기 싱크노드로 패킷 수신이 이루어지면 패킷 수신 시간을 획득하는 단계;
    수신된 패킷의 "Type" 필드가 스케줄 패킷(IRQ(Initialization ReQuest) 패킷)이면, "CRC_IRQ" 필드를 확인해서 오류 발생 여부를 확인하는 제1 확인단계;
    상기 제1 확인단계에서 판단하여 오류가 발생하지 않은 경우에는 패킷 수신 시각으로부터
    Figure 112019111607538-pat00552
    시간 만큼 경과한 후에 응답패킷(IRP(Initialization ResPonse) 패킷)이 송신되도록 한 후에 패킷 수신 대기 상태로 리턴하는 단계;
    수신된 패킷의 "Type" 필드가 RIRQ이면, "CRC_RIRQ" 필드를 확인해서 오류 발생 여부를 확인하는 제2 확인단계;
    상기 제2 확인단계에서 오류가 발생하지 않은 것으로 판단되면 나의 ID가 "Pay Load" 필드의 "List_ID"에 포함되어 있는 경우에는 RIRP 패킷을 생성하여 송신하는 단계;
    수신된 패킷의 "Type" 필드가 SB이면, "CRC_SB" 필드를 확인해서 오류 발생 여부를 확인하는 제3 확인단계;
    상기 제3 확인단계에서 오류가 발생하지 않은 것으로 판단되면 나의 ID가 "Pay Load" 필드의 "ID_Node"와 일치하는 항목인 (ID_Node, Wait_Time, CRC_PL, RSV_PL) 항목을 판독하는 단계;
    SB 패킷을 수신한 시각으로부터
    Figure 112019111607538-pat00553

    시간 만큼 경과한 후에 SBR 패킷이 송신되도록 하는 단계;를 포함하여 구성되고,
    상기 송신하는 단계에서, 0부터 31 사이의 정수 값을 가지는 임의의 random backoff 양을 결정하고 해당 값을 "Num_RB" 필드로 하는 RIRP 패킷을 패킷 수신 시각으로부터
    Figure 112019111607538-pat00554
    시간 만큼 경과한 후에 RIRP 패킷이 송신되도록 하고, RIRP 패킷 송신이 완료되면 패킷 수신 대기 상태로 돌아가도록 하는 것인 수중 이동 네트워크 방법.
KR1020180086861A 2018-07-25 2018-07-25 수중 이동 네트워크 방법 KR102067527B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180086861A KR102067527B1 (ko) 2018-07-25 2018-07-25 수중 이동 네트워크 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180086861A KR102067527B1 (ko) 2018-07-25 2018-07-25 수중 이동 네트워크 방법

Publications (1)

Publication Number Publication Date
KR102067527B1 true KR102067527B1 (ko) 2020-01-17

Family

ID=69369862

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180086861A KR102067527B1 (ko) 2018-07-25 2018-07-25 수중 이동 네트워크 방법

Country Status (1)

Country Link
KR (1) KR102067527B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101033528B1 (ko) * 2009-08-24 2011-05-11 한국해양연구원 클러스터 수중 음향 네트워크를 위한 이동 노드 기반의 시간 분할 다중 접속 매체 접속 제어 방법
KR101082465B1 (ko) 2010-03-22 2011-11-11 한국해양연구원 애드혹 통신을 위한 수중 노드 및 이를 위한 패킷과 통신방법
KR20160028321A (ko) * 2014-09-03 2016-03-11 삼성전자주식회사 거리 측정 방법 및 그 전자 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101033528B1 (ko) * 2009-08-24 2011-05-11 한국해양연구원 클러스터 수중 음향 네트워크를 위한 이동 노드 기반의 시간 분할 다중 접속 매체 접속 제어 방법
KR101082465B1 (ko) 2010-03-22 2011-11-11 한국해양연구원 애드혹 통신을 위한 수중 노드 및 이를 위한 패킷과 통신방법
KR20160028321A (ko) * 2014-09-03 2016-03-11 삼성전자주식회사 거리 측정 방법 및 그 전자 장치

Similar Documents

Publication Publication Date Title
US9143274B2 (en) Traffic backfilling via network coding in a multi-packet reception network
SE518132C2 (sv) Metod och anordning för synkronisering av kombinerade mottagare och sändare i ett cellulärt system
US7596113B1 (en) Transmission scheduling for TDMA networks
CN109478950B (zh) 用于双向网络的电报拆分传输方法
CN109314599B (zh) 用于双向网络的电报拆分传输方法
WO2005027555A1 (ja) 無線パケット通信方法および無線パケット通信装置
CN112956150B (zh) 在测量间隙期间处理数据传输的网络接入节点和客户端设备
CN113994719B (zh) 通信系统、通信方法及通信装置
Arrabal et al. Efficient multi-hop broadcasting in dense nanonetworks
KR102067527B1 (ko) 수중 이동 네트워크 방법
CN109156021B (zh) 无线通信系统中用于稳健性增强的方法和装置
Liu et al. Topology-transparent scheduling in mobile ad hoc networks with multiple packet reception capability
Pandey et al. Prioritized S-ALOHA for URLLC
Censor-Hillel et al. Bounded-Contention Coding for the additive network model
US20040184486A1 (en) Method and system of communications
Chlebus Randomized communication in radio networks
RU2382499C1 (ru) Способ радиосвязи между подвижными объектами
Rahman et al. CUMAC-CAM: addressing triple hidden terminal problems for multi-channel transmission in underwater sensor networks
KR20090096702A (ko) 노드 사이의 메시지 전달 방법, 노드의 네트워크를 통한 메시지 중계 시스템, 통신 네트워크를 통한 메시지 중계 방법, 통신 네트워크를 통한 메시지 중계 시스템, 인코더 및 디코더
EP3776935A1 (en) Message and rate based user grouping in non-orthogonal multiple access (noma) networks
KR102038051B1 (ko) 데이터 패킷의 통신을 위한 슬롯의 예약을 실행하는 장치 및 방법
US11936461B2 (en) Method and system for wireless communication between transmitter devices and a receiver device by means of a repeater device with simultaneous repetition
Agarwal et al. K-preferential slotted ALOHA for ultra reliable low latency communications
Chen et al. DARA: A delay-aware random access for slot assignment in long-distance wireless networks
Khongorzul et al. Performance analysis of the stop-and-wait automatic repeat request protocol under Markovian interruptions

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant