Protokolloraijegyzet2010 12

A VIK Wikiből
A lap korábbi változatát látod, amilyen (vitalap) 2012. október 21., 21:44-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Infoszak|Protokolloraijegyzet2010_12}} ==Protokoll Technológiák== ===12. óra=== ====Protokollok létrehozása:==== =====Szabályok===== * SEQUENCE:…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót


Protokoll Technológiák

12. óra

Protokollok létrehozása:

Szabályok
  • SEQUENCE: struct: nevek, amelyeknek mezői vannak
		pl.:
		Személyes_adat ::= SEQUENCE {
			név IA5String,
			szül_év Integer
		}
  • SEQUENCE OF: Tömb
  • SET
    • Ugyanazt jelenti, mint a SEQUENCE, csak a SET nél mindegy a sorrend
  • SET OF: Tömb:
    • Guszti bá' még nem látott ilyen állatot.
  • CHOICE
    • Unionnak felel meg, de mindig egy konkrét mező van csak benne
  • A nem csupa nagybetűs típus, az nem beépített típus
  • International Alphabet 5: IA5String
  • "... ahogy idézőjelben 'normális nyelvekben' szoktuk." AwG
Korlátozások
  • Értéktartomány korlátozás
								 két pötty
									 |
							 from ..  to
								 |	  |
	XXszazat ::= INTEGER(1901..2000)
  • Felsorolás

	Kis_prímszámok ::= INTEGER(2|3|5|7)

  • Tömb méret
									 méret <alsó>..<felső> értékek közt változhat
												  |	 |
	Tömb_64_elemmel ::= SEQUENCE SIZE(64..64) OF INTEGER
	Tömb_1_64_elemmel ::= SEQUENCE SIZE(1..64) OF INTEGER	// egy és 64 elem közt lehet az elemek száma
																			  // pl listaelemek
  • Elemekből állhat korlát

	Tel_szám ::= IA5String(FROM("1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"|"0"|"*"|"#"|"+"))

Problémák
  • Fontos, hogy ki tudjuk találni, hogy hogy is van az az üzenet
  • ez az OPTIONAL tag-nél lesz kérdés először.

	Koordináták ::= SEQUENCE {
										 x INTEGER OPTIONAL,
										 y INTEGER OPTIONAL
									 }

  • Most küldjük, vagy nem küldjük vagy mi van?
  • Megoldás: TAG! :)

	Koordináták ::= SEQUENCE {
										 x[0] INTEGER OPTIONAL,
										 y[1] INTEGER OPTIONAL
									 }

  • OPTIONAL-t lehet a DEFAULT-al helyettesíteni, akkor az az érték kerül bele a helyére.
  • a [0]-át minnyá tovább magyarázza.
BER: Basic Encoding Rules
  • TAG+LENGTH+VALUE
  • PER Packed (Per Encoding Rules)
  • TAG kódolás:
    • class: 2 bit: mondja meg, hogy adott adattípus milyen körben használható (scope)
      • 00: Universal: Ezek a beépített típusok (a számértékeket NEM kell benyalni... Csak hogy mik vannak :D )
      • 01: Application: Nemzetközi szabányosító szervezet álltal szabványosított izé
      • 11: Private: nem szabványosított, csak vállalati szférában, etc...
      • 10: Context Specific: Környezet függő adattípus - pl struktúra mezők: csak adott helyen fordulhat elő
    • format: 1 bit:
      • 0: Simple: Attól függ mi számít összetettnek: ha a VALUE konkrét, akkor lesz egyszerű
      • 1: Structure
    • TAG value:
      • 1: BOOLEAN
      • 2: INTEGER
      • 4: OCTET STRING
      • 5: NULL
      • 10: ENUMERATED
      • 16: SEQUENCE(OF)
      • 17: SET(OF)
      • a nem beépítetteben a típuskód az lesz, amit mi adunk neki.
      • ha az érték 11111: (31) akkor long formátum
        • mindig az első bit érték mutatja, hogy lesz e még méret érték ->LENGTH korlát
  • LENGHT kódolás: első bit: ha nulla, akkor SHORT
    • ha 1-es, akkor LONG formátum: addíg megy, amíg a hosszban van, és itt a hossz a hossz hossza .... haha.
  • 3. fajta hossz kódolás: nem mondjuk meg mekkora lesz, a végét jelezzük.
  • Hossz érték: 1000 0000: ez lesz az indefinit kódja
  • kettő nulla lesz a végén, az jelzi majd, hogy vége. Vala.
  • itt jött egy példa.
  • meg mégyegy.
  • SáláláláS


  • EGY KIS HÁZI FELADAT!
			  |-> üzenet típus kód
	x ::= [10] SEQUENCE {
			a INTEGER,			 // 10
			b[1] INTEGER,		 // 20
			c[32] BOOLEAN,		// FALSE
			d[5] OCTET STRING	// 200db 0
	}

-- Liba - 2010.03.22.