歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

基於PPP協議的Linux與Windows CE網絡

本文介紹了通過網絡實現 Linux 主機與 Windows CE 設備協同工作的方法。本文首先利用PPP 協議在 Linux 主機與 Windows CE 設備之間建立起連接,然後在 Windows CE 設備上運行一個 FTP服務器使得 Linux 主機能夠訪問 Windows CE 設備上的資源。本文所介紹的解決方案,對 Windows 9x/2000/NT 主機同樣適用。

背景介紹

Linux是一個類似於UNIX 的操作系統,它起源於芬蘭一個名為Linus Torvalds 的業余愛好,但是現在已經是最為流行的一款免費操作系統。普通用戶在Linux 上 辦公、浏覽網站、發送郵件以及玩游戲,許多大學和科研機構也Linux 來完成日常 的計算任務。在商業領域,由於Linux 系統價格低、安全性能高並且非常穩定,許 多公司均將自己的服務器構建在Linux的基礎上。根據國際商用數據公司(IDC)的統 計,世界上大約有三分之一的網站服務器使用Linux作為操作系統。

Windows CE,根據微軟公司在Windows CE and Pocket PC: FAQ 中的定義,是 操作系統開發商用以構建專有操作系統的一系列組件。原始設備制造商(OEM) 可以 向微軟公司購買一個稱為"Windows CE平台開發系統"的集成開發環境並利用該系 統組裝和編譯基於Windows CE的操作系統,該操作系統包括一系列基於Windows CE 的組件以及開發商自行開發的應用軟件或者是設備驅動程序。由於基於Windows CE 的操作系統具有與微軟Windows 系列操作系統相類似的用戶界面,因此受到眾多最 終用戶以及開發商的青睐。目前Windows CE已經被廣泛應用在手機,掌上型電腦, 個人數字助理,快譯通以及電子字典等便攜式設備上。

長期以來,Windows CE設備的用戶還需要配備一台基於Windows 9x/2000/NT的 主機用於與Windows CE設備交換數據。在該主機上運行微軟公司提供的Windows CE服務軟件,該軟件通過一條RS-232數據線與Windows CE設備建立起點對點連接,用戶可以通過這個服務軟件訪問Windows CE設備,但是局域網裡面的其它計算機不能 夠訪問該Windows CE設備。如果需要使得局域網裡面的其它計算機也能夠訪問該設備,則需要為該設備安裝昂貴的專用網卡以及相關接入設備,是一種非常不經濟的 解決方案。

本文利用Red Hat Linux 7.2操作系統自帶的PPP服務器與Windows CE設備之間 建立起TCP/IP連接,然後在Windows CE設備上運行一個FTP服務器使得Linux主機能 夠訪問Windows CE設備上的資源。由於本方法基於Windows CE設備自帶的RS-232數 據線,不需要購買額外的任何設備,因此是一種經濟實用的解決方案。此外,本文 所介紹的解決方案,對Windows 9x/2000/NT主機同樣適用。

連接Linux與Windows CE

點對點數據傳輸協議(Point to Point Protocol, PPP)是一個通過串口線傳送 IP數據包的協議。使用PPP 協議,一台計算機能夠通過串口線、電話線等通訊設備 登陸到遠程主機並且利用該主機或者是主機所在網絡的資源。在點對點通訊中包括服務器和客戶機兩個部分,其中客戶機向服務器請求網絡連接,服務器接收客戶機 的請求建立網絡連接並分配給客戶機相應的網絡資源。當網絡連接建立起來以後,服務器和客戶機之間是嚴格對等的。由於Linux操作系統通常都帶有PPP服務器和客 戶端程序,而Windows CE操作系統通常僅帶有PPP客戶端程序,因此我們使用Linux 主機作為PPP服務器,Windows CE設備作為PPP客戶端。

為了使用Linux主機作為PPP服務器,我們首先必須確認該主機上是否已經安裝 有PPP服務器程序pppd。通常該程序被安裝在/usr/sbin目錄下,我們可以利用下面 的命令查找該目錄下是否存在這個文件:

ls /usr/sbin/pppd

最近正式發行的Linux操作系統(例如Red Hat Linux 6.x/7.x)通常都已經預先 安裝有PPP服務器程序。如果Linux 主機尚未安裝PPP服務器,那麼我們應該首先下 載並安裝一個PPP服務器程序,例如pppd2.3.4。安裝該程序包可能還需要其它包的 支持,由於應用程序的安裝已經超出了本文的討論范圍,請感興趣的讀者自行參考 其它相關資料。

確認PPP服務器已經安裝在Linux主機上之後,我們需要對Linux 主機進行一些 必要的配置,為了進行這些配置我們需要擁有root權限。

建立文件/etc/ppp/peers/wince,內容如下:

/dev/ttyS0 115200 crtscts
connect '/usr/sbin/chat -v -f /etc/ppp/wince.chat'
noauth
local
90.0.0.1:90.0.0.2

建立文件/etc/ppp/wince.chat,內容如下:

TIMEOUT 3600
"CLIENT" "CLIENT\c"
"" "SERVER\c"

在上面的兩個配置文件中,使用wince 作為文件名僅僅是用來表示這個配置文 件是給一個Windows CE設備使用的。讀者也可以自行選用其它的文件名,例如palm 或者是handheld等等,但是必須保證兩個文件名是一致的。

配置文件/etc/ppp/peers/wince指定使用串口ttyS0以115,200 bps的速率與客 戶設備建立連接,noauth參數說明在客戶機請求連接的時候不需要身份認證。在這 個對等連接中,服務器(Linux 主機)的IP是90.0.0.1,客戶機(Windows Ce設備)的 IP是90.0.0.2。配置文件/etc/ppp/wince.chat中的TIMEOUT參數指定服務器的等待 時間,如果超過這個時間仍然沒有接收到客戶機的連接請求則終止當前的服務器程 序。如果有讀者需要更進一步的了解相關的配置,請自行參考chat以及pppd的相關 文檔。

在Windows CE設備端需要做的配置相對來說比較簡單。由於Windows CE默認的 自動連接功能占用了該設備的串口,我們首先需要停止使用該功能。在開始菜單中 選擇"設置->通訊->PC連線"並將其設置為不啟用與PC的連接即可停止該功能。然後 我們重新建立一個連接,在開始菜單種選擇"程序->通訊->連接管理器",然後點擊 "新建連接"圖標,將新的連接命名為Linux 並指定連接類型為"直線連接",在下一 步中指定使用COM1進行連接並設置其通訊速率為115,200,在TCP/IP 設置中指定該 設備的IP為90.0.0.2。點擊OK存盤以後該連接會出現在"程序->通訊"菜單裡面。

利用如下命令在Linux主機上啟動PPP服務器:

pppd call wince

在Windows CE 設備上啟動新建的連接(程序->通訊->Linux)之後,網絡連線圖 標會出現在Windows CE設備的任務欄上,Linux 主機則顯示如下信息表明已經成功 與Windows CE設備建立起連接:

Serial connection established.
Using interface ppp0
Connect: ppp0 <--> ttyS0
found interface eth0 for proxy arp
local IP address 90.0.0.1
remote IP address 90.0.0.2

我們還可以使用Linux 主機提供的ping命令來驗證是否已經成功與Windows CE 設備建立連接:

ping 90.0.0.2

如果Linux 主機已經成功的與Windows CE設備建立連接,那麼我們應該能夠看 到類似於下面的信息:

PING 90.0.0.2 (90.0.0.2) from 90.0.0.1 : 56(84) bytes of data.
64 bytes from 90.0.0.2: icmp_seq=0 ttl=32 time=26.587 msec
64 bytes from 90.0.0.2: icmp_seq=1 ttl=32 time=19.928 msec
64 bytes from 90.0.0.2: icmp_seq=2 ttl=32 time=19.939 msec
64 bytes from 90.0.0.2: icmp_seq=3 ttl=32 time=19.947 msec

基於Windows CE的FTP軟件

當我們成功的在Linux主機與Windows CE設備之間建立起PPP連接之後,下一步 應該做些什麼呢?當然,我們需要一些合適的程序用來在Linux 主機與Windows CE 設備之間進行文件交換。我們現在已經能夠利用TCP/IP協議在Linux主機和Windows CE設備之間傳輸數據,很顯然FTP程序是一個合適的選擇。

FTP(File Transport Protocol,文件傳輸協議)是一種被廣泛使用的在網絡上 進行文件交換的協議。由於數據傳輸可靠性的要求,FTP 是一種基於TCP/IP的傳輸 協議。在一個FTP 會話中包括一個服務器端和一個客戶端,客戶端主動連接到服務 器端並向服務器發送文件傳輸請求,服務器端等待客戶端的接入並處理客戶端的文 件傳輸請求。

PE FTP Explorer是非常流行的基於Windows CE的FTP客戶端軟件,同時也是一 個功能齊全的文件浏覽器。與在PC機上常用的Cute FTP和WS FTP等FTP 客戶端相類 似,用戶能夠利用鼠標(指針)放縮本地端和服務器端的目錄樹,上載或者是下載文 件和目錄,也可以對文件或者是目錄進行改名和刪除。這個軟件可以從CE Archive 網站(http://www.cearchives.com/ftp.html)獲得。在該網站讀者還可以找到另外 一個很流行的FTP客戶端vxFTP。

FTP 客戶端軟件的功能雖然已經非常的完備而且操作簡單,但是仍然不可避免 的要收到便攜式設備窄小的顯示器的限制。如果能夠在便攜式設備上建立一個FTP服務器,那麼文件傳輸操作就可以在Linux主機上利用常用FTP客戶端的進行。

ftpsrv.exe就是這樣一個基於Windows CE的FTP服務器軟件。這個僅有28.5 KB 的小程序,除了不提供身份認證功能和Passive 傳輸模式以外,能夠處理大多數常 見的FTP 請求。利用微軟提供的Windows CE服務軟件將ftpsrv.exe上載到便攜式設備的任意目錄下,啟動該程序以後在任務條上會出現一個類似於一台計算機連接兩 個便攜式設備的小圖標。利用指針點擊該圖標以後會出現一個小小的控制窗口,在 這裡我們可以改變FTP服務器的端口號或者是終止該程序。ftpsrv.exe可以從http://pda.tucows.com/或者是http://www.oohito.com/獲 得。在這兩個網站讀者還可以找到更多有用的小程序。

其它

如果有讀者使用的是Windows 9x/2000/NT主機,那麼也可以利用Windows 提供 的直線電纜連接功能與Windows CE設備建立起PPP連接。

例如:在Windows 2000主機上,從開始菜單中選擇設置->網絡和撥號連接->新 建連接。在隨後出現的網絡連接向導中選擇直接連接到另一台計算機並將該機器配 置為主機。選擇合適的通訊端口並配置通訊速率以後,該主機作為PPP服務器等待 客戶機接入。同樣,在Windows CE設備上新建一個連接,指定合適的通訊端口並配 置起通訊參數以後,即可與Windows主機建立起點對點連接。由於Windows主機已經 配備了動態網絡地址分配(DHCP)服務器,因此Windows CE設備既可以使用實現指定 的靜態IP地址,也可以使用服務器實時分配的動態IP地址。但是,由於直線電纜連 接所允許的最高傳輸速率為19,200 bps,使用Windows 9x/2000/NT主機作為PPP服 務器似乎比不上Linux主機實用。

如果將PPP服務器設置為網關,則局域網裡面所有的機器都可以通過改網關訪 問已經連接到網絡上的Windows CE設備。在Linux 主機上,可以通過ipchains將該 主機設置成透明網關;在Windows 9x/2000/NT 主機上,可以通過Win Proxy等代理服務器軟件將其設置為透明網關。如果有讀者需要更進一步了解如何將Linux 或者 是Windows主機設置為透明網關的方法,請自行閱讀其它參考資料。

作者簡介

蔣清野,軟件工程專家。1999年7月獲得清華大學學士學位,2001年1月獲得伊裡諾 大學(Univ. of Illinois at Urbana-Champaign)碩士學位,目前是美國導航與控 制公司(American GNC Corporation)工程專家。主要研究領域包括遙感圖像信息處 理,GPS應用,慣性導航,無線通訊和高速網絡技術。

Copyright © Linux教程網 All Rights Reserved