{"id":1317,"date":"2017-02-07T20:51:15","date_gmt":"2017-02-07T20:51:15","guid":{"rendered":"http:\/\/nenadnoveljic.com\/blog\/?p=1317"},"modified":"2018-04-06T07:21:44","modified_gmt":"2018-04-06T07:21:44","slug":"mtu-size","status":"publish","type":"post","link":"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/","title":{"rendered":"MTU size"},"content":{"rendered":"<p>Recently, I got involved in troubleshooting a communication problem, which was reported as &#8220;large messages are consistently failing when sent to an externally managed service&#8221;.<\/p>\n<p>Before doing anything else, I wanted the evidence that we were dealing with a problem on the TCP\/IP stack. Therefore, I started the network trace on the Windows box where the messaging client was running:<\/p>\n<pre><code>netsh trace start persistent=yes capture=yes tracefile=c:\\temp\\nettrace-boot.etl<\/code><\/pre>\n<p>Second, I opened the trace file in\u00a0<a href=\"https:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=4865\" target=\"_blank\">Microsoft Network Monitor<\/a> and applied the filter tcp.port == dst_port to remove the noise.<\/p>\n<p>It became immediately obvious that the following packet gets retransmitted because the ACK from the server has never been received:<\/p>\n<pre><code>TCP: Flags=...AP..., SrcPort=src_port, DstPort=dst_port, <span style=\"color: #ff0000;\">PayloadLen=1456<\/span>, Seq=1079708713 - 1079710169, Ack=2984094674, Win=7244\r\nTCP:[<span style=\"color: #ff0000;\">ReTransmit<\/span> #3417] Flags=...AP..., SrcPort=src_port, DstPort=dst_port, PayloadLen=1456, Seq=1079708713 - 1079710169, Ack=2984094674, Win=7244\r\nTCP:[<span style=\"color: #ff0000;\">ReTransmit<\/span> #3417] Flags=...AP..., SrcPort=src_port, DstPort=dst_port, PayloadLen=1456, Seq=1079708713 - 1079710169, Ack=2984094674, Win=7244\r\nTCP:[<span style=\"color: #ff0000;\">ReTransmit<\/span> #3417] Flags=...AP..., SrcPort=src_port, DstPort=dst_port, PayloadLen=1456, Seq=1079708713 - 1079710169, Ack=2984094674, Win=7244\r\nTCP:[<span style=\"color: #ff0000;\">ReTransmit<\/span> #3417] Flags=...AP..., SrcPort=src_port, DstPort=dst_port, PayloadLen=1456, Seq=1079708713 - 1079710169, Ack=2984094674, Win=7244\r\nTCP:<span style=\"color: #ff0000;\">[ReTransmit<\/span> #3417] Flags=...AP..., SrcPort=src_port, DstPort=dst_port, PayloadLen=1456, Seq=1079708713 - 1079710169, Ack=2984094674, Win=7244\r\n...\r\nTCP: Flags=...A.<span style=\"color: #ff0000;\">R<\/span>.., SrcPort=src_port, DstPort=dst_port, PayloadLen=0, Seq=1079710169, Ack=2984094749, Win=0<\/code><\/pre>\n<p>At the end, the client sent a reset after 5 unacknowledged retransmits. The smaller packets where transfered correctly, just the big ones were failing.<\/p>\n<p>The packet in the example above had 1456 bytes, which was very close, though still below the usual maximum transfer unit (MTU) size of 1500 bytes.<\/p>\n<p>In the trace it could also be seen that the &#8220;Do not fragment flag&#8221; was set, which will prevent the network components of automatically fragmenting the packets once they exceed the MTU:<\/p>\n<pre><code>DF:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (.1..............) Do not fragment<\/code><\/pre>\n<p>The network topology was rather complex and included a VPN. The thing with VPN is that it adds its own header to each packet. So the packets that get out close to 1500 in size can easily exceed the MTU and therefore get rejected by a network component on the other end.<\/p>\n<p>At this point, it became apparent that the MTU size on the Windows machine needs to be adjusted to compensate for the VPN overhead. Setting the MTU size to 1380 indeed resolved the issue.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A real life TCP\/IP troubleshooting scenario  <a href=\"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-1317","post","type-post","status-publish","format-standard","hentry","category-tcp-ip"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MTU size - All-round Database Topics<\/title>\n<meta name=\"description\" content=\"A real life TCP\/IP troubleshooting scenario with MTU size\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MTU size - All-round Database Topics\" \/>\n<meta property=\"og:description\" content=\"A real life TCP\/IP troubleshooting scenario with MTU size\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/\" \/>\n<meta property=\"og:site_name\" content=\"All-round Database Topics\" \/>\n<meta property=\"article:published_time\" content=\"2017-02-07T20:51:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-04-06T07:21:44+00:00\" \/>\n<meta name=\"author\" content=\"Nenad Noveljic\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@NenadNoveljic\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nenad Noveljic\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/mtu-size\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/mtu-size\\\/\"},\"author\":{\"name\":\"Nenad Noveljic\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#\\\/schema\\\/person\\\/51458d9dd86dbbdd19f5add451d44efa\"},\"headline\":\"MTU size\",\"datePublished\":\"2017-02-07T20:51:15+00:00\",\"dateModified\":\"2018-04-06T07:21:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/mtu-size\\\/\"},\"wordCount\":268,\"commentCount\":0,\"articleSection\":[\"TCP\\\/IP\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/mtu-size\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/mtu-size\\\/\",\"url\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/mtu-size\\\/\",\"name\":\"MTU size - All-round Database Topics\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#website\"},\"datePublished\":\"2017-02-07T20:51:15+00:00\",\"dateModified\":\"2018-04-06T07:21:44+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#\\\/schema\\\/person\\\/51458d9dd86dbbdd19f5add451d44efa\"},\"description\":\"A real life TCP\\\/IP troubleshooting scenario with MTU size\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/mtu-size\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/mtu-size\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/mtu-size\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MTU size\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/\",\"name\":\"All-round Database Topics\",\"description\":\"Nenad Noveljic\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#\\\/schema\\\/person\\\/51458d9dd86dbbdd19f5add451d44efa\",\"name\":\"Nenad Noveljic\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g\",\"caption\":\"Nenad Noveljic\"},\"sameAs\":[\"nenad-noveljic-9b746a6\",\"https:\\\/\\\/x.com\\\/NenadNoveljic\"],\"url\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/author\\\/nenad\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MTU size - All-round Database Topics","description":"A real life TCP\/IP troubleshooting scenario with MTU size","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/","og_locale":"en_US","og_type":"article","og_title":"MTU size - All-round Database Topics","og_description":"A real life TCP\/IP troubleshooting scenario with MTU size","og_url":"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/","og_site_name":"All-round Database Topics","article_published_time":"2017-02-07T20:51:15+00:00","article_modified_time":"2018-04-06T07:21:44+00:00","author":"Nenad Noveljic","twitter_card":"summary_large_image","twitter_creator":"@NenadNoveljic","twitter_misc":{"Written by":"Nenad Noveljic","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/#article","isPartOf":{"@id":"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/"},"author":{"name":"Nenad Noveljic","@id":"https:\/\/nenadnoveljic.com\/blog\/#\/schema\/person\/51458d9dd86dbbdd19f5add451d44efa"},"headline":"MTU size","datePublished":"2017-02-07T20:51:15+00:00","dateModified":"2018-04-06T07:21:44+00:00","mainEntityOfPage":{"@id":"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/"},"wordCount":268,"commentCount":0,"articleSection":["TCP\/IP"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nenadnoveljic.com\/blog\/mtu-size\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/","url":"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/","name":"MTU size - All-round Database Topics","isPartOf":{"@id":"https:\/\/nenadnoveljic.com\/blog\/#website"},"datePublished":"2017-02-07T20:51:15+00:00","dateModified":"2018-04-06T07:21:44+00:00","author":{"@id":"https:\/\/nenadnoveljic.com\/blog\/#\/schema\/person\/51458d9dd86dbbdd19f5add451d44efa"},"description":"A real life TCP\/IP troubleshooting scenario with MTU size","breadcrumb":{"@id":"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nenadnoveljic.com\/blog\/mtu-size\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nenadnoveljic.com\/blog\/mtu-size\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nenadnoveljic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MTU size"}]},{"@type":"WebSite","@id":"https:\/\/nenadnoveljic.com\/blog\/#website","url":"https:\/\/nenadnoveljic.com\/blog\/","name":"All-round Database Topics","description":"Nenad Noveljic","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nenadnoveljic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/nenadnoveljic.com\/blog\/#\/schema\/person\/51458d9dd86dbbdd19f5add451d44efa","name":"Nenad Noveljic","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g","caption":"Nenad Noveljic"},"sameAs":["nenad-noveljic-9b746a6","https:\/\/x.com\/NenadNoveljic"],"url":"https:\/\/nenadnoveljic.com\/blog\/author\/nenad\/"}]}},"_links":{"self":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts\/1317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/comments?post=1317"}],"version-history":[{"count":1,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts\/1317\/revisions"}],"predecessor-version":[{"id":1324,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts\/1317\/revisions\/1324"}],"wp:attachment":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/media?parent=1317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/categories?post=1317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/tags?post=1317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}