KR102067527B1 - 수중 이동 네트워크 방법 - Google Patents
수중 이동 네트워크 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow 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—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/37—Slow start
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/02—Processing 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/04—Registration 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
본 발명은 수중 이동 네트워크 방법에 관한 것으로서, 더욱 상세하게는 특정 시각에 전송 시간이 겹치지 않도록 시간 자원을 직교화하지 않고, 음파의 느린 전달 속도에서 기인하는 긴 전파 지연 시간과 패킷 길이를 고려해서, 특정 노드에서 수신 충돌이 발생하지 않으면서 특정 시각에 중복 송신할 수 있는 수중 이동 네트워크 방법에 관한 것이다.
일반적으로 수중 무선 네트워크는 일반적으로 음파를 이용하며, 이렇게 음파를 사용하는 수중 음향 무선 네트워크에서는 전자파에 비해서 상대적으로 전달 속도가 매우 느린 음파의 전달 속도에서 기인하는 매우 긴 전파 지연, 그리고 수중음향 모뎀의 협소한 대역폭에서 기인하는 물리 계층의 느린 데이터 전달 속도와 길어지는 패킷 길이에 의해서 발생하는 네트워크 효율성 저하를 극복하는 것이 가장 중요하다.
수중 무선 네트워크 토폴로지는 하나 또는 다수의 싱크노드(10)로 다수의 노드들이 정보를 전달하는 것을 주 트래픽으로 하는 중앙 집중 방식과, 분산형의 다중홉 방식이 있는데, 네트워크 효율 측면에서 중앙 집중 방식이 유리하기 때문에 현재 상용으로 운용되고 있는 모든 네트워크 방식 또한 중앙 집중식을 사용하고 있다.
중앙 집중식은 공간/시간/주파수/부호 등의 자원을 직교화하여 사용하는 것이 일반적이며, 우리는 시간 영역에서 직교화할 수 있는 방향(시분할 다중접속(Time-Division Multiple Access, 이하 TDMA로 칭함)으로 설계한다.
일반적으로 기존 공기 중에서의 TDMA는 전자파의 전달 속도가 빨라서 전파 전달 시간 지연을 고려하지 않고서, 특정 시각에 오직 하나의 노드만이 데이터를 전송하도록 스케줄링을 하는데, 이러한 방식을 차용할 경우, 수중에서는 음파의 전달 속도가 느려서 채널 사용 효율이 크게 저하된다는 문제점이 있다.
따라서 본 발명은 전술한 종래기술의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 특정 시각에 전송 시간이 겹치지 않도록 시간 자원을 직교화하지 않고, 음파의 느린 전달 속도에서 기인하는 긴 전파 지연 시간과 패킷 길이를 고려해서, 특정 노드에서 수신 충돌이 발생하지 않으면서 특정 시각에 중복 송신을 허용함으로써 채널 사용 효율을 향상시킨 수중 이동 네트워크 방법을 제공하기 위한 것이다.
또한 본 발명은 싱크노드에서 노드들의 데이터 패킷 수신 시각이 겹치지 않으면서 이웃하는 수신 데이터 패킷 사이의 갭을 최소화(즉, 촘촘한 패킷 트레인 형태로 수신) 함으로써 싱크노드에서 노드들의 데이터 패킷 수신 시각이 겹칠 때 발생하는 싱크노드에서 수신 충돌을 회피시켜 채널 사용 효율을 증대시킨 수중 이동 네트워크 방법을 제공하기 위한 것이다.
또한, 본 발명은 싱크노드의 비콘 패킷을 수신한 이후 비콘 패킷에 지정된 시간 지연만큼 대기한 후에 데이터 패킷을 전달하도록 함으로써 다른 노드들이 싱크노드로 전송하는 데이터 패킷이 싱크노드의 비콘 패킷을 수신하는데 충돌을 일으키는 노드에서 수신 충돌을 회피시켜 채널 사용 효율을 증대시킨 수중 이동 네트워크 방법을 제공하기 위한 것이다.
상술한 목적을 달성하기 위한 수중 이동 네트워크 방법은, 싱크노드와 노드 간 수중 통신에 있어서 네트워크가 시작되는 최초 시점에 싱크노드와 노드들간 수중 통신 네트워크를 스케줄링하기 위한 상기 싱크노드와 상기 노드들 간의 왕복시간지연(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"으로 설정하고 유효한 왕복시간지연 정보의 존재 여부를 나타내는 변수인 는 0으로 설정하는 단계;
초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartInit)가 TRUE로 설정되어 있는 지의 여부를 판단하는 제1 판단단계;
상기 제1 판단단계에서 판단하여 초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartInit)가 TRUE로 설정되어 있는 경우 상기 스케줄 패킷(IRQ(Initialization ReQuest) 패킷)을 다수의 노드에 대하여 방송하는 단계;를 포함하여 구성될 수 있다.
싱크노드에게 응답 패킷을 송신하는 제1 응답단계는,
상기 싱크노드가 초기스케줄을 계산하는 초기스케줄 계산단계;를 포함하여 구성될 수 있다.
여기서, 모뎀의 최대 통신 반경을 이라고 하고, 음파의 최소 전달 속도를 라고 하며, 싱크노드는 IRQ 패킷 방송 후에 시간 이내에 모든 노드들로부터 초기화 응답 패킷 수신이 완료되는 것으로 가정되며, 는 싱크노드와 노드간 왕복시간지연의 최대값으로서, 다음의 수학식으로 계산되고, 와 는 각각 IRQ 패킷 길이와 IRP 패킷 길이를 시간으로 환산한 값은 나타냄.
상기 Num_IFN을 계산하는 단계에서, 상기 초기화에 실패한 노드 수(Num_IFN)는 다음의 수학식으로 구하도록 할 수 있다.
여기서, K는 싱크 노드를 제외한 총 노드 수를 나타내고, 는 (-번째로 왕복시간지연(Round-trip time delay, RTT)이 작은 노드)의 RTT 정보의 존재 여부를 나타내는 변수유효성 여부를 나타냄.
상기 초기스케줄 계산단계는,
상기 싱크노드는 위와 같이 정렬된 노드 순으로 스케줄을 계산하는 단계;를 포함하여 구성된다.
상기 노드 순으로 스케줄을 계산하는 단계는,
상기 정규단계는,
상기 싱크노드가 주기적으로 비콘 패킷을 통하여 노드들에게 스케줄 패킷을 브로드캐스팅 형태로 방송하는 스케줄 방송단계;
상기 노드들은 상기 싱크노드로부터 상기 비콘 패킷을 수신하면 상기 스케줄 패킷에 대응하는 응답 패킷을 상기 싱크노드에게 유니캐스팅 방식으로 송신하는 제2 응답단계;
상기 싱크노드는 상기 노드들로부터 상기 응답 패킷을 수신하는 제2 수신단계;
상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화단계; 및
상기 싱크노드는 상기 응답패킷에 대응하는 노드의 스케줄을 계산하는 단계;를 포함하여 구성될 수 있다.
상기 스케줄 방송단계는,
싱크노드비콘(Sink node Beacon, SB)패킷을 생성하여 방송하는 단계;
네트워크 중지 플래그(FLAG_StopNet)가 트루인지의 여부를 판단하는 제3 판단단계;
상기 계산된 n번째 스케줄의 싱크노드비콘(SB)패킷을 방송하는 단계로 리턴하여 n번째 SB 패킷을 방송함으로써 네트워크를 계속 유지하는 단계;를 포함하여 구될 수 있다.
여기서, 는 왕복시간지연 정보의 존재 여부를 나타내는 변수를 나타내고, 네트워크 중지 플래그(FLAG_StopNet)는 네트워크 지속 여부를 결정하는 변수로써, 디폴트 값은 FALSE로 설정하고, 사용자 GUI에서 네트워크를 중단하는 버튼을 클릭하면 TRUE로 설정되도록 하여 종료되도록 구성됨.
n번째 사이클 스케줄을 계산하는 단계는
상기 방송단계 이후에, 상기 싱크노드는,
상기 싱크노드는 상기 노드로부터 패킷 수신을 대기하는 대기단계;
수신을 대기하여 패킷이 수신되면 응답패킷(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) 패킷)의 왕복시간지연은 다음의 수학식으로 구하도록 구성될 수 있다.
여기서, 값을 "1"로 설정하고, 는 패킷 수신 시각으로 설정하며, 는 IRQ 패킷 송신 시각을 나타내며, 는 IRQ 패킷 길이를 시간으로 환산한 값을 나타내고, 는 패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간을 나타냄.
상기 제2 왕복시간지연 계산 단계에서의 RIRP 패킷의 왕복시간지연은 다음의 수학식으로 구하도록 구성될 수 있다.
여기서, 값을 "1"로 설정하고, 는 패킷 수신 시각으로 설정하며, 는 RIRQ 패킷 송신 시각을 나타내고, 는 RIRQ 패킷 길이를 시간으로 환산한 값을 나타내고, Num_RB는 random backoff 윈도우의 개수를 나타내고, 는 random backoff 윈도우의 단위 시간을 나타냄.
상기 제3왕복시간지연 계산 단계에서의 SBR 패킷왕복시간지연은 다음의 수학식으로 구하도록 구성될 수 있다.
여기서, 값을 "1"로 설정하고, 는 패킷 수신 시각으로 설정하고, 는 -번째 사이클에서 의 스케쥴 정보를 나타내고, -번째 사이클에서 SB 패킷 송신 시각을 나타내며, 은 -번째 사이클에서 SB 패킷의 길이를 시간으로 환산한 값을 나타내고, 는 패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간을 나타냄.
상기 방송단계 이후에, 상기 노드들 중 소정의 노드는
상기 싱크노드로 패킷 수신이 이루어지면 패킷 수신 시간을 획득하는 단계;
수신된 패킷의 "Type" 필드가 IRQ이면, "CRC_IRQ" 필드를 확인해서 오류 발생 여부를 확인하는 제1 확인단계;
상기 제1 확인단계에서 판단하여 오류가 발생하지 않은 경우에는 패킷 수신 시각으로부터 시간 만큼 경과한 후에 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 패킷을 수신한 시각으로부터
시간 만큼 경과한 후에 SBR 패킷이 송신되도록 하는 단계;를 포함하여 구성되고,
따라서 본 발명의 수중 이동 네트워크 방법은 시간 차이만을 이용하여 스케줄링이 이루어지므로 시간 동기화가 불필요하고, 위치/속도 등과 같은 항법 정보를 필요로하지 않으며, 시간 동기화를 위한 별도의 패킷 교환이 불필요하여 시간 동기화가 필요한 기존의 방법에 비하여 네트워크 수율이 향상되는 효과가 있다.
도 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는 본 발명의 일 실시예에 따라 상기 방송단계 이후에, 상기 노드들 중 소정의 노드에서의 패킷 송수신 과정을 나타낸 순서도.
도 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"으로 설정하고 유효한 왕복시간지연 정보의 존재 여부를 나타내는 변수인 는 0으로 설정한다. 여기서, 유효한 왕복시간지연 정보의 존재 여부를 나타내는 변수인 는, 유효한 왕복시간지연 정보가 최초에는 모든 에 대해서 없으므로, 으로 한다. 한편, 다음의 표 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 | ○ |
싱크 노드를 제외한 총 노드 수 | 4 | ○ | |
-번째로 RTT가 작은 노드 | |||
의 RTT 유효성 여부 | |||
IRQ 패킷 송신 시각 | |||
예상되는 최초 초기화 소요 시간 | TBD | ○ | |
싱크 노드와 노드간 최대 RTT | |||
IRQ 패킷 길이를 시간으로 환산한 값 | |||
IRP 패킷 길이를 시간으로 환산한 값 | |||
RIRQ 패킷 길이를 시간으로 환산한 값 | |||
RIRP 패킷 길이를 시간으로 환산한 값 | |||
패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간 | TBD | ○ | |
모뎀의 통신 반경 | TBD | ○ | |
음파 전달 속도의 최솟값 | 1,450m/s | ○ | |
RIRQ 패킷 송신 시각 | |||
예상되는 재초기화 소요 시간 | TBD | ○ | |
-번째 사이클에서 의 RTT | |||
-번째 사이클에서 의 SBR 패킷 수신 시각 | |||
-번째 사이클에서 SB 패킷 송신 시각 | |||
의 IRP 또는 RIRP 패킷 수신 시각 | |||
초기화에서 얻어진 의 RTT | |||
-번째 사이클에서 의 스케줄 정보 | |||
-번째 사이클에서 의 SBR 패킷 수신 시각의 최대값 | |||
-번째 사이클에서 의 SBR 패킷 수신 시각의 최솟값 | |||
-번째 사이클에서 SB 패킷의 길이를 시간으로 환산한 값 | |||
싱크 노드와 노드간 최대 상대 속도 | 3 m/s | ○ | |
최초 사이클에서 의 RTT 최대 변동폭 | |||
-번째 사이클에서 의 SBR 패킷 길이를 시간으로 환산한 값 | |||
-번째 사이클의 지속 시간 | |||
최초 사이클을 제외한 사이클에서 노드들의 RTT 최대 변동폭 | |||
random backoff 윈도우의 단위 시간 | ○ | ||
Wait_Time의 양자화 단위 시간 | 10ms | ○ | |
유효한 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 패킷이 방송되기 시작하는 시각 을 (싱크 노드의 로컬 클럭 기준으로) 알 수 있어야 하고, 싱크 노드는 이 시각 정보를 저장하고 있어야 한다.
도 5는 본 발명의 일 실시예에 따른 도 3의 제1 응답단계를 나타낸 순서도이다.
도 5를 참조하면, S502단계에서 상기 IRQ 패킷 방송 후에, 설정된 대기시간( 시간) 동안 노드들로부터 응답패킷(IRP(Initialization ResPonse) 패킷)을 수신한다. 다음의 시간을 구하는 식은 다음의 수학식 1로 나타낼 수 있다.
여기서, 모뎀의 최대 통신 반경을 이라고 하고, 음파의 최소 전달 속도를 라고 하면, 싱크 노드는 IRQ 패킷 방송 후에 시간 이내에 모든 노드들로부터 초기화 응답 패킷 수신이 완료된다. 는 싱크 노드와 노드간 왕복시간지연의 최대값으로서, 다음의 수학식 2로 계산될 수 있다.
한편, 와 는 각각 IRQ 패킷 길이와 IRP 패킷 길이를 시간으로 환산한 값이다. 와 는 물리 계층에서 다양하게 패킷 길이를 수용할 수 있다면 최소화될 수 있으나, 변동성에 한계가 있으므로 이에 대한 고려가 필요하다. 는 노드가 초기화 패킷 수신 완료 후에 초기화 응답 패킷을 송신 시작하기까지 소요되는 시간으로서, 시스템에서 발생하는 각종 시간 지연, 송신/수신 스위칭 시간 등을 포함한다. 는 통계적으로 확률 변수로 표현할 수 있지만, 어느 값 이하로 작다는 것을 경험적으로 알 수 있다. 따라서 GUI 환경에서 값을 입력할 수 있도록 환경 변수로 인식하도록 한다. 그리고, 싱크 노드 이외의 모든 노드들은 시간 지연을 부여할 때 반드시 대기 후에 추가적인 시간 지연을 부여하도록 한다. 싱크 노드는 IRP 패킷을 수신하면 해당 노드에 대한 왕복시간지연을 계산하며 이것은 패킷 수신 처리 절차에서 자세하게 설명하기로 한다.
S504단계에서 설정된 대기시간()이 경과하면, 싱크노드(10)는 초기화에 실패한 노드 수(Num_IFN (Number of Initialization Fail Node))를 다음의 수학식 3으로 계산한다. 여기서 는 총 노드 수이다. 의 디폴트 값은 "5"이다.
여기서, K는 싱크 노드를 제외한 총 노드 수를 나타내고, 는 (-번째로 왕복시간지연(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 패킷이 방송되기 시작하는 시각 를 (싱크 노드의 로컬 클럭 기준으로) 알 수 있어야 하고, 싱크 노드는 이 시각 정보를 저장하고 있어야 한다. Max_RIN, Max_Init은 사용자 GUI에서 설정 가능하도록 한다. Max_RIN, Max_Init의 디폴트 값은 각각 "5", "2"로 설정 한다.
싱크노드(10)는 (IRQ 송신 및 IRP 수신의 경우와 마찬가지로), RIRQ 방송 후에 아래와 같이 하기의 수학식에 의해 계산된 시간 이내에 모든 노드들로부터 RIRP(Re-Initialization ResPonse) 패킷 수신이 완료된다. 즉, 싱크노드(10)는 상기 IRQ 패킷 방송 후에, 설정된 대기시간( 시간) 동안 노드들로부터 응답패킷(IRP(Initialization ResPonse) 패킷)을 수신한다.
RIRQ 패킷에는 초기화에 성공하지 못한 노드들, 즉, 인 노드들의 ID를 페이로드(pay load)의 "List_ID" 필드에 포함하도록 한다. 페이로드의 "Num_Node" 필드는 계산된 Num_IFN으로 한다.
수학식 3의 계산이 완료되면, 초기화 완료 여부를 판단하는 절차에 다시 진입한다. 즉, 초기화 과정이 완료되었으면, 즉, FLAG_FinInit이 TRUE라면, 스케줄 계산 절차에 진입한다. 또한, 초기화 과정이 완료되지 않았더라도, Num_IFN ≥ Max_RIN 또는 Num_Init ≥ Max_Init 경우에는, 재초기화 과정에 진입하지 않고 초기 스케줄 계산 절차에 진입한다.
S506단계에서 싱크노드(10)가 초기스케줄을 계산한다.
도 6은 본 발명의 일 실시예에 따른 스케줄링하기 위한 상기 싱크노드와 상기 노드들 간의 왕복시간지연(Round-trip time delay, RTT) 정보를 획득하는 초기화단계를 나타낸 순서도이다.
S604단계에서 상기 추출된 가 "1"인 노드들에 대해서 왕복시간지연이 작은 순으로 노드(20)들을 정렬한다. 이때, 와 노드 ID의 순서가 일치하지 않음에 유의해야 한다. 또한, 와 노드 ID간 매치가 매 사이클 마다 변화됨에 유의해야 한다.
총 개의 노드에 대해서, 왕복시간지연이 -번째로 작은 노드를 "k-번째 노드" 로 표시한다. 채널 사용 효율 측면에서, 이와 같이 왕복 지연 시간이 작은 노드부터 우선적으로 서비스 하는 것이 최적이다. 특히 모뎀의 통신 반경 이 커질수록 최적의 서비스 순서를 적용한 경우와 그렇지 않은 경우의 차이가 커진다. 하지만, 통신 거리가 수백 미터 내외인 근거리 고속 네트워크 경우에는 모뎀 통신 반경이 매우 작으므로 성능에 큰 영향을 주지 않는다. 따라서 ID와 를 일치시키고 매 사이클 변동시키지 말고 고정해도 무방하다.
의 왕복시간지연을 라고 표시한다. 첫 번째 아래 첨자 는 의 아래 첨자에서 가져온 것이고, 두 번째 첨자 "0"은 초기화 과정을 0번째 사이클로 표현한 것이다. 가 획득된 시각을 라고 표시한다. 는 가 획득된 시간으로서, 초기화 또는 재초기화 과정에서 싱크노드(10)가 의 IRP/RIRP 패킷을 수신한 시각인 또는 값이다.
초기화/재초기화 과정에서 왕복시간지연을 획득하지 못한 노드들, 즉, 가 "0"인 노드(20)들은 가 1인 노드들 다음에 ID 순으로 정렬해서, 총 개의 노드(20)들이 정렬되도록 한다. 초기화 과정을 시행하지 않는 경우에는 모든 노드(20)들에 대해서 가 "0"이고, 따라서 총 개의 노드들은 ID 순으로 정렬이 된다. 싱크노드(10)가 최초로 SB 패킷을 방송하는 시각을 로 표시한다. 즉, 시각에 싱크 노드는 최초의 SB 패킷을 방송한다.
S610단계에서 상기 싱크노드는 위와 같이 정렬된 노드 순으로 스케줄을 계산한다. 싱크 노드는 위와 같이 정렬된 노드 순으로 스케줄을 계산한다. 여기에서 의 스케줄이라 함은, 가 SB 패킷을 수신한 후에 데이터 패킷을 송신하기까지 대기하는 시간으로서, 이와 같은 의 대기 시간을 으로 표시한다.
그러면, 의 데이터 패킷이 싱크 노드에 수신되기 시작하는 시각이 가질 수 있는 이론적인 최대값 은 값에 따라서 계산이 달라진다. 먼저, 인 경우에는 다음의 수학식 5로 나타낼 수 있다.
위와 같이 계산하는 방법은, 의 RTT 획득 시점부터, 이 SB 패킷 수신 후에 데이터 패킷을 송신할 때까지 의 이동성으로 인해서 발생하는의 왕복시간지연의 최대 변동폭을 고려하는 방법이다. 여기에서 는 SB 패킷의 길이를 시간으로 환산한 값이다. 의 RTT가 획득된 시점은 이므로 의 RTT가 결정된 시점은 이고, 은 시각 이전에는 SB 패킷을 반드시 수신한다. 따라서, 의 RTT 결정 시점부터 이 데이터 패킷을 전송하기 시작하는 시점까지 이 싱크 노드와 최대 상대 속력 로 멀어질 때 왕복시간지연은 최대로 증가하게 되는데, 이것이 으로 표현되고 있다. 표현의 간략화를 위하여, 왕복시간지연(1-번째 사이클에서 의 RTT)을 다음의 수학식 6으로 나타낼 수 있다. 여기서, 의 디폴트 값은 3 m/s 이다.
여기에서 는 A와 B 중에서 더 작은 것을 선택하는 함수이다. 한편, 인 경우에는, 의 RTT 값을 알 수 없는 상태에서 가장 보수적으로 값을 정해야 하는데, 값을 가질 수 있는 최대 값인 로 설정하면 된다. 따라서, 인 경우에 값은 다음의 수학식 8로 정할 수 있다.
즉, 시각 이전에 싱크 노드는 의 데이터 패킷 수신이 완료된다. 여기에서, 는 최초 사이클에서 의 데이터 패킷 길이를 시간으로 환산한 것이다. 는 의 데이터 패킷이 싱크 노드에 도착하는 시각의 최대 값이다. 따라서 의 데이터 패킷이 싱크 노드에 가장 빠르게 수신되는 경우에도 의 데이터 패킷이 싱크 노드에서 수신 완료된 후에 의 데이터 패킷 수신이 시작되도록 에게 대기 시간을 부여하는 것이 싱크 노드에서 노드들의 데이터 패킷 수신 충돌을 회피하는 핵심 아이디어이다. 의 데이터 패킷이 싱크 노드에 가장 빠르게 수신이 시작되는 경우는, 가 싱크 노드가 움직이는 방향과 정확히 반대 방향으로 최대 속도로 움직이는 경우인데, 즉, 와 싱크 노드가 최대 상대 속도로 가까워 질 때이다. 이 때 가 SB 패킷 수신 후에 시간 지연 없이 바로 데이터 패킷을 송신하는 경우가 싱크 노드에서 의 데이터 패킷이 이론적으로 가장 빠르게 수신된다. 이와 같이 의 데이터 패킷이 싱크 노드에서 가장 빠르게 수신될 수 있는 시각 은, 인 경우에는, 다음의 수학식 10과 같이 계산된다.
여기에서 는 A와 B 중에서 더 큰 것을 선택하는 함수이다. 한편, 인 경우에는, 의 RTT 값을 알 수 없는 상태에서 가장 보수적으로 값을 정해야 하는데, 값을 가질 수 있는 최소 값인 "0"으로 하면 된다. 따라서, 인 경우에 값은 다음의 수학식 12와 같이 정한다.
은 의 데이터 패킷이 싱크 노드에 도착하는 시각의 최소값이다. 따라서, 다음과 같이 에게 시간 지연을 부여하여 스케줄을 정하면 싱크노드(10)에서 의 데이터 패킷과의 수신 충돌을 피할 수가 있다.
이와 같은 초기 스케줄 계산 방법을 Pseudo-Code로 표현하면 다음과 같다.
초기 스케줄 계산에서의 Pseudo-code(Pseudo-code for the initial schedule computation)
nodes that have are sorted in ascending order of round-trip-time, and subsequently, nodes that have are sorted in ascending order of ID;
ELSE
END
ELSE
END
END
위 PSEUDO-CODE에서 첫 번째 IF-ELSE-END 와 두 번째 IF-ELSE-END 는 순서가 바뀌어도 무방하다.
한편, 전술한 PSEUDO-CODE에서 와 값에 공통적으로 들어가 있는 값은 인데, 을 계산하는 과정은 와 의 차이에 기반하므로, 공통된 은 삭제해도 무방하다. 이 때의 간략화된 Pseudo-code는 다음과 같다.
COMPACT Pseudo-code for the initial schedule computation
nodes that have are sorted in ascending order of round-trip-time, and subsequently, nodes that have are sorted in ascending order of ID;
ELSE
END
ELSE
END
END
위 PSEUDO-CODE에서 첫 번째 IF-ELSE-END 와 두 번째 IF-ELSE-END 는 순서가 바뀌어도 무방하다
도 7은 본 발명의 일 실시예에 따른 도 2의 정규단계를 나타나내 순서도이다.
즉, 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" 필드는 스케줄링 정보가 포함되는 노드의 수로서, 총 노드 수인 로 한다. "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로 나타낼 수 있다.
여기에서, 는 보다 크거나 같은 정수 중에서 가장 작은 정수를 의미한다 (ceil operation). 은 사용자 운용 GUI에서 설정 가능하도록 하며, 디폴트 값은 10ms로 한다. 은 최적화가 필요한 파라미터이다. 특히, 데이터 전송속도(data rate)가 낮은 장거리 네트워크의 경우에는 중요할 수 있다. Wait_Time의 허용 범위도 고려되어야 한다. 하지만, 통신 거리가 수백 미터 내외인 근거리 고속 네트워크에서는 데이터 전송 속도가 빠르기 때문에 큰 영향을 주지는 않는다.
도 9는 도 9는 본 발명의 일 실시예에 따른 시간축 상에서 사이클 단위의 스케줄링 개념을 나타낸 도면이다.
도 9를 참조하면, 정규 과정은 싸이클 단위로 반복된다.
한편, S902단계에서 싱크 노드가 -번째 SB 패킷을 방송한다. 그리고, -번째 사이클이란, 노드들로부터 데이터 패킷 수신이 완료되는 순간까지, 즉, 싱크 노드가 -번째 SB 패킷을 방송하기 직전까지를 의미한다. -번째 사이클 지속 시간을 이라고 표시한다.
-번째 사이클에서 -번째 SB 패킷 방송 후에 시간 동안 노드들로부터 SBR 패킷을 수신하고, -번째 사이클 종료 시점에 FLAG_StopNet이 FALSE이면 -번째 사이클의 스케쥴을 계산하고 -번째 SB 패킷을 방송함으로써 네트워크를 계속 유지한다. FLAG_StopNet은 네트워크 지속 여부를 결정하는 변수로써, 디폴트 값은 FALSE이고, 사용자 GUI에서 네트워크를 중단하는 버튼을 클릭하면 TRUE로 설정되도록 한다.
S808단계에서 네트워크 중지 플래그(FLAG_StopNet)가 트루인지의 여부를 판단한다.
여기서, -번째 사이클의 종료 시점이라 하면, 로부터 SBR 패킷이 수신 완료되거나 -번째 SB 패킷 방송 후에 시각이 경과한 경우를 의미한다. 즉, 은 시각부터 의 SBR 패킷이 수신 완료되거나 시각 까지의 시간을 의미한다.
S808단계에서 판단하여 사이클 종료 시점에 네트워크 중지 플래그(FLAG_StopNet)가 false이면, 즉, 네트워크 중지 플래그가 FALSE이면 번째 사이클의 스케줄을 계산한다(S810단계). S808단계에서 판단하여 사이클 종료 시점에 네트워크 중지 플래그(FLAG_StopNet)가 진실이면 종료한다.
상기 계산된 n번째 스케줄의 SB패킷을 방송하는 단계로 리턴(S702단계) 하여 n번째 SB 패킷을 방송함으로써 네트워크를 계속 유지한다. 즉, -번째 SB 패킷을 방송함으로써 네트워크를 계속 유지한다. FLAG_StopNet은 네트워크 지속 여부를 결정하는 변수로써, 디폴트 값은 FALSE이고, 사용자 GUI에서 네트워크를 중단하는 버튼을 클릭하면 TRUE로 설정되도록 한다.
도 10은 본 발명의 일 실시예에 따른 도 7에서의 n번째 사이클 스케줄을 계산하는 단계를 나타낸 순서도이다.
도 10을 참조하면, S902단계에서 n번째 데이터패킷()에 대한 왕복시간지연()을 구한다. 여기서, -번째 사이클에서 SB 패킷이 방송되는 시각을 으로 표기한다. -번째 사이클에서 의 데이터 패킷이 수신되기 시작하는 시각을 으로 표기한다. -번째 사이클에서 에게 부여되는 스케쥴링 정보인 대기 시간을 으로 표기한다. 그러면, -번째 사이클이 종료되면 의 왕복시간지연 은 다음의 수학식 16과 같이 얻어진다.
여기에서 은 -번째 사이클에서 SB 패킷의 길이를 시간으로 환산한 값이다. 일반적으로 사이클마다 값이 달라지지는 않겠지만, 달라질 수 있는 경우에 대비하기 위해서 이와 같이 정의한다. 값은 항상 일정하게 정해지는 것이 아니라, 통계적인 특성을 가지는 확률 변수로 표현하는 것이 정확하겠으나, 어느 시간 이내에는 수신에서 송신으로 전환될 수 있다는 것은 알 수 있으므로, 이런 값들을 사용하면 된다. 즉, 경험적으로 적당히 큰 값을 사용하고, 대기 시간을 부여할 때 적어도 이상의 시간이 지난 후에 만큼 추가적으로 대기 시간이 부여되도록 각 노드에서 제어하면 된다.
S904단계에서 번째 사이클이 종료되면, 가 "1"인 노드들에 대해서 왕복시간지연이 작은 순으로 노드들을 정렬한다. 즉, -개의 모든 노드들로부터 SBR 패킷을 수신 완료하였거나, 수신 완료 예상 시각이 되면, 초기 스케쥴 계산과 마찬가지로, 먼저, 가 "1"인 노드들에 대해서 왕복시간지연이 작은 순으로 노드들을 정렬한다. 가 "0"인 노드들은 가 1인 노드들 다음에 ID 순으로 정렬해서, 총 개의 노드들이 정렬되도록 한다.
S906단계에서 한 사이클 동안 변화할 수 있는 노드의 왕복시간지연의 변동폭 를 구한다. 싱크 노드가 스케쥴을 정하는 가장 기본 원칙은, 싱크 노드에 노드들의 SBR 패킷이 패킷 트레인 형태로 수신되도록 하여 유휴 시간을 최소화하되, 이동성을 고려하여 충돌이 발생하지 않도록 하는 것이다.
도 11은 본 발명의 일 실시예에 따른 시간축 상에서 n-번째 사이클에서 각 노드의 대기 시간을 도출하는 원리에 대한 개념도이다.
도 11을 참조하면, 싱크노드비콘(SB) 패킷 수신 후에 바로 SBR 패킷을 송신하더라도 충돌이 발생하지 않으면, 대기 시간 없이 바로 송신하고, 충돌이 발생할 것으로 예측되면, 충돌이 발생하지 않을 만큼의 대기 시간을 부여하도록 한다.
즉, 싱크노드(10)는 -번째 사이클의 SB 패킷 송신 시각 및 각 노드(20)들로부터의 SBR 패킷 수신 시각을 이용하여 싱크노드(10)와 각 노드(20) 간 왕복시간지연 값을 얻을 수 있지만, -번째 사이클에서 각 노드가 데이터 패킷을 송신하는 시점에서의 싱크노드(10)와 각 노드(20) 간 왕복시간지연은 노드의 이동성으로 인하여 정확하게 알 수 없다. 또한, -번째 사이클 종료 시점에서 -번째 사이클에서 각 노드의 SBR 패킷의 수신 시각을 정확하게 알 수 없다. -번째 사이클 종료 시점에, 모든 노드들에 대해서 -번째 사이클에서 획득한 왕복시간지연 정보가, -번째 사이클에서 각 노드의 SBR 패킷이 수신될 때까지 얼마 만큼의 변동폭을 가질지 정확하게 알 수 없으므로, 변동폭을 근사적으로 추정하여 사용한다. 그 변동폭 추정 결과가 전술한 이다. 이와 같이 추정한 근거는, -번째 사이클에서 의 SBR 패킷이 수신된 시각 과 -번째 사이클에서 의 SBR 패킷이 수신되는 시각 의 차이를 다음과 같이 SB 패킷이 송신되는 시각의 차이로 다음의 수학식 18와 같이 근사하는 것이다.
따라서, 의 SBR 패킷이 싱크 노드에 도착하는 시각의 이론적인 최소 값인 에 대기 시간 을 부여한 이 (스케쥴 계산이 완료된) 의 SBR 패킷이 싱크 노드에서 수신 완료 되는 시각의 이론적인 최대 값인 보다 크도록 하여, 의 SBR 패킷과 의 SBR 패킷이 싱크 노드에서 수신 충돌이 발생하지 않도록 한다.
정규과정을 Pseudo code로 정리하면 다음과 같다
nodes that have are sorted in ascending order of round-trip-time, and subsequently, nodes that have are sorted in ascending order of ID;
ELSE
END
ELSE
END
END
위 PSEUDO-CODE에서 첫 번째 IF-ELSE-END 와 두 번째 IF-ELSE-END 는 순서가 바뀌어도 무방하다.
앞의 정규과정에 대한 Pseudo-code를 보면 와 값에 공통적으로 을 포함하고 있는데, 을 계산하는 과정은 와 의 차이에 기반하므로, 공통된 은 삭제해도 무방하다. 이 때의 간략화된 Pseudo-code는 다음과 같다.
nodes that have are sorted in ascending order of round-trip-time, and subsequently, nodes that have are sorted in ascending order of ID;
ELSE
END
ELSE
END
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으로 구한다.
여기서, 값을 "1"로 설정하고, 는 패킷 수신 시각으로 설정하며, 는 IRQ 패킷 송신 시각을 나타내며, 는 IRQ 패킷 길이를 시간으로 환산한 값을 나타내고, 는 패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간을 나타낸다.
S1014단계에서 수신된 패킷이 RIRP패킷인지의 여부를 판단한다.
수신된 패킷이 RIRP패킷인 경우, S1016단계에서 수신된 RIRP 패킷의 CRC를 체크한다.
S1016단계에서 상기 RIRP 패킷의 CRC 체크 결과 오류가 발생하지 않은 경우에는 RIRP패킷의 왕복시간지연을 계산하고(S1018단계) 대기단계로 리턴한다.
S1018단계에서의 RIRP 패킷의 왕복시간지연은 다음의 수학식 21로 구한다.
여기서, 는 패킷 수신 시각으로 설정하며, 는 RIRQ 패킷 송신 시각을 나타내고, 는 RIRQ 패킷 길이를 시간으로 환산한 값을 나타내고, NUM_RB는 random backoff 윈도우의 개수를 나타내고, 는 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단계에서 판단하여 오류가 발생하지 않은 경우에는 패킷 수신 시각으로부터 시간 만큼 경과한 후에 IRP 패킷이 송신되도록 한 후에 패킷 수신 대기 상태로 리턴한다(S1110단계).
S1112단계에서 수신된 패킷의 "Type" 필드가 RIRQ인지의 여부를 판단한다.
S1112단계에서 판단하여 수신된 패킷이 RIRQ 패킷이면, "CRC_RIRQ" 필드를 확인해서 오류 발생 여부를 확인한다(S1114단계).
상기 S1114단계에서 오류가 발생하지 않은 것으로 판단되면 나의 ID가 "Pay Load" 필드의 "List_ID"에 포함되어 있는 경우에는 RIRP 패킷을 생성하여 송신한다.
이 때, 0부터 31 사이의 정수 값을 가지는 임의의 random backoff 양을 결정하고 해당 값을 "Num_RB" 필드로 하는 RIRP 패킷을 패킷 수신 시각으로부터 시간 만큼 경과한 후에 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 패킷을 수신한 시각으로부터
시간 만큼 경과한 후에 SBR 패킷이 송신되도록 한다.
상기 본 발명의 내용은 도면에 도식된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 싱크노드 20 : 노드
Claims (14)
- 싱크노드와 노드 간 수중 통신에 있어서 네트워크가 시작되는 최초 시점에 싱크노드와 노드들간 수중 통신 네트워크를 스케줄링하기 위한 상기 싱크노드와 상기 노드들 간의 왕복시간지연(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"으로 설정하고 유효한 왕복시간지연 정보의 존재 여부를 나타내는 변수인 는 0으로 설정하는 단계;
초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartInit)가 TRUE로 설정되어 있는 지의 여부를 판단하는 제1 판단단계;
상기 제1 판단단계에서 판단하여 초기화 실행 여부를 결정할 수 있는 플래그(FLAG_StartInit)가 TRUE로 설정되어 있는 경우 상기 스케줄 패킷(IRQ(Initialization ReQuest) 패킷)을 다수의 노드에 대하여 방송하는 단계;를 포함하는 것인 수중 이동 네트워크 방법.
- 삭제
- 제1항에 있어서,
싱크노드에게 응답패킷(IRP(Initialization ResPonse) 패킷)을 송신하는 제1 응답단계는,
상기 스케줄 패킷(IRQ(Initialization ReQuest) 패킷) 방송 후에, 설정된 대기시간( 시간) 동안 노드들로부터 응답패킷(IRP(Initialization ResPonse) 패킷)을 수신하는 단계;
상기 설정된 대기시간()이 경과하면, 싱크노드는 초기화에 실패한 노드 수(Num_IFN (Number of Initializatin Fail Node))를 계산하는 단계;
상기 싱크노드가 초기스케줄을 계산하는 초기스케줄 계산단계;를 포함하는 것인 수중 이동 네트워크 방법. - 제3항에 있어서, 상기 설정된 대기시간()은 다음의 수학식으로 구하도록 구성되는 것인 수중 이동 네트워크 방법.
여기서, 모뎀의 최대 통신 반경을 이라고 하고, 음파의 최소 전달 속도를 라고 하며, 싱크노드는 상기 스케줄 패킷(IRQ(Initialization ReQuest) 패킷) 방송 후에 시간 이내에 모든 노드들로부터 초기화 응답패킷(IRP(Initialization ResPonse) 패킷) 수신이 완료되는 것으로 가정되며, 는 싱크노드와 노드간 왕복시간지연의 최대값으로서, 다음의 수학식으로 계산되고, 와 는 각각 스케줄 패킷(IRQ(Initialization ReQuest) 패킷) 길이와 응답패킷(IRP(Initialization ResPonse) 패킷) 길이를 시간으로 환산한 값은 나타냄.
- 제6항에 있어서, 상기 노드 순으로 스케줄을 계산하는 단계는,
n번째 데이터패킷()에 대한 왕복시간지연()을 구하는 단계;
왕복시간지연()을 획득하지 못한 노드들은, 즉, 가 "0"인 노드들은 가 1인 노드들 다음에 ID 순으로 정렬해서, 총 개의 노드들이 정렬되도록 하는 단계;
은 SB 패킷을 수신하자마자 대기 시간 없이 바로 데이터 패킷을 송신하는 단계;
의 데이터 패킷이 싱크 노드에 수신되기 시작하는 시각이 가질 수 있는 이론적인 최대값 을 계산하는 단계;
의 데이터 패킷이 싱크 노드에서 가장 빠르게 수신될 수 있는 시각 을 계산하는 단계; 및
은, 인 경우에는, 의 스케줄 이 계산될 때까지 회귀적으로 의 스케줄 을 계산하는 단계;를 포함하는 수중 이동 네트워크 방법. - 제1항에 있어서, 상기 스케줄 방송단계는,
싱크노드비콘(Sink node Beacon, SB) 패킷을 생성하여 방송하는 단계;
모든 에 대해서 으로 설정하는 단계;
네트워크 중지 플래그(FLAG_StopNet)가 트루인지의 여부를 판단하는 제3 판단단계;
상기 제3 판단단계에서 판단하여 사이클 종료 시점에 네트워크 중지 플래그(FLAG_StopNet)가 false이면 번째 사이클의 스케줄을 계산하는 단계; 및
상기 계산된 n번째 스케줄의 SB패킷을 방송하는 단계로 리턴하여 n번째 SB 패킷을 방송함으로써 네트워크를 계속 유지하는 단계;를 포함하여 구성된다.
여기서, 네트워크 중지 플래그(FLAG_StopNet)는 네트워크 지속 여부를 결정하는 변수로써, 디폴트 값은 FALSE로 설정하고, 사용자 GUI에서 네트워크를 중단하는 버튼을 클릭하면 TRUE로 설정되도록 하여 종료되도록 구성되는 것인 수중 이동 네트워크 방법. - 제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 왕복시간지연 계산 단계;를 포함하는 것인 수중 이동 네트워크 방법. - 제10항에 있어서,
상기 제1 왕복시간지연 계산 단계에서의 응답패킷(IRP(Initialization ResPonse) 패킷)의 왕복시간지연은 다음의 수학식으로 구하는 것인 수중 이동 네트워크 방법.
여기서, 값을 "1"로 설정하고, 는 패킷 수신 시각으로 설정하며, 는 스케줄 패킷(IRQ(Initialization ReQuest) 패킷) 송신 시각을 나타내며, 는 스케줄 패킷(IRQ(Initialization ReQuest) 패킷) 길이를 시간으로 환산한 값을 나타내고, 는 패킷 수신 완료 후 패킷 송신 시작까지 소요되는 시간을 나타냄. - 제1항에 있어서, 상기 스케줄 방송단계 이후에, 상기 노드들 중 소정의 노드는
상기 싱크노드로 패킷 수신이 이루어지면 패킷 수신 시간을 획득하는 단계;
수신된 패킷의 "Type" 필드가 스케줄 패킷(IRQ(Initialization ReQuest) 패킷)이면, "CRC_IRQ" 필드를 확인해서 오류 발생 여부를 확인하는 제1 확인단계;
상기 제1 확인단계에서 판단하여 오류가 발생하지 않은 경우에는 패킷 수신 시각으로부터 시간 만큼 경과한 후에 응답패킷(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 패킷을 수신한 시각으로부터
시간 만큼 경과한 후에 SBR 패킷이 송신되도록 하는 단계;를 포함하여 구성되고,
상기 송신하는 단계에서, 0부터 31 사이의 정수 값을 가지는 임의의 random backoff 양을 결정하고 해당 값을 "Num_RB" 필드로 하는 RIRP 패킷을 패킷 수신 시각으로부터 시간 만큼 경과한 후에 RIRP 패킷이 송신되도록 하고, RIRP 패킷 송신이 완료되면 패킷 수신 대기 상태로 돌아가도록 하는 것인 수중 이동 네트워크 방법.
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)
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 | 삼성전자주식회사 | 거리 측정 방법 및 그 전자 장치 |
-
2018
- 2018-07-25 KR KR1020180086861A patent/KR102067527B1/ko active IP Right Grant
Patent Citations (3)
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 |