Knowledge (XXG)

TCP window scale option

Source 📝

262: bytes, or about 1 GiB. This is done by specifying a two byte shift count in the header options field. The true receive window size is left shifted by the value in shift count. A maximum value of 14 may be used for the shift count value. This would allow a single TCP connection to transfer data over the example satellite link at 1.5 Mbit/s utilizing all of the available bandwidth. 322: 63:). The receiver may be overwhelmed by data if for example it is very busy (such as a Web server). Each TCP segment contains the current value of the receive window. If, for example, a sender receives an ack which acknowledges byte 4000 and specifies a receive window of 10000 (bytes), the sender will not send packets after byte 14000, even if the congestion window allows it. 265:
Essentially, not more than one full transmission window can be transferred within one round-trip time period. The window scale option enables a single TCP connection to fully utilize an LFN with a BDP of up to 1 GB, e.g. a 10 Gbit/s link with round-trip time of 800 ms.
274:
Because some firewalls do not properly implement TCP Window Scaling, it can cause a user's Internet connection to malfunction intermittently for a few minutes, then appear to start working again for no reason. There is also an issue if a firewall doesn't support the TCP extensions.
260: 135: bits or about 96,187 bytes. Using a maximum buffer size of 64 KB only allows the buffer to be filled to (65,535 / 96,187) = 68% of the theoretical maximum speed of 1.5 Mbit/s, or 1.02 Mbit/s. 133: 141: 332: 304:
have a fixed default TCP receive buffer of 64 kB, scaling up to 16 MB through "autotuning", limiting manual TCP tuning over
609: 86: 691: 28: 555:
Borman, D., Braden, B., Jacobson, V., & Scheffenegger, R. (2014). TCP extensions for high performance (No. rfc7323).
378:(from 2.6.8, August 2004) have enabled TCP Window Scaling by default. The configuration parameters are found in the 296:. It is enabled by default in Windows Vista / Server 2008 and newer, but can be turned off manually if required. 493:
This setting is lost across a system restart. To ensure that it is set at boot time, add the following line to
686: 72: 31:
above its former maximum value of 65,535 bytes. This TCP option, along with several others, is defined in
476:") means scaling is enabled, 0 means "disabled". If enabled it can be turned off by issuing the command: 255:{\displaystyle 1,073,725,440\ \scriptstyle \left(=(2^{16}-1)\times (2^{14})=65,535\times 16,384)\right)} 667: 138:
By using the window scale option, the receive window size may be increased up to a maximum value of
60: 56: 79:
transmission line of 1.5 Mbit/s was used over a satellite link with a 513 millisecond
55:
and the receive window. The congestion window tries not to exceed the capacity of the network (
289: 52: 305: 76: 40: 32: 566:"Network connectivity may fail when you try to use Windows Vista behind a firewall device" 80: 613: 59:); the receive window tries not to exceed the capacity of the receiver to process data ( 628:"Network connectivity fails when you try to use Windows Vista behind a firewall device" 24: 343: 680: 543: 297: 645: 375: 293: 36: 631: 301: 451:
is to have window scaling (and other features related to RFC 1323) enabled.
71:
TCP window scale option is needed for efficient transfer of data when the
627: 587: 565: 448: 440: 436: 458: 444: 379: 51:
The throughput of a TCP communication is limited by two windows: the
588:"Description of Windows 2000 and Windows Server 2003 TCP Features" 315: 401:
Scaling can be turned off by issuing the following command.
453:
To verify their status, a user can check the value of the "
355: 415:
To maintain the changes after a restart, include the line
347: 128:{\displaystyle \scriptstyle 1,500,000\times 0.513=769,500} 503:
However, on macOS 10.14 this command provides an error
351: 339: 169: 90: 144: 89: 75:(BDP) is greater than 64 KB. For instance, if a 395: 254: 127: 16:Transmission control protocol configurable option 8: 610:"TCP Receive Window Size and Window Scaling" 507:sysctl: unknown oid 'net.inet.tcp.rfc1323' 410:"net.ipv4.tcp_window_scaling=0" 210: 185: 143: 88: 522: 520: 516: 333:instructions, advice, or how-to content 83:(RTT), the bandwidth-delay product is 431:FreeBSD, OpenBSD, NetBSD and Mac OS X 384:/proc/sys/net/ipv4/tcp_window_scaling 288:TCP Window Scaling is implemented in 7: 342:so that it is more encyclopedic or 279:Configuration of operating systems 14: 668:"/proc/sys/net/ipv4/* Variables" 483:sudosysctl-wnet.inet.tcp.rfc1323 320: 417:"net.ipv4.tcp_window_scaling=0" 243: 216: 203: 197: 178: 1: 29:Transmission Control Protocol 23:is an option to increase the 425:/etc/sysctl.d/99-sysctl.conf 468:sysctlnet.inet.tcp.rfc1323 392:/proc/sys/net/ipv4/tcp_wmem 388:/proc/sys/net/ipv4/tcp_rmem 708: 546:based on powers of 1024. 478: 463: 403: 590:. Support.microsoft.com 568:. Support.microsoft.com 73:bandwidth-delay product 21:TCP window scale option 499:net.inet.tcp.rfc1323=0 474:net.inet.tcp.rfc1323=1 472:A value of 1 (output " 256: 129: 270:Possible side effects 257: 130: 692:Network acceleration 455:net.inet.tcp.rfc1323 435:Default setting for 427:as of systemd 207). 142: 87: 648:. Fasterdata.es.net 616:on January 1, 2008. 457:" variable via the 398:, section sysctl). 394:(more information: 386:and its companions 340:rewrite the content 382:, see pseudo-file 252: 251: 125: 124: 57:congestion control 373: 372: 306:long fat networks 168: 53:congestion window 41:long fat networks 39:which deals with 699: 672: 671: 664: 658: 657: 655: 653: 642: 636: 635: 624: 618: 617: 612:. Archived from 606: 600: 599: 597: 595: 584: 578: 577: 575: 573: 562: 556: 553: 547: 524: 508: 500: 495:/etc/sysctl.conf 489: 486: 482: 475: 467: 456: 426: 422: 421:/etc/sysctl.conf 418: 411: 407: 397: 393: 389: 385: 380:/proc filesystem 368: 365: 359: 324: 323: 316: 261: 259: 258: 253: 250: 246: 215: 214: 190: 189: 166: 134: 132: 131: 126: 27:size allowed in 707: 706: 702: 701: 700: 698: 697: 696: 677: 676: 675: 666: 665: 661: 651: 649: 644: 643: 639: 634:. July 8, 2009. 626: 625: 621: 608: 607: 603: 593: 591: 586: 585: 581: 571: 569: 564: 563: 559: 554: 550: 544:binary prefixes 525: 518: 514: 509: 506: 498: 491: 490: 487: 484: 480: 473: 470: 469: 465: 454: 452: 433: 424: 420: 416: 413: 412: 409: 405: 391: 387: 383: 369: 363: 360: 337: 325: 321: 314: 286: 281: 272: 206: 181: 174: 170: 140: 139: 85: 84: 81:round-trip time 69: 49: 17: 12: 11: 5: 705: 703: 695: 694: 689: 687:TCP extensions 679: 678: 674: 673: 659: 637: 619: 601: 579: 557: 548: 515: 513: 510: 505: 479: 464: 432: 429: 404: 371: 370: 328: 326: 319: 313: 310: 285: 282: 280: 277: 271: 268: 249: 245: 242: 239: 236: 233: 230: 227: 224: 221: 218: 213: 209: 205: 202: 199: 196: 193: 188: 184: 180: 177: 173: 165: 162: 159: 156: 153: 150: 147: 123: 120: 117: 114: 111: 108: 105: 102: 99: 96: 93: 68: 65: 48: 45: 25:receive window 15: 13: 10: 9: 6: 4: 3: 2: 704: 693: 690: 688: 685: 684: 682: 669: 663: 660: 647: 641: 638: 633: 629: 623: 620: 615: 611: 605: 602: 589: 583: 580: 567: 561: 558: 552: 549: 545: 542:refer to the 541: 537: 533: 529: 523: 521: 517: 511: 504: 501: 496: 477: 462: 460: 450: 446: 442: 438: 430: 428: 402: 399: 381: 377: 376:Linux kernels 367: 364:February 2016 357: 353: 349: 345: 341: 335: 334: 329:This section 327: 318: 317: 311: 309: 307: 303: 299: 298:Windows Vista 295: 291: 283: 278: 276: 269: 267: 263: 247: 240: 237: 234: 231: 228: 225: 222: 219: 211: 207: 200: 194: 191: 186: 182: 175: 171: 163: 160: 157: 154: 151: 148: 145: 136: 121: 118: 115: 112: 109: 106: 103: 100: 97: 94: 91: 82: 78: 74: 66: 64: 62: 58: 54: 46: 44: 42: 38: 34: 30: 26: 22: 662: 650:. Retrieved 646:"MS Windows" 640: 622: 614:the original 604: 592:. Retrieved 582: 570:. Retrieved 560: 551: 539: 535: 531: 527: 502: 494: 492: 471: 434: 414: 408:sudosysctl-w 400: 374: 361: 338:Please help 330: 294:Windows 2000 287: 273: 264: 137: 70: 61:flow control 50: 20: 18: 348:Wikiversity 47:TCP windows 681:Categories 356:Wikivoyage 632:Microsoft 461:command: 352:Wikibooks 331:contains 302:Windows 7 232:× 201:× 192:− 107:× 652:July 11, 594:July 11, 572:July 11, 449:Mac OS X 43:(LFNs). 512:Sources 441:OpenBSD 437:FreeBSD 396:man tcp 290:Windows 284:Windows 526:Here, 459:sysctl 445:NetBSD 346:it to 292:since 167:  67:Theory 35:  538:, or 354:, or 312:Linux 110:0.513 654:2019 596:2019 574:2019 447:and 423:(or 390:and 344:move 300:and 37:7323 19:The 481:$ 466:$ 419:in 406:$ 241:384 229:535 164:440 158:725 152:073 122:500 116:769 104:000 98:500 33:RFC 683:: 630:. 534:, 530:, 519:^ 497:: 443:, 439:, 350:, 308:. 235:16 223:65 212:14 187:16 77:T1 670:. 656:. 598:. 576:. 540:T 536:G 532:M 528:K 488:0 485:= 366:) 362:( 358:. 336:. 248:) 244:) 238:, 226:, 220:= 217:) 208:2 204:( 198:) 195:1 183:2 179:( 176:= 172:( 161:, 155:, 149:, 146:1 119:, 113:= 101:, 95:, 92:1

Index

receive window
Transmission Control Protocol
RFC
7323
long fat networks
congestion window
congestion control
flow control
bandwidth-delay product
T1
round-trip time
Windows
Windows 2000
Windows Vista
Windows 7
long fat networks
instructions, advice, or how-to content
rewrite the content
move
Wikiversity
Wikibooks
Wikivoyage
Linux kernels
/proc filesystem
FreeBSD
OpenBSD
NetBSD
Mac OS X
sysctl

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.