Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> Kết Nối Mạng

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính

Bởi Cher Don

Tìm hiểu mô hình Kết nối hệ thống mở

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính

Tổng quan

Trong suốt loạt bài này, chúng ta sẽ giải quyết các vấn đề cơ bản như:
(Phần 1) DNS hoạt động như thế nào?
(Phần 2) Ngăn xếp mạng, Mô hình OSI [Bạn đang ở đây!]
(Phần 3) Phương thức và định dạng HTTP
(Phần 4) Nhận dạng khách hàng
(Phần 5) Xác thực cơ bản/tiêu hóa
(Phần 6) HTTPS hoạt động với SSL/TLS

Mô hình OSI

Mô hình kết nối hệ thống mở (OSI) là mô hình tiêu chuẩn hóa cho viễn thông trong hệ thống máy tính. Nó không quan tâm đến công nghệ cơ bản mà thay vào đó là các lớp liên quan đến giao tiếp. Hãy cùng chúng tôi khám phá các lớp khác nhau trong Mô hình OSI:

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính Mô hình OSI 5 lớp điển hình

1. Lớp ứng dụng

Lớp này cho phép các ứng dụng giao tiếp qua mạng sau khi kết nối đã được thiết lập, chẳng hạn như từ Trình duyệt Web (Ứng dụng) đến Máy chủ. Ví dụ về các giao thức trong lớp này bao gồm HTTP và TELNET.

Giao thức truyền siêu văn bản (HTTP)

Một bộ quy tắc để truyền tập tin qua Internet. Ví dụ:khi bạn nhập URL vào trình duyệt, trình duyệt sẽ gửi yêu cầu HTTP cho trang web. Sau đó, máy chủ sẽ trả về trang web cùng với tất cả các thành phần bên trong, chẳng hạn như hình ảnh, văn bản, video, phông chữ tạo kiểu, v.v.

2. Lớp vận chuyển

Lớp này chịu trách nhiệm truyền thông tin giữa các máy chủ. Ví dụ về các giao thức trong lớp này bao gồm TCP và UDP.

Giao thức điều khiển truyền dẫn (TCP)

Giao thức hướng kết nối phổ biến nhất. Nó xác định cách thiết lập và duy trì cuộc trò chuyện mạng. Nó chịu trách nhiệm thiết lập kết nối (được gọi là socket ) giữa máy khách và máy chủ theo kiểu bắt tay 3 bước.

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính

Người dùng yêu cầu dữ liệu sẽ gửi gói dữ liệu SYN đến máy chủ, yêu cầu đồng bộ hóa . Sau đó, máy chủ sẽ phản hồi bằng SYN-ACK cho người dùng, cho biết rằng nó đã được xác nhận gói dữ liệu và cũng muốn kết nối. Do đó, kết nối được thiết lập khi người dùng gửi ACK cuối cùng đến máy chủ.

TCP là phổ biến nhất do tính sang trọng của nó, trong đó nó có thể cung cấp những tính năng sau:

Giao tiếp hướng kết nối
Thiết lập giao thức bắt tay giữa các điểm cuối để đảm bảo kết nối trước khi dữ liệu được trao đổi và truyền dưới dạng luồng dữ liệu (gói dữ liệu).

Độ tin cậy
Sử dụng tổng kiểm tra, nó đảm bảo rằng các gói dữ liệu được truyền và nhận đều giống nhau. Nếu có gói bị thiếu/hỏng, nó sẽ yêu cầu truyền lại gói dữ liệu bằng cách gửi tin nhắn NACK tới người gửi.

Đặt hàng
Các gói dữ liệu được đánh số và truyền đi. Do đó, TCP sẽ đảm bảo rằng các gói nhận được sẽ được sắp xếp lại trước khi phân phối ứng dụng.

Kiểm soát luồng
Tốc độ truyền dữ liệu được điều chỉnh để nâng cao hiệu quả đồng thời ngăn chặn lỗi tràn/lỗi bộ đệm, trong đó dữ liệu được gửi nhanh hơn tốc độ mà người nhận có thể xử lý và ngược lại.
Cơ chế đằng sau nó được giải thích bên dưới trong phần Khởi động chậm TCP.

Ghép kênh
Về cơ bản, nó có thể gửi đồng thời nhiều luồng thông tin trên cùng một ổ cắm. Việc này được thực hiện thông qua các cổng khác nhau trên ổ cắm. Chúng ta sẽ thảo luận thêm về sự khác biệt giữa Ghép kênh và Đường ống trong bài viết.

Giao thức gói dữ liệu người dùng (UDP)

Tương tự như TCP nhưng nó là giao thức không có kết nối. Nó hoàn toàn trái ngược với TCP, khiến nó không đáng tin cậy và không có thứ tự. Các gói bị rơi sẽ không được truyền lại, gây ra lỗ hổng trong dữ liệu.

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính

Tuy nhiên, điều đó mang lại hiệu quả tốt nhất cho các ứng dụng nhạy cảm với thời gian, chẳng hạn như cuộc gọi thoại qua internet (VoIP). Điều này là do nó không yêu cầu bắt tay 3 bước trước khi truyền, khiến quá trình truyền tải diễn ra nhanh chóng. Ngoài ra, các gói dữ liệu bị rớt không phải là vấn đề trong VoIP vì tai con người rất giỏi trong việc xử lý các khoảng trống ngắn thường xảy ra với các gói bị rớt.

3. Lớp mạng

Lớp này chịu trách nhiệm cung cấp đường dẫn định tuyến dữ liệu cho các kết nối mạng. Về cơ bản, nó di chuyển các gói dữ liệu trên mạng theo đường dẫn hợp lý nhất.

Giao thức Internet (IP)

Xác định cấu trúc của các gói dữ liệu cũng như gắn nhãn cho nó bằng thông tin nguồn và đích.

Thông tin nguồn và đích ở dạng Địa chỉ IP, trong đó có thể ở dạng 104.16.121.127 (IPv4) hoặc 2001:db8:0:1234:0:567:8:1 (IPv6).

4. Lớp liên kết/vật lý

Lớp này là gốc của mô hình OSI, trong đó thông tin được truyền trong Mạng cục bộ (LAN) cho Lớp liên kết và tín hiệu vật lý như phương tiện điện, cơ học dưới dạng từ mã hoặc ký hiệu trong Lớp vật lý.

Hình dung các tuyến đường

Sử dụng tracert google.com , tuyến đường có thể được truy tìm từ phía máy khách (máy tính của bạn) đến máy chủ (google.com).

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính

Từ trên cao, bạn có thể thấy lộ trình bắt đầu từ thiết bị của tôi 192.168.1.254 tới bộ định tuyến 10.243.128.1 , trước khi chuyển qua Nhà cung cấp dịch vụ Internet (ISP) ở Bồ Đào Nha, v.v.

Các lớp bổ sung

Mô hình TCP/IP

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính TCP sẽ yêu cầu truyền lại các gói dữ liệu bị rơi và sắp xếp lại chúng

IP chỉ chịu trách nhiệm về cấu trúc của gói dữ liệu. Như vậy, nó sẽ không được sửa đổi nếu gói dữ liệu bị hỏng hoặc bị rớt. Đây là lúc TCP phát huy tác dụng, đánh số các gói dữ liệu trước khi gửi đến máy khách. Về phía khách hàng, TCP sẽ yêu cầu truyền lại các gói bị mất/hỏng, sau đó sắp xếp lại các gói dữ liệu.

Mô hình HTTP/TCP

Như chúng tôi đã đề cập trước đó, HTTP hiện có thể thực hiện các yêu cầu thông qua kết nối được thực hiện bởi TCP Handshake. Nhưng chúng bổ sung cho nhau như thế nào?

Kết nối liên tục HTTP
Điều này sẽ cho phép nhiều yêu cầu/phản hồi HTTP trên một kết nối TCP, thay vì mở một kết nối mới theo mỗi yêu cầu/phản hồi.

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính Phản hồi mẫu cho kết nối liên tục

Việc này được thực hiện thông qua Tiêu đề HTTP, trong đó Connection: Keep-Alive . Theo mặc định, kết nối sẽ chỉ đóng khi có phản hồi khác trong đó Connection: Close được gửi sau 30 giây không hoạt động.

TCP Khởi động chậm
Như đã đề cập trước đó, TCP hỗ trợ điều khiển luồng. Việc này được thực hiện thông qua TCP Slow Start, một hình thức ngăn ngừa tắc nghẽn mạng.

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính

Người gửi có cửa sổ tắc nghẽn (CWND) và người nhận có cửa sổ người nhận (RWND). Nếu dữ liệu lớn hơn cửa sổ tắc nghẽn/bộ thu thì sẽ có một bộ đệm bị thiếu/tràn tương ứng.

Để ngăn chặn điều đó, người gửi sẽ bắt đầu bằng cách gửi gói dữ liệu có cửa sổ tắc nghẽn nhỏ (CWND =1), để từ từ thăm dò người nhận để tìm cửa sổ người nhận.

Người nhận sẽ phản hồi bằng một xác nhận, nhắc người gửi nhân đôi gói dữ liệu mỗi lần cho đến khi không nhận được xác nhận nào. Tại thời điểm này, số lượng gói dữ liệu tối ưu đã được phát hiện, cho phép các thuật toán kiểm soát tắc nghẽn khác giữ kết nối ở tốc độ này.

Cùng nhau làm việc
Do đó, TCP Slow Start có thể tìm ra số lượng gói dữ liệu tối ưu để gửi trước khi đóng kết nối. Điều này sẽ cho phép lượng dữ liệu được gửi từ máy chủ đến máy khách được tối ưu hóa mà không có nguy cơ tràn bộ đệm (dữ liệu được gửi nhanh hơn mức có thể nhận được).

Các tính năng HTTP khác

Đường dẫn HTTP

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính

Tính năng này trong phiên bản HTTP/1.1 cho phép gửi nhiều yêu cầu cùng một lúc trên cùng một ổ cắm mà không cần chờ phản hồi. Tuy nhiên, nó đã được thay thế bằng TCP Multiplexing trong phiên bản HTTP/2 mới hơn.

Điểm khác biệt chính là mặc dù cả hai đều cho phép thực hiện nhiều yêu cầu cùng một lúc trên cùng một ổ cắm, nhưng Pipeline vẫn yêu cầu gửi phản hồi theo thứ tự. Có nghĩa là nếu mặt hàng được yêu cầu theo thứ tự (A, B, C) thì khách hàng sẽ không nhận được mặt hàng C nếu mặt hàng B chưa được giao đúng.

Trong Ghép kênh, thứ tự không quan trọng. Điều này sẽ cho phép thời gian giao hàng nhanh hơn.

Các phương thức này được sử dụng tốt nhất cho phương thức idempotent, là các phương thức phản hồi độc lập với số lần được yêu cầu — ví dụ:yêu cầu một trang web nhiều lần sẽ phản hồi cho cùng một trang web.

Kết nối song song

Bạn đã bao giờ mở một trang web và thấy nhiều thành phần của trang web (thanh video, hình thu nhỏ, nút) tải cùng lúc chưa?

Nguyên tắc cơ bản về HTTP:Hướng dẫn toàn diện về viễn thông trong hệ thống máy tính _Nhiều thành phần tải đồng thời | Hình ảnh được cung cấp bởi [Cloudflare Mobile SDK](https://www.cloudflare.com/products/mobile-sdk/" rel="noopener" target="blank" title=")

Điều này có thể thực hiện được nhờ Kết nối song song, trong đó có nhiều Kết nối TCP được thiết lập cùng lúc, cho phép các thành phần này tải đồng thời thay vì tải lần lượt.

Tuy nhiên, mặc dù nó có vẻ tải nhanh hơn nhưng nó có thể bị hạn chế do băng thông hạn chế của máy khách. Nếu tất cả các Kết nối song song đang cạnh tranh vì băng thông giới hạn thì mỗi thành phần sẽ tải chậm hơn tương ứng, dẫn đến không có lợi thế về tổng tốc độ tải.

Kết luận

Với Mô hình OSI, chúng ta có thể dễ dàng hiểu được bức tranh toàn cảnh về mạng và cách chúng tương tác với nhau từ phần cứng đến phần mềm.

Nói chung, nó là một công cụ giảng dạy tuyệt vời cũng như một tài liệu tham khảo để khắc phục sự cố. Mô hình này cũng hữu ích cho thiết kế vì nó nghiên cứu các chức năng ở mọi lớp, buộc người ta phải suy ngẫm về từng lớp thiết kế.

Những gì tôi đã trải qua cho đến nay là Mô hình 5 lớp OSI, ngoài ra còn có Mô hình 7 lớp OSI cũng liên quan đến Nhận dạng, Xác thực và Mã hóa dữ liệu.

Đây là Phần 2 của Chuỗi bài Giới thiệu về HTTP. Bạn có thể đọc bài viết đầu tiên về tầm quan trọng của Máy chủ DNS trong Phần 1. Hãy cùng khám phá cấu trúc của Yêu cầu HTTP tiếp theo trong Phần 3!

Xin chào! Tôi là Cher Don, hiện đang theo học chuyên ngành Khoa học dữ liệu. Tôi là CTO của Paralegal Bot và bạn có thể tìm thấy trang web của tôi bên dưới. Cảm ơn đã đọc!

Kích thích;
_Nội dung chất lượng Chúng tôi cung cấp nội dung tốt nhất cho các khái niệm khó nắm bắt. Chúng tôi đã ở đó và bạn cũng cảm thấy như vậy…_www.piqued.co

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu