Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> ระบบเครือข่าย

Socket Programming สำหรับเครือข่ายคอมพิวเตอร์: คู่มือภาพรวม

Socket คืออะไร?

Socket เป็นเทคโนโลยีพื้นฐานสำคัญที่สุดของ Network Programming อนุญาตให้แอปพลิเคชันเครือข่ายสื่อสารผ่านกลไกมาตรฐานที่สร้างไว้ในฮาร์ดแวร์และ OS มีอยู่ก่อนเว็บมากกว่า 30 ปี หลายแอปยอดนิยมพึ่งพา Socket

ความสามารถของ Socket

  • แทนการเชื่อมต่อ Point-to-Point ระหว่าง 2 ชิ้นของซอฟต์แวร์
  • มากกว่า 2 ฝ่าย: ใช้ Multiple Sockets (เช่น Web Server 1 ตัว รับหลาย Browser พร้อมกัน)
  • รันบนคอมพิวเตอร์แยกกัน (Network) หรือเครื่องเดียวกัน (Interprocess/ Local)
  • Bidirectional: ทั้งสองฝ่ายส่งและรับข้อมูลได้
  • หลีกเลี่ยงคำว่า Client/Server ใน P2P เพราะสร้างความสับสน

Socket APIs และ Libraries

  • Berkeley Socket Library: แพ็กเกจแรกที่แพร่หลาย ใช้ใน UNIX ตั้งแต่ 1982
  • Windows Sockets (WinSock): สำหรับ Microsoft OS ตั้งแต่ 1993
  • API เล็ก สั้น เข้าใจง่าย คล้าย File I/O: read(), write(), close()
  • Function จริงขึ้นอยู่กับภาษาและ Library ที่เลือก

ประเภท Socket Interface (3 แบบ)

ประเภท ลักษณะ โปรโตคอลทั่วไป
Stream Sockets Connection-oriented สร้างการเชื่อมต่อก่อน ข้อมูลมาถึงตามลำดับ (Reliable, Ordered) TCP
Datagram Sockets Connection-less ส่ง Datagram ได้ทันที ไม่สร้าง Connection ข้อมูลอาจหาย หรือมา Out-of-order แอปจัดการเอง UDP
Raw Sockets Bypass Library protocol support (TCP/UDP) ใช้พัฒนา Custom Low-level Protocol IP / Custom

Socket ร่วมกับ Network Protocols

  • Modern Sockets ใช้กับ IP, TCP, UDP
  • Library ใช้ TCP สำหรับ Streams, UDP สำหรับ Datagrams, IP สำหรับ Raw Sockets
  • ระบุคอมพิวเตอร์ด้วย IP Address (หรือ Domain Name ผ่าน DNS)
  • Stream/Datagram ใช้ Port Number แยกแอปพลิเคชัน (เช่น Web Browser ใช้ Port 80 กับ Web Server)