Search
moon
sun
๐Ÿฅผ

SCTP(Stream Control Transmission Protocol)

Category
as S/W ์—”์ง€๋‹ˆ์–ด
Tags
SCTP
multi homing
multi streaming
Created time
2008/02/10

์ •์˜

โ€ข
PSTN๋ง์—์„œ ์‚ฌ์šฉ๋˜๋Š” signaling message๋ฅผ ์ธํ„ฐ๋„ท ๋ง์˜ IP Network์ƒ์—์„œ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด IETF SIGTRAN Working group์—์„œ 2000๋…„ 10์›” ํ‘œ์ค€์œผ๋กœ ์ œ์•ˆํ•œ ์ „์†ก ํ”„๋กœํ† ์ฝœ(RFC 2960)

์ฃผ์š” ์žฅ์ 

โ€ข
์ „์†ก๊ณ„์ธต์—์„œ ๋™์ž‘ํ•˜๋ฉฐ UDP์˜ ๋ฉ”์‹œ์ง€ ์ง€ํ–ฅ ํŠน์„ฑ๊ณผ TCP์˜ ์—ฐ๊ฒฐ์ง€ํ–ฅ ๋ฐ ์‹ ๋ขฐ ์ „์†ก ํŠน์„ฑ์„ ๋ชจ๋‘ ํฌํ•จํ•˜๋Š” ๋“ฑ TCP์™€ UDP์˜ ์žฅ์ ์„ ์‚ด๋ฆฌ๋„๋ก ์„ค๊ณ„
โ€ข
Association ์„ค์ •์‹œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” Syn Flooding๊ณผ ๊ฐ™์€ DOS ๊ณต๊ฒฉ์ด๋‚˜ Masquerading ๊ณต๊ฒฉ์— ์•ˆ์ „ํ•˜๋„๋ก ์„ค๊ณ„
โ€ข
Multi-Streaming : TCP์˜ Head Of Line Blocking์œผ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฌธ์ œ ํ•ด๊ฒฐ. ํ•˜๋‚˜์˜ ์„ธ์…˜์—์„œ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์ปจํ…์ธ  ์ „๋‹ฌ ๊ฐ€๋Šฅ.
โ€ข
Multi-Homing : ํŠน์ • ๊ฒฝ๋กœ์— Path Fail์ด ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋ฏธ๋ฆฌ ์„ค์ •๋œ ๋‹ค๋ฅธ ํ†ต์‹  ๊ฒฝ๋กœ๋กœ ์ž๋™์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๊ฐ€๋Šฅ์ผ€ ํ•˜๋Š” ๊ธฐ๋Šฅ(fail-over ๊ธฐ๋Šฅ).

๊ธฐ์ˆ ์  ํŠน์ง•

โ€ข
์„ธ์…˜์ธ์ฆ ๋ฐ SACK ๋ฉ”์ปค๋‹ˆ์ฆ˜ : ์„ธ์…˜ ์ดˆ๊ธฐํ™”์‹œ Cookie๋ฅผ ์‚ฌ์šฉํ•œ Key ๊ตํ™˜(DOS, Sync Flooding ๊ณต๊ฒฉ ๋ฐฉ์ง€), SACK(Selective ACKnowledgement)๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์‹  ํ™•์ธ ๋ฐ ์žฌ์ „์†ก ์š”๊ตฌ
โ€ข
Path Selection & Monitoring : ํ•˜๋‚˜์˜ SCTP ์„ธ์…˜์— ์—ฌ๋Ÿฌ IP ์ฃผ์†Œ ์‚ฌ์šฉ(fail over ์—ญํ• )
โ€ข
Flow & Congestion Control : ํ๋ฆ„ ์ œ์–ด๋Š” association ๋ณ„, ํ˜ผ์žก ์ œ์–ด๋Š” ์ „์†ก๊ฒฝ๋กœ ๋ณ„๋กœ ์ˆ˜ํ–‰
โ€ข
๋ฐ์ดํ„ฐ ์ „์†ก : ๊ฐ ๋ฐ์ดํ„ฐ chunk์—๊ฒŒ TSN(Transmission Sequence Number: ํ๋ฆ„ ์ œ์–ด, ์˜ค๋ฅ˜ ๋ณต๊ตฌ), SSN(Stream Sequence Number: ์ŠคํŠธ๋ฆผ๋ณ„ ์ˆœ์„œํ™”) ๋ถ€์—ฌ
โ€ข
์„ธ์…˜ ์ดˆ๊ธฐํ™” ๋ฐ ์ข…๋ฃŒ : ์ดˆ๊ธฐํ™”์—๋Š” 4 way handshaking, ์ข…๋ฃŒ์‹œ์—๋Š” 3 way handshaking(TCP์˜ Half Open ๋ฌธ์ œ ํ•ด๊ฒฐ)
โ€ข
protocol ID : 132๋ฒˆ

SCTP ํ”„๋กœํ† ์ฝœ ์Šคํƒ

โ€ข
ํ•˜๋‚˜์˜ ํŒจํ‚ท์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋ฐ ์ œ์–ด chunk๊ฐ€ ํฌํ•จ ๊ฐ€๋Šฅ
โ€ข
๋ฐ์ดํ„ฐ chunk์—๋Š” Type, Length, ํ•ด๋‹น ๋ฐ์ดํ„ฐ chunk์— ๋Œ€ํ•œ TSN, SSN ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•˜์—ฌ ์ถ”ํ›„ ์˜ค๋ฅ˜์ œ์–ด ๋ฐ ํ๋ฆ„์ œ์–ด ๋“ฑ์— ์‚ฌ์šฉ

SCTP์—์„œ์˜ ๋ฐ์ดํ„ฐ ์ „์†ก

SCTP๋Š” IP ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜์—์„œ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ง€์› :
Bundling, Fragment and Reassembly, Flow Control, Congestion Control, Selective Repeat, Ordered and Unordered Delivery, Path MTU Discovery ๋˜ํ•œ transport Sequence Number(TSN)์„ ์ด์šฉํ•œ ํŒจํ‚ท ์ค‘๋ณต ๋ฐฉ์ง€ ๋ฐ ์†์‹คํƒ์ƒ‰ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ž„.
โ€ข
Bundling : SCTP ํŒจํ‚ท ์•ˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ Chunk๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ chunk๋ฅผ ๋ฌถ์Œ.
โ€ข
Path MTU Discovery : ์ฃผ์–ด์ง„ ๊ฒฝ๋กœ์— ์กด์žฌํ•˜๋Š” MTU๋ฅผ ์ธก์ • ๋ฐ ์ „์†ก์ค‘์ธ ํŒจํ‚ท ์ •์ง€ ๋˜๋Š” MTU ๋ณ€๊ณต์„ ์‹œ๋„.

ํ™œ์šฉ๋ถ„์•ผ

โ€ข
์ „์†ก ํ”„๋กœํ† ์ฝœ ์ˆ˜์ค€์˜ ๋ณด์•ˆ๊ธฐ๋Šฅ์ด ์š”๊ตฌ๋˜๋Š” ์‹œ์Šคํ…œ : SCTP ์œ„์— TLS๋ฅผ ์ ์šฉํ•˜์—ฌ ๋ณด์•ˆ ๊ธฐ๋Šฅ ๊ฐ•ํ™”
โ€ข
์ธ์ฆ, ๊ถŒํ•œ, ๊ณผ๊ธˆ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ธ์ฆ ์‹œ์Šคํ…œ ์žฅ๋น„ : Multi-Homing ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•œ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก
โ€ข
์‹ ๋ขฐ์„ฑ์ด ์š”๊ตฌ๋˜๋Š” ๊ตฐ ์žฅ๋น„ ๋ฐ ์œ„์„ฑ ํ†ต์‹  ์žฅ๋น„ : SCTP ๋ฐ์ดํ„ฐ ์ „์†ก์˜ Unordered ๊ธฐ๋Šฅ ์ ์šฉ, ์ข‹์ง€ ๋ชปํ•œ ํ™˜๊ฒฝ์œผ๋กœ ์ธํ•œ Path Fail ๋ฐœ์ƒ์ด ์‰ฌ์šด ์ „์Ÿ์— ์‚ฌ์šฉ๋˜๋Š” ๊ตฐ ์žฅ๋น„๋‚˜ ์œ„์„ฑ ํ†ต์‹ ์„ ์œ„ํ•ด Multi-Homing ๊ธฐ๋Šฅ์„ ํ™œ์šฉ
โ€ข
Mobile IP ๋ถ„์•ผ : Multi-Homing ๊ธฐ๋Šฅ์„ ์ด์šฉํ•œ ๋ฌด์„  ํ†ต์‹  ๋‹จ๋ง๊ธฐ์— ์ ์šฉ
โ€ข
๋ฏธ๋ž˜์˜ HTTP๋ฅผ ์œ„ํ•œ ์ „์†ก ํ”„๋กœํ† ์ฝœ : ๋‹ค์ค‘ ๊ฐ์ฒด๋ฅผ ์†ก์ˆ˜์‹ ํ•ด์•ผ ํ•˜๋Š” HTTP์— SCTP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ.

์ฐธ๊ณ : SCTP Multi-Streaming

โ€ข
ํ•˜๋‚˜์˜ SCTP Association์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ Stream์„ ๊ฐ€์ง. ๊ฐ Stream๋งˆ๋‹ค ์žˆ๋Š” ์ˆœ์„œ๋ฒˆํ˜ธ(SSN: Stream Sequence Number)๋ฅผ ํ†ตํ•ด ๊ฐ Association ๊ด€๋ฆฌ.
โ€ข
Head of line blocking ํ˜„์ƒ ๋ฐฉ์ง€ : ํ•˜๋‚˜์˜ Stream์œผ๋กœ ๊ตฌ์„ฑ๋œ TCP์˜ ๊ฒฝ์šฐ Stream์— ์ „์†ก๋œ ๋ฐ์ดํ„ฐ์— ํŒจํ‚ท์˜ ์†์‹ค์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์†์‹ค๋œ ํŒจํ‚ท์ด ์žฌ์ „์†ก๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ application์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜์ง€ ๋ชปํ•˜๋Š” Head of line blocking ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•จ. ํŠน์ • stream์—์„œ ํŒจํ‚ท ์†์‹ค๋กœ ์ธํ•œ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ํƒ€ stream์—๋Š” ์ด์ƒ์ด ์—†์Œ. ์ „์†ก ์†๋„ ์ฆ๊ฐ€ ํšจ๊ณผ๋ฅผ ๋ƒ„. ๋˜ํ•œ ํŒจํ‚ท ์ˆœ์„œ ์œ ์ง€ ๋ฐ ๋น„์œ ์ง€ ์„ ํƒ ํ•„๋“œ๋ฅผ ํ†ตํ•ด์„œ๋„ ์ „์†ก ์†๋“œ ์ฆ๊ฐ€ ํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ด.

์ฐธ๊ณ : SCTP Multi-Homing

โ€ข
SCTP Association์„ ๋งบ๊ณ ์ž ํ•˜๋Š” endpoint๋“ค์ด Multiple Ethernet์˜ ๊ฐ๊ฐ์— IP๊ฐ€ ํ• ๋‹น๋œ multi-homed์ธ ๊ฒฝ์šฐ ์ ์šฉ ๊ฐ€๋Šฅ.
โ€ข
์—ฌ๋Ÿฌ ๊ฒฝ๋กœ ์ค‘ ํ•˜๋‚˜๋ฅผ Primary Path๋กœ ์„ค์ •ํ•˜๊ณ  ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋Š” idle ์ƒํƒœ๋กœ ์ง„์ž…. idle path์— ์ฃผ๊ธฐ์ ์œผ๋กœ Heart Beat Chunk๋ฅผ ๋ณด๋‚ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ์ง€๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง. Primary Path์— Path Fail์ด ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ idle path ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜์—ฌ Primary Path๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๊ณ„์†ํ•จ. ์‹ ๋ขฐ์„ฑ ์ฆ๊ฐ€.

References

โ€ข
SCTP๋ž€? by yangck20
โ€ข
SCTP ํ‘œ์ค€๊ธฐ์ˆ  ๋ถ„์„ ๋ฐ ์ „๋ง, ์ „์žํ†ต์‹ ๋™ํ–ฅ๋ถ„์„ 18-3 2003/06, ๊ณ ์„์ฃผ ์™ธ 3๋ช…
๋Œ“๊ธ€ ๋ฐฑ์—