PPPoE のように動作する Ubuntu GNU/Linux マシンでソフトウェア シミュレーションを作成しようとしています。このシミュレーターで発信パケットを取得し、イーサネット ヘッダーを取り除き、PPP フラグ (7E、FF、03、00、および 21) を挿入し、IP 層情報を PPP パケットに配置するようにします。データの後に続く FCS に問題があります。私が知る限り、私が使用しているセル モデムには、CRC16-CCITT メソッドを使用する 2 バイトの FCS があります。このチェックサムを計算するソフトウェアをいくつか見つけましたが、シリアル回線から出力されるものを生成するものはありません (シリアル回線の「スニファー」を使用して、モデムが送信されているものをすべて表示します)。
pppd のソースと Linux カーネル自体を調べたところ、どちらにもデータに FCS を追加する方法があることがわかりました。カーネルハッキングの経験がないので、実装するのはかなり難しいようです。カーネルが生成する FCS と一致する FCS を計算する簡単な方法 (できれば Python) を誰かが思いつくことができますか?
ありがとう。
PS誰かが望むなら、シリアルモデムに得ているデータ出力のサンプルを追加できます。