From 8fe280431070f23432cbad3ce4ad4d8af4ef3cf1 Mon Sep 17 00:00:00 2001 From: Mihai-Valentin DUMITRU <mihai.dumitru@cs.pub.ro> Date: Thu, 21 Mar 2024 15:01:48 +0200 Subject: [PATCH] fix small typos --- src/SUMMARY.md | 2 +- src/about.md | 49 ++++++++++++++++++-------------- src/api.md | 44 ++++++++++++++++++++--------- src/arp.md | 15 +++++----- src/ethernet.md | 11 ++++---- src/exercises.md | 14 ++++----- src/forwarding.md | 6 ++-- src/icmp_capture_wireshark.png | Bin 50993 -> 33763 bytes src/ip.md | 50 +++++++++++++++++++-------------- src/lpm.md | 3 +- src/routing_table.md | 2 +- src/testing.md | 19 ++++++------- 12 files changed, 124 insertions(+), 91 deletions(-) diff --git a/src/SUMMARY.md b/src/SUMMARY.md index ef08953..cd51583 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -12,7 +12,7 @@ - [ICMP](icmp.md) - [Endianess](endianess.md) - [API](api.md) -- [Cerinte](exercises.md) +- [CerinČe](exercises.md) - [Testare](testing.md) - [Trimitere](sending.md) - [FAQ](faq.md) diff --git a/src/about.md b/src/about.md index 6318966..a7a78c3 100644 --- a/src/about.md +++ b/src/about.md @@ -3,23 +3,30 @@ Ăn cadrul temei vom implementa dataplane-ul unui router. Un router are douÄ pÄrČi: -- Dataplane - partea care implementeazÄ procesul de dirijare, - propriu-zis, acesta se ĂŽntâmplÄ local, pe fiecare router. **Tema constÄ ĂŽn - implementarea acestei componente.** Ăn cele ce urmeazÄ, ĂŽn lipsa altor - precizÄri, toate referinČele la router din textul temei se referÄ la data plane. - -- Control plane - componenta care implementeazÄ algoritmii de rutare - (e.g. RIP, OSPF, BGP); aceČti algoritmi distribuiČi calculeazÄ - rutele pentru fiecare reČea destinaČie Či le insereazÄ ĂŽn dataplane. **NU** - va fi nevoie sÄ implementaČi aceČti algoritmi pentru - temÄ. Routerul va funcČiona cu o tabelÄ de rutare staticÄ, primitÄ - ĂŽntr-un fiČier de intrare, Či care nu se va schimba pe parcursul - rulÄrii. +- Dataplane - partea care implementeazÄ procesul de dirijare propriu-zis, pe + baza intrÄrilor din tabela de routare. + +- Control plane - partea care implementeazÄ algoritmii de rutare (e.g. RIP, + OSPF, BGP); aceČti algoritmi distribuiČi calculeazÄ intrÄrile din + tabela de rutare. + + +**Tema constÄ ĂŽn implementarea componentei de dataplane**. +Ăn cele ce urmeazÄ, ĂŽn lipsa altor precizÄri, toate referinČele la router din +textul temei se referÄ la dataplane. + +**NU** va fi nevoie sÄ implementaČi aceČti algoritmi ĂŽn cadrul temei; vom lucra +strict din perspectiva dataplane-ului, pentru care tabelele de rutare sunt deja +populate. +Routerul nostru va funcČiona cu o tabelÄ de rutare staticÄ, primitÄ ĂŽntr-un +fiČier de intrare, Či care nu se va schimba pe parcursul rulÄrii. Un router are mai multe interfeČe Či poate recepČiona pachete pe oricare dintre acestea. Routerul trebuie sÄ transmitÄ pachetul mai departe, cÄtre un calculator sau cÄtre alt router direct conectat, ĂŽn funcČie de regulile din tabela de -rutare. **Tema poate fi implementatÄ ĂŽn C sau C++**. +rutare. + +**Tema poate fi implementatÄ ĂŽn C sau C++**. ## LecturÄ tema @@ -39,11 +46,11 @@ Approach (6th Edition)](https://eclass.teicrete.gr/modules/document/file.php/TP326/%CE%98%CE%B5%CF%89%CF%81%CE%AF%CE%B1%20(Lectures)/Computer_Networking_A_Top-Down_Approach.pdf) ## Deadline + Deadline-ul temei este specificat pe moodle. -VÄ reamintim pÄrČile relevante din -[regulamentul](https://curs.upb.ro/2021/pluginfile.php/493725/mod_resource/content/0/Regulament_PC_2021_2022.pdf) -cursului de PCom: +VÄ reamintim pÄrČile relevante din [regulamentul cursului de +PCom](https://curs.upb.ro/2023/pluginfile.php/270568/mod_resource/content/1/Regulament_PC_2023_2024.pdf): - DupÄ expirarea acestui termen limitÄ se mai pot trimite teme un interval de maxim 3 zile, cu urmÄtoarele depunctÄri: 10p ĂŽn prima @@ -66,9 +73,9 @@ cursului de PCom: # Setup -Pentru a simula o retea virtuala vom folosi [Mininet](http://mininet.org/). -Mininet este un simulator de retele ce foloseste in simulare implementari reale -de kernel, switch si cod de aplicatii. +Pentru a simula o reČea virtualÄ vom folosi [Mininet](http://mininet.org/). +Mininet este un simulator de reČele ce foloseČte ĂŽn simulare implementari reale +de kernel, switch Či cod de aplicaČii. ```bash sudo apt update @@ -76,8 +83,8 @@ sudo apt install mininet openvswitch-testcontroller tshark python3-click python3 sudo pip3 install mininet ``` -Dupa ce am instalat Mininet, vom folosi urmatoarea comanda pentru a creste -dimensiunea fontului in terminalele pe care le vom deschide. +DupÄ ce am instalat Mininet, vom folosi urmÄtoarea comandÄ pentru a creČte +dimensiunea fontului ĂŽn terminalele pe care le vom deschide. ```bash echo "xterm*font: *-fixed-*-*-*-18-*" >> ~/.Xresources diff --git a/src/api.md b/src/api.md index 8a9894e..bc814d6 100644 --- a/src/api.md +++ b/src/api.md @@ -9,53 +9,71 @@ precum Či unele funcČii ajutÄtoare a cÄror utilizare este opČionalÄ. Ăn - **RecepČionare/trimitere pachete:** aveČi la dispoziČie urmÄtoarele douÄ funcČii de la nivelul Datalink: ```c - /* Scrie in frame_data continutul unui cadru L1 de Ethernet. In cazul nostru, frame_data - va fi structurat astfel: Ethernet L2 frame|IP or ARP| Alte protocoale - encapsulate de IP (e.g. ICMP) + /* Scrie ĂŽn frame_data continutul unui cadru L2 de Ethernet. Ăn cazul nostru, frame_data + va fi structurat astfel: - Returneaza interfata pe care cadrul a fost primit. Functia este blocanta. + |Alte protocoale encapsulate de IP (e.g. ICMP)| + |IP or ARP| + |Ethernet L2 frame| |<IP or ARP>| + + ReturneazÄ interfaČa pe care cadrul a fost primit. FuncČia este blocantÄ. */ int recv_from_any_link(char *frame_data, size_t *length); - /* Trimite buffer ca si payload al unui cadru Ethernet L1. - Link-ul pe care il va trimite este identificat de interfata. + /* Trimite frame_data ca payload al unui cadru Ethernet L2. + Link-ul pe care ĂŽl va trimite este identificat de interfaČÄ. */ - int send_to_link(int interface, char *frame_data, int len); + int send_to_link(int interface, char *frame_data, int length); ``` - > Pentru a primii punctajul pe tema, trebuie sa folositi acest API de send/recv + > Pentru a primi punctajul pe temÄ, trebuie sÄ folosiČi acest API de send/recv - **IntrÄri ĂŽn tabela de routare:** puteČi modela o intrare ĂŽn tabela de routare folosind urmÄtoarea structurÄ: ```c - struct route_table_entry; + /* Route table entry */ + struct route_table_entry { + uint32_t prefix; + uint32_t next_hop; + uint32_t mask; + int interface; + } __attribute__((packed)); ``` - **Parsare tabela de routare:** pentru a parsa tabela de routare, puteČi folosi funcČia: + ```c int read_rtable(const char *filepath, struct route_table_entry *rtable); ``` - > Intrarile in tabela de rutare sunt deja in network order + + > IntrÄrile din tabela de rutare sunt deja in network order. + - **IntrÄri ĂŽn tabela ARP:** puteČi modela o intrare ĂŽn tabela ARP folosind urmÄtoarea structurÄ: + ```c - struct arp_table_entry; + struct arp_table_entry { + uint32_t ip; + uint8_t mac[6]; + }; ``` + - **Parsare tabela staticÄ ARP:** ĂŽn cazul ĂŽn care doriČi sÄ folosiČi tabela staticÄ de ARP, puteČi sÄ o parsaČi folosind funcČia: + ```c - void parse_arp_table(); + int parse_arp_table(char *path, struct arp_table_entry *arp_table); ``` - **Calcul sume de control:** pentru a realiza calcularea/verificarea sumelor de control din IPv4, respectiv ICMP, puteČi folosi urmÄtoarea funcČie: + ```c /* Atunci cand calculam checksum-ul header-ului, vom pune campul checksum din header pe 0. */ uint16_t checksum(uint16_t *data, size_t len); - ``` - **CoadÄ de pachete:** dupÄ cum este menČionat ĂŽn [descrierea diff --git a/src/arp.md b/src/arp.md index 7297754..4c8f61d 100644 --- a/src/arp.md +++ b/src/arp.md @@ -1,9 +1,10 @@ # Protocolul ARP DupÄ ce un router a determinat urmÄtorul hop pentru un pachet folosind LPM, -trebuie sÄ-l trimitÄ mai departe, actualizând pachetul astfel ĂŽncât adresa MAC -destinaČie sÄ fie cea a urmÄtorului hop. Cum Čtie routerul aceastÄ adresÄ? O -opČiune ar fi ca aceastÄ sÄ fie reČinutÄ static, ĂŽntr-un tabel. +trebuie sÄ-l trimitÄ mai departe, ĂŽncapsulându-l ĂŽntr-un cadru cu adresa MAC +destinaČie setatÄ ca cea a urmÄtorului hop. Cum Čtie routerul aceastÄ adresÄ? + +ta opČiune este ca aceastÄ sÄ fie reČinutÄ static, ĂŽntr-un tabel. Ăn realitate, ĂŽnsÄ, din mai multe motive (e.g. flexibilitate), routerul *nu Čtie* aceste adrese, ci trebuie sÄ le determine folosind protocolul @@ -102,13 +103,13 @@ PaČii relevanČi pentru dirijarea unui pachet IPv4 sunt urmÄtorii: va parcurge lista de pachete care aČteaptÄ rÄspunsuri ARP Či le va trimite pe cele pentru care adresa urmÄtorului hop este cunoscutÄ. -> Un `ARP Request` catre router poate avea ca destinatie broadcast sau adresa MAC a interfetei router-ului. +> Un `ARP Request` cÄtre router poate avea ca destinaČie broadcast sau adresa MAC a interfeČei router-ului. -In slideshow-ul de mai jos gasiti un exemplu de utilizare a protocolului ARP -pentru a determina adresa MAC a unui dispozitiv la care suntem direct conectati. +Ăn slideshow-ul de mai jos gÄsiČi un exemplu de utilizare a protocolului ARP +pentru a determina adresa MAC a unui dispozitiv la care suntem direct conectaČi. <iframe class="is-fullwidth" height="600" marginheight="0" marginwidth="0" src="slides/index.html"> </iframe> -> In mod normal, hostii sunt conectati la un switch, astfel ARP Request-ul +> Ăn mod normal, hoČtii sunt conectaČi la un switch, astfel ARP Request-ul este trimis la mai mai multe dispozitive, nu doar la router. diff --git a/src/ethernet.md b/src/ethernet.md index d8ace18..055d58e 100644 --- a/src/ethernet.md +++ b/src/ethernet.md @@ -20,7 +20,7 @@ care a fost trimis acest cadru. Ăn cadrul laboratorului puteČi folosi urmÄtoarea structura pentru un cadru Ethernet. -``` C +```C struct ether_header { uint8_t ether_dhost[6]; // MAC destinaČie uint8_t ether_shost[6]; // MAC sursÄ @@ -33,11 +33,12 @@ struct ether_header { ethertype le poate lua. Ăn cazul nostru, ne intereseazÄ IPv4 (0x0800) Či ARP (0x0806). Noi vom folosi API-ul de nivel 2 pentru a trimite cadre Ethernet L2 peste protocolul de L1 Ethernet ce se ocupa cu -framing, checksums etc. [Aici](https://en.wikipedia.org/wiki/Ethernet_frame) gasiti o descriere completa -a structurii Ethernet. In payload-ul cadrului de Ethernet vom avea encapsulat fie protocolul ARP, fie protocolul IP. +framing, checksums etc. [Aici](https://en.wikipedia.org/wiki/Ethernet_frame) gÄsiČi o descriere completÄ +a structurii Ethernet. +Ăn payload-ul cadrului de Ethernet vom avea encapsulat fie protocolul ARP, fie protocolul IP. -In figura de mai jos, gasim o captura Wireshark ce surprinde un cadru ethernet de L2 in care avem encapsulat -IP si ICMP peste IP. +Ăn figura de mai jos, gÄsim o capturÄ Wireshark ce surprinde un cadru ethernet de L2 ĂŽn care avem encapsulat +IP Či ICMP peste IP.  diff --git a/src/exercises.md b/src/exercises.md index 7897f3b..26ccce0 100644 --- a/src/exercises.md +++ b/src/exercises.md @@ -5,7 +5,7 @@ Pentru rezolvarea temei, trebuie sÄ implementaČi dataplane-ul unui router. **Va recomandÄm sÄ folosiČi cel puČin `ping` pentru a testa -implementarea Či `Wireshark` pentru depanare Či analizÄ corectitudinii.** +implementarea Či `Wireshark` sau `tcpdump` pentru depanare Či analiza corectitudinii.** Punctajul este ĂŽmpÄrČit ĂŽn mai multe componente, dupÄ cum urmeazÄ: - **Procesul de dirijare (30p).** Va trebui sÄ implementaČi paČii @@ -17,13 +17,13 @@ Punctajul este ĂŽmpÄrČit ĂŽn mai multe componente, dupÄ cum urmeazÄ: implementat LPM folosind o cÄutare liniarÄ, i.e. trecând de fiecare datÄ prin toate ĂŽntrÄrile din tabel. Ăn practicÄ, o tabelÄ de routare poate conČine foarte multe ĂŽntrÄri [^1] -- astfel de cÄutare - este ineficientÄ. O abordare mai bunÄ este sÄ folosim - [trie](https://www.lewuathe.com/longest-prefix-match-with-trie-tree.html) + este ineficientÄ. O abordare mai bunÄ este sÄ folosim o + [trie](https://www.lewuathe.com/longest-prefix-match-with-trie-tree.html). Orice implementare mai eficientÄ decât cÄutarea liniarÄ valoreazÄ 16 puncte. -- **Protocolul ARP (33p).** Vom implementa paČii din [sectiuena ARP](arp.html) pentru +- **Protocolul ARP (33p).** Vom implementa paČii din [secČiunea ARP](arp.md) pentru a popula dinamic tabela ARP. Va trebui sÄ implementaČi Či funcČionalitatea de caching; dupÄ ce primiČi un rÄspuns ARP, reČineČi adresa MAC a hostului interogat. Ăn realitate, intrÄrile dintr-un @@ -32,7 +32,7 @@ Punctajul este ĂŽmpÄrČit ĂŽn mai multe componente, dupÄ cum urmeazÄ: **Pentru a nu bloca routerul, pachetele pentru care aČteptÄm un `ARP Reply` vor fi puse ĂŽntr-o coadÄ.** - Va recomandÄm sÄ folosiČi comanda `arping` pentru a face cereri ARP. Comanda + VÄ recomandÄm sÄ folosiČi comanda `arping` pentru a face cereri ARP. Comanda `arp` afiČeazÄ tabela ARP a unui host. Tema se poate preda Či cu o tabelÄ de ARP @@ -41,13 +41,13 @@ Punctajul este ĂŽmpÄrČit ĂŽn mai multe componente, dupÄ cum urmeazÄ: checkerul din a rula teste de ARP, deci nu veČi primi puncte pe ele. DacÄ aČi implementat protocolul ARP, nu adÄugaČi fiČierul `arp_table.txt`**. - > Este normal ca testul forward sa pice daca folositi tabela statica de ARP. + > Este normal ca testul forward sÄ pice daca folositi tabela statica de ARP. - **Protocolul ICMP (21p).** ImplementaČi pe router funcČionalitatea descrisÄ ĂŽn [secČiunea ICMP](icmp.html). PuteČi folosi `ping -t 1` pentru a trimite un pachet cu TTL 1. Va recomandÄm sÄ testaČi Či cu `traceroute`. -Pentru a fi punctata o tema, in README trebuie prezentata solutia voastra pe scurt. De asemenea, trebuie mentionat si ce subcerinČe aČi rezolvat. +Pentru a fi punctatÄ o temÄ, ĂŽn README trebuie prezentatÄ soluČia voastrÄ, pe scurt. De asemenea, trebuie menČionat Či ce subcerinČe aČi rezolvat. **NotÄ:** PuteČi scrie implementarea ĂŽn C sau C++. diff --git a/src/forwarding.md b/src/forwarding.md index 0508a56..4ea9cd8 100644 --- a/src/forwarding.md +++ b/src/forwarding.md @@ -6,7 +6,7 @@ efectueze urmÄtoarele acČiuni: 1. **Parsarea pachetului:** din fluxul de octeČi ce reprezintÄ pachetul, routerul trebuie sÄ afle ce antete sunt prezente Či ce - valori conČĂŽn câmpurile acestora, construind Či iniČializând + valori conČin câmpurile acestora, construind Či iniČializând structuri interne corespunzÄtoare. La acest pas, dacÄ routerul descoperÄ cÄ un pachet primit e malformat (e.g. prea scurt), ĂŽl aruncÄ. @@ -21,10 +21,10 @@ efectueze urmÄtoarele acČiuni: 3. **Inspectarea urmÄtorului header:** routerul inspecteazÄ câmpul `Ether Type` din header-ul Ethernet pentru a descoperi urmÄtorul antet prezent. Ăn cadrul temei, ne vor interesa doar douÄ posibilitÄČi: - [IPv4] Či [ARP]. UrmÄtoarele acČiuni ale routerului vor + [IPv4](ip.md) Či [ARP](arp.md). UrmÄtoarele acČiuni ale routerului vor depinde de tipul acestui header. Orice alt fel de pachet trebuie ignorat. -> Ăn cele ce urmeazÄ, vom studia protocoalele implicate ĂŽn procesul de dirijare +> Ăn continuare, vom studia protocoalele implicate ĂŽn procesul de dirijare Či vom prezenta cum acestea sunt folosite de cÄtre router. diff --git a/src/icmp_capture_wireshark.png b/src/icmp_capture_wireshark.png index 2bcaf7e46ac5259c6ade0ed982f7990eacbe9cc5..009a50fb2b8efa8d863fabc6b373c898b6eae96f 100644 GIT binary patch literal 33763 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 HCiMRRQoO&t literal 50993 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 V?aYDq>4#N(4(_ig_m^3&{{c3<<+%U= diff --git a/src/ip.md b/src/ip.md index 140aadd..c54ecd8 100644 --- a/src/ip.md +++ b/src/ip.md @@ -1,6 +1,12 @@ # Protocolul IPv4 -Protocolul IP este utitilzat pentru a permite dispozitivelor conectate ĂŽn reČele diferite sÄ schimbe informaČii prin intermediul unui dispozitiv intermediar numit router. -O descriere completÄ a header-ului de IPv4 o gÄsiČi [aici](https://en.wikipedia.org/wiki/Internet_Protocol_version_4#Header). Header-ul unui pachet (packet) IP este urmÄtorul: + +Protocolul IP este utilizat pentru a permite dispozitivelor conectate ĂŽn reČele +diferite sÄ schimbe informaČii prin intermediul unui dispozitiv intermediar +numit router. +O descriere completÄ a header-ului de IPv4 o gÄsiČi +[aici](https://en.wikipedia.org/wiki/Internet_Protocol_version_4#Header). +Header-ul unui pachet (packet) IP este urmÄtorul: + ``` +----+---------------+---------------+---------------+---------------+ |Word| 1 | 2 | 3 | 4 | @@ -19,27 +25,29 @@ O descriere completÄ a header-ului de IPv4 o gÄsiČi [aici](https://en.wikiped +----+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` -UrmÄtoarea strucura poate fi folositÄ pentru a reprezenta un pachet IPV4. -``` C +UrmÄtoarea strucurÄ poate fi folositÄ pentru a reprezenta un pachet IPV4. + +```C struct iphdr { // version este pe 4 biČi, ihl este pe 4 biČi uint8_t version:4, - ihl:4; // Nu vom implementa protocolul IP cu opČiuni, - aČa cÄ 5 Ă 32 bits = 160 bits = 20 bytes (internet header length) - uint8_t tos; // Nu este relevant pentru temÄ (set pe 0) - uint16_t tot_len; // dimensiunea totalÄ a header + date - uint16_t id; // Nu este relevant pentru temÄ, (set pe 1) - uint16_t frag_off; // Nu este relevant pentru temÄ, (set pe 0) - uint8_t ttl; // Time to live - uint8_t protocol; // Identificator al protocolului encapsulat (e.g. ICMP) - uint16_t check; // checksum of the iphdr, we checksum = 0 when computing - uint32_t saddr; // Adresa IP sursÄ - uint32_t daddr; // Adresa IP destinaČie + ihl:4; // Nu vom implementa protocolul IP cu opČiuni, + // aČa cÄ 5 Ă 32 bits = 160 bits = 20 bytes + // (internet header length) + uint8_t tos; // Nu este relevant pentru temÄ (set pe 0) + uint16_t tot_len; // dimensiunea totalÄ a header + date + uint16_t id; // Nu este relevant pentru temÄ, (set pe 1) + uint16_t frag_off; // Nu este relevant pentru temÄ, (set pe 0) + uint8_t ttl; // Time to live + uint8_t protocol; // Identificator al protocolului encapsulat (e.g. ICMP) + uint16_t check; // checksum of the iphdr, we checksum = 0 when computing + uint32_t saddr; // Adresa IP sursÄ + uint32_t daddr; // Adresa IP destinaČie }; ``` -De notat faptul cÄ noi nu suntem interesaČi de diferite funcČionalitÄČi din IP -precum fragmentarea. Astfel, ĂŽn cazul ĂŽn care construiČi un pachet IP de la 0, +**Nu suntem interesaČi de anumite funcČionalitÄČi din IP precum fragmentarea**. +Astfel, ĂŽn cazul ĂŽn care construiČi un pachet IP de la 0, vom seta urmÄtoarele: ``` @@ -51,19 +59,19 @@ id = 1 ``` Ăn [RFC 990 pagina 24](https://www.rfc-editor.org/rfc/rfc990) gÄČiČi o listÄ de identificatori pentru diversele -protocoale ce pot fi encapsulate ĂŽn IP. Vom folosi aceste valori pentru a completa câmpul Protocol +protocoale ce pot fi encapsulate ĂŽn IP. Vom folosi aceste valori pentru a completa câmpul `protocol`. -Când un router primeČte un pachet de tip IPv4 trebuie sÄ realizeze +Când un router primeČte un pachet de tip IPv4, trebuie sÄ realizeze urmÄtoarele acČiuni: -1. **Verificarea dacÄ el este destinaČia:** deČi un intermediar, routerul este +1. **VerificÄ dacÄ el este destinaČia:** deČi un intermediar, routerul este de asemenea o entitate cu interfeČe de reČea Či adrese IP asociate acestora, deci poate fi destinatarul unui pachet. Ăn acest caz, routerul nu trebuie sÄ trimitÄ mai departe pachetul, ci sÄ ĂŽi ĂŽnČeleagÄ conČinutul pentru a putea acČiona ĂŽn consecinČÄ. Ăn cadrul acestei teme, routerul va rÄspunde doar la mesaje de tip **ICMP**. -2. **Verificare checksum:** routerul trebuie sÄ recalculeze suma de +2. **VerificÄ checksum:** routerul trebuie sÄ recalculeze suma de control a pachetului, Či sÄ o compare cu cea primitÄ ĂŽn antetul de IP; dacÄ sumele diferÄ, pachetul a fost corupt Či trebuie aruncat. diff --git a/src/lpm.md b/src/lpm.md index 3e1adb0..2667850 100644 --- a/src/lpm.md +++ b/src/lpm.md @@ -15,5 +15,4 @@ prefixul: OdatÄ ce routerul gÄseČte toate prefixele care se potrivesc adresei destinaČie din pachet, va alege intrarea din tabela de rutare -corespunzÄtoare prefixului cei mai lung (masca cea mai mare). - +corespunzÄtoare celui mai lung prefix (masca cea mai mare). diff --git a/src/routing_table.md b/src/routing_table.md index 6667252..e9bfd1f 100644 --- a/src/routing_table.md +++ b/src/routing_table.md @@ -27,5 +27,5 @@ Prefix Next hop Mask Interface ``` Ăn contextul temei, este suficient sÄ consideraČi cÄ numÄrul maxim de -intrÄri din tabela de rutare este de 100000 de intrÄri. +intrÄri din tabela de rutare este de 100 000 de intrÄri. diff --git a/src/testing.md b/src/testing.md index 5eba33e..f8e781c 100644 --- a/src/testing.md +++ b/src/testing.md @@ -10,10 +10,9 @@ rula pentru a realiza setupul de testare. Acesta trebuie rulat ca $ sudo python3 checker/topo.py -Astfel, se va iniČializa topologia virtualÄ Či se va deschide câte un -terminal pentru fiecare host, câte un terminal pentru fiecare router Či -unul pentru controller (cu care nu vom interacČiona); terminalele pot fi -identificate dupÄ titlu. +Astfel, se va iniČializa topologia virtualÄ Či se va deschide câte un terminal +pentru fiecare host Či câte un terminal pentru fiecare router; terminalele pot +fi identificate dupÄ titlu. Fiecare host e o simplÄ maČinÄ Linux, din al cÄrei terminal puteČi rula comenzi care genereazÄ trafic IP pentru a testa funcČionalitatea @@ -21,17 +20,17 @@ routerului implementat. VÄ recomandÄm [arping](http://man7.org/linux/man-pages/man8/arping.8.html), [ping](https://linux.die.net/man/8/ping) Či [netcat](https://howto.lintel.ĂŽn/listen-arbitrary-port-print-data-coming-using-netcat/). -Mai mult, din terminal putem rula **Wireshark** sau tcpdump pentru a +Mai mult, din terminal putem rula `wireshark` sau `tcpdump` pentru a face inspecČia de pachete. -Pentru a compila codul vom folosi `make` care creeaza binarul router. +Pentru a compila codul vom folosi `make` care creeazÄ binarul `router`. Pentru a porni routerele manual folosim urmÄtoarele comenzi, prima pe router 0 Či a doua pe router 1: ```bash -make run_router0 # din terminalul lui router 0 -make run_router1 # din terminalul lui router 1 +make run_router0 # din terminalul lui router0 +make run_router1 # din terminalul lui router1 ``` Ca sa nu scrieti manual ip-ul unui host, puteti folosii `h0`, `h1`, `h2` si `h3` in @@ -56,7 +55,7 @@ sÄ gÄsiČi utilÄ informaČia de aici, mai ales cea din fiČierele de pe care ĂŽl puteČi inspecta apoi ĂŽn `Wireshark` (captura este fÄcutÄ pe toate interfeČele routerului, deci pachetele dirijate vor apÄrea de douÄ ori; urmÄriČi indicaČiile de [aici](https://osqa-ask.wireshark.org/questions/30636/traces-from-multiple-interface/) -pentru a obČine o vizualizare mai bunÄ) +pentru a obČine o vizualizare mai bunÄ). PuteČi rula un singur test folosind argumentul run <testname>. De exemplu: @@ -67,7 +66,7 @@ sudo python3 checker/topo.py run router_arp_reply Nu veČi primi un raport *PASS/FAIL*, dar veČi putea obČine uČor outputul din `host_output`. -**NotÄ:** Scopul testelor este de a ajuta cu dezvoltarea Či evaluarea +> **NotÄ:** Scopul testelor este de a ajuta cu dezvoltarea Či evaluarea temei. Mai presus de rezultatul acestora, important este sÄ implementaČi *cerinČa*. Astfel, punctajul final poate diferi de cel tentativ acordat de teste, ĂŽn situaČiile ĂŽn care cerinČa temei nu este respectatÄ (un caz -- GitLab