{"id":500,"date":"2010-10-29T12:47:54","date_gmt":"2010-10-29T19:47:54","guid":{"rendered":"http:\/\/mpsharp.com\/blog\/?p=500"},"modified":"2010-10-29T12:47:54","modified_gmt":"2010-10-29T19:47:54","slug":"jumbo-frames-iscsi-and-disabling-nagle","status":"publish","type":"post","link":"https:\/\/mpsharp.com\/?p=500","title":{"rendered":"Jumbo Frames, iSCSI and Disabling Nagle"},"content":{"rendered":"<p>So the new project (which I get to spend about 15 minutes a week on) has been to remove the mechanical harddisk from <a href=\"https:\/\/www.mpsharp.com\/blog\/windows-7-media-center-configuration\/\" target=\"_blank\" rel=\"noopener\">my HTPC<\/a> and have it run completely silently off the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Solid-state_drive\" target=\"_blank\" rel=\"noopener\">SSD<\/a>.\u00a0\u00a0 The first stage was purchasing the <a href=\"http:\/\/www.amazon.com\/NETGEAR-ReadyNAS-4-Bay-2TB-500GB\/dp\/B000R9DB5K\" target=\"_blank\" rel=\"noopener\">ReadyNAS NV+<\/a>.\u00a0 2TB drives have dropped below $100 so a NAS device with 1Gb networking was the no brainer solution.<\/p>\n<p>Given I have two <a href=\"http:\/\/www.amd.com\/us\/products\/pctv\/tv-wonder-tuners\/pages\/digital-cable-tuner.aspx\" target=\"_blank\" rel=\"noopener\">ATI CableCARD tuners<\/a> (which BTW are no longer being made or supported by ATI), I needed to make sure the network and NAS had enough bandwidth and performance to write two simultaneous HD streams, while reading a third.\u00a0 Now in theory, with a 1Gb network, you should be able to get roughly 100MB thoughput, unfortunately the real world doesn&#8217;t work that way.<\/p>\n<p>My initial testing using <a href=\"http:\/\/www.totusoft.com\/lanspeed2.html\" target=\"_blank\" rel=\"noopener\">Lan Speed Test<\/a> (more on that later) showed I was getting around 24MBps writes and 45MBps reads.\u00a0 (Remember big Bs are Bytes and little bs are bits.\u00a0 8 bits to a byte)\u00a0 So looking at my Comcast HD recordings, it turns out Fox is broadcasting 1920&#215;1080 MPEG2 at around 14Mbps. \u00a0 This isn&#8217;t that bad.\u00a0 Note that DirectTV uses MPEG4 at around 5Mbps.\u00a0 Since mp4 delivers better quality at lower bit rates,\u00a0 the DirectTV advertisements aren&#8217;t lying when they say the picture is better.\u00a0\u00a0 For comparison, a typical DVD is MPEG2 @ 9.8Mbs and a BlueRay is MPEG4 at 40Mbps.\u00a0\u00a0 So if you haven&#8217;t figured it out yet, HD can really mean anything you want.<\/p>\n<p>But the answer is if you want to record 2 HD TV channels from Comcast, you need about 2MBps per stream, or really just 4MBs, but you definitely want to have some head room, and there&#8217;s also the need to play DVD images back from the drive<\/p>\n<p>I was hoping to get a little better than 25% of maximum throughput so started looking for solutions.\u00a0\u00a0\u00a0 The first thing I poked at was the <a href=\"http:\/\/en.wikipedia.org\/wiki\/Nagle's_algorithm\" target=\"_blank\" rel=\"noopener\">Nagle&#8217;s algorithm<\/a> attributes.\u00a0\u00a0\u00a0 This basically tells the TCP stack to gather all the small requests in to one big one before sending.\u00a0\u00a0\u00a0\u00a0 Turns out gamers want to disable this feature to make sure every keystroke\/click is sent the moment they enter it, and not let things batch up on the network card.\u00a0\u00a0\u00a0 For media streaming, you want the opposite behavior, but you&#8217;re rarely sending small data packets anyways. \u00a0\u00a0 But just for kicks, I set the following registry settings<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">HKLM\/SYSTEM\/CurrentControlSet\/services\/Tcpip\/Parameters\/Interfaces\/{nicid}\/<\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #008000;\">GlobalMaxTcpWindowSize = 0x01400000 (DWORD)<br \/>\nTcpWindowSize = 0x01400000 (DWORD)<br \/>\nTcp1323Opts = 3 (DWORD)<br \/>\nSackOpts = 1 (DWORD)<br \/>\nTcpAckFrequency = 4 (DWORD)<br \/>\nTcpDelAckTicks = 2 (DWORD)<\/span><\/p>\n<p>And ran this command:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\">C:\\ netsh interface tcp set global rss=disabled chimney=disabled autotuninglevel=disabled congestionprovider=none<\/span><\/p>\n<p>Mostly from recommendations from this<a href=\"http:\/\/support.nexenta.com\/index.php?_m=knowledgebase&amp;_a=viewarticle&amp;kbarticleid=85\" target=\"_blank\" rel=\"noopener\"> iSCSI site<\/a> (more on that below):<\/p>\n<p>Basically I&#8217;m saying the opposite.\u00a0\u00a0 Package up as many small bits as possible into larger ones to avoid the overhead.\u00a0 Difficult to measure the differences here, but I&#8217;m recording them here for myself in case I run into problems.\u00a0\u00a0 Though, it turns out there is another TCP feature along the same lines that does help with streaming media and was much more noticeable.<\/p>\n<p>I had already done all the cache optimizations possible on the ReadyNAS, and configured it for Raid 0 since I really don&#8217;t need redundancy for recorded TV shows and I&#8217;m using Amazon S3 for offsite backup <a href=\"https:\/\/www.mpsharp.com\/blog\/2010\/09\/17\/allway-sync-now-supports-amazon-s3\/\" target=\"_blank\" rel=\"noopener\">as described here<\/a>.\u00a0\u00a0 One of the features I found on the ReadyNAS was support for <a href=\"http:\/\/en.wikipedia.org\/wiki\/Jumbo_frame\" target=\"_blank\" rel=\"noopener\">TCP Jumbo Frames<\/a>.\u00a0\u00a0 So it turns out the standards the Internet still runs on today were defined over 30 years ago.\u00a0\u00a0 Given the reliability of Ethernet at the time, the designers decided that 1500 bytes was the largest amount of data to be communicated in each packet so if the receiver didn&#8217;t get the packet, the resend wouldn&#8217;t be so large.\u00a0\u00a0\u00a0 In today&#8217;s home gigabit switched networks, collisions and data corruption are almost unheard of.\u00a0 So rather than waste all the CPU &amp; interrupt time splitting and joining small packets, you just build one big one.\u00a0\u00a0 This is also a bit more efficient because each packet also requires header and footer\u00a0 information describing where it should be delivered to.\u00a0\u00a0 Unfortunately, because everyone has to follow a standard, the largest the Jumbo Frame packet goes to is 9K, but that&#8217;s still almost a 4x increase in the data delivered with the same header and footer used for the original frame size.<\/p>\n<p>So I started looking at the configuration for the on-board network adapter on my <a href=\"http:\/\/www.intel.com\/products\/desktop\/motherboards\/dp35dp\/dp35dp-overview.htm\" target=\"_blank\" rel=\"noopener\">Intel P35<\/a>.\u00a0 No Jumbo Frame option, but this I found this note:<\/p>\n<p style=\"padding-left: 30px;\">Note: The Intel PRO\/1000 PL Network Connection supports jumbo frames  in  Microsoft* Windows* operating systems only when I<a href=\"http:\/\/downloadcenter.intel.com\/Detail_Desc.aspx?agr=Y&amp;ProdId=2775&amp;DwnldID=18713&amp;lang=eng\" target=\"_blank\" rel=\"noopener\">ntel\u00ae PROSet for  Windows Device  Manager<\/a> is installed.<\/p>\n<p>Cool!\u00a0 So Installed Intel ProWin and still couldn&#8217;t find the JF option.\u00a0\u00a0 Do a little more research and find this:<\/p>\n<p style=\"padding-left: 30px;\">The following gigabit LAN components included with Intel\u00ae Desktop Boards do not support jumbo frames:<\/p>\n<blockquote>\n<ul style=\"padding-left: 30px;\">\n<li>Intel\u00ae 82566DM Gigabit Ethernet Controller<\/li>\n<li><strong>Intel\u00ae 82566DC Gigabit Ethernet Controller <\/strong><\/li>\n<li style=\"padding-left: 30px;\">&#8230;<\/li>\n<\/ul>\n<\/blockquote>\n<p>Eeeekk! My motherboard chipset doesn&#8217;t support jumbo frames!\u00a0\u00a0\u00a0 So it was off to Amazon to see how much a 1Gb PCIe Network card with JF support would set me back.\u00a0\u00a0\u00a0 Since 1GB is not longer the bleeding edge (they now have 10Gb NIC over Cat6),\u00a0 <a href=\"http:\/\/www.amazon.com\/gp\/product\/B001VBU0NY\/ref=oss_product\" target=\"_blank\" rel=\"noopener\">this Startect card<\/a> was just under $25.\u00a0\u00a0\u00a0 This also allowed me to do some real world performance testing between the two use Lan Speed Test:<\/p>\n<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal<\/w:View> <w:Zoom>0<\/w:Zoom> <w:DoNotOptimizeForBrowser \/> <\/w:WordDocument> <\/xml><![endif]--><\/p>\n<table style=\"margin-left: 5.4pt; border-collapse: collapse; border: medium none;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr style=\"height: 32.25pt;\">\n<td style=\"border: 0.5pt solid windowtext; padding: 0in 5.4pt; width: 94.5pt; height: 32.25pt;\" width=\"126\" valign=\"top\">\n<p class=\"MsoNormal\">HW<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 76.5pt; height: 32.25pt;\" width=\"102\" valign=\"top\">\n<p class=\"MsoNormal\">Intel 82566DC<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 78.15pt; height: 32.25pt;\" width=\"104\" valign=\"top\">\n<p class=\"MsoNormal\">StarTech ST1000SPEX<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 32.25pt;\">\n<td style=\"padding: 0in 5.4pt; width: 94.5pt; height: 32.25pt;\" width=\"126\" valign=\"top\">\n<p class=\"MsoNormal\">SMB Read MB\/s<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 76.5pt; height: 32.25pt;\" width=\"102\" valign=\"top\">\n<p class=\"MsoNormal\">48.05<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 78.15pt; height: 32.25pt;\" width=\"104\" valign=\"top\">\n<p class=\"MsoNormal\">45.8<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 32.25pt;\">\n<td style=\"padding: 0in 5.4pt; width: 94.5pt; height: 32.25pt;\" width=\"126\" valign=\"top\">\n<p class=\"MsoNormal\">SMB Write MB\/s<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 76.5pt; height: 32.25pt;\" width=\"102\" valign=\"top\">\n<p class=\"MsoNormal\">24.28<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 78.15pt; height: 32.25pt;\" width=\"104\" valign=\"top\">\n<p class=\"MsoNormal\">33.43<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>So I&#8217;m pleased with the 30% speed improvement on write.\u00a0\u00a0 I read somewhere that JFs aren&#8217;t used for reads, hence there wasn&#8217;t any significant difference there.\u00a0\u00a0\u00a0 So I&#8217;m all set right?\u00a0\u00a0 Oops, wait a minute.\u00a0\u00a0 It turns out that Windows Media Center won&#8217;t record to a network drive.\u00a0\u00a0\u00a0 This is part of the DRM associated with CableCARD, which I&#8217;ve <a href=\"https:\/\/www.mpsharp.com\/blog\/2009\/06\/19\/vista-media-center-drm-woes\/\" target=\"_blank\" rel=\"noopener\">ranted about before<\/a>.\u00a0\u00a0 It turns out the new <a href=\"http:\/\/windows7.iyogi.net\/news\/microsoft-releases-cablecard-firmware-update-for-windows-7-media-center\" target=\"_blank\" rel=\"noopener\">ATI BIOS<\/a> relaxed <a href=\"http:\/\/www.microsoft.com\/presspass\/press\/2009\/sep09\/09-09mswinmccediapr.mspx\" target=\"_blank\" rel=\"noopener\">OCUR standards<\/a> addressed most my CableCARD concerns.\u00a0 This left two possible solutions:<\/p>\n<ol>\n<li>Record to the SSD and use <a href=\"http:\/\/babgvant.com\/Wiki\/view.aspx\/DVRMSToolbox\" target=\"_blank\" rel=\"noopener\">DVRMSToolbox<\/a> to move the recordings to the NAS (after commercial detection)<\/li>\n<li>Use <a href=\"http:\/\/en.wikipedia.org\/wiki\/ISCSI\" target=\"_blank\" rel=\"noopener\">iSCSI<\/a> rather than SMB (Microsoft File Sharing)<\/li>\n<\/ol>\n<p>Once again, going back to 30 years, there were a couple competing standards for attaching disk drives to computers.\u00a0\u00a0\u00a0 Once of these was called <a href=\"http:\/\/en.wikipedia.org\/wiki\/SCSI\" target=\"_blank\" rel=\"noopener\">SCSI<\/a> and was championed by Apple and Sun (as well as many others).\u00a0\u00a0\u00a0 SCSI had a bit high level command structure and some interesting chaining features that are similar to today&#8217;s USB features.\u00a0\u00a0 PCs meanwhile were using IDE interfaces which have evolved in their own direction.\u00a0\u00a0\u00a0 Fast forward 30 years, and have these network cables which are now as fast as those big thick SCSI cables, so why not send the SCSI protocol over that?\u00a0\u00a0 Now you have iSCSI.<\/p>\n<p>So the cool part is, you use iSCSI, and Windows thinks the drive is a local SCSI drive, not a remote NAS drive.\u00a0\u00a0\u00a0\u00a0 Of course, since I bought the cheaper ReadyNAS NV+ rather than the latest and greatest <a href=\"http:\/\/www.amazon.com\/ReadyNAS-diskless-Attached-generation-RNDU4000\/dp\/B003V8AL8O\" target=\"_blank\" rel=\"noopener\">ReadyNAS Ultra<\/a>, iSCSI support was not yet built in.\u00a0\u00a0 Enter the OpenSource world to the rescue.\u00a0\u00a0\u00a0 Since the ReadyNAS NV+ is basically a little Sparc machine running Linux, Stephan at http:\/\/whocares.de\/ ported the <a href=\"http:\/\/readynasfreeware.org\/projects\/nas-iscsi-target\" target=\"_blank\" rel=\"noopener\">Linux iSCSI Target daemon<\/a>.\u00a0\u00a0\u00a0 If you go this route, be sure to check out his <a href=\"http:\/\/readynasfreeware.org\/projects\/nas-iscsi-target\/wiki\/New_Version\" target=\"_blank\" rel=\"noopener\">support page<\/a> which was a little tricky to find.\u00a0\u00a0\u00a0 In short, the original directions pointed you to the wrong config file, as I explain here:<\/p>\n<blockquote><p>Downloaded and installed 1.4.20.2. After following the instructions verbatim, I realized my target was not being created and spent a lot of time searching the net for the cause of this message:<br \/>\niscsi_trgt: iscsi_target_create(131) The length of the target name is zero<\/p>\n<p>I finally came back here and read all the comments. The problem the whole time was ietd.conf needs to be <strong>\/etc\/ietd<\/strong>, not <strong>\/etc<\/strong> like the instructions say. \ud83d\ude41<\/p>\n<p>Hopefully google will find this comment for the next guy who comes along.<\/p><\/blockquote>\n<p>I mention a couple other quirks on the support page, but the above is the only one that matters.\u00a0\u00a0 So back to performance testing via Lan Speed Test:<\/p>\n<table style=\"margin-left: 5.4pt; border-collapse: collapse; border: medium none;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr style=\"height: 32.25pt;\">\n<td style=\"border: 0.5pt solid windowtext; padding: 0in 5.4pt; width: 94.5pt; height: 32.25pt;\" width=\"126\" valign=\"top\">\n<p class=\"MsoNormal\">Protocol<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 76.5pt; height: 32.25pt;\" width=\"102\" valign=\"top\">\n<p class=\"MsoNormal\">iSCSI<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 78.15pt; height: 32.25pt;\" width=\"104\" valign=\"top\">\n<p class=\"MsoNormal\">SMB<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 32.25pt;\">\n<td style=\"padding: 0in 5.4pt; width: 94.5pt; height: 32.25pt;\" width=\"126\" valign=\"top\">\n<p class=\"MsoNormal\">Read MB\/s<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 76.5pt; height: 32.25pt;\" width=\"102\" valign=\"top\">\n<p class=\"MsoNormal\">21.05<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 78.15pt; height: 32.25pt;\" width=\"104\" valign=\"top\">\n<p class=\"MsoNormal\">45.8<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 32.25pt;\">\n<td style=\"padding: 0in 5.4pt; width: 94.5pt; height: 32.25pt;\" width=\"126\" valign=\"top\">\n<p class=\"MsoNormal\">Write MB\/s<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 76.5pt; height: 32.25pt;\" width=\"102\" valign=\"top\">\n<p class=\"MsoNormal\">191.28<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 78.15pt; height: 32.25pt;\" width=\"104\" valign=\"top\">\n<p class=\"MsoNormal\">33.43<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Whoa, check that out!\u00a0\u00a0\u00a0 More than 6x improvement in write performance!\u00a0\u00a0\u00a0 In fact, it now writes <strong><em>almost twice as fast <\/em><\/strong>as the theoretical network maximum&#8230; umm&#8230; wait-a-second&#8230;.\u00a0\u00a0 That&#8217;s probably not right&#8230;<\/p>\n<p>A little more investigation showed that because Windows considers it a SCSI drive, there&#8217;s lots of local caching going on which was fooling Lan Speed Test.\u00a0\u00a0\u00a0 Using Blackmagic&#8217;s Disk Speed Test (which also won&#8217;t work on a network drive), write speeds were around 14MB\/s.\u00a0\u00a0\u00a0 So the freeware implementation of iSCSI leaves a bit to be desired performance wise.\u00a0\u00a0\u00a0 There may be some other things you could do via direct device access and later versions of iSCSI, but I decided to go back to the DVRMSToolbox solution.<\/p>\n<p>So I&#8217;m actually pretty happy with the current solution where I record to a temporary directory on the SSD and then move the file over to the NAS.\u00a0\u00a0 This also allows the <a href=\"http:\/\/www.dragonglobal.biz\/\" target=\"_blank\" rel=\"noopener\">Dragon Global Showanalyzer<\/a> to work on the files locally rather than scanning them over the network.<\/p>\n<div id=\"_mcePaste\" style=\"overflow: hidden; position: absolute; left: -10000px; top: 228px; width: 1px; height: 1px;\">\n<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal<\/w:View> <w:Zoom>0<\/w:Zoom> <w:DoNotOptimizeForBrowser \/> <\/w:WordDocument> <\/xml><![endif]--><\/p>\n<table style=\"margin-left: 5.4pt; border-collapse: collapse; border: medium none;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr style=\"height: 32.25pt;\">\n<td style=\"border: 0.5pt solid windowtext; padding: 0in 5.4pt; width: 112.5pt; height: 32.25pt;\" width=\"150\" valign=\"top\">\n<p class=\"MsoNormal\">HW<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 58.5pt; height: 32.25pt;\" width=\"78\" valign=\"top\">\n<p class=\"MsoNormal\">Intel 82566DC<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 78.15pt; height: 32.25pt;\" width=\"104\" valign=\"top\">\n<p class=\"MsoNormal\">StarTech ST1000SPEX<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 32.25pt;\">\n<td style=\"padding: 0in 5.4pt; width: 112.5pt; height: 32.25pt;\" width=\"150\" valign=\"top\">\n<p class=\"MsoNormal\">SMB Read MB\/s<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 58.5pt; height: 32.25pt;\" width=\"78\" valign=\"top\">\n<p class=\"MsoNormal\">48.05<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 78.15pt; height: 32.25pt;\" width=\"104\" valign=\"top\">\n<p class=\"MsoNormal\">45.8<\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 32.25pt;\">\n<td style=\"padding: 0in 5.4pt; width: 112.5pt; height: 32.25pt;\" width=\"150\" valign=\"top\">\n<p class=\"MsoNormal\">SMBWrite MB\/s<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 58.5pt; height: 32.25pt;\" width=\"78\" valign=\"top\">\n<p class=\"MsoNormal\">24.28<\/p>\n<\/td>\n<td style=\"padding: 0in 5.4pt; width: 78.15pt; height: 32.25pt;\" width=\"104\" valign=\"top\">\n<p class=\"MsoNormal\">33.43<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>So the new project (which I get to spend about 15 minutes a week on) has been to remove the mechanical harddisk from my HTPC and have it run completely silently off the SSD.\u00a0\u00a0 The first stage was purchasing the ReadyNAS NV+.\u00a0 2TB drives have dropped below $100 so a NAS device with 1Gb networking&hellip; <a class=\"more-link\" href=\"https:\/\/mpsharp.com\/?p=500\">Continue reading <span class=\"screen-reader-text\">Jumbo Frames, iSCSI and Disabling Nagle<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,9],"tags":[63,80,88,95,103,104,105,146,163],"class_list":["post-500","post","type-post","status-publish","format-standard","hentry","category-home-theater","category-windows","tag-dvr","tag-htpc","tag-iscsi","tag-media-center","tag-nas","tag-netready-nv","tag-network-performance","tag-video-streaming","tag-wmc","entry"],"_links":{"self":[{"href":"https:\/\/mpsharp.com\/index.php?rest_route=\/wp\/v2\/posts\/500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mpsharp.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mpsharp.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mpsharp.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mpsharp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=500"}],"version-history":[{"count":0,"href":"https:\/\/mpsharp.com\/index.php?rest_route=\/wp\/v2\/posts\/500\/revisions"}],"wp:attachment":[{"href":"https:\/\/mpsharp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mpsharp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mpsharp.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}