진단 목적으로 Windows에서 TCP/IP 스택의 멀티캐스트 지원을 완전히 비활성화하고 싶습니다. 어떻게 해야 하나요?
Windows XP에서 이 작업을 수행하려고 하지만 아무것도 제공할 수 없는 경우 다른 버전에 대한 지침도 허용됩니다(서버 및 클라이언트 SKU, 모든 변형, 버전 전반에 걸쳐).
답변1
Win7 방화벽에는 IGMP 차단 옵션이 있습니다.
인바운드 규칙, 새 규칙, 사용자 정의를 선택하고 프로토콜을 선택한 다음 IGMP를 선택합니다. 아웃바운드 규칙, 새 규칙, 동일
XP 방화벽에는 그러한 옵션이 없습니다. ICMP는 알고 있지만 IGMP는 모릅니다.
다음은 Morbid의 답변에 나와 있습니다.
윈7
http://technet.microsoft.com/en-us/library/cc957547.aspx HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IGMPLevel <-- set to 0
그것은 일종의 병적의 "대답" 내에 있습니다.
IGMP레벨을 0으로 설정
WinXP
http://support.microsoft.com/kb/314053/en-gb
모든 TCP/IP 매개변수는 두 개의 서로 다른 하위 키 중 하나 아래에 있는 레지스트리 값입니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
그리고
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ID for Adapter
해당 키에서 IGMPLevel을 0으로 설정합니다.
하지만 테스트하지는 않았으며 내 시스템, Win7 시스템 또는 XP 시스템에서는 키가 있지만 해당 키의 레지스트리에 이름(IGMPLevel)이 없습니다. 그래서 내 경우에는 그것을 만들어야 합니다.
답변2
* 질문을 잘못 읽었을 때 올바르게 수정하여 답변을 반영하도록 업데이트되었습니다. ;) 2014.07.25
Windows용 TCP/IP 스택에서 멀티캐스트를 비활성화하려면 어떻게 해야 합니까?
진단 목적으로 Windows에서 TCP/IP 스택의 멀티캐스트 지원을 완전히 비활성화하고 싶습니다. 어떻게 해야 하나요?
Windows XP에서 이 작업을 수행하려고 하지만 아무것도 제공할 수 없는 경우 다른 버전에 대한 지침도 허용됩니다(서버 및 클라이언트 SKU, 모든 변형, 버전 전반에 걸쳐).
제가 멀티캐스트 부분을 무시한 것 같습니다. 한동안 문제가 없었습니다. 멀티캐스트에 관한 한 몇 가지 옵션이 있는 것 같습니다.
여기서는 다음을 참조하세요.Windows 7 SP1이 NIC에서 멀티캐스트를 비활성화하도록 강제 설정
그리고 여기:Windows XP용 TCP/IP 및 NBT 구성 매개변수(Q314053)
요약
이 문서에서는 표준 TCP/IP 네트워크 프로토콜을 구현하는 프로토콜 드라이버 Tcpip.sys를 구성하는 데 사용되는 모든 레지스트리 매개 변수를 정의합니다.
Windows XP용 TCP/IP 프로토콜 제품군 구현은 레지스트리에서 모든 구성 데이터를 읽습니다. 이 정보는 설치 프로세스의 일부로 제어판의 네트워크 도구를 통해 레지스트리에 기록됩니다. 이 정보 중 일부는 DHCP 클라이언트 서비스가 활성화된 경우 DHCP(동적 호스트 구성 프로토콜) 클라이언트 서비스에서도 제공됩니다.... 더 읽어보세요.
레지스트리를 편집하는 방법에 대한 자세한 내용은 레지스트리 편집기(Regedit.exe)의 "키 및 값 변경" 도움말 항목 또는 Regedt32.exe의 "레지스트리에서 정보 추가 및 삭제" 및 "레지스트리 데이터 편집" 도움말 항목을 참조하십시오. . 레지스트리를 편집하기 전에 백업해야 합니다. Windows NT 또는 Windows 2000을 실행하는 경우 ERD(응급 복구 디스크)도 업데이트해야 합니다.
이러한 매개변수를 변경하려면 다음 절차를 따르십시오.
Start Registry Editor (Regedit.exe).
From the HKEY_LOCAL_MACHINE subtree, go to the following key:
>\SYSTEM\CurrentControlSet\Services
Add a value to the key as described in the appropriate
entry below by clicking Add Value on the Edit menu, typing
the value, and then setting the value type under Data Type .
Click OK .
Quit Registry Editor.
Restart the computer to make the change take effect.
모든 TCP/IP 매개변수는 두 개의 서로 다른 하위 키 중 하나 아래에 있는 레지스트리 값입니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Tcpip\Parameters
Tcpip\Parameters\Interfaces\ ID for Adapter
여기서 어댑터의 ID는 TCP/IP가 바인딩된 네트워크 어댑터를 나타냅니다. 어댑터 ID와 네트워크 연결 간의 관계는 Adapter \Connection의 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network{4D36E972-E325-11CE-BFC1-08002BE10318}\ ID를 검사하여 확인할 수 있습니다. 이러한 키의 이름 값은 네트워크 연결 폴더에 사용되는 네트워크 연결에 대한 표시 이름을 제공합니다. 후자 키 아래의 값은 각 어댑터에 따라 다릅니다. DHCP 및 정적으로 구성된 값이 모두 있을 수 있는 매개변수는 시스템/어댑터가 DHCP로 구성되었는지 여부와 정적 재정의 값이 지정되었는지 여부에 따라 존재할 수도 있고 존재하지 않을 수도 있습니다. 이러한 매개변수의 변경 사항을 적용하려면 시스템을 다시 시작해야 합니다....
이것이 당신이 찾고 있는 열쇠입니다. 나는 믿습니다:
>IGMPLevel
Key: Tcpip\Parameters
Value Type: REG_DWORD - Number
Valid Range: 0,1,2
Default: 2
이 매개변수는 시스템이 IP 멀티캐스팅을 지원하고 인터넷 그룹 관리 프로토콜에 참여하는 정도를 결정합니다. 레벨 0에서는 시스템이 멀티캐스트 지원을 제공하지 않습니다. 수준 1에서는 시스템이 IP 멀티캐스트 패킷만 보낼 수 있습니다. 수준 2에서는 시스템이 IP 멀티캐스트 패킷을 보내고 IGMP에 완전히 참여하여 멀티캐스트 패킷을 수신할 수 있습니다.
멀티캐스트를 지원하지 않으려면 레지스트리 키를 0으로 설정해야 합니다.
이것이 이전 답변보다 조금 더 도움이 되기를 바랍니다. ㅋㅋㅋ :)
수정되었습니다. 아래를 무시하세요.
"Windows용 TCP/IP 스택을 어떻게 비활성화합니까?"라는 질문에 대한 답변:
당신은 할 수 없습니다! 다시 설치하거나 재설정할 수 있습니다.
"Windows XP에서는 TCP/IP 스택이 운영 체제의 핵심 구성 요소로 간주되므로 TCP/IP를 제거할 수 없습니다."
"극단적인 경우 이 문제에 대한 최선의 해결책은 IP 스택을 다시 설치하는 것입니다. 그러나 NetShell 유틸리티를 사용하면 TCP/IP 스택을 재설정하여 운영 체제가 설치되었을 때 존재했던 상태로 복원할 수 있습니다."
여기도 참조하세요: "VC++에서 Windows TCP/IP 스택을 비활성화하는 방법 [프로그래밍 방식으로]"아래에 인용된 것처럼...
VC++에서 Windows TCP/IP 스택을 비활성화하는 방법 [프로그래밍 방식으로]
VC++에서 Windows TCP/IP 스택을 비활성화하는 방법을 알고 싶었습니다. [프로그래밍 방식으로]
우리는 winpcap을 사용하여 일부 원시 소켓 프로그래밍을 수행하고 있습니다. 따라서 우리 애플리케이션에는 Windows TCP/IP 스택이 필요하지 않으며 애플리케이션이 시작되는 순간 이를 제거하고 싶습니다.
도와주세요.
미리 감사드립니다.
TCP/IP 스택은 최신 버전의 MS Windows를 포함한 모든 최신 OS의 필수 부분입니다. 에 설명된 대로MS 기술 자료 Q299357(Win XP에 대해 말함):
TCP/IP는 Windows의 핵심 구성 요소이므로 제거할 수 없습니다.
어쨌든 가능하더라도 TCP/IP(대부분 일종의 네트 통합, 자동 업데이트 등을 포함하고 있기 때문에 가장 현대적인 소프트웨어임)를 사용하는 프로그램은 작동하지 않으며 대부분은 아마도 알 수 없는 방식으로 실패할 것입니다. 아무도 그 구성을 테스트하지 않았기 때문입니다.
그래서 짧은 대답은: 하지 마세요.
TCP/IP 네트워킹을 제거해야 한다고 생각하는 이유를 설명해 주시겠습니까? 그러면 우리가 당신을 도울 수 있을 것입니다.
편집하다:
아래 귀하의 의견에 따르면, TCP/IP 스택의 ARP 처리를 우회/비활성화하려면 WinPcap에서 이를 허용해야 합니다. 그렇지 않은 경우 Windows 네트워크 드라이버를 직접 작성해야 할 수도 있습니다. 다시 말하지만 이것은 매우 복잡하고 거슬리는 것처럼 보입니다. 귀하의 애플리케이션이 수행하는 작업과 왜 저수준 네트워킹을 다루어야 하는지 설명해 주시겠습니까?
내 친구가 당신의 질문에 대한 대답이라면 쓸데없는 것 같습니다.아니, 넌 못해.
답변3
XP 레지스트리에서 해당 키를 찾고 있었는데 찾을 수 없어서 더 나은 해결책을 찾았습니다.
관리자 권한 명령 프롬프트에서:
C:\Windows\system32> netsh
netsh>firewall
netsh firewall>set multicastbroadcastresponse disable
netsh firewall>set multicastbroadcastresponse mode=disable profile=all
구성이 괜찮은지 확인하려면 다음을 작성하세요.
netsh firewall>show multicastbrodcastresponse
원천:Microsoft 웹사이트 – “Windows 방화벽을 위한 Netsh 명령”
IGMPLevel 레지스트리 키는 위에 표시된 이미지처럼 XP에는 존재하지 않습니다. 그러나 이 레지스트리 키가 존재하려면 생성되어야 합니다.
그렇지 않은 경우 XP의 레지스트리 키는 "UseZeroBroadcast" 입니다. 어쨌든 내 XP에서 작동하기 전에 말한 것처럼 적어도 Wireshark는 224.0.0.1 또는 239.255.255.255에 대한 브로드캐스트 패킷을 감지하지 못합니다.
중요: netsh firewall
최신 버전의 Windows에서는 더 이상 사용되지 않습니다. 대신 사용하세요 netsh advfirewall firewall
. netsh advfirewall firewall
대신 명령을 사용하는 방법에 대한 자세한 내용은 netsh firewall
다음을 참조하세요.KB 문서 947709: " Windows Server 2008 및 Windows Vista에서 Windows 방화벽 동작을 제어하기 위해 netsh advfirewall firewall
컨텍스트 대신 컨텍스트 를 사용하는 방법 ".netsh firewall