Liên lạc giữa các tiến trình qua Sockets trong hệ thống khách chủ:
2 posters
Trang 1 trong tổng số 1 trang
Liên lạc giữa các tiến trình qua Sockets trong hệ thống khách chủ:
- Sockets được định nghĩa là một điểm cuối gaio tiếp, được xác định bởi địa chỉ IP và số hiệu cổng.
- Là một phương pháp dùng để giao tiếp giữa các tiến trình khác nhau trong mạng máy tính hay là trên một máy đơn.
- Socket là một trong những phương thức giao tiếp giữa các quá trình (inter-process communication) như pipe , message queue .... Giả sử ta muốn thiết kế một hệ thống trao đổi file.
- Hệ thống này hoạt động như sau : Tất cả dữ liệu được lưu trữ trên một máy chủ mạnh để bảo đảm an toàn và dễ quản lý Giao tiếp socket giúp chúng ta hiện thực mô hình client / server dễ dàng hơn.
VD:A muốn đến nhà B thì trước tiên phải mở cửa đi ra ngoài. Sau đó A đi bộ đến nhà B. Bằng cách nào để đến nhà B không quan tâm phải đi như thế nào.Khi đến nhà B thì A phải bấm chuông để B ra mở cửa. Qúa trình kết nối giữa 2 ứng dụng trên mạng cũng giống như vậy.Client mở một Sockets"Cái cửa' sau đó nó nhờ các lớp mạng tạo ra kết nối tới Server(không quan tâm là kết nối thế nào). Tiếp theo Server cũng tạo ra một sockets khác có địa chỉ "cái cửa thứ 2, nhưng có chuông, số nhà hẻn hoi". Khi có kết nối đúng tới Server dựa vào thông tin trên sockets của server(giống như client tìm đúng số nhà, bấm chuông...) Thì server sẽ mở cổng ra và client/server sẽ bắt đầu trao đổi dữ liệu.
- Là một phương pháp dùng để giao tiếp giữa các tiến trình khác nhau trong mạng máy tính hay là trên một máy đơn.
- Socket là một trong những phương thức giao tiếp giữa các quá trình (inter-process communication) như pipe , message queue .... Giả sử ta muốn thiết kế một hệ thống trao đổi file.
- Hệ thống này hoạt động như sau : Tất cả dữ liệu được lưu trữ trên một máy chủ mạnh để bảo đảm an toàn và dễ quản lý Giao tiếp socket giúp chúng ta hiện thực mô hình client / server dễ dàng hơn.
VD:A muốn đến nhà B thì trước tiên phải mở cửa đi ra ngoài. Sau đó A đi bộ đến nhà B. Bằng cách nào để đến nhà B không quan tâm phải đi như thế nào.Khi đến nhà B thì A phải bấm chuông để B ra mở cửa. Qúa trình kết nối giữa 2 ứng dụng trên mạng cũng giống như vậy.Client mở một Sockets"Cái cửa' sau đó nó nhờ các lớp mạng tạo ra kết nối tới Server(không quan tâm là kết nối thế nào). Tiếp theo Server cũng tạo ra một sockets khác có địa chỉ "cái cửa thứ 2, nhưng có chuông, số nhà hẻn hoi". Khi có kết nối đúng tới Server dựa vào thông tin trên sockets của server(giống như client tìm đúng số nhà, bấm chuông...) Thì server sẽ mở cổng ra và client/server sẽ bắt đầu trao đổi dữ liệu.
NgoMinhTien20 (I11C)- Tổng số bài gửi : 17
Join date : 26/08/2011
Re: Liên lạc giữa các tiến trình qua Sockets trong hệ thống khách chủ:
Trong môi trường đa chương, một tiến trình không đơn độc trong hệ thống , mà có thể ảnh hưởng đến các tiến trình khác , hoặc bị các tiến trình khác tác động. Nói cách khác, các tiến trình là những thực thể độc lập , nhưng chúng vẫn có nhu cầu liên lạc với nhau để :
Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung.
Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác. Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông tin với nhau.
Socket
- Sockets được định nghĩa là một điểm cuối giao tiếp, được xác định bởi địa chỉ IP và số hiệu cổng.
- Là một phương pháp dùng để giao tiếp giữa các tiến trình khác nhau trong mạng máy tính hay là trên một máy đơn.
- Socket là một trong những phương thức giao tiếp giữa các quá trình (inter-process communication) như pipe , message queue .... Giả sử ta muốn thiết kế một hệ thống trao đổi file.
- Hệ thống này hoạt động như sau : Tất cả dữ liệu được lưu trữ trên một máy chủ mạnh để bảo đảm an toàn và dễ quản lý Giao tiếp socket giúp chúng ta hiện thực mô hình client / server dễ dàng hơn.
VD:A muốn đến nhà B thì trước tiên phải mở cửa đi ra ngoài. Sau đó A đi bộ đến nhà B. Bằng cách nào để đến nhà B không quan tâm phải đi như thế nào.Khi đến nhà B thì A phải bấm chuông để B ra mở cửa. Qúa trình kết nối giữa 2 ứng dụng trên mạng cũng giống như vậy.Client mở một Sockets"Cái cửa' sau đó nó nhờ các lớp mạng tạo ra kết nối tới Server(không quan tâm là kết nối thế nào). Tiếp theo Server cũng tạo ra một sockets khác có địa chỉ "cái cửa thứ 2, nhưng có chuông, số nhà hẻn hoi". Khi có kết nối đúng tới Server dựa vào thông tin trên sockets của server(giống như client tìm đúng số nhà, bấm chuông...) Thì server sẽ mở cổng ra và client/server sẽ bắt đầu trao đổi dữ liệu.
Các thuộc tính của socket:
- Domaine: định nghĩa dạng thức địa chỉ và các nghi thức sử dụng. Có nhiều domaines, ví dụ UNIX, INTERNET, XEROX_NS, ...
- Type: định nghĩa các đặc điểm liên lạc:
a) Sự tin cậy
b) Sự bảo toàn thứ tự dữ liệu
c) Lặp lại dữ liệu
d) Chế độ nối kết
e) Bảo toàn giới hạn thông điệp
f) Khả năng gởi thông điệp khẩn
Để thực hiện liên lạc bằng socket, cần tiến hành các thao tác ::
- Tạo lập hay mở một socket
- Gắn kết một socket với một địa chỉ
- Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết:
a) Liên lạc trong chế độ không liên kết : liên lạc theo hình thức hộp thư:
- hai tiến trình liên lạc với nhau không kết nối trực tiếp
- mỗi thông điệp phải kèm theo địa chỉ người nhận.
Hình thức liên lạc này có đặc điểm được :
- người gởi không chắc chắn thông điệp của học được gởi đến người nhận,
- một thông điệp có thể được gởi nhiều lần,
- hai thông điệp đượ gởi theo một thứ tự nào đó có thể đến tay người nhận theo một thứ tự khác.
Một tiến trình sau khi đã mở một socket có thể sử dụng nó để liên lạc với nhiều tiến trình khác nhau nhờ sử hai primitive send và receive.
b) Liên lạc trong chế độ nối kết:
Một liên kết được thành lập giữa hai tiến trình. Trước khi mối liên kết này được thiết lập, một trong hai tiến trình phải đợi có một tiến trình khác yêu cầu kết nối.Có thể sử dụng socket để liên lạc theo mô hình client-serveur. Trong mô hình này, server sử dụng lời gọi hệ thống listen và accept để nối kết với client, sau đó , client và server có thể trao đổi thông tin bằng cách sử dụng các primitive send và receive.
- Hủy một socket
Ví dụ :
Trong nghi thức truyền thông TCP, mỗi mối nối giữa hai máy tính được xác định bởi một port, khái niệm port ở đây không phải là một cổng giao tiếp trên thiết bị vật lý mà chỉ là một khái niệm logic trong cách nhìn của người lập trình, mỗi port được tương ứng với một số nguyên dương.
Hình 3.4 Các socket và port trong mối nối TCP.
Hình 3.4 minh họa một cách giao tiếp giữa hai máy tính trong nghi thức truyền thông TCP. Máy A tạo ra một socket và kết buộc (bind) socket nầy với một port X (tức là một số nguyên dương có ý nghĩa cục bộ trong máy A), trong khi đó máy B tạo một socket khác và móc vào (connect) port X trong máy A.
Cơ chế socket có thể sử dụng để chuẩn hoá mối liên lạc giữa các tiến trình vốn không liên hệ với nhau, và có thể hoạt động trong những hệ thống khác nhau.
Chia sẻ thông tin: nhiều tiến trình có thể cùng quan tâm đến những dữ liệu nào đó, do vậy hệ điều hành cần cung cấp một môi trường cho phép sự truy cập đồng thời đến các dữ liệu chung.
Hợp tác hoàn thành tác vụ: đôi khi để đạt được một sự xử lý nhanh chóng, người ta phân chia một tác vụ thành các công việc nhỏ có thể tiến hành song song. Thường thì các công việc nhỏ này cần hợp tác với nhau để cùng hoàn thành tác vụ ban đầu, ví dụ dữ liệu kết xuất của tiến trình này lại là dữ liệu nhập cho tiến trình khác. Trong các trường hợp đó, hệ điều hành cần cung cấp cơ chế để các tiến trình có thể trao đổi thông tin với nhau.
Socket
- Sockets được định nghĩa là một điểm cuối giao tiếp, được xác định bởi địa chỉ IP và số hiệu cổng.
- Là một phương pháp dùng để giao tiếp giữa các tiến trình khác nhau trong mạng máy tính hay là trên một máy đơn.
- Socket là một trong những phương thức giao tiếp giữa các quá trình (inter-process communication) như pipe , message queue .... Giả sử ta muốn thiết kế một hệ thống trao đổi file.
- Hệ thống này hoạt động như sau : Tất cả dữ liệu được lưu trữ trên một máy chủ mạnh để bảo đảm an toàn và dễ quản lý Giao tiếp socket giúp chúng ta hiện thực mô hình client / server dễ dàng hơn.
VD:A muốn đến nhà B thì trước tiên phải mở cửa đi ra ngoài. Sau đó A đi bộ đến nhà B. Bằng cách nào để đến nhà B không quan tâm phải đi như thế nào.Khi đến nhà B thì A phải bấm chuông để B ra mở cửa. Qúa trình kết nối giữa 2 ứng dụng trên mạng cũng giống như vậy.Client mở một Sockets"Cái cửa' sau đó nó nhờ các lớp mạng tạo ra kết nối tới Server(không quan tâm là kết nối thế nào). Tiếp theo Server cũng tạo ra một sockets khác có địa chỉ "cái cửa thứ 2, nhưng có chuông, số nhà hẻn hoi". Khi có kết nối đúng tới Server dựa vào thông tin trên sockets của server(giống như client tìm đúng số nhà, bấm chuông...) Thì server sẽ mở cổng ra và client/server sẽ bắt đầu trao đổi dữ liệu.
Các thuộc tính của socket:
- Domaine: định nghĩa dạng thức địa chỉ và các nghi thức sử dụng. Có nhiều domaines, ví dụ UNIX, INTERNET, XEROX_NS, ...
- Type: định nghĩa các đặc điểm liên lạc:
a) Sự tin cậy
b) Sự bảo toàn thứ tự dữ liệu
c) Lặp lại dữ liệu
d) Chế độ nối kết
e) Bảo toàn giới hạn thông điệp
f) Khả năng gởi thông điệp khẩn
Để thực hiện liên lạc bằng socket, cần tiến hành các thao tác ::
- Tạo lập hay mở một socket
- Gắn kết một socket với một địa chỉ
- Liên lạc : có hai kiểu liên lạc tùy thuộc vào chế độ nối kết:
a) Liên lạc trong chế độ không liên kết : liên lạc theo hình thức hộp thư:
- hai tiến trình liên lạc với nhau không kết nối trực tiếp
- mỗi thông điệp phải kèm theo địa chỉ người nhận.
Hình thức liên lạc này có đặc điểm được :
- người gởi không chắc chắn thông điệp của học được gởi đến người nhận,
- một thông điệp có thể được gởi nhiều lần,
- hai thông điệp đượ gởi theo một thứ tự nào đó có thể đến tay người nhận theo một thứ tự khác.
Một tiến trình sau khi đã mở một socket có thể sử dụng nó để liên lạc với nhiều tiến trình khác nhau nhờ sử hai primitive send và receive.
b) Liên lạc trong chế độ nối kết:
Một liên kết được thành lập giữa hai tiến trình. Trước khi mối liên kết này được thiết lập, một trong hai tiến trình phải đợi có một tiến trình khác yêu cầu kết nối.Có thể sử dụng socket để liên lạc theo mô hình client-serveur. Trong mô hình này, server sử dụng lời gọi hệ thống listen và accept để nối kết với client, sau đó , client và server có thể trao đổi thông tin bằng cách sử dụng các primitive send và receive.
- Hủy một socket
Ví dụ :
Trong nghi thức truyền thông TCP, mỗi mối nối giữa hai máy tính được xác định bởi một port, khái niệm port ở đây không phải là một cổng giao tiếp trên thiết bị vật lý mà chỉ là một khái niệm logic trong cách nhìn của người lập trình, mỗi port được tương ứng với một số nguyên dương.
Hình 3.4 Các socket và port trong mối nối TCP.
Hình 3.4 minh họa một cách giao tiếp giữa hai máy tính trong nghi thức truyền thông TCP. Máy A tạo ra một socket và kết buộc (bind) socket nầy với một port X (tức là một số nguyên dương có ý nghĩa cục bộ trong máy A), trong khi đó máy B tạo một socket khác và móc vào (connect) port X trong máy A.
Cơ chế socket có thể sử dụng để chuẩn hoá mối liên lạc giữa các tiến trình vốn không liên hệ với nhau, và có thể hoạt động trong những hệ thống khác nhau.
truongsi93(I11C)- Tổng số bài gửi : 33
Join date : 30/08/2011
Age : 38
Đến từ : Quảng Nam
Similar topics
» Liên lạc giữa các tiến trình qua Sockets trong hệ thống khách chủ?
» Thảo luận Bài 4
» Tổ chức liên lạc giứa các tiến trình qua sockets trong hệ thống khách chủ (Communications in Client-Server). Phân biệt giao thức TCP với UDP:
» Thảo luận Bài 4
» Thảo luận Bài 4
» Thảo luận Bài 4
» Tổ chức liên lạc giứa các tiến trình qua sockets trong hệ thống khách chủ (Communications in Client-Server). Phân biệt giao thức TCP với UDP:
» Thảo luận Bài 4
» Thảo luận Bài 4
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết