オートネゴシエーションの検討（規格など)

#はじめに
オートネゴシエーションについて検討する。
例えば、
オートネゴシエーション設定の装置と、固定の装置を対向させて場合の動作などについて。

##この記事はどういう人に役立つか
オートネゴシエーション機能のある装置を開発する人など。

##記事を書くきっかけ
良いサイトがあったので、それの紹介、したいと思ったため。
自分でも忘れないため。

#オートネゴシエーションの規格
##前提の共有
Ethernetに関する802.3等の規格に関しては、まず、大前提として、規格が制定される以前に該当機能を有する装置が沢山出荷されているという事実がある。
どちらかというと、最初に製品があって、それを後追いで規格にする感じ？（規格制定の作業を知らないので、誤解があるかもしれませんが。。。）。
よって、開発する自分の装置は管理できるとしても、対向する装置は、厳密には、**なんだかわからない装置**であると考えるべき。

対向する装置も含めて理想的な動作をすることを規定することは困難であり、変な条件は、積極的に排除すべきと思う。

##変な条件とは
オートネゴシエーションの装置と、オートネゴシエーションでない装置を対向させるような条件。

#紹介したいサイト

##auto negotiationの仕組み(Toshiaki Baba)
以下のサイトの説明がいい。
（有名？、このあたりにかなり詳しい方のようです。）
https://netmark.jp/2008/10/auto-negotiation.html

以下、オートネゴシエーションに関する記載の抜粋
>今回は一次情報の場所がわからなくて困りました。まずRFCを調べたけど空振り。ということでgoogleからあさってみました。で、見つけたのがここ(⇒Charles Spurgeon's Ethernet Web Site)。ここが一次情報源だと思います。

##上記の記事で紹介されているサイト

http://www.ethermanage.com/

リンクをたどると、以下にたどりつく。
http://www.ethermanage.com/ethernet/autoneg.html

上記のサイトの記載抜粋
>Resources on the topic of Ethernet Auto-Negotiation.
Auto-Negotiation was first defined in 1995 as an optional feature for 10 and 100 Mbps twisted-pair Ethernet media systems in Clause 28 of the 802.3u Fast Ethernet supplement to the IEEE 802.3 standard. The twisted-pair Auto-Negotiation system defined in Clause 28 of the standard has since been extended to include all three speeds of Ethernet supported over twisted-pair cable: 10 Mbps 10BASE-T, 100 Mbps 100BASE-TX and 1000 Mbps 1000BASE-T.
>
>The physical signaling portion of all three twisted-pair systems use the same Auto-Negotiation signaling standard. While Auto-Negotiation can be disabled on 10BASE-T and 100BASE-TX links, it is required on 1000BASE-T systems since Gigabit Ethernet systems use Auto-Negotiation to establish the master-slave signal timing control required to make the link operational.
>
>With Auto-Negotiation in place, all three speeds of twisted-pair Ethernet can determine the common set of options supported between a pair of "link partners." Twisted-pair link partners can use Auto-Negotiation to figure out the highest speed that they each support, for example, as well as automatically setting full-duplex operation if both ends support that mode.

Google翻訳（ママ）
>イーサネットオートネゴシエーションのトピックに関するリソース。
オートネゴシエーションは、IEEE802.3標準の802.3uファストイーサネット補足の第28項で、10Mbpsおよび100Mbpsツイストペアイーサネットメディアシステムのオプション機能として1995年に最初に定義されました。その後、規格の第28条で定義されているツイストペアオートネゴシエーションシステムが拡張され、ツイストペアケーブルでサポートされるイーサネットの3つの速度すべて（10 Mbps 10BASE-T、100 Mbps 100BASE-TX、および1000 Mbps 1000BASE-T）が含まれるようになりました。 。
>
>3つのツイストペアシステムすべての物理的な信号部分は、同じオートネゴシエーション信号規格を使用します。オートネゴシエーションは10BASE-Tおよび100BASE-TXリンクで無効にできますが、ギガビットイーサネットシステムはオートネゴシエーションを使用してリンクを動作させるために必要なマスタースレーブ信号のタイミング制御を確立するため、1000BASE-Tシステムでは必要です。
>
>オートネゴシエーションを使用すると、ツイストペアイーサネットの3つの速度すべてで、「リンクパートナー」のペア間でサポートされる共通のオプションセットを決定できます。ツイストペアリンクパートナーは、オートネゴシエーションを使用して、たとえば、それぞれがサポートする最高速度を把握したり、両端がそのモードをサポートしている場合は全二重動作を自動的に設定したりできます。

更に､リンクをたどると、
http://www.ethermanage.com/ethernet/100quickref/ch13qr_6.html#HEADING5
などにたどりつき、

更に、
http://www.ethermanage.com/ethernet/100quickref/ch13qr_7.html#HEADING6
などにたどりつく、

そこで、以下の記載がある。

>If Auto-Negotiation only exists at one end of the link, the Auto-Negotiation protocol is designed to detect that condition and respond correctly using a mechanism called Parallel Detection. For example, if a dual-speed 10/100 Ethernet interface with Auto-Negotiation is connected to a 10BASE-T hub that does not have Auto-Negotiation, the interface will generate FLPs but will only receive NLPs from the 10BASE-T hub. The Auto-Negotiation protocol in the interface will detect the presence of Normal Link Pulses and automatically place the interface in 10BASE-T mode.
Similarly, when an Auto-Negotiation hub with multiple capabilities in its ports is connected to an interface that only supports 100BASE-TX and is not equipped with Auto-Negotiation, the Auto-Negotiation protocol will set the hub port to operate in 100BASE-TX mode. Parallel Detection works for 10BASE-T as well as 100BASE-TX and 100BASE-T4 devices without Auto-Negotiation. Parallel Detection for 100BASE-TX/T4 checks the link signals being received for Link Monitor characteristics that are specific to a given mode. If Parallel Detection determines that exactly one mode of Link Monitor is satisfied by the incoming link signals, it connects to that mode.

Google翻訳（ママ）
>オートネゴシエーションがリンクの一方の端にのみ存在する場合、オートネゴシエーションプロトコルはその状態を検出し、並列検出と呼ばれるメカニズムを使用して正しく応答するように設計されています。たとえば、オートネゴシエーションを備えたデュアルスピード10/100イーサネットインターフェイスが、オートネゴシエーションを備えていない10BASE-Tハブに接続されている場合、インターフェイスはFLPを生成しますが、10BASE-TハブからのみNLPを受信します。インターフェイスの自動ネゴシエーションプロトコルは、ノーマルリンクパルスの存在を検出し、インターフェイスを自動的に10BASE-Tモードにします。
同様に、ポートに複数の機能を備えたオートネゴシエーションハブが100BASE-TXのみをサポートし、オートネゴシエーションを備えていないインターフェイスに接続されている場合、オートネゴシエーションプロトコルはハブポートを100BASE-TXで動作するように設定しますモード。並列検出は、オートネゴシエーションなしの10BASE-T、100BASE-TX、100BASE-T4デバイスで機能します。 100BASE-TX / T4の並列検出は、特定のモードに固有のリンクモニター特性について、受信されているリンク信号をチェックします。並列検出が、リンクモニターの1つのモードのみが着信リンク信号によって満たされていると判断した場合、そのモードに接続します。

上記の「Parallel Detection」等は、どこかのメーカのデータシートで、好んで使われている用語のような気がする。。。。

#補足
https://en.wikipedia.org/wiki/Autonegotiation
より。以下に引用のように、最初の規格は、問題があったよう。

>The first version of the autonegotiation specification, in the 1995 Fast Ethernet standard IEEE 802.3u, was open to different interpretations. Although most manufacturers implemented this standard in one way, some others, including network giant Cisco, implemented it in a different way. Autonegotiation between devices that implemented it differently failed. Problems like this with autonegotiation led many network administrators to manually set the speed and duplex mode of each network interface card. 

>The debatable portions of the autonegotiation specifications were eliminated by the 1998 release of 802.3.

#まとめ
オードネゴシエーションに関するいい記事があったので、紹介した。
Ethernetの規格で相手装置があるものの動作の規定は、開発等される方は、安全目に規定されるのがいいと思います。
ややこしい条件は、排除するのがいいと思う。自装置の設計は、理想的にするとしても。
コメントなどあれば、お願いします。

#今後の予定
上記で引用した以下に関するの具体的な内容を明確にしたい。

>The debatable portions of the autonegotiation specifications were eliminated by the 1998 release of 802.3.