Jste zde

Monitor linky sítě Ethernet

Program pro DOS, umožňující získat téměř hardwarové informace o komunikaci v ETHERNET síti.

Při vývoji mého SW pro řadič Ethernetu jsem narazil na následující problém. Řadiče byly dva a vysílaly na sebe v zapojení tzv. point too point. Bohužel chybami v nastavení a řízení řadiče přenos nedošel do paměti přijímacího procesoru z vysílače. Nebylo ale možné, jednoduše zjistit, kde je vlastní chyba a zároveň bylo nutné se věnovat několika problémům najednou.

Proto jsem napsal monitor, který tvrdě vyžaduje síťovou kartu s nastavením IO 300h IRQ 10 a kompatibilní  NE 2000. Pevné nastavení je z důvodů rychlosti práce programu (nemusí se vypočítávat adresa) a kromě toho je to obvyklé nastavení karty v PC.  Pracuje se pod systémem DOS, tj. v reálném režimu. Spuštěné Windows neumožní přístup k portům karty!
 

Funkce
Monitor sleduje podle nastavení tok dat na síťovém kabelu a zobrazuje je na obrazovku v hexadecimálním výpisu, nebo je ukládá do souboru. Je možné i vyslat data s pevnou strukturou. Pokud se oživuje jiný síťový řadič, je na výpisu stavových slov a dat vidět co tento oživovaný řadič na síťovém kabelu dělá. Zároveň existuje i možnost tomuto řadiči poslat "holá" data a ověřit i jeho příjem.
Vypisuje se pouze obsah rámce a nikoliv již zpracované protokoly (TCI/IP,BEUI).
 

Na obrazovku se vypisuje
IT status  - obsah registru INTERRUPT STATUS REGISTER (ISR)
Rx status  - obsah registru RECIVE STATUS REGISTER (RSR)
Tx status  - obsah registru TRANSMIT STATUS REGISTER (TSR)

Toto je výpis vlastních registrů řadiče NE 2000 kompatibilního. Dále se vypisuje informace získaná z přijatého rámce .
 

status  -  což je obdoba Rx status,
bytes  -  je délka dat i s adresami stanic
destin  -  cílová adresa 
source  -  zdrojová adresa
length  -  obsah délky dat z datového bloku Ethernet pozor !, length a bytes nejsou vždy delka bloku, je to i příznak protokolů např. TCP/IP, NETBEUI, IPX/SPX, atd.
data  -  pokud se neukládá do souboru, vypíše se hexadecimální obsah dat na obrazovku.

Spuštění
Po spuštění se vypíše dotaz na povolení ukládání dat do souboru. Prázdné jméno (ENTER) zakazuje ukládání přijatých dat do souboru a jejich informační výpis se zobrazuje na monitoru počítače.

Potom je nutné nastavit "režim příjmu" odpovědí (ano - ne) na jednotlivé dotazy (přijetí i chybného rámce; přijetí rámce pod 64 byte; přijetí broadcast adresy; přijetí multicast adresy; přijetí rámců se všemi adresami; monitor mode). Dotazy odpovídají funkčním bitům jednoho datového registru NE 2000.

Po těchto nastaveních se vypíše NODE adresa použité síťové karty a musí se zadat node adresa řadiče na který chceme vysílat. Adresa může být i ffffffffffff, což je broadcast adresa. Pokud se nebude vysilat  může být adresa jakákoliv.

Vysílání
Vysílání dat se uskuteční zmáčknutím jakékoliv klávesy. Vysílá se blok dat dlouhý 80h byte s obsahem 00,01,02, ... 7eh,7fh. Další blok, pro rozlišení je posunut o jedno místo, tj. 01,02,03,...7fh,80h.  Vysílá  se na adresu zapsanou při spuštění.

Ukončení
Činnost monitoru se ukončuje klávesou ESC.

Omezení
Monitor je zhotoven pro možnost odladění vyvýjeného řadiče a příslušného programu. Není určen pro "debugování" aktivní sítě, i když by to uměl.
Z důvodů zamezení možnosti sledování sítě nebude ani poskytnut formát ukládání toku dat do souboru.Je u něj uměle omezena rychlost a tím při sledování síťového provozu vznikne ztráta dat. Není použita funkce tisku - ze stejného důvodu. Dále je omezena funkce na dobu dvou týdnů od prvního spuštění.

Zobrazení dat uložených v souboru
Zobrazení je umožněno spuštěním programu LANVIEW.EXE. Po spuštění se dotáže na jméno souboru do kterého je uložen záznam dat sítě Ethernet.

Pro omezení většího množství jalových výpisů (např. při sledování toku dat již odladěného řadiče v síti) je možné zadát adresy přijímače  a vysílače a pouze tyto bloky dat následně vypsat. Opět se vypíše informace o stavových slovech IT, Rx, Tx a adresách zdroje a cíle rámce, včetně jeho délky získané z ethernet rámce.

Výpis obsahu dat je možný v hexadecimálním nebo ASCII formátu volbou písmen podle helpu dolní řádce monitoru. Dále je přechod na další blok.

Pokud je dáno omezení vypisovaných adres, které se zadalo po spuštění programu, vypisují se pouze rámce s požadovanými adresami nebo s broadcast adresou. Funkce zobrazení adresami je funkcí "nebo", to znamená, že se informace vypíše vyhovuje-li adresa zdroje nebo adresa cíle. Nikoliv vyhovuje-li adresa zdroje a adresa cíle zároveň.
 

DOWNLOAD 


  • LAN Monitor - lanmon.exe (12 kB).
  • Na případné dotazy k funkci a nikoliv na zneužití se těším na mém emailu.

    Pro informaci je přiložen výtah z manuálu NIC DP 8390D. Jednotlivé bity stavových slov odpovídají tomuto popisu.
     

               INTERRUPT STATUS REGISTER (ISR)

     7       6       5       4      3       2      1       0
    RST     RDC     CNT     OVW    TXE     RXE    PTX     PRX

    Bit Symbol Description

    D0 PRX PACKET RECEIVED: Indicates packet received with no errors.
    D1 PTX PACKET TRANSMITTED: Indicates packet transmitted with no errors.
    D2 RXE RECEIVE ERROR: Indicates that a packet was received with one or
                          more of the following errors: CRC  Error Frame
                                                        Alignment Error
                                                        FIFO Overrun
                                                        Missed Packet
    D3 TXE TRANSMIT ERROR: Set when packet transmitted with one or more of the
                           following errors:Excessive Collisions
                                            FIFO Underrun
    D4 OVW OVERWRITE WARNING: Set when receive buffer ring storage resources have
                              been exhausted. (Local DMA has reached Boundary
                              Pointer).
    D5 CNT COUNTER OVERFLOW: Set when MSB of one or more of the Network Tally
                             Counters has been set.
    D6 RDC REMOTE DMA COMPLETE: Set when Remote DMA operation has been completed.
    D7 RST RESET STATUS: Set when NIC enters reset state and cleared when a Start
                         Command is issued to the CR. This bit is also set when a
                         Receive Buffer Ring overflow occurs and is cleared when
                         one or more packets have been removed from the ring.
     
     
     

               TRANSMIT STATUS REGISTER

     7       6      5        4        3        2      1       0
    OWC     CDH     FU      CRS      ABT      COL     0      PTX

    Bit Symbol Description

    D0 PTX  PACKET TRANSMITTED: Indicates transmission without error.
                                (No excessivecollisions or FIFO underrun) .
    D1      reserved 
    D2 COL  TRANSMIT COLLIDED: Indicates that the transmission collided at least
                               once with another station on the network. The
                               number of collisions is recorded in the Number
                               of Collisions Registers (NCR).
    D3 ABT  TRANSMIT ABORTED: Indicates the NIC aborted transmission because
                              of excessive collisions. (Total number of
                              transmissions including original transmission
                              attempt equals 16).
    D4 CRS  CARRIER SENSE LOST: This bit is set when carrier is lost during transmission
                                of the packet. Carrier Sense is monitored from
                                the end of Preamble/Synch until TXEN is dropped.
                                Transmission is not aborted on loss of carrier.
    D5 FU  FIFO UNDERRUN: If the NIC cannot gain access of the bus before the
                           FIFO empties, this bit is set. Transmission of the
                           packet will be aborted.
    D6 CDH  CD HEARTBEAT: Failure of the transceiver to transmit a collision
                          signal after transmission of a packet will set this bit.
                          The Collision Detect (CD) heartbeat signal must commence
                          during the first 6.4 ms of the Interframe Gap following
                          a transmission. In certain collisions, the CD Heartbeat
                          bit will be set even though the transceiver is not
                          performing the CD heartbeat test.
    D7 OWC  OUT OF WINDOW COLLISION: Indicates that a collision occurred after a
                                     slot time (51.2 ms). Transmissions
                                     rescheduled  as in normal collisions.
     
     

               RECEIVE STATUS REGISTER

     7       6       5       4      3       2       1       0
    DFR     DIS     PHY     MPA     FO     FAE     CRC     PRX

    Bit Symbol Description

    D0 PRX PACKET RECEIVED INTACT: Indicates packet received without error.
    D1 CRC CRC ERROR:  Indicates packet received with CRC error.
    D2 FAE FRAME ALIGNMENT ERROR: Indicates that the incoming packet did not end
                                  on a byte boundary and the CRC did not match at
                                  last byte boundary. Increments Tally Counter .
    D3 FO FIFO OVERRUN: This bit is set when the FIFO is not serviced causing
                        overflow during reception. Reception of the packet will
                        be aborted.
    D4 MPA MISSED PACKET: Set when packet intended for node cannot be accepted
                          by NIC because of a lack of receive buffers or if the
                          controller is in monitor mode and did not buffer the
                          packet to memory.
    D5 PHY PHYSICAL/MULTICAST ADDRESS: Indicates whether received packet had a
                                       physical or multicast address type.
                           0: Physical Address Match
                           1: Multicast/Broadcast Address Match
    D6 DIS RECEIVER DISABLED: Set when receiver disabled by entering Monitor mode.
                              Reset when receiver is re-enabled when exiting
                              Monitor mode.
    D7 DFR DEFERRING: Set when CRS or COL inputs are active. If the transceiver
                      has asserted the CD line as a result of the jabber, this
                      bit will stay set indicating the jabber condition.
                      Note: Following coding applies to CRC and FAE bits
                      FAE CRC Type of Error
                       0   0  No Error (Good CRC and k6 Dribble Bits)
                       0   1  CRC Error
                       1   0  Illegal, will not occur
                       1   1  Frame Alignment Error and CRC Error

    Hodnocení článku: