2021-10 [seminár] sieť
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Seminár sa venuje poslednému laboratórnemu cvičeniu z operačných systémov, v ktorom študenti dopĺňajú funkcie E1000 Transmit a E1000 Receive v súbore kernel/e1000.c pre sieťovú kartu v XV6. Vyučujúci vysvetľuje konfiguráciu siete v QEMU, testovanie pomocou nástroja tcpdump a spusteného servera na hostiteľskom počítači, ako aj štruktúru programátorskej príručky E1000 s dôležitými kapitolami o DMA, prerušeniach a deskriptoroch bufferov. Následne opakuje sieťové protokoly naprieč vrstvami – linkovú vrstvu s MAC adresami a ARP, sieťovú vrstvu s IP adresami a transportnú vrstvu s UDP a portami – s ukážkami z reálneho výpisu tcpdump. Na záver načrtáva schému zapojenia sieťovej karty cez PCI zbernicu k procesoru a pamäti a pripravuje sa vysvetliť princíp kruhového bufferu.
- - Úloha spočíva v doplnení funkcií e1000_transmit a e1000_receive v kernel/e1000.c (cca 43 riadkov kódu)
- - e1000_receive sa volá v kontexte prerušenia riadeného cez devintr v kernel/trap.c
- - Testovanie prebieha spustením servera (make server), XV6 v QEMU (make qemu-nettest) a sledovaním paketov pomocou tcpdump (packets.pcap)
- - Kľúčové kapitoly príručky E1000: DMA a adresovanie, prerušenia, štruktúra deskriptorov bufferov, kapitoly 3 (transmit/receive) a 14 (e1000_init)
- - Opakovanie protokolového zásobníka: linková vrstva (MAC adresy, ARP), sieťová vrstva (IPv4), transportná vrstva (UDP, porty)
- - XV6 nemá ARP cache, preto pri každom odosielaní paketu posiela ARP dopyt na zistenie MAC adresy
- - Deadline labu je 2 týždne s prihliadnutím na sviatky; kód nemusí byť hotový do zápočtu, stačí naštudovaná teória
- - Bonusové voliteľné úlohy zahŕňajú implementáciu ARP cache alebo podpory TCP protokolu
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky