インターフェイス - みる会図書館


検索対象: UNIX MAGAZINE 1997年1月号
39件見つかりました。

1. UNIX MAGAZINE 1997年1月号

連載 . / UN Ⅸ Communication N0tes— 図 5 IP 層のモジュール構成 ( *inetsw[proto] . prinput) ( ) 1P—1cmp ・ c icmp—error ( ) 1Pq 0 ip output. c route. C ip_input. c ip—reass ( ) は npu 切 netif module ipintrq ip—output ( ) routing table r に a110C ( ) ー (*ifp—>if_output) ( ) netif module (output) 一方、送信処理においては、上位層で送信データの準備 か整うと送信処理関数 ip-output ( ) か呼び出される。 の関数では、経路制御欟冓に対して関数 rtalloc ( ) を用 いて、次に送るべきホスト (next-hop host) と使用する ネットワーク・インターフェイスを決定する。さらに、そ の決定にもとづいて、ネットワーク・インターフェイス に送信処理を依頼する。このとき、同時に使用するネット ワーク・インターフェイスの MTU と IP データグラム の全長を上交し、必要に応じて IP データグラムの分割処 理をおこなう。 これらの処理でなんらかのエラーが発生し、送信ホスト 側に通告が必要な状況になったら、関数 icmp-error() を呼び出して必要な ICMP メッセージを構成する。 ICMP メッセージは IP データグラムを用いて転送され るため、構成後は ip-output ( ) か呼び出さ送信ホ ストに ICMP メッセージを転送する。 IP 層での経路制御構は、 route. c にまとめて実装さ れている。これはごく屯な機構で、 「受信ホストの IP アドレスをえると、使用するネット ワーク・インターフェイスと、次に送るべきホストの IP アドレスを与える」 という機能を提供しているだけである。経路制御椒こ対 52 struct ifnet するインターフェイスには、関数 rtalloc() か使われる。 糸登各制御欟冓の具イ勺な実装については、機会をあらため て解説する。それまでは、 rtalloc ( ) で糸習各か決定でき ると考えてもらってよい。 意 2 IP 層の経路制御機構は、たんに経路情報を管理している だけである。現実のインターネットて使われている経路制御ワ。 ロトコル RIP や OSPF 、 BGP などの処理は、 IP 層ではな く、すべてカーネル外の別のプログラムによっておこなわれて いる。 システムの起重加には、関数 ip-init ( ) (ip-input ・ c) か呼び出さ IP 層でイ吏われる各種変数の初期化をお こで重要なのが、変数 ip-id のネノ期化処理である。 の変数は、 IP データグラムのヘッダに含まれる ldentifi- cation で使われる値をイ尉寺している。初期値は、システ ムの日 t をベースとして生成される。すなわち、システム の日 fr を乱数生成器として利用している。 IP データグラムの再構成処理に利用されるキュー ipq の初期イ上位層プロトコルに関する情報のネノ期化なども おこなう。 初期化里 UNIX MAGAZINE 1997.1

2. UNIX MAGAZINE 1997年1月号

0 連載 UNIX Communication N0tes— 題により、あるアドレスへの IP データグラムの酉当が ルーフ。状になってしまったとする。この場合、 IP デー タグラムを破棄しないと、ループを形成した経路に、目 的のホストに到達しない IP データグラムカ鰡り続けて しまう。 ・ ProtocoI このフィールドは、送信側ではその IP データグラムが どの上位層によって生成されたか、受信側ではその IP データグラムをどの上位層に渡すかを表す。ここに入れ られる値は、前回も説明したように IANA によって管 理されており、定期的に発行される "Assigned Num- bers ”と呼ばれる RFC に記されている。 UNIX シス テムであれば、 /etc/protocols に割当てか記されて いる。 ・ Header Checksum ヘッダのチェックサム。 ・ Source Address 送信ホストの IP アドレス。 ・ Destination Address 受信ホストの IP アドレス。 ・ Option IP オフションのためのフィールド。オプションは可変 長だが、ヘッダがかならす 4 オクテットの倍数になる ように、オプションの最後に必要に応して空のデータ Network Byte Order (padding) が追加される。 送信則ホストでチェックサムを生成する場合は、 metic" と呼ばれる去が使われる。 いる。この計算には、 16 bit l's complement arith- IP のヘッダには、ヘッダのチェックサムが含まれて チェックサム で、値の設定などでの混乱を防ぐためである。 は、ホストによってバイトオーダーが異なる場合があるの IP では、 Big-Endian を用いることになっている。これ では、ヘッダにおける数値の表現形式が定められている。 の題直データか数多く含まれている。このため、 RFC791 IP ヘッダのなかには、 IP データグラムの全体長など 50 1. Header Checksum フィールドには、すべて 0 をセッ トする 2. ヘッダを 16 ビット単位に分割し、その和を引算する 3. 結果について、 1 の補数 (l's complement) を計算す る という手順で引算がおこなわれる。一方、受信したホスト では同様の手順で引算し、送られてきたチェックサムと比 較して、ヘッダに損傷がないかを検査する。 チェックサム討算処理は、 netinet/in-cksum ・ c にま とめられており、そのなかの関数 in-cksum() で実現さ れている。 IP 層の里 IP 層の処理は、次の 5 つに大別できる。 ・ IP データグラムの送信 上位層から渡されたデータを送信する。 ・ IP データグラムの受信 データリンク層カ授信した IP データグラムを通切な上 位層に渡す。 ・ IP データグラムの転送 受信した IP データグラムのうち、自ホスト宛でない IP データグラムについて、経路制御機構にもとづいて中幻医 先を決定する。 ・データグラムの分割と再構成 ネットワーク・インターフェイスの MTU に適合するよ うに IP データグラムを分割、送信する。あるいは、分 割されて送られてきた IP データグラムを元の IP デー タグラムに再構成する。 ・ IP マルチキャスト IP マルチキャストにもとづくグループ通信に関する処 分割と成 前述のように、 IP データグラムは、実際のデータグラ ムの中幻逶を司るネットワーク・インターフェイスの MTU に合わせて分割される。 前回までのネットワーク・インターフェイス層の説明 にも書いたように、各ネットワーク・インターフェイス では、使用しているデータリンク技術によって規定される UNIX MAGAZINE 1997 ユ

3. UNIX MAGAZINE 1997年1月号

連載 / UN Ⅸ知恵袋ーの 図 3 ifconfig -a の出力 $ ifconfig —a 1e0 # v6 : 150 : f1ags=843 く UP , BROADCAST ,RUNNING ,MULTICAST> mtu 1500 inet6 fe80: : 2 : 0 : 800 : 2004 : b060 netmask 10 1e0 # v6 : f1ags=843 く UP , BROADCAST, RUNNING , MULTICAST> mtu 1500 inet 133 .159 .48. 15 netmask ffffff00 broadcast 133.159.48.255 1e0 : f1ags=863 く UP , BROADCAST , NOTRAILERS , RUNNING ,MULTICAST> mtu 1500 inet 127.0.0. 1 netmask ff000000 100 : f1ags=849 く UP , LOOPBACK , RUNNING , MULTICAST> mtu 8232 inet6 : 1 netmask 128 100 # v6 : f1ags=849 く UP , LOOPBACK , RUNNING , MULTICAST> mtu 8232 inet6 COMPAT: : ェェ . ェ . ェェ . ェェ netmask 120 login: ロ $ t e lnet Trying : : 1 ・ Connected tO Escape character UNIX(r) System V Re1ease 4.0 (altair) 1 S 7 これらは Solaris の実物列てす。他の実装では異なる力法て識別するか た。その点でも、テスト版として IPv6 のパッケージを 際の運用を通じて事実十 . のオ剽售プロトコルを作ってきまし ンターネット・プロトコルです。インターネットでは実 冒頭でも述べたように、 IPv6 は現在研究中の次代イ IPv6 のこれから なっており、 1e0 # v6 と区別できるようになっています 7 。 クスを付けます。たとえは、図 3 の末尾は IeO # v6 : 150 と れを識別するために 2 つ目以降は # v6 のあとにインデッ フェイスに複数のアドレスカ咐くことがありますから、そ #v6 の印が付きます。ただし、 IPv6 は 1 つのインター 3 ) 。 IPv6 のアドレスが付いているインターフェイスには は、 ifconfig コマンドを使って詩ヾることかできます ( 図 インターフェイスにどのようなアドレスカ咐いているか 工工田工 : : 工工工 : iS alive できます。 いるのなら、当然そのアドレスに対しても ping や telnet インターフェイスにアドレスを付けるような設定をして 76 もしれません。 公開するのはたいへんよいことだと思います。研究段階で あるとはいえ、 IPv6 が IPv4 の次に採用されることはは ほ確実だと思います。現在のネットワーク管理者や開発者 の方は、 IPv6 を考慮に入れた長期的なイアをもつべきで 今回紹介した SoIaris のパッケージにはソースコードは 付属しませんが、研究団体のなかにはソースを公開してい るところもあります。 IPv6 嬲里ソフトウェアの開発工竟 に困ることはないでしよう。 現在、 IPv6 の基本的なイ」は実際に実装した企業や研 究機関による相接続実験で検証されています。今後は、 大規模になった糸各制御間題の解決や、セキュリティ機 構などの実装にカか注がれるでしよう。 ☆ 今回は将来の IP を垣間見るつもりで、次肚代インター ネット・プロトコルとして有望視されている IPv6 を紹介 しました。 たまたま Solaris のパッケージを紹介しましたが、ほか にも公開されている IPv6 パッケージは数多くあります。 自分の OS に IPv6 のテストパッケージがあるかどうか は、 IPv6 ホームページでみつけられるでしよう 8 機会が あれは試してみてください。よい経験になると思います。 次回は、 Solaris IPv6 パッケージに含まれているコマ ンドの IPv6 拡張の部分を角見します。 ( しま・けいいちシャーフ ) 8 http://playground.sun ・ com/ipng/ UNIX MAGAZINE 1997 ユ

4. UNIX MAGAZINE 1997年1月号

連載 / インターネットの利用と仕組みーの プロードキャストはすべてのポートに対して送信されるの で、不必要なプロードキャストを担制することか望ましい のはいうまでもありません。 図 4 では efO と efl の 2 つのインターフェイスがあり ますが、じつは ef0 側はスイッチで、 efl 側は通常のハプ て接続しています。コリジョンの発生は ef0 のはうか圧倒 的に少ないことが分かります。 Shared Ethernet ( 通常のリピータベース、同軸ケー プルべースの Ethernet をこう呼ぶことがある ) では不 十分になった場合、 10Mbps の範囲で均等なトラフィッ クのあるケースでは、このように Switched Ethernet (Ethernet スイッチを使って構築した Ethernet) にす ると問題の鮹肖に顕な効果があります。従来使っていた ハプを置き換えるだけでよく、しかもケープルはそのまま て利用できるので、設備面て最小限の変更ですむ点も有利 です。 ネットワーク設計と Ethernet スイッチ Ethernet スイッチといえども、 Ethernet である以 は 1 つのインターフェイスでは IOMbps にしかなりませ ん。 10Base T では、結線は送信と受信とで別々の線を 使います。したがって、インターフェイスとスイッチが 対応しているものでは、全二重 Ethernet として、送信 10Mbps 、受信 10Mbps を同時に使うことかできます。 しかし、 Switched Ethernet でネットワーク自体のポ トルネックがなくなると、サーバーなど、アクセスカ喋中 する場所は 10Mbps では不足するようになってきます。 1 つのインターフェイスの能力という点では、これを 高速化する以外に力法はありません。高速なインターフェ イスとしては FDDI/CDDI 、または IOOBase TX な どの IOOMbps のメディアが LAN では一殳的であり、 安価で安定した技術です。 WAN でも使えるという点で は ATM などの選択肢もありますが、日本では高速な公 衆 ATM サービスか提供されていないので、現在のとこ ろ有利尺とはいえないでしよう。 100B e TX がきわめて安価になったので、従来の 10B e T からのリプレースとしては一番簡単でしよう。 ただし、ケープルだけはカテゴリー 5 のものを使わなけれ 58 はなりません。 100B e TX の利用では、 10B e T の場合と同様に リピータベースのハプを使うこともできます。少数の場合 には、 100B e TX のノードだけでの適用が可能です。 しかし、 10B e T との混在、あるいは 10B e T から の勦ゞおもな目的である場合にはスイッチを使ったほう がいいでしよう。 100Base TX のパフォーマンスは実際にはどれくらい かを実測してみました。条件は、 BSD/OS 2.1 (kernel patch 23 ) 、 EISA Etherlink 10 / 100 ( 3C597- TX ) 、 Pentium 100MHz 、メモリ 64MB のマシンで、スイツ チは Cisco CataIyst 2900 を使っています。 図 7 を見ると、 tcp で約 20Mbps が出ています。コンピ ュータのハードウェアとしては特別なものではないので、 とりあえすこんなものかという程度てすが、コンピュータ の I / O の性能を支えることはできるでしよう。 こうした機器の登場は、確実にネットワーク設言に対 して変化をもたらしています。かってネットワークの妬 は、どこにどのようなトラフィックがあって、不必要な トラフィックをいかに局所化するかに力点がおかれていま した。これはネットワーク、とくに LAN のメディアは Ethernet にしても、 FDDI にしても共有型 (shared) で あって、占有型 (dedicated) ではなかったからです。現 在は、ケープリングにスイッチを使うことで占有型と考え て言できるので、イメージを作りやすくなったといえま す。 インターネットで起きていること これは LAN の構築上の基礎的なポイントですが、現 在インターネットではもっと別の間題でイ諸に合か起きてい ます。大半の問題は、線か細いことが原因です。この場合 の、、線 " とは、専用回線や ISDN 、電話回線を用いたシリ アル回線です。 シリアル回線は 2 点間を結ぶものなので、そこで規定さ れている速度は文字どおりデータを送ることのできる最大 量です。 Ethernet などのように共有型ネットワークでは なく、まさしく占有型 1 です。 WWW サーバーに接続しようとしたが、つながらな い、あるいはつながってもデータを送ってこないなどの 1 ー専月引可線〃 ) ことを dedicated line といいます。 UNIX MAGAZIN E 1997 ユ

5. UNIX MAGAZINE 1997年1月号

連載 / インターネットの利用と仕組みー① 図 1 10Base5 のネットワーク トランシーノヾ トランシーノヾ 2.5m 以上 図 3 AUI コネクタと BNC コネクタ 日ロ 5 イ まを 10Base5 同軸ケーブル AUI ケーブル AUI ケーブル マルチボート トランシーバ AUI ケーブル 器か不要で、直接コンピュータのインターフェイスに接続 して、同軸ケープルだけでネットワークを構築できるとい う点がメリットでした。 どちらも、 10Base T が一イ殳的となった現在では見かけ ることも少なくなりました ( 図 3 ) 。 1 セグメント 500m の 10B ” e5 も、 1 セグメント 185 rn の 10Base2 も距曲勺に不足した場合には、リピータに よってさらに延長できます。リピータは電第的に信号を増 幅させるだけの装置です。電気的に増幅するだけなので、 信号はもちろんノイズも全部伝えてしまいます。 同軸ケープルを利用する Ethernet から、主充はより対 線を利用する 10B e T へと移りました。 10Base T は ハプ (HUB) と呼ばれる泉装置を必要とし、ケープル長 が 100m までですが、電話線よりちょっと太いケープル と、電話よりひとまわり大きな RJ-45 コネクタて接続で きるためたいへん手軽です。ノ、プは、リピータと同しで電 ま頑勺な増幅をおこなうだけです。 こうして当り前のように使われている Ethernet です T 型コネクタ が、トラブルはさまざまなところて起こります。トランシ ルと呼ばれる DB 15 のコネクタをもつ太いケープルて接 ーバやハプの接続不良などでもバケットロスやコリ 続しました。多数の機器カ喋中している場所では、マルチ ジョンの増加カ載測されます。これらの拠章の場合は、ト ポート・トランシーバといわれる機器を用いて、 AUI ケー ラフィックの増大て混雑するのとは違い、目立って性能が プルだけで数台のマシンを接続することもできます。 低下します。 先日、ある国立大学の講義陳を訪れたとき、廊ードの天井 ・丘よく目につくようになってきたのが、ハプとコン 近くに黄色いケープルが這わせてあるのを見て懐かしくも ピュータ側のインターフェイスの相性問題です。ハプ側 感しましたが、悲惨なものを見た気もしました。 とインターフェイスのどちらに原因があるのかは分かりま 10B e2 のネットワーク ( 図 2 ) は「チー ノヾーネット」 せんが、まったくつながらない、あるいはパフォーマン と呼ばれることもありました。トランシーバなどのイ寸属艘 スカ咄ないなどの問題が生しることがあります。これを、 図 2 10Base2 のネットワーク 同軸ケーカレ 5 m の倍数 BNC コネクタ 55 UNIX MAGAZINE 1997.1

6. UNIX MAGAZINE 1997年1月号

NT 版のポードで NetBSD をプートするには、モニ ター・プログラムを ARC から SRM に変更する必要が あります田は。 キーポード・コネクタは NT 版では IBM PC/AT 用 の大きなコネクタ、 UNIX 版では PS/2 シリーズの小さ なコネクタですが、物理的な大きさが違うだけで電気的、 論理的にはまったく同しです。 PS/2 マウスコネクタがあるのは UNIX 版だけで、 NT 版にはありません ()T では、シリアルマウスを使いま す ) 。基板は同しなので、 NT 版に PS/2 マウスコネクタ をハンダ付けすればよさそうに思えますが、そうは問屋が 卸しません。 NT 版のキーポード・コネクタは、 PS/2 マ ウスのコネクタをハンダ付けするランドを踏み潰すかたち で取り付けられているのです。 NT 版ポードの NetBSD/Alpha で X ウインドウ・ システムを動かしたければ、ますキーポード・コネクタを PS/2 型に換装し、次に PS/2 マウスコネクタを付けな ければなりません。 PS/2 マウスがなくても NetBSD は プートできるので、一度、全部組み上げて重川乍を石俿して から置したはうが安じ、です。 このマサーポードには、一イ殳的な PC 互換機のマザー ポードと同様、 ・ SCSI インターフェイス ・ IDE インターフェイス ・シリアル・インターフェイス x 2 ・ / ヾラレノレ・インターフェイス ・ PCI スロット x 3 ・ ISA スロット >< 5 ( ただし、 PCI#3 と ISA#I は兼用 ) ・ 72 ピン SIMM ソケット x 4 が備わっているので、コネクタとケープルさえ用意すれ は、ほかにはほとんど何も必要ありません。 ビデオポード 僕は、 ATI の Mach64 DRAM を使っています。 PC 互換機月」の、ごく普通の PCI のピデオカードです。これ は DEC UNIX か要求したもので、深い意味はありませ ん。 NT では决に動いていますし、 DEC UNIX の X サ ー引蝠です。 Linux/Alpha でも使えるはすです。 UNIX MAGAZINE 1997.1 Magica/ Mystery Tour ところが、 NetBSD/Alpha で Mach 64 DRAM を使 った場合、コンソールは間題なく利用できますが、 X がサ ポートされていません。 NetBSD/Alpha の X サーバー は、 DEC の TGA というポードしかサポートしていない のです。僕の赤貧的 RISC マシン補完言 1 画も、この部分 では頓挫しています。 新たにピデオポードを購入する場合は、 TGA を入手し たほうがいいでしよう。ただし、現在のところ、僕の知っ ているかぎりでは日本橋のお店では手に入りません。 Ethernet カード NetBSD/Alpha 、 Linux/Alpha 、 NT は、 DEC の Ethernet チッフ。の載った Ethernet カードをサポートし ています。しかし、 I / O ポートのアドレスなどが f は兼とし て固定されているわけではなく、一部動かないカードもあ るようです。僕は、 DEC の DE434 (IOBase T) と DE 500 (100Base (X) を使用しています。 NetBSD/Alpha と Linux/Alpha では、 Planet 社の PCI Ether 100Base TX ポード (DEC チップ搭載 ) も 使えると聞きましたが、石忍はしていません。 ハードティスク HDD は、 SCSI ディスクならなんでもかまいません。 ただし、インストールには 406MB 以上の容量が必要 です。 NetBSD/Alpha では、 rz25 という 406MB の HDD イメージをそのまま配布しています。最初は、この イメージをそのまま HDD に書き込んでプートさせる以外 に起庁るガ去はありません。えげつない話ではあります が、ノ、ツカーの仕事はかくありたいものです。 406MB ちょうどの HDD はめったに手に入らないで しようから、たいていはこれより大きな容量のディスクを 購入します。すると、当然のことながら空きが出てくるの で、 NetBSD を起動したあとでディスクラベルを編集し、 空いている部分を使いきることにします。そのために、あ らかしめセクタ / トラック、トラック / シリン久シリン ダ数などを調べておきます。具ー勺には、 Macintosh の HDD ツールを使ったり、あるいはディスクラベルを壊し ておいて、 FreeBSD や NetBSD の disklabel コマンド を起動し、 HDD から情報を取得するといったガ去があり ます。どちらにしても、 HDD を使う前に詩ヾておいたは 101

7. UNIX MAGAZINE 1997年1月号

シリーズ 00M 権 / 16 川 ビデオリ aSP RC ・リ v シリ - ズ 自ØE 能をとじで・・・ ) すでにシステムをお持ちの SPARC ユーザーのために SBUS オプションボードとしての販売も開始いたします。 PWS—SBUS—PI 394 ー 1 ボード \ 480 , 000 円 のリ刃ルタイムオンデマンド アけイム眦ンコード ■ MPEG2 ビデオ MP@ML のリアルタイムエンコーダを pws に内蔵しました。 今までたいへん高価だった機能を革命的価格で御提供します。 本格的なビデオオンデマンド / ネットワークビデオ通信をぜひお試し下さい。 MPEG2 ビデオアダブテイプ・フィールド / フレームエンコード機能 0 NTSC ( 29.97MHz ) YCbCr ( 422 ) ビデオ入力 720X480 、 640X480 、 544X480 、 480X480 、 352X480 、 352X240 [ 30 フレーム / 秒・フィールド / 秒 ] 富なビ C サーバー UVS UltraSPARC ・ 100 % コンノヾチプル UltraSPARC ・ 2()()MHz/ 167MHz 搭載 FastEthernet/FastWideSCSI 標準 Creator3D/Creator/TurboGX 選択可能 VIS ( ビジュアルインストラクションセット ) 活用ライプラリ MPEG2 データ編集用ライプラリ ビデオオンデマンドアプリケーション用ライプラリ ※この写真は CAD データをもとに CG により作成したイメージです。 バーソナルワークステーション タイプ LJVS < 標準構成例 > 話題の正 EE13 シリアルインターフェイス がピデオ UI 血 SPARC に標準搭載されました。 ビデオ UltraSPARC 16 ハⅡレ デジタルビデオ入力として、リアルタイム メモリ、 20 インチモニタ マルチメディアネットワークとして、さら 2. IGB ディスク 6 倍速 CD-ROM Creator3D P13 インターフェイス に高速・高信頼・ SCS13 インターフェイスと Ⅵ S ライプラリ / MG ロライプラリ してご利用いただけます。 実際のお値引き価格は大学研究機関向け等各種ございます、お問い合わせください。定価 378 万円 NEW 転面 DV 端子接続には別途変換ユニットが必要です すでにシステムをお持ちの SPARC ユーザーのために SBUS オプションボードとしての販売も開始いたします。 PWS —SBUS ー YUVIN ボード \ 48d000 円 く標準構成例 > 7 加 x の高解像度でフルカラービデオを毎秒フレ ーム知フィールド / 秒 ) でリアルタイム取り込みを可能に ピデオ UltraSPARC 16 ハⅡレ しました。 Y 日 4 : 4 : 4 ) ( 4 : 2 : 2 ) フォーマットですか メモリ、 (B インチモニタ ら、 EG 、」 G といったマルチメディア画像ソースにそのま 2. IGB ディスク 6 倍速 C レ ROM まご利用いただけます。 SBUS バスマスタ転送により主メモ 05t 3D P13 インターフェイス リにデータを直接リアルタイムに送りますので膨大な枚数 Ⅵ S ライプラリ / MG ライプラリ の連続蓄積カ呵能です。 実際のお値引き価格は大学研究機関向け等各種ございます、お問い合わせください。定価 378 万円 L*#NSunOSO$-HyperSPARC (200MHz/166MHz) HyperSPARC (200MHz ・ 166MHz) [ 512KB キャッシュ ] SS20 上位互換シリーズ ■新設計マザーポード搭載 一高速 EDO - D M 搭載可能 ( C2 開 E ) ■最大 4CPU 搭載可能 •FastEthernet 標準搭載 (C2()0E) バーソナ - クス - シ・ン C200 / C20 ■ バス転送能力大幅アップ ■主メモリ最大 IGB 搭載可能 ( C2 圓 E ) (MBUS クロック、Ⅲ z ) ( C200E ) ′ ( 株式会社日本コンピ、一タ 〒 430 静岡県浜松市東田町 36-8 資料請求 No. 043 NEW をコンポジットピデオ入力には引途変換ユニフトがを要です ※広告に記載の会社名、製品名は各社の商標および登録商標です。※仕様は予告なく変更することがあります。 お問い合わせ 日本コンピュータお客様係 0120-209899 JAPAN COMPUTER Co ュ .

8. UNIX MAGAZINE 1997年1月号

連載 /UNIX Communication Notes— 受信里 こでの処理も、次のように 0 IP データグラムの受信処理は、関数 ipintr() (ip_ input ・ c) がおこなう。この関数は、下イ立層のネットワー ク・インターフェイス層からソフトウェア割込みによって 起動される。起動されると、以下に示す手順で処理をおこ なっ。 1. IP 層の受信バッフアである ipintrq から受信した IP データグラムを取り出す。 2. 以下の項目についてヘッダを検査する。 ・ IP ク ) ノージョン : 番ナ ・データグラムの全長 ・ヘッダの長さ ・チェックサム本査 これらの検査で間題があれは、 IP データグラムを廃棄 する。 3. IP オプションの処理をおこなう。実際には、関数 ip_ dooptions ( ) が処理する。具イ勺な処理については、 IP オプションとともに次回にまとめて角見する。 4. オプションの処理か終ったら、受信したデータグラムが 自ホスト宛かどうかを調べる。 5. 自ホスト宛のデータグラムの場合には、分割された断片 かどうかを調べる。具イ勺には、 Fragment Offset が 0 かどうか、あるいは MF ビットがセットされているか をもとに検査する。断片であったら、関数 ip-reass() を呼び出しい叫冓成の処理を起動する。こで再構成の 処理か完了しないのであれば、そのまま次の IP データ グラムの処理に移る。 6. 完全な IP データグラムが得られていれば、上位層に データを渡す。これは、ヘッダ内の Protocol フィール ド刎直にもとづいて上位層の処理を呼び出す。この処理 のために、プロトコル・スイッチと呼はれる酉改Ⅱテー プル ) inetsw 口が用意されている。 7. 自分宛の IP データグラムでなかった場合は、中幻逶処理 をおこなう関数 ip-forward() を呼び出し、中幻処理 に移る。 送信里 送信処理は、上交墨癇単な構造になっている。送信処理 をおこなう関数は、 ip-output() である。ソースコード UNIX MAGAZINE 1997.1 は ip-output . c にある。 上知勺簡単なものである。 1. 上位層から渡されたデータを検査する。 tocol Suite, RFC1349 , Jul. 1992 [ 3 ] PhiIip Almquist, Type 可 Service をれ the lnternet pro- UNIX MAGAZINE 、 1996 年 6 月号 ィア通信の : 見 ( 2 ) ーー IP Multicasting 、そして MBONE 」 [ 2 ] 山口英「 UNIX Communication Notes ( 96 ) : マルチメデ [ 1 ] J. B. Postel, lnternet Protocol, RFC791, Sept. 1981 [ 文献 ] ( やまぐち・すぐる奈良先立斗 ! 物支術大完大学 ) 実装をとりあげる予定である。 理の詳細と、 IP プロードキャスト、 IP マルチキャストの 次回も IP 層についての解説を続ける。分割・ : 明友処 ☆ トワーク・インターフェイスの処理に任迂る。 呼出しを実行する。必要に応して分処理を施し、ネッ ェイスに対して、 (*ifp → if-output) ( ) という関数 5. 最後に具イ勺な処理として、ネットワーク・インターフ ホストとを経路制彳卸欟冓に答えさせる。 と、次にその IP データグラムを送るべき Next-Hop 4. rtalloc() を利用して、送出すべきインターフェイス のデータグラムで使われていた ldentification を使う。 る場合は、新たな ldentification は作らす、もともと cation か生成される。一方、 IP データグラムを中幻す る。この場合、変数 ip-id にもとづく新たな ldentifi- るのは、ローカルに発生した IP データグラムだけであ 3. 送信に必要なヘッダを生成する。この処理が適用され を実行する。 options() を呼び出し、必要な IP オプションの処理 2. IP オプションカ甘旨定されていたら、関数 ip_insert- 53

9. UNIX MAGAZINE 1997年1月号

連載 /UNIX Communication Notes— 図 4 IP データグラムの分割と再里 0 (a) Header Header Header Header datal (4800ctet) datal ( 4800Cte0 data2 (4800ctet) data3 (400ctet) data2 (4800ctet) ー data3 (400ctet) Fragment Offset = 0 , MF = 1 Fragment Offset = 480 , MF = 1 Fragment Offset = 960 , MF = 0 MTU カヾ夬められている。たとえば、 Ethernet では 1 回 に 1 , 500 オクテット以 . E のデータを転送することはでき ない。そこで、全長が MTU を超える IP データグラム は分割される。最終的な受信ホストでは、分割された IP データグラムを再構成し、もともとの IP データグラムを 彳朝一る。 これらの処理には、 MF ピットと Fragment Offset フィールドか利用される。図 4 を見てはしい。説明を簡単 にするために、 ・ IP ヘッダの長さは 20 オクテット ( オプションなし ) 使用するネットワーク・インターフェイスの MTU は 500 オクテット ・送信する IP データグラムのデータ部の長さは 1 , 000 オ クテット であるとする。図 4-a がもともとの IP データグラムで ある。 MTU は 500 オクテットなので、ヘッダ部 20 オ クテットとデータ部 480 オクテットで、 MTU と同し長 さになる。そこで、全長 500 オクテットの IP データグ ラムの断片 (fragment) を 2 つ作り、続いて残りのデー タ部 40 オクテットを付けた最後の断片が作られる。この とき、各 IP データグラムの Fragment Offset は、その IP データグラムのデータ部がもともとの IP データグラム のデータ部の何バイト目からなのかを示す。さらに、 MF ビットは、最後のデータグラムを除き 1 がセットされる。 その結果、去辭冬的な受信ホストでは、上如勺簡単にデータ グラムの再構成カそきる。 UNIX MAGAZINE 1997.1 それでは、 IP 層の具体的な実装をみていくことに しよう。 IP 層のソースコードは、すべてディレクトリ netinet に置かれている。図 5 は、 IP 層を構成するモ ジュールの概要である。 里の概要 図の左下にある ipintrq は、ネットワーク・インター フェイス層に対する IP 層の受信バッフアである。 1996 年 11 月号で説明したように、ネットワーク・インターフェ イス層は、受信したフレームから IP データグラムを取り 出してキュー ipintrq にオ褓内し、ソフトウェア割込みに よって IP 層での処理を起動する。 この割込みを処理するのが、関数 ipintr() である。 ipintr() は、受信した IP データグラムを検査し、次の ような処理をおこなう。 ・自ホスト宛の IP データグラムで、かっ転送中に分割さ れていなけれは、 IP ヘッダの ProtocoI フィールドを 検査し、適切な上位層の処理を起動ける。 具体的な実装 おこなう関数 ip-forward() に IP データグラムの処 ・自ホスト宛の IP データグラムでなければ、転送処理を 用いて断片を↑褓内しておく。 IP データグラムがすべて到着するまで、キュ—ipq を にその処理を依頼する。 ip-reass ( ) では、う慴リされた されていれば、 : 明冓成処理をおこなう関数 ip-reass() ・自ホスト宛の IP データグラムで、かっ転送中に分割 理を依頼する。 51

10. UNIX MAGAZINE 1997年1月号

UN Ⅸへの招待 図 1 2 つのモード間での往き来 アルファベット入力モード arufabetto ローマ字かなモード あるふあべっと MuIe に対して入力したかなは、必要に応じて漢字や カタカナに変換します。この操作を担当するのが、かな 漢字変換プログラムです。代表的なものには、 jserver や canna 、 sj3 などがあります。 どの日本語入力インターフェイスとかな漢字変換プロ グラムを使うかは、 MuIe のインストール時に決められま す。自分の使っているシステムがどれに該当するかは、管 理者に訊いてください。 入力インターフェイスと変換プログラムによって操作 はすこし違いますが、基本的な部分は同じです。ここで は、たまごと jserver を使った例をもとに説明します。 ます、かな入力から漢字変換までひととおりやってみ に表示されます。この状態を、 かな入力 ましよう。 できるモードをローマ字かなモードと呼びます。 入力モードと呼ぶことにします。これに対し、かなが入力 こではアルファベット 前述したように、通常はタイプした文字がそのまま画面 162 で、すべて、、 y " と答えておけばいいでしよう。 が、これは各種の設定ファイルを準 ( ) 制ーるためのものなの 聢がおかしいのかしら」と不安に思うかもしれません 筑度ファイル "xxx/yyy/kihon. h" が無いよ。作る ? (y or n) な質問がいくっか表示されます。 変換を利用すると、かな漢字変換プログラムから次のよう こで 1 つ注意があります。 MuIe で初めてかな漢字 のキーです ( 図 1 ) 。 にも使います。つまり、両方のモードを往き来するため モードを終了し、アルファベット入力モードに戻るとき 移るには、 C - \ を使います。このキーは、ローマ字かな アルファベット入力モードからローマ字かなモードに 図 2 モードラインの変化 (a) アルファベット入力モード 回 m ule@angel.hom e uffers Fi1e Edit HeIp (New flle) (b) ローマ字かなモード 回 mule@angel.home uffers Fi1e Edit He1p 鋓 1 Ⅱ e. : t 0 [ FI 」 nd 曰 -lt-. 記トー自Ⅱーー ( Fundame.nt..al トー自Ⅱーー 実際の様子を見てみましよう。図 2-a はアルファベッ ト入力モード、図 2 ー b は C ー \ キーをタイプしたあとのロ ーマ字かなモードです。 2 つの画面のモード行の頁をご 覧ください。アルファベット入力モードでは、 [ あ ] に変わっています。 となっていたのが、 ローマ字かなモードでは、 このように、角括弧のなかを見ると、 どちらのモードにいるかが一目瞭然です。 さて、ローマ字かなモードでは、入力したローマ字が頂 次かなに変換されていきます。たとえば、、ゆにつくすま がしん " と入力する場合、ローマ字では、 yuni kkusumagaJ in ' とタイプします ( ローマ字入力については、あとでもうす こし詳しく説明します ) 。ローマ字がかなに変換されてい く様子を図 3 に示します。 図 4 ー a は、、、ゆにつくすまがしん " と入力し終った状態 のウインドウです。ここで注意してほしいのは、入力中の かなカ絲奉 (l) で悃まれている点です。こク奉を、フェ ンスと呼びます。また、フェンスが表示されている状態を フェンスモードと呼びます。フェンスモードで Return UNIX MAGAZINE 1997.1