Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
บทความวชาการ : ทำ�คว�มรจกกบโพรโทคอล Stream Control Transmission Protocol
73วารสารเทคโนโลยสารสนเทศปท 9 ฉบบท 2 กรกฎาคม - ธนวาคม 2556Vol. 9, No. 2, July - December 2013 Information Technology Journal
ทำ�คว�มรจกกบโพรโทคอล Stream Control
Transmission ProtocolIntroduction to Stream
Control Transmission Protocol
บทคดยอ
โพรโทคอลSCTP (Stream Control Transmission Protocol)
เปนโพรโทคอลในชนทรานสปอรตทพฒนามาจากพนฐาน
การทำางานของ TCP และUDP ทมการใชงานมาอยาง
ยาวนานโดยมการเพมความสามารถตางๆลงไปเชนMulti-
homing คอการสงขอมลหลายๆ อนเตอรเฟซพรอมๆ กน
Multi-streamingคอการสงแยกขอมลทจะสงออกเปนหลายๆ
สตรมพรอมๆกนฯลฯซงทำาใหประสทธภาพของSCTPนน
สงกวาTCPและUDPโดยSCTPไดรบความนยมมการนำา
ไปใชงานอยางกวางขวางในชวงหลายปหลงน ดงนน
ในบทความนไดมการกลาวถงโพรโทคอล SCTP ในดาน
ตางๆรวมทงมคณสมบตใดบางทเหนอกวาTCPและUDP
คำ�สำ�คญ: SCTPมลตโฮมมงมลตสตรมมงชนทรานสปอรต
Abstract
SCTP (Stream Control Transmission Protocol) is a
protocol in transport layer. It is developed based on TCP and
UDP that have been used for many decades. Addition features
are added to SCTP, for example, multi-homing which enables
concurrent transfers of data through multiple interfaces and
multi-streaming which divides a single data stream to
multiple data streams. Therefore, SCTP has a higher
performance than TCP and UDP, and is widely used in
พงษพสฐวฒดษฐโชต(Pongpisit Wuttidittachotti)*
various environments in the last several years. This paper
presents the overview of SCTP in many aspects and indicates
which features of those of SCTP are better than TCP and UDP.
Keywords: SCTP, Multi-homing, Multi-streaming, Transport
layer.
1. บทนำา
ก�รใชง�นระบบเครอข�ยนนมม�อย�งย�วน�น และได
รบคว�มนยมม�กขนเรอยๆ ดงจะเหนไดว�ในชวตประจำ�วน
ของเร�นนมคว�มเกยวของกบก�รใชง�นระบบเครอข�ยไม
ท�งตรงกท�งออม โดยจดเรมตนของก�รสอส�รทเปนทนยม
ในปจจบนคอเครอข�ยอนเทอรเนต ทมพนฐ�นม�จ�กก�ร
สอส�รดวยเทคโนโลย IP (Internet Protocol) [1] จ�กนนได
มก�รนำ�เทคโนโลย IP ทใชง�นในอนเทอรเนตนนไปใชง�น
ในวงกว�งม�กขน เชน ในวงก�รโทรคมน�คมนนมก�รใช
Voice over IP (VoIP) เข�ม�ทดแทนระบบโทรศพทแบบ
ดงเดม (Plain old telephone service: POTS) โดย Internet
Engineering Task Force (IETF) ไดกำ�หนดสถ�ปตยกรรม
สำ�หรบก�รขนสงดวยระบบสญญ�ณ (SIGnaling TRANsport:
SIGTRAN) [2] โดยสถ�ปตยกรรม SIGTRAN นถกออกแบบ
ม�เพอรองรบก�รสงสญญ�ณโทรศพทในสภ�พแวดลอมท
เครอข�ยแบบดงเดม (Legacy networks) และเครอข�ย IP
(IP-networks) ทำ�ง�นรวมกน แตเนองดวยสญญ�ณโทรศพท
มกจะมคว�มตองก�รในก�รมใหใชง�น (Availability) สง และ
เวล�ทใชในก�รนำ�สงสญญ�ณเสยงนอยกว�ทร�ฟก (Traffic)
ชนดอนๆ เชน ทร�ฟกขน�ดใหญ (Bulk traffic) จงมคว�ม
จำ�เปนทจะตองมโพรโทคอลชนทร�นสปอรต (Transport
protocol) หรอชนนำ�สงขอมลตวใหมขนม� โดยมก�รกำ�หนด
ร�ยละเอยดของโพรโทคอลตวใหมในระหว�งก�รกำ�หนด
ม�ตรฐ�นของสถ�ปตยกรรม SIGTRAN เชน คว�มตองก�ร
ในเรองคว�มส�ม�รถในก�รมใหใชง�น (Availability) ของ
โทรศพทนนสงถง 99.9998% [2] ซงหม�ยคว�มว� ในหนงป
ระบบส�ม�รถหยดทำ�ง�นไดเพยงสงสด 10 น�ท นอกจ�ก
นก�รสงสญญ�ณโทรศพทยงมขอกำ�หนดทเขมงวดในเรอง
ของเวล� โพรโทคอลชนทร�นสปอรตในขณะนน คอ User
Datagram Protocol (UDP) (RFC 768) [3] และ Transmission
Control Protocol (TCP) (RFC 793) [4] ซงมก�รใชง�นม�
* ภาควชาเทคโนโลยสารสนเทศ คณะเทคโนโลยสารสนเทศ มหาวทยาลยเทคโนโลยพระจอมเกลาพระนครเหนอ
บทความวชาการ : ทำ�คว�มรจกกบโพรโทคอล Stream Control Transmission Protocol
74 ว�รส�รเทคโนโลยส�รสนเทศ ปท 9 ฉบบท 2 กรกฎาคม - ธนวาคม 2556Vol. 9, No. 2, July - December 2013Information Technology Journal
อย�งย�วน�นตงแตป ค.ศ. 1980 และค.ศ. 1981 ต�มลำ�ดบ
ยงมคว�มส�ม�รถไมเพยงพอตอคว�มตองก�รดงกล�ว
จงมก�รพฒน�โพรโทคอลตวใหมทชอ Stream Control
Transmission Protocol (SCTP) (RFC 4960) [5] ทม
คณลกษณะต�งๆ ทดขนในก�รสนบสนนก�รนำ�สงสญญ�ณ
เชน SCTP ถกออกแบบม�ใหมประสทธภ�พใหทนท�น
(Robust) ตอก�รทลงคเสยห�ย (Link failures) และชวย
บรรเท�ปญห�เกยวกบเรองก�รใหบรก�รแบบรบสงขอมล
ภ�ยในเวล�ทกำ�หนด (Timeliness) ของ TCP ทมในปจจบน
นอกเหนอจ�กแอพพลชนระบบสญญ�ณ (Signaling
applications) เร�ยงส�ม�รถใชประโยชนจ�กฟงกชนต�งๆ
ของ SCTP ได โดย IETF ไดตดสนใจทจะสร�งม�ตรฐ�นของ
SCTP สำ�หรบก�รใชง�นอนเทอรเนตทวไปดวย ซงทำ�ให
SCTP นนมคว�มทจำ�เปนในก�รใชทรพย�กรรวมกนกบผใช
เครอข�ย TCP อย�งเปนธรรม โดย SCTP จะส�ม�รถทำ�ง�น
รวมกบ TCP (TCP-friendly) ได ดงนน IETF จงตดสนใจท
จะรวมกลไกต�งๆ ททำ�ง�นเหมอน TCP (TCP-like
mechanisms) เข�ไปเปนสวนหนงของ SCTP ดวย ใน
บทคว�มนจงไดนำ�เสนอเรองร�วเกยวกบโพรโทคอล SCTP
ในแงมมต�ง ๆ กน
2. โพรโทคอล SCTP
2.1 ภาพรวมของ SCTP
ชนใหบรก�รทร�นสปอรตของ SCTP (SCTP transport
service layer) แสดงในภ�พท 1 [6] อยในตำ�แหนงระหว�ง
แอพพลเคชนของผใชทใช SCTP (SCTP user application
layer) และบรก�รเครอข�ย (Network service layer) ทกำ�ลง
ใชอย เนองดวย SCTP นนจะขนอยกบก�รอนเตอรเฟซกบ
ปล�ยท�งหรอเรยกว� endpoint ทเปน SCTP (SCTP end-
points) 2 จด โดยมสวนทตดตอกบก�รเขยนโปรแกรม
แอพพลเคชนทชดเจน (APIs: application programming
interfaces) ททำ�ง�นในระหว�งชน SCTP transport service
และชน SCTP user application นอกจ�กนแตละ endpoint ยง
ส�ม�รถมไดหล�ยหม�ยเลข IP address
SCTP ส�ม�รถใชง�นไดหล�ย ๆ เสนท�ง (Multiple paths)
และหล�ยๆ สตรม (Multiple streams) พรอมกนเพอสง
ขอคว�มข�มระหว�ง 2 endpoint โดยใน SCTP ขอมลจะถก
สงผ�นระหว�ง endpoint โดยผ�นก�รเชอมตอทเรยกว�
“association” โดยท association นนจะเรมตนก�รทำ�ง�นดวย
“ก�รเรมตน (initiation)” และมก�รบำ�รงรกษ�จนกว�ขอมล
ทงหมดไดถกสงไปและไดรบเรยบรอยแลว เมอขอมลทงหมด
นนไดรบแลว association นนกจะสนสดผ�น “ก�รปด (shutdown)”
ภ�ยใน SCTP ขอมลของผใชและข�วส�รเกยวกบก�ร
ควบคม (Control information) จะถกประกอบอยในชงค
(Chunk) ซงอ�จจะมม�กกว� 1 ชงค โดยชงคคอหนวยของ
ขอมล (Unit of information) ทใชในแพคเกต SCTP โดยท
ชงคและสวนหวทใชรวมกน (Common Header) นนจะ
ประกอบดวยหนวยขอมลโพรโทคอล (Protocol data unit:
PDU) หรอเรยกว� “แพคเกต SCTP” (SCTP packet) ในแพค
เกต SCTP นนมชงคของขอมล (Data chunks) และชงคของ
ก�รควบคม (Control chunks) โดย SCTP ไดจดเตรยมก�ร
สงขอคว�มแบบเรยงลำ�ดบ (Ordered message delivery)
ภ�ยใน “สตรม SCTP” (SCTP streams) และก�รสนบสนน
เครอข�ยททนท�นตอคว�มบกพรอง (Fault tolerance) ใน
สภ�พแวดลอมของ multi-homing (ดในหวขอท 2.1.1)
SCTP ถกพฒน�ขนเพอรองรบก�รสงขอมลทไมเหม�ะท
จะสงดวย TCP โดย IETF-SIGTRAN ซงเปนกลมก�รทำ�ง�น
เพอแกปญห�ก�รขนสงของสญญ�ณสำ�หรบก�รสอส�รดวย
แพคเกตบนระบบโทรศพทบนเครอข�ย IP (Packet-based
PSTN signaling over IP Networks) โดยไดเผยแพรออกส
ส�ธ�รณะชนเมอเดอนตล�คม ค.ศ.2000 ใน RFC2960 [5]
โดย SCTP มลกษณะก�รทำ�ง�นทคล�ยคลงกบ TCP แตได
เพมคณสมบตหล�ยประก�รเพอแกปญห�ต�งๆ ทพบใน
ภาพท 1 ตำาแหนงทอยของ SCTP ใน IP Stack
บทความวชาการ : ทำ�คว�มรจกกบโพรโทคอล Stream Control Transmission Protocol
75วารสารเทคโนโลยสารสนเทศปท 9 ฉบบท 2 กรกฎาคม - ธนวาคม 2556Vol. 9, No. 2, July - December 2013 Information Technology Journal
TCP ซงคณสมบตเหล�นนไดแก
2.1.1 Multi-homing
SCTP นนออกแบบม�เพอจดก�รกบระบบสญญ�ณ
ในระบบโทรคมน�คมบน IP ซงเปนระบบทตองมคว�มล�ช�
ของสญญ�ณ (Delay) ตำ�เปนอย�งม�ก ซงนบหนวยเปนมลล
วน�ท Multi-homing (ภ�พท 2 [7]) อนญ�ตใหในเครอง
คอมพวเตอร 1 เครองมไดหล�ยๆ อนเตอรเฟซ (Multiple
interfaces) สำ�หรบก�รทำ�เสนท�งสำ�รอง (Redundant link)
เพอทจะใชทดแทนในกรณทเสนท�งหลก (Primary path) เสย
ห�ย โดยไมตองรอเปนเวล�น�น ก�รทำ�ง�นของ SCTP จะ
มอนเตอรเฟซหลกทใชง�นเปนเสนท�งหลกซงเรยกว�
primary path และอนเตอรเฟซทเหลอจะเปนเสนท�งทสอง
ซงเรยกว� secondary path หรอ alternative paths ในกรณท
มหล�ยๆ อนเตอรเฟซ ถ�เสนท�งของ primary path เสยห�ย
ไมส�ม�รถใชง�นไดไมว�จะดวยเหตผลใดกต�ม secondary
path กจะถกใชง�นแทน
เมอ primary path ส�ม�รถใชง�นไดอกครง ก�รสอส�รก
จะกลบม�ใชเสนท�งหลก โดยทแอพพลเคชนไมจำ�เปนตอง
สนใจกบประเดนน ในขณะทสร�งก�รเชอมตอ (Connection)
อนเตอรเฟซทเปน primary และ secondary จะถกตรวจสอบ
และเฝ�ดอยตลอดเวล� โดยใชขบวนก�รของ heartbeat/
heartbeat acknowledgement ซงจะทำ�หน�ทตรวจสอบ
แอดเดรส (Validates addresses), และดแลรกษ�ก�รคำ�นวณ
ค� Round Trip Time (RTT) สำ�หรบแตละแอดเดรส โดยค�
RTT แสดงใหเหนว� primary path นนทำ�ง�นช�กว� secondary
path หรอไม และอนญ�ตใหก�รสอส�รย�ยไปยงอนเตอรเฟซ
ทเปน secondary ได
2.1.2 Multi-streaming
ก�รทำ�ง�นของ TCP ใน 1 connection จะมไดเพยง
แค data stream เดยวเท�นน ทำ�ใหขอมลทงหมดตองผ�นไป
บนสตรมนนเท�นน สวนก�รทำ�ง�นของ SCTP อนญ�ตให
ใน 1 connection หรอ 1 association มหล�ยสตรมพรอมกน
ได (Multiple simultaneous data streams) (ภ�พท 3 [8]) ซง
เรยกวธก�รนว� Multi-streaming [6] แตละ message ทสง
data stream ส�ม�รถทจะมปล�ยท�งทแตกต�งกนได อย�งไร
กต�ม แตละ message กตองดแลรกษ�ขอบเขตของขอคว�ม
(Message boundaries) ของตนเอง เชน ระบบไมส�ม�รถสง
สวนทเหมอนกนของขอคว�มไปยงสตรมอนๆ ได หนง
ขอคว�มตองสงผ�นไปยง 1 สตรมเท�นน
ใน TCP เมอมก�รรนระบบก�รสงขอมลแบบเรยง
ลำ�ดบ (Ordered data delivery system) ถ�มแพคเกตใดแพคเกต
หนงผดลำ�ดบไป (Out of order) หรอห�ยไป จะทำ�ใหสตรมนน
ถกบลอก (Block) (ภ�พท 4-ก [9]) เพอจะไดทำ�ก�รแกปญห�
ของลำ�ดบขอมล ซงเรยกว� “Head-of-Line Blocking” ใน
SCTP ก�รใชง�น multi-streams (ภ�พท 4-ข [9]) จะมเพยง
แคสตรมทไดรบผลกระทบเท�นนทจะถกบลอก สวนสตรม
อนๆ ยงคงส�ม�รถใชสงขอมลไดปรกต
โดยก�รใช multi-streams กบ SCTP นน ประเดน
เกยวกบเวบเบร�เซอรทมเพยงแคคว�มส�ม�รถในก�ร
จดก�รกบก�รเชอมตอ 2 ก�รเชอมตอพรอมกนไดถกกำ�จด
ออกไป ไคลเอนตหรอเวบเซรฟเวอรส�ม�รถเปดสตรมเพม
เตมขนม� และสงภ�พ ขอคว�ม ฯลฯ ผ�นแตละสตรม โดย
ลดค�เวล�หนวง (Latency) โดยรวม นอกจ�กนยงส�ม�รถ
ลดค�ใชจ�ย (Overhead) ทเซรฟเวอรซงมกจะมก�รเชอมตอ
ทแบงแยกเปนจำ�น�นม�กเพอตองก�รทจะตอบสนองก�ร
รองขอ
ภาพท 2 Multi-homing
ภาพท 3 Multi-streaming
บทความวชาการ : ทำ�คว�มรจกกบโพรโทคอล Stream Control Transmission Protocol
76 ว�รส�รเทคโนโลยส�รสนเทศ ปท 9 ฉบบท 2 กรกฎาคม - ธนวาคม 2556Vol. 9, No. 2, July - December 2013Information Technology Journal
สตรมมงของ SCTP ยงจะชวยใหมโครงสร�งพนฐ�น
(Infrastructures) ทเชอมตอกบวธก�รของก�รสอส�รทหล�ก
หล�ยพรอมๆ กนได เชน ในภ�พท 3 สตรมท 1 อ�จจะ
เปนก�รสอส�รดวยเสยง สตรมท 2 อ�จจะเปนก�รสงวดโอ
สตรมท 3 อ�จเปนโปรแกรมทใชรวมกน และอนๆ ตอไป โดย
ก�รเปดใช SCTP เพอตอบสนองคว�มตองก�รในอน�คตของ
กลม SIGTRAN ทำ�ใหนกพฒน�ส�ม�รถทำ�ง�นเชอมตอกบ
SCTP ไดง�ยขน โดยสงทนกพฒน�ตองทำ�คอเพยงแค
เกยวของกบสตรมท เหม�ะสมท ใชสงข�วส�รไปยง
แอพพลเคชนเท�นน
2.2 รปแบบของแพคเกต SCTP
สวนนจะอธบ�ยถงรปแบบของแพคเกต SCTP (SCTP
packet format) ซงร�ยละเอยดแสดงดงภ�พท 5 [8]
สวนหว (Common header) ประกอบดวย [6]:
• แอดเดรสของพอรตทตนท�ง (Source port address)
• แอดเดรสของพอรตทปล�ยท�ง (Destination port address)
• แทกก�รตรวจสอบ (Verification tag)
• ก�รตรวจสอบของแพคเกตทงหมด (The checksum of
the entire packet)
หม�ยเลขพอรตตนท�ง (Source port) จะถกใชโดย endpoint
ทไดรบแพคเกตเพอระบใหทร�บว�แพคเกต SCTP นนขน
อยกบ association ใด หม�ยเลขพอรตปล�ยท�ง (Destination
port) คอพอรตของผรบ SCTP ทตองสงแพคเกตไป แตละ
endpoint จะกำ�หนดแทกก�รตรวจสอบ (มค� 32 บต) ทระบ
association โดยค�ก�รตรวจสอบ (Checksum) ทำ�หน�ทเปน
เครองมอตรวจสอบคว�มสมบรณของขอมลสำ�หรบแตละ
แพคเกต SCTP
ฟลดภ�ยในชงคส�ม�รถอธบ�ยไดดงน
• ฟลดชนดของชงค (Chunktype): ระบชนดของฟลดท
ถกสง
• ฟลดแฟลกของชงค (Chunk flag): ระบว�บตใดบ�งจะ
ถกนำ�ม�ใชใน association
• คว�มย�วของชงค (Chunk length): ระบขน�ดของชงค
ทงหมดมค�กไบต
• ขอมลของชงค (Chunk data): รวมขอมลจรง (Actual
data payload) ของชงคทงหมด
ต�มทระบไวในภ�พท 5 มสม�ชก N ชงค (จำ�นวนของ
ชงค) ทระบไวในแพคเกต SCTP 1 แพคเกต จำ�นวน N จะ
ถกกำ�หนดโดยขน�ดของหนวยสงสงสด (MTU: maximum
transmission unit) ทสงผ�นไดเสนท�งทใชสงนน ใน SCTP
อนญ�ตใหมก�รมลตเพลกซหล�ย ๆ ชงคในหนงแพคเกตท
มขน�ดเท�กบคว�มจเตม MTU (Chunks are multiplexed in
one packet to full MTU capacity) โดยมขอยกเวนสำ�หรบ
ชงคของก�รเรมตน (INIT) และชงคตอบกลบก�รเรมตน
ภาพท 4 Head-of-Line Blocking
ภาพท 5 รปแบบของแพคเกต SCTP
บทความวชาการ : ทำ�คว�มรจกกบโพรโทคอล Stream Control Transmission Protocol
77วารสารเทคโนโลยสารสนเทศปท 9 ฉบบท 2 กรกฎาคม - ธนวาคม 2556Vol. 9, No. 2, July - December 2013 Information Technology Journal
(INIT ACK) เร�ส�ม�รถแบงชงคออกไดเปน 14 ชนด
ประกอบไปดวย ชงคของขอมลและชงคสำ�หรบควบคมอก
13 ชนด ชงคของขอมลนนประกอบไปดวยขอมลทเกดขน
จรง คว�มหม�ยและพ�ร�มเตอรของชงคควบคมไดสรปไว
ใน [6]
2.3 ฟงกชน SCTP: ตดตามขบวนการการสง
(Tracking the Transmission Process) [6]
สวนนจะอธบ�ยขนตอนก�รขนสงขอมลซงประกอบดวย
3 ขนตอนหลกของ SCTP association: ก�รเรมตน (initiation)
(ภ�พท 6 [6]) ก�รสงขอมล (data transmission) (ภ�พท 7
[6]) และก�รปดหรอก�รสนสด (shutdown) (ภ�พท 8 [6])
โดยในทน endpoint ทเรมตนสร�ง association จะเรยกว�
“โหนด A” สวน endpoint ทไดรบก�รรองขอก�รจดตง
association จะเรยกว� “โหนด B”
หม�ยเหต: ชงคยกเลก (ABORT) และชงคขอผดพล�ด
(ERROR) ส�ม�รถสร�งโดย endpoint ฝงใดกไดและส�ม�รถ
สงในเวล�ใดกไดในระหว�งชวง association ซงทงสองกรณ
จะทำ�ให endpoint ปดทนท
2.3.1 ขนตอนเรมตน Association (Association
Initiation)
1. โหนด A สร�งชงค INIT และสงไปยงโหนด B ใน
ขณะเดยวกน โหนด A จะเรมใชตวนบเวล� INIT (INIT timer)
2. ถ�โหนด B ประสงคทจะยอมรบ association นก
สร�งชงค ACK INIT พรอมดวยคกก จ�กนนจะสงชงค ACK
INIT พรอมกบคกกกลบไปยงโหนด A
3. โหนด A ไดรบชงค ACK INIT และหยดตวจบ
เวล� INIT จ�กนน โหนด A จะสร�งชงค COOKIE ECHO
สงกลบยงโหนด B และโหนด A จะเรมตวจบเวล�คกก
(cookie timer) ในขณะทสงไปนน ชงคขอมลอ�จจะรวมไป
ในแพคเกตนดวย
4. โหนด B ตรวจสอบคว�มถกตองของคกก หลง
จ�กก�รตรวจสอบกจะสง COOKIE ACK กลบไปยงโหนด A
5. โหนด A ไดรบ COOKIE ACK และเข�สขนตอน
ตอไปของก�รสงขอมล
2.3.2 ข นตอนก�รส งข อม ล ใน Associat ion
(Association Data Transmission)
โหนด A และโหนด B ส�ม�รถสงขอมลไดอย�งตอ
เนอง ตลอดกระบวนก�รก�รสงขอมล ชงค HEARTBEAT และ
ชงค HEARTBEAT ACK จะถกแลกเปลยนระหว�งโหนดใน
ทกๆ ชวงเวล�ทแนนอนซงควบคมโดยตวจบเวล�ก�รเตน
ของหวใจ (Heartbeat timer) โดยชงคเหล�นใชเพอทดสอบ
ก�รเชอมตอของ endpoint เพอทจะรกษ�คว�มถกตองของ
ก�รสงขอมล
6. โหนด A และโหนด B แลกเปลยนชงคขอมล
7. หลงจ�กทไดรบแตละชงคขอมล ปล�ยท�งทได
รบจะตอบกลบดวยชงค SACK (Selective Acknowledgement)
ภาพท 6 การเรมตน association ใน SCTP โดยใชวธการ
แบบ Four-Way Handshake
ภาพท 7 ขบวนการการสงขอมลใน SCTP
บทความวชาการ : ทำ�คว�มรจกกบโพรโทคอล Stream Control Transmission Protocol
78 ว�รส�รเทคโนโลยส�รสนเทศ ปท 9 ฉบบท 2 กรกฎาคม - ธนวาคม 2556Vol. 9, No. 2, July - December 2013Information Technology Journal
เพอแจงใหผรบทร�บ
8. ขอมลจะถกสงจนกว�จะมปล�ยท�งฝงใดฝงหนง
ตดสนใจทจะปด association โดยก�รสงชงค SHUTDOWN
รวมไปเปนสวนหนงของแพคเกตนน
2.3.3 ก�รปดหรอก�รสนสด Association (Association
Shutdown)
ชงค SHUTDOWN ส�ม�รถทจะสงโดยโหนดใดกได
ระหว�งสองโหนดทสอส�รกนอย ในทน พจ�รณ�ทโหนด A
ว�เปนผเรมตนขบวนก�รก�รปด (Shutdown process)
9. โหนด A สงชงค SHUTDOWN ไปยงโหนด B
และเรมตวนบเวล� shutdown (Shutdown timer)
10. โหนด B จะตอบกลบหลงจ�กไดรบชงค SHUT-
DOWN โดยก�รสร�งชงค SHUTDOWN ACK สงกลบไป
ยงโหนด A
11. เมอโหนด A ไดรบ SHUTDOWN ACK และ
ตอบสนองดวยก�รปดตวนบเวล� shutdown จ�กนนโหนด
A จะสร�งชงค SHUTDOWN COMPLETE สงกลบไปยง
โหนด B
ในทง 3 ขนตอน คอ ก�รเรมตน ก�รสงขอมลและ
ก�รปด จะทำ�ง�นผ�น SCTP API ท เชอมตอกบชน
แอพพลเคชนและชนทร�นสปอรต
โพรโทคอลชนทร�นสปอรตในเครอข�ย IP เชน TCP และ
UDP ไดรบประโยชนจ�กซอกเกต API โดยทซอกเกต API
ไดเตรยมก�รออกแบบทเปนม�ตรฐ�นทส�ม�รถอนเต
อรเฟซข�มหล�กหล�ยระบบปฏบตก�รและหล�กหล�ย
แพลตฟอรมได โดยส�ม�รถดร�ยละเอยดของซอกเกตของ
API ทใชในก�รแนะนำ�บรก�รของ SCTP ในแอพพลเคชนท
ใช TCP และ UDP เปนพนฐ�นไดท [6]
2.4 ประโยชนทเพมขนของ SCTP เมอเทยบกบ TCP
ร�ยละเอยดก�รเปรยบเทยบระหว�ง TCP UDP และ
SCTP นน ส�ม�รถอ�นเพมเตมไดจ�ก [8] ในบทคว�มนจะ
นำ�เสนอสวนทสำ�คญดงน [7]
2.4.1 ก�รอนญ�ตใหก�รเชอมตอแบบปดไดครงหนง
(Allow half-closed connections)
ก�รเชอมตอแบบปดไดครงหนงส�ม�รถเกดขนได
เมอด�นหนงของก�รสนทน�เชอว�ก�รเชอมตอนนถกปดไป
แลว แตในขณะทอกฝงหนงเชอว�มนยงคงเปดอย ใน TCP
ใชคำ�สงทตองก�รสนสดในลกษณะ 4 ทศท�ง (four-way)
ประกอบดวยก�รสงขอคว�ม FIN และ FIN-ACK ทงสอง
ทศท�ง ก�รเชอมตอแบบเปดไดครงหนง (Half-open) อ�จ
ยงคงมอยได ถ�สองขอคว�มสดท�ย คอ FIN และ FIN-ACK
ไมไดสง (ภ�พท 9-ก) ทำ�ให SCTP กำ�จดโอก�สทจะเกด
เหตก�รณนขน โดยใชวธก�รปดแบบ 3 ท�ง (three-way
shutdown) (ภ�พท 9-ข) ซงประกอบดวยก�รขอปดก�รเชอม
ตอ (SHUTDOWN) ก�รยนยนก�รปดก�รเชอมตอ (SHUT-
DOWN-ACK), และก�รแสดงปดก�รเชอมตอเรยบรอยแลว
(SHUTDOWN-COMPLETION) เมอขบวนก�รนเรมขน ทง
สองฝ�ยจะยตก�รสอส�รทนท ห�กตองก�รสงขอมลเพมเตม
จะตองทำ�ก�รสร�งก�รเชอมตอใหมอกครง
2.4.2 ก�รสงวนขอบเขตของขอคว�ม (Preservation
of message boundaries)
ห�กไคลเอนตสงขอคว�มขน�ด 100 ไบตและขน�ด
50 ไบต ข�วส�รจะถกนำ�เสนอไปยงเซรฟเวอรกบขอบเขต
ของขอคว�มทสงวนไว (Preserved message boundaries) แต
ในก�รทำ�ง�นกบ TCP ขอคว�มอ�จถกสง/รบ โดยขอคว�ม
จะมขน�ด 150 ไบต ดงตวอย�งภ�พท 10-ก ขอคว�มทได
รบจะมเพยงแค 1 ขอคว�ม ซงก�รทำ�แบบนจะบงคบให
แอพพลเคชนตองแยกขอคว�มกลบไปยงรปแบบเดมทม�
จ�กตนท�ง แตในก�รทำ�ง�นกบ SCTP และ UDP (ภ�พท
10-ข) ขอคว�มจะถกสงเปน 100 ไบตและ 50 ไบต ต�มลำ�ดบ
โดยในก�รทำ�ง�นกบ SCTP และ UDP จะมก�รดแลรกษ�
ขอบเขตของขอคว�มและแอพพลเคชนไมตองทำ�ก�รแยก
ขอคว�มนทปล�ยท�งอกครง
ภาพท 8 ขบวนการการปด association ใน SCTP
บทความวชาการ : ทำ�คว�มรจกกบโพรโทคอล Stream Control Transmission Protocol
79วารสารเทคโนโลยสารสนเทศปท 9 ฉบบท 2 กรกฎาคม - ธนวาคม 2556Vol. 9, No. 2, July - December 2013 Information Technology Journal
2.4.3 ก�รปองกนโจมตดวยก�รสง SYN เปนจำ�นวน
ม�ก (Protect against SYN flooding attacks)
เพอใหเข�ใจถงก�รโจมตดวยก�รสง SYN เปน
จำ�นวนม�ก เร�ตองดทวธก�รเชอมตอทเปนแบบฉบบทจด
ตงขน โดยก�รใชง�น TCP ไคลเอนตเรมสอส�รโดยก�รสง
ก�รรองขอซงโครไนซ หรอแพคเกต SYN ท�งฝงเซรฟเวอร
จะตอบสนองดวยก�รยอมรบโดยสงกลบแพคเกต SYN-ACK
และในทสดไคลเอนตกจะตอบกลบแพคเกตทไดรบ โดยสง
แพคเกต ACK กลบไปทเซรฟเวอร ซงเร�เรยกขบวนก�รน
ว� “ก�รจบมอแบบส�มท�ง (Three-way handshake)” (ภ�พ
ท 11-ก) เมอทงส�มขนตอนเสรจสมบรณจะส�ม�รถเรมตน
ก�รสอส�รได ในท�งตรงกนข�มกบ SCTP ซงใช “ก�รจบมอ
แบบสท�ง (Four-way handshake)” (ภ�พท 11-ข) แตอ�จจะ
เรมสงข�วส�รไดตงแตขนตอนทส�ม โดยก�รทำ�ง�นคอ
ไคลเอนตทใช SCTP จะเรมก�รสอส�รโดยก�รสงแพคเกต
INIT เมอฝงเซรฟเวอรไดรบจะตอบกลบไปดวยแพคเกต
INIT-ACK และ cookie (บรบทเฉพ�ะทระบก�รเชอมตอ) ฝง
ไคลเอนตเมอไดรบแลว จะสงค� cookie ของเซรฟเวอรทได
รบม�ตอนแรกกลบไปยงเซรฟเวอร นอกจ�กนฝงไคลเอนต
ยงส�ม�รถสงข�วส�รเพมเตมหลงจ�กก�รสง COOKIE-
ECHO ท�งฝงเซรฟเวอรเมอไดรบ COOKIE-ECHO แลวก
จะตอบกลบดวย COOKIE-ACK กลบไปยงฝงไคลเอนต
ภาพท 9 การปดการเชอมตอ
ภาพท 10 การสงวนขอบเขตของขอความ
ภาพท 11 การสรางการเชอมตอ
บทความวชาการ : ทำ�คว�มรจกกบโพรโทคอล Stream Control Transmission Protocol
80 ว�รส�รเทคโนโลยส�รสนเทศ ปท 9 ฉบบท 2 กรกฎาคม - ธนวาคม 2556Vol. 9, No. 2, July - December 2013Information Technology Journal
ก�รโจมตดวยก�รสง SYN (ภ�พท 12) เปนจำ�นวนม�ก
เกดขนเมอไคลเอนต 1 เครองหรอหล�ยๆ เครองสงแพคเกต
SYN ไปยงเซรฟเวอร ซงจะทำ�ใหเซรฟเวอรเป�หม�ยนน
จดสรรทรพย�กรไวใหสำ�หรบแตละก�รรองขอและมกจะเกน
ขดคว�มส�ม�รถของเซรฟเวอรทจะรบได ทำ�ใหเซรฟเวอร
ตองมก�รรบตเครองหรออ�จมผลทเลวร�ยกว�นนได เมอ
ทำ�ง�นกบ TCP เซรฟเวอรจะมก�รจดสรรทรพย�กรให
เรยบรอยแลวสำ�หรบแตละก�รเชอมตอ ภ�ยในก�รเชอมตอ
แบบ TCP endpoint ทงสองฝงตองทำ�ก�รจดสรรพอรต
ชวคร�ว (Ephemeral port) หนวยคว�มจำ� และก�รประมวล
ผลของ CPU สำ�หรบก�รเชอมตอใหมแตละก�รเชอมตอ ก�ร
เชอมตอดวย TCP เรมตนเมอมก�รรบแพคเกต SYN แลว
จะมก�รจดสรรทรพย�กรสำ�หรบก�รเชอมตอนน ในขณะท
ก�รทำ�ง�นดวย UDP ซงเปนโพรโทคอลแบบ connection-less
ไมไดใชขบวนก�รแบบน สวนก�รใช SCTP เซรฟเวอรจะไม
ทำ�ก�รจดสรรทรพย�กรสำ�หรบก�รเชอมตอนนจนกว�จะได
รบ COOKIE-ECHO แลวหลงจ�กนน ไคลเอนตทใช SCTP
ตองทำ�ก�รจดสรรทรพย�กรทใชเพอใหส�ม�รถทจะสง
ข�วส�รได
2.4.4 ก�รเลอกตอบกลบ (Selective acknowledgements)
ในม�ตรฐ�น TCP ทกๆ ขอคว�มหรอแพคเกตของ
ข�วส�รตองมก�รพจ�รณ�โดยตองมก�รยนยนก�รไดรบ
ขอคว�มหรอแพคเกตนน (Acknowledgement) ตองมก�รสง
ใหม (Resend) เมอจำ�เปนและตองถกประมวลผลในก�รลำ�ดบ
(In the order) ทแพคเกตเหล�นนถกสงม� สวนก�รใชง�น
SCTP นน ท�งฝงผรบมคว�มส�ม�รถในก�รเลอกตอบกลบ
สำ�หรบขอคว�มทสญห�ยไป (Missing) ไมเปนต�มลำ�ดบท
สงม�จ�กตนท�ง (Disordered) หรอซำ� (Duplicated) เนองจ�ก
ธรรมช�ตของก�รสอส�รโทรคมน�คม แอพพลเคชนสวน
ใหญจะจบลงทก�รทงขอคว�มใดๆ ทไมซงโครไนซกน
(Unsynchronized) หรอเรยกง�ยๆ ว�ขอมลทไมตรงกนนน
จะถกทงไป ดงนนจงมคว�มจำ�เปนทตองมก�รทงขอมลบ�ง
สวนจ�กก�รสงและขอมลทไดรบ ซงหม�ยถงว�บ�งสวนของ
คำ�บ�งสวนของวดโอ หรอบ�งชนสวนของก�รรเฟรช
(refresh) ไวทบอรดจะถกละเลยไป แอพพลเคชนและผใชอ�จ
สงเกตเหนเพยงเลกนอยในก�รข�ดห�ยไปของเสยง วดโอ
หรอก�รรเฟรช ซงสงนถกเรยกว�เวล�หนวง (Jitter) ในโลก
ก�รสอส�รโทรคมน�คม ผลรวมเวล�หนวงทนอยม�กๆ มก
เปนทตองก�รม�กกว�ก�รกว�ก�รสงแพคเกตใหมอกครง
และก�รทตองประมวลผลใหมอกครงนนจะทำ�ผลรวมของ
เวล�หนวงมค�เพมขนเปนสองเท� ซงโดยปรกตแลว ผใช
มกสงเกตเหนคว�มล�ช�นไดอย�งชดเจน
2.4.5 ก�รนำ�สงขอมลแบบไมเรยงลำ�ดบ (Unordered
data delivery)
เนองจ�กธรรมช�ตของเครอข�ย มคว�มเปนไปได
ว�แพคเกตทงหมดทถกสงไปอ�จเดนท�งข�มเครอข�ยโดย
ไมไดใชเสนท�งเดยวกน อ�จมเวล�ล�ช�เนองจ�กก�รใช
เสนท�งหนงทมคว�มล�ช�ม�กกว�เวล�ล�ช�ทเสนท�ง
อนๆ ฝงผรบเมอไดรบขอคว�มนนอ�จไดรบขอคว�มทม
ลำ�ดบไมเหมอนกบขอคว�มเดมทสงม� ก�รนำ�สงขอมลแบบ
ไมเรยงลำ�ดบทเกดในเหตก�รณน จะส�ม�รถแกไขปญห�
ไดโดยก�รเรยงลำ�ดบขอคว�มนนใหมใหถกตอง ในก�รใช
ง�นคณลกษณะก�รถ�ยโอนขอมลทเชอถอ (Reliable data
transfer) ไดของ TCP ตองก�รใหแพคเกตเหล�นนถก
ประมวลผลต�มลำ�ดบทจดสงม� ถ�มแพคเกตใดห�ยไปหรอ
ผดลำ�ดบไป ตองมก�รเรยงลำ�ดบแพคเกตใหมกอนทก�ร
ประมวลผลจะส�ม�รถดำ�เนนก�รตอไปได
ภ�พท 13 ถ�เร�ใช TCP เมอขอคว�มท 3 ไดรบกอน
ก�รประมวลผลทงหมดจะหยด และรอขอคว�มท 2 เมอได
รบขอคว�มท 2 กเรมก�รประมวลผล จ�กนน ขอคว�มท 3
ภาพท 12 การโจมตดวยการสง SYN เปนจำานวนมาก
ภาพท 13 การสงขอมลทไมเรยงลำาดบ
บทความวชาการ : ทำ�คว�มรจกกบโพรโทคอล Stream Control Transmission Protocol
81วารสารเทคโนโลยสารสนเทศปท 9 ฉบบท 2 กรกฎาคม - ธนวาคม 2556Vol. 9, No. 2, July - December 2013 Information Technology Journal
จงจะถกประมวลผล ในก�รทำ�ง�นของ SCTP อนญ�ตใหม
ก�รนำ�สงขอมลแบบไมเรยงลำ�ดบและเนองจ�กมก�รสงแบบ
หล�ยสตรม ในกรณทเกดปญห�น จะมเพยงแคสตรมเดยว
เท�นนทไดรบผลกระทบและถกบลอกชวคร�ว SCTP จะ
ประมวลผลขอคว�มในลำ�ดบทไดรบขอคว�มนน จะไมรอก�ร
เรยงลำ�ดบของขอคว�มเหล�นนทสงม� ในโหมดก�รก�รถ�ย
โอนแบบมคว�มน�เชอถอของ SCTP จะมหล�ยๆ โซลชน
ดสกแบบเครอข�ย (Networked disk solutions) ทไดมก�ร
จดเตรยมบรก�รเรยงลำ�ดบขอมลไว คว�มส�ม�รถของ
SCTP เพยงแคสงขอมลแบบง�ยๆ เมอลดภ�ระโอเวอรเฮด
ทไมจำ�เปนในก�รเรยงลำ�ดบขอมลใหมของเซรฟเวอร
2.5 Concurrent Multi-streaming (CMT) SCTP
ก�รทำ�ง�นของ SCTP แบบดงเดมนน จะสงขอมลโดยใช
อนเตอรเฟซใดอนเตอรเฟซหนงในก�รสงขอมล ซงเรยกว�
เสนท�งหลก (Primary path) สวนเสนท�งอนๆ จะเปนเสนท�ง
สำ�รอง (Secondary path) ซงจะมก�รใชง�นเมอเสนท�งหลก
ไมส�ม�รถใชง�นได จะเหนไดว�เร�ใชเสนท�งสำ�รองนนไม
ไดเตมประสทธภ�พ จงมแนวคว�มคดในก�รใชเสนท�ง
ทงหมดทมใหสงขอมลไดพรอม ๆ กน ซงเรยกว� Concurrent
Multi-streaming (CMT) [10] หรอ CMT-SCTP ซงเปน
ก�รพฒน�ตอยอดคว�มส�ม�รถของ SCTP แบบดงเดม โดย
CMT-SCTP จะส�ม�รถทำ�ง�นไดดในกรณทเสนท�ง (Paths)
ทใชง�นนนมแบนดวดท ดเลย (Delay) และค�อตร�คว�ม
ผดพล�ด (Error rates) ทเหมอนกนหรอใกลเคยงกน ก�รท
เสนท�งใดเสนท�งหนงมคณสมบตแตกต�งออกไป ซงจรงๆ
แลวกเปรยบเสมอนกบกรณทเกดขนจรงในก�รใชง�น [11]
คอ ก�รทเร�ใชคอมพวเตอรเครองเดยวเชอมตอกบผให
บรก�ร (Internet service provider: ISP) หล�ยๆ ร�ยพรอม
กน ยงคงเปนประเดนทตองไดรบก�รแกไข และยงมประเดน
อนๆ อกม�ก
2.6 การนำาไปใชงานและคณลกษณะทสนบสนน
มก�รนำ� SCTP (SCTP implementations) (ร�ยละเอยด
แสดงดงต�ร�งท 1 [11]) ไปใชง�นในระบบหล�ยๆ ปฏบต
ก�ร เชน Linux (mainline kernel 2.6.36), FreeBSD (release
kernel 8.12), MacOS X, Windows (SctpDrv) และ Solaris
(OpenSolaris 2009.06) รวมถง sctplib (เปนไลบ�รสำ�หรบ
SCTP และไลบ�รสำ�หรบซอกเกต API ทมชอเสยงทรจกเปน
อย�งดในก�รนำ� SCTP ไปใชง�น) นอกจ�กนยงรวมถง
โปรแกรมจำ�ลองก�รทำ�ง�นของเครอข�ย (Network Simulator)
เชน OMNeT++/INET simulation model ซงไดเตรยมฟงกชน
ต�งๆ ของ SCTP ไวสำ�หรบก�รทดสอบ
3. สรป
ก�รทำ�ง�นของโพรโทคอลในชนทร�นสปอรตเปนสงท
จำ�เปนอย�งยงทมผลสำ�เรจตอก�รสงขอมลในระบบเครอ
ข�ย ในบทคว�มนไดนำ�เสนอตงแตคว�มเปนม� โครงสร�ง
ของแพคเกต SCTP คณลกษณะต�งๆ ของ SCTP เมอเทยบ
กบ TCP และ UDP และสดท�ยไดพดถง CMT-SCTP ท
ส�ม�รถสงขอมลไดหล�ยๆ อนเตอรเฟซพรอมกนๆ ซง
คณสมบตเหล�นทำ�ให SCTP มประสทธภ�พสงกว� TCP
ตารางท 1 การนำา SCTP ไปใชงานและคณลกษณะทสนบสนน
บทความวชาการ : ทำ�คว�มรจกกบโพรโทคอล Stream Control Transmission Protocol
82 ว�รส�รเทคโนโลยส�รสนเทศ ปท 9 ฉบบท 2 กรกฎาคม - ธนวาคม 2556Vol. 9, No. 2, July - December 2013Information Technology Journal
และ UDP โดยบทคว�มนชวยใหผสนใจหรอผศกษ�เกยวกบ
ระบบเครอข�ยไดรจกโพรโทคอลใหม ซงในทนคอ SCTP ใน
ชนทร�นสปอรต นอกเหนอจ�ก TCP และ UDP ทรจกและ
มก�รใชง�นม�อย�งย�วน�น ซง SCTP นถอว�เปนแนวโนม
และทศท�งในอน�คตของชนทร�นสปอรตทจะมก�รนำ�ไปใช
ง�นในเครอข�ยประเภทต�งๆ อย�งกว�งขว�ง ดงจะเหนได
ว�หล�ยๆ ระบบปฏบตก�รหลกในทองตล�ดมก�รตดตง
โพรโทคอล SCTP ใหใชง�นกนแลว
4. เอกสารอางอง
[1] J. Postel. “Internet Protocol.” RFC 791, Internet
Engineering Task Force, September, 1981.
[2] L. Ong, et al. “Framework architecture for signaling
transport.” RFC 2719, Internet Engineering Task Force,
October, 1999.
[3] J. Postel. “User Datagram Protocol.” RFC 768, Internet
Engineering Task Force, August, 1980.
[4] J. Postel. “Transmission Control Protocol.” RFC 793,
Internet Engineering Task Force, September, 1981.
[5] R. Stewart. “Stream Control Transmission Protocol.”
RFC 4960, Internet Engineering Task Force, September,
2007.
[6] The International Engineering Consortium, “Stream
Control Trans-mission Protocol (SCTP).” Web
ProForum Tutorials.
[7] P. Stalvig. “Introduction to the Stream Control
Transmission Pro-tocol (SCTP): The next generation
of the Transmission Control Protocol (TCP).” White
Paper, F5 Networks, Inc., October, 2007.
[8] A. L. Caro Jr. et al. “SCTP: A Proposed Standard for
Robust In-ternet Data Transport”, IEEE Computer
Society, Vol. 36 , Issue. 11, pp. 56- 63, November, 2003.
[9] R. Stewart and Q. Xie. Stream Control Transmission
Protocol (SCTP): A Reference Guide. Addison Wesley,
2002.
[10] J. R. Iyengar, P. D. Amer, and R. Stewart. “Concurrent
Multipath Transfer Using SCTP Multihoming Over
Independent End-to-End Paths.” IEEE/ACM Trans. Net.,
Vol. 14, No 5, pp. 951–964, October, 2006.
[11] T. Dreibholz et al. “Stream Control Transmission
Protocol: Past, Current, and Future Standardization
Activities.” IEEE Communications Magazine, Vol. 49,
Issue 4, pp. 82–88, April, 2011.