Socket là gì?

    Bạn đang gặp vấn đề về về việc truyền tải và nhận dữ liệu từ máy tính thông qua mạng mà vẫn chưa tìm ra giải pháp. Vậy Socket sẽ là giải pháp tối ưu dành cho bạn, nhưng Socket là gì?

    Câu hỏi của vào 30/11/2019   danh mục: Công nghệ.
    1 Trả lời

      Thuật ngữ Socket xuất hiện khá nhiều trong ngôn ngữ lập trình hiện nay, nhưng Socket là gì? Socket được sử dụng để làm gì, gồm những loại Socket nào? Có nhiều bạn vẫn chưa thực sự nắm được, vì vậy trong bài viết này mình xin gửi tới các bạn khái niệm về Socket, chức năng và các loại Socket thường được sử dụng.

      Socket là gì?

      Socket là một điểm cuối của liên kết truyền thông hai chiều giữa 2 chương trình chạy trên mạng internet. Nói một cách dễ hiểu Socket là một cổng logic mà các chương trình chạy trên máy tính này có thể kết nối với chương trình khác chạy trên máy tính khác, dựa trên nền tảng internet.

      Chức năng của Socket là kết nối giữa silent và server thông qua một cổng port, tại đây các tầng TCP có thể định danh ứng dụng và dữ liệu truyền tải tới. Cùng lúc người dùng có thể sử dụng nhiều Socket, như vậy người dùng có thể sử dụng nhiều chương trình khác nhau. Thế nên khi sử dụng Socket người dùng có thể hoàn thành công việc một cách nhanh chóng và nhẹ nhàng hơn,

      Lập trình Socket cho phép người dùng kết nối các máy tính truyền tải và nhận dữ liệu thông qua mạng internet.

      Socket gồm những loại nào?

      Socket cụ thể gồm có 4 loại là: Strem Sockets, Datagram Socket, Raw Sockets và

      Sequenced Packet Sockets, nhưng phổ biến nhất là Strem Sockets và Datagram Socket.

      Strem Sockets

      Hoạt động trong điều kiện mạng được đảm bảo, Stream Socket cho phép người dùng truyền tải dữ liệu. Cơ chế của stream socket là thông qua việc quản lý luồng lưu thông trên mạng và chống tắc nghẽn. Nhờ đó mà các dữ liệu được truyền đến nơi một cách đáng tin cậy, đúng thứ tự. Ví dụ bạn gửi thông tin theo mục 1, 2, 3 thì chúng sẽ đến theo thứ tự 1, 2, 3. Ngoài ra Stream socket còn phân biệt được giữa dữ liệu của nhiều ứng dụng như là dịch vụ web và dịch vụ thư điện tử khi chạy đồng thời. 

      Tuy nhiên Strem Sockets cũng có một số hạn chế vì chỉ có 1 đường kết nối giữa 2 tiến trình, do đó 1 trong 2 tiến trình phải chờ để để được yêu cầu kết nối.

      Datagram Socket

      Hoạt động trong điều kiện mạng không được đảm bảo, không giống như Stream socket, Datagram socket cho phép người dùng truyền tải dữ liệu mà không cần đến sự kết nối giữa 2 quá trình. Do đó tốc độ của Datagram socket nhanh hơn khá nhiều, nó thích hợp với việc truyền tải những dữ liệu có kích thước nhỏ và yêu cầu khắt khe về thời gian.

      Tuy có tốc độ nhanh nhưng nhược điểm của Datagram socket là các tập tin được truyền không được tin cậy và không đúng trình tự, lặp lại, bị mất mà không có thông báo.

      Raw Sockets

      Raw Sockets cung cấp cho người dùng quyền truy cập vào các giao thức truyền thông cơ bản, hỗ trợ trừu tượng hóa socket. Các socket này thường được định hướng datagram, mặc dù các đặc điểm chính xác của chúng phụ thuộc vào giao diện được cung cấp bởi giao thức. Nhưng Raw Sockets không dành cho người dùng phổ thông, chúng chỉ dành cho người dùng quan tâm đến việc phát triển các giao thức truyền thông mới hoặc có quyền truy cập vào một số phương tiện khó hiểu hơn của một giao thức hiện tại.

      Sequenced Packet Sockets

      Sequenced Packet Sockets là một giao thức mạng cung cấp vận chuyển các gói tin cậy với điều khiển luồng trong các môi trường nơi có nhiều kết nối truyền tải được thiết lập. Sequenced Packet Sockets sử dụng số tham chiếu ID đích để xác định đầu đích của kết nối vận chuyển, số thứ tự để giữ các gói được truyền theo thứ tự mà chúng được gửi, và xác nhận các số được gán cho gói cuối cùng theo trình tự mà đích đến nhận đúng để chỉ ra rằng việc truyền đã hoàn tất và thành công.

      Qua bài viết này, mình hi vọng những thông tin phía trên sẽ giúp ích cho công việc, học tập của các bạn.

      Mẫu giáoĐã trả lời vào 01/12/2019
      Câu trả lời của bạn
      Khi tham gia trả lời bạn phải đồng ý với các điều khoản trên web site của chúng tôi: privacy policy and terms of service.