0

Proxy hoạt động ở tầng nào trong mô hình TCP/IP? HTTP Proxy Và SOCKS5 nằm ở đâu?

Proxy hoạt động ở tầng nào? Sau khi đã đi qua các tầng mạng như Physical Layer, Data Link Layer, Internet Layer, Transport Layer và Application Layer, ta có thể nhìn Proxy rõ hơn rất nhiều.

Lúc này, Poxy không còn là một khái niệm mơ hồ kiểu “công cụ đổi IP, Ứng dụng đổi IP toàn máy..”. Về kỹ thuật, Proxy là một thành phần trung gian nằm giữa client và server. Nó có thể chỉ chuyển tiếp kết nối, nhưng cũng có thể đọc request, xử lý header, áp dụng rule, cache dữ liệu hoặc kiểm soát truy cập.

Vì vậy, câu hỏi Proxy hoạt động ở tầng nào không nên được trả lời bằng một câu duy nhất như “Proxy nằm ở tầng 7” hoặc “Proxy nằm ở tầng 4”. image.png

Câu trả lời đúng hơn là:

Proxy hoạt động ở tầng nào phụ thuộc vào loại Proxy và mức dữ liệu mà Proxy xử lý. Nếu Proxy hiểu HTTP request, đọc header, xử lý domain, URL hoặc response, nó thường được xếp vào Application Layer / Layer 7. Nếu Proxy chỉ chuyển tiếp kết nối TCP hoặc UDP dựa trên IP và port, nó thường được giải thích gần hơn với Transport Layer / Layer 4. Bài viết này THUECLOUD sẽ giúp bạn hiểu Proxy nằm ở đâu trong mô hình OSI và TCP/IP, từ HTTP Proxy, SOCKS Proxy cho đến Layer 4 Proxy và Layer 7 Proxy.

Proxy là gì trong mạng máy tính?

Proxy là một máy chủ hoặc dịch vụ trung gian đứng giữa client và server đích.

Thay vì client gửi request trực tiếp đến server, client gửi request đến Proxy. Proxy sau đó xử lý hoặc chuyển tiếp request đến server đích. Khi server phản hồi, response cũng đi ngược lại qua Proxy trước khi về client.

Mô hình đơn giản:

Client → Proxy → Server Client ← Proxy ← Server

Trong thực tế, Proxy có thể được dùng cho nhiều mục đích khác nhau. Nó có thể kiểm soát truy cập, lọc nội dung, ghi log, cache response, chuyển tiếp request hoặc bảo vệ server thật phía sau.

Nhưng điểm quan trọng nhất là:

Proxy không chỉ là “đổi IP”. Proxy là một điểm trung gian có thể tham gia vào quá trình xử lý hoặc chuyển tiếp dữ liệu giữa client và server.

Ví dụ, khi trình duyệt dùng HTTP Proxy để truy cập website, request từ trình duyệt không đi thẳng đến website. Nó đi đến Proxy trước. Proxy có thể đọc thông tin request, biết client muốn truy cập domain nào, sau đó mới chuyển tiếp request đến server đích.

Ở trường hợp khác, một SOCKS Proxy có thể không cần hiểu HTTP. Nó chỉ nhận yêu cầu tạo kết nối đến một host và port nào đó, rồi chuyển tiếp dữ liệu qua kết nối đó.

Hai trường hợp này đều gọi là Proxy, nhưng mức xử lý dữ liệu không giống nhau. Đây chính là điểm khiến câu hỏi Proxy hoạt động ở tầng nào cần được phân tích kỹ.

Proxy nằm ở đâu trong mô hình TCP/IP? Trong mô hình TCP/IP 5 tầng, Proxy thường được giải thích ở Application Layer nếu nó xử lý các giao thức ứng dụng như HTTP, HTTPS, API hoặc request/response.

Mạch tầng mạng có thể nhìn lại như sau:

Physical Layer: tín hiệu Data Link Layer: frame Internet Layer: IP packet Transport Layer: TCP/UDP + port Application Layer: HTTP, HTTPS, DNS, API, Proxy Với HTTP Proxy, client gửi request đến Proxy. Proxy hiểu request đó, đọc một số thông tin ở tầng ứng dụng và quyết định xử lý tiếp. Đây là lý do HTTP Proxy thường được xếp vào Application Layer.

Nhưng nếu một hệ thống chỉ chuyển tiếp kết nối TCP từ client đến server, không đọc HTTP, không biết URL, không xử lý header, thì nó gần hơn với Transport Layer.

Ví dụ, một TCP Proxy có thể chỉ biết:

Client IP Client port Destination IP Destination port TCP connection Nó không cần biết nội dung bên trong là HTTP, database protocol hay giao thức ứng dụng nào khác.

Vì vậy, trong TCP/IP có thể nói:

HTTP Proxy thường nằm ở Application Layer. TCP Proxy hoặc Layer 4 Proxy thường được giải thích gần với Transport Layer.

Đây là cách hiểu đúng và đủ hơn cho người học mạng.

HTTP Proxy hoạt động ở tầng nào?

HTTP Proxy thường hoạt động ở Application Layer / Layer 7 vì nó hiểu giao thức HTTP.

Đây là loại Proxy quen thuộc khi nói về web traffic. Khi trình duyệt hoặc ứng dụng gửi request qua HTTP Proxy, Proxy có thể đọc cấu trúc của HTTP request.

HTTP Proxy có thể nhìn thấy các thông tin như:

HTTP method URL Host header Request header Response header Status code Cache-Control User-Agent Ví dụ đơn giản:

Browser → HTTP Proxy → Website

Khi browser gửi request đến HTTP Proxy, Proxy có thể biết client muốn truy cập tài nguyên nào. Tùy cấu hình, Proxy có thể chuyển tiếp request, chặn request, ghi log, cache nội dung hoặc áp dụng rule kiểm soát truy cập.

Đây là lý do HTTP Proxy nên được hiểu trong phạm vi Application Layer. Nó không chỉ chuyển tiếp byte một cách mù mờ. Nó hiểu HTTP ở mức ứng dụng.

Ví dụ, nếu một doanh nghiệp muốn chặn một số domain, cache một số tài nguyên web hoặc ghi log truy cập web của người dùng, HTTP Proxy có thể tham gia xử lý ở Layer 7. image.png

SOCKS Proxy hoạt động ở tầng nào? SOCKS Proxy khác HTTP Proxy ở chỗ nó không chỉ dành riêng cho HTTP. Mà SOCKS có thể chuyển tiếp nhiều loại traffic khác nhau. Thay vì hiểu HTTP request, SOCKS Proxy chủ yếu nhận yêu cầu tạo kết nối đến một địa chỉ và port, sau đó chuyển tiếp dữ liệu giữa client và server.

SOCKS Proxy thường được xem là gần với Transport Layer / Layer 4 hơn HTTP Proxy, vì nó tập trung vào kết nối thay vì phân tích nội dung ứng dụng.

Với SOCKS5, Proxy có thể hỗ trợ TCP và trong một số trường hợp có thể hỗ trợ UDP. Điều này làm SOCKS linh hoạt hơn HTTP Proxy trong nhiều tình huống.

So sánh ngắn:

HTTP Proxy SOCKS Proxy Hiểu HTTP Không chỉ dành cho HTTP Thường Layer 7 Gần Layer 4 hơn Có thể đọc header, URL Chủ yếu chuyển tiếp kết nối Phù hợp web traffic Linh hoạt với nhiều ứng dụng Xử lý request/response HTTP Xử lý luồng kết nối Nếu HTTP Proxy giống một người trung gian hiểu nội dung thư HTTP, thì SOCKS Proxy giống một cổng trung gian chuyển kết nối đến đúng nơi được yêu cầu.

Vì vậy, khi tìm hiểu chuyên sâu về SOCKS Proxy là gì, bạn nên nhấn mạnh rằng SOCKS không hiểu HTTP theo cách HTTP Proxy hiểu. Nó linh hoạt hơn nhưng ít “hiểu nội dung ứng dụng” hơn.

Proxy hoạt động ở tầng nào trong mô hình OSI? Trong mô hình OSI, Proxy có thể liên quan đến nhiều tầng tùy cách nó hoạt động.

Nếu Proxy đọc và xử lý dữ liệu ứng dụng, nó thường nằm ở Layer 7 — Application Layer.

Ví dụ, một HTTP Proxy có thể hiểu HTTP method, Host header, URL, request header, response header hoặc status code. Nó có thể quyết định cho phép, chặn, cache hoặc chuyển tiếp request dựa trên nội dung ứng dụng.

Đây là hành vi rất rõ của Layer 7.

Nhưng nếu Proxy chỉ chuyển tiếp kết nối TCP dựa trên IP và port, nó không nhất thiết hiểu HTTP request bên trong. Khi đó, nó thường được giải thích gần hơn với Layer 4 — Transport Layer.

Có thể hiểu nhanh như sau:

Cách Proxy xử lý dữ liệu Tầng thường liên quan Đọc HTTP request, URL, header, cookie Layer 7 / Application Layer Chuyển tiếp TCP theo IP và port Layer 4 / Transport Layer Xử lý packet theo IP Layer 3 / Network Layer Chuyển frame trong LAN Layer 2 / Data Link Layer Tuy nhiên, Proxy thường không được xem là thiết bị Layer 2 hoặc Layer 3 theo nghĩa cơ bản. Khi nói đến Proxy trong thực tế, người ta chủ yếu nói đến Layer 4 và Layer 7.

Câu dễ nhớ là:

Layer 4 Proxy chuyển kết nối.

Layer 7 Proxy hiểu request.

Vì vậy, câu trả lời chính xác không phải là “Proxy nằm ở tầng mấy?” mà là:

Proxy đó đang xử lý dữ liệu ở mức nào?

Forward Proxy và Reverse Proxy nằm ở tầng nào? Forward Proxy và Reverse Proxy không phải là tên tầng mạng. Chúng mô tả vị trí và vai trò của Proxy trong kiến trúc.

Forward Proxy đứng về phía client. Client chủ động cấu hình hoặc sử dụng Forward Proxy để truy cập Internet thông qua Proxy.

Mô hình:

Client → Forward Proxy → Internet

Forward Proxy thường được dùng để kiểm soát truy cập, ghi log, lọc nội dung, cache hoặc thay đổi IP nhìn từ phía server đích.

Ví dụ, trong một công ty, máy người dùng có thể truy cập web thông qua Forward Proxy để hệ thống kiểm soát website nào được phép truy cập.

Reverse Proxy đứng về phía server. Client không truy cập trực tiếp backend server, mà truy cập Reverse Proxy. Reverse Proxy sau đó chuyển request đến server thật phía sau.

Mô hình:

Client → Reverse Proxy → Web Server

Reverse Proxy thường được dùng để cân bằng tải, bảo vệ backend, terminate TLS, cache nội dung hoặc routing request theo domain/path.

Ví dụ, một Reverse Proxy có thể nhận request đến example.com, sau đó chuyển /api đến API server và /images đến server lưu ảnh.

Về tầng hoạt động, cả Forward Proxy và Reverse Proxy đều có thể là Layer 7 nếu chúng hiểu HTTP/HTTPS request. Nhưng cũng có thể có triển khai gần Layer 4 nếu chỉ chuyển tiếp TCP.

Câu quan trọng là:

Forward hay Reverse mô tả Proxy đứng ở phía client hay phía server. Layer 4 hay Layer 7 mô tả Proxy xử lý dữ liệu ở mức nào. Đây là điểm nhiều người học Proxy hay nhầm. image.png Proxy khác NAT, VPN và Load Balancer như thế nào? Proxy thường bị nhầm với NAT, VPN hoặc Load Balancer vì tất cả đều có thể đứng giữa đường đi của traffic. Nhưng mục đích kỹ thuật của chúng không giống nhau.

Proxy là trung gian xử lý hoặc chuyển tiếp request/kết nối giữa client và server. Tùy loại, Proxy có thể hiểu nội dung ứng dụng hoặc chỉ chuyển tiếp kết nối.

NAT là cơ chế dịch địa chỉ IP. NAT thường giúp nhiều thiết bị trong mạng nội bộ dùng chung một IP public để truy cập Internet. NAT không nhất thiết hiểu HTTP request hay xử lý logic ứng dụng.

VPN tạo một đường hầm mã hóa giữa thiết bị và VPN server. Khi dùng VPN, traffic có thể được định tuyến qua tunnel. VPN thường thay đổi đường đi mạng ở phạm vi rộng hơn Proxy.

Load Balancer phân phối traffic đến nhiều server backend. Load Balancer có thể hoạt động ở Layer 4 hoặc Layer 7 tùy loại.

So sánh nhanh:

Công nghệ Vai trò chính Proxy Trung gian xử lý hoặc chuyển tiếp request NAT Dịch địa chỉ IP VPN Tạo tunnel mã hóa Load Balancer Phân phối traffic đến backend Một Reverse Proxy có thể kiêm luôn vai trò Load Balancer Layer 7. Một Load Balancer Layer 4 có thể giống Proxy ở mức kết nối. Nhưng không nên đánh đồng tất cả là một.

Proxy là một thành phần trung gian, nhưng không phải cứ đứng giữa traffic thì đều là Proxy theo cùng một nghĩa kỹ thuật.

Cuối cùng vì sao Proxy thường được nhắc nhiều ở Application Layer? Proxy thường được nhắc nhiều ở Application Layer vì các loại Proxy phổ biến nhất trong web thường xử lý HTTP hoặc HTTPS.

HTTP là giao thức tầng ứng dụng. Khi Proxy hiểu HTTP, đọc header, xử lý Host, kiểm tra URL hoặc cache response, nó đang làm việc với logic ứng dụng.

Ví dụ:

Client gửi HTTP request

→ Proxy đọc request

→ Proxy áp dụng rule

→ Proxy chuyển tiếp đến server

→ Server trả response

→ Proxy trả response về client

Ở đây, Proxy không chỉ chuyển dữ liệu như một ống dẫn. Nó có thể “hiểu” request và hành động dựa trên nội dung request.

Đây là lý do nhiều tài liệu nói Proxy nằm ở Layer 7.

Nhưng cần nhớ: đó là khi nói về HTTP Proxy, HTTPS Proxy có xử lý tầng ứng dụng, reverse proxy web hoặc các hệ thống Layer 7 Proxy. Không phải mọi Proxy đều xử lý sâu như vậy.

Kết luận Proxy hoạt động ở tầng nào phụ thuộc vào loại Proxy và mức dữ liệu mà Proxy xử lý.

Nếu Proxy hiểu HTTP request, xử lý header, phân tích domain, áp dụng rule, cache response hoặc routing theo nội dung ứng dụng, nó thường hoạt động ở Application Layer / Layer 7.

Nếu Proxy chỉ chuyển tiếp kết nối TCP/UDP dựa trên IP, port và trạng thái connection, nó thường được giải thích gần Transport Layer / Layer 4.

Điểm quan trọng nhất cần nhớ:

Layer 4: chuyển kết nối. Layer 7: hiểu request. HTTP Proxy và reverse proxy web thường thuộc Layer 7. SOCKS Proxy và TCP Proxy thường gần Layer 4 hơn, dù cách triển khai cụ thể có thể khác nhau.

Sau khi hiểu các tầng Physical Layer, Data Link Layer, Internet Layer, Transport và Application, Proxy không còn là một khái niệm đơn giản kiểu “đổi IP”. Nó là một thành phần trung gian có thể hoạt động ở nhiều mức khác nhau trong mô hình OSI và TCP/IP.

Vì vậy, khi đánh giá một Proxy, đừng chỉ hỏi nó tên là gì. Hãy hỏi nó xử lý dữ liệu ở mức nào: kết nối, port, hay request ứng dụng.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí