<?xml version="1.0" encoding="shift_jis"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>ネットワークエンジニアになろう！</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/" />
    <link rel="self" type="application/atom+xml" href="http://www.smartnetworks.jp/atom.xml" />
   <id>tag:www.smartnetworks.jp,2011://2</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2" title="ネットワークエンジニアになろう！" />
    <updated>2006-03-09T15:18:09Z</updated>
    <subtitle>Smartnetworks.jp は駆け出しNE を応援します</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type  3.2-ja-2</generator>
 
<entry>
    <title>STP を究める 基礎編 (7) Root Port (ルートポート) とPort ID</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/03/stp_7_root_port_port_id.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=190" title="STP を究める 基礎編 (7) Root Port (ルートポート) とPort ID" />
    <id>tag:www.smartnetworks.jp,2006://2.190</id>
    
    <published>2006-03-09T15:13:15Z</published>
    <updated>2006-03-09T15:18:09Z</updated>
    
    <summary>前回のSTP を究める 基礎編 (6)Root Path Cost (ルートパス...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="033_stp" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        <![CDATA[前回の<STRONG><A HREF="http://www.smartnetworks.jp/2006/03/stp_6root_path_cost.html">STP を究める 基礎編 (6)Root Path Cost (ルートパスコスト)</A></STRONG>で、Root Path Cost（ルートパスコスト）を判断基準として、Root Bridge までの最短パスを探し出すことをお話ししました。
]]>
        <![CDATA[
あるブリッジからRoot Bridge への最短パスとなるポートを、そのブリッジの<STRONG>Root Port（ルートポート）</STRONG>と呼びます。

<STRONG>Root Bridge 以外のブリッジは</STRONG>、必ずRoot Port を一つ持ちます（※）。
Root Port はそのブリッジにとって、もっともRoot Bridge に近いポートであると言えます。

ブリッジ上の複数のポートからRoot Bridge へ到達することができる場合、最もRoot Path Cost が小さいポートが、そのブリッジのRoot Port となります。

下図のBridged-LAN では、Bridge-A がRoot Bridge となっています。
Bridge-B、C のどちらも、Root Bridge へのパスが二つあります（Port1、2）。
Port1 とPort 2 の間でRoot Path Cost を比較した結果、どちらのブリッジも、Port1 がRoot Port となります。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/stp15.jpg"></CENTER>


※ CatOS で動作するCatalyst は、Root Bridge となっている場合でも、Root Port が表示されます。

<DIV ID="ioslog_part">
<BR>Catalyst> (enable) show spantree 1
VLAN 1
spanning-tree enabled
spanning-tree type          ieee
Designated Root             00-10-0d-b1-78-00

Designated Root Priority    8192
Designated Root Cost        0
<STRONG><FONT COLOR=red>Designated Root Port        1/0</FONT></STRONG>
Root Max Age   20 sec    Hello Time 2  sec   Forward Delay 15 sec
Bridge ID MAC ADDR          00-10-0d-b1-78-00
Bridge ID Priority          8192
Bridge Max Age 20 sec    Hello Time 2  sec   Forward Delay 15 sec</DIV>

ポート番号1/0 は、実際には存在しない番号であることに注意して下さい。
1/0 は、Slot1（Supervisor モジュール）のポート0を意味します。
ブリッジとしてのCatalyst の視点から見て、内部ポート1/0 に接続されているCPU（＝自分自身）にRoot Bridge が存在することを表現しています。


<HR>

ブリッジが2台以上存在する場合、個々のブリッジを特定するための名前（ID: Identifier）が必要だと、<STRONG><A HREF="http://www.smartnetworks.jp/2006/02/stp_5bridge_id_root_bridge.html">STP を究める 基礎編 (5)Bridge ID とRoot Bridge (ルートブリッジ)</A></STRONG>でお話しました。

つまり、ブリッジに限らず、二つ以上存在するものには、区別するための名前が必要ということです。

多くの場合、Bridged-LAN には2台以上のブリッジが存在します。
視点を変えて、Bridged-LAN の中の1台のブリッジに注目してみましょう。

ブリッジの中にも、二つ以上存在するものがあります。

<STRONG>ポート</STRONG>です。
そもそも、二つ以上のLAN を接続するための（逆に言えば、一つのLAN を二つ以上に分割するための）機器がブリッジです。
複数のLAN に接続するため、ブリッジには必ず二つ以上のポートが存在します。

複数存在する以上、ポートにも区別するための名前が必要です。

ポートに割り当てられている名前を、Port ID（ポートID）と呼びます。
Bridge ID と同様にポートID も、各ポートの優先度を意味するPort Priority（ポートプライオリティ）という値とポート番号を合わせた値を使います。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/stp16.jpg"></CENTER>

Port Priority は、0から255（10進数）の間で設定可能です。
IEEE 802.1D で推奨するデフォルト値は128(16進数の0x80) で、Cisco のCatalyst を含め多くの機器はこの値をデフォルト値にしています。

Bridge ID は、ブリッジ同士で比較してRoot Bridge を決定するために使われました。
Port ID も、同じように比較するために使われます。
この場合、比較の対象となるのは他のブリッジではなく、同一ブリッジ内のポート同士です。

Port ID を比較しなければならないのは、どのような状況でしょうか？

下図のBridged-LAN では、Bridge-A がRoot Bridge となっています。
Bridge-B のPort1 と2はどちらも、LAN-1 に接続されており、Bridge-A からまったく同じデータを受信します。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/stp17.jpg"></CENTER>

このように、ブリッジ上の複数のポートがまったく同じデータを受信し、且つ、ポートに設定されたコストが同じ場合、どちらがRoot Bridge への最短パスか、判断できません。
そのような状況で、最短パスを選択するための判断基準として用いられるのが、Port ID です。

上図の説明に戻ります。
Bridge-B のPort1 とPort2 はどちらもLAN-1 に接続されており、Bridge-A から同じデータを受信します。
どちらのポートもCost は10に設定されています。
二つのポートのPort ID はそれぞれ、80:1 と80:2 です（Port Priority = 0x80 とポート番号）。
両者のPort ID を比較した結果、 Port ID が小さいPort1 がRoot Port となります。



<HR>

<UL> <STRONG>STP を究める 基礎編</STRONG> の内容は、特に明記しない限り、1998年版のIEEE 802.1D に基づいています。
Bridge ID、Port ID、Path Cost 値など、IEEE 802.1T で行われた仕様の拡張は、2004年版のIEEE 802.1D に盛り込まれています。
これらの拡張仕様については、応用編にて説明する予定です。</UL>
]]>
    </content>
</entry>
<entry>
    <title>トウキョウトッキョキョカキョク</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/03/post_29.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=184" title="トウキョウトッキョキョカキョク" />
    <id>tag:www.smartnetworks.jp,2006://2.184</id>
    
    <published>2006-03-04T15:06:15Z</published>
    <updated>2006-03-04T15:08:39Z</updated>
    
    <summary>特集 - トウキョウトッキョキョカキョクのインデックスページです。...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="030_tokushu" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        特集 - トウキョウトッキョキョカキョクのインデックスページです。
        <![CDATA[
<STRONG><A HREF="http://www.smartnetworks.jp/2006/03/post_27.html">はじめに</A></STRONG>

<STRONG><A HREF="http://www.smartnetworks.jp/2006/03/upto_united_states_patent_and.html">UPTO (United States Patent and Trademark Office)</A></STRONG>

<STRONG><A HREF="http://www.smartnetworks.jp/2006/03/post_28.html">特許文書の閲覧・ダウンロード</A></STRONG>

<STRONG><A HREF="http://www.smartnetworks.jp/2006/03/udld_unidirectional_link_detec.html">トウキョウトッキョキョカキョク (1) UDLD (Uni-Directional Link Detection)</A></STRONG>]]>
    </content>
</entry>
<entry>
    <title>UDLD (Uni-Directional Link Detection)</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/03/udld_unidirectional_link_detec.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=183" title="UDLD (Uni-Directional Link Detection)" />
    <id>tag:www.smartnetworks.jp,2006://2.183</id>
    
    <published>2006-03-04T15:04:06Z</published>
    <updated>2006-03-04T15:05:01Z</updated>
    
    <summary>System and method for detecting unidirec...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="034_tokkyo" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        <![CDATA[<STRONG>System and method for detecting unidirectional links</STRONG>]]>
        <![CDATA[
<STRONG>合衆国特許番号：</STRONG>6,765,877
<STRONG>特許登録日：</STRONG>2004年7月20日
<STRONG>発明者：</STRONG>Foschiano; Marco (San Jose, CA); Fung; Hei Tao (Santa Clara, CA); Annaamalai; Alagu (Cupertino, CA) 
<STRONG>特許出願人：</STRONG>Cisco Technology, Inc.(San Jose, CA) 
<STRONG>出願番号：</STRONG>386534
<STRONG>出願日：</STRONG>1999年8月30日

<HR>

<STRONG>UDLD (Uni-Directional Link Detection) </STRONG>は、Catalyst シリーズのLAN スイッチに実装されている技術です。
Ethernet のポート、送信または受信ができなくなる状態を検知し閉塞させることで、障害範囲を局所化することを目的としています。

UDLD の詳細は、<STRONG><A HREF="http://www.smartnetworks.jp/2006/02/_udld.html">特集 - UDLD を究める</A></STRONG>を参照してください。

気になるのは、出願者の<STRONG>Cisco Technology, Inc.</STRONG> です。
シスコシステムズの正式な社名はCisco Systems, Inc. のはずです。

Cisco Technology, Inc. の企業情報を入手してみたのですが、Cisco Systems, Inc. の100%子会社であることと、本社所在地がCisco Systems, Inc. と同じ170 West Tasman Drive, San Jose, California であることを以上のことは分かりませんでした。

シスコの特許のほとんどで、出願者がCisco Technology, Inc. となっていることから考えると、おそらくシスコ社の知財を管理する会社ではないでしょうか。

余談ですが、UDLD は現在、<STRONG><A HREF="ftp://ftp.ietf.org/internet-drafts/draft-foschiano-udld-01.txt" target="newpage">IETF ドラフト (Informational)</A></STRONG>として公開されています(2006年3月現在、Revision 01。2006年8月にExpiration 予定)。

しかし、
<DIV ID="cco_doc_part">
Please note that this document is not meant to be used as an 
implementation reference for inter-vendor interoperability purposes. 
Its objective instead is to be an informative reference for users who 
wish to deploy services based on the protocol herein described. 
</DIV>

とあるので、他社への普及を目指したものではなさそうです。

ファウンドリネットワークス社のスイッチにも、UDLD という機能があります。
マニュアルを読むと、シスコのUDLD と同じ目的の機能のようです。
しかし、シスコとの互換性はないと思われます。
仮に相互接続できたとしても、おそらくシスコはサポートしないでしょう。]]>
    </content>
</entry>
<entry>
    <title>特許文書の閲覧・ダウンロード</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/03/post_28.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=182" title="特許文書の閲覧・ダウンロード" />
    <id>tag:www.smartnetworks.jp,2006://2.182</id>
    
    <published>2006-03-04T15:01:36Z</published>
    <updated>2006-03-04T15:02:59Z</updated>
    
    <summary>USPTO が公開している特許の文書は、TIFF 形式の画像ファイルです。 ...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="034_tokkyo" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        USPTO が公開している特許の文書は、TIFF 形式の画像ファイルです。

        <![CDATA[
TIFF に対応している画像表示ツールであればどれでも問題ありませんが、USPTO は、<STRONG><A HREF="http://www.uspto.gov/patft/help/images.htm" target="newpage">AlternaTIFF</A></STRONG> というフリーウェアの使用を推奨しています。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/UPTO6.JPG"></CENTER>

"Images" ボタン(上図のオレンジ色の矢印）をクリックすると、文書を閲覧するページが開きます。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/UPTO7.JPG"></CENTER>

<UL><IMG SRC="http://www.smartnetworks.jp/images/UPTO8.JPG">
画像を白黒反転させます。
見易いので、私は黒ベースの白抜き文字で閲覧しています。</UL>
<UL><IMG SRC="http://www.smartnetworks.jp/images/UPTO9.JPG"> 
AlternaTIFF のメニューが表示されます。
<UL>Open in New Window で、そのページを別ウィンドウで表示させると、読みやすい大きさになります。</UL>
</UL>]]>
    </content>
</entry>
<entry>
    <title>UPTO (United States Patent and Trademark Office)</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/03/upto_united_states_patent_and.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=181" title="UPTO (United States Patent and Trademark Office)" />
    <id>tag:www.smartnetworks.jp,2006://2.181</id>
    
    <published>2006-03-04T14:54:36Z</published>
    <updated>2006-03-04T14:57:10Z</updated>
    
    <summary>UPTO は、日本の特許庁にあたる、アメリカ合衆国の連邦政府機関です...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="034_tokkyo" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        <![CDATA[<STRONG>UPTO</STRONG> は、日本の特許庁にあたる、アメリカ合衆国の連邦政府機関です]]>
        <![CDATA[通信機器メーカの多くはアメリカ合衆国を本拠地としており、それらの企業が所持する特許は、UPTO のホームページ上で無料で閲覧することが出来ます。

<STRONG><A HREF="http://www.uspto.gov/" target="newpage">UPTO (United States Patent and Trademark Office</A></STRONG>

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/UPTO1.JPG"></CENTER>

トップページの左上、上図の赤枠で囲まれた部分に、特許情報を検索するページへのリンクがあります（その下のリンクからは、商標情報を検索できます）。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/UPTO2.JPG"></CENTER>

左上の緑色の部分から、登録済の特許を検索することが出来ます。
右上の黄色の部分では、出願されたものもまだ登録されていない案件を検索できます(※)。

本特集では左側（緑色）を使用します。

<UL>※
検索可能な登録案件は、2001年3月15日以降に出願された案件のみです。
アメリカ合衆国には、2001年まで出願早期公開制度がありませんでした。
特許が登録されるまでは、内容を第三者が閲覧することができず、同じ内容の出願がされることによる弊害が指摘されていました。
（出願が特許として登録されるまでには数年掛かるため、2番目以降の人は、自分が一番ではないことを知らないまま時間を無駄にすることになる）

2001年に改正された合衆国特許法により出願早期公開制度が採用され、出願から18ヶ月経過した案件は公開されることとなりました。

登録済の特許（左側の緑色）は、1790年以降すべて閲覧可能です。</UL>


<CENTER><IMG SRC="http://www.smartnetworks.jp/images/UPTO3.JPG"></CENTER>

Quick Search で、Assignee Name (出願者) に 会社名（Cisco Systems など）を入力して "Search" をクリックすると、その会社が出願して登録された特許の一覧が出力されます。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/UPTO4.JPG"></CENTER>

閲覧したい特許をクリックすると、内容が表示されます。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/UPTO5.JPG"></CENTER>

<UL>
@ <STRONG>United States Patent</STRONG>
<UL>合衆国特許番号。右側にある7桁の数字が特許番号です。</UL>
A <STRONG>発明者</STRONG>
<UL>通常、出願者(企業)の社員名が入ります。<STRONG>et al</STRONG>とある場合、複数人の発明者のうちの代表者であることを意味します。</UL>
B <STRONG>概要 (Abstract)</STRONG>
<UL>特許の概要です。</UL>
C <STRONG> 発明者 (Inventors)</STRONG>
<UL>発明者全員の名前です。</UL>
D <STRONG> 出願者 (Assignee)</STRONG>
<UL>特許を出願した人の名前が入ります。通常は、ここに企業名が入ります。</UL>
E <STRONG> Appl. No.</STRONG>
<UL>出願番号</UL>
F <STRONG> Filed</STRONG>
<UL>出願日</UL>
G <STRONG>Current U.S. Class</STRONG>
<UL>特許のカテゴリ。スラッシュの左側がメインカテゴリで、右側がサブカテゴリです。カテゴリは、<A HREF="http://www.uspto.gov/go/classification/" target="newpage">こちらで検索できます。</A>。
</UL>
H <STRONG>登録日</STRONG>
<UL>特許の登録日</UL>
</UL>

そのほか、以下の項目があります。

<UL>
<STRONG>References Cited</STRONG>
<UL>この特許が引用した、他の特許と資料</UL>
<STRONG>Claims</STRONG>
<UL>この特許が主張する項目。いわゆる請求項</UL>
]]>
    </content>
</entry>
<entry>
    <title>特集 - トウキョウトッキョキョカキョク</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/03/post_27.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=180" title="特集 - トウキョウトッキョキョカキョク" />
    <id>tag:www.smartnetworks.jp,2006://2.180</id>
    
    <published>2006-03-04T14:53:06Z</published>
    <updated>2006-03-04T14:53:45Z</updated>
    
    <summary>ここで改めて言うまでもなく、通信技術は標準規格をベースとして成り立っています。...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="034_tokkyo" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        ここで改めて言うまでもなく、通信技術は標準規格をベースとして成り立っています。
        <![CDATA[
標準規格には、IETF やATM Forum といった業界標準（<STRONG>デファクトスタンダード</STRONG>）、ITU やJIS などの公的な標準（<STRONG>デジュールスタンダード</STRONG>）があります。

どのような規格であれその規格に則って設計されたシステムは、互換性が保証されているわけです（※）

<UL>※ 必ずしもそうは行かないのが世の常ですが・・・</UL>

完全に規格に則ったシステムであれば、だれが作ってもまったく同じものが出来ます。
つまり、没個性です。

国や自治体が提供するサービスであれば、それでも差し支えありませんが、営利企業の作るものには差別化（個性）が必要です。

多くのメーカは、標準規格をベースにして他社製システムとの互換性を保ちながら、独自機能を加えることで他社との差別化を図っています。

独自機能は、自社製品を売り込むための重要なセールスポイントです。
「うちの製品を使えば、こんなに便利になりますよ」というわけです。
他社にマネをされてしまうと、（そのメーカにとっては）価値がなくなってしまいます。

マネをされることを防ぐため、多くのメーカは独自機能を特許出願しています。
通信機器業界の巨人、シスコシステムズも例外ではありません。

<HR>

本特集では、シスコシステムズを中心に、通信機器メーカが出願している特許をご紹介します。

通信機器メーカが出願している特許には、独自プロトコルや機器の設計手法、プログラミング手法に関するものなど、さまざまな種類があります。

今回は、実際に通信機器を扱っているエンジニアが実感しやすい、コマンドなどで設定可能な、つまり筐体の外から目に見える機能やプロトコルに関する特許を取り扱うこととします。]]>
    </content>
</entry>
<entry>
    <title>サイト紹介：VINE MEMO</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/03/vine_memo.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=175" title="サイト紹介：VINE MEMO" />
    <id>tag:www.smartnetworks.jp,2006://2.175</id>
    
    <published>2006-03-04T00:47:30Z</published>
    <updated>2006-03-04T00:48:00Z</updated>
    
    <summary>Vine Linux でサーバを構築するための情報を発信しているウェブサイトです...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="060_yomoyama" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        Vine Linux でサーバを構築するための情報を発信しているウェブサイトです。
        <![CDATA[
ハードウェアのパーツ選定から、OS のインストール、サーバの構築まで網羅されています。

質問用の掲示板もあるので、困ったときは質問できますよ。

Windows のファイアウォールやアンチウィルスソフトの情報もあります。


<STRONG><A HREF="http://vinememo.mydns.jp/index.html" target="newpage">VINE MEMO</A></STRONG>]]>
    </content>
</entry>
<entry>
    <title>STP を究める 基礎編 (6)Root Path Cost (ルートパスコスト)</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/03/stp_6root_path_cost.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=169" title="STP を究める 基礎編 (6)Root Path Cost (ルートパスコスト)" />
    <id>tag:www.smartnetworks.jp,2006://2.169</id>
    
    <published>2006-03-02T08:36:14Z</published>
    <updated>2006-03-02T13:02:21Z</updated>
    
    <summary>本特集の第一回:スパニングツリーとルーティングプロトコルで、STP の目的はRo...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="033_stp" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        <![CDATA[本特集の<STRONG><A HREF="http://www.smartnetworks.jp/2006/02/stp_1.html">第一回:スパニングツリーとルーティングプロトコル</A></STRONG>で、STP の目的はRoot Bridge(ルートブリッジ)への最短パスを探し出すことだ、とお話しました。]]>
        <![CDATA[ルートブリッジへのパスが複数ある場合、最短パス以外を閉塞（ブロッキング）させることで、ループ状態を回避します。

複数のパスから最短パスを特定するための判断基準 (尺度)として、コストを用います。

ポートに設定されているコストを、<STRONG>Path Cost (パスコスト)</STRONG>と呼びます。
Root Bridge までのパス上に存在する各ブリッジのPath Cost を合計したものを、<STRONG>Root Path Cost (ルートパスコスト)</STRONG>と呼びます。

Root Bridgeは、ツリートポロジの基点となるブリッジです。このRoot Bridge をコスト0(ゼロ)とします。
Root Bridge からトポロジの周縁部に向かってブリッジを越えるたびに、コストを加算していきます。
あるブリッジからRoot Bridge へのパスが複数ある場合、加算されたコストを比較し、最もコストが小さいパスが選択され、そのほかのパスは閉塞されます。

Path Cost は、ブリッジの各ポートに設定される値です。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/stp12.jpg"></CENTER>

上図では、左側のBrige-A がRoot Bridge になっています。
右側のBridge-B のPort 1 と2 には、Path Cost がそれぞれ10 と20に設定されています。
この場合、Port 1のPath Cost の方がPort 2と比べて小さいので、Root Bridge (Bridge-A) までのコストが小さいと判断されます。
Path Cost は一台のブリッジに一つではなく、ポート毎に保持する値である点に注意してください。

Root Path Cost はブリッジを越えるたびに加算されます。
Root Bridge との間に他のブリッジが存在する場合、通過した全てのブリッジのコストを合計した値が、そのポートのRoot Path Cost となります。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/stp13.jpg"></CENTER>

Root Path Cost の加算は、Root Bridge からのデータ(※)を<STRONG>受信した</STRONG>ポートで行われます。
上図で、Bridge-B のPort 2のコスト(5)が、加算の対象となっていないのはそのためです。

<UL>※
Root Bridge から送信される（他のブリッジにより中継される）データを、<STRONG>BPDU (Bridge Protocol Data Unit)</STRONG> と呼びます。
BPDU については、「STP を究める 基礎編 (9)Configuration BPDU (コンフィグレーションBPDU)のフォーマット」で説明します。</UL>

IEEE 802.1D では、ポートに設定可能なPath Cost を以下のように定めています。
(1998年版 IEEE 802.1D - Table 8.5 Path Cost Parameter Values より抜粋)

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/stp14.jpg"></CENTER>


<HR>

<UL> <STRONG>STP を究める 基礎編</STRONG> の内容は、特に明記しない限り、1998年版のIEEE 802.1D に基づいています。
Bridge ID、Port ID、Path Cost 値など、IEEE 802.1T で行われた仕様の拡張は、2004年版のIEEE 802.1D に盛り込まれています。
これらの拡張仕様については、応用編にて説明する予定です。</UL>
]]>
    </content>
</entry>
<entry>
    <title>MAC アドレスは5分で消えるか？</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/02/mac_5.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=159" title="MAC アドレスは5分で消えるか？" />
    <id>tag:www.smartnetworks.jp,2006://2.159</id>
    
    <published>2006-02-28T14:18:56Z</published>
    <updated>2006-02-28T14:28:26Z</updated>
    
    <summary>多くのLayer2 スイッチでは、MAC アドレステーブルのエージングタイムは3...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="060_yomoyama" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        多くのLayer2 スイッチでは、MAC アドレステーブルのエージングタイムは300秒に設定されています。
        <![CDATA[IEEE 802.1D が推奨するデフォルト値だからです。
IEEE 802.1D では、10〜1,000,000 秒の間で設定可能とされています（実際に設定可能かどうかは、機器の実装に依存します)。

※ IEEE 802.1D - Table 7.4 Ageing time parameter value 参照

あるMAC アドレスがスイッチのポートで学習された後、そのMAC アドレスを送信元とするフレームを300秒間受信しないと、そのMAC アドレスはテーブルから削除されます。
というのが通説となっています。

これは、多くの場合<STRONG>正しくありません</STRONG>。
MAC アドレステーブルのエージングタイムは、テーブル上のMAC アドレスが最後に参照されてから、エイジアウトするまでの時間を定めた物、という誤解に基づいているからです。

<HR>

MAC アドレステーブルのエージングタイムは、エイジアウトするまでの時間ではなく、<STRONG>エントリをエイジアウトさせるべきかどうかの判定を行う間隔</STRONG>を定めた値です。

MAC アドレスがスイッチのポートで学習されると、そのMAC アドレスには、スイッチによって参照された事を意味するフラグがセットされます。

学習された直後のエイジアウト判定処理で、スイッチはMAC アドレスのフラグを確認します。

ここでフラグがセットされている場合、フラグはリセットされます。

その次の判定処理までの間に、そのMAC アドレスを送信元とするフレームを同じポートで受信すると、フラグは改めてセットされます。

判定処理までの間に、そのようなフレームを受信しなかった場合（つまり、フラグはリセットされている状態）、そのMAC アドレスはテーブルから削除されることになります。

以下の例は、エージングタイムがデフォルトの300秒の場合のエイジアウトについて説明するものです。

<CENTER><IMG SRC="http://www.smartnetworks.jp/images/mac_aging.jpg"></CENTER>

<OL type=1>
<LI><STRONG>A</STRONG>のタイミングでフレームを受信します。送信元アドレスをMAC アドレステーブルに登録し、判定フラグをセットします。
<LI><STRONG>B</STRONG>のタイミングで判定処理が発生し、セットされていたフラグをリセットします。
<LI>Bから300秒経過し、<STRONG>C</STRONG>のタイミングで二度目の判定処理が発生します。
A で登録されたMAC アドレスにはフラグがセットされていないので、エイジアウトします。</OL>

<STRONG>B</STRONG>と<STRONG>C</STRONG>の間に、フレームを再度受信した場合は、フラグがセットしなおされるため、<STRONG>C</STRONG> のタイミングではフラグがリセットされるだけで、エイジアウトはしません。

以上の事から、学習されたMAC アドレスが、その後一度も再学習されなかった場合、エイジアウトするまでに要する時間は、300秒以上(ただし、600秒未満）となることがわかります。

<UL>最短時間 = 300 秒  ------>> 判定処理のタイミングに学習した場合
最長時間 = 600-1 秒 ------>> 判定処理の直後に学習した場合</UL>


Catalyst6500 のDFC (Distributed Feature Card) など一部のスイッチでは、上記の動作とは異なる実装がされているものもあります。
DFC は、Catalyst6500 のラインカード毎に搭載されるForwarding Engine です。

本来SVE (Supervisor Engine Module) 上のPFC (Policy Feature Card) で行う転送処理を、各ラインカードで行わせることで、SVE の負荷を下げると同時に、高速転送処理を実現しています。

エージングの方式が通常のスイッチと異なるのは、筐体内に分散されたDFC 間で情報の同期を取るためのメカニズムが加わっているためです。]]>
    </content>
</entry>
<entry>
    <title>STP を究める 基礎編 (5)Bridge ID とRoot Bridge (ルートブリッジ)</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/02/stp_5bridge_id_root_bridge.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=152" title="STP を究める 基礎編 (5)Bridge ID とRoot Bridge (ルートブリッジ)" />
    <id>tag:www.smartnetworks.jp,2006://2.152</id>
    
    <published>2006-02-28T07:38:36Z</published>
    <updated>2006-03-02T06:34:02Z</updated>
    
    <summary>これまでの例で見たように、Bridged-LAN 上には一台以上のブリッジが存在...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="033_stp" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        これまでの例で見たように、Bridged-LAN 上には一台以上のブリッジが存在し得ます。
        <![CDATA[二台以上存在する場合、個々のブリッジを識別するためには、一意(ユニーク)な名前が必要です。
どのブリッジの名前も"Bridge" だと、どの機器を指しているのかわからないからです。

MAC 副層の上で動作するブリッジは、いわゆるLayer2 機器です。
Layer2 (Ethernet)には、MAC アドレスという、一意な名前(※)があります。
ブリッジの持つMAC アドレスを名前として利用すれば、ブリッジが何台あっても重複することなく一意に表現できます。


<UL>※
IP アドレスと違い、MAC アドレスには位置情報が含まれていません。
位置情報が含まれない識別子は、アドレスではなく名前です。
つまり、MAC アドレスは厳密にはアドレスではないことになります。
(IP アドレスには、ホストが所属するネットワーク(位置)を意味するネットワーク部があります）</UL>

<HR>

STP (Spanning Tree Protocol) は、物理的にループ構成となっているBridged-LAN 上に、論理的なツリートポロジを構築するためのプロトコルです。

ツリートポロジとは、トポロジ上の任意の二点間を結ぶ経路が一つしか存在しないトポロジです。
具体的には、基点となるブリッジから枝葉を伸ばすようにノード(ブリッジ)を接続していきます。

基点となるブリッジを、<STRONG>Root Bridge (ルートブリッジ)</STRONG>と呼びます。
root は、根を意味する英単語です。
つまり、ツリートポロジの根となるブリッジです。

<IMG SRC="http://www.smartnetworks.jp/images/stp9.jpg">
<HR>

ルートブリッジはどのように選出されるのでしょうか。

一番簡単なのは、静的に設定してやる方法です。管理者により直接、Root Bridge であると設定してやれば、間違いはありません。

しかし、この方法には問題があります。
静的な設定は、ブリッジの故障や新しいブリッジの追加というイベントに、自動的に対応できません。
つまり、<STRONG><A HREF="http://www.smartnetworks.jp/2006/02/stp_4.html">STP を究める 基礎編 (4)スパニングツリーの役割</A></STRONG>でお話した、b項に違反してしまいます。

ブリッジ同士で情報を交換し合って、Root Bridge を選出することが出来れば、イベントの発生を受けて、その時々に適切なブリッジがRoot Bridge になることが出来ます。

ブリッジ同士で交換する情報には、ブリッジの名前が格納されています。
この名前は、16進数で構成されるMAC アドレスです。

幸いMAC アドレスは16進数の数値です。数値であれば、ブリッジ同士で大小を比較し、最も小さいMAC アドレスを持つブリッジを、Root Bridge に選出することが可能です。

<HR>

しかし、MAC アドレスを比較することにも問題があります。

MAC アドレスは機器固有のアドレスであり、通常は変更することが出来ません。
つまり、Bridged-LAN の構築に同じブリッジを使う限り、必ず決まったブリッジがRoot Bridge となってしまいます。

これは、「<STRONG>任意のトポロジを構成できること</STRONG>」を求めるd項に違反しています。

Root Bridge はツリートポロジの根となるブリッジです。
トラフィックのパターンにもよりますが、枝葉となるブリッジ間の通信の多くは、Root Bridge を通過します。

Bridged-LAN の外縁部 (端末が収容されている、ブロードキャストドメインの末端)のブリッジがRoot Bridge となると、トラフィックがそこに集中してしまいます。

MAC アドレスだけでRoot Bridge を選出するのは無理がありそうです。

<HR>

STP を実装しているブリッジはそれぞれ、変更可能なBridge Priority (ブリッジプライオリティ)という値を持っています。

このBridge Priority にMAC アドレスを合わせた値を、<STRONG>Bridge ID (ブリッジID)</STRONG> と呼びます。
Root Bridge を選出するために比較されるのは、このBridge ID です。

<BR><BR><BR><CENTER><IMG SRC="http://www.smartnetworks.jp/images/stp10.jpg"></CENTER>
<BR><BR><BR>

Bridge Priority は、0 〜 65535 (10進数) の間で設定可能です。
IEEE 802.1D で推奨するデフォルト値は32768(16進数の0x8000) で、Cisco のCatalyst を含め多くの機器はこの値をデフォルト値にしています。

「Bridge Priority + MAC アドレス」という形をとるため、通常は、MAC アドレスの値に左右されることなく、設定されたBridge Proirty が最も小さいブリッジが、Root Bridge に選出されます。

初期値のまま使用するなど、Bridge Priority が同じブリッジが二台以上存在する場合、MAC アドレスが最も小さいブリッジがRoot Bridge となります。

<IMG SRC="http://www.smartnetworks.jp/images/stp11.jpg">
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<HR>

<UL> <STRONG>STP を究める 基礎編</STRONG> の内容は、特に明記しない限り、1998年版のIEEE 802.1D に基づいています。
Bridge ID、Port ID、Path Cost 値など、IEEE 802.1T で行われた仕様の拡張は、2004年版のIEEE 802.1D に盛り込まれています。
これらの拡張仕様については、応用編にて説明する予定です。</UL>

]]>
    </content>
</entry>
<entry>
    <title>STP を究める 基礎編 (4)スパニングツリーの役割</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/02/stp_4.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=133" title="STP を究める 基礎編 (4)スパニングツリーの役割" />
    <id>tag:www.smartnetworks.jp,2006://2.133</id>
    
    <published>2006-02-26T01:58:28Z</published>
    <updated>2006-03-02T06:33:30Z</updated>
    
    <summary>「STP を究める 基礎編 (1)スパニングツリーとルーティングプロトコル」でも...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="033_stp" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        <![CDATA[「<STRONG><A HREF="http://www.smartnetworks.jp/2006/02/stp_1.html" target="newpage">STP を究める 基礎編 (1)スパニングツリーとルーティングプロトコル</A></STRONG>」でも書いたように、STP は、各ブリッジからルートブリッジへの最短パスを探し出すことを目的としたプロトコルです。]]>
        <![CDATA[ルートブリッジへのパスが複数ある場合は、最短パス以外を待機系とします。
最短パスが使用不可能となると、待機系となっているパスの中で最も最短のパスが改めて選出されます。

そうすることで、ブリッジ間だけではなく、任意の二点間のパスがひとつだけとなり、ループを防ぐことができます。

トポロジの変化を察知して最新の状況に対応するためには、ブリッジ同士が情報を交換するための規則と、交換した情報を元に正しく判断するための規則が必要なります。
これらの規則を総称して、<STRONG>STA (Spanning Tree Algorithm)</STRONG> と呼びます。

STA は、<STRONG>IEEE 802.1D</STRONG> の第八章で定義されています。
IEEE 802.1D は、MAC フレームの宛先アドレスを読んで転送先ポートを決定する、いわゆる<STRONG>Transparent MAC Bridge (透過MAC ブリッジ)</STRONG> の仕様を定めた規格です。

IEEE 802.1D の第八章第一節では、STA に必要とされる項目が挙げられています。

<STRONG>8.1 Requirements to be met by the algorithm</STRONG>

<STRONG>a) It will configure the active topology of a Bridged LAN of arbitrary topology into a single spannning tree, such that there is at most one data route between any two end stations, eliminating data loops.</STRONG>

任意のトポロジを単一のツリートポロジーに収束させることで、任意の二点間のパスをひとつにし、<STRONG><FONT COLOR=red>ループを防ぐ</FONT></STRONG>ことが求められています。

<STRONG>b) It will provide for fault tolerance by automatic reconfiguration of the spanning tree topology as a result of Bridge failure or a breakdown in a data path, within the confines of the available Bridged LAN components, and for the automatic accomodation of any Bridge or Bridge Port added to the Bridged LAN without the formation of transient data loops.</STRONG>

ブリッジやポートの追加や、故障に対応して、<STRONG><FONT COLOR=red>自動的にトポロジを変化させる</FONT></STRONG>ことが求められています。
また、新しいトポロジに対応するまでの間、一時的なループが発生しないことも要求されます。

<STRONG>c) The entire active topology will stabilize in any sized Bridged LAN. It will, with a high probability, stabilize within a short, known bounded interval in order to minimize the time for which the service is unavailable for communication between any pair of end stations.</STRONG>

Bridged LAN の大きさにかかわらず、安定動作することが求められています（これには、例外があります）。
また、状況の変化を受けてトポロジを変更する際、収束するまでの時間が短いことが、また、計測可能な範囲であることが求められています。
つまり、「いつかは収束する」というのは許されません。

<STRONG>d) The active topology will be predictable and reproducible, and may be selected by management of the parameters of the algorithm, thus allowing the application of Configuration Management, following traffic analysis, to meet the goals of Performance Management.</STRONG>

同じパラメータを設定している限り、必ず同じトポロジに収束することが求められています。
また、パラメータを操作することで、任意のトポロジを構成できることが求められています。
つまり、「構築するたびに、異なるトポロジ」は許されません。

<STRONG>e) It will operate transparently to the end statins. such that they are unaware of their attachment to a single LAN or a Bridged LAN when using the MAC Services.</STRONG>

端末から見て、<STRONG><FONT COLOR=red>透過的に動作する</FONT></STRONG>ことが求められています。
これは、STP への要求というよりは、ブリッジに求められている要件です。
IP で使われるデフォルトゲートウェイのような要素が必要ないことを意味します。

<STRONG>f) The communications bandwidth consumed by the Bridges in establishing and maintining the spanning tree on any particular LAN will be a small percentage of the total available bandwidth and independent of the total traffic supported by the Bridged LAN regardless of the total number of Bridges or LANs.</STRONG>

ブリッジ間でやり取りする情報が、帯域を浪費しないことが求められています。

<STRONG>g) The memory requirements associated with each Bridge Port are independent of the number of Bridges and LANs in the Bridged LAN.</STRONG>

LAN 上にブリッジが何台存在していても、LAN 上に情報を発信するのは通常一台だけです。

<STRONG>h) Bridges do not have to be individually configured before being added to the Bridged LAN, other than having their MAC Addresses assigned through normal procedures.</STRONG>

ブリッジをLAN に接続する際、事前の設定は必要ありません。
IP ルータのような、アドレスの設定が必要がないことを意味します。
ただし、任意のトポロジを構成するためには、設定を操作する必要があります。


<HR>

これらSTA に求められる要件をブリッジに実装したのが、<STRONG>STP (Spanning Tree Protocol)</STRONG> です。
以後のページでは、これらの要件がどのように実現されているのか、詳細を追っていきます。

<HR>

<UL> <STRONG>STP を究める 基礎編</STRONG> の内容は、特に明記しない限り、1998年版のIEEE 802.1D に基づいています。
Bridge ID、Port ID、Path Cost 値など、IEEE 802.1T で行われた仕様の拡張は、2004年版のIEEE 802.1D に盛り込まれています。
これらの拡張仕様については、応用編にて説明する予定です。</UL>

]]>
    </content>
</entry>
<entry>
    <title>STP を究める 基礎編 (3)Bridged LAN の冗長化</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/02/stp_3bridged_lan.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=127" title="STP を究める 基礎編 (3)Bridged LAN の冗長化" />
    <id>tag:www.smartnetworks.jp,2006://2.127</id>
    
    <published>2006-02-22T04:26:17Z</published>
    <updated>2006-03-02T06:33:03Z</updated>
    
    <summary>ブリッジが一台しかないと、そのブリッジが壊れてしまうとLAN 間の通信手段は無く...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="033_stp" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        ブリッジが一台しかないと、そのブリッジが壊れてしまうとLAN 間の通信手段は無くなってしまいます。
        <![CDATA[<IMG SRC="http://www.smartnetworks.jp/images/stp3.jpg">
<BR><BR><BR><BR><BR><BR><BR><BR>
上図では、LAN-1 とLAN-2 がBridge によって相互接続されています。
Brige のMAC アドレステーブルには、次のようなエントリが作成されており、PC-2 宛のフレームはPort-2 へ、PC-1 宛のフレームはPort-1 へ転送します。
仮に、PC-1 宛のフレームをPort-1 で受け取ると、受信ポートと転送先が同じなので、破棄されます。

Bridge に不具合が発生すると、PC-1 とPC-2 の間でフレームを送りあう手段は無くなってしまいます。

<IMG SRC="http://www.smartnetworks.jp/images/stp4.jpg">
<BR><BR><BR><BR><BR>
このような状態になってしまうのは、LAN-1 とLAN-2 の間のBridge が一台しかないからです。
Bridge も機械ですから、絶対に壊れないということはありえません。

1台しかないからだめなのであれば、2台にしてみましょう。

<IMG SRC="http://www.smartnetworks.jp/images/stp5.jpg">
<BR><BR><BR><BR><BR><BR>
LAN-1 とLAN-2 の間に、2台のBridge を置いてみました(Bridge-A、B)。
これなら、Bridge が一台壊れても、もう一台のBridge を経由して通信を継続することができます。

2台のBridge では、MAC アドレステーブルは次のようになっています。

<IMG SRC="http://www.smartnetworks.jp/images/stp6.jpg">
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
PC-1 からPC-2 へ送られるフレームは、Bridge-B によりLAN-1 へ転送された後、Bridge-A のPort-1 でも受信されます。
Bridge-A のMAC アドレステーブルでは、PC-1 のMAC アドレスはPort-1 で学習されているので、Port-2 へ転送されることは無く、破棄されます。

フレームがブロードキャストの場合はどうでしょうか？

<IMG SRC="http://www.smartnetworks.jp/images/stp7.jpg">
<BR><BR><BR><BR><BR><BR><BR><BR><BR>
ff-ff-ff-ff-ff-ff は、全てのノードを意味するMAC アドレスです。
ff-ff-ff-ff-ff-ff を送信元とするノードは存在しないので、このアドレスがブリッジに学習されることはありえません(※文末)

学習されることがないため、宛先MAC アドレスがff-ff-ff-ff-ff-ff となっているフレーム(ブロードキャスト)を受け取ったブリッジは、無条件に他のポートへ転送します。
結果、二台のブリッジによってフレームは永遠に転送され続けることになります。

Ethernet フレームには、IP ヘッダのTTL のような、転送された回数を記録する仕組みがないからです。
当然、ブリッジはそのフレームが何回転送されたかを知ることができず、永遠に転送され続けることになります。

PC-1 だけではなく、フレームを送信したPC-2 にも、大量のブロードキャストフレームが届きます。
PC は受信したブロードキャストフレームを処理するのに手一杯となります。
ブリッジにもCPU が搭載されており、受信したブロードキャストフレームを処理する必要があります。
PC と同じように手一杯になり、ブリッジ本来のフレーム転送処理にも影響が出てきます。
いわゆる、ブロードキャストストームです。

<HR>

たいていの技術書で説明していあるのは、ここまでです。
しかし、複数のLAN の間に二台以上のブリッジがある場合に発生する問題は、これだけではありません。
これまでの説明では、ユニキャストフレームなら問題がないようにも読めます。

<IMG SRC="http://www.smartnetworks.jp/images/stp8.jpg">
<BR><BR><BR><BR><BR><BR><BR><BR><BR>
PC-2 から送信されたフレームは、Bridge-A とB の両方で受信され、それぞれLAN-1 へ転送されます。
結果、PC-1 はPC-2 が送信した数の二倍のフレームを受信することになります。
また、二台のブリッジが完全に同期を取ってフレームを転送するわけではありません。
つまり、PC-2 が送信した順番通りに、PC-1 に届くとは限らないわけです。

前者をFrame Duplication (複製)、後者をMiss Ordering (順番間違い)と呼びます。
上位層のプロトコルにも依存しますが、PC-1 は、受信したフレームから上位層のデータを正しく再生できない場合もあります。

Ethernet では、フレームは、必ず送信された順番で受信される必要があります。

<HR>

単純にブリッジの台数を増やしただけでは、冗長化は実現できないことが分かりました。一方のブリッジが待機系となり、他方のブリッジが正常に動作している間はフレーム転送処理を行わないような仕組みがあれば、なんとかなりそうです。

本特集で取り上げるSTP (Spanning Tree Protocol) を使うと、そのような問題を解決することができます。

※ 送信元にff-ff-ff-ff-ff-ff を入れる端末と、そんなフレームを受信するとMAC アドレステーブルに登録してしまうLAN スイッチ・・・・関連性のない二つのバグのコラボレーションで、特定ポートにしかブロードキャストを転送できなくなるというトラブルを経験したことがあります・・・

<HR>

<UL> <STRONG>STP を究める 基礎編</STRONG> の内容は、特に明記しない限り、1998年版のIEEE 802.1D に基づいています。
Bridge ID、Port ID、Path Cost 値など、IEEE 802.1T で行われた仕様の拡張は、2004年版のIEEE 802.1D に盛り込まれています。
これらの拡張仕様については、応用編にて説明する予定です。</UL>

]]>
    </content>
</entry>
<entry>
    <title>STP を究める 基礎編 (2)LAN とBridged LAN</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/02/stp_2lan_bridged_lan.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=123" title="STP を究める 基礎編 (2)LAN とBridged LAN" />
    <id>tag:www.smartnetworks.jp,2006://2.123</id>
    
    <published>2006-02-19T23:19:54Z</published>
    <updated>2006-03-02T06:32:38Z</updated>
    
    <summary>STP (Spanning Tree Protocol) の話をする際、「LAN...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="033_stp" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        STP (Spanning Tree Protocol) の話をする際、「LAN の中でもっともプライオリティが高い」という表現が頻繁に出てきます。
        <![CDATA[ここで言うLAN は、普通LAN と聞いて思い浮かべるLAN とは少しちがいます。

下図では、三つのEthernet セグメントが、2台のブリッジ(Bridge-A、B)によって接続されています。

<IMG SRC="http://www.smartnetworks.jp/images/stp1.jpg">
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
各セグメントには、LAN-1、LAN-2、LAN-3 と名前がついています。
STP のトポロジーを考える場合、このように、Ethernet セグメント ＝ LAN となります。
つまり、このネットワークには、LAN が三つあることになります。

このように、複数のLAN がブリッジで相互接続された状態を、Bridged-LAN(ブリッジドLAN：ブリッジされたLAN) と呼びます。

この定義は、IEEE 802 (LMSC: LAN and MAN Standard Committee) により定められたものです。
LAN とは、IEEE802.3 や802.5 といった規格で定められている範囲のもの、ということができます。
それらを相互接続するための規格が、IEEE802.1d です。

※ IEEE 802.1d = Local Area Network - Media Access Control (MAC) Bridges

STP の話をしているときにLAN と言う場合、Ethernet であればCollision Domain (コリジョンドメイン)と同じ意味になります。

UTP や光ケーブルでブリッジ同士がPoint-to-Point 接続されている場合は、その部分がLAN です。

<IMG SRC="http://www.smartnetworks.jp/images/stp2.jpg">
<BR><BR><BR><BR><BR><BR><BR>
<HR>

Layer2で動作する機器には、ブリッジとスイッチがあります。
どちらも、受け取ったフレームから送信元MAC アドレスを学習するラーニングブリッジです。
受け取ったフレームの宛先MAC アドレスをキーに、MAC アドレステーブルを参照して転送先ポートを決定するという動作に変わりはありません。

フレームの転送処理をCPU (ソフトウェア)で行うのがブリッジ、ASIC (ハードウェア)で行うのがスイッチ、という認識が一般的です。
処理を行うコンポーネントが違うだけで、本質的に同じものと言えます。

STP の観点からは、ブリッジとスイッチに違いはありません。
本特集では、文脈に不都合が生じない限り、ブリッジに統一します。

<HR>

<UL> <STRONG>STP を究める 基礎編</STRONG> の内容は、特に明記しない限り、1998年版のIEEE 802.1D に基づいています。
Bridge ID、Port ID、Path Cost 値など、IEEE 802.1T で行われた仕様の拡張は、2004年版のIEEE 802.1D に盛り込まれています。
これらの拡張仕様については、応用編にて説明する予定です。</UL>

]]>
    </content>
</entry>
<entry>
    <title>TCAM (Ternary CAM) とBCAM (Binary CAM)</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/02/cam_tcamternary_cam.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=119" title="TCAM (Ternary CAM) とBCAM (Binary CAM)" />
    <id>tag:www.smartnetworks.jp,2006://2.119</id>
    
    <published>2006-02-18T23:06:07Z</published>
    <updated>2006-02-22T06:29:19Z</updated>
    
    <summary>さまざまなメーカから発売されるLAN スイッチのデータシートを見ると、ほとんどの...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="060_yomoyama" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        さまざまなメーカから発売されるLAN スイッチのデータシートを見ると、ほとんどの製品がTCAM を実装しているのが分かります。
        <![CDATA[TCAM (Ternary CAM、ターナリCAM) とは何でしょうか？ 従来のCAM と何が違うのでしょうか？

まずは、Ternary の意味を調べて見ましょう。
<STRONG><A HREF="http://dictionary.goo.ne.jp/search.php?MT=ternary&kind=ej" target="newpage">goo 英和辞書</A></STRONG>を見ると、

<UL>三つ組の; 三元の; 第三位の; 【コンピュータ】3値の, 3進法の</UL>

とあります。
どうやら、キーワードは「三つ」にあるようです。

ディジタルコンピュータが扱うデータを細かくしていくと、最後は0 か1 の二種類の値を表すビットになります。つまりBinary(バイナリ)です。

CAM に格納されるデータはディジタル情報なので、0か1 のどちらかです(バイナリ)。

※ 通常CAM と呼ぶときは、BCAM (Binary CAM) を指します。

TCAM もディジタル情報を扱うので、当然0 と1 です。
では、三つ目は何でしょうか？

答えは、Don't Care (ドントケア)です。
論理回路の勉強をしたことがある人は、聞いたことがあるのではないでしょうか？(ブール代数とかカルノー図とか)
0 と1 の、どちらでも良いことを表す言葉です。言い換えれば、0 or 1です。

つまりTCAM は、検索対象に0、1、Don't Care の3種類の状態が存在するわけです。

<HR>

Don't Care があると、どんな良いことがあるのでしょうか？

0と1 の2種類しかないと、検索で引っ掛けるためには、検索対象の要素が検索キーと完全に一致する必要があります。
Don't Care は0と1のどちらでも良い値です。つまり、検索する際に無視できるということです。

具体的には、検索対象の要素のうち、無視できる領域を表すマスクで表現します。
マスクと聞いてピンときた人もいますよね？
そうです。サブネットマスクです。

サブネットマスクは、IP アドレスのうち、ネットワーク部を意味する領域の大きさを表現するのに使われます。
マスクされなかった部分はホスト部で、ネットワーク(サブネット)を表現する際には無視される部分です。

TCAM は、Longest Prefix matching (ロンゲストマッチと呼ばれるのが一般的)が必要なテーブル検索に利用されます。
ルーティングテーブルの検索がもっとも多い使用例です。
レイヤ3スイッチの多くがTCAM を採用しているのは、このためです。

これに対してレイヤ2スイッチのMAC アドレステーブルは、TCAM である必要はありません。
MAC アドレスの検索にPrefix を指定する必要は無く、検索対象がキーと完全に一致していることが要求されるためです。

※ 仮に、MAC アドレスの先頭3バイトが00-11-22 というエントリだけを探し出す、というような検索がMAC アドレステーブルに求められるのであれば、TCAM を使うメリットが出てきます。
しかし、MAC アドレステーブルをそのような目的で利用する機能は、現在はありません(今後もないでしょう)。


<STRONG><A HREF="http://www.smartnetworks.jp/2006/02/cisco_mac_cam.html">なぜCisco は、MAC アドレステーブルをCAM と呼ぶのか？</A></STRONG> も併せてお読みください。]]>
    </content>
</entry>
<entry>
    <title>Cisco はなぜ、MAC アドレステーブルをCAM と呼ぶのか？</title>
    <link rel="alternate" type="text/html" href="http://www.smartnetworks.jp/2006/02/cisco_mac_cam.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.smartnetworks.jp/cgi/mt/mt-atom.cgi/weblog/blog_id=2/entry_id=118" title="Cisco はなぜ、MAC アドレステーブルをCAM と呼ぶのか？" />
    <id>tag:www.smartnetworks.jp,2006://2.118</id>
    
    <published>2006-02-18T23:05:05Z</published>
    <updated>2006-02-22T06:25:40Z</updated>
    
    <summary>CatOS で動作しているCatalyst シリーズスイッチでは、MAC アドレ...</summary>
    <author>
        <name>msori</name>
        <uri>http://www.smartnetworks.jp/</uri>
    </author>
            <category term="060_yomoyama" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.smartnetworks.jp/">
        <![CDATA[CatOS で動作しているCatalyst シリーズスイッチでは、MAC アドレステーブルのことを<STRONG>CAM (Content Addressable Memory)</STRONG> と呼んでいます。]]>
        <![CDATA[CatOS のコマンドプロンプトで、<STRONG>show cam dynamic</STRONG> と実行すると、以下のような結果が得られます。

<DIV ID="ioslog_part">
<BR>Catalyst> <FONT COLOR=red>show cam dynamic</FONT>

* = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry.
X = Port Security Entry

VLAN  Dest MAC/Route Des    [CoS]  Destination Ports or VCs / [Protocol Type]
----  ------------------    -----  --------------------------------------
1     00-60-5c-86-5b-81    *    4/1 [ALL]
1     00-60-2f-35-48-17    *    4/1 [ALL]
1     00-80-24-f3-47-20    *    1/2 [ALL]
1     00-60-09-78-96-fb    *    4/1 [ALL]
1     00-80-24-1d-d9-ed    *    1/2 [ALL]
1     00-80-24-1d-da-01    *    1/2 [ALL]
1     08-00-20-7a-63-01    *    4/1 [ALL]</DIV>

なぜ、MAC アドレスと宛先ポートを格納しているテーブルをCAM と呼ぶのでしょうか？
CAM とは何でしょうか？

<HR>

端的に言うとCAM は、SRAM などのメモリー上に展開されたテーブルから、目的のエントリーを高速に見つけ出すための手段です。

CAM の効用を理解するためには、まず、CAM ではないテーブル検索手段を見てみる必要があります。

どのような種類のテーブルでも良いのですが、ここはMAC アドレステーブルを例に考えてみましょう。

VLAN をサポートした最近のスイッチでは、さまざまな要素をMAC アドレステーブルに格納しています。
しかし今回は、もっともシンプルに、MAC アドレスとそれに対応するポート番号だけを格納したテーブルを、想定します。

MAC アドレステーブルから引き出したい情報は、そのアドレスが学習されたポートの番号です。
スイッチは、ポート番号を知ることで、そのアドレス宛のフレームを、正しいポートに転送できます。

テーブルから目的のエントリを探し出す一番シンプルな方法は、1行目から順番に見ていくことです。
間違いのない方法ですが、テーブルが大きくなると、どうしても時間がかかります。

実際には、ハッシュを使うなど、さまざまな工夫が施されています。
しかし、CPU により処理されるこれらの検索手段で、検索に要する時間を短縮するのは限界があります。

<HR>

1980年代の後半、CAM が登場します。

CAM は、先にも述べたとおり、メモリー上のテーブルから目的のエントリーを高速に見つけ出すための手段です。

技術の進歩により製造コストが下がった半導体素子上に、メモリー上のテーブルを検索するための、専用のハードウェアを実装したものがCAM です。
検索エンジンであって、検索対象のテーブルでは無いことに注意してください。

CAM に、キーとなる要素を入力すると、その要素が格納されている、テーブルのアドレスが得られます(今回の例では、要素とはMAC アドレスです）。
アドレスが分かれば、テーブルのその箇所を直接読むことができます。

CAM を利用すると、検索に要する時間は、テーブルの大きさに左右されません。
通常、1クロックで検索が完了します。

CAM の動作を知るには、次のサイトがお勧めです。
英文ですが、それほど難しい表現もありませんし、量も多くありません。
前半だけでもCAM の概要を理解することができます。
後半はトランジスタの動作を理解していないと難しいですが、単純なフリップフロップ回路が理解できる程度の知識があれば、難しくありません。

<STRONG><A HREF="http://pagiamtzis.com/cam/camintro.html" target="newpage">Content-Addressable Memory Introduction</A></STRONG>

<HR>

繰り返しますが、CAM はテーブルではありあません。
それでは、なぜCisco は、MAC アドレステーブルのことをCAM と呼ぶのでしょうか。

これは私見ですが、この命名には、マーケティング目的のバイアスがかかっているのでしょう。

LAN スイッチが登場した1990年代初頭は、半導体製造技術の進歩により製造コストが顕著に低下し始めた時期と一致します。
いえ、安価な半導体素子の存在こそが、LAN スイッチの実現に大きく貢献しているとも言えます。

CAM という新しい技術を採用していることを、アピールする目的があったことが伺えます。

※ もちろん、当時からCAM を採用していたのはCisco(旧Crescendo) だけではありません。

<STRONG><A HREF="http://www.smartnetworks.jp/2006/02/cam_tcamternary_cam.html">CAM とTCAM (Ternary CAM)</A></STRONG> も併せてお読みください。]]>
    </content>
</entry>

</feed> 


