Delivery Forwarding

이승준·2024년 6월 3일
0

컴퓨터 네트워크

목록 보기
5/5

Delivery

Direct Delivery

  • 한 네트워크 내에서 다른 네트워크를 거치지 않고 전송되는 것을 말한다.
  • router 를 거쳐 다른 네트워크로 전송되는 경우는 indirect delivery 라고 한다.

Forwarding

  • routing : routing table 의 entry 를 채우는 과정
  • forwarding : routing table 을 참고해 목적지를 찾아 packet 을 전달하는 과정

Next-Hop method

  • A 에서 B 까지 packet 을 전송하는 과정을 살펴보자.
  • A 에서 출발한 packet 은 R1 router 를 거친다. 이를 경로 1 이라고 하자.
  • 이후 R2 router 를 거쳐 B 에 도착한다. 이를 경로 2라고 하자.
  • 경로 1과 2가 최단거리라면, 이들을 합친 A 에서 B 까지의 경로도 최단거리다.
    => 이는 Dijkstra's algorithm 으로 설명될 수 있다.

  • Dijkstra 에 의해, 각 hop 에서 최단경로들을 찾으면 전체 경로는 자명하게 최단경로가 된다.
  • 그러므로, routing table 을 채울 때 전체 경로가 아닌 next hop 만 명시하면 된다.
  • full path 가 정해지지 않았기 때문에 경로를 능동적으로 변경할 수 있다는 장점이 있다.

Network-Specific Method

  • network address 를 이용해 routing table 을 간소화하는 방법이다.
  • 왼쪽은 각 host 에 대해 next hop 을 명시한 host-specific method 가 적용된 모습이다.
  • 하지만, next 가 R1 인 위의 경우는 다음 경로가 N2 로 가는 길이라는 것만 알면 된다.
  • 그러므로, host 가 아닌 network 주소를 명시하는 network-specific method 를 이용한다.

Default Routing

  • 네트워크에서 특정 목적지로 가는 경로가 명시적으로 라우팅 테이블에 없을 때 사용되는 경로다.
  • routing table 에 명시되지 않은, 이외의 네트워크로 보내는 경우다.
  • 이 때 거치는 router 를 default router 라고 한다.

Configuration for Routing

  • router 와 network 간의 연결 양상을 topology 라고 한다.
  • 위의 topology 를 보고, routing table 을 작성해보자.
  • 이 때, 어떤 네트워크들이 direct 한지 파악하고 각 class 마다 자신의 routing table 을 가진다는 사실을 이용하면 된다.
  • R1 에 대한 routing table 을 작성하면 다음과 같다.
  1. class A 에 해당하는 네트워크는 111.0.0.0 이다. 이는 R1 과 direct 하므로 next hop 은 비어있고, 연결 통로인 interface 는 m0 이다.
  2. class B 에 해당하는 네트워크는 170.14.0.0 와 145.80.0.0 이다. 이들은 모두 R1 과 direct 하므로 next hop 은 비어있고, 연결 통로인 interface 는 각각 m1, m2 이다.
  3. class C 에 해당하는 네트워크는 192.16.7.0 이다. 이는 R1 과 direct 하지 않고, next hop 으로 111.0.0.0 네트워크를 통해야 한다. 이 때 거치는 스위치의 주소가 111.15.17.32 가 next hop 이고, 연결 통로인 interface 는 m0 이다.
  • 위 topology 에서 R1 이 192.16.7.14 로 가는 packet 을 받은 상황을 가정하자.
  • 이 packet 이 forwarding 되는 과정은 다음과 같다.
  1. routing table lookup 을 위해 class 분석
  2. network 주소를 추출해 routing table 에서 찾기
  3. ARP 를 통해 dst (192.16.7.14) 의 MAC 주소를 알아내 frame 제작
  • 위와 유사한 상황이다.
  • 다만, 같은 과정을 거쳤을 때 dst 의 network address 를 routing table 에서 찾을 수 없다.
  • 이런 경우는 default router 로 packet 을 보낸다.

Forwarding Module in Classless Address

  • classless address 를 이용하는 경우, prefix length 를 표시하는 column 이 추가로 필요하다.
  • prefix length 마다 mask 가 다르기 때문에, entry 마다의 mask 를 씌워 알맞은 것을 찾아야 한다.
  • 180.70.65.140 을 dst 로 가지는 packet 이 도착했다.
  • routing table 을 순회하며 각 entry 의 mask 를 씌워, 알맞은 entry 를 찾아야 한다.
  • 해당 주소는 /25 mask 를 씌웠을 때 180.70.65.128 이 나와, 두 번째 entry 와 일치한다.
  • 이제 MAC 를 알기 위해 ARP 로 packet 이 보내진다.
  • 모든 mask 에서 일치하지 않을 시, default router 로 보내진다.

Guessing Topology

  • 이번에는 위와 반대로 routing table 을 보고 topology 를 추론하는 과정이다.
  • next 가 없는 entry 들은 기준 router 와 direct 하다는 것을 이용하자.
  • direct 하지 않은 네트워크들은 next 와 interface 를 통해 추론한다.
  • 하나의 routing table 만으론 dst 까지의 중간 과정은 알 수 없다.

Address Aggregation

  • 4개의 네트워크와 2개의 router 로 이루어진 위의 topology 를 가정해보자.
  • R1 은 4개의 네트워크와 모두 direct 하기 때문에 모두의 정확한 주소를 알아야 한다.
  • 하지만, R2 는 그렇지 않기 때문에, 4개의 네트워크로 향하는 next 가 모두 동일하다.
  • 이 때 R2의 입장에서는 4개의 네트워크의 주소의 동일한 부분으로 묶어서 표현해도 무리가 없다.
  • 위의 예시에서는 24 bit 까지의 주소가 동일하기 때문에, dst 가 140.24.7.0/24 인 네트워크로 가는 interface 를 m0 로 묶어서 표현해 routing table 의 크기를 줄일 수 있다.
  • 서로 다른 네트워크들에 대해 주소를 묶어서 표현하는 이 방법을 address aggregation 이라고 한다.

Longest Mask Matching

  • 위와 유사한 상황이지만, network 4 만 다른 router 뒤에 있다.
  • 이때, 이들을 사이에 둔 R2 의 routing table 을 살펴보자.
  • 우선, 따로 떨어져 있는 140.24.7.192 에 대한 entry 가 aggregation 없이 존재한다.
  • packet 의 dst 가 이와 일치하면, 4번 네트워트가 존재하는 m1 방향으로 보내주면 된다.
  • 이와 일치하지 않는다면, 나머지 주소들이 있는 m0 로 보내준다.
  • 따로 떨어져 있는 4번 네트워크를 제외하고는 aggregation 되어, 상대적으로 짧은 주소로 뭉쳐있다.
  • 가장 긴 mask 를 우선 사용하고, 일치 여부에 따라 전송 방향을 결정하는 이런 양상을 longest mask matching 이라고 한다.

Multiprotocol Label Switching (MPLS)

  • classful address 를 사용할 때는 class 별로 routing table 이 존재하기 때문에 table lookup 이 빨랐다. 하지만, classless 에서는 각 mask 를 apply 하면서 linear 한 탐색이 필요하다.
  • 이를 보완하기 위해, Ethernet 과 IP header 사이에 MPLS header 를 삽입해 이 안의 정보를 이용해 빠르게 IP forwarding 을 진행한다.
  • MPLS header 에는 MPLS 의 label 이 저장된다.
  • MPLS 가 끝나면 이 부분은 제거된다.
  • 빨간색으로 표시된 router 들은 MPLS 가 가능한 router 들이다.
  • 다른 router 를 만나면 MPLS 가 끝나고, MPLS header 가 제거된다.
  • 각 단계에서 dst 에 따라 in label 과 out label 을 설정하고, 이를 토대로 out interface (나아갈 경로) 를 설정한다.
  • MPLS forwarding table 을 채우는 과정은 dst 부터 시작해 역순으로 나아간다.
  1. R1 에서 A 로 보내질 packet 들의 in label 을 사용되지 않고 있는 임의의 숫자인 6으로 설정했다.
  2. R2 와 R3 에서는 R1 을 통해 A 로 보내고 싶은 packet 들의 out label 을 6으로 설정한다.
    => 이 과정은 R1 이 자신의 MPLS forwarding table 을 토대로 요청하는 것이다.
  3. 이 6이라는 숫자는 R1, R2, R3 사이에서만 유일하면 된다.
  • 경로가 여러가지이기 때문에 forwarding 시간이 단축되고, 추가 경로를 선택할 수 있다는 장점이 있다.
profile
인하대학교 컴퓨터공학과

0개의 댓글