วันศุกร์ที่ 28 พฤศจิกายน พ.ศ. 2557

TCP (Transmission Control Protocol)



TCP (Transmission Control Protocol)

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

หน้าที่ของโปรโตคอล TCP ในชั้น Transpot Layer

- ทำการจัดแบ่งข้อมูลที่ได้รับจากชั้น Application Layer ให้พอเหมาะที่จะส่งไปบนเน็ตเวิร์ก ซึ่งถ้าเราไม่มีการแบ่งข้อมูลให้เป็น Packet ย่อยๆแล้ว การส่งข้อมูลที่มีขนาดใหญ่จะทำให้เกิดความล่าช้า โดยเราจะเรียกหน่วยของข้อมูลในระดับนี้เราเรียกว่า "TCP Segment"
- มีการสร้างการเชื่อมต่อกระหว่างต้นทางและปลายทางก่อนจะมีการส่งข้อมูลกันจริงๆ
- มีการจัดลำดับในการส่งข้อมูลก่อนหลังและมีการตรวจสอบว่าปลายทางได้รับข้อมูลที่ส่งไปครบถ้วน
- มีการทำกระบวนการ Error Recovery เมื่อปลายทางไม่ได้รับข้อมูลที่ส่งไป
- คอยควบคุมการรับ - ส่งข้อมูล
- มีการนำข้อมูลที่ได้รับมาประกอบรวมกันเพื่อส่งไปชั้น Application Layer (ในกรณีที่เป็นฝั่งรับข้อมูล)

กระบวนการ Three Way Handshake

          เป็นการสร้าง Connection ระหว่างต้นทางและปลายทาง ก่อนจะมีการส่งข้อมูลกันจริงๆ เหมือนกับเวลาเราโทรสับเราก็ต้อง กดหมายเลขโทรสับและรอจนกว่า อีกฝั่งจะรับสาย ถึงมีการแลกเปลี่ยนข้อมูลกันได้


รูปที่ 1 กระบวนการทำงานของ Three Way Handshake

          จากรูปที่ 1 จะเห็นได้ว่า Client จะทำการส่งpacket ที่มี ฟิลด์ SYN (Synchronize) ไปให้แก้ Server เพื่อให้ Server ส่ง packet ที่มีฟิลด์ SYN และ ACK (Acknowledgement) เพื่อเป็นการยืนยันว่าฝั่ง Server พร้อมที่จะทำการรับข้อมูล และเมื่อ Client ได้รับ packet ที่มีฟิลด์ SYN และ ACK แล้ว ก็จะทำการส่ง packet ที่มีฟิลด์ ACK ซ้ำอีกครั้งเพื่อบอกว่า กำลังจะส่งข้อมูลไปให้ Server นะ ในระหว่างที่ทำการบวนการ Three Way Handshake เครื่อง Client และ เครื่อง Server จำทำการตกลงว่า ขนาดของ Windows Size ที่ส่งมีขนาดเท่าไร

Sliding Windows

          เป็นวิธีในการควบคุมการส่งข้อมูลผ่านเครื่อข่ายโดยหลังจากผ่านกระบวนการ Three Way Handskake แล้ว และมีการส่งข้อมูลจาก Client ไปยัง เครื่อง Server แล้ว เครื่องServer จะทำการส่งข้อมูล ACK กลับ เพื่อเป็นการยืนยันว่าเครื่อง Server ได้รับแพ็คเก็ตเรียบร้อยและถูกต้องแล้ว ส่วน Window Size เป็นค่าที่บอกเครื่องต้นทางว่าสามารถส่งแพ็คเก็ตได้คราวละกี่แพ็คเก็ตโดยที่ไม่ต้องรอรับ ACK ของทุกๆ แพ็คเก็ต ซึ่งการใช้sliding window นั้น เครื่องปลายทางสามารถส่งข้อมูล ACK เพียวครั้งเดียวสำหรับยืนยันการรับแพ็คเก็ตหลายๆ แพ็คเก็ตได้ ส่วนข้อมูล ACK ที่เครื่องปลายทางส่งกลับไปยังต้นทางนั้นจะมีข้อมูลขนาดหน่วยความจำที่ใช้ในการติดต่อกับเครื่องต้นทาง ซึ่งข้อมูลนี้จะบอกเครื่องต้นทางว่าควรเพิ่มหรือลดจำนวนของแพ็คเก็ตที่ส่งไปยังเครื่องรับ




รูปที่ 2 แสดงการทำงานของกระบวนการในการส่งข้อมูล

          จากรูปที่ 2 จะเห็นได้ว่าเมื่อเสร็จสิ้นในการส่งข้อมูลแล้วเครื่องปลายทางจะทำการส่ง FIN,ACK กลับมาเพื่อบอกว่าเสร็จสิ้นการส่งข้อมูลแล้ว แล้วเครื่องต้นทางก็จะส่ง ACK ตอบกลับมาว่ารับทราบ 

          จากที่กล่าวมาทั้งหมดจะเห็นได้ว่า โปรโตคอล TCP มีการตรวจสอบการรับ ส่งข้อมูลตลอดทำให้มีความน่าเชื่อถือว่าจะส่งข้อมูลได้ครบถ้วนแน่นอน...หวังว่าคนอ่านจะได้อะไรบ้างจากบทควาที่เขียนด้วยความรู้งูๆปลาๆของผมนะ    ไปละ...ฟิ้วววววว~~!!









วันอังคารที่ 25 พฤศจิกายน พ.ศ. 2557

TCP/IP (Transmitsion Control Protocol/Internet Protocol)

TCP/IP (Transmitsion Control Protocol/Internet Protocol)

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



รูปที่ 1 OSI Model and TCP/IP

          จากรูปที่ 1 เป็นการเปรียบเทียบแต่ละ Layer ของ TCP/IP กับ  OSI Model  ว่ามีความสัมพันธ์กันอย่างไร ซึ่งผู้อ่านสามารถทำความเข้าใจได้ 

Application Layer   

          จะเป็นชั้น ที่ทำหน้าที่เชื่อมต่อกับผู้ใช้และให้บริการต่าง ๆ เช่น FTP, Telnet, SNMP ฯลฯ โดยจะมีการทำงานเหมือนกับ 3 ชั้นบนของ OSI Model

Host-to-Host Layer 

          จะเป็น TCP หรือ UDP ที่ทำหน้าที่คล้ายกับชั้นที่ 4 ของ OSI คือ ควบคุมการรับส่งข้อมูลจากปลายด้านส่งถึงปลายด้านรับข้อมูล และตัดข้อมูลออกเป็นส่วนย่อยให้เหมาะกับเครือข่ายที่ใช้รับส่งข้อมูล รวมทั้งประกอบข้อมูลส่วนย่อยๆนี้เข้าด้วยกันเมื่อถึงปลายทาง

Internet Layer 

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

Network Access Layer 

          ชั้นที่ควบคุม Hardware การรับส่งข้อมูลผ่านเครือข่าย ซึ่งเทียบได้กับชั้นที่ 1 และ 2 ของ OSI ในชั้นนี้จะทำหน้าที่เชื่อมต่อกับ Hardware และควบคุมการรับส่งข้อมูลในระดับ Hardware ของเครือข่าย ซึ่งที่ใช้กันอยู่จะเป็นตามมาตรฐานของ IEEE เช่น IEEE 802.3 จะเป็นการเชื่อมต่อผ่าน LAN แบบ Ethernet LAN หรือ IEEE 802.5 จะเป็นการเชื่อมต่อผ่าน LAN แบบ Token Ring เป็นต้น



รูปที่ 2  TCP/IP Protocol Stack

          จากรูปที่ 2 เป็น flow การทำงานของ Protocol ที่อยู่ใน  OSI Model  ความสัมพันธ์ของแต่ละ Protocol ในแต่ละชั้นผู้อ่านลองมาเปรียบเทียบกับชั้นของ TCP/IP ดูนะครับว่า โปรโตคอลไหนอยู่ชั้นไหน ซึ่งผมจะอธิบายหลักการทำงานของแต่ละ Protocol ที่สำคัญๆ ในบทความต่อ ๆ ไปนะครับ....^_^









วันอาทิตย์ที่ 23 พฤศจิกายน พ.ศ. 2557

Switch และ หลักการทำงานของ Switch


      วันนี้ผมคิดว่าจะอธิบายเกี่ยวกับการทำงานของ Switch แต่เปิดเว็ปไปเว็ปเปิดมา  ว้าว..เขียนได้ฟรุ้งฟริ้ง  กิง ก่อง แก้ว มาก.!! เลยขออนุญาติเอา ทั้งสองบทความที่เขียนไว้มารวมกันเลยนะครับ   ขออภัยที่ลอกมาโดยไม่ขออนุญาติละกันเนอะ


          : http://www.netbright.co.th/?name=knowledge&file=readknowledge&id=13
 

Switch

      Switch เป็นอุปกรณ์ที่พัฒนาการต่อจากฮับอีกทีหนึ่งมีความสามารถมากกว่า Hub โดยการทำงานของสวิตซ์จะส่งข้อมูลออกไปเฉพาะพอร์ตที่ใช้ในการติดต่อกับเครื่องคอมพิวเตอร์พีซีปลายทางเท่านั้น ในขณะที่ Hub จะส่ง Packet ไปทุกพอร์ต ทำให้ในสวิตซ์ไม่มีปัญหาการชนของข้อมูล (แต่ฮับจะเกิดความสิ้นเปลืองของ Bandwidth)
      สวิตซ์จะทำงานอยู่ในชั้น Data Link Layer คือจะรับผิดชอบในการเชื่อมโยงของข้อมูล ตรวจสอบความถูกต้องของการติดต่อจากโหนดหนึ่งไปอีกโหนดหนึ่งและความสมบูรณ์ของการรับส่งข้อมูล สำหรับในชั้นเชื่อมโยงข้อมูลนั่นจะทำการแบ่งข้อมูลระดับบิตที่ได้รับจากชั้น Physical Layer เป็นข้อมูลชนิดที่เรียกว่า เฟรม ก่อนจะส่งไปยังชั้นถัดไป ก็คือ Network Layer

การออกแบบเน็ตเวิร์กเป็นลำดับชั้น (Hierarchical Network Design)

Hierarchical Design

      เป็นหลักการออกแบบเน็ตเวิร์กอย่างหนึ่ง (ผมก็ไม่กล้าฟันธงนะว่ามีอย่างอื่นหรือเปล่าแต่เท่าที่รู้มีแต่อันนี้ละ 555+ )  เพื่อให้ผู้ดูแลระบบสามารถวางแผนในการวางเน็ตเวิร์กได้ง่าย  สะดวกในการเลือกใช้อุปกรณ์ ง่ายต่อการคอนฟิกและที่สำคัญง่ายต่อการแก้ไขปัญหาบางจุด  โดยการออกแบบเน็ตเวิร์กที่เป็นลำดับชั้นนี้จะมีทั้งหมด 3 Layer คือ   Access Layer (ชั้นล่าง), Distribution Layer (ชั้นกลาง) และ Core Layer (ชั้นบน)


Access Layer

      เป็นชั้นที่อยู่ใกล้กับผู้ใช้งานมากๆเนื่องจากชั้นนี้เป็นชั้นที่อุปกรณ์เน็ตเวิร์กเชื่อมต่อกับเครื่องคอมพิวเตอร์ของผู้ใช้งานกับอุปกรณ์เน็ตเวิร์กชั้น Distribution หรือ Core Layer  (แล้วแต่ออกแบบอ่ะนะ = = ") โดยส่วนใหญ่จะเป็นอุปกรณ์ที่ทำงานอยู่บน Layer 2 ซึ่งเป็นอุปกรณ์ราคาถูกจำพวก Switch L2 เป็นต้น

OSI Model

OSI Model (Open Systems Interconnection model)


          เป็นลำดับชั้นในการติดต่อสื่อสารระหว่างอุปกรณ์ โดยแต่ละชั้นมีหน้าที่การทำงานที่แตกต่างกัน OSI Model ถูกสร้างขึ้นมาเพื่อให้ ผู้ผลิตฮาร์ดแวร์ หรือ ซอร์ฟแวร์ ใช้เป็นโครงสร้างในการสร้างอุปกรณ์ เพื่อให้อุปกรณ์ให้สามารถทำงานร่วมกันได้ถึงแม้อุปกรณ์จะมาจากผู้ผลิตคนละรายองค์ประกอบของ OSI MedelOSI Model มีองค์ประกอบทั้งหมด 7 ชั้น ซึ่งทำหน้าที่แตกต่างกัน โดยผู้เขียนจะอธิบายจากชึ้น บนลงมาเพื่อให้ผู้อ่านได้ทำความเข้าใจได้ง่ายขึ้น (หรือป่าวว >,,<)






วันเสาร์ที่ 19 เมษายน พ.ศ. 2557

การทำ nat เพื่อแชร์เน็ตให้กับเน็ตเวิร์กภายใน (centos 6)


เพื่อให้เข้าใจง่ายจะ อธิบายเน็ตเวิร์กตัวอย่างขึ้นมา



1.เครื่องหลัก (frontEnd) เป็นเครื่องที่สามารถติดต่อได้ทั้งเน็ตเวิร์กภายใน-นอก ซึ่งจะมีเน็ตเวิร์กการ์ดอยู่ 2 ใบ
   - ใบแรก  eth0 : ipaddress :10.2.80.253/8   ใช้สำหรับติดต่อกับเน็ตเวิร์กภายนอก(ไว้ออกเน็ต)
   - ใบสอง  eth1 : ipaddress : 192.168.10.1/24 ใช้สำหรับติดต่อกับเน็ตเวิร์กภายใน
2.เครื่องลูก  (client)  เป็นเครื่องที่เราต้องการใช้อินเตอร์เน็ตผ่านเครื่อง frontEnd
   - คอนฟิกให้อยู่ในเน็ตเวิร์ก   192.168.10.0/24 ซึ่งเป็นวงเดียวกับการ์ด eth1
   - ให้ชี้ gateway มาที่  192.168.10.1 ซึ่งก็คือ eth0