{"id":403580,"date":"2024-06-29T17:12:30","date_gmt":"2024-06-29T17:12:30","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=403580"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T17:12:30","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=403580","title":{"rendered":"<span>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 Pcap-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\u0420\u0430\u0431\u043e\u0442\u043e\u0439 \u0441 \u0441\u0435\u0442\u044c\u044e \u0432 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0443\u0434\u0438\u0432\u0438\u0448\u044c. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u0437\u043d\u0430\u044e, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0441\u043e\u043a\u0435\u0442\u0430\u043c\u0438 \u043d\u044b\u043d\u0447\u0435 \u043e\u0431\u0443\u0447\u0430\u044e\u0442 \u0443\u0436\u0435 \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u043a\u0443\u0440\u0441\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439. \u0422\u0430\u043a \u0447\u0442\u043e \u0432 \u0446\u0435\u043b\u043e\u043c, \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043d\u0430\u0432\u044b\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432. \u041d\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0441\u0435\u0442\u044c\u044e, \u0430 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441 \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438, \u0431\u0443\u0434\u044c \u0442\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u043b\u0438\u0431\u043e \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435. \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0440\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u043d\u0435 \u043e \u043f\u043e\u0432\u0441\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438, \u0430 \u043e\u0431 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u043b\u0438\u0431\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 Pcap-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 Npcap, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 Wireshark.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/pk\/xi\/ff\/pkxiffu_bhx0jqsgymqxaapxnty.png\" data-src=\"https:\/\/habrastorage.org\/webt\/pk\/xi\/ff\/pkxiffu_bhx0jqsgymqxaapxnty.png\"\/><\/p>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043d\u0430\u0439\u0434\u0451\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u044e\u0442, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u044f \u043e\u043f\u0440\u043e\u0441\u0438\u043b \u0441\u0432\u043e\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u0433 \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u043e \u043d\u0451\u043c \u0437\u043d\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0442, \u043a\u0442\u043e \u043c\u043d\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b, \u0434\u0430 \u0438 \u0442\u043e\u0442 \u0443\u0436\u0435 \u0437\u0430\u0431\u044b\u043b \u0432\u0441\u0435 \u0434\u0435\u0442\u0430\u043b\u0438. \u041e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u044b\u0434\u0430\u043b \u0438 \u0441\u043a\u0430\u0437\u0430\u043b, \u043c\u043e\u043b, \u0434\u0435\u043b\u0430\u0439 \u043f\u043e \u043e\u0431\u0440\u0430\u0437\u0443 \u0438 \u043f\u043e\u0434\u043e\u0431\u0438\u044e. \u0418 \u043a \u0443\u0436\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c, \u0438\u043c\u0435\u044e\u0449\u0438\u043c\u0441\u044f \u0442\u0430\u043c, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043a\u043e\u0435-\u0447\u0442\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u0435\u0449\u0451 \u0432 \u0441\u0435\u0442\u0438.<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u0434\u0443\u043c\u0430\u044e, \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0441\u0432\u0435\u0441\u0442\u0438 \u0432\u0441\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u043e\u0435\u0434\u0438\u043d\u043e. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u2013 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c! <br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h2>\u0427\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0441\u043a\u0430\u0447\u0430\u0442\u044c<\/h2>\n<p>  \u042f \u0431\u0443\u0434\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u0434 Windows. \u0412 \u0441\u0435\u0442\u0438 \u0441\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u0434 \u041b\u0438\u043d\u0443\u043a\u0441\u043e\u043c \u0432\u0441\u0451 \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043d\u043e \u044f \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b. \u0410 \u043f\u043e\u0434 Windows \u0438\u0441\u0445\u043e\u0434\u043d\u043e \u0431\u044b\u043b \u0434\u0440\u0430\u0439\u0432\u0435\u0440 WinPcap, \u0430 \u043a \u043d\u0435\u043c\u0443 \u0448\u043b\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430. \u0413\u0443\u0433\u043b\u044c \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043d\u0430 100% \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0441 \u0442\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u043e\u0442 \u041b\u0438\u043d\u0443\u043a\u0441\u043e\u0432\u043e\u0439 libpcap. \u041f\u043e\u0442\u043e\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c WinPcap \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f, \u0434\u0430\u0436\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0435\u0433\u043e 64-\u0431\u0438\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438. \u041f\u043e\u0442\u043e\u043c \u0431\u044b\u043b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0434\u0440\u0443\u0433\u043e\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u2026 \u0412\u043e\u043e\u0431\u0449\u0435, \u0435\u0433\u043e \u0438\u043c\u044f Npcap, \u043d\u043e \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0437\u0430\u0431\u0438\u0432\u0430\u0442\u044c \u0433\u043e\u043b\u043e\u0432\u0443 \u043b\u0438\u0448\u043d\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430:<\/p>\n<blockquote><p><b>\u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c Wireshark \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e. \u041e\u043d \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c \u0441 WinPcap, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u2013 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439.<\/b><\/p><\/blockquote>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430. \u041c\u043d\u0435 \u0432\u0441\u0451 \u0434\u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0432 \u0432\u0438\u0434\u0435 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c, \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0441\u044e\u0434\u0430: <a href=\"https:\/\/www.winpcap.org\/devel.htm\" rel=\"nofollow noopener noreferrer\">WinPcap \u00b7 Developer Resources<\/a>.<\/p>\n<p>  \u041f\u043e\u0432\u0442\u043e\u0440\u044e, \u043d\u0435 \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043e\u0442\u0442\u0443\u0434\u0430 \u0441\u0430\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440. \u041e\u043d \u0443\u0441\u0442\u0430\u0440\u0435\u043b. \u041d\u0430 \u0441\u0430\u0439\u0442\u0435 \u0432\u0441\u0451 \u0432\u0435\u0440\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e. \u0427\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 Wireshark \u2013 \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e \u0441 \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0443\u043d\u043a\u0442 <b>Download WinPcap 4.1.2 Developer&#8217;s Pack<\/b> \u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0430\u0440\u0445\u0438\u0432. \u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 Include \u0438 Lib, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e.<\/p>\n<p>  \u041d\u0443 \u0432\u0441\u0451, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u0430 \u043a \u0431\u043e\u044e. \u0423 \u043d\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d Wireshark \u0438 \u043f\u0440\u0438\u043c\u043a\u043d\u0443\u0432\u0448\u0438\u0439 \u043a \u043d\u0435\u043c\u0443 WinPcap-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440, \u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u041d\u043e \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u043e\u043f\u044b\u0442\u043e\u0432 \u043c\u044b \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u0443\u0440\u0443 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u041e\u0421.<\/p>\n<h2>\u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432\u0441\u0451 \u043d\u0435\u043d\u0443\u0436\u043d\u043e\u0435 \u043e\u0442 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430<\/h2>\n<p>  \u0421\u0435\u0442\u0435\u0432\u044b\u043c \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u043c\u0435\u044e\u0442 \u043a \u043d\u0435\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/nt\/vz\/j5\/ntvzj5jntmuajp5bb9eoqz5d8ms.png\" data-src=\"https:\/\/habrastorage.org\/webt\/nt\/vz\/j5\/ntvzj5jntmuajp5bb9eoqz5d8ms.png\"\/><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/su\/er\/sg\/suersguswhsmpxqzfcqcgia_i0e.png\" data-src=\"https:\/\/habrastorage.org\/webt\/su\/er\/sg\/suersguswhsmpxqzfcqcgia_i0e.png\"\/> <\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0441\u043a\u0440\u043e\u043b\u043b\u0435\u0440, \u0431\u0443\u0434\u0435\u0442 \u0435\u0449\u0451 \u043a\u0443\u0447\u0430 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c, \u0438 \u043f\u043e\u0447\u0442\u0438 \u0443 \u0432\u0441\u0435\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0433\u0430\u043b\u043e\u0447\u043a\u0438. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u044c\u044e, \u0432\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u0437\u043e\u043e\u043f\u0430\u0440\u043a \u043b\u0443\u0447\u0448\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c. \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0430\u0434\u0430\u043f\u0442\u0435\u0440. \u0423 \u043c\u0435\u043d\u044f \u0432 \u043c\u0430\u0448\u0438\u043d\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0442\u0430\u043a\u0438\u0445 \u0446\u0435\u043b\u044b\u0445 \u0434\u0432\u0430. \u041a\u043e\u0433\u0434\u0430 \u044f \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u043b Ethernet-\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440, \u044f \u0441\u043b\u0430\u043b \u043f\u0430\u043a\u0435\u0442\u044b \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439, \u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c \u043b\u043e\u0432\u0438\u043b \u0438\u0445. \u0421\u0430\u043c\u0438 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b \u0432 \u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 \u0441\u0442\u043e\u0438\u043b\u0438 \u043f\u043e 500 \u0440\u0443\u0431\u043b\u0435\u0439, \u0438\u0445 \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0437\u0430 \u0434\u0435\u043d\u044c. \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0431\u044b\u043b\u0438 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u044b \u043f\u043e \u0430\u043a\u0446\u0438\u0438, \u0438 \u043d\u0435 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0431\u044b\u0432\u0430\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u0446\u0435\u043d\u044b, \u043d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u0438\u043d-\u0434\u0432\u0430 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u043a \u0441\u0435\u0431\u0435 \u0432 \u042d\u0412\u041c \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u0442\u0440\u0443\u0434\u0430 \u043d\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442. \u0415\u0449\u0451 \u0440\u0430\u0437 \u043e\u0431\u0440\u0430\u0449\u0430\u044e, \u0447\u0442\u043e \u044f \u043d\u0430\u0448\u0451\u043b \u0438\u0445 \u0432 \u043a\u0440\u0443\u043f\u043d\u043e\u043c \u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435, \u0431\u0435\u0437 \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0410\u041b\u0418 \u042d\u043a\u0441\u043f\u0440\u0435\u0441\u0441\u0430.<\/p>\n<p>  \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0443, \u044f \u0431\u0443\u0434\u0443 \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u043d\u0438\u043a\u0442\u043e, \u043a\u0440\u043e\u043c\u0435 \u043c\u0435\u043d\u044f, \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0443\u0434\u0430 \u043d\u0435 \u043f\u043e\u0448\u043b\u0451\u0442. \u0412\u0441\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0438\u043b\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043c\u043d\u043e\u044e, \u0438\u043b\u0438 \u043f\u0440\u0438\u0434\u0443\u0442 \u0438\u0437 \u043f\u043e\u0434\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445 \u043c\u043d\u0435 \u043c\u0435\u0441\u0442. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u0430\u0434\u043e \u0441\u043d\u044f\u0442\u044c \u0432\u0441\u0435 \u0433\u0430\u043b\u043e\u0447\u043a\u0438, \u043a\u0440\u043e\u043c\u0435 Pcap-\u043e\u0432\u0441\u043a\u043e\u0439. \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u043e\u0439 Wireshark \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u0434\u0440\u0430\u0439\u0432\u0435\u0440 NPCAP, \u0442\u043e \u0433\u0430\u043b\u043e\u0447\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043d\u0435\u0433\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/r6\/22\/nv\/r622nvi7674irtujtg_nqoyurwa.png\" data-src=\"https:\/\/habrastorage.org\/webt\/r6\/22\/nv\/r622nvi7674irtujtg_nqoyurwa.png\"\/> <\/p>\n<h2>\u0413\u043e\u0442\u043e\u0432\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442<\/h2>\n<p>  \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u044f \u0432\u0441\u0451 \u0434\u0435\u043b\u0430\u044e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Qt. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043b \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c \u043f\u0430\u043f\u043a\u0438 Include \u0438 Lib \u0438\u0437 \u0430\u0440\u0445\u0438\u0432\u0430 WpdPack_4_1_2.zip. \u0414\u0430\u043b\u0435\u0435, \u044f \u0434\u043e\u043f\u0438\u0441\u0430\u043b \u0432 \u0444\u0430\u0439\u043b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre><code class=\"cpp\">DEFINES += HAVE_SNPRINTF DEFINES += HAVE_VSNPRINTF INCLUDEPATH += WinPCap\/Include LIBS += $$PWD\/WinPCap\/Lib\/x64\/wpcap.lib LIBS += $$PWD\/WinPCap\/Lib\/x64\/Packet.lib LIBS += -lIphlpapi LIBS += -lWs2_32<\/code><\/pre>\n<p>  \u0412 \u043a\u043e\u0434\u0435 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b:<\/p>\n<pre><code class=\"cpp\">#include \"pcap-int.h\" #include \"Packet32.h\" #include \"iphlpapi.h\" #include \"Win32-Extensions.h\" <\/code><\/pre>\n<p>  <\/p>\n<h2>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432<\/h2>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u00ab\u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u00bb, \u043d\u0430\u0434\u043e \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u0438\u043c\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <b>pcap_findalldevs()<\/b>. \u0412\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0435\u044e \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>pcap_freealldevs()<\/b>.<\/p>\n<p>  \u042f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0432 Qt-\u0448\u043d\u043e\u043c \u0432\u0438\u0434\u0436\u0435\u0442\u0435, \u043d\u043e \u0435\u0449\u0451 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u043c\u0430\u0440\u043a\u0435\u0440 \u043d\u0430 \u0442\u043e\u0442 \u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0437\u0430\u043f\u043e\u043c\u043d\u0435\u043d \u043f\u0440\u0438 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438. \u041d\u0443, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437. <\/p>\n<pre><code class=\"cpp\">settings.beginGroup( \"DefaultCards\" );     QString defaultSource = settings.value(\"Source\",QVariant(\"Nothing\")).toString();     QString defaultDestination = settings.value(\"Destination\",QVariant(\"Nothing\")).toString();     settings.endGroup();      pcap_if_t *alldevs;     char errbuf[PCAP_ERRBUF_SIZE];     if (pcap_findalldevs(&amp;alldevs, errbuf) != -1)     {          int i = 0;         for(pcap_if_t *d = alldevs; d != NULL; d = d->next)         {             ui->m_listEthCardNames->insertRow(i);             QTableWidgetItem* newItem = new QTableWidgetItem (d->description);             ui->m_listEthCardNames->setItem(i,0,newItem);              newItem = new QTableWidgetItem (d->name);             ui->m_listEthCardNames->setItem(i,1,newItem);             if (newItem->text()==defaultSource)             {                 ui->m_listEthCardNames->selectRow(i);             }              i += 1;         }         pcap_freealldevs(alldevs);     }<\/code><\/pre>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/c9\/u6\/zl\/c9u6zlf3sguic47l39bmeqxxp7g.png\" data-src=\"https:\/\/habrastorage.org\/webt\/c9\/u6\/zl\/c9u6zlf3sguic47l39bmeqxxp7g.png\"\/> <\/p>\n<h2>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e<\/h2>\n<p>  \u0421\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0441\u0442 \u0438 \u043f\u043e\u043d\u044f\u0442\u0435\u043d. \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <b>pcap_open_live()<\/b>. \u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"cpp\">m_hCardSource = pcap_open_live(srcItem->text().toLatin1(), 65536, 1, -1, errbuf);<\/code><\/pre>\n<p>  \u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043e\u0434\u043d\u0430 \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 \u2013 \u0435\u0434\u0438\u043d\u0438\u0446\u0430. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u044d\u0442\u043e \u043d\u0435 \u0447\u0442\u043e \u0438\u043d\u043e\u0435, \u043a\u0430\u043a: <br \/>  <b>#define PCAP_OPENFLAG_PROMISCUOUS 1<\/b><\/p>\n<p>  \u041d\u043e \u044f \u0442\u0430\u043a \u0438 \u043d\u0435 \u0441\u043c\u043e\u0433 \u043d\u0430\u0439\u0442\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e \u044d\u0442\u0443 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0443. \u041c\u0430\u043b\u043e \u0442\u043e\u0433\u043e, \u043c\u043d\u0435 \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438\u0435\u0445\u0430\u043b \u0442\u043e\u0436\u0435 \u0441 \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c. \u0422\u0430\u043a \u0447\u0442\u043e, \u043f\u043e\u0445\u043e\u0436\u0435, \u043d\u0435 \u044f \u043f\u0435\u0440\u0432\u044b\u0439. <\/p>\n<p>  \u041d\u043e \u043d\u0435 \u0432\u0441\u0451 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e, \u043a\u0430\u043a \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b. \u0410\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c. \u041f\u0440\u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u0435\u043d \u0435\u0433\u043e MAC-\u0430\u0434\u0440\u0435\u0441. \u0410 \u043a\u043e\u0433\u0434\u0430 \u044f \u0433\u043e\u043d\u044f\u043b \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u2013 MAC-\u0430\u0434\u0440\u0435\u0441\u0430 \u043e\u0431\u043e\u0438\u0445. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043d\u0430\u0448\u0451\u043b, \u043f\u0440\u0438 \u0442\u043e\u0439 \u0441\u0445\u0435\u043c\u0435, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0432\u044b\u0431\u0440\u0430\u043b, \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442. \u041e\u043d\u0438 \u0445\u043e\u0440\u043e\u0448\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u043b\u0430\u0442\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0443\u0447\u0435\u0439 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u041d\u0435\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u2013 \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0443 \u043d\u0435\u0433\u043e MAC-\u0430\u0434\u0440\u0435\u0441. \u0410 \u0443 \u043c\u0435\u043d\u044f \u0432\u0441\u0435 \u0433\u0430\u043b\u043a\u0438 \u0441\u043d\u044f\u0442\u044b. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u0433\u043e \u043e\u043f\u0440\u043e\u0441\u0430 \u0413\u0443\u0433\u043b\u044f, \u0431\u044b\u043b \u0432\u044b\u0441\u0442\u0440\u0430\u0434\u0430\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0443\u0442\u044c.<\/p>\n<p>  \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u0440\u0442\u0443 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"cpp\">    int srcRow = ui->m_listEthCardNames->currentRow();     if (srcRow &lt;0)     {         QMessageBox::critical(this,\"Error\",\"Please, select a Source Card\");         return;     }      char errbuf[PCAP_ERRBUF_SIZE];       QString srcDescription = ui->m_listEthCardNames->item(srcRow,0)->text();     QTableWidgetItem* srcItem =  ui->m_listEthCardNames->item(srcRow,1);     m_hCardSource = pcap_open_live(srcItem->text().toLatin1(), 65536, 1, -1, errbuf);     if (m_hCardSource == 0)     {         QMessageBox::critical(this,\"Open Source Adapter Error\",errbuf);         return;     }<\/code><\/pre>\n<p>  \u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u2013 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435. \u0422\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 MAC-\u0430\u0434\u0440\u0435\u0441. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0442\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c.<\/p>\n<pre><code class=\"cpp\">    PPACKET_OID_DATA pOidData;     CHAR pAddr[512];        ZeroMemory(pAddr, sizeof(pAddr));     pOidData = (PPACKET_OID_DATA) pAddr;     pOidData->Oid = OID_802_3_CURRENT_ADDRESS;     pOidData->Length = 6;     LPADAPTER  pADP = PacketOpenAdapter((PCHAR)(srcItem->text().toLatin1().constData()));     if(PacketRequest(pADP, FALSE, pOidData))     {         memcpy(m_macSource, pOidData->Data, 6);     }      PacketCloseAdapter(pADP);<\/code><\/pre>\n<p>  \u041d\u0443, \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u0432 \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u0445\u043e\u0434\u0435 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d:<\/p>\n<pre><code class=\"cpp\">    QSettings settings( \"YolkaPlay.conf\", QSettings::IniFormat );     settings.beginGroup( \"DefaultCards\" );     settings.setValue( \"Source\", srcItem->text() );     settings.endGroup();<\/code><\/pre>\n<p>  \u0412\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u0430\u0434\u0430\u043f\u0442\u0435\u0440, \u043d\u043e \u0435\u0449\u0451 \u0438 \u0443\u0437\u043d\u0430\u043b\u0438 \u0435\u0433\u043e MAC-\u0430\u0434\u0440\u0435\u0441, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0440\u0443\u0447\u043d\u043e\u043c\u0443 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043f\u0430\u043a\u0435\u0442\u043e\u0432.<\/p>\n<h2>\u0424\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u044b<\/h2>\n<p>  \u0415\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0442\u0435\u043e\u0440\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0442\u0435\u043c\u0435 \u0441\u0442\u0430\u0442\u044c\u0438. \u042f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0438\u0441\u043a\u0430\u043b \u0432 \u0441\u0435\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043f\u0440\u043e\u0449\u0435. \u0412 \u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d \u0432 \u043a\u043e\u043d\u0446\u0435, \u044f \u0432\u044b\u0437\u044b\u0432\u0430\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e void Dialog::CreatePacket(). <\/p>\n<p>  \u0412 \u043d\u0435\u0439, \u0441\u0440\u0435\u0434\u0438 \u043f\u0440\u043e\u0447\u0435\u0433\u043e, \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438:<\/p>\n<pre><code class=\"cpp\">    unsigned short UDPChecksum = CalculateUDPChecksum(packet);     memcpy((void*)(packet.m_pData+40),(void*)&amp;UDPChecksum,2);      unsigned short IPChecksum = htons(CalculateIPChecksum(packet));     memcpy((void*)(packet.m_pData+24),(void*)&amp;IPChecksum,2);<\/code><\/pre>\n<p>  \u042d\u0442\u0438 \u0441\u0442\u0440\u043e\u043a\u0438 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0440\u0443\u0447\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u042f \u0431\u0440\u0430\u043b \u0448\u0442\u0430\u0442\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043b\u043e\u0432\u0438\u043b WireShark. \u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0445\u043e\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0432 Verilog \u043c\u043e\u0434\u0435\u043b\u044c, \u0445\u043e\u0442\u044c \u043f\u043e\u0441\u043b\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 PCap \u0434\u0440\u0430\u0439\u0432\u0435\u0440. Ethernet \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0443\u043f\u043e\u0440\u043d\u043e \u0438\u0445 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u043e. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, WireShark \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0434\u0430\u043c\u043f \u0443\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0431\u0435\u0437 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0445 \u0441\u0443\u043c\u043c UDP \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430. <\/p>\n<p>  \u0412\u043e\u0442 \u044f \u0432\u0438\u0436\u0443 \u0434\u0432\u0430 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u0430, \u043f\u043e\u0439\u043c\u0430\u043d\u043d\u044b\u0445 WireShark\u043e\u043c. \u041e\u0434\u0438\u043d \u0443\u0448\u0451\u043b \u0438\u0437 PCap \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430, \u0432\u0442\u043e\u0440\u043e\u0439 \u2014 \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u043a\u0435\u0442\u044b. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0439! \u041d\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043b\u043e\u0432\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0442, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0430\u043d \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u043a\u0435\u0442\u044b. \u0421\u043d\u0438\u043c\u0430\u044e \u0434\u0430\u043c\u043f \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u2014 \u0432 PCap \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442\u2026 \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0438 \u0432 WireShark \u0434\u0430\u043c\u043f\u0435. \u0412 \u043e\u0431\u0449\u0435\u043c, \u044d\u0442\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u0434\u043e\u0432\u0435\u0441\u0442\u0438 \u0434\u043e \u0443\u043c\u0430 \u043f\u0430\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438 \u0438 \u043e\u0442\u043b\u043e\u0432\u043b\u0435\u043d\u044b Wireshark\u043e\u043c.<\/p>\n<h2>\u0428\u043b\u0451\u043c \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443<\/h2>\n<p>  \u0414\u043b\u044f \u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <b>pcap_sendpacket()<\/b>.<\/p>\n<p>  \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u0441\u044b\u043b\u043a\u0438 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430:<\/p>\n<pre><code class=\"cpp\">void Dialog::on_m_btnSendPkt_clicked() {     addrAndPort sourceParams;     sourceParams.mac = m_macSource;     sourceParams.ip = inet_addr(\"10.0.0.2\");     sourceParams.port = 12345;      static const uint8_t fakeDestMac [6]={0x01,0x02,0x03,0x04,0x05,0x06};      addrAndPort destParams;     destParams.mac = (uint8_t*) fakeDestMac;     destParams.ip = inet_addr(\"10.0.0.3\");     destParams.port = 12345;      static const int dataSize = 0x22;     udpData udpData;     udpData.SetUserSize(dataSize);     for (int i=0;i&lt;dataSize;i++)     {         udpData.m_pUserData[i] = (uint8_t)(i + ((~i)&lt;&lt;4));     }      \/\/ Well. Data is filled, now we can add extra information     CreatePacket(sourceParams,destParams,udpData);      pcap_sendpacket(m_hCardSource,udpData.m_pData,udpData.m_totalDataSize);   }<\/code><\/pre>\n<p>  \u0421\u043a\u043e\u0440\u043e \u043c\u044b \u0443\u0437\u043d\u0430\u0435\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0435\u0441\u043b\u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u044b\u043b\u043a\u0430 \u043f\u0430\u0447\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041d\u043e \u0434\u043b\u044f \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0445 \u2013 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0438\u0445 \u0434\u043b\u0438\u043d\u0443, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044f \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.<\/p>\n<h2>\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u044b<\/h2>\n<p>  \u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u043a \u043f\u0440\u0438\u0451\u043c\u0443 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u043d\u0435 \u0432 \u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u0433\u0434\u0435 \u044f \u0432\u043f\u0435\u0440\u0432\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b libpcap, \u043d\u0430\u0434\u043e \u0431\u044b\u043b\u043e \u043b\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043e\u0442 \u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 \u0441 \u043e\u0434\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0434\u043e \u043f\u0440\u0438\u0451\u043c\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439, \u044f \u0432\u044b\u043d\u0435\u0441 \u044d\u0442\u043e\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u043a\u043b\u0430\u0441\u0441:<\/p>\n<pre><code class=\"cpp\">class CReceiverThread : public QThread { public:     Dialog* m_pDialog;     \/\/ QThread interface protected:     void run();  };<\/code><\/pre>\n<p>  \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c (\u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0442\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0443 \u043c\u0435\u043d\u044f \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438).<\/p>\n<pre><code class=\"cpp\">    m_rcvThread.m_pDialog = this;     m_rcvThread.start(QThread::HighestPriority); <\/code><\/pre>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430, \u043d\u0430\u0434\u043e \u043d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a, \u0432\u0435\u0434\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0442\u0435\u0441\u0442 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u0441 \u0434\u0440\u0443\u0433\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u043e\u0439. \u0421\u0435\u0439\u0447\u0430\u0441 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0436\u0434\u0443 \u0432 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0449\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u2014 \u0432\u0437\u0432\u043e\u0436\u0443 \u0444\u043b\u0430\u0433 \u0434\u043b\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430, \u0447\u0442\u043e \u043e\u043d \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c\u0441\u044f. \u041d\u0443, \u0438 \u0436\u0434\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e. \u0414\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e:<\/p>\n<pre><code class=\"cpp\">    \/\/ For finish receive process     Sleep (1000);     QApplication::restoreOverrideCursor();       if (m_rcvThread.isRunning())     {         m_rcvThread.requestInterruption();     }     while (m_rcvThread.isRunning())     {         QThread::msleep(10);     }<\/code><\/pre>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u2013 \u0441\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435. \u0412\u043d\u0443\u0442\u0440\u0438 \u043f\u043e\u0442\u043e\u043a\u0430 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2013 \u044d\u0442\u043e \u0432\u044b\u0437\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 pcap_next_ex(). \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f, \u043e\u043d\u0430 \u0432\u0435\u0440\u043d\u0451\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a (\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0434\u043b\u0438\u043d\u0430 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043c\u0435\u0442\u043a\u0430), \u0430 \u0442\u0430\u043a\u0436\u0435 \u0431\u043b\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e \u0432 \u0441\u0432\u044f\u0437\u043d\u043e\u043c \u0441\u043f\u0438\u0441\u043a\u0435. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u043e \u2013 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u043d \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0410 \u0442\u043e \u0434\u043e\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043c\u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u0440 \u043c\u0430\u0441\u0441\u043e\u0432\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u043e\u0433\u0434\u0430 \u0435\u0449\u0451 CByteArray, \u0438 \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 40 \u043c\u0438\u043d\u0443\u0442. \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043c\u0435\u043d\u044b \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043d\u0430 \u0441\u0432\u044f\u0437\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u043b\u043e\u0441\u044c \u0434\u043e \u043c\u0438\u043d\u0443\u0442\u044b\u2026 \u0410 \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043d\u0435 \u0432 Debug, \u0430 \u0432 Release \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u2013 \u0434\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0435\u043a\u0443\u043d\u0434. \u0421 \u0442\u0435\u0445 \u043f\u043e\u0440 \u044f \u043b\u044e\u0431\u043b\u044e \u0441\u0432\u044f\u0437\u043d\u044b\u0435 \u0441\u043f\u0438\u0441\u043a\u0438 \u0434\u043b\u044f \u0432\u0435\u0449\u0435\u0439, \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d. \u0410 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u0448\u043d\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0439\u0442\u0438 \u0438\u0437 \u0441\u0435\u0442\u0438 \u2013 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0418\u0442\u0430\u043a, \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cpp\">void CReceiverThread::run() {     while (!isInterruptionRequested())     {         pcap_pkthdr *header;         const u_char * pData;         int res = pcap_next_ex(m_pDialog->m_hCardSource, &amp;header, &amp;pData);         if (res == 1)         {             if (header->len != header->caplen)             {                 volatile int stop = 0;                 (void) stop;             }             receivedPacket* pPkt = new receivedPacket(header->len);             m_pDialog->m_receivedPackets.push_back(pPkt);             pPkt->SetTimeStamp(m_pDialog->m_timer.nsecsElapsed());             memcpy (pPkt->GetHdrPtr(),header,sizeof(pcap_pkthdr));             memcpy (pPkt->GetData(),pData,header->caplen);         }     } }<\/code><\/pre>\n<p>  <\/p>\n<h2>\u0417\u0430\u0431\u0430\u0432\u043d\u044b\u0439 \u0444\u0430\u043a\u0442, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043f\u0440\u0438\u0451\u043c\u0430<\/h2>\n<p>  \u041a\u0441\u0442\u0430\u0442\u0438 \u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431\u044a\u0451\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u043a\u0430 \u044f \u0441\u043b\u0430\u043b \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439, \u044f \u043d\u0435 \u043e\u0431\u0440\u0430\u0449\u0430\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0440\u0438\u0451\u043c\u0430 \u043e\u0442\u043b\u043e\u0432\u0438\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b, \u043d\u043e \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435. \u0422\u0430\u043c \u0434\u043b\u044f \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0448\u0451\u043b \u043f\u0440\u0438\u0451\u043c, \u0432\u043e\u0442 \u044f \u0438 \u043d\u0435 \u0432\u0438\u0434\u0435\u043b, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442\u044b \u043a\u0442\u043e-\u0442\u043e \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442.\u044f. \u041d\u0443, \u0442\u0430\u043c \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0442\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gn\/pe\/xp\/gnpexp_oynjdxzqg1edw30lbgcc.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gn\/pe\/xp\/gnpexp_oynjdxzqg1edw30lbgcc.png\"\/> <\/p>\n<p>  \u0412 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0443 \u043c\u0435\u043d\u044f \u043d\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0435 \u0441\u0438\u0434\u0438\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 (\u0438\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442) \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u0448\u043b\u0451\u0442 \u0438\u0445 \u043d\u0430\u0437\u0430\u0434. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ci\/ak\/v4\/ciakv4ozml4lz-u3w59j7nupgjk.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ci\/ak\/v4\/ciakv4ozml4lz-u3w59j7nupgjk.png\"\/> <\/p>\n<p>  \u0418 \u0432\u043e\u0442 \u0442\u0443\u0442-\u0442\u043e \u044f \u043e\u0431\u0440\u0430\u0442\u0438\u043b \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0447\u0438\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a \u0443\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0432\u0434\u0432\u043e\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0447\u0435\u043c \u044f \u043e\u0436\u0438\u0434\u0430\u044e. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u2013 \u0442\u043e\u0447\u043d\u043e. \u041b\u043e\u0432\u044f\u0442\u0441\u044f \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435, \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441 \u0434\u0432\u0443\u043c\u044f \u043f\u043b\u0430\u0442\u0430\u043c\u0438: \u0442\u0430\u043c \u2014 \u043a\u0442\u043e \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442, \u043b\u043e\u0432\u0438\u0442 \u043a\u043e\u043f\u0438\u0438 \u043e\u0442\u043e\u0441\u043b\u0430\u043d\u043d\u044b\u0445; \u043a\u0442\u043e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442, \u043b\u043e\u0432\u0438\u0442 \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0435. \u0422\u0430\u043a \u0447\u0442\u043e \u0434\u0435\u043b\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043b\u043e\u0433\u0438\u043a\u0435.<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u0435 \u043f\u0443\u0433\u0430\u0439\u0442\u0435\u0441\u044c, \u043a\u043e\u0433\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f pcap_next_ex() \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043a\u043e\u043f\u0438\u0438 \u043e\u0442\u043e\u0441\u043b\u0430\u043d\u043d\u043e\u0433\u043e. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u044f \u043f\u043e\u044f\u0441\u043d\u044e \u0441\u0443\u0442\u044c \u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ut\/-_\/ua\/ut-_ua2g78e2fuzpu1z7dyoqux0.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ut\/-_\/ua\/ut-_ua2g78e2fuzpu1z7dyoqux0.png\"\/> <\/p>\n<h2>\u041f\u0435\u0440\u0432\u044b\u0439 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u044b\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h2>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0430\u0432\u0438\u043c \u0441\u0443\u0445\u0443\u044e \u0442\u0435\u043e\u0440\u0438\u044e \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u043e\u0439. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u044e \u00ab\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443\u00bb \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0433\u0438\u0433\u0430\u0431\u0438\u0442\u043d\u044b\u043c Ethernet\u043e\u043c \u043a \u041f\u041b\u0418\u0421 Lattice. \u0418 \u0432\u043e\u0442 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f \u043c\u044b, \u0447\u0442\u043e \u0443\u0440\u043e\u0432\u0435\u043d\u044c PHY \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043f\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a MAC. \u0410 \u043e\u043d \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442! \u0418 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c? \u0412\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u043c \u043d\u0430\u0440\u0443\u0436\u0443 \u043b\u0438\u043d\u0438\u044e \u0437\u0430 \u043b\u0438\u043d\u0438\u0435\u0439, \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0438\u0445 \u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444\u043e\u043c, \u0432\u044b\u044f\u0441\u043d\u044f\u0435\u043c, \u0447\u0442\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430 CRC \u0432 \u043f\u043e\u043b\u0435 FCS. \u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/p>\n<p>  \u0410 \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0441\u0435\u043b\u044c\u0435. \u0420\u0430\u0441\u0447\u0451\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 CRC \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0434\u0438\u043a\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u041a\u043e\u0433\u0434\u0430 \u0441\u0431\u043e\u0439 \u043c\u043e\u0436\u0435\u0442 \u0438\u0434\u0442\u0438 \u043e\u0442\u043a\u0443\u0434\u0430 \u0443\u0433\u043e\u0434\u043d\u043e, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438. \u0416\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0447\u0442\u043e-\u0442\u043e \u043e\u0434\u043d\u043e. \u0418 \u0432\u043e\u0442 \u0442\u0443\u0442 \u043d\u0430\u043c \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043b\u044e\u0431\u043e\u0439 \u043f\u0430\u043a\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u043e\u0441\u0442\u043e \u0431\u0435\u0440\u0451\u043c \u0438 \u0448\u043b\u0451\u043c \u043f\u0430\u043a\u0435\u0442 \u0438\u0437 \u043e\u0434\u043d\u0438\u0445 \u043d\u0443\u043b\u0435\u0439. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0441\u0434\u0432\u0438\u0433\u0430. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u043a\u0430\u043a \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f CRC (\u044f \u0432\u043e\u0437\u044c\u043c\u0443 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u043f\u0430\u0432\u0448\u0438\u0439\u0441\u044f \u0440\u0438\u0441\u0443\u043d\u043e\u043a, \u0431\u0435\u0437 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0448\u0435\u0439 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430\u0448\u0435\u043c\u0443 \u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0443):<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/4e\/gz\/aj\/4egzajbrg7sr2epijq7nq_xww-o.png\" data-src=\"https:\/\/habrastorage.org\/webt\/4e\/gz\/aj\/4egzajbrg7sr2epijq7nq_xww-o.png\"\/> <\/p>\n<p>  \u0422\u043e \u0435\u0441\u0442\u044c, \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0434\u0432\u0438\u0433\u0430 \u0438 \u043e\u0434\u043d\u043e\u0431\u0438\u0442\u043e\u0432\u043e\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0412 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u0445 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u043e\u0433\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0437\u0430 \u043e\u0434\u0438\u043d \u0442\u0430\u043a\u0442 \u043d\u0435 \u043e\u0434\u0438\u043d \u0432\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u0438\u0442, \u0430 \u043c\u043d\u043e\u0433\u043e. \u041d\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u044b \u0438\u0445 \u043d\u0438 \u0431\u044b\u043b\u043e, \u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f XOR. \u041d\u0443\u043b\u0435\u0432\u043e\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043d\u043e\u0441\u0438\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0431\u0435\u0433\u0430\u0435\u0442 \u043f\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u0441\u0434\u0432\u0438\u0433\u0430. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0438 \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u0438. \u0418\u0441\u043f\u0440\u0430\u0432\u0435\u043d \u2013 \u043f\u0435\u0440\u0435\u0439\u0434\u0451\u043c \u0434\u0430\u043b\u044c\u0448\u0435. \u041d\u0435\u0442 \u2013 \u0431\u0443\u0434\u0435\u043c \u0447\u0438\u043d\u0438\u0442\u044c \u0435\u0433\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0443\u043b\u0438. \u041d\u043e \u043f\u0430\u043a\u0435\u0442, \u0443\u0448\u0435\u0434\u0448\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0441\u043e\u043a\u0435\u0442\u044b, \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a! \u041f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 Pcap-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043c\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043b\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442 \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u043c \u0438\u0437 \u043e\u0434\u043d\u0438\u0445 \u043d\u0443\u043b\u0435\u0439! \u042d\u0442\u043e \u0436\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e!<\/p>\n<p>  \u0410 \u043d\u0430 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u043b\u0438\u043d\u0438\u0438, \u0438\u0434\u0443\u0449\u0438\u0435 \u0438\u0437 \u041f\u041b\u0418\u0421 \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440, \u0432\u044b\u0432\u0435\u0434\u0435\u043c \u0438 \u043b\u0438\u043d\u0438\u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443 \u0441\u0434\u0432\u0438\u0433\u0430. \u041a\u0430\u043a \u0436\u0435 \u044f \u043f\u0440\u0438\u0432\u044b\u043a \u043a \u0445\u043e\u0440\u043e\u0448\u0435\u043c\u0443! \u0412 \u041a\u0432\u0430\u0440\u0442\u0443\u0441\u0435 \u044f \u0431\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f SignalTAP\u043e\u043c, \u0432 Vivado \u2013 ILA. \u0410 \u0442\u0443\u0442 \u043d\u0430\u0434\u043e \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043d\u0430 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440! \u041d\u043e \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435. \u0411\u0435\u0440\u0451\u043c \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c. \u0412\u0435\u0440\u043d\u0435\u0435, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u043d\u0430 \u0432\u0445\u043e\u0434\u044b \u0431\u043b\u043e\u043a\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043e\u0434\u043d\u0438 \u043d\u0443\u043b\u0438, \u0435\u0441\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 Pcap \u043f\u043e\u0441\u043b\u0430\u043d \u043f\u0430\u043a\u0435\u0442 \u0438\u0437 \u043e\u0434\u043d\u0438\u0445 \u043d\u0443\u043b\u0435\u0439\u2026 \u041d\u0443, \u0442\u043e \u0435\u0441\u0442\u044c, \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0430 \u043f\u043e \u043f\u0443\u0442\u0438\u2026 \u042d\u0442\u043e\u0442 \u0440\u0438\u0441\u0443\u043d\u043e\u043a \u044f \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443, \u043f\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043d\u0430 \u0441\u043b\u043e\u0432\u043e. \u0410 \u0432\u043e\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u2013 \u043f\u043e\u043a\u0430\u0436\u0443. \u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0443 \u043c\u0435\u043d\u044f 16-\u0431\u0438\u0442\u043d\u044b\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u044f \u0432\u044b\u0432\u0435\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u043b\u0430\u0434\u0448\u0438\u0439 \u0431\u0430\u0439\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/zz\/sk\/cj\/zzskcjmznev4ikdnk_jie4lbado.png\" data-src=\"https:\/\/habrastorage.org\/webt\/zz\/sk\/cj\/zzskcjmznev4ikdnk_jie4lbado.png\"\/> <\/p>\n<p>  \u042f \u043d\u0435 \u043d\u0430\u0448\u0451\u043b, \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0431\u0438\u0442\u044b \u0432 \u0431\u0430\u0439\u0442. \u041d\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0432 \u043f\u0430\u043b\u044c\u0446\u0435\u043c, \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0430\u043c \u0438\u0434\u0451\u0442 0xff, \u0437\u0430\u0442\u0435\u043c \u2013 0x72, \u0437\u0430\u0442\u0435\u043c \u2013 0x20. \u0414\u0430\u043b\u044c\u0448\u0435 \u2013 \u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e, \u0432\u0437\u044f\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e CRC \u0438 \u043f\u0440\u043e\u0433\u043d\u0430\u0432 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0451 \u0432\u0441\u0435 \u043d\u0443\u043b\u0438, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043c\u043b\u0430\u0434\u0448\u0435\u0433\u043e \u0431\u0430\u0439\u0442\u0430 0xFF, 0x72, 0x00. \u041d\u043e \u0438 \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0432\u0441\u0451! \u0415\u0441\u043b\u0438 \u0432\u0437\u044f\u0442\u044c \u0412\u0435\u0440\u0438\u043b\u043e\u0433\u043e\u0432\u0441\u043a\u0438\u0439 \u0442\u0435\u043a\u0441\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 CRC \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438 \u043f\u0440\u043e\u0433\u043d\u0430\u0442\u044c \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 ModelSim, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0432 \u043c\u043b\u0430\u0434\u0448\u0438\u0445 \u0431\u0430\u0439\u0442\u0430\u0445 \u0432\u0441\u0451 \u0442\u0435 \u0436\u0435 0xFF, 0x72, 0x00:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ty\/1x\/ud\/ty1xud8cyjdclakd_hrqibwvgkq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ty\/1x\/ud\/ty1xud8cyjdclakd_hrqibwvgkq.png\"\/> <\/p>\n<p>  \u041f\u043e\u043a\u0430 \u044f \u0441\u0434\u0435\u043b\u0430\u043b \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u043a\u043e\u0434 \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 CRC \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441, \u0447\u0442\u043e OpenSource \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Yosys \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u0435\u0433\u043e \u0441\u0438\u043d\u0442\u0435\u0437\u0438\u0440\u043e\u0432\u0430\u043b. \u041f\u0440\u0438\u0447\u0451\u043c \u0434\u0435\u043b\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u043b\u043e\u0433\u0438\u043a\u0435. \u0414\u0430\u0436\u0435 \u0434\u043b\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 10 \u041c\u0431\u0438\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 (\u0442\u0430\u043a\u0442\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 2,5 \u041c\u0413\u0446), \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d. \u0412\u0437\u044f\u0432 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0434. \u0422\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u0439\u043c\u0430\u043d\u043d\u044b\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c, \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0445\u043e\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u043f\u0443\u0442\u0451\u043c, \u0445\u043e\u0442\u044c ModelSim\u043e\u043c:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/oz\/xl\/9a\/ozxl9atgk_midi3w52rhvvhtjiu.png\" data-src=\"https:\/\/habrastorage.org\/webt\/oz\/xl\/9a\/ozxl9atgk_midi3w52rhvvhtjiu.png\"\/> <\/p>\n<p>  \u041f\u0440\u0430\u0432\u0434\u0430, \u0432 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u043c \u043d\u0430 \u0437\u0430\u043c\u0435\u043d\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441 \u043d\u043e\u0433 \u043d\u0430 \u0433\u043e\u043b\u043e\u0432\u0443 \u0432\u0441\u0435 \u0431\u0438\u0442\u044b \u0432 \u0431\u0430\u0439\u0442\u0435. \u041f\u0440\u043e\u0441\u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0434\u043e\u0431\u0438\u043b\u0441\u044f \u0432\u0435\u0440\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u043e\u0442 \u043d\u0430 \u044d\u0442\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435, \u043f\u043e\u0442\u043e\u043c \u2013 \u043f\u043e\u0434\u0430\u043b \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c 0x01, 0x00, 0x00, 0x00\u2026 \u0438 \u0443\u0432\u0438\u0434\u0435\u043b, \u0447\u0442\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0434\u0432\u0438\u0433\u0430 \u043b\u043e\u0432\u0438\u0442 \u0442\u043e, \u0447\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435-\u0442\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 0x80, 0x00, 0x00,0x00\u2026\u041f\u0435\u0440\u0435\u0432\u0435\u0440\u043d\u0443\u043b \u0431\u0438\u0442\u044b \u2013 \u0432\u0441\u0451 \u0441\u0442\u0430\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u043e. \u0415\u0441\u043b\u0438 \u0431\u044b \u044f \u043d\u0435 \u043c\u043e\u0433 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0442\u043e\u043a\u043e\u043c \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0431\u0430\u0439\u0442\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u2014 \u0438\u0441\u043a\u0430\u0442\u044c \u0432\u0440\u0430\u0433\u0430 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0431\u044b \u0434\u043e\u043b\u044c\u0448\u0435. \u041a\u0430\u043a \u0431\u044b \u044f \u0432\u044b\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u043b\u0441\u044f, \u0435\u0441\u043b\u0438 \u0431\u044b \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0447\u0435\u0440\u0435\u0437 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0441\u043e\u043a\u0435\u0442\u044b, \u0443\u043c\u0430 \u043d\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0443! \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Pcap-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0445\u043e\u0434\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u0440\u0430\u0433\u0430!<\/p>\n<h2>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/h2>\n<p>  \u0418\u0442\u0430\u043a. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u043d\u0438\u044f \u0443\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043d\u0430\u043c \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0432\u0435\u0449\u0435\u0439. \u041d\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u044b\u0445 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0438 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u2013 \u0443\u0432\u044b, \u0442\u0430\u043a \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438. \u0414\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440. \u041f\u0435\u0440\u0435\u0434\u0430\u0451\u043c \u0434\u0435\u0441\u044f\u0442\u044c \u0442\u044b\u0441\u044f\u0447 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0432 \u043a\u0438\u043b\u043e\u0431\u0430\u0439\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ve\/6z\/lc\/ve6zlcnn_c1vdgylvbdy1geafpu.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ve\/6z\/lc\/ve6zlcnn_c1vdgylvbdy1geafpu.png\"\/> <\/p>\n<p>  10 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0437\u0430 1.8 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u042d\u0442\u043e\u2026 \u041d\u0443 \u043f\u0443\u0441\u0442\u044c 5 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u041d\u0430 \u0433\u0438\u0433\u0430\u0431\u0438\u0442\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 (10 \u0431\u0438\u0442 \u0432 \u0431\u0430\u0439\u0442\u0435) \u044d\u0442\u043e 50 \u043c\u0435\u0433\u0430\u0431\u0438\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u041a\u0430\u043a-\u0442\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e!<\/p>\n<p>  \u041d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u041f\u041b\u0418\u0421, \u044f \u043c\u043e\u0433\u0443 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043b\u0438\u043d\u0438\u0438 \u0448\u0438\u043d\u044b AXIStream (\u044d\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u043a\u0430\u043a AVALON_ST, \u043f\u0440\u043e \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043f\u0438\u0441\u0430\u043b \u0432 \u043a\u0443\u0447\u0435 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438) \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/bo\/2p\/3u\/bo2p3uzoxzfb9sdggey_bitgpoq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/bo\/2p\/3u\/bo2p3uzoxzfb9sdggey_bitgpoq.png\"\/> <\/p>\n<p>  \u0423\u0436\u0435 \u0442\u0443\u0442 \u0432\u0438\u0434\u043d\u044b \u043f\u0430\u0443\u0437\u044b \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e 15 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434. \u0415\u0441\u043b\u0438 \u0447\u0443\u0442\u044c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431, \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u0440\u0430\u0432\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 200 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u043a\u0443\u043d\u0434. \u042f \u043f\u043e\u043a\u0430\u0436\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0438\u043d\u0438\u044e \u0441\u0442\u0440\u043e\u0431\u0430. \u041a\u043e\u0433\u0434\u0430 \u043e\u043d\u0430 \u0432 \u0435\u0434\u0438\u043d\u0438\u0446\u0435, \u0438\u0434\u0451\u0442 \u043f\u0435\u0440\u0435\u043a\u0430\u0447\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0448\u0438\u043d\u0435 AXIStream, \u043a\u043e\u0433\u0434\u0430 \u0432 \u043d\u0443\u043b\u0435 \u2013 \u0448\u0438\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/q4\/t_\/ii\/q4t_iis4l9ojcidq0bxrhw5oxrc.png\" data-src=\"https:\/\/habrastorage.org\/webt\/q4\/t_\/ii\/q4t_iis4l9ojcidq0bxrhw5oxrc.png\"\/> <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/31\/-b\/o0\/31-bo0bcl7dvdi_87yqexeb0g90.png\" data-src=\"https:\/\/habrastorage.org\/webt\/31\/-b\/o0\/31-bo0bcl7dvdi_87yqexeb0g90.png\"\/> <\/p>\n<p>  \u041d\u043e \u043c\u044b \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0448\u0438\u043d\u0430 \u0434\u043e\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442, \u0447\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u0434\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u044f\u0434\u0440\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u2013 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u0440\u043e\u0433\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 libpcap \u0435\u0441\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u0438\u043c \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0430 \u0437\u0430\u0442\u0435\u043c \u2013 \u0435\u0434\u0438\u043d\u043e\u0436\u0434\u044b \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u044f\u0434\u0440\u0430. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u043a\u0430\u043a \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<h2>\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439<\/h2>\n<p>  \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043d\u044f\u0442\u044c, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u0435\u0439 \u0431\u044b\u043b\u0430 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0439\u043c\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0432\u0441\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u043c\u0435\u043d\u043d\u043e \u0447\u0438\u0442\u0430\u044e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0441 \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0439\u043c\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u043f\u043e\u0441\u044b\u043b\u0430\u044e\u0442 \u0438\u0445. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0435\u0442\u044b\u0440\u0435 \u0448\u0430\u0433\u0430:<\/p>\n<ol>\n<li>\u0417\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u0434\u043b\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>pcap_sendqueue_alloc()<\/b>. \u041f\u0430\u043c\u044f\u0442\u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 pcap_pkthdr (\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0445 \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043f\u043e\u043f\u0430\u0434\u0451\u0442 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c).<\/li>\n<li>\u041f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0432\u0441\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>pcap_sendqueue_queue()<\/b>.<\/li>\n<li>\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u0441\u0451 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043e\u043f\u0442\u043e\u043c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>pcap_sendqueue_transmit()<\/b>. \u0423 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u2014 sync. \u041c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0441\u043b\u0430\u043b\u0430 \u043f\u0430\u043a\u0435\u0442\u044b \u0441 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e, \u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0440\u0443\u0447\u0438\u0442\u044c \u0431\u0440\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u0441\u044b\u043b\u043a\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 \u0438\u0437 \u043f\u043e\u043b\u044f ts, \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0448\u0430\u0433\u0435. \u0421 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\u044e, sync \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0432\u0437\u0432\u043e\u0434\u0438\u0442\u044c. \u0423 \u043c\u0435\u043d\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u043d\u0430\u0447\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u044f\u043b\u0430\u0441\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u041f\u041b\u0418\u0421. \u0427\u0442\u043e\u0431\u044b \u0432\u0441\u0451 \u0441\u0442\u0430\u043b\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u0434\u043b\u044f \u0433\u0438\u0433\u0430\u0431\u0438\u0442\u0430 \u044f \u0434\u0435\u043b\u0430\u043b \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u0440\u0430\u0432\u043d\u044b\u043c 10 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u043a\u0443\u043d\u0434, \u0434\u043b\u044f \u0441\u0442\u0430 \u043c\u0435\u0433\u0430\u0431\u0438\u0442 \u2013 220 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u043a\u0443\u043d\u0434.<\/li>\n<li>\u041e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c, \u0437\u0430\u043d\u044f\u0442\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c\u044e, \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>pcap_sendqueue_destroy()<\/b>. <\/li>\n<\/ol>\n<p>  <\/p>\n<blockquote><p><b>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0448\u0430\u0433\u0435 \u0443\u0439\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0439\u0434\u0443\u0442, \u043d\u043e \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043d\u0438\u043a\u0443\u0434\u0430 \u043d\u0435 \u0438\u0441\u0447\u0435\u0437\u043d\u0443\u0442. \u042f \u043f\u043e\u043d\u0430\u0447\u0430\u043b\u0443 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u043f\u043e\u0441\u043b\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u043e\u0442\u0441\u044b\u043b\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u043d\u0435\u0451 \u043d\u043e\u0432\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0430\u0447\u043a\u0438. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437 \u043f\u043e\u0435\u0434\u0443\u0442 \u0438 \u0442\u0435, \u0447\u0442\u043e \u0443\u0436\u0435 \u0431\u044b\u043b\u0438 \u0432 \u043d\u0435\u0439, \u0438 \u043d\u043e\u0432\u044b\u0435. \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0443\u043c \u2014 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0443\u0448\u0438\u0442\u044c, \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0432 \u043f\u0430\u043c\u044f\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <b>pcap_sendqueue_destroy()<\/b>, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u2014 \u0441\u043d\u043e\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e, \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043a \u0448\u0430\u0433\u0443 1.<\/b><\/p><\/blockquote>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0443 \u043c\u0435\u043d\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u0441\u0442\u0440\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u043e\u0431\u044a\u0435\u0445\u0430\u043b \u043d\u0430 \u0441\u0435\u0440\u043e\u0439 \u043a\u043e\u0437\u0435. \u0423 \u043c\u0435\u043d\u044f \u0436\u0435 \u0441\u0442\u043e\u044f\u043b\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u041f\u041b\u0418\u0421, \u0430 \u043d\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u041f\u041a. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c 100 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043f\u043e\u0434\u0440\u044f\u0434, \u043e\u043d\u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0434\u043e\u0445\u043e\u0434\u044f\u0442, \u0430 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a \u043b\u043e\u0432\u0438\u0442 \u0438 \u0438\u0445 \u043a\u043e\u043f\u0438\u0438, \u0438 \u0432\u0441\u0435 \u043e\u0442\u0432\u0435\u0442\u044b \u043e\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430. 1000 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u2013 \u0434\u0435\u0441\u044f\u0442\u043e\u043a-\u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u044f\u0442 (\u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043f\u043e \u043f\u0443\u0442\u0438 \u0442\u0443\u0434\u0430 \u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u2013 \u043d\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043b\u0441\u044f). \u041f\u0440\u0438 \u043f\u0430\u0447\u043a\u0435 \u0438\u0445 \u0434\u0435\u0441\u044f\u0442\u0438 \u0442\u044b\u0441\u044f\u0447 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0442\u0435\u0440\u044f\u043b\u0430\u0441\u044c \u043f\u0430\u0440\u0430 \u0442\u044b\u0441\u044f\u0447. \u042f \u043d\u0435 \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u043a \u0447\u0435\u043c\u0443. \u042f \u043f\u0440\u043e\u0441\u0442\u043e \u0448\u043b\u044e \u043f\u0430\u0447\u043a\u0430\u043c\u0438 \u043f\u043e 100 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043b\u044f \u043c\u043e\u0438\u0445 \u0437\u0430\u0434\u0430\u0447 \u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u0430\u044f, \u043f\u043e\u0442\u0435\u0440\u0438 \u0440\u0430\u0432\u043d\u044b \u043d\u0443\u043b\u044e. \u0423\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u00ab\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438\u00bb \u041f\u041b\u0418\u0421 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0432\u043e\u0442 \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u044f\u043c\u0438 \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0432\u0441\u0435\u0433\u043e \u0432\u044b\u0448\u0435\u0441\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e:<\/p>\n<pre><code class=\"cpp\">bool bSleepBetween = ui->m_cbSleepBetween->isChecked();     int delta = 10;     if (bSleepBetween)     {         delta = 220;     } \u2026     for (int i=0;i&lt;m_nSendPktCnt;i+=100)     {         pcap_send_queue *squeue = pcap_sendqueue_alloc (10 * 1024 * 1024);          pcap_pkthdr hdr;         memset (&amp;hdr,0,sizeof(hdr));          for (int j=0;((j&lt;100) &amp;&amp; (i+j &lt; m_nSendPktCnt));j++)         {             hdr.caplen = m_dataForSend[i+j].m_totalDataSize;             hdr.len = m_dataForSend[i+j].m_totalDataSize;             hdr.ts.tv_usec += delta;             if (hdr.ts.tv_usec > 1000000)             {                 hdr.ts.tv_usec %= 1000000;                 hdr.ts.tv_sec += 1;             }             pcap_sendqueue_queue (squeue,&amp;hdr,m_dataForSend[i+j].m_pData);         }         pcap_sendqueue_transmit(m_hCardSource, squeue, 1);         \/* free the send queue *\/         pcap_sendqueue_destroy(squeue);     } <\/code><\/pre>\n<p>  <\/p>\n<h2>\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u043e\u043d \u0441 \u043e\u0447\u0435\u0440\u0435\u0434\u044c\u044e<\/h2>\n<p>  \u0421\u0440\u0430\u0432\u043d\u0438\u0442\u0435 \u0432\u0440\u0435\u043c\u044f\u043d\u043a\u0443 \u0441 \u0442\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u0432\u044b\u0448\u0435. \u041e\u043d\u0430 \u0441\u043d\u044f\u0442\u0430 \u0432 \u0442\u043e\u043c \u0436\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435!<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gu\/nq\/wu\/gunqwuvyf99rjrugp9r5ydqeqk4.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gu\/nq\/wu\/gunqwuvyf99rjrugp9r5ydqeqk4.png\"\/> <\/p>\n<p>  \u0412\u043d\u0443\u0448\u0430\u0435\u0442? \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u043c\u0435\u0440\u043e\u0432 (10 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0437\u0430 135 \u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434):<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/0b\/kw\/h1\/0bkwh1fi1q-nhqmdjy43uxiodqu.png\" data-src=\"https:\/\/habrastorage.org\/webt\/0b\/kw\/h1\/0bkwh1fi1q-nhqmdjy43uxiodqu.png\"\/> <\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 75 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443. \u0422\u043e \u0435\u0441\u0442\u044c, 750 \u043c\u0435\u0433\u0430\u0431\u0438\u0442. \u041d\u0435 \u0433\u0438\u0433\u0430\u0431\u0438\u0442, \u043a\u043e\u043d\u0447\u0435\u043d\u043e\u2026 \u041f\u0440\u043e\u0441\u0442\u043e \u0435\u0441\u043b\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u043e\u0442\u043d\u0435\u0439 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0435\u0441\u0442\u044c \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 \u043f\u0430\u0443\u0437\u044b \u043f\u043e 200-300 \u043c\u043a\u0441:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/fz\/gd\/0p\/fzgd0pflvchqgtwxqqpxp7-y5u8.png\" data-src=\"https:\/\/habrastorage.org\/webt\/fz\/gd\/0p\/fzgd0pflvchqgtwxqqpxp7-y5u8.png\"\/> <\/p>\n<p>  \u041d\u043e \u0437\u0430\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0431\u043b\u043e\u043a\u0430 \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/gt\/fl\/zi\/gtflziwmnlo3hqdug3memc63j_s.png\" data-src=\"https:\/\/habrastorage.org\/webt\/gt\/fl\/zi\/gtflziwmnlo3hqdug3memc63j_s.png\"\/> <\/p>\n<p>  \u041f\u043e\u0447\u0442\u0438 \u0432\u0441\u0451 \u0432\u0440\u0435\u043c\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430, \u0442\u043e \u0435\u0441\u0442\u044c, \u0438\u0434\u0451\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e AXIStream! \u041f\u0430\u0447\u043a\u0430 \u0438\u0437 \u0441\u043e\u0442\u043d\u0438 \u0442\u0430\u043a\u0438\u0445 \u0432\u0435\u0449\u0435\u0439 \u043d\u0435 \u0443\u0431\u0438\u0432\u0430\u0435\u0442 \u00ab\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0443\u00bb \u0432 \u041f\u041b\u0418\u0421, \u0430 \u0441\u043e\u0442\u0435\u043d \u0443\u0445\u043e\u0434\u0438\u0442 \u043c\u043d\u043e\u0433\u043e, \u0437\u043d\u0430\u0447\u0438\u0442, \u043d\u0430\u0447\u0435\u0440\u043d\u043e \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e. \u0422\u0430\u043a \u043a\u0430\u043a \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043d\u0435\u0434\u0440\u044f\u044e \u0447\u0443\u0436\u0443\u044e Open Source \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443, \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u043e \u0432\u0441\u0451 \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u0432\u0435\u0440\u043d\u043e.<\/p>\n<h2>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435<\/h2>\n<p>  UDP \u2013 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u043e \u043a\u0430\u043a \u0431\u044b\u0442\u044c \u0441 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438? \u0422\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043d\u0435 \u0432\u044b\u0434\u0430\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u043b \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 LwIP. \u0422\u0430\u043a \u0447\u0442\u043e \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442 \u0438\u0434\u0442\u0438 \u0438 \u044d\u0442\u0438\u043c \u043f\u0443\u0442\u0451\u043c. \u041d\u043e \u043c\u043d\u0435 \u043a\u0430\u043a-\u0442\u043e \u0431\u044b\u043b\u043e \u0433\u0440\u0443\u0441\u0442\u043d\u043e \u0434\u0443\u043c\u0430\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u044f \u043f\u043e\u0442\u0440\u0430\u0447\u0443 \u043d\u0430 \u043e\u0441\u0432\u043e\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u043d\u0435\u044e, \u043a\u043e\u0433\u0434\u0430 \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u044b \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e UDP-\u043f\u0430\u043a\u0435\u0442\u044b, \u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u0434\u0430\u0436\u0435 UDP-\u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b. \u041d\u043e \u043a\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u2013 \u0438\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443. \u0421\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0443\u0447\u0438\u0442\u044c\u0441\u044f. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c LwIP.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u041c\u044b \u043e\u0441\u0432\u043e\u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u0435\u0442\u044c\u044e \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0448\u0442\u0430\u0442\u043d\u044b\u0435 \u0441\u043e\u043a\u0435\u0442\u044b \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0430 \u0447\u0435\u0440\u0435\u0437 \u0440\u0443\u0447\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041f\u043e \u0445\u043e\u0434\u0443 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0434\u0432\u0430 \u0441\u043b\u0443\u0447\u0430\u044f, \u0433\u0434\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0439\u043d\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u043c\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 LwIP (\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u0430).<\/p>\n<p>  \u041f\u0440\u043e\u0435\u043a\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0432\u0441\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u044b \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0437\u0434\u0435\u0441\u044c: <a href=\"https:\/\/github.com\/Grovety\/Test-Colorlight-Ethernet\" rel=\"nofollow noopener noreferrer\">Grovety\/Test-Colorlight-Ethernet: Qt project to test functionality of verilog-ethernet project on Colorlight 5A-75B board (github.com)<\/a><\/p>\n<h2>\u0421\u043e\u0446\u0438\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u0440\u043e\u0441<\/h2>\n<p>  \u041f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0442\u0435\u043c\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043c\u0430\u043b\u043e \u043a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u043e\u044f\u0437\u043d\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435, \u043d\u0435 \u0432\u044b\u044f\u0441\u043d\u0438\u0432, \u0430 \u043d\u0443\u0436\u043d\u043e \u043b\u0438 \u044d\u0442\u043e \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438. \u0421 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439 \u0432\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e. \u042f \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u0431\u0443\u0434\u0443 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0435\u0451 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c \u043f\u043e \u043c\u0435\u0440\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0443 \u043d\u0438\u0445. \u041f\u043b\u044e\u0441 \u044f \u0443\u0436\u0435 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0432\u0441\u043f\u043e\u043c\u0438\u043d\u0430\u043b, \u0447\u0442\u043e \u043a \u0447\u0435\u043c\u0443, \u043a\u043e\u0433\u0434\u0430 \u0434\u0435\u043b\u0430\u043b \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u00ab\u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438\u00bb. \u0422\u0430\u043a \u0447\u0442\u043e \u044f \u0441\u0430\u043c \u0436\u0435 \u0447\u0435\u0440\u0435\u0437 \u0433\u043e\u0434 \u0431\u0443\u0434\u0443 \u0435\u0451 \u0447\u0438\u0442\u0430\u0442\u044c.<\/p>\n<p>  \u041d\u043e \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0441\u0435\u0442\u044c\u044e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u2013 \u043c\u0430\u043b\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0432\u0435\u0449\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0437\u043d\u0430\u0442\u044c, \u0440\u0430\u0431\u043e\u0442\u0430\u044f \u043d\u0430\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c. \u041c\u044b \u043e\u0441\u0432\u043e\u0438\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u041f\u041b\u0418\u0421 Lattice. \u0421\u0430\u043c\u043e \u043f\u043e \u0441\u0435\u0431\u0435 \u044d\u0442\u043e \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u043d\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442. \u041d\u0443 \u041f\u041b\u0418\u0421 \u0438 \u041f\u041b\u0418\u0421, \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c, \u0447\u0435\u0433\u043e \u0442\u0430\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e? \u0410 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0442\u0430\u043c \u0442\u043e, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0435\u0434\u0451\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0441\u0430\u043c\u044b\u0445 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 Open Source \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0438 \u0442\u0430\u043a\u0438\u0435! \u041d\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u044d\u0442\u0438\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0432 \u0432\u0438\u0434\u0443 \u043a\u0443\u0447\u043a\u0443 \u043d\u044e\u0430\u043d\u0441\u043e\u0432. \u0418\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c.<\/p>\n<p>  \u041d\u043e \u0438 \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0432\u0441\u0451. \u0422\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043c\u0435\u043d\u044f \u0443\u0434\u0440\u0443\u0447\u0430\u0435\u0442 \u0434\u043e\u043b\u0433\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u041b\u0438\u043d\u0443\u043a\u0441\u0430. \u041d\u043e \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0442\u0435 \u0441\u0430\u043c\u044b\u0435 Open Source \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u043f\u043e\u0434 Windows. \u041d\u0435 \u0432 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 \u041b\u0438\u043d\u0443\u043a\u0441\u0430 \u043f\u043e\u0434 Windows, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0434 Windows. \u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u0441\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u043e\u0440\u043a\u0438 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043c\u043d\u0435 \u043f\u043e\u0443\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c. \u041e\u043d \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u043a\u0440\u0443\u0433\u043e\u0437\u043e\u0440 \u043f\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044e \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043e\u043a. <\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a \u043f\u043e\u0434\u043a\u0438\u043d\u0443\u043b \u043d\u0430\u043c \u043c\u0430\u0440\u043a\u0443 \u043c\u0430\u043a\u0435\u0442\u043d\u044b\u0445 \u043f\u043b\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043f\u043e \u043a\u0430\u043a\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u0441\u0442\u043e\u044f\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0451\u0448\u0435\u0432\u043e. \u041e\u0447\u0435\u043d\u044c \u0434\u0451\u0448\u0435\u0432\u043e. \u041d\u043e \u043f\u0440\u043e\u0434\u0430\u044e\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u0430\u0432\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0434\u0435\u043c\u043f\u0438\u043d\u0433. \u0421\u0435\u0431\u0435 \u044f \u0443\u0436\u0435 \u0432\u0437\u044f\u043b \u0442\u0440\u0438 \u0448\u0442\u0443\u043a\u0438 \u043e\u0442 \u0436\u0430\u0434\u043d\u043e\u0441\u0442\u0438, \u0445\u043e\u0442\u044c \u0435\u0441\u0442\u044c \u0442\u0430\u043c \u0438 \u043d\u044e\u0430\u043d\u0441\u044b. \u041f\u0440\u043e \u043d\u0438\u0445 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c.<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0451 \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u0432 \u0432\u0438\u0434\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439. \u041d\u043e \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e? \u0415\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u043d\u0435 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435, \u0430 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0447\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435.<\/p><\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/articles\/585368\/\"> https:\/\/habr.com\/ru\/articles\/585368\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\u0420\u0430\u0431\u043e\u0442\u043e\u0439 \u0441 \u0441\u0435\u0442\u044c\u044e \u0432 \u043d\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0443\u0434\u0438\u0432\u0438\u0448\u044c. \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u0437\u043d\u0430\u044e, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0441\u043e\u043a\u0435\u0442\u0430\u043c\u0438 \u043d\u044b\u043d\u0447\u0435 \u043e\u0431\u0443\u0447\u0430\u044e\u0442 \u0443\u0436\u0435 \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u043a\u0443\u0440\u0441\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0435\u0439. \u0422\u0430\u043a \u0447\u0442\u043e \u0432 \u0446\u0435\u043b\u043e\u043c, \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043d\u0430\u0432\u044b\u043a\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443 \u043c\u043d\u043e\u0433\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432. \u041d\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0441\u0435\u0442\u044c\u044e, \u0430 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441 \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438, \u0431\u0443\u0434\u044c \u0442\u043e \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438 \u043b\u0438\u0431\u043e \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435. \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0440\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u043d\u0435 \u043e \u043f\u043e\u0432\u0441\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438, \u0430 \u043e\u0431 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u043b\u0438\u0431\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 Pcap-\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0435\u0440\u0435\u0437 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 Npcap, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 Wireshark.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/pk\/xi\/ff\/pkxiffu_bhx0jqsgymqxaapxnty.png\" data-src=\"https:\/\/habrastorage.org\/webt\/pk\/xi\/ff\/pkxiffu_bhx0jqsgymqxaapxnty.png\"\/><\/p>\n<p>  \u0412 \u0446\u0435\u043b\u043e\u043c, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u043d\u0430\u0439\u0434\u0451\u0442\u0441\u044f \u043c\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u044e\u0442, \u043a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u044f \u043e\u043f\u0440\u043e\u0441\u0438\u043b \u0441\u0432\u043e\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u0433 \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u043e \u043d\u0451\u043c \u0437\u043d\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e\u0442, \u043a\u0442\u043e \u043c\u043d\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b, \u0434\u0430 \u0438 \u0442\u043e\u0442 \u0443\u0436\u0435 \u0437\u0430\u0431\u044b\u043b \u0432\u0441\u0435 \u0434\u0435\u0442\u0430\u043b\u0438. \u041e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442 \u0432\u044b\u0434\u0430\u043b \u0438 \u0441\u043a\u0430\u0437\u0430\u043b, \u043c\u043e\u043b, \u0434\u0435\u043b\u0430\u0439 \u043f\u043e \u043e\u0431\u0440\u0430\u0437\u0443 \u0438 \u043f\u043e\u0434\u043e\u0431\u0438\u044e. \u0418 \u043a \u0443\u0436\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c, \u0438\u043c\u0435\u044e\u0449\u0438\u043c\u0441\u044f \u0442\u0430\u043c, \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043a\u043e\u0435-\u0447\u0442\u043e \u0438\u0441\u043a\u0430\u0442\u044c \u0435\u0449\u0451 \u0432 \u0441\u0435\u0442\u0438.<\/p>\n<p>  \u0412 \u043e\u0431\u0449\u0435\u043c, \u0434\u0443\u043c\u0430\u044e, \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u0441\u0432\u0435\u0441\u0442\u0438 \u0432\u0441\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u043e\u0435\u0434\u0438\u043d\u043e. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u2013 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c!   <\/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-403580","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/403580","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=403580"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/403580\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=403580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=403580"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=403580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}