ในบทนี้จะเป็นการเรียนรู้พื้นฐานแนวคิดของเครือข่าย ชนิดของเครือข่าย การระบุเครื่องคอมพิวเตอร์ในเครือข่าย การตั้งค่าการเชื่อมต่อเครือข่าย การใช้เครื่องมือหรือโปรแกรมเพื่อจัดการหรือแก้ไขปัญหาเครือข่าย เช่น ifconfig, ip, ping, route และ trace การใช้โปรแกรมบราวเซอร์ทั้งแบบที่เป็น text mode และ graphic mode เช่น Lynx, w3m, Firefox, Chrome, และ Epiphany การรับส่งไฟล์กับเครื่องคอมพิวเตอร์เครื่องอื่นๆโดยใช้โปรแกรมหรือแอพพลิเคชั่นทั้งแบบที่เป็น text mode และ graphic mode เช่น FIlezilla, ftp, sftp, curl และ wget อย่างไรตามเนื้อหาจะไม่ลงลึกในรายละเอียดของโปรโตคอล TCP/IP แต่จะเล่าให้พอเห็นภาพและเข้าใจพอที่จะสามารถเรียนรู้ในหัวข้อต่อๆไปได้

เครือข่ายคืออะไร

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

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

     เครือข่ายในองค์กรแต่ละองค์กรเราจะเรียกกันว่าเครือข่ายภายใน (internal network) หรือ อินทราเนต (Intranet) ซึ่งเฉพาะผู้ที่ใช้งานภายในองค์กรเท่านั้นจึงจะสามารถใช้ประโยชน์จากเครือข่ายนี้ได้ บุคคลภายนอกจะไม่สามารถเข้ามาใช้งานได้ถ้าไม่ได้รับอนุญาติ เครือข่ายภายในสามารถอยู่ในสถานที่เดียวกันหรือต่างสถานที่ก็ได้ เช่น องค์กรอาจจะมีสำนักงานสาขาอยู่ที่หลายประเทศและผู้ใช้งานในแต่ละประเทศสามารถสื่อสารแลกเปลี่ยนข้อมูลกันได้ เป็นต้น เครือข่ายภายในที่อยู่ต่างสถานที่กันจะเชื่อมต่อกันผ่านเครือข่ายอินเตอร์เนต แต่มีการเข้ารหัส (encrypt )ในการเชื่อมต่อทำให้ผู้อื่นไม่สามารถเห็นข้อมูลที่ส่งผ่านไปมาได้ และมีระบบรักษาความปลอดภัยเพื่อป้องกันการบุกรุกเข้าเครือข่ายภายใน ณ.จุดที่เป็นการเชื่อมต่อระหว่างเครือข่ายภายในกับเครือข่ายอินเตอร์เนต

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

โปรโตคอลทีซีพี/ไอพี  (TCP/IP Protocol)

     เวลาที่คนเราคุยกันเราจะต้องคุยกันด้วยภาษาเดียวกันซึ่งภาษานอกจากจะประกอบด้วยคำต่างๆแล้วยังมีข้อกำหนดต่างๆในการใช้ภาษาอีกมากมาย หากเราไม่ใช้คำหรือไม่ปฏิบัติตามข้อกำหนดผลลัพธ์คือคุยกันไม่รู้เรื่อง การสื่อสารระหว่างเครื่องคอมพิวเตอร์ก็เป็นไปในทำนองเดียวกันโดยข้อกำหนดในการสื่อสารเราเรียกว่าโปรโตคอลซึ่งจะระบุขั้นตอนและรายละเอียดข้อมูลต่างที่ที่คอมพิวเตอร์ต้องปฏิบัติตามเพื่อสื่อสารกับเครื่องคอมพิวเตอร์อื่นๆ โปรโตคอลที่นิยมใช้กันอย่างแพร่หลายในปัจจุบันคือ โปรโตคอลทีซีพี/ไอพี (TCP/IPP : Tranmissin Control Protocol/Internet Protocal

     ทีนี้เวลาที่เครื่องคอมพิวเตอร์จะคุยกัน มันก็สามารถแบ่งหัวข้อเรื่องที่จะคุยออกมาได้อีกหลากหลายเรื่อง ดังนั้นภายใต้โปรโตคอลทีซีพี/ไอพีจึงมีโปรโตคอลย่อยๆอีกมากมายสำหรับการสื่อสารในเรื่องปลีกย่อยต่างๆ เช่น โปรโตคอล เอฟทีพี (FTP Protocol : File Transfer Protocall) ที่เป็นข้อกำหนดสำหรับการรับส่งไฟล์ระหว่างเครื่องคอมพิวเตอร์ หรือ โปรโตคอล ดีเอชซีพี (DHCP : Dynamic Host Configuration Protocol) ที่เป็นข้อกำหนดในการกำหนดหมายเลขไอพี (IP Address) ให้กับเครื่องคอมพิวเตอร์ 

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

IP Address

     เครื่องคอมพิวเตอร์ทุกเครื่องที่เชื่อมต่อเข้ากับเครือข่ายจะถูกอ้างถึงด้วยหมายเลขไอพี (IP Address ) ซึ่งเปรียบเหมือนบ้านเลขที่ของเครื่องคอมพิวเตอร์ เพื่อที่ข้อความที่สื่อสารมาจากคอมพิวตอร์เครื่องอื่นจะได้ส่งมาถึงอย่างถูกต้อง

IPv4 และ IPv6

     อย่างที่ทราบว่าเครื่องคอมพิวเตอร์ต้องมีบ้านเลขที่ของตนเองเรียกว่าหมายเลขไอพี (IP Address) หมายเลขไอพีในรูปแบบที่เราใช้อยู่เป็นเวอร์ชั่น 4 จึงมักเรียกกันว่า IPv4 หมายเลขไอพีถูกกำหนดด้วยเลขฐานสองขนาด 32 บิต เช่น 10101100.00010000.00011111.00101110 ซึ่งคนจำไม่ได้แน่ๆจึงจัดกลุ่มของเลขฐานสองออกเป็นกลุ่มละ 8 บิตคั่นด้วยจุดแล้วแปลงเลขฐานสองแต่ละกลุ่มมาเป็นเลขฐานสิบก็จะได้หน้าตาที่เราคุ้นเคย เช่น 172.16.31.46 

     ในเวลาระบบอินเตอร์เนตเกิดขึ้นมานั้นคาดว่าการกำหนดหมายเลขไอพีสำหรับเครื่องคอมพิวเตอร์ในรูปแบบ IPv4 นี้เพียงพอที่จะแจกจ่ายให้กับเครื่องคอมพิวเตอร์ทุกเครื่องในโลกนี้รวมถึงเครื่องคอมพิวเตอร์ที่จะมีเพิ่มในอนาคต แต่พอมีแนวคิดเกี่ยวกับ IOT : Internet of Things ที่อุปกรณ์ทุกอย่างสามารถเชื่อมต่อกับอินเตอร์เนตได้ จึงพบว่ารูปแบบการกำหนดหมายเลขไอพีแบบ IPv4 นั้นไม่เพียงพอที่จะรองรับการเพิ่มขึ้นมาของอุปกรณ์ต่างๆ จึงมีการกำหนดรูปแบบหมายเลขไอพีขึ้นมาใหม่เป็นเวอร์ชั้น 6 เรียกว่า IPv6 โดยหมายเลขไอพีถูกกำหนดด้วยเลขฐานสองขนาด 128 บิต สำหรับ IPv6 จะจัดกลุ่มของเลขฐานสองเป็นกลุุ่มละ 16 บิตคั้นด้วยเครื่องหมายโคล่อน (:) และแปลงเป็นเลขฐานสิบหก เช่น 2001:0db8:85a3:0000:0000:8a2e:0370:7334

ความหมายของ IPv4

หมายเลขไอพีที่เป็นเลขฐานสองขนาด 32 บิตจะถูกจัดกลุ่มออกเป็นกลุ่มละ 8 บิต โดยแต่ละกลุ่มจะบอกใช้บอกหมายเลขเครือข่าย เหมือนกับการบอก อำเภอ ตำบล หมู่บ้าน ในหน้าซองจดหมาย และหมายเลขไอพีเหมือนกับการบอกบ้านเลขที่บนหน้าซองจดหมาย แตกต่างกันไปตามชนิดของคลาสตั้งแต่ A – E เช่น คลาส A ใช้ข้อมูล 8 บิตกลุ่มแรกในการบอกหมายเลขเครือข่ายและที่เหลือเป็นหมายเลขไอพี ในขณะที่คลาส C ใช้ข้อมูล 8 บิต 3 กลุ่มแรกในการบอกหมายเลขเครือข่ายและที่เหลือเป็นหมายเลขไอพี ข้อแตกต่างของแต่ละคลาสคือถ้าเราใช้หลายกลุ่มเพื่อกำหนดหมายเลขเครือข่ายจะทำให้เราสามารถกำหนดหมายเลขเครือข่ายได้เยอะ เท่ากับว่าเราสามารถแบ่งกลุ่มเครื่องคอมพิวเตอร์ได้หลายกลุ่มซึ่งเป็นผลให้เราสามารถจำกัดการจราจรของข้อมูลให้อยู่แต่เฉพาะในเครือข่ายที่เป็นหมายเลขเครือข่ายเดียวกันได้ส่งผลต่อเรื่องการควบคุมความหนาแน่นของการจราจรของข้อมูลและการรักษาความปลอดภัย แต่เราจะสามารถเชื่อมต่อจำนวนเครื่องคอมพิวเตอร์เข้ากับเครือข่ายได้น้อยลง

เลขฐานสองขนาด 32 บิต 10101100 . 00010000 . 00011111 . 00101110

ภาพแสดงข้อกำหนดในคลาสต่างๆ

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

ภาพแสดงหน้าจอกำหนด IP Address

   วิธีสังเกตง่ายๆคือหาก Net Mask ที่ตรงกับกลุ่มใดเป็นค่า 255 แสดงว่าเราใช้ข้อมูล 8 บิตกลุ่มนั้นสำหรับแสดงหมายเลขไอพี เช่น  คลาส A จะใช้ Net Mask เป็น xxx.255.255.255 แสดงว่าใช้ข้อมูล 8 บิต 3 กลุ่มหลังเป็นหมายเลขไอพี เป็นต้น

การกำหนดหมายเลขไอพี (IP Address Allocation)

     เราสามารถกำหนดหมายเลขไอพีให้กับเครื่องคอมพิวเตอร์ได้ทั้งแบบกำหนดเอง (static ip address) และกำหนดให้โดยอัตโนมัติ (dynamic ip address) โดย DHCP Server ผ่านการใช้งานโปรโตคอลดีเอชซีพี (DHCP Protocal) สำหรับในแบบกำหนดเองหมายเลขไอพีของเครื่องคอมพิวเตอร์จะไม่มีการเปลี่ยนแปลงจนกว่าเราจะเป็นเป็นผู้ที่ไปเปลี่ยนมันเอง แต่ถ้าเป็นการกำหนดหมายเลขไอพีแบบ DHCP เครื่องคอมพิวเตอร์เมื่อบู๊ตขึ้นมาแล้วจะส่งคำขอ (request) ไปยัง DHCP Server เพื่อขอหมายเลขไอพี จากนั้นจึงนำหมายเลขไอพีที่ได้รับมากำหนดให้ตัวเอง ดังนั้นหมายเลขไอพีจะเปลี่ยนไปเรื่อยๆแล้วแต่ว่าหมายเลขไอพีใดจะว่างให้ใช้งาน

การแปลงหมายเลขไอพีเป็นชื่อ (Name Resolution)

     ถึงแม้ว่าการแปลงหมายเลขไอพีจากเลขฐานสองไปเป็นเลขฐานสิบ เช่น จาก 10101100.00010000.00011111.00101110 ไปเป็น 172.16.31.46 จะทำให้ดูง่ายขึ้นสำหรับคนอ่าน แต่การต้องมาจำตัวเลขหลายๆตัวของหลายๆเครื่องคอมพิวเตอร์ก็ยังยากอยู่ดี จึงมีการแปลงจากเลขฐานสิบดังกล่าวไปเป็นชื่อที่เรียกได้ง่าย (Hostname) เช่น http://www.google.com เวลาที่เรารียกใช้งาน เช่น เปิดโปรแกรมบราวเซอร์แล้วป้อนคำว่า http://www.google.com เครื่องคอมพิวเตอร์จะส่งคำขอในการแปลงชื่อเป็นหมายเลขไอพีไปยัง DNS Server  (Domain Name Resolution Server) ซึ่งเมื่อได้รับค่าหมายเลขไอพีของเครื่องคอมพิวเตอร์ปลายทางมาแล้วจึงจะเริ่มการสื่อสาร ในเครื่องของเราก็มีการกำหนดการแปลงชื่อเป็นหมายเลขไอพีด้วยโดยกำหนดไว้ที่ไฟล์ /etc/hosts 

ภาพแสดงการตั้งค่าในไฟล์ hosts

     ถ้าเราอยากรู้ว่าเครื่องคอมพิวเตอร์ที่เราใช้งานชื่ออะไรเราสามารถพิมพ์คำสั่ง hostname นอกจากนี้ยังมีชื่อ hostname พิเศษที่หมายถึงเครื่องคอมพิวเตอร์ที่เรากำลังใช้งานคือ locahost ซึ่งจะถูกแปลงเป็นหมายเลขไอพี 127.0.0.1  

     เราสามารถดูข้อมูลจากชื่อของเครื่องคอมพิวเตอร์ได้ด้วยคำสั่ง host เช่น host google.com หรือคำสั่ง nslookup เช่น nslookup google.com หรือ dig เช่น dig google.com

ภาพแสดงการใช้คำสั่ง host, nslookup, dig

แพคเกจ (Packets)

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

ไฟล์การตั้งค่าการเชื่อมต่อเครือข่าย (Network Configuration Files)

     ไฟล์การตั้งค่าการเชื่อมต่อเครือข่ายเป็นไฟล์ที่สำคัญในการกำหนดการเชื่อมต่อกับเครือข่าย ไฟล์จะอยู่ภายใต้ไดเร็คทอรี่ /etc โดยชื่อไฟล์จะแตกต่างกันไปตามแต่ละดิสทริบิวชั่น สำหรับแฟมิลี่เดเบี้ยนโดยมากไฟล์จะอยู่ที่ /etc/network ส่วนแฟมิลี่เฟโดร่าและแฟมิลี่ซูเซ่อ โดยมากจะอยู่ที่ /etc/sysconfig/network อย่างไรก็ตามเราจะใช้ GUI Network Manager เพื่อจัดการการตั้งค่าการเชื่อมต่อเครือข่ายมากกว่าการจัดการกับไฟล์เหล่านี้โดยตรงซึ่งค่อนข้างอันตรายหากเราแก้ไขผิดพลาด

การเชื่อมต่อกับเครือข่าย (Network Interface)

    การเชื่อมต่อกับเครือข่าย (network interface) หมายถึงช่องทางการเชื่อมต่อระหว่างเครื่องคอมพิวเตอร์กับเครือข่ายทางกายภาพ การเชื่อมต่อจะทำผ่านอุปกรณ์ที่เรียกว่า network interface card ซึ่งอาจจะเป็นแบบที่ใช้สายเชื่อมต่อหรือแบบไร้สายก็ได้ เครื่องคอมพิวเตอร์ของเราสามารถมีช่องทางการเชื่อมต่อกับเครือข่ายได้มาก 1 ช่องทาง ทั้งนี้ขึ้นอยู่กับเครื่องคอมพิวเตอร์ของเรามีช่อง (slot) ให้เสียบ network interface card กี่ช่อง ในกรณีที่เครื่องคอมพิวเตอร์ของเรามีช่องทางการเชื่อมต่อกับเครือข่ายมากกว่า 1 เราสามารถกำหนดให้แต่ละช่องทำงานหรือไม่ทำงานได้อย่างอิสระไม่เกี่ยวข้องกัน เราสามารถดูข้อมูลของช่องทางการเชื่อมต่อกับเครือข่ายได้ด้วยคำสั่ง ifconfig สำหรับบางดิสโทรที่ไม่ได้ติดตั้งเครื่องมือนี้มาให้ เราสามารถติดตั้งได้เองโดยใช้คำสั่ง sudo apt install net-tools

ภาพแสดงการใช้คำสั่ง ifconfig

คำสั่ง ip

     คำสั่ง IP เป็นคำสั่งที่เราสามารถดูข้อมูลที่ถูกกำหนดสำหรับการเชื่อมต่อเครือข่าย เช่น ip addr show เป็นการแสดงหมายเลขไอพี หรือ ip route show เป็นการแสดงเส้นทางการเชื่อมต่อ เป็นต้น

ภาพแสดงการใช้คำสั่ง ip

คำสั่ง ping

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

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

ภาพแสดงการใช้คำสั่ง ping

คำสั่ง route

     เนื่องจากในเครือข่ายประกอบด้วยเครือข่ายย่อยๆมากมาย การติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์ที่อยู่กันคนละเครือข่ายจะกระทำผ่านเราเตอร์ซึ่งเราเตอร์จะดูจากข้อมูลผู้รับว่าควรจะส่งแพคเกจต่อไปยังเครือข่ายใดโดยดูจากตาราง routing table ที่เก็บอยู่ในตัวเอง หากไม่มีข้อมูลดังกล่าวเราเตอร์จะสอบถามไปยังเราเตอร์ตัวอื่นๆจนได้ข้อมูลมาปรับปรุงตารางของตนเอง เราเตอร์จะคุยกันด้วย IP Routing Protocal ในเครื่องคอมพิวเตอร์ที่เราใช้งานก็มีตาราง routing table เพื่อระบุว่าเราเตอร์ที่เราจะคุยด้วยคือหมายเลขไอพีใด เราสามารถดูตาราง routing table ของเราได้ด้วยคำสั่ง route -n หรือ ip route เราสามารถเพิ่มข้อมูลในตาราง routing table ได้ด้วยคำสั่ง route add -net address หรือ ip route add และเราสามารถลบข้อมูลเส้นทางที่ไม่ต้องการได้ด้วยคำสั่ง route del -net address หรือ ip route del

ภาพแสดงการใช้คำสั่ง route

คำสั่ง traceroute

     คำสั่ง traceroute เป็นคำสั่งที่จะแสดงเส้นทางที่แพคเกจจะวิ่งไปถึงปลายทางโดยข้อมูลที่ได้จะช่วยเราในการวิเคราะห์เพื่อแก้ไขปัญหาและข้อผิดพลาดต่างๆ ตัวอย่างเช่น traceroute google.com จะได้ผลลัพธ์ตามตัวอย่างด้านล่าง ซึ่งแต่ละ hop ที่แพคเกจเราผ่าน เราสามารถสืบค้นด้วยคำสั่ง whois ได้ว่า hop เหล่านั้นคืออะไร ของใคร เช่น whois 124.24.96.1 จะได้ข้อมูลว่าเป็นเครื่องเซอร์ฟเวอร์ขององค์การโทรศัพท์แห่งประเทศไทยซึ่งเป็นผู้ให้บริการอินเตอร์เนตที่ผู้เขียนใช้บริการอยู่ ดังนั้นแพคเกจจะถูกส่งไปยังที่นี่เป็นที่แรกเพื่อส่งต่อไปยัง hop ถัดไปจนกระทั่งแพคเกจไปถึง google.com ตั้งแต่ hop ที่ 8 คือ 72.14.220.24 และหลังจากนั้นก็เป็น hop ในเครือข่ายของ gooel นั่นเอง

ภาพแสดงการใช้คำสั่ง traceroute

คำสั่ง ethtool

     คำสั่ง ethtool เป็นคำสั่งที่ใช้ดูข้อมูลของ network interface เช่น network card รวมถึงสามารถปรับแต่งค่าต่างๆได้

ภาพแสดงการใช้คำสั่ง ethtool

คำสั่ง netstat

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

ภาพแสดงการใช้คำสั่ง netstat

คำสั่ง nmap

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

ภาพแสดงการใช้คำสั่ง nmap

คำสั่ง tcpdump

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

ภาพแสดงการใช้คำสั่ง tcpdump

คำสั่งอื่นๆ

     นอกจากนี้ยังมีคำสั่งอื่นๆอีก เช่น 

  • คำสั่ง iptraf เพื่อใช้ในการมอนิเตอร์ network traffic 
  • คำสั่ง mtr ซึ่งจะทำงานเหมือนการเอาคำสั่ง ping และ คำสั่ง traceroute มารวมกันและแสดงผลลัพธ์แบบต่อเนื่อง
  • คำสั่ง dig เพื่อทดสอบการทำงานของ DNS 

แอพพลิเคชั่นบราวเซอร์

     แอพพลิเคชั่นบราวเซอร์ถูกใช้ในการส่ง รับ และแสดง ข้อมูลข่าวสารผ่านทางอินเตอร์เนต (World Wide Web) แอพพลิเคชั่นบราวเซอร์มีทั้งแบบที่เป็น GUI เช่น Firefox, Google Chrome, Chromium, Epiphany, Opera 

ตัวอย่างหน้าจอ Opera Browser

ตัวอย่างหน้าจอ Epiphany Browser

ตัวอย่างหน้าจอ Chromium Browser

ตัวอย่างหน้าจอ Chrome Browser

ตัวอย่างหน้าจอ Firefox Browser

และแบบ Non-GUI เช่น lynk, links หรือ elinks, w3m

ตัวอย่างหน้าจอ Lynx Browser

ตัวอย่างหน้าจอ w3m Browser

คำสั่ง Wget

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

คำสั่ง curl

     เราสามารถใช้คำสั่ง curl เพื่อดูโค๊ดของเว็บเพจ และสามารถดาวน์โหลดหน้าเว็บได้เหมือนคำสั่ง wget เช่น curl <url> จะแสดงโค๊ดของเว็บเพจบนหน้าจอ หรือ curl -o filename <url> จะดาวน์โหลดโค๊ดของเว็บเพจไว้ในไฟล์ filename

โปรโตคอล FTP (File Transfer Protocol)

     โปรโตคอล FTP เป็นโปรโตคอลที่ใช้ในการส่งไฟล์ผ่านเครือข่ายถูกออกแบบมาให้ทำงานในรูปแบบของ ไคลเอนท์-เซอร์ฟเวอร์ (client-server) โดยเครื่องคอมพิวเตอร์ที่เป็นไคลเอนท์จะดาวน์โหลดหรืออัพโหลดไฟล์จากเครื่องคอมพิวเตอร์ที่เป็นเซอร์ฟเวอร์ เครื่องคอมพิวเตอร์แต่ละเครื่องสามารถเป็นได้ทั้งไคลเอนท์และเซอร์ฟเวอร์ขึ้นอยู่กับวัตถุประสงค์ในการใช้งานและโปรแกรมที่ติดตั้งไว้ การดาวน์โหลดหรืออัพโหลดไฟล์สามารถทำได้ผ่านโปรแกรมบราวเซอร์โดยระบุในรูปแบบ ftp://ftpservername.domainname.com/ (เปลี่ยนโปรโตคอลจาก http:// เป็น ftp://) หรือใช้คำสั่ง เช่น  ftp sftp ncftp yafc และยังมีโปรแกรมในแบบ GUI เช่น Filezilla

ภาพแสดงการใช้งาน FTP

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

คำสั่ง ftp

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

ภาพแสดงหน้าจอรอรับคำสั่งของ ftp

     คำสั่งที่ใช้บ่อยๆในการใช้งานไคลเอนท์ ประกอบด้วย

คำสั่ง open : เป็นคำสั่งที่ใช้ในการขอเชื่อมต่อกับ FTP Server โดยระบุชื่อโดเมนของเครื่อง FTP Server เช่น open ftp.server.com ซึ่งระบบจะถามให้ใส่ชื่อและรหัสผ่าน หรือในกรณีที่ FTP Server รองรับการใช้งานแบบไม่ต้องระบุตัวตนอาจจะเพียงแค่ใช้คำว่า anonymous แทนชื่อ หรืออาจจะเข้าใช้งานได้เลย

ภาพแสดงการใช้คำสั่ง open

คำสั่ง ls : เป็นคำสั่งที่ใช้แสดงชื่อไฟล์ เช่น หากพิมพ์ ls เฉยๆจะแสดงชื่อไฟล์ทั้งหมด

คำสั่ง !ls : เป็นคำสั่งที่ใช้แสดงชื่อไฟล์ทางฝั่งไคลเอนท์ เช่น  หากพิมพ์ !ls เฉยๆจะแสดงชื่อไฟล์ทั้งหมดจาก working directory ปัจจุบันของเรา

คำสั่ง cd : เป็นคำสั่งที่ใช้ในการย้ายไปยังไดเร็ตทอรี่ที่ต้องการ

คำสั่ง lcd : เป็นคำสั่งที่ใช้ในการย้ายไปยังไดเร็คทอรี่ที่ต้องการทางฝั่งไคลเอนท์

คำสั่ง get : เป็นคำสั่งที่ใช้ในการดาวน์โหลดไฟล์ เช่น get sample.tar.gz

คำสั่ง put : เป็นคำสั่งที่ใช้ในการอัพโหลดไฟล์ เช่น put sample.tar.gz

คำสั่ง mget : เป็นคำสั่งที่ใช้ในการดาวน์โหลดไฟล์ครั้งละหลายๆไฟล์  เช่น mget *.txt

คำสั่ง mput : เป็นคำสั่งที่ใช้ในการอัพโหลดไฟล์ครั้งละหลายๆไฟล์  เช่น mput *

คำสั่ง mget -R : เป็นคำสั่งที่ใช้ในการดาวน์โหลดไฟล์ครั้งละหลายๆไฟล์ รวมถึงให้ดำเนินการดาวน์โหลดไฟล์จากภายใต้ไดเร็คทอรี่ย่อยด้วย

โปรโตคอล SSH (Secure Shell)

     โปรโตคอล SSH เป็นโปรโตคอลที่ใช้ในการเข้ารหัสการเชื่อมต่อโดยเครื่องไคลเอนท์กับเซอร์ฟเวอร์จะกำหนดคีย์ที่ใช้ในการเข้ารหัสข้อมูลร่วมกันและใช้คีย์ดังกล่าวในการเข้ารหัสข้อมูลที่ส่งระหว่างกัน โปรโตคอล SSH มีประโยชน์มากสำหรับการใช้งานทางไกล (remote access) โดยเฉพาะผู้ดูแลระบบ ตัวอย่างการใช้งาน เช่น ssh username@servername

ภาพแสดงการใช้งาน SSH

คำสั่ง scp

     คำสั่ง scp (secure copy) เป็นคำสั่งที่ใช้ในการสำเนาไฟล์อย่างปลอดภัยข้ามเครือข่าย คำสั่ง scp ใช้โปรโตคอล SSH ในการเชื่อมต่อโดยรูปแบบการใช้คำสั่งคือ 

scp localfile username@remoteserver:/targetdirectory 

     โดย localfile คือไฟล์ที่ต้องการสำเนา username คือชื่อผู้ใช้งานที่ใช้ log in ที่เซอร์ฟเวอร์ปลายทาง remoteserver คือชื่อเซอร์ฟเวอร์ปลายทาง และ targetdirectory คือไดเร็คทอรี่ปลายทาง

OSI Model

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

ภาพแสดง OSI Model เปรียบเทียบกับ TCP/IP Model

     ระบบเครือข่ายในปัจจุบันใช้ ethenet เป็นมาตรฐานในการเชื่อมต่อ เทียบเท่ากับเลเยอร์ 2  ของ OSI Model ซึ่งแต่ละจุดที่เชื่อมต่อกับเครือข่ายจะรู้จักกันด้วยหมายเลขฮาร์ดแวร์เรียกว่า Ethernet Address หรือ MAC Address โปรโตคอล IP จะเป็นการทำงานในเลเยอร์ 3 โดยมีโปรโตคอล ARP ทำหน้าที่จับคู่ระหว่าง MAC Address กับ IP Address โปรโตคอล TCP จะทำงานในเลเยอร์ 4 ซึ่งนอกจากการส่ง/รับข้อมูลด้วยโปรโตคอล TCP แล้วยังมีการส่ง/รับข้อมูลด้วยโปรโตคอล UDP ซึ่งข้อแตกต่างคือการส่ง/รับข้อมูลด้วยโปรโตคอล TCP จะมีการตรวจสอบความสมบูรณ์ของการส่ง/รับข้อมูล แต่โปรโตคอล UDP จะไม่มีการตรวจสอบ