2013-04-05 14 views
7

Sự khác nhau giữa PPP và tun/tap là gì? Cả hai dường như là để triển khai mạng qua các chương trình không gian người dùng.Sự khác nhau giữa/dev/ppp và/dev/net/tun là gì?

Với PPP, hạt nhân tạo ppp% d để sử dụng và cho phép chương trình không gian người dùng cung cấp chương trình phụ trợ cho nó.
Với tun/tap, kernel tạo tun% d để sử dụng và để cho chương trình không gian người dùng cung cấp phụ trợ cho nó ...

Làm thế nào khó khăn là thay đổi một chương trình từ việc sử dụng tun/tap (mà dường như không có sẵn trên thiết bị Android của tôi) tới ppp?

Trả lời

12

Cả hai đều cung cấp một số dạng truy cập mạng, tại sao có hai thứ khác nhau có vẻ giống như vậy? Câu trả lời là họ không làm điều tương tự.

Giao thức điểm-điểm (ppp), được thiết kế xung quanh việc cung cấp kết nối mạng IP qua liên kết nối tiếp. Điều phổ biến nhất cung cấp một liên kết nối tiếp là một modem, và đây là những hiện diện trong điện thoại di động và đã phổ biến cách đây vài năm khi bạn gọi đến nhà cung cấp dịch vụ của bạn để kết nối với internet. Kết nối ppp của bạn được chuyển từ máy tính của bạn sang thiết bị thu để chuyển đổi tín hiệu nối tiếp trở lại thành các gói IP được định tuyến qua internet.

Ngày nay, khi bạn nhận modem cáp hoặc modem ADSL từ nhà cung cấp dịch vụ, nó cung cấp kết nối mạng IP qua kết nối ethernet hoặc WiFi. Modem thực sự đang thực hiện công việc cung cấp kết nối lại cho nhà cung cấp dịch vụ của bạn, có thể được xem giống như kết nối ppp; nó chỉ là máy tính của bạn không còn làm các công việc dịch thuật đi từ các gói tin IP đến tín hiệu trên một đường ADSL hoặc kết nối cáp. Modem riêng biệt đang cung cấp một lớp cách xa sự phức tạp của việc nói chuyện với nhà cung cấp, bạn chỉ đang nói Ethernet/WiFi 'đơn giản'.

Cơ chế Tun/Tap là cho phép bạn truy cập mạng riêng ảo (vpn) trong một lớp phía trên kết nối mạng chuẩn của bạn; ví dụ, nếu bạn đang kết nối với modem cáp qua Ethernet, thì điều này sẽ cung cấp quyền truy cập vào VPN thông qua kết nối ethernet của bạn. Nếu bạn đang truy cập internet qua modem đã được cắm trực tiếp vào máy của bạn, thì bạn sẽ truy cập vpn của mình qua số ppp. Ngày của riêng nó, giao diện tun/tap không cung cấp truy cập internet, nó dựa trên một kết nối từ trước. Đó là một ví dụ về phân tầng mạng.

Hỏi việc chuyển đổi chương trình bằng cách sử dụng kết nối mạng tun/tap để sử dụng hiểu lầm kết nối ppp khi hai giao diện nằm trong điều khoản truy cập mạng của bạn - tun/tap sẽ nằm trên đỉnh ppp. các gói không được mã hóa vào giao diện tun/tap, được mã hóa và sau đó được gửi dưới dạng các gói IP tới giao diện ppp để chuyển đổi chúng thành tín hiệu nối tiếp được gửi đến đầu cuối từ xa, biến chúng thành các gói IP và chuyển tiếp chúng đến mục tiêu vpn giải mã chúng và định tuyến chúng thông qua mạng riêng của nó.

Nếu bạn loại bỏ giao diện điều chỉnh/chạm thì bạn sẽ phải sửa đổi bất kỳ ứng dụng nào muốn liên lạc trên vpn để cho bất kỳ giao tiếp mạng nào bạn cần chặn chúng; mã hóa chúng; chuyển tiếp chúng; nhận phản hồi và giải mã chúng. Bằng cách sử dụng lớp điều chỉnh/chạm, bạn cho phép định tuyến IP tích hợp để lấy các gói không mã hóa và chuyển tiếp chúng - nghĩa là bạn không cần sửa đổi bất kỳ ứng dụng nào đang nói chuyện với mạng riêng.

Khá nhiều mọi vấn đề trong khoa học máy tính đều có thể được giải quyết bằng cách thêm một lớp hướng dẫn. Bằng cách thêm các lớp này, chúng tôi giảm sự phức tạp của các thành phần riêng lẻ, nhưng có thể xây dựng các hệ thống mạnh mẽ.Nếu chúng ta không có giao diện ppp, mọi chương trình sẽ cần phải biết cách nói chuyện nối tiếp, nếu chúng ta không có tun/tap mỗi chương trình sẽ cần biết cách nói vpn cũng như cần biết cách nói chuyện nối tiếp .

Cách duy nhất bạn có thể xóa kết nối tun/tap là kết nối ppp được thực hiện với hệ thống riêng. Bạn sẽ phải sử dụng một cái gì đó giống như dữ liệu GSM (9600 bit/giây, và đó là một cuộc gọi điện thoại thực tế), và thậm chí sau đó bạn không mã hóa, và bạn đang đi qua một mạng di động, loại đánh bại toàn bộ ý định của một mạng riêng.

Sau đây là sự đơn giản hóa tổng thể về cách thức các giao thức đường hầm khác nhau hoạt động, nhưng nên giải thích đầy đủ chi tiết để bạn có thể hiểu tại sao bạn không thể trao đổi cho nhau.

Để hiểu lý do tại sao các giao thức vpn khác nhau sử dụng các giao diện khác nhau để thực hiện công việc của họ, bạn phải hiểu cách chúng được thiết kế. TAP, L2TP và PPTP là tất cả các ví dụ về giao thức lớp 2. TUN là một ví dụ về giao thức lớp 3.

Để hiểu sự khác biệt, tôi sẽ sử dụng tính tương tự bưu chính. Lớp 2 (còn được gọi là lớp liên kết), là tương đương với chuyển phát nhanh. Bạn đưa cho anh ta một lá thư và anh ta sẽ đưa nó cho người nhận. Các chuyển phát nhanh biết tất cả các điểm đến tiềm năng trong khu vực của mình, bất kỳ tin nhắn cho khu vực địa phương này có thể được xử lý bởi anh ta.

Nếu chúng tôi kéo dài sự tương tự này, một hộp thư cũng có thể được xem là điểm cuối lớp 2 hợp lệ. Nếu bạn muốn nhận được thư trên toàn quốc, bạn đặt chúng trong hộp thư. Điều này là hậu quả đối với L2TP, PPTP và TAP gói các gói tin của họ để truyền qua mạng.

Lớp 3 là địa chỉ trên thư - nó có thể được sử dụng để di chuyển thư từ bưu điện đến bưu điện nơi cuối cùng nó được đưa vào tay của một người đưa thư. Ths là nơi gói tin được gói đi qua mạng.

Nó quay trở lại lớp 2 tại điểm mà người đưa thư biết đích đến trong vùng phân phối của mình và trao lá thư cho người nhận đã định. Đây là nơi gói được gói không được mở và sau đó được xử lý bởi điểm cuối L2TP, PPTP hoặc TAP

Đối với TUN, việc này dễ dàng hơn một chút. Thư của bạn đi trực tiếp đến bưu điện địa phương của bạn, nhận được gửi đến các bưu điện đích nơi bạn thu thập chúng. Có thể có một số chi tiết về việc gửi thư đến bưu điện hoặc từ bưu điện đến địa chỉ đích, nhưng đó không thực sự là một phần của giao thức.

Sau đó, đến các chi tiết khó xử về cách chúng được triển khai. Cả L2TP và PPTP được xác định theo điều khoản của ppp, một cơ chế cũng được thiết lập để thiết lập kết nối trực tiếp giữa hai điểm kết thúc, vì vậy để nói về loại hệ thống này, cả nguồn gốc và điểm đến sẽ cần phải nói đến điểm giao thức điểm. Đường hầm cung cấp một lớp ảo mà trên đó các thông báo ppp này di chuyển (Đường hầm này là những gì mang lại cho họ T trong tên của chúng).

Giao diện TAP được xác định theo đường hầm của các gói ethernet - đây là các gói mà bạn sẽ thấy whizzing dọc theo kết nối WiFi của bạn. Nó thiết lập một cầu nối đơn giản giữa hai mạng mà qua đó các gói ethernet này được truyền đi. Các gói Ethernet gói gọn các gói IP, cho phép bạn đặt chúng trực tiếp trên dây tại đích mà không cần phải đóng gói lại chúng.

Giao diện TUN được xác định theo đường hầm của các gói IP - đây là các gói trước khi chúng được chuyển đổi để chúng có thể di chuyển qua kết nối vật lý như Ethernet/WiFi. Điều này có nghĩa là bạn đang thiết lập một mạng IP ảo định tuyến giữa máy tính của bạn và mạng đích. Các gói IP có đích đến được xác định bởi các tuyến được cung cấp bởi giao diện này được gửi đến giao diện đó.

Sản phẩm cuối cùng là giao diện mạng khác trên hệ thống của họ có thể gửi gói IP đến. Giao diện này bao bọc gói (trong gói ppp cho PPTP/L2TP; trong gói ethernet cho TAP; bên trong gói IP khác cho TUN). Mã hóa có thể được tham gia trước khi gói, hoặc sau khi gói hoặc tại cả hai điểm (phụ thuộc vào giao thức). Một chương trình hiểu L2TP sẽ thành thạo trong việc nói chuyện PPP, nhưng sẽ không thể nói các giao thức khác mà không cần viết lại đáng kể.

+0

Trên Android, tôi thấy/dev/ppp và pppd được sử dụng để cung cấp VPN (PPTP hoặc L2TP). Nhưng theo mặc định không có tun/tap có sẵn (May mắn là tôi tìm thấy tun.ko cho hạt nhân của tôi). Tại sao PPTP/L2TP sử dụng PPP, không sử dụng TUN/TAP? –

+1

"Ngày của riêng nó, giao diện tun/tap không cung cấp truy cập internet, nó dựa trên một kết nối từ trước" -> TUN/TAP cho phép chương trình quyết định nội dung nào sẽ cho kết nối này. Chương trình đó, ví dụ, có thể truy cập modem là tốt. –

+0

@Vi Tôi sẽ cập nhật câu trả lời với các chi tiết rõ ràng hơn một chút. Đây là những gì tôi nhận được để viết một câu trả lời lúc 1 giờ sáng. – Petesh

Các vấn đề liên quan