Computer >> Máy Tính >  >> Kết nối mạng >> Kết nối mạng

Tổng quan về Lập trình Socket cho Mạng Máy tính

Ổ cắm là một trong những công nghệ cơ bản nhất của lập trình mạng máy tính. Sockets cho phép các ứng dụng phần mềm mạng giao tiếp bằng cách sử dụng các cơ chế tiêu chuẩn được tích hợp trong phần cứng mạng và hệ điều hành.

Mặc dù nghe có vẻ giống như một tính năng khác của phát triển phần mềm internet, nhưng công nghệ socket đã tồn tại trước khi có web. Nhiều ứng dụng phần mềm mạng phổ biến dựa trên các ổ cắm.

Công nghệ Socket có thể làm gì cho mạng của bạn

Một ổ cắm đại diện cho một kết nối duy nhất giữa chính xác hai phần mềm (kết nối điểm-điểm). Hơn hai phần mềm có thể giao tiếp với máy khách / máy chủ hoặc hệ thống phân tán bằng cách sử dụng nhiều ổ cắm. Ví dụ:nhiều trình duyệt web có thể giao tiếp đồng thời với một máy chủ web duy nhất bằng cách sử dụng một nhóm các ổ cắm được tạo trên máy chủ.

Phần mềm dựa trên socket thường chạy trên hai máy tính riêng biệt trong mạng, nhưng socket cũng có thể được sử dụng để giao tiếp cục bộ (interprocess) trên một máy tính. Các ổ cắm là hai chiều, có nghĩa là một trong hai bên của kết nối có khả năng gửi và nhận dữ liệu.

Đôi khi ứng dụng bắt đầu giao tiếp được gọi là máy khách và ứng dụng khác là máy chủ, nhưng thuật ngữ này dẫn đến sự nhầm lẫn trong mạng ngang hàng và thường nên tránh.

Thư viện và API Socket

Một số thư viện triển khai các giao diện lập trình ứng dụng tiêu chuẩn (API) tồn tại trên internet. Gói chính đầu tiên, Berkeley Socket Library, được sử dụng rộng rãi trên các hệ thống UNIX.

Một API phổ biến khác là thư viện Windows Sockets (WinSock) dành cho hệ điều hành Microsoft. So với các công nghệ máy tính khác, API socket đã trưởng thành. WinSock đã được sử dụng từ năm 1993 và ổ cắm Berkeley từ năm 1982.

Các API socket tương đối nhỏ và đơn giản. Nhiều hàm tương tự như các hàm được sử dụng trong các thủ tục nhập / xuất tệp như read () , write () close () . Các lệnh gọi hàm thực sự để sử dụng phụ thuộc vào ngôn ngữ lập trình và thư viện socket được chọn.

Các loại giao diện ổ cắm

Giao diện socket có thể được chia thành ba loại:

  • Ổ cắm trực tiếp :Đây là loại phổ biến nhất. Trước tiên, hai bên giao tiếp thiết lập một kết nối socket, sau đó mọi dữ liệu được truyền qua kết nối đó được đảm bảo sẽ đến theo đúng thứ tự mà nó được gửi (sử dụng mô hình lập trình hướng kết nối).
  • Ổ cắm sơ đồ :Cung cấp ngữ nghĩa ít kết nối. Với các biểu đồ dữ liệu, các kết nối là ngầm định thay vì rõ ràng như với các luồng. Một trong hai bên gửi các biểu đồ khi cần thiết và đợi bên kia phản hồi. Tin nhắn có thể bị mất trong quá trình truyền hoặc nhận không theo thứ tự; ứng dụng giải quyết những vấn đề này, không phải ổ cắm. Việc triển khai các ổ cắm datagram có thể giúp một số ứng dụng tăng hiệu suất và thêm tính linh hoạt so với việc sử dụng các ổ cắm trực tiếp.
  • Ổ cắm thô :Bỏ qua sự hỗ trợ tích hợp của thư viện đối với các giao thức tiêu chuẩn như TCP và UDP. Các ổ cắm thô được sử dụng để phát triển giao thức cấp thấp tùy chỉnh.

Hỗ trợ Socket trong Giao thức Mạng

Các ổ cắm mạng hiện đại thường được sử dụng cùng với các giao thức internet IP, TCP và UDP. Các thư viện triển khai các ổ cắm cho giao thức internet sử dụng TCP cho các luồng, UDP cho các biểu đồ dữ liệu và IP cho các ổ cắm thô.

Để giao tiếp qua internet, các thư viện ổ cắm IP sử dụng địa chỉ IP để xác định các máy tính cụ thể. Nhiều phần của Internet hoạt động với các dịch vụ đặt tên, để người dùng và lập trình viên socket có thể làm việc với máy tính theo tên (ví dụ:thiscomputer.wireless.lifewire.com) thay vì theo địa chỉ (ví dụ:208.185.127.40).

Các ổ cắm Stream và datagram cũng sử dụng số cổng IP để phân biệt nhiều ứng dụng với nhau. Ví dụ:các trình duyệt web trên internet biết sử dụng cổng 80 làm mặc định cho giao tiếp socket với máy chủ web.