Câu trả lời ngắn gọn là: trong 95% trường hợp không thể thực hiện được và trường hợp của bạn nằm trong 95% đó.
Trước tiên, hãy để tôi nói rằng việc định tuyến tải lên và tải xuống riêng biệt rất ít có ý nghĩa, bởi vì ngay cả các tác vụ tải xuống cường độ cao cũng yêu cầu một số gói chuyển ngược về nguồn, tức là bất kỳ tải xuống nào cũng yêu cầu một số luồng tải lên (Điều này không đúng với UDP so với TCP, nhưng đừng bận tâm điều đó).
Nếu chúng tôi chuyển kênh tải lên của một kết nối tải xuống chủ yếu qua một NIC khác với kết nối được sử dụng cho phần tải xuống, nguồn tải xuống sẽ thấy các phản hồi cho các gói của nó bắt nguồn từ một địa chỉ IP khác với địa chỉ IP khác gửi gói tin; đây là một tính năng bảo mật cơ bản để bỏ qua các gói có liên quan đến một kết nối nhất định, nhưng có nguồn gốc từ một địa chỉ của bên thứ ba. Do đó, phần tải lên của cuộc trò chuyện sẽ bị hủy và kết nối sẽ bị dừng lại. Điều này ít liên quan đến ISP và dịch vụ của họ: nó xảy ra ngay cả giữa hai chiếc trên cùng một mạng LAN, nếu một trong hai người đang cố gắng kết nối với một địa chỉ IP bằng cách sử dụng trong cùng một kết nối hai NICS khác nhau (do đó có hai IP khác nhau) .
Đây là lý do tại sao chúng ta nói về các kết nối, không tải lên / tải xuống. Nhưng sau đó, người ta có thể đặt lại câu hỏi của bạn như sau: tôi có thể có một máy tính, có hai NIC được kết nối với mạng không, sử dụng hai NIC cho hai phân biệt kết nối, giả sử kết nối chậm cho một công việc chậm chạp, tẻ nhạt như e-mail và kết nối nhanh cho một quy trình nhanh như tải xuống trang Web?
Câu trả lời ngắn cho câu hỏi được đặt ra tốt này là: trong Windows, * Nix (bao gồm MacOS) và Android no. Trong Linux, bạn có thể.
Lý do tại sao bạn không thể làm điều này trong Windows (bất kỳ phiên bản nào), * Nix và Android là vì bất kỳ bảng định tuyến nào cũng có thể chỉ có một cổng mặc định (* tức là * địa chỉ mà bạn gửi tất cả các gói không được gửi đến mạng LAN của bạn) và những Các hệ điều hành chỉ có thể xử lý một bảng định tuyến: do đó một cổng duy nhất.
Thay vào đó, để phân bổ các ứng dụng khác nhau cho các giao diện khác nhau, bạn cần hai chức năng riêng biệt: một, khả năng hai chạy hai bảng định tuyến đồng thời và hai, khả năng buộc các ứng dụng vào bảng định tuyến. Chỉ có nhân Linux (năm ánh sáng trước đối thủ) mới có những khả năng này, như bài viết này. Hạt nhân * Nix bù đắp một phần cho điều đó thông qua việc sử dụng hợp lý tường lửa của nó, pfsense, nhưng không đạt được kết quả đầy đủ.
Khả năng chạy hai bảng định tuyến cùng một lúc (được gọi là định tuyến chính sách hoặc định tuyến dựa trên nguồn ) có nghĩa là các gói được định tuyến khác nhau tùy thuộc vào địa chỉ IP của chúng. Đây là một tính năng cực kỳ hữu ích nếu bạn đang xây dựng một bộ định tuyến.
Tuy nhiên, để sử dụng các NIC khác nhau (và do đó IPS) tùy thuộc vào ứng dụng, bạn cần có không gian tên mạng , tính năng nhân Linux cho phép bạn tạo một lớp vỏ riêng với ngăn xếp mạng riêng. Bây giờ các tiến trình chạy bên trong lớp vỏ riêng biệt này sẽ được định tuyến theo bảng định tuyến của không gian tên mạng, không phải của máy tính chính.
Tất nhiên đây là một hình thức ảo hóa, mặc dù là một hình thức yếu hơn so với, một container Linux, chưa kể đến một máy ảo. Nhưng đó là cách thực sự, với một máy tính duy nhất, định tuyến các quy trình khác nhau thông qua các giao diện khác nhau.
Tóm lại, trong Linux (và chỉ trong Linux), bạn có thể chạy một không gian tên mạng riêng, ví dụ, được kết nối qua VPN đến nơi làm việc của bạn, để bạn truy cập tài nguyên công việc của mình và, nếu bạn chạy Firefox, bạn dường như được đặt tại nơi làm việc của bạn, đồng thời chạy Google Chrome bên ngoài không gian tên mạng và do đó xuất hiện (trên Chrome) để đặt tại nhà.