The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by zigbeenetworks, 2021-07-22 22:30:12

Computer Network

242 บทที่ 29. APPLICATION LAYER



สมาชิกในเซสชันจุดประสงค์เพื่อทำการจำกัดจำนวนทราฟฟิก RTCP ให้น้อยกว่า 5 เปอร์เซ็นของทราฟฟิก
ในเซสชันนั้น

4. Session control : RTCP สนับสนุนตัวเลือกของจำนวนสัญญาณควบคุมที่น้อยที่สุด เช่นกรณีของจำนวน

สมาชิกที่จะถูกแสดงบนหน้าจอของผู้ใช้ ซึ่งจะมีประโยชน์กรณีการใช้งานของเซสชันที่ผู้ใช้เข้าร่วมและออก
โดยปราศจากการตกลงกันก่อน

เพื่อให้สามารถแจ้งกลับการคุณภาพของสัญญาณจากภาครับได้ แพกเกต Receiver Report (RR) เป็นส่วน
สำคัญนอกเหนือจากการระบุถึงประเภทของข้อมูล แต่ละแพกเกตยังได้แจ้งถึง


• ส่วนของแพกเกตที่สูญหาย และค่าผลรวมของแพกเกตที่หายทั้งหมด

• หมายเลขของแพกเกตที่ได้รับ
book)
• ค่าของ Jitter

• รายงานจากภาคส่ง (Sender Report) ล่าสุดที่ได้รับ และเวลาตั้งแต่ได้รับล่าสุด


การระบุถึงข้อมูลเหล่านี้จะทำให้สามารถคำนวณหาจำนวนแพกเกตที่สูญหาย เพื่อใช้ในการหาความคับคั่งของ
เน็ตเวิร์คนอกจากนี้การที่ทราบถึงค่าของ Jitter ทำให้ทราบถึงความคับคั่งที่เกิดขึ้นเป็นครั้งคราวได้



29.5 อีเมล (Electronic Mail) (partial


only
อิเล็กโทรนิกส์เมล์หรืออีเมล มีการเริ่มใช้ตั้งแต่ยุคแรกของอินเทอร์เน็ต และถือว่าเป็นแอพพลิเคชันที่ได้รับความนิยม
สูงสุด ผู้ใช้บางคนใช้อินเทอร์เน็ตเพื่อเพียงการรับและส่งอีเมลเท่านั้น ในยุคแรกของการใช้อีเมลสามารถส่งได้เพียง
ข้อความเท่านั้น จนกระทั่งช่วง คศ. 1990 อีเมลถูกขยายให้รองรับข้อมูลที่เป็นไบนารี ทำให้สามารถที่จะส่งไฟล์
ข้อมูลประเภทต่างๆได้ ตราบเท่าที่ไม่เกินข้อจำกัดของโปรแกรมที่ใช้ ซึ่งรูปแบบที่ใช้ในการส่งนี้เป็นการทำงานของ
Multipurpose Internet Mail
รูปแบบอื่นๆได้ KKUExtensions (MIME) ทำให้ปัจจุบันผู้ใช้สามารถที่จะส่งรูปภาพ หรือไฟล์เอกสารใน

การทำงานในการกระจายอีเมล จากผู้ส่งไปหาผู้รับมีหลักการแตกต่างจากการส่งข้อมูลทั่วไปที่เราได้เรียนรู้ไป
แล้ว การส่งแพกเกตจะถูกส่งออกไปทันที จากนั้นรอจนกระทั่งได้รับ ACK เพื่อยืนยันการได้รับแพกเกตนอกจากนี้
อาจมีการส่งแพกเกตออกไปใหม่หากเกิด timeout หรือไม่ได้รับ ACK ตามที่คาดไว้ ในการจัดการกับอีเมล ระบบ
จะใช้การ spooling ดังนั้น เมื่อผู้ใช้ส่งอีเมลแทนที่อีเมลจะถูกส่งออกไปทันที อีเมลจะถูกเก็บไว้พร้อมทั้งระบุ ชื่อผู้ส่ง
ผู้รับ เครื่องปลายทาง และเวลาที่จัดเก็บ
อีเมลจะถูกส่งออกไปจากโปรเซสที่ทำงานอยู่ด้านหลัง(backgroundprocess)เริ่มจากการตรวจสอบdomain

name ที่จะส่งไป เพื่อหา IP address ของผู้รับปลายทาง จากนั้นจึงสร้างเส้นทางเพื่อติดต่อไปยัง mail server ปลาย
ทาง หากการเชื่อมต่อสามารถที่จะทำได้อีเมลจะถูกส่งไปเก็บยังเครื่องปลายทาง จากนั้นอีเมลที่ภาคส่งจะถูกกำจัด
ไป ในขณะที่ผู้รับสามารถที่จะอ่าน ลบ ส่งต่อ หรือตอบกลับอีเมลที่ได้รับได้ อีเมลทั่วไปจะประกอบไปด้วยเฮดเดอร์
ที่สำคัญดังแสดงในตารางที่ 29.1



29.5.1 Simple Mail Transport Protocol (SMTP)

การทำงานของอีเมลที่กล่าวไปแล้ว อยู่บนพื้นฐานการทำงานของ Simple Mail Transport Protocol (SMTP) เพื่อ

ให้เมลเซิร์ฟเวอร์ (mail server) ของภาครับและภาคส่งสามารถส่งเมล ถึงกันได้ SMTP ทำงานในลักษณะที่เรียก

29.5. อีเมล (ELECTRONIC MAIL) 243



เฮดเดอร์ฟิลด์ รายละเอียด
To อีเมลของผู้รับ
From อีเมลของผู้ส่ง
Date วันและเวลาที่ส่ง
Subject รายละเอียดย่อยอีเมลที่ส่ง
Cc อีเมลของผู้ใช้อื่นที่จะส่งไปหาพร้อมกัน
Bcc อีเมลของผู้รับที่อยู่ใน Bcc จะไม่ปรากฎในรายชื่อผู้รับ อีเมล
หรือเรียกว่าเป็นการส่งแบบ blind copy
Reply-to อีเมลของผู้ที่จะได้รับการตอบกลับ หากฟิลด์นี้ไม่ปรากฎ
การตอบกลับจะตอบกลับไปยังที่ปรากฎใน From

ตารางที่ 29.1: เฮดเดอร์ของอีเมลที่สำคัญ


book)
ว่า store­and­forward โดยที่การสื่อสารของ SMTP เป็นการสื่อสารแบบทางเดียวจากภาคส่งไปยังภาครับ ดัง
นั้น SMTP server หนึ่งจะติดต่อไปยังอีก SMTP server อีกตัวหนึ่ง ก็ต่อเมื่อมีเมลที่ต้องส่งภาคไปยังอีกเซิร์ฟเวอร์
เท่านั้น เซิร์ฟเวอร์ที่ส่งเมสเสจไปจะไม่รับ mail message ใดๆจากภาครับในระหว่างการติดต่อนี้ ดังแสดงในรูปที่
29.11 หากภาครับต้องการที่จะส่ง mail message ใดๆกลับ เซิร์ฟเวอร์ภาครับต้องทำลักษณะเดียวกัน และสร้าง
(partial
การเชื่อมต่อใหม่ไปยังเซิร์ฟเวอร์แรก








only





KKU รูปที่ 29.11: การสื่อสารของ SMTP






ในทำนองเดียวกัน เมื่อภาครับได้รับเมสเสจทั้งหมดจากภาคส่ง หากมีความจำเป็นในการส่งเมสเสจต่อไปยังเมล
เซิร์ฟเวอร์อื่น เซิร์ฟเวอร์ภาครับจะทำงานเช่นเดียวกันกับเซิร์ฟเวอร์ภาคส่งที่แล้ว เพื่อส่งเมสเสจนั้นต่อไป


29.5.2 Multipurpose Internet Mail Extensions (MIME)


เนื่องจากปัจจุบันการส่งmailมิใช่เป็นแบบข้อความ(Text-based)เท่านั้นMultipurposeInternetMailExtensions
(MIME) เพิ่มเติมความสามารถการส่งอีเมลปกติ ทำให้สามารถส่งข้อมูลที่เป็นไบนารีได้ โดยการแปลงให้อยู่ในรูป
แบบของ MIME (MIME format) ก่อนที่จะส่งออกไป จากนั้นเมื่อภาครับได้รับและดาวน์โหลด เครื่องของผู้ใช้จะ
แปลงกลับให้อยู่ในรูปเดิม โดยที่ MIME ได้เพิ่มเดิมการทำงานของอีเมลปกติ รวมไปถึงการทำงานต่อไปนี้


• เพิ่มความสามารถในการส่งที่ไม่ใช่เพียงตัวอักษรแอสกี (ASCII) เท่านั้น ทำให้เราสามารถที่จะส่งอักขระพิเศษ
อื่นได้ และที่ไม่ใช่ภาษาอังกฤษ

• ไม่จำกัดความยาวของเมสเสจที่ส่ง และจำนวนตัวอักษรต่อบรรทัด


• รองรับการส่งรูปภาพ เสียง และข้อความที่มีการจัดรูปแบบพิเศษ

244 บทที่ 29. APPLICATION LAYER



29.5.3 Post Office Portocol (POP)


POP เป็นโพรโตคอลที่พัฒนาขึ้นเพื่อรองรับการเรียกเมสเสจ(message-retrieval) จากเซิร์ฟเวอร์ POP ไม่รองรับ
การส่งเมสเสจซึ่งยังคงเป็นหน้าที่ของ SMTP โดยที่ไคลเอนต์หรือเครื่องของผู้ใช้จะสร้างการเชื่อมต่อแบบ TCP ไป
ยังเซิร์ฟเวอร์ที่พอร์ต 110 หลังจากการเชื่อมต่อเสร็จสำเร็จ ไคลเอนต์ต้องส่งชื่อผู้ใช้ (username) และรหัสผ่าน
(password) ไปยังเซิร์ฟเวอร์ หากถูกต้องผู้ใช้สามารถที่จะดาวน์โหลดหรือลบเมสเสจตามที่ต้องการได้
อย่างไรก็ตาม การทำงานของ POP มีข้อจำกัดในการทำงานที่สามารถทำได้บนเซิร์ฟเวอร์ เนื่องจากสามารถดู

เมสเสจที่มีอยู่ ลบเมสเสจและดาวน์โหลดเมสเสจ การทำงานอื่นๆจะทำบนเครื่องไคลเอนต์เท่านั้น ด้วยข้อจำกัดนี้
ทำให้เกิดเวลาหน่วงและทราฟฟิก เมื่อมีความจำเป็นในการดาวน์โหลดเมสเสจจากเซิร์ฟเวอร์มายังไคลเอนต์ ทำให้มี
การพัฒนา Internet Message Access Protocol (IMAP) เพื่อรองรับความต้องการดังกล่าว


29.5.4 Internet Message Access Protocol (IMAP)


book) ได้ขยายการทำงานเพิ่ม
IMAP เป็นโพรโตคอลทีมีจุดประสงค์การใช้งานเช่นเดียวกับ POP อย่างไรก็ตาม IMAP
เติมจาก POP เพื่อให้สามารถตรวจสอบข้อความ (message) ได้โดยไม่จำเป็นต้องคัดลอกเอกสารมาภายในเครื่อง
IMAP ยังอนุญาตให้ผู้ใช้กำหนดรูปแบบการค้นหา และสามารถที่จะสร้าง ลบ หรือแก้ชื่อ mailbox บนเซิร์ฟเวอร์พบ
ว่าปัจจุบันโปรแกรมบนเครื่องไคลเอนต์โดยทั่วไปจะสนับสนุนการใช้งานของ POP แต่จากข้อดีของ IMAP เป็นไปได้
ว่าเครื่องไคลเอนต์จะเปลี่ยนไปใช้ IMAP แทน



29.6 สรุป (partial


only
พื้นฐานการเขียนโปรแกรมบนเน็ตเวิร์คอาศัยการสร้างซ็อกเก็ตเพื่อเรียกผ่านจาก API ที่ระบบปฏิบัติการได้กำหนด
ไว้ แม้ว่าในการเขียนโปรแกรมด้านเน็ตเวิร์คในปัจจุบันซ็อกเก็ตจะถูกสร้างขึ้นโดยโปรแกรมเมอร์ไม่รู้ตัว แต่เพื่อการ
ทำงานในเชิงลึก การเข้าใจถึงการทำงานของซ็อกเก็ตและการสร้างการเชื่อมต่อถือเป็นส่วนสำคัญที่ได้อธิบายในบท
KKU
นี้
นอกจากนี้ บทนี้ยังแนะนำโพรโตคอลที่สำคัญต่างๆ เพื่อรองรับการทำงานของแอพพลิเคชันที่นิยมใช้ในปัจจุบัน
เช่น HTTP, FTP และ RTP เป็นต้น โดยทั่วไปแล้วปัจจุบันมีแอพพลิเคชันใหม่เกิดขึ้นมากมาย แต่อย่างไรก็ตามทุก
แอพพลิเคชันมีหลักการที่คล้ายคลึงกัน โดยผู้สนใจสามารถใช้ความรู้จากบทนี้



29.7 คำถามท้ายบท


1. ซ็อกเก็ตคืออะไร มีความสำคัญในการเขียนโปรแกรมเพื่อการสื่อสารอย่างไร


2. อะไรคือความแตกต่างระหว่างแอพพลิเคชันที่ใช้งานทั่วไปกับเน็ตเวิร์คแอพพลิเคชัน

3. อธิบายการพัฒนาโปรแกรมเพื่อใช้งานกับการสื่อสารแบบ TCP

4. จงเปรียบเทียบความแตกต่างของการสื่อสารผ่าน HTTP เวอร์ชัน 1.0 และ 1.1

5. การกระจายอีเมล์จากภาคส่งไปยังภาครับ เทียบกับการสื่อสารแบบไคลเอนต์/เซิร์ฟเวอร์อย่างไร

6. SNMP ถือเป็นโพรโตคอลที่ได้รับความนิยมอย่างมากในการใช้ในการตรวจสอบประสิทธิภาพของระบบ และ
มีการพัฒนาออกมาเป็นแอพพลิเคชันที่หลากหลาย อยากทราบว่ามีโปรแกรมใดบ้างที่ทำงานบนพื้นฐานของ

SNMP จงยกตัวอย่าง free-software และ commercial software อย่างละหนึ่งโปรแกรม

บทที่ 30





Domain Name System (DNS)







จากการที่เราได้กล่าวถึงในช่วงต้น จะเห็นว่าการสื่อสารระหว่างผู้ใช้ หรืออุปกรณ์ต่างๆสามารถทำได้โดยผ่านการ
book) เปรียบได้กับการที่เราต้อง
เชื่อมโยงโดยใช้ IP Address เนื่องจากการใช้ IP Address ทำให้การจดจำเป็นไปได้ยาก
จดจำหมายเลขประจำตัวของบุคคลอื่นแทนการจดจำชื่อ ทำให้เกิดความสับสนและมีการผิดพลาดได้ง่าย ดังนั้นเพื่อ
ให้เกิดความสะดวก จึงทำให้เกิด DNS เพื่อจับคู่ระหว่าง IP Address กับชื่อของเน็ตเวิร์คเพื่อให้ผู้ใช้สามารถจดจำได้
ง่ายขึ้น

(partial ARPANET การจับคู่ทำโดยการใช้โฮสต์ไฟล์
ในยุคแรกของการใช้อินเทอร์เน็ตหรือกล่าวได้ว่าในสมัยที่ยังคงเป็น
ชื่อ hosts.txt ดูแลโดย Network Infromation Center (NIC) หรือในปัจจุบันคือ IANA ไฟล์ดังกล่าวใช้ในการเก็บ
ชื่อโฮสต์ต่างๆ และต้องอัฟเดททุกครั้งที่มีการเปลี่ยนแปลง เมื่อผู้ใช้ต้องการส่งข้อมูล โฮสต์จะค้นหาในโฮสต์ไฟล์ดัง
กล่าว เนื่องจากปัจจุบันมีโดเมนจำนวนมาก ทำให้การใช้วิธีดังกล่าวไม่สามารถรองรับได้ การที่ต้องแก้ไขและกระจาย
ไฟล์ในวิธีที่ผ่านมาไม่มีสิทธิภาพ ทำให้มีการพัฒนาการใช้งานของ Domain Name System (DNS) ซึ่งประกอบไป
ด้วยสามส่วนสำคัญคือ only



1. Domain Name Space และ Resource Records : เพื่อใช้ในการตั้งชื่อตามอิสระ และข้อมูลที่เกี่ยวข้อง
KKU
กับชื่อนั้น

2. Name Servers : เพื่อใช้ในการจัดการกับโครงสร้างของ Domain Tree's และ Record โดยที่แต่ละ name

server จะมีข้อมูลของ domain space ทั้งหมดรวมถึงการชี้ไปยัง name server อื่นเพื่อใช้ในการค้นหา
ข้อมูลของใน Domain tree

3. Resolvers : เป็นโปรแกรมเพื่อดึงข้อมูลจาก name server เมื่อมีการร้องขอจากเครื่องลูกข่าย




30.1 Domain Name Space



ในการจัดการกับชื่อที่มีจำนวนมาก และมีการเปลี่ยนแปลงเกิดขึ้นตลอดเวลา ค่อนข้างจะเป็นเรื่องยุ่งยากหากไม่มี
การจัดการที่เป็นระบบ ดังนั้นการใช้การจัดการที่เป็นแบบลำดับขั้น (Hierarchical) จึงเป็นวิธีในการจัดการที่ดีที่สุด
เปรียบเทียบได้กับการตั้งรหัสโทรศัพท์บ้านที่มีการแบ่งเป็นเขต เช่น 043 สำหรับ ขอนแก่น หรือ 042 ในนครพนม
ในการทำงานของ domain name space ทำโดยการแบ่งเป็นออกเป็นระดับ (level) มีทั้งสิ้น 128 ระดับ root จะ
ถือเป็นระดับ 0
DNS จะถูกใช้กับแอพพลิเคชันต่างๆเช่น HTTP, FTP และ SMTP เพื่อแปลงจากชื่อของโฮสต์ไปเป็น IP Address

หากเราลองพิจารณาจาก URL ต่อไปนี้ www.someschool.edu/index.html การที่ผู้ใช้จะสามารถสื่อสารกับ

245

246 บทที่ 30. DOMAIN NAME SYSTEM (DNS)



























book)



รูปที่ 30.1: Domain Name Space


(partial
โฮสต์ที่ต้องการได้ โฮสต์ของผู้ใช้จะต้องทราบ IP Address ของ www.someschool.edu เสียก่อน โดยมีขั้นตอน
ดังนี้


1. บราวเซอร์อ่านชื่อของโฮสต์จาก URLที่จะส่งไป ในที่นี้ คือ www.someschool.edu และส่ง hostname นี้

ไปยังส่วนของ DNS client ที่ทำงานอยู่ภายในเครื่อง
only

2. DNS client ส่งชื่อของโฮสต์ไปถามยัง DNS server


3. DNS client ได้รับการตอบกลับ IP Address ที่ต้องการ
KKU

4. หลังจากทราบ IP Address บราวเซอร์จะสร้างการเชื่อมต่อไปยัง IP Address นั้น



30.2 การทำงานของ DNS [28]



เพื่อให้ไคลเอนต์ส่งถาม IP Address ที่ต้องการ วิธีการที่ง่ายที่สุด คือการกำหนดเซิร์ฟเวอร์ของ DNS หนึ่งเป็น
ศูนย์กลางให้ไคลเอนต์ร้องขอ แต่อย่างไรก็ตาม เนื่องจากปัจจุบันมีจำนวนไคลเอนต์อยู่เป็นจำนวนมากและมีการ

เปลี่ยนแปลงที่ค่อนข้างสูง การทำงานโดยมี DNS เป็นศูนย์ อาจทำให้เกิดผลเสียเช่น การล่มของเซิร์ฟเวอร์ DNS จะ
ทำให้เกิดความเสียหายทั้งระบบ จำนวนของการร้องขอจำนวนมาก ทำให้ต้องออกเแบบให้มีการทำงานของ DNS
เป็นแบบการกระจาย (Distributed) และเป็นลำดับขั้น (Hierarchy)
การทำงานของ DNS จะมีเซิร์ฟเวอร์จำนวนมากในการเก็บข้อมูล DNS ทั่วโลก โดยไม่มีตัวหนึ่งตัวใดเก็บข้อมูล

ไว้ทั้งหมด การทำงานของ DNS จะแบ่งออกเป็นสามชนิดคือ Root DNS server, top-level domain (TLD) DNS
servers และ Authoritative DNS server ดังแสดงในรูปที่ 30.2


Root DNS servers เป็นคลัสเตอร์ของเซิร์ฟเวอร์มีจำนวน 13 ตัว โดยมากจะอยู่ในประเทศอเมริกา มีหน้าที่ใน

การชี้ไปยัง TLD server ต่างๆ

30.2. การทำงานของ DNS [?] 247





















รูปที่ 30.2: การแบ่งลำดับ (hierarchy) ของ DNS


Top­level domain (TLD) servers ทำหน้าที่ในการเก็บ top-level domain เช่น .com, .org, .net หรือ
book)
Generic TLD (gTLD) และ top-level ของแต่ละประเทศ เช่น th, cn, uk หรือ country code TLD
(ccTLD) เป็นต้น

Authoritative DNS servers ใช้ในการเก็บข้อมูลของ DNS ของแต่ละองค์กรที่มีโฮสต์ซึ่งสามารถเข้าถึงได้จาก
อินเทอร์เน็ตแต่ละองค์กรสามารถที่จะตั้งขึ้นเอง หรืออาจจ้างผู้อื่นในการเก็บข้อมูลเหล่านี้ให้ โดยมากแล้ว
(partial
มหาวิทยาลัยและบริษัทขนาดใหญ่มักจะมีส่วนนี้เป็นของตนเอง


Local DNS server ถือเป็นเซิร์ฟเวอร์ที่มีความสำคัญในการลดการร้องขอเข้าสู่เซิร์ฟเวอร์หลัก เมื่อโฮสต์
ต้องการจะค้นหา IP Address โฮสต์เริ่มจากการร้องขอไปยังเซิร์ฟเวอร์ Local DNS เป็นลำดับแรก ซึ่งจะทำหน้าที่
เปรียบเสมือนพร็อกซี่ (proxy) และจะส่งต่อการร้องขอไปยังเซิร์ฟเวอร์ DNS อื่น
only
ตัวอย่าง 30.1 การสื่อสารภายใต้ Local DNS เดียวกันสามารถแสดงในรูปที่ 30.3 สมมติให้ gear.en.kku.ac.th
ต้องการค้นหา ae.en.kku.ac.th ดังนั้น การทำงานจะเริ่มจาก ขั้นที่ 1 gear.en.kku.ac.th ตรวจสอบไปยัง
เซิร์ฟเวอร์ Local DNS เนื่องจากกรณีนี้ ae.en.kku.ac.th อยู่ในเซิร์ฟเวอร์ Local DNS เดียวกัน ดังนั้นทำให้
KKU
เซิร์ฟเวอร์LocalDNSสามารถที่จะตอบกลับได้ทันทีโดยการส่งกลับIPaddressเพราะฉะนั้นgear.en.kku.ac.th
สามารถสื่อสารกับ ae.en.kku.ac.th ได้ทันที


ตัวอย่าง 30.2 อีกหนึ่งตัวอย่างที่น่าสนใจแสดงในรูปที่ 30.4 คือหากโดเมนที่ค้นหาคือ std.mgt.kku.ac.th ไม่ได้
อยู่ภายใต้เซิร์ฟเวอร์ Local DNS เดียวกันกับ gear.en.kku.ac.th ทำให้เซิร์ฟเวอร์ Local DNS ไม่สามารถตอบได้
ทันทีจากการร้องขอในขั้นที่ 1 ดังนั้น จึงต้องเริ่มร้องขอไปยังเซิร์ฟเวอร์ถัดขึ้นไปในที่นี้คือ kku.ac.th ในขั้นที่ 2 จาก

นั้นเซิร์ฟเวอร์kku.ac.th ปลายทางที่ต้องการค้นหานี้อยู่ภายใต้ mgt.kku.ac.th ทำให ้kku.ac.th ส่งการร้องขอ
เพื่อไปยัง std.mgt.kku.ac.th ในขั้นที่ 3 ในที่นี้ เมื่อการร้องขอถูกส่งไปยังเซิร์ฟเวอร์ mgt.kku.ac.th เนื่องจาก
เซิร์ฟเวอร์ mgt.kku.ac.th สามารถตอบการร้องขอนี้ได้ mgt.kku.ac.th จะตอบกลับไปยัง kku.ac.th ในขั้นที่ 4
จากนั้นการตอบกลับนี้จะถูกส่งต่อไปยัง en.kku.ac.th ในขั้นที่ 5 และ gear.en.kku.ac.th ในขั้นที่ 6 ตามลำดับ


การทำงานที่กล่าวไปในการหา std.mgt.kku.ac.th นี้เรียกว่าเป็นการค้นหาแบบ recursive query การทำงาน
แบบนี้เริ่มจากการที่ไคลเอนต์ร้องขอไปยัง Local server ของตน จากนั้นเป็นหน้าที่ของเซิร์ฟเวอร์นี้รับผิดชอบใน
การค้นหา ซึ่งการค้นหานี้อาจจำเป็นต้องมีการร้องขอเพิ่มเติมอื่นๆ จนกระทั่งสามารถได้คำตอบเพื่อส่งไปยังไคลเอน
ต์
นอกจากการทำงานแบบ recursive query แล้ว การทำงานของ DNS สามารถทำงานแบบ nonrursive ได้
จากรูปที่ 30.5 จากขั้นที่ 1 แทนที่เซิร์ฟเวอร์ Local DNS จะส่งต่อไปยังเซิร์ฟเวอร์ถัดไป กลับตอบกลับมาทันที ใน

ขั้นที่ 2 พร้อมทั้งระบุเซิร์ฟเวอร์ถัดไป จากนั้น gear.en.kku.ac.th จะส่งการร้องขอตรงไปยังเซิร์ฟเวอร์ที่อ้างถึง ใน

248 บทที่ 30. DOMAIN NAME SYSTEM (DNS)



























book)







(partial


รูปที่ 30.3: การทำงานของ DNS อย่างง่าย





only





KKU





























รูปที่ 30.4: การทำงานของ DNS เมื่อโนดไม่อยู่ใน Local server เดียวกันแบบ Recursive query

30.3. DNS TOOLS 249



ที่นี้คือ kku.ac.th ในขั้นที่ 3 เมื่อได้รับการตอบกับจากเซิร์ฟเวอร์ kku.ac.th ซึ่งจะอ้างถึงเซิร์ฟเวอร์ถัดไปในขั้นที่
4 จากนั้น gear.en.kku.ac.th จะส่งไปยังเซิร์ฟเวอร์ที่อ้างถึงอีกครั้งในขั้นที่ 5 ซึ่งประสบความสำเร็จในการค้นหา
std.mgt.kku.ac.th เพื่อสื่อสารต่อไป


















book)







(partial


รูปที่ 30.5: การทำงานของ DNS เมื่อโนดไม่อยู่ใน Local server เดียวกันแบบ Nonrecursive query





only
30.3 DNS tools


ในการตรวจสอบ DNS name สามารถทำได้โดยการใช้คำสั่งเช่น nslookup และ whois เป็นต้น การใช้ nslookup
จะทำให้ระบบตอบกลับด้วยเซิร์ฟเวอร์ที่เป็นค่าปริยายของระบบพร้อมทั้งหมายเลขของIPAddressของเซิร์ฟเวอร์
KKU domain name ที่ลงทะเบียนไว้ นอกจากนี้ ปัจจุบันเราสามารถที่จะเข้าถึง DNS ได้
นั้น การใช้ whois เพื่อระบุ
ผ่านทางเว็บไซต์ http://www.domainwhitepages.com/ ซึ่งจะตอบกลับด้วยชื่อของบริษัทที่ลงทะเบียนชื่อนั้น,
ชื่อของ Name servers และ อื่นๆ

book)







(partial









only





KKU

บทที่ 31





การบริหารจัดการเน็ตเวิร์ค (Network Management)







การทราบถึงเหตุการณ์ต่างๆที่เกิดขึ้นในเน็ตเวิร์คถือเป็นปัจจัยสำคัญที่จะทำให้ระบบทั้งหมดทำงานอย่างประสิทธิภาพ
book) จัดการ และควบคุมการ
การบริหารจัดการเน็ตเวิร์ค (Network Management) เกิดขึ้นเพื่อใช้ในการตรวจสอบ
ทำงานของเน็ตเวิร์ค เสมือนกับการบริหารการจัดการต่างๆ จากการที่เราทราบมาแล้วระบบเน็ตเวิร์คถือเป็นระบบที่
ประกอบไปด้วยอุปกรณ์หลากหลาย ไม่ว่าจะเป็น เซิร์ฟเวอร์ เร้าเตอร์และอุปกรณ์ต่างๆ รวมถึงการเชื่อมต่อที่ใช้ ไม่
ว่าจะเป็นติดต่อแบบใช้สาย หรือการเชื่อมต่อแบบไร้สาย ดังนั้นหากระบบมีขนาดใหญ่ขึ้นเรื่อยๆ ความจำเป็นในการ
(partial และสามารถเข้าแก้ไขได้อย่างทันท่วงที
เข้าจัดการมีความสำคัญก็ยิ่งเพิ่มสูงขึ้น เพื่อให้ทราบถึงจุดบกพร่อง
การบริหารจัดการเน็ตเวิร์คมีจุดประสงค์เพื่อทำงานในด้านต่างๆใดดังนี้ [34]

• QoS และ Performance management: ผู้ดูแลระบบจำเป็นในการตรวจสอบและวิเคราะห์การทำงาน
ของเร้าเตอร์ โฮสต์ และการเชื่อมต่อเพื่อไม่ให้เกิดการคับคั่งของข้อมูล ณ จุดใดจุดหนึ่งโดยไม่จำเป็น เช่น
only
การวิเคราะห์ทรูพุต และจำนวนแพกเกตผิดพลาด การ การวิเคราะห์ในกรณีนี้ทำให้ผู้ดูแลระบบสามารถที่

จะใช้ในการวางแผน และรวมถึงการจำลองความสามารถของระบบเพื่อรองรับการขยายตัวในอนาคต

KKU
• Network failure management: เพื่อตรวจสอบความผิดพลาดที่อาจเกิดขึ้น เช่นอุปกรณ์ในเน็ตเวิร์ค
ขัดข้องเพื่อให้สามารถแก้ไขอย่างทันท่วงที เช่นการเกิดไฟดับ หรือสายสัญญาณขาดอันเนื่องมาจากต้นไม้ล้ม


• Configuration management: ผู้ดูแลระบบจำเป็นต้องติดตามการติดตั้งที่ได้จัดการไปแล้ว และตรวจ
สอบว่าการทำงานเป็นไปอย่างเหมาะสม หากมีความผิดปกติอันเนื่องมาจากการเปลี่ยนแปลงของเร้าติ้ง
เทเบิล ผู้ดูแลต้องสามารถตรวจหาจุดบกพร่องและติดตั้งใหม่ก่อนที่ความผิดพลาดดังกล่าวจะกระจายไปที่
อื่น


• Security Management: ผู้ดูแลระบบจะต้องดูแลความมั่นคงปลอดภัยของเน็ตเวิร์คเช่นในการตรวจหา
การบุกรุกเน็ตเวิร์ค

• Billing และ Accounting management: ผู้ดูแลระบบสามารถระบุการเข้าถึงเน็ตเวิร์คปริมาณการใช้

ของผู้ใช้แต่ละคน รวมถึงค่าใช้จ่ายที่เกี่ยวข้อง


31.1 องค์ประกอบของการบริหารจัดการเน็ตเวิร์ค



การทำงานของการบริหารจัดการเน็ตเวิร์คประกอบด้วย 3 ส่วนหลักได้แก่


1. ส่วนกลางการจัดการ: ซึ่งประกอบไปด้วยผู้ดูแลระบบ และเครื่องมือที่ใช้ในการจัดการ

251

252 บทที่ 31. การบริหารจัดการเน็ตเวิร์ค (NETWORK MANAGEMENT)



2. เครื่องมือที่ถูกจัดการ: จะประกอบไปด้วยอุปกรณ์ด้านเน็ตเวิร์ค รวมถึงซอฟต์แวร์ที่ควบคุมโดยส่วนกลาง
การจัดการ ฮัป สวิตซ์ เร้าเตอร์ เซิร์ฟเวอร์และพรินเตอร์ สามารถที่จะรวมอยู่ในส่วนนี้ด้วย

3. โพรโตคอลในการจัดการ: เป็นส่วนของข้อกำหนดระหว่างส่วนกลางการจัดการ และเครื่องมือที่ถูกจัดการ

โดยในส่วนนี้จะทำให้ผู้ดูแลสามารถที่จะตรวจสอบสถานะของเครื่องมือที่อยู่ในความดูแลได้ ในการบริหาร
จัดการเน็ตเวิร์คเราให้ agent เป็นส่วนของ เครื่องมือที่ถูกดูแลเช่น ฮัป สวิตซ์และ เร้าเตอร์และ Manager
คือเครื่องมือของผู้ดูแลระบบ agent สามารถที่ใช้โปรโตตอลในการจัดการนี้แจ้งไปยังส่วนกลางการจัดการ
เพื่อบอกถึงสิ่งที่ไม่คาดคิดมาก่อน



31.2 Structure of Management Information (SMI)



SMI ใช้ในการกำหนดออบเจ็ค (object) และความหมายของออบเจ็คนั้น หรือกล่าวคือ SMI เป็นภาษาในการรูป
book)
แบบ instance ที่ส่วนกลางจัดการเน็ตเวิร์คต้องการใช้ ตัวอย่างเช่น Interger32 หมายถึงข้อมูลขนาด 32 บิตค่า
ระหว่าง −2 ถึง 2 -1 นอกจากนี้ SMI ยังใช้ในการสร้างภาษาระดับสูงในการกำหนดประเภทของข้อมูล สถานะ
31
31
และ semetics ในการใช้เพื่อดูแลเน็ตเวิร์คเช่น ipInDelivers เป็นการกำหนดข้อมูลขนาด 32 บิต ในการบันทึก
จำนวนดาต้าแกรมของ IP ที่รับได้ในอุปกรณ์ที่ถูกจัดการ
(partial


31.3 Management Information Base (MIB)


MIB เป็นส่วนของไฟล์ข้อมูลเพื่อใช้ในการจัดเก็บออบเจ็คต่างๆที่เกี่ยวข้องกับการจัดการระบบเน็ตเวิร์คการจัดเก็บ
only
ดังกล่าวจะถูกกำหนดโดยใช้รูปแบบ (syntax) ของภาษาที่เรียกว่า Abstract Syntax Notation 1 (ASN.1) เพื่อบ่ง
ถึงข้อมูลและคุณสมบัติต่างๆ ซึ่งในอุปกรณ์หนึ่งอาจมีการกำหนดให้มากกว่าหนึ่ง MIB ไฟล์ได้
ในแต่ละ MIB จะมีการกำหนดค่าของแต่ละออบเจ็คเรียกว่า object identifier (OID) เพื่อใช้ในการกำหนดชื่อ
KKU
ของออบเจ็ค โดยที่แต่ละ OID จะไม่ซํ้ากันในรูปแบบของจำนวนเต็ม โดยมีการแยกแตละค่าด้วยจุด เช่น OID
1.3.6.1.2.1.4.6 จะเป็น iso.org.dod.internet.mgmt.mib­2.ip.ipForwDatagrams หรือ ipForwDatagrams
ซึ่งแสดงถึงจำนวนของดาต้าแกรมที่ถูกส่งของเร้าเตอร์

ออบเจ็คต่างๆจะจัดเก็บในโครงสร้างลำดับขั้นแบบทรี (treelike hierarchy) โดยการกำหนดของ OIDs จะ
แสดงถึงลำดับขั้นจาก Root ของทรีไปยังแยก (branch) ต่างๆ ซึ่งจะกำหนดด้วยหมายเลขและชื่อกำกับดังแสดงใน
รูปที่ 31.1 นอกจาก MIB ที่ถูกกำหนดไว้แล้ว ผู้ผลิตอุปกรณ์ที่เกี่ยวข้องสามารถที่จะกำหนดออบเจ็คของตนเองเพิ่ม
เติมได้ ดังนั้นผู้ดูแลอาจจำเป็นต้องศึกษาเกี่ยว MIB ของแต่ละบริษัทเพื่อให้ได้ข้อมูลที่ครบถ้วน


• sys (system) บอกเกี่ยวกับข้อมูลของระบบเช่นชื่อ ตำแหน่งติดตั้ง เวลาการใช้งาน

• if (interface) บอกเกี่ยวกับข้อมูลของอินเตอร์เฟซเช่นหมายเลขของอินเตอร์เฟซ, MAC Address, IP

Address

• at (address translation) บอกเกี่ยวกับข้อมูลของ ARP table


• ip บอกเกี่ยวกับข้อมูลของ IP Address และ เร้าติ้ง

• icmp บอกเกี่ยวกับข้อมูลของ ICMP เช่นจำนวนแพกเกตที่ส่งและข้อผิดพลาดที่เกิดขึ้น


• tcp บอกเกี่ยวกับข้อมูลของ TCP เช่น ค่าของ timeout จำนวนพอร์ต จำนวนแพกเกตที่ส่งและรับ

31.4. SIMPLE NETWORK MANAGEMENT PROTOCOL (SNMP)[?] 253



























book)




รูปที่ 31.1: ASN.1 Object Identifier

(partial
• udp บอกเกี่ยวกับข้อมูลของ UDP เช่น ค่าของ timeout จำนวนพอร์ต จำนวนแพกเกตที่ส่งและรับ

• snmp บอกเกี่ยวกับข้อมูลของ SNMP เอง



31.4 Simple Network Management Protocol (SNMP)[31]
only

SMNP ถือว่าเป็นโพรโตคอลที่ได้รับความนิยมเพื่อตรวจสอบการทำงานของโพรโตคอลและอุปกรณ์ต่างๆในเน็ตเวิร์ค
เช่นการทำงานของ เร้าเตอร์หรือ โฮส์ต เสมือนเป็นออบเจ็คหนื่ง แต่ละออบเจ็คจะถูกกำหนดด้วย ASN.1 โดยที่แต่
KKU
ละออบเจ็คจะถูกเก็บเพื่อระบุสิ่งที่เกิดขึ้นใน MIB การใช้โพรโตคอลนี้จะทำให้ผู้ดูแลระบบสามารถที่จะระบุความผิด
ปกติที่เกิดขึ้น การร้องขอของ SNMP จะใช้ UDP ในลักษณะของไคลเอนต์ และเซิร์ฟเวอร์ การทำงานของ SNMP
ประกอบไปด้วยคำสั่งหลัก ได้แก่

• get เรียกข้อมูลจากพารามิเตอร์ที่ต้องการ

• get­next เรียกข้อมูลจากพารามิเตอร์ถัดไปที่อยู่ในรายการ


• set ตั้งค่าของพารามิเตอร์

• trap การกำหนดค่าเพื่อแจ้งเตือนแก่ผู้ดูแลระบบ เมื่อค่าที่ต้องการตรวจสอบถึงค่าที่กำหนด ค่าพารามิเตอร์
จะถูกส่งไปตามที่กำหนด การใช้ trap ช่วยลดการเรียกดูข้อมูลตลอดเวลา โดยจะแจ้งแบบอัตโนมัติเมื่อถึง
ค่าที่กำหนด


โดยค่าที่สามารถเข้าถึงโดย SNMP จะถูกกำหนดไว้ใน Management Information Bases (MIB) พารามิเตอร์ต่างๆ
สามารถที่จะเป็นค่าที่อยู่ใน MIB มาตรฐาน หรือ MIB เฉพาะของบริษัท การทำงานของ SNMP จะส่งข้อมูลใน MIB
ระหว่างส่วนกลางการจัดการและ Agent ที่ทำงานภายใต้การควบคุมของส่วนกลางการจัดการ หากเกิดสิ่งปกติเกิด
ขึ้นโพรโตคอลนี้จะแจ้งไปยังส่วนกลางการจัดการ SNMP มีการพัฒนาในปัจจุบันเป็นเวอร์ชัน 3 โดยมีการเพิ่มการ
ทำงานด้านความมั่นคงเพิ่มขึ้น หลังจากกได้เพิ่มเติมโพรโตคอลที่สามารถทำงานร่วมได้ และรูปแบบของเมสเซสที่

มากขึ้น รูปที่ 31.2 แสดงโครงสร้างพื้นฐานของ SNMP

254 บทที่ 31. การบริหารจัดการเน็ตเวิร์ค (NETWORK MANAGEMENT)























รูปที่ 31.2: โครงสร้างพื้นฐานของ SNMP


book)
ตัวอย่างของพารามิเตอร์ของ MIB ในส่วนที่เกี่ยวข้องกับอินเตอร์เฟซเช่น ifInOctets บอกถึงจำนวนไบต์ที่ได้
รับ, ifOutOctets บอกถึงจำนวนไบต์ที่ได้ส่ง, ifInUcastPkts บอกถึงจำนวนยูนิคาสท์ที่ได้รับ, ifOutUcastPkts
บอกถึงจำนวนยูนิคาสท์ที่ได้ส่ง เป็นต้น โดยค่าเหล่านี้สามารถที่จะดูเป็นช่วงๆ หรือดูแบบต่อเนื่องเพื่อศึกษาค่าของ
ทรูพุธ หรือความผิดพลาด (inInErrors, inOutErrors) ที่เกิดขึ้นในระบบ
(partial
การใช้งานของ SNMP ค่อนข้างมีประโยชน์สำหรับผู้ดูแลระบบ เพื่อคอยตรวจสอบความผิดพลาดหรือความผิด
ปกติในระบบเน็ตเวิร์คอย่างไรก็ตามผู้สนใจสามารถศึกษาเพิ่มเติมจาก

• Snmp, Snmpv2, Snmpv3, and Rmon 1 and 2, by William Stallings, Addison- Wesley, January
1999.


• Understanding Snmp Mibs, by David Perkins and Evan McGinnis, Prentice Hall, December
1996. only

• Simple Network Management Protocol (SNMP), STD 0015,1 by J. D. Case, M. Fedor, M. L.
KKU
Schoffstall, C. Davin, May 1990.


• Simple Network Management Protocol (SNMP): Traffic Measurements and Trace Exchange
Formats J. Schoenwaelder, October 2008

บทที่ 32





Quality of Service (QoS)






book) philosopher, statesman)
It is quality rather than quantity that
matters.

Lucius Annaeus Seneca (Roman Stoic

(partial

ในอดีตแม้ว่าคำว่า Quality of Server (Qos) หรือ คุณภาพบริการจะไม่มีการกล่าวถึงมากนัก เนื่องจากการ
สื่อสารข้อมูลในช่วงเริ่มต้นมีขนาดเล็ก เช่น เพื่อการส่งข้อความในลักษณะอีเมล รวมถึงเน็ตเวิร์คยังมีแบนด์วิดท์ที่ตํ่า

แต่ด้วยความนิยมของอินเทอร์เน็ตที่เพิ่มสูงขึ้น ทำให้จำเป็นต้องรองรับจำนวนผู้ใช้ที่เพิ่มสูงขึ้น ด้วยการเพิ่มขนาด
ของแบนด์วิดท์ให้สูงขึ้น อย่างไรก็ตามการเพิ่มแบนด์วิดท์ที่สูงขึ้น มิได้เป็นการแก้ปัญหาทั้งหมด เนื่องจากความต้อง
only
การแบนด์วิดท์ของแอพพลิเคชันมีสูงขึ้นเช่นกัน เช่น การใช้ช่องสัญญาณเพื่อความบันเทิงด้านมัลติมีเดียต่างๆ รูปที่
32.1 แสดงตัวอย่างการใช้งานของช่องสัญญาณ ในอดีต ปัจจุบัน และการคาดการณ์ในอนาคตที่จะเกิดแอพพลิเคชัน
ใหม่ๆ ที่มีความต้องการใช้แบนด์วิดท์ที่สูงขึ้น
KKU









รูปที่ 32.1: เปรียบเทียบ traffic ในอดีตกับอนาคต QoS


ดังนั้นเพื่อยกระบบการให้บริการบนเน็ตเวิร์ค ซึ่งเป็นการบริการแบบ best effort ปราศจากการสนับสนุน
ให้การสื่อสารเป็นไปได้อย่างถูกต้องและรวดเร็ว การทำงานของ QoS ถูกพัฒนาขึ้นเพื่อช่วยสนับสนุนให้สามารถ
จัดการกับข้อมูลที่เกิดขึ้นให้ดีขึ้น เช่นการจัดคิวของข้อมูลตามลำดับความสำคัญ การจัดการกับข้อมูลที่จะถูกส่งเข้าสู่
เน็ตเวิร์ค รวมไปถึงการควบคุมสิทธิ์ของการเข้าใช้เน็ตเวิร์ค โดยที่ ITU ได้ให้ความหมายของ QoS ไว้ดังนี้


Totality of characteristics of a telecommunications service that bear on its ability
to satisfy stated and implied needs of the user of the service. [27]

จากคำจำกัดความดังกล่าวพบว่า QoS สามารถแบ่งเป็นสองส่วนคือ ส่วน QoS เพื่อประสิทธิภาพการทำงาน
ของเน็ตเวิร์ค เช่น อัตราความผิดพลาดเชิงบิต เวลาหน่วง และ ส่วนของ QoS ที่ไม่เกี่ยวข้องกับประสิทธิภาพการ
ทำงานของเน็ตเวิร์คเช่น ช่วงเวลาการให้บริการ ช่วงเวลาการซ่อมบำรุงระบบ และ ค่าใช้จ่ายการใช้เน็ตเวิร์คเป็นต้น

ในที่นี้ เราจะคำนึงถึงส่วน QoS ที่เกี่ยวข้องกับประสิทธิภาพการทำงานของเน็ตเวิร์คเท่านั้น

255

256 บทที่ 32. QUALITY OF SERVICE (QOS)



ดังนั้น หากพิจารณาในแง่ของเน็ตเวิร์คพบว่าการทำงานของ QoS ถือว่าเป็นคำที่กว้าง เนื่องจาก QoS ขึ้นอยู่
กับปัจจัยต่างๆที่แตกต่างตามผู้ใช้สนใจ เปรียบได้กับตาบอดคลำช้าง แต่ละคนอาจให้คำจำกัดความที่ไม่เหมือนกัน
ว่าช้างมีลักษณะอย่างไร อย่างไรก็ตามเมื่อกล่าวถึงการทำงานของระบบเน็ตเวิร์ค จึงขึ้นอยู่กับพารามิเตอร์ที่ผู้ใช้
สนใจ โดยค่าที่สำคัญสามารถอธิบายได้ดังนี้ [10]


ทรูพุต จากที่ได้กล่าวถึงไปแล้วในหัวข้อที่ 5.1.2 สรุปโดยง่ายก็คือจำนวนแพกเกตที่ส่งสำเร็จ ณ ช่วงเวลาหนื่งไม่

รวมแพกเกตที่มีความผิดพลาดเกิดขึ้น

เวลาหน่วงของแพกเกต ในที่นี้หมายรวมถึงเวลาทั้งหมด ที่ใช้ตั้งแต่ส่งออกจากต้นทางไปยังปลายทาง โดยเวลา

หน่วงของแพกเกตในเร้าเตอร์มีลักษณะคล้ายกับเวลาหน่วงในรูปที่ 5.7

แบนด์วิดท์ หมายรวมถึงความจุที่สามารถใช้ได้ หรืออาจรวมถึงความจุทั้งหมด ดังแสดงในหัวข้อที่ 5.1.1


Residual Error Rate แสดงถึงสัดส่วนของแพกเกตที่เกิดความผิดพลาด สูญหาย หรือซํ้า ต่อจำนวนแพกเกตที่
ส่งระหว่างผู้ใช้ในช่วงเวลาหนึ่งๆ book)


ค่าความผันผวนของเวลาหน่วง (Delay Variation) เนื่องจากความผันผวนของเวลาที่เกิดขึ้น มีผลทำให้ TCP
(partial
ส่งแพกเกตในเน็ตเวิร์คโดยไม่จำเป็น ทำให้เกิดผลกระทบต่อภาพรวมของระบบได้


อัตราการสูญหาย (Loss rate) สามารถพิจารณาจาก อัตราส่วนของแพกเกตที่สูญหายเทียบกับจำนวนแพกเกต
ที่ส่งทั้งหมดในช่วงเวลาหนึ่ง ทั่วไปจะวัดในรูปของเปอร์เซ็นต์ (%)


only
ความสามารถในการใช้งาน (Availability) ความสามารถในการใช้งานเป็นอีกหนึ่งตัวแปรที่สำคัญ เพื่อใช้ใน
การระบุถึงความสามารถในการให้บริการของระบบ ซึ่งรวมความสามารถในการเข้าถึงอุปกรณ์ และความ

สามารถของการทำงานให้เป็นไปตามที่กำหนด ในการส่งข้อมูลอาจแยกเป็นช่วงเวลาที่สามารถใช้งานได้ กับ
ที่ไม่สามารถใช้งานได้ ดังนั้นหากจำนวนการสูญหายของแพกเกตยังอยู่ในค่าที่ยอมรับได้ เราถือว่าระบบ
KKU
สามารถใช้งานได้ แต่หากไม่จะถือว่าระบบใช้การไม่ได้


เพื่อรองรับค่าพารามิเตอร์ต่างๆ ในบทนี้เราจะได้กล่าวถึงหลักการและโพรโตคอลที่สำคัญ 4 วิธี เพื่อรองรับ
QoS ดังนี้


1. การจัดการกับคิว (Queueing Disciplines): เป็นการทำงานโดยการจัดเรียงลำดับข้อมูลที่ได้รับ เช่นการ
จัดการแบบข้าก่อนออกก่อน หรือการจัดคิวตามความสำคัญของข้อมูล (priority) เป็นต้น


2. การจัดรูปทราฟฟิก (Traffic Shaping): เพื่อไม่ให้ข้อมูลที่ส่งเข้าสู่เน็ตเวิร์คมีค่าสูงเกินกว่าระบบจะสามารถ
รองรับได้ การจัดรูปทราฟฟิก (traffic shaping) จะจำกัดข้อมูลที่เข้าสู่ระบบ โดยบางส่วนจะถูกเก็บไว้ใน
บัฟเฟอร์ หรือกำจัดทิ้งไป หากมีเกินกว่าที่จะรองรับได้ ทำให้ไม่เกิดความคับคั่งของทราฟฟิกในเน็ตเวิร์คจน
ทำให้เกิดผลเสียในภาครวมได้


3. การจองทรัพยากร (Resource Reservation): การจองทรัพยากรที่อยู่ในระบบให้กับการบริการที่ร้องขอ

และรักษาการทำงานไว้จนกระทั่งการให้บริการสิ้นสุด

4. การควบคุมสิทธิ์เข้า (Admission Control): การควบคุมข้อมูลที่จะถูกส่งเข้ามายังในเน็ตเวิร์คให้อยู่ใน

ลักษณะที่สามารถยอมรับได้ หรือมีการตกลงกันล่วงหน้า

32.1. การจัดการกับคิว (QUEUEING DISCIPLINES) 257



32.1 การจัดการกับคิว (Queueing Disciplines)



การจัดการกับแพกเกตที่ได้รับให้มีความเท่าเทียมกันและเหมาะสม เป็นหนึ่งในการจัดการเพื่อให้การตอบสนอง
ของแพกเกตที่ได้รับเป็นไปตาม QoS ที่ต้องการ ในที่นี้จะได้กล่าวถึงพื้นฐานของการจัดคิวที่สำคัญ ได้แก่ ไฟโฟ
(First-In First-Out, FIFO), การจัดคิวแบบมีสิทธิพิเศษ (Priority), วิธีวนรอบ (Round Robin) และ Weighted Fair
Queuing [22]



32.1.1 คิวแบบไฟโฟ (FIFO Queueing)

การทำงานของคิวแบบไฟโฟ (First-In First-Out, FIFO) ถือว่าเป็นวิธีที่ง่ายและคลาสสิกที่สุดในการจัดคิว และ
เป็นมาตรฐานที่ได้รับการใช้กันอย่างแพร่หลายในระบบเน็ตเวิร์ค รวมไปถึงการบริหารจัดการคิวทั่วไป ซึ่งเป็นไป

ตามลำดับการร้องขอของผู้ใช้ ในเน็ตเวิร์คเร้าเตอร์จะทำหน้าที่ในการประมวลผลแพกเกตตามลำดับ แพกเกตมาถึง
book)
ก่อนจะได้รับบริการก่อน ทำให้แพกเกตที่มาที่หลังต้องรอให้แพกเกตก่อนหน้าประมวลผลสิ้นสุด จึงจะได้รับการ
ประมวลผลต่อไป รูปที่ 32.2 แสดงการทำงานของคิวแบบไฟโฟอย่างง่าย จากรูปจะเห็นว่า แพกเกตหมายเลข 1 มา
ถึงก่อนทำให้ได้รับบริการก่อน ตามด้วยแพกเกตหมายเลข 7 และ 2 จากนั้นพบว่าแพกเกตที่ 5 และ 8 มาพร้อมกัน
สมมติให้เร้าเตอร์ทำตามลำดับของคิว ทำให้แพกเกตหมายเลข 5 ได้รับบริการก่อน และแพกเกตหมายเลข 8 ตาม
(partial
ลำดับ การทำงานของคิวแบบไฟโฟจะทำเช่นนี้ไปเรื่อยๆ








only





KKU












รูปที่ 32.2: คิวแบบไฟโฟ (FIFO)




32.1.2 การจัดคิวแบบมีสิทธิพิเศษ (Priority Queue)


การจัดคิวแบบมีสิทธิพิเศษ (priority queue) ช่วยกำจัดปัญหาการรอจนกระทั่งข้อมูลที่อยู่หน้าสุดเสร็จ จึงสามารถ
เริ่มทำงานได้ การทำงานของการจัดคิวแบบมีสิทธิพิเศษ (priority queue) เสมือนการ ให้โนดมีสิทธิเพื่อส่งข้อมูลที่
ไม่เท่ากัน หลักการทำงานโดยให้ส่งข้อมูลที่มีสิทธิพิเศษสูงกว่าจนแล้วเสร็จ จึงส่งในลำดับที่มีสิทธิพิเศษถัดไป โดย
ข้อมูลที่ถูกส่งเข้ามาจะถูกจัดสรรให้อยู่ในลำดับที่เหมาะสม
การใช้การจัดคิวแบบมีลำดับความสำคัญ ทำให้เราสามารถทำให้บางแอพพลิเคชันมีประสิทธิภาพที่ดีกว่า
แอพพลิเคชันอื่นได้ เช่นในการให้สิทธิพิเศษ (priority) กับข้อมูลเกี่ยวกับการทำงานของเร้าติ้งมากกว่าข้อมูลที่มา

จากผู้ใช้ทั่วไป การใช้งานแบบมีสิทธิพิเศษนี้ ระบบเน็ตเวิร์คมีเสถียรภาพมากขึ้น แม้ว่าจะมีข้อมูลที่ส่งจำนวนมากใน

258 บทที่ 32. QUALITY OF SERVICE (QOS)



ระบบเน็ตเวิร์คตามทฤษฎีแล้ว เราสามารถที่จะกำหนดจำนวนคิวที่รอแบบมีสิทธิพิเศษมากเท่าที่เราต้องการใด้ แต่
การมีคิวจำนวนมาก อาจทำให้คิวที่มีสิทธิพิเศษตํ่า ไม่ได้รับการบริการหรือทำให้เกิดเวลาหน่วงที่สูง ดังนั้นคิวที่มี
ลำดับความสำคัญที่สูงควรจะมีขนาดของคิวที่สั้น รูปที่ 32.3 แสดงตัวอย่างการทำงานของคิวแบบมีสิทธิพิเศษ โดย
W = 3 มีค่าลำดับความสำคัญสูงสุด
















book)



รูปที่ 32.3: การจัดคิวแบบมีลำดับความสำคัญ (Priority)


จากรูป 32.3 จะเห็นว่าที่เวลา t = 0 ถึง 4 การทำงานจะไม่ต่างจากการจัดคิวแบบไฟโฟ แต่หลังจากสิ้นสุดการ

ประมวลผลแพกเกตหมายเลข 2 พบว่าแพกเกตหมายเลข 5 และ
(partial 8 เข้ามาที่เวลาพร้อมกัน (t = 3) โดยแพกเกต
หมายเลข 8 มีค่า W สูงกว่า ทำให้แพกเกตหมายเลข 8 ได้รับการประมวลผลก่อน เมื่อสิ้นสุดการประมวลผลของ
แพกเกตหมายเลข 8 ที่เวลา t = 5 มีแพกเกตหมายเลข 9 ที่ W = 3 และแพกเกตหมายเลข 5 ที่ W = 2 เนื่องจาก
ค่า W ที่สูงกว่า ทำให้แพกเกตหมายเลข 9 ได้รับการประมวลผลก่อน ตามด้วยแพกเกตหมายเลข 5 จะเห็นว่าการ
only
ทำงานนี้ ทำให้แพกเกตที่มาจากคิวที่มีค่า W = 1 ได้รับการประมวลผลหลังสุด


32.1.3 คิวแบบหมุนวน (Round Robin) และ Weighted Fair Queueing (WFQ)
KKU
การทำงานของคิวแบบหมุนวน (Round Robin) อาศัยหลักการทำงานคล้ายกับการทำงานของจัดลำดับแบบมีลำดับ
ความสำคัญ โดยในที่นี้ข้อมูลที่ได้รับจะถูกแบ่งเป็นคลาส (class) แทนที่ในแต่ละคลาสจะได้รับการบริการเหมือนกับ

ที่เกิดขึ้นในกรณีของการจัดคิวแบบมีลำดับความสำคัญ การทำงานแบบหมุนวน (Round Robin) จะให้บริการแต่ละ
คลาสไปตามลำดับ จากคลาส 1 ไปคลาส 2 และ 3 จากนั้นกลับมาที่คลาส 1 ใหม่ การทำงานวิธีนี้จะทำให้เน็ตเวิร์ค
ส่งข้อมูลตลอด ตราบเท่าที่มีข้อมูล เนื่องจาก หากพบว่าคลาสใดคลาสหนึ่งไม่มีข้อมูลที่ต้องส่ง จะทำงานในคลาสถัด
ไปทันที รูปที่ 32.4 แสดงรูปแบบของคิวแบบหมุนวน












รูปที่ 32.4: คิวแบบหมุนวน (Round Robin)


เพื่อให้การใช้งานทรัพยากรเป็นไปได้อย่างทั่วถึง และเท่าเทียมกันในแต่ละคลาส แทนที่จะเป็นการใช้งานแบบ
หมุนวน การใช้งานคิวแบบการถ่วงนํ้าหนัก (Weighted Fair Queuing, WFQ) [Demers 1990; Perekh 1993]
เป็นรูปแบบหนึ่งของการทำงานที่เป็นลักษณะคล้ายแบบแบบหมุนวน การทำงานของ WFQ ช่วยแก้ปัญหา เนื่องจาก

การทำงานที่ผิดปกติของ TCP เซสชัน ที่ใช้งานแบนด์วิดท์ในสัดส่วนที่สูงเกินความจำเป็น ทำให้เกิดเวลาหน่วงที่สูง

32.2. สรุป 259



ขึ้น การทำงานของ WFQ ทำให้การทำงานของทุกเซสชันเป็นไปอย่างเท่าเทียมกัน ในสัดส่วนที่ถูกกำหนดไว้ เพื่อไม่
ให้ส่งผลต่อเซสชันอื่นในเน็ตเวิร์ค
ใน WFQ แต่ละคิวจะได้รับการให้บริการตามค่าของนํ้าหนักหรือ Weight ที่กำหนดไว้ในแต่ละคิว บนหลักการ

คือ แต่ละคิวจะได้รับการใช้บริการเป็นสัดส่วนเท่ากับค่านํ้าหนักที่กำหนดให้ หากจำนวนคลาสที่ต้องการมีน้อยกว่า
ระบบที่มีอยู่ ส่วนที่เกินจะถูกแจกจ่ายให้กับทุกคลาสตามสัดส่วนของค่านํ้าหนัก ในหน่วยของจำนวนแพกเกต การ
ทำงานของ WFQ ถือเป็นหัวใจสำคัญของการทำงานเพื่อสนับสนุนการทำ QoS ในเร้าเตอร์ทุกวันนี้ รูปที่ 32.5 แสดง
ตัวอย่างการทำงานของคิวแบบการถ่วงนํ้าหนัก หรือ WFQ









book)







(partial






รูปที่ 32.5: คิวแบบการถ่วงนํ้าหนัก (Weighted Fair Queuing)

only
จากการทำงานของ WFQ จะทำให้ระบบเน็ตเวิร์คสามารถที่จะการันตีขั้นตํ่าของทรัพยากรให้แต่ละคลาส ตาม

ที่กำหนดความต้องการไว้ อย่างอิสระไม่ขึ้นกับคลาสอื่น ทำให้อย่างน้อยการให้บริการคลาสใดคลาสหนึ่งสามารถ
ทำงานได้ แม้ว่าจะได้ประสิทธิภาพที่ตํ่า
KKU


32.2 สรุป



เพื่อให้เน็ตเวิร์คสามารถรองรับจำนวนผู้ใช้ที่เพิ่มขึ้น รวมถึงการให้บริหารตามความต้องการของผู้ใช้ การทำงานของ

QoS ทำให้การสนองผู้ใช้เป็นไปตามสิทธิของผู้ใช้ การควบคุมจำนวนแพกเกตที่จะถูกส่งในเน็ตเวิร์คซึ่งในบทนี้ได้
นำเสนอวิธีการต่างๆ เพื่อใช้ในการให้บริการแบบ QoS เช่น การใช้งานของ Leaky Bucket เพื่อควบคุมจำนวน
แพกเกตที่จะส่งไปในเน็ตเวิร์ค การให้การบริการแบบ DiffServ ด้วยการกำหนดคลาสของการให้บริการของแต่ละ
แพกเกต เพื่อให้เร้าเตอร์ส่งต่อแพกเกตในลักษณะในของคลาส (per-class forwarding) นอกจากนี้ การให้บริการ
แบบ QoS ยังสามารถทำให้ได้โดย การทำงานของ IntServ บนโพรโตคอล RSVP เพื่อใช้จองทรัพยากรให้กับผู้ใช้ใน
ลักษณะที่เป็นแบบ per-flow




32.3 คำถามท้ายบท



1. จงอธิบายความหมายของ QoS


2. ทำไมระบบจึงควรสนับสนุนการให้ QoS

260 บทที่ 32. QUALITY OF SERVICE (QOS)



3. การทำงานแบบ FIFO ถือได้ว่ามีการใช้งานอย่างแพร่หลาย จงยกตัวอย่างของการทำงานของ FIFO ที่
พบเห็นในชีวิตประจำวัน เทียบกับการทำงานของ FIFO ของเร้าเตอร์

4. จงอธิบายถึงข้อดี-ข้อเสียของการให้บริการแบบ FIFO เทียบกับ WFQ


5. จงอธิบายความแตกต่างของการใช้ Leaky Bucket และ Token Bucket ในการจัดการกับ Bursty Traffic

6. จงอธิบายถึงความแตกต่างของการใช้บริการของ IntServ และ DiffServ

7. จงเปรียบเทียบความยุ่งยาก และความเป็นไปได้ในการให้บริการของ IntServ และ DiffServ







book)







(partial









only





KKU

บทที่ 33





เครื่องมือของการจัด QoS






book)
33.1 การจัดรูปทราฟฟิก (Traffic Shaping)



การจัดรูปทราฟฟิก (traffic shaping) เป็นหนึ่งในวิธีการจัดการทราฟฟิกของเร้าเตอร์ เพื่อจัดการกับแพกเกตโดย
การจัดเก็บไว้ในคิว เพื่อรอการประมวลผล หรือกำจัดหากไม่สามารถจัดเก็บได้ โดยการจัดคิวแบบต่างๆที่ได้กล่าวมา
(partial
แล้วเป็นการจัดการกับแพกเกตที่ได้รับ เพื่อให้การตอบสนองในแต่ละคิวเป็นไปอย่างเหมาะสม แต่การจัดรูปทราฟ
ฟิกจะเป็นการจำกัดแพกเกตที่จะถูกเข้าเน็ตเวิร์ค ทำให้ภาพรวมของเน็ตเวิร์คมีประสิทธิภาพดีขึ้น ทั้งนี้การควบคุม

จำนวนแพกเกต สามารถพิจารณาจากอัตราการส่งสูงสุด (Peak Rate) หรืออัตราการส่งเฉลี่ย (Average Rate) รูป
ที่ 33.1 แสดงความสัมพันธ์ของอัตราการส่งทั้งสองแบบ

only





KKU รูปที่ 33.1: การส่งข้อมูลแบบอัตราการส่งสูงสุดและอัตราการส่งเฉลี่ย








อัตราการส่งสูงสุด (Peak Rate) เป็นอัตราการส่งที่ภาคส่งสามารถส่งได้ในระยะเวลาสั้นๆ การวัดอัตราการส่ง
สูงสุดสามารถทำได้สองวิธี [24] คือ หากแพกเกตมีขนาดคงที่ อัตราการส่งสูงสุดสามารถคำนวณได้จากส่วน
กลับของระยะเวลาระหว่างแพกเกตที่อยู่ติดกัน แต่หากแพกเกตมีขนาดไม่คงที่ อัตราการส่งสูงสุดจะได้จาก

ช่วงเวลาหนึ่งๆที่กำหนดขึ้น

อัตราการส่งเฉลี่ย (Average Rate) อย่างไรก็ตามพบว่าการเกิดอัตราการส่งสูงสุด เป็นปรากฎการณ์ที่เกิดขึ้น ณ
ชั่วขณะเท่านั้น เพื่อการลดผลที่เกิดขึ้นจากอัตราการส่งสูงสุด สามารถวัดด้วยการใช้อัตราการส่งเฉลี่ยแทน

การหาค่าของอัตราการส่งเฉลี่ยหาได้จาก ค่าเฉลี่ยที่ภาคส่งสามารถส่งได้ในช่วงเวลาที่กำหนด จากงานวิจัย
พบว่าการหาค่าสามารถทำได้สองวิธีคือ [24] แบบ jumping-window และ moving-window โดยเริ่มต้น
สมมุติให้ t เป็นช่วงเวลาที่เราต้องการวัด ในที่นี้เราเรียกช่วงเวลาดังกล่าวว่า window และ a เป็น จำนวน
บิตที่สามารถส่งได้ในช่วงเวลา t

• Jumping­window ภาคส่งจะส่งแพกเกตในแต่ละ window ไปเรื่อยๆ โดยที่แต่ละ window จะมี

จำนวนบิตไม่เกิน a

261

262 บทที่ 33. เครื่องมือของการจัด QOS



• Moving­window จะควบคุมโดยในแต่ละช่วงของ window จะส่งไม่เกิน a โดยที่ window จะ
เคลื่อนที่ไปเรื่อยๆ



33.1.1 Leaky Bucket


leaky-bucket ถูกนำมาใช้งานเพื่อควบคุมทราฟฟิกที่สามารถส่งเข้าเน็ตเวิร์คได้ การใช้ leaky-bucket ทำให้ ทราฟ
ฟิกที่มีลักษณะเป็นแบบเบิรสต์ (burst) หรือแพกเกตที่มาเป็นกลุ่มขนาดใหญ่ ถูกส่งเข้าเน็ตเวิร์คในลักษณะสมํ่าเสมอ
การทำงานของ Leaky-bucket เสมือนถังนํ้าที่รั่วออกในปริมาณที่คงที่ดังแสดงรูปที่ 33.2 ซึ่งเป็นที่มาของชื่ออัลกอ
ริทึม ดังนั้นหากมีแพกเกตเข้ามาจำนวนมากเกินกว่าบัฟเฟอร์ของเร้าเตอร์จะรองรับได้ เสมือนปริมาณนํ้าที่มากเกิน
กว่าจะเก็บไว้ในถัง (bucket) นํ้าจะล้นออกไปโดยปริยาย ซึ่งก็คือการกำจัด (drop) แพกเกตที่ได้รับออกไปนั่นเอง

เนื่องจากการทำงานของ leaky-bucket มีอัตราการส่งออกที่คงที่ บางครั้งจึงกล่าวได้ว่าการใช้ leaky-bucket
อาจไม่เป็นวิธีที่เหมาะสมในบางโอกาส เช่นกรณีที่เน็ตเวิร์คอยู่ในภาวะที่ไม่มีการใช้งาน หรือมีทราฟฟิกที่ค่อนข้างตํ่า
book)
แต่ leaky-bucket ไม่เอื้อให้ส่งแพกเกตจำนวนมากเข้าสู่เน็ตเวิร์คในช่วงเวลาดังกล่าว





(partial









only



รูปที่ 33.2: รูปแบบการทำงาน Leaky Bucket
KKU



33.1.2 Token Bucket


การทำงานของ Token Bucket อาศัยจำนวนโทเค็น (Token) ที่มีอยู่ในระบบ แต่ละโทเค็นจะเป็นตัวกำหนดจำนวน
ไบต์ที่สามารถส่ง และจำนวนของโทเค็นเป็นการกำหนดจำนวนของข้อมูลที่สามารถส่งได้ ซึ่งอัตราการส่งข้อมูลเข้าสู่
เน็ตเวิร์คจะถูกควบคุมด้วยอัตราการสร้างโทเค็น โดยที่แพกเกตจะถูกส่งก็ต่อเมื่อมีจำนวนโทเค็นอยู่ หากไม่มีโทเค็

นระหว่างที่แพกเกตต้องการส่ง จะทำให้แพกเกตนั้นถูกกำจัดไป
ความแตกต่างสำคัญของการทำงานของ Token bucket กับ Leaky bucket คือความสามารถของการสะสม
จำนวนโทเค็นหากไม่มีแพกเกตเข้ามาเพื่อใช้งาน จำนวนโทเค็นจะถูกสะสมไว้ใน bucket เพื่อนำมาใช้งานภายหลัง
ทำให้โทเค็นที่มีอยู่สามารถนำมาใช้งานเพื่อตอบสนองแพกเกตจำนวนมากหรือเบิรสต์ (burst) ได้ ทำให้การทำงาน
ของเน็ตเวิร์คมีประสิทธิมากขึ้น




33.2 การจองทรัพยากร (Resource Reservation)


เพื่อการส่งผ่านข้อมูลในเน็ตเวิร์ค การจัดสรรทรัพยากรเช่น บัฟเฟอร์ แบนด์วิดท์ ซีพียู มีความจำเป็นอย่างมาก

เพื่อรองรับการทำงานของ QoS การจัดสรรทรัพยากรในลักษณะที่เป็นแบบ flow­based เป็นการจองทรัพยากร

33.2. การจองทรัพยากร (RESOURCE RESERVATION) 263



จากต้นทางไปยังปลายทางเสียก่อน เส้นทางที่กำหนดเรียกว่า flow ถือเป็นหลักการสำคัญของการทำงานแบบ
Integrated Services หรือเรียกง่ายๆว่า IntServ


33.2.1 Integrated Services Architecture


การออกแบบของ IntServ อยู่บนพื้นฐานเพื่อต่อยอดการทำงานของ best effort บนอินเทอร์เน็ตปัจจุบัน เพื่อให้
สามารถรองรับการทำงานของทราฟฟิกบางประเภทที่ต้องการการสนับสนุนที่พิเศษ เช่น การรองรับการส่งข้อมูลที่
เป็นแบบมัลติมีเดียบนอินเทอร์เน็ตที่ต้องการจำกัดค่าเวลาหน่วง การสูญหาย หรือ jitter

การทำงานของ IntServ จะให้ความสำคัญกับโฮสต์ โดยที่โฮสต์จะเป็นผู้ที่แจ้งให้เน็ตเวิร์คทราบเพื่อจัดสรร
ทรัพยากรให้ เน็ตเวิร์คสามารถที่จะยอมรับหรือไม่ก็ได้ แต่ไม่สามารถที่จะต่อรองได้ หากเน็ตเวิร์คจัดสรรทรัพยากร
ให้กับโฮสต์ ทรัพยากรดังกล่าวจะถูกจองตราบเท่าที่โฮสต์ยังคงทำงานอยู่ โดยเน็ตเวิร์คสามารถที่จะยกเลิกการ
จัดสรรได้ทุกเวลา แต่ไม่สามารถที่จะต่อรองเพื่อลดความต้องการของโฮสต์ได้
book)
การทำงานของเร้าเตอร์ในการสนับสนุน IntServ ประกอบด้วยส่วนสำคัญ 4 ส่วนคือ Resource reservaton
controller, admission control routine, the classifier และ the packet scheduler [RFC 1633]




(partial









only




รูปที่ 33.3: The Intergrated Services reference model
KKU

Flow Resource reservaton เป็นส่วนพื้นฐานของ IntServ ในการกำหนดการจองทรัพยากร เพื่อให้เร้าเตอร์

สร้างและรักษาสถานะของแต่ละ flow ของทราฟฟิก เรียกว่า flow specification หรือ flowspec การ
กำหนดข้อมูลของ flowspec นี้ เพื่อให้เร้าเตอร์สามารถรักษาสถานะการสื่อสาร (state) การจองต่างๆที่เกิด
ขึ้น เช่น หมายเลขการจอง (reservation identifier) และ รูปแบบของทรัพยากร (reserve profile) เป็นต้น

Flow admission control การทำงานในส่วนนี้เพื่อตัดสินใจ การตอบรับหรือปฎิเสธจากการร้องขอ โนดที่อยู่
ระหว่างเส้นทางต้องตัดสินใจ ว่าตนเองอยู่ในสถานะที่มีทรัพยากรเพียงพอตามที่ร้องขอหรือไม่ ซึ่งการตัดสิน
ใจนี้อาจรวมถึงการ การพิสูจน์ทราบตัวตนและความสำคัญ (priority) เพื่อให้การจองเป็นไปตามเงื่อนไขที่

กำหนดไว้

Packet classifier ในการทำงานในส่วนนี้เพื่อจัดการระดับความสำคัญของแพกเกต เพื่อแพกเกตที่เข้ามาให้ตรง
กับการให้บริการในแต่ละคลาส ซึ่งทุกแพกเกตในคลาส จะได้รับการให้บริการที่เหมือนกัน และอาจรวมถึง
สิทธิพิเศษอื่นๆ เช่น การอยู่ในคิวที่ยาวเพื่อความน่าจะเป็นที่แพกเกตสูญหายตํ่า หรือการอยู่ในคิวที่สั้นเพื่อ
ให้ได้ jitter ที่ตํ่า

Packet scheduler เป็นส่วนสุดท้ายเพื่อ การจัดตารางการทำงาน (schedule) ของแพกเกต เพื่อบริหารการ
ทำงานของคิวขาออก ให้เกิดการบริการที่หลากหลาย โดยในส่วนนี้ อาจมีการใช้รูปแบบของการจัดคิวแบบ

ไฟโฟ การจัดคิวแบบมีสิทธิพิเศษ หรือ WFQ ร่วมด้วย

264 บทที่ 33. เครื่องมือของการจัด QOS



33.2.2 Service Classes[14]

การทำงานของ IntServ ได้กำหนดการให้บริการไว้สองคลาสคือ Guaranteed Service และ Controlled­load
Service


1. Guaranteed Service: การให้บริการในส่วนนี้ถูกออกแบบเพื่อใช้กับทราฟฟิกแบบเวลาจริง (real-time)
ที่จำเป็นต้องมีการรับประกันเวลาหน่วงระหว่าง end-to-end เวลาหน่วงจาก end-to-end นี้ จะเป็นผล
รวมของเวลาหน่วงในเร้าเตอร์ เวลาหน่วงในการแพร่ของข้อมูลในช่องสัญญาณ การรับประกันนี้จะรับรอง
ว่าแพกเกตจะถูกส่งภายในเวลาที่กำหนด และจะไม่มีการสูญหายถ้า ทราฟฟิกอยู่ในลักษณะที่กำหนดของ
Tspec


2. Controlled­load service: การให้บริการแบบcontrolled-loadนี้เหมาะสำหรับแอพพลิเคชันที่สามารถ
ยอมรับเวลาหน่วง หรือสามารถยอมรับการสูญหายของแพกเกตเช่นการทำงานของแอพพลิเคชันในการโอน
ย้ายข้อมูล อีเมล และการใช้งานอินเทอร์เน็ต


33.2.3 Resource Reservation Protocol (RSVP)[21] book)


เพื่อสนับสนุนการทำงานของ QoS บนเน็ตเวิร์ค RSVP ถูกออกแบบเสมือนการใช้สัญญาณแจ้งการทำงานที่เป็น
IntServ โดยที่โฮสต์จะร้องขอ (request) ใน QoS ที่ต้องการสำหรับ
(partial flow ที่จะส่ง และเพื่อให้เร้าเตอร์ระหว่างเส้น
ทางที่ร้องขอจัดเตรียม QoS ให้ โดยการกำหนดสถานะการทำงานที่เหมาะสม

โดยปกติการทำงานของ IP ไม่ได้การสนับสนุนการทำงานของในกรณีการใช้สัญญาณควบคุม (Signalling)
ดังนั้นเป้าหมายของ RSVP ก็คือการสร้างสัญญาณควบคุมนี้ ซึ่งมีคุณสมบัติสำคัญดังนี้

• จองทรัพยากรเพื่อใช้งานสำหรับการส่งข้อมูลแบบยูนิคาสท์และมัลติคาสท์ สามารถเปลี่ยนแปลงสมาชิกและ
เร้าเตอร์ได้แบบไดนามิก only


• ร้องขอการจองช่องสัญญาณแบบทางเดียวจากภาคส่งไปยังภาครับ การร้องขอแบบสองทิศทางสามารถ
KKU
ทำได้โดยการร้องขอที่แยกจากกัน

• ให้ภาครับเป็นตัวกำหนดและรักษาสถานะการจองช่องสัญญาณ

• คงสถานะการจองของแต่ละเร้าเตอร์ในช่วงเวลาที่กำหนด หรือเรียกว่า soft state ดังนั้นภาคส่งจะต้องส่ง
การกระตุ้นการร้องขอ (reflash) เพื่อรักษาสถานะเป็นช่วงๆ


• หากเร้าเตอร์ระหว่างเส้นทางไม่สามารถทำงานตาม RSVP ได้ ให้ส่งแบบ best effort

• สามารถรองรับการจองได้หลายรูปแบบ ทำให้การร้องขอสามารถที่จะรวมเข้าด้วยกันขึ้นอยู่กับแอพพลิเคชัน
ที่ใช้

• สนับสนุนการทำงานของ IPv4 และ IPv6


เพื่อจองทรัพยากรที่ต้องการโดยอาศัย RSVP แต่ละโปรเซสในแต่ละโนดจะต้องทำงานร่วมกัน ดังแสดงในรูป
ที่ 33.4 โดยที่ในส่วนของ packet classifier ในแต่ละ RSVP จะทำหน้าที่ในการตรวจสอบเพื่อพิจารณา QoS ของ
แพกเกตและเลือกเส้นทาง ในขณะเดียวกันในส่วนของ packet scheduler จะทำหน้าที่จัดรูปทราฟฟิก (traffic
shaping) การจัดคิวแบบมีสิทธิพิเศษ (priority queue) หรือ WFQ เพื่อที่ให้ได้ QoS ตามที่ร้องขอ
ในส่วนของการควบคุมสิทธิ์เข้า (admission control) เป็นส่วนโมดูลภายใน RSVP จะพิจารณาว่ามีทรัพยากร

เพียงพอหรือไม่ในการรองรับการร้องขอของ QoS นอกจากนี้ โนดยังอาจทำ Policy control เพื่อตรวจสอบว่า

33.3. การทำงานของ RSVP (RSVP OPERATION) 265



แอพพลิเคชันที่ร้องขอนั้นมีสิทธิ์ในการทำหรือไม่รวมถึงส่วนที่เกี่ยวข้องคือการพิสูจน์ทราบตัวตน(authentication)
ข้อมูลทางบัญชี และส่วนการควบคุมการเข้าใช้งาน (access cotrol) หากส่วนของการตรวจสอบของทั้งสองล้มเหลว
RSVP process จะส่งเมสเสจเพื่อบอกความผิดพลาด (error message) ไปยังแอพพลิเคชันที่ร้องขอ หากโนดไม่รับ
การร้องขอ โนดอาจปล่อยแพกเกตนั้นทิ้งไป หรืออาจให้บริการแพกเกตนั้นแบบความสำคัญตํ่าสุด ซึ่งโนดทุกโนด

ต้องสามารถที่จะทำงานจัดการกับการทำ prioritized และ selective discard
การทำงานของ RSVP จะระบุการทำงานในลักษณะที่เป็นเซสชัน (Session) ซึ่งแสดงถึงสถานะการจองช่อง
สัญญาณของ RSVP ไปยังปลายทางหรือภาครับ โดยแต่ละเซสชันกำหนดโดย IP address ภาครับ, IP protocol
identifier และพอร์ตของภาครับ (destination port)







book)







(partial


รูปที่ 33.4: RSVP Architecture


การร้องขอของ RSVP จะประกอบไปด้วย flowspec และ filterspec การใช้งาน flowspec เพื่อจัดการกับ
พารามิเตอร์ในส่วนของ packet scheduler และบอกถึง QoS ที่ต้องการ ซึ่งพารามิเตอร์โดยทั่วไปจะประกอบไป
only
ด้วย Rspec เพื่อกำหนด QoS ที่ร้องขอเช่นขนาดของ แบนด์วิดท์หรือบัฟเฟอร์ และ Tspec เพื่อแสดงถึงลักษณะ

ของ traffic ส่วนของ filterspec ใช้เพื่อระบุแพกเกตที่จะได้รับการจองที่เกิดขึ้น โดยการใช้งานระบุร่วมกับเซสชัน
ที่ถูกกำหนดขึ้น แพกเกตอื่นแม้ว่าจะถูกส่งไปยังปลายทางเดียวกันจะได้รับการให้บริการแบบ best-effort รูปที่
KKU
33.5 แสดงถึงความสัมพันธ์ของ flowspec และ filter spec
















รูปที่ 33.5: การจัดการกับแพกเกตของเซกชันที่เร้าเตอร์หนึ่งๆ




33.3 การทำงานของ RSVP (RSVP Operation)



เป้าหมายของการออกแบบของ RSVP คือการสนับสนุนการใช้งานในลักษณะที่เป็นแบบมัลติคาสท์ อย่างไรก็ตาม
RSVP สามารถทำงานในลักษณะที่เป็นแบบยูนิคาสท์ได้เช่นเดียวกัน หากมองว่ายูนิคาสท์ก็คือมัลติคาสท์ที่มีสมาชิก
เพียงโนดเดียว การออกแบบเช่นนี้ก็เพื่อทำให้ RSVP สามารถสนับสนุนการจองทรัพยากรให้กับทราฟฟิกทุกแบบ

รวมถึงที่เป็นแบบมัลติมีเดีย ซึ่งมักจะเป็นการส่งข้อมูลแบบมัลติคาสท์

266 บทที่ 33. เครื่องมือของการจัด QOS



33.3.1 Receiver-Based Reservation


ในการทำงานของ RSVP การจองช่องสัญญาณเกิดจากด้านรับ คล้ายกับการทำงานของมัลติคาสท์โพรโตคอล ที่ด้าน
รับจะเป็นผู้ร้องขอเข้าร่วมโดยการใช้ Join Message อย่างไรก็ตามการทำเช่นนี้ค่อนข้างสมเหตุสมผลในการทำงาน
ของแบบยูนิคาสท์ แต่หากทำงานใน multicast เนื่องจากแต่ละสมาชิกในกลุ่มของ multicast อาจมีความสามารถ
ไม่เท่าเทียมกัน ดังนั้นหากการร้องขอในแต่ละ flow สามารถแบ่งย่อยได้ สมาชิกในกลุ่มอาจรับเพียงบางส่วนเท่านั้น
นอกจากนั้นหากภาคส่งมีหลายโนดที่ส่งข้อมูล โนดที่เป็นภาครับสามารถเลือกข้อมูลจากบางโนดหรือเพียงโนดเดียว
เท่านั้น ทำให้ QoS ของภาครับแต่ละโนดแตกต่างกัน ขึ้นอยู่กับความสามารถของโปรเซสเซอร์ หรือความเร็วของ

ช่องสัญญาณ ทำให้มีความสมเหตุสมผลอย่างมากในการให้ภาครับมีหน้าที่ในการจองทรัพยากรต่างๆ โดยที่จะภาค
ส่งแสดงถึงลักษณะของทราฟฟิกที่จะส่ง เพื่อให้เร้าเตอร์ทราบ แต่เป็นภาครับที่จะกำหนด QoS ที่ต้องการ เร้าเตอร์
อาจใช้การจองช่องสัญญาณร่วมกัน เพื่อใช้ประโยชน์โครงสร้างของการส่งข้อมูลของการกระจายข้อมูลแบบมัลติคาส
ท์ [40]



33.3.2 RSVP Messages book)

เสมือนกับการทำงานของโพรโตคอลทั่วไป RSVP ได้กำหนดเมสเสจต่างๆ เพื่อจองช่องสัญญาณ ยกเลิก หรือแจ้งข้อ
ผิดพลาด ดังแสดงในตารางที่ 33.1


type เมสเสจ
1 path message (partial
2 reservation message
3 error indication in response to path message
only
4 error indication in response to reservation message
5 path teardown message
6 reservation teardown message

KKU
ตารางที่ 33.1: เมสเสจของ RSVP ต่างๆ

โดยทั่วไป RSVP ใช้เมสเสจที่สำคัญ 2 เมสเสจคือ Resv และ Path message



Path Messages การใช้งาน path message เพื่อบอกถึงข้อมูลของการเร้าติ้งของสมาชิกในมัลติคาสท์ด้าน
กลับไปหาต้นทาง (upstream route) เนื่องจากมัลติคาสท์ที่มีการใช้งาน อยู่ในปัจจุบันแสดงถึงเส้นทางไปยังโนด
ปลายทาง (downstream route) เท่านั้น ในลักษณะที่เป็นทรี (tree) ไปยังโนดต่างๆ โฮสต์ที่ต้องการทำงานโดยใช้
RSVP เสมือนเป็นภาคส่งในมัลติคาสท์ส่ง path message ไปยังการทรี (tree) ที่กระจายไปยังโนดต่างๆ ทุกโนด

ในมัลติคาสท์ระหว่างทาง แต่ละเร้าเตอร์และโฮสต์ปลายทางเก็บสถานะของเส้นทาง เพื่อเป็นเส้นทางย้อนกลับของ
ภาคส่งต้นทาง


Resv Messages การทำงาน Resv Messages เริ่มจากสมาชิกภาครับของมัลติคาสท์ กลับไปหาต้นทาง
(upstream route) จาก tree ที่ไปยังโนดต่างๆ ซึ่งจะถูกรวมหรือจับรวมกับตามความเหมาะสมระหว่างทาง Resv
Message จะใช้เพื่อรักษาสถานะการทำงานแบบ soft state ในเร้าเตอร์ ในทรี (tree) เพื่อจองทรัพยากรให้กับ
เซสชัน โดยเมสเสจนี้ต้องถูกส่งออกเป็นช่วงๆ เพื่อรักษาสถานะของ soft state

รูปที่ 33.6 แสดงการทำงานของ RSVP โดยมีขั้นตอนดังนี้


1. เร้าเตอร์ร่วมเข้าเป็นสมาชิกของ multicast โดยการส่งเมสเสจ IGMP ไปยังเร้าเตอร์ที่อยู่ข้างเคียง

33.3. การทำงานของ RSVP (RSVP OPERATION) 267
















รูปที่ 33.6: RSVP Host Model


2. โนดที่มีศักยภาพในการเป็นภาคส่ง ทำการส่ง path message ไปยังแอดเดรสของกลุ่มของ multicast


3. ภาครับได้รับ path message พร้อมตรวจสอบเพื่อระบุหาภาคส่ง


4. ภาครับ reverse path information และอาจส่ง Resv message เพื่อระบุถึงรายละเอียดของ flow ที่
ต้องการ

5. Resv message ส่งย้อนกลับไปยังภาคส่ง book)


6. ภาคส่งสามารถส่งแพกเกตได้


7. ภาครับเริ่มรับแพกเกตที่ส่งมา (partial


33.3.3 Reservation Style และ Reservation Merging
only
การร้องขอในการจองทรัพยากรสามารถที่จะประกอบไปด้วยตัวเลือกที่ต่างกัน เราเรียกว่า reservation style เพื่อ
ใช้ในการบ่งถึงคุณลักษณะของการจัดการของการจองนั้นโดยภาคส่ง การกำหนด reservation style นี้จะสัมพันธ์
กับการทำงานของมัลติคาสท์
KKU
การจองทรัพยากรที่สัมพันธ์กับแต่ละภาคส่งที่อยู่ในเซสชันเดียวกัน สามารถทำได้สองโหมดคือ การกำหนดการ
จองที่แตกต่างกันให้กับแต่ละภาคส่ง (upstream sender) หรือเรียกว่าโหมด distinct หรือการใช้การจองร่วมกัน
สำหรับทุกแพกเกตตามภาคส่งที่ระบุ
ในการจองอีกแบบหนึ่งคือการควบคุมการจองเฉพาะบางภาคส่ง การทำงานในส่วนนี้สามารถทำได้สองโหมด
เช่นกัน คือการเลือกเฉพาะบางภาคส่งจากทั้งหมด เรียกว่าเป็นแบบโหมด explicit หรือการเลือกภาคส่งทั้งหมดที่
อยู่ในเซสชันเรียกว่าการทำแบบ wildcard การทำแบบโหมด explicit แต่ละ Filter Spec จะต้องคล้องจองกับภาค

ส่ง ในขณะที่การทำแบบ wildcard ไม่จำเป็นต้องมี Filter Spec
การทำ reservation merging ของ RSVP เป็นอีกส่วนที่สำคัญ เพื่อรวมการร้องขอของทรัพยากรร่วมกัน รวม
ถึงการคำนวณค่า Flowspec สูงสุด การรวมกันของ Flowspec เกิดจากการที่มี Resv Message จากภาครับของ
RSVP ที่หลากหลายถูกส่งมาจากเส้นทางที่ต่างกัน ทั้งหมดจะถูกจัดการ ณ merge point หรือจุดที่รวมกัน ก่อนที่
จะถูกส่งต่อขึ้นไป ตารางที่ 33.2 สรุปการทำ Reservation Styles ของ RSVP [32]


Resv Style การเลือกภาคส่ง Resv Type Resv Merging แอพพลิเคชัน
Fixed Filter (FF) Explicit Distinct เลือกทั้งหมด Video Conf
Shared Explicit (SE) Explicit Shared Union, เลือกสูงสุด Audio Conf
Wildcard Filter (WF) Shared Shared เลือกสูงสุด Audio Lecture

ตารางที่ 33.2: การทำงานของ Reservation Style และ Reservation Merging

268 บทที่ 33. เครื่องมือของการจัด QOS



จากตารางที่ 33.2 ในคอลัมน์ของ reservation merging แสดงถึงการจัดการที่ merging node ก่อนที่จะมี
การส่งกลับขึ้นไปที่ภาคส่ง ในการทำงานแบบ Fixed Filter (FF) จะไม่มีการกำหนดร่วมกัน โดยที่แต่ละ flowspce
ของแต่ละภาคส่งจะถูกจับรวมกันในแพกเกตที่ใช้ในการจอง การ Shared Explicite (SE) จะเป็นการนำมายูเนียน
(union) กันทั้งหมดของภาคส่งและเลือก flowspce ที่ใหญ่ที่สุด ในส่วนของ Wildcard Filter (WF) เป็นวิธีการที่

ง่ายที่สุด เนื่องจากภาครับไม่มีข้อมูลของภาคส่ง จะเป็นการเลือกจาก flowspce ที่ใหญ่ที่สุด



33.4 การควบคุมสิทธิ์เข้า (Admission Control)



การควบคุมสิทธิ์เข้า (Admission Control) เป็นเทคนิคการทำงานของเร้าเตอร์หรือสวิตซ์ เพื่อตัดสินใจรับหรือกำ
จัดแพกเกตที่ได้รับ (เสมือนมหาวิทยาลัยพิจารณาเพื่อรับนักศึกษาเข้าเรียนหรือไม่) โดยจะตรวจสอบความพร้อมใน
การตอบสนอง เช่น จากขนาดของแบนด์วิดท์และขนาดของบัฟเฟอร์ เป็นต้น ในส่วนนี้เราจะกล่าวถึงการทำงานของ
Differentiated Services (DiffServ) ซึ่งถือเป็นหนึ่งตัวอย่างสำคัญของการทำงานการควบคุมสิทธิ์เข้า (Admission
Control) book)



33.4.1 Differentiated Services
(partial

แม้ว่าการทำงานของ IntServ ด้วยการสนับสนุนจาก RSVP สามารถที่จะตอบสนองความต้องการของ QoS ได้ แต่
การสนับสนุนในเน็ตเวิร์คขนาดใหญ่ (scaliability) ยังถือเป็นปัญหาของการทำงานไม่สามารถแก้ไขได้ ทำให้การใช้
งานของ IntServ ยากแก่การใช้งานในทางปฏิบัติ เนื่องจากความหลากหลายในการทราฟฟิกที่ร้องขอ และต้องส่ง
ข้อมูลเพื่อรักษาสถานะการทำงาน (soft state) อย่างสมํ่าเสมอ
only
การออกแบบ Differentiated Services (RFC 2475) เพื่อช่วยในการแก้ปัญหาที่เกิดขึ้น โดยมีเป้าหมายเพื่อลด
ความซับซ้อน สามารถพัฒนาได้ง่าย มี overhead ตํ่า และ สามารถสนับสนุนการบริการที่หลากหลาย คุณลักษณะ
ของ DiffServ เพื่อสนับสนุนการทำงานเหล่านี้ ได้แก่ [40]
KKU
• การระบุ QoS ใน IPv4 ทำโดยการใช้ฟิลด์ Type of Service (ToS) ที่ปรากฎอยู่แล้ว และใช้ฟิลด์ IPv6
Traffic Class ใน IPv6 ทำให้ไม่จำเป็นต้องแก้ไขอะไรใน IP


• การสนับสนุน Service Level Agreeement (SLA) ทำโดยการตกลงระหว่างผู้ให้บริการอินเทอร์เน็ตกับ
ลูกค้าก่อนที่จะใช้ DiffServ ทำให้แอพพลิเคชันที่ต้องการใช้งาน DiffServ ไม่จำเป็นต้องแก้ไขอะไร

• DiffServ ให้บริการทราฟฟิกในลักษณะที่เป็นแบบภาพรวม คือทราฟฟิกที่มีค่า DiffServ เดียวกัน จะให้

บริการเหมือนกัน โดยจะไม่มีการแยกให้บริการ ทำให้การจัดการทำได้ง่ายขึ้น

• DiffServ ถูกพัฒนาในเร้าเตอร์แต่ละเครื่องแยกจากกัน การสนับสนุน DiffServ จะพิจารณาจากฟิลด์ของ
DiffServ (DS field หัวข้อที่ 33.4.2) ของแต่ละเร้าเตอร์อิสระต่อกัน ทำให้ไม่จำเป็นต้องมีการรักษาสถานะ

ใดๆในการรับส่งแพกเกต


33.4.2 DS Field


การทำงานของ DiffServ แต่ละแพกเกตจะมีการกำหนด DS field เพื่อให้ได้รับการบริการที่แตกต่างกัน การตั้ง
ค่านี้จะทำที่โฮส์ตที่เชื่อมต่อกับเน็ตเวิร์ค โดยกำหนดให้ใช้ 6 บิตแรกเพื่อกำหนดโค้ดที่จะใช้เรียกว่า Differentiated

Services Codepoint (DSCP) และ อีก 2 บิตในปัจจุบันไม่ได้ใช้ (CU:Currently Unused) ดังแสดงในรูปที่ 33.7

33.4. การควบคุมสิทธิ์เข้า (ADMISSION CONTROL) 269


0 1 2 3 4 5 6 7
DSCP CU


รูปที่ 33.7: DS field

















book)
รูปที่ 33.8: ค่า DS field ใน (a) IPv4 (b) IPv6



เพื่อใช้งาน DS field ใน IPv4 และ IPv6 ทาง IETF ได้เสนอให้ใช้ฟิลด์ที่ชื่อว่า Type of Service (ToS) ใน IPv4
และฟิลด์ Traffic class ใน IPv6 รูปที่ 33.8 แสดงค่าของ DS field ในทั้งสองโพรโตคอล
(partial
จากการที่ DiffServ ใช้ 6 บิตในการกำหนดค่าที่จะใช้ ทำให้สามารถที่จะกำหนดคลาสของทราฟฟิกได้ 64 คลาส

ที่แตกต่างกัน โดยสามารถแบ่งได้ออกเป็น 3 กลุ่ม ของ Per­Hop Behavior (PHB) ได้แก่ Default PHB (DE PHB),
Expedited Forwarding PHB (EF PHB) และ Assured Forwarding (AF PHB)

DE PHB : เป็นการทำงานเสมือนการทำงานของ best effort ในที่นี้จะตั้งค่า DSCP เป็น 000000
only
EF PHB : RFC 2598 กำหนดให้ EF PHB เป็นการให้บริการแบบพรีเมียร์ ได้แก่ การมีการสูญหายแพกเกตที่ตํ่า

เวลาหน่วงตํ่า รับรองแบนด์วิดท์บริการแบบ end-to-end การทำงานของ EF PHB ทำให้การต่อระหว่าง
โนดปลายทางทั้งสองด้านเป็นเสมือนการเชื่อมโยงแบบ point-to-point หรือสายเช่า (leased line) ใน EF
KKU
PHB แพกเกตจะถูกกำหนดให้มีค่าของ DSCP เป็น 101110 เมื่อแพกเกตที่มีค่าดังกล่าวถูกส่งมายังโนดของ
DiffServ แพกเกตดังกล่าวจะถูกส่งเข้าไปในคิวที่คาดว่าสามารถทำงานตามที่ EF กำหนดได้ เช่น การมีค่า
เวลาหน่วง การสูญหาย หรือ jitter ที่ตํ่า ในการจัดการกับคิว เราสามารถใช้การจัดคิวแบบ WFQ หรือการ

จัดคิวแบบมีความสำคัญ (priority) ที่กล่าวมาแล้วเพื่อใช้งาน ซึ่งแม้ว่า DiffServ ได้กำหนดการใช้งาน PHB
แต่มิได้กำหนดว่าจะต้องทำอย่างไร เพื่อให้ได้ค่า PHB ที่ต้องการ

AF PHB : การออกแบบของ AF PHB เพื่อการใช้บริการที่เหนือกว่าการให้บริการกับ Best effort แต่ไม่จำเป็น
ต้องมีการจองช่องสัญญาณ การทำงานของ AF PHB กำหนดใน RFC 2597 และ RFC 3260 เพื่อให้มีโอกาส
ที่จะให้ทราฟฟิกสามารถส่งถึงปลายทางมีความน่าจะเป็นที่สูง ตราบเท่าที่จำนวนรวมทราฟฟิก (aggregate

traffic) ไม่เกินที่กำหนดใว้ อย่างไรก็ตามผู้ใช้สามารถที่จะส่งเกินกว่ารูปแบบทราฟฟิกที่กำหนดไว้ได้ แต่
อาจจะไม่ได้รับการรับประกันการสูญหาย และทำให้เกิดความคับคั่งของข้อมูล ความแตกต่างของ AF PHB
กับ EF PHB อยู่ที่การทำงานของ AF จะไม่สนับสนุนการทำงานของแอพพลิเคชันที่ต้องการเวลาหน่วงและ
jitter ที่ตํ่า

การทำงานของ AF PHB ได้แบ่งออกเป็น 4 คลาส และให้แต่ละคลาสมีความสามารถในการกำจัด (drop)
แพกเกต 3 ระดับ คือ สูง กลาง ตํ่า การทำเช่นนี้ ทำให้ได้ DSCP ทั้งหมด 12 ค่า ดังแสดงในตารางที่ 33.3

นอกเหนือจาก DE PHB ที่กำหนดเป็น 000000 อีกหนึ่ง DSCP ที่จองไว้ได้ แก่ 11x000 เพื่อใช้เป็นสัญญาณ

ควบคุม ในกรณีที่โนดได้รับแพกเกตที่ไม่อยู่ใน DSCP ที่กำหนด แพกเกตที่ได้รับจะส่งต่อโดยใช้เป็น DE PHB

270 บทที่ 33. เครื่องมือของการจัด QOS



การ drop Class 1 Class 2 Class 3 Class 4
( Drop Precedence ) (ดีที่สุด)
001010 010010 011010 100010
ตํ่า (Low) AF11 AF21 AF31 AF41
DSCP 10 DSCP 18 DSCP 26 DSCP 34
001100 010100 011100 100100
กลาง (Medium) AF12 AF22 AF32 AF42
DSCP 12 DSCP 20 DSCP 28 DSCP 36
001110 010110 011110 100110
สูง (High) AF13 AF23 AF33 AF43
DSCP 14 DSCP 22 DSCP 30 DSCP 38

ตารางที่ 33.3: DSCP สำหรับ AF PHB

book)
33.4.3 Differentiated Services Domain





(partial









only





KKU รูปที่ 33.9: DS Domain




เน็ตเวิร์คหนึ่งๆ หรือหลายเน็ตเวิร์คที่เชื่อมต่อกัน โดยมีการใช้งานของ DiffServ ภายใต้การบริหารเดียวกัน เรา
เรียกว่า DS Domain เช่น การจัดการใน Intranet หรือ ISP ดังนั้น ผู้ดูแลระบบใน DS Domain มีหน้าที่เพื่อดูแล
ให้ระบบมีทรัพยากรเพียงพอต่อการทำงานของ DiffServ ใน DS domain หนึ่งๆจะประกอบไปด้วยเร้าเตอร์หลาย
ตัวที่เชื่อมต่อกัน ดังแสดงในรูปที่ 33.9 สามารถแบ่งตามหน้าที่ได้เป็นสองแบบคือ Interior node และ Boundary

node

• Interior nodes รับผิดชอบในการจัดการกับแพกเกตที่เข้ามาในเน็ตเวิร์ค โดยพิจารณาจากค่าของ DSCP
รวมถึงการจัดการกับลำดับของแพกเกต การกำจัดแพกเกตหากบัฟเฟอร์เต็ม การส่งแพกเกตตาม PHB ตาม

ที่กำหนดไว้ รูปที่ 33.10 แสดงส่วนประกอบของ DS Interior









รูปที่ 33.10: ส่วนประกอบของ DS Interior

33.4. การควบคุมสิทธิ์เข้า (ADMISSION CONTROL) 271



• Boundary nodes แพกเกตทุกแพกเกตจาก DiffServ หนึ่งไปยัง DiffServ หนึ่ง จะถูกส่งผ่าน boundary
node ซึ่งอาจเป็นขาเข้าหรือขาออก เราจะเรียกขาออกว่า egress node ส่วน boundary node ขาเข้าเรา
จะเรียกว่า ingress node โดยทั่วไป boundary node หนึ่งๆจะเป็นทั้ง ingress และ egress node ขึ้น
อยู่กับทิศทางของทราฟฟิกทั้งนี้ ingress node จะทำหน้าที่ดูแลแพกเกตที่เข้ามาให้ได้ QoS เหมือนกับที่

ผ่านมา และ egress node จะควบคุมให้ได้ตามเงื่อนไขของโดเมนที่จะส่งต่อไป การทำงานของ boundary
node จะถูกกำหนดด้วย traffic conditioner ดังแสดงในรูปที่ 33.11 ซึ่งประกอบด้วย ส่วนประกอบดังนี้











book)
รูปที่ 33.11: รูปแบบการจัดการ Traffic ใน DiffServ




Classifier ทำหน้าที่ในการคัดกรองแพกเกตตามที่ระบุไว้ในส่วนของเฮดเดอร์ และส่งต่อตามเงื่อนไขของ
การคัดกรองที่กำหนดไว้เพื่อประมวลผลต่อไป ใน DiffServ กำหนดการคัดกรองไว้สองรูปแบบคือ

– Multi-field (MF) คัดกรองจาก DS field รวมถึงเฮดเดอร์ของ IP เช่น IP Address และ พอร์ต
แอดเดรส (partial

meter ตรวจวัดเพื่อดูแลว่าแพกเกตที่ส่งต่อไปนั้นจากการคัดกรองของ classifier เป็นไปตามที่ตกลงกัน
ของรูปแบบทราฟฟิก (traffic profile) ส่วนของ meter จะส่งข้อมูลที่เกิดขึ้น เพื่อจัดการกับแต่ละ
แพกเกต ทั้งที่เป็นไปตาม QoS
onlyที่ร้องขอและไม่เป็นไปตาม QoS ที่ร้องขอ
Marker กำหนด DS field ตามรูปแบบที่กำหนด ทำให้แพกเกตที่ผ่านเข้ายัง DS domain ได้รับการให้
KKU
บริการ ตามที่ตกลงไว้
Shaper/dropper เพื่อทำให้รูปแบบจัดการให้ traffic อยู่ในรูปแบบที่ถูกกำหนดไว้ อาจเป็นการใช้เช่น
leaky bucket (หัวข้อที่ 33.1.1) ซึ่งหากแพกเกตเกินความสามารถในการจัดเก็บของบัฟเฟอร์จะถูก
drop ทิ้งไป


การทำงานของ Traffic conditioner จะเริ่มต้น เมื่อได้รับแพกเกต แต่ละ flow จะถูกคัดกรองเพื่อพิจารณา
ทรัพยากรที่ต้องการ ในส่วนของ Meter จะพิจารณาจำนวนของแพกเกตในช่วงเวลาหนึ่งๆ เพื่อตรวจสอบ
ว่า flow นั้นๆเป็นไปตามที่ได้ตกลงไว้ หากทราฟฟิกของ flow เกินกว่าที่ได้กำหนดไว้ การจัดการอาจทำได้
โดยการปรับให้มีลำดับความสำคัญ (priority) ที่ตํ่าลง และส่วนของ Shaper จะเก็บแพกเกตที่ได้รับต่อเนื่อง

เป็นจำนวนมาก (burst) เพื่อทำให้การส่งต่อสมํ่าเสมอขึ้น สุดท้าย dropper จะกำจัดแพกเกตทิ้ง หากส่วน
บัฟเฟอร์เกินกว่าที่จะจัดเก็บได้

book)







(partial









only





KKU

บทที่ 34





ความปลอดภัยของเน็ตเวิร์ค






book)
ความปลอดภัยของเน็ตเวิร์ค ถือว่าเป็นสิ่งที่ไม่สามารถมองข้ามได้ในปัจจุบัน เมื่อทุกสิ่งทุกอย่างอยู่บนโลกของดิจิทัล
ซึ่งนอกเหนือจากการป้องกันข้อมูลจากแฮกเกอร์ (Hacker) มืออาชีพที่ต้องการล้วงความลับขององค์กร นอกจากนั้น
ยังต้องรองรับกับแฮกเกอร์มือสมัครเล่น ที่ทำเพื่อความสนุกหรือท้าทายความสามารถ

ในบทนี้ เราจะได้กล่าวถึงเน็ตเวิร์คความปลอดภัยเบื้องต้น โดยจะได้กล่าวถึงพื้นฐานของความปลอดภัย การ
โจมตี (attack) ในรูปแบบต่างๆ และอัลกอริทึมที่นิยมใช้ รวมไปถึงโพรโตคอลที่ใช้ในอินเทอร์เน็ต






34.1 พื้นฐาน (partial
only

ความปลอดภัยเน็ตเวิร์คหมายถึง การป้องกันระบบเน็ตเวิร์คจากผู้ไม่ได้รับอนุญาตเข้ามายังเน็ตเวิร์ค การป้องกัน
การแก้ไขระบบ (modification) การเข้ามาซึ่งการทำลายการทำงานของระบบ (destruction) รวมไปถึง การเปิด
KKU
เผยข้อมูล (disclosure) ซึ่งในการรักษาความปลอดภัยที่ดี ควรที่จะสามารถทำงานได้อย่างถูกต้องทุกสถานะการณ์
เพื่อไม่ให้เกิดความเสียหายภายหลัง
การทำงานของระบบความปลอดภัยของเน็ตเวิร์คเกี่ยวข้องกับหลักการทำงานต่างๆ เพื่อปกป้องคุณลักษณะ 3
ด้าน ได้แก่ ความลับ (Confidentiality) ความถูกต้อง (Integrity) และ ความพร้อมใช้งาน (Availability) โดย

แต่ละแอพพลิเคชันมีความต้องการในการป้องกันที่ต่างกัน เช่น การส่งข้อมูลของหน่วยงานของรัฐ การป้องกันข้อมูล
ถูกเปิดเผยมีความจำเป็นอย่างมาก ทำให้ต้องเข้ารหัสของข้อมูลหรือเอกสารต่างๆ ก่อนที่จะส่งออก เพื่อป้องกันการ
อ่านข้อมูลของผู้ไม่ได้รับอนุญาต เป็นส่วนหนึ่งของหลักการป้องกันความลับ (confidentiality) แต่ในการใช้งานเพื่อ
การพาณิชย์อิเล็กทรอนิกส์ (e-commerce) ความพร้อมใช้งาน (availability) ถือเป็นหัวใจสำคัญ เนื่องจากการล่ม
ของระบบเพียงไม่กี่นาที อาจทำให้เกิดการสูญเสียโอกาสทางการค้าจำนวนมาก






34.1.1 ความลับ (Confidentiality)


ความลับจะเป็นความลับก็ต่อเมื่อความลับนั้นไม่ถูกเปิดเผย ดังนั้นความลับ (Confidentiality) จะเกี่ยวข้องกับการ
ป้องกันจากผู้ไม่พึงประสงค์เข้ามายังระบบเพื่อเปิดเผยข้อมูลที่ไม่ควรได้รับการเปิดเผย การเข้ามาอาจเป็นการทำ
โดยตั้งใจ เช่นผ่านระบบป้องกันอย่างไม่ได้รับอนุญาต และถอดรหัสข้อมูลเพื่ออ่าน หรือการทำโดยไม่ตั้งใจ เช่น การ

ได้มาซึ่งข้อมูลจากการที่เจ้าของข้อมูลไม่ได้ระวังในการดูแล

273

274 บทที่ 34. ความปลอดภัยของเน็ตเวิร์ค



34.1.2 ความถูกต้อง (Integrity)


Integrity หรือความถูกต้อง จะคงอยู่ได้ก็ต่อเมื่อข้อมูลที่ถูกส่งไปนั้น ถึงมีผู้รับโดยไม่มีการแก้ไขหรือปรับเปลี่ยน มิ
ฉะนั้นจะถือว่าข้อมูลไม่ได้รับการดูแลในความถูกต้องต่อไป โดยทั่วไปแล้วเป้าหมายของ ความถูกต้อง (Integrity) มี
ด้วยกัน 3 ประการคือ

• การป้องกันการเข้ามาแก้ไขข้อมูลของผู้ที่ไม่พึงประสงค์


• การป้องกันการเข้ามาแก้ไขจากผู้ที่ไม่มีอำนาจในการแก้ไข หรือการแก้ไขโดยไม่ตั้งใจจากผู้ที่มีอำนาจ

• เก็บรักษาข้อมูลให้มีความคงเส้นคงว่า (consistency) ทั้งข้อมูลในระบบ และภายนอกระบบ โดยการจัด
เก็บข้อมูลในระบบ จะต้องเหมือนกันทั้งระบบ หากมองเฉพาะส่วนหรือมองทั้งระบบ ในส่วนของภายนอก
กับภายในระบบจะต้องเหมือนกัน
book)
แม้ว่าการที่จะรักษาความถูกต้อง กับความลับ จะใกล้เคียงกัน แต่ความถูกต้องไม่จำเป็นจะต้องเป็นความลับ
และความลับ ไม่จำเป็นจะต้องมีความถูกต้อง เช่น เราอาจส่งข้อมูลไปโดยไม่มีการเข้ารหัสใดๆ แต่ยังคงรักษาความ
ถูกต้อง ได้ แต่ในทางกลับกัน ข้อมูลที่ถูกส่งไปอาจมีการเข้ารหัสอย่างเป็นระบบและส่งถึงผู้รับ โดยที่ผู้รับไม่ทราบว่า
มีการเปลี่ยนแปลงข้อมูล
(partial


34.1.3 ความพร้อมใช้งาน (Availability)

การตอบสนองของระบบจะต้องตอบสนองในเวลาที่สมเหตุสมผล ในขณะทั่วไปแล้วเรามองความพร้อมใช้งานใน

เชิงความสามารถของระบบ ในโดยแท้จริงแล้ว เราสามารถที่จะมองให้อยู่ในรูปของความปลอดภัยได้เช่นกัน โดยที่
only
บริษัทอาจสูญเสียรายได้เนื่องจากการที่ระบบล้มเหลว เนื่องจากการที่ความปลอดภัยบกพร่อง เช่น เว็บไซต์ในการ
ขายของถูกโจมตี ทำให้ระบบล่ม ดังนั้นผู้ซื้อไม่สามารถที่ทำการจัดซื้อได้


KKU
34.2 การโจมตี (Security Attacks)



การสื่อสารข้อมูลเป็นการติดต่อระหว่างคนสองคนหรือมากกว่า เพื่อให้ได้ใจความที่ถูกต้อง การสื่อสารควรจะส่งจาก
ต้นทางเพื่อไปยังปลายทางโดยตรง ดังรูปที่ 34.1(a) เพื่อโจมตีการสื่อสารระหว่างผู้ส่งและผู้รับ ผู้โจมตีอาจใช้วิธีการ
ต่างๆ เช่น การทำให้ระบบไม่สามารถทำงานได้ หรือการแก้ไขข้อมูลระหว่างผู้ส่งและผู้รับ เป็นต้น โดยการโจมตีอาจ
เป็นไปได้ใน 4 กรณี[42]


Interruption (รูปที่ 34.1(b)) เป็นการทำให้ระบบที่มีอยู่ไม่สามารถที่จะทำงานได้ เช่น การทำลายระบบสื่อสาร
ของระบบ หรือการทำลายระบบจัดเก็บข้อมูล

Interception (รูปที่ 34.1(c)) เป็นการโจมตีของการเข้าสู่ระบบในลักษณะที่ไม่ได้รับอนุญาต หรือสิทธิในการ
เข้าถึงข้อมูล เช่น การดักข้อมูลบนสายสัญญาณ หรือการทำสำเนาไฟล์เอกสารหรือแอพพลิเคชันที่ไม่ได้รับ

อนุญาต

Modification (รูปที่ 34.1(d)) การทำ modification มิใช่เพียงแต่ผู้ที่ไม่ได้รับอนญาตเข้าสู่ระบบเท่านั้น แต่ยัง
แก้ไขข้อมูลในระบบอีกด้วย เช่น การเข้าแก้ไขข้อความที่ส่งอยู่บนเน็ตเวิร์ค

Fabrication (รูปที่ 34.1(e)) เป็นการทำของผู้ไม่ปรารถนาดี ด้วยการส่งข้อความเข้าสู่ระบบ เช่น การแทรก

ข้อความเข้าในเน็ตเวิร์คเพื่อให้เกิดความเข้าใจผิด

34.2. การโจมตี (SECURITY ATTACKS) 275



























book)








รูปที่ 34.1: Security Threats


หากมองในภาพรวมการโจมตี เราอาจมองได้ในสองรูปแบบคือ การโจมตีแบบแพสซิฟ (Passive) และการโจมตี
แบบแอ็กทิฟ (Active) ดังแสดงในรูปที่ 34.2 (partial


only





KKU







รูปที่ 34.2: การโจมตีในเน็ตเวิร์ค (a) แบบ Passive และ (b) แบบ Active




• การโจมตีแบบแพสซิฟ (Passive) (รูปที่ 34.2(a)) : การโจมตีแบบแพสซิฟ อาจมองโดยง่ายของผู้ที่ดักฟัง
การสนทนา ซึ่งเสมือนกับการที่ฝ่ายหากทำการดักจับข้อมูลที่ส่งผ่านระหว่างผู้ส่งและผู้รับ ซึ่งการโจมตีใน
ลักษณะนี้ได้แก่ การลักลอบนำข้อมูลออกไป (release of message contents) และแอบวิเคราะห์สภาวะ
ทราฟฟิก (traffic analysis)

• การโจมตีแบบแอ็กทิฟ (Active) (รูปที่ 34.2(b)) : ในส่วนของการโจมตีแบบแอ็กทิฟ นอกเหนือจากการ
ดักจับแล้ว ยังทำให้เกิดการแก้ไขข้อมูลที่ส่ง หรือการสร้างข้อความที่ไม่ได้มีจริงเข้าสู่ระบบ ในส่วนนี้สามารถ

แบ่งได้เป็น 4 แบบ คือการปลอมเป็นผู้ใช้ที่ได้รับอนุญาต (Masquerade) การทวนข้อความซํ้า (Replay)
การเปลี่ยนแปลงข้อมูล (Modification) และการปฎิเสธการให้บริการ (Denial of Service)

1. การปลอมเป็นผู้ใช้ที่ได้รับอนุญาต (Masquerade) : การทำเอนทิตี (entity) หนึ่งให้เป็นการทำ

เสมือนอีกเอนทิตีหนึ่ง ในการเกิดการหลอกลวงแบบมาสคิวเรด มักจะทำร่วมกับการโจมตีแบบ

276 บทที่ 34. ความปลอดภัยของเน็ตเวิร์ค



แอ็กทิฟและแบบอื่นๆ เช่นการดักจับ authentication sequence และทวนซํ้า (replay) ภายหลัง
จากที่ anthentication sequence ที่ถูกต้องเกิดขึ้น การทำเช่นนี้ อาจทำให้ผู้ที่ไม่มีอำนาจเข้าถึง
ข้อมูลที่ไม่สมควรรับรู้

2. การทวนข้อความซํ้า (Replay) : เมื่อตรวจจับข้อความ (message) ของผู้ส่งได้ ผู้ที่ไม่ประสงค์ดีอาจ
ใช้ข้อความดังกล่าวเป็นประโยชน์ในการเข้าถึงข้อมูลได้

3. การเปลี่ยนแปลงข้อมูล (Modification) : การทำการเปลี่ยนแปลงข้อมูลหรือกล่าวง่ายๆ ได้แก่ การ
แก้ไขข้อความ การชะลอการส่งข้อความ หรือ การจัดลำดับข้อความใหม่

4. การปฎิเสธการให้บริการ (Denial of Service) : การทำให้ระบบสื่อสารเสียหาย ทำให้ไม่สามารถเข้า
ถึงข้อมูลได้ เช่น การทำให้เน็ตเวิร์คทำงานเกินความสามารถที่จะทำได้


34.3 โมเดลของความปลอดภัยในเน็ตเวิร์ค (A Model for Network
book)

Security)



แม้ว่าการสื่อสารระหว่างผู้ส่งและผู้รับเสมือนการติดต่อระหว่างคนสองคน การสื่อสารนี้อาจทำโดยผ่านช่องสัญญาณ
(partial
บน TCP/IP หรือโพรโตคอลอื่น เพื่อให้การสื่อสารระหว่างทั้งสองถูกต้อง และปราศจากการดักจับหรือแก้ไขข้อความ
จากฝ่ายตรงข้าม ส่วนประกอบสำคัญสองส่วนที่สำคัญ [42] ที่ให้เกิดความมั่นคงปลอดภัยคือ






only





KKU







รูปที่ 34.3: โมเดลของความปลอดภัยในเน็ตเวิร์ค



• การเปลี่ยนรูปของข้อมูลที่ต้องการส่ง เช่นการเข้ารหัสบนข้อความที่จะส่ง ทำให้ข้อความที่ส่งนั้นไม่สามารถ
อ่านได้จากฝ่ายตรงข้าม นอกจากนี้คือส่วนของรหัสหรือโค้ดเพื่อที่ใช้ในการระบุถึงภาคส่ง


• ส่วนของข้อมูลลับที่รู้ร่วมกันระหว่างภาครับและภาคส่ง โดยที่หวังว่าฝ่ายตรงข้ามจะไม่สามารถที่จะล่วงรู้ได้

นอกจากนี้ เพื่อสนับสนุนการป้องกันระหว่างการส่งข้อมูล บุคคลที่น่าเชื่อถือ ถือเป็นบุคคลที่สามของการสื่อสาร
อาจเข้ามามีส่วนร่วม เช่น เพื่อช่วยในการส่งข้อมูลลับระหว่างผู้รับและผู้ส่ง ในขณะที่ป้องกันข้อมูลจากฝ่ายตรงข้าม

หากมองโดยทั่วไปแล้ว ส่วนสำคัญในการทำให้เกิดการให้บริการการรักษาความมั่นคงปลอดภัยประกอบไปด้วย

1. การออกแบบอัลกอริทึมเพื่อใช้ในการรักษาความมั่นคงปลอดภัย การออกแบบต้องทำให้ฝ่ายตรงข้ามไม่
สามารถแก้ไขได้


2. การสร้างข้อมูลลับเพื่อใช้กับอัลกอริทึม

34.4. คริปโตกราฟี (CRYPTOGRAPHY) 277



3. วิธีการในการกระจายข้อมูลลับเพื่อการใช้ข้อมูลลับร่วมกัน


4. การระบุโพรโตคอลเพื่อใช้กับภาครับและภาคส่ง เพื่อใช้กับอัลกอริทึม เพื่อให้บรรลุจุดประสงค์ที่ต้องการ



34.4 คริปโตกราฟี (Cryptography)



คริปโตกราฟี (Cryptography) หรือวิทยาการเข้ารหัสลับ มาจากภาษากรีกคำว่า kryptos หรือการซ่อน การทำ
งานของคริปโตกราฟีเป็นวิธีการในการแทนข้อความตั้งต้นด้วยการเข้ารหัส โดยที่ไม่มีการเปลี่ยนแปลงเนื้อหาของ
ข้อความที่ส่ง ข้อความตั้งต้นเรียกว่า เคลียร์เท็กซ์ (clear text) หรือ เพลนเท็กซ์ (plain text) จากนั้นข้อความที่ถูก

แปลงเรียกว่า ไซเฟอร์เท็กซ์ (cipher text) หรือบางครั้งเรียกว่า cryptogram
ในการแปลงข้อมูลจากเพลนเท็กซ์ไปเป็นไซเฟอร์เท็กซ์เรียกว่าการทำ การเข้ารหัสข้อมูล (Encryption) ในขณะ
book)
เดียวกันในทางตรงข้ามการแปลงข้อมูลกลับจะถูกเรียกว่า การถอดรหัสข้อมูล (decryption) การทำการเข้ารหัส
ข้อมูลหรือ การถอดรหัสข้อมูลจะอาศัย คีย์ (Key) หรือ การใช้แฮซฟังก์ชัน (Hash function) การทำงานโดยใช้วิธีนี้
มีวิธีการกว้างๆ 3 วิธี คือ การทำงานโดยใช้ซีเคร็ทคีย์อัลกอริทึม พับลิกคีย์อัลกอริทึม และเมสเสจไดเจสต์อัลกอริทึม


(partial
คีย์ (key) คืออะไร? การใช้ คีย์(key) ถือเป็นส่วนสำคัญในการที่จะทำให้เราสามารถได้ไซเฟอร์เท็กซ์ที่ต้องการ
ในแต่ละการเข้ารหัสจะระบุถึงคีย์ที่ต้องการใช้มีหน่วยเป็นบิต เราอาจใช้ 1024 หรือ 2048 บิตในการเข้ารหัส หรือใช้
เพียง 64 หรือ 128 บิตเพื่อการเข้ารหัส โดยทั่วไปแล้วยิ่งเรามีขนาดของคีย์ใหญ่เท่าใด จะทำให้ได้ไซเฟอร์เท็กซ์ที่มี
ความปลอดภัยมั่นคงเท่านั้น แต่อาจต้องใช้การประมวลผลที่สูงขึ้น และระยะเวลาที่นานขึ้น

ในการเข้ารหัสบางประเภทเราอาจมีการกำหนดคีย์เพื่อให้ทำงานร่วมกัน เช่นการใช้ พับลิกคีย์ (public key)
only
และ ไพรเวทคีย์ (private key) โดยคีย์ทั้งสองมีความสัมพันธ์กันทางคณิตศาสตร์ หรือเป็นการยากที่เราจะคำนวณ
ค่าของไพรเวทคีย์ โดยอาศัยเพียงพับลิกคีย์ อย่างไรก็ตามการหาไพรเวทคีย์ อาจทำได้หากมีเวลาพอ และความ
สามารถในการคำนวณ ทำให้ความสำคัญของขนาดคีย์เป็นปัจจัยที่สำคัญมาก ดังนั้น คีย์จำเป็นต้องมีขนาดที่เหมาะ
KKU
สม โดยที่มีขนาดใหญ่พอที่ทำให้มีความปลอดภัยมั่นคง แต่มีขนาดเล็กเพียงพอที่นำไปประยุกต์ใช้ได้จริง




• ซีเคร็ทคีย์อัลกอริทึม (Secret-key algorithm): ในการอัลกอริทึมนี้ผู้รับและผู้ส่งจะใช้ซีเคร็ทคีย์ร่วมกัน

เพื่อใช้ในการทำการเข้ารหัสข้อมูลและการถอดรหัสข้อมูลตัวอย่างของการทำงานในลักษณะได้แก่ Digital
Encryption Standard (DES) และ Advanced Encryption Standard (AES) รูปที่ 34.4 แสดงหลักการ
ทำงานของอัลกอริทึมนี้


















รูปที่ 34.4: การทำงานของซีเคร็ทคีย์อัลกอริทึม (Secret-key algorithm)

278 บทที่ 34. ความปลอดภัยของเน็ตเวิร์ค



• พับลิกคีย์อัลกอริทึม (Public-key algorithms) : การใช้พับลิกคีย์อัลกอริทึมผู้ส่งและผู้รับจะมีไพรเวทคีย์ที่
ไม่เปิดเผยให้ผู้ใดทราบ และพับลิกคีย์ที่เปิดเผยทำให้ทุกคนสามารถรับทราบได้ ในการส่งข้อความใดออกไป
ผู้ส่งจะเข้ารหัสข้อความด้วย พับลิกคีย์ เมี่อผู้รับได้รับจะถอดรหัสข้อความโดยการใช้ไพรเวทคีย์ การทำงาน
ในลักษณะนี้ อาจดูไม่ปลอดภัยเท่าใดนัก เนื่องจากมีส่วนที่เป็นพับลิกคีย์จะถูกเปิดเผยออกไปสู่สาธารณะ

อย่างไรก็ตาม การที่จะสามารถอ่านข้อความได้จะเป็นผู้ที่มีไพรเวทคีย์เท่านั้น เพื่อใช้เปิดข้อความได้ ตัวอย่าง
ของการทำงานนี้ได้แก่ RSA algorithm ซึ่งเป็นการทำงานในลักษณะที่เป็นแบบไม่สมมาตร (asymmetric)
รูปที่ 34.5 แสดงหลักการทำงานของพับลิกคีย์อัลกอริทึมนี้









book)







(partial
รูปที่ 34.5: การทำงานของพับลิกคีย์อัลกอริทึม(Public key algorithm)





• เมสเสจไดเจสต์อัลกอริทึม (Message Digest algorithm) : การทำงานของการใช้เมสเสจไดเจสต์จะ
only
ไม่เกี่ยวข้องกับการใช้คีย์ แต่จะเป็นการใช้การแมพ (map) จากข้อความขนาดใหญ่ให้เป็นข้อความขนาด
เล็กที่ขนาดคงที่ ตัวอย่างที่เป็นที่รู้จักทั่วไปได้แก่ Message Digest version 5 (MD5) และ Secret Hash
Algorithm (SHA) รูปที่ 34.6 แสดงหลักการทำงานของอัลกอริทึมนี้
KKU































รูปที่ 34.6: การทำงานของเมสเสจไดเจสต์อัลกอริทึม (Message Digest algorithm)

34.4. คริปโตกราฟี (CRYPTOGRAPHY) 279



34.4.1 Basic Enciphering Concepts


พื้นฐานการทำการเข้ารหัสข้อมูลโดยการใช้คีย์อัลกอริทึมสามารถที่จะแบ่งได้เป็นสองแบบคือ Transposition
ciphers และ Substitution ciphers


• Transpositionciphersหรือการทำงานในลักษณะสลับตัวอักษรในเพลนเท็กซ์เพื่อให้เกิดไซเฟอร์เท็กซ์ เช่น
การสลับอักษรในข้อความที่จะส่ง การจัดเรียงอักษรใหม่ให้อยู่ในรูปเรขาคณิต

• Substitution ciphers แต่ต่างจากการสลับตัวอักษร คือ จะแทนตัวอักษรด้วยอักขระอื่น ซึ่งอาจเป็นตัวเลข

หรือสัญญลักษณ์ โดยทั่วไปแล้วสามารถแบ่งการทำ substitution ciphers ออกเป็น 4 ประเภทใหญ่คือ

1. Simple substution คือการแทนตัวอักษรหนึ่งๆ ในเพลนเท็กซ์ด้วยตัวอักษรในไซเฟอร์เท็กซ์ การ

ทำงานในวิธีนี้จะแทนแบบหนึ่งต่อหนึ่งของเพลนเท็กซ์และไซเฟอร์เท็กซ์
book)
2. Homophonic substitution คือการแทนตัวอักษรหนึ่งๆบนเพลนเท็กซ์ด้วยไซเฟอร์เท็กซ์หลาก
หลายแบบ เสมือนการแทนเพลนเท็กซ์ด้วยไซเฟอร์เท็กซ์แบบ one-to-many
3. Polyalphabet substitution คือการใช้หลากหลาย cipher alphabets เพื่อเปลี่ยนจากเพลนเท็กซ์

ไปเป็นไซเฟอร์เท็กซ์

4. Polygram substitution ถือเป็นการทำแบบที่ใช้งานทั่วไปที่สุด เป็นการแทนชุดของเพลนเท็กซ์ด้วย
อะไรก็ได้ (partial


โดยทั่วไปแล้วได้มีการแบ่งการทำซิมเมตริกไซเฟอร์ (symmetric cipher) หรือการเข้ารหัสแบบใช้คีย์ขนาดคงที่
เป็นแบบกว้างๆ สองแบบ คือ แบบบล็อกไซเฟอร์ (block cipher) จะการเข้ารหัสข้อมูลทีละ 64, 128 หรือ 256
บิต และแบบสตรีมไซเฟอร์ (Stream ciphers) โดยการเข้ารหัสข้อมูลและการถอดรหัสข้อมูลทีละหนึ่งตัวอักษรหรือ
หนึ่งบิต only
KKU

Data Encrption Standard (DES)

DES ถูกเริ่มใช้งานตั้งแต่ปี คศ.1977 โดย National Institute of Standard and Technology (NIST) DES เป็นการ
ทำไซเฟอร์เข้ารหัสขนาด 64 บิต โดยจะนำเพลนเท็กซ์ 64 บิต เพื่อสร้างไซเฟอร์เท็กซ์ขนาด 64 บิต ในทางกลับกัน
DES ก็นำ 64 บิตของไซเฟอร์เท็กซ์เพื่อนำกลับเพลนเท็กซ์ แต่ในความเป็นจริงแล้ว การทำงานของ DES ใช้เพียง 56

บิต ในอีก 8 บิตที่เหลืออาจใช้เป็นพาราตีบิต เพื่อใช้ป้องกันความผิดพลาดที่อาจเกิดขึ้นของ DES หรือเพื่อใช้สำหรับ
ตรวจสอบความถูกต้อง
ครั้งหนึ่ง DES ถือว่าเป็นอัลกอริทึมที่ได้รับความนิยมอย่างมากในอเมริกาในแทบทุกกิจการ แต่เนื่องจากปัจจุบัน
ได้ทดสอบแล้วว่าการเข้ารหัสด้วยการใช้ DES สามารถถอดรหัสได้โดยการทำบรูทฟอร์ส (brute-force) ในวิธีนี้การ
นี้ผู้โจมตี สามารถที่จะนำไซเฟอร์เท็กซ์มาทดสอบโดยการใช้ทุกคีย์ที่เป็นไปได้ ดังเห็นได้จากในปี คศ. 1998

Electronic Frontier Foundation ได้สร้างเครื่องที่ชื่อว่า Deep Crack เพื่อทดสอบการถอดรหัส DES พบว่า
สามารถแก้ได้ใน 56 ชั่วโมงโดยใช้บรูทฟอร์ส
เพื่อให้มีความปลอดภัยที่สูงขึ้น ได้มีการพัฒนา Triple DES ต่อยอดจากการทำงานของ DES ด้วยการทำ DES
สามรอบ โดยการใช้คีย์ที่ต่างกัน การทำงานของ Triple DES เป็นการนำเพลนเท็กซ์มาเข้ารหัส (encrypt) ด้วยคีย์
แรก จากนั้นถอดรหัส (decrypt) ด้วยคีย์ที่สอง จากนั้นเข้ารหัสอีกทีด้วยคีย์ที่สาม การทำ Triple DES ทำให้มีความ
ปลอดภัยเพิ่มขึ้น จากเดิมที่เคยใช้บรูทฟอร์สจำนวน 2 รอบ ทำให้ต้องใช้เวลานานขึ้น โดยการทำ Triple DES จะ
56
มีทั้งหมด 192 บิตรวมพาริตีบิต

280 บทที่ 34. ความปลอดภัยของเน็ตเวิร์ค



อย่างไรก็ตาม แม้ว่าการใช้ Triple DES สามารถที่จะทำให้ระบบมีความปลอดภัยที่สูงขึ้น โดยการใช้คีย์ที่ใหญ่
ขึ้น การใช้งานของ Triple DES อาจทำให้การทำงานช้าลง เนื่องจากจำเป็นต้องการเข้ารหัสสองรอบ และการ
ถอดรหัสอีกหนึ่งรอบ



Advanced Encryption Standard (AES)

AES ถูกนำมาใช้งานในปี คศ.2000 โดย NIST เพื่อแทนที่ DES ที่สามารถถอดรหัส (decrypt) ง่ายเกินไปด้วยการ
ทำบรูทฟอร์ส ในขณะที่การใช้งานของ Triple DES เกิดความล่าช้าสำหรับการใช้งานกับหลายแอพพลิเคชัน AES
ถูกออกแบบโดยนักวิจัยชาวเบลเยี่ยมชื่อ Joan Daemen และ Vincent Rijmen เป็นอัลกอริทึมที่สามารถเข้ารหัส
และการถอดรหัสข้อมูลขนาด 128 บิต ด้วยการใช้คีย์ขนาด 128, 192 และ 256 บิต AES ถูกนำมาแทนทั้ง DES

และ Triple DES เนื่องจากมีคีย์ที่ใหญ่กว่า และการประมวลผลที่เร็วกว่า

book)
Rivest-Shamir-Adleman (RSA)

Rivest, Shamir และ Adleman (RSA) เป็นชื่อของสามคนผู้พัฒนาอัลกอริทึม RSA โดยอยู่บนพื้นฐานเลขคณิต

มอดุลาร์ (modular arithmetic) และ การการแยกตัวประกอบ (factorization) ของตัวเลขขนาดใหญ่ โดยที่อัล
กอริทึม RSA อยู่บนพื้นฐานที่ว่า การหาค่าจำนวนเฉพาะ (prime number) สองค่าและคูณกันทำได้ไม่ยากนัก แต่
(partial
เป็นการยากในการที่จะแยกจำนวนทั้งสอง รูปที่ 34.7 แสดงการหาค่าของคีย์ และขั้นตอนการการเข้ารหัสข้อมูล
และการถอดรหัสข้อมูลของ RSA โดยมีขั้นตอนดังนี้


1. เลือกเลขจำนวนเฉพาะสองจำนวน p และ q เพื่อใช้เป็นเลขพับลิกคีย์และไพรเวทคีย์จากนั้นคูณค่าทั้งสอง
เข้าด้วยกัน โดยทั่วไปแล้วทั้ง p และ q จะเป็นขนาด 512 บิต เพื่อให้ได้การทำความปลอดภัยที่ดี
only

2. เลือกคีย์เพื่อการเข้ารหัส (e) โดยที่ e และ φ(n) = (p − 1)x(q − 1) เป็นจำนวนเฉพาะสัมพัทธ์ (relative
prime) ที่ซึ่งทั้งสองไม่สามารถหารได้ลงตัวยกเว้น 1 หรือ ไม่สามารถแยกพจน์ได้ ทำให้เราได้พับลิกคีย์
KKU −1 (34.1)
ประกอบด้วยเซ็ตของ {e, n}

3. คำนวณหาค่าการถอดรหัส (decrpytion)โดยที่


mod[(p − 1)x(q − 1)]
d = e
d และ e เป็นตัวผกผันการคูณ (multiplicative inverse) ของกันและกัน mod φ(n) และไพรเวทคีย์
สามารถหาได้จาก เซ็ตของ {e, n} จากจุดนี้ จะทำให้ p และ q ไม่จำเป็นอีกต่อไป แต่ไม่ควรจะถูกเปิดเผย


หลังจากได้ค่าของพับลิกคีย์และไพรเวทคีย์เราสามารถจะดำเนินการทำการเข้ารหัสข้อมูลและการถอดรหัส
ข้อมูล โดยสมมุติให้ P เป็นจำนวนเต็มที่น้อยกว่า n ที่สัมพันธ์ (corresponse) กับเพลนเท็กซ์ทำให้เราสามารถที่จะ

หาค่า ไซเฟอร์เท็กซ์ C ด้วย
e (34.2)
C = P mod n
ในทำนองเดียวกันหากต้องการหาค่าของเพลนเท็กซ์เราจะใช้ตัวแปร d และ n จากความสัมพันธ์


d e d de (34.3)
C mod n = (P ) mod n = P mod n = P mod n = P
ในการคำนวณหาค่าพับลิกคีย์ ไพรเวทคีย์ การเข้ารหัสข้อมูลและ การถอดรหัส มีหลักการทางคณิตศาสตร์ที่

ต้องทราบได้แก่ ฟังก์ชันแบบออยเลอร์ φ(m) (Euler function) และตัวผกผันการคูณ โดยมีหลักการดังต่อไปนี้

34.4. คริปโตกราฟี (CRYPTOGRAPHY) 281



























book)







(partial





รูปที่ 34.7: ขั้นตอนการทำงานใน RSA อัลกอริทึม


only
• ฟังก์ชันแบบออยเลอร์ φ(m) (Euler function) เป็นค่าจำนวนเต็มบวกที่น้อยกว่าหรือเท่ากับ m และเป็น
จำนวนเฉพาะสัมพัทธ์ของ m ซึ่งหมายความว่าไม่สามารถหารลงตัวได้ ยกเว้นตัวประกอบ (factor) ของ m
ในทำนองเดียวกันหากกล่าวถึงฟังก์ชันแบบออยเลอร์ (Euler function) ของ p จะทำให้เราได้จำนวนเต็มที่

น้อยกว่า p ที่สัมพัทธ์ (relative) กับ p จะเป็น
KKU φ(p) = P − 1 (34.4)



เช่นสำหรับ p ที่เท่ากับ 47 เราจะได้ φ (47) = 47-1 = 46 ดังนั้น จำนวนเต็มที่น้อยกว่า 47 เป็น จำนวน
เฉพาะสัมพัทธ์ของ 47 ดังนั้นหากเราให้จำนวนเฉพาะสองตัวคือ p และ q จะทำให้เราได้ผลคูณเป็น n = pq
ดังนั้นจำนวนเต็มที่น้อยกว่า n และเป็นจำนวนเฉพาะสัมพัทธ์ของ n คือ

φ(n) = φ(p)φ(q) = (p − 1)x(q − 1) (34.5)

ตัวอย่างเช่นหากเราให้ p = 3 และ q = 7 ดังนั้น เราจะได้ φ(21) = φ(3)φ(7) = (3 − 1)x(7 − 1) = 12
ทำให้ในที่นี้ เราจะได้จำนวนเฉพาะสัมพัทธ์ของ 21 เป็นเซ็ตของจำนวนเต็ม { 1, 2, 4, 5, 8, 10, 11, 13, 16,
17, 19, 20 }

• ตัวผกผันการคูณ (multiplicative inverses) หรือกรณีที่ทำเลขคณิตมอดุลาร์ (modular arithmetric)

ของค่าจำนวนเต็ม a ในช่วงของ 0 (ศูนย์) ถึง n­1 ที่มีค่าของ x ในช่วงดังกล่าวมีค่าเป็น

ax mod n = 1 (34.6)
ในกรณีดังกล่าวถือว่าเป็นคุณลักษณะที่มีประโยชน์ใน cryptographic แอพพลิเคชันเมื่อ a และ n เป็น

จำนวนเฉพาะสัมพัทธ์ เราสามารถที่จะหาค่าของจำนวนเต็ม x ได้เป็น

x = a φ(n)−1 mod n (34.7)

282 บทที่ 34. ความปลอดภัยของเน็ตเวิร์ค



เมื่อ φ(n) เป็น Euler function ที่ได้กล่าวไปแล้ว

นอกจากนี้ เรายังสามารถที่จะหาค่าได้จาก


ax mod n = b (34.8)

เมื่อจำนวนที่มากที่สุดที่สามารถหารทั้ง a และ n เป็น 1 ทำให้เราได้


x = bx 0 mod n (34.9)

ดังนั้น x 0 จะได้

ax 0 mod n = 1 (34.10)


34.4.2 Message Digest Method
book)
การทำงานของ Message Digest (MD) จะทำโดยการใช้แฮซฟังก์ชัน (Hash function) หรืออัลกอริทึมในการนำ
ข้อความที่ต้องการส่งความยาวค่าหนึ่ง ทำให้ได้ข้อความขนาดคงที่ค่าหนึ่ง (pseudorandom output) ตัวอย่าง

ของแฮซฟังก์ชัน ที่ใช้งานได้แก่ Message Digest 5 (MD5) อัลกอริทึมและ Secure Hash Algorithm (SHA-1)
(partial
การใช้งานของอัลกอริทึมนี้สามารถใช้กับการทำงานของอีเมล ระบบการจัดเก็บข้อมูล การใช้งานเพื่อการพาณิชย์
อิเล็กทรอนิกส์ (e-commerce) หรือระบบใดๆที่ต้องการความปลอดภัยด้าน ความถูกต้อง (integrity) ของข้อมูล
และการพิสูจน์ทราบตัวตน (authentication) ของต้นทางข้อมูล
โดยพี้นฐานแล้วแฮซฟังก์ชัน คือการเข้ารหัสแบบ checksum ของข้อมูลที่มีขนาดไม่แน่นอน เพื่อป้องกันการ

เปลี่ยนแปลงที่ไม่พึงประสงค์ (malicious modification) ของข้อมูล โดยที่ MD5 ทำให้ได้ข้อมูลขนาด 128 บิต ใน
only
ขณะที่ SHA-1 อัลกอริทึม ทำให้ได้เมสเสจไดเจสต์ขนาด 160 บิต การทำงานของอัลกอริทึมนี้อยู่บนพื้นฐานที่ว่า
หากเรามีแฮซใดๆ จะเป็นไปไม่ได้เลยที่จะคำนวณหาข้อความที่ทำให้เกิดแฮซนั้นๆ ดังนั้นหากแฮซอัลกอริทึมใช้ใน
การเข้ารหัสลายเซ็นอิเล็กทรอนิกส์ในข้อความใดๆ หากมีการแก้ไข จะทำให้เป็นไปได้ว่าจะทำให้ข้อความอื่น เป็นผล
KKU
ให้ทำตรวจสอบลายเซ็นอิเล็กทรอนิกส์นั้นไม่สามารถตรวจสอบความถูกต้องได้


34.5 ความปลอดภัยในอินเทอร์เน็ต (Internet Security)



ในส่วนนี้จะได้กล่าวถึงการทำงานของความปลอดภัยในเลเยอร์ต่างๆ ตั้งแต่ Application Layer, Transport Layer,
Network Layer



34.5.1 ความปลอดภัยใน Application Layer

เพื่อทำความปลอดภัยใน Application Layer ในที่นี้จะได้กล่าวถึง 2 โพรโตคอลที่สำคัญในสำหรับอีเมลคือ Pretty
Good Privacy (PGP) และ Secure/Multipurpose Internet Mail Extension (S/MIME)



Pretty Good Privacy (PGP)

PGP ถูกออกแบบเพื่อเป็นความปลอดภัยของแอพพลิเคชัน และการจัดเก็บข้อมูล Phil Zimmermann พัฒนาขึ้น
และตีพิมพ์ในปีคศ. 1991 เป็นซอฟต์แวร์ที่สามารถใช้ได้ฟรี ทำให้มีการใช้งานอย่างแพร่หลายจนกระทั่งมีการ
ออกเป็นของกำหนดโดย IETF เรียกว่า OpenPGP โดยข้อกำหนดนี้อยู่ใน RFC 2440 ในกำหนดรูปแบบทั่วไปของ

ข้อความ (message) มาตรฐาน อัลกอริทึมในการเข้ารหัส และอื่นๆ โครงสร้างทั่วไปของ PGP ซึ่งประกอบด้วยส่วน

34.5. ความปลอดภัยในอินเทอร์เน็ต (INTERNET SECURITY) 283



ของ Message component, Signature component และส่วน Session key component โดยที่แต่ละส่วนจะ
มีคุณลักษณะดังนี้


1. Message component จะประกอบไปด้วยฟิลด์ต่างๆที่จะจัดเก็บและส่ง ชื่อไฟล์ และเวลาที่ข้อความถูก
สร้างขึ้น


2. Signature component จะประกอบไปด้วยฟิลด์ย่อยต่างๆดังนี้

• เวลาที่ลายเซ็นต์ (signature) ถูกสร้างขึ้น

• ส่วนของ SHA เมสเสจไดเจสต์ขนาด 160 บิต ที่ถูกเข้ารหัสกับไพรเวทคีย์ของผู้ส่ง

• 2 ไบต์แรกของเมสเสจไดเจสต์ เพื่อให้ผู้รับสามารถทราบถึงพับลิกคีย์ที่จะใช้ในการถอดรหัส

• ส่วนที่ระบุพับลิกคีย์ของผู้ส่ง เพื่อใช้ในการถอดรหัสเมสเสจไดเจสต์


3. Session key component ในส่วนนี้จะรวมไปถึงเซสชันคีย์และส่วนที่ระบุถึงพับลิกคีย์ของผู้รับที่ผู้ส่งใช้ใน
การเข้ารหัสเซสชันคีย์ book)

(partial
Secure/Multipurpose Internet Mail Extension (S/MIME)

S/MIME เป็นส่วนขยายของ MIME ซึ่งเป็นมาตรฐานของอินเทอร์เน็ตบนพื้นฐานการทำงานของ RSA แม้ว่าทั้ง PGP
และ S/MIME จะเป็นมาตรฐานบน IETF แต่ดูเหมือนว่า S/MIME จะได้รับความนิยมในการในเชิงธุรกิจและใน
องค์กรขนาดใหญ่ ในขณะที่ PGP จะได้รับความนิยมการสื่อสารผ่านอีเมลสำหรับผู้ใช้ทั่วไป
only
หากมองโดยทั่วไปแล้ว S/MIME ค่อนข้างคล้ายกับ PGP ทั้งสองสามารถที่จะเซ็นชื่อแบบดิจิทัล (Sign) และเข้า
รหัสข้อความ ซึ่ง S/MIME สนับสนุนฟังก์ชันต่อไปนี้


• Enveloped data จะประกอบไปด้วยการเข้ารหัสของข้อความ (encrypted content) ของทุกประเภท
KKU
พร้อมทั้งคีย์ของการเข้ารหัสข้อความ สำหรับผู้รับที่อาจมีมากกว่าหนึ่งคน

• Signed data สร้างลายเซ็นอิเล็กทรอนิกส์โดยการนำเมสเสจไดเจสต์ของข้อความที่จะเซ็นชื่อ และเข้ารหัส

กับไพรเวทคีย์ของผู้เซ็น จากนั้นข้อความและลายเซ็นอิเล็กทรอนิกส์จะถูกเข้ารหัสด้วย base64 ข้อมูลที่ถูก
เซ็นต์ (sign) จะสามารถดูได้ด้วยผู้รับที่รองรับการทำงานของ S/MIME

• Clear-Signed data หลังจากการเซ็นต์กำกับข้อมูล จะทำให้ได้ลายเซ็นอิเล็กทรอนิกส์ของข้อความ อย่างไร

ก็ตาม ในกรณีนี้จะเห็นว่ามีเพียงลายเซ็นอิเล็กทรอนิกส์เท่านั้นที่ถูกเข้ารหัสด้วย base64 ทำให้ผู้รับที่ไม่
รองรับการทำงานของ S/MIME สามารถที่จะดูข้อความได้ แต่ไม่สามารถที่จะตรวจสอบความถูกต้องของ
ลายเซ็นต์ (verify signature) ได้


• Signed และ enveloped data การ signed-only หรือ encrypted-only อาจทำงานต่อเนื่องกัน ดังนั้น
ข้อมูลที่ถูกเข้ารหัสอาจถูก signed และ signed data หรือ clear-signed data อาจถูกเข้ารหัส



34.5.2 ความปลอดภัยใน Transport Layer

ปัจจุบันในการสนับสนุนความปลอดภัยใน Transport Layer กล่าวได้ว่ามี 2 โพรโตคอลที่เป็นที่แพร่หลายได้แก่

โพรโตคอล Secure Sockets Layer (SSL) และโพรโตคอล Transport Layer Security (TLS)

284 บทที่ 34. ความปลอดภัยของเน็ตเวิร์ค



Secure Sockets Layer (SSL)

Secure Sockets Layer (SSL) ถูกพัฒนาโดยบริษัท Netscape Communications Corporation โดยเป้าหมาย
ของ SSL เพื่อให้ช่องสัญญาณส่วนตัว (private channel) ระหว่างแอพพลิเคชันกับผู้ใช้ สามารถรองรับความเป็น
ส่วนตัว (privacy) ของข้อมูล รวมถึงการพิสูจน์ทราบตัวตนและความถูกต้อง

เนื่องจากการออกแบบของ SSL เพื่อรองรับความปลอดภัยของข้อมูลที่มาจาก Application Layer ดังนั้นใน
ทางทฤษฎีแล้ว SSL สามารถที่จะรองรับ TCP/IP ทุกแอพพลิเคชันโดยไม่จำเป็นต้องมีการแก้ไขใดๆ เช่นการใช้งาน
กับ HTTP รวมไปถึงแอพพลิเคชันอื่นๆ ได้แก่ Telnet เป็นต้น การทำงานของ SSL สามารถแบ่งเป็นสองเลเยอร์หลัก
ดังแสดงในรูปที่ 34.8 คือ






book)







(partial




รูปที่ 34.8: การแบ่งเลเยอร์ในโพรโตคอล SSL



only
• Record Layer เป็นส่วนในการถ่ายโอนข้อมูลโดยอาศัยวิธีการต่างๆในการทำไซเฟอร์ และการพิสูจน์ทราบ
ตัวตนเรียกว่า SSL Record Protocol รูปที่ 34.9 แสดงเซสชันเชื่อมต่อระหว่างไคลเอนต์และเซิร์ฟเวอร์ ซึ่ง
หลังจากการสร้างเซสชันสิ้นสุด ทั้งไคลเอนต์และเซิร์ฟเวอร์จะตกลงข้อมูลร่วมกัน ได้แก่ หมายเลขเซสชัน
KKU
(Session identifier), certificate authentication, cipher suite and ซีเคร็ท เพื่อใช้ในการสร้างคีย์ใน
การเข้ารหัสการพิสูจน์ทราบตัวตน (authentication encryption)

เนื่องจาก SSL ได้รับความนิยมใช้ร่วมกับการทำงานของเบราว์เซอร์ เราสามารถลำดับการทำงานที่เกิดขึ้น
บนโพรโตคอล Hypertext ได้ดังนี้


1. ผู้ใช้ร้องขอด้วย URL เริ่มต้นด้วย https: แทนที่จะเป็น http:

2. ไคลเอนต์ร้องขอการเชื่อมต่อไปยังพอร์ต 443 ของเซิร์ฟเวอร์เนื่องจากการร้องขอเป็นทำงานของ SSL

3. เริ่มการทำงานของ SSL handshake และใช้ SSL Record Protocol เพื่อช่วยในการจัดการ


• Handshake Layer ทำหน้าที่ในการเริ่มต้นกำหนดการพิสูจน์ทราบตัวตนและถ่ายโอนคีย์เพื่อใช้ในการ
ทำการเข้ารหัสข้อมูลเรียกว่า SSL Handshake Protocol


• SSL Handshake protocol การทำงานของโพรโตคอล SSL Handshake เพื่อให้ไคลเอนต์และเซิร์ฟเวอร์
กำหนดค่าต่างๆที่จำเป็นใน SSL connection เช่น เวอร์ชันที่ใช้ อัลกอริทึมของการเข้ารหัส และค่าต่างๆ
ในการทำการพิสูจน์ทราบตัวตนของ ไคลเอนต์และเซิร์ฟเวอร์และพับลิกคีย์ในการทำการเข้ารหัสข้อมูลเพื่อ
กำหนดการใช้ซีเคร็ทร่วมกัน (shared secret) ในการทำงานนี้เมสเสจทั้งหมดจะถูกส่งต่อไปยัง SSL record

layer เพื่อห่อหุ่ม (encapsulated) ในข้อความพิเศษของ SSL โดยที่ค่าต่างๆที่กำหนดได้แก่

34.5. ความปลอดภัยในอินเทอร์เน็ต (INTERNET SECURITY) 285



























book)







รูปที่ 34.9: เปรียบเทียบการทำงานเมื่อไม่มีและมีการใช้งานเซสชันของ SSL
(partial

– Session identifier: เป็นลำดับของไบต์ที่สุ่มเลือก (arbitrary byte sequence) โดยเซิร์ฟเวอร์ เพื่อ
ใช้ในการระบุว่าเป็นเซสชันเดิม (resume) หรือเซสชันใหม่

– Peer certificate: ใบรับรอง (certificate) ของเพียร์ โดยฟิลด์นี้สามารถที่จะมีหรือไม่มีก็ได้
only
– Compression Method: อัลกอริทึมที่ใช้ในการบีบอัดข้อมูล (compression) ข้อมูลก่อนที่จะ
ทำการเข้ารหัสข้อมูล
– Cipher spec: กำหนดอัลกอริทึมที่จะใช้ในการทำเข้ารหัส (เช่น DES) หรือ MAC อัลกอริทึม (เช่น
KKU
MD5 หรือ SHA) นอกจากนี้ยังกำหนด ค่าที่ใช้ในการเข้ารหัส เช่นขนาดของแฮซ
– Mater secret: 48 ไบต์ที่เป็นความลับใช้ร่วมกันระหว่างไคลเอนต์และเซิร์ฟเวอร์

– Is resumable: เพื่อใช้กำหนดว่าเซสชันนี้สามารถที่จะใช้เพื่อเริ่มต้นคอนเน็คชันใหม่หรือไม่


หลังจากการทำ SSL Handshake เสร็จสิ้น จะทำให้ทั้งสองกำหนด master key เพื่อใช้ในการกำหนด
เซสชันคีย์ในการใช้ในการเข้ารหัสแบบซิมเมตริกคีย์ของข้อมูลในเซสชัน และใช้ในการสร้างเมสเสจไดเจ
สต์ ดังนั้นเมสเสจแรกที่จะได้รับการเข้ารหัสดังกล่าวจะมาจากเซิร์ฟเวอร์ หากไคลเอนต์สามารถที่จะตีความ
เมสเสจดังกล่าว หมายความว่า

– การจัดการด้านความเป็นส่วนตัว (privacy) เรียบร้อย เนื่องจากเมสเสจถูกเข้ารหัสด้วยซิมเมตริก
คีย์ เช่น DES

– การรับรองด้านความถูกต้อง(integrity)ของเมสเสจเรียบร้อยเนื่องจากมีMessageAuthenntication
Code (MAC)

– เซิร์ฟเวอร์ได้รับการการพิสูจน์ทราบตัวตน (authenticate) เนื่องจากสามารถที่จะหา master key
จาก pre-mater key

• SSL record protocol จากการที่ได้กำหนด master key ทั้งไคลเอนต์และเซิร์ฟเวอร์สามารถที่จะใช้

masterkeyนั้นเพื่อเข้ารหัสข้อมูลของแอพพลิเคชันทั้งนี้SSLprotocolจะกำหนดรูปแบบของข้อความโดย

286 บทที่ 34. ความปลอดภัยของเน็ตเวิร์ค



ทั่วไปแล้ว จะรวมถึงการใช้เมสเสจไดเจสต์ เพื่อให้แน่ใจว่าเมสเสจไม่มีการเปลี่ยนแปลง และเมสเสจทั้งหมด
ถูกเข้ารหัสโดยใช้ซิมเมตริกไซเฟอร์ โดยทั่วไปจะเป็นอัลกอริทึม RC2 หรือ RC4 แม้จะสามารถใช้ DES,
triple-DES และ IDEA ได้ตามข้อกำหนดของโพรโตคอล



34.5.3 ความปลอดภัยใน Network Layer


IP ถือได้ว่าเป็นโพรโตคอลที่สำคัญใน Network Layer ดังนั้น โพรโตคอลที่สำคัญในเลเยอร์นี้ ได้แก่ IP Security
หรือ IPSec เป็นโพรโตคอลที่ถูกออกแบบสำหรับการใช้งานกับ IPv4 และ IPv6 ในการใช้กับ IPv4 ส่วนของเฮดเดอร์
ใน IPsec จะถูกแทรกอยู่หลังเฮดเดอร์ของ IPv4 ก่อนในส่วนของเฮดเดอร์ถัดไป หากเป็นใน IPv6 เนื่องจากได้เผื่อ
ส่วนของที่เป็นส่วนต่อขยายของเฮดเดอร์ (Header extension) ไว้แล้วทำให้สามารถที่จะใช้ในส่วนนี้ได้เลย
IPSec ประกอบด้วยส่วนสำคัญสองส่วน ส่วนแรกคือรูปแบบของแพกเกต (packet format) และข้อกำหนด
ที่เกี่ยวเพื่อกำหนดความลับ และความถูกต้องสำหรับข้อมูล ส่วนถัดมาคือส่วนของการบริหารจัดการคีย์ (key
book)
management) เรียกว่า Internet Key Exchange (IKE) [16] หรือส่วนปรับปรุง IKEv2 [25, 6]

การทำงานของ IPSec อยู่บนพื้นฐานของโพรโตคอลสองโพรโตคอล ได้แก่ ส่วนที่ใช้กับเฮดเดอร์ของโพรโตคอล
เพื่อการพิสูจน์ทราบตัวตนเรียกว่า Authentication Header (AH) และส่วนที่เป็นการทำงานร่วมกันของการทำงาน
ของโปรโคตอล encryption/authentication ออกแบบไว้ในส่วนของแพกเกตเรียกว่า Encapsulating Secure
(partial
Payload (ESP) โดยที่โพรโตคอลทั้งสองอาจใช้งานแยกจากกันหรือทำงานร่วมกัน โดยการทำงานของโพรโตคอล
ทั้งสองสามารถสนับสนุนการทำงานเช่น การทำกลไกการควบคุมการเข้าถึง (Access Control), การพิสูจน์ความถูก

ต้องของข้อมูลต้นฉบับ (Data origin authentication) และจำกัดการไหลของทราฟฟิกที่เป็นความลับ (Limited
traffic flow confidentiality) เป็นต้น

only
Security Associations

Security Associations (SA) ถือได้ว่าเป็นส่วนประกอบพื้นฐานของ IPsec ซึ่ง SA ถือเป็นคอนเน็คชันแบบทาง

เดียว (simplex) ระหว่างปลายทางและมีการระบุถึงความปลอดภัยที่ทำงานด้วย ทำให้หากความปลอดภัยต้องการ
KKU
ในลักษณะที่เป็นทั้งไปและกลับ เราต้องมี SA ทั้งขาไปและกลับ ข้อมูลที่ใช้ในการะบุถึงความปลอดภัย จะถูกใส่ไว้
แพกเกตเพื่อส่งไปในคอนเน็คชันและข้อมูลดังกล่าวจะถูกใช้เพื่อตรวจสอบถึงคีย์ที่ใช้เช่นความยาว และข้อมูลอื่นที่
เกี่ยวข้อง เมื่อได้รับแพกเกตดังกล่าวแล้ว คุณลักษณะทั่วไปของ SA สามารถสรุปได้ดังนี้


• ระบุถึงอัลกอริทึมของการเข้ารหัสและการพิสูจน์ทราบตัวตนที่ใช้

• ระบุถึงคีย์ที่ใช้ในการสื่อสาร

• พารามิเตอร์ต่างๆที่เกี่ยวข้องกับอัลกอริทึมที่ใช้


• ช่วงเวลาของคีย์ที่สามารถใช้ได้

• ความสำคัญของข้อมูลที่ถูกเก็บรักษา



Tunnel and Transport Mode

การทำงานของ IPsec สามารถทำได้สองโหมดคือ ทันเนลลิ่งโหมด และ ทรานสปอร์ตโหมด

• ทรานสปอร์ตโหมด : ใช้ในการป้องกันข้อมูลที่มาจาก Transport Layer และเป็นการใช้สำหรับโนดปลาย

ทาง (end-nodes) การใช้งานของทรานสปอร์ตโหมดเป็นการป้องกันในลักษณะต้นทางไปยังปลายทาง

34.5. ความปลอดภัยในอินเทอร์เน็ต (INTERNET SECURITY) 287



(end-to-end) ภาคส่งจะทำการพิสูจน์ทราบตัวตนหรืออาจพร้อมทั้งเข้ารหัสข้อมูล ภาครับจะการพิสูจน์
ทราบตัวตนและอาจต้องถอดรหัสแพกเกตที่ได้รับ ในกรณีนี้เฮดเดอร์ของ IPsec จะถูกใส่เข้าไปหลังจาก
เฮดเดอร์ของ IP

• ทันเนลลิ่งโหมด : แพกเกตของ IP ทั้งหมด ตั้งแต่เฮดเดอร์ จะถูกห่อหุ่ม (encapsulated) ด้วยแพกเกต

ใหม่ พร้อมทั้งเฮดเดอร์ของ IP ใหม่ การใช้งานของโหมดนี้จะมีประโยชน์เมื่อปลายทางของทันเนล (tunnel)
หรืออุโมงค์ส่งข้อมูลเสมือนจริง ไม่ใช่ภาครับของแพกเกตโดยตรง


Authentication Header

การใช้งานของ Authentication Header เพื่อสนับสนุนความถูกต้องของข้อมูล (data integrity) และ การพิสูจน์
ทราบตัวตนของ IP แพกเกต การทำงานของการตรวจสอบความถูกต้องของข้อมูลนี้ เพื่อให้แน่ใจว่า ไม่มีแพก

เกตใดที่ถูกแก้ไขสามารถหลุดรอดการตรวจจับไปได้ระหว่างสื่อสาร การทำงานของการพิสูจน์ทราบตัวตนทำให้
book)
ระบบปลายทาง (end system) รวมถึงอุปกรณ์เน็ตเวิร์คสามารถที่จะการพิสูจน์ทราบแอพพลิเคชันของผู้ใช้และ
กลั่นกรอง (filter) ทราฟฟิก นอกจากนี้ยังป้องการโจมตีด้วยการปลอมแปลงแอดเดรส (address spoofing attack)
ในอินเทอร์เน็ตและป้องกันการโจมตีแบบทวนข้อความซํ้า (replay attack) รูปที่ 34.10 แสดงฟิลด์ของ AH โดยที่
แต่ละฟิลด์มีรายละเอียดดังนี้
(partial

Next Header Payload lenght Reserve


Security Parameter Index (SPI)


only
Sequence number

Authentication data (variable length)

KKU รูปที่ 34.10: IP Sec Authentication Header







• Next Header (8 บิต) :ใช้ในการระบุถึงเฮดเดอร์ที่ตามมา

• Payload Length (8 บิต) : ขนาดของ Authentication Header ขนาดเป็นจำนวนทวีคูณของ 4 ไบต์ ลบ
ด้วย 2 เช่นการใช้ authentication data ที่ 96 บิต จะเท่ากับ 3 ชุดของ 4 ไบต์ เมื่อรวมกับอีก 3 ชุดของ

เฮดเดอร์ จะทำให้ได้ ความยาวของ payload เป็น 6-2 = 4

• Reserve (16 บิต): เผื่อไว้ใช้ในอนาคต

• Security Parameter Index (SPI) (32 บิต): เพื่อใช้ระบุ Security Association (SA) สำหรับทราฟฟิกที่

แพกเกตนั้นทำงานร่วม

• Sequence Number (32 บิต): จะถูกเพิ่มขึ้นที่ละหนึ่งในแต่ละแพกเกตเพื่อป้องกันการการโจมตีแบบทวน
ข้อความซํ้า

• Authentication Data (ไม่ระบุ): ใช้ในการจัดเก็บค่าเรียกว่า integrity check value (ICV) ดังนั้น ICV เป็น

ค่า authentication data ของแพกเกต ถูกสร้างขึ้นจาก message authentication code หรือ message

288 บทที่ 34. ความปลอดภัยของเน็ตเวิร์ค



authentication checksum (MAC) ใช้อัลกอริทึมที่กำหนดโดย SA เช่น หาก MAC ถูกสร้างโดยแฮซฟังก์ชัน
เราจะเรียกว่า hash MAC หรือ HMAC โดยที่ความยาวจะสามารถปรับเปลี่ยนได้แต่ต้องเป็นจำนวนเท่าของ
32 บิต ใน RFC 2402 กำหนดให้อย่างน้อย HMAC-MD5 หรือ HMAC-SHA-1 จะต้องได้รับการพัฒนาในทุก
แอพพลิเคชันของ IPSec


การทำงานของอัลกอริทึม MAC authentication ทำโดยการนำค่าข้อความและคีย์ เข้ารหัสร่วมกันเพื่อให้ได้
เอาท์พุตที่มีค่าแน่นอนหนึ่งค่า ซึ่งเสมือนแฮซฟังก์ชันเรียกว่า message digest (MD) หรือ fingerprint ข้อแตกต่าง

คือ แฮซฟังก์ชันเป็นการใช้ MAC ต้องใช้ cryptographic key เพื่อให้ได้เมสเสจไดเจสต์ โดยทั่วไปแล้ว MAC จะ
ตรวจสอบความสมเหตุสมผล (validate) ข้อมูลระหว่างผู้รับและผู้ส่งที่ใช้ซีเคร็ทคีย์ร่วมกัน
การทำงานของโพรโตคอล AH สามารถทำได้ทั้งในทรานสปอร์ตโหมดและทันเนลลิ่งโหมด การทำงานใน
ทรานสปอร์ตโหมดจะเป็นการทำงานในลักษณะที่เป็นการเชื่อมต่อโดยตรงระหว่างเซิร์ฟเวอร์และไคลเอนต์ ซึ่ง
เครื่องไคลเอนต์นี้อาจอยู่ในเน็ตเวิร์คเดียวกันหรือไม่ก็ได้ การทำการพิสูจน์ทราบตัวตนของทรานสปอร์ตโหมดนี้
book)
ทำโดยการใช้คีย์ที่เป็นความลับร่วมกัน ส่วนในทันเนลลิ่งโหมด SA การทำงานของเครื่องสเตชั่นระยะไกล (remote
workstation) จะพิสูจน์ตัวตนผ่านไฟร์วอลล์ เพื่อที่จะสื่อสารไปยังเซิร์ฟเวอร์ การทำงานในทันเนลลิ่งโหมดนี้จะมี

ประสิทธิภาพมากขึ้น หากทำงานร่วมกับโพรโตคอลของ Encapsulating Security Payload (ESP)

(partial
Encapsulating Security Payload (ESP)

การทำงานของการพิสูจน์ทราบตัวตน (authentication) ช่วยทำให้เราสามารถป้องกันแพกเกตของ IP แต่อย่างไร
ก็ตามแต่มิได้ป้องกันการดักฟัง (eavesdropping) ระหว่างที่แพกเกตถูกส่งในเน็ตเวิร์ค ซึ่งอาจมีการส่งผ่านไปใน

หลายเน็ตเวิร์ค ถือว่าเป็นการเปิดช่องให้ระหว่างทางสามารถที่จะดักดูข้อมูลได้
Encapsulating Security Payload (ESP) ถูกออกแบบเพื่อสนับสนุนการรักษาความลับ (confidentiality)
ของเมสเสจที่ส่ง โดยข้อมูลที่ถูกเข้ารหัสจะถูกส่งในแพกเกตของ IP ซึ่ง ESP จะประกอบไปด้วยฟิลด์ต่างๆ ตามรูปที่
34.11 ดังนี้ only

KKU Security Parameter Index (SPI)



Sequence number






Payload Data (variable)





Padding (0-255 bytes)


Pad Length Next Header


Authentication data (variable length)




รูปที่ 34.11: IP Sec ESP Format

34.6. ไฟร์วอลล์ (FIREWALL) 289



• Security Parameter Index (SPI): เหมือนกับ SPI ใน AH เพื่อใช้ในการระบุ Security Association (SA)
สำหรับทราฟฟิกที่แพกเกตนั้นทำงานร่วม

• Sequence Number (32 บิต): ทำงานเช่นเดียวกับ AH


• Payload Data: ไม่ได้ระบุจำนวนที่แน่นอน เพื่อใช้ในการบ่งถึงความยาวของส่วนบรรจุข้อมูล (payload)
ซึ่งเป็นไซเฟอร์เท็กซ์สำหรับส่วนของการเข้ารหัสข้อมูล ในส่วนนี้ถือว่าเป็นส่วนที่ต้องมี ไม่ว่า SA ต้องการการ
รักษาความลับหรือไม่


• Padding: เป็นส่วนขนาด 0 -255 ไบต์ เพื่อใช้งานกับการทำการเข้ารหัสข้อมูลของบางอัลกอริทึมที่ต้องการ
เพลนเท็กซ์ที่เป็นทวีคูณของ จำนวนไบต์ เช่น ทวีคูณของ 4 ไบต์ (4, 8, 12, ... ) เป็นต้น

• Pad length จำนวน 8 บิตเพื่อใช้ในการระบุถึงจำนวนไบต์ Padding
book)
• Next Header (8 บิต) :ใช้ในการระบุถึงประเภทของข้อมูลที่ถูกห่อหุ่ม (encapsulated) ในส่วนบรรจุข้อมูล


• Authentication Data (ไม่แน่นอน): ใช้ในการจัดเก็บค่าเรียกว่า integrity check value (ICV) ซึ่งคำนวณ
จากความยาวของแพกเกต ESP ลบด้วยข้อมูลของการพิสูจน์ทราบตัวตน (authentication) ซึ่งความยาว
(partial
จะต้องเป็นทวีคูณของ 32 บิต

การทำงานของ ESP ใน IP Sec จะทำงานคล้ายกับของโพรโตคอล AH ซึ่งสามารถทำได้สองโหมดเช่นกัน คือ
ทรานสปอร์ตโหมดและทันเนลลิ่งโหมด ในทรานสปอร์ตโหมดการทำงานของ ESP จะสนับสนุนการทำงานของการ
เข้ารหัสและ การพิสูจน์ทราบตัวตนของ SA สำหรับโฮสต์ที่เชื่อมต่อกันโดยตรง ส่วนของทันเนลลิ่งโหมดสามารถที่จะ

ใช้ในการติดตั้ง Virtual Private Network (VPN) ในที่นี้โฮสต์ที่อยู่ภายในเน็ตเวิร์คใช้อินเทอร์เน็ตเพื่อสื่อสารข้อมูล
only
แต่มิได้เกี่ยวข้องกับโฮสต์อื่นที่เป็น internet-based ในกรณีนี้เฮดเดอร์ของ ESP จะบรรจุในแพกเกตและแพกเกต
ของ IP พร้อมทั้งเฮดเดอร์จะถูกเข้ารหัส การทำเช่นนี้จะทำให้สามารถป้องกันการแอบวิเคราะห์สภาวะทราฟฟิกได้
ในขณะที่ผู้บุกรุกจะพยายามที่จะค้นหารูปแบบของทราฟฟิกระหว่างที่สื่อสาร
KKU


34.6 ไฟร์วอลล์ (Firewall)



ไฟร์วอลล์เป็นการรักษาความปลอดภัยเน็ตเวิร์ค โดยอาจเป็นอุปกรณ์ที่ถูกพัฒนาขึ้นหรืออาจเป็นเพียงซอฟต์แวร์
การทำงานของไฟร์วอลล์ถือเป็นส่วนสำคัญเพื่อตรวจสอบทราฟฟิกที่เข้าหรือออกจากเน็ตเวิร์ค ซึ่งการทำงานของ
ไฟร์วอลล์อาจอนุญาตให้ทราฟฟิกบางประเภทผ่านไปได้ ในขณะอีกอาจกำจัดทราฟฟิกที่มีลักษณะผิดปกติตามที่
ระบุไว้ เราสามารถแบ่งการทำงานของไฟร์วอลล์ได้ดังนี้



34.6.1 Packet Filtering Firewall


การทำงานของไฟร์วอลล์แบบ Packet filtering ถือเป็นยุคแรกของไฟร์วอลล์ ซึ่งการทำงานค่อนข้างจะตรงไปตรง
มา และไม่ยุ่งยากเมื่อเทียบกับการทำงานของไฟร์วอลล์แบบอื่นๆ แต่ก็มิได้หมายความว่า การทำงานของไฟร์วอลล์
นี้ไม่มีประสิทธิภาพ เพียงแต่ว่าการทำงานของไฟร์วอลล์ประเภทนี้อยู่บนพื้นฐานการทำงานที่ง่าย สะดวกต่อการ
กำหนดการทำงาน (configure)
การทำงานของ Packet filtering อาศัยการตรวจสอบจากเฮดเดอร์ของ IP หรือของ TCP เช่น การตรวจสอบ
IP address ของต้นทาง ปลายทาง หรือหมายเลขพอร์ตเป็นต้น ซึ่งหากการตรวจสอบพบตามที่ได้กำหนดไว้ และแพ

กเกตนั้นจะได้รับอนุญาต แพกเกตจะถูกส่งต่อไป แต่หากไม่ใช่ที่กำหนดไว้ แพกเกตจะถูกกำจัดทิ้งไป

290 บทที่ 34. ความปลอดภัยของเน็ตเวิร์ค



จะเห็นว่าหลักการทำงานของ Packet filtering ค่อนข้างง่าย แต่หากพิจารณาให้ดี จะพบว่าการจะกำหนดการ
ตรวจสอบที่ต้องการ ต้องอาศัยความเข้าใจในเฮดเดอร์ของแพกเกตเป็นอย่างดี เพื่อระบุค่าที่ต้องการตรวจสอบอย่าง
ชัดเจน ซึ่งหากการกำหนดเป็นไปอย่างซับซ้อน จะทำให้ข้อกำหนดที่เขียนขึ้นไม่กระชับ ทำให้ยากแก่การทดสอบ
จัดการและเข้าใจ





34.6.2 พร็อกซี (Proxy)


พร็อกซีเปรียบเสมือนตัวกลางระหว่างการเชื่อมต่อของไคลเอนต์และเซิร์ฟเวอร์ โฮสต์ต้องการที่จะร้องขอข้อมูลไป
ยังเว็บเซิร์ฟเวอร์ แทนที่การร้องขอนี้จะไปยังเซิร์ฟเวอร์ที่ต้องการโดยตรง การร้องขอจะถูกส่งไปยังพร็อกซีเซิร์ฟเวอร์
แทน ดังนั้นจึงเป็นหน้าที่ของพร็อกซีในการตัดสินใจ เพื่อตอบรับหรือปฎิเสธการร้องขอ ทำให้การเชื่อมต่อที่เกิดขึ้น

เป็นการเชื่อมต่อไปยังพร็อกซี แทนที่จะเป็นตัวเซิร์ฟเวอร์ที่ต้องการโดยตรง การทำเช่นนี้ถือเป็นการลดความเสี่ยงที่
book)
จะถูกโจมตีจากผู้ไม่หวังดีได้
จากการทำงานของพร็อกซีสามารถแบ่งพร็อกซีได้เป็นสองประเภท โดยประเภทแรกได้แก่ application proxy

เป็นการกำหนดพร็อกซีต่อแอพพลิเคชันเช่น HTTP พร็อกซีหรือ FTP พร็อกซี อย่างไรก็ตามเพื่อความสะดวก เรา
อาจติดตั้งพร็อกซีเซิร์ฟเวอร์เพื่อรองรับการทำงาน ของทั้ง HTTP พร็อกซีหรือ FTP พร็อกซีภายในเครื่องเซิร์ฟเวอร์
เดียวกัน และประเภทที่สองได้แก่ circuit­level proxy โดยพร็อกซีนี้จะทำหน้าที่เป็นพร็อกซีของ TCP/IP ทราฟฟิก
ที่เกิดขึ้น ทำให้แทนที่จะเป็นเพียงการทำงานพร็อกซีต่อแอพพลิเคชันแต่จะทำหน้าที่เสมือนตัวกลางของทราฟฟิก
ทั้งหมดใน Transport Layer (partial

ข้อเสียของการใช้พร็อกซีคือการทำงานของไคลเอนต์แอพพลิเคชันต้องรองรับการทำงานร่วมกับพร็อกซี
only
เซิร์ฟเวอร์ ปัจจุบันแอพพลิเคชันที่รองรับพร็อกซีที่นิยมได้แก่ HTTP, HTTPS (SSL) และ FTP เท่านั้น และเนื่องจาก
การสื่อสารต้องส่งผ่านพร็อกซี ทำให้เกิดเวลาหน่วงขึ้นเพื่อตรวจสอบว่ามีข้อมูลอยู่ในแคซ (cache) ของพร็อกซีหรือ
ไม่ ก่อนที่จะมีส่งการร้องขอไปยังเซิร์ฟเวอร์ ซึ่งเมื่อได้รับการตอบกลับจะคัดลอกข้อมูลไว้ เพื่อร้องรับการร้องขอภาย
หลัง ทำให้หากมีการร้องขอจะทำให้การตอบสนองเร็วขึ้น อย่างไรก็ตามเวลาหน่วงที่เกิดขึ้น จะขึ้นอยู่กับขนาดของ
KKU
พร็อกซี ความเร็วของการเข้าถึงข้อมูล จำนวนการร้องขอต่อวินาที ดังนั้นเวลาหน่วงอาจค่อนข้างสูงได้ หากใช้กับ
เน็ตเวิร์คที่มีการใช้งานที่มาก




34.6.3 ไฟร์วอลล์ใน Application Layer (Application Layer Firewall)



จากการที่ได้กล่าวมาแล้ว การทำงานของไฟร์วอลล์แบบ Packet filtering จะตรวจสอบจากเฮดเดอร์ของ IP, TCP
หรือ UDP แต่ในการทำงานของไฟร์วอลล์แบบ Application Layer จะตรวจสอบข้อมูลที่อยู่ในเฮดเดอร์นั้นๆ เช่น
การร้องขอไปยังเว็บเซิร์ฟเวอร์ การทำงานของ Packet filtering จะตรวจสอบ IP address ว่าเป็นของตนหรือไม่
พร้อมทั้งตรวจสอบหมายเลขของพอร์ตถูกต้องหรือไม่ (ทั่วไปเป็นหมายเลข 80) หากทุกอย่างถูกต้อง แพกเกตจะถูก
ส่งต่อไปยังเว็บเซิร์ฟเวอร์ โดยไม่สนใจว่าข้อมูลภายในเป็นอย่างไร

การทำงานในไฟร์วอลล์แบบ Application Layer จะตรวจสอบไปยังข้อมูลที่ส่งมา เพื่อพิจารณาว่าข้อมูลที่ส่ง
มานั้น มีรูปแบบการร้องขอที่ถูกต้อง เพื่อไปยังฐานข้อมูลที่ต้องการ มิฉะนั้น แพกเกตนั้นจะถูกกำจัดไป ทำให้การ
ทำงานของไฟร์วอลล์แบบ Application Layer ต้องทราบถึงรูปแบบที่ถูกต้องของการร้องขอ ซึ่งเป็นข้อจำกัดหนึ่ง
ของการทำงานของไฟร์วอลล์นี้ ดังนั้น เราจึงอาจจำเป็นในการใช้งานไฟร์วอลล์ร่วมกัน เช่นการใช้ไฟร์วอลล์แบบ
Application Layer เพื่อตรวจสอบหาไวรัส หรือความผิดปกติในอีเมล์ และใช้ไฟร์วอลล์แบบ Packet filtering เพื่อ

ตรวจสอบทราฟฟิกที่เกิดขึ้น

34.7. VIRTUAL PRIVATE NETWORKS 291



34.6.4 Stateful Inspection Firewall


การทำงานของไฟร์วอลล์แบบ Stateful inspection สามารถรักษาความปลอดภัยได้ดีกว่า ทั้งไฟร์วอลล์แบบ
Packet filter และ Application Layer การทำงานของไฟร์วอลล์นี้จะรักษาสถานะการสื่อสาร (state) ของการ
เชื่อมต่อ เพื่อตรวจสอบความถูกต้องว่ามีการเชื่อมต่อนี้เกิดขึ้นจริงหรือไม่ เช่น ไฟร์วอลล์อาจได้รับ ACK จากโฮสต์
ที่ไม่เคยมีการสร้างการเชื่อมต่อ (connection) มาก่อน จะทำให้ทราบทันทีว่าเป็นแพกเกตที่ไม่ต้องการ การใช้งาน

ไฟร์วอลล์แบบ Stateful inspection นี้ทำให้เน็ตเวิร์คมีความปลอดภัยและง่ายต่อการติดตั้งมากขึ้น



34.7 Virtual Private Networks



จากความต้องการในการเชื่อมต่อระบบเพื่อใช้ในการสื่อสารกับอินเทอร์เน็ตการทำงานของVirtualPrivateNetworks
book)
(VPNs) ถือเป็นด่านหน้าที่สำคัญ เพื่อป้องกันการเข้าโจมตีของผู้ไม่ประสงค์ดีที่อาจเกิดขึ้นอย่างหลีกเลี่ยงไม่ได้ ทำให้
VPN ถือเป็นส่วนสำคัญในการรักษาความปลอดภัยของเน็ตเวิร์ค เมื่อต้องการเชื่อมระบบสู่โลกภายนอก VPN ทำให้

ผู้ใช้มั่นใจในความปลอดภัยของช่องทางการสื่อสารระหว่างเน็ตเวิร์คในองค์กรกับสื่อสารผ่านอินเทอร์เน็ตนอกจากนี้
การสร้างช่องทางการสื่อสาร VPN ยังค่อนข้างง่ายและมีความปลอดภัยสูง รวมไปถึงไม่มีค่าใช้จ่ายที่สูง ทำให้องค์กร
(partial
หลายองค์การเลือกใช้ VPN สำหรับการรักษาความปลอดภัยแทนที่จะใช้วิธีอื่นเพื่อรักษาความปลอดภัย ซึ่งการใช้
งานของ VPN นี้ เพื่อเชื่อมเซิร์ฟเวอร์กลางขององค์กรผ่านอินเทอร์เน็ต (backbone intenet) และหากองค์กรมี
การกระจายไปยังจุดต่างๆ ยังสามารถที่จะเชื่อมต่อผ่าน VPN ระหว่างจุดเหล่านั้น รูปที่ 34.12 แสดงการเชื่อมต่อดัง

กล่าว VPN สร้าง tunnel เพื่อเชื่อมต่อและเข้ารหัสในการส่งข้อมูลผ่านเน็ตเวิร์ค

only





KKU











รูปที่ 34.12: การเชื่อมต่อ VPN ขององค์กรระหว่างจุดต่างๆ



โดยทั่วไปการออก VPN สามารถแยกออกได้เป็นประเภทใหญ่สองประเภทได้แก่


• Remote access VPN การทำงานของ Remote accesss VPN หรือการใช้งาน VPN ระยะไกล ผู้ใช้
จะเชื่อมต่อเข้ายังเน็ตเวิร์คผ่านอินเทอร์เน็ต การเชื่อมนี้มีความปลอดภัยที่ค่อนข้างตํ่า เนื่องจากการส่งผ่าน
ข้อมูลอาจถูกส่งผ่านผู้ให้บริการอินเทอร์เน็ต โดยปราศจาการเข้ารหัสใดๆ


• LAN­to­LAN หรือ Site­to­siteVPNการทำงานแบบLAN-to-LANเป็นการเชื่อมระหว่างเน็ตเวิร์คภายใน
ของตนเอง โดยใช้การเชื่อมต่อโดยตรงจากจุดหนึ่งไปยังอีกจุดหนึ่ง ทำให้เสมือนเป็นเน็ตเวิร์คเดียวกัน ใน
ขณะที่ Site-to-site เป็นการเชื่อมต่อโดยอาจมีความต้องการแลกเปลี่ยนข้อมูลจำนวนมาก เพื่อให้มีความ

ปลอดภัย การใช้งาน IP-Sec และ SSL อาจถูกนำมาร่วมใช้งาน


Click to View FlipBook Version