Xem xét mạng trong Hình 1.6 (a). Hai bit X và Y được tạo ra tại các nút nguồn 𝑠. Nhiệm vụ là phát đa hướng cho cả hai bit X và Y tới hai nút đích 𝑡1 và 𝑡2. Trong mạng, mỗi cạnh đại diện cho một kênh truyền dữ liệu khơng có nhiễu và trên đó một bit có thể được truyền qua. Có một kênh đặc biệt từ nút 3 đến nút 4; Phương pháp tiếp cận định tuyến thông thường cho thấy rằng tác vụ con của phát đa hướng X và tác vụ con của phát đa hướng Y có thể được thực hiện một cách độc lập. Để phát đa hướng X, bit phải được gửi dọc theo các đường dẫn màu đỏ, trong đó bit được nhân bản tại nút 1. Tương tự, bit Y phải được gửi dọc theo các đường dẫn màu xanh và bit được nhân bản tại nút 2.
Rõ ràng, có một xung đột giữa đường dẫn màu đỏ và đường dẫn màu xanh tại kênh từ nút 3 đến nút 4 mà không thể giải quyết được. Do đó, khơng thể phát đa hướng hai bit từ nút nguồn s đến các nút đích 𝑡1 và 𝑡2 bằng cách định tuyến đơn thuần. Tuy nhiên, xung đột tại kênh từ nút 3 đến nút 4 có thể được giải quyết bằng cách mã hóa hai bit X và Y thành một bit đơn X + Y. Đây chính là giải pháp mã hóa mạng và được hiển thị trong Hình 1.6 (b). Rõ ràng, cả hai nút đích 𝑡1 và 𝑡2 đều có thể giải mã X và Y.
Trong mạng cánh bướm, có hai đường truyền riêng biệt có thể truyền từ nút nguồn s đến nút đích 𝑡𝑖, trong đó i = 1, 2. Ví dụ, hai đường phân tách cạnh từ s đến 𝑡1 là:
Đường 1: 𝑠 → 1 → 𝑡1;
Đường 2: 𝑠 → 2 → 3 → 4 → 𝑡1.
Chúng ta nói rằng lưu lượng tối đa (maximum flow) từ nút nguồn s đến nút đích 𝑡𝑖 là bằng 2. Rõ ràng, khơng thể gửi nhiều hơn hai bit từ nút nguồn 𝑠 đến bất kỳ nút nào trong số các nút đích có thể ở dạng mã hóa hoặc khơng mã hóa. Nếu chúng ta cần gửi hai bit từ nút nguồn s đến bất kỳ một trong các nút đích, thì hai bit có thể được định tuyến dọc theo hai đường truyền riêng biệt tương ứng với hai cạnh. Nói cách khác, số bit có thể được gửi từ nút s đến nút 𝑡𝑖 bằng với lưu lượng lớn nhất từ nút s đến nút 𝑡𝑖. Theo nghĩa này, chúng ta nói rằng lưu lượng tối đa từ
nút s đến nút 𝑡𝑖 có thể đạt được bằng cách định tuyến. Nếu chúng ta cần phát đa hướng hai bit từ nút nguồn s đến cả hai nút đích, thì lưu lượng tối đa của hai nút đích khơng thể đồng thời đạt được bằng cách định tuyến. Tuy nhiên, điều này có thể đạt được bằng phương pháp mã hóa mạng như chúng ta đã thấy.
Trong một mạng điểm-điểm, hãy xem xét phát đa hướng nguồn thông tin từ một nút nguồn đến một số lượng cố định các nút đích 𝑡1; 𝑡2; … ; 𝑡𝑘. Biểu thị lưu lượng tối đa từ nút s đến nút 𝑡𝑖 bởi luồng tối đa - maxflow (𝑡𝑖). Như đã thảo luận, tốc độ của nguồn thông tin không thể vượt quá maxflow (𝑡𝑖) cho mỗi i, hoặc tương đương, tốc độ của nguồn thông tin không thể vượt quá mức tối thiểu của maxflow (𝑡𝑖) với tất cả 𝑖 = 1, 2, … , 𝑘. Định lý Max-flow - Min-cut đưa ra giới hạn trên cho luồng thông tin và được gọi là giới hạn dòng chảy tối đa (Max-flow bound) hay cũng được gọi là giới hạn Min-cut và nó có thể đạt được bằng mã hóa mạng.
Giải pháp mã hóa mạng trong Hình 1.6 (b) là sự chứng minh định lý Max-flow - Min-cut cho mạng cánh bướm. Trong giải pháp này, cơ chế mã hóa chỉ liên quan đến phép toán cộng modulo 2 tạo thành từ một mã trong mã mạng tuyến tính trên trường nhị phân. Mã mạng tuyến tính là quan trọng nhất trong thực tế vì thuật tốn mã hóa và giải mã hiệu quả có thể được thiết kế cho các mã như vậy.
Giải pháp mã hóa mạng cho mạng cánh bướm cho thấy rằng đối với một vấn đề mã hóa mạng đơn nguồn, thì giới hạn Max-flow có thể đạt được bằng mã hóa mạng tuyến tính. Điều này đã được chứng minh bởi Li, sau đó Koetter và Medard đã chứng minh kết quả tương tự bằng phương pháp của một kỹ thuật quen thuộc hơn với các kỹ thuật giao tiếp do đó mở rộng hơn nữa lĩnh vực này.
1.2.3.Một số lợi ích của mã mạng
Theo các phân tích trong [21], mã mạng cho phép các nút tạo ra các gói dữ liệu mới bằng cách kết hợp các gói nhận được. Kỹ thuật này có một số lợi ích như tăng thơng lượng, cải thiện độ tin cậy và tăng độ ổn định của mạng.