TCP/IP Winsock และ MacTCP ทำงานอย่างไร ?

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

TCP/IP ถูกนำมาใช้เพราะอินเตอร์เน็ตเป็นเน็ตเวิร์กในแบบที่เรียกว่า packet-switched network ซึ่งในเน็ตเวิร์กแบบนี้จะไม่มีการเชื่อมต่อที่ถาวรใด ๆ ระหว่างผู้รับและผู้ส่ง แต่ทว่าเมื่อข่าวสารถูกส่งออกไปมันจะแยกเป็นแพ็กเก็ตเล็ก ๆ และถูกส่งไปในเส้นทางที่แตกต่างกันพร้อม ๆ กัน แล้วถูกนำมาประกอบขึ้นใหม่ที่ปลายทางด้านผู้รับอีกทีหนึ่ง ซึ่งแตกต่างกับระบบเน็ตเวิร์กของโทรศัพท์ที่เป็นแบบ circuit-switched network ตรงที่ว่าในเน็ตเวิร์กของโทรศัพท์นั้น เมื่อมีการเชื่อมต่อเกิดขึ้นระหว่างจุดสองจุดแล้ว ( อย่างเช่นการหมุนโทรศัพท์จากเครื่องของเราไปยังเครื่องปลายทาง ) เน็ตเวิร์กส่วนที่เป็นทางเชื่อมระหว่างทั้งสองเครื่องนั้นหรือ circuit จะถูกสงวนไว้ใช้งานเฉพาะการเชื่อมต่อครั้งนั้น ๆ จนกว่าจะจบการติดต่อ

ในการที่จะให้คอมพิวเตอร์ของคุณใช้ประโยชน์จากอินเตอร์เน็ตได้เต็มที่ จะต้องมีซอฟต์แวร์พิเศษที่สามารถตีความและเข้าใจโปรโตคอล TCP/IP ของอินเตอร์เน็ตได้ ซึ่งมีชื่อเรียกว่า socket หรือ TCP/IP stack ในเครื่องพีซีที่ใช้งานในระบบ Windows เราจะเรียกซอฟต์แวร์นี้ว่า Winsock ซึ่งสำหรับพีซีก็มีอยู่หลายเวอร์ชันด้วยกัน ส่วนสำหรับเครื่อง Macintosh ซอฟต์แวรนี้จะเรียกว่า MacTCP ในทั้งสองกรณี ซอฟต์แวร์นี้จะทำหน้าที่เป็นตัวกลางระหว่างอินเตอร์เน็ตและเครื่องคอมพิวเตอร์ของคุณ ในบางกรณีเครื่องคอมพิวเตอร์ของคุณอาจสามารถใช้ประโยชน์จากอินเตอร์เน็ตได้โดยไม่ต้องพึ่ง Winsock หรือ MacTCP ก็ได้ แต่จะใช้งานได้เพียงในระดับง่าย ๆ และพื้นฐานที่สุดเท่านั้น ไม่อาจเข้าไปใช้ขีดความสามารถของอินเตอร์เน็ตที่มีอยู่ทั้งหมดได้ ถ้าต้องการเชื่อมต่อกับอินเตอร์เน็ตอย่างเต็มรูปแบบละก็จะต้องใช้ TCP/IP stack เสมอ

คอมพิวเตอร์สามารถต่อเข้ากับระบบ LAN หรือ Local Area Network ด้วยการใช้คาร์ดเน็ตเวิร์กคาร์ดแลน คาร์ดนี้ต้องการซอฟต์แวร์ที่เรียกว่า ฮาร์ดแวร์ไดรเวอร์ ซึ่งจะทำหน้าที่เป็นตัวกลางระหว่างเน็ตเวิร์กและคาร์ด และจากระบบ LAN ก็สามารถต่อเข้าสู่อินเตอร์เน็ตได้ ถ้ามีคอมพิวเตอร์เครื่องใดเครื่องหนึ่งในวง LAN นั้นต่อกับอินเตอร์เน็ตอยู่ แต่ถ้าคอมพิวเตอร์ของคุณไม่ได้ต่อเชื่อมอยู่กับระบบ LAN ใด ๆ เลย ก็ยังสามารถต่อเชื่อมเข้ากับอินเตอร์เน็ตโดยใช้การหมุนโทรศัพท์ผ่านโมเด็ม และจะยังคงต้องการใช้ TCP/IP stack เพื่อที่จะใช้โปรโตคอล TCP/IP อยู่ดี ถึงแม้จะไม่ต้องการคาร์ด LAN และฮาร์ดแวร์ไดรเวอร์อีก แต่ก็ยังต้องใช้ซอฟต์แวร์โปรโตคอลตัวใดตัวหนึ่งในสองตัวคือ SLIP ( Serial Line Internet Protocol ) หรือ PPP ( Point-to-Point Protocol ) โปรโตคอลเหล่านี้ได้ถูกออกแบบมาสำหรับคอมพิวเตอร์ที่เชื่อมต่อกับอินเตอร์เน็ตผ่านทางพอร์ตอนุกรม ( Serial port ) ด้วยโมเด็ม โดยทั่วไปแล้วโปโตคอล PPP ซึ่งใหม่กว่าจะให้การเชื่อมต่อที่มีความผิดพลาดน้อยกว่า SLIP

TCP/IP ทำงานอย่างไร ?

1. อินเตอร์เน็ตเป็นเน็ตเวิร์กแบบ packet-switced network ซึ่งก็หมายความว่าเมื่อคุณส่งข่าวสารข้ามอินเตอร์เน็ต ข้อมูลจะถูกแตกเป็นชิ้นหรือแพ็กเก็ตย่อย ๆ และแต่ละแพ็กเก็ตจะถูกส่งไปยังปลายทางโดยเป็นอิสระจากกันผ่านอุปกรณ์ที่เรียกว่า router หลาย ๆ ตัว เมื่อแพ็กเก็ตทั้งหมดเข้ามาถึงปลายทาง ก็จะถูกประกอบกลับขึ้นมาเป็นรูปแบบดั้งเดิมของมันอีกทีหนึ่ง โปรโตคอลสองตัวที่ใช้แตกข้อมูลออกเป็นแพ็กเก็ต จัดการกำหนดเส้นทางในการส่งข้ามอินเตอร์เน็ต แล้วประกอบมันกลับที่อีกปลายหนึ่งก็คือ Internet Protocol ( IP ) ซึ่งจะกำหนดเส้นทางของข้อมูล และ Transmission Control Protocol ( TCP ) ซึ่งจะจัดการแตกข้อมูลออกเป็นแพ็กเก็ตและประกอบมันกลับที่อีกปลายด้านหนึ่ง

2. ด้วยเหตุผลหลายประการ รวมทั้งข้อจำกัดของฮาร์ดแวร์ ข้อมูลที่จะส่งข้ามอินเตอร์เน็ตต้องถูกแบ่งออกเป็นแพ็กเก็ตย่อย ๆ ที่มีขนาดเล็กกว่า 1,500 ตัวอักษรหรือ 1,500 ไบต์ โดย TCP จะทำการแตกข้อมูลออกเป็นแพ็กเก็ต และแต่ละแพ็กเก็ตจะมีส่วนหัวหรือเฮดเดอร์ ( header ) ซึ่งจะเก็บข้อมูลหลายอย่างไว้ เช่นลำดับของแพ็กเก็ตซึ่งจะใช้ในการประกอบมันกลับคืนตามเดิม ในขณะที่ TCP แยกข้อมูลออกเป็นแต่ละแพ็กเก็ตก็จะมีการคำนวณค่าผลรวมสำหรับตรวจสอบหรือ checksum ขึ้นจากลักษณะและปริมาณของข้อมูลในแพ็กเก็ตแล้วใส่ค่านี้ลงไปในเฮดเดอร์ด้วย

3. แต่ละแพ็กเก็ตจะถูกใส่ไปใน ซอง IP ที่แยกจากกัน ซองเหล่านี้จะบรรจุข้อมูลแอดเดรสที่บอกอินเตอร์เน็ตว่าให้ส่งข้อมูลไปที่ไหน ซองทั้งหมดสำหรับข้อมูลชุดหนึ่งจะมีแอดเดรสที่เหมือนกัน เพื่อจะได้ส่งไปที่เดียวกันแล้วประกอบกลับอย่างเดิมได้ แต่ละซอง IP จะต้องมีเฮดเดอร์ซึ่งบรรจุข้อมูลต่าง ๆ เช่น แอดเดรสของผู้ส่ง แอดเดรสของผู้รับ ช่วงเวลาหรืออายุที่แพ็กเก็ตจะถูกเก็บไว้ก่อนที่จะถูกทิ้งไปเพราะเก่าเกิน ( เช่นในกรณีแพ็กเก็ตที่มีข้อมูลซึ่งขึ้นกับเวลาหรือ real-time เช่นส่วนของภาพเคลื่อนไหวหรือเสียง ถูกส่งไปผิดทางและไปไม่ถึงที่หมายสักทีจนช้าเกินกว่าจะไปทันแพ็กเก็ตอื่น ๆ และหมดความจำเป็นจะต้องส่งต่อไปอีก ก็จะทิ้งไปได้เลย ) และข้อมูลอื่น ๆ อีกมาก

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

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

6. เมื่อได้รับแพ็กเก็ตที่สมบูรณ์ครบทั้งหมดแล้ว TCP ก็จะประกอบข้อมูลนั้นกลับขึ้นมาเป็นรูปแบบเดิมของมัน

15 กุมภาพันธ์ 2541



[ home ] [ menu ] [ Internet ]