{"id":305787,"date":"2020-06-23T09:01:16","date_gmt":"2020-06-23T09:01:16","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=305787"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=305787","title":{"rendered":"\u0423\u0447\u0435\u0431\u043d\u0438\u043a \u043f\u043e \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0443 \u0441\u0435\u0442\u0438 ns-3. \u0417\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0433\u043b\u0430\u0432\u044b 8, 9"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/507770\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/oq\/g3\/-x\/oqg3-xyphklp7lki3udrmwh5xks.png\" alt=\"image\"><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/497106\/\">[\u0433\u043b\u0430\u0432\u044b 1,2]<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/497318\/\">[\u0433\u043b\u0430\u0432\u0430 3]<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/497478\/\">[\u0433\u043b\u0430\u0432\u0430 4]<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/498372\/\">[\u0433\u043b\u0430\u0432\u0430 5]<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/500170\/\">[\u0433\u043b\u0430\u0432\u0430 6]<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/507472\/\">[\u0433\u043b\u0430\u0432\u0430 7]<\/a><\/p>\n<p>  \u0413\u043b\u0430\u0432\u0430 8 \u0421\u0431\u043e\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<br \/>  8.1 \u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<br \/>  8.2 \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430<br \/>  8.3 GnuplotHelper<br \/>  8.4 \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0442\u0438\u043f\u044b \u0442\u0440\u0430\u0441\u0441<br \/>  8.5 FileHelper<br \/>  8.6 \u0418\u0442\u043e\u0433\u0438<br \/>  \u0413\u043b\u0430\u0432\u0430 9 \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<br \/>  9.1 \u041d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435<br \/>  9.2 \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435<\/p>\n<h1>\u0413\u043b\u0430\u0432\u0430 8\u00a0\u0421\u0431\u043e\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<\/h1>\n<p>  \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0433\u043b\u0430\u0432\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u00a0ns\u20113\u00a0\u0432 \u0432\u0435\u0440\u0441\u0438\u0438 3.18 \u0438 \u0442\u0435, \u0447\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0434\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0434\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h2>8.1\u00a0\u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<\/h2>\n<p>  \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u043b\u0438\u0431\u043e \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0446\u0435\u043b\u0435\u0439, \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0433\u043b\u0430\u0432\u0435 \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u00a0sixth.cc, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0444\u0430\u0439\u043b\u044b PCAP \u0438\u043b\u0438 ASCII \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043e\u043a. \u042d\u0442\u0438 \u0442\u0440\u0430\u0441\u0441\u044b \u0446\u0435\u043d\u043d\u044b \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0442\u0430\u043a\u0438\u0435 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432).<\/p>\n<p>  \u0422\u0435\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438, \u043e\u043d\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435:<\/p>\n<ul>\n<li>\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043b\u043e\u0445\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 PCAP \u0438\u043b\u0438 ASCII \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438, \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u043c\u0430\u0448\u0438\u043d\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430);<\/li>\n<li>\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0434\u0438\u0441\u043a\u0443 \u043f\u043e \u0432\u0432\u043e\u0434\u0443\/\u0432\u044b\u0432\u043e\u0434\u0443 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u043c\u0435\u0440\u043d\u044b\u043c\u0438 \u0438\u043b\u0438 \u0433\u0440\u043e\u043c\u043e\u0437\u0434\u043a\u0438\u043c\u0438;<\/li>\n<li>\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u043d\u043b\u0430\u0439\u043d \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0425\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u044d\u0442\u043e\u0433\u043e \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0451 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0437\u043a\u043e\u0433\u043e \u0434\u043e\u0432\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u043e\u0446\u0435\u043d\u043a\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430.<\/li>\n<\/ul>\n<p>  \u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445\u00a0ns\u20113\u00a0\u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u043e\u043c\u0438\u043c\u043e \u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438. \u041c\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0435\u043c\u0443\u0441\u044f \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u043e\u0439, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443 \u043f\u043e\u00a0ns\u20113\u00a0\u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0435\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435.<\/p>\n<h2>8.2\u00a0\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430<\/h2>\n<p>  \u0423\u0447\u0435\u0431\u043d\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u00a0examples\/tutorial\/sevenh.cc\u00a0\u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u00a0sixth.cc, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0440\u0430\u043d\u0435\u0435 \u043f\u0440\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0432 \u043d\u0435\u0433\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 IPv6 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438:  <\/p>\n<pre><code class=\"cpp\">CommandLine cmd; cmd.AddValue (&quot;useIpv6&quot;, &quot;Use Ipv6&quot;, useV6); cmd.Parse (argc, argv); <\/code><\/pre>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u043f\u0446\u0438\u044e\u00a0useIpv6, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c IPv6 \u0432\u043c\u0435\u0441\u0442\u043e IPv4. \u0412\u043e \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445\u00a0ns\u20113, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u00a0CommandLine, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043e\u043f\u0446\u0438\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0438. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u0432\u0430\u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c (\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0432\u043e\u0439\u043d\u044b\u0445 \u043a\u0430\u0432\u044b\u0447\u0435\u043a):  <\/p>\n<pre><code class=\"plaintext\">.\/waf --run &quot;seventh --help&quot; <\/code><\/pre>\n<p>  \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0434\u0430\u0441\u0442:  <\/p>\n<pre><code class=\"plaintext\">ns3-dev-seventh-debug [Program Arguments] [General Arguments] Program Arguments: --useIpv6: Use Ipv6 [false] General Arguments: --PrintGlobals: Print the list of globals. --PrintGroups: Print the list of groups. --PrintGroup=[group]: Print all TypeIds of group. --PrintTypeIds: Print all TypeIds. --PrintAttributes=[typeid]: Print all attributes of typeid. --PrintHelp: Print this help message. <\/code><\/pre>\n<p>  \u0420\u0435\u0436\u0438\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 IPv4, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443\u00a0useIpv6\u00a0\u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u00a0false) \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0432 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:  <\/p>\n<pre><code class=\"plaintext\">.\/waf --run &quot;seventh --useIpv6=1&quot; <\/code><\/pre>\n<p>  \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439\u00a0pcap, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e\u00a0tcpdump:  <\/p>\n<pre><code class=\"plaintext\">tcpdump -r seventh.pcap -nn -tt <\/code><\/pre>\n<p>  \u042d\u0442\u043e \u0431\u044b\u043b\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435 \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 IPv6 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0430\u043a\u0436\u0435 \u0431\u044b\u043b\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u0432 \u044d\u0442\u043e\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435\u00a0src\/core\/examples\/command-line-example.cc. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u0441\u0431\u043e\u0440\u0443 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438\u00a0examples\/tutorial\/\u00a0\u0432\u0432\u0435\u0434\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443:   <\/p>\n<pre><code class=\"plaintext\">diff -u sixth.cc sevenh.cc <\/code><\/pre>\n<p>  \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u043e\u043a \u044d\u0442\u043e\u0433\u043e\u00a0diff:  <\/p>\n<pre><code class=\"plaintext\">+ std::string probeType; + std::string tracePath; + if (useV6 == false) + { ... + probeType = &quot;ns3::Ipv4PacketProbe&quot;; + tracePath = &quot;\/NodeList\/*\/$ns3::Ipv4L3Protocol\/Tx&quot;; + } + else + { ... + probeType = &quot;ns3::Ipv6PacketProbe&quot;; + tracePath = &quot;\/NodeList\/*\/$ns3::Ipv6L3Protocol\/Tx&quot;; + } ... + \/\/ Use GnuplotHelper to plot the packet byte count over time + GnuplotHelper plotHelper; + + \/\/ Configure the plot. The first argument is the file name prefix + \/\/ for the output files generated. The second, third, and fourth + \/\/ arguments are, respectively, the plot title, x-axis, and y-axis labels + plotHelper.ConfigurePlot (&quot;seventh-packet-byte-count&quot;, + &quot;Packet Byte Count vs. Time&quot;, + &quot;Time (Seconds)&quot;, + &quot;Packet Byte Count&quot;); + + \/\/ Specify the probe type, trace source path (in configuration namespace), and + \/\/ probe output trace source (&quot;OutputBytes&quot;) to plot. The fourth argument + \/\/ specifies the name of the data series label on the plot. The last + \/\/ argument formats the plot by specifying where the key should be placed. + plotHelper.PlotProbe (probeType, + tracePath, + &quot;OutputBytes&quot;, + &quot;Packet Byte Count&quot;, + GnuplotAggregator::KEY_BELOW); + + \/\/ Use FileHelper to write out the packet byte count over time + FileHelper fileHelper; + + \/\/ Configure the file to be written, and the formatting of output data. + fileHelper.ConfigureFile (&quot;seventh-packet-byte-count&quot;, + FileAggregator::FORMATTED); + + \/\/ Set the labels for this formatted output file. + fileHelper.Set2dFormat (&quot;Time (Seconds) = %.3e\\tPacket Byte Count = %.0f&quot;); + + \/\/ Specify the probe type, probe path (in configuration namespace), and + \/\/ probe output trace source (&quot;OutputBytes&quot;) to write. + fileHelper.WriteProbe (probeType, + tracePath, + &quot;OutputBytes&quot;); + Simulator::Stop (Seconds (20)); Simulator::Run (); Simulator::Destroy (); <\/code><\/pre>\n<p>  \u0412\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u043c\u0435\u0442\u0438\u0442, \u0447\u0442\u043e \u043f\u0440\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 IPv6, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0448\u0435, \u0444\u0430\u0439\u043b\u00a0sevenh.cc\u00a0\u0441\u043e\u0437\u0434\u0430\u043b \u0440\u044f\u0434 \u043d\u043e\u0432\u044b\u0445 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432:  <\/p>\n<pre><code class=\"plaintext\">seventh-packet-byte-count-0.txt seventh-packet-byte-count-1.txt seventh-packet-byte-count.dat seventh-packet-byte-count.plt seventh-packet-byte-count.png seventh-packet-byte-count.sh <\/code><\/pre>\n<p>  \u041e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0432\u044b\u0448\u0435. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438,\u00a0GnuplotHelper\u00a0\u0438\u00a0FileHelper.<\/p>\n<p>  \u042d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u044b\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u043f\u0443\u0442\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438\u00a0ns\u20113\u00a0\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0441\u0431\u043e\u0440\u0430 \u0438 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e\u00a0gnuplot\u00a0\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u043e\u0432. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445.<\/p>\n<h2>8.3\u00a0GnuplotHelper<\/h2>\n<p>  GnuplotHelper\u00a0&#8212; \u044d\u0442\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u00a0ns\u20113, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432\u00a0gnuplot\u00a0\u0434\u043b\u044f \u043e\u0431\u0449\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c, \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432.<\/p>\n<p>  \u041e\u043d \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438\u00a0ns\u20113\u00a0\u0441 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438\u00a0ns\u20113\u00a0\u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u043d\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043e\u0431\u0449\u0438\u0445 \u0442\u0438\u043f\u043e\u0432 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f\u00a0TracedValues\u00a0\u0441 \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u0442\u0430\u0440\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (POD) \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u044b \u044d\u0442\u0438\u043c \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u043e\u043c.<\/p>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0432\u044b\u0432\u043e\u0434 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0430:  <\/p>\n<pre><code class=\"plaintext\">seventh-packet-byte-count.dat seventh-packet-byte-count.plt seventh-packet-byte-count.sh <\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u2014 \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0434\u0430\u043d\u043d\u044b\u0445\u00a0gnuplot\u00a0\u0441 \u0441\u0435\u0440\u0438\u0435\u0439 \u043c\u0435\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u0435\u043b\u0430\u043c\u0438, \u0438 \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0431\u0430\u0439\u0442\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0438\u0436\u0435 \u043a\u0430\u043a \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u044b\u043b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d, \u043d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0441 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u0424\u0430\u0439\u043b\u00a0seventh-packet-byte-count.plt\u00a0&#8212; \u044d\u0442\u043e \u0444\u0430\u0439\u043b \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u00a0gnuplot, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u00a0gnuplot. \u0427\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u00a0gnuplot, \u043c\u043e\u0433\u0443\u0442 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u043e\u043d \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u043e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0439 \u0444\u0430\u0439\u043b PNG \u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0seventh-packet-byte-count.png. \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 shell-\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439\u00a0sevenh-packet-byte-count.sh\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0447\u0435\u0440\u0435\u0437\u00a0gnuplot\u00a0\u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u0433\u043e PNG (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439), \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:  <\/p>\n<pre><code class=\"plaintext\">sh seventh-packet-byte-count.sh <\/code><\/pre>\n<p>  \u0432\u044b\u0434\u0430\u0441\u0442\u00a0seventh-packet-byte-count.png. \u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e\u0442 PNG \u043d\u0435 \u0431\u044b\u043b \u0441\u0434\u0435\u043b\u0430\u043d \u0441\u0440\u0430\u0437\u0443? \u041e\u0442\u0432\u0435\u0442 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0435\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442, \u043c\u043e\u0433 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b\u00a0plt, \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c PNG. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 PNG-\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u00ab\u0427\u0438\u0441\u043b\u043e \u0431\u0430\u0439\u0442\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438\u00bb \u0438 \u0447\u0442\u043e \u043e\u043d \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0437\u0430\u0445\u0432\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0443\u0442\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438:  <\/p>\n<pre><code class=\"plaintext\">\/NodeList\/*\/$ns3::Ipv6L3Protocol\/Tx <\/code><\/pre>\n<p>  \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0437\u043d\u0430\u043a \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u043f\u0443\u0442\u0438 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438. \u0418\u0442\u0430\u043a, \u044d\u0442\u043e\u0442 \u0433\u0440\u0430\u0444\u0438\u043a \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0431\u0430\u0439\u0442\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u044b\u0445 \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0435 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u00a0Ipv6L3Protocol; \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c 596-\u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b TCP \u0432 \u043e\u0434\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0438 60-\u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0435 TCP\u00a0ack\u00a0\u0432 \u0434\u0440\u0443\u0433\u043e\u043c (\u0434\u0432\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u0443\u0437\u043b\u043e\u0432 \u0431\u044b\u043b\u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u044d\u0442\u0438\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438).<\/p>\n<p>  \u041a\u0430\u043a \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e? \u0414\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043e\u0431\u044a\u0435\u043a\u0442\u00a0GnuplotHelper\u00a0\u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d:  <\/p>\n<pre><code class=\"plaintext\">+ \/\/ Use GnuplotHelper to plot the packet byte count over time + GnuplotHelper plotHelper; + + \/\/ Configure the plot. The first argument is the file name prefix + \/\/ for the output files generated. The second, third, and fourth + \/\/ arguments are, respectively, the plot title, x-axis, and y-axis labels + plotHelper.ConfigurePlot (&quot;seventh-packet-byte-count&quot;, + &quot;Packet Byte Count vs. Time&quot;, + &quot;Time (Seconds)&quot;, + &quot;Packet Byte Count&quot;); <\/code><\/pre>\n<p>  \u041a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u043f\u0443\u0441\u0442\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u0431\u044b\u043b \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d. \u041f\u0440\u0435\u0444\u0438\u043a\u0441 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430 \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u2014 \u0432\u0442\u043e\u0440\u043e\u0439, \u043f\u043e\u0434\u043f\u0438\u0441\u044c \u043a \u043e\u0441\u0438 X \u2014 \u0442\u0440\u0435\u0442\u0438\u0439, \u0430 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0441\u0438 Y \u2014 \u0447\u0435\u0442\u0432\u0435\u0440\u0442\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442.<br \/>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043e\u0442 \u0433\u0434\u0435 \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0432\u044b\u0448\u0435 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043c\u044b \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445:  <\/p>\n<pre><code class=\"plaintext\">+ std::string probeType; + std::string tracePath; + probeType = &quot;ns3::Ipv6PacketProbe&quot;; + tracePath = &quot;\/NodeList\/*\/$ns3::Ipv6L3Protocol\/Tx&quot;; <\/code><\/pre>\n<p>  \u041c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0438\u0445 \u0437\u0434\u0435\u0441\u044c:  <\/p>\n<pre><code class=\"plaintext\">+ \/\/ Specify the probe type, trace source path (in configuration namespace), and + \/\/ probe output trace source (&quot;OutputBytes&quot;) to plot. The fourth argument + \/\/ specifies the name of the data series label on the plot. The last + \/\/ argument formats the plot by specifying where the key should be placed. + plotHelper.PlotProbe (probeType, + tracePath, + &quot;OutputBytes&quot;, + &quot;Packet Byte Count&quot;, + GnuplotAggregator::KEY_BELOW); <\/code><\/pre>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u2014 \u044d\u0442\u043e \u0438\u043c\u044f \u0442\u0438\u043f\u0430 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0438 \u043f\u0443\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438. \u042d\u0442\u0438 \u0434\u0432\u043e\u0435, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0442\u0440\u0443\u0434\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u044b\u0442\u0430\u0435\u0442\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0442\u0440\u0430\u0441\u0441. \u0417\u0434\u0435\u0441\u044c \u0442\u0440\u0430\u0441\u0441\u0430 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u2014 \u044d\u0442\u043e \u0442\u0440\u0430\u0441\u0441\u0430 Tx \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043a\u043b\u0430\u0441\u0441\u0430\u00a0Ipv6L3Protocol. \u041a\u043e\u0433\u0434\u0430 \u043c\u044b \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 (src\/internet\/model\/ipv6-l3-protocol.cc) \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u0438\u0434\u0435\u0442\u044c:  <\/p>\n<pre><code class=\"cpp\">.AddTraceSource (&quot;Tx&quot;, &quot;Send IPv6 packet to outgoing interface.&quot;, MakeTraceSourceAccessor (&amp;Ipv6L3Protocol::m_txTrace)) <\/code><\/pre>\n<p>  \u042d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e Tx \u2014 \u044d\u0442\u043e \u0438\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439\u00a0m_txTrace, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043c\u0435\u0435\u0442 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435:  <\/p>\n<pre><code class=\"cpp\">\/** * \\brief Callback to trace TX (transmission) packets. *\/ TracedCallback&lt;Ptr&lt;const Packet&gt;, Ptr&lt;Ipv6&gt;, uint32_t&gt; m_txTrace; <\/code><\/pre>\n<p>  \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u043e\u043c\u00a0Probe\u00a0(\u0447\u0442\u043e \u043d\u0430\u043c \u0438 \u043d\u0443\u0436\u043d\u043e) \u043a\u043b\u0430\u0441\u0441\u0430\u00a0Ipv6PacketProbe. \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u044b\u00a0src\/internet\/model\/ipv6-packet-probe.{h, cc}.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0435\u00a0PlotProbe\u00a0\u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043e\u043d \u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 (\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u043f\u0443\u0442\u0438) \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0442\u0438\u043f\u043e\u043c \u0437\u0430\u0445\u0432\u0430\u0442\u0430\u00a0ns\u20113\u00a0Ipv6PacketProbe. \u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0442\u0438\u043f \u0437\u0430\u0445\u0432\u0430\u0442\u0430 (\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430), \u043c\u044b \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 (\u0445\u043e\u0442\u044f \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435).<\/p>\n<p>  Ipv6PacketProbe\u00a0\u0441\u0430\u043c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u00a0Packet:  <\/p>\n<pre><code class=\"cpp\">Ipv6PacketProbe::GetTypeId () {   static TypeId tid = TypeId (&quot;ns3::Ipv6PacketProbe&quot;)   .SetParent&lt;Probe&gt; ()   .SetGroupName (&quot;Stats&quot;)   .AddConstructor&lt;Ipv6PacketProbe&gt; ()   .AddTraceSource ( &quot;Output&quot;,   &quot;The packet plus its IPv6 object and interface that serve as the output for this probe&quot;,   MakeTraceSourceAccessor (&amp;Ipv6PacketProbe::m_output))   .AddTraceSource ( &quot;OutputBytes&quot;,   &quot;The number of bytes in the packet&quot;,   MakeTraceSourceAccessor (&amp;Ipv6PacketProbe::m_outputBytes));   return tid; } <\/code><\/pre>\n<p>  \u0422\u0440\u0435\u0442\u0438\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430\u00a0PlotProbe\u00a0\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442\u043e\u0432 \u0432 \u044d\u0442\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u0435;<\/p>\n<p>  \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u00abOutputBytes\u00bb\u00a0Ipv6PacketProbe. \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0434\u0432\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (\u00ab\u0427\u0438\u0441\u043b\u043e \u0431\u0430\u0439\u0442\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u0430\u00bb) \u0438 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u00a0gnuplot\u00a0(GnuplotAggregator :: KEY_BELOW), \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u043b\u0435\u0433\u0435\u043d\u0434\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0431\u044b\u043b\u0430 \u0432\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0438\u0436\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430. \u0414\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 NO_KEY, KEY_INSIDE \u0438 KEY_ABOVE.<\/p>\n<h2>8.4\u00a0\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435<br \/>  \u0442\u0438\u043f\u044b \u0442\u0440\u0430\u0441\u0441<\/h2>\n<p>  \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0433\u043b\u0430\u0432\u044b \u0432\u00a0Probes\u00a0\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td><b>\u0422\u0438\u043f\u00a0TracedValue<\/b><\/td>\n<td><b>\u0422\u0438\u043f\u00a0Probe<\/b><\/td>\n<td><b>\u0424\u0430\u0439\u043b<\/b><\/td>\n<\/tr>\n<tr>\n<td>double<\/td>\n<td>DoubleProbe<\/td>\n<td>stats\/model\/double-probe.h<\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td>Uinteger8Probe<\/td>\n<td>stats\/model\/uinteger-8-probe.h<\/td>\n<\/tr>\n<tr>\n<td>uint16_t<\/td>\n<td>Uinteger16Probe<\/td>\n<td>stats\/model\/uinteger-16-probe.h<\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td>Uinteger32Probe<\/td>\n<td>stats\/model\/uinteger-32-probe.h<\/td>\n<\/tr>\n<tr>\n<td>bool<\/td>\n<td>BooleanProbe<\/td>\n<td>stats\/model\/uinteger-16-probe.h<\/td>\n<\/tr>\n<tr>\n<td>ns3::Time<\/td>\n<td>TimeProbe<\/td>\n<td>stats\/model\/time-probe.h<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b\u00a0TraceSource:<\/p>\n<div class=\"scrollable-table\">\n<table>\n<tr>\n<td><b>\u0422\u0438\u043f TracedSource<\/b><\/td>\n<td><b>\u0422\u0438\u043f Probe<\/b><\/td>\n<td><b>\u0412\u044b\u0432\u043e\u0434 Probe<\/b><\/td>\n<td><b>\u0424\u0430\u0439\u043b<\/b><\/td>\n<\/tr>\n<tr>\n<td>Ptr&amp;ltconst Packet&amp;gt <\/td>\n<td>PacketProbe<\/td>\n<td>\u0431\u0430\u0439\u0442\u044b<\/td>\n<td>network\/utils\/packet-probe.h<\/td>\n<\/tr>\n<tr>\n<td>Ptr&amp;lt const Packet&amp;gt, Ptr&amp;lt Ipv4&amp;gt, uint32_t<\/td>\n<td>Ipv4PacketProbe<\/td>\n<td>\u0431\u0430\u0439\u0442\u044b<\/td>\n<td>internet\/model\/ipv4-packetprobe.h<\/td>\n<\/tr>\n<tr>\n<td>Ptr&amp;ltconst Packet&amp;gt, Ptr&amp;ltIpv6&amp;gt, uint32_t<\/td>\n<td>Ipv6PacketProbe<\/td>\n<td>\u0431\u0430\u0439\u0442\u044b<\/td>\n<td>internet\/model\/ipv6-packetprobe.h<\/td>\n<\/tr>\n<tr>\n<td>Ptr&amp;ltconst Packet&amp;gt, Ptr&amp;ltIpv6&amp;gt, uint32_t<\/td>\n<td>Ipv6PacketProbe<\/td>\n<td>\u0431\u0430\u0439\u0442\u044b<\/td>\n<td>internet\/model\/ipv6-packetprobe.h<\/td>\n<\/tr>\n<tr>\n<td>Ptr&amp;ltconst Packet&amp;gt, const Address&amp;<\/td>\n<td>ApplicationPacketProbe<\/td>\n<td>\u0431\u0430\u0439\u0442\u044b<\/td>\n<td>applications\/model\/applicationpacket-probe.h<\/td>\n<\/tr>\n<\/table>\n<\/div>\n<p>  \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438, \u0438 \u0432\u0441\u0435 \u043e\u043d\u0438 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0430 \u0432\u044b\u0432\u043e\u0434 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 (\u0432 \u0431\u0430\u0439\u0442\u0430\u0445). \u041e\u0434\u043d\u0430\u043a\u043e, \u044d\u0442\u0438 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0447\u0435\u0440\u0435\u0437\u00a0TracedValue.<\/p>\n<h2>8.5\u00a0FileHelper<\/h2>\n<p>  \u041a\u043b\u0430\u0441\u0441 FileHelper \u2014 \u044d\u0442\u043e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u00a0GnuplotHelper. \u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u0442\u0435\u0445 \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043c\u0435\u0442\u043a\u0430\u043c\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:  <\/p>\n<pre><code class=\"plaintext\">Time (Seconds) = 9.312e+00 Packet Byte Count = 596 Time (Seconds) = 9.312e+00 Packet Byte Count = 564 <\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u0432\u0430 \u0444\u0430\u0439\u043b\u0430, \u043e\u0434\u0438\u043d \u0434\u043b\u044f \u0443\u0437\u043b\u0430 \u00ab0\u00bb \u0438 \u043e\u0434\u0438\u043d \u0434\u043b\u044f \u0443\u0437\u043b\u0430 \u00ab1\u00bb, \u043a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u0438\u043c\u0435\u043d \u0444\u0430\u0439\u043b\u043e\u0432. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043a\u043e\u0434 \u043a\u0443\u0441\u043e\u043a \u0437\u0430 \u043a\u0443\u0441\u043a\u043e\u043c:  <\/p>\n<pre><code class=\"plaintext\">+ \/\/ Use FileHelper to write out the packet byte count over time + FileHelper fileHelper; + + \/\/ Configure the file to be written, and the formatting of output data. + fileHelper.ConfigureFile (&quot;seventh-packet-byte-count&quot;, + FileAggregator::FORMATTED); <\/code><\/pre>\n<p>  \u041f\u0440\u0435\u0444\u0438\u043a\u0441 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u2014 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c. \u0414\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 SPACE_SEPARATED, COMMA_SEPARATED \u0438 TAB_SEPARATED. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (\u0435\u0441\u043b\u0438 FORMATTED \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f) \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442\u0430:  <\/p>\n<pre><code class=\"plaintext\">+ + \/\/ Set the labels for this formatted output file. + fileHelper.Set2dFormat (&quot;Time (Seconds) = %.3e\\tPacket Byte Count = %.0f&quot;); <\/code><\/pre>\n<p>  \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438. \u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435\u00a0probeType\u00a0\u0438\u00a0tracePath, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0445\u0432\u0430\u0442 \u0432\u044b\u0445\u043e\u0434\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u00abOutputBytes\u00bb:  <\/p>\n<pre><code class=\"plaintext\">+ + \/\/ Specify the probe type, trace source path (in configuration namespace), and + \/\/ probe output trace source (&quot;OutputBytes&quot;) to write. + fileHelper.WriteProbe (probeType, + tracePath, + &quot;OutputBytes&quot;); + <\/code><\/pre>\n<p>  \u041f\u043e\u043b\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u044d\u0442\u043e\u043c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0434\u0432\u0443\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438. \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u00a0GnuplotHelper,\u00a0\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0434\u0432\u0435 \u0441\u0435\u0440\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u044b\u043b\u0438 \u043d\u0430\u043b\u043e\u0436\u0435\u043d\u044b \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435, \u0437\u0434\u0435\u0441\u044c \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0434\u0438\u0441\u043a \u0434\u0432\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<h2>8.6\u00a0\u0418\u0442\u043e\u0433\u0438<\/h2>\n<p>  \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441\u00a0ns\u20113.18, \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432. \u041e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0448\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0437\u0430\u0445\u0432\u0430\u0442\u043e\u0432 \u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438, \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0440\u0435\u043b\u0438\u0437\u0430\u0445.<\/p>\n<h1>\u0413\u043b\u0430\u0432\u0430 9\u00a0\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h1>\n<p>  <\/p>\n<h2>9.1\u00a0\u041d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435<\/h2>\n<p>  \u042d\u0442\u043e\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0436\u0438\u0432\u043e\u0433\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430. \u041c\u044b \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c, \u0447\u0442\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0432\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0433\u0430\u0435\u043a \u0438 \u0431\u043e\u043b\u0442\u043e\u0432\u00a0ns\u20113. \u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432 \u0438 \u0443\u0447\u0435\u0431\u043d\u044b\u0445 \u043f\u043e\u0441\u043e\u0431\u0438\u0439 \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u0441 \u0432\u0441\u0435\u0445 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u044f\u0435\u0442, \u043d\u043e \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u044f\u0432\u043b\u044f\u0435\u0442\u0435\u0441\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043e\u043c \u0432 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u044d\u0442\u0438\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u043d\u0435\u0441\u0442\u0438 \u0441\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434 \u0432\u00a0ns\u20113, \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0433\u043b\u0430\u0432\u0435 \u0438\u043b\u0438 \u0436\u0435 \u043b\u044e\u0431\u0443\u044e \u0434\u0440\u0443\u0433\u0443\u044e \u0433\u043b\u0430\u0432\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0435 \u0432\u0430\u0436\u043d\u043e\u0439.<\/p>\n<h2>9.2\u00a0\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435<\/h2>\n<p>  Ns\u20113\u00a0&#8212; \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0438 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430. \u0412 \u043e\u0434\u043d\u043e\u043c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0435, \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c. \u0427\u0438\u0442\u0430\u0442\u0435\u043b\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u044f\u0442 \u0443\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e:<\/p>\n<ul>\n<li>\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e\u00a0ns\u20113<\/li>\n<li>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439\u00a0ns\u20113<\/li>\n<li>ns\u20113 Doxygen\u00a0(\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f API)<\/li>\n<li>ns\u20113\u00a0\u0432\u0438\u043a\u0438<\/li>\n<\/ul>\n<p>   \u2014 \u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 ns\u20113.<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/507770\/\"> https:\/\/habr.com\/ru\/post\/507770\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/507770\/\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/oq\/g3\/-x\/oqg3-xyphklp7lki3udrmwh5xks.png\" alt=\"image\"><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/497106\/\">[\u0433\u043b\u0430\u0432\u044b 1,2]<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/497318\/\">[\u0433\u043b\u0430\u0432\u0430 3]<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/497478\/\">[\u0433\u043b\u0430\u0432\u0430 4]<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/498372\/\">[\u0433\u043b\u0430\u0432\u0430 5]<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/500170\/\">[\u0433\u043b\u0430\u0432\u0430 6]<\/a><br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/507472\/\">[\u0433\u043b\u0430\u0432\u0430 7]<\/a><\/p>\n<p>  \u0413\u043b\u0430\u0432\u0430 8 \u0421\u0431\u043e\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<br \/>  8.1 \u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f<br \/>  8.2 \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430<br \/>  8.3 GnuplotHelper<br \/>  8.4 \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0442\u0438\u043f\u044b \u0442\u0440\u0430\u0441\u0441<br \/>  8.5 FileHelper<br \/>  8.6 \u0418\u0442\u043e\u0433\u0438<br \/>  \u0413\u043b\u0430\u0432\u0430 9 \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<br \/>  9.1 \u041d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435<br \/>  9.2 \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435<\/p>\n<h1>\u0413\u043b\u0430\u0432\u0430 8\u00a0\u0421\u0431\u043e\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<\/h1>\n<p>  \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0433\u043b\u0430\u0432\u0435 \u044d\u0442\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u00a0ns\u20113\u00a0\u0432 \u0432\u0435\u0440\u0441\u0438\u0438 3.18 \u0438 \u0442\u0435, \u0447\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0434\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u042d\u0442\u043e\u0442 \u0440\u0430\u0437\u0434\u0435\u043b \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u0442\u0430\u0434\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-305787","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/305787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=305787"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/305787\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=305787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=305787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=305787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}