メモの日々


2004年07月14日(水) [長年日記]

  • リンスで顔を洗ってしまった。
  • 待ちぼうけ。携帯は携帯すべし。すみませんでした。

[サッカー] U23日本vsU23チュニジア

途中からTV観戦。曽ヶ端闘莉王茂庭菊地鈴木前田駒野森崎松井坂田高松が先発だったようだ。当落線上の選手を試していたみたい。曽ヶ端ミスしちゃって心配だ。駒野いいんじゃないの。昨日の試合より面白かった。

[howto] PuTTYでペースト

右クリックでできるけど、キーボードから実行するには Shift + Insert なのか。

に書いてあった。

xtermやgnome-terminalでも同じみたい。

[unix][net] イーサネットでIPv6パケットを受信したときの処理

FreeBSD 4.9のソースを見てみた。

イーサネットで受信してIPレイヤへ上げる処理

イーサネットフレームを受信すると net/if_ethersubr.c にある ether_input が呼び出されるはず。ether_input は何か色々やって最後に ether_demux を呼び出している。ether_demux はイーサネットヘッダのタイプフィールドの値による分岐を行う switch 文から成る。switch文は

    ether_type = ntohs(eh->ether_type);

    switch (ether_type) {
#ifdef INET6
    case ETHERTYPE_IPV6:
        schednetisr(NETISR_IPV6);
        inq = &ip6intrq;
        break;
#endif

のようになっていて、IPv6パケットに対してはIPv6ソフトウェア割り込みのスケジューリングを行った後 inq にIPv6用のキューを設定している。で、ether_demux の最後にある

(void) IF_HANDOFF(inq, m, NULL);

にて、受信パケット m をキュー inq へ挿入している。IF_HANDOFF の本体は if_var.h で定義されていた。ヘッダファイルなのにソースが書いてある。

IPv6レイヤの処理

IPv6ソフトウェア割り込みが発生すると、netinet6/ip6_input.c にある ip6intr が呼び出されるようだ。ip6intr はIPv6用のキューからパケットを取り出して ip6_input を呼び出しているだけ。

ip6_input は巨大な関数で色々なことをやっているが、結局、おかしなパケットは破棄/自分宛でないものは転送/自分宛なら続く次ヘッダを処理、ということをしているのだろう。ip6_input の最後は次のようになっている。

    while (nxt != IPPROTO_DONE) {
        nxt = (*inet6sw[ip6_protox[nxt]].pr_input)(&m, &off, nxt);
    }

ここが次ヘッダを辿っている処理だ。ip6_protox[] は ip6_init 内で設定されていて、次ヘッダの値を対応する inet6sw[] の要素へマッピングできるようになっている。inet6sw[] は netinet6/in6_proto.c 内で定義されており、様々なヘッダに対する処理関数などを格納している。上では pr_input が呼び出されているが、これは例えば次ヘッダがICMPv6ヘッダなら icmp6_input、終点オプションヘッダなら dest6_input、IPv6ヘッダ(IPv6パケットがカプセル化されている場合)なら encap6_input、そしてTCPヘッダなら tcp6_input になるように値がセットされている。

とりあえずここまで。

[web] 「HTML,CSSバグ&回避法リスト」 (KeyNavi.Net)

とめども日誌より。HTMLとCSSの振る舞いに悩んだときに役に立つかも。JavaScriptバグ&回避法リストもあった。

ユーザビリティに凝っているサイトのようだが、デザインは見難いと感じた。

[tdiary] 「高速化ガイド(ユーザ向け)」 (tDiary-users Project)

「リンク元変換」の正規表現や「リンク元記録除外リスト」の正規表現の先頭に「\A」をつけます。「^」よりも「\A」の方が速いです。

らしい。なんでかな。面倒だから変えないんだけど。

[web] 「ロバストネス図」 (今日の役に立たない一言)

ウェブアプリケーションの画面遷移を表現するにはロバストネス図がよさそう、という話をメモ。

ずっと前に買ったUMLによるWebアプリケーション開発という本を思い出して見直してみたら、クラス図で画面遷移(とサーバサイドの動き)を表現しているみたいだった。

やること

  • プリンタ処分
  • HDD装着
  • 座椅子カバー
  • ベルト
  • 印刷物回収
  • WindowsUpdate