Devsign(Develop & design)

STCP(Sensor Transmission Control Protocol)은 제어된 가변 신뢰성, 혼잡 탐지와 회피를 제공하는데 있어서 싱크 노드가 대부분 기능을 수행한다.
각 센서 노드는 흐름 종류나 전송률, 요구되는 신뢰성 등을 고려하여 싱크 노드들에게 데이터를 전송한다.
STCP는 응용마다 다른 특성을 고려하여 각 노드는 다양한 응용에 적합할 수 있도록 다양한 데이터 흐름ㅇ르 제공하며, 혼잡 제어와 회피, 신뢰성 같은 기능을 추가적으로 수행한다.

STCP는 센서 노드가 센싱 데이터를 보내기 전에 세션 초기 패킷을 싱크 노드에게 전송한다.
세션 초기 패킷은 데이터 흐름, 지역 클럭 정보(전송시간), 데이터 흐름의 타입, 전송률, 신뢰성 등으로 구성되어 있다.
싱크 노드에서는 세션 초기 패킷의 정보를 저장하고 ACK신호를 각 센서 노드에게 전송하여 실제 센싱 데이터를 전송시킨다.

STCP의 헤더정보
데이터 패킷의 순서를 위한 시퀀스 넘버 필드가 있고 패킷의 특성을 확인하고, 흐름 종류를 나타내는 Flow ID, 혼잡 탐지와 회피를 지원하기 위해 CN(Congestion Notification) 비트가 있다.

Sequence Number
(16)

Flow ID(8)

CN(1)

Option(7)

Clock(32)



Clock 필드에는 패킷이 전송되는 지역 시간 정보가 있다. 센서 노드에게 데이터를 전송받은 싱크 노드는 ACK 패킷을 센서 노드에게 전송한다.

Sequence
Number(16)

Flow 
ID(8)

CN
(1)

ACK/
NACK(1)

Option
(6)

Clock
(32)



STCP의 흐름
STCP의 흐름에는 두 가지(연속, 이벤트 기반)이 있다.
흐름-연속
1. 싱크노드가 센서노드의 전송률을 센서 노드로부터 받아서 기대한 시간 내에 도착하지 않는 패킷에 대해 NACK 신호를 센서 노드에게 전송한다.
2. 센서 노드에서는 전송되는 패킷을 버퍼에 저장한다.
3. 센서 노드에서는 버퍼의 오버플로우를 예방하기 위해 버퍼 타이머를 유지시킨다.
4. 버퍼 크기가 임계값에 도착되면, 버퍼 타이머와 버퍼를 클리어 시킨다.
5. 버퍼 타이머는 현재 네트워크 상태와 패킷 전송률을 고려하여 설정된다.
6. 만약 패킷이 빈번하게 손실되면 재전송을 윟나 버퍼 타이머가 증가된다.

흐름-이벤트기반
1. 센서 노드는 요구되는 신뢰성을 기반으로 전송되어진 패킷의 ACK 신호를 기다리게 된다.
2. 센서 노드는 각 전송 패킷을 ACK 신호를 받을 때까지 버퍼에 저장하며 ACK 신호가 도착하면, 대응되는 패킷을 버퍼에서 삭제하게 된다.
3. 버퍼 타이머는 주기적으로 클리어된다.

STCP의 혼잡 명시 기법
1. 센서 노드의 버퍼가 임계치에 도착하면 CN 비트 필드를 설정하고, 전송되는 모든 패킷을 CN비트가 설정된 값으로 전송한다.
2. CN비트가 설정된 패킷을 받은 싱크 노드는 혼잡이 발생했다고 판단하여 ACK 신호 패킷에 CN 비트를 설정하여 경로에 있는 노드들에게 혼잡된 경로를 전송하여 알린다.
3. ACK 신호에 혼잡 비트가 설정된 패킷을 받은 노드는 다른 경로를 선택하거나 전송률을 낮추어 전송한다.

STCP는 혼잡제어와 신뢰성을 동시에 만족시키지만 복잡성 때문에 에너지소모량이 크다는 단점이 있다.

'W.S.N' 카테고리의 다른 글

W.S.N의 혼잡제어 기법(1)-CODA  (0) 2016.02.15
W.S.N의 신뢰성 전송기법(3)-ESRT  (0) 2016.02.12
W.S.N의 신뢰성 전송기법(2)-RMST  (0) 2016.02.12
W.S.N의 신뢰성 전송기법(1)-PSFQ  (0) 2016.02.12
DTC, TSS 프로토콜  (0) 2016.02.12

CODA(COngestion Detection and Avoidance)는 Upstream 방향의 전송에 대한 혼잡 제어 기법이다.
CODA는 세가지 주요 컴포넌트를 가지고 있는데
첫 번째로 혼잡 검출, 두 번째로 Open-loop hop-by-hop backpressure, 세 번째로 Closed-loop end-to-end multi-source regulation이다.

CODA는 현재 버퍼 점유량과 무선 채널 로드 모니터링에 의해 혼잡 검출을 시도한다. 버퍼 점유량 또는 무선 채널 로드가 임계치를 초과하게 되는 것은 혼잡이 발생하엿음을 의미한다.

혼잡을 검출한 노드는 open-loop hop-by-hop backpressure 방법으로 전송률을 감소시키기 위해 그 노드의 downstream 방향의 이웃한 노드들에게 피드백 메시지를 공지한다.


CODA는 closed-loop end-to-end 기법을 통해 multi-source 속도를 노드 스스로 조절할 수 있다.

센서 노드는 싱크 노드로부터 전송률을 유지하기 위해 주기적으로 ACK를 받는다.
만약 혼잡이 발생되면 ACK를 정해진 시간 내에 받지 못하게 된다. 이 경우에 노드 스스로 전송률을 낮춘다.





CODA의 문제점
1. 센서들에서 싱크로의 단일 방향 제어만 한다.
2. 데이터의 신뢰성을 고려하지 않는다.
3. Closed-loop multi-source 환경에서 싱크에서 발생된 ACK 메시지의 손실 가능성으로 인한 네트워크 혼잡 때문에 지연 또는 응답 시간이 증가한다.

'W.S.N' 카테고리의 다른 글

W.S.N의 혼잡제어 기법(2)-STCP  (0) 2016.02.15
W.S.N의 신뢰성 전송기법(3)-ESRT  (0) 2016.02.12
W.S.N의 신뢰성 전송기법(2)-RMST  (0) 2016.02.12
W.S.N의 신뢰성 전송기법(1)-PSFQ  (0) 2016.02.12
DTC, TSS 프로토콜  (0) 2016.02.12


ESRT(Event-to-Sink Reliable Transport)는 기본적으로 센서 네트워크에서늬 모든 데이터가 센서노드에서 싱크노드로 집중된다는 상황을 가정한다.
싱크노드의 관심사는 어떤 노드가 어떤 데이터를 보낸다는 것보다는 어떠한 이벤트가 발생했는가 하는 것이 된다.

ESRT의 신뢰성은 싱크노드에서 이벤트가 발생햇다고 확신할 수 있는 센서 노드들로부터의 알림의 정도라고 할 수 있다. 따라서 ESRT에서는 이벤트의 발생을 알리는 리포트 전송률을 실제 싱크에서 기대하고 있는 신뢰성에 따라서 조절하도록 한다.(아래 표와 그래프)
또한 센서가 보고하는 빈도수의 조절에 의해 희망했던 신뢰성을 보장하고자 End-to-end 전송을 한다.(어플리케이션을 위한 신뢰성 제공)

 


ESRT의 문제점은 같은 값을 사용하여 모든 센서들의 보고 횟수를 조절하기 때문에 서로 다른 값을 사용할 때보다 성능이 떨어지는 문제점을 가지고 있다.

'W.S.N' 카테고리의 다른 글

W.S.N의 혼잡제어 기법(2)-STCP  (0) 2016.02.15
W.S.N의 혼잡제어 기법(1)-CODA  (0) 2016.02.15
W.S.N의 신뢰성 전송기법(2)-RMST  (0) 2016.02.12
W.S.N의 신뢰성 전송기법(1)-PSFQ  (0) 2016.02.12
DTC, TSS 프로토콜  (0) 2016.02.12

RMST(Reliable Multi-Segment Transport) 프로토콜은 upstream 방향의 전송에 대해 신뢰성을 보장하는 프로토콜이다.
이 기법은 End-to-End 데이터 패킷을 전송하는데 신뢰성을 제공하며 캐싱 및 복구를 위한 S-NACK기반 프로토콜이다.



RMST는 목적 노드까지의 경로가 설정되고 전송중인 노드를 캐싱모드인 경우와 비 캐싱모드인 경우로 나누고 캐싱모드가 재전송의 책임을 담당하도록 한다. 중간에 데이터의 불연속성이 발견되거나 손실이 발견되었을 경우 중간에 있는 수신자는 처음 Sender에게 재전송을 요구하는 것이 아닌 중간의 캐싱 노드에게 재전송을 요구함으로써 빠른 재전송이 이루어지도록 한다.
시퀀스의 빈곳이 발생하는 경우는 NACK 메시지를 통해 빈곳에 대한 패킷을 요구하는 방법으로 복구를 하고 시퀀스가 잘려나가는 경우(다음 단편을 받기 윙해 기다리는 타이머가 완료되었을 경우에 발생)는 전체패킷을 다시 재전송하는 방법을 취한다.

RMST의 문제점은
1. 전송순서가 보장되지 않는다.
따라서 실시간 전송을 보장하지 못한다.
2. 다른기법들에 비해 에너지 소비가 크다.
3. 어플리케이션 레벨에서는 신뢰성을 제공하지 못하는 특성이 있다.

'W.S.N' 카테고리의 다른 글

W.S.N의 혼잡제어 기법(1)-CODA  (0) 2016.02.15
W.S.N의 신뢰성 전송기법(3)-ESRT  (0) 2016.02.12
W.S.N의 신뢰성 전송기법(1)-PSFQ  (0) 2016.02.12
DTC, TSS 프로토콜  (0) 2016.02.12
W.S.N의 TCP방식 문제점  (0) 2016.02.12

일반적으로 센서노드에 장착된 소형 RF모듈은 약 30~50%에 이르는 높은 패킷 에러율을 갖는다. 이러한 이유로 네트워크의 반경이 넓어지면 패킷의 성공적인 전송률이 심각하게 낮아지고 낮은 패킷 전송률은 불필요한 통신 에너지 낭비가 된다.
따라서 네트워크의 유용성을 높이고 에너지 소모를 줄이기 위한 새로운 신뢰성 있는 전송 기법이 필요하다.

W.S.N의 신뢰성 전송기법을 따르는 프로토콜인 PSFQ, RMST, ESRT에 대해 알아보도록 하겠다.

PSFQ
Pump Slowly(느린 전송) Fetch Quickly(빠른 복구)
이 프로토콜은 신뢰성 있는 전송을 최우선으로 고려한다. PSFQ는 상당한 오버헤드가 존재하기 때문에 Upstream(센서->싱크)로의 전송이 아닌 Downstream(싱크->센서)에서 주로 사용하며 노드에 대한 제어나 관리를 목적으로 한다.


PSFQ는 위그림과 같은 원리로 패킷을 전송한다.
센더는 패킷을순서대로 보낸다. 위 그림처럼 2번 패킷이 NODE1-NODE2 사이에서 손실이되고 3번 패킷이 NODE2에 도착했을 경우 NODE2는 NODE1에게 NACK2(2번패킷이 손실됬다는 메시지)를 보내고 3번패킷을 저장해놓는다. NACK가 NODE1에 도착해서 NODE1에서 다시 패킷2번을 보내면 NODE2에서는 순서대로 2번패킷,3번패킷을 보낸다. 이러한 동작원리로 인해 손실 패킷 이후에 전송된 데이터가 중간 노드에서 전송되지 못하고 손실 패킷에 대한 복구가 완료될 때까지 전송이 지연(느린 전송)되지만 바로 앞노드에서 손실된 패킷을 바로 가져오기 때문에 빠른 복구를 할 수 있다.
하지만 이 방식은 중간 노드에서 손실된 패킷이 완전히 복구될 때까지 손실 패킷 이후 전송된 패킷을 버퍼에 저장하기 때문에 버퍼 오버플로우 발생가능성이 높다.

 



 


'W.S.N' 카테고리의 다른 글

W.S.N의 신뢰성 전송기법(3)-ESRT  (0) 2016.02.12
W.S.N의 신뢰성 전송기법(2)-RMST  (0) 2016.02.12
DTC, TSS 프로토콜  (0) 2016.02.12
W.S.N의 TCP방식 문제점  (0) 2016.02.12
W.S.N(Wireless Sensor Network)와 Internet 연결  (0) 2016.02.12

DTC, TSS 프로토콜

W.S.N2016. 2. 12. 18:27

DTC와 TSS는 센서네트워크의 전송 프로토콜이 응용분야의 특성에 따라 개별적으로 사용되고 기존의 인터넷과 센서 네트워크를 연결하고 특별한 중간 게이트웨이를 사용하는 것을 개선하기 위하여 인터넷에 사용되는 TCP와 호환이 가능한 트랜스포트 프로토콜을 개발하는 것을 목적으로 한다.
DTC와 TSS는 기존의 TCP 세그먼트를 그대로 사용하며 링크 에러율이 높은 무선 환경에서 TCP End-to-End 재전송의 문제점을 개선하기 위하여 중간노드에서 손실회복 및 재전송하는 방법을 제안하였다.

-DTC프로토콜

DTC는 각 센서노드가 최소 한 개의 메모리 공간이 있다고 가정하고 특정 공식에 따라 전송되는 패킷을 저장한다.
SACK(Selective-ACK)를 사용하여 패킷손실을 회복하고, 타이머를 사용하여 불필요한 재전송을 방지한다.

-DTC 포로토콜 공식
1.Cache가 비어있으면 segment 저장.
2.Cache가 차있다면, 특정 확률로 저장.
3.Link Lever Timer를 이용하여 패킷손실이 우려되면 Cache Lock.
4.저장된 Segment보다 큰 값의 ACK가 오면 Cache를 비움.



-TSS 프로토콜

센서노드의 메모리 공간이 DTC에 비해 여유가 있다고 가정하고 패킷을 순서대로 저장하고 전송한다.
다음 노드가 패킷을 전송하는것을 Overhearing 하여 전송된 패킷이 잘 전달되는지 예측하고 저장된 패킷을 메모리에서 삭제한다.
Small history list를 사용하여 이전에 ACK를 보낸 패킷이 재전송되어 오면 삭제한다.


-DTC, TSS 장단점

장점
End-to-end간의 패킷 재전송을 방지하여 생성되는 패킷 수를 줄인다.
단점
트리 토폴로지를 가진 센서네트워크에서는 각 센서 노드는 자신을 경유하는 모든 노드의 패킷을 저장해야 하므로 메모리 부족문제가 발생할 수 있다.






1. 연결설정 및 End-to-End 확인 응답

TCP의 연결설정은 짧은 데이터를 수집하는 W.S.N에서는 적합하지 않다.
TCP 프로토콜은 데이터 송수신 이전에 연결 설정과 연결 해제 과정을 거쳐야 한다.
End-to-end 확인응답과 재전송은 W.S.N에 적합하지 않다.
W.S.N의 경우 멀티 홉으로 설계되어있기 때문에 혼잡을 완화하거나 손실을 감지하는 시간이 오래 걸릴 뿐 아니라 패킷 손실이 있을 때 소스로 부터의 재전송은 많은 에너지를 소모하게 된다.

따라서 패킷 손실율이 높은 W.S.N환경에 적합하지 않다. 

 

2. Congestion Control 

W.S.N의 높은 패킷 에러율로 인해 TCP를 사용하면 패킷 손실을 Congestion으로 오인하여 송신측의 송신율을 감소시킨다.
따라서 실제 Congestion과 패킷 손실을 구분 할 수 있는 방안이 모색 되어야 하며 이를 통해 송신측의 송신율을 유지시켜야 한다.

 
3. Flow Control

TCP의 흐름제어는 윈도우 크기로 조절된다윈도우 크기는 목적지의 버퍼가 넘치는 것을 방지하는데 사용한다.
센서 노드들의 목적지인 싱크는 현재남아 있는 버퍼사이즈를 각 센서노드에게 전송한다.

 •싱크와 가까운 센서노드는 전송된 윈도우 사이즈에 맞추어 즉시 데이터를 전송할 수 잇지만 멀리 있는 센서노드는 그렇지 못하기 때문에 전송 순서를 계속 놓칠 수 있다. 


4. Header Overhead

TCP/IP 프로토콜은 작은 패킷에도 긴 오버헤드를 가진다센서네트워크의 작은 데이터 패킷을 위해 95%이상의 오버헤드가 붙는 것이다센서네트워크는 에너지 보전이 중요하기 때문에 불필요한 전송이나 과도한 패킷 헤더는 피해야 한다. 






5. Limited Nodes
센서노드는 일반적으로 메모리 사이즈와 처리 파워가 제한적이다.
센서네트워크를 위한 알고리즘은 위의 제한 사항을 고려해야만 한다. 



W.S.N(무선센서 네트워크)란 Sensor Node들과 Sink Node로 구성되며 사람들이 접근하기 어려운 장소의 환경 데이터들을 센싱하여 무선으로 전달해주는 네트워크다.

인터넷과 W.S.N의 연결방식은 크게 3가지가 있다.

첫번째로 프록시 구성방법이다.

W.S.N과 인터넷 사이에 특별한 대리 서버를 두고 네트워크를 연결하는 매우 단순하고 수월한 방식이다,

중간서버가 작동하는 두 가지 방법으로는 형식을 교체하여 보내주는 방법과 데이터를 저장하였다가 사용자의 요청에 따라 보내주는 방법이 있다.
첫 번째 방식에서 대리서버는 단순하게 센서네트워크부터 TCP/IP 네트워크상의 클라이언트까지 가는 데이터 형식을 교체한다. 
두 번째 방식으로 작동할 때,무선 센서네트워크에 연결된 센서는 평소에 주기적으로 데이터를 수집하고 수집된 정보를 대리서버의 데이터베이스에 저장해둔다.그리고 사용자는 필요할 경우에 데이터를 대리서버에게 요청하여 이용한다.

이 방식의 단점은 중간서버가 고장났을 경우 모든 통신이 중단된다는 점이다. 이를 위해서 백업 서버를 두는 해결책이 있지만 접근의 단순성을 감소시키는 문제가 있다.


두번째 방식은 DTN(Delay Tolerant Networks)이다.


DTN은 소프트웨어적으로 센서네트워크의 프로토콜과 기존망의 프로토콜을 연결해주는 계층을 만들어 다른 두 프로토콜 간에 통신이 가능하게 하는 일반적인 통신 구조를 제공한다.

Bundle 계층은 TCP/IP 프로토콜 위에서 동작하며 링크가 이용가능하지 않다면 저장소에 메시지를 저장하고 만약 필요하다면 메시지를 나눈다.

DTN의 게이트웨이에서는 각 네트워크의 환경 차이를 고려하여 전송지연시간, 데이터크기, 전송 속도 등을 조절하여 전송하는 Bundle 계층을 설계하여 사용한다.

일반적인 통신 구조를 제공하며 각 네트워크의 통신 환경에 맞는 프로토콜을 구축하여 사용 가능하다.
게이트웨이에서 전송되는 모든 데이터를 재처리해야 하기 때문에 많은 메모리용량, 전력, 높은 처리속도가 요구된다.


세번째 방식은 TCP/IP 연결이다.


이방식은 중간 노드를 사용하지 않고 센서 노드에 TCP/IP 프로토콜을 올려 인터넷 호스트와 직접 연결하는 방법이다.

게이트웨이나 서버와 같은 중간 노드의 고장으로 두 네트워크가 단절 되는 문제를 피할 수 있다.



W.S.N의 TCP방식 문제점은 다음과 같은 다섯가지가 있다.

1. 연결설정 및 End-to-End 확인 응답
2. Congestion Control 
3. Flow Control
4. Header Overhead
5. Limited Nodes

위 문제점의 자세한 내용은 다음 포스팅에 올리도록 하겠다.




'W.S.N' 카테고리의 다른 글

W.S.N의 신뢰성 전송기법(3)-ESRT  (0) 2016.02.12
W.S.N의 신뢰성 전송기법(2)-RMST  (0) 2016.02.12
W.S.N의 신뢰성 전송기법(1)-PSFQ  (0) 2016.02.12
DTC, TSS 프로토콜  (0) 2016.02.12
W.S.N의 TCP방식 문제점  (0) 2016.02.12