最近被逼著要去開始學習RFC2217的project
其實有一點不想, 但是沒辦法, 拿人家薪水嘛
所以開始研究了一下它
說實話RFC2217並不複雜
簡單來說, 他就是將Serial Port變成一個可以在網路上使用的裝置
而client端只要有一個2217相容的軟體
便可以在本機模擬出一個serial port(好吧...COM port)
其實Open Source已經有一些project針對2217來實作
最近看了幾個, 跟各位分享一下
(1) ser2net
這個project會開啟2個socket, 一個用來當成控制用, 另一個是用來傳送RFC2217 data
(2) sercd
sercd利用了inetd的機制來實作, 因此他非常的簡單, 簡單到只有一個C檔案
但是有時候簡單的作法反而比較好, ㄏㄏ
因此使用他的前提是你必須安裝inetd或是xinetd
並且將/etc/service與inetd的設定檔設好(xinetd要加入他的設定檔至xinetd的
service目錄)
(3) telnetcpcd
這個daemon我比較欣賞的地方是他將RFC2217的部份分離開來
所以很清楚的知道2217的運作流程
另外, Java有一個RFC2217的library可以使用(都沒有C語言的....真是)
一般來說2217的連接並不困難
但我覺得問題是安全性的問題
因為這類設備的應用有時候也還挺需要保密的
例如一些遠端環境監控設備, 遠端瓦斯錶
早期這些設備多是serial port的設備
在網路越來越發達的時候就會想要把他加入網路而能夠從遠端監控
但是RFC2217只定義了serial轉換network的這段
舉例來說, ser2net會先建立data port然後建立controll port
但這種裝況下所有在網路上的點都可以存取它(他的data socket一開始便存在)
他的作法不像SIP是先在控制端討論好後
再建立一個data session(for voice)
所以基本上我並不是很喜歡這種作法
很多工控設備的廠商大多把精力花在去弄控制介面
譬如, 用網頁控制或是用自己的AP utility去控制
但是我覺得這段卻比較少去改變
加上很多公司都是拿了Open Source的程式碼去修改
加入一些user friendly的功能便要開始賺錢(又不open source....沒良心)
這種情況之下......其實我也沒太大興趣了
but.....Money Talks.........
No comments:
Post a Comment