บทที่ 2 ทฤษฎีหลักการและงาน...

52
บทที่ 2 ทฤษฎีหลักการและงานวิจัยที่เกี่ยวข้อง โครงการการสร้างและหาประสิทธิภาพโปรแกรมฐานข้อมูลบริหารจัดการห้องเรียน คอมพิวเตอร์ ในครั ้งนี ้คณะผู ้จัดทาได้รวบรวมแนวคิดทฤษฎีและหลักการต่างๆ ที่เกี่ยวข้อง โดยแบ่ง ออกเป็นหัวข้อ ดังต่อไปนี 1. ทฤษฎีเกี่ยวกับหลักการที่เกี่ยวข้อง 1.1 ทฤษฎีระบบเครือข่าย 1.2 ความรู้ทั่วไปเกี่ยวกับเครือข่าย 1.3 โพรโทคอล (Protocol) 1.4 โพรโทคอลทีซีพี (Protocol TCP) 1.5 พอร์ต (Port) 1.6 ซ็อกเก็ต (Socket) 1.7 การใช้ Socket Programming 1.8 คลาสที่จาเป็นในการเขียนโปรแกรมทางเน็ตเวิร์คด้วย C# 1.9 Class Socket 1.10 การใช้งาน Class ช่วยเหลือ 1.11 Windows Event Programing 1.12 Using Events and Delegates 1.13 The AsyncCallback Class 1.14 Using Asynchronous Sockets 1.15 ทฤษฎีระบบฐานข้อมูล 1.16 Json .Net 1.17 Remote Monitor 2. งานวิจัยที่เกี่ยวข้อง

Transcript of บทที่ 2 ทฤษฎีหลักการและงาน...

Page 1: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

บทท 2

ทฤษฎหลกการและงานวจยทเกยวของ

โครงการการสรางและหาประสทธภาพโปรแกรมฐานขอมลบรหารจดการหองเรยนคอมพวเตอร ในครงนคณะผจดท าไดรวบรวมแนวคดทฤษฎและหลกการตางๆ ทเกยวของ โดยแบงออกเปนหวขอ ดงตอไปน

1. ทฤษฎเกยวกบหลกการทเกยวของ 1.1 ทฤษฎระบบเครอขาย 1.2 ความรทวไปเกยวกบเครอขาย 1.3 โพรโทคอล (Protocol) 1.4 โพรโทคอลทซพ (Protocol TCP) 1.5 พอรต (Port) 1.6 ซอกเกต (Socket) 1.7 การใช Socket Programming 1.8 คลาสทจ าเปนในการเขยนโปรแกรมทางเนตเวรคดวย C# 1.9 Class Socket 1.10 การใชงาน Class ชวยเหลอ 1.11 Windows Event Programing 1.12 Using Events and Delegates 1.13 The AsyncCallback Class 1.14 Using Asynchronous Sockets 1.15 ทฤษฎระบบฐานขอมล 1.16 Json .Net 1.17 Remote Monitor

2. งานวจยทเกยวของ

Page 2: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

5

2.1 ทฤษฎและหลกการทเกยวของ 2.1.1 ทฤษฎระบบเครอขาย

ระบบเครอขายคอมพวเตอร หรอระบบเนตเวรก คอกลมของคอมพวเตอรและอปกรณตางๆ ทถกน ามาเชอมตอกนเพอใหผใชในเครอขายสามารถตดตอสอสาร แลกเปลยนขอมล และใชอปกรณตางๆ ในเครอขายรวมกนได" เครอขายนนมหลายขนาด ตงแตขนาดเลกทเชอมตอกนดวยคอมพวเตอรเพยงสองสามเครอง เพอใชงานในบานหรอในบรษทเลกๆ ไปจนถงเครอขายขนาดใหญทเชอมตอกนทวโลกสวน Home Network หรอเครอขายภายในบาน ซงเปนระบบ LAN (Local Area Network) ทคณผอานจะไดพบตอไปนเปนระบบเครอขายคอมพวเตอรขนาดเลกๆ หมายถงการน าเครองคอมพวเตอรและอปกรณมาเชอมตอกนในบาน สงทเกดตามมากคอประโยชนในการใชคอมพวเตอรดานตางๆ เชน

2.1.1.1 การใชทรพยากรรวมกน หมายถง การใชอปกรณตางๆ เชน เครองพมพรวมกน กลาวคอ มเครองพมพเพยงเครองเดยว ทกคนในเครอขายสามารถใชเครองพมพนได ท าใหสะดวกและประหยดคาใชจาย เพราะไมตองลงทนซอเครองพมพหลายเครอง (นอกจากจะเปนเครองพมพคนละประเภท)

2.1.1.2 การแชรไฟล เมอคอมพวเตอรถกตดตงเปนระบบเนตเวรกแลว การใชไฟลขอ มลรวมกนหรอการแลกเปลยนไฟลท าไดอยางสะดวกรวดเรว ไมตองอปกรณเกบขอมลใดๆ ทงสนในการโอนยายขอมลตดปญหาเรองความจของสอบนทกไปไดเลย ยกเวนอปกรณในการจดเกบขอ มลหลกอยางฮารดดสก หากพนทเตมกคงตองหามาเพม

2.1.1.3 การตดตอสอสาร โดยคอมพวเตอรทเชอมตอเปนระบบเนตเวรก สามารถตดตอพดคยกบเครองคอมพวเตอรอน โดยอาศยโปรแกรมสอสารทมความสามารถใชเปนเครองคอมพวเตอรไดเชนเดยวกน หรอการใชอเมลภายในกอใหเครอขาย Home Network หรอ Home Office จะเกดประโยชนนอกมากมาย

2.1.1.4 การใชอนเทอรเนตรวมกน คอมพวเตอรทกเครองทเชอมตอในระบบ เนตเวรกสามารถใชงานอนเทอรเนตไดทกเครอง โดยมโมเดมตวเดยว ไมวาจะเปนแบบอนาลอกหรอแบบดจตอลอยาง ADSL ยอดฮตในปจจบน

(1) LAN (Local Area Network) ระบบเครองขายทองถน เปนเนตเวรกในระยะทางไมเกน 10 กโลเมตร ไม

ตองใชโครงขายการสอสารขององคการโทรศพท คอจะเปนระบบเครอขายทอยภายในอาคารเดยวกนหรอตางอาคาร ในระยะใกลๆ

Page 3: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

6

(2) MAN (Metropolitan Area Network) ระบบเครอขายเมอง เปนเนตเวรกทจะตองใชโครงขายการสอสารของ

องคการโทรศพท หรอการสอสารแหงประเทศไทย เปนการตดตอกนในเมอง เชน เครองเวรกสเตชน อยทสขมวท มการตดตอสอสารกบเครองเวรกสเตชน ทบางรก

(3) WAN (Wide Area Network) ระบบเครอขายกวางไกล หรอเรยกไดวาเปน World Wide ของระบบเนต

เวรก โดยจะเปนการสอสารในระดบประเทศ ขามทวปหรอทวโลก จะตองใช (Media) ในการสอสารขององคการโทรศพท หรอการสอสารแหงประเทศไทย (คสายโทรศพท dial-up / คสายเชา Leased line / ISDN) (Integrated Service Digital Network สามารถสงไดทงขอมล เสยง และภาพในเวลาเดยวกน) ระบบเครอขายคอมพวเตอรไดกลายเปนสวนหนงขององคกร สถาบนการศกษาและบานไปแลวการใชทรพยากรรวมกนไดท งไฟล เครองพมพ ตองใชระบบเครอขายเปนพนฐาน ระบบเครอขายจะหมายถง การน าคอมพวเตอรตงแต 2 เครองขนไปมาเชอมตอกนเพอจะท าการแชรขอมล และทรพยากรรวมกน เชน ไฟลขอมลและเครองพมพ ระบบเครอขายสามารถแบงออกเปน 3 ประเภทดวยกนคอ

2.1.1.5 ประเภทของระบบเครอขาย (1) Peer To Peer เปนระบบทเครองคอมพวเตอรทกเครองบนระบบเครอขายม

ฐานเทาเทยมกน คอทกเครองสามารถจะใชไฟลในเครองอนได และสามารถใหเครองอนมาใชไฟลของตนเองไดเชนกน ระบบPeer To Peer มการท างานแบบ (Distributed System) โดยจะกระจายทรพยากรตางๆ ไปสเวรกสเตชน อนๆ แตจะมปญหาเรองการรกษาความปลอดภย เนองจากขอมลทเป นความลบจะถกสงออกไปสคอมพวเตอรอนเชนกนโปรแกรมทท างานแบบ Peer To Peer คอ Windows for Workgroup และ Personal Netware ดงแสดงในภาพท 2-1

ภาพท 2-1 การเชอมตอแบบ Peer To Peer

Page 4: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

7

(2) Client/Server เปนระบบการท างานแบบ Distributed Processing หรอการประมวลผลแบบกระจาย โดยจะแบงการประมวลผลระหวางเครองเซรฟเวอรกบเครองไคลเอนต แทนทแอพพลเคชน จะท างานอยเฉพาะบนเครองเซรฟเวอร กแบงการค านวณของโปรแกรมแอพพลเคชน มาท างานบนเครองไคลเอนตดวย และเมอใดทเครองไคลเอนตตองการผลลพธของขอมลบางสวน จะมการเรยกใชไปยง เครองเซรฟเวอรใหน าเฉพาะขอมลบางสวนเทานนสงกลบ มาใหเครองไคลเอนตเพอท าการค านวณขอมลนนตอไป ดงแสดงในภาพท 2-2

ภาพท 2-2 การเชอมตอแบบ 2 Client / Server

(3) LAN Topology ก ารเช อม ตอแบบบส จะ มส ายหลก 1 เส น เค รอง

คอมพวเตอรทงเซรฟเวอรและ Client ทกเครองจะตองเชอมตอสายเคเบลหลกเสนน โดยเครองคอมพวเตอรจะถกมองเปน Node เมอเครอง Client เครองทหนง (Node A) ตองการสงขอมลใหกบเครอง ทสอง (Node C) จะตองสงขอมลและแอดเดรสของ Node C ลงไปบนบสสายเคเบลน เมอเครองท Node C ไดรบขอมลแลวจะน าขอมลไปท างานตอทนท ดงแสดงในภาพท 2-3

ภาพท 2-3 รปแบบการเชอมตอของระบบเครอขาย LAN Topology

Page 5: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

8

(4) Ring การเชอมตอแบบวงแหวน เปนการเชอมตอจากเครองหนงไปยงอกเครองหนง จนครบวงจร ในการสงขอมลจะสงออกทสายสญญาณวงแหวน โดยจะเปนการสงผานจากเครองหนง ไปสเครองหนงจนกวาจะถงเครองปลายทาง ปญหาของโครงสรางแบบนคอ ถาหากมสายขาดในสวนใดจะท า ใหไมสามารถสงขอมลได ระบบ Ring มการใชงานบนเครองตระกล IBM กนมาก เปนเครองขายToken Ring ซงจะใชรบสงขอมลระหวางเครองมนหรอเมนเฟรมของ IBM กบเครองลกขายบนระบบ ดงแสดงในภาพท 2-4

ภาพท 2-4 การเชอมตอแบบ Ring

(5) Star การเชอมตอแบบสตาร ใชอปกรณ Hub เปนศนยกลางในการเชอมตอ

โดยททกเครองจะตองผาน Hub สายเคเบลทใชสวนมากจะเปน UTP และ Fiber Optic ในการสงขอมล Hub จะเปนเสมอนตวทวนสญญาณ (Repeater) ปจจบนมการใช Switch เปนอปกรณในการเชอมตอซงมประสทธภาพการท างานสงกวาภาพ ดงแสดงในภาพท 2-5

ภาพท 2-5 การเชอมตอแบบ Star

Page 6: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

9

(6) Hybrid เปนการเชอมตอทผสมผสาน เครอขายยอยๆ หลายสวนมารวมเขาดวยกน เชนน าเอาเครอขายระบบ Bus, ระบบ Ring และ ระบบ Star มาเชอมตอเขาดวยกน เหมาะส าหรบบางหนวยงานทมเครอขายเกาและใหมใหสามารถท างานรวมกนได ซงระบบ Hybrid Network นจะมโครงสรางแบบ Hierarchical หรอ Tree ทมล าดบชนในการท างาน ดงแสดงในภาพท 2-6

ภาพท 2-6 การเชอมตอแบบ Hybrid

(7) เครอขายแบบไรสาย (Wireless LAN) อกเครอขายทใชเปนระบบแลน

(LAN) ทไมไดใชสายเคเบลในการเชอมตอ นนคอระบบเครอขายแบบไรสาย ท างานโดยอาศยคลนวทย ในการรบสงขอมล ซงมประโยชนในเรองของการไมตองใชสายเคเบล เหมาะกบการใชงานทไมสะดวกในการใชสายเคเบล โดยไมตองเจาะผนงหรอเพดานเพอวางสาย เพราะคลนวทยมคณสมบตในการทะลทะลวงสงกดขวางอยาง ก าแพง หรอพนงหองไดด แตกตองอยในระยะท าการ หากเคลอนยายคอมพวเตอรไปไกลจากรศมกจะขาดการตดตอได การใชเครอขายแบบไรสายน สามารถใชไดกบคอมพวเตอรพซ และโนตบก และตองใชการดแลนแบบไรสายมาตดตง รวมถงอปกรณทเรยกวา Access Point ซงเปนอปกรณจายสญญาณส าหรบระบบเครอขายไรสาย มหนาทรบสงขอมลกบการดแลนแบบไรสาย ดงแสดงในภาพท 2-7

ภาพท 2-7 การเชอมตอแบบเครอขายแบบไรสาย (Wireless LAN)

Page 7: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

10

2.1.1.6 อปกรณในระบบเครอขายคอมพวเตอร (Network Equipment) ในการเชอมตอระบบเครอขายคอมพวเตอร อปกรณพ นฐานนอกจาก

คอมพวเตอร 2 ตวขนไปแลวยงตองประกอบดวยอปกรณตาง ๆ ดงตอไปนเนตเวรคการด (Network Card)การดเนตเวรก หมายถง แผงวงจรส าหรบใชในการเชอมตอสายสญญาณของเครอขาย จะตดตงไวในเครองคอมพวเตอรทเปนเครองแมขายและเครองทเปนลกขาย หนาทของการด คอ แปลงสญญาณจากคอมพวเตอรสงผานไปตามสายสญญาณ ท าใหคอมพวเตอรในเครอขายแลกเปลยนขอมลขาวสารกนได

(1) บส ISA ซงปจจบนไมนยมใชงานแลวปจจบนไมนยมใชงานแลว จะเหนวาทดานหลงมขวเชอมตอแบบ Au ขวเชอมตอแบบ RJ-4 จะตองท างานรวมกบจะตองท างานรวมกบกลอง Hub สวนข วเชอมตอ แบบ BNC ท างาน เพราะใช T-ConnectorConnector และ Terminator (ตวปดหวทาย) แทนการดเนตเวรคจะมหลายแบ ดวยกน ขนอยกบสลอตบนเครองอยกบสลอตบนเครองคอมพวเตอร องคอมพวเตอร เชน ISA, PCI, PCMCIA USB Port ดงแสดงในภาพท 2-8

ภาพท 2-8 เนตเวรคการด แบบ ISA

(2) PCI (Peripheral Component Interconnect) เปนระบบบสท ไดรบความ

นยมสงมาก ซงไดเขา ม แทนบสแบบ ISA PCI บสมอตราการสงผานขอมลสงถง บสมอตราการสงผาน 133 เมกกะไบตตอวนาท สามารถ ก าหนดคา IRQ,DMA, IRQ,DMA, Memory Address ใหอปกรณและการดอนเทอรเฟซอตโนมต เมอเสย การดเนตเวรค แบบ PCI ลงไปบนเครองลงไปบนเครองแลว สวนมากจะมองเหนและใชงานไดทนท ดงแสดงในภาพท 2-9

Page 8: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

11

ภาพท 2-9 เนตเวรคการดแบบ PCI (Peripheral Component Interconnect)

(3) PCMCIA MCIA (Personal Computer Memory Card International

Association) เลกเทากบบตรเครดตเปนอปกรณขยายระบบเปนอปกรณขยายระบบใหคอมพวเตอร Notebook เชน แฟกซ โมเดม การดเนตเวรค หรอ ฮารดดสกขนาดฮารดดสกขนาดเลก ดงแสดงในภาพท 2-10

ภาพท 2-10 เนตเวรคการด แบบ PCMCIA

(4) USB B Port (Universal Serial Bus) เปนพอรตเชอมตอแบบใหมท สามารถ

จะน าอปกรณเขามา เชอมตอไดจ านวนมากถง 100 กวาตว ดงแสดงในภาพท 2-11

ภาพท 2-11 เนตเวรคการดแบบ USB Port (Universal Serial Bus)

Page 9: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

12

(5) โมเดม (Modems) เปนอปกรณส าหรบคอมพวเตอรอยางหนงทชวยใหคณสมผสกบโลกภายนอกไดอยางงายดาย โมเดมเปนเสมอนโทรศพทส าหรบคอมพวเตอรทจะชวยใหระบบคอมพวเตอรของคณสามารถสอสารกบคอมพวเตอรอนๆ ไดทวโลก โมเดมจะสามารถท างานของคณใหส าเรจไดกดวยการเชอมตอระหวางคอมพวเตอรของคณเขาคสายของโทรศพทธรรมดาคหนงซงโมเดมจะท าการแปลงสญญาณดจตอล (digital signals) จากเครองคอมพวเตอรใหเปนสญญาณอนาลอก (analog signals) เพอใหสามารถสงไปบนคสายโทรศพท

(5.1) Wireless modem หรอโมเดมไรสาย ดงแสดงในภาพท 2-12

ภาพท 2-12 External Modem

(5.2) ฮบ (Hub) ดงแสดงในภาพท 2-13

ภาพท 2-13 ฮบ (Hub)

(5.3) บรดจ (Bridge) ดงแสดงในภาพท 2-14

ภาพท 2-14 บรดจ (Bridge)

Page 10: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

13

(5.4) สวตช (Switch) ดงแสดงในภาพท 2-15

ภาพท 2-15 สวตช (Switch)

(5.5) เราทเตอร (Router) ดงแสดงในภาพท 2-16

ภาพท 2-16 เราทเตอร (Router)

(5.6) เกตเวย (Gateway) ดงแสดงในภาพท 2-17

ภาพท 2-17 เกตเวย (Gateway)

Page 11: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

14

2.1.1.7 โมเดม (Modems) มาจากค าวา (modulate/demodulate) ผสมกน หมายถง กระบวนการแปลงขอมลขาวสารดจตอลใหอยในรปของอนาลอกแลวจงแปลงสญญาณกลบเปนดจตอลอกครงหนงเมอโมเดมของคณตอเขากบโมเดมตวอนความแตกตางของโมเดมแตละประเภทโมเดมแตละประเภทจะมคณลกษณะทแตกตางกน ดงน

(1) ความเรวในการรบ – สงสญญาณ หมายถง อตรา (rate) ทโมเดมสามารถท าการแลกเปลยนขอมลกบโมเดมอนๆ มหนวยเปน บต/วนาท (bps) หรอ กโลบต/วนาท (kbps) ในการบอกถงความเรวของโมเดมเพอใหงายในการพดและจดจ า มกจะตดเลขศนยออกแลวใชตวอกษรแทน เชน โมเดม 56,000 bps จะเรยกวา โมเดมขนาด 56 K

(2) ความสามารถในการบบอดขอมล ขอมลขาวสารทสงออกไปบนโมเดมนนสามารถท าใหมขนาดกะทดรดดวยวธการบบอดขอมล (compression) ท าใหสามารถสงขอมลไดครงละเปนจ านวนมากๆ เปนการเพมความเรวของโมเดมในการรบ - สงสญญาณ

(3) ความสามารถในการใชเปนโทรสาร โมเดมรนใหมๆ สามารถสงและรบโทรสาร (Fax capabilities) ไดดเชนเดยวกบการรบ - สงขอมล หากคณมซอฟทแวรทเหมาะสมแลวคณสามารถใชแฟคซโมเดมเปนเครองพมพ(printer)ไดเมอคณพมพเขาไปทแฟคซโมเดมมนจะสงเอกสารของคณไปยงเครองโทรสารทปลายทางได

(4) ความสามารถในการควบคมความผดพลาด โมเดมจะใชวธการควบคมความผดพลาด (error control) ตางๆ มากมายหลายวธในการตรวจสอบเพอการยนยนวาจะไมมขอมลใดๆสญหายไประหวางการสงถายขอมลจากคอมพวเตอรเครองหนงไปยงอกเครองหนง

(5) ออกแบบใหใชไดทงภายในและภายนอก โมเดมทจ าหนายในทองตลาดทวๆ ไปจะม 2 รปแบบ คอ โมเดมแบบตดตงภายนอก (external modems) และ แบบตดตงภายใน (internal modems)

(6) ใชเปนโทรศพทได โมเดมบางรนมการใสวงจรโทรศพทธรรมดาเขาไปพรอมกบความสามารถในการรบ – สงขอมลและโทรสารดวย

2.1.2 ความรทวไปเกยวกบเครอขาย 2.1.2.1 แมคแอดเดรส (MAC Address) ยอมาจาก Media Access Card Addressเปนตว

เลขทก าหนดใหอปกรณเครอขาย โดยจะมตวเลขไมซ ากน มขนาด 6 ไบต(48 บต) ประกอบดวย 3 ไบตแรก บอกรหสผผลต 3 ไบตสดทายเปนตวเลขของอปกรณ แมคแอดเดรสมตวเลขเปนเลขฐาน 16 อาจจะใชวธเขยนไดหลายรปแบบ เชน การใชโคลอนขนxx:xx:xx:xx:xx:xx การใชชางวาง xx xx xx xx xx xx การใช – ขนระหวาง 3 ตวเลขแรกกบ 3 ตวเลขหลง xxxxxx-xxxxxx

Page 12: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

15

2.1.2.2 ไอพแอดเดรส (IP Address) ยอมาจาก Internet Protocol Address เปนหมายเลขประจ าคอมพวเตอรและอปกรณ ตางๆ ทเชอมตออยในเครอขาย เพอใชระบทอยหรอต าแหนงของคอมพวเตอรและอปกรณโดย ไมซ ากนท าใหคอมพวเตอรและอปกรณสามารถตดตอสอสารหรอรบสงขอมลไดอยางถกตอง ไอ พแอดเดรสมลกษณะเปนตวเลข 4 กลม แตละกลมจะคนดวยเครองหมายหพภาค (.) เชน 192.168.1.22 ไอพแอดเดรสกเปรยบเทยบไดกบเลขทบาน ซงบานแตละหลงจะตองมเลขทบาน ทไมซ ากน เพราะถาซ ากนแลว บรษไปรษณยจะหาทอยไมเจอ ทาใหสงจดหมายไมได ไอพ แอดเดรสในปจจบนยงคงใชเวอรชน 4 แตในอนาคตจะนาเวอรชน 6 มาใช ( IPV6 ) ตามปกต ส าหรบผใชอนเทอรเนตตามบานทวไป จะไดไอพแอดเดรสมากตอเมอใชโมเดมเชอมตอไปยงผ ใหบรการอนเทอรเนต ซงจะไดไอพแอดเดรสมาใชชวคราว 1 หมายเลขทใชไดจรงบน อนเทอรเนต (Public IP Address) และเมอตดการเชอมตอจากผใหบรการ อนเทอรเนตแลว หมายเลขไอพแอดเดรสทไดรบมานกจะถกยกเลก ถาเชอมตอครงใหมกจะได ไอพแอดเดรสชดใหมมาอก เปนแบบนเรอยไป โดยสามารถตรวจดไอพแอดเดรสทไดรบมาจาก ผ ใหบรการอนเทอรเนตไดจากการใชคา สง ipconfig บน Command Prompt ดงแสดงในภาพท 2-18

ภาพท 2-18 การแจกไอพแอดเดรสแบบชวคราว

ยงมการใชไอพแอดเดรสอกแบบหนง คอการไดไอพแอดเดรสแบบคงทโดยไม

ตอง เปลยนไปเรอยเหมอนผใชตามบาน ซงจะไดมาจากผใหบรการอนเทอรเนตเชนเดยวกน เชน ได ไอพแอดเดรสคลาสซ จานวน 1 คลาส มจานวนไอพแอดเดรสทสามารถนาไปก าหนดบน คอมพวเตอรได 254 เลขหมาย สวนใหญแลวการไดรบไอพแอรสเดรสแบบคงทนมกจะเปน องคกรขนาดกลางและขนาดใหญทมการเชอมตอไปยงผใหบรการอนเทอรเนตโดยใชลสไลนหรอ โมเดมเอดเอสแอล แตส าหรบเครอขายอนทราเนตนน จะสามารถก าหนดไอพแอดเดรสไดเอง ตามตองการ โดยใชไอพแอดเดรสแบบภายใน (Private IP Address) และถกก าหนดจากผดแล ระบบเครอขายในองคกร

Page 13: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

16

เพอความเขาใจทงายขน ไอพแอดเดรสจงถกเขยนใหอยในรปแบบเลขฐานสบทม เครองหมายมหพภาค (.) คนไว เชน 192.168.0.1 แตเวลาเกบคาใน คอมพวเตอรจะเปนเลขฐานสอง มท งหมด 32 บต แบงเปน 4 กลมๆละ 8 บต ตวเลขแตละกลม จะเกบคาทเปนตวเลขฐานสองไดถง 256 คา คอตงแต 0 ถง 255 ดงแสดงในตารางท 2-1

ตารางท 2-1 ไอพแอดเดรสทเปนเลขฐานสองและฐานสบ

ไอพแอดเดรสประกอบดวยสองสวนหลก คอ เนตเวรคไอด(Network ID) กบ โฮสตไอด (Host ID) ส าหรบเนตเวรคไอดเปนตวบอกถงขอบเขตเครอขาย โดยไอพแอดเดรสทม เนตเวรค ไอดเหมอกน หมายความวาอยในเครอขายเดยวกน สวนโฮสตไอดเปนตวก าหนดทอยหรอ ต าแหนงของคอมพวเตอรหรออปกรณนนๆ ตวอยางเชน มคอมพวเตอรสองเครอง ถกก าหนด ไอพแอดเดรสทอยในคลาสซ ซงเครองทหนงมไอพแอดเดรส 192.168.10.1 สวนเครองทสองม ไอพแอดเดรส 192.168.10.2 ทาใหเราบอกไดวาคอมพวเตอรทงสองเครองนอยในเครอขาย เดยวกน เพราะมเนตเวรคไอดเหมอนกน คอ 192.168.10.x แตโฮสตไอดตางกน คอ 1 และ 2 ทระบวาเปนเครองท1 และ 2 ตามลาดบ สวนทเปนเนตเวรคไอดจะเปลยนแปลงไมได สวนทเปลยนแปลงไดคอ โฮสตไอดซงนาไปก าหนดใหกบคอมพวเตอรในเครอขาย

ไอพแอดเดรสมการแบงขอบขายออกหลายระดบหรอทเรยกวา “คลาส”(Class) โดยถก แบงไว 5 คลาส คอ คลาส A,B,C,D และ E แตทใชกนในระบบเครอขายทวไปจะใชกน 3 คลาส คอ A,B,C สวนคลาส D เอาไวใชในเครอขายมลตคลาส( Multicast) และทเหลอคอคลาส E ถก สงวนไว ไมมการใชงาน ซงดหมายเลขไอพแอดเดรสของแตละคลาสไดดงแสดงในตารางท 2-2

ตารางท 2-2 ไอพแอดเดรสของแตละคลาส

Page 14: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

17

คลาส A มไอพแอดเดรสทงหมด 126 เครอขาย ในแตละคลาสจะก าหนดไอพแอดเดรส ได 16 ลานเครองสวนทเปนเนตเวรคไอดคอตวเลขหนงชดทางซาย (8 บต) สวนตวเลขสามชด หลงทางขวาคอ โฮสตไอด(24บต) ซงสามารถเปลยนแปลงได โดยผดแลระบบเครอขายจะ ก าหนดสวนทเปน โฮสตไอดเพอแจกจายใหกบคอมพวเตอรในเครอขาย ซงไอพแอดเดรสคลาส A จะใชกบองคกรขนาดใหญ ดงแสดงในตารางท 2-3

ตารางท 2-3 ตวอยาง เนตเวรคไอดกบ โฮสตไอดของไอพแอดเดรสคลาส A

คลาส B มไอพแอดเดรสทงหมด 16,384 เครอขาย ในแตละคลาสจะก าหนดไอพ แอดเดรสได 65,534 เครองสวนทเปน Network ID คอตวเลขหนงชดทางซาย (16 บต) สวน ตวเลขสามชดหลงทางขวาคอ Host ID (16บต) ซงไอพแอดเดรสคลาส B เหมาะส าหรบองคกร ขนาดกลาง ดงแสดงในตารางท 2-4

ตารางท 2-4 ตวอยาง เนตเวรคไอดกบ โฮสตไอดของไอพแอดเดรสคลาส B

คลาส C มไอพแอดเดรสทงหมด 2,097,152 เครอขาย ในแตละคลาสจะก าหนดไอพ แอดเดรสได 254 เครองสวนทเปน เนตเวรคไอดคอตวเลขสามชดแรกทางซาย (24บต) หนงชดทเหลอทางขวาคอ โฮสตไอด(8บต) ซงไอพแอดเดรสคลาส Cจะใชในองคกรขนาดเลก ดงแสดง ในตารางท 2-5

ตารางท 2-5 ตวอยาง เนตเวรคไอดกบ โฮสตไอดของไอพแอดเดรสคลาส C

Page 15: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

18

2.1.2.3 ซบเนตมารค เปนคาทระบวาคอมพวเตอรเครองนอยในเครอขายใด หรอเปนคาทแบงกลมเครอขาย โดยตองสอดคลองกบคลาสของไอพแอดเดรส ซบเนตมาสคจะเปนตวเลข 4 ชด เชนเดยวกบไอ พแอดเดรส แตตะมคาเปน 0 กบ 255 เทานน (บางกรณกเปนคาอนได เมอถกแบงซบเนต) ซบเนตมาสคมการแบงไวส าหรบไอพแอดเดรสทง 3 คลาส ดงตารางท 2-6

ตารางท 2-6 คาซบเนตมาสค

ซบ เนตมาสคส าห รบคลาส A ม เลข 255 จ านวนหนงชด คอ 255.0.0.0 ห ม าย ค ว าม ว า ใ น เค ร อ ข า ย น จ ะ ม ไ อ พ แ อ ด เด รส ห น ง ช ด แ รก ท เห ม อ น ก น เช น 10.0.0.1,10.1.50.6,10.2.33.4 จง ถอวาไอพแอดเดรสทงหมดนอยในเครอขายเดยวกน

ซบเนตมาสคส าหรบคลาส B ม เลข 255 จ านวนสองชด คอ 255.255.0.0 หมายความวา ในเครอขายนจะมไอพแอดเดรสสองชดแรกท เหมอนกน เชน 172.30.9.1, 172.30.93.2, 172.30.93.77 จงถอวาไอพแอดเดรสทงหมดนอยในเครอขายเดยวกน

2.1.2.4 ไอพแอดเดรสทใชงานในเครอขายสวนตว เปนไอพแอดเดรสทไมสามารถก าหนดใหกบเครองทวไป สงวนใชในเครอขายสวนตวเทานน ไมสามารถใชในเครอขายภายนอกอยางอนเทอรเนต

คลาส A คอเครอขาย 10.0.0.0 คลาส B คอเครอขาย 172.16.0.0 – 173.31.0.0 คลาส C คอเครอขาย 192.168.0.0 – 192.168.255.0

Page 16: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

19

2.1.3 โพรโทคอล (Protocol ) โพรโทคอลเปนมาตรฐานในการสอสารขอมลของคอมพวเตอร หรออาจกลาวไดวาเปน

ภาษาทคอมพวเตอรใชสอสารกน ดงนนการทคอมพวเตอรทตองการสอสารกนจาเปนตองใชภาษาหรอโพรโตคอลเดยวกน เพราะไมเชนนนคอมพวเตอรกจะสอสารกนไมไดปจจบนโพรโตคอลทเปนท นยมใชมากท สดคอ โพรโทคอลท ซพ ไอพ (TCP/IP)ยอมาจากTransmission Control Protocol/Internet Protocol

โพรโทคอลทซพ ไอพ ถกพฒนามาแลวกวา 20 ป ซงจดประสงคของการวจยกเพอเชอมตอคอมพวเตอรทตางแพลตฟอรมกนใหสามารถสอสารกนผานเครอขายได ซงสามารถทาไดโดยการแบงโพรโทคอลเปนชน และเปนการแยกการทางานของแอพพลเคชนของผใชออกจากฮารดแวรทใชรบสงขอมลผานเครอขาย ชดโพรโทคอลนจะมรปแบบทแตกตางจากแบบอางองโอเอสไอ( OSI ) เลกนอย การออกชดโพรโทคอลทซพ ไอพ จะมงเนนไปทการเชอมตอระหวางระบบทตางกน ในขณะทแบบอางองโอเอสไอ จะเนนไปทการแบงการทางานของโพรโทคอลออกเปนชนๆ โพรโทคอลทซพ ไดกลายเปนมาตรฐานกลางในการสอสารขอมลของคอมพวเตอร เนองจากเปนภาษาทใชในระบบอนเทอรเนต ดงนนเครอขายสมยใหมจงจาเปนทตองสรางใหสามารถรองรบโพรโทคอลน

บนแสดงการเปรยบเทยบชนของโพรโทคอลระหวางแบบอางองโอเอสไอ และ ทซพ ไอพ ซงแบงโพรโทคอลออกเปน 4 เลเยอร คอ ชนประยกตใชงาน (Application Layer), ชนทรานสปอรท(Transport Layer),ชนอนเทอรเนต(Internet)และชนเขาใชเครอขาย(Network Access) การเปรยบเทยบการท างานของโพรโทคอลทซพ ไอพ กบแบบอางองโอเอสไอ นนอาจ ไมตรงมากนก เพราะมบางโพรโทคอลของ ทซพ ไอพ ททางานมากกวาหนงชน แตรป ดงกลาวกเปรยบเทยบใหเหนภาพพอคราวๆ ดงแสดงในตารางท 2-7

ตารางท 2-7 เปรยบเทยบโพรโทคอลแบบอางองโอเอสไอและโพรโทคอลทซพไอพ

Page 17: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

20

หลกการทางานของโพรโทคอลทซพ ไอพ สรปไดดงนคอ การสอสารจะเรมจากแอพพลเคชนของผใชสงขอมลใหกบโพรโทคอลในชนแอพพลเคชน หลงจากนนชนแอพพลเคชนจะ เพมขอมลสวนหวซงจะประกอบดวยชอของคอมพวเตอรทตองการสอสาร และหมายเลขพอรต ของเครองนน ขอมลกจะถกสงตอไปยงชนทรานสปอรท ซงอาจจะใชโพรโทคอลทซพ(TCP) หรอ ยดพ (UDP) ขนอยกบแอพพลเคชนทใชเมอชนนไดรบขอมลกจะแบงขอมลออกเปน สวนยอยๆ ซงแตสวนจะถกเพมขอมลสวนหวเขาไป ขอมลสวนยอยๆ นจะเรยกวา เซกเมนต (Segment)

ขอมลสวนหวของแตละเซกเมนตจะถกเพมเขาไปอยางเหมาะสม หลงจากนนแตละเซก เมนตกจะถกสงตอไปใหชนอนเทอรเนต เมอขอมลมาถงชนนกจะถกเพมขอมลสวนหวใหแตละ เซกเมนตเชนกน ขอมลทเพมเขาไป เชน หมายเลขไอพ,ประเภทของโพรโทคอลทใช (ทซพ หรอ ยดพ) และ เชคซม (Checksum) เปนตน ถาขอมลทสงมามการแบงยอยอกกจะมการเพม 11

ขอมลทเกยวของกบการแบงยอยเพมเขาไปดวย ชดขอมลทอยในชนนจะเรยกวา แพคเกต (Packet) หลงจากนนแตละแพคเกตขอมลกสงตอไปใหชนเขาใชเครอขาย เพอสงขอมลไปตาม ชองสอสารตอไป เมอแพกเกตเดนทางไปถงทหมาย เครองปลายทางกจะทาตามขนตอนทตรงกนขามกบเครองสง และขอมลกจะถกสงผานตอไปใหแอพพลเคชนเพอนาขอมลไปโพรเชส ตอไป

2.1.4 โพรโทคอลทซพ (Protocol TCP)

โพรโทคอลท ซทพ ยอมาจาก Transmission Control Protocol โพรโทคอลท ซพ ใหบรการในการรบสงขอมลของโพรโทคอลในระดบชนสอสารท 7 เชน โพรโทคอลเฮชททพ (HTTP) โพรโทคอลเทลเนต(Telnet) โพรโทคอลเอฟทพ(FTP) เปนตน โพรโทคอลทซพเปนโพร โทคอลทใหบรการในดานของ ความเชอถอของการสงขอมล (Reliability)การเรยงลาดบของไบต ของทซพทภาครบกอนสงใหโพรโทคอลในระดบชนสอสารท 7 การแบงยอยและการแบงยอย เซกเมนต(Segmentation) การควบคมอตราการสง (Flow Control) การตรวจสอบความ ผดพลาด(Error Detection) การตรวจสอบและแกไขการสญหายของเซกเมนต(Loss recovery) การควบคมการคบคงของปรมาณทราฟฟกของขอมล (Congestion Control)

ขนตอนการสรางการเชอมตอของโพรโทคอลทซพแบบเชอถอได คอ ตองมการเรมตนเชอมตอกนกอนถงจะตดตอกนได คลายการโทรศพททเรมโทรตองรอฝงตรงขามรบถงจะเรมพดคยเรมตดตอสอสาร การเรมตนตดตอสอสารในโพรโทคอล นมขนตอน 3 ขนตอน ดงภาพท 2-19

Page 18: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

21

ภาพท 2-19 การแลกเปลยนของเซกเมนตของโพรโทคอลทซพ

2.1.4.1 ฝงลกขายสงแพคเกตทตงคา SYN flag ไปยงฝง แมขาย ขนตอนนเปนการขอ

เรมตดตอสอสาร 2.1.4.2 ฝงแมขาย สงแพคเกต ทต งคา SYN flagและACK flag กลบไปยงฝง ลกขาย

ขนตอนนคลายเปนการบอกตอบรบการตดตอสอสาร 2.1.4.3 ฝงลกขายสงแพคเกต ทตงคา ACK flag กลบไปยงฝงแมขายอกครง ขนตอนน

คลายเปนการยนยนการตดตอสอสารหาก 3 ขนตอนนส าเรจเทากบวาตดตอส าเรจ การตดตอสอสารระหวาง ลกขายกบ แมขายกจะเรมตนขนได ขบวนการเลกการเชอมตอของโพรโทคอลทซพเมอตดตอสอสารสงขอมลเรยบรอยแลว การจบการตดตอสอสารกตองมขนตอนดวย ขนตอนคลายๆ กบการเรมตดตอสอสารคอ ม 3 ขนตอนเชนกน

2.1.4.4 ฝงทตองการตดการสอสารสมมตวาเปนฝงลกขายจะสงแพคเกต ทตงคา FIN flag ไปยงฝงแมขาย ขนตอนนคลายเปนการบอกวาจะหยดการตดตอสอสาร

2.1.4.5 ฝงแมขาย สงแพคเกต ทตงคา FIN flag และ ACK flag กลบไปยงฝง ลกขายขนตอนนคลายเปนการบอกตอบรบการหยดตดตอสอสาร

2.1.4.6 ฝงลกขาย สงแพคเกต ทตงคา ACK flag กลบไปยงฝงแมขายอกครง ขนตอนนคลายเปนการยนยนการหยดตดตอสอสาร คณสมบตของโพรโทคอลทซพ การสงขอมลของโพรโทคอลทซพเปนแบบทเชอถอไดและจะดแลความสมบรณของขอมลใหโดยผเขยนโปรแกรมไมตองทางานในสวนน เมอมการสงขอมล การทางานของโพรโทคอลจะไมสงโดยทนท แตขอมลจะถกนาไปเกบไวใน บฟเฟอร(buffer) ซงถกจดการโดยระบบปฏบตการ) กอนจนกวาจะพรอมสง และใน

Page 19: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

22

ขณะนนถาหากวาแอพพลเคชน ตองการสงขอมลเพมอกขอมลทตองการสงนจะถกนามาเกบรวมในบฟเฟอร เมอพรอมสงจะสงออกไปดวยกนโดยไมแยกวาขอมลชดใดมากอนหลง สวนนอาจเปน ปญหาได ดงภาพ ตรงสวนนผเขยนโปรแกรมตองทา งานแยกขอมลทตองการเอาเอง ดงภาพท 2-20

ภาพท 2-20 ลกษณะการสงขอมลของโพรโตคอลทซพ

จะเหนไดวาแอพพลเคชน ฝงแมขาย รบขอมลมาทละ 2 ชดเลยนนคอ data1 กบ

data2 ตรงนผเขยนโปรแกรมตองหาวธในการแยกขอมลทงสองออกจากกน หรออาจจะหาวธในการรบขอมลมาทละสวน ดงแสดงในภาพท 2-21

ภาพท 2-21 ลกษณะการสงขอมลของโพรโตคอลทซพทผเขยนโปรแกรมตองจกการแยกขอมลเอง

Page 20: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

23

2.1.5 พอรต (Port) พอรต เปนชองทางการสอสารของคอมพวเตอรทเปดบรการตางๆ โดยหากเปรยบไอพ

แอดเดรสเปนเลขทบาน หมายเลขพอรตกอาจจะเปรยบไดกบประตบานหรอประตหองยกตวอยางเชน เราตองการเดนไปหาเพอนทอยหอพกแหงหนง ดงนนเราจะตองรทอยของหอพกกบหมายเลขของหองพก แลวจงเดนทางไปหาหอพกและหาหองพกได เปรยบเทยบกบเราตองรไอพแอดเดรสกบหมายเลขพอรตของเครองคอมพวเตอรปลายทาง จงจะเขาไปใชบรการบนเครองคอมพวเตอรเครองนนๆ ได และเครองคอมพวเตอรหนงเครองสามารถเปดบรการไดหลายอยาง โดยบรการแตละประเภทจะมพอรตเปนของตนเอง เชน บรการ เอชททพ ใชพอรตหมายเลข 80 สวนบรการเอฟทพ ใชพอรตหมายเลข 21 เปนตน สถาบน IANA (Internet Assigned Numbers Authority) ซงเปนสถาบนทควบคมดแลการใชหมายเลขพอรต ไดจดแบงไดเปน 3 ประเภทไดแก

2.1.5.1 well Known Port เปนหมายเลขทถกก าหนดไวส าหรบแอพพลเคชนทใชกนเปนประจา เชน แอพพลเคชนทใชโพโตคอลเอชททพ มหมายเลขจาประตวคอ 80 หรอพอรตหมายเลข 110 ส าหรบแอพพลเคชนทใชโพโตคอล POPเปนตน ซงหมายเลขพอรตประเภท well Known Port มหมายเลขตงแต 0 ถง 1023 แสดงในตารางท 2-8

ตารางท 2-8 หมายเลขพอรตของบางแอพพลเคชน พอรต โพรโทคอล แอพพลเคชน 20 TCP FTP(Data) 21 TCP FTP(Control) 22 TCP SSH (Secure shell) 23 TCP Telnet 25 TCP SMTP 53 TCP/UDP DNS 80 TCP HTTP 110 TCP POP3 143 TCP IMAP 161 UDP SNMP

2.1.5.2 Registered Port เปนหมายเลขพอรตทเปดโอกาสใหลงทะเบยนขอใชได เพอ

ปองกนการใชหมายเลขพอรตซ า ซงขอใชไดตงแตหมายเลข 1,024 จนถง 49,151

Page 21: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

24

2.1.5.3 Dynamic Port จะมหมายเลขตงแต 49,152 ถง 65,535ซงหมายเลขพอรตเหลานเปนหมายเลขพอรตอสระ

2.1.6 ซอกเกต (Socket)

แมวานกออกแบบระบบจะสามารถใสสวนการเชอมตอกบซอฟแวร(Software Interface)อยางไรกได แตในทางปฏบตกลบมรปแบบของ TCP/IP Software Interface อยเพยงไมกแบบเทานน และ TCP/IP Software Interface ทนยมมอยเพยง 2 รปแบบเทานนคอ

socket Interface เปน TCP/IP Software ทพ ฒนาขน โดย University of California at Barkley ซงในตอนตนไดพฒนารปแบบการเชอมตอแบบนเพอใชกบระบบปฏบตการ Berkley Unix

Transport Layer Interface ห รอ TLI เป น TCP/IP Software Interface ท พฒ น าโด ย AT&T เพอใชกบระบบปฏบตการ System Unix

2.1.6.1 Interface Functionality แมวาทางผพฒนา TCP/IP Protocol Software Interface จะไมไดมการก าหนด

รปแบบหรอวธการใดๆในการเชอมตอ Application Software กบ TCP/IP Protocol Software แตทางผพฒนาเองกไดมขอแนะนาเกยวกบ Functions ตางๆ ทจาเปน เปนตนวา Interface จะตองสามารถรองรบการทางานตางๆ ตาม Concept ดงตอไปน

- Allocate local resources for communication - Specify local and remote communication end-points - Initiate a connection (client side) - Wait for an incoming connection(server side) - Send or receive data - Determine when data arrives - Generate urgent data - Handle urgent data - Terminate a connection gracefully - Handle connection terminate from the remote site - Abort communication - Handle error condition or a connection abort - Release local resources when communication finishes

Page 22: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

25

นอกจาก Concept ในการทางานดงทไดกลาวมาแลวขางตน ทางผ พ ฒนามาตรฐาน โพรโทคอลทซพ ไอพ ไดสราง Conceptual Interface ขนมาเพอเปนแนวทางใหนกออกแบบระบบสามารถพฒนาซอฟแวรของตนไดงายและเรวขน โดย Conceptual Interface ททางผพฒนามาตรฐาน โพรโทคอลทซพ ไอพ ไดสรางขนนนจะอยในรปของ Set of Functions เหตท Conceptual Interface อยในรปแบบของ Procedures และ Functions นนเนองมาจากในชวงเวลาทพฒนา Conceptual Interface ระบบปฏบตการตางๆ ในยคน นนยมใชว ธการซงเรยกกนวา Procedural Mechanism ใน ก าร เค ล อ น ยา ย ก ารค วบ ค ม จ าก Application Software ไป ยงระบบปฏบตการ ดงน นจงกลาวโดยสรปเกยวกบ Conceptual Interface ไดดงน “Conceptual Interface ซงถกก าหนดโดยผพฒนามาตรฐาน ทซพ ไอพ นนจะไมระบรปแบบของการแทนขอมล หรอ รายละเอยดในการเขยนโปรแกรม หากแตแสดงเพยงตวอยางหนงของการเชอมตอ ซงมความเปนไปไดในทางปฏบตการจะสามารถใหบรการแก Application Software ทตองการใชงาน โพรโทคอลทซพ ไอพ

2.1.6.2 Socket Types Sockets สามารถแบงออกเปนประเภทตามลกษณะการรบสงขอมลผานเครอขายไดเปน

3 ประเภทดงน (1) stream Sockets หรอ Connection Oriented Sockets (2) Datagram Sockets หรอ Connectionless Sockets (3) Raw Sockets

2.1.6.3 working with sockets in.Net ใน .Net การทางานทเกยวของกบ Sockets จะตองเรยกใชงาน Namespace ทชอ

วา System.Net.Sockets ซ งเปน Namespace ทบรรจ Classes ตางๆทสนบสนนการทางานกบ Sockets โดย Classes ทเกยวของกบการทางานหลกๆ กบ Sockets มดงน

- Multicast Option - Network Stream - Tcp Client - Tcp Listener - Udp Client - Socket Exception - Socket

Page 23: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

26

โดย Class Socket จะม function พ นฐานตางๆ ทจาเปนส าหรบการสราง Application ซงใชงาน Sockets ส าหรบ Properties ทส าคญส าหรบ System.Net.Sockets.Socket ไดแก

- AddressFamily 18 - Available - Blocking - Connected - LocalEndPoing - ProtocolType - RemoteEndPoing-SocketType

และ Method ทส าคญ System.Net.Sockets.Socket มดงน - Accept() - Bind() - Close() - Connect() - GetSocketOption() - IOControl() - Listen() - Receive() - Poll() - Select() - Send() - Shutdown()

2.1.6.4 Sockets Passive Sockets Passive Sockets หรอ Sockets ซงใชใน Server Applicatication น นมขนตอน

การ สรางดงภาพท 2-22 น

Page 24: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

27

ภาพท 2-22 Diagram ขนตอนการสราง Passive Sockets

2.1.6.5 Active SocketsActive Sockets ห รอ Sockets ป ระ เภท ท ใช ง าน ใน Client

Application มขนตอนการสรางดงน ดงภาพท 2-23

ภาพท 2-23 Diagram ขนตอนการสราง Active Sockets

Page 25: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

28

2.1.7 การโปรแกรมซอกเกต (Socket Programming) การพฒนาโปรแกรมเพอใหสอสารกนใน Network นน จะตองพฒนาแอพพลเคชน 2

โปรแกรมดวยกน คอ โปรแกรมททาหนาทเปนเครองไคลเอนต( Client )และโปรแกรมททาหนาทเปนเซรฟเวอร( Server ) โดยเมอ เรมโปรแกรมทง 2 แลว จะอานและสงขอมลกนผานทางซอกเกต( Socket) ซงเรยกแอพพลเคชนเชนนวา Client – Server Application โดยจะแบงออกเปน 2 ประเภทคอ

2.1.7.1 Client – Server ททางานโดยใชโพรโทคอลทได Define ไวใน RFC ผพฒนา โปร แกรม ไคลเอนต และเซรฟเวอรจะตองพฒนาใหโปรแกรมทางานตามรปแบบทก าหนดไวใน RFC เดยวกน เพอให ไคลเอนตและ เซรฟเวอรสามารถสอสารกนไดอยางถกตอง ( ตาม RFC เดยวกน ) เชน ถาตองการพฒนา FTP (RFC959) ผ พ ฒนาโปรแกรม FTPClient จะตองใหโปรแกรมทางานตามขอก าหนดใน RFC959 อยางถกตอง (Port number,รปแบบ ขอความ (message) ททาการรบ-สง ) เชนเดยวกนกบผพฒนาโปรแกรมเซรฟเวอรกจะตองใหโปรแกรมทางานตามขอก าหนดใน RFC9 59 เพอทจะใหไคลเอนตและเซรฟเวอรทางานรวมกนไดอยางถกตอง

2.1.7.2 Proprietary Client – Server Application ในการพฒนาโปรแกรมลกษณะน ผพฒนาไมตองอางองตาม RFC แตนนหมายถง จะตองพฒนาทง Client application และ Server application (เพราะไมตองอางองตาม RFC ซงเปนมาตรฐานสากล) ผพฒนาจะตองพฒนาโปรแกรมให ไคลเอนต และ เซรฟเวอร ทางานรวมกนไดอยางถกตองตามทผพฒนานนก าหนดขนเองแตผพฒนาตองระวงไมใหใช well-Know Port ทก าหนดไวใน RFC ผพฒนาจะตองทาการเลอกใช Transport Protocol ระหวาง ทซพ และยดพ โดยท ทซพ เปน โพรโทคอล แบบ Connection – Oriented ซงใหความเชอถอไดระหวางการสง-รบขอมล และ ยดพ เปน โพรโทคอล แบบ Connectionless ซงไมไดใหการรบประกนวา ขอมลจะสงถงกนหรอไม

2.1.8 คลาสทจ าเปนในการเขยนโปรแกรมทางเนตเวรคดวย C#

คลาสทจาเปนตางๆไดแกIPAddress,IPEndPoint,IPHostEntry,Dns,Encoding,Socket 2.1.8.1 คลาส IPAddress 21

เปนคลาสส าหรบเกบขอมล Address เพอใชส าหรบอางองเครองทตองการตดตอสอสาร อยใน Namespace System.Net รปแบบของ Constructor คอ Public IPAddress (byte [ ] address) Public IPAddress(long newAddress) Public IPAddress(byte [ ] address,long scopeid ) ฟงกชนทส าคญ คลาส IPAddress มฟงกชนมากมาย แตทส าคญแสดงในตารางท 2-9

Page 26: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

29

ตารางท 2-9 ฟงกชนส าคญของคลาส IPAddress ฟงกชน คาอธบาย

parse ฟงกชนส าหรบแปลง string ขอความ ip address ทสงเขามาแลว return เปนตวแปรชนด IP Address

ถงจะม constructor ถง 3 แบบแตการใชงานจะใชฟงกชน Parse ของคลาส IP

Address เปนตวชวยในการสราง IP Address ฟงกชน Parse มรปแบบการรบคา sting แลว return มาเปนคลาส IP Address ตวอยางการใชฟงกชน IP Addressip = IP Address.Parse(“127.0.0.1”); Fields ทส าคญคอแสดงในตารางท 2-10

ตารางท 2-10 ฟงกชนส าคญของคลาส IP Address Fields ทส าคญของคลาส IP Address Fields(ตวแปรภายในคลาส) คาอธบาย Any คาทอางถง IP ทตงไวในเครอง Loopback คาทเปน loopback ของเครอง

ตวอยางการใช Fields IPEndPoint ipendpoint = new IPEndPoint

(IPAddress.Any, 10000); 2.1.8.2 คลาส IPEndPoint

เปนคลาสส าหรบเกบขอมลคลายกบคลาส IPAddress แตเพมการเกบคา port เพอใชส าหรบอางองทอยของเครองทตองการตดตอสอสาร อยใน Namespace System.Net รปแบบข อ ง Constructor ค อ Public IPEndPoint ( long address,int port) Public IPEndPoint ( IPAddress address,int port)ตวอยางการใชConstructor IPEndPointipep = new IPEndPoint (IPAddress.Parse (“127.0.0.1”) , 10000); ตวอยางนเปนการก าหนดใหตวแปร ipep เกบคา ip 127.0.0.1 และ port ท 10000

2.1.8.3 คลาส IPHostEntry เปนคลาสส าหรบเกบขอมลคลายกบเปนอาเรยของคลาส IPAddress ใชส าหรบ

รบขอมลทจะ return มาของคลาส Dns อยใน Namespace System.Net รปแบบของ Constructor คอ Public IPHostEntry ()สวนใหญแลวจะประกาศตวแปรชนดนเพอรบขอมลจากการ return จากคลาสอน Properties ทส าคญ แสดงในตารางท 2-11

Page 27: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

30

ตารางท 2-11 Properties ส าคญของคลาส IPHostEntry Properties คาอธบาย AddressList เปน Properties ทคลายกบเปนอาเรยของ

คลาส IPAddress

ตวอยางการใชงาน Properties IPHostEntry array IPAddress = Dns.GetHost ByName (hostString) ; Console.WriteLine(arrayIPAddress.AddressList[0]) ; คล าส น จะได ใชควบคกบคลาส Dns เสมอเวลาเขยนโปรแกรม

2.1.8.4 คลาส Dns เปนคลาสทจดหาฟงกชนในการแปลงจาก Domain name เปน IP Address หรอ

ตรงกนขาม อยใน Namespace System.Net ฟงกชนทส าคญ คลาส Dns มฟงกชนมากมาย แตทส าคญแสดงในตารางท 2-12

ตารางท 2-12 ฟงกชนส าคญของคลาส Dns ฟงกชน คาอธบาย GetHostByAddress ฟงกชนส าหรบรบคา address ของ host แลว

return ออกมาเปนตวแปรชนด IPHostEntry ใชเมอร ip แตอยากร domain name

GetHostByName ฟงกชนส าหรบรบคา host name แลว return ออกมาเปนตวแปรชนด IPHostEntry ใชเมอร domain name แตอยากร ip

GetHostEntry

ฟงกชนส าหรบรบคา address แลว return ออกมาเปนตวแปรชนด IPHostEntry

IPHostEntry GetHostByAddress(String) ห รอ อก รปแบบ เปน IPHostEntry

GetHost ByAddress ( IPAddress) IPHostEntry GetHostByName( String) IPHostEntry GetHostEntry(String) หรออกรปแบบเปน IPHostEntry GetHostEntry (IPAddress)

Page 28: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

31

2.1.8.5 คลาส Encoding การสงขอมลดวยคลาส Socket ตองสงเปนขอมลชนด byte บางทขอมลอาจเปน

ขอความ คลาสนจะใชส าหรบชวยแปลงขอมลจากชนดหนงเปนอกชนดหนง เพอสงและรบขอมลได อยใน Namespace System.Text ฟงกชนทส าคญ คลาส Encoding มฟงกชนมากมาย แตทส าคญแสดงในตารางท 2-13

ตารางท 2-13 ฟงกชนส าคญของคลาส Encoding ฟงกชน คาอธบาย GetBytes แปลงขอมลเปน byte GetString แปลงขอมลเปน string

ตวอยางการใชงานฟงกชน ฟงกชน GetBytes string str = “test text”; Encoding

ascii = Encoding.ASCII; 24 Byte [ ] byte = ascii.GetBytes( str) ; ฟ ง ก ช น GetStrng Encoding ascii =

Encoding.ASCII; string str = ascii. GetStrng (ตวแปรชนด byte[]); Properties ทส าคญ แสดงในตารางท 2-14

ตารางท 2-14 Properties ทส าคญของคลาส Encoding Properties คาอธบาย ASCII Properties นจะ return คามาเปนตวแปรชนด

Encoding จะใช Properties นในการเรมตนการใชงานคลาส Encoding แบบตวอกษร ascii

2.1.9 Class Socket

เปนคลาสส าหรบสงขอมลทางเนตเวรค อยใน NamespaceSystem.Net.Sockets รปแบบของ Construtor คอ PublicSocket (Socket Information socket Information) PublicSocket (Address Familyaddress Family, Socket Type, Protocol Typeprotocol Type) พารามเตอรม 3 ตวไดแก

2.1.9.1 addressFamily เปนตวแปรชนด AddressFamilyส าห รบก าหนดชนดของ addressทตองการใหตดตอ สวนใหญใช InterNetworkซงคอ IPaddressversion 4 นนเอง

Page 29: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

32

2.1.9.2 socketType เปนตวแปรชนด socketType ส าหรบก าหนดชนดของ socket สวนใหญใชอย 2 อยางคอ แบบ Stream ส าหรบ Connection Oriented เชน TCP และ แบบ Dgram ส าหรบ Connectionless เชน UDP

2.1.9.3 ProtocolType เปนตวแปรชนด ProtocolType ส าห รบก าหนดชนดของ Protocol ทใช สวนใหญใชอย 2 อยางคอ ProtocolType.Tcp กบ ProtocolType.Udp ฟงกชนทส าคญ คลาส Socket มฟงกชนมากมาย แตทส าคญแสดงในตารางท 2-15

ตารางท 2-15 ฟงกชนส าคญของคลาส Socket ฟงกชน คาอธบาย Bind ฟงกชนนอยในสวนของ server ใชส าหรบผก

คาตวแปร Socket ทตงขนมากบ server Listen ฟงกชนนอยในสวนของ server ใชส าหรบรอ

การรบ Connect จาก Client Accept ฟงกชนนอยในสวนของ server ใชส าหรบ

ยอมรบการ Connect จาก Client Send ฟงกชนส าหรบสงขอมลใชทงสวนของ server

และ Client Receive ฟงกชนส าหรบรบขอมลใชทงสวนของ server

และ Client Close ฟงกชนส าหรบปดขอมลใชทงสวนของ server

และ Client Connect ฟงกชนส าหรบ Connect ส Server ใชส าหรบ

Client

2.1.9.4 ฟ งกชน Bind รปแบบ Public void Bind (EndPoint localep) พ าราม เตอ ร localep ส าหรบก าหนด address ของ Server นนเอง ในทนเราจะใชตวแปรชนด IPEndPoint ใสเปนพารามเตอร

2.1.9.5 ฟงกชน Listen รปแบบ Public void Listen (int backlog) พารามเตอร backlog ส าหรบรบคาตวเลขวาจะให Connect เขามาไดก Client • ฟงกชนAccept รปแบบ Public Socket Accept()

Page 30: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

33

2.1.9.6 ฟงกชน Send ฟงกชนมหลายรปแบบแตจะกลาวถงเพยง 2 รปแบบทจะใชงาน รป แบ บ Public int Send (byte [ ] buffer ) Public int Send (byte [ ] buffer, int offset, int size, SocketFlags socketFlags) พารามเตอร buffer ตวแปรทเกบขอมลส าหรบสง offset ต าแหนงเรมตนของ buffer ทใหสงขอมล size จานวนขอมลทจะสง socketFlags เปน flag ส าหรบก าหนดการสงในทนจะใสเปน 0 คอไมม flag

2.1.9.7 ฟงกชนReceive ฟงกชนมหลายรปแบบแตจะกลาวถงเพยง 2 รปแบบทจะใชงาน รปแบบ Public int Receive (byte[ ] buffer) Public int Receive (byte[ ] buffer,int offset.int size,socketFlags socketFlags) พารามเตอร buffer ตวแปรทเกบขอมลส าหรบรบ offset ต าแหนงเรมตนของ buffer ท ให รบขอมล size จานวนขอมล ทจะรบ socketFlags เปน flag ส าห รบก าหนดการรบในทนจะใสเปน 0 คอไมม flag

2.1.9.8 ฟงกชน Close รปแบบ Public Void Close() Public Void Close(int timeout) พารามเตอร timeout คอ ระยะเวลาในการคอยกอนการ Close เพอการสงขอมลใหเสรจ

2.1.9.9 Connect รปแบบ Public Void Connect (EndPoint remoteEP) public void Connect (IPAddress address,int port) มรปแบบมากมายแตจะใชอย 2 รปแบบเทานน รปแบบแรก พารามเตอร remoteEP ของรปแบบแรกจะเปนตวแปรเกบทอยของเครองทจะตดตอดวยชนด EndPoint ในทนจะใช IPEndPoint เลย รปแบบท 2 พารามเตอร address เปนตวแปรชนด IPAddress เกบทอยของเครองทจะตดตอดวยพารามเตอร Port ส าหรบระบ Port ทจะตดตอ

2.1.10 การใชงาน Class ชวยเหลอ คลาส TcpClient คลาส TcpListener คลาส NetworkStream เปนคลาสชวยเหลอแทน

การ ใชงานคลาส Socket 2.1.10.1 คลาส TcpClient

ม Constructor 4 แบบคอ (1) public TcpClient() เปน Constructor ไมมพารามเตอร (2) public TcpClient(AddressFamily family) พารามเตอร family คอ ตว

แปรชนด AddressFamily เปนการก าหนดลกษณะของการตดตอทาง network (3) public TcpClient(IPEndPointlocalEP) พารามเตอร local คอ ก าหนด

local ทจะใช กบตวแปร TcpClientตวแปร localEPเปนชนด IPEndPoint

Page 31: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

34

(4) public TcpClient (string hostname ,int port) พารามเตอร hostname คอตวแปร ชนด integer เพอบอกวาเปน port หมายเลขอะไร ทตองการ connect ฟงกชนทส าคญของคลาส TcpClient มมากมาย แตทส าคญแสดงในตารางท 2-16

ตารางท 2-16 ฟงกชนส าคญของคลาส TcpClient

2.1.10.2 คลาส TcpListener ม Constructor 3 แบบคอ • public TcpListener (int port) มพารามเตอร port ทตองการ listen ส าหรบการตดตอ เขามา 28

(1) public TcpListener ( IPEndPointlocalEP) พ า ร า ม เต อ ร locale ค อ IPEndPoint เพอทจะ bind คลายกบการใชงานฟงกชน Bind() ของคลาส Socket

( 2) public TcpListener ( IPAddresslocaladdr, int port) พ า ร า ม เต อ ร localaddr คอ ตว แปรชนด IPAddress ท แทน local IP address Port คอ หมายเลขของ Port ทตองการ listen ส าหรบการตดตอเขามา ฟงกชนทส าคญของคลาส TcpListener มมากมาย แตทส าคญแสดงในตารางท 2-17

ตารางท 2-17 ฟงกชนส าคญของคลาส TcpListener

Page 32: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

35

2.1.10.3 คลาส NetworkStream คลาสนมฟงกชนมากมาย แตทส าคญแสดงในตารางท 2-18

ตารางท 2-18 ฟงกชนทส าคญของคลาส NetworkStream

รายละเอยดฟงชน Read() รปแบบฟงกชน int Read (byte[] buffer, intoffset, int size) พารามเตอร buffer คอ อาเรยชนด byte เปนตวแปรส าหรบรบขอมล offset คอ ต าแหนงเรมตน ในตวแปร buffer ทจะรบขอมล Size คอ จ านวนขอมลทจะรบ คา Return จ านวนขอมลทรบมา 29 ไดเปน integer รายละเอยดของฟงกชน Write() รปแบบฟงกชน void write (byte [] buffer, intoffset,int size) พารามเตอร buffer คอ อาเรยชนด byte ซงเกบขอมลทตองการสง offset คอ ต าแหนงเรมตนในตวแปร buffer ทจะสงขอมล Size คอ จานวนขอมลทจะสงไมมคา Return

2.1.11 Windows Event Programing

สวนมากโปรแกรมเครอขายจะใชโหมดของคอนโซลใน .NET เปนหลก ซงวนโดวในโหมดคอนโซลจะใชเปนโมเดลโครงสรางของโปรแกรม โปรแกรมจะทางานตามตวควบคมทมอยในโปรแกรมนน ๆ ซงแตละเมธทอดทอยในคลาสจะถกเรยกใชโดยฟงกชนทโปรแกรมพบขณะทางานในตอนประมวลผล ซงผใชงานจะไมสามารถเปลยนโปรแกรมทกาลงทางานไปเปนอยางอนไดนอกเหนอจากทไดก าหนดไว แตจะตรงกนขามกบโปรแกรมวนโดวทจะใชเปน event programming model วนโดวอเวนทโปรแกรมจะทางานบนพนฐานของเหตการณเปนหลก เมอมเหตการณเกดขนในโปรแกรม เมธทอดเฉพาะจะถกเรยกใชงานและทางานกบเหตการณนน ๆ ซงการทางานแบบนไมเปนผลดกบฟงกชนเครอขายแบบ blocking เพราะเมอโปรแกรมถกเรยกใชงานและแสดงผลเปนกราฟฟกทางหนาจอเพอใหผใชงานใช มนจะรอเหตการณจากผใชงานทจะตดสนใจวาจะใหฟงกชนใดทางานดงนนอเวนทโปรแกรมจะสมมตวาฟงกชนอนอน ๆ กาลงทางานและผใชงานจะยงคงควบคมผานกราฟฟกอนเทอเฟสอย การทางานแบบนจะยอมใหผใชงานทางานกบฟงกชนอน ๆ ในขณะทรอการตอบกลบจากเครอขาย หรอยกเลกการเชอมตอถาจาเปน อยางไรก

Page 33: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

36

ตามถาเราใชงานฟงกชน blocking โปรแกรมทจะประมวลผลกจะรอจนกวาฟงกชนนนจะทางานเสรจและผใชงานกจะไปควบคมอนเทอเฟหรอไมกโปรแกรมแทน ดงแสดงในภาพท 2-24

ภาพท 2-24 window event program

2.1.12 Using Events and Delegates

ในระบบโปรแกรม.NET จะมความคลายคลงกบระบบวนโดว ดงนนจงไมแปลกใจท .NET จะรองรบโมเดลอเวนทโปรแกรม (event programming model) ใน .NET จะมโครงสรางหลกอย 2 สวนคอ events กบ delegates Event คอขอความทสงโดยออฟเจคทแทนการทางานในจดนน ๆ ขอความจะระบถงการทางานและขอมลทเกยวของกบการทางานนนๆ โดย Event สามารถเปนอะไรกไดจากผใชงานทกดปม (ขอความแทนดวยชอปม) หรอแพคเกจทรบขอมลทาง socket (ในทนขอความจะแทน socket ทรบขอมล) เหตการณตาง ๆ ผสงไมจาเปนตองรวาออฟเจดใดเปนตวจดการกบขอความเหตการณทสงไปผานระบบวนโดว มนจะขนกบเหตการณผรบไดลงทะเบยนกบระบบวนโดวและบอกใหรวาเปนเหตการณชนดใดทผรบตองการจะรบ

ซบเนตมารคส าหรบคลาส C มเลข 255 จานวนสามชด คอ 255.255.255.0 หมายความวาในเครอขายนจะมไอพแอดเดรสสสามชดแรกทเหมอนกน เชน 192.168.1.11, 192.168.1.12, 192.168.1.13จงถอวาไอพแอดเดรสทงหมดนอยในเครอขายเดยวกน แสดงฟงกชน demonstrates ดงแสดงในภาพท 2-25

Page 34: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

37

ภาพท 2-25 demonstrates

เหตการณของผรบจะระบไวในระบบวนโดวโดยคลาสทเรยกวา delegate คลาส

delegate จะเกบตวอางองเมธทอดทใชในการจดการกบเหตการณทใชรบขอมล เมอวนโดวไดรบเหตการณใด ๆ มนจะไปตรวจสอบกบ delegate ทไดลงทะเบยนเอาไว ถาม delegate ทลงทะเบยนไวเพอจดการกบเหตการณนน ๆ มนจะสงผานไปยงเมธทอดทไดก าหนดไวใน delegate และหลงจากทเมธทอดนนทางานเสรจโปรเซสของระบบวนโดวจะไปทาเหตการณถดไปทพบจนกวาจะไดรบเหตการณการจบโปรแกรม

2.1.13 The AsyncCallback Class

.NET จะเตรยมหนทางททาใหเมธทอดกลายเปน delegate ได น นคอ .NET คลาส AsyncCallback ทยอมใหเมธทอดเรมทางานฟงกชน asynchronous และรองรบการเรยกใชเมธทอด delegate เมอฟงกชน asynchronous ทาส าเรจโพรเซสนจะตางจากโปรแกรมทว ๆ ไปในเรองของเหตการณทไมไดถกสรางมาจากออปเจควนโดว แตจะมาจากเมธทอดอน ๆ ในโปรแกรมแทน ซงเมธทอดนจะลงทะเบยนตวมนเองเปน AsyncCallback delegateไวเรยกใชเมอเมธทอดทางานฟงกชนการเชอมตอเสรจ คลาส Socket จะใชประโยชนจากเมธทอดทก าหนดในAsyncCallbackเพอยอมใหฟงกชนเครอขายทางานแบบ asynchronously ในรปแบบโปรเซสแบคกราวด ซงสญญาณจะถกสงให OS เมอฟงกชนเครอขายมการเชอมตอสมบรณและผานโปรแกรมควบคมไปยงเมธทอด AsyncCallbackหลงจากทการเชอมตอทาไดเสรจสนแลว ในโปรแกรมแบบวนโดวเมธ

Page 35: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

38

ทอดเหลานจะชวยหลกเลยงเหตการณทจะเกดการลอกแอพพรเคชนจากการรอใหฟงกชนเครอขายทาการเชอมตอใหส าเรจนนเอง

2.1.14 Using Asynchronous Sockets

เมธทอด Asynchronous จะแบงออกเปนฟงกชนในโปรแกรมเครอขายได 2 สวนคอ (1) เมธทอด Begin ส าหรบเรมฟงกชนเครอขายและลงทะเบยนกบเมธทอด

AsyncCallback (2) เมธทอด End ส าหรบฟงกชนทางานเสรจสนเมอเมธทอด AsynCallback ถก

เรยกใช แสดงใหเหนเมธทอด asynchronous ทออปเจค socket สามารถใชไดซงแตละเมธทอด Begin จะสมพนธกบเมธทอด End เพอทาใหฟงกชนทางานไดสมบรณ ดงแสดงตารางท 2-19

ตารางท 2-19 .Net asynchronous Socket methods Requests Started By… Description of Request Requests Ended BY… BeginAccept() To accept an incoming

connection EndAccept()

BeginConnect() To connect to a remote host EndConnect() BeginReceive() To retrieve data from a

socket EndReceive()

BeginReceiveFrom()

To retrieve data from a specific remote host

EndReceiveFrom()

BeginSend()

To send data from a socket EndSend()

BeginSendTo()

To send data to a specific remote host

EndSendTo()

เมธทอดเหลานใชประยกตไดกบsocket เทาน น ใน .NETFramework release 1 ท ง

คลาสTcpClient, TcpListener และ UdpClient จะไมมเมธทอด asynchronous อย

Page 36: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

39

2.1.14.1 Establishing the Connection เมธทอดทใชในการสรางการเชอมตอระหวางเครองจะขนกบโปรแกรมท

ทาหนาทเปนเซรฟเวอร (คอรอใหไคลเอนททาการเชอมตอเขามา) หรอ ไคลเอนท (ทาหนาทเชอมตอไปยงเซรฟเวอร) ส าหรบเซรฟเวอร เมธทอดทใชคอ BeginAccept() และ ส าหรบไคลเอนทเมธทอดทใชคอ BeginConnect()

(1) The BeginAccept() and EndAccept()Methods เพอทจะรบการเชอมตอทเขามาจากไคลเอนท เราจะตองใชเมธทอด BeginAccept() ทมรปแบบคอ IAsync Result Begin Accept (Async Callback callback, object state) เมธทอด BeginAccept() จะมพารามเตอรสองตว คอ ชอของเมธทอด AsyncCallback ใชส าหรบทาใหฟงกชนสมบรณ และ ออปเจคสถานะทว ๆ ไปทใชผานคาขอมลระหวางเมธทอดAsynchronousโดยทวไปแลวเมธทอด BeginAccept() จะมรปแบบการใชงานดงภาพท 2-26

ภาพท 2-26 รปแบบการใชงานเมธทอด BeginAccept()

โคดนเลก ๆ นทาการสรางออปเจค Socket และระบ local IP address

และ TCP port ใหเพอทาการรอรบการเชอมตอทจะมเขามา เมธทอด BeginAccept() จะอธบายถงเมธทอดทใชงานเหมอน delegate เพอใชเมอตรวจเจอการเชอมตอกบ socket นน ๆและพารามเตอรตวสดทายจะสงผานไปยงเมธทอด BeginAccept() ท เปนออปเจค socket ตนทถกสรางขนมา หลงจากทเมธทอด BeginAccept() ทาเสรจเมธทอด AsyncCallback จะถกเรยกขนมาเมอมการเชอมตอเกดขน เมธทอด AsyncCallback จะมเมธทอด EndAccept() เพอใชจบการรบ socket ดงนนรปแบบของเมธทอด EndAccept() คอ Socket EndAccept (IAsyncResultiar); ตวแปรออปเจค IAsyncResult จะสงคาของ IAsyncResult จากเมธทอด BeginAccept() ทเชอมโยงไปยงเมธทอด EndAccept() (น นก คอ เปนการส งค าระหวาง BeginAccept กบ EndAccept ท จบ ค ตรงกน synchronous Accept() นนกคอ เมธทอด EndAccept() จะสงคาออปเจค Socket ทใชส าหรบสรางการเชอมตอใหมกบไคลเอนท ทกการสอสารกบไคลเอนทกจะทากบออปเจคนเสมอ ตวอยางเมธทอด EndAccept() เขยนเปนฟงกชนงาย ๆ ไดดงภาพท 2-27

Page 37: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

40

ภาพท 2-27 รปแบบการใชงานเมธทอด EndAccept()

ชอของเมธทอด AsyncCallback จะตองตรงกบชอพารามเตอรทใชใน

เมธทอด BeginAccept() ขนตอนแรกในเมธทอดกคอ การดง socket ของเซรฟเวอรตนทางมากอน ซงการจะทาไดเราจะใชคณสมบต AsyncState ท เปนคณสมบต ทอยในคลาส IAsyncResult คณสมบตนจะสงผานออปเจคตนทางทอยในออปเจค BeginAcccept() เพราะวามนถกก าหนดเหมอนเปนออปเจคทวๆไป หลงจากท Socket ถกดงคามาแลว เมธทอด EndAccept() สามารถทจะหาออปเจค Socket ใหมส าหรบการเชอมตอไคลเอนได พารามเตอรออปเจค IAsyncResult จะทาเหมอนกบผานคาไปยงเมธทอด AsyncCallback ออปเจคไคลเอนท socket เมอสรางขนมาแลวอนหนงจะสามารถใชไดเหมอนกบออปเจค socket อนๆ น นกคอเปนไดท ง synchronous หรอ asynchronous ท จะ อ าน และ เข ยนขอม ล ไป ย ง socket ในท าย ท ส ดแลว คBeginAccept() / EndAccept() asynchronous กทางานไดผลเหมอนกบ เมธทอด Accept() synchronous

(2) The BeginConnect () and EndConnect () Methods ส าหรบโปรแกรมไคลเอนททจะทาการเชอมตอไปยงเซรฟเวอรทใชเมธทอด asynchronous เราจะตองใชเมธทอดBeginConnect() ซ ง ม รป แบ บ ด ง น IAsyncResult BeginConnect(EndPoint ep, AsyncCallback callback, Object state)พารามเตอรตวแรกทผานคาไปยงเมธทอด BeginConnect() คอคา EndPoint ของโฮสททจะทาการเชอมตอไป และ ทเหมอนกบ BeginAccept() กคอ เมธทอด BeginConnect() จะมการระบ ชอของเมธทอด AsyncCallback ทจะเรยกใชเมอการเชอมตอพรอมเสรจ และพารามเตอรตวสดทายคอ สถานะของออปเจคทสามารถผานไปยงเมธทอด EndConnect() เพอพรอมทจะสงขอมลทจาเปนได ตวอยาง BeginConnect() แสดงดงภาพท 2-28

ภาพท 2-28 รปแบบการใชงานเมธทอด BeginConnect()

Page 38: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

41

ในโคดนเปนการสรางออปเจค Socket ชอ newsock และ IPEndPoint ชอ iep ส าหรบโฮสททจะเชอมตอ เมธทอด BeginConnect() จะอางองเมธทอด AsyncCallback (connected) และผานออปเจค socket เรมตน กคอ newsock ไปยงเมธทอด AsyncCallback เมอการเชอมตอสมบรณ เมธทอด AsyncCallback ท ถกกาหนดไวจะถกเรยกใชงาน และ เมธทอด AsyncCallback จะใชเมธทอด EndConnect() เพอทาใหการเชอมตอเสรจสน รปแบบของ เมธทอด EndConnect() คอ EndConnect (IAsyncResult iar) ตวอยางการใชเมธทอด EndConnect แสดงดงภาพท 2-29

ภาพท 2-29 รปแบบการใชงานเมธทอด EndConnect

ประโยคแรกในเมธทอด Asyncallback เปนการดงคา socket ตนทางท

ใชกบ BeginConnect() เปนการใช คณสมบต AsyncState ของออปเจค IAsyncResult ผานคาไปยงเมธทอด AsyncCallback socket ตนทางถกสรางขนมาใหมแลว เมธทอด EndConnect() จะถกเรยกใชงาน โดยใชออปเจค IAsyncResult เพอชกลบไปยงเมธทอด BeginConnect() ตนทาง เพราะวามความเปนไปไดทเครองปลายทางอาจจะไมพรอมใชงาน จงเปนการดถาเราจะวางเมธทอด EndConnect() ไวทสวนของ Try-catch เพราะถาเมธทอด EndConnect() ทางานไมส าเรจ มนกยงขามไปทาในสวนของ SocketException error •The BeginSend() and EndSend() Methods เมธทอด BeginSend() จะสงขอมลไปย ง socket ท เชอมตอ โดยม รปแบบการใชงาน เมธทอดนดงน IAsyncResult BeginSend( byte[] buffer, int offset, int size, SocketFlags sockflag, AsyncCallback callback, object state)

Page 39: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

42

ถาเรามองดมนจะมความคลายกบเมธทอด Synchronous Send() ซงถามาดแตละตว ตวแรก byte[] buffer เปน ขนาด byte array ทเกบขอมลทเราตองการจะสง Offset เปนการชไปยงต าแหนงขอมลทอยใน buffer ซงเปนตวบอกวาขอมลเรมตนทไหน Size เปนการระบขนาด byte จาก buffer ทจะสงไป Sockflag เปน flag เฉพาะทใชส าหรบเวลาเราตองการทจะเซตการสอสาร AsyncCallback และ state เปนเมธทอดทจะถกเรยกใชเมอ เมธทอด BeginSend() ทาส าเรจ และ state จะสงขอมลไปย งเมธทอด EndSend()ตวอยางเชน sock.BeginSend(data, 0, data.Length, SocketFlags.None, new AsyncCallback(SendData), sock); ตวอยาง น เป นก ารส งขอมล และ เรยกใชเมธทอด SendData() เมอ socket พรอมทจะสงขอมล และตวแปร sockจะถกสงไปยงเมธทอด AsynCallback() เมธทอด EndSend() ใชสนสดการสงขอมล รปแบบส าหรบเมธทอดนกคอ Int EndSend ( IAsyncResult iar) ซงตวแปร IAsyncResult ถกก าหนดใหเปนออปเจควาง ๆ ทจะอางถงผลของเมธทอด BeginSend() เมธทอด EndSend() จะคนคาของจานวนไบททสงจาก socket ไดส าเรจซงตวอยางของเมธทอด EndSend() AsyncCallback แสดงดงภาพท 2-30

ภาพท 2-30 รปแบบการใชงานเมธทอด EndSend()

(3) TheBeginReceive() และ EndReceive()

Methods เม ธท อดBeginReceive() จ ะ ยอม รบ ขอม ล จาก เค รอ งปลายทางทอยใน socket เทานน โดยมรปแบบการใชงานเมธทอดคอ IAsyncResult BeginReceive (byte[] buffer, int offset, int size, SocketFlags sockflag, AsyncCallback callback, object state) ตวแปรตวแรกกคอ byte array ทใชรบขอมลทเขามา Offset และ size ใชระบวาบพเฟอรเรมตนทไหนและมขนาดบพเฟอรเทาไหร, Sockflags เปนการก าหนด flag ส าหรบการสอสาร, callback และ state เป น ต ว แ ป ร ท เร าย อ ม ให ผ าน ข อ ม ล ไป ย ง เม ธ ท อด EndReceive() ต ว อ ย า ง เช น sock. BeginReceive ( data, 0, data. Length, SocketFlags. None, new Async Callback (ReceivedData) , sock) ; เม ธ ท อ ด BeginReceive( ) จ ะ ส ง socket เ ร ม ต น ไ ป ให เม ธ ท อ ด EndReceive() ดงน น มน จงสามารถสราง socket ใหมจากเมธทอด AsyncCallback เมธทอด AsyncCallback จะใช EndReceive() ตามตวอยางดงภาพท 2-31

Page 40: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

43

ภาพท 2-31 รปแบบการใชงานเมธทอด EndReceive()

2.1.15 ทฤษฎระบบฐานขอมล

2.1.15.1 File Server เปนเซรฟเวอรทมหนาทจดเกบไฟล โดยการจดเกบไฟลจะท าเสมอนเปน

ฮารดดสกรวมศนย (Centerized disk storage) เสมอนวาผใชงานทกคนมทเกบขอมลอยทเดยวเพราะควบคมบรหารงาย การส ารองขอมล การ Restore งาย ขอมลดงกลาวสามารถ Shared ใหกบ Client ได โดยสวนมากขอมลทอยใน File Server คอ โปรแกรมและขอมล (Personal Data File) โดยปกตแลวเซรฟเวอรไมมหนาทตองประมวลขอมลเหลาน เปนเพยงแหลงเกบขอมล กลาวงายๆ กคอ File Serverท าหนาเสมอน Input /Output ส าหรบไฟลการท างานของเซรฟเวอรทเปน File Server นน ในทางเทคนคแลวยงไมเรยกวาเปน"Client/Server" เพราะไมมการแบงโหลดการท างานระหวาง Client/Server แตหนาทท File Serverจะตองจดการคอ ม NOS (Network Operating System) ทดแลเกยวกบการ "เขาถง" ไฟล ตองมกระบวน"Lock" ไว ไมใหเกดความซ าซอนในการแกไขไฟล เชน ขณะทผใชงานคนท 1 เปด ไฟล A และก าลงแกไข (edit) อย ผใชงานคนทสองจะเปดไฟล A เพอแกไขไมได (แตเปดเพออาน Read Only ได) แตถาหากขอมลนนเปน Database แทนทไฟลหรอฐานขอมลทงฐานขอมลจะถก Lock กระบวนการ Lock กอาจจะเกดเฉพาะ Record (Row) นเปนหนาทของ NOS และ Application ทใชงาน ดงภาพท 2-32

ภาพท 2-32 File Server

Page 41: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

44

2.1.15.2 Print Server Print Server คอ เพอแบงใหพรนเตอรราคาแพงบางรนทออกแบบมาส าหรบ

การท างานมากๆเชน HP Laser 5000 พมพได 10 - 24 แผนตอนาท พ รนเตอรประเภทน . ความสามารถในการท างานสงถาหากซอมาเพอใชงานเพยงคนเดยว แตละวนพมพ 50 แผน กไมคมคา ดงนนจงตองมกระบวนการจดการแบงปนพรนเตอรดงกลาวใหกบผใชทกๆคนในส านกงาน หนาทในการแบงปนกประกอบดวยการจดคว ใครสงพมพกอน การจดการเรอง File Spooling เปนของเซรฟเวอร ทมชอวา Print Serverโดยสวนใหญในองคกร นอยองคกรทจะซอเซรฟเวอรมาเพอใชส าหรบเปน Print Server โดยเฉพาะ แตจะใชวธเอาเซรฟเวอรทซอมาเพอเปน File Server , Data Base server ท าเปน Print Server ไปดวย ดงภาพท 2-33

ภาพท 2-33 Print Server

2.1.15.3 Database Server

Database Server หมายถง เซรฟเวอรทมไวเพอรนระบบทเปนฐานขอมล DBMS (DataBase Managment System ) เชน SQL , Informix เปนตน โดยภายในเซรฟเวอรทมทงฐานขอมลและตวจดการฐานขอมล ตวจดการฐานขอมลในทนหมายถง มการแบงปน การประมวลผล โดยผานทาง Client หรอเปนเครองบรการขอมล ทเปดใหผใชเพมขอมล ลบ หรอแกไข ส าหรบโปรแกรมบรการระบบฐานขอมลทนยมใช ไดแก MYSQL หรอ Microsoft Access เปนตน โดยผใชตองเขยนโปรแกรมสงประมวลผล ปรบปรงขอมล หรอน าขอมลในสวนทตนเองมสทธ ไปใชตามตองการ ดงภาพท 2-34

Page 42: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

45

ภาพท 2-34 Database Server

2.1.15.4 Application Server และ Web server

Application Server คอ เซรฟเวอรทรนโปรแกรมประยกตไดดวย โดยการท างานสอดคลองกบไคลเอนต เชน Mail Server (รน MS Exchange Server) Proxy Server (รน Proxy Server) หรอ Web Server (รน Web Server Program เชน Xitami , Apache' )

Web server บ รก าร HTTP (Hyper Text Transfer Protocol) เพ อ ให ผ ใชสามารถอานขอมล ทงภาพ และเสยง จากเครองบรการ ผาน Browser เชน http://www.thaiall.com หรอ http://localhost เปนตน เครองบรการ ทรอรบค ารองขอจาก web browser ขอมลทจะสงไปอาจเปนเวบเพจ ภาพ หรอ เสยง เปนตน ส าหรบโปรแกรมทไดรบความนยม ใหน ามาเปดบรการ web คอ Apache web server หรอMicrosoft web server ดงภาพท 2-35

ภาพท 2-35 Application ServerและWeb server

Page 43: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

46

2.1.15.5 DNS server DNS server เปนเครองบรการแปลงชอเวบเปนหมายเลข IP ซงการแปลงชอ

นอาจเกดในเครองlocal เองจาก cache ในเครอง local หรอจากเครองบรการของผใหบรการ ดงภาพท 2-36

ภาพท 2-36 DNS server

2.1.15.6 FTP (File Transfer Protocol)

FTP (File Transfer Protocol) เครองบรการการรบ-สงขอมล ซงเปดใหผใชทเปนสมาชกเขาใชแตบางเครองอาจเปนใหผใชท วไปเขาใช โดยใชรหสสมาชก anonymous ซงเปนทรกนทวโลกวาเปนรหสผใชส าหรบผทไมประสงคออกนามFTP คอโปรโตคอลส าหรบถายโอนขอมล โดยเครองทเปดบรการ FTP จะเปด TCP port 21 ไวการเชอมตอของ FTP ม 2 mode

(1) FTP standard mode คอ การเชอมตอท server เชอมตอกบ client ผาน port 20 เปน Out goingport สวน port ฝง client จะแลวแตตกลงกน แตถา client ม firewall ทไมบรการ ftp กจะตดตอไมได ดงภาพท 2-38

(2) FTP passive mode คอ การเชอมตอท client เปนผเชอมตอไปยง server เพอใชหมายเลข portทแลวแตจะตกลงในการสงขอมล ดงภาพท 2-37

Page 44: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

47

ภาพท 2-37 FTP (File Transfer Protocol)

2.1.15.7 Mail server

Mail server เครองบรการรบ-สงจดหมายส าหรบสมาชก บรการทมใหใชเชน สงจดหมาย รบจดหมาย สง attach file หรอการม address book เปนตน ตวอยาง mail server ทเปนทรจกทวไป เชนhotmail.com หรอ Gmail.com เปนตน

SMTP server (Simple mail transfer protocol server) คอเครองบรการสง e-mail ไปยงเครองบรการอน ๆ ส าหรบ SMTP สวนใหญจะไมยอมใหคนนอกองคกร หรอ IP ทอยนอกองคกรใชงานSMTP เพราะอาจมคนในโลกใบนมาแอบใช ท าใหบรการ SMTP ท างานหนกใหกบคนภายนอกโดยไมเกดประโยชนใด ๆ หากเครองของทานบรการ SMTP แกคนนอก แสดงวาไมไดก าหนด RELAY ไวเพราะชาวโลกอาจใชเครองมอคนหา "OPEN RELAY" แลวพบวาเครองของทานเปนเครองหนงทไมไดท า RELAY ไวกได และทอนตรายคอ อาจมชาวโลกบางคนใชโปรแกรม MOBI+ ก าหนดใหเครองSMTP ของทาน bomb mail ไปยง mail box ของเปาหมาย และหมายเลขเครองทโจมต กคอ เครองSMTP ของทานนน เอง

POP server (Post office protocol server) คอบรการรบ-สงอเมลจาก mail server กบเครองของสมาชก บรการน ท าใหสามารถอาน mail ดวยมอถอ หรอ PDA แตถาทานใช mail ของ thaimail.com จะเปน web-based mail ทเปดอาน e-mail ไดจาก web เทานน จะเปดดวย outlook หรอ PDA ไมได ดงภาพท 2-38

Page 45: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

48

ภาพท 2-38 Mail server

2.1.15.8 Proxy server

Proxy server เครองทอยตรงกลางระหวางเครองลกกบอนเทอรเนต เพราะเครองลกในเครอขายทงหมดจะไมตดตอกบอนเทอรเนตโดยตรง เมอเครองลกเรยกดขอมล จะสงค าขอใหเครอง Proxy server และคนหาขอมลนนใน เครอง Proxy server วามหรอไม หากมกจะสงกลบไปให เครองลก โดยไมออกไปหาจากแหลงขอมลจรง เพราะขอมลน นถกเกบในหนวยความจ าของเครอง Proxy server แลวจงเปนการลดภาระของระบบเครอขาย ทจะออกไปนอกเครอขายโดยไมจ าเปน จะเหนวา Proxy serverท าหนาทเปน Cache server ท าหนาทเกบขอมลทผใชเคยรองขอ หากมการรองขอขอมลทไมมใน proxyกจะออกไปหาในอนเทอรเนต แลวน ากลบมาเกบใน cache เมอผใชทานอนตองการ กจะน าจาก cacheไปใชไดทนท ส าหรบ Proxy server ทนยมใชใน Linux เชน Squid มกใหบรการท port 3128 เปนตน

Proxy server คอ เครองบรการทท าหนาทแปลง address ของเครองตนทางเมอม package สงไปยง local host หรอแปลง address ปลายทาง เมอม package สงไปยง local host โดยลกษณะทชดเจนของproxy server คอการท า caching ท าให local host เขาถงขอมลซ าๆ กนไดโดยตรงจากเครองบรการใน local network ไมตองออกไปนอกเครอขายโดยไมจ าเปน NAT (Network Address Translation)คณสมบตหนงของการแจก IP หรอการท า IP Sharing เพราะในเครอขายขนาดใหญจะใช Local IP หรอFake IP แตจะม Real IP อยบางสวน โปรแกรมเครองบรการบางโปรแกรมมหนาทก าหนด Local IP ใหเครองลก เมอเครองลกตองการออกไปอานขอมลจากอนเทอรเนต กจะใช Real IP ออกไป จากลกษณะดงกลาวอาจท าใหเครองทเปน NAT server ท าหนาทเปน Firewall ปกปองเครองลก เพราะจะไมมใครทราบ Local IP ของเครองในองคกรได

Page 46: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

49

เนองจากการออกไปสอนเทอรเนตจะใช IP ของ NAT serverเสมอ จงไมมใครเจาะเขาสเครองลกไดโดยตรง การเปน NAT server อาจไมจ าเปนตองใชคณสมบตCache server กได เพราะเครองทเปน Proxy server ทมศกยภาพต าจะลมไดเรวกวาเครองทท าหนาทเปน NAT เพยงอยางเดยว ส าหรบโปรแกรมทท าหนาทเปน NAT server เชน Win Gate, Win Route ,Win Proxy หรอ ICS(Internet Connection Sharing) เปนตน ดงภาพท 2-39

ภาพท 2-39 Proxy server

2.1.15.9 DHCP (Dynamic Host Configuration Protocol)

DHCP (Dynamic Host Configuration Protocol) โปรโตคอลทใชในการก าหนด IP Address อตโนมตแกเครองลกขายบนระบบ ทตดตง TCP/IP ส าหรบ DHCP server มหนาทแจก IP ในเครอขายไมใหซ า เปนการลดความซ าซอน เมอเครองลกเรม boot กจะขอ IP address, Subnet mark, หมายเลขDNS และ Default gateway ขนตอนการเชอมตอของเครองลกกบ DHCP server ดงภาพท 2-40

ภาพท 2-40 DHCP (Dynamic Host Configuration Protocol)

Page 47: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

50

(1) เค รองลกคนหาเค รอง DHCP server ในเครอขาย โดยสง DHCP discover เพอรองขอ IP address

(2) DHCP server จะคนหา IP ทวางอยในฐานขอมล แลวสง DHCP offer กลบไปใหเครองลก

(3) เมอเครองลกไดรบ IP กจะสงสญญาณตอบกลบ DHCP Request ใหเครองแมทราบ

(4) DHCP server สงสญญาณ DHCP Ack กลบไปใหเครองลก เพอแจงวาเรมใชงานได

2.1.16 Json .Net

Json ยอมาจากค าวา " JavaScript Object Notation " เปนฟอรแมตส าหรบแลกเปลยนขอมลคอมพวเตอร ฟอรแมต JSON น นอยในรปขอความธรรมดา (plain text) ทท งมนษยและโปรแกรมคอมพวเตอรสามารถอานเขาใจได ปจจบน JSON นยมใชในเวบแอปพลเคชน โดยเฉพาะ AJAX โดย JSON เปนฟอรแมตทางเลอก ในการสงขอมล นอกเหนอไปจาก XML ซงนยมใชกนอยแตเดม สาเหตท JSON เรมไดรบความ นยมเปนเพราะกระชบและเขาใจงายกวา XML

jQuery Ajax กบ JSON (Web Service) ท าความเขาใจ การรบสงขอมล JSON ผาน jQuery กบ Ajax JSON เปนรปแบบ string ชนดหนงทถกจดเกบในรปแบบทสามารถอานและเขาใจไดงาย ถาจะใหเขาใจงาย ๆ กคอ JSON เปรยบเสมอนรปแบบของ array ชนดหนงทใชรบสงขอมลผาน ajax เพราะซงปกตแลวถาเราตองการรบ-สงขอมลผาน ajax ตาง ๆ นน จะตองรบ-สงมาในรปแบบของ string ทงกอน และเมอฝง ajax ท าการรบคาท return กลบมาจาก server กจะตองน า string เหลานนมาตดต าแหนงทตองการ เพอเอา string ตวทตองการมาใช แตส าหรบ JSON แลว สามารถรบสงชดคาตวแปรไดท งฝง client และฝง server โดยทง 2 ฝงสามารถใช JSON encode และ decode เพออานคาตวแปรเหลานน และจะเรยกใชงานมนไดอยางไร ซงปกตแลวจะอยในรปแบบของ Array และส าหรบตวแปร JSON น นไมจ ากดแครบสงขอมลผาน Web Browser เทานน แตยงสามารถน า JSON ไปประยกตกบการรบสงขอมลในรปแบบอน ๆ ได เชนการจบเกบขอมลในรปแบบของ String ใน Text หรอการรบสงผาน Web Service กสามารถท าไดเชนเดยวกน ซงในตวอยางนมการรบสงคาจาก Web Serviceในรปแบบ JSON Code ดวย

Page 48: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

51

JSON นนใชความสมพนธของภาษาจาวาสครปต แตไมถกมองวาเปนภาษาโปรแกรม กลบถกมองวาเปนภาษาในการแลกเปลยนขอมลมากกวา ในปจจบนมไลบรารของภาษาโปรแกรมอนๆ ทใชประมวลผลขอมลในรปแบบ JSON มากมาย JSON นนใช syntax ของภาษาจาวาสครปต แตไมถกมองวาเปนภาษาโปรแกรม กลบถกมอง

วาเปนภาษาในการแลกเปลยนขอมลมากกวา ในปจจบนมไลบรารของภาษาโปรแกรมอนๆทใชประมวลผลขอมลในรปแบบ JSON มากมาย โคดตวอยางของ JSON ดงภาพท 2-41

ภาพท 2-41 ตวอยาง Code Json .Net

Json ซงเปน Text ธรรมดาๆ ทถกจดเรยงใหอยในรปแบบของ Object Array โดยใช

เครองหมาย[ ] แทน Array และ { } แทน Hash (หรอ Associative Array)เขยนครอมขอมลไวภายใน ซงเปนการก าหนดคณสมบตใหกบวตถดวยการสรางวตถทเปนขอมลขนมาในรปแบบของ JSON JSON สามารถจดเกบ Object ไวภายใน Object และ Array ไวภายใน Array ไดโดยไมมขดจ ากดดวยโครงสรางของขอมลทเรยบงาย และมดชนขอมลทถกตองแมนย าทกขอมล

Page 49: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

52

2.1.17 Remote Monitor Remote Desktop Connection เปนการควบคมและมองเหน เค รองคอมพวเตอร

ระยะไกล ทมมากบระบบปฏบตการ Windows ในอดตจนถงปจจบน โดยความสามารถของหลกการน คอ สามารถลอกออนเขาไปควบคมเครองคอมพวเตอรทเปนเครองเปาหมายได โดยจะสามารถมองเหนหนาจอ และควบคมเครองนนๆ ได เสมอนวาก าลงนงอยหนาคอมพวเตอรเครองนนเลยทเดยว

ในการจะใชความสามารถมองเหนหนาจอนเขาไปควบคมเครองใดๆ นน จะตองมการต งคาเครองฝงเปาหมาย ใหอนญาตใหเครองอนๆ เขาไปควบคมจากระยะไกลได และตองม Account ทมการรกษาความปลอดภยดวยรหสผาน เพอใชในการลอกออนเขาไปควบคม (หากวา Account ท ใชน น เปน Administrator ผ ท เขาไปควบ คมกจะม สท ธ ในการใชงานในระดบ Administrator ทเดยว) 2.2 งานวจยทเกยวของ

นอกจากทฤษฎทเกยวของแลวยงมงานวจยตาง ๆ ทเกยวของการใชบรการหองคอมพวเตอร ซงขอยกตวอยางงานวจยทนาสนใจ ดงน

เบญจพร ครองงาม และคณะ (2551) ไดศกษาความพงพอใจในการใชคอมพวเตอรในคณะวทยาการของนกศกษาภายในเวลา คณะวทยาการจดการ มหาวทยาลยราชภฎจนทรเกษม พบวาจากนกศกษากลมตวอยางจ านวน 120 คน นสตสวนใหญมความพงพอใจในระดบมากในเรอง เครองคอมพวเตอรทมสวนชวยในการเสรมสรางความร มความพงพอใจระดบปานกลาง ในเรองความส าคญของเครองคอมพวเตอรทมตอการเรยนการสอน รองลงมาคอเรองแสงสวางในหองคอมพวเตอร การก าหนดเวลาในการใชหองคอมพวเตอร การจดระเบยบในการใชคอมพวเตอรโปรแกรมตางๆ ในเครองวามความเหมาะสมกบความตองการของนกศกษา การใชบรการคอมพวเตอรของคณะวทยาการจดการ การใหคาแนะนา ตอบขอสงสยของเจาหนาทในหองคอมพวเตอร และเรองขนาดของหองคอมพวเตอรมความเหมาะสม การใหบรการของเจาหนาท ความเรวของอนเตอรเนต การดแลรกษาเครองคอมพวเตอร และความเรวของเครองคอมพวเตอร และมความพงพอใจนอย ในเรองความสมบรณของอปกรณคอมพวเตอรในคณะวทยาการจดการ และเครองคอมพวเตอรในคณะวทยาการจดการมความเพยงพอตอนกศกษาในแตละคาบ นอกจากนน จากการเปรยบเทยบความพงพอใจของนกศกษาชายและนกศกษาหญงภาคในเวลา พบวานกศกษาชายและนกศกษาหญงภาคในเวลามความพงพอใจในการใชบรการหองคอมพวเตอรแตกตางกน ทระดบนยส าคญ .05

Page 50: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

53

วรวฒ มวงเกด และคณะ (2551) ไดศกษาความพงพอใจในการใชหองคอมพวเตอรของนกศกษามหาวทยาลยราชภฎจนทรเกษม ศนยการศกษาจนทรเกษมชยนาท พบวาจากนกศกษากลมตวอยางจ านวน 60 คน ผตอบแบบสอบถามสวนมากใชบรการหองคอมพวเตอรจดประสงคเพอสบคนขอมลมากทสด คดเปนรอยละ 78.3 รองลงมาคอ เพอเลนอนเตอรเนต และเมอพจารณาพบวาผตอบแบบสอบถามมความพงพอใจในเรองโปรแกรมตาง ๆ ทอยในเครองคอมพวเตอรทมใหบรการในหองคอมพวเตอร โดยเฉลย 2.75 รองลงมาคอความสามารถในการบรการใหคาปรกษาการใชงานบรการตาง ๆ และเครองคอมพวเตอร โดยเฉลย 2.65 และความเอาใจใสตอผรบบรการของบคลากรเทากนกบชวงเวลาเปด-ปด ใหบรการ โดยเฉลย 2.55 และความกระตอรอรนตอการใหบรการของบคลากร โดยเฉลย 2.52 และจะมความพงพอใจนอยในเรองความรวดเรวในการใหบรการของบคลากร โดยเฉลย 2.47 รองลงมาคอจ านวนบคลากรทใหบรการมเพยงพอ โดยเฉลย 2.42 และจ านวนเครองคอมพวเตอรทมใหบรการในหองคอมพวเตอร โดยเฉลย 2.38 นอกจากนน จากการ

เปรยบเทยบความพงพอใจของนกเรยนชายและหญงในการใชบรการหองคอมพวเตอร พบวานกศกษาชายและนกศกษาหญงมความพงพอใจในการใชบรการหองคอมพวเตอรไมแตกตางกน ทระดบนยส าคญ .05

วราพร วงศราชา และคณะ (2551) ไดศกษาความพงพอใจของการใชคอมพวเตอร ชน 12 อาคารจนทรา-กาญจนาภเษกของนกศกษาภาคปกต มหาวทยาลยราชภฏจนทรเกษม พบวาจากนกศกษากลมตวอยางจ านวน 120 คน รอยละ 70.8 ใชคอมพวเตอรเพอคนหาขอมล และรอยละ 65.8 ใชเพอเลนอนเทอรเนต และนสตรอยละ 42.5 ใชบรการหองคอมพวเตอรในชวงเวลา 13.00 – 15.00 น. รองลงมาคอเวลา 11.00 – 13.00 นสตสวนใหญมความพงพอใจในระดบมากในเรอง ความเหมาะสมในการเชอมตออปกรณหรอสายเชอมตอเครองคอมพวเตอร รองลงมาคอเรองความปลอดภยในการใชเครองคอมพวเตอร และเรองแสงสวางในหองคอมพวเตอร สวนเรองจ านวนเครองคอมพวเตอร พนทในหองเรยน อปกรณหรอสอการเรยนการสอน ความสะอาดของหอง การใหบรการของเจาหนาทคอมพวเตอร ความพรอมดานโปรแกรมคอมพวเตอร อณหภมในหองคอมพวเตอร ความเหมาะสมในการตดตงเครองคอมพวเตอร บรรยากาศในหองและสภาพแวดลอม และการประมวลผลของเครองคอมพวเตอร นกศกษามความคดเหนในระดบปานกลาง นอกจากนน จากการเปรยบเทยบความพงพอใจของนกศกษาชนปตางกน พบวานกศกษาทอยในชนปตางกนมความพงพอใจในการใชบรการหองคอมพวเตอรแตกตางกน ทระดบนยส าคญ .05

ศรณยภทร วงศจารทศน และคณะ (2551) ไดศกษาความพงพอใจในการใชบรการหองคอมพวเตอรในศนยคอมพวเตอรของนกศกษาภาคปกต คณะวทยาการจดการ มหาวทยาลยราชภฎ

Page 51: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

54

จนทรเกษม พบวาจากนกศกษากลมตวอยางจ านวน 120 คน นสตสวนใหญมความพงพอใจในระดบมากในเรองจานวนหองนาของศนยบรการหองคอมพวเตอร รองลงมาคอเรองการแสดงบตรนกศกษาเมอเขาใชบรการ ความสะดวกของการเดนทางมาใชบรการหองคอมพวเตอร และเรองจ านวนเครองคอมพวเตอรทใหบรการ ส าหรบความพงพอใจในระดบปานกลางมในเรอง เวลาเปดของหองคอมพวเตอร ความสะอาดของหองคอมพวเตอรการใหบรการอบรมหลกสตร เกยวกบคอมพวเตอร จ านวนเกาอของหองคอมพวเตอรและโปรแกรมการใชงานของคอมพวเตอร กฎระเบยบของการใชบรการหองคอมพวเตอร และการจดรปแบบทนงของหองคอมพวเตอร ประสทธภาพของเครองคอมพวเตอร เวลาปดของหองคอมพวเตอร สภาพแวดลอมของเครองคอมพวเตอร จ านวนหองของคอมพวเตอรทใหบรการ ความเรวของอนเตอรเนต การรอเพอเขาใชบรการหองคอมพวเตอร เวลาของการใชบรการหองคอมพวเตอรแตละครง และเรองเจาหนาททใหคาปรกษาแนะนา นอกจากนน จากการเปรยบเทยบความพงพอใจของนกศกษาชายและนกศกษาหญงภาคปกต พบวานกศกษาชายและนกศกษาหญงภาคปกตมความพงพอใจในการใชบรการหองคอมพวเตอรแตกตางกน ทระดบนยส าคญ .05

รชดา เจรญศร (2550) การวเคราะหปจจยเชงสาเหตทมผลตอความพงพอใจในการใชบรการเครอขายคอมพวเตอรของนกศกษา โดยใชแบบจาลองสมการโครงสราง (Structural Equation Model) พบวา ปจจยทมผลตอความพงพอใจในการใชบรการเครอขายคอมพวเตอร คอ ความเรวในการเขาถง แสดงผลหนาเวบเพจของมหาวทยาลยเทคโนโลยพระจอมเกลาพระนครเหนอ และ Search Engine และอกปจจยหนงคอ ความพงพอใจตอความปลอดภยดานการเขารหสผาน รวมถงความตอเนองของการใชงาน โดยทงสองปจจยหลกมความสมพนธแบบสองทศทาง

ปทมวด วงศด (2550) การวจยครงนมวตถประสงคเพอศกษาความพงพอใจของพนกงานในการใชระบบเครอขายภายใน (Krungsri.net) ของธนาคารกรงศรอยธยา จ ากด(มหาชน) เขตกรงเทพมหานครจ าแนกตามลกษณะทางประชากรศาสตร และเพอศกษาปจจยทสงผลตอความพงพอใจในการใชระบบเครอขายภายใน (Krungsri.net) ของธนาคารกรงศรอยธยา จ ากด(มหาชน) เขตกรงเทพมหานครอนไดแก ลกษณะดานขาวสาร ดานเทคโนโลยการสอสาร และดานเครองมอ-อปกรณ ผวจยทาการรวบรวมขอมลโดยใชแบบสอบถามจาก พนกงานจานวน 400 คน สถตทใชประกอบดวย รอยละ คาเฉลย สวนเบยงเบนมาตรฐาน t-test, One-way ANOVA และการวเคราะหถดถอยพหแบบขนตอน (Stepwise-Multiple Regression Analysis) ผลการวจยพบวาความพงพอใจโดยรวมตอการใชระบบเครอขายภายใน (Krungsri.net) ของพนกงานธนาคารกรงศรอยธยา จ ากด(มหาชน) พบวา พนกงานมความพงพอใจม คาเฉลยเทากบ 6.67คะแนน จากคะแนนเตม 10 คะแนน เมอทาการเปรยบเทยบความแตกตางคาเฉลยความพงพอใจโดยรวมตอการใชระบบเครอขายภายใน

Page 52: บทที่ 2 ทฤษฎีหลักการและงาน ...ctn-phrae.com/assets/uploads/thesis_file/2017-02-16_3940...1.1 ทฤษฎ ระบบเคร อข

55

(Krungsri.net) พบวาคณลกษณะตาง ๆ ทง 7 ดานไดแก เพศ อาย ระดบการศกษา รายได ต าแหนงงาน ลกษณะสายงาน และประสบการณในการทางาน ทแตกตางกน ไมสงผลใหความพงพอใจแตกตางกน

ชรยพร ภมา (2543) วจยเรอง ความคาดหวงและความพงพอใจในการใชประโยชนจากเครอขายคอมพวเตอรเพอโรงเรยนไทย (School Net) ซงงานวจยนนาเสนอเพอพฒนาการศกษาและเรยนรของนกเรยนมธยมศกษาในเขตกรงเทพมหานคร มวตถประสงคเพอศกษาลกษณะความคาดหวงและความพงพอใจในการใชประโยชนเพอพฒนาการศกษาและเรยนรจากเครอขายคอมพวเตอรเพอโรงเรยนไทย ศกษาลกษณะการใชประโยชนเพอพฒนาการศกษาและเรยนรจากอนเทอรเนตผานเครอขายคอมพวเตอรเพอโรงเรยนไทย เพอใชเปนแนวทางในการปรบปรงระบบการเรยนการสอนโดยมเครองมอททนสมยชวยใหเกดประโยชนสงสดตอวงการศกษา งานวจยฉบบนเปนการวจยเชงส ารวจ โดยใชแบบสอบถามเปนเครองมอในการเกบรวบรวมขอมล ประชากรทศกษาไดแก นกเรยนทกาลงศกษาอยช นมธยมศกษาปท 1-6 จากโรงเรยนทมความถในกาใชอนเทอรเนตผานโครงการเครอขายคอมพวเตอรเพอโรงเรยนไทยสงทสด 10 โรงเรยนแรก จ านวน 400 คน ตามสตรของยามาเน โดยศกษาคณลกษณะประชากรศาสตร ทกษะการใชอนเทอรเนต ลกษณะการใชประโยชนจากอนเทอรเนตโดยใชสถตเชงพรรณนา เปนคารอยละ ความถ สวนการศกษาความคาดหวงและความพงพอใจในการใชประโยชนเพอพฒนาการศกษาและเรยนรจากเครอขายคอมพวเตอรเพอโรงเรยนไทยใชสถตการวเคราะหความแปรปรวนรวมจ าแนกทางเดยว (One way ANOVA) ซงผลการวจยพบวานกเรยนมธยมศกษาในเขตกรงเทพมหานครมความคาดหวงทงในปจจบนและอนาคตดานการศกษาทมตอโครงการเครอขายคอมพวเตอรเพอโรงเรยนไทย คออยากใหมการเรยนการสอนโดยใชคอมพวเตอรและอนเทอรเนตทกวชาเพอใหไดขอมลทกวางขวาง ไดรบรสงใหมๆ ทยงๆไมรในการเรยนรายวชาตางๆ มากทสด

จากการศกษาเอกสารและงานวจยทเกยวของกบการสรางและหาประสทธภาพโปรแกรมฐานขอมลบรหารจดการหองเรยนคอมพวเตอร สรปไดวา การสรางและหาประสทธภาพโปรแกรมฐานขอมลบรหารจดการหองเรยนคอมพวเตอร เปนโปรแกรมอยางหนงทสามารถน ามาพฒนาเพอบรการจดการในการเรยนการสอนรายวชาคอมพวเตอรในหองเรยนคอมพวเตอรซงสามารถใหผเรยนใชคอมพวเตอรในการเรยนอยางมประสทธภาพ ดงนน ผจดท าจงไดน าเอาหลกการตางๆ จากเอกสารและงานวจยเหลานมาเปนแนวทางในการสรางโปรแกรมฐานขอมลบรหารจดการหองเรยนคอมพวเตอร