วันจันทร์ที่ 31 กรกฎาคม พ.ศ. 2560

ทำความรู้จักกับ MQTT และ CoAP โปรโทคอลสำหรับรับส่งข้อมูลบนเครือข่าย IoT

ทำความรู้จักกับ MQTT และ CoAP โปรโทคอลสำหรับรับส่งข้อมูลบนเครือข่าย IoT

เนื่องจากผู้ใช้โซลูชัน IoT มักมีความคาดหวังว่าอุปกรณ์ IoT จะต้องมีขนาดเล็ก ราคาถูก แบตเตอรี่อยู่ได้นาน สามารถทำงานบนเครือข่ายที่มีข้อจำกัด ใช้ทรัพยากรบนเครือข่ายน้อยที่สุดเท่าที่จะเป็นไปได้ ด้วย Super Requirement บนทรัพยากรที่มีอยู่อย่างจำกัดจำเขี่ยที่ว่ามานี้จึงทำให้เกิดโปรโทคอลในการสื่อสารแบบใหม่ที่ถูกออกแบบมาให้ ‘Lightweight’ เหมาะสมที่จะนำไปใช้กับอุปกรณ์เซนเซอร์ขนาดที่มีหน่วยประมวลผลขนาดเล็กบนเครือข่ายที่ครอบคลุมในระยะไกล ใช้พลังงานต่ำและมีแบนด์วิธที่จำกัดมากๆ ท่ามกลางสงครามโปรโทคอลบนโลก IoT ที่เกิดขึ้นมากมาย ในบทความนี้เราจะกล่าวถึงโปรโทคอลที่ประสบความสำเร็จเนื่องจากได้รับความนิยมและถูกนำไปใช้อย่างแพร่หลายซึ่งได้แก่ MQTT และ CoAP  นั่นเอง
MQTT (Message Queuing Telemetry Transport) เป็นโปรโทคอลที่ถูกออกแบบมาให้มีขนาดเล็กสำหรับการสื่อสารแบบ M2M ( Machine to Machine ) โดยถือกำเนิดจากวิศวกรจาก IBM และ Eurotech ในปี 1999 เพื่อนำไปใช้ในระบบ SCADA (Supervisory Control and Data Acquisition) สำหรับเชื่อมต่อท่อส่งน้ำมันบนเครือข่ายที่ไม่มีความเสถียรอย่างอินเตอร์เน็ตดาวเทียม ก่อนที่จะถูกบริจาคกลายเป็น Open Standard ในปี 2014 โดย OASIS 
MQTT เป็นสถาปัตยกรรมแบบ Client/Server ซึ่งมี topology แบบ hub-and-spoke ค่ะ sensor ปลายทางจะทำหน้าที่เป็น client ซึ่งทำการสร้างเชื่อมต่อแบบ TCP ไปยัง Server ที่มีชื่อเรียกอีกชื่อว่า Broker ซึ่งมีหน้าที่เป็นเสมือนท่อส่งข้อมูลในการรับส่ง ‘Message’ ระหว่าง Client ที่เป็นได้ทั้ง Publisher และ Subscriberนั่นเอง
Client – หมายถึง Publisher หรือ Subscriber ที่เชื่อมต่อแบบรวมศูนย์ไปยัง Broker ซึ่งสามารถเชื่อมต่อได้ทั้งแบบ persistent ที่ทำการสร้าง session ค้างไว้เปิดตลอดเวลาเพื่อติดต่อกับ Broker ซึ่งตรงกันข้ามกับ  client ที่เชื่อมต่อแบบ transient ซึ่ง Broker ไม่สามารถติดตามสถานะได้
Broker – เป็น software ที่ทำหน้ารับข้อความทั้งหมดที่ได้จาก Publisher แล้วจึงส่งต่อไปให้ Subscriber ตามแต่ Topic ที่ client ได้ทำการ subscribe ไว้
Topic – เป็นเหมือน address หรือ endpoint บน Broker ที่ client ทำการเชื่อมต่อเพื่อรับส่งข้อความระหว่างกันนั่นเอง
MQTT เป็นเหมือนสเปคของซอฟท์แวร์ที่มี API ไม่กี่ตัวในการเชื่อมต่อ client เข้าด้วยกัน จึงไม่สามารถใช้เป็นตัวกลางในการจัดเก็บและกระจายข้อมูล ( Store-and-Forward )  เหมือนเช่นในระบบ  MoM  (Message Oriented Middleware) ที่ทำหน้าที่ในการจัดการคิวในการกระจายข้อมูลในระบบที่ต้องการความน่าเชื่อถือและมีข้อความจำนวนมาก ดังนั้นจึงมีการนำ MQTT ไปประยุกต์ใช้ร่วมกับ MoM เช่น RabbitMQ หรือ Redis เพื่อให้สามารถใช้งานได้อย่างมีประสิทธิภาพในเชิงพาณิชย์
ข้อดีคือ MQTT คือเหมาะกับการนำไปใช้กับระบบคลาวด์ที่ให้บริการแบบรวมศูนย์เพราะถูกออกแบบให้เหมาะกับการกระจายข้อมูลแบบ many-to-many ตัวอย่างแอปพลิเคชันที่นำ MQTT ไปใช้อย่างแพร่หลายคงจะหนีไม่พ้น IoT Platform ที่มีอยู่ในท้องตลาดมากมาย แต่ก่อนหน้านี้ IoT Platform จะผุดขึ้นมาเป็นดอกเห็ด MQTT ก็ได้พิสูจน์ตัวเองโดยการถูกนำไปใช้กับ Facebook Messenger ด้วยเหตุนี้เองจึงทำให้เป็นตัวเลือกยอดนิยมในการให้บริการโซลูชันด้าน IoT บนคลาวด์ อีกทั้งยังเป็นมิตรกับ Network Engineer มากด้วยเนื่องจาก device สามารถทำการสร้าง session แลกเปลี่ยนข้อมูลกันได้โดยไม่ต้องทำการตั้งค่า NAT ให้วุ่นวาย อีกทั้งนักพัฒนาสามารถนำไปใช้กับร่วมกับ TLS/SSL เพื่อเพิ่มความปลอดภัยในการรับส่งข้อมูลได้ด้วย
แม้ MQTT จะถูกออกแบบมาให้มีขนาดเล็ก แต่ก็ยังมีข้อเสียสำหรับอุปกรณ์ที่มีทรัพยากรจำกัดเนื่องจาก clientทุกตัวต้องรองรับ TCP และทำการสร้างการเชื่อมต่อกับ broker ไว้ตลอดเวลา ซึ่งอาจเกิดปัญหาได้หากอยู่ในเครือข่ายที่ไม่เสถียร ( เน็ตหลุดบ่อยเป็นต้น)
CoAP (Constrained Application Protocol) เป็นมาตรฐานที่ถูกพัฒนาขึ้นมาใหม่โดย IETF ในปี 2014 โดยถูกออกแบบให้คล้ายกับ HTTP ซึ่งเป็น Document transfer protocol แต่มีขนาดเล็กกว่ามาก (มี header แบบคงที่ขนาด 4 byte) เพราะตัดส่วนที่ไม่จำเป็นทิ้งและรันบน UDP ซึ่งเป็น protocol ที่ไม่มีการสร้างการเชื่อมต่อระหว่างอุปกรณ์ปลายทาง จึงส่งข้อมูลได้เร็วมากแต่ไม่การันตีว่าข้อมูลจะถูกส่งไปยังปลายทางอย่างแน่นอนและถูกต้องตามลำดับ การส่งซ้ำและเรียงลำดับข้อมูลต้องไปทำบนระดับแอปพลิเคชัน
CoAP เป็นสถาปัตยกรรมแบบ Client/Server โดย client จะทำการร้องขอทรัพยากรไปที่ server โดยตรง จากนั้น server จะทำการตอบกลับคำร้องพร้อมกับออพชัน ‘Content-Type’ เพื่อว่าบอก client ว่ากำลังจะได้รับข้อมูลในรูปแบบไหนกลับไป (เช่น JSON, XML, CBOR เป็นต้น) โดย client สามารถ GET, PUT, POST และ DELETE ทรัพยากรบน Server ด้วย URL และ query string คล้ายกับ REST API ที่เราคุ้นเคยนั่นเอง
ในการสภาปัตยกรรมแบบ CoAP ที่มีการแลกเปลี่ยนทรัพยากรกันโดยตรง Sensor Node ทำหน้าที่เป็นทั้ง Server และ Client ในเวลาเดียวเพราะต้องทำการตอบรับ packets ที่ถูกส่งมาหา
ในมุมของนักพัฒนาแล้ว CoAP มีความคล้ายคลึงกับ HTTP มาก ซึ่งทำให้การดึงข้อมูลจากเซ็นเซอร์ไม่ต่างจากการดึงข้อมูลผ่าน Web API เท่าไหร่นัก บางคนอาจจะเปรียบ CoAP ได้ว่าเป็น REST API สำหรับ MCUนั่นเอง อีกทั้งยังเป็นโปรโทคอลที่มีความปลอดภัย เพราะมีการเข้ารหัสแบบ DTLS (เทียบเท่ากับ 3072-bit RSA key) ซึ่งสามารถรันบนอุปกรณ์ขนาดเล็กได้
CoAP เป็นโปรโทคอลใหม่ที่กำลังถูกพัฒนาอย่างต่อเนื่องแตกต่างจาก MQTT ที่เติบโตจนอยู่ในขั้นที่เสถียรแล้ว
CoAP ออกแบบมาสำหรับการแลกเปลี่ยนข้อมูลแบบ one-to-one เหมาะสำหรับแอปพลิเคชันแบบกระจายศูนย์ที่มีอุปกรณ์อยู่บนเครือข่ายเดียวกันสามารถติดต่อกันได้โดยตรง (ถ้าอยู่คนละเครือข่ายอาจต้องลำบากในการตั้งค่า NAT นั่นเอง) ตัวอย่างแอปพลิเคชันที่มีการนำ CoAP ไปใช้แพร่หลายคือระบบ Smart Home หรือระบบที่ต้องมีการควบคุมและสั่งงานโดยผู้ใช้เป็นต้น
จะเห็นได้ว่าแต่ละโปรโทคอลมีทั้งข้อดีและข้อเสียที่แตกต่างกัน สุดท้ายแล้วการตัดสินใจว่าจะนำแต่ละโปรโทคอลใดไปใช้ขึ้นอยู่กับสถานการณ์ สถาปัตยกรรมของระบบและข้อจำกัดทางด้านทรัพยากรทางด้านเครือข่ายของแต่ละคน เราจึงต้องเลือกเครื่องมือให้เหมาะสมกับงาน ในระบบที่มีความซับซ้อนมากๆ เราอาจจะประยุกต์ใช้พร้อมกันหลายๆ โปรโทคอลตามแต่ความเฉพาะเจาะจงของแอปพลิเคชันเพื่อให้บรรลุเป้าหมายในการทำงานได้อย่างมีประสิทธิภาพสูงสุดนั่นเอง
 ที่มา:http://www.adslthailand.com/post/mqtt-coap-comparison-iot-protocol

วันอาทิตย์ที่ 16 กรกฎาคม พ.ศ. 2560

กระบวนการพัฒนาซอฟต์แวร์แบบ Water Fall Model

Water Fall Model เป็นกระบวนการพัฒนาซอฟต์แวร์แบบลำดับขั้นตอนจากบนลงล่าง (เหมือนน้ำตกโดยกระแสน้ำจะไหลจากข้างบนลงสู่ข้างล่างเสมอ) โดยจะมีการแบ่งขั้นตอนต่าง ๆ ดังนี้

  1. Requirement เป็นขั้นตอนในการกำหนดปัญหารวมถึงกำหนดเป้าหมายและกำหนดปัจจัยต่าง ๆ ในการพัฒนาระบบ
  2. Analysis เป็นขั้นตอนในการวิเคราะห์ปัญหาและการทำงานต่าง ๆ ที่อาจเกิดขึ้นในระหว่างการพัฒนาซอฟต์แวร์
  3. Design  เป็นการออกแบบโปรแกรมเพื่อที่จะให้โปรแกรมสามารถทำงานได้อย่างมีประสิทธิภาพมากที่สุด
  4. Coding  เป็นขั้นตอนในการเขียนโปรแกรมตามที่ได้ออกแบบไ้ว้ในขึ้นตอนที่ 3
  5. Testing เป็นขั้นตอนในการทดสอบประสิทธิภาพของโปรแกรม  ซึ่งรวมไปถึงการทดสอบในเรื่องของความปลอดภัยของโปรแกรมด้วย
  6. Maintenance เป็นขั้นตอนในการบำรุงรักษาและการพัฒนาต่อยอดให้ดียิ่งขึ้น
กระบวนการพัฒนาซอฟต์แวร์แบบลำดับขั้นตอนจากบนลงล่าง Water Fall Model
Water Fall Model


ทำ Hiren usb ด้วย Ubuntu 2in1

ทำ Hiren usb ด้วย Ubuntu 2in1

สำหรับ ใครที่ใช้ทั้ง ubuntu และ windows ในเครื่องเดียวกัน นอกจากการใช้สื่ออย่าง dvd หรือแผ่น cd แล้ว เดี๋ยวนี้สิ่งที่นิยมมากก็คือการลง OS จาก USB ไดร์ เพราะเดี๋ยวนี้ทั้งราคาถูกและความจุก็มากขึ้นด้วย โดยปกติผมจะมี usb ที่เป็น hiren ซึ่งมีเครื่องมือในการช่วยเหลือต่างๆ ในการจัดการเกี่ยวกับการซ่อมแซมดูและคอมพิวเตอร์ ไม่ว่าจะเป็นการแบ่งพาร์ทิชั่น การ format การ Ghost หรืออื่นๆ อีกเยอะแยะมาก และผมก็มี usb อีกแท่งหนึ่ง ทำไว้เพื่อเอาไว้ลง ubuntu ครับ แต่วันนี้ผมมีวิธีที่จะเอาทั้งสองมารวมใน usb เดียวกันเลย จะได้สามารถใช้ได้ทั้ง hiren และ ubuntu install ได้ด้วย ไม่เปลืองและง่ายด้วย



อันดับแรกสิ่งที่คุณต้องมีคือ
1.usb drive ขนาดซัก 2gb จริงๆแค่ 1gb ก็เพียงพอครับ แต่สำหรับ linux บาง distro มีขนาดใหญ่มากอาจไม่พอ
2.ไฟล์ของโปรแกรม Hiren
3.เครื่องคอมที่ลง ubuntu ไว้หรือจะเป็น Linux ตัวอื่นก็ได้ครับ แต่ขอให้มี usb-create ก็พอ
4.ไฟล์อิมเมจของ ubuntu ที่เป็น .iso หรือจะเป็น cd สำหรับติดตั้ง ubuntu ก็ได้

มาเริ่มทำกันเลยดีกว่า
ถ้า Linux ของคุณไม่มี usb-create คุณสามารถติดตั้งได้ผ่าน Snaptic Package Manager แล้ว search หาจากคำว่า usb-create ครับ ถ้าเครื่องคุณมีแล้วจะได้ดังรูป ให้เปิดโปรแกรม usb-create ได้เลย


เปิด มาก็ได้หน้าตาแบบนี้ ในช่อง source disc image ให้ mount ไปที่ไฟล์ .iso หรือที่ cd ที่ใส่ไว้ในเครื่องครับ แล้วข้างล่างให้เลือกที่ usb ที่เราเสียบเอาไว้ แล้วกด make startup disk ได้เลย จากนั้นก็รอไปเลยครับอาจใช้เวลานานหรือช้าขึ้นอยุ่กับขนาดของ iso และความเร็วของเครื่อง

 

พอคุณทำเสร็จ จากนั้นให้คุณโหลด Grub มาลงไว้ใน usb ที่ใช้ทำในครั้งนี้ครับ ซึ่งจะมีสองไฟล์คือไฟล์ Grub.exe กับไฟล์ menu.lst  ดาวน์โหลด Grub-hiren.exe จากนั้นก็เอาไฟล์ hiren มาใส่ไว้ใน usb ด้วยครับ


พอเอาไฟล์ hiren ใส่ใน usb เสร็จ ให้คุณเข้าไปใน usb แล้วหาไฟล์นี้ \syslinux\menu.cfg ครับ แล้วเพิ่มสองบรรทัดนี้ลงเข้าไป
label Load ^Grub with Hiren's Utilities
KERNEL /grub.exe

จริงๆ แล้ววิธีนี้สามารถทำได้กับ Linux ในสายพันธ์เดียวกับ ubuntu ได้หมดครับ เช่น linux mint หรือจะเป็นอย่างอื่น แต่ว่าในขึ้นตอนการแก้ไฟล์ menu.cfg บางทีอาจมีชื่ออื่นครับ ถ้าคุณใช้ ubuntu คุณจะเจอไฟล์ดังกล่าวแน่ๆ แต่ถ้า .iso ที่คุณทำเป็นของยี่ห้ออื่นเช่น linux mint คุณอาจเจอไฟล์อื่น แต่มันจะอยู่ใน \syslinux ครับ

ตัวอย่างข้อความในไฟล์ menu.cfg จะได้อ้างอิงได้เผื่อไฟล์ชื่อไม่เหมือนกัน
menu hshift 13
menu width 49
menu margin 8
label Load ^Grub with Hiren's Utilities < นี่คือสองบรรทัดที่เพิ่มเข้าไป
KERNEL /grub.exe
menu title Installer boot menu
include stdmenu.cfg
include text.cfg
include amd.cfg
include gtk.cfg
include amdgtk.cfg
menu begin advanced
menu title Advanced options
label mainmenu
menu label ^Back..
menu exit
include stdmenu.cfg
include adtext.cfg
include adamd.cfg
include adgtk.cfg
include adamdgtk.cfg
menu end
label help
menu label ^Help
config prompt.cfg

พอ เสร็จแล้วก็ให้บูตเครื่องแล้วตั้งให้ first boot เป็นที่ usb ได้เลยครับ ทีนี้คุณก็จะสามารถเลือกได้ทั้ง hiren และติดตั้ง ubuntu ได้ด้วย สะดวกสุดๆ ไปเลยครับ เสียเวลาหน่อยแต่คุ้มค่า


 

วิธีทำให้ Ubuntu ใช้ Grave เปลี่ยนภาษาได้

วิธีทำให้ Ubuntu ใช้ Grave เปลี่ยนภาษาได้

สำหรับ ใครที่ใช้ ubuntu อยู่ตอนนี้ ถึงแม้ว่าจะ ubuntu จะซัฟพอตภาษาไทยได้ดีมากพอตัว แต่ปัญหาหนึ่งก็คือเรื่องของการเปลี่ยนภาษา ระหว่างภาษาไทยกับภาษาอังกฤษ เพราะปกติค่า Default ที่ ubuntu เซทมาให้ การเปลี่ยนภาษา หรือ Keyboard Layout เนี่ย จะต้องใช้ตัว alt+shift ถึงจะเปลี่ยนภาษาได้ แต่ก็ด้วยความที่ว่ามันติดมาจากการใช้วินโดว์ เพราะปกติเราใช้เจ้าตัวปุ่มนี้ ~ หรือที่เรียกว่า grave key เนี่ยเปลี่ยนภาษาเอา แล้วจะทำยังไงละ วันนี้มีวิธีมาฝากครับ



แรกเริ่มเราต้องหาโปรแกรมมาเพิ่มก่อน คือเจ้าโปรแกรมที่ชื่อว่า xkb-data-grave.deb สามารถดาวน์โหลดได้ที่นี่ครับ Download กันเหนียวไว้หน่อย ถ้าลิงค์แรกโหลดไมไม่ได้ ใช้ที่นี่ก็ได้ครับ Download พอโหลดมาเสร็จก็ทำการติดตั้งได้เลยวิธีการติดตั้งก็ง่ายแสนง่ายครับ เพราะไฟล์เป็น .deb สามารถดับเบิ้ลคลิ๊กติดตั้งได้เลย หรือจะคลิ๊กขวาแล้วเลือก install ผ่านโปรแกรม Gdebi installer ได้เลยครับ ดูจากรูปเอา



พอ เราทำตามการติดตั้งเสร็จทีนี้ก็มาถึงการตั้งค่า layout ของ keyboard กันแล้ว ถ้าใครยังไม่มี keyboard icon ที่ทาร์กบาร์ ก็เพิ่มได้ด้วยวิธีนี้นะครับ ให้คลิ๊กขวาที่ทาร์กบาร์ด้านบนหรือล่างก็ได้ตรงที่ว่างๆ แล้วเลือก add to panel แล้วก็เลือกเพิ่มที่ keyboard indicator ตามรูปเลยครับ พอเพิ่มเสร็จเราก็จะได้ language icon ที่ทาร์กบาร์แล้ว



มา คราวนี้เราก็มาเซท keyboard layout โดยการคลิ๊กขวาที่ language icon แล้วเลือก keyboard preferance แล้วก็เลือกที่ layout แล้วก็เลือกตามรูปเลยครับ จะมีให้ติ๊กถูก ให้เลือกที่ Grave ตามรูป แล้วก็ save ok ok ok  แค่นี้ก็เสร็จเป็นอันว่าเราสามารถเปลี่ยนภาษาได้ด้วยปุ่ม Grave แล้วครับ ง่ายที่ซู๊ดดดดด

โปรโตคอล (Protocol)

โปรโตคอล (Protocol)


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

CSMA / CD

เป็นโปรโตคอลในระบบเครือข่าย Ethernet (เป็นระบบแลนชนิดหนึ่งที่นิยมใช้มากที่สุดในปัจจุบัน) ใช้เมื่อการ์ดเน็ตเวิร์กต้องการจะส่งข้อมูลออกไปตามสายเพื่อป้องกันการชนของ ข้อมูล การ์ดเน็ตเวิร์กจะทำการเงี่ยฟังสักระยะหนึ่งก่อนว่าสายว่างแล้วหรือยัง เมื่อไม่มีใครส่งข้อมูลมันก็จะทำการส่งข้อมูลออกไปตามสายสัญญาณและคอยเงี่ย หูฟังอยู่เป็นระยะๆ เมื่อพบว่ามีการชนของข้อมูลมันจะหยุดส่งทันที แล้วสุ่มช่วงเวลาเพื่อส่งข้อมูลใหม่อีก เนื่องจากฝ่ายตรงข้ามที่ชนกันกับเราก็ใช้โปรโตคอล CSMA/CD เช่นกัน ดังนั้นใครสุ่มช่วงเวลาได้น้อยกว่าก็จะได้ส่งก่อน

ARP (Address Resolution Protocal)

เมื่อคอมพิวเตอร์เครื่องหนึ่งต้องการส่งข้อมูลไปยังคอมพิวเตอร์อีกเครื่อง หนึ่งตามไอพีแอดเดรสที่ระบุ (ไอพีแอดเดรสเป็นตัวที่ใช้บ่งบอกว่าเป็นคอมพิวเตอร์เครื่องใดในเน็ตเวิร์ก แต่ไอพีแอดเดรสจะอยู่ในระดับที่สูงกว่า  MAC Address นั่นคือไอพีแอดเดรสจะอยู่ในระดับที่ห่างไกลจากระดับการทำงานทางกายภาพ เช่น การส่งสัญญาณไฟฟ้ามากกว่า MAC Address) การ์ดเน็ตเวิร์กผู้ที่จะต้องส่งเฟรมข้อมูลไปยัง  MAC Address ของการ์ดเน็ตเวิร์กบนเครื่องคอมพิวเตอร์ปลายทาง จำเป็นที่จะต้องทราบว่าถ้าต้องการส่งไปยังไอพีแอดเดรสนี้ ต้องส่งไป  MAC Address หมายเลขอะไร ดังนั้นจึงต้องมีโปรโตคอลที่ใช้ในการค้นหาคำตอบดังกล่าว ซึ่งโปรโตคอลนั้นก็ถูกนักคอมพิวเตอร์คิดค้นขึ้นมาแล้วได้รับการตั้งชื่อว่า ARP : Address Resolution Protocal การ ทำงานของ ARP คือเริ่มจากผู้ส่งทำการตรวจสอบในตารางข้อมูล ARP อขงตนเองก่อน ถ้าไม่มีข้อมูล MAC Address ของปลายทางก็จะส่งคำร้องนี้ (ARP Request) กระจายแบบบรอดคาสต์ออกไป คอมพิวเตอร์ทุกเครื่องในเครือข่ายจะได้รับคำร้องขอนี้ และแต่ละเครื่องก็จะนำไอพีแอดเดรสที่ต้นทางส่งมา ทำการเปรียบเทียบกับไอพีแอดเดรสของตนเอง ถ้าตรงกับของตนเองก็จะส่งคำตอบรับ (ARP Reply) กลับไปยังต้นทาง ซึ่งข้อมูลที่ส่งตอบรับกลับไปมีหมายเลข  MAC Address ของตนเองด้วย พร้อมทั้งเก็บไอพีแอดเดรสและ MAC Address ของผู้ส่งไว้ในตารางข้อมูล ARP ของตนเองด้วย

PPP (Point to Point Protocol)

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

IP (Internet Protocol)

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

UDP

เป็นโปรโตคอลชั้นที่อยู่กว่าโปรโตคอล IP โปรโตคอล UDP เป็นโปรโตคอลที่เชื่อถือไม่ได้ เพราะถ้าข้อมูลหายระหว่างทาง ข้อมูลจะไม่ถูกนำส่งใหม่ UDP มักจะถูกนำมาใช้กับงานด้าน Multimedia เช่น ส่งภาพและเสียง ซึ่งถ้าภาพที่ต้องการส่งมีการสูญหายของข้อมูลไปสัก 2 หรือ 3 pixel (จุดสี) เราก็ยังเห็นเป็นภาพอยู่ดี ข้อดีของ UDP ก็คือ ได้เปรียบด้านความเร็ว เพราะขั้นตอนของมันจะไม่ยุ่งยากเหมือนกับ TCP

TCP

เป็นโปรโตคอลที่อยู่ชั้นสูงกว่า IP และอยู่ในระดับเดียวกันกับ UDP โปรโตคอล TCP จะมีความน่าเชื่อถือเพราะจะมีการรับประกันว่าข้อมูลที่ส่งจะไม่สูญหาย (เนื่องจากมันถูกออกแบบมาแบบนั้น) เมื่อข้อมูลมาไม่ครบจะมีการส่งใหม่ TCP เป็นโปรโตคอลที่นำมาใช้กับงานที่ต้องการความถูกต้องเชื่อถือได้ เช่น นำมาใช้เป็นพาหนะให้โปรโตคอล Telnet เช่น ถ้าเราส่งคำสั่ง ls จากเครื่องของเราไปยังเซิร์ฟเวอร์ (Server) เพื่อทำการแสดงรายชื่อไฟล์ได้ถูกต้อง แต่ถ้าเกิดให้ Telnet วิ่งอยู่บน UDP แล้ว ด้วยข้อจำกัดของ UDP อาจจะทำให้คำสั่งนั้นกลายเป็น rm *  ซึ่งเป็นคำสั่งที่ใช้ในการลบไฟล์ทุกไฟล์ก็ได้ เพราะ UDP ไม่รับประกันความถูกต้อง

ICMP

ICMP เป็นโปรโตคอลที่ใช้ในการแจ้งข้อผิดพลาดและปัญหาที่เกิดจากการลำเลียง IP Packet ซึ่งภายในแพ็กเกตของ ICMP จะบรรจุข้อมูลเกี่ยวกับข้อผิดพลาดและปัญหาที่เกิดขึ้น

HTTP


เป็นโปรโตคอลที่เอาไว้ให้เว็บเบราเซอร์ (Browser) คุยกับเว็บเซิร์ฟเวอร์ (Web server) เพื่อใช้ในการขอและรับ (รวมถึงควบคุมการถ่ายโอน) หน้าเว็บเพจต่างๆ มาแสดง   โปรโตคอล HTTP จะวิ่งอยู่ข้างบน TCP อีกทีหนึ่งเพื่อที่จะได้ข้อมูลมาครบถ้วย โดยปกติแล้ว HTTP จะใช้พอร์ตหมายเลข 80

DNS (Domain Name System)


เป็นโปรโตคอลที่ใช้ในการแปลงชื่อโดเมนเนมให้เป็นไอพีแอดเดรส (IP Address) เช่น แปลงจาก www.google.com ให้เป็น 74.125.29.101 เป็นต้น ในการตั้งค่า DNS ในเครื่องไคลเอนต์ก็เพื่อระบุว่า จะขอให้เครื่อง DNS Server เครื่องใดเป็นตัวช่วยแปลงชื่อให้เป็นไอพีแอดเดรสให้ เราสามารถใช้ DNS ของ ISP ก็ได้ เมื่อส่งชื่อไปให้ DNS Server เพื่อทำการแปลงแล้ว DNS Server ดังกล่าวอาจจะไปขอให้ DNS Server เครื่องอื่นที่อยู่ในระดับที่สูงกว่าช่วยแปลงให้ก็ได้ ถ้ามันมีข้อมูลไม่เพียงพอ และ DNS Server ระดับที่สูงกว่าก็อาจจะขอให้ DNS Server ระดับที่สูงกว่ามันช่วยอีกทีก็ได้ DNS Server ระดับสูงสุดเรียกว่า Root Server จะมีอยู่ 13 เครื่องทั่วโลก คือ A.ROOT-SERVERS.NET, B.ROOT-SERVERS.NET ไปจนถึง M.ROOT-SERVERS.NET โปรโตคอล DNS จะวิ่งอยู่บน UDP port 53 และ TCP port 53

SMTP


เป็นโปรโตคอลที่ใช้ในการส่งอีเมล์ไปยังเมล์เซิร์ฟเวอร์ (Mail Server) เช่น เมื่อเราส่งอีเมล์หา billgates@microsoft.com ขั้นแรกเราต้องส่งอีกเมล์เข้าเมล์เซิร์ฟเวอร์ของหน่วยงานเรา ซึ่งเมล์เซิร์ฟเวอร์จะเปิดบริการ SMTP รอรับไว้บน TCP port 25 จากนั้นเมล์เซิร์ฟเวอร์ของหน่วยงานเราจะส่งไปให้เมล์เซิร์ฟเวอร์ของไมโครซอฟ อาจจะต้องส่งเข้าเครื่อง mail.microsoft.com หรือ mail2.microsoft.com ก็ได้ แล้วแต่ค่าที่มีอยู่ใน MX Record

POP3

เป็นโปรโตคอลที่มีไว้ใช้ในการขอรับอีเมล์จากเมล์เซิร์ฟเวอร์ ซึ่งเมล์เซิร์ฟเวอร์ต้องเปิดบริการ POP3 ไว้ ซึ่ง POP3 จะวิ่งอยู่บน TCP Port 110 และหลังจากทำการคัดลอกอีเมล์มาไว้บนเครื่องไคลเอนต์แล้ว โปรแกรมอีเมล์ไคลเอนต์ เช่น Microsoft Outlook จะทำการลบอีเมล์บนเมล์เซิร์ฟเวอร์ทิ้งไป เพื่อเป็นการประหยัดเนื้อที่บนเซิร์ฟเวอร์
วีดิโอเปรียบเทียบ POP3 vs IMAP

IMAP

เป็นโปรโตคอลที่ใหม่กว่า POP3 ข้อแตกต่างหลักๆ ของมันก็คือ การที่ให้อีเมล์อยู่บนเมล์เซิร์ฟเวอร์ ซึ่งโปรแกรมอีเมล์ไคลเอนต์ เช่น Microsoft Outlook จะทำการอ่านข้อมูลของอีเมล์เซิร์ฟเวอร์ แล้วนำมาแสดงผลให้เราดูเสมือนว่าอีเมล์อยู่บนเครื่องเรา
วีดิโอเปรียบเทียบ POP3 vs IMAP

SNMP

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

คำสั่งพื้นฐานด้านเน็ตเวิร์ก

คำสั่งพื้นฐานด้านเน็ตเวิร์ก

คำสั่ง ipconfig

เป็นคำสั่งที่ใช้ตรวจสอบไอพีแอดเดรสของเครื่องคอมพิวเตอร์ที่ใช้ระบบปฏิบัติ การตระกูล Windows โดยมันจะแสดงค่า IP Address, Subnet Mask, Gateway, DNS Server และข้อมูลอื่นๆ แต่สำหรับเครื่องคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการตระกูล Unix จะใช้คำสั่ง ifconfig


คำสั่ง ping

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

คำสั่ง traceroute

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


คำสั่ง traceroute (อ่านว่า เทรซเร้า) ในระบบ Windows มักจะเขียนชื่อไฟล์คำสั่งไม่เกิน 8 ตัวอักษร ดังนั้นคำสั่ง traceroute จึงกลายเป็น tracert ซึ่งนักคอมพิวเตอร์หลายๆ คนที่ไม่ค่อยรู้เรื่องมากนัก จะเรียกว่า คำสั่ง ทราเซิร์ท

คำสั่ง route

ใช้เพื่อแสดง เพิ่ม-ลบ และเปลี่ยนแปลงค่าใน Route Table ณ ตอนนี้จะไม่ขอลงรายละเอียดมากนัก เจอกันในบทความต่อไป
คำสั่ง arp
ใช้สำหรับแสดงข้อมูลในตาราง ARP นอกจากนั้นยังทำการเพิ่ม-ลบ และเปลี่ยนแปลงค่าในตาราง ARP ได้อีกด้วย

คำสั่ง netstat

เป็นคำสั่งที่มีอยู่ทั้งระบบ Unix และ Windows ใช้เพื่อตรวจดูสถานะทาง TCP และ UDP บนเครื่องคอมพิวเตอร์ของเรา เช่น ดูว่าขณะนี้เรากำลังทำการติดต่อ TCP กับใครบ้าง เป็นต้น คำสั่ง netstat จะมีการ resolve host name ด้วย ถ้าเราไม่ต้องการให้มีการ resolve host name จะต้องใช้พารามิเตอร์คือ netstat -n

คำสั่ง nslookup

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


(สำหรับ Windows อาจจะเรียกใช้คำสั่งแตกต่างกันออกไป)

คำสั่ง telnet

เป็นคำสั่งดั้งเดิมบนระบบ Unix ซึ่งมีประโยชน์อย่างมากในการที่จะทำให้ User ซึ่งอยู่ที่ใดก็ตามในเน็ตเวิร์กหรืออินเทอร์เน็ต สามารถที่จะรีโมต (Remote)  เข้ามาเพื่อใช้งานเครื่องเซิร์ฟเวอร์ได้ ซึ่งในระบบ Unix นั้นการกระทำภารกิจต่างๆ จะทำโดยการใช้คำสั่งทีละบรรทัด (Command Line) คำสั่ง telnet จำพูดคุยกับเซิร์ฟเวอร์ปลายทางด้วยโปรโตคอล telnet ซึ่งโปรโตคอล telnet จะวิ่งอยู่บนโปรโตคอล TCP Port 23

คำสั่ง telnet ไม่ได้มีเฉพาะใน Unix และ Linux เท่านั้น แต่ใน Windows เอง ก็มีให้ใช้งานเช่นกัน คำสั่ง telnet ไม่ใช่เพียงการรีโมตเพื่อล็อกอินเข้าไปยังเซิร์ฟเวอร์เท่านั้น แต่ Telnet ยังสามารถทำ TCP Connect เข้าไปยังพอร์ตใดๆ ก็ได้ เช่น การ Telnet ไปยังพอร์ต 25 และพอร์ต 110 เพื่อทำการรับส่งอีเมล์โดยตรง

คำสั่ง ftp

FTP เป็นทั้งชื่อโปรแกรมและเป็นโปรโตคอลที่ใช้สำหรับการถ่ายโอนไฟล์ต่างๆ ระหว่างเครื่องที่เปิดบริการ FTP (ซึ่งเรียกว่า FTP Server) กับคอมพิวเตอร์ใดๆ ในเน็ตเวิร์ก (ซึ่งก็คือ FTP Client) โดยเครื่อง FTP Client จะทำการ Connect ทาง TCP ไปยัง Port 21 ของ FTP Server จากนั้นจะขอการโอนไฟล์ระหว่างกันโดยใช้คำสั่งตามโปรโตคอล FTP คำสั่งที่นิยมใช้กันก็มีประมาณนี้

  • ls เพื่อแสดงรายชื่อไฟล์
  • cd เพื่อย้ายไดเรอทอรีบนเซิร์ฟเวอร์
  • lcd เพื่อย้ายไดเรกทอรีบนเครื่องเรา
  • bin เพื่อเตรียมการก่อนถ่ายโอนไฟล์ที่เป็นไบนารี (Binary) เช่น โปรแกรมที่เป็นคอมไพล์ (Compile)แล้ว
  • asc เพื่อเตรียมการก่อนถ่ายโอนไฟล์ที่เป็นแอสกี (ASCII) เช่น Text File
  • get เพื่อถ่ายโอนไฟล์จากเซิร์ฟเวอร์มาไว้บนเครื่องเรา
  • put เพื่อถ่ายโอนไฟล์จากเครื่องเราไปเก็บไว้บน Server
  • mget เหมือน get แต่เป็นการย้ายที่ละหลายไฟล์
  • mput เหมือน put แต่เป็นการย้ายที่ละหลายไฟล์
  • bye ปิดการ Connect จาก FTP Server

อุปกรณ์ที่ใช้ในระบบเครือข่าย

อุปกรณ์ที่ใช้ในระบบเครือข่าย


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

การ์ดเน็ตเวิร์ก (Network Interface Card)

การ์ดเน็ตเวิร์ก หรือ Network Interface Card (NIC) ซึ่งมันจะถูกเรียกว่า "การ์ดแลน" นั้นมีหน้าที่ในการที่จะนำเฟรมข้อมูล (เป็นก้อนข้อมูลที่จัดอยู่ใน Layer 2 ของ OSI Reference Model) ส่งลำเลียงไปตามสายนำสัญญาณ ซึ่งันจะแปลงเฟรมข้อมูลให้เป็นข้อมูลระบบบิต (bit) เสียก่อน โดยส่วนมากแล้วมักจะใช้การ์ดเน็ตเวิร์กแบบ Ethernet ซึ่งจะมีความเร็วในการรับส่ง 10 เมกะบิตต่อวินาที และใช้ Fast Ethernet ที่มีความเร็วในการรับส่งข้อมูลถึง 100 เมกะบิตต่อวินาที ซึ่งปัจจุบันการ์ดเน็ตเวิร์กที่เป็นที่นิยมจะต้องทำการรับส่งข้อมูลได้ทั้ง สองความเร็วคือ 10 และ 100 เมกะบิตต่อวินาที ซึ่งจะใช้สัญลักษณ์ 10/100 Mbps และมักจะต่อเชื่อมกับสายสัญญาณชนิด UTP และช่อง RJ-45  การ์ดเน็ตเวิร์กของเครื่องคอมพิวเตอร์ต้นทางและเครื่องคอมพิวเตอร์ปลายทาง จะส่งข้อมูลหากันโดยการอ้างถึงหมายเลขประจำการ์ดเน็ตเวิร์ก ซึ่งเรียกว่า MAC Address ซึ่งเป็นตัวเขฐานสิบหกจำนวน 12 ตัว (6 ไบต์)

สายสัญญาณ (Cable)

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

สาย TP (Twisted Pair)

เป็นสายคู่ตีเกลียวบิดไขว้กันไปตลอดแนวความยาว เพื่อลดการรบกวนจากสัญญาณภายนอก แบ่งเป็น 2 ประเภทคือ แบบที่มีชีลหุ้มซึ่งเรียกว่า STP (Shield Twisted Pair) และแบบที่ไม่มีชีลหุ้มซึ่งเรียกว่า UTP (Unshield Twisted Pair) ปัจจุบันนิยมใช้สาย UTP เนื่องจากมีราคาถูก สาย UTP มักจะต่อเชื่อมกับการ์ดเน็ตเวิร์กด้วยแจ็คแบบ RJ-45

สาย TP ที่ใช้กับระบบแลนทั่วๆ ไปจะประกอบด้วยสายไฟฟ้าข้างใน 8 เส้น ถ้าปลายทั้งสองข้างเรียงสีเหมือนกันจะเรียกว่า "สายตรง" แต่ถ้าปลายทั้งสองข้างเรียงสีไม่เหมือนกันโดยมีการสลับตำแหน่งกัน 2 คู่ คือ 1 สลับกับ 3 ส่วน 2 สลับกับ 6 จะเรียกว่า "สายไขว้" สายตรงมีไว้เพื่อเชื่อมต่อระหว่างคอมพิวเตอร์กับฮับ / สวิตซ์ หรือต่อระหว่างฮับ / สวิตซ์กับฮับ / สวิตซ์ด้วยกันเองโดยที่ฮับ / สวิตซ์ตัวใดตัวหนึ่งต้องต่อที่ช่อง Up-Link ส่วนสายไขว้มีไว้เชื่อมระหว่างคอมพิวเตอร์กับคอมพิวเตอร์โดยตรง หรือ ฮับ / สวิตซ์กับฮับ / สวิตซ์ด้วยกันเอง โดยที่ไม่ใช้ช่อง Up-Link เลย

สายโคแอคเชียล Coaxial

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

สายไฟเบอร์ออฟติก (Fiber-Optic)

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

รีพีตเตอร์ (Repeater)

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

ฮับ (Hub)

เป็นอุปกรณ์เครือข่ายที่พบเห็นได้บ่อย เนื่องจากฮับใช้เชื่อมต่อเครือข่ายอีเทอร์เน็ตซึ่งเป็นการเชื่อมต่อแบบดาว (Star Topology) โดยใช้สาย UTP ต่อเชื่อมระหว่างการ์ดเน็ตเวิร์กบนเครื่องคอมพิวเตอร์เข้ากับฮับ โดยเชื่อมต่อทางช่องเสียง RJ-45 ซึ่งการเชื่อมต่อระบบแลนลักษณะนี้เป็นที่นิยมมากที่สุดในปัจจุบัน ฮับจะมีช่องเสียบ RJ-45 ตัวเมียอยู่หลายช่องเพื่อเชื่อมต่อกับคอมพิวเตอร์ ถ้ายิ่งมีช่องเสียบมากก็จะยิ่งต่อเชื่อมกับคอมพิวเตอร์ได้มาก แต่ราคาก็จะสูงตามไปด้วย การทำงานของฮับนั้นคล้ายๆ กับรีพีตเตอร์ คือมันจะทำซ้ำและเพิ่มความแรงของสัญญาณทางไฟฟ้าแล้วส่งออกไปยังพอร์ต (ช่องเสียบ) ที่เหลือ แต่จะต่างกันตรงที่ฮับมีพอร์ตมากกว่ารีพีตเตอร์ ข้อดีของฮับคือมีราคาถูก แต่ข้อเสียคือเรื่องการชนกัน (Collision) ของข้อมูล (เนื่องจากคอมพิวเตอร์ที่ต่อเชื่อมกับฮับจะอยู่ในคอลลิชันโดเมนเดียวกัน) ถ้ายิ่งเชื่อมต่อกับคอมพิวเตอร์เป็นจำนวนมาก ก็ยิ่งทำให้โอกาสที่จะเกิดการชนกันของข้อมูลสูง ซึ่งทำให้ความเร็วโดยรวมของระบบช้าลง

บริดจ์ (Bridge)

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

สวิตซ์ (Switch)

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

สวิตซ์เลเยอร์ 3 (Layer 3 Switch)

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

ไฟร์วอลล์ Firewall


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

ไอดีเอส (IDS)

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

Set MongoDB in the windows path environment

  Let’s set MongoDB in the windows environment in just a few steps. Step 1: First download a suitable MongoDB version according to your mach...