Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 55 additions & 15 deletions front-js/src/app/modules/ethernet/Cours.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,31 +22,71 @@ const CoursEthernet: React.FC = () => {
<EmojiProvider data={emojiData}>

<Space space="1rem">
<Title level={1} margin={{ top: "2rem" }}>Ethernet</Title>
<Title level={1} margin={{ top: "2rem" }}>Trames Ethernet</Title>
<Text>
Bienvenue sur le module Ethernet. Ce module génère une trame Ethernet basée sur les paramètres fournis.
Elle utilise les informations sur les adresses MAC source et destination ainsi que le type Ethernet (exprimé en hexadécimal).
La trame générée est renvoyée au format JSON.
Bienvenue sur le module "Trames Ethernet". Ce cours explore la structure des trames Ethernet, leur composition, et les types de protocoles qu'elles supportent.
Une trame Ethernet est le format standard utilisé pour transporter des données au sein d’un réseau local (LAN).
</Text>

<Title level={2} margin={{ top: "2rem" }}>Entrées : </Title>
<Text>・Adresse MAC de destination, (par exemple, FF:FF:FF:FF:FF:FF).</Text>
<Text>・Adresse MAC source, (par exemple, 00:11:22:33:44:55).</Text>
<Text>・Type de trame ethernet, (cf Types de trames).</Text>
<Title level={2} margin={{ top: "2rem" }}>Structure d'une trame Ethernet :</Title>
<Text>Une trame Ethernet est constituée des éléments suivants :</Text>
<Text>・Préambule (7 octets) : Synchronisation du signal.</Text>
<Text>・SFD (Start Frame Delimiter, 1 octet) : Indique le début de la trame.</Text>
<Text>・Adresse MAC de destination (6 octets) : Identifie l'appareil récepteur.</Text>
<Text>・Adresse MAC source (6 octets) : Identifie l'appareil émetteur.</Text>
<Text>・Type/EtherType (2 octets) : Indique le protocole encapsulé (ex : IPv4, ARP).</Text>
<Text>・Données/Payload (46 à 1500 octets) : Contenu utile à transmettre.</Text>
<Text>・FCS (Frame Check Sequence, 4 octets) : Contrôle d'erreur basé sur un CRC.</Text>

<Title level={2} margin={{ top: "2rem" }}>Types de trames Ethernet :</Title>
<Text>・0x0800 pour IPv4</Text>
<Text>・0x0806 pour ARP</Text>
<Text>・0x86DD pour IPv6</Text>
<Text>・0x8100 pour VLAN</Text>
<Text>
Le champ Type/EtherType est crucial pour identifier le protocole transporté. Voici quelques valeurs communes :
</Text>
<Text>・0x0800 : IPv4</Text>
<Text>・0x0806 : ARP</Text>
<Text>・0x86DD : IPv6</Text>
<Text>・0x8100 : VLAN (802.1Q)</Text>

<Title level={2} margin={{ top: "2rem" }}>Création d'une trame Ethernet :</Title>
<Text>
Une trame Ethernet est construite en combinant les informations suivantes :
</Text>
<Text>・Adresse MAC de destination, (ex : FF:FF:FF:FF:FF:FF pour un broadcast).</Text>
<Text>・Adresse MAC source, (ex : 00:11:22:33:44:55 pour un appareil spécifique).</Text>
<Text>・Type/EtherType, (cf. liste des types ci-dessus).</Text>
<Text>・Données utiles, avec un minimum de 46 octets.</Text>

<Title level={2} margin={{ top: "2rem" }}>Exemple de réponse 200 OK</Title>
<Title level={2} margin={{ top: "2rem" }}>Exemple d'une trame Ethernet :</Title>
<Text>
Une trame typique en format hexadécimal pourrait ressembler à ceci :
</Text>
<CodeBlock
text={(example)}
language="JSON"
text={`FF:FF:FF:FF:FF:FF 00:11:22:33:44:55 08:00 [Données] [CRC]`}
language="text"
theme={solarizedLight}
/>

<Title level={2} margin={{ top: "2rem" }}>Cas d'utilisation :</Title>
<Text>
Les trames Ethernet sont utilisées dans divers contextes, notamment :
</Text>
<Text>・Transmission de paquets IP sur un réseau local.</Text>
<Text>・Envoi de requêtes ARP pour la résolution d'adresses IP.</Text>
<Text>・Transport de données spécifiques à un VLAN dans des réseaux segmentés.</Text>

<Title level={2} margin={{ top: "2rem" }}>Exemple de réponse JSON :</Title>
<CodeBlock
text={`{
"Destination_MAC": "FF:FF:FF:FF:FF:FF",
"Source_MAC": "00:11:22:33:44:55",
"Type": "0x0800",
"Data": "Payload (en hexadécimal)"
}`}
language="json"
theme={solarizedLight}
/>
</Space>

</EmojiProvider>
)
}
Expand Down
5 changes: 2 additions & 3 deletions front-js/src/app/modules/ethernet/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,18 +82,17 @@ export default function Ethernet() {
<Header
tabs={{
dashboard: "Tableau de bord",
modules: "Mes modules",
profile: "Mon profil",
}}
activeTab="modules"
activeTab=""
onClick={(tab) => router.push(`/${tab.toLowerCase()}`)}
onClickLogout={() => router.push("/auth/logout")}
onClickLogo={() => router.push("/")}
/>
</Box>
<Box align="center" margin={{ top: "50px", bottom: "50px" }}>
<Title level={1} align="center">
IPv6
Ethernet
</Title>
</Box>

Expand Down