Linux 中調製解調器的數據和控制通道?
我將 USB 調製解調器檢測為設備設備文件 (
/dev/ttyACM0
)。將 AT 命令重定向到設備文件似乎在調製解調器響應時起作用。我採用以下假設,上半部分錶示控制通道。通過它,人們可以撥號、設置調製解調器、取消連接……通常只做與控制調製解調器相關的事情,而無需實際處理
data
. 我的意思是所有不受控制data
的東西(例如 HTTP 數據包)。數據流發生在哪裡?如果是通過同一個文件,那是如何復用的?
同樣理想的是,人們希望調製解調器只是一種底層“服務”,它提供帶有 IP 的網路介面,因此可以將其抽像出來並使用 TCP/IP 套接字。套接字在核心中實現。
/dev/ttyACM0
一旦調製解調器暴露在使用者空間中,這將如何適應圖片?
使用 AT 式調製解調器“介面”的設備在多種狀態下執行:
- 命令模式
- 撥號方式
- 握手模式
- 數據模式
調製解調器以命令模式啟動,並響應
AT
帶前綴的命令。一旦他們建立連接(ATD
例如,在通過撥號和握手模式之後),他們就會切換到數據模式,並且發送給他們的任何數據都會傳輸到他們所連接的設備。要切換回命令模式,發送方需要暫停數據流一段時間,發送+++
,然後再次暫停;調製解調器切換回命令模式並AT
再次開始響應命令(並且數據流被中斷)。一些調製解調器不需要暫停,這意味著如果數據包含,數據將被解釋為命令序列
+++
(因此+++ATH0
IRC 上的惡作劇)。要在調製解調器數據連接之上提供另一種協議,您需要使用另一種工具。您使用哪種工具取決於另一端期望的協議(SLIP、PPP、PPPoE…);例如,您將
ppp
用於 PPP(最好集成到您的發行版中,因此設置最終大部分是透明的)。這將提供某種形式的 IP 封裝,然後您就可以像往常一樣使用 IP。所涉及的工具將使用與調製解調器通信所需的任何設備(/dev/ttyACM0
在您的情況下),並公開系統其餘部分可用於網路目的的另一個介面(一般來說,網路介面,例如ppp0
)。