Để hổ trợ việc định vị khe thời gian bởi OLT, giao thức MPCP đang được nhóm IEEE 802.3ah phát triển. MPCP không xây dựng một cơ chế phân bổ băng tần cụ thể, mà thay vào đó, nó là một cơ chế hổ trợ thiết lập các thuật toán phân bổ băng tần khác nhau trong EPON. Giao thức này dựa vào hai bản tin Ethernet: Gate và Report. Bản tin Gate được gởi từ OLT đến ONU để ấn định một khe thời gian truyền. Bản tin Report được ONU sử dụng để truyền đạt các thông tin về trạng thái hiện tại của nó (như mức chiếm dữ của bộ đệm) đến OLT, giúp OLT có thể phân bổ khe thời gian một cách hợp lý. Cả hai bản tin Gate và Report đều là các khung điều khiển MAC (loại 88-08) và được xử lý bởi lớp con điều khiển MAC.
Có hai mô hình hoạt động của MPCP: tự khởi tạo và hoạt động bình thường. Trong mô hình tự khởi tạo được dùng để dò các kết nối ONU mới, nhận biết trễ Round-trip và địa chỉ MAC của ONU đó. Trong mô hình bình thường được dùng để phân bổ cơ hội truyền dẫn cho tất cả các ONU được khởi tạo.
Từ nhiều ONU có thể yêu cầu khởi tạo cùng một lúc, mô hình khởi tạo tự động là một thủ tục dựa vào sự cạnh tranh. Ở lớp cao hơn nó làm việc như sau:
1. OLT chỉ định một khe khởi tạo, một khoảng thời gian mà không có ONU khởi tạo trước nào được phép truyền. Chiều dài của khe khởi tạo này phải tối thiểu là: <transmission size> + <maximum round-trip time> - <minimum round-trip time>; với <transmission size> là chiều dài của cửa sổ truyền mà một ONU không khởi tạo có thể dùng.
2. OLT gởi một bản tin khởi tạo Gate báo hiệu thời gian bắt đầu của khe khởi tạo và chiều dài của nó. Trong khi chuyển tiếp bản tin này từ lớp cao hơn đến lớp MAC, MPCP sẽ gán nhãn thời gian được lấy theo đồng hồ của nó.
3. Chỉ các ONU chưa khởi tạo mới đáp ứng bản tin khởi tạo Gate. Trong lúc nhận bản tin khởi tạo Gate, một ONU sẽ thiết lập thời gian đồng hồ của nó theo nhãn thời gian đến trong bản tin khởi tạo Gate.
4. Khi đồng hồ trong ONU đến thời gian bắt đầu của khe thời gian khởi tạo (cũng được phân phối trong bản tin Gate), ONU sẽ truyền bản tin của chính nó
(khởi tạo Report). Bản tin Report sẽ chứa địa chỉ nguồn của ONU và nhãn thời gian tượng trưng cho thời gian bên trong của ONU khi bản tin Report được gởi.
5. Khi OLT nhận bản tin Report từ một ONU chưa khởi tạo, nó nhận biết địa chỉ MAC của nó và thời gian Round-trip. Như được minh họa ở hình 4.3, thời gian Round-trip của một ONU là thời gian sai biệt giữa thời gian bản tin Report được nhận ở OLT và nhãn thời gian chứa trong bản tin Report.
Từ nhiều ONU chưa khởi tạo, có thể đáp ứng cùng bản tin khởi tạo Gate, bản tin Report có thể xung đột. Trong trường hợp đó, bản tin Report của ONU bị xung đột sẽ không thiết lập bất kỳ khe nào cho hoạt động bình thường của nó. Nếu như ONU không nhận được khe thời gian trong khoảng thời gian nào đó, nó sẽ kết luận rằng sự xung đột đã xãy ra và nó sẽ thử khởi tạo lại sau khi bỏ qua một số bản tin khởi tạo Gate ngẫu nhiên. Số bản tin bỏ được chọn ngẫu nhiên từ một khoảng thời gian gấp đôi sau mỗi lần xung đột.
Dưới đây chúng ta mô tả hoạt động bình thường của MPCP:
1. Từ lớp cao hơn (MAC control client), MPCP trong OLT đưa ra yêu cầu để truyền bản tin Gate đến một ONU cụ thể với các thông tin như sau: thời điểm ONU bắt đầu truyền dẫn và thời gian của quá trình truyền dẫn (hình 4.4).
2 Trong lớp MPCP (của cả OLT và ONU) duy trì một đồng hồ. Trong khi truyền bản tin Gate từ lớp cao hơn đến lớp MAC, MPCP sẽ gán vào bản tin này nhãn thời gian được lấy theo đồng hồ của nó.
3. Trong khi tiếp nhận bản tin Gate có địa chỉ MAC phù hợp (địa chỉ của các bản tin Gate đều là duy nhất), ONU sẽ ghi lên các thanh ghi trong nó thời gian bắt đầu truyền và khoảng thời gian truyền. ONU sẽ cập nhật đồng hồ của nó theo thời gian lưu trên nhãn của bản tin Gate nhận được. Nếu sự sai biệt đã vượt quá ngưỡng đã được định trước thì ONU sẽ cho rằng, nó đã mất sự đồng bộ và sẽ tự chuyển vào mode chưa khởi tạo. Ở mode này, ONU không được phép truyền. Nó sẽ chờ đến bản tin Gate khởi tạo tiếp theo để khởi tạo lại.
4. Nếu thời gian của bản tin Gate được nhận gần giống với thời gian được lưu trên nhãn của bản tin Gate, ONU sẽ cập nhật đồng hồ của nó theo nhãn thời
dẫn, ONU sẽ bắt đầu phiên truyền dẫn. Quá trình truyền dẫn này có thể chứa nhiều khung Ethernet. ONU sẽ đảm bảo rằng không có khung nào bị truyền gián đoạn. Nếu phần còn lại của khe thời gian không đủ cho khung tiếp theo thì khung này sẽ được để lại cho khe thời gian truyền dẫn tiếp theo và để trống một phần không sử dụng trong khe thời gian hiện tại.
Bản tin Report sẽ được ONU gởi đi trong cửa sổ truyền dẫn gán cho nó cùng với các khung dữ liệu. Các bản tin Report có thể được gởi một cách tự động hay theo yêu cầu của OLT. Các bản tin Report được tạo ra ở lớp trên lớp điều khiển MAC (MAC Control Client) và được gán nhãn thời gian tại lớp điều khiển MAC (Hình 4.5). Thông thường Report sẽ chứa độ dài yêu cầu cho khe thời gian tiếp theo dựa trên độ dài hàng đợi của ONU. Khi yêu cầu một khe thời gian, ONU cũng có tính đến cả các phần mào đầu bản tin, đó là các khung mào đầu 64 bit và khung mào đầu IFG 96 bit được ghép vào trong khung dữ liệu.
Khi bản tin Report đã được gán nhãn thời gian đến OLT, nó sẽ đi qua lớp MAC (lớp chịu trách nhiệm phân bổ băng tần). Ngoài ra, OLT cũng sẽ tính lại chu
của sợi quang do nhiệt độ thay đổi. Nếu sự chênh lệch này là lớn thì OLT sẽ được cảnh báo ONU đã mất đồng bộ và OLT sẽ không cấp phiên truyền dẫn cho ONU cho đến khi nó được khởi tạo lại.
Hiện nay giao thức MPCP vẫn đang tiếp tục được xây dựng và phát triển bởi nhóm 802.3ah của IEEE. Đây là nhóm có nhiệm vụ phát triển và đưa ra các giải pháp Ethernet cho các thuê bao của mạng truy nhập.