[컴퓨터망]16. SCTP(Stream Control Transmission Protocol)란 무엇일까

서정윤·2022년 8월 29일
0

컴퓨터망

목록 보기
6/7

1. Intro

SCTP란, Stream Control Transmission Protocol의 약어로 메세지 기반의 transport layer protocol이다.

UDP의 메세지 스트리밍 특성과 TCP의 연결형 및 신뢰성 제공을 조합한 프로토콜이다

2. SCTP SERVICES

SCTP는 application layer 의 process에 다음과 같은 서비스들을 제공한다

  • Process-to-Process Communication
  • Multiple Streams
  • Multihoming
  • Full-Duplex Communication
  • Connection-Oriented Service
  • Reliable Service

Multiple-stream

SCTP프로토콜은 multiple stream이 가능하다

Multihoming

SCTP 프로토콜은 각 호스트에 multiple IP address를 할당할 수 있다

3. SCTP features

이전에 공부했던 TCP와 비교하여 SCTP의 특성을 비교해보자

Transmission Sequence Number (TSN)

SCTP에서, data chunk들은 TSN을 사용하여 번호가 붙여진다

Stream Identifier (SI)

서로 다른 스트림을 SCTP는 SI를 사용한다

Stream Sequence Number (SSN)

같은 스트림 내에 있는 서로 다른 data chunks를 구분하기 위해 SSN을 사용한다

4. TCP vs SCTP

이전에 공부한 TCP와 SCTP의 차이점을 알아보자

TCP has segments, SCTP has packets

SCTP에서 control 정보와 데이터는 다른 chunks로 분리되어 전달된다

data chun는 세 개의 identifiers로 식별된다
바로바로바로 TSN, SI, SSN 이렇게 세가지

  • TSN :
  • SI :
  • SSN :

SCTP에서, acknowledgment number는 data chunk를 받았음을 알리기 위해 사용된다.
control chunk는 다른 control chunk에 의해 알려짐

4. Packet format

data/control chunk와 packet의 포맷을 살펴보자

SCTP packet format

SCTP 패킷에서, control chunks는 data chunks 이전에 온다

Common layout of a chunk

Multiple-stream concept

Chunk는 32bit(즉, 4바이트) 내

Chunks table

SCTP 패킷의 padding byte는 길이 필드에 포함되지 않는다

Data chunk

하나의 data chunk는 하나의 메세지 이상을 포함하는 데이터를 전송하지 못한다. 그러나 메세지는 몇개의 chunks로 나눠질 수 있다.

data chunk의 data field는 적어도 1바이트 이상의 데이터를 운반해야 한다. 즉, length field는 17보다 작을 수 없다

INIT chunk

INIT chunk가 운반되는 패킷에는 다른 chunk는 운반 불가능하다

INIT ACK chunk

위와 마찬가지로 INIT ACK chunk를 운반하는 패킷에는 다른 chunk 운반 불가능

SACK chunk

HEARTBEAT and HEARTBEAT ACK chunk

SHUTDOWN chunk

ERROR chunk

ABORT chunk

5. an SCTP association

TCP와 SCTP의 공통점!
바로바로 연결지향(connection-oriented)프로토콜이다.

SCTP에서 connection은 association 이라고 불린다.
multihoming 기능을 강조하는 용어다.

Association Establishment

TCP에서와는 다르게 four-way handshaking으로 association을 진행

Data Transfer

위에서 INIT/INIT ACK 패킷은 다른 chunk를 전송할 수 없다고 했다.
COOKIE ECHO/COOKIE ACK chunk는 data chunk를 전송할 수 있다.

SCTP에서 data chunk는 TSN를 소모한다.
받고 ack를 전송해야하는 건 data chunk뿐이다

SCTP에서 ack는 축적된 TSN이다.
The TSN of the last data chunk received in order

Association Termination

Association Abortion

6. State transition diagram

7. Flow control

8. Error control

9. Congestion control

0개의 댓글