공부한 기록/네트워크 통신

네트워크(6) - IP 패킷 전달과 포워딩

YongE 2023. 6. 9. 13:43
  • 연결형  서비스
    • 패킷을 보내기 전, 발신지의 네트워크층 프로토콜은 목적지의 프로토콜과 연결을 설정한다. (네트워크층의 경로설정)
    • 연결 설정 이후, 패킷들을 순서대로 하나씩 전송한다.
    • 모든 패킷을 전송하고 나면 연결이 해제된다.
  • 비연결형 서비스
    • 각 패킷이 독립적으로 처리되며 패킷 사이에 아무런 연관이 없다. 물론 목적지가 같더라도 다른 경로도 전달될 수도 있다.

 

패킷 포워딩


패킷 포워딩이란 패킷을 전달하는 방법을 의미한다. 포워딩 자체는 뒤에서 살펴보도록 하자.

네트워크층은 패킷이 목적지까지 갈 수 있도록 경로를 지정하여 관리한다. IP패킷을 목적지까지 보내기 위해 경로를 지정하는 방법이 필요한데, 다음 두 종류가 있다.

  • 직접 전달 : 목적지가 전달자와 같은 네트워크에 위치한 호스트에게 전달하는 것을 의미한다.
    • 목적지 주소에서 netid를 추출한 후 전달자의 네트워크 주소와 같으면 직접 전달을 수행한다.
    • 목적지 IP 주소를 이용하여 목적지 물리주소를 찾아 데이터링크층으로 보내 패킷을 전달한다.
  • 간접 전달 : 목적지가 같지 않은 네트워크에 있는 호스트에게 전달하는 것을 의미한다. 
    • 최종목적지가 있는 네트워크에 연결된 라우터에 도달할 때까지 여러 라우터를 경유해서 전달한다.
    • 목적지 IP주소와 라우팅 테이블을 이용하여 패킷을 전달한 다음 라우터의 IP주소를 찾는다.

 

포워딩


패킷을 목적지로 가는 경로 상에 올려놓는 것을 의미한다. 즉 패킷을 다음 홉(목적지 또는 라우터)으로 전달하는 것을 의미한다.

포워딩 기법에서는 두 가지가 있는데 목적지 주소 기반 포워딩과 레이블 기반 포워딩이다.

 

  • 목적지 주소 기반 포워딩 : 오늘 날에도 주도적으로 사용되는 방법이다. 호스트나 라우터가 라우팅 테이블을 갖고, 이를 이용하여 패킷이 목적지까지 가는 경로를 찾는다. 다만, 라우팅 테이블이 너무 커지면 검색에 비효율적이다. 따라서 다음과 같은 최소화 방법들이 있다.
    • 다음-홉 방법 next-hop : 라우팅 테이블 최소화 방법으로써, 라우팅 테이블에 전체 경로 대신, 다음 홉의 주소만 저장하는 것이다.
    • 네트워크-지정 : 같은 네트워크에 있는 호스트 하나 당 주소 엔트리 대신에, 네트워크 주소 당 하나의 엔트리를 지정하는 방식이다.
    • 호스트 지정 : 목적지 전체 IP주소가 라우팅 테이블 내에 있다. 네트워크 지정의 반대로써, 관리자가 경로를 점검하거나 보안성을 제공하는 것처럼 직접 네트워크를 제어하고자 할 때 사용한다.
    • 디폴트 : N1 네트워크에 연결된 호스트를 제외한 나머지 호스트들을 네트워크 주소가 0,0,0,0인 디폴트 엔트리에 지정하는 것이다. 즉 A, B, C의 호스트 중에서 A만 네트워크1에 연결되어 있다면 나머지 호스트들은 디폴트 엔트리로 묶는 것이다.
  • 클래스 기반 주소지정 포워딩 
    • 서브넷팅이 없는 경우 : 각 라우팅 테이블에 적어도 다음과 같은 세 개의 열이 필요하다.
      • 목적지 네트워크 주소, 다음 홉 주소, 인터페이스 번호(패킷이 나가는 출력 포트)
    • 서브넷팅이 있는 경우 : 패킷에서 목적지 주소 추출 => 테이블 내 호스트 주소와 같으면 다음 홉과 인터페이스 번호 추출 => 같지 않으면? 목적지 주소와 마스크를 사용해 서브넷 주소 추출 => 서브넷 주소로 다음 홉과 인터페이스 번호 추출
  • 클래스 없는 주소 지정 포워딩 : 라우팅 테이블에서 적어도 4개의 열이 필요하다. 마스크, 네트워크 주소, 다음 홉, 인터페이스. 이 테이블에서는 네트워크 주소에 기반하여 탐색되어야 한다. 
    • 주소집단화 address aggregation : 테이블 크기 증가에 따른 탐색시간을 완화하기 위한 방법이다. netid가 동일한 주소끼리 묶어서 테이블 크기를 감소시킨다. 마스크가 /26로 이뤄진 4개의 테이블 항목을 하나로 묶는 것이라 보면 된다.
    • 가장 긴 마스크 부합 : 마스크 길이 prefix가 긴 것부터 부합을 적용한다. 예를 들어, 1기관이 떨어져 있는 경우 나머지 3개의 주소에 집단화를 적용할 수 있다.
    • 계층적 라우팅 Hierarchical Routing : 인터넷을 지역, 로컬로 나누는 것과 같은 계층 구조이다. 라우팅 테이블의 크기가 커지는 문제를 해결하기 위해 도입했다.
    • 지리적 라우팅 geographical routing : 국가 간 라우팅을 위한 테이블에 한 개의 엔트리를 사용하는 것.
  • 레이블 기반 포워딩 : 라우팅을 스위칭으로 대치하여 IP를 연결형 프로토콜처럼 동작하게 한다.

 

라우터 구조


입력포트, 출력포트, 라우팅 처리기, 교환조직 등으로 이뤄져 있다.

 

  • 입력 포트 : 라우터에서 물리층 및 데이터 링크 층의 기능을 수행한다. 프레임이 패킷으로 역캡슐화된다. 오류의 탐지 및 수정을 기능으로 한다.
  • 출력 포트 : 입력 포트와 순서가 반대다. 출력되는 패킷을 큐에 저장하고, 프레임으로 캡슐화하고, 프레임으로 회선으로 보낼 신호로 변환한다.
  • 라우팅 처리기 : 목적지 주소를 사용해서 다음 홉의 주소를 찾고 출력포트 번호를 결정한다.
  • 교환 조직 : 가장 복잡한 기능을 담당하는데 패킷을 입력 큐에서 출력 큐로 이동시킨다.

 

728x90
반응형