Mô hình ứng dụng mạng (client-server, p2p), tiến trình

Như tất cả chúng ta đã biết qua những bài trước, ứng dụng mạng là một mạng lưới hệ thống ứng dụng chạy trên những thiết bị đầu cuối khác nhau và trao đổi thông tin qua mạng máy tính .“ Hệ thống ” ở đây mang ý nghĩa rằng ứng dụng mạng gồm có nhiều thành phần phối hợp hoạt động giải trí với nhau trong một thể thống nhất. Sự phối hợp có được nhờ môi trường tự nhiên mạng ( được cho phép trao đổi thông tin ) và giao thức tiếp thị quảng cáo ( những quy tắc chi phối quy trình trao đổi thông tin ) .Ngoài những yếu tố trên, sự phối hợp trong mạng lưới hệ thống ứng dụng mạng còn biểu lộ ở sự thỏa thuận hợp tác về mặt trách nhiệm giữa những thành phần. Sự thỏa thuận hợp tác đó biểu lộ qua mô hình ( hay kiến trúc ) ứng dụng mạng .

Trong bài học này chúng ta tiếp tục đi sâu vào các vấn đề của ứng dụng mạng, bao gồm các mô hình của ứng dụng mạng (mô hình client – server, mô hình p2p) và truyền thông liên tiến trình trong ứng dụng mạng.

Mô hình ứng dụng mạng

Khi bắt tay vào thiết kế xây dựng một ứng dụng mạng, một trong những yếu tố tiên phong đặt ra chính là lựa chọn mô hình ( nhiều lúc cũng được gọi là kiến trúc ) cho ứng dụng mạng. Mặc dù ứng dụng mạng rất phong phú nhưng hoàn toàn có thể phân loại chúng vào 2 mô hình cơ bản theo phương pháp phân loại vai trò trách nhiệm của những thành phần : mô hình chủ-khách ( client-server ) và mô hình ngang hàng ( peer-to-peer, P2P ) .

Mô hình chủ – khách ( client – server )

Trong mô hình chủ-khách ứng dụng được chia làm hai thành phần : một thành phần chuyên ship hàng những nhu yếu gửi đến từ những thành phần khác, gọi là thành phần server ; một hoặc nhiều thành phần đưa ra nhu yếu sử dụng dịch vụ, gọi là thành phần client .Server và client chạy trên những thiết bị đầu cuối khác nhau khác nhau. Thiết bị đầu cuối nơi chạy chương trình server cũng thường được gọi tắt là sever ( trên sever vật lý đó cũng thường thiết lập nhiều chương trình server khác nhau ). Thiết bị đầu cuối nơi chạy chương trình client thường được gọi tắt là máy khách hay máy trạm .Mô hình client / serverMô hình client / serverMột số ứng dụng thông dụng sử dụng mô hình chủ-khách gồm có Web, FTP, Telnet, E-Mail .Ví dụ, mạng lưới hệ thống web gồm có một chương trình luôn hoạt động giải trí ( chương trình sever web ) trên một máy tính riêng có IP cố định và thắt chặt để chờ Giao hàng những truy vấn đến từ những chương trình trình duyệt ( browser ). Khi chương trình sever nhận được một truy vấn từ trình duyệt, nó sẽ giải quyết và xử lý và trả lại tài liệu mà trình duyệt nhu yếu. Các trình duyệt chỉ trao đổi thông tin với chương trình sever mà không tương tác trực tiếp với nhau. Quá trình trao đổi thông tin truy vấn / phản hồi giữa chương trình sever và trình duyệt được tương hỗ bởi giao thức Http .

Chế độ hoạt động

Trong mô hình này, server luôn hoạt động giải trí ( chính sách luôn mở ) để chờ ship hàng client. Chương trình server phải hoạt động giải trí trên máy có địa chỉ IP cố định và thắt chặt .Client hoàn toàn có thể hoạt động giải trí ở chính sách luôn mở ( always-on ) hoặc mở không liên tục ( sometimes-on ). Các client không tiếp xúc trực tiếp với nhau mà chỉ tiếp xúc với server. Chương trình client phải biết được địa chỉ IP của sever .Do chương trình server luôn hoạt động giải trí và chạy trên máy tính có IP cố định và thắt chặt và được công bố, chương trình khách hoàn toàn có thể liên lạc với sever bất kể khi nào cần sử dụng dịch vụ do chương trình sever phân phối .

Giao tiếp client – server

Việc tiếp xúc giữa client và server được thực thi dưới hình thức trao đổi những thông điệp ( message ) :

  • Client gửi thông điệp yêu cầu (request message) cho server để mô tả công việc cần thực hiện.
  • Khi nhận được thông điệp này, server sẽ phân tích và xác định công việc phải thực hiện.
  • Nếu quá trình xử lý sinh ra kết quả cần trả cho client thì server sẽ gửi cho client thông điệp trả lời (reply message).
  • Định dạng và ý nghĩa của các thông điệp trao đổi giữa client và server được quy định bởi giao thức dùng trong ứng dụng.

Thin client, Fat client

Trong mô hình chủ khách, tùy thuộc vào việc phân phố trách nhiệm giữa client và server, người ta phân loại làm hai loại client : fat client, và thin client .Trong mô hình sử dụng fat client, server hầu hết chịu nghĩa vụ và trách nhiệm truy vấn và tàng trữ thông tin. Mô hình này tạo ra ít lưu thông trên mạng do tài liệu được tàng trữ trong thời điểm tạm thời và đo lường và thống kê ở client nhưng nhu yếu thông số kỹ thuật máy khách cao hơn .Trong mô hình dùng thin client, client chỉ cần hiển thị và kiểm tra tính hợp lệ của tài liệu người dùng nhập vào. Mô hình này được cho phép tạo ra những client nhẹ và đơn thuần nhưng làm tăng lưu thông trên mạng do tài liệu phải chuyển qua lại liên tục giữa client và server .

Server và Data center

Thông thường trong ứng dụng client / server, một sever ( vật lý ) đơn lẻ thường không đủ năng lực Giao hàng toàn bộ truy vấn từ client. Ví dụ, một website mạng xã hội lớn sẽ rất nhanh bị quá tải nếu chỉ có một server Giao hàng .Vì nguyên do này người ta tạo ra những TT tài liệu ( data center ) chứa số lượng lớn máy ( vật lý ) để cùng tạo một server ( ảo ) đủ mạnh. Ví dụ, theo thống kê ( wikipedia ) Google có từ 30 đến 50 data center phân bổ khắp quốc tế vởi khoảng chừng hơn hai triệu sever để cùng ship hàng nhu yếu tìm kiếm, dịch vụ Gmail và YouTube. Mỗi data center chứa hàng trăm ngàn sever vật lý .

Mô hình ngang hàng

Trong kiến trúc ngang hàng ( còn gọi là kiến trúc peer-to-peer hay viết tắt là P2P ), tổng thể những thành phần của mạng lưới hệ thống đều triển khai những trách nhiệm giống nhau, không có người Giao hàng ( server ) chuyên biệt .Như vậy, trong ứng dụng P2P không có sự phụ thuộc vào ( hoặc phụ thuộc vào rất ít ) vào server. Mỗi ứng dụng chạy trên một máy gọi là peer. Ứng dụng trên mỗi đôi máy ( những peer ) trực tiếp thực thi tiếp thị quảng cáo với nhau mà không phải trải qua một server trung gian nào. Vì nguyên do này mô hình được gọi là peer-to-peer. Các peer này không do những nhà sản xuất dịch vụ quản trị mà thực ra là những máy tính cá thể do người dùng quản trị .Hiện nay những ứng dụng yên cầu lưu lượng tài liệu lớn thường hoạt động giải trí theo mô hình P2P : ứng dụng phân phối file ( BitTorrent, µTorrent ), ứng dụng san sẻ file ( eMule, LimeWire ), điện thoại cảm ứng Internet ( Skype ), truyền hình IP ( PPLive ) .Mô hình peer-to-peerMô hình peer-to-peer

Ưu điểm của P2P

Một trong những ưu điểm của kiến trúc P2P là năng lực lan rộng ra .Ví dụ, trong ứng dụng san sẻ file P2P, mặc dầu mỗi peer trong khi nhu yếu file tự tạo ra một khối lượng việc làm cho mình, mỗi peer đồng thời bổ trợ năng lực ship hàng của mình cho mạng lưới hệ thống bằng cách phân phối lại file cho những peer khác .Kiến trúc P2P cũng có lợi thế về giá tiền vì nó không yên cầu hạ tầng về sever và băng thông .

Nhược điểm của P2P

Ứng dụng P2P cũng gặp những khó khăn nhất định.

Thứ nhất, những nhà sản xuất dịch vụ Internet ( ISP ) cho hộ mái ấm gia đình thường để vận tốc tải xuống lớn hơn vận tốc tải lên. Trong khi đó, dịch vụ phát video ( streaming ) hoặc phân phối file P2P đều yên cầu vận tốc tải lên cao. Từ đó, ISP địa phương phải chịu áp lực đè nén lớn về băng thông. Người ta gọi đây là thực trạng “ không thân thiện ” giữa ứng dụng P2P và ISP .Thứ hai, do thực chất mở và phân tán, ứng dụng P2P có hạn chế về tính bảo đảm an toàn và bảo mật thông tin. Ngoài ra, ứng dụng P2P cũng thuận tiện tương quan tới những yếu tố vi phạm bản quyền vì tài liệu san sẻ không bị trấn áp .Vấn đề thứ ba là sự thành công xuất sắc của ứng dụng P2P nhờ vào vào năng lực “ thuyết phục ” người dùng tham gia vào mạng lưới ứng dụng P2P. Khi tham gia, người dùng sẽ phải “ tự nguyện ” phân phối tài nguyên của máy tính cá thể cho ứng dụng như băng thông, tàng trữ, CPU. Ví dụ, khi tham gia vào mạng lưới hệ thống san sẻ file P2P, mỗi ứng dụng trên máy tính cá thể đều phải chiếm hữu thêm băng thông, ổ cứng, thời hạn giải quyết và xử lý của CPU và cung ứng tài nguyên này cho mạng lưới hệ thống cùng sử dụng .Ngoài hai mô hình trên, lúc bấy giờ một số ít ứng dụng sử dụng kiến trúc lai, tích hợp cả mô hình chủ-khách và mô hình P2P. Ví dụ, trong nhiều ứng dụng gửi tin nhắn tức thời, server chỉ dùng để theo dõi địa chỉ IP của người dùng, còn tin nhắn giữa người dùng được truyền trực tiếp giữa những máy khách mà không đi qua sever .

Tiến trình

Khi một chương trình được tải vào bộ nhớ và mở màn triển khai cách lệnh của mình, nó được gọi là một tiến trình ( process ). Như vậy, một ứng dụng mạng ( khi hoạt động giải trí ) sẽ gồm có tối thiểu hai tiến trình ( process ) hoạt động giải trí trên hai thiết bị đầu cuối khác nhau. Các tiến trình này trao đổi những thông điệp qua mạng. Việc trao đổi thông tin này được gọi là truyền thông online liên tiến trình .Ví dụ, Trong mạng lưới hệ thống web, tiến trình chạy trên máy khách ( tiến trình của browser ) trao đổi với tiến trình của sever web ; trong mạng lưới hệ thống san sẻ file P2P, file được truyền từ một tiến trình trên một peer ( một máy tính ) tới một tiến trình trên một peer khác .

Tiến trình chủ, tiến trình khách

Với mỗi cặp tiến trình như vậy, tất cả chúng ta thường gọi một tiến trình là tiến trình chủ ( server process, server ) và tiến trình còn lại là tiến trình khách ( client process, client ) .Ví dụ, trong ứng dụng web, trình duyệt là tiến trình khách còn web server là tiến trình chủ. Trong ứng dụng san sẻ P2P, peer tải file về được coi là tiến trình khách, còn peer tải file lên được gọi là tiến trình chủ .Trong khoanh vùng phạm vi của phiên tiếp thị quảng cáo giữa một cặp tiến trình, tiến trình nào khởi tạo quy trình tiếp thị quảng cáo được gọi là tiến trình khách, tiến trình nào chờ để được liên lạc thì gọi là tiến trình chủ .Chúng ta hoàn toàn có thể thấy như trong ứng dụng san sẻ P2P, một tiến trình hoàn toàn có thể là chủ, cũng hoàn toàn có thể là khách ( chú ý quan tâm, trong mô hình P2P những tiến trình tham gia vào truyền thông online chỉ phân loại chủ khách trong khoanh vùng phạm vi của phiên truyền thông online ) .Quá trình tiếp xúc giữa tiến trình chủ và khách hoàn toàn có thể diễn ra theo chính sách : chính sách nghẽn ( blocking ), chính sách không nghẽn ( non-blocking ) .Trong chính sách nghẽn, khi tiến trình khách hoặc chủ phát ra lệnh gửi tài liệu, tiến trình sẽ bị tạm dừng cho đến khi tiến trình nhận phát ra lệnh nhận tài liệu. Tương tự, khi tiến trình phát ra lệnh nhận tài liệu mà chưa có tài liệu gửi đến, tiến trình sẽ bị tạm dừng cho đến khi có tài liệu tới .Ở chính sách không nghẽn, khi tiến trình chủ hoặc khách phát ra lệnh gửi tài liệu, sự thực thi của nó vẫn liên tục, không chăm sóc tới việc có tiến trình nào phát ra lệnh nhận tài liệu đó hay không .

Đánh địa chỉ tiến trình

Các loại địa chỉ

Các tiến trình nếu tham gia vào quy trình tiếp thị quảng cáo mạng bắt buộc phải lựa chọn một trong hai giao thức của tầng giao vận làm công cụ truyền thông tin liên tiến trình. Các giao thức tầng giao vận, đến lượt mình, phải “ trông cậy ” vào giao thức IP để hoàn toàn có thể truyền những gói tin của mình đến máy đầu cuối. Tại máy nhận, những gói tin IP được ghép nối và chuyển lên tầng giao vận, sau đó chuyển đến cho tiến trình đang chờ nhận thông tin .Để quy trình tiếp thị quảng cáo phức tạp này hoàn toàn có thể triển khai, những thành phần tham gia cần được đánh địa chỉ để hoàn toàn có thể xác lập được đích đến của những gói tin. Việc đánh địa chỉ này gồm có hai phần : địa chỉ máy và địa chỉ tiến trình .Địa chỉ của mỗi máy tham gia vào mạng truyền thông online sử dụng bộ giao thức TCP / IP được gọi là địa chỉ IP. Địa chỉ này xác lập duy nhất một máy trên liên mạng và là điều kiện kèm theo để giao thức IP hoạt động giải trí. Mỗi giao diện mạng khi tham gia vào quy trình tiếp thị quảng cáo đều được gán một địa chỉ IP .Trên một máy tính thường thì có nhiều tiến trình cùng hoạt động giải trí. Mỗi khi những gói tin đến đích cần một chính sách để hoàn toàn có thể phân biệt gói tin đó cần gửi đến cho tiến trình nào. Do đó, mỗi tiến trình khi tham gia vào quy trình tiếp thị quảng cáo được gán một địa chỉ riêng, gọi là số cổng ( port number ) .

Số cổng

Cổng ( Port ) là một số ít bất kể nằm trong khoảng chừng từ 0 đến 65535. Các tiến trình hoàn toàn có thể chọn ngẫu nhiên bất kể giá trị số cổng nào, miễn là giá trị đó chưa được sử dụng cho tiến trình khác .Các tiến trình tham gia vào quy trình truyền thông online phải thỏa thuận hợp tác được với nhau về giá trị cổng. Các giá trị cổng nguồn ( tiến trình gửi ) và cổng đích ( tiến trình nhận ) đều được gửi đi kèm gói tin TCP ( hoặc UDP ) để những máy hoàn toàn có thể xác lập được cần chuyển gói tin đến cho tiến trình nào .Tổ hợp của địa chỉ IP và số cổng hoàn toàn có thể đại diện thay mặt cho một tiến trình trong mạng truyền thông online và được gọi là địa chỉ của tiến trình. Cấu trúc địa chỉ này như sau : địa_chỉ_IP : số_cổng .

Ví dụ, 192.168.1.10:80 là địa chỉ đại diện cho một tiến trình chạy trên máy có địa chỉ IP 192.18.1.10 và chiếm cổng 80. Thực tế, có thể xác định đây là địa chỉ của một chương trình máy chủ web sử dụng giao thức HTTP.

Cổng dành riêng

Mặc dù giá trị số cổng hoàn toàn có thể gán ngẫu nhiên cho những tiến trình, 1 số ít ứng dụng mạng luôn chiếm một cổng cố định và thắt chặt. Ví dụ, chương trình sever web khi chạy luôn chiếm cổng 80, chương trình sever FTP chiếm cổng 20, 21. Đây là những ứng dụng mạng thông dụng đi kèm với giao thức tầng ứng dụng của riêng chúng .Giá trị cổng mà những chương trình này chiếm hữu được lao lý trong những bảng đặc tả của giao thức. Các số cổng từ 0 đến 1023 thường được dùng cho những dịch vụ mạng lưới hệ thống hoặc những chương trình ứng dụng mạng phổ cập và thường được gọi là “ cổng nổi tiếng ” hoặc “ cổng mạng lưới hệ thống ” .Dưới đây là list 1 số ít cổng được “ chiếm hữu ” sẵn bởi những ứng dụng / giao thức mạng phổ cập : Số cổng Ứng dụng / Dịch vụ 20 FTP – Kênh dữ liệu 21 FTP – Kênh điều khiển 22 SSH Remote Login Protocol 23 Telnet 25 Simple Mail Transfer Protocol (SMTP) 53 Domain Name System (DNS) 80 HTTP 110 POP3 161 SNMP 443 HTTPS 546 DHCP Client 547 DHCP Server

5/5 - (1 vote)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments