ภาพรวมของการเขียนโปรแกรมซ็อกเก็ตสำหรับเครือข่ายคอมพิวเตอร์

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

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

สิ่งที่ Sockets สามารถทำได้สำหรับเครือข่ายของคุณ

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

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

Socket APIs และ Libraries

ห้องสมุดหลายแห่งที่ใช้ อินเตอร์เฟซการเขียนโปรแกรมแอ็พพลิเคชัน มาตรฐาน (APIs) มีอยู่บนอินเทอร์เน็ต แพคเกจหลักแรก - ห้องสมุด Berkeley Socket ยังคงใช้กันอย่างแพร่หลายในระบบยูนิกซ์ อีกหนึ่ง API ทั่วไปคือไลบรารี Windows Sockets (WinSock) สำหรับระบบปฏิบัติการ Microsoft เมื่อเทียบกับเทคโนโลยีคอมพิวเตอร์อื่น ๆ ซ็อกเก็ต API จะโตเต็มที่: วินสโคปเริ่มใช้งานตั้งแต่พศ. 2536 และซ็อกเก็ตเบิร์กเลย์ตั้งแต่ปี 2525

ซ็อกเก็ต APIs มีขนาดค่อนข้างเล็กและเรียบง่าย หลายฟังก์ชั่นคล้ายคลึงกับที่ใช้ในการป้อนข้อมูล / เอาต์พุตเป็นประจำเช่น read () , write () และ close () . ฟังก์ชั่นการใช้งานจริงขึ้นอยู่กับภาษาโปรแกรมและไลบรารีซ็อกเก็ตที่เลือกไว้

ชนิดของอินเทอร์เฟซของซ็อก

อินเตอร์เฟซซ็อกเก็ตสามารถแบ่งออกเป็นสามประเภท:

  • ซ็อกเก็ต สตรีม ชนิดที่พบได้บ่อยที่สุดต้องการให้ทั้งสองฝ่ายสื่อสารกันก่อนสร้างการเชื่อมต่อแบบซ็อกเก็ตหลังจากที่ข้อมูลใด ๆ ที่ส่งผ่านการเชื่อมต่อนั้นจะได้รับการรับประกันว่าจะมาถึงลำดับเดียวกันกับที่มีการส่ง - เรียกว่าการเขียนโปรแกรมการเชื่อมต่อ แบบ
  • ซ็อกเก็ต ดาต้าแกรม มีความหมายแบบ "ไม่ต่อเชื่อม" กับ datagrams การเชื่อมต่อมีนัยมากกว่าชัดเจนเช่นเดียวกับสตรีม ทั้งสองฝ่ายเพียงแค่ส่งดาต้าแกรมตามความจำเป็นและรอให้อีกฝ่ายตอบสนอง ข้อความอาจสูญหายในการรับส่งหรือได้รับคำสั่งไม่ถูกต้อง แต่เป็นความรับผิดชอบของแอพพลิเคชันไม่ใช่ซ็อกเก็ตเพื่อรับมือกับปัญหาเหล่านี้ การใช้ซ็อกเก็ตดาต้าจะทำให้แอพพลิเคชันบางตัวสามารถเพิ่มประสิทธิภาพและเพิ่มความยืดหยุ่นเมื่อเทียบกับการใช้ซ็อกเก็ตสตรีมเพื่อให้สามารถใช้งานได้ในบางสถานการณ์
  • ซ็อกเก็ตประเภทที่สาม - ซ็อกเก็ต ดิบ - ข้ามการสนับสนุนในตัวของไลบรารีสำหรับโปรโตคอลมาตรฐานเช่น TCP และ UDP ซ็อกเก็ตดิบใช้สำหรับการพัฒนาโปรโตคอลระดับต่ำที่กำหนดเอง

สนับสนุนซ็อกเก็ตในโปรโตคอลเครือข่าย

ซ็อกเก็ตเครือข่ายสมัยใหม่มักใช้ร่วมกับโปรโตคอลอินเทอร์เน็ต - IP, TCP และ UDP ไลบรารีที่ใช้ซ็อกเก็ตสำหรับ Internet Protocol ใช้ TCP สำหรับสตรีม UDP สำหรับดาต้าแกรมและ IP สำหรับซ็อกเก็ตดิบ

ในการสื่อสารผ่านทางอินเทอร์เน็ตไลบรารีซ็อกเก็ต IP ใช้ที่ อยู่ IP เพื่อระบุคอมพิวเตอร์เฉพาะ หลายส่วนของอินเทอร์เน็ตทำงานกับบริการตั้งชื่อเพื่อให้ผู้ใช้และโปรแกรมเมอร์ซ็อกเก็ตสามารถทำงานร่วมกับคอมพิวเตอร์ได้ตามชื่อ ( เช่น "thiscomputer.wireless.about.com") แทนตามที่อยู่ ( เช่น 208.185.127.40) ซ็อกเก็ตสตรีมและ datagram ยังใช้ หมายเลขพอร์ต IP เพื่อแยกความแตกต่างของแอพพลิเคชันหลายตัวออกจากกัน ตัวอย่างเช่นเว็บเบราเซอร์บนอินเทอร์เน็ตรู้ว่าจะใช้พอร์ต 80 เป็นค่าเริ่มต้นสำหรับการสื่อสารแบบซ็อกเก็ตกับเว็บเซิร์ฟเวอร์