
{"id":8028,"date":"2013-01-01T16:50:16","date_gmt":"2013-01-01T16:50:16","guid":{"rendered":"http:\/\/www.beautifulwork.org\/?p=8028"},"modified":"2013-01-01T16:50:16","modified_gmt":"2013-01-01T16:50:16","slug":"tcp_retrans_collapse-boolean","status":"publish","type":"post","link":"https:\/\/www.trueangle.org\/index.php\/2013\/01\/01\/tcp_retrans_collapse-boolean\/","title":{"rendered":"what is tcp_retrans_collapse &#8211; BOOLEAN ?"},"content":{"rendered":"<p><u>ABOUT tcp_retrans_collapse<\/u><\/p>\n<pre>\nThis variable implements a bug in the TCP protocol so it will be able to talk to certain other buggy TCP stacks. Without implementing this bug in the TCP stack, we would be unable to talk to certain printers that has this bug built in. This bug makes the TCP stack try to send bigger packets on retransmission of packets to work around bugs in those printers and other hardware implementations.\n\nThis variable takes a boolean value and is normally set to 1, or on. Implementing this bug workaround will not break compatibility from our host to others, but it will make it possible to speak to those printers. In general, it should not be a dangerous workaround, but you may turn it off if you receive weird error messages.\n<\/pre>\n<p><u>TYPICAL SHELL SESSIONS RELATED<\/u><br \/>\n[bash]<br \/>\n$cat \/proc\/sys\/net\/ipv4\/tcp_retrans_collapse<br \/>\n1<br \/>\n$<br \/>\n[\/bash]<\/p>\n<p>[bash]<br \/>\n$pwd<br \/>\n\/home\/jeffrin\/linux-4.15.4<br \/>\n$grep -r &quot;tcp_retrans_collapse&quot; *<br \/>\nDocumentation\/networking\/ip-sysctl.txt:tcp_retrans_collapse &#8211; BOOLEAN<br \/>\ninclude\/net\/netns\/ipv4.h:\tint sysctl_tcp_retrans_collapse;<br \/>\nkernel\/sysctl_binary.c:\t{ CTL_INT,\tNET_IPV4_TCP_RETRANS_COLLAPSE,\t\t&quot;tcp_retrans_collapse&quot; },<br \/>\nnet\/ipv4\/tcp_ipv4.c:\tnet-&gt;ipv4.sysctl_tcp_retrans_collapse = 1;<br \/>\nnet\/ipv4\/sysctl_net_ipv4.c:\t\t.procname\t= &quot;tcp_retrans_collapse&quot;,<br \/>\nnet\/ipv4\/sysctl_net_ipv4.c:\t\t.data\t\t= &amp;init_net.ipv4.sysctl_tcp_retrans_collapse,<br \/>\nnet\/ipv4\/tcp_output.c:\tif (!sock_net(sk)-&gt;ipv4.sysctl_tcp_retrans_collapse)<br \/>\n$<\/p>\n<p>[\/bash]<\/p>\n<pre>\ntcp_retrans_collapse - BOOLEAN\nBug-to-bug compatibility with some broken printers. On retransmit try to send bigger packets to work\naround bugs in certain TCP stacks.\n<\/pre>\n<p><\/p>\n<pre>\nTCP smart Framing, or TCP-SF for short, enables  the Fast Retransmit\/Recovery  algorithms even when  the\ncongestion window  is small.  Without modifying  the  TCP congestion\ncontrol based on the additive-increase\/multiplicative-decrease paradigm, TCP-SF  adopts  a  novel\nsegmentation  algorithm:  while Classic TCP  always tries to send  full-sized segments, a TCP-SF  source\nadopts  a  more flexible  s  segmentation algorithm to try and always  have a number of in flight s\nsegments larger than 3 so  as to enable Fast Recovery. We motivate  this  choice by  real  traffic c \nmeasurements, which indicate  that today's  traffic is is  populated by short-li flows, whose only means\nto recover from a packet loss is  by triggering a Retransmission  Timeout. The key idea of  TCP-SF can\nbe implemented  on top of  any TCP flavor, , from Tahoe to SACK, and  requires modifications s to the\nserver  TCP stack only, and can be easily  coupled   with  recent  TCP   enhancements.   The\nperformance of the proposed TCP modification were studied by means  of simulations,  live measurements \nand  an analytical model. In addition,  the analytical model we have devised has a  general scope, making\nit a  valid tool for TCP  performance evaluation in  the small  window region. Improvements  are  remark-\nable  under  several  buffer management   schemes,  and  maximized   by  byte-oriented schemes.\n\nSOURCE:\nTCP Smart Framing: A Segmentation Algorithm\nto Reduce TCP Latency\nMarco Mellia, Member, IEEE, Michela Meo, Member, IEEE, and Claudio Casetti\n<\/pre>\n<p>LINKS<br \/>\n<a href=\"https:\/\/www.frozentux.net\/ipsysctl-tutorial\/chunkyhtml\/tcpvariables.html\">https:\/\/www.frozentux.net\/ipsysctl-tutorial\/chunkyhtml\/tcpvariables.html<\/a><br \/>\n<a href=\"https:\/\/www.kernel.org\/doc\/Documentation\/networking\/ip-sysctl.txt\">https:\/\/www.kernel.org\/doc\/Documentation\/networking\/ip-sysctl.txt<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ABOUT tcp_retrans_collapse This variable implements a bug in the TCP protocol so it will be able to talk to certain other buggy TCP stacks. Without implementing this bug in the TCP stack, we would be unable to talk to certain printers that has this bug built in. This bug makes the TCP stack try to &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.trueangle.org\/index.php\/2013\/01\/01\/tcp_retrans_collapse-boolean\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;what is tcp_retrans_collapse &#8211; BOOLEAN ?&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[19],"tags":[553,1377,1548],"_links":{"self":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts\/8028"}],"collection":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/comments?post=8028"}],"version-history":[{"count":0,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts\/8028\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/media?parent=8028"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/categories?post=8028"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/tags?post=8028"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}