라우터는 패킷을 보낼 장치를 어떻게 알 수 있습니까? [복제]


15

내 질문은 인터넷을 통한 이동 방법이 아니라 라우터를 통해 특정 장치로 이동하는 방법과 관련이 있습니다. 홈 네트워크의 라우터에 연결된 모든 장치는 동일한 외부 IP를 갖습니다. 장치 A가 페이지를로드하고 패킷이 장치 A의 외부 IP를 알고 라우터에 도달 할 수 있기 때문에 패킷이 외부 소스에서 라우터로 전송된다고 가정하십시오. 그러나 이제 장치 A에 어떻게 도달합니까? 라우터가 장치 B 대신 장치 A로 ​​보내는 것을 어떻게 알 수 있습니까?

나는 이것이 NAT와 관련이 있다고 생각하지만, 나는 이것을 달성하기 위해 NAT 가하는 일에 대한 논리적 설명을 찾고 있습니다.


매우 구체적인 답변을 드릴 수는 없지만 라우터는 요청이 어디로 가고 누가 보낸지 추적합니다. 외부 소스가 응답하면, 라우터는 단순히 어떤 장치가 외부 소스에 연결을 시도했는지 확인한 후 해당 장치로 응답을 전달합니다. 자세한 정보가 필요하면 NAT를 살펴보십시오.
잭 험프리

이 질문은 Superuser.com
TimothyP에

답변:


11

외부 사이트에 대한 연결을 시작할 때, 라우터는 매번 다른 소스 포트 번호를 사용하고 있습니다 ... 그런 다음 소스 포트 번호 (데이터가 리턴되는 위치)를 어느 머신에서 검색 할 키로 사용합니다 요청이 발생한 내부 네트워크 이것을 라우터에서 사용할 수있는 네트워크 주소가 여러 개인 네트워크 주소 변환과는 반대로 PORT 주소 변환이라고합니다.


1
이것은 TCP 연결과 같은 것을 설명하지만 일부 응용 프로그램은 연결이 없습니다. UDP 패킷은 어떻습니까? 하나의 장치에서 서버를 호스팅하는 경우 연결에 TCP를 사용하더라도 라우터가 서버의 장치를 알지 못하면 연결을 초기화 할 수 없습니다.

1
UDP 연결의 경우 일반적으로 특정 장치로 라우팅하는 데 사용할 수있는 라우터의 포트를 미리 정의해야합니다. 이것은 라우터의 "포트 포워딩"기능으로, 들어오는 UDP 패킷 (보내는 메시지 또는 새로운 들어오는 패킷에 대한 응답으로)과 들어오는 TCP 패킷 (예 : 대신 원격 클라이언트에 의해 시작된 패킷)에 사용될 수 있습니다. 자신의 PC의).
마이클 브레이

1

일반적으로 홈 네트워크의 모든 장치는 내부 주소가 다릅니다 (개인 주소, 항상 192.168.0.1 ~ 192.168.0.255).

홈 네트워크에서 패킷을 보내면 (장치 A : 192.168.0.123이라고 함) 라우터를 통과 할 때 라우터는 개인 주소를 라우터의 외부 주소 (140.191.2.5로 가정)로 변환하고 라우터도이를 기록합니다 NAT의 매핑입니다.

응답이 되돌아 오면 라우터가 NAT를 맵핑하고 원래 소스가 장치 A임을 찾으십시오.

따라서 장치 A는 결국 패킷을받습니다.

이것은 개념 일 뿐이며, 자세한 내용은 wiki : NAT를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.