Може ли TCP порт да се използва повторно преди изтичането на TIME-WAIT?

Имаме C# FTP клас, който работи чудесно, но ни изчерпват TCP портовете, защото всички те са в състояние TIME-WAIT и не могат да бъдат използвани повторно. Можем да намалим TIME-WAIT по подразбиране в системния регистър, но бихме предпочели да използваме повторно портовете.

И така, предвид блога по-долу: http://blogs.technet.com/b/networking/archive/2010/08/11/how-tcp-time-wait-assassination-works.aspx

В ситуация, в която сокетът от страната на сървъра преминава в състояние TIME-WAIT и клиентът се свързва отново със сървъра в рамките на 2MSL (време по подразбиране TIME-WAIT), има 2 неща, които могат да се случат:

1. Сървърът няма да отговори на SYN пакетите от клиента, защото сокетът е в състояние TIME-WAIT.

2. Сървърът може да приеме SYN от клиента и да промени състоянието на сокета от TIME-WAIT на ESTABLISHED. Това е известно като TIME-WAIT убийство или въплъщение на предишна връзка.

Ключът към сценарий „2“ по-горе е, че ISN (първоначалният пореден номер) на изпратения SYN трябва да бъде по-висок от най-високия пореден номер, използван в предишната сесия. Ако ISN не е както се очаква, сървърът няма да отговори на SYN и сокетът ще изчака 2MSL, преди да бъде отново достъпен за използване.

Опитвам се (програмно в C#) да намеря начин винаги да изпращам SYN, изпратен с по-висок номер от най-високия пореден номер, използван в предишната сесия.

Възможно ли е да се постигне това?


person Max    schedule 27.03.2014    source източник


Отговори (2)


Windows вече внедрява първоначално по-високи поредни номера за вас, не е нужно да правите нищо специално, за да получите тази функционалност. Статията сте се свързали със състояния толкова много:

TCP/IP внедряването на Microsoft използва тази функционалност. ... TCP TIME-WAIT Assassination работи много добре между Windows системи и може да не работи както се очаква, когато Windows комуникира с хостове, изпълняващи други TCP/IP реализации. RFC1337, Опасности от TIME-WAIT Assassination, обсъжда възможни клопки: http://tools.ietf.org/rfc/rfc1337.txt

person Remy Lebeau    schedule 28.03.2014

ISN е произволен по дизайн. Не можете да го контролирате от API.

person user207421    schedule 27.03.2014