????? ??????? - ????? ??? ?????? ????? ??? TCP ?? Winsock

?????? ????????? ?????? ?????????
???? ???????: 214397 - ??? ???????? ???? ????? ????? ??? ???????.
????? ???? | ?? ????

?? ??? ??????

??????

????? ????? ??? ????? ??? ???????? ????? ??? TCP ????? ??????? Winsock ????? ?????. ???? ????? ?? ??? ?? ???????? ??????? ????? ?????? ???????? Nagle ? Winsock ??????? ?????? ???? ???? ??????? ??????. ????? ??? ??????? ?????? ??? ??????? ??? ???????? ???????? ?????? ?????? ????? ??? ????? ????? ?? ???????? ?????? ??? ???????? ????? ???? ???? ?? ????? Winsock.

??????? ????

?????

????? ????? ???? TCP Microsoft ???? ?????? ? ????? ???? ??? ??? ????? 200-ms. ??? ????? ACK ??????, ??? ????? ????? ???? ??? ??? ??????? ?? ??? ????? 200-ms ??? ??? ???? ???? ???????? ???????. ?????? ??????? ?? ?????? ?????????? ??????? ?????? ???? TCP Microsoft ???????? ??????? ?????? ??? ??? ????? ACK ????? ??? ??? ???????? ???? ?? ??????:
  • ??? ?? ???? ???? ???????? ?????? ??? ?????? ?????? ???? ??? ??? ???????, ??? ????? ACK.
  • ?? ???? ???????? ???????? ?? ??? ??????? ??? ACK ??? ???? ???? ???????? ?????? ?????? ?????? ???? ??? ??? ??????? ACK piggybacked ?? ???? ???????? ???? ??????? ??????.
  • ???? ?????? ?????? ???? ??? ??? ??????? ??? ????? ACK.
????? ???????? ??? ???????? ???? congest ?????? ???? ???? TCP Microsoft ???????? Nagle ???? ??????? coalesces ?????? ???? ???? ?????? ?? ??? ????????? ????? ???????? ????? ??? ????? ACK ???? ???????? ??????? ???? ????? ?? ???? ????. ???? ??? ????? ????????? ???????? Nagle:
  • ??? ??? coalesced ?????? ?????? ???? ???????? ???? ?? ???? ??????? ?????? (MTU) ? ??? ????? ???? ?????? ?????? ????? ??? ?????? ACK ?? ???? ????. ??? ???? ????? Ethernet MTU TCP/IP 1460 ????.
  • ??? ????? ?????? ???? ??????? TCP_NODELAY ?????? ???????? Nagle ???? ??? ????? ????? ???????? ???? ??? ?????? ?????? ??? ?????.
?????? ?????? ??? ???? ????????? ????? ??????? ??????? ???????? ??? Winsock ?? ????? ????????? ??? ?????? ???? Kernel Winsock. ?? ?????? ?????? ???????? ??????? ????? ?? (??? ???????? Nagle) ?????? ??? ??? ?????? ??? ?????? ??? ?????. ????? ????? ??? ?????? ?????? Kernel Winsock ????? ??? ???? ??????? ???????? ?????? SO_SNDBUF (???? 8 ???? ???? ???? ???????). ??? ???????? ???? ?????? Winsock ???? ????? ???? ?? ??? ?????? ?????? SO_SNDBUF. ?? ???? ???????? ???? ????? ??????? ?? ??????? ??? ??? ?????? ?????? ???????? ?? ??? ??????? ????? ??????? ????? ??? ?????? ?????? Kernel Winsock ? ?? ???? ??? ???????? ?? ??? ??? ????? ???? ???????. ????????? ?????? ??? ????? ??????? ?????? Winsock ?????? SO_SNDBUF ??? 0.

?????? Winsock ??????? ??????? ???? ??? ????? ????? ??? ??????? (???????? ??? ????? ??????? ?? ??????? ????? ?????? ?? ???? ?????? ?????? ?? ?????? ??? ????? ????? ??? ?? ??????? ???? ????? ?????):
  • ?? ???? ??????? ???? ????? ??????? SO_SNDBUF ???? ??????? ???? ???????? ???????? ?? ????? ??????? Winsock ????? ??? ????? ????? ??? ???????.
  • ??? ?? ???? ??????? ????? ????? ??????? SO_SNDBUF ????? ???? ??? ????? ?????? ?????? ?? ?????? ?????? Kernel ???? ???? ???????? ???????? ?? ????? ??????? Winsock ????? ??? ????? ??????? ??? ???????.
  • ?? ???? ???? ??????? ?? ????? ????? ??????? SO_SNDBUF ???? ???? ?? ???? ?? ??????? ?????? ??? ????? ?? ?????? ?????? Kernel ???? Winsock ???? ???????? ?? ????? ???????. ?? ???? Winsock ??? ????? ????? ??? ??????? ??? ??? ?????? ????? ????? ??? ??? ???? ??????? ??? ????? ??????? SO_SNDBUF ?? ??? ???? ??? ????? ?????.

???? ??????? 1

???? ????:

????? ???? Winsock TCP ?????? ??????? 10000 ??? ???? TCP Winsock ?????? ?? ????? ??????. ????? ??? ??????? ?? ?? ???? ???? 100 ????. ?????? ???? ????? ??????? ??? ???:
  • ???? ?????? ????? ??? ???. ???? ?????? recv ??? ???.
  • ????? ???? ????? ?????? ??? SO_SNDBUF 0 ??? ????? ?? ??? ?? ???? ???? ?? ??????.
  • ??????? ?????? recv ?? ????. ?????? ?????? ???? ?? ????? ?? recv 200 ???? ???? ???? ???? ?? ??? ?? ??????? recv ????.

??????:

????? ??????, ???? ?????? ??? ????? ?????? ?? ????? ???? ????? ?? ??????? ??? ??????. ?????? 10000 ???????? ?????? ?? 976 ???? ???? ?? ???????? (10000 * 100 / 1024) ? ???? ???? ?? ??? ???? ???????? ??? ??????.

???????:

???? ?? ???? ?????? ?????? ?????? TCP_NODELAY ? ???? ???????? Nagle ???? TCP ??????? ACK ??? ????? ???? ???? ??? ?????. ??? ????? ?? ???? ??? ?????? ?????? ??????? ?????? Winsock ?????? ????? ?????? SO_SNDBUF ??? 0. ????? 10000 ????? ?????? ??? ?????? ? ACK'ed ???? ????. ?? ACK ???? ???? 200-ms ???? ?? ??? ??? ???? TCP ??????:
  • ????? ???? ?????? ???? ? ????? ?? ???? ??? ????? ?? 200-ms ?????.
  • ?? ????? ?????? ??? ????? ?? ??? ??? ????? ??? ????? piggybacked ?? ACK.
  • ?? ???? ?????? ???? ???? ?? ?? ??? ?????? ????? ?????? ???????.
  • ?????? ?????? ???? ??? ??? ??????? ??? ?????? ?? ??????? ?? ACK ??? ????.

????? ?????:

???? ????? ????? ???? ???????. ?????? ???? ????? ???? ??? ??? ???????. ?????? ??? ?? ???? ?????? ??? ????? ????? ????? ??? ???? ??? 200 ms. ??? ?????? ?????? ???????? Nagle ???? ???????, ??? ??? ??? ??????? ??????? ?????? Winsock ????????? ?????? ?? SO_SNDBUF ??? 0. ????? ????? ???? TCP coalesced ???? ???? ???? ?? ???? ??????? ?????? (MTU) ? ??? ????? ???? ?????? ?????? ????? ??? ?????? ACK ?? ???? ????.

?????? ? ????????? ??? ??????? ????? ????? ??? ??? ??? ??? ????. ????? ??? ????? ???? ??? ??????. ?? ??? ??????? ?? ???? ?????? ?? ??? ?? ??? ??? 100 ???? ?????? ????? ????? 80 ?? ?? ??? ?? ???? ???? ????????. ?????? ?????? ???? ???? ????? ??? ??????? ?? ?????? ?????? ?? ???? ??? ????? ??????? ?? ??? ???? ??????? ???? ????? ??? ??? ??????? ????.

???? ??????? 2

???? ????:

??? ????? ???? TCP Winsock ??????? ?? ????? ???? TCP Winsock ????? ???? ????? ??????. ??? ??????? ??? ????? ?? ???? ??? ?????? ??? ?????? ??? ??????. ??? ??????? ??????? ?????? ??? ??? ???? ?????? ????? ????? ??????. ??? ????? ????????? ??? ?????? ????? ??? ???? ??? ?????? ?? ???? ???? ????? ????????? ????? ????? ?????? ?????? ??? ???? ????????. ???? ??? ??? ?????? ??????? ??? ?????? ??? ???? ????? ?????? ????? ???. ?????? ??????? ?? ??? ?????? ?????? SO_SNDBUF TCP_NODELAY.

??????:

????? ??????, ???? ?????? ??? ????? ?????? ?? ?????? ??? ??? ?????? ???????? ?? ???????.

???????:

???? ??? ??????? ??? ??? ????? ?????? ??????? ???? ?? ?? ???. ????? ??? ?????? ?????? ??? ?????? ?? ???? ???? ????? (?????) ?? ??? ?????? ????? ??????? ?? ?????? ??? ???? ??? ?????? ??? ???? ???????? (?????). ??? ???? ?????? ??? ??? ?????? ?????? ?????? ?????? ??????? ?????? ????? ??? ?????? ?????? ????? ?? ??????? ??????? ??? ?????? ?????? Kernel Winsock. ??? ???? ?? ???? TCP ?????? ????? ????? ?? ?????? ?????? ????? ?? kernel ??????? ??? ????? ????? ??? ???? ????? ??? ????? ??? ????. ??? ????? 200-ms ???? ??? ????? ??? ?????? ?????? ?????? ????? ?????? ? ACK ??? ??? ????? ???? ??? ??????. ?? ?????? ????? ?????? ?? ????? ????? ????? ??? ?????? ??? ???? ?? ????? 200 ms. ????? ?????? ????? ?????? ?????? ???? ?????? ??? ???? ???????? ??? ????? ?????? ???? ??? ??? ??????? ?? ???? ???????? ?????? ?? ??? ?????. ???? ACK ??????? ????? ?????? ?? ??? ??????. (???? ?? ?????? ???? ????? ??? ????? ???? ???? 200-ms ???????? ????? ????? ?? ??????? ?????? ??? ?????? ?????? ?????? ACK ???????? ??? ??????.) ????? ????? ?????? ?????? ??? ??????? ?????? ?????? ?? ???? ????? ??? ??? ?????? ????? ???? ???? ???.

????? ?????:

????? ????? ????? (????) ??? ?????? ???. ??? ??????? ????? ???? ??? ?? ??? ??? ????? ?????? ???????? ???? piggybacked ??? ????????? ?????? ACK ??? ?????? ?????? ?????? ?????. ?????? ?????? ?????? ? ?????? ?? "multiplex" ????? ????? ?????? ?????? ?? ??????? ??????? ???? ??? ?????? ??? ?????? ?? ????? "multiplex" ???????? ?????? ?????? ?? ??????? ??????? ???? ??? ??????. ?? ???? ?????? ????? ???? ??????? ???? ?????? ??????? ????? ???? ????? ??? ???????? ?????? TCP_NODELAY ???? ???? ????? ??? ????? ?????? ??? ?????? ??? ?????? ACK ?????? ???????.

??????:

????? ??? fabricated ??? ?????? ????? ??? ????? ?????? ??? ????? ????????? ???? ???? ??????. ????? ????? ???? ????? ???????? ???? ??????? ???? ???? ?? recvs ? ??? ?????? ????????? ???????:
  • ??? ?? ??? ???????? ??? ??? ??????, ??? ?? ??????? ???????? ??? ??? ???? ?????? ???? ???????? ??? ??????? ?????. ?????? ?? ???? ????? ??? ?????? ?????? Kernel Winsock ?????? ?????? ????? ??? ?? ?? ???? ?????? ?????? ???? ????. ??? ?????? ?????? ?? 8 ???? ????? ????? ???????. ????? ?? ???? kernel Winsock ???? ?? ??? ???? ??????? ?????? ???? ? ????? ?????? ??? ?????? ?????? ?????? "?" ???? ?????? ?? ??? ?? ??. ??? ?? ???? ??? ?????? ????? ???????? ?????? ??????? ?????? ???? ??? ??? ??????? 200-ms. ?????? ??????? ??? ??? ?? ?? ???? ???? ??????? ?????? ?? ??? ???? ???????? ????? ??????. ??? ??? ???? ????? ????? ???? ??? ???? ?? ??? ???? ??????? ?????? ? ???? ????? ?? ???? ???????? Nagle.
  • ??? ??? ????? ??????? ???? ??????? ???? ??????? ?? ???? ???????? ????? ???????. ???? ????????? ??? ???? ????? ????? ??????? ???? ????????? ?????? Nagle ?????? ? ????? ??????? ???????? ?????????. ??? ??? ??????? ??????? ???? ???? ???????, ??? ???? ??????? ???? ????? ???? ?????? ?? ?? "?????" ? "recvs ???? ???? ?? ???? piggybacked ?? ACK ??? ?????????.
  • ???? ???? ????? ????? ?? ???????? ?????? ?????? ????? ????? ???? TCP_NODELAY ??? ????? ???????.
  • ??? ??? ??? ???? ?? ???? ??? ???? ????? ???? ??? ????? ??? ????? ????? ???? ??? Winsock ??? ?? ?? ????? SO_SNDBUF ??? ???. ?? ???????? ?? ?????? ?????? ?????? 8 ???? ???? ????????? ?? ????? ???? ??? ??????? ????? ??????? ?? ??? ??? ????? ???? ?? ?? ????? ?? ?????? ?? ??????? ?????? ?????? Winsock ????? ???? ???? ?? ?????????. ?????? ????? SO_SNDBUF ??? ??? ???? ?????? ????????? ???? ??????? ??? ????????. ??? ?? ?????? ??? ????? ???? ?????? ???? ??? ???????? ???????? ?? ????? ??????? ?????? (???? ?? ??????? ??????? ?? ?? ??? ????) ?? ??????? I/O.
  • ??? ?? ??? ??? ????? ???????? ???? ???? ??????? UDP.

?????

?????? ??? ???? ?? ????????? ??? "??????? ???????" ???????? Nagle ?????? ???? ?? ???:

Braden R. [1989] RFC 1122 ? ??????? ???? ????? ?????? Hosts ??????--????? ??????? ???.

???????

???? ???????: 214397 - ????? ??? ??????: 05/????? ???????/1426 - ??????: 3.1
????? ???
  • Microsoft Platform Software Development Kit-January 2000 Edition
????? ??????: 
kbmt kbdswnet2003swept kbapi kbinfo kbip kbnetwork kbwinsock KB214397 KbMtar
????? ????
???: ??? ????? ??? ?????? ???????? ?????? ????? ???? ????? ?????????? ????? ?? ????????? ?????? ????. ???? ???? ?????????? ???? ?? ???????? ???????? ?????? ????????? ????? ????????? ???????? ????? ???????? ?????? ?? ?????? ??? ?? ???????? ???????? ?? ????? ??????? ?????? ??? ??????? ?????? ??. ?????? ?? ???? ??? ??????? ???????? ????? ?? ???? ????? ?????? ??? ????? ??? ????? ??????? ?? ????? ?? ?????? ??? ??? ??????? ??????? ?? ????? ????? ????? ????? ?????. ?? ????? ???? ?????????? ??????? ??? ????? ?? ??????? ?? ????? ?????? ?? ??? ????? ?? ????? ??????? ?? ???????? ?? ??? ???????. ???? ???? ?????????? ???????? ??? ????? ?????? ??????? ??????
???? ??? ????? ??????? ?????? ??????????214397

????? ???????

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com