詢問-應(yīng)答機(jī)制的描述
OLT以先到先處理為原則處理從ONU發(fā)來的請(qǐng)求。OLT有一個(gè)信息表,記錄了每個(gè)ONU的緩沖區(qū)和RTT(round-trip time)大小。若某一時(shí)刻OLT收到ONUi發(fā)來的請(qǐng)求,則即時(shí)處理,根據(jù)請(qǐng)求的信息更新信息表,并立即向ONUi發(fā)送一個(gè)應(yīng)答信號(hào),準(zhǔn)許其在指定時(shí)刻發(fā)送一定大小的數(shù)據(jù)。
為簡(jiǎn)便說明,假設(shè)一個(gè)系統(tǒng)只有3個(gè)ONU。如圖1所示,在t0時(shí)刻,OLT收到ONU1發(fā)來的請(qǐng)求,則立即處理并向ONU1發(fā)送一個(gè)應(yīng)答信號(hào)G1,準(zhǔn)許其在t1時(shí)刻發(fā)送6 000 bit的數(shù)據(jù)。收到G1后,ONU1在t1時(shí)刻開始發(fā)送數(shù)據(jù)。該數(shù)據(jù)由6 000 bit的數(shù)據(jù)和ONU1新的請(qǐng)求R1組成。ONU1通過R1告訴OLT在請(qǐng)求產(chǎn)生時(shí)刻ONU緩沖區(qū)里的剩余比特?cái)?shù)。若一個(gè)ONU清空了緩沖區(qū),就向OLT報(bào)告0字節(jié)。相應(yīng)地,OLT向其發(fā)送0字節(jié)的應(yīng)答,允許發(fā)送一個(gè)新的沒有數(shù)據(jù)的請(qǐng)求。因請(qǐng)求和應(yīng)答時(shí)間只消耗很小一部分帶寬,OLT接收信道的利用率接近100%。在一段時(shí)間后,ONU1的數(shù)據(jù)到達(dá)了OLT,OLT用R1中的信息以及通過發(fā)送G1和收到數(shù)據(jù)的時(shí)間來更新信息表。因?yàn)橐阎狾NU1發(fā)送的數(shù)據(jù)大小,OLT又知ONU1發(fā)送的最后一個(gè)比特到來的時(shí)間,從而可以合理安排ONU2發(fā)送數(shù)據(jù)的時(shí)間,使ONU2的第一個(gè)比特能緊接著ONU1的最后一個(gè)比特的到來,其間只隔保護(hù)間隔B,用同樣方法可處理ONU3的數(shù)據(jù)及R3。
圖1 DBA算法的流程
冷啟動(dòng)
冷啟動(dòng)開始時(shí),OLT按順序每隔300 μs向一個(gè)ONU發(fā)送0字節(jié)的應(yīng)答作為測(cè)距信息,依次處理收到的請(qǐng)求,先根據(jù)收到的請(qǐng)求信息將狀態(tài)表更新,再根據(jù)狀態(tài)表生成新的應(yīng)答信息并發(fā)送給相應(yīng)的ONU。若隔了300 μs未收到請(qǐng)求,則將該ONU的RTT標(biāo)志為TIMEOUT。若有N個(gè)ONU,則冷啟動(dòng)全過程歷時(shí)300N μs。
啟動(dòng)結(jié)束后RTT[i]=TIMEOUT的ONU被標(biāo)記為未激活的ONU。OLT以1 s的間隔向ONU發(fā)送測(cè)距應(yīng)答信息。若連續(xù)向某個(gè)ONU發(fā)送3次應(yīng)答,其狀態(tài)表表項(xiàng)都未更新,則將該ONU標(biāo)記為未連接的ONU,每隔1 min向該ONU發(fā)送一次應(yīng)答,其斷開的ONU只占用很少的帶寬。