{"id":10190,"date":"2021-02-17T09:42:07","date_gmt":"2021-02-17T08:42:07","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=10190"},"modified":"2023-10-24T18:28:51","modified_gmt":"2023-10-24T16:28:51","slug":"problem-ukrytych-stacji-w-sieciach-wifi-a-wydajnosc-czyli-dlaczego-czasem-wifi-dziala-bardzo-wolno","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/problem-ukrytych-stacji-w-sieciach-wifi-a-wydajnosc-czyli-dlaczego-czasem-wifi-dziala-bardzo-wolno\/","title":{"rendered":"Problem ukrytych stacji w sieciach WiFi a wydajno\u015b\u0107, czyli dlaczego czasem WiFi dzia\u0142a bardzo wolno"},"content":{"rendered":"\n<p>Jednym z najszybciej rozwijaj\u0105cych si\u0119 standard\u00f3w w telekomunikacji (pomijaj\u0105c 5G) jest IEEE 802.11. <\/p>\n\n\n\n<p>Pierwszy standard zosta\u0142 opublikowany w 1997 roku, nazwany po prostu 802.11 (czasem zwany 802.1y) przez IEEE LAN\/MAC Standards Committee, a do dnia dzisiejszego powsta\u0142o kilkadziesi\u0105t jego rozszerze\u0144. Powszechnie przyj\u0119\u0142o si\u0119 jednak nazywanie standardu 802.11 jako WiFi, a zamiast rozszerzenia 802.11ax u\u017cywa si\u0119 po prostu nazwy WiFi 6. Niekt\u00f3re typy sieci WiFi zyska\u0142y r\u00f3wnie\u017c swoja popularno\u015b\u0107 ze wzgl\u0119du na brak infrastruktury (sieci ad-hoc, zdecentralizowane lub tymczasowe). Dodatkowo zalet\u0105 takich sieci jest prostota jej konfiguracji, nawet dla ca\u0142kowitych laik\u00f3w, w kontra\u015bcie do sieci zarz\u0105dzanych, gdzie sama konfiguracja punktu dost\u0119powego oraz pojedynczego terminala (urz\u0105dzenia ko\u0144cowego np. komputera) wymaga specjalistycznej wiedzy. Brak jednostki centralnej (zarz\u0105dzaj\u0105cej) powoduje wymuszenie na sieci samoorganizacji. W zwi\u0105zku z tym, wprowadzono funkcje DCF (Distributed Coordination Function) w warstwie \u0142\u0105cza danych MAC (Medium Access Control). Jednak zastosowanie w funkcji DCF mechanizm\u00f3w wielodost\u0119pu CSMA\/CA (Carrier Sense Multiple Access\/Collision Avoidance) do unikania kolizji, nie rozwi\u0105zuje problemu stacji ukrytych.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PROBLEM STACJI UKRYTYCH<\/h2>\n\n\n\n<p>W lokalnych sieciach bezprzewodowych mo\u017cliwe jest wysy\u0142anie wiadomo\u015bci tylko w jednym kierunku w jednym czasie (half-duplex). Podczas pr\u00f3by transmisji symultanicznej nast\u0119puje kolizja. W takich sytuacjach wydajno\u015b\u0107 sieci spada. Dlatego, aby poprawi\u0107 wydajno\u015b\u0107, wprowadzono mechanizm obustronnego potwierdzania transmisji opartego na wymianie ramek kontrolnych RTS\/CTS (Request to Send\/Clear to Send). Mechanizm ten znacznie zmniejsza ilo\u015b\u0107 kolizji w sieci, jednak w sieciach g\u0119stych, w kt\u00f3rych stacji jest bardzo du\u017co, mechanizm ten jest niewydajny. Lepszym sposobem jest stosowanie zmiennego poziomu wykrywania no\u015bnej. Powoduje to celowe ukrywanie stacji (CCA (Clear Channel Assessment) (w dalszej cz\u0119\u015bci artyku\u0142u zostanie opisane jak to wyp\u0142ywa na wydajno\u015b\u0107). Sp\u00f3jrzmy na rysunek 1, by lepiej zrozumie\u0107 problem stacji ukrytych.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/zdjecia-na-bloga.png\"><img decoding=\"async\" width=\"840\" height=\"681\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/zdjecia-na-bloga.png\" alt=\"Sie\u0107 z w\u0119z\u0142ami ukrytymi dla dw\u00f3ch poziom\u00f3w wykrywania no\u015bnej\" class=\"wp-image-10194\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/zdjecia-na-bloga.png 840w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/zdjecia-na-bloga-300x243.png 300w\" sizes=\"(max-width: 840px) 100vw, 840px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc. 1 Sie\u0107 z w\u0119z\u0142ami ukrytymi dla dw\u00f3ch poziom\u00f3w wykrywania no\u015bnej<\/figcaption><\/figure>\n\n\n\n<p>W przypadku A, stacja STA1 i STA3 znajduj\u0105 si\u0119 w zasi\u0119gu wykrywania stacji STA2, natomiast STA4 jest poza zasi\u0119giem. Analogicznie dla stacji STA3, STA2 i STA4 znajduj\u0105 si\u0119 w zasi\u0119gu, a STA1 jest poza zasi\u0119giem. W sieci tej zrealizowano transmisj\u0119 STA4 \u2192 STA3 oraz r\u00f3wnocze\u015bnie STA2 \u2192 STA3.<\/p>\n\n\n\n<p>Nast\u0105pi\u0142a kolizja, poniewa\u017c transmisja STA4 \u2192 STA3 nie by\u0142a widoczna dla stacji STA2, kt\u00f3ra r\u00f3wnie\u017c podj\u0119\u0142a pr\u00f3b\u0119 transmisji do stacji STA3. Wyst\u0105pi\u0107 mo\u017ce r\u00f3wnie\u017c przypadek, w kt\u00f3rym ma miejsce transmisja STA4 \u2192 STA3 oraz r\u00f3wnocze\u015bnie transmisja STA1 \u2192 STA2. Poniewa\u017c stacja STA2 nie widzi transmisji STA4 \u2192 STA3, a stacja STA3 nie widzi transmisji STA1 \u2192 STA2, obie transmisje s\u0105 zrealizowane w spos\u00f3b poprawny. W celu unikni\u0119cia sytuacji pierwszej wprowadzono mechanizm four-way-handshake oparty na wymianie ramek RTS\/CTS (wspomniany wcze\u015bniej). Stosuj\u0105c ten mechanizm, stacja STA4 przed rozpocz\u0119ciem transmisji nadaje ramk\u0119 rezerwacji kana\u0142u RTS do stacji STA3. Stacja STA3 wysy\u0142a ramk\u0119 potwierdzenia rezerwacji CTS do STA4 oraz STA2. W tym momencie STA2 nie mo\u017ce transmitowa\u0107 danych do stacji STA3, poniewa\u017c nie zosta\u0142o przyznane jej prawo do nadawania.<\/p>\n\n\n\n<p>Innym mechanizmem umo\u017cliwiaj\u0105cym wykrywanie mo\u017cliwo\u015bci zaistnienia kolizji jest regulacja poziomu wykrywania no\u015bnej. Na rys. 1. zosta\u0142y umieszczone obszary A oraz B. Oznaczaj\u0105 one r\u00f3\u017cne warto\u015bci poziomu wykrywania no\u015bnej. W sytuacji, gdy stacja STA2 ma ustawiony poziom wykrywania no\u015bnej na przypadek B, wtedy stacja STA4 znajduje si\u0119 w zasi\u0119gu stacji STA2, dzi\u0119ki czemu stacje nie s\u0105 wzajemnie dla siebie ukryte. W\u00f3wczas podczas wykonania transmisji STA4 \u2192 STA3, stacja STA2 nie podejmie pr\u00f3by wykonania transmisji STA2 \u2192 STA3. Wykonanie tej transmisji w przypadku B b\u0119dzie bardziej efektywne, ni\u017c wykonanie transmisji z mechanizmem four-way-handshake, poniewa\u017c zmniejszony zostanie narzut protoko\u0142u. Niemniej jednak w przypadku B pojawia si\u0119 inne zestawienie stacji ukrytych STA1 oraz STA4. W tej sytuacji jakakolwiek pr\u00f3ba nawi\u0105zania po\u0142\u0105czenia przez stacje STA1 spowoduje kolizj\u0119 z transmisj\u0105 STA4 \u2192 STA3. Poza tym nie mo\u017cliwe b\u0119dzie zrealizowanie transmisji STA4 \u2192 STA3 i STA1 \u2192 STA2 r\u00f3wnocze\u015bnie. Jest to spowodowane tym, \u017ce zwi\u0119kszenie lub zmniejszenie poziomu no\u015bnej nie zawsze powoduje oczekiwany wzrost og\u00f3lnej wydajno\u015b\u0107 pracy sieci. Zwi\u0119kszenie poziomu wykrywania no\u015bnej zawsze zmniejsza liczb\u0119 kolizji, poniewa\u017c zmniejsza relatywn\u0105 liczb\u0119 stacji ukrytych.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">WYDAJNO\u015a\u0106<\/h2>\n\n\n\n<p>W celu sprawdzenia wp\u0142ywu stacji ukrytych oraz zmian poziomu no\u015bnej na wydajno\u015b\u0107 w sieci sporz\u0105dza si\u0119 symulacje. Aby lepiej to zrozumie\u0107 zapoznajmy si\u0119 z poni\u017cszym rysunkiem.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/2-e1613405309601.png\"><img decoding=\"async\" width=\"481\" height=\"602\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/2-e1613405309601.png\" alt=\"opologia u\u017cyta w celu zbadania wydajno\u015bci\" class=\"wp-image-10195\"\/><\/a><figcaption class=\"wp-element-caption\">Ryc. 2 Topologia u\u017cyta w celu zbadania wydajno\u015bci.<\/figcaption><\/figure>\n\n\n\n<p>W topologii znajduje si\u0119 9 stacji ustawionych w linii oddalonych od siebie o 20m. Przyk\u0142adem takiej sieci jest sie\u0107 kratowa (mesh). Potencjalny zasi\u0119g sieci WLAN to 100m, natomiast w tym przypadku zastosowano t\u0142umienia kana\u0142u jednorodne. Symulacje zosta\u0142y sporz\u0105dzone za pomoc\u0105 \u015brodowiska symulacyjnego NS-3 w wersji 3.21. Stacje zosta\u0142y skonfigurowane tak, aby generowa\u0142y ruch UDP w klasie Best effort. Sie\u0107 samoorganizuje si\u0119 ad-hoc, co powoduje \u017ce nie ma jednostki zarz\u0105dzaj\u0105cej. Ka\u017cda stacja transmituje ramki o d\u0142ugo\u015bci 1kB bezpo\u015brednio do swojego s\u0105siada. Sie\u0107 dzia\u0142a w konfiguracji maksymalnej pr\u0119dko\u015bci 54Mb\/s. Moc stacji zosta\u0142a ustawiona na 10dBm (10mW czyli 10% mocy maksymalnej). Aby zobrazowa\u0107 wp\u0142yw ro\u017cnych mechanizm\u00f3w, przeprowadzono symulacje dla 4 poziom\u00f3w wykrywania no\u015bnej. W ka\u017cdym kroku symulacji zwi\u0119kszany by\u0142 ruch oferowany poprzez stacje a\u017c do poziomu nasycenia sieci. Poni\u017cej widzimy tabel\u0119 przedstawiaj\u0105c\u0105 poziomy t\u0142umienia pomi\u0119dzy stacjami w dB.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/3-e1613405426491.png\"><img decoding=\"async\" width=\"300\" height=\"269\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/3-300x269.png\" alt=\"\" class=\"wp-image-10196\"\/><\/a><\/figure>\n\n\n\n<p>Nast\u0119pnie mo\u017cemy zapozna\u0107 si\u0119 z wykresami ruchu realizowanego w funkcji ruchu oferowanego dla ka\u017cdej z 9 stacji z wy\u0142\u0105czonym mechanizmem RTS\/CTS dla CCA r\u00f3wnym a)-71 dBm; b)-74 dBm; c) -77 dBm; d) -80 dBm.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/4-e1613405446261.png\"><img decoding=\"async\" width=\"840\" height=\"434\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/4-e1613405446261.png\" alt=\"\" class=\"wp-image-10197\"\/><\/a><\/figure>\n\n\n\n<p>Z powy\u017cszych wynik\u00f3w symulacji wynika, \u017ce dla stacji STA1 oraz STA2 nasycenie zostaje osi\u0105gni\u0119te znacznie p\u00f3\u017aniej, poniewa\u017c maj\u0105 tylko jednego bezpo\u015bredniego s\u0105siada. Natomiast mo\u017cna zauwa\u017cy\u0107 bezpo\u015bredni\u0105 korelacj\u0119 pomi\u0119dzy po\u0142o\u017ceniem stacji w sieci, a jej wydajno\u015bci\u0105 (stacje o identycznym oddaleniu od stacji \u015brodkowej STA5 charakteryzuj\u0105 si\u0119 podobn\u0105 wydajno\u015bci\u0105). Dodatkowo, w zale\u017cno\u015bci od poziomu wykrywania no\u015bnej zmieniaj\u0105 si\u0119 stacje o najwi\u0119kszej oraz najmniejszej wydajno\u015bci. Niemniej jednak, najwa\u017cniejsza powinna by\u0107 wydajno\u015b\u0107 ca\u0142ej sieci.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/5-e1613405502184.png\"><img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/5-e1613405474708.png\" alt=\"\" class=\"wp-image-10198\"\/><\/a><figcaption class=\"wp-element-caption\">Ryc. 3 Wykres ruchu realizowanego w funkcji ruchu oferowanego w sieci z w\u0142\u0105czonym i wy\u0142\u0105czonym mechanizmem RTS\/CTS<\/figcaption><\/figure>\n\n\n\n<p>Na rysunku 3. przedstawiono wydajno\u015b\u0107 ca\u0142ej sieci. Najmniejsz\u0105 wydajno\u015b\u0107 sie\u0107 osi\u0105ga\u0142a w przypadku z wy\u0142\u0105czonym mechanizmem RTS\/CTS i poziomem wykrywania no\u015bnej -70 dBm i wynosi\u0142a ona oko\u0142o 40 Mb\/s w stanie nasycenia. W tej sytuacji, wyst\u0119puje najwi\u0119ksza liczba stacji ukrytych w ca\u0142ej sieci. Uruchomienie mechanizmu RTS\/CTS poprawi\u0142o wydajno\u015b\u0107 sieci a\u017c o 25% (do 50 Mb\/s). Przypadkiem, w kt\u00f3rym wyst\u0119puje najwi\u0119ksza wydajno\u015b\u0107 sieci, jest przypadek z poziomem wykrywania no\u015bnej -74 dBm i wy\u0142\u0105czonym mechanizmem RTS\/CTS. Zwi\u0119kszenie poziomu wykrywania no\u015bnej o 4 dB poprawi\u0142o wydajno\u015b\u0107 sieci o 15 Mb\/s (ponad 30%).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PODSUMOWANIE<\/h2>\n\n\n\n<p>Znajomo\u015bci problemu stacji ukrytych oraz \u015bwiadomo\u015b\u0107 jak sobie z nim radzi\u0107, jest niezmiernie istotne dla sieci WLAN. Cz\u0119sto bywa tak, \u017ce w mieszkaniach w blokach mieszkalnych wydajno\u015b\u0107 sieci WLAN drastycznie spada, ze wzgl\u0119du na kolizje i \u017ale skonfigurowane sieci. Dlatego aby podnie\u015b\u0107 wydajno\u015b\u0107 sieci mo\u017cna:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zmieni\u0107 kana\u0142 naszej sieci<\/li>\n\n\n\n<li>Zmieni\u0107 moc naszego access pointa (routera)<\/li>\n<\/ul>\n\n\n\n<p>Nie ma jednak jednoznacznej odpowiedzi czy zwi\u0119kszy\u0107 czy zmniejszy\u0107 moc. Niemal ka\u017cdy przypadek sieci wifi jest unikatowy. Pomieszczenia maja ro\u017cny kszta\u0142t, \u015bciany s\u0105 z r\u00f3\u017cnych materia\u0142\u00f3w itp. Ka\u017cdy taki obiekt lub nawet ustawienie naszego access pointa ma bezpo\u015bredni wp\u0142yw na warunki propagacyjne fali radiowej. Dlatego nale\u017cy eksperymentowa\u0107 z ustawieniami mocy. Kolejnym wa\u017cnym krokiem jest zaobserwowanie jakie inne sieci s\u0105 dla nas widoczne oraz na jakich kana\u0142ach s\u0105 one ustawione. Mo\u017cna do tego wykorzysta\u0107 aplikacje na system android WiFi Analyzer. Po ustaleniu, kt\u00f3ry kana\u0142 jest najmniej ob\u0142o\u017cony sieciami ustawi\u0107 nasz router w\u0142a\u015bnie na taki kana\u0142. Dzi\u0119ki temu nasze urz\u0105dzenia b\u0119d\u0105 rywalizowa\u0142y o dost\u0119p do danej cz\u0119stotliwo\u015bci pracy sieci ze znacznie mniejsz\u0105 ilo\u015bci\u0105 obcych urz\u0105dze\u0144.<\/p>\n\n\n\n<p>Ze wzgl\u0119du na cz\u0119st\u0105 prace zdaln\u0105, spadki wydajno\u015bci s\u0105 aktualnie powszechnie obserwowane, dlatego mo\u017cna zadba\u0107 samodzielnie o wzrost wydajno\u015bci swojej sieci, a co za tym idzie r\u00f3wnie\u017c jako\u015bci pracy.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;10190&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;6&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;4.7&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;4.7\\\/5 ( votes: 6)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Problem ukrytych stacji w sieciach WiFi a wydajno\u015b\u0107, czyli dlaczego czasem WiFi dzia\u0142a bardzo wolno&quot;,&quot;width&quot;:&quot;130.8&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 130.8px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            4.7\/5 ( votes: 6)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Jednym z najszybciej rozwijaj\u0105cych si\u0119 standard\u00f3w w telekomunikacji (pomijaj\u0105c 5G) jest IEEE 802.11. Pierwszy standard zosta\u0142 opublikowany w 1997 roku, &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/problem-ukrytych-stacji-w-sieciach-wifi-a-wydajnosc-czyli-dlaczego-czasem-wifi-dziala-bardzo-wolno\/\">Continued<\/a><\/p>\n","protected":false},"author":272,"featured_media":10212,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1314],"tags":[563,1000,1001,998,999,1002],"class_list":["post-10190","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-embedded","tag-ieee-802-11","tag-mesh","tag-wifi","tag-wifi-6","tag-wlan"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2021\/02\/WIFI.png","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/10190"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/272"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=10190"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/10190\/revisions"}],"predecessor-version":[{"id":25216,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/10190\/revisions\/25216"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/10212"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=10190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=10190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=10190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}