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