- 00 OO
1. Khái niệm về socket
Trong mô hình mạng để hai máy tính có thể trao đổi thông tin cho nhau thì cần phải tạo ra kết nối giữa chúng. Trong quá trình làm việc người ta nhận thấy rằng những nhà lập trình ứng dụng rất khó khăn trong việc thiết lập kết nối và truyền tải dữ liệu giữa các máy tính với nhau. Vì thế người ta xây dựng khái niệm socket, khái niệm này được đưa ra đầu những năm 80 bởi các nhà khoa học máy tính ở California tại Berkeley. Khái niệm này được đưa ra từ ý tưởng
1 0 Network ID Host ID
31 30 29 1615 0
1 1 0 Network ID Host ID
viện các hàm do hãng Berkeley Software Distribution of UNIX đưa ra. Nhằm làm đơn giản hóa quá trình thiết lập kết nối và chuyển dữ liệu. socket dựa trên giao thức TCP/IP tạo môi trường trung gian cho các ứng dụng và giao thức bên dưới.
Socket được xem là một cấu trúc dữ liệu trừu tượng(asbtraction data structure) dùng tạo ra một kênh truyền(channel) để gởi và nhận dữ liệu giữa các process trong cùng chương trình hay các giữa các máy trong cùng môi trường mạng với nhau. Hay nói một cách đơn giản hơn chúng ta xem socket như là “cơ chế ổ cắm”. Khi kết nối giữa client và Server tương tự như việc cắm phích điện vào ổ cắm điện. client thường được xem như là phích cắm điện, còn server được xem như là ổ cắm điện, một ổ cắm có thể cắm vào đó nhiều phích điện khác nhau cũng như một server có thể phục vụ cho nhiều client khác nhau.
Trong quá trình truyền, nhận dữ liệu cần có một máy đóng vai trò là server và một máy đóng vai trò client, đầu tiên server phải tạo ra một socket và chờ đợi các yêu cầu kết nối từ client. client tạo ra socket cho riêng nó xác định vị trí server (dựa vào tên của server hay địa chỉ của server trong mạng) và tiến hành việc kết nối với server, sau khi kết nối được thiết lập client và server có thể tiến hành việc trao đổi dữ liệu với nhau.