Socket là gì? Thực chất là một thuật ngữ về phần mềm, nó là một cách trừu tượng hóa ổ cắm vật lý ( giống ổ cắm trên màn hình). Socket là một điểm cuối (endpoint) của liên kết giao tiếp hai chiều (two-way communication) giữa hai chương trình chạy trên mạng. Để hiểu hơn về Socket là gì và vai trò của chúng trong máy tính, bài viết dưới đây, NQ NewsCloud ” data-rel=”follow” target=”_blank”>NQ NewsCloud sẽ cung cấp cho bạn những kiến thức cơ bản nhất.

Socket là gì?
Hiện nay, nhiều bài viết nói về Socket nhưng để hiểu thì hơi khó khăn. Thuật ngữ phần mềm này còn khá mới lạ gây nên còn khiến nhiều người lạ lẫm. Thực chất, giống như hầu hết các thuật ngữ phần mềm, Socket được hiểu là một cách trừu tượng hóa ổ cắm vật lý (giống như ổ cắm trên hình) mà chúng ta vốn đã quen thuộc. Khi một ổ cắm vật lý là một điểm tiếp xúc để nhận cáp điện., một 1 software socket cũng là một điểm nhận. thay vì nhận cáp nguồn, nó được nhận kết nối mạng từ một máy tính khác.

Các lớp Socket được dùng để tiến hành kết nối giữa client và server. Tất cả các Socket đều ràng buộc thông qua một cổng port (thể hiện là một con số cụ thể) để các tầng TCP (TCP Layer) có thể định danh ứng dụng mà dữ liệu sẽ được gửi tới.
Vì sao nên dùng Socket?
Socket có tác dụng chính là duy trì kết nối giữa các client với server để ứng dụng có thể hoạt động liên tục. Chẳng hạn khi nhận một ứng dụng từ nhắn tin, Socket sẽ nhận ra có tin nhắn mới, reaction… ect để thông báo lên giao diện.

Hầu hết các socket là hỗ trợ hầu hết các hệ điều hành bao gồm MS Windows, Linux,,.. Socket được dùng với nhiều ngôn ngữ lập trình, gồm C, C , Java, Visual Basic, Visual C ,… nên Socket tương thích với hầu hết mọi cấu hình máy tính khác nhau. Socket có thể chạy liên tục, giúp tiết kiệm được thời gian mà nâng cao hiệu suất làm việc.
Các loại Socket hiện nay
Có bốn loại socket hiện có sẵn cho người dùng sử dụng. Hai loại đầu tiên được sử dụng phổ biến nhất và hai loại còn lại có mức độ sử dụng ít hơn hoặc hiếm khi được sử dụng.
Các quy trình được cho là chỉ giao tiếp giữa các socket trong cùng loại, tuy nhiên việc giao tiếp giữa các loại socket khác nhau thì không có hạn chế.
Stream Sockets – Truyền phát trong một môi trường mạng được đảm bảo. Nếu bạn gửi qua socket ba mục “A, B, C”, chúng sẽ đến theo cùng một thứ tự – “A, B, C”. Các socket này sử dụng TCP để truyền dữ liệu. Nếu việc truyền phát không thể thực hiện, người gửi sẽ nhận được báo lỗi. Các bản ghi dữ liệu không có bất kỳ giới hạn nào.
Datagram Sockets – Truyền phát trong môi trường mạng không được đảm bảo. Các socket không kết nối với nhau vì bạn không cần phải có kết nối mở như trong Stream Sockets – bạn tạo một packet với thông tin đích và gửi nó đi. Dạng socket này sử dụng UDP.

Raw Sockets – Cung cấp cho người dùng quyền truy cập vào các giao thức vận chuyển cơ bản, hỗ trợ socket abstractions. Các socket này thường theo hướng datagram, mặc dù các đặc tính cụ thể của chúng phụ thuộc vào giao diện do giao thức cung cấp. Raw Sockets không dành cho người dùng phổ thông; chúng chủ yếu phục vụ cho những người quan tâm đến việc phát triển các giao thức giao tiếp mới hoặc muốn có quyền truy cập vào một số phương tiện truyền phức tạp hơn.
Sequenced Packet Sockets – Các socket này tương tự như stream socket, ngoại trừ giới hạn bản ghi được giữ nguyên. Sequenced-packet sockets cho phép người dùng thao tác các header của SPP hoặc IDP trên một packet hoặc một nhóm các packet, bằng cách viết header nguyên mẫu kết hợp với bất kỳ dữ liệu nào được gửi đi, hoặc bằng cách chỉ định một header mặc định sẽ được sử dụng cho tất cả dữ liệu gửi đi, cùng với đó cho phép người dùng nhận các header trên các packet đến.
Websocket là gì?
Websocket góp phần giúp kết nối giữa internet giữa client và server diễn ra nhanh và chính xác hơn.

Websocket thực chất là công cụ hỗ trợ client và server kết nối với nhau qua internet. Thông qua việc sử dụng TCP socket giúp kết nối giữa 2 bên client và server nhanh và mượt.
Ưu điểm của Websocket
Websocket mang ưu điểm vượt trội so trong việc kết nối giữa client và server. Điều này khiến cho công việc của từng cá nhân và doanh nghiệp được thực thi nhanh hơn. Cụ thể như sau:
– Tăng tốc độ truyền tải thông tin giữa 2 chiều
– Dễ phát hiện và xử lý trong trường hợp có lỗi xảy ra
– Dễ dàng sử dụng, không cần cài đặt thêm các phần mềm bổ sung khác
– Không cần sử dụng nhiều phương pháp kết nối khác nhau
Websocket được sử dụng nhiều trong trường hợp yêu cầu real time như chat, chứng khoán hay biểu đồ
Nhược điểm của Websocket
Một số nhược điểm của Websocket mà bạn cần lưu ý khi sử dụng có thể kể đến như:
– Với các dịch vụ có phạm vi yêu cầu, Websocket chưa hỗ trợ hoàn toàn.
– Hỗ trợ trình duyệt có chọn lọc nên gây nhiều bất tiện
Nguồn: NQ Computing chia sẻ