2011-01-31 2 views
1

내 컴퓨터에는 두 개의 네트워크 어댑터가 있으며 서로 다른 서브넷에 연결되어 있습니다.프로세스의 사용자 지정 경로는 어떻게됩니까?

어댑터 A : : 10.20.30.201 어댑터 B : 10.20.31.201 나는 특별한 프로세스의 모든 나가는 데이터를 만들고 싶어

(예를 들어 프로세스) 어댑터 A. 통해 내가 즉 아래로 어댑터 A를 프로세스의 기본 경로로 지정하려고합니다.

나는 특별한 목적지에 대한 경로 테이블을 수정할 수 있음을 알고있다. 그러나 내가 여기서하고 싶은 것은 매우 다르다. 프로세스 A은 많은 다른 IP와 통신 할 수 있으며 사전에 알지 못합니다.

Winsock2는 TCP/IP 스택에서 dll을 작성하는 방법으로 LSP을 제공합니다. 나는 LSP에 익숙하지 않고 LSP가 내가 원하는 것을 할 수 있는지를 모른다.

아무도 나에게 약간의 제안을 해줄 수 있습니까, 고마워요.

+1

프로세스 A 및 B를 수정할 수있는 경우 [Windows의 소켓에 특정 네트워크 인터페이스 사용] (http://stackoverflow.com/questions/2065495/using-a-specific-network-interface-for- a-socket-in-windows). – ephemient

+0

정보를 제공해 주셔서 감사합니다. 내 상황은 조금 다르다. LSP가 도움이되는지 알고 싶습니다. LSP가 연결을 리디렉션 할 수 있지만 NIC를 선택할 수 있는지 여부는 알 수 없습니다. – xjdrew

답변

1

LSP에 빠른 배경 :

Winsock2를 API를 사용하는 응용 프로그램은,, 등 WSA-접두사 기능, 예를 들어 WSAConnect, WSASocket 함수,와 WSASend,되었던 WSARecv의 조합

여전히 응용 프로그램의 경우를 호출 이전 winsock 함수를 사용하면 이러한 함수는 장면 뒤의 Winsock2에 매핑됩니다. 예 : send()가 WSASend(), recv()에서 WSARecv() 등으로 매핑됩니다.

WSA 접두사 함수는 LSP에서 제공하는 해당 WSP 접두어 함수를 내부적으로 호출합니다. 즉, WSASend()는 WSPSend()를 호출하고 WSASocket()은 WSPSocket()을 호출합니다. 간단히 말해 WSAWhateverFunction()은 WSPWhateverFunction()을 호출합니다. 그들의 매개 변수/반환 값도 동일합니다 (별로는 아니지만 일종의).

LSP는 이러한 WSP- 접두사 기능이 구현 된 DLL입니다 (예 : 아웃 바운드/인바운드 트래픽 수정, 필터링 등. 그러나 LSP는 여전히 사용자 공간 DLL입니다. 다른 사용자 공간 프로그램과 같이 제한되어 있으며 호스트 응용 프로그램 (예 : 인터넷 브라우저)보다 높은 권한이 없습니다. 다른 프로그램에서 사용할 수있는 동일한 시스템 기능 세트에 액세스 할 수 있습니다 (예 : winsock 등이 있습니다.

결론 귀하의 프로그램이 특정 NIC로 나가는 트래픽을 지시 할 수 있다면 LSP도 그렇게 할 수 있습니다. 그렇지 않으면 LSP도 불가능합니다. 따라서 LSP는 귀하의 문제와 관련이 없습니다.

관련 문제