TCP/IPプロトコル・スタックの省メモリ開発事例(後編) ――ROM 8Kバイト,RAM 0.5KバイトにTCP/IPプロトコル・スタックを収める

浅井 敬,佐藤 剛,坂本直史

tag: 組み込み

技術解説 2004年12月28日

● 性能をある程度犠牲にしても信頼性を確保

 TCP/IPを使用するユーザにとってもっとも重要なものは,データの送受信に対する信頼性の確保であると筆者らは考えました.そこで,「TCPの信頼性に関する機能は実装し,転送性能に関する機能は削除する」という方針で,機能と実装方法の見直しを行うことにしました.

 前編の「TCP/IPで外せない機能をリストアップする」に示した機能はすべて実装しました.一方,以下のように処理を簡略化することにより,(転送性能はある程度犠牲になるが)コード量を低減することができました.

1) 再転送

 再転送を行う間隔は,RTT(round trip time;パケットを送信して相手から応答を受信するまでの時間)に応じた値ではなく,一定の値としました.ネットワークの混雑状況に対応するため,再転送を行うたびに間隔を2倍にするしくみ(指数バックオフ)は実装しました.

2) ゼロ・ウィンドウ・プローブ

 ゼロ・ウィンドウ・プローブを送信する間隔は,再転送の場合と同じ方式にしました.

3) 確認応答

 データを受信した場合,1パケットごとに確認応答を送信するようにしました.また,データを送信する場合,1パケットごとに確認応答を待つようにしました.

 そのほか,APIについては,前回と同様にITRON TCP /IP API仕様に準拠させることにしました.ただし,APIで指定されたパラメータ・エラーのチェックについて,アプリケーション側で実現可能なものはAPI側では省略しました.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日