{"id":33,"date":"2017-03-02T08:41:15","date_gmt":"2017-03-02T08:41:15","guid":{"rendered":"http:\/\/www.web-workers.ch\/?p=33"},"modified":"2017-06-23T07:09:18","modified_gmt":"2017-06-23T07:09:18","slug":"how-to-capture-tcp-retransmissions-on-linux","status":"publish","type":"post","link":"https:\/\/www.web-workers.ch\/index.php\/2017\/03\/02\/how-to-capture-tcp-retransmissions-on-linux\/","title":{"rendered":"How to capture TCP retransmissions on Linux"},"content":{"rendered":"<p>You are probably experiencing perfomance issues during file transfers on a Linux box and you would like to find out if there are some network issues recognized. \u00a0First you may want to find out if there are a\u00a0lot of re-transmissions during transfers.<\/p>\n<h1>Produce Data<\/h1>\n<p>Write data to the destination you experience performance issues with, create a small script for that. You may want to use java jcifs to transfer files. See below an example of jcifs_copy.sh<\/p>\n<blockquote><p><span style=\"font-size: 8pt;\"><span style=\"font-family: courier new,courier,monospace;\">#!\/bin\/bash<br \/>\n<\/span><span style=\"font-family: courier new,courier,monospace;\"> COUNTERSTART=1<\/span><\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> COUNTEREND=50<\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> TARGET=\/\/storso11\/nas1001<\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> USERNAME=user<\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> PASSWORD=pass<\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> FILE=\/\/opt\/sybase\/12.5.4\/ASE-12_5\/bin\/dataserver<\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> LOGFILE=\/logs\/$(basename $0)<\/span><\/p>\n<p><span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\">date &gt; ${LOGFILE}<br \/>\n<\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> while [\u00a0 ${COUNTERSTART} -le ${COUNTEREND} ]; do<\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> \u00a0\u00a0echo Run: <span style=\"font-family: Courier New;\">${COUNTERSTART}<\/span><\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> \u00a0\u00a0java -Djcifs.smb.client.useExtendedSecurity=0 -Djcifs.smb.lmCompatibility=0 -cp \/local\/flamingo\/lib\/ext\/jcifs.jar NasWriteTest smb:${TARGET} ${USERNAME} ${PASSWORD} ${FILE} &gt;&gt; ${LOGFILE}<\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> \u00a0 let <span style=\"font-family: Courier New;\">COUNTERSTART<\/span>=<span style=\"font-family: Courier New;\">${COUNTERSTART}<\/span>+1<\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> \u00a0 sleep 5<\/span><br \/>\n<span style=\"font-family: 'courier new', courier, monospace; font-size: 8pt;\"> done<\/span><\/p><\/blockquote>\n<p>In case you have mounted a network share, you may want to use the dd command (press CTRL-C to abort and to see the results) to generate data.<\/p>\n<p><code># dd if=\/dev\/urandom of=testfileR bs=8k count=10000; sync;<br \/>\n<\/code><code> # dd if=\/dev\/urandom of=testfileR bs=8k count=10000; sync;<\/code><\/p>\n<h1>Capture ReTransmissions<\/h1>\n<div>\n<h3>By using tshark<\/h3>\n<p>Hint: Make sure you have tshark installed, if you haven&#8217;t, install it by executing following command<br \/>\n<code># yum install wireshark<br \/>\n<\/code><code>Loaded plugins: fastestmirror, langpacks<\/code><code>Loading mirror speeds from cached hostfile<\/code><code> * base: mirror.switch.ch<\/code><code> * epel: mirror.23media.de<\/code><code> * extras: mirror.switch.ch<\/code><code> * updates: mirror.switch.ch<\/code><code>Resolving Dependencies<\/code><code>--&gt; Running transaction check<\/code><code>---&gt; Package wireshark.x86_64 0:1.10.14-10.el7 will be installed<\/code><code>--&gt; Processing Dependency: libsmi.so.2()(64bit) for package: wireshark-1.10.14-10.el7.x86_64<\/code><code>--&gt; Processing Dependency: libcares.so.2()(64bit) for package: wireshark-1.10.14-10.el7.x86_64<\/code><code>--&gt; Running transaction check<\/code><code>---&gt; Package c-ares.x86_64 0:1.10.0-3.el7 will be installed<\/code><code>---&gt; Package libsmi.x86_64 0:0.4.8-13.el7 will be installed<\/code><code>--&gt; Finished Dependency Resolution<\/code><code>Dependencies Resolved<\/code><code>=================================================================================================<\/code><code> Package Arch Version Repository Size<\/code><code>=================================================================================================<\/code><code>Installing:<\/code><code> wireshark x86_64 1.10.14-10.el7 base 13 M<\/code><code>Installing for dependencies:<\/code><code> c-ares x86_64 1.10.0-3.el7 base 78 k<\/code><code> libsmi x86_64 0.4.8-13.el7 base 2.3 M<\/code><code>Transaction Summary<\/code><code>=================================================================================================<\/code><code>Install 1 Package (+2 Dependent packages)<\/code><code>Total download size: 15 M<\/code><code>Installed size: 83 M<\/code><code>Is this ok [y\/d\/N]: y<\/code><code>Downloading packages:<\/code><code>(1\/3): c-ares-1.10.0-3.el7.x86_64.rpm | 78 kB 00:00:00<\/code><code>(2\/3): libsmi-0.4.8-13.el7.x86_64.rpm | 2.3 MB 00:00:01<\/code><code>(3\/3): wireshark-1.10.14-10.el7.x86_64.rpm | 13 MB 00:00:02<\/code><code>--------------------------------------------------------------------------------------------------------------------------------------------<\/code><code>Total 5.6 MB\/s | 15 MB 00:00:02<\/code><code>Running transaction check<\/code><code>Running transaction test<\/code><code>Transaction test succeeded<\/code><code>Running transaction<\/code><code> Installing : c-ares-1.10.0-3.el7.x86_64 1\/3<\/code><code> Installing : libsmi-0.4.8-13.el7.x86_64 2\/3<\/code><code> Installing : wireshark-1.10.14-10.el7.x86_64 3\/3<\/code><code> Verifying : libsmi-0.4.8-13.el7.x86_64 1\/3<\/code><code> Verifying : c-ares-1.10.0-3.el7.x86_64 2\/3<\/code><code> Verifying : wireshark-1.10.14-10.el7.x86_64 3\/3<\/code><code>Installed:<\/code><code> wireshark.x86_64 0:1.10.14-10.el7<\/code><code>Dependency Installed:<\/code><code> c-ares.x86_64 0:1.10.0-3.el7 libsmi.x86_64 0:0.4.8-13.el7<\/code><code>Complete!<\/code><\/p>\n<p>Collect data and show statistics at the end:<br \/>\n<code># tshark -q -z io,stat,30,\"COUNT(tcp.analysis.retransmission) tcp.analysis.retransmission\"<\/code><\/p>\n<p>Realtime output of source and destination<br \/>\n<code># tshark\u00a0-R tcp.analysis.retransmission<\/code><\/p>\n<p>Record all data into a binary file:<br \/>\n<code># tshark -i bond0 -w \/temp_data\/test.pcap -F libpcap<\/code><\/p>\n<p>View detailed output:<br \/>\n<code># tshark -r \/temp_data\/test.pcap -q -z io,stat,1,\\<br \/>\n&gt; \"COUNT(tcp.analysis.retransmission) tcp.analysis.retransmission\",\\<br \/>\n&gt; \"COUNT(tcp.analysis.duplicate_ack)tcp.analysis.duplicate_ack\",\\<br \/>\n&gt; \"COUNT(tcp.analysis.lost_segment) tcp.analysis.lost_segment\",\\<br \/>\n&gt; \"COUNT(tcp.analysis.fast_retransmission) tcp.analysis.fast_retransmission\"<\/code><\/p>\n<p>Sample output:<br \/>\n<code>===================================================================<br \/>\nIO Statistics<br \/>\nInterval: 1.000 secs<br \/>\nColumn #0: COUNT(tcp.analysis.retransmission) tcp.analysis.retransmission<br \/>\nColumn #1: COUNT(tcp.analysis.duplicate_ack)tcp.analysis.duplicate_ack<br \/>\nColumn #2: COUNT(tcp.analysis.lost_segment) tcp.analysis.lost_segment<br \/>\nColumn #3: COUNT(tcp.analysis.fast_retransmission) tcp.analysis.fast_retransmission<br \/>\n| Column #0 | Column #1 | Column #2 | Column #3<br \/>\nTime | COUNT | COUNT | COUNT | COUNT<br \/>\n000.000-001.000 0 0 2 0<br \/>\n001.000-002.000 0 0 0 0<br \/>\n002.000-003.000 0 0 0 0<br \/>\n003.000-004.000 0 0 0 0<br \/>\n004.000-005.000 0 0 0 0<br \/>\n005.000-006.000 0 0 0 0<br \/>\n006.000-007.000 0 0 0 0<br \/>\n007.000-008.000 0 0 0 0<br \/>\n008.000-009.000 0 0 0 0<br \/>\n009.000-010.000 0 0 0 0<br \/>\n010.000-011.000 0 0 0 0<br \/>\n011.000-012.000 0 0 0 0<br \/>\n012.000-013.000 0 0 0 0<br \/>\n013.000-014.000 0 0 0 0<br \/>\n014.000-015.000 5 56 6 5<br \/>\n015.000-016.000 7 46 4 4<br \/>\n016.000-017.000 9 30 5 3<br \/>\n017.000-018.000 6 51 6 6<br \/>\n018.000-019.000 4 54 4 4<br \/>\n019.000-020.000 1 24 0 1<br \/>\n020.000-021.000 0 0 6 0<br \/>\n021.000-022.000 0 0 16 0<br \/>\n022.000-023.000 4 21 8 4<br \/>\n023.000-024.000 14 0 1 0<br \/>\n024.000-025.000 25 17 3 1<br \/>\n025.000-026.000 0 0 4 0<br \/>\n026.000-027.000 21 19 11 2<br \/>\n027.000-028.000 34 27 5 3<br \/>\n028.000-029.000 3 34 3 3<br \/>\n029.000-030.000 3 36 9 3<br \/>\n030.000-031.000 0 0 7 0<br \/>\n031.000-032.000 23 5 2 1<br \/>\n032.000-033.000 0 0 0 0<br \/>\n033.000-034.000 3 30 3 3<br \/>\n034.000-035.000 1 3 2 1<br \/>\n035.000-036.000 14 47 4 4<br \/>\n036.000-037.000 2 29 4 2<br \/>\n037.000-038.000 1 20 2 1<br \/>\n038.000-039.000 0 0 0 0<br \/>\n039.000-040.000 0 0 0 0<br \/>\n===================================================================<\/code><\/p>\n<h3>By using netstat<\/h3>\n<p>Get statistics about retransmissions<br \/>\n<code># netstat -s | grep segments<\/code><\/p>\n<p>Get statistics about packet loss<br \/>\n<code># netstat -s | egrep -i 'loss|retran'<\/code><\/p>\n<\/div>\n<div>\n<p>Press CTRL-C to abort and to see the results<\/p>\n<\/div>\n<h1>Results<\/h1>\n<h3>By using tshark<\/h3>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"39\" data-permalink=\"https:\/\/www.web-workers.ch\/index.php\/2017\/03\/02\/how-to-capture-tcp-retransmissions-on-linux\/tcp_retransmissions\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions.jpg?fit=1032%2C458&amp;ssl=1\" data-orig-size=\"1032,458\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"tcp_retransmissions\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions.jpg?fit=1024%2C454&amp;ssl=1\" class=\"alignnone wp-image-39 size-full\" src=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions.jpg?resize=1032%2C458\" width=\"1032\" height=\"458\" srcset=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions.jpg?w=1032&amp;ssl=1 1032w, https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions.jpg?resize=300%2C133&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions.jpg?resize=768%2C341&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions.jpg?resize=1024%2C454&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"42\" data-permalink=\"https:\/\/www.web-workers.ch\/index.php\/2017\/03\/02\/how-to-capture-tcp-retransmissions-on-linux\/tcp_retransmissions_2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions_2.jpg?fit=990%2C602&amp;ssl=1\" data-orig-size=\"990,602\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"tcp_retransmissions_2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions_2.jpg?fit=990%2C602&amp;ssl=1\" class=\"alignnone size-full wp-image-42\" src=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions_2.jpg?resize=990%2C602\" alt=\"\" width=\"990\" height=\"602\" srcset=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions_2.jpg?w=990&amp;ssl=1 990w, https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions_2.jpg?resize=300%2C182&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/tcp_retransmissions_2.jpg?resize=768%2C467&amp;ssl=1 768w\" sizes=\"auto, (max-width: 990px) 100vw, 990px\" \/><\/p>\n<h3>By using netstat<\/h3>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"45\" data-permalink=\"https:\/\/www.web-workers.ch\/index.php\/2017\/03\/02\/how-to-capture-tcp-retransmissions-on-linux\/2017-03-02-09_36_44-rootsvsoims__-__remote\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_36_44-root%40svsoims__-__Remote.png?fit=334%2C77&amp;ssl=1\" data-orig-size=\"334,77\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"2017-03-02 09_36_44-root@svsoims__ &#8211; __Remote\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_36_44-root%40svsoims__-__Remote.png?fit=334%2C77&amp;ssl=1\" class=\"alignnone size-full wp-image-45\" src=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_36_44-root%40svsoims__-__Remote.png?resize=334%2C77\" alt=\"\" width=\"334\" height=\"77\" srcset=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_36_44-root%40svsoims__-__Remote.png?w=334&amp;ssl=1 334w, https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_36_44-root%40svsoims__-__Remote.png?resize=300%2C69&amp;ssl=1 300w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"47\" data-permalink=\"https:\/\/www.web-workers.ch\/index.php\/2017\/03\/02\/how-to-capture-tcp-retransmissions-on-linux\/2017-03-02-09_40_13-rootsvsoims_-__remote\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_40_13-root%40svsoims_-__Remote.png?fit=488%2C164&amp;ssl=1\" data-orig-size=\"488,164\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"2017-03-02 09_40_13-root@svsoims_~ &#8211; __Remote\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_40_13-root%40svsoims_-__Remote.png?fit=488%2C164&amp;ssl=1\" class=\"alignnone size-full wp-image-47\" src=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_40_13-root%40svsoims_-__Remote.png?resize=488%2C164\" alt=\"\" width=\"488\" height=\"164\" srcset=\"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_40_13-root%40svsoims_-__Remote.png?w=488&amp;ssl=1 488w, https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_40_13-root%40svsoims_-__Remote.png?resize=300%2C101&amp;ssl=1 300w\" sizes=\"auto, (max-width: 488px) 100vw, 488px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>You are probably experiencing perfomance issues during file transfers on a Linux box and you would like to find out if there are some network issues recognized. \u00a0First you may [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":47,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,6],"tags":[63,77,46,43,75,59,52,44,48,29,73,72,83,62,102,103],"class_list":["post-33","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-security","tag-ad","tag-bash","tag-file","tag-http","tag-ie","tag-lock","tag-log","tag-root","tag-script","tag-server","tag-smb","tag-switch","tag-sybase","tag-tcp","tag-update","tag-yum"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.web-workers.ch\/wp-content\/uploads\/2017\/03\/2017-03-02-09_40_13-root%40svsoims_-__Remote.png?fit=488%2C164&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8sxjX-x","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/posts\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/comments?post=33"}],"version-history":[{"count":19,"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/posts\/33\/revisions"}],"predecessor-version":[{"id":331,"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/posts\/33\/revisions\/331"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/media\/47"}],"wp:attachment":[{"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/media?parent=33"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/categories?post=33"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.web-workers.ch\/index.php\/wp-json\/wp\/v2\/tags?post=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}