3.3.5.1 協定堆
服務提供者節點主要是要處理 DVB-RCS 網路與 Internet 網路之間的溝通,
26
所以它的協定堆分為兩部分,分別是 DVB-RCS 網路的協定堆和 Internet 網路的 協定堆如圖 3-15,因為 Internet 網路的協定堆並非這次計劃的重點,故在本文獻 中不做詳細介紹。
在這兩組協定堆的上方都有一個 Interface 模組,這個模組是 NCTUns 中用 來將封包導進或導出 Linux Kernel 的介面,如此一來在這個節點所需要支援的路 由功能就可以直接借用 Linux Kernel 中原本的路由機制。
圖 3-15 服務提供者節點協定堆
3.3.5.2 SP_CTL 模組
SP_CTL 模組與 NCC_CTL 模組類似,在它之下掛有兩串不同的協定堆,分 別是將控制表格或是資料發送到正向通道,另一個則是接收反向通道上面的資料 封包,將其接收後送往 Interface 模組,使該封包能被路由到正確的目的。
在正向通道的這個部分,SP_CTL 模組在一啟動時會由設定檔取得所有衛星
27
地面接收站節點後方的 IP 位址,所以當 SP_CTL 模組由 Interface 模組收到一個 IP 封包時,它能由該封包的目的位址查表決定這個封包應該要送到那一個衛星 地面接收站節點,並決定這個 IP 封包在封裝成 MPEG2 Transport Stream 封包後 的 Packet ID 為多少,這些訊息 SP_CTL 模組會用 PAT、PMA、NIT 以及 INT 這 四種控制表格週期性的透過正像通到送給所有的衛星地面接收站節點並將這個 由 Interface 模組收到的 IP 封包送給 MPE 模組。
另外一方面,當 SP_CTL 模組在回饋通道這串協定堆收到一個資料封包時,
它會直接把它轉收到 Interface 模組,這樣一來 Linux Kernel 就會依照預先設定好 的路由表來轉送這個封包,若是這個封包的目的位址為 Internet 網路中的某一台 主機,則這個封包就會被轉到服務提供者節點中對應到 Internet 網路的那串協定 堆;若是目的位址為 DVB-RCS 網路中某台衛星地面接收站節點後方的主機,則 這個封包就會被轉到服務提供者節點中對應到 DVB-RCS 網路的那串協定堆,之 後就會依照上一段所敘述的機制把這個封包送到特定的衛星地面接收站節點。
3.3.5.3 MPE 模組
MPE 模組主要功能是把資料封裝成 DSM-CC 格式封裝。在這裡主要會接收 到兩種封包格式,資料封包及控制表格封包。由於控制表格封包原本已經符合 DSM-CC 格式,所以只需要對資料封包作格式封裝。
3.3.5.4 SECTION 模組
服務提供者節點與網路控制中心節點的 SECTION 模組幾乎是相同的,唯一 的差別是在服務提供者節點中的 SECTION 模組若收到已經封裝成 Datagram Section 的封包就不會對其做任何處理,直接把封包送往 MPEG2_TS_SP 模組。
28
3.3.5.5 MPEG2_TS_SP 模組
服務提供者節點與網路控制中心節點的 MPEG2_TS_NCC 模組是相同的,故 在此不再贅述。
3.3.5.6 RCS_ATM_SP 模組
RCS_ATM_SP 模組在此主要功能是將收到的 ATM 封包組合成一個 IP 封 包,當這個模組成功的組合出一個 IP 封包,則就會把這個 IP 封包送往 RCS_MAC_SP 模組。
3.3.5.7 RCS_MAC_SP 模組
由於反向通道是使用多頻帶分時多工的存取機制,這個模組要能模擬同時接 收多個頻帶訊號的行為,因此這當收到從閘道節點送過來的訊號時,它會模擬將 這個訊號中每一個頻帶的訊號取出,並給與每一個頻帶各一個獨立的計時器來計 算接收時間。為了模擬碰撞的情況,在接收時間結束之前若是又收到具相同頻帶 的訊號,則該頻帶的訊號就會被破壞,必須將其丟棄;反之在接收時間結束之前 都沒有收到同頻帶的訊號,則在接收時間結束時就會將這個 Burst 轉換回 ATM 封包送給 RCS_ATM_RCST 模組。