Lược đồ ở trên không đủ cho mã mạng trong các mạng thực sự. Trong các mạng thực, các gói tin không được truyền đồng bộ trên các cạnh có dung lượng đơn vị. Trên thực tế, các gói tin dường nhưđược truyền một cách liên tục với các gói tin khác liên quan tới cùng một tập các vector nguồn, x1,…., xh trên cùng một cạnh; các gói trên các cạnh khác nhau có các độ trễ và sự truyền khác nhau; và số các gói được truyền trên một cạnh liên quan tới cùng một tập các vector nguồn thì thay đổi vì sự mất mát gói tin, tắc nghẽn, hoặc những thay đổi khác trong băng thông đã có vì sự cạnh tranh traffic. Vì tất cả các nguyên nhân này, sự đồng bộ hóa các gói tin liên quan tới cùng một tập vector nguồn trở thành vấn đề thực tế quan trọng ở cả các node đang mã hóa và giải mã. Một mô hình buffer được sử dụng để giải quyết vấn đề này.
Tất cả các gói tin liên quan tới cùng một tập h vector nguồn x1, …, xh được gọi là cùng một thế hệ, và h gọi là kích cỡ của thế hệ. Tất cả các gói tin trong cùng một thế hệ được gán cùng một số thế hệ. Các số thế hệ này sẽ được tăng lên liên tục. Một hoặc hai byte (mod 28 hoặc 216) ở mỗi header của packet là đủ để phân biệt giữa các thế hệ thành công trong mạng.
Ngoài các số thế hệ trong các header của gói tin, cần một kỹ thuật ở mỗi node
đểđồng bộ hóa các gói tin đến và đi. Mô hình buffer có thể thỏa mãn điều này. Trong mô hình buffer của luận văn, các gói tin đến ở một node ở bất kỳ các cạnh đến nào
truyền ở cạnh ra, một gói được phát sinh chứa tổ hợp tuyến tính ngẫu nhiên của tất cả
các gói có trong buffer mà số thế hệ là số thế hệ “hiện tại”. Định kỳ, số thế hệ hiện tại
được tăng lên và thế hệ cũ bị flush khỏi buffer theo một trong các chiến lược flush sẽ được nói đến sau. Các gói đến có số thế hệđã bị flush thì được bỏ đi. Chú ý rằng các gói trong buffer sẽ tăng lên theo thời gian và sự tổ hợp tuyến tính được chọn ngẫu nhiên đối với mỗi gói tin đi ra. Vì vậy các hàm mã hóa cục bộ thì khác nhau theo thời gian. Tuy vậy, điều này không ảnh hưởng tới sự giải mã vì các vector mã hóa toàn cục
đã được đưa vào trong các gói tin.
Khi gói tin đến một node, nó có thể là gói tin “mới lạ” hay “không mới lạ”. Một gói tin mới lạ là gói tin mà node nhận cần trong việc giải mã các gói tin ban đầu. Ngược lại, gói tin “không mới lạ” là gói tin mà node nhận có thể giải mã các gói tin ban đầu mà không cần đến nó. Ví dụ, một node đã nhận được các gói tin a và a+b (trong buffer của nó có những gói tin a và a+b). Như vậy nó có thể suy ra được các gói tin a và b. Khi nó nhận được gói tin b, thì lúc này gói tin b là gói tin “không mới lạ” vì node nhận không cần nó trong quá trình giải mã.
Vì thông tin các gói “không mới lạ” không ảnh hưởng tới việc truyền thông tin của các gói “mới lạ”, vì vậy mỗi node có thể truyền tự do tới tất các cạnh đi ra của nó mà không phải biết liệu thông tin nó truyền có là mới lạ đối với các hàng xóm của nó không. Điều này cho phép hệ thống được phân tán hoàn toàn. Không cần node nào hoặc không cần một thiết bị nào biết topo toàn cục, sự tồn tại của các vòng hoặc các luồng, hoặc thậm chí là các hướng ngược và xuôi. Thay vào đó, mỗi node có thể
truyền tự do tới tất cả các cạnh ra của nó và nhận trên tất cả các cạnh vào. Điều này là lý tưởng đối với các mạng ad hoc hoặc các hệ thống quảng bá cần tối thiểu hóa vấn đề
quản lý và điều khiển thông tin.
Một cách tiếp cận khác để tiết kiệm tài nguyên mạng là đầu tiên chạy một thuật toán luồng cực đại phân tán giữa node gửi s và mỗi node nhận t (thuộc T), sau đó giới hạn chuỗi mã mạng tới những luồng này. Cách tiếp cận này được luận văn nói trong section 4. Tuy nhiên, luận văn thực hiện phép khử Gauss ở mỗi node khi mỗi gói tin đến và được thêm vào buffer. Điều này giúp cho các vector trong buffer ở dạng chuẩn, cho phép xác định ngay liệu rằng một gói tin có là “mới lạ” hay không. Các gói tin “không mới lạ” thì bị bỏ qua.
Việc giải mã ở một node nhận không khác gì phép khử Gauss thực hiện ở bất kỳ node nào. Trong ngữ cảnh này, mỗi node có thể là một node nhận. Việc thực hiện
vector nguồn. Trên thực tế, ma trận Gt của các vector mã hóa toàn cục nhận ở mỗi node có xu hướng gần giống tam giác dưới, và vì vậy có thể thường xuyên giải mã
được vector nguồn thứ k sau khi nhận được ít hơn k gói tin.
Một trong những vấn đề của mô hình buffer là chiến lược khi flush thế hệ hiện tại và tăng lên thế hệ tiếp theo. Chiến lược đơn giản nhất là flush thế hệ hiện tại khi gói tin đầu tiên của thế hệ tiếp theo đến trên một cạnh đi vào. Chiến lược này là chiến lược
đơn giản và hiệu quả. Tuy nhiên, có một số mất mát về thông lượng so với dung lượng. Điều này xảy ra bởi vì sự phù hợp của mỗi thế hệ và sự delay spread ở mỗi node. Delay spread là khác nhau theo thời gian. Hình 2 mô tả cách mà delay spread có thể dẫn tới sự giảm băng thông đạt được. Mỗi hàng box thể hiện các lần đến ở một node v của các gói tin di chuyển từ node nguồn s trên các đường khác nhau, với hàng trên cùng thể hiện đường với độ trễ thấp nhất và các hàng khác thể hiện các đường các
đường với độ trễ cao hơn. Thế hệ hiện tại (màu trắng) bị flush khi gói tin đầu tiên của thế hệ tiếp theo đến (màu xám), làm cho các gói tin tiếp theo thuộc thế hệ hiện tại đến sẽ bị loại bỏ. Độ mất mát thông lượng bằng tỉ lệ các gói tin bị loại bỏ trong một thế hệ
Độ mất mát thông lượng ~ (tỉ lệ thuận) delay spread (giây) / khoảng thời gian tồn tại của thế hệ (giây)
= delay spread (giây) x tốc độ gửi (gói tin trên giây) / hI,
Với h là kích cỡ thế hệ và I là độ dài interleaving (giả sử hiện tại I = 1). Vì vậy các mạng có tích độ trễ-băng thông thấp dường như mất ít thông lượng hơn. Đối với các mạng có tích độ trễ-băng thông thông cao, có một số lựa chọn. Việc tăng kích cỡ
thế hệ h có thể làm giảm độ mất mát thông lượng. Tuy vậy, khi tăng tuyến tính header của gói tin, sẽảnh hưởng tiêu cực lên thông lượng của mạng theo số bit trên giây. Giải pháp khác rất hiệu quả là tăng độ dài interleaving I. Một thế hệ với số thế hệ là n được gán tới phiên i với i = n mod I. Vì vậy tốc độ gửi ở mỗi phiên logic và tích băng thông-
độ trễ, sự mất mát thông lượng về cơ bản giảm đi theo nhân tố I. Sự mất thông lượng có thểđược giảm nữa bằng các chiến lược flush phức tạp hơn.