- vừa được xem lúc

System Design - Networking and Architecture

0 0 21

Người đăng: Thái Thanh Hải

Theo Viblo Asia

Trong bài viết này chúng ta sẽ đi tìm hiểu về các thành phần của hệ thống mạng máy tính và mô hình kiến trúc client-server

1. Networking

1.1. Giao thức (Protocols)

Giao thức là tập hợp các quy tắc xác định các tương tác giữa hai hay nhiều nút trong bất mạng máy tính nào.

Một số ví dụ về giao thức mạng:

  • IP/TCP
  • HTTP/HTTPS
  • POP
  • SMTP

1.2. Địa chỉ IP

IP là viết tắt của Internet protocols và trong mô hình Client-Server thì client tương tác với server với thông qua địa chỉ IP để gửi bất kỳ thông tin nào trong gói IP (IP packet).

Headers: chứa meta data về IP packet, nó có địa chỉ IP nguồn và địa chỉ IP đích một điều quan trọng cho việc truyền dữ liệu. Nó cũng có tổng kích thước của gói và phiên bản của giao thức Internet (IPV4 hoặc IPV6). Nó có độ dài khoảng 20-60 bytes.

IP packet: có kích thước nhỏ (~2^16), được đặt ngược lại trong trường hợp truyền thông báo vì sẽ phải gửi nhiều gói IP để liên lạc với một thông báo duy nhất. Vì nhiều gói IP được gửi trong kênh liên lạc, nên có thể tất cả các gói không được nhận và một số gói dữ liệu IP có thể bị mất trong quá trình truyền. Cũng có thể các gói đó không được nhận theo đúng thứ tự.

1.3. TCP

TCP chịu trách nhiệm về giao tiếp đáng tin cậy giữa các máy khác nhau, tức là, nó có thể kiểm soát việc truyền dữ liệu giữa các thiết bị. Nó thực hiện điều đó bằng cách thiết lập kết nối an toàn giữa các thiết bị bằng cách tạo một TCP HANDSHAKE giữa chúng. TCP Handshake là phân tích xác nhận giữa các máy sắp bắt đầu quá trình giao tiếp và đã phát triển kết nối giữa chúng bằng cách gửi và chấp nhận yêu cầu.

1.4. HTTP/HTTPS

HTTP/HTTPS (HyperText Transfer Protocol): giao thức này được sử dụng trên TCP/IP trong các hệ thống hiện đại để có được khả năng liên lạc mạnh mẽ giữa các hệ thống.

Để có được thông tin liên lạc giữa các hệ thống, client (máy khách) cần gửi yêu cầu đến server (máy chủ) mà nó muốn kết nối và thiết bị kia phản hồi với máy đầu tiên và kết nối được thiết lập.

HTTP đơn giản và có thể mở rộng, điều đó có nghĩa là con người có thể hiểu nó một cách dễ dàng và nó có thể dễ dàng mở rộng sang các chức năng mới mà không làm phiền nhiều đến client và server.

Mặc dù giao thức HTTP hoạt động ở tầng ứng dụng trên cổng 80, giao thức HTTPS an toàn hơn (Hypertext transfer protocol secure), chạy trên tần vận chuyển và giao tiếp qua cổng 443. Chính vì điều này mà nó có thể cung cấp khả năng bảo vệ chống lại bất kỳ các cuộc tấn công kết nối, miễn là các công cụ mã hóa được sử dụng.

1.5. SMTP

SMTP (Simple Mail Transfer Protocol): Ngày nay, email có lẽ là cơ sở quan trọng nhất trên web. Điều gì xảy ra khi người gửi muốn gửi email đến người nhận?

  • Đầu tiên, mail đi đến mail server của người gửi
  • Sau đó, mail được chuyển từ máy chủ của người gửi đến máy chủ của người nhận qua web
  • Cuối cùng, khi nhận được thư tại máy chủ của người nhận, thư sẽ được gửi tiếp đến người dùng
  • Quá trình được thực hiện hoàn tẩt với sự trợ giúp của Giao thức email - SMTP, POP và IMAP

Phần lớn các frameworks web sử dụng SMTP để di chuyển thư bắt đầu từ một ứng dụng khách rồi đến ứng dụng khách tiếp theo. SMTP được sử dụng để gửi thư và là một giao thức đẩy. SMTP là một giao thức đẩy, đẩy thư từ máy khách đến máy chủ thư của người nhận.

1.6. POP

POP(Post Office Protocol) hoặc IMAP(Internet MessageAccess Protocol) được sử dụng để khôi phục các email đó ở bên thu hoặc bên nhận.

  • SMTP là một giao thức đẩy, đẩy thư từ máy khách đến máy chủ thư của người nhận.
  • Hơn nữa, giao tiếp email cần một giao thức kéo khi thư được chuyển từ người nhận đến máy khách, tức là máy khách đang lấy thư từ máy chủ và POP, là một giao thức kéo, có thể lấy thư tại client-side.

2. Kiến trúc Client-Server

2.1. Mô hình Client-Server là như thế nào?

Mô hình Client-Server là nền tảng của Internet hiện đại. Nó đưa ra ý tưởng cơ bản về cách các máy tính giao tiếp với nhau. Hệ thống ngày nay được tạo ra với các máy khách và máy chủ tương tác với nhau bằng giao thức mạng và truyền dữ liệu từ nơi này sang nơi khác trong các gói dữ liệu.

Máy khách - là phía yêu cầu thông tin từ máy chủ, là một PC chẳng hạn, được trang bị để nhận dữ liệu hoặc sử dụng trợ giúp cụ thể từ (server).

Máy chủ - là một PC từ xa hoặc ở xa cung cấp dữ liệu (thông tin).

Trong mô hình client-server, khi máy tính nguồn gửi yêu cầu thông tin đến server, server sẽ xác nhận yêu cầu của client và chuyển các byte thông báo được đề cập lại cho client.

2.2. Mô hình Cleint-Server hoạt động ra sao?

Trình duyệt thực hiện truy vấn DNS (Hệ thống tên miền) (để tìm địa chỉ IP) và tìm ra địa chỉ IP của máy chủ, và chỉ sau đó trình duyệt mới có thể gửi tin nhắn đến server

Trình duyệt gửi một yêu cầu HTTP (với địa chỉ IP nguồn) tới địa chỉ IP (Server sẽ phản hồi địa chỉ IP nguồn được đề cập trong yêu cầu HTTP)

Trình duyệt phải chỉ định cổng mà nó muốn giao tiếp vì máy chủ có gần 16000 cổng khác nhau để giao tiếp

Nếu khách hàng muốn giao tiếp trên giao thức HTTP, cổng 80 được sử dụng

Serv cung cấp cho client thông tin mong muốn của nó

Sau đó, trình duyệt sẽ hiển thị HTML của trang web

Bình luận

Bài viết tương tự

- vừa được xem lúc

React hooks: Sự khác nhau giữa useMemo và useCallback

Thư viện React cung cấp 2 hook được build sẵn giúp chúng ta tối ưu hoá hiệu suất của app: useMemo và useCallback. Ở lần load đầu tiên, thoạt nhìn có vẻ như cách hoạt động của chúng khá giống nhau, vì

0 0 27

- vừa được xem lúc

6 tip hữu ích cho frontend có thể bạn chưa biết

Hôm nay mình sẽ chia sẻ một số tip hữu ích cho CSS, Html, Javascript. .

0 0 26

- vừa được xem lúc

Tổng quan về Active Directory trên Windows Server

I. Tổng quan:. 1) Active Directory là gì:. .

0 0 118

- vừa được xem lúc

Tổng hợp bài tập ôn thi ISTQB ADVANCED

❗ Học ISTQB advanced level để giúp bạn mở rộng thêm các kỹ năng mới trong test, có kinh nghiệm và chiến thuật thông minh trong test, chủ động xử lý các vấn đề trước khi nó xảy ra, test hiệu quả hơn. ✔

0 0 20

- vừa được xem lúc

DevTestOps xu hướng Tester nên biết

Khi nói đến chúng ta đều biết tới Manual testing và Automation testing. Ở hầu hết các quy trình sản xuất phần mềm, các Tester thường tham gia vào những công đoạn sau, làm hạn chế những hiệu quả mà Te

0 0 22

- vừa được xem lúc

Một số lưu ý trong automation test khi xác định elements

Khi thực hiện automation test trên web, các trường hợp thường gặp phải khi bắt element (các phần tử trên trang web) bao gồm:. 1.

0 0 21