라우터는 패킷을 전달할 위치를 어떻게 알 수 있습니까


68

로컬 주소 (192.168.0. #)를 가진 여러 컴퓨터가 라우터에 연결되어 있고 각 컴퓨터가 웹 브라우저를 열고 HTTP를 통해 페이지를 요청하는 경우 이러한 TCP : 80 패킷이 전송되면 라우터는 로컬 주소를 서버가 적절한 주소에 응답 할 수 있도록 라우터의 고정 IP (예 : 공급자가 지정한 IP)

그러나 TCP 헤더에는 로컬 IP 주소가 포함되어 있지 않고 모든 컴퓨터가 포트 80을 사용하고 있기 때문에 라우터는 HTTP 응답을 전달할 컴퓨터를 어떻게 알 수 있습니까?

이것은 MAC 주소와 관련이 있습니까?

이것이 정확히 어떻게 작동합니까?

답변:


78

대부분의 가정용 라우터는 PAT라는 특수한 NAT 케이스를 사용합니다.

또한 NAPT 또는 IP Masquerading이라고도합니다. 후자의 세 용어는 모두 일반적으로 사용되는 것을 의미합니다. (약어-네트워크 주소 변환 / 포트 주소 변환 / 네트워크 주소 포트 변환)

내부 시스템에서 패킷이 나오면 알고있는 것처럼 소스 주소가 다시 작성됩니다. 소스 포트 도 일반적으로 높은 수로 변경되고 라우터는 주소 변환 테이블을 유지합니다.

예를 들어 www.google.com으로 이동하는 클라이언트 컴퓨터가 있다고 가정 해 보겠습니다. 컴퓨터 (예 : 192.168.1.100)는 임의의 소스 포트를 사용하여 해당 주소를 찾아 내부 IP 주소에서 포트 80의 72.14.204.147로 TCP 연결합니다.

컴퓨터의 연결은 다음과 같습니다.

192.168.1.100:37641   <-->  72.14.204.147:80

컴퓨터는 패킷을 라우터로 전송하여 새로운 임의의 높은 포트를 선택하고 패킷을 다시 씁니다. 각 아웃 바운드 연결은 라우터에서 자체 포트를 얻습니다. 그런 다음 라우터는 연결 테이블에 패킷을 추가 한 후 ISP에 패킷을 전달합니다.

PrivateIP        PrivatePort   PublicIP      PublicPort    Remote          RemotePort
-------------    ----------    -----------   -----------   ----------      -----------
192.168.1.100    37641         *10.6.23.5    59273         72.14.204.147   80

* 예를 들어, 10으로 시작하는 주소를 사용했지만 공개적으로 라우팅 할 수는 없습니다. 테이블도 다소 단순화되었습니다.

Google의 연결은 다음과 같습니다.

10.6.23.5:59273   <-->  72.14.204.147:80

Google은 포트 59273에서 10.6.23.5로 응답을 보냅니다. 그러면 라우터는 표에서 해당 정보를 찾아 패킷을 192.168.1.100:37641로 전달합니다.


3
요약하자면 라우터는 포트 번호를 사용하여 로컬 네트워크 외부에서 네트워크 내부로가는 내용을 기억합니다. 그러나 이것은 www.google.com초기 요청을 보내지 않으면 어떻게 찾을 수 있는지 설명하지 않습니다 . 다시 말해, 처음 라우터를 통해 요청을 보낸 경우 메시지는 라우터를 통해서만 나에게 도달 할 수 있습니다
CodyBugstein

2
컴퓨터가 요청을 시작하지 않은 경우 @Imray google.com (또는 인터넷의 다른 곳)에서 컴퓨터를 찾을 수 없습니다. 이것이 라우터를 갖는 것이 많은 보안을 추가하는 이유입니다.
Jason

6
@Jason 위험한 신화입니다. 방화벽이 있으면 보안이 강화됩니다. 일반적인 SoHo 라우터의 역할은 작동을 멈추지 않고 작동시키는 것입니다. 괜찮다 여기에 더 많은 정보를 얻을 수 있습니다.
David Schwartz

1
@Jason 귀하의 의견을 삭제하지 않는 것이 좋습니다. 읽을 가치가없는 토론이었던 내용을 읽을 수는 없습니다.
barlop

2
좋은 예입니다. 그러나 이것은 모든 높은 포트가 라우터에서 항상 열려 있음을 의미합니까?
jiggunjer 2019

1

로컬 네트워크와 나머지 인터넷 사이의 라우터는 NAT라는 기술을 사용합니다.

간단한 사촌 기본 NAT의 단점에 대한 단어와 함께 NAPT에 대한 TCP / IP Illustrated Volume 1에서 발췌 한 내용은 다음과 같습니다.

기본 NAT는 IP 주소 다시 쓰기 만 수행합니다. 본질적으로 개인 주소는 종종 ISP가 제공하는 풀 또는 공용 주소 범위에서 공용 주소로 다시 작성됩니다. 이 유형의 NAT는 IP 주소의 필요성을 크게 줄이는 데 도움이되지 않기 때문에 가장 널리 사용되지 않습니다. 전 세계적으로 라우팅 가능한 주소의 수는 인터넷에 동시에 액세스하려는 내부 호스트의 수와 같거나 커야합니다. 훨씬 대중적인 접근 방식 인 NAPT는 전송 계층 식별자 (예 : TCP 및 UDP 포트, ICMP 쿼리 식별자)를 사용하여 NAT의 개인 쪽에서 특정 패킷과 연결된 호스트를 구별합니다 (그림 7- 참조). 4). 이를 통해 많은 수의 내부 호스트 (예 : 제한된 수의 공개 주소를 사용하여 인터넷에 동시에 액세스 할 수 있습니다. 특정 상황에서 구별이 중요하지 않은 경우 일반적으로 NAT라는 용어를 사용하여 기존 NAT와 NAPT를 모두 포함합니다.

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