컴퓨터망 3) delivery, forwarding

zh025700·2022년 6월 25일
0

컴퓨터네트워크

목록 보기
3/26

컴퓨터망

3. IP 패킷의 배달, 포워딩

이 장에서는 IP 패킷의 전송 및 전달에 대해 설명한다.
delivery란 패킷이 기본 네트워크에 의해 처리되는 방식을 말합니다.
네트워크 계층의 제어 하에서 작동한다.
direct 및 indirect 전달과 같은 개념이 논의된다.
forwarding은 패킷이 다음 스테이션으로 전달되는 방식을 의미한다.
forwarding의 두 가지 동향에 대해 논의한다.
패킷의 대상 주소를 기반으로 하는 forwarding과
패킷에 부착된 레이블을 기반으로 하는 forwarding이다.

Delivery

네트워크 계층은 물리적 네트워크에 의한 패킷의 처리를 감독한다.
이 처리를 패킷의 delivery로 정의한다.
패킷을 최종 목적지로 배달하는 것은 direct와 indirect의 두 가지 다른 방법을 사용하여 이루어진다.

Direct delivery

  • 패킷의 최종 destination은 전송자와 동일한 물리적 네트워크에 연결된 호스트
  • sender는 쉽게 delivery가 direct인지 알 수 있다
    • 같은 네트워크인지 확인만 하면 된다
      • 즉 라우터를 안 거치는

발생 상황

  • 패킷의 source와 destination이 동일한 물리적 네트워크에 있을 경우 발생
  • delivery가 마지막 라우터와 대상 호스트 사이에 있는 경우에 발생
마스크를 사용하여 destination의 네트워크 주소를 추출하고
이 주소를 연결된 네트워크의 주소와 비교할 수 있다
이 때, 일치하는 항목이 있으면 direct delivery가 된다

라우터를 거치지 않고 전달

Indirect delivery

  • destination 호스트가 동일한 네트워크에 있지 않을 때
  • 패킷은 최종 destination과 동일한 물리적 네트워크에 도달할 때까지 라우터에서 라우터로 이동
    • 동일한 네트워크에 도달하면, direct로 이동한다
  • sender는 대상 IP 주소와 라우팅 테이블을 사용하여 패킷이 전송되어야 하는 다음 라우터의 IP 주소를 찾는다
    • 그런 다음 sender는 다음 라우터의 물리적 주소를 찾기 위해 ARP(8장 참조)를 사용

라우터를 경유하며 전달

direct

  • 주소 매핑은 최종 destination의 IP 주소와 물리적 주소 사이에 있다.

indirect

  • 주소 매핑은 다음 라우터의 IP 주소와 물리적 주소 사이에 있습니다.

delivery에는 항상 하나의 direct delivery가 포함되지만 0개 이상의 indirect delivery가 포함, 또한 마지막은 항상 direct delivery이다

Forwarding

forwarding은 패킷을 destination으로 가는 경로에 배치하는 것을 의미한다.
오늘날 인터넷은 링크(네트워크)의 조합으로 이루어지기 때문에,
forwarding은 패킷을 next hop(최종 destination 또는 중간 연결 장치(라우터)일 수 있음)으로 전달하는 것을 의미한다.
IP 프로토콜은 원래 conectionless 프로토콜로 설계되었지만,
오늘날에는 IP를 conection oriented 프로토콜로 사용하는 경향이 있다.
IP가 conectionless 프로토콜로 사용될 때 forwarding은 IP 데이터그램의 destination 주소를 기반으로 한다.

Forwarding Based on Destination Address

  • 오늘 날, 전통적인 방법이다
  • 호스트 또는 라우터에 라우팅 테이블이 있어야한다
  • 호스트가 패킷을 전송하거나 라우터가 패킷을 받을때 최종 destination을 찾기위해 테이블을 확인한다
  • 그러나 이 방법은 테이블의 공간이 비효율적으로 사용된다

Next-Hop Method

  • 라우팅 테이블의 내용을 줄인다
  • 라우팅 테이블은 전체 경로 대신 next hop의 주소만 가진다
  • 라우팅 테이블의 entry들은 서로 일치해야한다
    • 연결되어야한다

Network-specific method

  • 라우팅 테이블을 줄이고 검색 프로세스를 단순화한다
  • 동일한 네트워크의 호스트들을 하나의 대상으로 취급한다
    • 네트워크 단위로 관리한다
      • 동일한 네트워크의 1000개의 호스트가 있다면 이 경우 라우팅 테이블에 1개의 항목만 존재한다

Host-specific routing

  • network-specific 방법의 반대이다
    • 위 방법의 효율은 없지만 특정 라우팅에 대해 중요한 부분때문에 이 방법을 사용
  • destination의 호스트 주소는 라우팅 테이블에 있다
  • 패킷 경로확인, 보안과 같은 목적으로 사용된다

Default routing

그림에서

  • R1 라우터는 N2로 라우팅한다
  • 나머지 인터넷은 R2를 사용한다
    • 나머지는 default로
  • 테이블 크기를 줄인다

Forwarding with classful addressing

  • classful은 여러 단점이 있다
  • 그러나 기본 mask의 존재는 forwarding을 쉽게 만든다

Forwarding with Classful addressing without subnetting

  • classful에서 인터넷의 대부분 라우터는 subnetting에 관여하지 않는다
    • subnetting은 오직 조직 안에서만 일어난다
  • forwarding은 클래스 마다 하나씩, 총 3개의 테이블을 활용해 설계할 수 있다
    • searching을 효율적으로 만들어 준다
  • 각 라우팅 테이블은 3개의 column을 가진다
    • 네트워크 주소
      • destination 호스트가 위치한 위치
    • next hop 주소
      • 패킷이 indirect 전달을 위해 어느 라우터로 전달되어야 하는지
      • direct의 경우 비어있음
    • interface 숫자
      • 패킷이 나가는 포트 번호를 정의

forwarding 단계

  1. 패킷의 destination 주소를 추출
  2. 클래스를 찾음
  3. 클래스에 따라 네트워크 주소를 추출
    • 클래스에 따라 8,16,24 비트 마스킹을 통해 수행
  4. 클래스와 네트워크 주소를 이용해 next hop 정보를 찾는다
    • 클래스는 테이블을 결정
    • 네트워크 주소를 테이블에서 검색
      • 일치하는 항목이 있다면 next hop 주소 추출
      • 없다면 기본값 사용
  5. ARP 모듈(8장)은 다음 라우터의 물리적 주소를 찾기 위해 다음 홉 주소와 인터페이스 번호를 사용
    • 그런 다음 데이터 링크 계층에 패킷을 다음 홉으로 전달하도록 요청

Forwarding with Classful addressing with subnetting

  • subnetting은 조직 안에서 일어난다

  1. 패킷에서 destination 주소를 추출한다
  2. destination 주소가 테이블의 항목과 일치하면 테이블에서 값들이 추출된다
  3. destination 주소와 mask는 서브넷 주소를 추출하는데 사용
  4. 서브넷 주소를 사용하여 next hop 주소와 인터페이스 번호를 검색
    • 일치하는 항목이 없으면 기본값이 사용됩니다.
  5. next hop 주소와 인터페이스 번호가 ARP에 전달

classful에서 3개의 column이 있는 라우팅 테이블을 가진다
classless에선 적어도 4개의 col이 필요

Forwarding with Classless addressing

classless에선 클래스가 없다
forwarding을 위해선 각 블록에 대해 정보가 필요하다
네트워크 주소를 기준으로 테이블을 검색해야한다
패킷의 destination 주소는 네트워크 주소에 대한 단서를 주지 않는다

이를 해결하기 위해 마스크(/n)를 표에 추가해야한다
classful과 달리 하나의 열이 더 추가된다

Address aggregation

classfull에서 조직 외부의 각 사이트에 대한 라우팅 테이블에는 하나의 entry만 있다
사이트가 서브넷화된 경우에도 이 entry는 사이트를 정의한다
패킷이 라우터에 도착하면 라우터는 해당 entry를 확인하고 그에 따라 패킷을 전달한다

클래스리스에선 라우팅 테이블 항목의 수가 증가할 가능성이 높다
클래스리스의 목적은 전체 주소 공간을 관리 가능한 블록으로 나누는 것이기 때문이다
표 크기가 커지면 표 검색에 필요한 시간이 늘어난다.

이 문제를 완화하기 위해, address aggregation이 나왔다

R1은 각각 64개의 주소를 사용하는 4개 조직의 네트워크에 연결된다.
R2는 R1에서 멀리 떨어져 있다.
각 패킷이 적절한 조직에 올바르게 라우팅되어야 하므로 R1의 라우팅 테이블이 더 길다.

반면에 R2는 매우 작은 라우팅 테이블을 가질 수 있다.
R2의 경우 대상 패킷이 140.24.7.0 ~ 140.24.7.255인 경우 조직 번호에 관계없이 인터페이스 m0에서 전송된다.
4개 조직의 주소 블록이 하나의 더 큰 블록으로 집계되기 때문에 이를 address aggregation이라고 한다.

각 조직이 하나의 블록으로 집계할 수 없는 주소를 가지고 있다면 R2는 더 긴 라우팅 테이블을 가질 것이다.
address aggregation은 subnetting과 유사하지만, 여기에는 공통 사이트가 없다.
각 조직의 네트워크는 독립적이다.
또한 몇 가지 수준의 aggregation을 수행할 수 있다.

Longest mask matching

이전 그림의 조직 중 하나가 다른 세 조직과 지리적으로 가깝지 않으면 어떻게?
예를 들어, 조직 4가 어떤 이유로 라우터 R1에 연결할 수 없는 경우,
여전히 address aggregation을 사용하고 여전히 조직 4에 블록 140.24.7.192/26을 할당할 수 있나?
classless에서 라우팅은 longest mask matching을 사용하기 때문에 물음은 yes다
이 원리는 라우팅 테이블이 가장 긴 마스크에서 가장 짧은 마스크로 정렬됨을 나타낸다.
즉, 마스크가 /27, /26 및 /24인 경우 마스크 /27이 첫 번째 항목이고 /24가 마지막이어야 한다.

대상 주소가 140.24.7.200인 조직 4에 패킷이 도착한다고 가정.
라우터 R2의 첫 번째 마스크가 적용되어 네트워크 주소 140.24.7.192를 제공
패킷은 인터페이스 m1에서 올바르게 라우팅되어 조직 4에 도달
그러나 라우팅 테이블이 가장 긴 접두사 fi와 함께 저장되지 않은 경우 /24 마스크를 적용하면 패킷이 라우터 R1로 잘못 라우팅될 수 있음

제일 긴걸 매칭해라! 더 정확하니

Hierarchical routing

거대한 라우팅 테이블의 문제를 해결하기 위해 라우팅 테이블에 계층 구조를 만들 수 있다

인터넷은 계층을 가지고 있다
인터넷은 백본, 지역 및 지역 ISP로 나뉘어 있다
라우팅 테이블이 인터넷 아키텍처와 같은 계층 구조를 갖는 경우 라우팅 테이블의 크기가 감소할 수 있다

profile
정리

0개의 댓글