TCP Proxy như một proxy ngược và một bộ cân bằng tải

Hướng dẫn, Tháng Năm-06-20225 phút đọc

Một proxy giao thức điều khiển truyền tải (TCP) hoạt động ở lớp TCP của mô hình Kết nối hệ thống mở (OSI). Máy chủ proxy TCP là proxy trung gian giữa máy khách và máy chủ đích.  Máy khách thiết lập kết nối với máy chủ proxy TCP, từ đó thiết lập kết nối với máy chủ đích. The TCP

Một proxy giao thức điều khiển truyền tải (TCP) hoạt động ở lớp TCP của mô hình Kết nối hệ thống mở (OSI). Máy chủ proxy TCP là proxy trung gian giữa máy khách và máy chủ đích. 

Máy khách thiết lập kết nối với máy chủ proxy TCP, từ đó thiết lập kết nối với máy chủ đích. Máy chủ proxy TCP hoạt động như cả máy chủ và máy khách để truy cập các dịch vụ hạn chế kết nối dựa trên địa chỉ mạng.

Một số trang web chỉ có thể truy cập từ các máy nội bộ và bạn nhận được thông báo lỗi truy cập bị từ chối khi bạn truy cập chúng từ nơi khác. Tuy nhiên, bạn có thể xem trang này từ trình duyệt web ở bất kỳ đâu trên internet bằng cách sử dụng proxy trên một trong các máy nội bộ.

Máy chủ web nghĩ rằng nó đang phục vụ dữ liệu cho một máy khách trên máy chạy proxy. Tuy nhiên, proxy chuyển tiếp dữ liệu ra khỏi mạng đến máy khách thực tế. 

Máy chủ proxy chấp nhận các kết nối từ nhiều máy khách và chuyển tiếp chúng bằng nhiều kết nối đến máy chủ. Máy khách hoặc máy chủ phải đọc hoặc ghi dữ liệu trên các kết nối của nó và không nên treo máy chủ proxy bằng cách từ chối bất kỳ thao tác nào với nó.

Mô hình OSI - Bản xem trước

Các mô hình OSI khái niệm hóa quá trình mạng máy tính. Nó có bảy lớp:

  • Lớp vật lý
  • Lớp liên kết dữ liệu
  • Lớp mạng
  • Lớp vận chuyển
  • Lớp phiên
  • Lớp trình bày
  • Lớp ứng dụng

Lớp vận chuyển chịu trách nhiệm truyền dữ liệu qua mạng. Nó sử dụng hai giao thức khác nhau, TCP và Giao thức gói dữ liệu người dùng (UDP). TCP thường được sử dụng để truyền dữ liệu và giao thức này chỉ đạo cách gửi dữ liệu. Nó cắt thông điệp thành các phân đoạn và sau đó gửi chúng từ nguồn đến đích.

Kết nối ổ cắm

Có một người gửi và một người nhận truyền các khối dữ liệu trong các trường hợp bình thường. Người gửi và người nhận đang giao tiếp với các máy khác nhau cùng một lúc, vì vậy proxy thiết lập kết nối ổ cắm giữa người gửi và người nhận tham gia vào giao tiếp.

Socket là một kết nối hợp lý giữa cả việc sử dụng IP và số cổng. Proxy thiết lập kết nối ổ cắm ở phía người gửi và người nhận. Địa chỉ ổ cắm, bao gồm địa chỉ IP và số cổng là duy nhất để liên lạc giữa người gửi và người nhận.

Địa chỉ socket duy nhất đảm bảo rằng việc truyền dữ liệu diễn ra song song và các gói không va chạm với nhau.

Triển khai proxy tại TCP Layer

Một proxy TCP nhận lưu lượng truy cập đến và mở một ổ cắm đi qua đó nó đưa lưu lượng đến đến máy chủ đích. Nó di chuyển dữ liệu giữa máy khách và máy chủ nhưng không thể thay đổi bất kỳ dữ liệu nào vì nó không hiểu nó.

Một proxy ở lớp này có quyền truy cập vào địa chỉ IP và số cổng mà người nhận cố gắng kết nối trên máy chủ phụ trợ. Nếu máy chủ sử dụng cổng số 3306 để lắng nghe các yêu cầu, thì proxy sẽ triển khai nó ở lớp này và cũng lắng nghe tại cổng này. 

Proxy lắng nghe cổng đó và chuyển tiếp tin nhắn đến máy chủ. Proxy TCP tạo kết nối thông qua một ổ cắm thông qua một tổ hợp cổng máy chủ duy nhất.

Việc triển khai proxy ở lớp vận chuyển rất nhẹ và nhanh vì lớp chỉ chịu trách nhiệm truyền dữ liệu.

Các proxy hoạt động như một phương tiện để truyền tin nhắn qua lại và không thể đọc tin nhắn. Các proxy này giúp bạn giám sát mạng, ẩn mạng nội bộ khỏi mạng công cộng, xếp hàng kết nối để ngăn chặn tình trạng quá tải máy chủ và giới hạn kết nối. Đây là giải pháp tốt nhất cho các dịch vụ cân bằng tải giao tiếp qua TCP như lưu lượng cơ sở dữ liệu đến MYSQL và Postgres.

TCP Proxy là Reverse Proxy

Proxy ngược chấp nhận yêu cầu từ máy khách, chuyển tiếp nó đến máy chủ có thể thực hiện yêu cầu đó và trả về phản hồi của máy chủ cho máy khách. Bạn có thể triển khai proxy ngược ngay cả khi chỉ có một máy chủ hoặc ứng dụng.

Proxy ngược được nhìn thấy công khai bởi những người dùng khác trên mạng. Nó được triển khai ở rìa mạng của trang web để chấp nhận các yêu cầu từ trình duyệt web và ứng dụng dành cho thiết bị di động. 

Triển khai proxy TCP làm proxy ngược có những ưu điểm sau:

Bảo mật - Nó làm tăng tính bảo mật của mạng. Các máy khách độc hại không thể truy cập các máy chủ phụ trợ vì chúng không hiển thị với mạng bên ngoài. Nó không thể truy cập chúng trực tiếp để khai thác bất kỳ lỗ hổng nào.

Ngăn chặn tấn công DDOS – Các máy chủ phụ trợ được bảo vệ bởi proxy ngược để bảo vệ chúng khỏi từ chối dịch vụ phân tán (DDOS).

Điều chỉnh lưu lượng truy cập - Nó có thể từ chối lưu lượng truy cập từ một địa chỉ IP máy khách cụ thể (danh sách đen) hoặc giới hạn số lượng kết nối từ máy khách.

Khả năng mở rộng và tính linh hoạt - rất linh hoạt để thay đổi cấu hình phụ trợ vì máy khách chỉ có thể nhìn thấy địa chỉ của proxy ngược. Để cân bằng tải tại máy chủ, bạn có thể tăng và giảm số lượng máy chủ để phù hợp với lưu lượng truy cập thay đổi.

Tăng tốc web - Nó làm giảm thời gian thực hiện để tạo phản hồi cho khách hàng yêu cầu. 

Nén - proxy TCP phản hồi trước khi quay lại máy khách, giảm lượng băng thông cần thiết để truyền dữ liệu qua mạng.

Mã hóa – Lưu lượng giữa máy khách và máy chủ trong mạng yêu cầu mã hóa. Quá trình mã hóa đặt một chi phí cho máy khách và máy chủ vì nó là tính toán đầy đủ. Proxy ngược thực hiện mã hóa và giải mã do đó giải phóng các máy chủ phụ trợ để cống hiến hết mình để chỉ phục vụ khách hàng.

Bộ nhớ đệm - Proxy ngược lưu trữ một bản sao của yêu cầu trong hệ thống cục bộ của nó trước khi phục vụ nó cho khách hàng. Proxy ngược phục vụ yêu cầu từ bộ nhớ cache thay vì chuyển tiếp yêu cầu đến máy chủ và tìm nạp tương tự khi máy khách yêu cầu lại. 

TCP Proxy như một bộ cân bằng tải

Bộ cân bằng tải là một proxy quản lý lưu lượng truy cập khi có nhiều máy chủ. Nó cho phép máy chủ chạy hiệu quả và mở rộng quy mô máy chủ khi lưu lượng truy cập cao. Bộ cân bằng tải phân phối lưu lượng giữa các máy chủ và định tuyến các kết nối ban đầu trực tiếp từ máy khách đến máy chủ phụ trợ khỏe mạnh mà không bị gián đoạn.

Proxy TCP sử dụng trả về máy chủ trực tiếp để nhận phản hồi từ các máy chủ phụ trợ khỏe mạnh đến các máy khách trực tiếp chứ không phải đến các bộ cân bằng tải. Máy chủ phụ trợ chấm dứt lưu lượng lớp cổng bảo mật (SSL) chứ không phải bộ cân bằng tải. 

Mối quan hệ phiên

Lưu lượng TCP giữa máy khách và máy chủ hỗ trợ ái lực phiên. Mối quan hệ phiên là khi máy khách có thể gửi yêu cầu đến cùng một máy chủ phụ trợ miễn là nó hoạt động tốt và có khả năng. 

Giám sát máy chủ

Proxy TCP thực hiện kiểm tra sức khỏe của máy chủ phụ trợ bằng cách theo dõi định kỳ sự sẵn sàng của nó. Khi máy chủ phụ trợ không thể xử lý lưu lượng truy cập, đó là một nút không lành mạnh và máy chủ chuyển hướng lưu lượng truy cập đến các máy chủ phụ trợ lành mạnh khác.

Proxy TCP thể hiện các đặc điểm sau khi nó hoạt động như một bộ cân bằng tải:

Hành vi không đồng bộ – TCP proxy có hành vi không đồng bộ, có nghĩa là nếu một máy khách đột nhiên ngừng đọc từ ổ cắm đến proxy, các máy khách khác không được nhận thấy bất kỳ sự gián đoạn dịch vụ nào thông qua proxy.

Hỗ trợ các giao thức khác - TCP proxy hỗ trợ HTTP và các giao thức lớp ứng dụng khác như FTP.

Hoạt động như một proxy ngược - Người dùng có thể sử dụng proxy TCP làm proxy ngược dựa trên vị trí thực hiện. Về phía máy chủ, nó điều chỉnh lưu lượng truy cập từ máy khách đến người dùng. 

Tùy chọn tỷ lệ cửa sổ

Cửa sổ nhận TCP là lượng dữ liệu mà người nhận có thể xử lý bằng byte mà nó có thể đệm trong quá trình kết nối. Người nhận phải cập nhật kích thước cửa sổ của nó trước khi bắt đầu giao tiếp và chờ xác nhận. 

Người gửi gửi dữ liệu dựa trên kích thước cửa sổ. Thiết kế của ngăn xếp Windows TCP/IP điều chỉnh theo kích thước dữ liệu thay đổi và sử dụng kích thước cửa sổ lớn hơn. Mỗi lần người gửi truyền, nó sẽ sử dụng kích thước cửa sổ lớn hơn kích thước được sử dụng trong lần truyền trước.

Kích thước cửa sổ không cố định vì bạn có thể thay đổi kích thước bằng cách điều chỉnh kích thước phân đoạn tối đa (MSS). Máy khách và máy chủ thương lượng MSS trong quá trình thiết lập kết nối. Điều chỉnh cửa sổ nhận theo gia số của MSS làm tăng tỷ lệ phần trăm các phân đoạn TCP có kích thước đầy đủ được sử dụng trong quá trình truyền dữ liệu hàng loạt.

Kích thước cửa sổ nhận được xác định theo cách sau:

Máy khách gửi yêu cầu kết nối đầu tiên được gửi đến máy chủ bằng cách quảng cáo kích thước cửa sổ nhận là 16K (16.384 byte). Khi kết nối được thiết lập, máy khách điều chỉnh kích thước cửa sổ nhận dựa trên MSS. Kích thước cửa sổ được điều chỉnh gấp bốn lần MSS, đến kích thước tối đa là 64 K, trừ khi tùy chọn chia tỷ lệ cửa sổ được sử dụng.

Các câu hỏi thường gặp

1. Proxy ngược khác với proxy cân bằng tải như thế nào?

Proxy ngượcProxy cân bằng tải
Proxy ngược là một ứng dụng trung gian được triển khai giữa máy khách và máy chủ.Một proxy cân bằng tải phân phối lưu lượng truy cập đồng đều và hiệu quả trên nhiều máy chủ phụ trợ.
Proxy ngược tăng cường bảo mật của máy chủ web bằng cách đảm bảo rằng các máy khách không giao tiếp trực tiếp với máy chủ gốc.Có một số máy chủ phụ trợ và trong trường hợp mất mạng hoặc tấn công DDoS, proxy cân bằng tải giúp ngăn chặn việc tắt trang web vì lưu lượng truy cập có thể được định tuyến lại đến một máy chủ thay thế.
Quá trình: - Người dùng thực hiện một yêu cầu HTTP. - Proxy ngược nhận nó. - Proxy ngược cho phép hoặc từ chối yêu cầu của người dùng. – Nếu được phép, proxy ngược chuyển tiếp yêu cầu đến máy chủ. – Nếu bị từ chối, proxy ngược sẽ gửi thông báo lỗi cho khách hàng. – Máy chủ gửi trả lời tương ứng đến proxy ngược. Proxy ngược chuyển tiếp phản hồi của máy chủ đến máy khách.Quá trình: – Bộ cân bằng tải nhận được yêu cầu của khách hàng.– Bộ cân bằng tải gửi yêu cầu đến một máy chủ duy nhất trong nhóm máy chủ phụ trợ.– Máy chủ được chọn sẽ gửi phản hồi trở lại bộ cân bằng tải.– Bộ cân bằng tải chuyển tiếp phản hồi của máy chủ cho người dùng.
Ví dụ về một số proxy ngược mã nguồn mở làNGINXApache HTTP ServerApache Traffic ServerVí dụ về một số thuật toán cân bằng tải làHashRound RobinPower of Two Choices

2. Sự khác biệt giữa proxy HTTP và proxy TCP.

Proxy HTTPProxy TCP
Trong khu phi quân sự (DMZ), nó được sử dụng như một bộ cân bằng tải hoặc nhà cung cấp IP công cộng để bảo vệ các máy chủ phụ trợ.Nó được sử dụng như một proxy ngược cho kết nối TCP giữa máy khách và máy chủ.
Tạo yêu cầu/phản hồi HTTP.Mở kết nối ổ cắm TCP và di chuyển dữ liệu qua nó.
HTTP proxy đọc địa chỉ máy chủ và kết nối với máy chủ thích hợp.TCP proxy không thay đổi dữ liệu vì nó không thể hiểu nó.
Bên cạnh HTTP, nó có thể phục vụ các yêu cầu HTTPS và FTP.Bên cạnh TCP, nó có thể phục vụ các yêu cầu HTTP và FTP.

Kết luận:

Proxy TCP hoạt động như một proxy ngược và cũng là một bộ cân bằng tải. Cả hai loại ứng dụng đều nằm giữa máy khách và máy chủ, chấp nhận yêu cầu từ máy chủ trước và cung cấp phản hồi từ máy chủ sau.

Đôi khi, proxy ngược và cân bằng tải có thể giống nhau và dẫn đến nhầm lẫn. Khám phá khi nào và tại sao bạn có thể triển khai chúng tại một trang web sẽ giúp bạn hiểu nó.

Thu thập dữ liệu là một nhiệm vụ to lớn và rất quan trọng đối với một doanh nghiệp đã thành lập hoặc một công ty khởi nghiệp. Đó là một quá trình đòi hỏi xu hướng thị trường, phân tích đối thủ cạnh tranh và sở thích của khách hàng để đưa ra quyết định. 

ProxyScrape Cung cấp proxy cao cấp, proxy dân dụng và proxy chuyên dụng để thu thập lượng lớn dữ liệu từ các trang web. Có một sự kết hợp linh hoạt của proxy để lựa chọn và giá cả cũng phải chăng. Hãy tiếp tục kiểm tra blog của chúng tôi để biết thêm thông tin về các proxy mới được giới thiệu, cách sử dụng và lợi ích của chúng ProxyScrape Cung cấp.