Socket là gì – Socket cpu là gì

Socket là gì

Thông thường, một máy chủ (Server) chạy trên một máy tính cụ thể sẽ có một socket do một cổng quyết định. Máy chủ chỉ cần đợi socket thông báo khi có yêu cầu kết nối từ máy khách (Client).

Socket là một điểm cuối của quá trình liên kết nhận và gửi dữ liệu trong một nút mạng, thường là giữa hai chương trình đang chạy trong một mạng máy tính. Một socket được gắn với một số cổng cố định (a Port Number), tầng Giao vận (cụ thể là giao thức TCP) sẽ nhận diện đích đến ở tầng Ứng dụng thông qua cổng đó.

Thuật ngữ socket trong mạng máy tính cũng tương tự như thuật ngữ đầu nối cái trong vật lý. Hai nút mạng (node) giao tiếp với nhau thông qua một kênh ở dạng cáp có hai đầu nối đực cắm vào ổ cắm ở mỗi nút. Tương tự, cổng cái (term port) – sử dụng các điểm cuối bên ngoài nút mạng và term socket dùng như một điểm cuối ở bên trong mạng để tạo ra giao tiếp cục bộ IPC (không thông qua mạng).

Tuy nhiên, nó không hoàn toàn giống nhau, vì giao tiếp trong mạng thì không nhất thiết phải là one-to-one (kết nối điểm – điểm) mà có thể là kết nối đa điểm hoặc phải có kênh liên lạc chuyên dụng.

Cùng với Socket, còn có các thuật ngữ liên quan như mô tả của socket (socket description) và địa chỉ socket (socket address hay còn gọi là địa chỉ socket công cộng. Các thuật ngữ này không phải lúc nào cũng phân chia rõ ràng với nhau:

+ Tương tự như khi ta cần dùng mô tả của mộ file để kết nối với file đó, khi muốn kết nối với một socket ta gửi yêu cầu đến socket đó để nhận mô tả của socket (socket description) và dựa vào đó tạo ra kết nối.

+ Địa chỉ socket được dùng để nhân diện socket muốn kết nối trên mạng.

Một chương trình máy tính có thể tham khảo mô tả của socket (socket description). Một dạng của tham chiếu trừu tượng dùng khi cần tham chiếu bộ nhớ của ứng dụng hoặc các đối tượng được quản lý bởi hệ thống khác. Cách để chương trình máy tính tham khảo ở socket:

+ Chương trình máy tính gửi yêu cầu nhóm các giao thức (protocol stack) tạo một socket.

+ Nhóm các giao thức gửi bản mô tả dữ liệu của nó đến chương trình máy tính để xác định socket cả hai có thể dùng.

+ Chương trình gửi bản mô tả dữ liệu trở lại với nhóm các giao thức, socket này sẽ trở thành nơi nó nhận và gửi dữ liệu của nó.

Cụ thể, trong mô hình máy khách – máy chủ (Client – Server): để tạo ra một yêu cầu kết nối, ở phía máy khách sẽ cần biết:

+ Tên của máy chủ mà thiết bị đang chạy trên đó.

+ Số cổng (Port Number) của máy chủ muốn kết nối.

+ Tự nhận diện chính nó đến máy chủ để liên kết với 1 cổng kết nối và sẽ sử dụng cổng này trong cả quá trình liên kết.

Socket là gì
Socket là gì

Không giống như cổng (port), socket chỉ dành riêng cho một nút mạng, chúng là tài nguyên cục bộ và không thể sử dụng bởi các nút mạng khác. Hơn nữa, các socket không cần phải liên tục liên kết với kênh liên kết trước đó để giữ liên lạc giữa hai nút mạng, cũng không cần phải có một điểm cuối khác.

Trong thực tế, khi đề cập đến socket người ta thường nói đến Internet socket hoặc TCp socket. Một Internet socket thường có những đặc trưng cụ thể sau đây:

Địa chỉ socket cục bộ, gồm có địa chỉ IP cục bộ và một cổng giao thức đặc trưng (đối với giao thức TCP và giao thức UDP, IP không bao có cổng vật lý này).

Một số cổng (a Port number): một giao thức ở tầng Giao vận (ví dụ: TCP, UDP). Có nghĩa là các điểm cuối (cục bộ hoặc từ xa) với TCP cổng 53 và UDP cổng 53 là các socket riêng biệt.

Một socket đã kết nối với một socket khác, có sẵn địa chỉ của socket đó.

Như vậy, có thể hiều Socket là các điểm giao tiếp cuối cùng trên cùng một máy tính hoặc các máy khác nhau để trao đổi dữ liệu. Socket hiện được hỗ trợ bởi Unix, Windows, Mac và nhiều hệ điều hành khác.