- Zahtev i odziv uz više tipova podataka u pojedinačnim porukama,
- Segmentacija poruka u više frejmova kako bi se obezbedili pouzdana detekcija iispravljanje greške,
- Uključenje samo promenjenih podataka u poruke odgovora,
- Dodeljivanje prioriteta stavkama podataka i periodični zahtev na osnovu prioriteta,
- Podrška vremenskoj sinhronizaciji uz standardni vremenski format,
- Omogudavanje višestrukih master i peer-to-peer operacija,
- Objekti definisani od strane korisnika uz prenos podataka.
Slika br.1 Šematska prezentacija DNP3 komunikacije
Slojevita arhitektura
DNP3 je slojevit protokol. Međutim, umesto uklapanja u OSI arhitekturu od 7 slojeva, DNP3 podržava pojednostavljeni model od 3 sloja koji je predložen od strane IEC (International Electrotehnical Commission) za osnovne implementacije. Prema IEC, to je model poboljšanih performansi arhitekture (Enhanced Performance Architecture – EPA). Međutim, DNP3 nadograđuje EPA dodavanjem četvrtog, pseudotransportnog sloja, koji omoguduje segmentaciju poruke.
Slika br.2 Poboljšani troslojni OSI model za DNP3
Fizički sloj
Fizički sloj se prvenstveno odnosi na fizički medijum preko koga protokol komunicira. Takođe se odnosi na stanje medija (slobodno ili zauzeto), kao i sinhronizaciju unutar medija (pokretanje i zaustavljanje). Na DNP se najčešće odnosi jednostavni serijski fizički sloj poput RS-232 ili RS-485 uz korišćenje fizičkog medijuma tipa bakar, fiber, radio ili satelitski prenos. Novije aplikacije su implementirale DNP3 preko Ethernet veze.
Sloj veze podataka (Data link sloj)
Sloj veze podataka upravlja logičkom vezom između pošiljaoca i primaoca i poboljšava karakteristike fizičkog kanala. Za ovaj protokol važi da svaki frejm veze podataka počinje zaglavljem i dodaje se kod za ispravljanje grešaka (CRC) od 16 bitova na svakih 16 bajtova frejma. Frejm (ram) predstavlja deo kompletne poruke prenete preko fizičkog kanala, dok je maksimalna veličina frejma u sloju veze podataka 256 bajtova. Svaki frejm sadrži izvornu i odredišnu adresu čija je veličina po 16 bitova. Adresne informacije, zatim 16-bitni startni kod, dužina frejma i kontrolni bajt veze podataka su smešteni u zaglavlju veličine 10 bajtova.
Kontrolni bajt veze podataka ukazuje na funkciju frejma veze podataka, kao i na položaj logičkog linka. Jedan bajt se dodeljuje kontroli veze podataka i on uključuje: ACK, NACK, link zahteva reset, link je resetovan, potvrda zahteva za uspostavljanje veze, zahtev za status linka i odgovor na status linka. Kada se zahteva potvrda uspostavljenja veze, prijemnik odgovara ACK frejmom veze podataka, nakon što je frejm primljen i nakon što je prošao CRC kontrolu. U slučaju da se takva potvrda ne zahteva, nije potreban odgovor na status linka.
Pseudo-transportni sloj
Pseudo-transportni sloj vrši segmentaciju poruka aplikacionog nivoa u višestruke frejmove veze podataka. Za svaki frejm, vrši se umetanje funkcionalnog koda veličine jednog bajta koji pokazuje da li frejm veze podataka predstavlja prvi ili poslednji frejm poruke, ili se poruka sastoji samo od jednog frejma.
Aplikacioni sloj
Aplikacioni sloj odgovara na kompletne poruke koje su primljene (nalazi se iznad transportnog sloja), i formira poruke na osnovu potrebe ili dostupnosti korisničkih podataka. Kada se poruka formira, ona silazi do pseudo-transportnog sloja gde se vrši segmentacija i njeno prosleđivanje do sloja veze podataka i eventualna komunikacija sa fizičkin nivoom. Ukupna dužina poruke je označena od strane pseudo-transportnog sloja, koji dodaje frejmove veze podataka, pri čemu je svaki posebne dužine.
Kada su podaci koji se šalju prevelike dužine da bi se smestili u jednu poruku aplikacionog sloja, mogu se formirati višestruke poruke aplikacionog sloja koje se prenose sekvencijalno. Međutim, sve poruke aplikacionog sloja su međusobno nezavisne, s tim da jedino postoji indikacija koja je poruka poslednja i da anakon nje nede biti slanja novih poruka. Zbog ovakve moguće fragmentacije podataka aplikacionog nivoa, sve poruke u ovom sloju se označavaju kao fragmenti, te stoga postoje jedno-fragmentne ili više-fragmentne poruke.
Organizacija baza podataka
Kod DNP3 protokola, podaci su organizovani kroz tipove podataka. Svaki tip podataka predstavlja grupu objekata koja sadrži:
- Binarne ulaze,
- Binarne izlaze,
- Analogne ulaze,
- Analogne izlaze,
- Brojače,
- Vreme i datum,
- Objekte za prenos podataka,
- i dr.
Poruka aplikacionog nivoa može sadržati višestruka zaglavlja objekta. Zaglavlje objekta određuje objektnu grupu, varijaciju vrednosti unutar objektne grupe kao i opseg vrednosti unutar varijacije.