カーネルに強いプログラマきて
■ このスレッドは過去ログ倉庫に格納されています
データリンク層を全て自作プロトコルにすることって可能?
出来るとしたらどんなふうに実現すればいいだろう
車輪の再発明とかそういうツッコミはなしで そんな無駄なことする目的がわからん。。。
とりあえずイーサネットフレームを解釈できてarp解決できれば互換あるからなんとかなるんじゃない? トークンリングとかまだあるのかね
そーゆーのを作りたい感じ? もうちょっと下のcsma/cdの所をどうにかしたいの?
そこは昔はトークンリングとか色々あったんだよね。。。 >>11
イーサネットフレーム解釈したとしてL2ってどうやってプログラムからさわるの?
NICをNICとして認識させてるものって何 ドライバだろ
nicのドライバのソースでも見てみれば? ebtablesでmacアドレスをいたずら遊んだことはある そのレベルになっちゃうとシリアル通信を自前で作るマイコンみたいにタイマーとか動かして自前でポートパタパタしないと行けないんじゃないの?
クロック線を自前でパタパタするにしろ(SPI)、決まったタイミングでデータ信号をパタパタさせるにしろ(UART)衝突検出とか無視するにしたってけっこう大変だけど結局信号線のパタパタがどういう意味かってのが送信機と受信機で共有できてりゃそれはもう自前のプロトコルと言えるからそれはデータリンク層を自作したと言えるのではないのだろうか >>22
それなんだが一応自作のソフトモデム作ってそれぞれにMAC的なもの振って衝突検知までは実装できたんだよね
そこからどうやて既存のプロトコルスタックに組み込めばいいか分からなくて >>17
ドライバカー
Nicのドライバどこで見れる? >>24
linuxのソースダウンロードかな
おれはカニのサイトでよくlinuxのドライバソースダウンロードしてる >>25
あーそっか
Linuxのソース見に行けばいいのか if一緒ならできるんじゃね
それも変えたいならラッパーも作らないと >>29
IFはシリアルだね
現状はシリアルでモデムにデータ送ってる >>30
エラーチェックとか無視してめっちゃ高速にしよう >>31
伝送方式の都合上ガッチガチに誤り訂正しないとだめなんよね
申し訳程度にデータ部はgzipで圧縮してるけど難しい ちなみにイーサネットに関してはコリジョンとか気にしてるのかも知れないけど現状バカハブなんてほとんどなくて世の中スイッチだからコリジョンなんて発生しない世の中になってるぞ >>33
いま作ってるデバイスは基本全二重通信は可能だけど、全二重通信するとノイズ乗りまくってスループットが大幅に下がるので半二重っぽい感じにしてる >>32
モデムとのやりとりはATコマンド使ってるの? モデムは電話回線とか一切関係なしにただアナログ波形を変調復調するだけです 二重シールドのシリアルケーブル使うとかインタフェース変えて光とかにした方が手っ取り早い気が。。。 >>38
ちゃうちゃう
シリアルの部分はどうでもいい
今でも売ってるUSBモデムみたいなものをイメージしてほしい 音声無線通信をやりたいんだよ
シリアル通してデバイスにデータ送るとスピーカーから音鳴ってマイクで音拾って復調してを繰り返すやつ >>41
そうそうそんなかんじ
ただ俺ダイヤルアップ回線の時代まだ生まれてないからまったくピンとこないんだよね
目標は音声無線通信 >>43
現状500bps止まり
いまは変調方式に単純なFSK使ってるんだけど、多値FSK使えば大体1kbpsは行けそうって感じ
音響カプラみたいにマイクとスピーカーをがっちり固めれば多分ガンガンあげられそうなきもするけどやりたいことじゃない 低レベルI/Oを許すドライバがあれば何でもできるとは思うけどね
Windowsってアプリケーションプログラムからシステムコールを直接呼べるか知らないけどもし呼べたらデバイスドライバさえいらない
通信も究極までいっちゃえば線に信号が来てるか来てないかを一定周期で見張って応答信号を発信するだけだし
とりま無手順のサーバクライアント通信のサンプルを見つけられればそこを出発点にできると思う >>48
低レイヤーをきちんと理解している人間ならやり方は自明なのかもしれないけどはっきり言って俺は全く分からない >>49
ハードウェアの制御って2種類しか方法ないからね
特定の番地を特定のハードウェア専用に確保してOSはそこを見張るだけ(DMA)
特定のハード用のプログラムが置いてある番地に決められたプロトコルで構築したデータを丸投げして結果を返してもらう
返してもらうときにアプリケーションプログラムのようにデータだけが飛んでくる場合と特定メモリに非同期に答えが書かれる場合(ブロック転送)があるけどここはハード次第
あとは割込み(特にNMI)を勉強すれば最低限の知識は身につく
PC98時代にゲーム用OS作るプロジェクトに参加してブートストラップとグラフィックドライバとサウンドドライバ作ったわ
でももう今はそんな時代じゃない気がする
趣味でやるならPCじゃなくてマイコンを組み立てて必要最低限なハードと機械語を直接書き込んで動かす方が楽かもしれないと思うほど今のハードは複雑 >>50
なかなかそすあくできないけど
なんとなくきっかけ掴めそう
いいなぁすげぇ楽しそう
多分情報系大学にでも行けていればそういったことに近いこともできたかもしれないなぁ ■ このスレッドは過去ログ倉庫に格納されています