Thứ Năm, 28 tháng 8, 2014

Describe client - server model

Mô hình client-server là mô hình phổ biến trong mạng internet hiện nay. Mọi trang web hiện có đều dựa trên mô hình client-server.
Mô hình client-server làm việc dựa trên cơ chế request và respone. Trong đó client sẽ gửi request cho server và server sẽ xử lý và gửi lại respone cho phía client.
Giữa client và server giao tiếp với nhau thông qua chuẩn được gọi là giao thức mạng. Một client muốn gửi request để lấy thông tin từ server thì phải tuân theo giao thức của phía server. Hiện nay có rất nhiều chuẩn giao thức được ra đời: TCP/IP, HTTP cho web, SMTP/POP3 cho mail, FTP cho trao đổi file, SNA, OSI, Telnet...

  • Client: Có thể được hiểu là một máy trạm chỉ được sử dụng bởi một người dùng. Bao gồm web browser, ứng dụng chat, phầm mềm email. Ví dụ người dùng web browser tạo request
  • Server: Có thể được hiểu như là một máy tính lớn đáp ứng nhiều người sử dụng. Server sẽ cung cấp và điều khiển các process truy cập vào tài nguyên trên server. Nó cung cấp các services cho client như truy cập cơ sở dữ liệu, truyền file, in....Nó bao gồm web, database, application, chat, mail
Server quản lý hầu hết các process và lưu trữ data. Client được coi như là máy trạm sử dụng các dịch vụ trên mạng do một hoặc nhiều máy chủ cung cấp và server là phía cung cấp các dịch vụ để trả lời các request từ phía client
Hệ thống sẽ thiết lập kết nối có phần nào đó khác biệt giữa client và server nhưng cả hai đều liên quan đến việc xây dựng socket. Hai quá trình thiết lập socket của riêng chúng.
- Client:
+ Client tạo một socket bằng cách gọi socket() của hệ thống
+ Gọi connect() của hệ thống để kết nối đến địa chỉ của server
+ Gửi và nhận dữ liệu bằng read() và write() của hệ thống
- Server
+ Tạo một socket bằng việc gọi socket() của hệ thống
+ Kết nối socket tới một địa chỉ sử dụng bind(). Một socket server trên internet là một địa chỉ với số port trên máy chủ.
+ Lắng nghe kết nối qua listen() của hệ thống.
+ Chấp nhận một kết nối bằng accept()
+ Gửi và nhận dữ liệu bằng read() và write()

Không có nhận xét nào:

Đăng nhận xét