제2의 비엔지니어 인생관을 꿈꾸며

Posted
Filed under Study
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756  (http://support.microsoft.com/kb/322756/ ) How to back up and restore the registry in Windows


The default maximum number of ephemeral TCP ports is 5000 in the products that are included in the "Applies to" section. A new parameter has been added in these products. To increase the maximum number of ephemeral ports, follow these steps:
  1. Start Registry Editor.
  2. Locate the following subkey in the registry, and then click Parameters:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. On the Edit menu, click New, and then add the following registry entry:
    Value Name: MaxUserPort
    Value Type: DWORD
    Value data: 65534
    Valid Range: 5000-65534 (decimal)
    Default: 0x1388 (5000 decimal)
    Description: This parameter controls the maximum port number that is used when a program requests any available user port from the system. Typically, ephemeral (short-lived) ports are allocated between the values of 1024 and 5000 inclusive. After the release of security bulletin MS08-037, the behavior of Windows Server 2003 was changed to more closely match that of Windows Server 2008 and Windows Vista. For more information about Microsoft security bulletin MS08-037, click the following article numbers to view the articles in the Microsoft Knowledge Base:
    951746  (http://support.microsoft.com/kb/951746/ ) MS08-037: Description of the security update for DNS in Windows Server 2008, in Windows Server 2003, and in Windows 2000 Server (DNS server-side): July 8, 2008
    951748  (http://support.microsoft.com/kb/951748/ ) MS08-037: Description of the security update for DNS in Windows Server 2003, in Windows XP, and in Windows 2000 Server (client side): July 8, 2008
    953230  (http://support.microsoft.com/kb/953230/ ) MS08-037: Vulnerabilities in DNS could allow spoofing
  4. Exit Registry Editor, and then restart the computer.
Note An additional TCPTimedWaitDelay registry parameter determines how long a closed port waits until the closed port can be reused.

소켓의 경우 어플리케이션에서 close를 시켜도 OS에서 일정시간 TIME_WAIT 상태를 만들고 있음. 디폴트 시간이 240초임. 이시간을 최소로 줄여서 TIME_WAIT 상태를 빨리 없애야됨. 이시간은 최소 30초에서 최대 240초임. 이시간을 줄이기 위해서는 레지스트리를 수정해야됨. 수정방법은 서버의 레지스트리에서 내 컴퓨터 /HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 항목에서 새로만들기를 하여 DWORD값으로 TcpTimedWaitDelay를 추가해야한다.
  
   이름은 TcpTimedWaitDelay
   종류는 REG_DWORD
   데이터는 십진수로 30을 넣는다.

위에도 설명 나왔듯 1024-5000 까지만 디폴트로 설정되어 있어서 네트워크 인아웃이 많은 서버라면 위 설정을 고려해 봐야 한다. 포트할당을 더이상 못하면 통신을 못하는 경우가 발생하여 리부팅을 해야하는 상황도 발생하기도 하고 그리고 세션이 빠지지 않는 상황도 발생하여 NT서버는 어쩔수 없다라며 혀를 차기도 하는 사례가 많기도 하다. 그래서 ISA서버단이나 호스팅 서버를 하는 NT서버라면 위설정을 잡아주고 운영을 해야만 문제가 없다. 당나귀 같은 P2P 맨날 돌리다 보면 가끔 일부 인바운드만 되고 아웃바운드는 전혀 안되는 상황이 발생하기도 한다. 밑에 Note에 보면 타임웨잇 딜레이 값을 넣어주라는것도 있는데 그것 역시 넣어주면 좋다. 쓸데없이 지연세션을 오래 남길 필요는 없지 않나라는 생각을 해보며...

2009/10/19 13:58 2009/10/19 13:58