Vyšlo v týdeníku Computerworld č. 47/93 v roce 1993
Vytištěno z adresy: http://www.earchiv.cz/a93/a347c120.php3

Heartbeat

Ve světě počítačů a počítačových sítí existuje mnoho myšlenek, metod a mechanismů, které spatřily světlo světa v době, kdy bylo třeba řešit nějaký konkrétní problém, ale na které se později jaksi pozapomnělo - přestože dokázaly přežít i problém, který měly řešit, a spíše ze setrvačnosti se používají i nadále.

Jeden zajímavý příklad můžeme najít i v oblasti počítačových sítí, konkrétně u sítí typu Ethernet.

Jak jsme si již uvedli v předchozích vydáních této rubriky, prvopočátky sítí typu Ethernet se datují již do roku 1972, ale svou dnešní podobu získaly tyto sítě až počátkem osmdesátých let. Tuto koncepci vytvořila skupina odborníků v čele s Robertem Metcalfem ve výzkumném středisku PARC (Palo Alto Research Center) firmy Xerox - a publikovala ji v září roku 1980. Již v únoru téhož roku však byla založena pracovní skupina pro lokální sítě v rámci amerického sdružení elektrotechnických a elektronických inženýrů (IEEE), která posléze převzala celou koncepci Ethernetu, vytvořenou ve středisku PARC, a s jistými úpravami ji vydala jako vlastní standard, s označením IEEE 802.3.

Jednou z těchto úprav bylo i zavedení mechanismu, který umožňoval průběžné testování funkceschopnosti obvodů, pomocí nichž se jednotlivé uzly napojovaly na síťový rozvod. Zde je dobré si uvědomit, že v té době se jako přenosové médium používal výhradně tzv. tlustý koaxiální kabel, na který se jednotlivé uzly napojovaly pomocí samostatných "krabiček" - tzv. transceiverů (viz CW 38/93). Tyto transceivery obsahovaly pouze obvody nezbytně nutné pro vysílání a příjem signálů po koaxiálním kabelu, zatímco zbývající obvody, zajišťující korektní přístup k síti, se již nacházely uvnitř vlastních počítačů (resp. na jejich síťových kartách). Mezi transceivery a vlastními uzlovými počítači (resp. jejich síťovými kartami) pak musel vést tzv. drop kabel (viz CW 38/93), který mohl být dlouhý až 50 metrů. Tvořily jej čtyři páry vodičů - jeden pro vysílání dat a druhý pro jejich příjem, třetí pro napájení transceivery z počítače a konečně čtvrtý pro signalizaci tzv. kolize (neboli situace, kdy začalo vysílat dva či více uzlů najednou - viz CW 34/93).

Pracovní skupina sdružení IEEE se zřejmě obávala právě nespolehlivosti těchto "vzdálených" transceiverů, a proto vymyslela mechanismus, pomocí něhož tyto transceivery dávají samy o sobě vědět, že "žijí". Konkrétní podoba tohoto mechanismu je následující: kdykoli transceiver odešle po koaxiálním kabelu nějaký rámec, provede interní test, který simuluje výskyt kolize. Tento test prověří funkceschopnost obvodů pro detekci kolize uvnitř transceiveru a způsobí to, že transceiver se vůči počítači zachová přesně stejně, jako kdyby ke kolizi skutečně došlo - na příslušném páru vodičů v rámci drop kabelu vygeneruje takový sled signálů, který počítači signalizuje výskyt kolize. Formální název tohoto sledu signálů je SQE (od: Signal Quality Error). Častěji je ale označován neformálně jako heartbeat, což v doslovném překladu znamená tlukot srdce.

Původní verze Ethernetu, vytvořená ve středisku PARC, žádný takovýto mechanismus neobsahovala. Objevuje se až ve druhé verzi Ethernetu (též tzv. DIX Ethernetu či Ethernetu II), kterou skupina kolem Roberta Metcalfa ze střediska PARC publikovala v roce 1982 a kterou je možné považovat za implementaci standardu IEEE 802.3. Zde je ovšem celý mechanismus označován jako collision presence signal test.

Je dobré si uvědomit, že "tlukot srdce" je pouze simulací kolize, a neznamená tedy kolizi skutečnou. Výskyt kolize je pouze signalizován směrem k počítači po drop kabelu, ale do koaxiálního kabelu nikoli. Při skutečné kolizi by se transceiver zachoval tak, že by do tohoto přenosového média po určitou dobu vysílal zvláštní "rušící" signál (tzv. jam signal), tak aby kolizi naopak ještě "utvrdil", a umožnil tak i ostatním uzlům, aby ji bezpečně detektovaly - v případě simulované kolize tak ale nečiní.

S postupem času se však místo tlustého koaxiálního kabelu začal v ethernetovských sítích používat tenký koaxiální kabel ( a posléze i kroucená dvoulinka), a transceivery se "přestěhovaly" přímo na síťové karty, instalované do uzlových počítačů. Tyto síťové karty pak mají své vysílající a přijímající obvody plně pod dohledem, takže žádný "tlukot srdce" nepotřebují.

Samostatné transceivery se však v některých situacích používají i dnes. Jimi generovaný "tlukot srdce" je pak síťovými kartami uvnitř počítačů většinou ignorován. Přesto však může mít v některých případech velmi nežádoucí účinky. Například tehdy, když transceiver použijeme pro připojení kabelového segmentu k opakovači (repeateru - viz CW 40/93). Opakovač totiž pracuje na úrovni nejnižší (tzv. fyzické) vrstvy, což mj. znamená, že kolizi, ke které dojde v jednom segmentu, musí přenést i do ostatních segmentů. Jestliže by byl určitý kabelový segment připojen k opakovači pomocí transceiveru a opakovač by segmentu díky "tlukotu srdce" signalizoval simulovanou kolizi po odeslání každého jednotlivého rámce, tuto předstíranou kolizi by rozšiřoval i do ostatních segmentů - tentokráte již ale jako kolizi skutečnou, kterou by sám vyvolal svým rušícím (jam) signálem. Konečným efektem by pak mohlo být i úplné zahlcení sítě. Jedinou možností, jak se tomu vyhnout, je v daném případě generování signálu SQE potlačit. Ne všechny transceivery to ale umožňují.