KR101593504B1 - 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 - Google Patents

수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 Download PDF

Info

Publication number
KR101593504B1
KR101593504B1 KR1020150107519A KR20150107519A KR101593504B1 KR 101593504 B1 KR101593504 B1 KR 101593504B1 KR 1020150107519 A KR1020150107519 A KR 1020150107519A KR 20150107519 A KR20150107519 A KR 20150107519A KR 101593504 B1 KR101593504 B1 KR 101593504B1
Authority
KR
South Korea
Prior art keywords
packet
beacon
received
time
response
Prior art date
Application number
KR1020150107519A
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 KR1020150107519A priority Critical patent/KR101593504B1/ko
Application granted granted Critical
Publication of KR101593504B1 publication Critical patent/KR101593504B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0641Change of the master or reference, e.g. take-over or failure of the master
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0652Synchronisation among time division multiple access [TDMA] nodes, e.g. time triggered protocol [TTP]
    • H04J3/0655Synchronisation among time division multiple access [TDMA] nodes, e.g. time triggered protocol [TTP] using timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/16Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
    • H04J3/1605Fixed allocated frame structures
    • H04J3/1611Synchronous digital hierarchy [SDH] or SONET
    • H04J3/1617Synchronous digital hierarchy [SDH] or SONET carrying packets or ATM cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/16Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
    • H04J3/1694Allocation of channels in TDM/TDMA networks, e.g. distributed multiplexers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Landscapes

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

Abstract

본 발명은 본 발명에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜은 (A) 모선이 초기 통신경로를 설정하는 초기 스테이지; (B) 상기 통신경로를 통해 상기 모선과 다수의 클러스터 헤드가 통신을 수행하는 정상 스테이지; 및 (C) 상기 모선과 상기 다수의 클러스터 헤드가 통신을 종료하는 종료 스테이지를 포함하며, 상기 통신은 시간분할다중접속(TDMA) 방식으로 패킷을 일괄전송하기 위한 패킷 트레인 형식의 패킷을 송수신하고, 상기 패킷 트레인 형식의 패킷 수신은 (D) 패킷 트레인 리드 알고리즘에 의해 큐로부터 패킷을 수신하여 수신된 패킷의 에러가 있는지 여부에 따라 헤더 및 RX 상태 테이블을 체크하고, 중복 여부에 따라 상기 수신된 패킷의 수 및 패킷 로스의 회수를 초기화하며, 중간에 새로운 시작 패킷이 수신되었는지 여부에 따라 상기 수신된 패킷의 수가 조각된 패킷의 총 개수인지 여부를 판단하는 단계; 및 (E) 상기 패킷 트레인 리드 알고리즘으로 생성된 패킷 트레인을 수신하여 응답 신호가 비콘 신호의 Seq 값과 동일한지 여부 및 업링크 데이터인지 여부에 따라 상기 RX 상태 테이블 업데이트의 여부 및 상위 계층으로의 전송 여부가 결정되는 단계;를 포함한다.

Description

수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜{A datalink layer Reception Protocol for long range underwater networks}
본 발명은 수중 데이터 링크 수신 프로토콜에 관한 것으로, 특히 모선과 클러스터 헤더가 패킷 트레인 형식의 신호로 서로 송수신하여 통신 효율을 높이고, 수중의 열악한 통신 환경에 효율적으로 동작하도록 매체접속제어, 시간 동기, 라우팅 등의 다양한 알고리즘에 공통적으로 적용할 수 있는 패킷 트레인 수신 알고리즘을 이용한 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 에 관한 것이다.
오늘날은 광대한 해양이 지니고 있는 자원, 에너지, 공간을 활용하는 것이 인류에게 꼭 필요한 일이라는 인식이 확대되고 있다.
수중에도 다양한 노드(node)들이 존재할 수 있다. 본 명세서에서, 노드란 통신 가능한 물체를 의미한다. 이러한 노드는 AUV(Automatic Underwater Vehicle), 잠수함, 다이버와 같은 이동 가능한 대상에 구현될 수도 있고 고정적인 대상에 구현될 수도 있다.
수중 환경은 지상 환경에 비해 통신 환경이 매우 척박하다. 신호의 전송속도는 매우 느리며, 사용 가능한 채널의 개수도 매우 한정적이고 사용 가능한 대역폭도 매우 좁다. 이러한 척박한 수중 환경에도 불구하고, 다양한 형태의 수중 통신에 대한 요구는 급증하고 있는 실정이다.
본 발명과 관련된 선행기술문헌으로는 대한민국 등록특허 제10-1090402호가 있으며, 상기 선행기술문헌에는 수면에 위치하는 중간 기지국들이 수중 노드들로부터 전송되는 데이터를 시간을 분할하여 할당받은 시간 동안 육상 기지국에 전송하는 접속 방식인 TDMA1과, 수중 노드들이 시간을 분할하여 할당받은 시간 동안 자신을 제어하는 육상 기지국에 데이터를 전송하는 접속 방식인 TDMA2로 구성되어, 수중 노드들의 이동성을 파악하고 중간 기지국들이 서로 공유함으로써 TDMA가 가지고 있는 이동성의 제약을 극복하는 한편 유휴한(ilde) 타임 슬롯의 개수를 줄여 채널 이용률을 높이는 것을 특징으로 하는, 수중 음향 네트워크를 위한 계층적 시간 분할 다중접속 방법을 제안하고 있다.
그러나 수중 장거리 네트워크의 특징을 고려한다면 선행기술문헌은 데이터의 포화상태로 인한 수율이 저하된다는 문제점을 여전히 극복하지 못하고 있다.
또한, 선행문헌은 수중 환경에서는 긴 전파지연 시간으로 인해 수중 노드들이 데이터를 동시에 수신하는 경우 충돌이 발생하여 데이터의 손실이 발생하거나 훼손된다는 문제점 또한 여전히 극복하지 못하고 있다.
KR 10-1090402 B
본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서 수중의 열악한 통신 환경에 효율적으로 동작하도록 매체접속제어, 시간 동기, 라우팅 등의 다양한 알고리즘에 공통적으로 적용할 수 있는 패킷 트레인 수신 알고리즘, 중앙 제어 노드의 수신 프로토콜, 일반 노드의 수신 프로토콜, 공통 패킷 트레인 수신 알고리즘을 포함하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 제공하는 것이다.
이를 위해 본 발명에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜은 (A) 모선이 초기 통신경로를 설정하는 초기 스테이지; (B) 상기 통신경로를 통해 상기 모선과 다수의 클러스터 헤드가 통신을 수행하는 정상 스테이지; 및 (C) 상기 모선과 상기 다수의 클러스터 헤드가 통신을 종료하는 종료 스테이지를 포함하며, 상기 통신은 시간분할다중접속(TDMA) 방식으로 패킷을 일괄전송하기 위한 패킷 트레인 형식의 패킷을 송수신하고, 상기 패킷 트레인 형식의 패킷 수신은 (D) 패킷 트레인 리드 알고리즘에 의해 큐로부터 패킷을 수신하여 수신된 패킷의 에러가 있는지 여부에 따라 헤더 및 RX 상태 테이블을 체크하고, 중복 여부에 따라 상기 수신된 패킷의 수 및 패킷 로스의 회수를 초기화하며, 중간에 새로운 시작 패킷이 수신되었는지 여부에 따라 상기 수신된 패킷의 수가 조각된 패킷의 총 개수인지 여부를 판단하는 단계; 및 (E) 상기 패킷 트레인 리드 알고리즘으로 생성된 패킷 트레인을 수신하여 응답 신호가 비콘 신호의 Seq 값과 동일한지 여부 및 업링크 데이터인지 여부에 따라 상기 RX 상태 테이블 업데이트의 여부 및 상위 계층으로의 전송 여부가 결정되는 단계;를 포함한다.
또한, 본 발명에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜은 (A) 클러스터 헤드가 제1 초기 비콘신호를 수신받아 상기 제1 초기 비콘신호에 대응하는 제1 초기 응답신호를 송신하고, 제2 초기 비콘신호를 송신하여 상기 제2 초기 비콘신호에 대응하는 제2 초기 응답신호를 수신받아 경로를 설정하는 초기 스테이지; (B) 상기 클러스터 헤드가 제1 정상 비콘신호를 수신받아 상기 제1 정상 비콘신호에 대응하는 제1 정상 응답신호를 송신하고, 상기 제2 정상 비콘신호를 송신하여 상기 제2 정상 비콘신호에 대응하는 제2 정상 응답신호를 수신받는 정상 스테이지; 및 (C) 상기 클러스터 헤드가 제1 종료 비콘신호를 수신받아 상기 제1 종료 비콘신호에 대응하는 제1 종료 응답신호를 송신하고, 상기 제2 종료 비콘신호를 송신하여 상기 제2 종료 비콘신호에 대응하는 제2 종료 응답신호를 수신받는 종료 스테이지를 포함하되, 상기 제1 초기 응답신호는 상기 제2 초기 응답신호의 정보를 포함하고, 상기 제1 정상 응답신호는 상기 제1 정상 응답신호의 정보를 포함하며, 상기 제1 종료응답신호는 상기 제2 종료 응답신호의 정보를 포함하고, 상기 신호들의 송수신은 시간분할다중접속(TDMA) 방식으로 패킷을 일괄전송하기 위한 패킷 트레인 형식의 패킷을 송수신하며, 상기 패킷 트레인 형식의 패킷 수신은 (D) 패킷 트레인 리드 알고리즘에 의해 큐로부터 패킷을 수신하여 수신된 패킷의 에러가 있는지 여부에 따라 헤더 및 RX 상태 테이블을 체크하고, 중복 여부에 따라 수신된 패킷의 수 및 패킷 로스의 회수를 초기화하며, 중간에 새로운 시작 패킷이 수신되었는지 여부에 따라 상기 수신된 패킷의 수가 조각된 패킷의 총 개수인지 여부를 판단하는 단계; 및 (E) 상기 패킷 트레인 리드 알고리즘으로 생성된 패킷 트레인을 수신하여 비콘 신호의 종류 또는 다운링크 데이터 여부에 따라 시간을 동기화 또는 타이머를 셋업시키며, 브로드캐스트 모드인지 여부에 따라 최종 홉인지 여부인지 여부를 판단하여 응답 신호를 생성하거나, 비콘 신호 또는 다운링크 데이터를 수정한 후에 패킷을 상위 계층으로 전송하거나, 상기 클러스터 헤드의 주소의 종류에 따라 상기 다운링크 데이터, 업링크 데이터 또는 상기 응답 신호를 수정한 후에 패킷을 상위 계층으로 전송 또는 드롭하는 단계;를 포함한다.
본 발명의 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다.
이에 앞서 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이고 사전적인 의미로 해석되어서는 아니되며, 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 윈칙에 입각하여 본 발명의 기술적 사상에 부합되는 의미와 개념으로 해석되어야만 한다.
본 발명의 다양한 실시 예에 따르면, 수중 장거리 네트워크에서 패킷 트레인 형태의 송수신 시 메시지 오버헤드 감소와 전체적인 네트워크 프로토콜의 수신 알고리즘 복잡도를 낮춰 열악한 수중 네트워크 통신 시스템의 성능을 향상시킬 수 있다.
따라서, 본 발명의 다양한 실시 예에 따르면, 궁극적으로 수중 네트워크를 효율적으로 구성하여 해양탐사 및 자원채취를 원활하게 하여 국익을 증대시키는 효과가 있다.
도 1은 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 의 개념을 보여주기 위한 예시도.
도 2는 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 초기화 스테이지(S110)를 상세하게 보여주기 위한 순서도.
도 3은 본 발명의 실시예에 따르는 TX I_BEACON의 패킷의 일례를 보여주는 예시도.
도 4는 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 정상 스테이지(S120)를 상세하게 보여주기 위한 순서도.
도 5는 본 발명의 실시예에 따르는 N_BEACON의 패킷의 일 예를 보여주는 예시도.
도 6은 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 종료 스테이지(S130)를 상세하게 보여주기 위한 순서도.
도 7은 본 발명의 실시 예에 따르는 T_BEACON 용 패킷의 구조를 보여주는 예시도.
도 8은 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 패킷 트레인 리드(Read) 알고리즘을 상세하게 보여주기 위한 순서도.
도 9는 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 패킷 처리 알고리즘을 상세하게 보여주기 위한 순서도.
도 10은 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 초기화 스테이지(S210)를 보여주는 순서도.
도 11은 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 정상 스테이지(S230)를 보여주는 순서도.
도 12는 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 종료 스테이지(S250)를 보여주는 순서도.
도 13은 본 발명의 실시 예에 따르는 클러스터 헤드 데이터링크 프로토콜의 패킷 처리 알고리즘을 상세하게 보여주기 위한 순서도이다.
본 발명의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되어지는 이하의 상세한 설명과 바람직한 실시 예들로부터 더욱 명백해질 것이다. 본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, "제1", "제2", 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 상기 용어들에 의해 제한되는 것은 아니다.
또한, 이하에서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.
도 1 내지 도 13의 동일 부재에 대해서는 동일한 도면 번호를 기재하였다.
본 발명의 기본 원리는 모선과 클러스터 헤드가 송수신하는 신호의 패킷을 일괄전송에 용이한 패킷 트레인 형태로 생성하고, 신호의 송수신이 비활성되는 시간을 슬립모드로 설정하는 것이다.
먼저, 본 발명의 실시 예에서 사용하는 클러스터 헤드(CH, Cluster Head)는 모선(CS, Command Ship)과 상대적인 개념으로서, 수중을 이동하는 이동노드를 의미한다.
아울러, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
본 발명을 상세하게 설명하기에 앞서 본 발명을 설명하기 위하여 기재한 파라미터들을 다음의 [표 1] 파라미터 정의 1 내지 [표 2] 파라미터 정의 2와 같이 정의하기로 한다.
파라미터 정의
일반
Figure 112015073970905-pat00001
네트워크 홉의 수
Figure 112015073970905-pat00002
총 CH의 수
Figure 112015073970905-pat00003
홉 번호 (
Figure 112015073970905-pat00004
)
Figure 112015073970905-pat00005
노드 식별 번호(
Figure 112015073970905-pat00006
), CS:
Figure 112015073970905-pat00007
, CH:
Figure 112015073970905-pat00008
Figure 112015073970905-pat00009
노드의 홉 번호 (
Figure 112015073970905-pat00010
), CS:
Figure 112015073970905-pat00011
, CH:
Figure 112015073970905-pat00012
,
Figure 112015073970905-pat00013
Figure 112015073970905-pat00014
Figure 112015073970905-pat00015
에서의 서브 홉 번호 (
Figure 112015073970905-pat00016
)
Figure 112015073970905-pat00017
인터 홉 그룹 번호 (
Figure 112015073970905-pat00018
)
Figure 112015073970905-pat00019
Figure 112015073970905-pat00020
일 때, 동시에 보낼 수 있는 홉들의 그룹
Figure 112015073970905-pat00021
임의의 홉
Figure 112015073970905-pat00022
에서 상위
Figure 112015073970905-pat00023
개의 서브 홉들의 그룹
Figure 112015073970905-pat00024
임의의 홉
Figure 112015073970905-pat00025
에서 하위
Figure 112015073970905-pat00026
개의 서브 홉들의 그룹
Figure 112015073970905-pat00027
홉 별 CH의 수
(
Figure 112015073970905-pat00028
)
Figure 112015073970905-pat00029
Figure 112015073970905-pat00030
, 서브 홉
Figure 112015073970905-pat00031
에서의 CH의 수
(
Figure 112015073970905-pat00032
)
Figure 112015073970905-pat00033
Figure 112015073970905-pat00034
, 서브 홉
Figure 112015073970905-pat00035
내 CH 식별 번호 (
Figure 112015073970905-pat00036
)
Figure 112015073970905-pat00037
응답 실패 횟수
Figure 112015073970905-pat00038
응답 실패 default 값
Figure 112015073970905-pat00039
한 패킷 트레인에서 수신한 패킷의 수
Figure 112015073970905-pat00040
한 패킷 트레인에서 발생한 pkt loss가 발생한 수
Figure 112015073970905-pat00041
한번의 PTRA 수행 중 연속적으로 empty queue가 발생하는 횟수
Figure 112015073970905-pat00042
Figure 112015073970905-pat00043
의 최대값
시간설정
Figure 112015073970905-pat00044
Figure 112015073970905-pat00045
, 서브 홉
Figure 112015073970905-pat00046
에 있는
Figure 112015073970905-pat00047
번째 CH가 자신의 통신 반경에서 가장 거리가 먼 CH에게 패킷을 보낼 때의 전파지연시간
Figure 112015073970905-pat00048
Figure 112015073970905-pat00049
, 서브 홉
Figure 112015073970905-pat00050
에 있는
Figure 112015073970905-pat00051
번째 CH가 자신의 통신 반경에서 가장 거리가 먼 CH에게 패킷을 보낼 때의 전파 거리
Figure 112015073970905-pat00052
MAC 프레임 전송 시간
Figure 112015073970905-pat00053
Guard time (스위칭 시간, 패킷 프로세싱 시간을 고려)
Figure 112015073970905-pat00054
인터홉 카운트
Figure 112015073970905-pat00055
, 홉
Figure 112015073970905-pat00056
, 서브 홉
Figure 112015073970905-pat00057
에 있는
Figure 112015073970905-pat00058
의 time offset (TO)
Figure 112015073970905-pat00059
CS, 모든 CH들이 데이터를 전송하는 사이클 주기
Figure 112015073970905-pat00060
Figure 112015073970905-pat00061
의 최초 시간 기준점
Figure 112015073970905-pat00062
현재 시점
패킷
Figure 112015073970905-pat00063
Figure 112015073970905-pat00064
에서 CH가 한번에 최대로 보낼 수 있는 패킷의 총 개수
Figure 112015073970905-pat00065
Figure 112015073970905-pat00066
에서 CH가 한번에 최대로 보낼 수 있는 데이터의 크기
Figure 112015073970905-pat00067
Figure 112015073970905-pat00068
에 있는 CH가 보내는 데이터의 크기
Figure 112015073970905-pat00069
한개의 MAC frame에서 보낼 수 있는 Uplink, downlink 데이터 크기
Figure 112015073970905-pat00070
Uplink route_table을 참고하여 uplink로 전달해야하는 CH들의 개수
Figure 112015073970905-pat00071
패킷 트레인 MAC 프레임에서 헤더의 길이
Figure 112015073970905-pat00072
패킷 트레인 첫 번째 MAC 프레임에서 헤더의 길이
Figure 112015073970905-pat00073
패킷 트레인 MAC 프레임에서 페이로드의 길이
Figure 112015073970905-pat00074
패킷 트레인 첫 번째 MAC 프레임에서 페이로드의 길이
Figure 112015073970905-pat00075
패킷 제어 번호
Figure 112015073970905-pat00076
Figure 112015073970905-pat00077
조각된 패킷의 총 개수
Figure 112015073970905-pat00078
조각된 패킷의 조각 번호
Figure 112015073970905-pat00079
Time synchronization 정보
Figure 112015073970905-pat00080
패킷별 시퀀스 번호 (
Figure 112015073970905-pat00081
)
라우팅
Figure 112015073970905-pat00082
Route_table을 참고하여 전달해야하는 Next Hop CH의 주소
Figure 112015073970905-pat00083
CS가 전송하는 unicast 데이터 패킷을 위한 CH 주소
Figure 112015073970905-pat00084
hop count
Figure 112015073970905-pat00085
라우팅 경로의 전체적인 등간격 표시자
Figure 112015073970905-pat00086
CH
Figure 112015073970905-pat00087
의 위치
Figure 112015073970905-pat00088
CH
Figure 112015073970905-pat00089
의 uplink data
Figure 112015073970905-pat00090
CS의 downlink data
Figure 112015073970905-pat00091
패킷 트레인의 시작 패킷 표시자
Figure 112015073970905-pat00092
CRC 값
Figure 112015073970905-pat00093
유효 비트의 수
Figure 112015073970905-pat00094
패킷에서 비유효 비트들
Figure 112015073970905-pat00095
또한, 본 발명을 상세하게 설명하기에 앞서 본 발명을 설명하기 위하여 기재한 테이블(table)들의 업데이트 내용들을 다음의 [표 3] 테이블의 업데이트 내용과 같이 정의하기로 한다.
Figure 112015073970905-pat00096
한편, 본 발명을 설명하기에 앞서 본 발명을 상세하게 설명하기에 앞서 본 발명을 설명하기 위하여 사용되는 약어 중, I는 초기 스테이지(Initialization stage)에서 송수신되는 신호라는 의미로 기재하였고 Initialization의 약어이다. 그리고 N은 정상 스테이지(Normal operation stage)에서 송수신되는 신호라는 의미로 기재하였고 Normal의 약어이다. 또한, T는 종료 스테이지(Terminal stage)에서 송수신되는 신호라는 의미로 기재하였고 Terminal의 약어이다.
그리고 BEACON 또는 비콘은 비콘신호와 동일한 의미이며, RESPONSE 또는 응답도 응답신호와 동일한 의미이다.
마지막으로 Tx는 송신의 의미로 사용하였고 Rx는 수신의 의미로 사용하였다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시형태를 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 의 개념을 보여주기 위한 예시도이다.
도 1을 참조하여 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 의 개념을 설명하면 다음과 같다.
본 발명의 실시예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 의 개념을 간략히 설명한다.
우선 본 발명의 실시 예에 따르는 모선과 클러스터 헤드의 MAC(Media Access Control)은 초기화 스테이지, 정상 스테이지, 종료 스테이지 이렇게 3개의 스테이지로 구분된다.
여기서, 모든 모선(CS, Command Ship)은 자신의 위치를 알 수 있고, 클러스터 헤더(CH, Cluster Head)는 모선(CS)의 위치를 알 수 있다고 가정한다.
특히 모선(CS)은 네트워크의 중심에 위치하며 위치의 이동이 거의 없다.
그리고 모선(CS)과 클러스터 헤더(CH)는 최대 멀티 홉(m)을 알고 있다고 가정한다.
이때 모선(CS)은 통신 반경(30km, 1hop) 내에서 장거리 제어를 하고, 모선(CS)의 통신 범위 이외의 선단에서는 장거리 중계 통신(multi-hop)을 통하여 클러스터 헤더(CH)를 제어한다.
본 발명은 모선(CS)과 클러스터 헤더(CH) 사이에서 수행되는 통신을 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 을 이용하여 수행한다.
특히, 모선(CS)과 클러스터 헤드(CH)는 송수신 데이터의 패킷을 단편화(fragmentation)하고, 이를 다시 패킷 트레인(packet train) 방식으로 구성하여 일괄적으로 송수신하는 프로토콜이다.
본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 은 전파지연을 이용하기 때문에 클러스터 헤더(CH)이 동시에 수신 충돌없이 전송을 수행할 수 있다.
한편, 통신이 비활성화되는 대기시간 동안 슬립 모드(sleep mode)로 설정하고, 통신이 활성화되는 통신시간 동안에는 웨이크 모드(wake mode)로 설정함으로써 통신의 지속성을 향상시켰다.
본 발명에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 은 전체 네트워크를 제어하고 상황에 따르는 단계 전환을 위한 모선(CS, Command Ship)의 데이터링크 프로토콜과 수신 비콘(X_BEACON)에 따른 처리 프로토콜인 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜로 구분된다.
특히, 모선(CS)과 클러스터 헤드(CH)의 데이터링크 프로토콜은 네트워크를 초기화하고 네트워크 경로를 재구성하는 초기 스테이지(Initialization stage), 초기 스테이지 이후, 모선(CS)이 클러스터 헤드(CH)들의 생존을 확인하고 제어하기 위해 데이터를 송수신하는 정상 스테이지(Normal operation stage) 및 모든 통신을 종료하고 모선(CS)이 클러스터 헤드(CH)들을 복귀시키는 종료 스테이지(Terminal stage) 이렇게 각각 3개의 스테이지로 구분된다.
모선(CS, Command Ship)의 데이터링크 프로토콜
우선, 모선의 초기화 스테이지에서는 파라미터를 설정하고, 비콘을 송신하여 응답을 수신한 후 경로를 설정한다. 여기서 모선의 비콘 송신시 시작지점과 오프셋이 설정되고 응답은 기 설정된 시간동안 대기하여 수신한다. 그리고 경로설정이 완료되면 그 여부를 확인한다.
본 발명에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 전체 네트워크를 제어하고 상황에 따르는 단계 전환을 위한 모선(CS, Command Ship)의 초기화 스테이지에 대해 상세하기로 한다.
모선(CS, Command Ship) 데이터링크 프로토콜의 초기 스테이지
도 2는 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 초기화 스테이지(S110)를 상세하게 보여주기 위한 순서도이다.
도 2를 참조하면 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 초기화 스테이지(S110)는 모선이 초기 비콘신호를 송신하는 단계(S111), 초기 비콘신호에 대응하는 다수의 클러스터 헤드의 초기 응답신호를 모선이 수신하는 단계(S112), (b) 단계에서 초기 응답신호를 대기하기 위하여 설정된 시간이 만료되었는지 판단하는 단계(S113), (c) 단계에서, 설정된 시간이 만료되면 다수의 클러스터 헤드의 초기 응답신호가 모두 수신되었는지 판단하는 단계(S114) 및 (d) 단계에서, 초기 응답신호가 모두 수신되는 경우 모선과 다수의 클러스터 헤드와의 통신경로를 설정하는 단계(S115)를 포함한다.
도 2와 같이 구성된 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 초기화 단계(S110)을 상세히 설명하면 다음과 같다.
우선 모선은 TX I_BEACON 경로(phase)(경로)를 통해 I_BEACON을 전송한다(S111).
I_BEACON은 다음과 같은 절차에 따라 생성된다.
모선의 I_BEACON 생성방법
1. 우선 I_BEACON의 패킷 헤더 값을 다음과 같은 수순으로 결정한다.
a. 패킷 헤더 값을 결정하기 위해서 BEACON과 RESPONSE의 타임옵셋(BEACON and RESPONSE time offset (TO))을 설정하는데 이 경우 타임옵셋은 필요한 위치 정보, 최대 페이로드 길이를 고려하여 설정한다.
b. 이 후, CS BEACON start time, CH BEACON start time, CH RESPONSE start time을 결정한다.
c. 다음으로, Route start time, Route period 결정한다.
d. 마지막으로 Seq 값과 P 값을 순차적으로 설정한다.
2. 이와 같은 절차로 패킷 헤더 값이 결정되면 I_BEACON 패킷 트레인을 구성한다.
a. P > PMAC 라면 패킷을 단편화(fragmentation)를 수행한 후, LEN을 설정한다.
b. 여기서 LEN은 [수학식 1] 및 [수학식 2]를 이용하여 결정된다.
Figure 112015073970905-pat00097
Figure 112015073970905-pat00098
c. 이후, 단편화된 패킷에 FN, Csum, TS를 설정한다.
d. P ≤ PMAC 라면 패킷을 단편화를 수행하지 않고 LEN =1, FN=1로 설정한다. 단 패킷에 Csum과 TS 값은 설정한다.
e. 이와 같이 생성된 TX I_BEACON의 패킷은 다음의 도 3과 같이 헤더와 페이로드로 구성된다.
도 3은 본 발명의 실시예에 따르는 TX I_BEACON용 패킷 구조의 일 예를 보여주는 예시도이다.
도 3을 참조하면, 헤더의 CN은 1(I_BEACON)이고, Seq는 start시 0으로 설정됨으로, Seq=0으로 설정한다. 다음의 TX I_BEACON은 Seq=1이다, 그리고 hi 와 i는 0으로 설정된다. 한편, 페이로드에는 I_BEACON start time, BEACON time offset, I_RESPONSE start time, RESPONSE time offset, Route start time, Route period 정보가 순차적으로 생성된다.
f. 이와 같이 I_BEACON용 패킷이 생성되면, t0 시간에 I_BEACON을 1 홉부터 m 홉까지 다운링크로 브로드캐스팅한다.
g. 이후, CS IB_table을 업데이트한다. 이때 업데이트하는 항목으로는 t0, tIB, tIR, TB(h, k, j), TR(h, k, j), TCS, trout, Troute, Seq 값이다.
h. 마지막으로 TCS까지의 타이머를 설정함으로써 단계 S111을 종료한다.
단계 S111이 종료되면, RX I_RESPONSE 경로(phase)를 통해 I_RESPONSE를 수신하여 처리한다(S112). 여기서 수신된 I_RESPONSE에 대한 모선의 처리 방법에 대해서 상술하면 다음과 같다.
모선의 I_RESPONSE 처리방법
1. 우선 수신된 패킷의 헤더를 확인하여 Csum 값에 에러 발생여부를 확인한다. 에러가 발생했다면 수신된 패킷을 드랍(drop)하고, 에러가 발생하지 않았다면 tc 값을 확인한다.
2. tC > t0 + TCS라면 수신된 패킷을 드랍하고, 그렇지 않다면 hi 값을 확인한다.
3. 이때 홉 번호 hi가 모선의 홉 번호보다 낮다면 패킷을 드랍하고, 그렇지 않다면 i 값을 확인한다.
4. 여기서 i 값이 수신되지 않은 클러스터 헤드의 노드 식별번호로 확인되면 새로운 클러스터 헤드의 정보가 수신된 것으로 판단한다.
5. 이에 따라 수신된 패킷을 저장하고, CS IR_table을 업데이트한다. 그러나 i 값이 이미 수신된 클러스터 헤드의 정보로 판단되면 FN 값을 확인한다.
6. FN 값이 LEN 값과 동일하다면 페이로드를 분석하고, 전달할 클러스터 헤드들의 hi, i, Posi 정보를 획득하고, CS IR_table을 업데이트하면서 단계 S112를 종료한다.
여기서 FN 값과 LEN 값이 동일하지 않다면, 패킷 버퍼에 저장하고 CS IR_table을 업데이트한다.
CS IR_table의 업데이트 항목으로는 NRES, FN, LEN, hi, i, Posi 이다.
다음 단계로는 설정된 타이머의 설정 시간이 만료되었는지 판단한다(S113).
만료되지 않았다면 만료될 때까지 단계 S112로 회귀하여 절차를 반복수행하고, 타이머의 설정 시간이 만료되었다면, 모든 클러스터 헤드가 응답하였는지 확인하기 위하여 다음 단계 S114로 진행한다.
여기서 타이머의 시간을 설정하는 이유는 전파지연시간을 고려하기 위함이다.
타이머의 설정 시간이 만료되었다면, 단계 S114에서는 모든 클러스터 헤드들이 응답하였는지 여부를 판단한다(S114).
모든 클러스터 헤드들이 응답하지 않았다면, 단계 S111로 회귀하여 처음부터 다시 단계들을 진행한다.
모든 클러스터 헤드들이 응답하였다면 다음단계인 경로설정 페이즈(Route determination phase)로 진행한다(S115). 여기서 경로설정 페이즈는 모선과 클러스터 헤드의 통신경로를 설정하는 단계이다.
모선의 통신 반경 내의 클러스터 헤드들과의 경로가 설정되면(S115) 모든 경로가 설정되었는지 판단하여(S116), 경료설정이 완료되지 않았다고 판단되면 단계 S111로 회귀하여 절차를 반복수행하고, 경로설정이 완료되었다면 정상 스테이지(Normal operation stage)(120)로 이동한다.
모선(CS, Command Ship) 데이터링크 프로토콜의 정상 스테이지
우선 모선의 정상 스테이지에서는 비콘을 송신하고 그에 대응하는 응답을 수신하는데 이는 클러스터 헤드의 생존여부를 확인하기 위함이다.
도 4는 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 정상 스테이지(S120)를 상세하게 보여주기 위한 순서도이다.
도 4를 참조하면 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 정상 스테이지(S120)는 모선이 다수의 클러스터 헤드로 정상 비콘신호를 송신하는 단계(S121), 모선이 정상 비콘신호에 대응하는 다수의 클러스터 헤드의 정상 응답신호를 수신하는 단계(S122), (b) 단계에서 정상 응답신호를 대기하기 위하여 설정된 시간이 만료되었는지 판단하는 단계(S123), 및 (c) 단계에서 설정된 시간이 만료하는 경우, 응답신호의 응답 실패 횟수가 기 설정된 응답 실패 제한 횟수를 초과하는지 판단하는 단계(S124)를 포함한다.
도 4와 같이 구성된 본 발명의 실시 예에 따르는 정상 스테이지(120)를 상세하게 설명하면 다음과 같다.
우선 TX N_BEACON 경로(phase)를 통해 N_BEACON을 전송한다(S121).
N_BEACON은 다음과 같은 절차에 따라 생성된다.
모선의 N_BEACON 생성방법
1. 우선, 시간 파라미터를 결정하기 위해 다음의 절차를 수행한다.
a. 우선 CS BEACON start time, BEACON start time, 및 RESPONSE start time을 결정한다.
b. 이후, Seq 값과 P 값을 순차적으로 결정한다.
2. 이와 같이 시간 파라미터가 결정되고 나면, N_BEACON을 패킷 트레인으로 구성한다. 여기서 패킷 트레인의 구성함에 있어 패킷을 단편화(fragmentation)하는 방법에 대해서는 상술한 모선의 I_BEACON 생성방법의 2의 a 내지 d에서 자세하게 설명하였으므로 그 상세는 생략하기로 한다.
3. 이와 같이 설정된 N_BEACON의 패킷은 다음의 도 5와 같이 헤더와 페이로드로 구성된다.
도 5는 본 발명의 실시예에 따르는 N_BEACON의 패킷의 일례를 보여주는 예시도이다.
도 5를 참조하면, 헤더의 CN은 5(N_BEACON)이고, Seq, hi, i, FN, LEN, Csum, TS가 순차적으로 설정되면, 페이로드에는 N_BEACON start time, tNB, 과 N_RESPONSE start time, tNR이 설정된다.
4. 이와 같이 N_BEACON이 생성되면, t0에 N_BEACON을 1홉부터 m홉까지 다운링크로 브로드캐스팅한다.
5. 이 후, CS NB_table 업데이트하는데 그 항목으로는 t0, tNB, tNR, TCS, Seq 값이다.
6. 마지막으로 TCS까지의 타이머를 설정함으로써 단계 S121을 종료한다.
단계 S121이 종료되면, RX N_RESPONSE 경로(phase)를 통해 N_RESPONSE를 수신하여 처리한다(S122). 여기서 수신된 RX N_RESPONSE에 대한 처리 방법에 대해서 상술하면 다음과 같다.
모선의 N_RESPONSE 처리방법
1. Csum 값을 확인하여 에러 발생여부를 확인한다. 에러가 발생했다면 수신된 패킷을 드랍(drop)하고, 에러가 발생하지 않았다면 tc값을 확인한다.
2. tC > t0 + TCS라면 수신된 패킷을 드랍하고, 그렇지 않다면 SR 값을 확인한다.
3. SR 값이 존재하지 않는 경우 드랍하고, 그렇지 않다면 FN 값을 확인한다.
4. FN 값과 LEN 값이 동일하다면 페이로드를 분석하여 전달할 클러스터 헤드들의 hi, i, Posi, DATAi 값 정보를 획득하고, CS NR_table을 업데이트하면서 단계 S122를 종료한다.
여기서, FN 값과 LEN 값이 동일하지 않다면, 패킷 버퍼에 저장하고 CS NR_table을 업데이트한다.
여기서 FN 값과 LEN 값이 동일하지 않다면 패킷을 드랍한다.
CS NR_table의 업데이트 항목으로는 NRES, FN, LEN, hi, i, Posi, DATAi 이다.
다음 단계로는 설정된 타이머의 설정 시간이 만료되었는지 판단한다(S123)
만료되지 않았다면 만료될 때까지 단계 S122를 반복수행하고, 타이머의 설정 시간이 만료되었다면 NFRES 값을 확인한다(S124).
NFRES 값이 NFdefault 값보다 크다면 단계 S111로 회귀하여 절차를 반복하고, 크지 않다면 종료 스테이지(Terminal stage)로 진행할지 여부를 판단한다(S125).
여기서 종료 스테이지로 진행하지 않기로 판단하였다면, 단계 S121부터 상술한 절차를 반복수행한다.
모선(CS, Command Ship) 데이터링크 프로토콜의 종료 스테이지
우선, 모선의 종료 스테이지에서는 비콘을 송신하고 응답을 수신하는데 이는 종료와 통신 완료의 여부를 확인하기 위함이다.
도 6은 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 종료 스테이지(S130)를 상세하게 보여주기 위한 순서도이다.
도 6을 참조하면 본 발명의 실시 예에 따르는 종료 스테이지(S130)는 모선이 종료 비콘신호를 다수의 클러스터 헤드로 송신하는 단계(S131), 모선이 종료 비콘신호에 대응하는 다수의 클러스터 헤드의 종료 응답신호를 수신하는 단계(S132), (b) 단계에서 정상 응답신호를 대기하기 위하여 설정된 시간이 만료되었는지 판단하는 단계(S133), 및 (c) 단계에서 설정된 시간이 만료하는 경우, 응답신호가 모두 모선으로 수신되었는지 판단하는 단계(S134)를 포함한다.
도 6을 참조하여 본 발명의 실시 예에 따르는 종료 스테이지(S130)를 자세하게 설명하면 다음과 같다.
우선 모선은 TX T_BEACON 경로(phase)를 통해 T_BEACON을 전송한다(S131).
T_BEACON은 다음과 같은 절차에 따라 생성된다.
T_BEACON 생성방법
1. 우선 시간 파리미터를 결정하기 위해 다음의 절차를 수행한다.
a. 우선 CS BEACON start time, BEACON start time, 및 RESPONSE start time을 결정한다.
b. 이후, Seq 값과 P 값을 순차적으로 결정한다.
2. 이와 같이 시간 파라미터가 결정되고 나면, T_BEACON을 패킷 트레인으로 구성한다. 여기서 패킷 트레인의 구성함에 있어 패킷을 단편화(fragmentation)하는 방법에 대해서는 상술한 모선의 I_BEACON 생성방법의 2의 a 내지 d에서 자세하게 설명하였으므로 그 상세는 생략하기로 한다.
3. 이와 같이 설정된 T_BEACON의 패킷은 다음의 도 7과 같이 헤더와 페이로드로 구성된다.
도 7은 본 발명의 실시 예에 따르는 T_BEACON 용 패킷의 구조를 보여주는 예시도이다.
도 7을 참조하면, 헤더의 CN은 7(T_BEACON)이고, Seq, hi, i, FN, LEN, Csum, TS가 순차적으로 설정되면, 페이로드에는 T_BEACON start time, tTB와 T_RESPONSE start time, tTR이 설정된다.
4. 이와 같이 T_BEACON이 생성되면, t0에 T_BEACON을 1홉부터 m홉까지 다운링크로 브로드캐스팅한다.
5. 이 후, CS TB_table 업데이트하는데 그 항목으로는 t0, tTB, tTR, TCS, Seq 값이다.
6. 마지막으로 TCS까지의 타이머를 설정함으로써 단계 S131을 종료한다.
단계 S131이 종료되면, RX T_RESPONSE 경로(phase)를 통해 RX T_RESPONSE를 수신하여 처리한다(S132). 여기서 수신된 RX T_RESPONSE에 대한 처리 방법에 대해서 상술하면 다음과 같다.
모선 RX T_RESPONSE를 처리하는 방법
1. Csum 값을 확인하여 에러 발생여부를 확인한다. 에러가 발생했다면 수신된 패킷을 드랍(drop)하고, 에러가 발생하지 않았다면 tc값을 확인한다.
2. tC > t0 + TCS라면 수신된 패킷을 드랍하고, 그렇지 않다면 SR 값을 확인한다.
3. SR 값이 존재하지 않는 경우 드랍하고, 그렇지 않다면 FN 값을 확인한다.
4. FN 값과 LEN 값이 동일하거나 동일하지 않거나 패킷 버퍼에 저장하고 CS TR_table을 업데이트하면서 단계 S122를 종료한다.
이때 업데이트되는 CS TR_table의 항목으로는 FN, LEN, hi, i 이다.
다음 단계로는 설정된 타이머의 설정 시간이 만료되었는지 판단한다(S133)
만료되지 않았다면 만료될 때까지 단계 S132를 반복수행하고, 타이머의 설정 시간이 만료되었다면 모든 클러스터 헤드들이 응답하였는지 판단한다(S134).
모든 클러스터 헤드들이 응답하였다면 종료 스테이지를 종료하고, 응답하지 않았다면 단계 S131로 회귀하여 상술한 절차를 반복수행한다.
모선(CS, Command Ship) 데이터링크 프로토콜의 패킷 트레인 리드(Read) 알고리즘
도 8은 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 패킷 트레인 리드(Read) 알고리즘을 상세하게 보여주기 위한 순서도이다.
패킷 트레인 리드(Read) 알고리즘은 수신 모드로 하나의 패킷 트레인(packet train)을 물리계층의 큐로부터 읽어오는 알고리즘으로써 데이터링크 프로토콜의 초기화 스테이지(S110), 정상 스테이지(S120) 및 종료 스테이지(S130)에서 공통적으로 사용된다.
이 경우, 패킷 트레인의 모드 패킷이 수신되거나, 물리계층으로부터 얻어오는 패킷 로스(packet loss) 정보를 이용하여 일부만 수신되어도 처리가 된다.
기본적으로 하나의 패킷 트레인을 읽을 때까지 수행하나, 큐(Que)를 체크하여(S141) 큐가 연속적으로 계속 비어 있는지 여부를 판단한다(S142).
큐가 연속적으로 비어 있는 경우, EQ를 '1' 증가시켜(S143) EQ가 EQmax 미만인지 판단하여(S144) 미만인 경우 단계(S141)로 회귀하고,
Figure 112015073970905-pat00099
이 되면 알고리즘이 종료된다.
단계(S142)에서 큐가 차 있는 경우, EQ를 '0'으로 초기화하고(S145), 큐로부터 패킷을 수신하여 BUF에 임시 저장한 후(S146), 수신된 패킷의 에러가 있는지 여부를 판단한다(S147).
에러가 있는 경우, BUF를 삭제하고(S151) 단계(S141)로 회귀하고, 에러가 없는 경우, 헤더 및 RX 상태 테이블을 체크한다(S148).
즉, RX 상태 테이블의
Figure 112015073970905-pat00100
및 수신 시간 업데이트 정보, 패킷의 임시 저장 메모리 주소,
Figure 112015073970905-pat00101
당 I_BEACON 또는 T_BEACON에 대한 CH별 응답 유무,
Figure 112015073970905-pat00102
당 CH별 업링크 데이터(Upload Data) 송신 유무 등을 체크하고, 소정의 수신 시간 이후, 업데이트 정보를 삭제한다.
시작 헤더가
Figure 112015073970905-pat00103
이 되는지 여부를 판단하여(S149),
Figure 112015073970905-pat00104
이 아닌 경우, 즉 중간에 새로운 시작 패킷이 수신된 경우에는 BUF를 삭제하고(S151) 단계(S141)로 회귀하고,
Figure 112015073970905-pat00105
인 경우 중복 여부를 판단한다(S150).
즉, 브로드캐스트(Broadcast) 트래픽(I_BEACON, T_BEACON, DD_broadcast)의 경우
Figure 112015073970905-pat00106
정보 등이 동일한 패킷 트레인은 중복이 되고, 유니캐스트(Unicast) 트래픽(IR, TR, UD, DD_unicast)의 경우
Figure 112015073970905-pat00107
정보 등이 동일한 패킷 트레인은 중복이 된다.
단계(S)에서 중복인 경우 BUF를 삭제하고(S151) 단계(S141)로 회귀하며, 중복이 아닌 경우 패킷 트레인에서 수신한 패킷의 수(
Figure 112015073970905-pat00108
)를 '1'로 초기화하고, 패킷 트레인에서 발생한 패킷 로스의 회수(
Figure 112015073970905-pat00109
)를 '0'으로 초기화한다(S152).
패킷 트레인에서 수신한 패킷의 수(
Figure 112015073970905-pat00110
)가 조각된 패킷의 총 개수(
Figure 112015073970905-pat00111
)인지 여부를 판단하여(S153), 조각된 패킷의 총 개수(
Figure 112015073970905-pat00112
)인 경우 동작을 종료하고, 조각된 패킷의 총 개수(
Figure 112015073970905-pat00113
)가 아닌 경우 큐를 체크하여(S154) 패킷 로스가 있는지 여부를 판단한다(S156).
패킷 로스가 있는 경우, 패킷 트레인에서 수신한 패킷의 수(
Figure 112015073970905-pat00114
) 및 패킷 로스의 회수(
Figure 112015073970905-pat00115
)를 '1' 증가시켜(S157, S158) 패킷 트레인에서 수신한 패킷의 수(
Figure 112015073970905-pat00116
)가 조각된 패킷의 총 개수(
Figure 112015073970905-pat00117
)인지 여부를 판단한다(S153).
패킷 로스가 없는 경우, 큐(Que)로부터 패킷을 읽어 BUF에 임시 저장한 후(S156), 패킷의 에러가 있는지 여부를 판단한다(S161).
패킷의 에러가 있는 경우, BUF로부터 현재 패킷을 삭제한 후에(S162) 패킷 트레인에서 수신한 패킷의 수(
Figure 112015073970905-pat00118
) 및 패킷 로스의 회수(
Figure 112015073970905-pat00119
)를 '1' 증가시킨 후에(S157, S158) 단계(S153) 이후의 동작을 수행하고, 에러가 없는 경우 헤더 및 RX 상태 테이블을 체크한다(S163).
시작 헤더가
Figure 112015073970905-pat00120
이 되는지 여부를 판단하여(S164),
Figure 112015073970905-pat00121
이 아닌 경우에는 현재 패킷을 BUF에 저장하고(S165), 패킷 로스의 회수(
Figure 112015073970905-pat00122
)를 '1' 증가시킨 후에(S158) 단계(S153) 이후의 동작을 수행하고,
Figure 112015073970905-pat00123
인 경우 BUF의 삭제 및 현재 패킷의 BUF 저장한 후(S166) 단계(S150) 이후의 동작을 수행한다.
모선(CS, Command Ship) 데이터링크 프로토콜의 패킷 처리 알고리즘
도 9는 본 발명의 실시 예에 따르는 모선(CS, Command Ship) 데이터링크 프로토콜의 패킷 처리 알고리즘을 상세하게 보여주기 위한 순서도이다.
모선 패킷 처리 알고리즘은 패킷 트레인 리드 알고리즘(Packet Train Read Algorithm, PTRA)으로부터 수신된 패킷 트레인을 분석해서 케이스별로 처리하는 알고리즘으로써 모선 데이터링크 프로토콜의 초기화 스테이지(S110), 정상 스테이지(S120) 및 종료 스테이지(S130)에서 공통적으로 사용된다.
이 알고리즘 역시 패킷 트레인의 모드 패킷이 수신되거나, 일부만 수신되어도 처리가 된다.
먼저, 패킷 트레인 리드 알고리즘(PTRA)으로부터 패킷 트레인을 수신하여(S171) I_BEACON 또는 T_BEACON인지 여부를 판단한다(S172).
I_BEACON 또는 T_BEACON인 경우 BUF를 삭제하고(S173) 타이머가 종료했는지 여부를 판단하고(S180), I_BEACON 또는 T_BEACON이 아닌 경우 I_RESPONSE 또는 T_RESPONSE 인지 여부를 판단한다(S174).
단계(S180)에서 타이머가 종료한 경우에는 동작을 종료하고, 타이머가 종료하지 않은 경우에는 단계(S171)로 회귀한다.
단계(S174)에서 I_RESPONSE 또는 T_RESPONSE인 경우에는 송신한 I_BEACON 또는 T_BEACON과 Seq 값의 동일 여부를 판단하여(S175) 동일한 경우 RX 상태 테이블을 업데이트하고(S176), 동일하지 않은 경우 BUF를 삭제하고(S173) 단계(S180) 이후의 동작을 수행한다.
단계(S174)에서 I_RESPONSE 또는 T_RESPONSE가 아닌 경우에는 업링크 데이터인지 여부를 판단한다(S177).
업링크 데이터인 경우 RX 상태 테이블을 업데이트한 후 패킷을 상위 계층인 QTX _DL_ UL 로 전송하고(S178), 업링크 데이터가 아닌 경우 BUF를 삭제하고(S179) 단계(S180) 이후의 동작을 수행한다.
클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜
다음으로는, 우선, 본 발명에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 모선(CS, Command Ship)으로부터 수신된 BEACON(X_BEACON)에 따른 신호처리를 수행하는 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜에 대해 상세하기로 한다.
클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 초기화 스테이지
클러스터 헤드의 초기화 스테이지에서는 비콘을 전달하고 응답을 송신하며 경로를 설정한다. 여기서 클러스터 헤드의 비콘 전달시 시간 동기화가 수행되며, 응답 송신시 생존 및 위치 정보가 포함된다.
도 10은 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 초기화 스테이지(S210)를 보여주는 순서도이다.
도 10을 참조하면 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 초기화 스테이지(S210)는 클러스터 헤드가 제1 초기 비콘신호를 수신하는 단계(S211), 제1 초기 비콘신호의 카운트가 한번에 보낼 수 있는 최대의 패킷 총 개수와 같은지 비교하여 같은 경우(S212), 타임 파라미터와 시간동기를 수행하는 단계(S213), 현재시간이 초기 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간을 초과하지 않는 경우(S214), 제2 초기 비콘신호를 송신하고 기 설정된 시간동안 슬립모드(Sleep Mode)가 설정되는 단계(S215), 현재시간이 초기 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간 미만인 경우(S216), 제2 초기 응답신호를 수신하는 단계(S217), 현재시간이 초기 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간과 같은 경우(S218), 제1 초기 비콘신호에 대응하는 제1 초기 응답신호를 송신하는 단계(S219), 기 설정된 시간동안 제1 초기 비콘신호가 수신되는지 판단하는(S220) 단계, 및 기 설정된 시간동안 제1 초기 비콘신호가 미수신되는 경우(S220), 경로를 설정하는 단계(S222)를 포함한다.
여기서 제2 초기 비콘신호는 제1 초기 비콘신호를 신호처리하여 생성되고, 제2 초기 응답신호는 제1 초기 응답신호를 신호처리하여 생성된다. 따라서 I_BEACON이 제1 초기 비콘신호라면, 신호처리하여 생성된 I_BEACON은 제2 초기 비콘신호이고, I_RESPONSE가 제1 초기 응답신호라면 신호처리하여 생성된 I_RESPONSE는 제2 초기 응답신호가 된다.
여기서 신호처리 절차에 대해서는 후술하기로 한다.
우선 클러스터 헤드는 RX I_BEACON 경로(phase)를 통해 I_BEACON을 수신한다(S211).
수신된 I_BEACON은 다음과 같은 절차에 따라 처리된다.
클러스터 헤드의 RX I_BEACON 처리방법
1. 우선 수신된 I_BEACON의 헤더를 확인하여 다음의 수순으로 처리된다.
a. Csum 값을 확인하여 에러(err) 발생여부를 판단하여, 에러가 발생했다면, 수신된 패킷을 드랍(drop)한다.
b. Csum 값에 에러가 발생하지 않았다면 Seq 값을 확인하는데, Seq 값이 동일하지 않다면, 이전의 Seq 값을 가지는 패킷들을 폐기하고, count=1로 패킷 버퍼에 저장한다. 그리고 시간동기(Time synchronization phase)를 수행한다. 시간동기(Time synchronization phase)는 BEACON에서 수신한 정보를 이용하여 수정된 시간정보를 제공하는 것이다. 구체적으로 입력되는 정보로는 Seq, i, hi, FN, LEN, TS이다. 여기서 TS는 시간 정보로서 모선 또는 클러스터 헤드가 BEACON 패킷을 보낸 시간을 의미한다. 이와 같은 정보가 입력되면 수정된 시간정보가 출력된다.
2. Seq 값이 동일하지 않다면, 수신된 패킷의 hi가 클러스터 헤드 자신의 hi보다 높은지 판단하고 높다면 수신된 패킷을 드랍한다.
3. 높지 않다면, TS를 업데이트한다. 여기서 TS 업데이트는 hi가 클러스터 헤드 자신의 hi보다 낮은 TS 값만을 저장하는 것이다.
4. FN 값이 존재하는지 확인하여, 존재하면 수신된 패킷을 드랍한다.
5. FN 값이 존재하지 않는다면 패킷 카운트를 1 증가시키고, 패킷 버퍼에 저장하며, 클러스터 헤드 CH IB_table 을 업데이트한다.
6. 여기서 CH IB_table 정보는 Seq, i, FN, LEN, TS, 카운트(count) 정보이다.
상술한 바와 같이 단계 S211이 수행되면, count와 LEN이 동일한지의 여부를 판단하는 단계가 이어진다(S212)
이때 count = LEN이라면 타임 파라미터(Time Parameter)를 획득하고, 시간 동기를 수행하며, CH IB_table을 업데이트한다(S213).
여기서 CH IB_table의 업데이트 항목은 Seq, i, hi, FN, LEN, TS, count, tIB , tIR , TB(h, k, j), troute, Troute이다
한편, count LEN면 단계 S211로 회귀한다.
다음은 tC > tIB + TB(h, k, j)인지 판단하여(S214) 그렇다면 단계 S211로 회귀한다.
한편 tC > tIB + TB(h, k, j)이 아니라면, TX I_BEACON 경로(phase)를 통해 다음과 같이 처리된 I_BEACON을 전송한다(S215).
클러스터 헤드의 TX I_BEACON을 처리방법
1. 다음의 수순으로 수신된 I_BEACON 정보를 이용하여 헤더를 설정한 후, 페이로드를 설정한다.
a. 수신된 패킷과 동일하게 설정되는 정보는 CN, Seq, FN, LEN이고, hi i, Csum, TS는 클러스터 헤드 자신의 정보로 변경한다.
b. 페이로드는 동일하게 설정한다.
2. 이후 CH IB_table 업데이트한다. 이때, 업데이트 항목으로는 tIB, tIR, TB(h, k, j), TR(h, k, j), troute, Troute이다.
3. 업데이트가 종료되면, tIB + TB(h, k, j) 시간까지 TX I_BEACON을 브로드캐스팅한다.
4. 마지막으로, tIR 시간까지 슬립모드나 절전모드로 전환하여 전원의 소모를 방지한다.
다음은 tC < tIR + TR(h, k, j)인지 판단하여(S215) 그렇다면 RX I_RESPONSE 경로(phase)를 통해 I_RESPONSE를 수신하고 기 설정된 시간동안 슬립모드(Sleep Mode)가 설정된다(S217).
즉, 슬립모드는 tIB + TB(h, k, j) 시간까지 TX I_BEACON을 브로드캐스팅한 후, tIR 시간까지 설정된다.
수신된 RX I_RESPONSE는 다음과 같이 처리된다.
클러스터 헤드의 RX I_ RESPONSE 처리방법
1. 우선 수신된 I_RESPONSE의 패킷 헤드는 다음의 수순으로 처리한다.
a. Csum 값을 확인하여 에러 발생여부를 확인한다. 에러가 발생했다면 수신된 패킷을 드랍(drop)하고, 에러가 발생하지 않았다면 tc 값을 확인한다.
b. tC > tIR + TR(h, k, j)라면 패킷을 드랍하고, tC > tIR + TR(h, k, j)가 아니라면 RESPONSE time offset 값을 확인한다.
c. RESPONSE time offset 값이 없다면 패킷을 드랍하고, 있다면 hi 값을 확인한다.
d. hi가 현재 패킷을 수신받은 클러스터 헤드의 hi보다 낮다면 패킷을 폐기하고, 그렇지 않다면 i 값을 확인한다.
e. i 값을 확인한 결과 새로운 클러스터 헤드라고 판단하면 패킷 버퍼에 저장하고, CH IR_table을 업데이트한다. i 값을 확인한 결과 새로운 클러스터 헤드가 아니라고 판단하면 FN 값을 확인한다.
f. FN = LEN 이라면, 페이로드를 분석하여 전달할 클러스터 헤드의 hi, i, Posi 정보를 획득하여 CH IR_table을 업데이트한다.
g. FN LEN 이라면, 패킷 버퍼에 저장하고, CH IR_table을 업데이트한다.
h. 여기서 업데이트되는 항목으로는 FN, LEN, hi, i, Posi 값이다.
한편, tC = tIR + TR(h, k, j)인지 판단한다(S218)
tC = tIR + TR(h, k, j)라면 TX I_RESPONSE 경로(phase)를 통해 I_RESPONSE를 송신한다(S219). 다음은 클러스터 헤드에서 송신하는 I_RESPONSE의 생성에 대하여 설명한다.
클러스터 헤드의 TX I_RESPONSE 생성방법
1. 우선 다음의 수순으로 헤더 및 페이로드를 설정한다.
a. 헤더의 CN은 2로 설정하고, Seq는 수신한 I_BEACON 값과 동일하게 설정한다. 한편 hi, i, FN, LEN, Csum 값은 자신의 번호로 변경한다.
b. 페이로드는 수신된 I_RESPONSE에서 업데이트된 hi, i, Posi정보와 자신의 위치정보를 포함한다. 이와 같이 구성된 I_RESPONSE의 패킷은 도 12에 예시하였다. 도 12는 클러스터 헤드에 의해 생성된 I_RESPONSE의 패킷구조를 보여주는 예시도이다.
2. 이와 같이 패킷이 생성되면, tIR + TR(h,k,j) 시간에 I_RESPONSE를 브로드캐스팅한다.
3. 브로드캐스팅을 종료하면 수신된 I_RESPONSE를 제거한다.
4. 이후 troute - tIR - TR(h,k,j) 시간에 타이머를 설정한다.
이와 같이 단계 S218가 종료되면 기 설정된 시간의 만료 여부를 확인한다(S220). 이때 타이머의 시간이 만료될 때까지 단계 S211까지 회귀하여 상술한 절차를 반복수행한다.
기 설정된 시간이 만료되면 I_BEACON의 수신여부를 확인하여(S221) 수신이 된 경우에는 단계 S211로 회귀하여 다시 상술한 절차를 수행하고, 수신이 확인되지 않는 경우에는 경로를 설정한다(Route determination phase)(S222).
클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 정상 스테이지
클러스터 헤드의 정상 스테이지에서는 비콘을 전달하고 응답을 송신하는데 이는 자신의 생존 정보를 모선으로 제공하기 위함이다.
특히 비콘의 전달하기 이전에 시간동기가 수행된다.
도 11은 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 정상 스테이지(S230)를 보여주는 순서도이다.
도 11을 참조하면 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 정상 스테이지(S230)는 제1 정상 비콘신호를 수신하는 단계(231), 제1 정상 비콘신호의 카운트가 한번에 보낼 수 있는 최대의 패킷 총 개수와 같은지 비교하여 같은 경우(S232), 타임 파라미터와 시간동기를 수행하는 단계(S233), 현재시간이 정상 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간 미만인 경우(S234), 제2 정상 비콘신호를 송신하고 기 설정된 시간동안 슬립모드(Sleep Mode)가 설정되는 단계(S235), 현재시간이 정상 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간 미만인 경우(S236), 제2 정상 응답신호를 수신하는 단계(S237), 및 현재시간이 정상 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간과 같은 경우, 제1 정상 비콘신호에 대응하는 제1 정상 응답신호를 송신하는 단계(S238)를 포함한다.
여기서 제2 정상 비콘신호는 제1 정상 비콘신호를 신호처리하여 생성되고, 제2 정상 응답신호는 제1 정상 응답신호를 신호처리하여 생성된다. 따라서 N_BEACON이 제1 정상 비콘신호라면, 신호처리하여 생성된 N_BEACON은 제2 정상 비콘신호이고, N_RESPONSE가 제1 정상 응답신호라면 신호처리하여 생성된 N_RESPONSE는 제2 정상 응답신호가 된다.
여기서 신호처리 절차에 대해서는 후술하기로 한다.
우선, RX N_BEACON 경로(phase)를 통해 N_BEACON을 수신한다(S231).
수신된 N_BEACON은 헤더를 확인하여 다음과 같이 처리한다.
클러스터 헤드의 RX N_BEACON 처리방법
1. 우선, Csum 값을 확인하여 에러 발생여부를 확인한다.
a. 에러가 발생하면, 패킷을 드랍하고, 에러가 발생하지 않으면 Seq 값을 확인한다.
b. Seq 값이 동일하다면, hi 값을 확인한다. Seq 값이 동일하지 않다면, 이전 Seq 값을 가지는 패킷들을 폐기하고, 카운트(count)를 1 증가시켜 패킷 버퍼에 저장한다. 이 후, CH NB_table 업데이트하고, 시간동기(Time synchronization phase)를 수행한다. 시간동기는 상술하였으므로 그 상세는 생략하기로 한다.
c. 홉 번호 hi가 클러스터 헤드 자신의 홉 번호 보다 높다면, 패킷을 드랍하고, 낮다면 TS를 업데이트한다. 즉, 홉 번호가 자신 보다 낮은 TS 값들만 저장하는 업데이트를 수행한다. 이후, FN 값을 확인한다.
d. SR이 존재하는지 판단하여 존재하면, FN 값을 확인하고, SR이 존재하지 않는다면 패킷을 드랍한다.
e. FN 값이 존재하면, FN 값을 확인하고, 그렇지 않다면 패킷 카운트를 1 증가시켜서 패킷을 저장하고, CH NB_table 업데이트한다.
여기서 CH NB_table 업데이트 항목은 Seq, i, hi, FN, LEN, TS, count 이다.
이와 같이 단계 S231을 수행한 후, count = LEN 인지 판단한다(S232).
한편, count = LEN 이라면, 시간 파라미터(timing parameter) 획득하고, 시간동기를 수행한 후(S233), CH NB_table을 업데이트한다(S233). 여기서 업데이트 항목으로는 Seq, i, hi, FN, LEN, TS, count, tNB, tNR이다.
count LEN 이라면 단계 S221로 회귀하여 상술한 절차를 반복수행한다.
다음 수순으로는, tc > tNB + TB(h,k,j) 인지 판단한다(S234).
tc > tNB + TB(h,k,j)이라면 단계 S231로 회귀하여 상술한 절차를 반복수행한다.
tc > tNB + TB(h,k,j)이 아니라면, TX N_BEACON 경로(phase)를 통해 다음의 절차로 처리생성된 N_BEACON을 전송한다(S235).
TX N_BEACON 경로(phase)를 통해 전송하는 N_BEACON의 생성방법에 대해 설명하면 다음과 같다.
클러스터 헤드의 TX N_BEACON 생성방법
1. 우선, 수신된 N_BEACON 정보를 이용하여 헤더를 설정한다.
a. 헤더는 수신된 N_BEACON 정보의 CN, Seq, FN, LEN는 동일하게 설정하고, hi 는 클러스터 헤드 자신의 hi 로, i도 자신의 i로 변경하고, Csum, TS도 변경하여 설정한다.
b. 이후 페이로드는 헤더는 수신된 N_BEACON 정보와 동일하게 설정한다.
2. 이와 같이 헤더와 페이로드가 설정되고 나면 CH NB_table 업데이트한다. 이때 업데이트 항목으로는 tNB와 tNR이다.
3. 이후, tNB + TB(h, k, j) 시간에 N_BEACON 브로드캐스팅한다.
4. 마지막으로 tNR 시간까지 슬립모드 또는 휴면모드로 전환한다.
즉, 슬립모드는 tNB + TB(h, k, j) 시간에 N_BEACON 브로드캐스팅한 후 tNR 시간까지 설정된다.
단계 S235 이 종료되면, tC < tNR + TR(h,k,j) 인지 판단한다(S236).
tC < tNR + TR(h,k,j)이라면, RX N_RESPONSE 경로(phase)를 통해 N_RESPONSE를 수신한다(S237). 여기서 수신된 N_RESPONSE는 다음과 같이 처리된다.
클러스터 헤드의 RX N_RESPONSE 처리방법
RX N_RESPONSE 경로(phase)를 통해 N_RESPONSE를 수신하는 절차는 다음과 같다.
1. 우선, 수신된 N_RESPONSE의 헤더를 확인하여 다음과 같이 처리한다.
a. Csum 값을 확인하여 에러가 발생하면 패킷을 드랍하고, 그렇지 않다면, tc 값을 확인한다.
b. tc > tNR + TR(h, k, j)라면 패킷을 드랍하고, SR값을 확인한다.
SR값이 존재한다면 FN 값을 확인하고, SR값이 존재하지 않는다면 패킷을 드랍한다.
c. 이후 FN 값이 LEN 값과 동일한지 확인하여, 동일하다면 페이로드를 분석하여 전달할 CH들의 hi, i, Posi, DATAi 값을 획득한 후 CH NR_table을 업데이트한다.
d. 한편 FN 값이 LEN 값과 동일하지 않다면, 패킷 버퍼 저장, CH NR_table 업데이트한다.
e. 이때, CH NR_table 업데이트 항목으로는 FN, LEN, hi, i, Posi, DATAi이다.
단계 S224가 수행되면, tc = tNR + TR(h, k, j)인지 판단한다(S238)
tc = tNR + TR(h, k, j)라면, TX N_RESPONSE 경로(phase)를 통해 N_RESPONSE를 송신한다(S239).
TX N_RESPONSE 경로(phase)를 통해 전송되는 N_RESPONSE를 생성하는 절차는 다음과 같다.
클러스터 헤드의 TX N_RESPONSE 생성방법
1. 우선, 헤더 및 페이로드 설정한다.
a. 헤더는 상술한 I_BEACON과 동일한 방법으로 설정한다.
b. 페이로드는 수신된 N_RESPONSE에서 업데이트된 hi, i, Posi 정보와 자신의 위치정보를 포함한다.
c. 이와 같이 구성된 N_RESPONSE 패킷은 헤더를 구성하는 CN은 6(N_RESPONSE), Seq, hi, i, FN, LEN, Csum으로 구성되고, 그 하위에 자신의 위치 정보인 Posi, 페이로드의 클러스터 헤드(CH)들의 정보인 i, Posi, DATAi들이 구성된다.
d. 이 후, tNR + TR(h, k, j) 시간에 N_RESPONSE 브로드캐스팅한 후, 수신한 N_RESPONSE 제거한다.
한편, tc tNR + TR(h, k, j) 이라면 단계 S231로 회귀한다.
클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 종료 스테이지
클러스터 헤드의 종료 스테이지에서는 비콘을 전달하고 응답을 송신함으로써 모선과의 통신을 종료한다.
도 12는 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 종료 스테이지(S250)를 보여주는 순서도이다.
도 12를 참조하면, 본 발명의 실시 예에 따르는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 중 클러스터 헤드(CH, Cluster Head)의 데이터링크 프로토콜의 종료 스테이지(S250)는 제1 종료 비콘신호를 수신하는 단계(S251), 제1 종료 비콘신호의 카운트가 한번에 보낼 수 있는 최대의 패킷 총 개수와 같은지 비교하여 같은 경우(S252), 타임 파라미터와 시간동기를 수행하는 단계(S253), 현재시간이 종료 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간 미만인 경우(S254), 제2 종료 비콘신호를 송신하고 기 설정된 시간동안 슬립모드(Sleep Mode)가 설정되는 단계(S255), 현재시간이 종료 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간 미만인 경우(S256), 제2 종료 응답신호를 수신하는 단계(S257), 및 현재시간이 종료 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간과 같은 경우(S258), 제1 종료 비콘신호에 대응하는 제1 종료 응답신호를 송신하는 단계(S259)를 포함한다.
여기서 제2 종료 비콘신호는 제1 종료 비콘신호를 신호처리하여 생성되고, 제2 종료 응답신호는 제1 종료 응답신호를 신호처리하여 생성된다. 따라서 N_BEACON이 제1 종료 비콘신호라면, 신호처리하여 생성된 N_BEACON은 제2 종료 비콘신호이고, N_RESPONSE가 제1 종료 응답신호라면 신호처리하여 생성된 N_RESPONSE는 제2 종료 응답신호가 된다.
여기서 신호처리 절차에 대해서는 후술하기로 한다.
우선 RX T_BEACON 경로(phase)를 통해 T_BEACON을 수신한다(S251).
수신된 T_BEACON은 헤더를 확인하여 다음과 같이 절차로 처리된다.
클러스터 헤드의 RX T_BEACON 처리방법
1. 우선 헤더의 Csum값을 확인하여 에러 발생했는지 확인한다.
a. 에러가 발생하면 패킷을 드랍하고, 그렇지 않다면 Seq값을 확인한다.
b. Seq값이 동일하다면 hi 값을 확인하고, 그렇지 않다면 Seq값을 가지는 패킷들을 폐기한 후, 카운트는 1로 패킷 버퍼에 저장한다. 이후 CH TB_table 업데이트하고, 시간동기(Time synchronization phase)를 수행한다. 시간동기는 상술하였으므로 그 상세는 생략하기로 한다.
c. 다음으로 홉 번호 hi가 현재 클러스터 헤드의 홉 번호 hi 보다 높다면 패킷을 드랍하고, 낮다면 TS를 업데이트한다. 즉, 홉 번호가 자신 보다 낮은 TS 값들만 저장하는 업데이트를 수행한다. 이후, FN 값을 확인한다.
d. 이후, SR 값의 존재를 확인하여 SR 값이 존재한다면 FN 값을 확인한다. SR 값이 존재하지 않는다면 패킷은 드랍한다.
e. FN 값이 존재한다면 FN 값을 확인하고, FN 값이 존재하지 않는다면 카운트를 1 증가시켜 패킷을 저장하고 CH TB_table 업데이트한다.
여기서 CH TB_table의 업데이트 항목으로는 Seq, i, hi, FN, LEN, TS, count 값이다.
단계 S251을 수행한 후, count = LEN이라면(S252) 시간 파라미터(timing parameter)를 획득하고, 시간동기(Time synchronization phase)를 수행하며, CH TB_table을 업데이트한다(S253).
CH TB_table의 업데이트 항목으로는 Seq, i, hi, FN, LEN, TS, count, tTB, tTR이다.
count LEN 이라면 단계 S221로 회귀하여 상술한 절차를 반복수행한다.
다음 절차로, tc > tTB + TB(h,k,j) 인지 판단한다(S254).
tc > tTB + TB(h,k,j) 라면, 단계 S221로 회귀하여 상술한 절차를 반복수행한다.
tc > tTB + TB(h,k,j)가 아니라면, TX T_BEACON 경로(phase)를 통해 T_BEACON을 전송한다(S255).
TX N_BEACON 경로(phase)를 통해 전송하는 T_BEACON을 생성하는 절차에 대해 설명하면 다음과 같다.
클러스터 헤드의 TX T_BEACON 생성방법
1. 우선, 수신된 T_BEACON 정보를 이용하여 헤더를 설정한다.
a. 헤더는 수신된 T_BEACON 정보의 CN, Seq, FN, LEN는 동일하게 설정하고, hi 는 자신의 hi 로, i도 자신의 i로 변경하고, Csum, TS도 변경하여 설정한다.
b. 이후 페이로드의 설정은 헤더는 수신된 T_BEACON 정보와 동일하게 설정한다.
2. 이와 같이 헤더와 페이로드가 설정되고 나면 CH TB_table 업데이트한다. 이때 업데이트 항목으로는 tTB와 tTR이다.
3. 이후, tTB + TB(h, k, j) 시간에 T_BEACON 브로드캐스팅한다.
마지막으로 tTR 시간까지 슬립모드 또는 휴면모드로 전환한다.
즉, 슬립모드는 tTB + TB(h, k, j) 시간에 T_BEACON 브로드캐스팅한 후 tTR 시간까지 설정된다.
단계 S255 이 종료되면, tC < tNR + TR(h,k,j) 인지 판단한다(S256).
tC < tNR + TR(h,k,j)이라면, RX T_RESPONSE 경로(phase)를 통해 T_RESPONSE를 수신한다(S257).
RX T_RESPONSE 경로(phase)를 통해 T_RESPONSE를 수신하는 절차는 다음과 같다.
클러스터 헤드의 RX T_RESPONSE 생성방법
1. 우선, 수신된 T_RESPONSE의 헤더를 확인하여 다음과 같이 처리한다.
a. Csum 값을 확인하여 에러가 발생하면 패킷을 드랍하고, 그렇지 않다면, tc 값을 확인한다.
b. tc > tTR + TR(h, k, j)라면 패킷을 드랍하고, SR값을 확인한다.
SR값이 존재한다면 FN 값을 확인하고, SR값이 존재하지 않는다면 패킷을 드랍한다.
c. 이후 FN 값이 LEN 값과 동일여부에 상관없이 패킷 버퍼에 저장하고 CH TR_table을 업데이트한다.
d. 이때, CH TR_table 업데이트 항목으로는 FN, LEN, hi, i 이다.
단계 S234 이 종료되면, tC = tNR + TR(h,k,j) 인지 판단한다(S258).
tC = tNR + TR(h,k,j)이라면, TX T_RESPONSE 경로(phase)를 통해 T_RESPONSE를 송신한다(259).
TX T_RESPONSE 경로(phase)를 통해 전송하는 T_RESPONSE를 생성하는 절차는 다음과 같다.
클러스터 헤드의 TX T_RESPONSE 생성방법
1. 우선, 헤더를 설정한다.
a. 헤더는 상술한 I_BEACON과 동일한 방법으로 설정한다.
b. 이 후, tTR + TR(h, k, j) 시간에서 T_RESPONSE 브로드캐스팅한 후, 수신한 T_RESPONSE 제거한다.
클러스터 헤드(CH, Cluster Head) 데이터링크 프로토콜의 패킷 처리 알고리즘
도 13은 본 발명의 실시 예에 따르는 클러스터 헤드 데이터링크 프로토콜의 패킷 처리 알고리즘을 상세하게 보여주기 위한 순서도이다.
클러스터 헤드 패킷 처리 알고리즘은 패킷 트레인 리드 알고리즘(Packet Train Read Algorithm, PTRA)으로부터 수신된 패킷 트레인을 분석해서 케이스별로 처리하는 알고리즘으로써 클러스터 헤드 데이터링크 프로토콜의 초기화 스테이지(S210), 정상 스테이지(S230) 및 종료 스테이지(S250)에서 공통적으로 사용된다.
이 알고리즘 역시 패킷 트레인의 모드 패킷이 수신되거나, 일부만 수신되어도 처리가 된다.
먼저, 패킷 트레인 리드 알고리즘(PTRA)으로부터 패킷 트레인을 수신하여(S171) I_BEACON인지 여부를 판단한다(S181).
I_BEACON인 경우, 타임옵셋(time offset, TO)을 설정한 후 시간을 동기화시키고(S182), I_BEACON이 아닌 경우 T_BEACON인지 여부를 판단한다(S183).
T_BEACON인 경우, 타이머를 셋업한 후에(S184) 최종 홉(hop)지 여부를 판단하고(S185), T_BEACON이 아닌 경우 다운링크 데이터인지 여부를 판단한다(S188).
단계(S185)에서 최종 홉인 경우 I_RESPONSE 또는 T_RESPONSE를 생성한 후에 패킷을 상위 계층인 QTX _DL_ PL로 전송하고(S186), 최종 홉이 아닌 경우 I_BEACON 또는 T_BEACON의 헤더와 페이로드를 수정한 후에 패킷을 상위 계층인 QTX _DL_ PL로 전송한다(S187).
단계(S188)에서 다운링크 데이터인 경우 시간을 동기화시키고(S189), 다운링크 데이터가 아닌 경우 라우트 테이블을 참고하여 전달해야 하는 다음 홉 CH의 주소(NH)인지 여부를 판단한다(S190).
단계(S189) 후에 브로드캐스트 모드인지 여부를 판단하여(S193), 브로드캐스트 모드인 경우 최종 홉(hop)인지 여부를 판단하고(S194), 브로드캐스트 모드가 아닌 경우 다운링크 라우트 테이블을 이용하여 자신이 CS가 전송하는 유니캐스트 데이터 패킷을 위한 CH의 주소(TH)인지 여부를 판단한다(S196).
단계(S194)에서 최종 홉인 경우 패킷을 상위 계층인 QTX _DL_UL로 전송하고(S195), 최종 홉이 아닌 경우 다운링크 데이터를 수정한 후에 패킷을 상위 계층인 QTX _DL_ PL로 전송한다(S198).
단계(S196)에서 CS가 전송하는 유니캐스트 데이터 패킷을 위한 CH의 주소(TH)인 경우 패킷을 상위 계층인 QTX _DL_UL로 전송하고(S199), CS가 전송하는 유니캐스트 데이터 패킷을 위한 CH의 주소(TH)가 아닌 경우 다운링크 라우트 테이블을 이용하여 자신이 라우트 테이블을 참고하여 전달해야 하는 다음 홉 CH의 주소(NH)인지 여부를 판단한다(S197).
라우트 테이블을 참고하여 전달해야 하는 다음 홉 CH의 주소(NH)인 경우 수신한 다운링크 데이터를 수정한 후에 패킷을 상위 계층인 QTX _DL_ PL로 전송하고(S198), 다음 홉 CH의 주소(NH)가 아닌 경우 패킷을 드롭한다(S192).
단계(S190)에서 라우트 테이블을 참고하여 전달해야 하는 다음 홉 CH의 주소(NH)인 경우 I_RESPONSE, T_RESPONSE 또는 업링크 데이터를 수정한 후에 패킷을 상위 계층인 QTX _DL_ PL로 전송하고(S191), 다음 홉 CH의 주소(NH)가 아닌 경우 패킷을 드롭한다(S192).
이와 같이 본 발명의 실시 예와 같이 구성됨으로써 모선과 다수의 클러스터 헤드들간의 통신효율을 향상시킬 수 있을뿐 아니라, 수중 장거리 네트워크에서 패킷 트레인 형태의 송수신시 메시지 오버헤드를 감소시키고 전체적인 네트워크 프로토콜의 수신 알고리즘 복잡도를 낮춰 열악한 수중 네트워크 통신 시스템의 성능을 향상시킬 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
CS: 모선 CH: 클러스터 헤드

Claims (17)

  1. (A) 모선이 초기 통신경로를 설정하는 초기 스테이지;
    (B) 상기 통신경로를 통해 상기 모선과 다수의 클러스터 헤드가 통신을 수행하는 정상 스테이지; 및
    (C) 상기 모선과 상기 다수의 클러스터 헤드가 통신을 종료하는 종료 스테이지를 포함하며,
    상기 통신은 시간분할다중접속(TDMA) 방식으로 패킷을 일괄전송하기 위한 패킷 트레인 형식의 패킷을 송수신하고,
    상기 패킷 트레인 형식의 패킷 수신은
    (D) 패킷 트레인 리드 알고리즘에 의해 큐로부터 패킷을 수신하여 수신된 패킷의 에러가 있는지 여부에 따라 헤더 및 RX 상태 테이블을 체크하고, 중복 여부에 따라 상기 수신된 패킷의 수 및 패킷 로스의 회수를 초기화하며, 중간에 새로운 시작 패킷이 수신되었는지 여부에 따라 상기 수신된 패킷의 수가 조각된 패킷의 총 개수인지 여부를 판단하는 단계; 및
    (E) 상기 패킷 트레인 리드 알고리즘으로 생성된 패킷 트레인을 수신하여 응답 신호가 비콘 신호의 Seq 값과 동일한지 여부 및 업링크 데이터인지 여부에 따라 상기 RX 상태 테이블 업데이트의 여부 및 상위 계층으로의 전송 여부가 결정되는 단계;를 포함하는
    것을 특징으로 하는
    수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  2. 청구항 1에 있어서, 상기 (A) 단계는
    (a) 상기 모선이 초기 비콘신호를 송신하는 단계;
    (b) 상기 초기 비콘신호에 대응하는 상기 다수의 클러스터 헤드의 초기 응답신호를 모선이 수신하는 단계;
    (c) 상기 초기 응답신호의 기 설정된 수신대기 시간이 만료하였는지 판단하는 단계;
    (d) 상기 (c) 단계에서, 상기 수신대기 시간이 만료되면, 상기 다수의 클러스터 헤드의 상기 초기 응답신호가 모두 수신되었는지 판단하는 단계; 및
    (e) 상기 (d) 단계에서, 상기 초기 응답신호가 모두 수신되었다면 상기 모선과 상기 다수의 클러스터 헤드와의 통신경로를 설정하는 단계
    를 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  3. 청구항 1에 있어서, 상기 (B) 단계는
    (a) 상기 모선이 상기 다수의 클러스터 헤드로 정상 비콘신호를 송신하는 단계;
    (b) 상기 정상 비콘신호에 대응하는 상기 다수의 클러스터 헤드의 정상 응답신호를 상기 모선이 수신하는 단계;
    (c) 상기 정상 응답신호의 기 설정된 수신대기 시간이 만료되었는지 판단하는 단계; 및
    (d) 상기 (c) 단계에서 상기 수신대기 시간이 만료한 경우, 상기 응답신호의 응답 실패 횟수가 기 설정된 응답 실패 제한 횟수를 초과하는지 판단하는 단계
    를 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  4. 청구항 1에 있어서, 상기 (C) 단계는
    (a) 상기 모선이 종료 비콘신호를 상기 다수의 클러스터 헤드로 송신하는 단계;
    (b) 상기 종료 비콘신호에 대응하는 상기 다수의 클러스터 헤드의 종료 응답신호를 상기 모선이 수신하는 단계;
    (c) 상기 (b) 단계에서 상기 정상 응답신호의 기 설정된 수신대기 시간이 만료되었는지 판단하는 단계; 및
    (d) 상기 (c) 단계에서 상기 수신대기 시간이 만료되는 경우, 상기 응답신호가 모두 상기 모선으로 수신되었는지 판단하는 단계
    를 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  5. 청구항 1에 있어서, 상기 (D) 단계는
    (a) 상기 큐가 비어 있는지 여부를 체크하여 연속적으로 비어 있는 경우 EQ가 EQmax 미만이지 판단하고, 상기 큐가 차 있는 경우 상기 EQ를 초기화하고, 상기 큐로부터 패킷을 읽어 BUF에 임시 저장하는 단계;
    (b) 상기 수신된 패킷의 에러가 있는지 여부에 따라 상기 헤더 및 상기 RX 상태 테이블을 체크하여 중간에 새로운 시작 패킷이 수신되었는지 여부를 판단하고, 중간에 새로운 시작 패킷이 수신된 것이 아닌 경우 상기 중복 여부에 따라 상기 수신된 패킷의 수 및 상기 패킷 로스의 회수를 초기화하는 단계; 및
    (c) 상기 수신된 패킷의 수가 상기 조각된 패킷의 총 개수인지 여부 및 상기 패킷 로스의 여부에 따라 상기 수신된 패킷의 에러가 있는지 여부를 판단하고, 상기 수신된 패킷의 에러 유무에 따라 상기 헤더 및 상기 RX 상태 테이블을 체크하며, 중간에 새로운 시작 패킷이 수신되었는지 여부에 따라 상기 중복 여부를 판단하거나, 상기 수신된 패킷의 수가 상기 조각된 패킷의 총 개수인지 여부를 판단하는 단계;
    를 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  6. 청구항 5에 있어서, 상기 (a) 단계는
    (a-1) 상기 큐를 체크하여 상기 큐가 연속적으로 비어 있는지 여부를 판단하는 단계;
    (a-2) 상기 큐가 연속적으로 비어 있는 경우, 상기 EQ를 '1' 증가시켜 상기 EQ가 상기 EQmax 미만이지 판단하는 단계;
    (a-3) 상기 EQ가 상기 EQmax 미만인 경우 상기 단계(a-1)로 회귀하는 단계; 및
    (a-4) 상기 단계(a-1)에서 상기 큐가 차 있는 경우, 상기 EQ를 '0'으로 초기화하고, 상기 큐로부터 패킷을 수신하여 상기 BUF에 임시 저장하는 단계;
    를 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  7. 청구항 6에 있어서, 상기 (b) 단계는
    (b-1) 상기 수신된 패킷의 에러가 있는지 여부를 판단하여 에러가 있는 경우 상기 BUF를 삭제하고 상기 단계(a-1)로 회귀하고, 에러가 없는 경우 상기 헤더 및 상기 RX 상태 테이블을 체크하는 단계;
    (b-2) 중간에 새로운 시작 패킷이 수신되었는지 여부를 판단하여, 중간에 새로운 시작 패킷이 수신된 경우에는 상기 BUF를 삭제하고 상기 단계(a-1)로 회귀하고, 중간에 새로운 시작 패킷이 수신된 것이 아닌 경우 상기 중복 여부를 판단하는 단계;
    (b-3) 중복인 경우 상기 BUF를 삭제하고 상기 단계(a-1)로 회귀하며, 중복이 아닌 경우 상기 수신된 패킷의 수를 '1'로 초기화하고, 패킷 트레인에서 발생한 상기 패킷 로스의 회수를 '0'으로 초기화하는 단계;
    을 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  8. 청구항 7에 있어서, 상기 (c) 단계는
    (c-1) 상기 수신된 패킷의 수가 상기 조각된 패킷의 총 개수인지 여부를 판단하는 단계;
    (c-2) 상기 조각된 패킷의 총 개수가 아닌 경우 상기 큐를 체크하여 상기 패킷 로스가 있는지 여부를 판단하는 단계;
    (c-3) 상기 패킷 로스가 있는 경우 상기 수신된 패킷의 수 및 상기 패킷 로스의 회수를 '1' 증가시켜 상기 수신된 패킷의 수가 상기 조각된 패킷의 총 개수인지 여부를 판단하는 단계;
    (c-4) 상기 패킷 로스가 없는 경우, 상기 큐로부터 패킷을 수신하여 상기 BUF에 임시 저장한 후, 상기 수신된 패킷의 에러가 있는지 여부를 판단하는 단계;
    (c-5) 상기 수신된 패킷의 에러가 없는 경우 상기 헤더 및 상기 RX 상태 테이블을 체크하는 단계;
    (c-6) 중간에 새로운 시작 패킷이 수신되었는지 여부에 따라 현재 패킷을 상기 BUF에 저장한 후 중복 여부를 판단하고 상기 단계(b-3)로 회귀하거나, 상기 BUF의 삭제 및 현재 패킷의 상기 BUF에 저장한 후 상기 단계(c-1)로 회귀하는 단계;
    를 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  9. 청구항 5에 있어서, 상기 (E) 단계는
    (e-1) 상기 패킷 트레인을 수신하여 상기 비콘 신호인 I_BEACON 또는 T_BEACON인지 여부를 판단하는 단계;
    (e-2) 상기 I_BEACON 또는 상기 T_BEACON인 경우 상기 BUF를 삭제하고 타이머가 종료했는지 여부를 판단하고, 상기 I_BEACON 또는 상기 T_BEACON이 아닌 경우 상기 응답 신호인 I_RESPONSE 또는 T_RESPONSE 인지 여부를 판단하는 단계;
    (e-3) 상기 타이머가 종료한 경우에는 동작을 종료하고, 상기 타이머가 종료하지 않은 경우에는 상기 단계(e-1)로 회귀하는 단계;
    (e-4) 상기 I_RESPONSE 또는 상기 T_RESPONSE인 경우 송신한 상기 I_BEACON 또는 상기 T_BEACON과 상기 Seq 값의 동일 여부를 판단하여 동일한 경우 상기 RX 상태 테이블을 업데이트하고, 동일하지 않은 경우 상기 BUF를 삭제하고 상기 단계(e-3)로 회귀하는 단계; 및
    (e-5) 상기 I_RESPONSE 또는 상기 T_RESPONSE가 아닌 경우 업링크 데이터인지 여부를 판단하여 상기 업링크 데이터인 경우 상기 RX 상태 테이블을 업데이트한 후 패킷을 상기 상위 계층으로 전송하고, 상기 업링크 데이터가 아닌 경우 상기 BUF를 삭제하고 상기 단계(e-3)로 회귀하는 단계;
    를 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  10. (A) 클러스터 헤드가 제1 초기 비콘신호를 수신받아 상기 제1 초기 비콘신호에 대응하는 제1 초기 응답신호를 송신하고, 제2 초기 비콘신호를 송신하여 상기 제2 초기 비콘신호에 대응하는 제2 초기 응답신호를 수신받아 경로를 설정하는 초기 스테이지;
    (B) 상기 클러스터 헤드가 제1 정상 비콘신호를 수신받아 상기 제1 정상 비콘신호에 대응하는 제1 정상 응답신호를 송신하고, 제2 정상 비콘신호를 송신하여 상기 제2 정상 비콘신호에 대응하는 제2 정상 응답신호를 수신받는 정상 스테이지; 및
    (C) 상기 클러스터 헤드가 제1 종료 비콘신호를 수신받아 상기 제1 종료 비콘신호에 대응하는 제1 종료 응답신호를 송신하고, 제2 종료 비콘신호를 송신하여 상기 제2 종료 비콘신호에 대응하는 제2 종료 응답신호를 수신받는 종료 스테이지를 포함하되,
    상기 제1 초기 응답신호는 상기 제2 초기 응답신호의 정보를 포함하고, 상기 제1 정상 응답신호는 상기 제1 정상 응답신호의 정보를 포함하며, 상기 제1 종료응답신호는 상기 제2 종료 응답신호의 정보를 포함하고,
    상기 신호들의 송수신은 시간분할다중접속(TDMA) 방식으로 패킷을 일괄전송하기 위한 패킷 트레인 형식의 패킷을 송수신하며,
    상기 패킷 트레인 형식의 패킷 수신은
    (D) 패킷 트레인 리드 알고리즘에 의해 큐로부터 패킷을 수신하여 수신된 패킷의 에러가 있는지 여부에 따라 헤더 및 RX 상태 테이블을 체크하고, 중복 여부에 따라 수신된 패킷의 수 및 패킷 로스의 회수를 초기화하며, 중간에 새로운 시작 패킷이 수신되었는지 여부에 따라 상기 수신된 패킷의 수가 조각된 패킷의 총 개수인지 여부를 판단하는 단계; 및
    (E) 상기 패킷 트레인 리드 알고리즘으로 생성된 패킷 트레인을 수신하여 비콘 신호의 종류 또는 다운링크 데이터 여부에 따라 시간을 동기화 또는 타이머를 셋업시키며, 브로드캐스트 모드인지 여부에 따라 최종 홉인지 여부인지 여부를 판단하여 응답 신호를 생성하거나, 비콘 신호 또는 다운링크 데이터를 수정한 후에 패킷을 상위 계층으로 전송하거나, 상기 클러스터 헤드의 주소의 종류에 따라 상기 다운링크 데이터, 업링크 데이터 또는 상기 응답 신호를 수정한 후에 패킷을 상위 계층으로 전송 또는 드롭하는 단계;
    를 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  11. 청구항 10에 있어서, 상기 (A) 단계는
    (a) 상기 클러스터 헤드가 제1 초기 비콘신호를 수신하는 단계;
    (b) 상기 제1 초기 비콘신호의 카운트가 한번에 보낼 수 있는 최대의 패킷 총 개수와 같은지 비교하여 같은 경우, 타임 파라미터와 시간동기를 수행하는 단계;
    (c) 현재시간이 초기 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간을 초과하지 않는 경우, 상기 제2 초기 비콘신호를 송신하고 기 설정된 시간동안 슬립모드(Sleep Mode)가 설정되는 단계;
    (d) 현재시간이 초기 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간 미만인 경우, 상기 제2 초기 응답신호를 수신하는 단계;
    (e) 현재시간이 초기 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간과 같은 경우, 상기 제1 초기 비콘신호에 대응하는 제1 초기 응답신호를 송신하는 단계;
    (f) 기 설정된 시간동안 상기 제1 초기 비콘신호가 수신되는지 판단하는 단계; 및
    (g) 상기 기 설정된 시간동안 상기 제1 초기 비콘신호가 미수신되는 경우, 경로를 설정하는 단계
    를 포함하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  12. 청구항 10에 있어서, 상기 (B) 단계는
    (a) 제1 정상 비콘신호를 수신하는 단계;
    (b) 상기 제1 정상 비콘신호의 카운트가 한번에 보낼 수 있는 최대의 패킷 총 개수와 같은지 비교하여 같은 경우, 타임 파라미터와 시간동기를 수행하는 단계;
    (c) 현재시간이 정상 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간 미만인 경우, 상기 제2 정상 비콘신호를 송신하고 기 설정된 시간동안 슬립모드(Sleep Mode)가 설정되는 단계;
    (d) 현재시간이 정상 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간 미만인 경우, 상기 제2 정상 응답신호를 수신하는 단계; 및
    (e) 현재시간이 정상 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간과 같은 경우, 상기 제1 정상 비콘신호에 대응하는 제1 정상 응답신호를 송신하는 단계
    를 포함하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  13. 청구항 10에 있어서, 상기 (C) 단계는
    (a) 제1 종료 비콘신호를 수신하는 단계;
    (b) 상기 제1 종료 비콘신호의 카운트가 한번에 보낼 수 있는 최대의 패킷 총 개수와 같은지 비교하여 같은 경우, 타임 파라미터와 시간동기를 수행하는 단계;
    (c) 현재시간이 종료 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간 미만인 경우, 상기 제2 종료 비콘신호를 송신하고 기 설정된 시간동안 슬립모드(Sleep Mode)가 설정되는 단계;
    (d) 현재시간이 종료 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간 미만인 경우, 상기 제2 종료 응답신호를 수신하는 단계; 및
    (e) 현재시간이 종료 비콘의 송신 시작시간과 홉 h, 서브 홉 k에 있는 j의 비콘 타임옵셋을 합한 시간과 같은 경우, 상기 제1 종료 비콘신호에 대응하는 제1 종료 응답신호를 송신하는 단계
    를 포함하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  14. 청구항 10에 있어서, 상기 (E) 단계는
    (e-1) 상기 패킷 트레인을 수신하여 상기 비콘 신호 중 I_BEACON인지 여부를 판단하는 단계;
    (e-2) 상기 I_BEACON인 경우 타임옵셋을 설정한 후 시간을 동기화시키고, 상기 I_BEACON이 아닌 경우 상기 비콘 신호 중 T_BEACON인지 여부를 판단하는 단계;
    (e-3) 상기 T_BEACON인 경우 상기 타이머를 셋업한 후에 최종 홉인지 여부를 판단하고, 상기 T_BEACON이 아닌 경우 상기 다운링크 데이터인지 여부를 판단하는 단계; 및
    (e-4) 최종 홉인 경우 상기 응답 신호인 I_RESPONSE 또는 T_RESPONSE를 생성한 후에 패킷을 상기 상위 계층으로 전송하고, 최종 홉이 아닌 경우 상기 I_BEACON 또는 상기 T_BEACON의 헤더와 페이로드를 수정하고 패킷을 상기 상위 계층으로 전송하는 단계;
    를 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  15. 청구항 14에 있어서, 상기 (E) 단계는
    (e-5) 상기 (e-3) 단계에서 상기 다운링크 데이터인 경우 시간을 동기화시키고, 상기 브로드캐스트 모드인지 여부를 판단하여 상기 브로드캐스트 모드인 경우 최종 홉인지 여부를 판단하는 단계;
    (e-6) 최종 홉인 경우 패킷을 상기 상위 계층으로 전송하고, 최종 홉이 아닌 경우 상기 다운링크 데이터를 수정한 후에 패킷을 상기 상위 계층으로 전송하는 단계;
    를 더 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  16. 청구항 15에 있어서, 상기 (E) 단계는
    (e-7) 상기 브로드캐스트 모드가 아닌 경우 다운링크 라우트 테이블을 이용하여 모선이 전송하는 유니캐스트 데이터 패킷을 위한 상기 클러스터 헤드의 주소(TH)인지 여부를 판단하는 단계;
    (e-8) 상기 클러스터 헤드의 주소(TH)인 경우 패킷을 상기 상위 계층으로 전송하고, 상기 클러스터 헤드의 주소(TH)가 아닌 경우 상기 다운링크 라우트 테이블을 이용하여 라우트 테이블을 참고하여 전달해야 하는 다음 홉 클러스터 헤드의 주소(NH)인지 여부를 판단하는 단계;
    (e-9) 상기 다음 홉 클러스터 헤드의 주소(NH)인 경우 수신한 상기 다운링크 데이터를 수정한 후에 패킷을 상기 상위 계층으로 전송하고, 상기 다음 홉 클러스터 헤드의 주소(NH)가 아닌 경우 패킷을 드롭하는 단계;
    를 더 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
  17. 청구항 16에 있어서, 상기 (E) 단계는
    (e-10) 상기 다운링크 데이터가 아닌 경우 상기 다음 홉 클러스터 헤드의 주소(NH)인지 여부를 판단하는 단계;
    (e-11) 상기 다음 홉 클러스터 헤드의 주소(NH)인 경우 상기 I_RESPONSE, 상기 T_RESPONSE 또는 상기 업링크 데이터를 수정한 후에 패킷을 상기 상위 계층으로 전송하고, 상기 다음 홉 클러스터 헤드의 주소(NH)가 아닌 경우 패킷을 드롭하는 단계;
    를 더 포함하는 것을 특징으로 하는 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜을 이용한 통신 방법.
KR1020150107519A 2015-07-29 2015-07-29 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜 KR101593504B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150107519A KR101593504B1 (ko) 2015-07-29 2015-07-29 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150107519A KR101593504B1 (ko) 2015-07-29 2015-07-29 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜

Publications (1)

Publication Number Publication Date
KR101593504B1 true KR101593504B1 (ko) 2016-02-19

Family

ID=55448830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150107519A KR101593504B1 (ko) 2015-07-29 2015-07-29 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜

Country Status (1)

Country Link
KR (1) KR101593504B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115987886A (zh) * 2022-12-22 2023-04-18 厦门大学 一种基于元学习参数优化的水声网络q学习路由方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000016812A (ko) * 1996-06-21 2000-03-25 포만 제프리 엘 패킷 트레인화 방법 및 장치 및 컴퓨터 프로그램 제품
KR101090402B1 (ko) 2009-08-11 2011-12-06 한국해양연구원 수중 음향 네트워크를 위한 계층적 시간 분할 다중 접속 방법
KR101137164B1 (ko) * 2003-03-03 2012-04-23 마이크로소프트 코포레이션 단-대-단 측정에 기초한 네트워크 상으로의 데이터 스트림 유입 제어
KR101360794B1 (ko) * 2013-06-28 2014-02-12 한국해양과학기술원 수중 장거리 네트워크를 위한 시간분할 다중접속 매체접속제어 프로토콜

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000016812A (ko) * 1996-06-21 2000-03-25 포만 제프리 엘 패킷 트레인화 방법 및 장치 및 컴퓨터 프로그램 제품
KR101137164B1 (ko) * 2003-03-03 2012-04-23 마이크로소프트 코포레이션 단-대-단 측정에 기초한 네트워크 상으로의 데이터 스트림 유입 제어
KR101090402B1 (ko) 2009-08-11 2011-12-06 한국해양연구원 수중 음향 네트워크를 위한 계층적 시간 분할 다중 접속 방법
KR101360794B1 (ko) * 2013-06-28 2014-02-12 한국해양과학기술원 수중 장거리 네트워크를 위한 시간분할 다중접속 매체접속제어 프로토콜

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115987886A (zh) * 2022-12-22 2023-04-18 厦门大学 一种基于元学习参数优化的水声网络q学习路由方法
CN115987886B (zh) * 2022-12-22 2024-06-04 厦门大学 一种基于元学习参数优化的水声网络q学习路由方法

Similar Documents

Publication Publication Date Title
US6801512B1 (en) Method and apparatus for providing a distributed architecture digital wireless communication system
JP4058450B2 (ja) 無線パケット通信方法および無線パケット通信装置
US7995524B2 (en) Wireless communication system and method
US20020085531A1 (en) Wireless network with a selection of transport format combinations
EP1786120A1 (en) Method and apparatus for a relay
CN103078795B (zh) 提高无线网络吞吐量的协作路由方法
KR101593504B1 (ko) 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜
KR20070048438A (ko) 광대역 무선접속 통신망에서 멀티홉시스템을 위한자동반복요청 장치 및 방법
CN102404078B (zh) 一种在lte-a中实现网络编码的方法
CN111641990A (zh) 高数据包投递率与能量有效性的水声传感器网络传输方法
KR101360794B1 (ko) 수중 장거리 네트워크를 위한 시간분할 다중접속 매체접속제어 프로토콜
EP3876455B1 (en) Relays in structured ad hoc networks
JP5394419B2 (ja) 無線通信システム及び中継局
US9661549B2 (en) Node of an improved multihop ad-hoc radio network and associated method
CN110381561B (zh) 一种缓存辅助的多中继传输***中基于能效的安全传输方法
KR101371322B1 (ko) 수중 장거리 네트워크를 위한 시간분할 다중접속 매체접속제어 프로토콜의 시간 파라미터 결정방법
JP2023545602A (ja) Integrated Access Backhauledにおける無線リンクの並行使用の制御
CN109348492B (zh) 一种控制开销受限的mac层传输协议设计方法
CN102045102B (zh) 采用无速率码传输信息的方法、***及中继站
CN113766602A (zh) 一种无线网络的组网方法及无线网络结构
CN114598398B (zh) 基于自适应重传的水声网络数据传输方法
Bao et al. Multi-connectivity using erasure code for reliable transmission in millimeter wave communications
EP4297316A1 (en) Cooperative transmission continuous transmission enhancement
CN115811773A (zh) 一种无线自组网的高可靠数据传输方法
CN108668383B (zh) 基于构造干扰的无线传感器网络数据分发的拓扑控制方法

Legal Events

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

Payment date: 20190102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5