IEEE 1394,,又稱火線(FireWire)接口,是一種高速度傳送接口,,適用于主板的標準工作速率為12.5,、25或50 Mb/s,適用于外設的標準所支持的數(shù)據(jù)率為100,、200和400 Mb/s,。
IEEE1394具備高速率寬帶;實時性等時傳輸,;采用細纜便于安裝,;采用總線結(jié)構;支持熱插拔等特點,。因此,,基予IEEE1394的特點,這里提出一種Linux下IEEE1394組網(wǎng)技術的設計方案,。
1 IEEE1394簡介
對于多媒體數(shù)據(jù)傳輸?shù)母咭蟠呱薎EEE1394(以下簡稱1394)的發(fā)展,。多媒體數(shù)據(jù)傳輸要具有實時性。單純圖形傳輸或網(wǎng)絡應用一般對實時性要求并不高,。例如在Internet上瀏覽主頁,,雖有延遲,但一般尚可接受,。如果網(wǎng)絡會議就要求具有實時性,。其次是連接的方便性、通用性,,并且成本較低,,這樣接口連接更簡便,應用更廣泛,。
1394可應用于家庭網(wǎng),、商業(yè)網(wǎng)以及Internet中的各種遠程系統(tǒng),,具有相同功能的1394產(chǎn)品要比普通的微機配套設備便宜,具有更好的可擴展性,。所有這些都使1394產(chǎn)品獲得了強勁無比的競爭力,。
1394具有如下特點:
1)高速率 IEEE1394-1995中規(guī)定速率為100~400 Mb/s。IEEE1394b的更高速度是800 Mb/s~3.2 Gb/s,。其實400Mb/s就可以滿足所有要求?,F(xiàn)在通常可能達到的物理流LSI速度是200Mb/s,。另外,,實際傳輸?shù)臄?shù)據(jù)一般都要經(jīng)過壓縮處理,,并不是直接傳輸原始視頻數(shù)據(jù),。因此200Mb/s能夠滿足實際需要。但對多路數(shù)字視頻信號傳輸來說,,傳輸速率總是越高越好,。
2)實時性 1394的特點是利用等時性傳輸來保證實時性,因此,,SSA,,F(xiàn)iber Channel及Ultra SCSI也都與IEEE1394具有同樣的性能。
3)采用細纜,,便于安裝 4根信號線與2根電源線構成的細纜使安裝簡單,,而且價格便宜。但接點間距只有4.5 m,。似乎略顯不足,。而采用延伸接點間距的方法,POF可以將接點間距延長至70m,。
4)總線結(jié)構 1394是總線,,不是I/O。向各裝置傳送數(shù)據(jù)時,,是按IEEE1212標準讀寫列入轉(zhuǎn)換的空間,。總之,,從上一層看,,1394是與PCI總線相同。
1394總線和常見的USB總線的不同之處在于:1394是一個對等的總線,。就是說,。任何一個總線上的設備都可主動發(fā)出請求。而USB總線上的設備則是等待主機發(fā)送請求,,然后做相應的動作,。因而1394設備更智能化,,因此1394就復雜一些,成本高一些,。這個特性決定了1394可以是脫離以桌面主機為中心的束縛,。
1394總線的拓撲結(jié)構與USB相同,都是樹形結(jié)構,。但IEEE1394b提出了一個避免環(huán)狀結(jié)構的方法,,即使設備連接形成一個圓環(huán)時,也能保證正常工作,。1394串行總線與PCI并行總線不一樣,,前者的兩個設備之間如果必須經(jīng)過第三個設備,那么數(shù)據(jù)必須從第三個設備穿過,。而后者則可直接在兩個設備間傳輸,,不用經(jīng)過第三個設備。
1394總線上的設備之間也會選舉一些設備成為總線管理,,做些額外的工作,,如:①根節(jié)點主要是在總線仲裁中做最終的裁判。②同步資源管理器:主要是在同步傳輸中,,管理帶寬,,或者提供總線的拓撲結(jié)構和有限的電源管理。③總線管理器可以設置根節(jié)點,,提供總線拓撲結(jié)構,,優(yōu)化網(wǎng)絡的響應時間,和更高級的電源管理,。
5)熱插拔 能帶電插拔,。增刪新裝置,不必關閉電源,,操作非常簡單,。
6)即插即用 增加新裝置不必設定ID,可自動予以分配,。1394的使用者不需要任何相關知識,,操作非常簡單,接上即用,。實際上,,當有新的設備接入某個1394端口時,整個總線將會進行一次總線復位(bus reset),。所有設備重新給自己起名字(節(jié)點標識,,Node ID)。1394的起名字的機制很簡單,,從0開始往上,,最多到62,。一般葉子節(jié)點的ID小,樹根的ID最大,。1394的總線復位時間:短的只要1 μs,,長的要160μs。
2 網(wǎng)絡地址轉(zhuǎn)換NAT原理
網(wǎng)絡地址轉(zhuǎn)換NAT(Network Address Translation)廣泛應用于各種類型Internet接入方式和各種類型的網(wǎng)絡中,。NAT不僅完美地解決了lP地址不足的問題,,而且還能夠有效避免來自網(wǎng)絡外部的攻擊,隱藏并保護網(wǎng)絡內(nèi)部的計算機,。
借助于NAT,,私有(保留)地址的“內(nèi)部”網(wǎng)絡通過路由器發(fā)送數(shù)據(jù)包,私有地址被轉(zhuǎn)換成合法的IP地址,,一個局域網(wǎng)只需使用少量外部IP地址即可實現(xiàn)私有地址網(wǎng)絡內(nèi)所有計算機與Intemet的通信需求,。NAT將自動修改IP報文頭的源IP地址和目的IP地址,IP地址校驗則在NAT處理過程中自動完成,。有些應用程序?qū)⒃碔P地址嵌入到IP報文的數(shù)據(jù)部分中,,所以還需要同時對報文進行修改,,以匹配IP頭中已經(jīng)修改過的源IP地址,。否則,在報文數(shù)據(jù)都分別嵌入IP地址的應用程序就不能正常工作,。
NAT的實現(xiàn)方式有3種,,即靜態(tài)轉(zhuǎn)換(Slatic NAT)、動態(tài)轉(zhuǎn)換(Dynamic NAT)和端口多路復用(OverLoad),。靜態(tài)轉(zhuǎn)換是指將內(nèi)部網(wǎng)絡的私有IP地址轉(zhuǎn)換為公有IP地址,,IP地址對是一對一的,某個私有IP地址只轉(zhuǎn)換為某個公有IP地址,。借助于靜態(tài)轉(zhuǎn)換,,可以實現(xiàn)外部網(wǎng)絡對內(nèi)部網(wǎng)絡中某些特定設備(如服務器)的訪問;動態(tài)轉(zhuǎn)換是指將內(nèi)部網(wǎng)絡的私有IP地址轉(zhuǎn)換為公用IP地址時,,IP地址對是不確定的,,所有被授權訪問Intemet的私有IP地址可隨機轉(zhuǎn)換為任何指定的合法IP地址。也就是說,,只要指定哪些內(nèi)部地址可以進行轉(zhuǎn)換,,以及用哪些合法地址作為外部地址時,就可以進行動態(tài)轉(zhuǎn)換,。動態(tài)轉(zhuǎn)換可以使用多個合法外部地址集,。當ISP提供的合法IP地址略少于網(wǎng)絡內(nèi)部的計算機數(shù)量時,可以采用動態(tài)轉(zhuǎn)換的方式,;端口多路復用是指改變外出數(shù)據(jù)包的源端口并進行端口轉(zhuǎn)換,,即端口地址轉(zhuǎn)換PAT(Port Address Translation),,采用端口多路復用方式。內(nèi)部網(wǎng)絡的所有主機均可共享一個合法外部IP地址實現(xiàn)對Intemet的訪問,。從而可最大限度地節(jié)約IP地址資源,。同時,又可隱藏網(wǎng)絡內(nèi)部的所有主機,,有效避免來自Internet的攻擊,。因此。目前網(wǎng)絡中應用最多的就是端口多路復用方式,。
NAT依賴于本地網(wǎng)絡上的一臺機器來初始化和路由器另一邊的主機的任何連接,,它可以阻止外部網(wǎng)絡上的主機的惡意活動,這樣就可以阻止網(wǎng)絡蠕蟲病毒,,提高本地系統(tǒng)的可靠性,;阻擋惡意瀏覽,提高本地系統(tǒng)的私密性,。同時,,它也為UDP的跨局域網(wǎng)傳輸提供了方便。
3 內(nèi)核支持模塊
Linux內(nèi)核具有模塊化設計,。在引導時,,只有少量的駐留內(nèi)核被載入內(nèi)存。這之后,,無論何時用戶要求使用駐留內(nèi)核中沒有的功能,,相關的內(nèi)核模塊(kemel module),有時稱驅(qū)動程序(driver),,就會被動態(tài)地載入內(nèi)存,。
內(nèi)核模塊不被編譯在內(nèi)核中,因而控制內(nèi)核大小,。然而模塊一旦被插入內(nèi)核,,則與內(nèi)核其他部分一樣。
內(nèi)核模塊的實現(xiàn)機制是:啟動時,,由函數(shù)voidinti_modules()初始化模塊,,因為大多時啟動時很多時候沒有模塊。這個函數(shù)往往把內(nèi)核自身當作一個虛模塊,。如有系統(tǒng)需要,,則調(diào)用一系列以sys開頭的函數(shù),對模塊進行操作,,如:sys_creat_modules(),,sys_inti_modules(),sys_deldte_modules()等。Linux從2.2開始支持1394,,在內(nèi)核中開始加入Linux Subsystem,。
4 技術需求
為實現(xiàn)1394網(wǎng)絡與千兆以太網(wǎng)的互聯(lián)互通,需要組成1394網(wǎng)絡及研制1394網(wǎng)關,。為組成1394網(wǎng)絡,,需3臺具有1394接口的設備,構成最小的1394網(wǎng)絡,;其中一臺設備具有千兆以太網(wǎng)接口,,作為網(wǎng)關,實現(xiàn)1394網(wǎng)絡與千兆以太網(wǎng)的互聯(lián)互通,。1394網(wǎng)絡組成框圖如圖1所示,。
1394網(wǎng)關與1394設備使用帶有1394接口卡的計算機:X86處理器,操作系統(tǒng)為Windows或Linux,。
5 1394組網(wǎng)實驗
1394組網(wǎng)實驗環(huán)境如下:
1)硬件環(huán)境PC機2臺,,1394適配卡2塊,1394連接線纜(4針),,以太網(wǎng)(外網(wǎng),,可訪問Internet)。
2)軟件環(huán)境操作系統(tǒng)為CentOS 5和Fedora 6,。
3)網(wǎng)絡結(jié)構 2臺PC用1394線纜連接,,其中一臺PC連接外網(wǎng),可通過以太網(wǎng)訪問Internet,,另一臺無其他連接,。
2臺PC機通過1394實現(xiàn)通信,且其中一臺PC可通過1394訪問外網(wǎng),。
實驗總體原理:通過編譯安裝相關模塊,實現(xiàn)“IP over1394”,,之后通過一系列配置,,實現(xiàn)通過1394連接訪問外網(wǎng)。通信時,,數(shù)據(jù)先被封裝成以太網(wǎng)下的標準包,,再被封裝成符合1394標準的傳輸格式,傳到目標節(jié)點后,,再進行相反順序的解包分析工作,。
圖2說明了在Linux中IEEE1394的模塊組成關系。其中,,OHCI1394-IEEE1394-eth1394-TCP/IP這條分支實現(xiàn)了1394的網(wǎng)絡功能,,也就是IP over 1394。
PC間通過1394連接實現(xiàn)網(wǎng)絡通信的原理圖如圖3所示。2臺PC的通信所使用的方式還是IP模式下的,,只是物理連接變成了1394高速連接,,而實現(xiàn)IP與1394之間聯(lián)系的是一個轉(zhuǎn)換模塊。
圖4顯示該轉(zhuǎn)換模塊所做的工作,。通過轉(zhuǎn)換包的結(jié)構,,使包的格式在兩種情況下轉(zhuǎn)換,就可以實現(xiàn)用1394傳輸,,用IP操作,。
為了在PC間建立通信,需要先使用ARP協(xié)議尋找目標機的物理地址,,這就需要發(fā)出ARP請求并接受ARP響應,。
圖5是1394的ARP包的格式。Hardware_type:硬件類型,,針對于1394,,這里就是0x0018;Protocol_type:協(xié)議類型,,針對1394的ARP,,該值是0x0800;Opeode:值1代表請求,,值2代表響應,;Sender_unique_ID:發(fā)送者的ID;Sender_IP_address:發(fā)送者的IP地址,;Target_IP_a-ddress:目標IP地址,。通過使用ARP協(xié)議獲得目標物理地址后,就可建立通信連接,。
1394網(wǎng)關的配置可將1394網(wǎng)關看成是1394網(wǎng)絡與以太網(wǎng)之間的路由器,。在配置1394網(wǎng)關時,使用NAT技術,,使該網(wǎng)關具有類似于以太網(wǎng)中內(nèi)外網(wǎng)之間路由器的功能,。
PC可相互Ping通,且未與外網(wǎng)直接連接的PC可通過另一臺作為1394網(wǎng)關的PC訪問外網(wǎng),,且網(wǎng)速較快,。通過1394訪問新浪網(wǎng)站時,用抓包軟件WireShark可以抓到鏈接到新浪網(wǎng)的HTTP包與TCP包,。
6 結(jié)論
通過努力,,現(xiàn)在所取得的成果主要有:1)實現(xiàn)1394的Linux下組網(wǎng),1394內(nèi)部網(wǎng)絡互相訪問,;2)實現(xiàn)1394網(wǎng)絡與以太網(wǎng)的融合,。通過一系列的安裝配置,,可以使1394網(wǎng)絡與以太網(wǎng)連成一體,用戶可以像在以太網(wǎng)中一樣,,進行訪問各類網(wǎng)站,,建立Ftp連接等正常網(wǎng)絡活動;3)對1394網(wǎng)絡性能進行了多方面的測試實驗,,對1394網(wǎng)絡性能的影響因素進行了初步的總結(jié),。后續(xù)應深化和完善1394整體性能,進一步提升通信速率,。造成實驗測試速率偏低的原因:PC性能限制,,1394線纜質(zhì)量等,以及內(nèi)核版本較舊,,緩沖區(qū)偏小等,。