diff --git a/.vscode/ltex.hiddenFalsePositives.fr.txt b/.vscode/ltex.hiddenFalsePositives.fr.txt new file mode 100644 index 0000000000000000000000000000000000000000..df8b927447f69b0b780eaf02bcea411422eb5f5d --- /dev/null +++ b/.vscode/ltex.hiddenFalsePositives.fr.txt @@ -0,0 +1,3 @@ +{"rule":"D_N","sentence":"^\\QPour que la socket soit fonctionnelle en IPv6, il est nécessaire de changer sa famille en \"socket.AFINET6\".\\E$"} +{"rule":"ETRE_VPPA_OU_ADJ","sentence":"^\\QPour que la socket soit fonctionnelle en IPv6, il est nécessaire de changer sa famille en \"socket.AFINET6\".\\E$"} +{"rule":"FRENCH_WHITESPACE","sentence":"^\\QDe plus, il faut utiliser l'adresse loopback propre à IPv6 qui est \"::1\".\\E$"} diff --git a/Report/Images/ipv6.png b/Report/Images/ipv6.png new file mode 100644 index 0000000000000000000000000000000000000000..3653b7d401f349bf589de1a267e7947e563f1b3e Binary files /dev/null and b/Report/Images/ipv6.png differ diff --git a/Report/Labo5_Report.aux b/Report/Labo5_Report.aux index 076475a247f2910a456bcd4fb09a83935ccf806c..953d249a9a59f5685c08bcac760db652a85606e9 100644 --- a/Report/Labo5_Report.aux +++ b/Report/Labo5_Report.aux @@ -30,14 +30,16 @@ \abx@aux@segm{0}{0}{Cours:Hoerdt} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Capture Wireshark de l'entête UDP du message HELLO\relax }}{3}{figure.caption.2}\protected@file@percent } \newlabel{img:ip-brief-r2}{{2}{3}{Capture Wireshark de l'entête UDP du message HELLO\relax }{figure.caption.2}{}} -\abx@aux@nociteall \@writefile{toc}{\contentsline {subsection}{\numberline {1.3}B. Fragmentation}{4}{subsection.1.3}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Capture Wireshark d'un message fragmenté\relax }}{4}{figure.caption.3}\protected@file@percent } \newlabel{img:frag1}{{3}{4}{Capture Wireshark d'un message fragmenté\relax }{figure.caption.3}{}} \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Capture Wireshark d'un message fragmenté, deuxième fragment\relax }}{4}{figure.caption.4}\protected@file@percent } -\newlabel{img:frag1}{{4}{4}{Capture Wireshark d'un message fragmenté, deuxième fragment\relax }{figure.caption.4}{}} +\newlabel{img:frag2}{{4}{4}{Capture Wireshark d'un message fragmenté, deuxième fragment\relax }{figure.caption.4}{}} +\abx@aux@nociteall \ACRO{total-barriers}{1} \@writefile{toc}{\contentsline {subsection}{\numberline {1.4}C. IPv6}{5}{subsection.1.4}\protected@file@percent } +\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Capture Wireshark d'un message "HELLO" envoyé en IPv6\relax }}{5}{figure.caption.5}\protected@file@percent } +\newlabel{img:ipv6}{{5}{5}{Capture Wireshark d'un message "HELLO" envoyé en IPv6\relax }{figure.caption.5}{}} \newlabel{LastPage}{{}{5}{}{page.5}{}} \xdef\lastpage@lastpage{5} \xdef\lastpage@lastpageHy{5} diff --git a/Report/Labo5_Report.blg b/Report/Labo5_Report.blg index 13effdf52915758c4e3093129b1fea3217fe3bfc..815d4ae2b89b7b7f05ada9739ecbc3bfb9491112 100644 --- a/Report/Labo5_Report.blg +++ b/Report/Labo5_Report.blg @@ -1,15 +1,15 @@ [0] Config.pm:306> INFO - This is Biber 2.18 [0] Config.pm:309> INFO - Logfile is 'Labo5_Report.blg' -[48] biber:340> INFO - === sam mar 25, 2023, 16:58:37 -[58] Biber.pm:418> INFO - Reading 'Labo5_Report.bcf' +[49] biber:340> INFO - === dim mar 26, 2023, 14:47:56 +[61] Biber.pm:418> INFO - Reading 'Labo5_Report.bcf' [104] Biber.pm:975> INFO - Using all citekeys in bib section 0 [113] Biber.pm:4401> INFO - Processing section 0 -[120] Biber.pm:4592> INFO - Looking for bibtex file 'Bibliography.bib' for section 0 -[121] bibtex.pm:1713> INFO - LaTeX decoding ... +[121] Biber.pm:4592> INFO - Looking for bibtex file 'Bibliography.bib' for section 0 +[122] bibtex.pm:1713> INFO - LaTeX decoding ... [123] bibtex.pm:1518> INFO - Found BibTeX data source 'Bibliography.bib' -[131] UCollate.pm:68> INFO - Overriding locale 'fr-FR' defaults 'variable = shifted' with 'variable = non-ignorable' -[131] UCollate.pm:68> INFO - Overriding locale 'fr-FR' defaults 'normalization = NFD' with 'normalization = prenormalized' -[131] Biber.pm:4221> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'fr-FR' -[131] Biber.pm:4227> INFO - No sort tailoring available for locale 'fr-FR' -[134] bbl.pm:654> INFO - Writing 'Labo5_Report.bbl' with encoding 'UTF-8' -[135] bbl.pm:757> INFO - Output to Labo5_Report.bbl +[129] UCollate.pm:68> INFO - Overriding locale 'fr-FR' defaults 'variable = shifted' with 'variable = non-ignorable' +[129] UCollate.pm:68> INFO - Overriding locale 'fr-FR' defaults 'normalization = NFD' with 'normalization = prenormalized' +[129] Biber.pm:4221> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'fr-FR' +[129] Biber.pm:4227> INFO - No sort tailoring available for locale 'fr-FR' +[133] bbl.pm:654> INFO - Writing 'Labo5_Report.bbl' with encoding 'UTF-8' +[133] bbl.pm:757> INFO - Output to Labo5_Report.bbl diff --git a/Report/Labo5_Report.fdb_latexmk b/Report/Labo5_Report.fdb_latexmk index b24338445e5c27cd29807630a6bd6548c37fe611..c610b872a029e0e7a4794e9126095f692b2a4955 100644 --- a/Report/Labo5_Report.fdb_latexmk +++ b/Report/Labo5_Report.fdb_latexmk @@ -1,14 +1,14 @@ # Fdb version 3 -["biber Labo5_Report"] 1679759916 "Labo5_Report.bcf" "Labo5_Report.bbl" "Labo5_Report" 1679761083 +["biber Labo5_Report"] 1679834876 "Labo5_Report.bcf" "Labo5_Report.bbl" "Labo5_Report" 1679834937 "Bibliography.bib" 1679759909 171 8442279fca2bdb9213ad7ebbd05a4879 "" - "Labo5_Report.bcf" 1679761083 106676 a085c229a87cdb5a1bc33416f03d403a "lualatex" + "Labo5_Report.bcf" 1679834937 106676 a085c229a87cdb5a1bc33416f03d403a "lualatex" (generated) "Labo5_Report.bbl" "Labo5_Report.blg" -["lualatex"] 1679761081 "/home/joachim/Documents/Cours2022-2023/Git/Labo_5_BDR2/Report/Labo5_Report.tex" "Labo5_Report.pdf" "Labo5_Report" 1679761083 +["lualatex"] 1679834936 "/home/joachim/Documents/Cours2022-2023/Git/Labo_5_BDR2/Report/Labo5_Report.tex" "Labo5_Report.pdf" "Labo5_Report" 1679834937 "/home/joachim/.texlive2022/texmf-var/luatex-cache/generic/fonts/otl/lmroman12-regular.luc" 1674144434 127652 ea9fc6c83383bb1337b771452cfd801e "" "/home/joachim/.texlive2022/texmf-var/luatex-cache/generic/names/luaotfload-names.luc.gz" 1674144433 577217 9bed720cca56cff19933e6ad42f3f963 "" - "/home/joachim/Documents/Cours2022-2023/Git/Labo_5_BDR2/Report/Labo5_Report.tex" 1679761081 8677 15a7845f60d881e85a8fa14049dd5dcf "" + "/home/joachim/Documents/Cours2022-2023/Git/Labo_5_BDR2/Report/Labo5_Report.tex" 1679834934 9248 8da68154dfdb5a113a2191192dd0b175 "" "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmex10.tfm" 1136768653 992 662f679a0b3d2d53c1b94050fdaa3f50 "" "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm" 1136768653 1524 4414a8315f39513458b80dfc63bff03a "" "/usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi6.tfm" 1136768653 1512 f21f83efb36853c0b70002322c1ab3ad "" @@ -270,12 +270,13 @@ "Images/HEPIA_Logo.png" 1669548235 22074 49560da3751737f940743d94065d4b7f "" "Images/Hello_Wireshark.png" 1679758760 227850 ba3730291caab6f4bb1a697d336ae9f7 "" "Images/UDP.png" 1679759127 58117 2bc0670cd5d8b43a566e0fd76e5bde1d "" - "Labo5_Report.aux" 1679761083 2923 3d1737cbf7dd420675e87c92da4c46a3 "lualatex" - "Labo5_Report.bbl" 1679759917 1017 83d2b53b72e0590188052a6eabda0f1a "biber Labo5_Report" - "Labo5_Report.out" 1679761083 761 926feec182ff52959b244983edd4fba2 "lualatex" - "Labo5_Report.run.xml" 1679761083 2403 2991992fedfb94fcc2625eb671876e5b "lualatex" - "Labo5_Report.tex" 1679761081 8677 15a7845f60d881e85a8fa14049dd5dcf "" - "Labo5_Report.toc" 1679761083 456 e63b7acc96c85ca350361113b2d7eb6e "lualatex" + "Images/ipv6.png" 1679834765 115466 22b99407e7600f762767af1f7fc6fc0e "" + "Labo5_Report.aux" 1679834937 3214 d41c3b43f2801e3775a186a857817bdd "lualatex" + "Labo5_Report.bbl" 1679834876 1017 83d2b53b72e0590188052a6eabda0f1a "biber Labo5_Report" + "Labo5_Report.out" 1679834937 761 926feec182ff52959b244983edd4fba2 "lualatex" + "Labo5_Report.run.xml" 1679834937 2403 2991992fedfb94fcc2625eb671876e5b "lualatex" + "Labo5_Report.tex" 1679834934 9248 8da68154dfdb5a113a2191192dd0b175 "" + "Labo5_Report.toc" 1679834937 456 e63b7acc96c85ca350361113b2d7eb6e "lualatex" (generated) "Labo5_Report.aux" "Labo5_Report.bcf" diff --git a/Report/Labo5_Report.fls b/Report/Labo5_Report.fls index dbb05c6078b997b07d7afcfbc7c5bf584e3f20df..fb2fc3c004bfa0c4c4236ed2892c31e995702d20 100644 --- a/Report/Labo5_Report.fls +++ b/Report/Labo5_Report.fls @@ -501,6 +501,9 @@ INPUT ./Images/Fragment_1.png INPUT ./Images/Fragment_2.png INPUT ./Images/Fragment_2.png INPUT ./Images/Fragment_2.png +INPUT ./Images/ipv6.png +INPUT ./Images/ipv6.png +INPUT ./Images/ipv6.png INPUT ./Labo5_Report.aux INPUT ./Labo5_Report.out INPUT ./Labo5_Report.run.xml diff --git a/Report/Labo5_Report.log b/Report/Labo5_Report.log index 40729abb561e9755e497fc5dbc0d9ed6893ee7bc..ab582d4a2d7525c84f8d45ad5a79821f15d034de 100644 --- a/Report/Labo5_Report.log +++ b/Report/Labo5_Report.log @@ -1,4 +1,4 @@ -This is LuaHBTeX, Version 1.15.0 (TeX Live 2022/Debian) (format=lualatex 2023.1.19) 25 MAR 2023 17:18 +This is LuaHBTeX, Version 1.15.0 (TeX Live 2022/Debian) (format=lualatex 2023.1.19) 26 MAR 2023 14:48 restricted system commands enabled. file:line:error style messages enabled. **/home/joachim/Documents/Cours2022-2023/Git/Labo_5_BDR2/Report/Labo5_Report.tex @@ -965,11 +965,7 @@ Package csquotes Info: Checking for multilingual support... Package csquotes Info: ... found 'babel' package. Package csquotes Info: Adjusting default style. Package csquotes Info: Redefining alias 'default' -> 'french'. - (./Labo5_Report.aux - -LaTeX Warning: Label `img:frag1' multiply defined. - -) + (./Labo5_Report.aux) \openout1 = Labo5_Report.aux LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 115. @@ -1139,7 +1135,13 @@ Package fancyhdr Warning: \headheight is too small (12.0pt): (fancyhdr) You might also make \topmargin smaller to compensate: (fancyhdr) \addtolength{\topmargin}{-2.49998pt}. -[4<./Images/Fragment_1.png><./Images/Fragment_2.png>] +[4<./Images/Fragment_1.png><./Images/Fragment_2.png>] +<Images/ipv6.png, id=85, 889.82437pt x 663.98062pt> +File: Images/ipv6.png Graphic file (type png) +<use Images/ipv6.png> +Package luatex.def Info: Images/ipv6.png used on input line 274. +(luatex.def) Requested size: 331.50238pt x 247.36095pt. + AED: lastpage setting LastPage Package fancyhdr Warning: \headheight is too small (12.0pt): @@ -1148,10 +1150,7 @@ Package fancyhdr Warning: \headheight is too small (12.0pt): (fancyhdr) You might also make \topmargin smaller to compensate: (fancyhdr) \addtolength{\topmargin}{-2.49998pt}. -[5] (./Labo5_Report.aux) - -LaTeX Warning: There were multiply-defined labels. - +[5<./Images/ipv6.png>] (./Labo5_Report.aux) Package rerunfilecheck Info: File `Labo5_Report.out' has not changed. (rerunfilecheck) Checksum: 926FEEC182FF52959B244983EDD4FBA2;761. Package logreq Info: Writing requests to 'Labo5_Report.run.xml'. @@ -1160,19 +1159,19 @@ Package logreq Info: Writing requests to 'Labo5_Report.run.xml'. ) Here is how much of LuaTeX's memory you used: - 39226 strings out of 477474 + 39241 strings out of 477474 125056,1648299 words of node,token memory allocated - 938 words of node memory still in use: - 4 hlist, 1 vlist, 1 rule, 22 glue, 3 kern, 1 penalty, 2 glyph, 124 attribute, 65 glue_spec, 19 attribute_list, 3 write, 2 pdf_action nodes - avail lists: 1:1,2:1497,3:213,4:54,5:155,6:36,7:1817,8:61,9:249,10:9,11:111 - 58939 multiletter control sequences out of 65536+600000 + 968 words of node memory still in use: + 4 hlist, 1 vlist, 1 rule, 24 glue, 3 kern, 1 penalty, 2 glyph, 131 attribute, 65 glue_spec, 20 attribute_list, 3 write, 2 pdf_action nodes + avail lists: 1:1,2:1470,3:253,4:54,5:156,6:36,7:1815,8:59,9:249,10:9,11:115 + 58947 multiletter control sequences out of 65536+600000 41 fonts using 2665503 bytes 100i,12n,98p,1262b,1818s stack positions out of 10000i,1000n,20000p,200000b,200000s {/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}</usr/share/texmf/fonts/type1/public/lm/lmbx12.pfb></usr/share/texmf/fonts/type1/public/lm/lmcsc10.pfb></usr/share/texmf/fonts/type1/public/lm/lmr10.pfb></usr/share/texmf/fonts/type1/public/lm/lmr12.pfb></usr/share/texmf/fonts/type1/public/lm/lmr8.pfb></usr/share/texmf/fonts/type1/public/lm/lmri10.pfb></usr/share/texmf/fonts/type1/public/lm/lmri12.pfb></usr/share/texmf/fonts/type1/public/lm/lmtt12.pfb> -Output written on Labo5_Report.pdf (6 pages, 968430 bytes). +Output written on Labo5_Report.pdf (6 pages, 1085959 bytes). -PDF statistics: 123 PDF objects out of 1000 (max. 8388607) - 100 compressed objects within 1 object stream - 19 named destinations out of 1000 (max. 131072) +PDF statistics: 126 PDF objects out of 1000 (max. 8388607) + 101 compressed objects within 2 object streams + 20 named destinations out of 1000 (max. 131072) 56 words of extra memory for PDF output out of 10000 (max. 100000000) diff --git a/Report/Labo5_Report.pdf b/Report/Labo5_Report.pdf index 62145e2d9d48e7b40c4065db672ce424f21339b6..234d45140eab833f134140dcc5930f3c37695f8a 100644 Binary files a/Report/Labo5_Report.pdf and b/Report/Labo5_Report.pdf differ diff --git a/Report/Labo5_Report.synctex.gz b/Report/Labo5_Report.synctex.gz index d331030d1dcf317c87ab5ec101336a4e78a06450..6a3603f2542c65acb689afdf57629b3261838ad3 100644 Binary files a/Report/Labo5_Report.synctex.gz and b/Report/Labo5_Report.synctex.gz differ diff --git a/Report/Labo5_Report.tex b/Report/Labo5_Report.tex index 6f0d214dcaf6354850e35f1db44ffd25159197b9..65abae90318add7ec0e139a24d03f7c3a3236f25 100644 --- a/Report/Labo5_Report.tex +++ b/Report/Labo5_Report.tex @@ -259,13 +259,23 @@ \centering \includegraphics[width=0.85\textwidth]{Images/Fragment_2.png} \caption{Capture Wireshark d'un message fragmenté, deuxième fragment} - \label{img:frag1} + \label{img:frag2} \end{figure} Voici le deuxième fragment. Nous pouvons observer qu'il possède un fragment offset de 80. Le fragment offset est utilisé pour permettre de remettre dans le bon ordre les différents morceaux de messages. Dans notre exemple, 80 signifie que le message original a été coupé à 80 octets et que le second fragment commencera à partir de là. \end{itemize} \subsection{C. IPv6} + \begin{itemize} + \item[1.] Pour que la socket soit fonctionnelle en IPv6, il est nécessaire de changer sa famille en "socket.AF\_INET6". De plus, il faut utiliser l'adresse loopback propre à IPv6 qui est "::1". + + \begin{figure}[H] + \centering + \includegraphics[width=0.85\textwidth]{Images/ipv6.png} + \caption{Capture Wireshark d'un message "HELLO" envoyé en IPv6} + \label{img:ipv6} + \end{figure} + \end{itemize} \nocite{*} \printbibliography diff --git a/cli_IPv6.py b/cli_IPv6.py new file mode 100644 index 0000000000000000000000000000000000000000..70bdce33ee95a59023d65320691ac99ad4a82f6b --- /dev/null +++ b/cli_IPv6.py @@ -0,0 +1,33 @@ +import socket +import threading + +def send(): + while(True): + inp = input("# ") + inp = inp.encode('utf-8') + count = s.sendto(inp, ("::1", 5000)) + # print(f'{count} bytes sent') + +def recieve(): + while(True): + msg, sender = s.recvfrom(1500) + + if(msg == b'PING'): + s.sendto(b'PONG', ("::1", 5001)) + continue + + print(f'\033[96m {msg} \033[0m form {sender}') + + +s = socket.socket(family = socket.AF_INET6, type = socket.SOCK_DGRAM) + +send_thread = threading.Thread(target=send) +send_thread.start() + +recieve_thread = threading.Thread(target=recieve) +recieve_thread.start() + + + + + diff --git a/server_IPv6.py b/server_IPv6.py new file mode 100644 index 0000000000000000000000000000000000000000..b70f095bbd879a2ce374738134d64c35917dd17d --- /dev/null +++ b/server_IPv6.py @@ -0,0 +1,73 @@ +import socket +import threading +import time + +def check_connected(msg, sender): + if(msg == b'HELLO' and not sender in clients_list): + clients_list.append(sender) + print(f'Client {sender} \033[92m connected \033[0m') + + if(msg != b'HELLO' and not sender in clients_list): + s.sendto(b'YOU ARE NOT CONNECTED', sender) + +def check_disconnected(msg, sender): + if(msg == b'BYE' and sender in clients_list): + clients_list.remove(sender) + print(f'Client {sender} \033[91m disconnected \033[0m') + +def send_to_all_clients(msg, sender): + if(sender in clients_list): + for client in clients_list: + if(client != sender): + print(sender) + print(client) + print(client == sender) + s.sendto(msg, client) + +def ping_clients(): + while(True): + for client in clients_list: + try: + print("pinging client") + s_ping.sendto(b'PING', client) + s_ping.settimeout(5.0) + msg, sender = s_ping.recvfrom(1500) + print("recieved message, OK") + s_ping.settimeout(None) + except socket.error: + clients_list.remove(client) + print(f'client {client} \033[91m lost connection \033[0m') + + time.sleep(2) + + + + +s = socket.socket(family = socket.AF_INET6, type = socket.SOCK_DGRAM) +s_ping = socket.socket(family = socket.AF_INET6, type = socket.SOCK_DGRAM) + +s.bind(('::1', 5000)) +s_ping.bind(('::1', 5001)) + +clients_list = [] + +ping_thread = threading.Thread(target=ping_clients) +ping_thread.start() + +while(True): + msg, sender = s.recvfrom(1500) + + check_connected(msg, sender) + + check_disconnected(msg, sender) + + send_to_all_clients(msg, sender) + + print(f' client list : {clients_list} \n') + + print(f'recieved \033[96m {msg} \033[0m form {sender}') + + + + +