Linux

Linux 中調製解調器的數據和控制通道?

  • April 17, 2018

我將 USB 調製解調器檢測為設備設備文件 ( /dev/ttyACM0)。將 AT 命令重定向到設備文件似乎在調製解調器響應時起作用。

我採用以下假設,上半部分錶示控制通道。通過它,人們可以撥號、設置調製解調器、取消連接……通常只做與控制調製解調器相關的事情,而無需實際處理data. 我的意思是所有不受控制data的東西(例如 HTTP 數據包)。

數據流發生在哪裡?如果是通過同一個文件,那是如何復用的?

同樣理想的是,人們希望調製解調器只是一種底層“服務”,它提供帶有 IP 的網路介面,因此可以將其抽像出來並使用 TCP/IP 套接字。套接字在核心中實現。

/dev/ttyACM0一旦調製解調器暴露在使用者空間中,這將如何適應圖片

使用 AT 式調製解調器“介面”的設備在多種狀態下執行:

  • 命令模式
  • 撥號方式
  • 握手模式
  • 數據模式

調製解調器以命令模式啟動,並響應AT帶前綴的命令。一旦他們建立連接(ATD例如,在通過撥號和握手模式之後),他們就會切換到數據模式,並且發送給他們的任何數據都會傳輸到他們所連接的設備。要切換回命令模式,發送方需要暫停數據流一段時間,發送+++,然後再次暫停;調製解調器切換回命令模式並AT再次開始響應命令(並且數據流被中斷)。

一些調製解調器不需要暫停,這意味著如果數據包含,數據將被解釋為命令序列+++(因此+++ATH0IRC 上的惡作劇)。

要在調製解調器數據連接之上提供另一種協議,您需要使用另一種工具。您使用哪種工具取決於另一端期望的協議(SLIP、PPP、PPPoE…);例如,您將ppp用於 PPP(最好集成到您的發行版中,因此設置最終大部分是透明的)。這將提供某種形式的 IP 封裝,然後您就可以像往常一樣使用 IP。所涉及的工具將使用與調製解調器通信所需的任何設備(/dev/ttyACM0在您的情況下),並公開系統其餘部分可用於網路目的的另一個介面(一般來說,網路介面,例如 ppp0)。

引用自:https://unix.stackexchange.com/questions/438265