라우터는 연결을 어떻게 라우팅합니까?

라우터는 연결을 어떻게 라우팅합니까?

라우터는 연결을 어떻게 추적합니까? http 요청을 보내면 라우터로 이동한 다음 인터넷을 통해 다른 라우터 등으로 전송됩니다. 그러면 서버로 가는 것을 어떻게 알 수 있습니까? 로드 밸런서로 포트가 전달됩니까? 마지막으로 패킷이 돌아올 때 패킷이 PC가 아닌 라우터로 다시 전송되었기 때문에 적이 PC로 돌아가는 것을 어떻게 알 수 있습니까? 라우터 외부에서 라우터에 의해 제어되는 PC에 연결을 설정할 수 있습니까? 즉, 인터넷에 직접 연결되지 않은 PC로 패킷을 보낼 수 있습니까?

답변1

나는 이와 같은 것을 찾는 누군가를 돕기 위해 이 오래된 질문에 대답하려고 노력하고 있습니다. 또한 제가 실수한 것이 있으면 알려주세요.

컴퓨터에서 인터넷의 웹 서버로 정보가 흐르기 위해서는 다양한 구성 요소, 장치 및 알고리즘이 사용되지만 이를 가능하게 하는 네트워킹 알고리즘에 중점을 둘 것입니다.

나는 컴퓨터와 인터넷 웹 서버 사이의 정보 흐름을 가능하게 하는 데 가장 큰 역할을 하는 두 가지 인터넷 기술이 있다고 믿습니다. 라우팅 프로토콜 및 NAT.

라우팅 프로토콜과 NAT가 작동하는 데이터 단위인 IP 패킷에 중점을 둘 것입니다.

  1. 귀하의 브라우저에서 인터넷 서버로 전송된 IP 패킷이 홈 라우터에 도달하면 검사를 거쳐 원본 IP가 원래 보낸 사람의 로컬 LAN IP에서 홈 라우터의 공용 IP로 변경된 후 목적지로 라우팅됩니다. IP. 이 번역은연결 테이블.이것이 NAT의 일이다.
  2. 대상이 라우터의 공용 IP 네트워크의 일부인 경우 해당 IP로 전송되고 그렇지 않은 경우 라우팅 테이블과 일치하는지 평가됩니다. 라우터가 하나를 찾을 수 없으면 패킷을 자체 기본 게이트웨이로 전달합니다. 이 프로세스는 결국 라우터가 일치하는 항목을 찾을 때까지 계속됩니다.라우팅 프로토콜이 작동하는 곳입니다..
  3. 경로를 찾을 수 없으면 ICMP Destination Unreachable-Host Unreachable 메시지가 소스 호스트로 전송됩니다.
  4. 최종 호스트가 발견되면 캡슐화 해제된 IP 패킷을 수락하고 포함된 요청을 처리한 다음 응답을 다시 보냅니다. 응답의 대상 IP에는 소스 라우터의 IP가 포함됩니다.
  5. 응답은 발신자에게 도달할 때까지 동일한 프로세스를 따르고 요청이 이어집니다. 패킷이 목적지까지 특정 경로를 사용할 때 반드시 동일한 경로를 다시 사용할 필요는 없습니다.
  6. 대상 인터넷 IP에 도달하면 라우터는 들어오는 트래픽을 연결 테이블과 일치시키고 역변환을 수행한 다음 패킷을 적절한 시스템으로 전달합니다.

이는 IP 패킷이 브라우저에서 대상 웹 서버로 흐르는 방식입니다.

라우터 연결 추적 흐름도

  • 내가 연 페이지가 페이지를 작성하기 위해 4개의 다른 요청을 사용했다고 생각하기 때문에 4개의 연결이 있습니다.
  • 연결을 시작하는 클라이언트는 사용 가능한 모든 소스 포트를 사용할 수 있습니다. 이 포트는 두 시스템이 연결 종료에 동의할 때까지 일시적으로 사용되도록 예약됩니다. IANA는 소위 '임시 포트'에 대해 49152~65535 범위를 사용할 것을 제안합니다. 웹 서버는 일반적으로 HTTP 트래픽의 기본 포트인 포트 80에서 실행되므로 클라이언트는 웹 페이지 보기 요청을 해당 포트로 보냅니다.
  • 홈 라우터 스윔레인은 라우터 연결 테이블의 스냅샷입니다.
  • SuperUser 서버 스윔레인에는 서버와 설정된 연결의 스냅샷이 있습니다.

연결 테이블은 주로 소스 IP, 소스 포트, 대상 IP, 대상 포트의 조합을 사용하여 고유성을 보장합니다. 분명히 고유성을 결정하는 가장 중요한 요소는 소스 포트이므로 다른 내부 호스트가 기존 소스 포트를 사용하려고 시도하는 경우 라우터는 해당 포트를 변경하고 연결 테이블에서 변경 사항을 기록합니다.

이것은 이것을 제외한 모든 질문에 답해야 합니다.라우터 외부에서 라우터에 의해 제어되는 PC에 연결을 설정할 수 있습니까? 즉, 인터넷에 직접 연결되지 않은 PC로 패킷을 보낼 수 있습니까?

특정 인터넷 IP에 대해 라우터에서 사용되는 NAT 포트를 알고 있고 라우터가 NAT 포트를 열어 놓은 동안 IP 패킷을 스푸핑하여 라우터로 보낼 수 있다면 이론적으로는 가능하지만 대부분의 경우 의 라우터는 IP 패킷의 고유성과 신뢰성을 식별하기 위해 더 많은 매개변수를 사용합니다.

나는 답을 구성하기 위해 다음 참고 자료를 사용했습니다.

답변2

라우터는 간단하게 게이트웨이나 인터페이스를 통해 네트워크를 연결합니다.

Do I know where this packet should go?
  yes - is it one of mine?
    yes - send to appropriate interface.
    no  - send on to next gateway
  no  - return a packet saying unreachable

홈 라우터는 연결 추적 소프트웨어를 실행합니다. 이는 네트워크의 컴퓨터가 인터넷에서 통신한 연결 목록을 유지합니다. 따라서 응답을 반환할 주소와 포트를 알게 됩니다.

TCP 패킷에는 원래 시스템의 주소를 포함할 수 있는 특수 필드가 있습니다. 라우터는 매스커레이딩(masquerading)이라는 방법을 사용하여 반환 주소를 삽입하고 대상 컴퓨터에도 이를 포함합니다. 이렇게 하면 연결 추적기 작업을 약간 줄일 수 있을 뿐만 아니라 내부 IP 주소를 원격 서버에 공개할 수도 있습니다.

반면에 UDP 패킷을 반환하는 것은 라우터의 연결 추적 모듈에 의존하여 원래 시스템에 응답을 반환합니다. 몇 년 전까지만 해도 해결하기 어려운 문제였습니다.

새로 들어오는 연결에는 연결 추적기에 항목이 없으므로 라우터는 해당 유형의 패킷에 대한 특정 전달 지침이 제공되지 않는 한 이를 어디로 보낼지 알 수 없으며 모든 라우터에서 다음을 수행할 수 있는 방법을 찾을 수 있습니다. 예를 들어 네트워크의 어떤 시스템이 포트 80에 대한 새 요청을 수신할지 지정합니다.

TCP는 복잡하고 놀라운 상태 기반 프로토콜입니다. 패킷은 동일한 경로를 사용할 필요가 없으며, 더 작은 조각으로 분할될 수 있고, 순서 없이 도착할 수 있으며, 오류 수정을 통해 개별 패킷을 재전송하도록 요청하며, 데이터 스트림은 성능에 영향을 미칠 정도로 너무 크지 않는 한 어떤 어려움도 인식하지 못한 채 양쪽 끝에서 응용 프로그램을 다시 조립합니다. 이를 통해 많은 박사 학위를 취득했습니다!

답변3

라우팅을 이해하려면 먼저 라우팅에 대한 이해가 필요합니다.OSI 모델그리고 당신은 또한 이해하고 있어야합니다CIDR.

이것은 매우 기본적인 것입니다:

표준 홈 네트워크에 있는 컴퓨터에서 패킷이 나가면 컴퓨터는 자신이 사설 네트워크임을 알고 CIDR로 인해 최종 목적지가 네트워크 외부에 있음을 인식하여 기본 게이트웨이로 패킷을 보냅니다. 기본 게이트웨이는 IP를 살펴보고 그것이 대상 네트워크에 도달할 때까지 라우터 체인 위로 보냅니다(패킷 헤더의 IP 정보를 기반으로 함). 그런 다음 해당 게이트웨이는 이를 네트워크의 올바른 IP로 전달합니다. 패킷 세부 정보의 포트에 표시되며, 원단 서버/네트워크에 따라 IP만 표시되는 경우도 있습니다. 요청된 정보가 다시 전송되면 라우터는 세션을 표시하기 위해 선택된 포트로 인해 정보가 어느 컴퓨터로 가는지 알고 있으며 해당 세션이 속한 개인 IP를 알고 있습니다. 훨씬 더 많은 내용이 있지만 이는 라우팅 개념을 이해하기 위한 상당히 높은 수준의 설명입니다. 나는 다른 사람들이 내 말을 바로잡거나 덧붙일 것이라고 확신합니다.

귀하의 질문에 대한 대답은 무엇입니까? 예, 가능합니다. 엔드포인트의 공용 IP와 연결이 필요한 포트만 알면 됩니다. 라우터는 NAT 규칙에 따라 개인 네트워크의 서버에 도달하기 위해 해당 포트를 전달할 컴퓨터를 아는 역할을 합니다.

답변4

제가 정확하게 이해하고 있는지는 모르겠지만 최선을 다해 추측하겠습니다. "라우터로 제어되는 PC에 연결을 설정할 수 있습니까?"라고 질문하셨습니다. 원격접속을 말씀하시는 것 같은데요. vnc나 원격 데스크톱 등을 사용할 수 있습니다. 인터넷을 통해 연결된 두 대의 PC에 대해 이야기하고 있다면 VPN을 확인하십시오. 하나가 다른 하나의 IP를 할당한다는 것을 의미한다면 그것은 서버/클라이언트 연결이 될 것이고 WAN을 통한 VPN과 같은 것이어야 합니다.

TCP 패킷에는 패킷 내부의 LAN 대상에 대한 정보가 포함되어 있습니다.

관련 정보