Az adatkapcsolati réteg Layer 2 Az adatkapcsolati réteg helye Hálózati réteg LLC alréteg MAC alréteg Adatkapcsolati réteg Fizikai réteg 1
Adatkapcsolati réteg (folyt.) layer 2 PDU - keretek becsomagolt datagram datagramok átvitele közvetlen összeköttetéseken Az adatkapcsolati réteg szolgáltatásai LLC (logical link control) single hop framing (keretezés) hiba ellenőrzés, javítás adatfolyam szabályozás half-duplex turn control MAC (media access control) fizikai közeg használata (shared media) címzés 2
Szolgáltatások (folyt.) Keretezés és közeghozzáférés datagramok keretekrebontása header, trailer, hibakezelési adatok csatorna hozzáférés szabályozása osztott közegnél fizikai címek a keret fejlécekben Megbízható adattovábbítás a csomópontok között a közegre jellemző hibarátától függő megoldások Szolgáltatások (folyt.) adatfolyam szabályozás az adó és vevő csomópontok ütemezése hibakezelés hibák: zajok közeg csillapítása vevő oldal detektálja a hibákat küldő újraküldi vevő hibajavítást végez hibák helyének azonosítása, javítása újraküldés nélkül 3
Szolgáltatások (folyt.) LLC funkciók 4
Keretezés Keretezés (folyt.) Időzítés start és end markerek DLE+STX, DLE+ETX charakter stuffing start és end flagek bit stuffing 5
Karakter alapú keretezés terminálok - mainframek azonos karakter kódolás frame-hossz osztható a karakterek bit hosszával speciális kontrol karakterek technikák: markerek byte számolás BISYNC protokoll markeres megközelítés IBM, 1960-as évek szinkron karakter idle újrakezdés szinkron vesztés esetén 8 8 8 8 8 16 SYN SYN SOH Header STX Body ETX CRC 6
BISYNC protokoll (folyt.) character stuffing adatok közt előforduló SYN data-link-escape adatok közt DLE DLE DLE bithiba esetén nehéz lehet az újra szinkronizálás PPP protokoll STX karakter (flag, 011111110) default frame méret 1500 byte LCP protokoll kapcsolat felépítés paraméter (mezőhosszak) megállapodás 7
Bájt beszúrás 011111110 Karakter beszúrás példák 8
DECnet DDCMP byte számolásos megközelítés keret fejléc count framing error - CRC 8 8 8s 14 42 16 N N a Y Y l Count Header Body CRC S S C Bit alapú keretezés karakterkódoktól független delimiter flag bit szekvencia a kereten belül nem fordulhat elő transzparens bit stuffing keretek: fejléc (általában fix hossz) adatok keret ellenőrző összeg 9
HDLC protokoll delimiter 01111110 bit stuffing minden egymásutáni 5 1 után egy 0 beszúrása megbízható újra szinkronizálás a következő keretnél 8 16 16 8 Beginning sequence Header Body CRC Ending sequence Bit beszúrás példa 10
Óra alapú keretezés SONET (Synchronous Optical Network) Bell, ANSI, ITU-T keretezés, kódolás STS-1 frame Overhead Payload 9 rows 90 columns Óra alapú keretezés (folyt.) keret határon átnyúló tartalom szinkron tartása Frame 0 8761 9 rows Frame 1 11
Adatkapcsolati vezérlési koncepciók, folyamszabályzás Feladatok: hibakezelés adatfolyam vezérlés Mechanizmusok: válaszüzenetek ACK NACK time-out Automatikus újraküldés ARQ protokollok vissza irányú csatorna (ACK, NACK) keret újrarendezés (resequencing) Stratégiák Stop + Wait Go-Back-n Csúszóablak Szelektív újraküldés 12
Stop + Wait ARQ time-out időn belüli nem érkezik ACK => újraküldés retransmission counter adott számú újraküldési kísérlet után feladni e m i T Sender t u o e m i T Frame ACK (a) Receiver Sender t u o e m i T t u o e m i T Frame ACK Frame ACK (c) Receiver Sender t u o e m i T t u o e m i T Frame Frame ACK Receiver tsender u o e m i T t u o e m i T Frame ACK Frame ACK Receiver (b) (d) Stop + Wait ARQ (folyt.) elveszett és késett (duplikált) ACK kezelés 1-bites szekvencia szám Sender Receiver Frame 0 0 ACK Fram e 1 1 ACK Frame 0 ACK 0 13
Stop + Wait ARQ (folyt.) kapcsolat kihasználtsága Tf keret átviteli idő Tp késleltetési idő U=Tf/(Tf+2Tp) a=tp/tf U=1/(1+2a) Stop + Wait ARQ (folyt.) kapcsolat kihasználtsága Tp Tf 14
Állapotgép implementáció just_sent_frame0 ack1 ack1 idle nack0 nack1 nack0 nack1 ack0 ack0 just_sent_frame1 Adatfolyam szabályozás a vevő csomópont szabályozni akarja az adó adási tevékenységét (back pressure) megoldások stop + wait ack visszatartás time-out stop + wait ismételt ack retransmission counter nullázása tim-out timer nullázása stop + wait RNR üzenet speciális ack csúszóablak 15
Csúszóablakos adatfolyam szabályozás késleltetés x sávszélesség keeping the pipe full átforduló szekvenciaszám Sender Receiver Time Csúszóablakos adatfolyam szabályozás (folyt.) SWS LAR küldő RWS LFS NFE fogadó LAF LFA Leggyakrabban: RWS=1 vagy RWS=SWS 16
Csúszóablakos adatfolyam szabályozás (folyt.) Szekvenciaszámok és ablak méretek ha RWS=1, MaxSeqNum>=SWS+1 elég ha RWS=SWS, SWS<=(MaxSeqNum+1)/2 példa MaxSeqNum=7(szekvenciaszám) RWS=1 (ablak) Csúszóablakos adatfolyam szabályozás (folyt.) kapcsolat kihasználtsága egy ciklusra: U=N.Tf/(Tf+2Tp) 17
Csúszóablakos adatfolyam szabályozás (folyt.) kapcsolat kihasználtsága N a Go-Back-n ARQ folytonos ARQ U stop+wait <<1 ha a>>1 (korai műholdas rendszerek) SWS=N, RWS=1 NACK 18
Selective Repeat ARQ hasonló a Go-Back-n -hez vevő újra tudja rendezni a nem sorrendben kapott kereteket Hibadetektálás redundáns információ inkonzisztencia detektálása az eredeti és a redundáns info között pl.: 32 bit extra info keretenként 1/2 32 részét nem detektálja a hibás kereteknek! hibakezelés FEC broadcast adattárolás rossz csatorna ARQ kisebbcsatorna kapacitás nem kell konstans átviteli ráta 19
Hibadetektálás (folyt.) ellenőrző szekvencia kódszó vízszintes paritás Hamming távolság Hibadetektálás (folyt.) kétdimenziós paritás 0101001 1 1101001 0 Parity bits Data 1011110 1 0001110 1 0110100 1 1011111 0 Parity byte 1111011 0 20
Hibadetektálás (folyt.) Ellenőrző összegek CRC - polinom kódok LLC protokollok HDLC/LAP-B bit orientált full-duplex, sliding window, ack piggy-backed 8-bites cím mező, broadcast cím SLIP és PPP LAP-D ISDN D csatorna 21
PPP protokoll PPP protokoll (folyt.) egy kapcsolat (link) egy küldő, egy fogadó nincs MAC nem kell MAC cím tetszőleges hálózati r. protokoll(ok) demultiplexálás tetszőleges bitminták átvitele hiba detektálás hálózati cím egyeztetés 22
PPP protokoll (folyt.) PPP protokoll (folyt.) LCP üzenetek 23
PPP protokoll (folyt.) LCP log 9/23/03 13:26:18: LCP: Sent LCP config-req 9/23/03 13:26:18: MRU Size 1454 9/23/03 13:26:18: ACCM 0x00000000 9/23/03 13:26:18: Magic Number 0x4A89A4B2 9/23/03 13:26:18: Protocol Field Compression 9/23/03 13:26:18: Address/Control Field Compression 9/23/03 13:26:18: LCP: Received LCP config-req 9/23/03 13:26:18: MRU Size 1492 9/23/03 13:26:18: PAP Authentication 9/23/03 13:26:18: Magic Number 0x41B485D4 9/23/03 13:26:18: LCP: Sent LCP config-ack 9/23/03 13:26:18: MRU Size 1492 9/23/03 13:26:18: PAP Authentication 9/23/03 13:26:18: Magic Number 0x41B485D4 9/23/03 13:26:18: LCP: Received LCP config-nak 9/23/03 13:26:18: MRU Size 1492... 9/23/03 13:26:18: LCP: Received LCP config-rej 9/23/03 13:26:18: MRU Size 1454 9/23/03 13:26:18: LCP: Sent LCP config-req 9/23/03 13:26:18: ACCM 0x00000000 9/23/03 13:26:18: Magic Number 0x4A89A4B2 9/23/03 13:26:18: Protocol Field Compression 9/23/03 13:26:18: Address/Control Field Compression 9/23/03 13:26:18: LCP: Received LCP config-ack 9/23/03 13:26:18: ACCM 0x00000000 9/23/03 13:26:18: Magic Number 0x4A89A4B2 9/23/03 13:26:18: Protocol Field Compression 9/23/03 13:26:18: Address/Control Field Compression 9/23/03 13:26:18: LCP: negotiations successful 9/23/03 13:26:18: PPP: authenticating using PAP... 9/23/03 13:30:49: LCP: Sent LCP echo-req 9/23/03 13:30:49: LCP: Received LCP echo-reply 9/23/03 13:30:56: LCP: Received LCP echo-req 9/23/03 13:30:56: LCP: Sent LCP echo-reply... 9/23/03 13:32:14: LCP: Sent LCP term-req 9/23/03 13:32:14: LCP: Received LCP term-ack MAC funkciók 24
Több csomópontos hálózatok Többszörös kapcsolatok Broadcast csatorna többszörös hozzáférési protokollok elosztott algoritmus az adási jog kezelésére csatorna megosztás Broadcast csatornák 25
Protokoll taxonómia Csatorna felosztás felosztás időben, frekvencia tartományban, stb. részek felosztása exkluzív használatra Véletlen hozzáférés csatorna nincs felosztva, ütközések előfordulhatnak ütközések feloldása Szabályos váltások koordinált hozzáférés ütközések elkerülésére Csatorna felosztás TDMA time slot 26
Csatorna felosztás (folyt.) FDMA frekvencia sávok Csatorna felosztás (folyt.) CDMA kód készlet felbontása chipping codes interferencia minimalizálása 27
Csatorna felosztás (folyt.) CDMA két küldő Véletlen hozzáférés küldés teljes csatornán nincs előzetes koordináció több egyszerre adó csomópont => ütközés ütközések érzékelése ütközési helyzet feloldása 28
Véletlen hozzáférés (folyt.) ALOHA master - ack ütközések várakozás véletlen ideig Véletlen hozzáférés (folyt.) ALOHA (folyt.) keret sérülés valószínűsége 29
Véletlen hozzáférés (folyt.) ALOHA protokoll teljesítménye Poisson eloszlás nem érkezik csomag t idő alatt: P(t)=e -λt t=tf, P(Tf)=e -G, G=λTf G=S+[{csomagküldési ráta} x {ütközési valsz.}] ütközés valsz.: 1-P(2Tf)=1-e -2G S=Ge -2G Véletlen hozzáférés (folyt.) Réselt ALOHA szinkronizálás ütközés esetén ismétlés p valsz. 30
Véletlen hozzáférés (folyt.) ALOHA protokollok teljesítménye Véletlen hozzáférés (folyt.) CSMA csatorna szabadnak érzékelve: adás csatorna foglaltnak érzékelve: adás elhalasztva ütközések a késleltetések miatt 31
Véletlen hozzáférés (folyt.) CSMA/CD jam sequence Véletlen hozzáférés (folyt.) Probléma rádió hálózatoknál rejtett csomópont MACA protokoll 32
RTS-CTS ütközés elkerülés (MACA) Szabályozott váltások Pollozás (centralizált) master csomópont kommunikáció alárendeltek között forward via master broadcast Vezérjel továbbadás szekvenciális token továbbadás nincs verseny helyzet 33
MAC keretezés Hálózati adapterek 34
Hálózati adapterek adatkapcsolati réteg adapteren implementálva hálózati kártyák, PCMCIA fél-autonóm adapterek adatkapcsolati és fizikai réteg együttese Építőelemek Host I/O bus Bus interface Link interface Network link Adaptor 35
Az adapter kezelése a hosztról Control status register státusz info alap parancsok Megszakítások eseménykezelés, nem kell pollozni DMA vs. programozott I/O DMA nem kell puffer az adapteren, puffer leíró lista scatter-read, gather-write Eszköz meghajtók (device driver) op.rendszer rutinok Sávszélességek Alpha workstation CPU 560 MBps 2000 MBps L1 cache 114 MBps L2 cache Main memory Crossbar 100 MBps I/O bus 36