hamayan こんにちは。恩田です。 > "Norio> の最大サイズは1,472byteを15msで返してくれました。これより大きなサイズは、応答が > "Norio> ないですが、OSがコケるということはありませんでした。やはりOSにはこれくらいの安定性 > "Norio> が欲しいですね。 > > ETHERフレームを超えるPINGの場合、ICMPメッセージタイプにフラグメントが有るよ!と言うコード > が送られて来るのですが、現在は、ETHERフレームを超えるパケットをサポートしていないので、この > パケットが来た時、破棄する様に作ってあるからです。バッファオーバーフロー等は起していないので > 落ちる事はありませんが。 なるほど。PINGの実装をそのようにされていたので、このような反応があったわけですね。 > "Norio> hamayanさんのホームページを拝見させていただき、今回試用したHOS-V4の概要が、 > "Norio> だいたいわかりました。ITRON仕様のOSなんですね。 > "Norio> 私はITRONについて全くわからないので、利用するにあたってちょっとしりごみしてしまいます。 > "Norio> ドキュメントが揃っていれば、すぐにでも手を付けたいのですが...この点は、H8/OSやNut/OS > > 全く、現在のITRONの最大の泣き所だと私は思うのですが・・・、個人や、小さな規模のソフトハウスで > 普及していないのは、フリーで使えるITRONが極僅かで、それもインターネットが普及してからようやく > 広まり始めた状態だからだと思います。 組み込み(マイコン)用OSと言うのは非常に高価というイメージがありますよね。それが、近頃フリーの OSが簡単に入手できるようになってきましたが、OSを使わないプログラムで間に合っているものには、 あえてOSを導入するきっかけがあまり無いのかなと思います。 しかし、イーサネットのような複雑なプロトコルを処理する必要があるアプリケーションでは、全てを自前で 構築するのは時間もかかり大変なので、OSを利用するメリットが出てくるのかなと思います。 > RTOSの仕様としては、極めて標準で、完成度が高く、教育目的も持って作成されているので、始めて > しまえばそれ程難しくはないのですがね。 > 知っている人はとっくに使っている、知らない人はまるで知らない、と言う極端な状態が現状でしょう。 TRONというのは世に出てずいぶん時間が経っていて、ようやく、世間に正しく認識されてきたというような 記事をどこかで読んだことがあります。これは、マイコンの性能が上がりキラーアプリが登場したからでしょう。 私もOSを必要とする理由が出来たので、いずれITRONに手を出してみたいと思います。 > "Norio> などはAPIの解説などが書かれているので手を付けやすいです。 > "Norio> 私としては、マイコンボードにHTTP,SMTP,POP3プロトコルのアプリを実装して、ルーター越えをして > "Norio> データをやり取りしたいなと思っています。UDPプロトコルだと、LAN内の制御だけならいいんですが、 > "Norio> ルーター越えできないアプリの実装しかできない?ので、OSにTCPプロトコルまで含まれている > > TCP!正に私のプロトコルの泣き所ですねえ。 > TCPもUDPも、物理的に地球の裏側までネットワークが接続されていれば、届く訳ですが、確実に > 地球の裏側と、通信を行うと成ると、TCPを実装しなければならなくなりますね。 ブラウザやメーラーでマイコンと通信しようとするとTCPが必要ですよね。ブラウザやメーラーなら パソコンに必ず備わっているので、パソコン側のアプリの準備が不要になるというメリットがあるかなと思います。 > 逆に、LAN内ならUDPでもそれ程品質を落とさずに通信できるので、実際ETHERNETでUDPを通信する > と、受信する時に、1回のCRCチェックと、2回のチェックサムを行っているので、組込みの現場では、 > オーバーヘッドの遥かに小さいUDPを良く利用しています。 LAN内の機器間のやり取りや、パソコン側の専用アプリとのやり取りには、UDPの方が良さそうですね。 > あと、ストリーム系のアプリケーション、画像とか、音楽とかもUDPを利用していると思ったけれど。 それは知りませんでした。ストリーミング配信は再送すると手間だから再送の無いUDPを利用するんですね。 てっきりルターはTCPしか通らないと思っていました。 > TCP!何が面倒かと言えば、ウインドウ制御をどうしてやろうか、で蹴躓いているんですね。 > ハンドシェークの方は、それ程でも無いのですが・・・、極端な話、極々小さなWebデータを送るだけの > 、データパケットのやり取りが一回で済む様な、限定された条件のHTTPアプリとかは直ぐにでも出来そ > うですが、目的としてはTCPをサポートする事で、HTTPの実装でないから、ついでに勉強の目的でも > 有りますし、ネットワークの参考書を読みながら、一つ一つ、フルスクラッチで作成しています。 > 一歩進んで、二歩さがる!って感じです。 > > 最終的には、TCPでもソケットインタフェースの様な物を実装したい。 > UDPでは、既にソケットインタフェースの様な物、socketとか、closeとか、bindとか、sendtoとか、 > recvfromとかのインタフェースは用意してあります。 TCPコネクションの状態遷移図を見ただけでも複雑そうですね。さらに、このコネクションを同時に複数 扱わないといけないというと、とんでもなくややこしくなりそうですね。 > そうそう、UDPでもPINGでも、ルーター越えはします。一応!はい。 > ターミナルからpingでインターネットアドレス宛てに送ってみてください。 > 自ネットワークアドレス以外のネットワークアドレスへの送信の場合は、ルーター宛てにパケットを送る様 > にして有ります。 > もっとも、ルーターアドレスはネットワークアドレスの1番と決め込んでいますが。 そうですね。PINGはICMPプロトコルのアプリだからルーター越えしますね。 > でも、TCPやっぱり使う側の要求は、こうやって当然の如く出てきますよね。判っていても、知らん振り > していた事は、否めないので、頑張ってやって行こうと思っています。貴重な御意見有り難うございました。 勉強もかねてTCPを独力で実装をされているhamayan に脱帽します。 このような姿勢がないと、アプリ側だけではシステムの根本的な安定性・性能を改善できないのかなと思います。 Linuxなどの安定性もこのような難しい部分の改善に果敢に挑んでいる方の上に成り立っているのでしょう。 私もいずれは、そのような分野への挑戦・貢献ができるようプログラムの腕を磨いていきたいと思います。 ITRONはいずれ勉強する機会があります(身近にSH3のuITRON扱っている者がいる)ので、ITRONを理解できたら 再度、HOS-V4に挑戦してみたいです。 ----------------------------- 恩田紀雄 n.onda@xxxxxxxxxxxxxxxxxxx