More Related Content
Similar to บทที่+1 3.. (20)
บทที่+1 3..
- 1. บทที่1
บทนํา
1.1 ความเปนมา
ปจจุบันเทคโนโลยีดานระบบคอมพิวเตอรและเครือขายและอินเตอรเน็ต มีความล้ําหนาไป
เปนอยางมาก ทั้งนี้เพื่อตอบสนองความตองการของหนวยงานองคกรตางๆ จึงมีการนําเทคโนโลยีเขา
มาใชในชีวิตประจําวันอยางแพรหลาย เพราะมีความสอดคลองกันกับผูคนในปจจุบันหรือที่เรียกวา
ยุคไซเบอรโดยการประยุกตนําคอมพิวเตอรมามีสวนในการประกอบธุรกิจทั้งในหลายดาน ทั้งในระบบ
เศรษฐกิจ การศึกษาและใชเพื่อความบันเทิงเชนการติดตอสื่อสาร Instant Messenger เชน MSN, E-
Mail, Video Conference System และ Social Network ซึ่งในการนั้นจําเปนตองมีการเชื่อมตอ
กับระบบเครือขายอินเตอรเน็ตโดยทั้งสิ้น และเห็นไดวาในโลกแหงยุคโลกาภิวัฒนนี้เทคโนโลยีมีความ
จําเปนอยางยิ่งการติดตอสื่อสารระหวางกัน ไมวาจะอยูแหงไหน ที่ใด สามารถแลกเปลียนความคิด
่
รวมทั้ง คนควาในเรื่องที่สนใจได เมื่อความล้ําสมัยมีประโยชนมากมาย จึงมีขอเสียในดานของ
เทคโนโลยีคอมพิวเตอรและเครือขายอินเตอรเน็ต นําไปสูการใชงานอยางผิดประเภทผิดรูปแบบและ
สรางความเดือดรอนใหแกผูอนโดยไมคํานึงถึง ผูใดเปนสําคัญโดยเขามากอกวนระบบเครือขายของ
ื่
องคกร หรือแมกระทั่งอาจจะเปนทั้งบุคลากรภายในขององคกร ที่ใชงานโดยรูเทาไมถึงการณ และ
กอใหเกิดความเสี่ยงที่จะเปดชองโหวใหผูประสงครายเขามาโจมตี และที่แยไปกวานั้นยังกลายเปน
ชองทางในการกอกวนระบบจาก Virus หรือ Trojan ซึ่งจะกอใหเกิดผลเสีย และกระทบไปยังระบบ
เครือขายภายในองคกรและเครือขายใหญในระบบไดแตระบบที่สรางขึ้นดวยระบบอินเตอรเน็ตนั้น
สามารถตรวจสอบ ไอพีและหมายเลขเฉพาะที่ใชอางถึงอุปกรณที่ตอกับเครือขายได และการเขา
เว็บไซตที่มีความเสี่ยงตอการทําใหเครือขาย มีสภาวะเสี่ยงซึ่งทําใหมีความเสถียรลดนอยลง จึงเปน
ที่มาของโปรแกรมดักจับและตรวจสอบขอมูลแพ็คเกจ (Development of Program Packet
Sniffer with Python) เพื่อปองกันระบบความเสียหายของเครื่องคอมพิวเตอรและเครือขายภายใน
องคกร รวมไปถึงสามารถนําขอมูลจากการตรวจจับการกอกวนระบบเครือขายขององคกรนั้นๆ มา
เปนหลักฐาน เพื่อดําเนินคดีตามกฎหมายกับบุคคลไมประสงคดีกับองคกร ตามที่พระราชบัญญัติวา
ดวยการกระทําความผิดเกี่ยวกับคอมพิวเตอร พ.ศ. 2550 มีผลบังคับใชตงแตวันที่ 22 สิงหาคม 2550
ั้
ที่วาดวยมีผูกระทําดวยประการใด ๆ ใหระบบ คอมพิวเตอรไมสามารถทํางานตามคําสั่งหรือทําให
การทํางานผิดพลาด หรือใชวิธีการใด ๆ เขาลวงรูขอมูล แกไข หรือทําลายขอมูลของบุคคลอื่นใน
ระบบคอมพิวเตอรโดยมิชอบถือเปนความผิด
- 2. 2
1.2 วัตถุประสงค
1.2.1เพื่อศึกษาและพัฒนาการปรับแตงคาของการตรวจจับไดงาย และเอื้อประโยชนใน
การศึกษาพัฒนาตอ
1.2.2 เพือใหมีการนํา ไลบราลี libpcap มาเขียนใชงานกับ โปรแกรม Python อยาง
่
แพรหลาย
1.3 ประโยชนที่คาดวาจะไดรับ
1.3.1 เปนประโยชนตอบุคคลทั่วไปที่ตองการนําโปรแกรมไปใชเพื่อตรวจสอบความ
ปลอดภัยของคอมพิวเตอรหรือระบบเครือขายคอมพิวเตอรใหมีความนาเชื่อถือ มีความถูกตอง และ
ความพรอมใชงาน
1.3.2ไลบราลี libpcap ที่เขียนดวยภาษา Python มีการเก็บ Logging สามารถนําไปใช
อางอิงกับพระราชบัญญัติวาดวยการกระทําผิดทางคอมพิวเตอร ป 2550 หากมีผูบุกรุกหรือผูไมหวังดี
เขามากระทําการที่ไมประสงคดีตอระบบเครือขาย
1.3.3การตรวจจับแพ็คเกจดวย libpcap สามารถนําไปใชอางอิง พระราชบัญญัติวาดวยการ
กระทําความผิดทางคอมพิวเตอร ป 2550 เพราะมีการจับแค Header, Content ของขอมูล
1.4 ขอบเขตของโครงงาน
1.4.1 ผูใชสามารถแยกประเภทการตรวจจับแพ็คเกจได
1.4.2 สรางสวนเชื่อมตอประสานกับผูใชในรูปแบบกราฟก (GUI) เพื่อความสะดวกในการใช
งานโปรแกรม Libpcap ดวย Python
1.4.3จัดทํารายงานเบื้องตนจากขอมูลของการตรวจจับเพื่อสามารถใชอางอิงได
1.4.4
1.5 ผลที่คาดวาจะไดรับ
1.5.1 การพัฒนาเพิ่มสวนตอประสานกับผูใชในรูปแบบกราฟก Graphic User Interface
(GUI)ของ libpcap ดวย python ใหใชงานไดงายขึ้นและมีระเบียบในการตรวจสอบการทํางานไดดี
ขึ้น
1.5.2 เกิดความปลอดภัยกับระบบคอมพิวเตอรและระบบเครือขายมากขึ้น สามารถปองกัน
และลดปญหาการถูกผูไมหวังดีละเมิดสิทธิสวนบุคคล และสรางความเสียหายตอระบบเครือขายหรือ
องคกร
- 3. 3
1.6 ระยะเวลาดําเนินงาน
ตารางที่ 1.1 ขั้นตอนการดําเนินงาน
ระยะเวลาดําเนนงาน
ิ สัปดาห
/ สัปดาห 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1.ศึกษาเทคโนโลยีและ
ระบบตางๆที่เกี่ยวของ
และจําเปน
2.กําหนดขอบเขตของ
โครงงาน
3.ออกแบบโครงสราง
ของโครงงาน
4.ออกแบบหนาตาของ
โปรแกรม
5.ทดลองการเขียน
โปรแกรม
6.ปรับปรุงขอผิดพลาด
ตางๆใหมีความถูกตอง
เหมาะสม
7.สรุปและจัดทําเอกสาร
ประกอบการทําโครงงาน
- 4. 4
บทที่ 2
หลักการและทฤษฎีที่เกี่ยวของ
2.1 กลไกการทํางานของการดักจับขอมูล
การดักจับขอมูลเปนรูปแบบของการตรวจสอบขอมูลบนเครือขายซึ่งมีความหมายทั้งดีและไม
ดี หากนําไปใชอยางถูกตองจะเปนการดูแลขอมูลในเครือขายไดอยางมีประสิทธิภาพ หากนําไปใช
อยางไมถูกตองจะเปนการโจรกรรมขอมูลทีมีความสําคัญตาง ๆ หรือใชในการสํารวจเปาหมายเพื่อ
่
ดําเนินการขโมยขอมูลตอไป
Sniffer เปนโปรแกรมประยุกตหรือฮารดแวรที่เฝาดูการติดตอสื่อสารผานภายในเครือขาย
โดยสามารถอานขอมูลตาง ๆ ไดตางกับเครื่องมือเฝาดูเน็ตเวิรคทั่วไปที่จะเฝาดูเพียงการติดตอสื่อสาร
ที่สงไปมากับเน็ตเวิรคอยางชัดแจงเทานั้น Sniffer จะใชเทคนิค เปลี่ยน network interface ใหอยูใน
promiscuous mode ซึ่งจะทําใหมันดักจับการสื่อสารทั้งหมดในเน็ตเวิรคทั้งหมดไมเพียงแตการ
สื่อสารที่มีปลายทางที่เครื่องนั้นเทานั้น
ในปจจุบันเมื่อมีการพัฒนาอุปกรณเครือขายจาก Hub เปน Switch ทําใหการแพรกระจาย
ขอมูลในเครือขายลดลง กลาวคือจากเดิมขอมูลของเครื่องคอมพิวเตอรภายในเครือขายทั้งหมดจะถูก
สงมายังเครื่องคอมพิวเตอรของเรา แตดวย network interface(การดแลน) ของเรานั้นทําการกรอง
ขอมูลเฉพาะของคอมพิวเตอรเครื่องเราเองเทานั้น ทําให Sniffer ที่ใชโหมด promiscuous mode
สามารถรับขอมูลทั้งหมด แตดวยการทํางานของ switch ที่สงขอมูลเฉพาะเครื่องคอมพิวเตอรนั้น ๆ
มายังปลายทางทําใหไมสามารถดักจับขอมูลทั้งหมดเหมือนเดิม นอกจากนี้ยังรวมถึงการเขารหัสใน
สวนตาง ๆ อาจมีผลใหขอมูลที่ดักจับนั้นไมสามารถอานไดโดยงาย
ทั้งนี้หากตองการดักจับขอมูลภายในเครือขายทั้งหมด เราจําเปนตองทําการดักจับขอมูลที่
Gateway ที่เปนจุดการสื่อสารไหลเขาออกเครือขาย ถึงจะสามารถดักจับขอมูลไดทั้งหมด นอกจากนี้
อุปกรณใหม ๆ ไดรองรับเทคนิค Port Mirroring เสียกอน (สําหรับ Cisco เรียกวา SPAN) ใครบางที่
ควรใชโปรแกรมวิเคราะหเครือขายหรือ Sniffer โปรแกรมประเภทนี้เหมาะสําหรับบุคคลตาง ๆ ที่
เกี่ยวของในวงการเครือขายไอทีดังนี้
- 5. 5
2.1.1 บริหารจัดการระบบ
2.1.2 วิศวกรระบบเครือขาย
2.1.3 วิศวกรผูดูแลระบบรักษาความปลอดภัยเครือขาย
2.1.4 ผูดูแลและปฏิบัติงานในระบบ (System Operator)
2.1.5 โปรแกรมเมอร
สวนขอดีของโปรแกรมมีดังนี้
2.1.6 Sniffer สามารถแปลงขอมูลขาวสารในรูปแบบของเลขไบนารีหรือฐาน 16 ไปเปน
รูปแบบที่สามารถอานและเขาใจไดโดยงาย
2.1.7 Sniffer จะชวยใหทานสามารถตรวจซอมหาจุดเสียตาง ๆ บนเครือขายไดดี
2.1.8 สามารถตรวจจับผูบุกรุกเขามาในเครือขายไดระดับหนึ่ง
2.1.9 สามารถบันทึก Traffic ของเครือขายไวเพื่อนํามาวิเคราะหตรวจสอบหารองรอยของ
ปญหาตาง ๆ
2.1.10 สามารถตรวจสอบสถานการณทํางานของแอพพลิเคชันตาง ๆ บนเครือขาย
2.1.11 สามารถตรวจสอบพบขอผิดพลาดของอุปกรณเครือขาย เชน การด LAN เปนตน
2.1.12 สามารถนํามาใชเพื่อการตรวจสอบประสิทธิภาพการทํางานของเครือขาย เชน
เครือขายทํางานชาลง
2.2 ลิปพีแคป(Libpcap)
libpcapเปน ไลบราลีสําหรับการดักจับ แพคเก็จ (packet) ที่ไดรับความนิยมอยางสูง ถูก
นําไปใชงานอยางแพรหลาย ในปจจุบันมีซอฟทแวรสําเร็จรูปมากมายที่พัฒนาดวย libpcapที่รจักกัน
ู
ดี ไดแก Ethereal, tcpdump, Snort NMap, Ntopฯลฯ จุดเดนของ libpcapคือ มีรูปแบบ API ที่
ใชงานงาย แตมีประสิทธิภาพสูง สามารถจับแพคเก็จไดลึกถึงระดับ ดาตาลิงคทั้งในโหมดปกติ และ
โหมด promiscuous อีกทั้งยังมีความสามารถในการเลือกจับเฉพาะบาง ชนิดของแพคเก็จผูใชที่สนใจ
และที่สําคัญ libpcap เปน open-source library ที่สามารถใหนํามาใชงานไดฟรี
- 6. 6
เปนชุดคําสั่งแบบ Opensource ที่ใหการเชื่อมตอทางเครือขายกับระบบตรวจจับแพคเก็จถูก
สรางในป 1994 โดย Mccane, Leres และ Jacobson นักวิจัยที่ Lawrence Berkeley National
National Laboratory จาก university of California ที่ Berkeley ซึ่งเปนสวนหนึ่งของงานวิจัย
สืบหาและเพิ่มประสิทธิภาพใหแก TCP และ internet gateway
Libpcap API ถูกออกแบบมาจากภาษา C และ C++ อยางไรก็ตามยังสามารถนําไปใชกับ
ภาษาตางๆไดเชน Perl, PHP, JAVA, C#, Ruby Libpcap ทํางานในระบบปฏิบัติการที่คลาย
Unix(Linux, Solaris, HPUX, BSD) ถาทํางานในระบบปฏิบัติการ Windows จะใชชื่อวา Winpcap
ปจจุบัน Libpcap ถูกจัดการโดย Tcpdump Group ขอมูลและ Source Code สามารถหาอานไดที่
TCPDUMP/LIBPCAP public repository และ WinPcap - Home สําหรับ windows
Wireshark โปรแกรมที่ทํางานโดยใช ไลบราลี พีแคป (librarypcap) เปนโปรแกรมชนิดหนึ่ง
ในจําพวก Packet sniffer ประกอบไปดวยสวนของ Packet Capture และ Packet Analyzer และ
มีสวนติดตอกับผูใชในรูปแบบกราฟกโดยโปรแกรมสามารถติดตั้งและใชงานไดหลายระบบปฏิบัติการ
เชน Linux, window ผูสนใจใชงานสามารถดาวนโหลดมาติดตั้งใชงานไดฟรี เพราะเปน Open
Source Software โดยสามารถโหลดไดที่ http://www.wireshark.org
ในปจจุบันโปรแกรมประเภทดักจับขอมูลมีหลายประเภท Wireshark เปนโปรแกรมดักจับ
ขอมูลที่มการใชงานโปรแกรมใหมีการรองรับการใชงานในลักษณะที่ยากตอการนําไปใชในทางไมดี จึง
ี
ไดรับความนิยมในการเผยแพรในวงกวางโดยเฉพาะอยางยิ่งในดานการเรียนการสอน
2.2.1 เมนูตาง ๆ ของโปรแกรม Wireshark
สําหรับเมนูของ Wiresharkสามารถแบงเปนหมวดตาง ๆ ไดดังนี้
จาก 2 หมวดหลักของเมนู Wireshark สามารถใชงานไดในลักษณะของเมนูบารและเมนู
ไอคอน แตละหมวดมีขอมูลเบื้องตนดังตอไปนี้
2.2.1.1 การปรับแตงการตรวจจับ packet เปดการทํางานโปรแกรม เลือกเมนู
Capture
- 7. 7
รูปที่ 2.1 เริ่มการทํางานโปรแกรม เลือกเมนู Capture
ในกรณีเลือก interface จะพบกับหนาจอที่ทําการแสดงผล network interface ที่ถูกติดตั้ง
ในเครื่องดังนี้
รูปที่ 2.2 การปรับแตงการตรวจจับแพคเก็จ (packet capture)
นอกจากนี้ที่ option คุณยังสามารถเลือกการปรับแตงไดอีกครั้งหนึ่ง
รูปที่ 2.3 การปรับแตง Interface ethernetการตรวจจับ packet
- 8. 8
เราสามารถเลือก รีโมท (remote)ไดก็ตอเมื่อมีการกําหนดการทํางานรองรับเทคนิค Port
Mirroring
รูปที่ 2.4 การปรับแตงรองรับ Port Mirroring
2.2.1.2 การปรับแตง คาสถิติตาง ๆ ของขอมูลภายหลังการตรวจจับแพคเก็จ
เมื่อหยุดการทํางานถึงสามารถเลือกขอมูลจาก list คนหาขอมูลที่ดักจับ
รูปที่ 2.5 หนาตาง list คนหาขอมูลแพคเก็จที่ดักจับ
- 9. 9
เราสามารถนําผลที่ไดมาวิเคราะหดวย Protocol Hierarchy (ภายใต statistic)
รูปที่ 2.6 หนาตางแสดงการวิเคราะห ขอมูลโปรโตคอล
นอกจากนี้สามารถสรุปการสือสารกันในเครือขายดวย การติดตอสื่อสาร (Conversations)
่
รูปที่ 2.7 หนาตางแสดงการติดตอสื่อสาร Conversations ในระบบทีตรวจจับ
่
- 10. 10
สวนติดตอผูใชกับขอมูลแพคเก็จที่ดักจับได
รูปที่ 2.8 หนาตางแสดงสวนติดตอผูใช แพคเก็จที่ดักจับ
2.3ไพธอน(Python)
Python เปนภาษาโปรแกรมการเขียนแบบเชิงวัตถุ มีจุดประสงคทั่วไปในการเขียนโปรแกรม
ทางภาษาทั่วไป ที่ใชสําหรับการพัฒนาซอฟตแวรหลายชนิด วัตถุประสงคในการออกแบบการเขียน
ภาษาของ Python เนนใหนกออกแบบพัฒนาโปรแกรม และมีความสามารถในการถอดรหัส ไดรับ
ั
การพัฒนาครั้งแรก โดย Guido van Rossum มีการเปดตัวครั้งแรกในป ค.ศ.1991 Python ไดรับ
แรงบันดาลใจจากการเขียนโปรแกรมภาษาเชน ABC, Haskell, Java, Lisp, icon และ Perl ซึ่ง
Python เปนโปรแกรมระดับสูง,มีวัตถุประสงคทั่วไป,มีความหลากหลาย,แปลไวหลายภาษา Python
เปนภาษาที่เรียบงายและหนึ่งในคุณสมบัตที่เห็นไดชัดที่สุดก็คือ ไมมีการใชเครื่องหมายอัฒภาคหรือ
ิ
วงเล็บ แตจะใชการเยื้องแทน ปจจุบัน Python มีสองรุน คือ Python 2.x และ Python3.x. ซึ่ง
Python3.x สามารถนํากลับไปใชรวมกันไดกับรุนกอนหนาของ Python ถูกสรางขึ้นเพื่อแกไข
ขอบกพรองของการออกแบบบางสวนของภาษา และทําใหภาษาที่ใชชัดเจนมากขึ้น รุนลาสุดของ
- 11. 11
Python2.x คือ 2.7.1 และ Python3.x คือ 3.1.3 คําแนะนํานี้ถูกเขียนไวใน Python2.x Python ถูก
พัฒนา เก็บรักษาโดยอาสาสมัครผูพัฒนากลุมใหญทั่วโลก
2.3.1 ภาษาโปรแกรมมิ่งไพธอน
ไพธอน (Pyhton) เปนภาษาโปรแกรมในลักษณะภาษาอินเตอรพรีเตอรโปรแกรมมิ่ง
(Interpreted Programming Language) ผูคิดคนคือ Guido van Rossumในป 1990 ซึ่งไพธอน
เปนการจัดการชนิดของตัวแปรผันตามขอมูลที่บรรจุอยู (Fully Dynamically Typed) และใชการ
จัดการหนวยความจําเปนอัตโนมัติ (Automatic Memory Management) โดยไดเปนการพัฒนา
ผสมผสานของภาษาอื่นๆ ไดแก ABC , Modula-3 , Icon , ANSI C , Perl , Lisp , Tclภาษาไพธอน
ยังเปนแนวคิดที่ทําใหเกิดภาษาใหมๆ ไดแก Ruby และ Boo เปนตน ไพธอนนั้นพัฒนาเปนโครงการ
Open sourceโดยมีการจัดการแบบไมหวังผลกําไรโดย Python Software Foundation และ
สามารถหาขอมูลและตัวแปรภาษาไดจากเว็บไซตของไพธอนเองที่ http://www.python.org/
2.3.2 หลักปรัชญาของภาษาไพธอน
ไพธอนเปนภาษาที่สามารถสรางงานไดหลากหลายกระบวนทัศน (Multi-paradigm
language)โดยจะมองอะไรที่มากกวาการ Coding เพื่อนํามาใชงานตามรูปแบบเดิมๆ แตจะเปนการ
นําเอาหลักการของกระบวนทัศน (Paradigm) แบบ Object oriented programming ,
Structured programming , Functional programming และ Aspect-oriented programming
นําเอามาใชทั้งแบบเดี่ยวๆและนํามาใชรวมกัน ซึ่งไพธอนนั้นเปนภาษาที่มีการตรวจสอบชนิดตัวแปร
แบบยืดหยุน(dynamically type-checked) และใช Garbage collection ในการจัดการ
หนวยความจํา
2.3.3 Language EvaluationCriteria
ดวยความที่ไพธอนนั้นผสมผสานการสรางภาษาที่สวยงาม ทําใหการอานหรือเขาใจโคด
(Readability) ตางๆนั้นทําไดงายรวมถึงการเขียนโคด (Writability) ที่กระชับและสั้นในการเขียน
รวมถึงมีประสิทธิภาพทําใหมีเสถียรภาพ (Reliability) สูงขึ้นและมีความรวดเร็วในการทํางานอีกดวย
และในดานคาใชจาย (Cost)ในการพัฒนาซอฟตแวรจากไพธอนนั้นในประเทศไทยนั้นยังตองใช
คาใชจายคอนขางสูงเพื่อใหไดมาซึ่งซอฟตแวรที่ดีเพราะผูเชี่ยวชาญที่เขียนไพธอนไดมีเสถียรภาพนั้น
ยังมีนอย ทําใหคาตัวสําหรับผูพัฒนานั้นสูงตามไปดวยถึงแมวาเครื่องมือในการพัฒนานั้นจะฟรีและ
เปน Opensourceก็ตามแตคาใชจายในดานบุคลากรนั้นมีมากกวาคาเครื่องมือพัฒนา
- 12. 12
2.3.4 ขอเดนของภาษาไพธอน
2.3.4.1 งายตอการเรียนรูโดยภาษาไพธอนมีโครงสรางของภาษาไมซับซอนเขาใจ
งายซึ่งโครงสรางภาษาไพธอนจะคลายกับภาษาซีมาก เพราะภาษาไพธอนสรางขึ้นมาโดยใชภาษาซีทํา
ให ผูที่คุนเคยภาษาซีอยูแลวใชงานภาษาไพธอนไดไมยาก นอกจากนี้โดยตัวภาษาเองมีความยืดหยุน
สูงทําใหการจัดการกับงานดานขอความและ Text File ไดเปนอยางดี
2.3.4.2 ไมตองเสียคาใชจายใดๆทั้งสิ้น เพราะตัวแปรภาษาไพธอนอยูภายใตลิขสิทธิ์
Python Software Foundation License (PSFL) ซึ่งเปนของ Python Software Foundation
(PSF) ซึ่งมีลักษณะคลายกับลิขสิทธิ์แมแบบอยาง General Public License (GPL) ของ Free
Software Foundation (FSF)
2.3.4.3ใชไดหลายแพลตฟอรม ในชวงแรกภาษาไพธอนถูกออกแบบใชงานกับระบบ
Unixอยูก็จริงแตในปจจุบันไดมีการพัฒนาตัวแปลภาษาไพธอนใหสามารถใชกับระบบปฏิบัติการอื่นๆ
อาทิ เชน Linux Platform , Windows Platform , OS/2 , Amiga , Mac OSX และรวมไปถึง
ระบบปฎิบัติการที่ .NET Framework , Java virtual machine ทํางานไดซึ่งใน Nokia Series 60ก็
สามารถทํางานไดเชนกัน
2.3.4.4 ภาษาไพธอนถูกสรางขึ้นโดยไดรวบรวมเอาสวนดีของภาษาตางๆเขามาไว
ดวยกันอาทิเชน ภาษา ABC , Modula-3 , Icon , ANSI C , Perl , Lisp , Smalltalk และ Tcl
2.3.4.5 ไพธอนสามารถรวมการพัฒนาของระบบเขากับ COM , .NET และ
CORBA- objects
2.3.4.6 สําหรับ Java libraries แลวสามารถใช Jythonเพื่อทําการพัฒนา
ซอฟตแวรจากภาษาไพธอนสําหรับ Java Virtual Machine
2.3.4.7 สําหรับ .NET Platform สามารถใช Iron Python ซึ่งเปนการพัฒนาของ
Microsoft เพื่อจะทําใหไพธอนสามารถทํางานไดบน .Net Framework ซึ่งใชชื่อวา Python for
.NET
2.3.4.8 ไพธอนนั้นสนับสนุน Internet Communications Engine (ICE) และการ
รวมกันของเทคโนโลยีอื่นๆอีกมากมายในอนาคต
2.3.4.9 บางครั้งนักพัฒนาอาจจะพบวาไพธอนไมสามารถทํางานบางอยางได แต
นักพัฒนาตองการใหมันทํางานไดก็สามารถพัฒนาเพิ่มไดในรูปแบบของ extension modules ซึ่งอยู
ในรูปแบบของโคด C หรือ C++ หรือใช SWIG หรือ Boost.Python
2.3.4.10 ภาษาไพธอนเปนสามารถพัฒนาเปนภาษาประเภท Server side Script
คือการทํางานของภาษาไพธอนจะทํางานดานฝงเซิรฟเวอรแลวสงผลลัพธกลับมายังไคลเอนตทําใหมี
ความปลอดภัยสูงและยังใชภาษาไพธอนนํามาพัฒนาเว็บเซอรวิสไดอีกดวย
2.3.4.11 ใชพฒนาระบบบริหารการสรางเว็บไซตสําเร็จรูปที่เรียกวาContent
ั
Management- Systems(CMS)ซึ่ง CMS ที่มีชื่อเสียงและทํางานดวยไพธอน คือ Plone
- 13. 13
2.4 โปรโตคอล (Protocol)
การเชื่อมโยงเครือขายที่มีฮารดแวรตางกันจําเปนตองกําหนดขอตกลงรวมเรียกวาโปรโตคอล
(protocol) ซึ่งการกําหนด Protocol มีไวเพื่อใหคอมพิวเตอรสื่อสารกันตามขอกําหนด TCP/IP ( ทีซี
พี/ไอพี ) จัดเปนโปรโตคอลหนึ่งที่ออกแบบมาเพื่อแกปญหาการเชื่อมโยงดังกลาว
โปรโตคอลในความหมายของระบบเครือขายคือขอกําหนดการสื่อสารคอมพิวเตอรหรือ
อุปกรณเครือขายจะมีซอฟตแวรที่ปฏิบัติงานตามโปรโตคอลที่กําหนดพรอมทั้งมีกรรมวิธีแกไขปญหาที่
เกิดขึ้นเชน หากขอมูลที่ขนถายมีขอผิดพลาดคอมพิวเตอรจะดําเนินการตามแบบแผนในโปรโตคอล
เชนสงขอมูลซ้าใหม
ํ
ในระบบเครือขายขนาดใหญ อาจมีเสนทางเชื่อมโยงระหวางกันไดเปนจํานวนมาก ขอมูลที่
สงออกไปอาจไมไดใชเสนทางเดียวกันตลอดขอมูลทีสงออกไปกอนอาจไปถึงปลายทางชากวากรณีนี้
่
เครื่องปลายทางจําเปนตองจัดลําดับขอมูลใหม กรณีที่คอมพิวเตอรตนทางสามารถสงขอมูลไดเร็วเกิน
กวาปลายทางจะรับไดทัน โปรโตคอลจะกําหนดกรรมวิธีควบคุมการลําเลียงขอมูลระหวางตนทาง
และปลายทางใหสัมพันธกันขอกําหนดตามโปรโตคอล ที่กลาวถึงนี้จะอธิบายโดยละเอียดในแตละ
หัวขอตอไป
ARP เปนโปรโตคอล สําหรับการจับคู (map) ระหวาง Internet Protocol address (IP
address) กับตําแหนงของอุปกรณในระบบเครือขาย และใชคนหา mac address ของหมายเลขไอพี
RARP เปนโปรโตคอลใชคนหาหมายเลขไอพี จาก mac address
โปรโตคอลระดับลางถัดจาก IP ไดแก โปรโตคอลระดับเดทาลิงคซึ่งกําหนดการทํางานตาม
เทคโนโลยีเครือขายที่ใชงานเชนโปรโตคอล CSMA/CD ตามมาตรฐาน Ethernet ใสระดับชั้นนี้มี
โปรโตคอลในชุดของ TCP/IP ทําหนาที่สนับสนุนการทํางานอยูสองโปรโตคอลคือ ARP และ RARP
ทั้งสองโปรโตคอลทําหนาที่แปลงคาระหวาง IP Address กับ Hardware Address
Protocol ในโลกนี้มีมาก 500 Protocol และมีการพัฒนาอยางตอเนื่อง Protocol แตละ
ชนิดก็มีคุณสมบัติเดน แตกตางกันไปควรที่จะเลือกใชใหเหมาะสม Protocol ที่นิยมใชในระบบ
Network มีดังนี้
โปรแกรมประยุกตสวนใหญจะใชโปรโตคอล UDP หรือ TCP เพื่อควบคุม IP โปรโตคอล ซึ่ง
โปรโตคอล UDP ยอมาจาก Unix Datagram Protocol และ โปรโตคอล TCP ยอมาจาก
Transmission Control Protocol.
- 14. 14
2.4.1 โปรโตคอลยูดีพี (UDP Protocol)
UDP ยอมาจาก (UDP : Unix Datagram Protocol) เปนโปรโตคอลหลักในชุดโปรโตคอล
อินเทอรเน็ต การสงขอมูลผาน UDP นั้น คอมพิวเตอรจะสงขอมูลขนาดเล็กที่เรียกวา เดตาแกรม
(datagram) ผานเครือขายไปยังเครื่องปลายทาง โดย UDP จะไมรับประกันความนาเชื่อถือและลําดับ
ของเดตาแกรม ซึ่งสวนใหญจะถูกใชสําหรับเปน DNS, streaming content เปนตน
User Datagram Protocol (UDP) เปนวิธีการสื่อสารหรือโปรโตคอลที่จํากัดจํานวนการ
บริการ เมื่อขาวสารมีการแลกเปลี่ยน ระหวางคอมพิวเตอรในเครือขายที่ใช Internet Protocol (IP)
โดย UDP เปนตัวเลือกหนึ่งของ TransmissionControl Protocol (TCP) และใชรวมกับ IP บางครั้ง
เรียกวา UDP/IP ซึ่ง UDP เหมือนกับ TCP ในการใช IP ในการดึงหนวยขอมูล (เรียกวา datagram)
จากคอมพิวเตอรหนึ่งไปยังอีกเครื่องหนึ่ง
แตตางจาก TCP โดย UDP ไมใหการบริการสําหรับการแบงขาวสารเปนแพ็คเกต
(datagram) และประกอบขึ้นใหมเมื่อถึงปลายหนึ่ง UDP ไมใหชุดของแพ็คเกตที่ขอมูลมาถึง
หมายความวา โปรแกรมประยุกตที่ใช UDP ตองมีความสามารถในการสรางมั่นใจวาขาวสารที่มาถึง
อยูในลําดับที่ถกตอง การประยุกตเครือขายที่ตองการประหยัดเวลาในการประมวลผล เพราะมีหนวย
ู
ขอมูลในการแลกเปลี่ยน (ดังนั้น จึงมีขาวสารนอยมากในการประกอบขึ้นใหม) จะชอบ UDP มากกวา
TCP ซึ่ง Trivial File Transfer Protocol (TFTP) ใช UDP แทนที่ TCP
UDP ให 2 บริการที่ไมมีใน TCP โดยเลเยอรของ IP คือ Port number เพื่อชวยแยกแยะ
การขอของผูใช และความสามารถ checksum เพื่อตรวจสอบการมาถึงขอมูล ในแบบจําลองการ
สื่อสาร Open System Interconnection (OSI) UDP เหมือนกับ TCP คือ อยูที่เลเยอร 4
Transport Layer
2.4.2 โปรโตคอลทีซีพ/ไอพี (TCP/IP Protocol)
ี
TCP/IP มีที่มาจากโปรโตคอลคือทีซีพี (TCP : Transmission Control Protocol) และไอพี
(IP : Internet Protocol) IP ทําหนาที่กําหนดแอดเดรสจัดแบงขนาดขอมูลใหพอเหมาะและเลือก
เสนทางสงขอมูลสวน TCP มีหนาที่รับประกันความถูกตองในการลําเลียงขอมูล TCP และ IP ไมได
เปนเพียงสองโปรโตคอลที่มีอยูเทานั้น หากแตยังมีโปรโตคอลสนับสนุนอีกเปนจํานวนมากจัดรวมกัน
เปนชุดโปรโตคอล ทีซีพี/ไอพี (TCP/IP protocol suite)
TCP เปนหนึ่งในโปรโตคอลหลักในเครือขายอินเทอรเน็ต หนาที่หลักของทีซีพี คือ ควบคุม
การรับสงขอมูลระหวางโฮส ถึง โฮส ในเครือขาย เพื่อใชแลกเปลี่ยนขอมูลระหวางกัน โดยตัว
โปรโตคอลจะรับประกันความถูกตอง และลําดับของขอมูลที่สงผานระบบเครือขาย นอกจากนั้นทีซีพี
ยังชวยจําแนกขอมูลใหสงผานไปยังแอปพลิเคชัน ที่ทํางานอยูบนโฮสเดียวกันใหถูกตองดวย ซึ่งสวน
ใหญจะถูกใชสาหรับเปน http, https, and ssh. เพราะวาระบบปฏิบัตการทํางานดวยโปรโตคอลนี้
ํ ิ
ไดดีกวา มีความนาเชื่อถือ แตความเร็วจะชากวา UDP
- 15. 15
TCP เปนการนําเอา UDP มาประยุกตเขาดวยกัน แตเพิ่ม layer ของการ สงและรับ packet
เชน การดาวนโหลดจากอินเทอรเน็ต โปรแกรมเว็บบราวเซอรจะเปด socket หรือสรางการเชื่อมตอ
ดวย TCP เพื่อไปยังเครื่องปลายทาง
TCP/IP เปนโปรโตคอลที่ใชงานอยางแพรหลายในแทบทุกเครือขายไมวาจะเปนเครือขาย
เฉพาะที่ (LAN) หรือเครือขายในบริเวณกวาง (WAN) TCP/IP ( ทีซีพ/ไอพี ) เชื่อมกลุมเครือขายยอย
ี
เขาดวยกันเปนเครือขายขนาดใหญหรืออินเตอรเน็ต (Internet)ผานการออกแบบใหเปนอิสระจาก
ชนิดคอมพิวเตอรฮารดแวรและระบบปฏิบัติการกลไกของโปรโตคอลมีความเชื่อถือไดสูงและทํางานได
แมในบางภาวะที่การสื่อสารมีความผิดปกติรวมทั้งสามารถเลือกเสนทางสงขอมูลตามสภาพเครือขาย
ไดในกรณีที่บางเสนทางชํารุด
อินเทอรเน็ตมีพัฒนาการมาจากอารพาเน็ต (ARP Anet) ซึงเปนเครือขายคอมพิวเตอรภายใต
่
ความรับผิดชอบของอารพา (Advanced Research Projects Agency) ในสังกัดกระทรวงกลาโหม
ของสหรัฐอเมริกาอารพาเน็ตในขั้นตนเปนเครือขายทดลองที่ตั้งขึ้นเพื่อสนับสนุนงานวิจัยดาน
การทหารอารพาซึ่งตอมาไดเปลี่ยนชื่อเปนดารพา (Defense Advanced Research Projects
Agency) ตองการพัฒนาเครือขายที่สามารถสื่อสารกันได แมวาอุปกรณเครือขายบางจุดจะหยุด
ทํางานหรือเสนทางสื่อสารบางเสนทางถูกตัดขาดดารพาวางแผนการขยายเครือขายและเปดการ
เชื่อมตอเขากับเครือขายกับเครือขายตองการโปรโตคอลที่ทํางานไดกับสายสื่อสารและฮารดแวรหลาย
รูปแบบ และสามารถรองรับ Host จํานวนมากได TCP/IP เปนโปรโตคอลที่มีคุณสมบัติดังกลาว
ครบถวน
TCP/IP ยังไมไดเปนชื่อที่ใชอยางเปนทางการในชวงเวลานั้นหากแตเรียกวาคาหน – เซอรฟ
โปรโตคอลตามชื่อผูพัฒนาคือโรเบิรตคาหน (Robert Kahn) ซึ่งทํางานอยูที่บริษัทบีบีเอ็น (BBN
:NoltBeranek and Newmann) และวินตันเซอรฟ (Vintom Cerf) แหงสถาบันวิจัยสแตนฟอรดดาร
พาวาจางบีบีเอ็นพัฒนา TCP/IP ภายใตยูนิกซของมหาวิทยาลัยแคลิฟอรเนียแหงเบิรคลียและใหทุน
เผยแพรระบบปฏิบัติการออกไปโดยไมคิดมูลคา
ยูนิกซที่ผนวก TCP/IP และเผยแพรออกไปเมื่อพ.ศ. 2526 ใชชื่อวา 4.2BSD (4.2 Berkeley
System Distribution) จากจุดนั้นเปนตนมาทีซีพ/ไอพีก็ไดแพรหลายไปในมหาวิทยาลัยและ
ี
หนวยงานอื่นๆและเปนโปรโตคอลมาตรฐานซึ่งใชเชื่อมโยงคอมพิวเตอรที่ทํางานภายใตยูนิกซใน
ปจจุบันจะพบวาระบบปฏิบัติการสวนใหญทั้งคอมพิวเตอรระดับใหญและไมโครคอมพิวเตอร จะ
สนับสนุนการทํางานตามขอกําหนดของ ที TCP/IP เพื่อเชื่อมเขาสูอินเทอรเน็ตไดโดยงาย
TCP/IP เปนโปรโตคอลที่ไดรับความนิยมอยางแพรหลายเนื่องมาจากความสามารถในการ
เชื่อมเครือขายที่ใชฮารดแวรตางชนิดกันไดอยางกลมกลืนเนื้อหาในบทนี้จะกลาวถึงแบบอางอิง
โปรโตคอลและบริการของโปรโตคอลยอยโดยสังเขปเพื่อใหผูอานมองเห็นภาพโดยรวมตามหัวขอ
ตอไปนี้
- 16. 16
2.4.2.1แบบอางอิง TCP/IP
ระบบการสื่อสารขอมูลในเครือขายคอมพิวเตอรประกอบดวยทั้งฮารดแวรและ
ซอฟตแวร ทีซบซอนการมองภาพของระบบโดยรวมทั้งหมดเปนหนวยใหญยอมยากตอการทําความ
่ั
เขาใจการใชแบบอางอิงที่แบงระบบออกเปนสวนยอยจะชวยลดความซับซอนและสรางความเขาใจได
งายกวา
เครือขายคอมพิวเตอรมีแบบอางอิงที่ใชเปนมาตรฐานคือแบบอางอิงโอเอสไอ (OSI : Open
Systems Interconnection Reference Model) ในขณะที่ที TCP/IP เปนโปรโตคอลที่กําเนิดกอน
OSI และมีแบบอางอิงเฉพาะตามรูป 2.9TCP/IP มีระดับชั้นจากลางขึ้นบนและลักษณะสมบัติประจํา
ชั้นตางๆดังตอไปนี้
ฟสคัล
ิ ชั้นของการกําหนดคุณสมบัตฮารดแวรเชนคุณสมบัติทางกล (หัวตอและ
ิ
ชนิดสาย สื่อสาร) และคุณสมบัติทางไฟฟา (ลักษณะสัญญาณและอัตราเร็ว)
กลาวโดยรวมแลวระดับชั้นฟสิคัลกําหนดวิธีการถายโอนขอมูลในระดับบิต
ตัวอยางของการเชื่อมตอที่ตรงกับระดับชั้นฟสิคับไดแก RS232 และ X.21
เปนตน
เดทาลิงค ชั้นของซอฟตแวร (ดีไวซไดรเวอร) และฮารดแวรซึ่งทํางานดานการ
เชื่อมโยงเขากับสายสื่อสาร ตัวอยางมาตรฐานในระดับชั้นนี้ไดแก
อินเทอรเน็ตและโทเค็นริงเปนตน
เน็ตเวอรค ชั้นที่ทําหนาที่เลือกเสนทางเพื่อสงขอมูลระหวางสถานีตนทางและสถานี
ปลายทางตัวอยางโปรโตคอลในระดับชั้นนี้ไดแก IP
ทรานสปอรต ชั้นที่หนาที่จัดเตรีมการสงขอมูลระหวางสถานีตนทางและปลายทางโดย
สถาปนาการเชื่อมตอและรักษาสภาพการเชื่อมตอ ตลอดจนยกเลิกการเชื่อมตอเมื่อสิ้นสุด
กระบวนการ และอาจมีหนาที่เพิ่มเติมในการับประกันความถูกตองของขอมูลที่จัดสง TCP/IP มี
โปรโตคอลประจําชั้นนี้จํานวนสองโปรโตคอลคือ TCP และ UDP
แอพลิเคชัน
้ ระดับชั้นนี้กําหนดการทํางานของโปรโตคอลประยุกตโปรโตคอลใน
ระดับชั้นนี้ไดแก เอฟอีพี (FTP) เอสเอ็มทีพี (SMTP) หรือเทลเน็ต
(TELNET) เปนตน
- 17. 17
:
รูปที่ 2.9 แบบอางอิงทีซีพี/ไอพี
IP ซึ่งอยูในระดับชั้นเน็ตเวอรตามรูปที่ 2.10 เปนแกนสําคัญของโปรโตคอลแสตดเนื่องจากทั้ง
TCP และ UDP ตองใช IP เพื่อเลือกเสนทางสง Packet ในระดับชั้นเน็ตเวอรคยังมี ICMP สนับสนุน
การทํางานของ IP เพื่อรายงานขอผิดปกติที่เกิดขึ้นจากการสงแพ็กเก็ตและมี IGMP ดูแลการจัดกลุม
Host ในเครือขายมัลติคาสต
2.4.2.2 โปรโตคอลแสตค
รูปที่ 2.10โปรโตคอลแสตคของ TCP/IP
- 18. 18
ระดับชั้นทรานสปอรต มีสองโปรโตคอลสําคัญ TCP และ UDP แอพลิเคชั้นจะเลือกใช TCP
หรือ UDP ตามลักษณะงาน
เมื่อขอมูลผานแตละระดับชั้นโปรโตคอลในชั้นนั้นจะผนวกขาวสารกํากับการทํางานประจํา
โปรโตคอลซึ่งเรียกวาโปรโตคอลเฮดเดอร (protocol header) เขากับขอมูลเฮดเดอรและตัวขอมูล
จากระดับบนจะถูกสงผานไปยังระดับลางโปรโตคอลระดับลางจะมองเฮดเดอรหุมเปนชั้นๆ
กระบวนการนี้เรียกวาการเอ็นแคปซูเลตตัวอยางในรูปที่2.11แสดงการเอ็นแคปซูเลตแพ็กเก็ต TCP/IP
ในอีเทอรเน็ต
เมื่อสถานีปลายทางไดรับแพ็กเก็ตก็จะดําเนินการสงไปตามลําดับชั้นโปรโตคอลประจําชั้นจะ
ถอดเฮดเดอรออกและสงสวนที่เหลือไปยังชั้นถัดไปเฮดเดอรจะถูกถอดออกเหลือเฉพาะขอมูลเมื่อถึง
ชั้นบนสุดกระบวนการนี้เรียกวาการดีแคบซูเลต (decapsulation)
รูปที่2.11การหอหุมขอมูลตามลําดับโปรโตคอลแสตด
2.4.3 ไอพีแอดเดรส( IP Address )
อินเทอรเน็ตแยกแยะเครื่องโดยใช IP Address ประจําฮารดแวรอินเทอรเฟสที่เชื่อมเขา
เครือขายตัวอยางของฮารดแวรอินเทอรเฟสไดแกการดเครือขายคอมพิวเตอรที่มีมากกวาหนึ่ง
อินเทอรเฟสสามารถมี IP Address ไดตามจํานวนอินเทอรเฟสแตคอมพิวเตอรโดยทั่วไปมักมีเพียง
อินเทอรเฟสเดียว จึงมักเรียกวาไอพีแอดเดรสเปนแอดเดรสประจําเครื่อง สวนอุปกรณฮารดแวร เชน
เรามักมีอินเทอรเฟสจํานวนมากเพื่อใชโยงเครือขายเราเตอร(Router) จึงมี IP Address หลายคาตาม
จํานวนอินเทอรเฟส
- 19. 19
2.4.3.1 การจัดการคลาสเครือขาย (Class)
ไอพีแอดเดรสมีการจัดแบงออกเปนกลุมหรือคลาส(class)เครือขายที่ใชงานใน
ปจจุบันมักสังกัดอยูใน class ใด class หนึ่งคือคลาส A, B หรือ C การแบง class อาศัยจํานวนพรี
ฟกซเครือขายที่แตกตางกันตามรูป 2.12 แตละ class จึงมีจํานวนเครือขายในสังกัดและจํานวนโฮสต
ตอเครือขายไมเทากัน
Class Range
A 0.0.0.0 - 127.255.255.255
B 128.0.0.0 - 191.255.255.255
C 192.0.0.0 - 223.255.255.255
D 244.0.0.0 - 239.255.255.255
E 240.0.0.0 - 255.255.255.255
รูปที่ 2.12แสดงชวงของ IP Address แตละคลาส
2.5 ไพจีทีเค (Pygtk)
PyGTKเปนชุดของโมดูล Python ที่พัฒนาเพื่อใชทํางานรวมกับเครื่องมือ GTK+ และ GUI
โดยมีชุดครอบคลุมองคประกอบกราฟกและสิ่งอํานวยความสะดวกในการเขียนโปรแกรมที่มี
ประโยชนสําหรับการสรางโปรแกรมเดสกทอปอื่น ๆ เปนสวนหนึ่งของโครงการ GNOME PyGTKเปน
ซอฟตแวรฟรีและไดรับใบอนุญาตภายใตLGPLผูเขียนตนฉบับPyGTKคือ James Henstridge.PyGTK
ถูกออกแบบใหงายตอการใช เหมาะสําหรับสรางตนแบบอยางรวดเร็ว ปจจุบันPyGTKเปนหนึ่งใน
โปรแกรมที่นิยมใชกันมากที่สดในการใช GTK +
ุ
GObject เปนคุณสมบัติพื้นฐานของฟงกชั่นสําหรับ PyGTK และ ATK (Accessibility
Toolkit) เปนเครื่องมือที่ทําใหเขาถึงโปรแกรมไดงายขึ้น เครื่องมือนี้จะชวยใหคนพิการทางรางกาย
ทํางานกับคอมพิวเตอรไดดีซึ่งเครื่องมือ GTK มีการใช Pango เปนชุดเครื่องมือที่จะใชในการทํางาน
เกี่ยวกับระบบวาดขอความทํางานรวมกับ Cairo ชุดเครื่องมือสําหรับการสรางกราฟกแบบเวกเตอร
2D สวน Glade จะใชในการสราง GUI ที่มการเชื่อมตอกับ XML
ี
- 20. 20
GTK + เปนชุดเครื่องมือสําหรับการสรางสวนเชื่อมตอประสานกราฟกกับผูใช กลองเครื่องมือ
นี้ถูกพัฒนาจากโปรแกรมภาษา C ชุดเครื่องมือ GTK + มาจาก GIMPToolkit เดิมทีถูกสรางขึ้นเพื่อ
พัฒนาแกไขโปรแกรมการจัดการภาพ GIMP ตั้งแตนั้นมา กลายเปนหนึ่งในชุดเครื่องมือที่นิยมมาก
ที่สุดภายใตโปรแกรม Linux และ BSD Unix ปจจุบัน ซอฟตแวรสวนใหญแบบ GUI จะถูกสรางขึ้นใน
รูป Qtหรือ GTK +
GTK +เปนโปรแกรมเชื่อมตอประยุกตจากการเขียนโปรแกรมเชิงวัตถุ ซึ่งถูกสรางขึ้นดวย
ฟงชั่นที่เปนมาตรฐาน สําหรับชุดเครื่องมือ GTK +ในขณะที่ GObject ก็สามารพัฒนาเพื่อรองรับการ
เชื่อมตอกับโปรแกรมภาษาอื่น ๆ ทีมีอยูสําหรับ C+, Python, Perl, Java, C# และโปรแกรมภาษา
่
อื่น ๆ
Gnome และXFceเปนหนากากที่ ไดรับการสรางขึ้นโดยใชชุดเครื่องมือ GTK +SWT และ
wxWidgets ทีรูจักกันดีในการเขียนโปรแกรม ซอฟตแวรทประยุกตใชไดโดดเดนดวยชุดเครื่องมือ
่ ี่
GTK + คือ Firefox และ Inkscape
2.5.1 gtk.Button - เครื่องมือปุมกดเพื่อสงสัญญาณเมื่อมีการคลิก
เครื่องมือปุมกด gtk.Buttonจะแสดงเมื่อมีการกดปุมที่ปายขอความ (gtk.Label) แมวาจะมี
ความสามารถหลายอยางก็ตาม แตโดยทั่วไป gtk.Buttonจะใชในการเรียกฟงกชันกลับหรือถูกเรียก
เมื่อมีการคลิกปุม ปุมสรางสัญญาณทั่วไปที่บงบอกถึง :
"Clicked" - ผูใชทําการกดและปลอยปุมเมาสเหนือปุม"คลิก"
"Pressed" - ผูใชกดปุมเมาสเหนือปุม
"Released" - ผูใชที่ถูกปลอยออกปุมเมาสเหนือปุม"ปลอย"
"Enter" - ชี้ที่ปอนปุม
"Leave" - ชี้ซายที่ปุม
สัญญาณ "คลิก" โดยปกติจะเปนสัญญาณเฉพาะที่โปรแกรมตองทําการตั่งคาหรือกําหนดไวใน
การใชงาน
2.5.2 gtk.VBox - กรอบแนวตั้ง
gtk.VBoxเปนกรอบยอย จาก gtk.Boxที่จัดระเบียบเครื่องมือลูกในคอลัมนเดียว gtk.Boxใช
ในการจัดการระยะหางความสูงและการจัดตําแหนงของเครื่องมือขนาดเล็กของ gtk.VBoxแตทั้งหมด
มีการจัดสรรความกวางเทากัน
2.5.3 gtk.ListStore - รูปแบบฟงกชันที่ใชรวมกับ gtk.TreeView
gtk.ListStoreเปนรูปแบบรายการสําหรับใชกับเครื่องมือ gtk.TreeViewจะทําการการ
เชื่อมตอ gtk.TreeModelgtk.TreeSortableโดยการลากเมาสมาวางและ หยุดการเชื่อมตอ
จุดมุงหมายเพื่อสนับสนุนการทําแผนผัง Python และทบทวนขอกําหนดในการเชื่อมตอสงผานขอมูล
เพื่อแสดงผล
- 21. 21
2.5.4 gtk.ScrolledWindow - เพิ่มแถบเลื่อนไปที่เครื่องมือลูก
gtk.ScrolledWindowเปน classลูก ของ gtk.Binที่เพิ่มแถบเลื่อนไปที่เครื่องมือลูก และ
เลือกที่จะวาดกรอบรอบ ๆ เครื่องมือลูก หนาตางนี้จะสามารถทํางานในสองวิธี
• เครื่องมือบางตัวจะมีการใชตัวเลื่อนภาพมาตรฐาน "slot" สําหรับสงขอมูลไปยัง
gtk.Adjustmentเครื่องมือสําหรับเลื่อนภาพมาตรฐานเหลานี้ยังใชไดกับgtk.TreeView,
gtk.TextViewและ gtk.Layout
• เครื่องมือที่ไมมีตัวเลื่อนภาพมาตรฐาน gtk.Viewportจะทําหนาที่เปนตัวแปลง ดําเนินการ
เลื่อนภาพสําหรับเครื่องมือลูกที่ไมสามารถเลื่อนภาพของตัวเอง จึงมีการใช gtk.Viewportเพื่อเลื่อน
เครื่องมือลูก เชน gtk.Table, gtk.Boxและอื่น ๆ
ถาเครื่องมือมีคุณสมบัติในการเลื่อนภาพมาตรฐาน ก็จะถูกเพิ่มเขาไปใน
gtk.ScrolledWindowกับวิธีการ gtk.Container.addหากเครื่องมือไมมี กอนอื่นคุณตองเพิ่ม
เครื่องมือ gtk.Viewportจากนั้นใหเพิ่ม gtk.Viewportไปที่หนาตางเลื่อน วิธีการที่สะดวกสบาย คือให
ใช add_with_viewport () ดังนั้นคุณสามารถยกเลิกการใช viewport ไดเลย
2.5.5 gtk.TreeModelSort - ตารางสามเหลี่ยมเปนการเรียงลําดับรุนของ gtk.TreeModel
ลูก
gtk.TreeModelSortเปนรูปแบบการจัดเรียงลําดับของแบบจําลองลูกgtk.TreeModelSort
ใชในการติดตอ gtk.TreeModelและเชื่อมตอกับ gtk.TreeSortableเพื่อจัดการเรียงลําดับขอมูล
ฟงกชัน
"model" คุณสมบัติ อานเขียน – การสรางแบบจําลองสําหรับ gtk.TreeModelSortในการเรียงลําดับ
ขอมูล
2.5.6 gtk.TreeView - เครื่องมือสําหรับการแสดงทั้งผังแบบตารางและแบบรายการ
เครื่องมือ gtk.TreeViewจะใชในการแสดงผลของรูปแบบโดยการใช gtk.TreeModelใน
การเชื่อมตอ gtk.TreeViewจะมีคอลัมนและเซลล แสดงขอมูลรูปแบบอยู ใน GTK + และ PyGTK
2.5.7 gtk.TreeViewColumn - คอลัมนทมองเห็นไดในเครื่องมือ gtk.TreeView
ี่
gtk.TreeViewColumnเปนคอลัมนที่มองเห็นไดในเครื่องมือ
gtk.TreeViewgtk.TreeViewColumnจัดแสดงผลของสวนหัวและเซลลที่ใช gtk.CellRenderer
2.5.8 gtk.Label - เครื่องมือที่แสดงจํานวน จํากัด ของขอความที่อานอยางเดียว
gtk.Labelเปนเครื่องมือที่แสดงจํานวนจํากัด ของขอความที่อานอยางเดียว ปายชื่อจะถูกใช
โดยเครื่องมือตางๆ (เชน gtk.Buttonและ เครื่องมือยอย, gtk.MenuItem, ฯลฯ ) เพื่อ แสดงขอความ
ตลอดจนการประยุกตใชแสดงขอความ, ฯลฯ ใหกับผูใช สวนใหญของการทํางานของ gtk.Labelมีการ
ปรับเปลี่ยนสไตลและรูปแบบของขอความที่อยูภายในการจัดสรรเครื่องมือโดยตรง gtk.Labelเปน
"หนาตาง" ซึ่งหมายความวามันไมสามารถรับเหตุการณโดยตรง ถาจําเปน gtk.EventBoxสามารถ
นํามาใชเพื่อ จัดการเหตุการณใหกับเครื่องมือ gtk.Labelได
- 22. 22
2.5.9 gtk.CellRendererText - เครื่องมือแสดงผลขอความลงในเซลลที่เปน gtk.TreeView
gtk.CellRendererTextจะจัดการแสดงผลของขอความที่ลงในเซลล gtk.TreeViewโดยใช
ขอมูลตัวอักษรสี และสไตลทกําหนดโดยคุณสมบัติของมัน ขอความจะถูกตัด ถามันยาวเกินไปและ
ี่
ตามคุณสมบัตที่ "ellipsize" ยอมใหใช
ิ
2.5.10 gtk.Window - หนาตางระดับบนสุดที่เก็บเครื่องมือเล็กกลองหนึ่ง
gtk.Windowสรางเครื่องมือที่ผูใชทั่วไปคิดวาเปนหนาตาง นั่นคือพื้นที่ของจอแสดงผลทีถูก
่
จัดการโดยผูจัดการหนาตางและการตกแตงมักจะมีแถบชือเรื่องดังกลาว และรายการทีจะอนุญาตให
่ ่
ผูใชปด ปรับขนาด และยายหนาตางได PyGTKจัดใหหนาตางทั้งสองประเภท
- 23. 23
บทที่ 3
วิธีการดําเนินงาน
3.1 ขั้นตอนการดําเนินงาน
3.1.1 หาขอมูลและศึกษาการทํางานของ โปรแกรม Python และ ไลบราลี libpcap
3.1.1.1 ศึกษาการทํางานของโปรแกรม Python และ ไลบราลี libpcap
3.1.1.2 ศึกษาโครงสรางของโปรแกรม Python และ ไลบราลี libpcap
3.1.1.3 ศึกษาหลักการโครงสรางของ Python และ ไลบราลี libpcap
3.1.1.4 ทดลองสรางสถานการณใหตรงกับ Python และ libpcap ตรวจสอบผล
3.1.2 หาขอมลและศึกษา ภาษา Python และ libpcap เพื่อใชในการเขียนโปรแกรม
ู
3.1.3 ศึกษาการเขียนโปรแกรมและตรวจสอบคาการทํางาน
ก) ออกแบบโครงสรางโปรแกรมจากการศึกษา
ข) ทําการเขียนโปรแกรมตามโครงสรางที่ไดออกแบบไว
ค) ทําการทดสอบโปรแกรมที่เขียนขึ้น
ง) ทําการแกไขปญหาที่เกิดขึ้นของโปรแกรม
จ) ทําการทดสอบโปรแกรมที่แกไขแลว
ฉ) ทําการบันทึกผลการทดลอง
ช) ทําการสรปผลการทดลอง
ุ
- 24. 24
3.2 การศึกษาเบื้องตน
3.2.1 โครงสรางการทํางานของโปรแกรม Python และ ไลบราลี libpcap
libpcap เปน library สําหรับการดักจับ packet ที่ไดรับความนิยมอยางสูง ถูกนําไป
ใชงานอยางแพรหลาย ในปจจุบันมีซอฟทแวรสําเร็จรูปมากมายที่พัฒนาดวย libpcap ที่รู
จักกันดี ไดแก Ethereal, tcpdump, Snort, NMap, Ntop ฯลฯ จุดเดนของ libpcap
คือ มีรูปแบบ API ที่ใชงานงาย แตมีประสิทธิภาพสูง สามารถจับ packet ไดลึกถึงระดับ
datalink ทั้งในโหมดปกติ และโหมด promiscuous อีกทั้งยังมีความสามารถในการเลือกจับ
เฉพาะบาง ชนิดของ packet ผใชที่สนใจ และที่สําคัญ libpcap เปน open-source library
ู
ที่สามารถใหนํามาใชงานไดฟรี
ตัวอยางการประยุกตใชงาน libpcap
เพื่อใหเห็นภาพการทํางานที่ชัดเจนขึ้น จึงขอยกตัวอยางการเขียนโปรแกรมใช
libpcap เพื่อตรวจวัดอัตราการอัพ โหลด/ดาวนโหลดขอมูลแบบงายๆ หลักการพื้นฐานของ
โปรแกรมนี้จะใชวิธีการจับทุก packet ทีผานเขามาใน interface และคัดเลือกเอาเฉพาะ
่
IPv4 packet มาตรวจสอบ header หากพบวามี source IP address ตรงกับ IP address
ของ interface ก็แปลวา packet นั้นเปนขอมูลอัพโหลดของ interface จึงจะทําการบวก
ขนาดของขอมูลชุด นั้นทบเขาไปในขนาดรวมเพื่อรอการคํานวณคาเฉลี่ยของอัตราการอัพ
โหลดตอไป ในขณะเดียวกันก็ทําการคํานวณอัตรา การดาวนโหลดในในลักษณะเดียวกัน
ดวย ในการตรวจสอบรายละเอียดตางๆของขอมูล จําเปนตองอาศัยการตีความจากขอ
มูลดิบของ packet ที่เราดักจับ มาได โดยทั่วไปโครงสรางของ packet ที่รับเขามาจะมี
ลักษณะของ header หุมเปนชั้นๆ จากระดับชั้น datalink ไป จนถึงชั้น application ดัง
แสดงในภาพ
รูปที่ 3.1 โครงสรางแพคเก็จที่ไดจากการ Dumpfile
- 25. 25
เราสามารถตรวจสอบโปรโตคอลของขอมูลภายใตเฟรมไดจากสวนของ header ของ frame
ซึ่งในกรณีของโปรโตคอล Ethernet ที่นิยมใชกันใน Local Area Network นั้น โครงสรางของ
frame จะเปนดังนี้
รูปที่ 3.2 แสดงโครงสราง Ethernet Frame Header
Header ของ Ethernet frame เริ่มตนดวย Destination address และ Source address
ขนาด 6 ไบต บอกใหเรา ทราบวา frame นี้สงออกมาจากที่ใด และจะสงไปยังที่ใด แตสิ่งที่เราสนใจ
จริงๆจะเปนสวนที่อยูถัดมา ซึ่งจะบงบอกชนิด โปรโตคอลของ payload ของ frame นั้น ตัวอยางเช
นหากคานี้เปน 0x0800 ก็จะหมายถึง IPv4, 0x0806 จะ หมายถึง ARP ฯลฯ ดังนั้นเราจึงสามารถ
ตรวจสอบโปรโตคอล layer 3 โดยอานคาจากไบตที่ 12 และ 13 นับจากสวน
หัวของ libpcap packet (ซึ่งเริ่มจากไบตที่ 0) ซึ่งหากมีคาเปน 0x08 และ 0x00
ตามลําดับก็หมายความวาขอมูล ภายใต frame นั้นเปน IPv4 datagram
สําหรับ Source และ Destination IP address ที่เราตองการนํามาตรวจสอบนั้น ตองดึง
ออกมาจาก Header ของ IP ซึ่งจะมีโครงสรางดังนี้
รูปที่ 3.3 แสดงโครงสราง Header IP
- 26. 26
จากแผนผังจะเห็นวาสวนที่เปน source IP address นั้นมีความยาว 4 ไบต เริ่มตนที่ไบตที่
12 จนถึงไบตที่ 15 และ สวนที่เปน destination IP address จะเริ่มจากไบตที่ 16 จนถึงไบตที่ 19
ดังนั้นหากนับตั้งแตสวนหัวของ frame ตําแหนงเริ่มตนของ source และ destination IP จะอยูที่
ไบตที่ 26 และ 30 ตามลําดับ
รูปที่ 3.4
กลาวโดยสรุปก็คือ ในการตรวจสอบวา pcap_packet ที่จับมาไดนั้นเปนขอมูลที่เปนการ
download ของ interface นี้หรือไม ก็เพียงแตตรวจสอบวา
1. pcap_packet[12] == 0x08 และ pcap_packet[13] == 0x00 ใชหรือไม
2. และเลข 32 บิตที่ตําแหนงที่ 30 ของ pcap_packet มีคาเทากับเลข 32 บิตของ IP
address ของ interface หรือไม
3.3 การกําหนดความตองการของระบบ
ก) สามารถเลือกใช การตรวจจับดวยการ คลิกใชใหเหมาะสมกับการนําไปใช เพื่อเพิ่ม
ความยืดหยุนในการใชงานโปรแกรม Python และ ไลบราลี libpcap
ข) สรางสวนเชื่อมตอประสานกับผูใชในรูปแบบกราฟก (GUI) เพื่อความสะดวกในการใช
งาน โปรแกรม Python และไลบราลี libpcap
- 27. 27
3.4 ความตองการดานซอฟตแวร
ซอฟตแวร
ก) ระบบปฏิบัติการ Ubuntu Desktop รุน Lucid Lyn เวอรชั่น 10.04
ข) โปรแกรม Python เวอรชั่น 2.5.0 หรือสูงกวาไมเกิน 2.7.0
ค) Module libpcap – Python-libpcap
ง) Module Function for Python
3.5 การทํางานของโปรแกรม
โปรแกรมจะตรวจสอบและแสดงการดักจับขอมูลของเครื่องที่ใชเครือขายที่จําลองขึ้นกับ
เครื่องคอมพิวเตอรที่มี โปรแกรม Python และไลบราลี libpcap ติดตั้งไว และเมื่อตรวจสอบ
คุณสมบัติการบุกรุกหรือโจมตี วามีพอรท ที่มีความเสียงตอการติดไวรัส ในการเขาเว็บไซต และยังมี
การสราง Logging เพื่อแสดงรายละเอียดการเขาใชเพื่อนําไปอางอิงในการตรวจสอบ
รูปภาพ แสดงการทํางานตรวจสอบแพ็กเก็จดวยโปรแกรม Python Libpcap