ซ็อกเก็ตเป็นหนึ่งในเทคโนโลยีพื้นฐานที่สุดของการเขียนโปรแกรมเครือข่ายคอมพิวเตอร์ ซ็อกเก็ตช่วยให้แอปพลิเคชันซอฟต์แวร์เครือข่ายสื่อสารโดยใช้กลไกมาตรฐานที่มีอยู่ในฮาร์ดแวร์เครือข่ายและระบบปฏิบัติการ
แม้ว่าจะฟังดูเหมือนคุณลักษณะอื่นของการพัฒนาซอฟต์แวร์อินเทอร์เน็ต แต่เทคโนโลยีซ็อกเก็ตมีอยู่ก่อนเว็บ แอปพลิเคชั่นซอฟต์แวร์เครือข่ายยอดนิยมจำนวนมากต้องอาศัยซ็อกเก็ต
เทคโนโลยีซ็อกเก็ตทำอะไรกับเครือข่ายของคุณได้บ้าง
ซ็อกเก็ตแสดงถึงการเชื่อมต่อเดียวระหว่างซอฟต์แวร์สองชิ้น (การเชื่อมต่อแบบจุดต่อจุด) ซอฟต์แวร์มากกว่าสองชิ้นสามารถสื่อสารกับไคลเอนต์/เซิร์ฟเวอร์หรือระบบแบบกระจายโดยใช้ซ็อกเก็ตหลายตัว ตัวอย่างเช่น เว็บเบราว์เซอร์จำนวนมากสามารถสื่อสารกับเว็บเซิร์ฟเวอร์เดียวได้พร้อมกันโดยใช้กลุ่มของซ็อกเก็ตที่สร้างบนเซิร์ฟเวอร์
ซอฟต์แวร์ที่ใช้ซ็อกเก็ตมักจะทำงานบนคอมพิวเตอร์สองเครื่องที่แยกจากกันบนเครือข่าย แต่ซ็อกเก็ตยังสามารถใช้เพื่อสื่อสารภายในเครื่อง (ระหว่างกระบวนการ) บนคอมพิวเตอร์เครื่องเดียว ซ็อกเก็ตเป็นแบบสองทิศทาง ซึ่งหมายความว่าด้านใดด้านหนึ่งของการเชื่อมต่อสามารถส่งและรับข้อมูลได้
บางครั้งแอปพลิเคชันที่เริ่มต้นการสื่อสารจะเรียกว่าไคลเอ็นต์และแอปพลิเคชันอื่นคือเซิร์ฟเวอร์ แต่คำศัพท์นี้นำไปสู่ความสับสนในระบบเครือข่ายแบบเพียร์ทูเพียร์และโดยทั่วไปควรหลีกเลี่ยง
Socket API และไลบรารี่
ห้องสมุดหลายแห่งที่ใช้อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชันมาตรฐาน (API) มีอยู่บนอินเทอร์เน็ต แพ็คเกจหลักชุดแรกคือ Berkeley Socket Library มีการใช้กันอย่างแพร่หลายบนระบบ UNIX
API ทั่วไปอีกตัวหนึ่งคือไลบรารี Windows Sockets (WinSock) สำหรับระบบปฏิบัติการ Microsoft เมื่อเทียบกับเทคโนโลยีคอมพิวเตอร์อื่น ๆ socket APIs นั้นสมบูรณ์แล้ว WinSock มีการใช้งานมาตั้งแต่ปี 1993 และซ็อกเก็ต Berkeley ตั้งแต่ปี 1982
ซ็อกเก็ต API ค่อนข้างเล็กและเรียบง่าย ฟังก์ชันหลายอย่างคล้ายกับที่ใช้ในรูทีนอินพุต/เอาต์พุตของไฟล์ เช่น read(), write() และ close() . การเรียกใช้ฟังก์ชันจริงขึ้นอยู่กับภาษาการเขียนโปรแกรมและซ็อกเก็ตไลบรารีที่เลือก
ประเภทอินเตอร์เฟสของซ็อกเก็ต
อินเทอร์เฟซซ็อกเก็ตสามารถแบ่งออกเป็นสามประเภท:
- ช่องสตรีม :นี่เป็นประเภทที่พบบ่อยที่สุด ฝ่ายสื่อสารสองฝ่ายสร้างการเชื่อมต่อซ็อกเก็ตก่อน หลังจากนั้นข้อมูลใดๆ ที่ส่งผ่านการเชื่อมต่อนั้นรับประกันว่าจะมาถึงในลำดับเดียวกันกับที่ส่ง (โดยใช้โมเดลการเขียนโปรแกรมที่เน้นการเชื่อมต่อ)
- ซ็อกเก็ตดาตาแกรม :เสนอความหมายที่ไม่มีการเชื่อมต่อ เมื่อใช้ดาตาแกรม การเชื่อมต่อจะมีความชัดเจนมากกว่าแบบชัดเจนเหมือนกับสตรีม ฝ่ายใดฝ่ายหนึ่งส่งดาตาแกรมตามความจำเป็นและรอให้อีกฝ่ายตอบกลับ ข้อความอาจสูญหายในการส่งหรือได้รับไม่เป็นระเบียบ แอปพลิเคชันจัดการกับปัญหาเหล่านี้ ไม่ใช่ซ็อกเก็ต การใช้ซ็อกเก็ตดาตาแกรมสามารถเพิ่มประสิทธิภาพให้กับแอปพลิเคชันบางตัวและมีความยืดหยุ่นมากขึ้นเมื่อเทียบกับการใช้สตรีมซ็อกเก็ต
- ซ็อกเก็ตดิบ :ข้ามการสนับสนุนในตัวของไลบรารีสำหรับโปรโตคอลมาตรฐาน เช่น TCP และ UDP ซ็อกเก็ตดิบใช้สำหรับการพัฒนาโปรโตคอลระดับต่ำที่กำหนดเอง
รองรับซ็อกเก็ตในโปรโตคอลเครือข่าย
ซ็อกเก็ตเครือข่ายสมัยใหม่มักใช้ร่วมกับโปรโตคอลอินเทอร์เน็ต IP, TCP และ UDP ไลบรารีที่ใช้ซ็อกเก็ตสำหรับโปรโตคอลอินเทอร์เน็ตจะใช้ TCP สำหรับสตรีม UDP สำหรับดาตาแกรม และ IP สำหรับซ็อกเก็ตดิบ
ในการสื่อสารทางอินเทอร์เน็ต ไลบรารีซ็อกเก็ต IP ใช้ที่อยู่ IP เพื่อระบุคอมพิวเตอร์เฉพาะ อินเทอร์เน็ตหลายส่วนทำงานร่วมกับบริการการตั้งชื่อ เพื่อให้ผู้ใช้และโปรแกรมเมอร์ซ็อกเก็ตสามารถทำงานกับคอมพิวเตอร์โดยใช้ชื่อ (เช่น thiscomputer.wireless.lifewire.com) แทนที่อยู่ (เช่น 208.185.127.40)พี>
ซ็อกเก็ตสตรีมและดาตาแกรมยังใช้หมายเลขพอร์ต IP เพื่อแยกแอปพลิเคชั่นหลายตัวออกจากกัน ตัวอย่างเช่น เว็บเบราว์เซอร์บนอินเทอร์เน็ตทราบว่าใช้พอร์ต 80 เป็นค่าเริ่มต้นสำหรับการสื่อสารซ็อกเก็ตกับเว็บเซิร์ฟเวอร์